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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/dist/cjs/{event-listeners-4a8d66d5.js → event-listeners-74715e62.js} +38 -38
  2. package/dist/cjs/{execution-control-3bc9c7c4.js → execution-control-46f388e0.js} +35 -35
  3. package/dist/cjs/{focus-visible-b08d956f.js → focus-visible-0b352c74.js} +40 -40
  4. package/dist/cjs/{form-control-9e4dffd1.js → form-control-866bbece.js} +25 -25
  5. package/dist/cjs/{modal-a9679ddf.js → modal-48d42228.js} +41 -41
  6. package/dist/cjs/{popover-e3781f5a.js → popover-1d2a037c.js} +95 -95
  7. package/dist/cjs/{scroll-5b8676ba.js → scroll-76e6f5d7.js} +57 -57
  8. package/dist/cjs/set-attributes_2.cjs.entry.js +57 -57
  9. package/dist/cjs/six-alert.cjs.entry.js +131 -131
  10. package/dist/cjs/six-avatar.cjs.entry.js +28 -28
  11. package/dist/cjs/six-badge.cjs.entry.js +26 -26
  12. package/dist/cjs/six-button.cjs.entry.js +97 -97
  13. package/dist/cjs/six-card.cjs.entry.js +8 -8
  14. package/dist/cjs/six-checkbox.cjs.entry.js +152 -152
  15. package/dist/cjs/six-datepicker.cjs.entry.js +1189 -1189
  16. package/dist/cjs/six-details.cjs.entry.js +139 -139
  17. package/dist/cjs/six-dialog.cjs.entry.js +152 -152
  18. package/dist/cjs/six-drawer.cjs.entry.js +174 -174
  19. package/dist/cjs/six-dropdown_3.cjs.entry.js +728 -728
  20. package/dist/cjs/six-error-page.cjs.entry.js +94 -94
  21. package/dist/cjs/six-file-list-item.cjs.entry.js +38 -38
  22. package/dist/cjs/six-file-list.cjs.entry.js +8 -8
  23. package/dist/cjs/six-file-upload.cjs.entry.js +96 -96
  24. package/dist/cjs/six-footer.cjs.entry.js +8 -8
  25. package/dist/cjs/six-form.cjs.entry.js +219 -219
  26. package/dist/cjs/six-group-label.cjs.entry.js +46 -46
  27. package/dist/cjs/six-header.cjs.entry.js +149 -149
  28. package/dist/cjs/six-icon-button.cjs.entry.js +33 -33
  29. package/dist/cjs/six-icon.cjs.entry.js +24 -24
  30. package/dist/cjs/six-input.cjs.entry.js +230 -230
  31. package/dist/cjs/six-item-picker.cjs.entry.js +361 -361
  32. package/dist/cjs/six-language-switcher.cjs.entry.js +52 -52
  33. package/dist/cjs/six-layout-grid.cjs.entry.js +19 -19
  34. package/dist/cjs/six-main-container.cjs.entry.js +11 -11
  35. package/dist/cjs/six-menu-divider.cjs.entry.js +8 -8
  36. package/dist/cjs/six-menu-label.cjs.entry.js +8 -8
  37. package/dist/cjs/six-picto.cjs.entry.js +15 -15
  38. package/dist/cjs/six-progress-bar.cjs.entry.js +17 -17
  39. package/dist/cjs/six-progress-ring.cjs.entry.js +31 -31
  40. package/dist/cjs/six-radio.cjs.entry.js +121 -121
  41. package/dist/cjs/six-range.cjs.entry.js +198 -198
  42. package/dist/cjs/six-root.cjs.entry.js +34 -34
  43. package/dist/cjs/six-search-field.cjs.entry.js +43 -43
  44. package/dist/cjs/six-select.cjs.entry.js +447 -447
  45. package/dist/cjs/six-sidebar-item-group.cjs.entry.js +42 -42
  46. package/dist/cjs/six-sidebar-item.cjs.entry.js +18 -18
  47. package/dist/cjs/six-sidebar.cjs.entry.js +171 -171
  48. package/dist/cjs/six-spinner.cjs.entry.js +16 -16
  49. package/dist/cjs/six-switch.cjs.entry.js +100 -100
  50. package/dist/cjs/six-tab-group.cjs.entry.js +226 -226
  51. package/dist/cjs/six-tab-panel.cjs.entry.js +17 -17
  52. package/dist/cjs/six-tab.cjs.entry.js +42 -42
  53. package/dist/cjs/six-table-cell_4.cjs.entry.js +70 -70
  54. package/dist/cjs/six-table.cjs.entry.js +145 -145
  55. package/dist/cjs/six-tag.cjs.entry.js +40 -40
  56. package/dist/cjs/six-textarea.cjs.entry.js +211 -211
  57. package/dist/cjs/six-tile.cjs.entry.js +89 -89
  58. package/dist/cjs/six-timepicker.cjs.entry.js +489 -489
  59. package/dist/cjs/{six-timepicker.types-c58cc88b.js → six-timepicker.types-c19ebff3.js} +43 -43
  60. package/dist/cjs/six-tooltip.cjs.entry.js +172 -172
  61. package/dist/cjs/{slot-8abe833c.js → slot-ad537f24.js} +42 -42
  62. package/dist/cjs/{types-65e5c95b.js → types-581e8ff0.js} +12 -12
  63. package/dist/cjs/{types-0c28e484.js → types-64878648.js} +12 -12
  64. package/dist/collection/components/six-alert/six-alert.js +366 -366
  65. package/dist/collection/components/six-avatar/six-avatar.js +131 -131
  66. package/dist/collection/components/six-badge/six-badge.js +101 -101
  67. package/dist/collection/components/six-button/six-button.js +466 -466
  68. package/dist/collection/components/six-card/six-card.js +21 -21
  69. package/dist/collection/components/six-checkbox/six-checkbox.js +550 -550
  70. package/dist/collection/components/six-datepicker/components/day-selection.js +13 -13
  71. package/dist/collection/components/six-datepicker/components/month-selection.js +12 -12
  72. package/dist/collection/components/six-datepicker/components/year-selection.js +10 -10
  73. package/dist/collection/components/six-datepicker/six-date-formats.js +23 -23
  74. package/dist/collection/components/six-datepicker/six-datepicker.js +1343 -1343
  75. package/dist/collection/components/six-datepicker/test/six-datepicker.test-helpers.js +16 -16
  76. package/dist/collection/components/six-details/six-details.js +432 -432
  77. package/dist/collection/components/six-dialog/six-dialog.js +401 -401
  78. package/dist/collection/components/six-drawer/six-drawer.js +458 -458
  79. package/dist/collection/components/six-dropdown/six-dropdown.js +939 -939
  80. package/dist/collection/components/six-error-page/six-error-page.js +199 -199
  81. package/dist/collection/components/six-file-list/six-file-list.js +20 -20
  82. package/dist/collection/components/six-file-list-item/six-file-list-item.js +203 -203
  83. package/dist/collection/components/six-file-upload/six-file-upload.js +272 -272
  84. package/dist/collection/components/six-footer/six-footer.js +21 -21
  85. package/dist/collection/components/six-form/six-form.js +408 -408
  86. package/dist/collection/components/six-group-label/six-group-label.js +166 -166
  87. package/dist/collection/components/six-header/six-header.js +420 -420
  88. package/dist/collection/components/six-icon/six-icon.js +77 -77
  89. package/dist/collection/components/six-icon-button/six-icon-button.js +142 -142
  90. package/dist/collection/components/six-input/six-input.js +1141 -1141
  91. package/dist/collection/components/six-item-picker/six-item-picker.js +688 -688
  92. package/dist/collection/components/six-item-picker/types.js +13 -13
  93. package/dist/collection/components/six-language-switcher/six-language-switcher.js +128 -128
  94. package/dist/collection/components/six-layout-grid/six-layout-grid.js +52 -52
  95. package/dist/collection/components/six-main-container/six-main-container.js +53 -53
  96. package/dist/collection/components/six-menu/six-menu.js +406 -406
  97. package/dist/collection/components/six-menu-divider/six-menu-divider.js +22 -22
  98. package/dist/collection/components/six-menu-item/six-menu-item.js +177 -177
  99. package/dist/collection/components/six-menu-label/six-menu-label.js +25 -25
  100. package/dist/collection/components/six-picto/six-picto.js +50 -50
  101. package/dist/collection/components/six-progress-bar/six-progress-bar.js +77 -77
  102. package/dist/collection/components/six-progress-ring/six-progress-ring.js +111 -111
  103. package/dist/collection/components/six-radio/six-radio.js +410 -410
  104. package/dist/collection/components/six-range/six-range.js +620 -620
  105. package/dist/collection/components/six-root/six-root.js +167 -167
  106. package/dist/collection/components/six-search-field/six-search-field.js +171 -171
  107. package/dist/collection/components/six-select/six-select.js +1105 -1105
  108. package/dist/collection/components/six-sidebar/six-sidebar.js +455 -455
  109. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js +89 -89
  110. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js +158 -158
  111. package/dist/collection/components/six-spinner/six-spinner.js +55 -55
  112. package/dist/collection/components/six-stage-indicator/six-stage-indicator.js +46 -46
  113. package/dist/collection/components/six-switch/six-switch.js +393 -393
  114. package/dist/collection/components/six-tab/six-tab.js +198 -198
  115. package/dist/collection/components/six-tab-group/six-tab-group.js +362 -362
  116. package/dist/collection/components/six-tab-panel/six-tab-panel.js +75 -75
  117. package/dist/collection/components/six-table/six-table.js +209 -209
  118. package/dist/collection/components/six-table/test/helpers.js +13 -13
  119. package/dist/collection/components/six-table/types.js +8 -8
  120. package/dist/collection/components/six-table/util/filter-by.js +34 -34
  121. package/dist/collection/components/six-table/util/from-data.js +33 -33
  122. package/dist/collection/components/six-table/util/is.js +3 -3
  123. package/dist/collection/components/six-table/util/quick-filter-by.js +13 -13
  124. package/dist/collection/components/six-table/util/sort-by.js +25 -25
  125. package/dist/collection/components/six-table-cell/six-table-cell.js +21 -21
  126. package/dist/collection/components/six-table-header/six-table-header.js +21 -21
  127. package/dist/collection/components/six-table-header-cell/get-next-state.js +7 -7
  128. package/dist/collection/components/six-table-header-cell/icons.js +12 -12
  129. package/dist/collection/components/six-table-header-cell/six-table-header-cell.js +174 -174
  130. package/dist/collection/components/six-table-header-cell/types.js +13 -13
  131. package/dist/collection/components/six-table-header-cell/util/create-model.js +6 -6
  132. package/dist/collection/components/six-table-header-cell/util/get-next-state.js +7 -7
  133. package/dist/collection/components/six-table-row/six-table-row.js +21 -21
  134. package/dist/collection/components/six-tag/six-tag.js +157 -157
  135. package/dist/collection/components/six-textarea/six-textarea.js +912 -912
  136. package/dist/collection/components/six-tile/six-tile.js +315 -315
  137. package/dist/collection/components/six-timepicker/six-time-format.js +14 -14
  138. package/dist/collection/components/six-timepicker/six-timepicker.js +980 -980
  139. package/dist/collection/components/six-timepicker/six-timepicker.types.js +40 -40
  140. package/dist/collection/components/six-tooltip/six-tooltip.js +435 -435
  141. package/dist/collection/functional-components/form-control/form-control.js +28 -28
  142. package/dist/collection/index.js +1 -1
  143. package/dist/collection/testUtil/delay.js +3 -3
  144. package/dist/collection/utils/as-array.js +1 -1
  145. package/dist/collection/utils/date-util.js +712 -712
  146. package/dist/collection/utils/event-listeners.js +39 -39
  147. package/dist/collection/utils/execution-control.js +38 -38
  148. package/dist/collection/utils/focus-visible.js +41 -41
  149. package/dist/collection/utils/matchers.js +2 -2
  150. package/dist/collection/utils/modal.js +28 -28
  151. package/dist/collection/utils/offset.js +13 -13
  152. package/dist/collection/utils/popover.js +113 -113
  153. package/dist/collection/utils/scroll.js +47 -47
  154. package/dist/collection/utils/slot.js +59 -59
  155. package/dist/collection/utils/support.js +15 -15
  156. package/dist/collection/utils/tabbable.js +22 -22
  157. package/dist/collection/utils/testing.js +38 -38
  158. package/dist/collection/utils/time.util.js +74 -74
  159. package/dist/collection/utils/type-check.js +5 -5
  160. package/dist/collection/utils/types.js +1 -1
  161. package/dist/collection/wrappers/set-attributes/set-attributes.js +68 -68
  162. package/dist/components.json +1 -1
  163. package/dist/custom-elements/index.js +7595 -7595
  164. package/dist/esm/{event-listeners-1bef934e.js → event-listeners-570a24ea.js} +38 -38
  165. package/dist/esm/{execution-control-235f5126.js → execution-control-1a60d709.js} +35 -35
  166. package/dist/esm/{focus-visible-4b7946aa.js → focus-visible-97933ea9.js} +40 -40
  167. package/dist/esm/{form-control-17478ad2.js → form-control-24f446af.js} +25 -25
  168. package/dist/esm/{modal-e5709f6b.js → modal-5ebdc320.js} +41 -41
  169. package/dist/esm/polyfills/core-js.js +0 -0
  170. package/dist/esm/polyfills/dom.js +0 -0
  171. package/dist/esm/polyfills/es5-html-element.js +0 -0
  172. package/dist/esm/polyfills/index.js +0 -0
  173. package/dist/esm/polyfills/system.js +0 -0
  174. package/dist/esm/{popover-5a51f84d.js → popover-1c7a1139.js} +95 -95
  175. package/dist/esm/{scroll-99b214c2.js → scroll-180b53fd.js} +57 -57
  176. package/dist/esm/set-attributes_2.entry.js +57 -57
  177. package/dist/esm/six-alert.entry.js +131 -131
  178. package/dist/esm/six-avatar.entry.js +28 -28
  179. package/dist/esm/six-badge.entry.js +26 -26
  180. package/dist/esm/six-button.entry.js +97 -97
  181. package/dist/esm/six-card.entry.js +8 -8
  182. package/dist/esm/six-checkbox.entry.js +152 -152
  183. package/dist/esm/six-datepicker.entry.js +1189 -1189
  184. package/dist/esm/six-details.entry.js +139 -139
  185. package/dist/esm/six-dialog.entry.js +152 -152
  186. package/dist/esm/six-drawer.entry.js +174 -174
  187. package/dist/esm/six-dropdown_3.entry.js +728 -728
  188. package/dist/esm/six-error-page.entry.js +94 -94
  189. package/dist/esm/six-file-list-item.entry.js +38 -38
  190. package/dist/esm/six-file-list.entry.js +8 -8
  191. package/dist/esm/six-file-upload.entry.js +96 -96
  192. package/dist/esm/six-footer.entry.js +8 -8
  193. package/dist/esm/six-form.entry.js +219 -219
  194. package/dist/esm/six-group-label.entry.js +46 -46
  195. package/dist/esm/six-header.entry.js +149 -149
  196. package/dist/esm/six-icon-button.entry.js +33 -33
  197. package/dist/esm/six-icon.entry.js +24 -24
  198. package/dist/esm/six-input.entry.js +230 -230
  199. package/dist/esm/six-item-picker.entry.js +361 -361
  200. package/dist/esm/six-language-switcher.entry.js +52 -52
  201. package/dist/esm/six-layout-grid.entry.js +19 -19
  202. package/dist/esm/six-main-container.entry.js +11 -11
  203. package/dist/esm/six-menu-divider.entry.js +8 -8
  204. package/dist/esm/six-menu-label.entry.js +8 -8
  205. package/dist/esm/six-picto.entry.js +15 -15
  206. package/dist/esm/six-progress-bar.entry.js +17 -17
  207. package/dist/esm/six-progress-ring.entry.js +31 -31
  208. package/dist/esm/six-radio.entry.js +121 -121
  209. package/dist/esm/six-range.entry.js +198 -198
  210. package/dist/esm/six-root.entry.js +34 -34
  211. package/dist/esm/six-search-field.entry.js +43 -43
  212. package/dist/esm/six-select.entry.js +447 -447
  213. package/dist/esm/six-sidebar-item-group.entry.js +42 -42
  214. package/dist/esm/six-sidebar-item.entry.js +18 -18
  215. package/dist/esm/six-sidebar.entry.js +171 -171
  216. package/dist/esm/six-spinner.entry.js +16 -16
  217. package/dist/esm/six-switch.entry.js +100 -100
  218. package/dist/esm/six-tab-group.entry.js +226 -226
  219. package/dist/esm/six-tab-panel.entry.js +17 -17
  220. package/dist/esm/six-tab.entry.js +42 -42
  221. package/dist/esm/six-table-cell_4.entry.js +70 -70
  222. package/dist/esm/six-table.entry.js +145 -145
  223. package/dist/esm/six-tag.entry.js +40 -40
  224. package/dist/esm/six-textarea.entry.js +211 -211
  225. package/dist/esm/six-tile.entry.js +89 -89
  226. package/dist/esm/six-timepicker.entry.js +489 -489
  227. package/dist/esm/{six-timepicker.types-cd6bac03.js → six-timepicker.types-e161a447.js} +43 -43
  228. package/dist/esm/six-tooltip.entry.js +172 -172
  229. package/dist/esm/{slot-5253e199.js → slot-6f3984c7.js} +42 -42
  230. package/dist/esm/{types-a37c1695.js → types-4b10b413.js} +12 -12
  231. package/dist/esm/{types-33d15673.js → types-ed860f7c.js} +12 -12
  232. package/dist/types/components/six-alert/six-alert.d.ts +60 -60
  233. package/dist/types/components/six-avatar/six-avatar.d.ts +27 -27
  234. package/dist/types/components/six-badge/six-badge.d.ts +20 -20
  235. package/dist/types/components/six-button/six-button.d.ts +69 -69
  236. package/dist/types/components/six-card/six-card.d.ts +9 -9
  237. package/dist/types/components/six-checkbox/six-checkbox.d.ts +86 -86
  238. package/dist/types/components/six-datepicker/components/day-selection.d.ts +5 -5
  239. package/dist/types/components/six-datepicker/components/month-selection.d.ts +5 -5
  240. package/dist/types/components/six-datepicker/components/year-selection.d.ts +5 -5
  241. package/dist/types/components/six-datepicker/six-date-formats.d.ts +22 -22
  242. package/dist/types/components/six-datepicker/six-datepicker.d.ts +214 -214
  243. package/dist/types/components/six-datepicker/test/six-datepicker.test-helpers.d.ts +1 -1
  244. package/dist/types/components/six-details/six-details.d.ts +61 -61
  245. package/dist/types/components/six-dialog/six-dialog.d.ts +75 -75
  246. package/dist/types/components/six-drawer/six-drawer.d.ts +82 -82
  247. package/dist/types/components/six-dropdown/six-dropdown.d.ts +140 -140
  248. package/dist/types/components/six-error-page/six-error-page.d.ts +27 -27
  249. package/dist/types/components/six-file-list/six-file-list.d.ts +8 -8
  250. package/dist/types/components/six-file-list-item/six-file-list-item.d.ts +35 -35
  251. package/dist/types/components/six-file-upload/six-file-upload.d.ts +42 -42
  252. package/dist/types/components/six-footer/six-footer.d.ts +9 -9
  253. package/dist/types/components/six-form/six-form.d.ts +69 -69
  254. package/dist/types/components/six-group-label/six-group-label.d.ts +37 -37
  255. package/dist/types/components/six-header/six-header.d.ts +90 -90
  256. package/dist/types/components/six-icon/six-icon.d.ts +13 -13
  257. package/dist/types/components/six-icon-button/six-icon-button.d.ts +28 -28
  258. package/dist/types/components/six-input/six-input.d.ts +165 -165
  259. package/dist/types/components/six-item-picker/six-item-picker.d.ts +106 -106
  260. package/dist/types/components/six-item-picker/types.d.ts +11 -11
  261. package/dist/types/components/six-language-switcher/six-language-switcher.d.ts +25 -25
  262. package/dist/types/components/six-layout-grid/six-layout-grid.d.ts +14 -14
  263. package/dist/types/components/six-main-container/six-main-container.d.ts +16 -16
  264. package/dist/types/components/six-menu/six-menu.d.ts +81 -81
  265. package/dist/types/components/six-menu-divider/six-menu-divider.d.ts +11 -11
  266. package/dist/types/components/six-menu-item/six-menu-item.d.ts +36 -36
  267. package/dist/types/components/six-menu-label/six-menu-label.d.ts +13 -13
  268. package/dist/types/components/six-picto/six-picto.d.ts +14 -14
  269. package/dist/types/components/six-progress-bar/six-progress-bar.d.ts +19 -19
  270. package/dist/types/components/six-progress-ring/six-progress-ring.d.ts +24 -24
  271. package/dist/types/components/six-radio/six-radio.d.ts +66 -66
  272. package/dist/types/components/six-range/six-range.d.ts +101 -101
  273. package/dist/types/components/six-root/six-root.d.ts +34 -34
  274. package/dist/types/components/six-search-field/six-search-field.d.ts +32 -32
  275. package/dist/types/components/six-select/six-select.d.ts +163 -163
  276. package/dist/types/components/six-sidebar/six-sidebar.d.ts +55 -55
  277. package/dist/types/components/six-sidebar-item/six-sidebar-item.d.ts +15 -15
  278. package/dist/types/components/six-sidebar-item-group/six-sidebar-item-group.d.ts +26 -26
  279. package/dist/types/components/six-spinner/six-spinner.d.ts +15 -15
  280. package/dist/types/components/six-stage-indicator/six-stage-indicator.d.ts +6 -6
  281. package/dist/types/components/six-switch/six-switch.d.ts +62 -62
  282. package/dist/types/components/six-tab/six-tab.d.ts +35 -35
  283. package/dist/types/components/six-tab-group/six-tab-group.d.ts +62 -62
  284. package/dist/types/components/six-tab-panel/six-tab-panel.d.ts +19 -19
  285. package/dist/types/components/six-table/six-table.d.ts +30 -30
  286. package/dist/types/components/six-table/test/helpers.d.ts +2 -2
  287. package/dist/types/components/six-table/types.d.ts +33 -33
  288. package/dist/types/components/six-table/util/filter-by.d.ts +2 -2
  289. package/dist/types/components/six-table/util/from-data.d.ts +8 -8
  290. package/dist/types/components/six-table/util/is.d.ts +3 -3
  291. package/dist/types/components/six-table/util/quick-filter-by.d.ts +2 -2
  292. package/dist/types/components/six-table/util/sort-by.d.ts +2 -2
  293. package/dist/types/components/six-table-cell/six-table-cell.d.ts +9 -9
  294. package/dist/types/components/six-table-header/six-table-header.d.ts +9 -9
  295. package/dist/types/components/six-table-header-cell/get-next-state.d.ts +2 -2
  296. package/dist/types/components/six-table-header-cell/icons.d.ts +3 -3
  297. package/dist/types/components/six-table-header-cell/six-table-header-cell.d.ts +32 -32
  298. package/dist/types/components/six-table-header-cell/types.d.ts +11 -11
  299. package/dist/types/components/six-table-header-cell/util/create-model.d.ts +4 -4
  300. package/dist/types/components/six-table-header-cell/util/get-next-state.d.ts +3 -3
  301. package/dist/types/components/six-table-row/six-table-row.d.ts +9 -9
  302. package/dist/types/components/six-tag/six-tag.d.ts +30 -30
  303. package/dist/types/components/six-textarea/six-textarea.d.ts +134 -134
  304. package/dist/types/components/six-tile/six-tile.d.ts +40 -40
  305. package/dist/types/components/six-timepicker/six-time-format.d.ts +13 -13
  306. package/dist/types/components/six-timepicker/six-timepicker.d.ts +184 -184
  307. package/dist/types/components/six-timepicker/six-timepicker.types.d.ts +36 -36
  308. package/dist/types/components/six-tooltip/six-tooltip.d.ts +72 -72
  309. package/dist/types/functional-components/form-control/form-control.d.ts +34 -34
  310. package/dist/types/index.d.ts +1 -1
  311. package/dist/types/testUtil/delay.d.ts +1 -1
  312. package/dist/types/utils/as-array.d.ts +1 -1
  313. package/dist/types/utils/date-util.d.ts +194 -194
  314. package/dist/types/utils/event-listeners.d.ts +15 -15
  315. package/dist/types/utils/execution-control.d.ts +26 -26
  316. package/dist/types/utils/focus-visible.d.ts +6 -6
  317. package/dist/types/utils/matchers.d.ts +2 -2
  318. package/dist/types/utils/modal.d.ts +13 -13
  319. package/dist/types/utils/offset.d.ts +4 -4
  320. package/dist/types/utils/popover.d.ts +27 -27
  321. package/dist/types/utils/scroll.d.ts +3 -3
  322. package/dist/types/utils/slot.d.ts +9 -9
  323. package/dist/types/utils/support.d.ts +1 -1
  324. package/dist/types/utils/tabbable.d.ts +2 -2
  325. package/dist/types/utils/testing.d.ts +2 -2
  326. package/dist/types/utils/time.util.d.ts +10 -10
  327. package/dist/types/utils/type-check.d.ts +4 -4
  328. package/dist/types/utils/types.d.ts +4 -4
  329. package/dist/types/wrappers/set-attributes/set-attributes.d.ts +9 -9
  330. package/dist/ui-library/{p-a8c225f2.entry.js → p-007bc8e8.entry.js} +1 -1
  331. package/dist/ui-library/{p-f9c0cfb7.entry.js → p-044b784e.entry.js} +1 -1
  332. package/dist/ui-library/{p-c733dead.js → p-0786fa7c.js} +0 -0
  333. package/dist/ui-library/{p-12cc24c3.js → p-07d1e830.js} +0 -0
  334. package/dist/ui-library/{p-48ea4419.entry.js → p-09cb13fa.entry.js} +1 -1
  335. package/dist/ui-library/{p-e96dcf96.entry.js → p-0c596054.entry.js} +1 -1
  336. package/dist/ui-library/{p-a77a6442.entry.js → p-1b8dc7b7.entry.js} +1 -1
  337. package/dist/ui-library/{p-68d31736.js → p-25a3bf57.js} +0 -0
  338. package/dist/ui-library/{p-ebaea182.entry.js → p-281e8c2d.entry.js} +1 -1
  339. package/dist/ui-library/{p-9f2dc381.entry.js → p-2924f82f.entry.js} +1 -1
  340. package/dist/ui-library/{p-ea1fcff2.entry.js → p-2d7ed407.entry.js} +1 -1
  341. package/dist/ui-library/{p-89f68e76.entry.js → p-4162dcdd.entry.js} +1 -1
  342. package/dist/ui-library/{p-6f67f986.entry.js → p-4d3a4e93.entry.js} +1 -1
  343. package/dist/ui-library/{p-8bd0873f.entry.js → p-4ed023b8.entry.js} +1 -1
  344. package/dist/ui-library/{p-af3d757c.js → p-4f8394d7.js} +0 -0
  345. package/dist/ui-library/{p-1b92cc7a.entry.js → p-530ea6ec.entry.js} +1 -1
  346. package/dist/ui-library/{p-19543c96.entry.js → p-531ab886.entry.js} +1 -1
  347. package/dist/ui-library/{p-fdb455d7.entry.js → p-54c48654.entry.js} +1 -1
  348. package/dist/ui-library/{p-c948d3db.entry.js → p-55c64cbc.entry.js} +1 -1
  349. package/dist/ui-library/{p-1c9f0dc6.js → p-5f1c6a5f.js} +0 -0
  350. package/dist/ui-library/{p-60491176.entry.js → p-675a8243.entry.js} +1 -1
  351. package/dist/ui-library/{p-b9fb8455.entry.js → p-6d622ed0.entry.js} +1 -1
  352. package/dist/ui-library/{p-572e3690.js → p-75297ad7.js} +0 -0
  353. package/dist/ui-library/{p-2ff97cdf.entry.js → p-90b26447.entry.js} +1 -1
  354. package/dist/ui-library/{p-fcd2356c.entry.js → p-93945629.entry.js} +1 -1
  355. package/dist/ui-library/{p-7735d99f.js → p-9a860acc.js} +0 -0
  356. package/dist/ui-library/{p-4cc01afc.entry.js → p-aa37e45a.entry.js} +1 -1
  357. package/dist/ui-library/{p-191f958b.js → p-b1e66136.js} +0 -0
  358. package/dist/ui-library/{p-c09dc3a9.js → p-b4dfb7cf.js} +0 -0
  359. package/dist/ui-library/{p-968c5169.entry.js → p-c24292b3.entry.js} +1 -1
  360. package/dist/ui-library/{p-ed21cc57.entry.js → p-cd79de73.entry.js} +1 -1
  361. package/dist/ui-library/{p-34e6d8e8.js → p-d12c6092.js} +0 -0
  362. package/dist/ui-library/{p-f0e91e17.entry.js → p-d28ac80a.entry.js} +1 -1
  363. package/dist/ui-library/{p-5ead7b2f.entry.js → p-d837e5a8.entry.js} +1 -1
  364. package/dist/ui-library/{p-ec1ecc2a.entry.js → p-dd3cae68.entry.js} +1 -1
  365. package/dist/ui-library/{p-044c6bf9.js → p-eb8f05a9.js} +0 -0
  366. package/dist/ui-library/ui-library.esm.js +1 -1
  367. package/package.json +1 -1
@@ -1,406 +1,406 @@
1
- import { Component, Element, Event, h, Method, Prop, State } from '@stencil/core';
2
- import { getTextContent } from '../../utils/slot';
3
- import { EventListeners } from '../../utils/event-listeners';
4
- import { debounce } from '../../utils/execution-control';
5
- const isFocusedMenuItem = (menuItem) => { var _a, _b, _c; return (_c = (_b = (_a = menuItem === null || menuItem === void 0 ? void 0 : menuItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.menu-item')) === null || _b === void 0 ? void 0 : _b.classList) === null || _c === void 0 ? void 0 : _c.contains('menu-item--focused'); };
6
- const isSIXMenuItemElement = (el) => (el === null || el === void 0 ? void 0 : el.tagName.toLowerCase()) === 'six-menu-item';
7
- const mapToMenuItem = ({ value, label }) => h("six-menu-item", { value: value }, label);
8
- const DEFAULT_NUMBER_OF_ITEMS_SHOWN_FOR_VIRTUAL_SCROLLING = 5;
9
- const DEFAULT_SIX_MENU_ITEM_HEIGHT = 64;
10
- const ITEMS_SHOWN_NOT_SET = undefined;
11
- /**
12
- * @since 1.0
13
- * @status stable
14
- *
15
- * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.
16
- *
17
- * @slot - The menu's content, including menu items, menu dividers, and menu labels.
18
- *
19
- * @part base - The component's base wrapper.
20
- */
21
- export class SixMenu {
22
- constructor() {
23
- this.eventListeners = new EventListeners();
24
- this.typeToSelectString = '';
25
- /** Set to true to remove the box-shadow */
26
- this.removeBoxShadow = false;
27
- /** Set the options to be shown in the dropdown */
28
- this.items = null;
29
- /** Defines how many items should be shown. If the number of items is larger than this properties a scrollbar will be shown */
30
- this.itemsShown = ITEMS_SHOWN_NOT_SET;
31
- /** Defines whether the menu list will be rendered virtually i.e. only the elements actually shown (and a couple around)
32
- * are actually rendered in the DOM. If you use virtual scrolling pass the elements via prop instead of via slot. */
33
- this.virtualScroll = false;
34
- /**
35
- * Used for virtual scrolling
36
- * Define how many items should be rendered in the DOM when using virtual scrolling
37
- */
38
- this.itemSize = 10;
39
- /**
40
- * Used for virtual scrolling
41
- * Define the debounce for listening on scrolling changes in milliseconds.
42
- * The lower the number the more sensitive the component reacts to scrolling changes.
43
- */
44
- this.scrollingDebounce = 15;
45
- /**
46
- * Used to calculate which items should be rendered in the DOM
47
- */
48
- this.scrollingIndex = 0;
49
- // set a default item height, this variable will be updated with the real value after the first render.
50
- // However, it's necessary to have a default value because we can only fetch the proper hight after the first render
51
- this.sixMenuItemHeight = DEFAULT_SIX_MENU_ITEM_HEIGHT;
52
- this.handleScrolling = () => {
53
- // for performance improvements we only update the DOM if the scrollRatio change "enough"
54
- this.scrollingIndex = Math.floor(this.menuWrapper.scrollTop / this.sixMenuItemHeight);
55
- };
56
- }
57
- connectedCallback() {
58
- this.handleClick = this.handleClick.bind(this);
59
- this.handleKeyDown = this.handleKeyDown.bind(this);
60
- }
61
- componentWillLoad() {
62
- if (this.items === null) {
63
- return;
64
- }
65
- }
66
- componentDidLoad() {
67
- this.setupForVirtualScrollingAfterRendering();
68
- }
69
- disconnectedCallback() {
70
- this.eventListeners.removeAll();
71
- }
72
- /**
73
- * Initiates type-to-select logic, which automatically selects an option based on what the user is currently typing.
74
- * The key passed will be appended to the internal query and the selection will be updated. After a brief period, the
75
- * internal query is cleared automatically. This method is intended to be used with the keydown event. Useful for
76
- * enabling type-to-select when the menu doesn't have focus.
77
- */
78
- async typeToSelect(key) {
79
- var _a;
80
- clearTimeout(this.typeToSelectTimeout);
81
- this.typeToSelectTimeout = setTimeout(() => (this.typeToSelectString = ''), 750);
82
- this.typeToSelectString += key.toLowerCase();
83
- const items = this.getItems();
84
- for (const item of items) {
85
- const slot = (_a = item.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
86
- const label = getTextContent(slot).toLowerCase().trim();
87
- if (label.substring(0, this.typeToSelectString.length) === this.typeToSelectString) {
88
- item.setFocus();
89
- break;
90
- }
91
- }
92
- }
93
- getItemsShown() {
94
- var _a;
95
- const defaultItemsShown = this.virtualScroll
96
- ? DEFAULT_NUMBER_OF_ITEMS_SHOWN_FOR_VIRTUAL_SCROLLING
97
- : ITEMS_SHOWN_NOT_SET;
98
- return (_a = this.itemsShown) !== null && _a !== void 0 ? _a : defaultItemsShown;
99
- }
100
- setupForVirtualScrollingAfterRendering() {
101
- var _a, _b;
102
- if (!this.virtualScroll) {
103
- return;
104
- }
105
- this.eventListeners.add(this.menuWrapper, 'scroll', debounce(this.handleScrolling, this.scrollingDebounce));
106
- // set menu height to proper height once the item is rendered.
107
- const menuItemHeight = (_b = (_a = this.menu) === null || _a === void 0 ? void 0 : _a.querySelector('six-menu-item')) === null || _b === void 0 ? void 0 : _b.clientHeight;
108
- if (menuItemHeight && menuItemHeight > 0) {
109
- this.sixMenuItemHeight = menuItemHeight;
110
- }
111
- }
112
- getItems() {
113
- if (this.items !== null && this.items !== undefined) {
114
- return this.items.map(mapToMenuItem);
115
- }
116
- const slot = this.menu.querySelector('slot');
117
- return [...slot.assignedElements({ flatten: true })].filter((el) => isSIXMenuItemElement(el) && !el.disabled);
118
- }
119
- getActiveItemIndex() {
120
- const items = this.getItems();
121
- const selectedItem = this.getActiveItem();
122
- const itemIndex = items.indexOf(selectedItem);
123
- if (itemIndex > -1) {
124
- return itemIndex;
125
- }
126
- const sixMenuItems = this.extractItemsFromDOM();
127
- return sixMenuItems.findIndex(isFocusedMenuItem);
128
- }
129
- getActiveItem() {
130
- var _a;
131
- const activeElement = this.getItems().find((i) => i === document.activeElement);
132
- if (activeElement) {
133
- return activeElement;
134
- }
135
- return (_a = this.extractItemsFromDOM()) === null || _a === void 0 ? void 0 : _a.find(isFocusedMenuItem);
136
- }
137
- extractItemsFromDOM() {
138
- var _a, _b;
139
- return Array.from((_b = (_a = this.host) === null || _a === void 0 ? void 0 : _a.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelectorAll('six-menu-item'));
140
- }
141
- setActiveItem(item) {
142
- item.setFocus();
143
- }
144
- handleClick(event) {
145
- const target = event.target;
146
- const clickedItem = target.closest('six-menu-item');
147
- if (clickedItem && !clickedItem.disabled) {
148
- this.sixMenuItemSelected.emit({ name: clickedItem.value, item: clickedItem });
149
- }
150
- }
151
- handleKeyDown(event) {
152
- // Make a selection when pressing enter
153
- if (event.key === 'Enter') {
154
- const activeItem = this.getActiveItem();
155
- event.preventDefault();
156
- if (activeItem) {
157
- this.sixMenuItemSelected.emit({ name: activeItem.value, item: activeItem });
158
- }
159
- }
160
- // Prevent scrolling when space is pressed
161
- if (event.key === ' ') {
162
- event.preventDefault();
163
- }
164
- // Move the selection when pressing down or up
165
- if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {
166
- const items = this.items === null ? this.getItems() : this.extractItemsFromDOM();
167
- let indexOfActiveItem = this.getActiveItemIndex();
168
- if (items.length) {
169
- event.preventDefault();
170
- if (event.key === 'ArrowDown') {
171
- indexOfActiveItem++;
172
- }
173
- else if (event.key === 'ArrowUp') {
174
- indexOfActiveItem--;
175
- }
176
- else if (event.key === 'Home') {
177
- indexOfActiveItem = 0;
178
- }
179
- else if (event.key === 'End') {
180
- indexOfActiveItem = items.length - 1;
181
- }
182
- if (indexOfActiveItem < 0)
183
- indexOfActiveItem = 0;
184
- if (indexOfActiveItem > items.length - 1)
185
- indexOfActiveItem = items.length - 1;
186
- this.setActiveItem(items[indexOfActiveItem]);
187
- return;
188
- }
189
- }
190
- void this.typeToSelect(event.key);
191
- }
192
- getMenuWrapperStyle() {
193
- const styles = {};
194
- if (this.getItemsShown() > 0) {
195
- // calculate the proper height to show the correct number of items
196
- styles.height = `${this.getItemsShown() * this.sixMenuItemHeight}px`;
197
- }
198
- return Object.assign({}, styles);
199
- }
200
- getMenuContainerStyle() {
201
- const styles = {};
202
- if (this.virtualScroll) {
203
- // calculate height of content are if all items would be rendered so the scrollbar has the proper size
204
- styles.transform = `translateY(${this.sixMenuItemHeight * this.scrollingIndex}px)`;
205
- }
206
- return Object.assign({}, styles);
207
- }
208
- getScrollbarGhostStyle() {
209
- const styles = {};
210
- if (this.virtualScroll && this.items !== null) {
211
- styles.height = `${this.items.length * this.sixMenuItemHeight - this.itemSize * this.sixMenuItemHeight}px`;
212
- }
213
- return Object.assign({}, styles);
214
- }
215
- renderItems() {
216
- if (this.items === undefined || this.items === null) {
217
- return;
218
- }
219
- if (!this.virtualScroll) {
220
- return this.items.map(mapToMenuItem);
221
- }
222
- return this.items
223
- .slice(this.scrollingIndex, Math.min(this.items.length, this.itemSize + this.scrollingIndex))
224
- .map(mapToMenuItem);
225
- }
226
- render() {
227
- return (h("div", { ref: (el) => (this.menuWrapper = el), style: this.getMenuWrapperStyle(), part: "wrapper", class: {
228
- menu: true,
229
- 'menu--noshadow': this.removeBoxShadow,
230
- 'menu__wrapper--scrollable': this.getItemsShown() > 0,
231
- } },
232
- h("div", { ref: (el) => (this.menu = el), part: "base", role: "menu", onClick: this.handleClick, onKeyDown: this.handleKeyDown, tabIndex: 0, style: this.getMenuContainerStyle() },
233
- h("slot", null),
234
- this.renderItems()),
235
- this.virtualScroll && h("div", { style: this.getScrollbarGhostStyle() })));
236
- }
237
- static get is() { return "six-menu"; }
238
- static get encapsulation() { return "shadow"; }
239
- static get originalStyleUrls() { return {
240
- "$": ["six-menu.scss"]
241
- }; }
242
- static get styleUrls() { return {
243
- "$": ["six-menu.css"]
244
- }; }
245
- static get properties() { return {
246
- "removeBoxShadow": {
247
- "type": "boolean",
248
- "mutable": false,
249
- "complexType": {
250
- "original": "boolean",
251
- "resolved": "boolean",
252
- "references": {}
253
- },
254
- "required": false,
255
- "optional": false,
256
- "docs": {
257
- "tags": [],
258
- "text": "Set to true to remove the box-shadow"
259
- },
260
- "attribute": "remove-box-shadow",
261
- "reflect": false,
262
- "defaultValue": "false"
263
- },
264
- "items": {
265
- "type": "unknown",
266
- "mutable": false,
267
- "complexType": {
268
- "original": "SixMenuItemData[] | null",
269
- "resolved": "SixMenuItemData[]",
270
- "references": {
271
- "SixMenuItemData": {
272
- "location": "local"
273
- }
274
- }
275
- },
276
- "required": false,
277
- "optional": false,
278
- "docs": {
279
- "tags": [],
280
- "text": "Set the options to be shown in the dropdown"
281
- },
282
- "defaultValue": "null"
283
- },
284
- "itemsShown": {
285
- "type": "number",
286
- "mutable": false,
287
- "complexType": {
288
- "original": "number",
289
- "resolved": "number",
290
- "references": {}
291
- },
292
- "required": false,
293
- "optional": true,
294
- "docs": {
295
- "tags": [],
296
- "text": "Defines how many items should be shown. If the number of items is larger than this properties a scrollbar will be shown"
297
- },
298
- "attribute": "items-shown",
299
- "reflect": false,
300
- "defaultValue": "ITEMS_SHOWN_NOT_SET"
301
- },
302
- "virtualScroll": {
303
- "type": "boolean",
304
- "mutable": false,
305
- "complexType": {
306
- "original": "boolean",
307
- "resolved": "boolean",
308
- "references": {}
309
- },
310
- "required": false,
311
- "optional": false,
312
- "docs": {
313
- "tags": [],
314
- "text": "Defines whether the menu list will be rendered virtually i.e. only the elements actually shown (and a couple around)\nare actually rendered in the DOM. If you use virtual scrolling pass the elements via prop instead of via slot."
315
- },
316
- "attribute": "virtual-scroll",
317
- "reflect": false,
318
- "defaultValue": "false"
319
- },
320
- "itemSize": {
321
- "type": "number",
322
- "mutable": false,
323
- "complexType": {
324
- "original": "number",
325
- "resolved": "number",
326
- "references": {}
327
- },
328
- "required": false,
329
- "optional": false,
330
- "docs": {
331
- "tags": [],
332
- "text": "Used for virtual scrolling\nDefine how many items should be rendered in the DOM when using virtual scrolling"
333
- },
334
- "attribute": "item-size",
335
- "reflect": false,
336
- "defaultValue": "10"
337
- },
338
- "scrollingDebounce": {
339
- "type": "number",
340
- "mutable": false,
341
- "complexType": {
342
- "original": "number",
343
- "resolved": "number",
344
- "references": {}
345
- },
346
- "required": false,
347
- "optional": false,
348
- "docs": {
349
- "tags": [],
350
- "text": "Used for virtual scrolling\nDefine the debounce for listening on scrolling changes in milliseconds.\nThe lower the number the more sensitive the component reacts to scrolling changes."
351
- },
352
- "attribute": "scrolling-debounce",
353
- "reflect": false,
354
- "defaultValue": "15"
355
- }
356
- }; }
357
- static get states() { return {
358
- "scrollingIndex": {},
359
- "sixMenuItemHeight": {}
360
- }; }
361
- static get events() { return [{
362
- "method": "sixMenuItemSelected",
363
- "name": "six-menu-item-selected",
364
- "bubbles": true,
365
- "cancelable": true,
366
- "composed": true,
367
- "docs": {
368
- "tags": [],
369
- "text": "Emitted when a menu item is selected."
370
- },
371
- "complexType": {
372
- "original": "SixMenuItemSelectedPayload",
373
- "resolved": "SixMenuItemSelectedPayload",
374
- "references": {
375
- "SixMenuItemSelectedPayload": {
376
- "location": "local"
377
- }
378
- }
379
- }
380
- }]; }
381
- static get methods() { return {
382
- "typeToSelect": {
383
- "complexType": {
384
- "signature": "(key: string) => Promise<void>",
385
- "parameters": [{
386
- "tags": [],
387
- "text": ""
388
- }],
389
- "references": {
390
- "Promise": {
391
- "location": "global"
392
- },
393
- "HTMLSlotElement": {
394
- "location": "global"
395
- }
396
- },
397
- "return": "Promise<void>"
398
- },
399
- "docs": {
400
- "text": "Initiates type-to-select logic, which automatically selects an option based on what the user is currently typing.\nThe key passed will be appended to the internal query and the selection will be updated. After a brief period, the\ninternal query is cleared automatically. This method is intended to be used with the keydown event. Useful for\nenabling type-to-select when the menu doesn't have focus.",
401
- "tags": []
402
- }
403
- }
404
- }; }
405
- static get elementRef() { return "host"; }
406
- }
1
+ import { Component, Element, Event, h, Method, Prop, State } from '@stencil/core';
2
+ import { getTextContent } from '../../utils/slot';
3
+ import { EventListeners } from '../../utils/event-listeners';
4
+ import { debounce } from '../../utils/execution-control';
5
+ const isFocusedMenuItem = (menuItem) => { var _a, _b, _c; return (_c = (_b = (_a = menuItem === null || menuItem === void 0 ? void 0 : menuItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.menu-item')) === null || _b === void 0 ? void 0 : _b.classList) === null || _c === void 0 ? void 0 : _c.contains('menu-item--focused'); };
6
+ const isSIXMenuItemElement = (el) => (el === null || el === void 0 ? void 0 : el.tagName.toLowerCase()) === 'six-menu-item';
7
+ const mapToMenuItem = ({ value, label }) => h("six-menu-item", { value: value }, label);
8
+ const DEFAULT_NUMBER_OF_ITEMS_SHOWN_FOR_VIRTUAL_SCROLLING = 5;
9
+ const DEFAULT_SIX_MENU_ITEM_HEIGHT = 64;
10
+ const ITEMS_SHOWN_NOT_SET = undefined;
11
+ /**
12
+ * @since 1.0
13
+ * @status stable
14
+ *
15
+ * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.
16
+ *
17
+ * @slot - The menu's content, including menu items, menu dividers, and menu labels.
18
+ *
19
+ * @part base - The component's base wrapper.
20
+ */
21
+ export class SixMenu {
22
+ constructor() {
23
+ this.eventListeners = new EventListeners();
24
+ this.typeToSelectString = '';
25
+ /** Set to true to remove the box-shadow */
26
+ this.removeBoxShadow = false;
27
+ /** Set the options to be shown in the dropdown */
28
+ this.items = null;
29
+ /** Defines how many items should be shown. If the number of items is larger than this properties a scrollbar will be shown */
30
+ this.itemsShown = ITEMS_SHOWN_NOT_SET;
31
+ /** Defines whether the menu list will be rendered virtually i.e. only the elements actually shown (and a couple around)
32
+ * are actually rendered in the DOM. If you use virtual scrolling pass the elements via prop instead of via slot. */
33
+ this.virtualScroll = false;
34
+ /**
35
+ * Used for virtual scrolling
36
+ * Define how many items should be rendered in the DOM when using virtual scrolling
37
+ */
38
+ this.itemSize = 10;
39
+ /**
40
+ * Used for virtual scrolling
41
+ * Define the debounce for listening on scrolling changes in milliseconds.
42
+ * The lower the number the more sensitive the component reacts to scrolling changes.
43
+ */
44
+ this.scrollingDebounce = 15;
45
+ /**
46
+ * Used to calculate which items should be rendered in the DOM
47
+ */
48
+ this.scrollingIndex = 0;
49
+ // set a default item height, this variable will be updated with the real value after the first render.
50
+ // However, it's necessary to have a default value because we can only fetch the proper hight after the first render
51
+ this.sixMenuItemHeight = DEFAULT_SIX_MENU_ITEM_HEIGHT;
52
+ this.handleScrolling = () => {
53
+ // for performance improvements we only update the DOM if the scrollRatio change "enough"
54
+ this.scrollingIndex = Math.floor(this.menuWrapper.scrollTop / this.sixMenuItemHeight);
55
+ };
56
+ }
57
+ connectedCallback() {
58
+ this.handleClick = this.handleClick.bind(this);
59
+ this.handleKeyDown = this.handleKeyDown.bind(this);
60
+ }
61
+ componentWillLoad() {
62
+ if (this.items === null) {
63
+ return;
64
+ }
65
+ }
66
+ componentDidLoad() {
67
+ this.setupForVirtualScrollingAfterRendering();
68
+ }
69
+ disconnectedCallback() {
70
+ this.eventListeners.removeAll();
71
+ }
72
+ /**
73
+ * Initiates type-to-select logic, which automatically selects an option based on what the user is currently typing.
74
+ * The key passed will be appended to the internal query and the selection will be updated. After a brief period, the
75
+ * internal query is cleared automatically. This method is intended to be used with the keydown event. Useful for
76
+ * enabling type-to-select when the menu doesn't have focus.
77
+ */
78
+ async typeToSelect(key) {
79
+ var _a;
80
+ clearTimeout(this.typeToSelectTimeout);
81
+ this.typeToSelectTimeout = setTimeout(() => (this.typeToSelectString = ''), 750);
82
+ this.typeToSelectString += key.toLowerCase();
83
+ const items = this.getItems();
84
+ for (const item of items) {
85
+ const slot = (_a = item.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
86
+ const label = getTextContent(slot).toLowerCase().trim();
87
+ if (label.substring(0, this.typeToSelectString.length) === this.typeToSelectString) {
88
+ item.setFocus();
89
+ break;
90
+ }
91
+ }
92
+ }
93
+ getItemsShown() {
94
+ var _a;
95
+ const defaultItemsShown = this.virtualScroll
96
+ ? DEFAULT_NUMBER_OF_ITEMS_SHOWN_FOR_VIRTUAL_SCROLLING
97
+ : ITEMS_SHOWN_NOT_SET;
98
+ return (_a = this.itemsShown) !== null && _a !== void 0 ? _a : defaultItemsShown;
99
+ }
100
+ setupForVirtualScrollingAfterRendering() {
101
+ var _a, _b;
102
+ if (!this.virtualScroll) {
103
+ return;
104
+ }
105
+ this.eventListeners.add(this.menuWrapper, 'scroll', debounce(this.handleScrolling, this.scrollingDebounce));
106
+ // set menu height to proper height once the item is rendered.
107
+ const menuItemHeight = (_b = (_a = this.menu) === null || _a === void 0 ? void 0 : _a.querySelector('six-menu-item')) === null || _b === void 0 ? void 0 : _b.clientHeight;
108
+ if (menuItemHeight && menuItemHeight > 0) {
109
+ this.sixMenuItemHeight = menuItemHeight;
110
+ }
111
+ }
112
+ getItems() {
113
+ if (this.items !== null && this.items !== undefined) {
114
+ return this.items.map(mapToMenuItem);
115
+ }
116
+ const slot = this.menu.querySelector('slot');
117
+ return [...slot.assignedElements({ flatten: true })].filter((el) => isSIXMenuItemElement(el) && !el.disabled);
118
+ }
119
+ getActiveItemIndex() {
120
+ const items = this.getItems();
121
+ const selectedItem = this.getActiveItem();
122
+ const itemIndex = items.indexOf(selectedItem);
123
+ if (itemIndex > -1) {
124
+ return itemIndex;
125
+ }
126
+ const sixMenuItems = this.extractItemsFromDOM();
127
+ return sixMenuItems.findIndex(isFocusedMenuItem);
128
+ }
129
+ getActiveItem() {
130
+ var _a;
131
+ const activeElement = this.getItems().find((i) => i === document.activeElement);
132
+ if (activeElement) {
133
+ return activeElement;
134
+ }
135
+ return (_a = this.extractItemsFromDOM()) === null || _a === void 0 ? void 0 : _a.find(isFocusedMenuItem);
136
+ }
137
+ extractItemsFromDOM() {
138
+ var _a, _b;
139
+ return Array.from((_b = (_a = this.host) === null || _a === void 0 ? void 0 : _a.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelectorAll('six-menu-item'));
140
+ }
141
+ setActiveItem(item) {
142
+ item.setFocus();
143
+ }
144
+ handleClick(event) {
145
+ const target = event.target;
146
+ const clickedItem = target.closest('six-menu-item');
147
+ if (clickedItem && !clickedItem.disabled) {
148
+ this.sixMenuItemSelected.emit({ name: clickedItem.value, item: clickedItem });
149
+ }
150
+ }
151
+ handleKeyDown(event) {
152
+ // Make a selection when pressing enter
153
+ if (event.key === 'Enter') {
154
+ const activeItem = this.getActiveItem();
155
+ event.preventDefault();
156
+ if (activeItem) {
157
+ this.sixMenuItemSelected.emit({ name: activeItem.value, item: activeItem });
158
+ }
159
+ }
160
+ // Prevent scrolling when space is pressed
161
+ if (event.key === ' ') {
162
+ event.preventDefault();
163
+ }
164
+ // Move the selection when pressing down or up
165
+ if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {
166
+ const items = this.items === null ? this.getItems() : this.extractItemsFromDOM();
167
+ let indexOfActiveItem = this.getActiveItemIndex();
168
+ if (items.length) {
169
+ event.preventDefault();
170
+ if (event.key === 'ArrowDown') {
171
+ indexOfActiveItem++;
172
+ }
173
+ else if (event.key === 'ArrowUp') {
174
+ indexOfActiveItem--;
175
+ }
176
+ else if (event.key === 'Home') {
177
+ indexOfActiveItem = 0;
178
+ }
179
+ else if (event.key === 'End') {
180
+ indexOfActiveItem = items.length - 1;
181
+ }
182
+ if (indexOfActiveItem < 0)
183
+ indexOfActiveItem = 0;
184
+ if (indexOfActiveItem > items.length - 1)
185
+ indexOfActiveItem = items.length - 1;
186
+ this.setActiveItem(items[indexOfActiveItem]);
187
+ return;
188
+ }
189
+ }
190
+ void this.typeToSelect(event.key);
191
+ }
192
+ getMenuWrapperStyle() {
193
+ const styles = {};
194
+ if (this.getItemsShown() > 0) {
195
+ // calculate the proper height to show the correct number of items
196
+ styles.height = `${this.getItemsShown() * this.sixMenuItemHeight}px`;
197
+ }
198
+ return Object.assign({}, styles);
199
+ }
200
+ getMenuContainerStyle() {
201
+ const styles = {};
202
+ if (this.virtualScroll) {
203
+ // calculate height of content are if all items would be rendered so the scrollbar has the proper size
204
+ styles.transform = `translateY(${this.sixMenuItemHeight * this.scrollingIndex}px)`;
205
+ }
206
+ return Object.assign({}, styles);
207
+ }
208
+ getScrollbarGhostStyle() {
209
+ const styles = {};
210
+ if (this.virtualScroll && this.items !== null) {
211
+ styles.height = `${this.items.length * this.sixMenuItemHeight - this.itemSize * this.sixMenuItemHeight}px`;
212
+ }
213
+ return Object.assign({}, styles);
214
+ }
215
+ renderItems() {
216
+ if (this.items === undefined || this.items === null) {
217
+ return;
218
+ }
219
+ if (!this.virtualScroll) {
220
+ return this.items.map(mapToMenuItem);
221
+ }
222
+ return this.items
223
+ .slice(this.scrollingIndex, Math.min(this.items.length, this.itemSize + this.scrollingIndex))
224
+ .map(mapToMenuItem);
225
+ }
226
+ render() {
227
+ return (h("div", { ref: (el) => (this.menuWrapper = el), style: this.getMenuWrapperStyle(), part: "wrapper", class: {
228
+ menu: true,
229
+ 'menu--noshadow': this.removeBoxShadow,
230
+ 'menu__wrapper--scrollable': this.getItemsShown() > 0,
231
+ } },
232
+ h("div", { ref: (el) => (this.menu = el), part: "base", role: "menu", onClick: this.handleClick, onKeyDown: this.handleKeyDown, tabIndex: 0, style: this.getMenuContainerStyle() },
233
+ h("slot", null),
234
+ this.renderItems()),
235
+ this.virtualScroll && h("div", { style: this.getScrollbarGhostStyle() })));
236
+ }
237
+ static get is() { return "six-menu"; }
238
+ static get encapsulation() { return "shadow"; }
239
+ static get originalStyleUrls() { return {
240
+ "$": ["six-menu.scss"]
241
+ }; }
242
+ static get styleUrls() { return {
243
+ "$": ["six-menu.css"]
244
+ }; }
245
+ static get properties() { return {
246
+ "removeBoxShadow": {
247
+ "type": "boolean",
248
+ "mutable": false,
249
+ "complexType": {
250
+ "original": "boolean",
251
+ "resolved": "boolean",
252
+ "references": {}
253
+ },
254
+ "required": false,
255
+ "optional": false,
256
+ "docs": {
257
+ "tags": [],
258
+ "text": "Set to true to remove the box-shadow"
259
+ },
260
+ "attribute": "remove-box-shadow",
261
+ "reflect": false,
262
+ "defaultValue": "false"
263
+ },
264
+ "items": {
265
+ "type": "unknown",
266
+ "mutable": false,
267
+ "complexType": {
268
+ "original": "SixMenuItemData[] | null",
269
+ "resolved": "SixMenuItemData[]",
270
+ "references": {
271
+ "SixMenuItemData": {
272
+ "location": "local"
273
+ }
274
+ }
275
+ },
276
+ "required": false,
277
+ "optional": false,
278
+ "docs": {
279
+ "tags": [],
280
+ "text": "Set the options to be shown in the dropdown"
281
+ },
282
+ "defaultValue": "null"
283
+ },
284
+ "itemsShown": {
285
+ "type": "number",
286
+ "mutable": false,
287
+ "complexType": {
288
+ "original": "number",
289
+ "resolved": "number",
290
+ "references": {}
291
+ },
292
+ "required": false,
293
+ "optional": true,
294
+ "docs": {
295
+ "tags": [],
296
+ "text": "Defines how many items should be shown. If the number of items is larger than this properties a scrollbar will be shown"
297
+ },
298
+ "attribute": "items-shown",
299
+ "reflect": false,
300
+ "defaultValue": "ITEMS_SHOWN_NOT_SET"
301
+ },
302
+ "virtualScroll": {
303
+ "type": "boolean",
304
+ "mutable": false,
305
+ "complexType": {
306
+ "original": "boolean",
307
+ "resolved": "boolean",
308
+ "references": {}
309
+ },
310
+ "required": false,
311
+ "optional": false,
312
+ "docs": {
313
+ "tags": [],
314
+ "text": "Defines whether the menu list will be rendered virtually i.e. only the elements actually shown (and a couple around)\nare actually rendered in the DOM. If you use virtual scrolling pass the elements via prop instead of via slot."
315
+ },
316
+ "attribute": "virtual-scroll",
317
+ "reflect": false,
318
+ "defaultValue": "false"
319
+ },
320
+ "itemSize": {
321
+ "type": "number",
322
+ "mutable": false,
323
+ "complexType": {
324
+ "original": "number",
325
+ "resolved": "number",
326
+ "references": {}
327
+ },
328
+ "required": false,
329
+ "optional": false,
330
+ "docs": {
331
+ "tags": [],
332
+ "text": "Used for virtual scrolling\nDefine how many items should be rendered in the DOM when using virtual scrolling"
333
+ },
334
+ "attribute": "item-size",
335
+ "reflect": false,
336
+ "defaultValue": "10"
337
+ },
338
+ "scrollingDebounce": {
339
+ "type": "number",
340
+ "mutable": false,
341
+ "complexType": {
342
+ "original": "number",
343
+ "resolved": "number",
344
+ "references": {}
345
+ },
346
+ "required": false,
347
+ "optional": false,
348
+ "docs": {
349
+ "tags": [],
350
+ "text": "Used for virtual scrolling\nDefine the debounce for listening on scrolling changes in milliseconds.\nThe lower the number the more sensitive the component reacts to scrolling changes."
351
+ },
352
+ "attribute": "scrolling-debounce",
353
+ "reflect": false,
354
+ "defaultValue": "15"
355
+ }
356
+ }; }
357
+ static get states() { return {
358
+ "scrollingIndex": {},
359
+ "sixMenuItemHeight": {}
360
+ }; }
361
+ static get events() { return [{
362
+ "method": "sixMenuItemSelected",
363
+ "name": "six-menu-item-selected",
364
+ "bubbles": true,
365
+ "cancelable": true,
366
+ "composed": true,
367
+ "docs": {
368
+ "tags": [],
369
+ "text": "Emitted when a menu item is selected."
370
+ },
371
+ "complexType": {
372
+ "original": "SixMenuItemSelectedPayload",
373
+ "resolved": "SixMenuItemSelectedPayload",
374
+ "references": {
375
+ "SixMenuItemSelectedPayload": {
376
+ "location": "local"
377
+ }
378
+ }
379
+ }
380
+ }]; }
381
+ static get methods() { return {
382
+ "typeToSelect": {
383
+ "complexType": {
384
+ "signature": "(key: string) => Promise<void>",
385
+ "parameters": [{
386
+ "tags": [],
387
+ "text": ""
388
+ }],
389
+ "references": {
390
+ "Promise": {
391
+ "location": "global"
392
+ },
393
+ "HTMLSlotElement": {
394
+ "location": "global"
395
+ }
396
+ },
397
+ "return": "Promise<void>"
398
+ },
399
+ "docs": {
400
+ "text": "Initiates type-to-select logic, which automatically selects an option based on what the user is currently typing.\nThe key passed will be appended to the internal query and the selection will be updated. After a brief period, the\ninternal query is cleared automatically. This method is intended to be used with the keydown event. Useful for\nenabling type-to-select when the menu doesn't have focus.",
401
+ "tags": []
402
+ }
403
+ }
404
+ }; }
405
+ static get elementRef() { return "host"; }
406
+ }