@six-group/ui-library 0.0.0-insider.d16ec8e → 0.0.0-insider.d82aaa2

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 (821) hide show
  1. package/README.md +9 -0
  2. package/dist/cjs/{event-listeners-dd94dcfb.js → event-listeners-fdfe838c.js} +17 -1
  3. package/dist/cjs/event-listeners-fdfe838c.js.map +1 -0
  4. package/dist/cjs/{execution-control-45c84c46.js → execution-control-b4707294.js} +1 -1
  5. package/dist/cjs/execution-control-b4707294.js.map +1 -0
  6. package/dist/cjs/{focus-visible-e0d93a95.js → focus-visible-ae2470dd.js} +1 -1
  7. package/dist/cjs/focus-visible-ae2470dd.js.map +1 -0
  8. package/dist/cjs/form-2df8c5bb.js +20 -0
  9. package/dist/cjs/form-2df8c5bb.js.map +1 -0
  10. package/dist/cjs/{form-control-7494488a.js → form-control-d369af14.js} +3 -5
  11. package/dist/cjs/form-control-d369af14.js.map +1 -0
  12. package/dist/cjs/{index-ccf35821.js → index-900437fc.js} +396 -57
  13. package/dist/cjs/index-900437fc.js.map +1 -0
  14. package/dist/cjs/index.cjs.js +94 -0
  15. package/dist/cjs/index.cjs.js.map +1 -1
  16. package/dist/cjs/loader.cjs.js +3 -12
  17. package/dist/cjs/loader.cjs.js.map +1 -1
  18. package/dist/cjs/{modal-21350fb5.js → modal-d5f074c7.js} +1 -1
  19. package/dist/cjs/modal-d5f074c7.js.map +1 -0
  20. package/dist/cjs/{popover-b5e2d5ef.js → popover-2df7e154.js} +7 -13
  21. package/dist/cjs/popover-2df7e154.js.map +1 -0
  22. package/dist/cjs/{popup-44836aaf.js → popup-f1d9910f.js} +1 -1
  23. package/dist/cjs/popup-f1d9910f.js.map +1 -0
  24. package/dist/cjs/{scroll-76e6f5d7.js → scroll-03678de1.js} +1 -1
  25. package/dist/cjs/scroll-03678de1.js.map +1 -0
  26. package/dist/cjs/set-attributes_2.cjs.entry.js +1 -1
  27. package/dist/cjs/set-attributes_2.cjs.entry.js.map +1 -1
  28. package/dist/cjs/six-alert.cjs.entry.js +1 -1
  29. package/dist/cjs/six-alert.cjs.entry.js.map +1 -1
  30. package/dist/cjs/six-avatar.cjs.entry.js +1 -1
  31. package/dist/cjs/six-avatar.cjs.entry.js.map +1 -1
  32. package/dist/cjs/six-badge.cjs.entry.js +1 -1
  33. package/dist/cjs/six-badge.cjs.entry.js.map +1 -1
  34. package/dist/cjs/six-button.cjs.entry.js +9 -3
  35. package/dist/cjs/six-button.cjs.entry.js.map +1 -1
  36. package/dist/cjs/six-card.cjs.entry.js +1 -1
  37. package/dist/cjs/six-card.cjs.entry.js.map +1 -1
  38. package/dist/cjs/six-checkbox.cjs.entry.js +11 -58
  39. package/dist/cjs/six-checkbox.cjs.entry.js.map +1 -1
  40. package/dist/cjs/six-datepicker.cjs.entry.js +29 -58
  41. package/dist/cjs/six-datepicker.cjs.entry.js.map +1 -1
  42. package/dist/cjs/six-details.cjs.entry.js +2 -2
  43. package/dist/cjs/six-details.cjs.entry.js.map +1 -1
  44. package/dist/cjs/six-dialog.cjs.entry.js +4 -4
  45. package/dist/cjs/six-dialog.cjs.entry.js.map +1 -1
  46. package/dist/cjs/six-drawer.cjs.entry.js +4 -4
  47. package/dist/cjs/six-drawer.cjs.entry.js.map +1 -1
  48. package/dist/cjs/six-dropdown_2.cjs.entry.js +5 -5
  49. package/dist/cjs/six-dropdown_2.cjs.entry.js.map +1 -1
  50. package/dist/cjs/six-error-page.cjs.entry.js +1 -1
  51. package/dist/cjs/six-error-page.cjs.entry.js.map +1 -1
  52. package/dist/cjs/six-file-list-item.cjs.entry.js +1 -1
  53. package/dist/cjs/six-file-list-item.cjs.entry.js.map +1 -1
  54. package/dist/cjs/six-file-list.cjs.entry.js +1 -1
  55. package/dist/cjs/six-file-list.cjs.entry.js.map +1 -1
  56. package/dist/cjs/six-file-upload.cjs.entry.js +1 -1
  57. package/dist/cjs/six-file-upload.cjs.entry.js.map +1 -1
  58. package/dist/cjs/six-footer.cjs.entry.js +1 -1
  59. package/dist/cjs/six-footer.cjs.entry.js.map +1 -1
  60. package/dist/cjs/six-group-label.cjs.entry.js +3 -3
  61. package/dist/cjs/six-group-label.cjs.entry.js.map +1 -1
  62. package/dist/cjs/six-header.cjs.entry.js +3 -3
  63. package/dist/cjs/six-header.cjs.entry.js.map +1 -1
  64. package/dist/cjs/six-icon-button.cjs.entry.js +2 -2
  65. package/dist/cjs/six-icon-button.cjs.entry.js.map +1 -1
  66. package/dist/cjs/six-icon.cjs.entry.js +1 -1
  67. package/dist/cjs/six-icon.cjs.entry.js.map +1 -1
  68. package/dist/cjs/six-input.cjs.entry.js +30 -89
  69. package/dist/cjs/six-input.cjs.entry.js.map +1 -1
  70. package/dist/cjs/six-item-picker.cjs.entry.js +6 -6
  71. package/dist/cjs/six-item-picker.cjs.entry.js.map +1 -1
  72. package/dist/cjs/six-language-switcher.cjs.entry.js +1 -1
  73. package/dist/cjs/six-language-switcher.cjs.entry.js.map +1 -1
  74. package/dist/cjs/six-layout-grid.cjs.entry.js +1 -1
  75. package/dist/cjs/six-layout-grid.cjs.entry.js.map +1 -1
  76. package/dist/cjs/six-main-container.cjs.entry.js +1 -1
  77. package/dist/cjs/six-main-container.cjs.entry.js.map +1 -1
  78. package/dist/cjs/six-menu-divider.cjs.entry.js +1 -1
  79. package/dist/cjs/six-menu-divider.cjs.entry.js.map +1 -1
  80. package/dist/cjs/six-menu-item.cjs.entry.js +2 -2
  81. package/dist/cjs/six-menu-item.cjs.entry.js.map +1 -1
  82. package/dist/cjs/six-menu-label.cjs.entry.js +1 -1
  83. package/dist/cjs/six-menu-label.cjs.entry.js.map +1 -1
  84. package/dist/cjs/six-picto.cjs.entry.js +1 -1
  85. package/dist/cjs/six-picto.cjs.entry.js.map +1 -1
  86. package/dist/cjs/six-progress-bar.cjs.entry.js +1 -1
  87. package/dist/cjs/six-progress-bar.cjs.entry.js.map +1 -1
  88. package/dist/cjs/six-progress-ring.cjs.entry.js +1 -1
  89. package/dist/cjs/six-progress-ring.cjs.entry.js.map +1 -1
  90. package/dist/cjs/six-radio.cjs.entry.js +26 -40
  91. package/dist/cjs/six-radio.cjs.entry.js.map +1 -1
  92. package/dist/cjs/six-range.cjs.entry.js +7 -45
  93. package/dist/cjs/six-range.cjs.entry.js.map +1 -1
  94. package/dist/cjs/six-root.cjs.entry.js +1 -1
  95. package/dist/cjs/six-root.cjs.entry.js.map +1 -1
  96. package/dist/cjs/six-search-field.cjs.entry.js +3 -3
  97. package/dist/cjs/six-search-field.cjs.entry.js.map +1 -1
  98. package/dist/cjs/six-select.cjs.entry.js +27 -66
  99. package/dist/cjs/six-select.cjs.entry.js.map +1 -1
  100. package/dist/cjs/six-sidebar-item-group.cjs.entry.js +2 -2
  101. package/dist/cjs/six-sidebar-item-group.cjs.entry.js.map +1 -1
  102. package/dist/cjs/six-sidebar-item.cjs.entry.js +1 -1
  103. package/dist/cjs/six-sidebar-item.cjs.entry.js.map +1 -1
  104. package/dist/cjs/six-sidebar.cjs.entry.js +2 -2
  105. package/dist/cjs/six-sidebar.cjs.entry.js.map +1 -1
  106. package/dist/cjs/six-spinner.cjs.entry.js +1 -1
  107. package/dist/cjs/six-spinner.cjs.entry.js.map +1 -1
  108. package/dist/cjs/six-switch.cjs.entry.js +21 -33
  109. package/dist/cjs/six-switch.cjs.entry.js.map +1 -1
  110. package/dist/cjs/six-tab-group.cjs.entry.js +3 -3
  111. package/dist/cjs/six-tab-group.cjs.entry.js.map +1 -1
  112. package/dist/cjs/six-tab-panel.cjs.entry.js +1 -1
  113. package/dist/cjs/six-tab-panel.cjs.entry.js.map +1 -1
  114. package/dist/cjs/six-tab.cjs.entry.js +1 -1
  115. package/dist/cjs/six-tab.cjs.entry.js.map +1 -1
  116. package/dist/cjs/six-tag.cjs.entry.js +2 -2
  117. package/dist/cjs/six-tag.cjs.entry.js.map +1 -1
  118. package/dist/cjs/six-textarea.cjs.entry.js +28 -77
  119. package/dist/cjs/six-textarea.cjs.entry.js.map +1 -1
  120. package/dist/cjs/six-tile.cjs.entry.js +2 -2
  121. package/dist/cjs/six-tile.cjs.entry.js.map +1 -1
  122. package/dist/cjs/six-timepicker.cjs.entry.js +21 -31
  123. package/dist/cjs/six-timepicker.cjs.entry.js.map +1 -1
  124. package/dist/cjs/six-tooltip.cjs.entry.js +2 -2
  125. package/dist/cjs/six-tooltip.cjs.entry.js.map +1 -1
  126. package/dist/cjs/{slot-bccbdb59.js → slot-6e6a400f.js} +1 -1
  127. package/dist/cjs/slot-6e6a400f.js.map +1 -0
  128. package/dist/cjs/{types-64878648.js → types-47199040.js} +1 -1
  129. package/dist/cjs/types-47199040.js.map +1 -0
  130. package/dist/cjs/ui-library.cjs.js +3 -6
  131. package/dist/cjs/ui-library.cjs.js.map +1 -1
  132. package/dist/collection/collection-manifest.json +54 -55
  133. package/dist/collection/components/six-alert/six-alert.js +15 -8
  134. package/dist/collection/components/six-alert/six-alert.js.map +1 -1
  135. package/dist/collection/components/six-alert/test/six-alert.spec.js +25 -0
  136. package/dist/collection/components/six-alert/test/six-alert.spec.js.map +1 -0
  137. package/dist/collection/components/six-avatar/six-avatar.js +1 -1
  138. package/dist/collection/components/six-avatar/test/six-avatar.spec.js +26 -0
  139. package/dist/collection/components/six-avatar/test/six-avatar.spec.js.map +1 -0
  140. package/dist/collection/components/six-badge/six-badge.js +1 -1
  141. package/dist/collection/components/six-badge/test/six-badge.spec.js +20 -0
  142. package/dist/collection/components/six-badge/test/six-badge.spec.js.map +1 -0
  143. package/dist/collection/components/six-button/six-button.js +19 -8
  144. package/dist/collection/components/six-button/six-button.js.map +1 -1
  145. package/dist/collection/components/six-button/test/six-button.spec.js +69 -0
  146. package/dist/collection/components/six-button/test/six-button.spec.js.map +1 -0
  147. package/dist/collection/components/six-card/six-card.js +1 -1
  148. package/dist/collection/components/six-card/test/six-card.spec.js +18 -0
  149. package/dist/collection/components/six-card/test/six-card.spec.js.map +1 -0
  150. package/dist/collection/components/six-checkbox/six-checkbox.js +37 -164
  151. package/dist/collection/components/six-checkbox/six-checkbox.js.map +1 -1
  152. package/dist/collection/components/six-checkbox/test/six-checkbox.spec.js +79 -0
  153. package/dist/collection/components/six-checkbox/test/six-checkbox.spec.js.map +1 -0
  154. package/dist/collection/components/six-datepicker/components/day-selection.js +1 -1
  155. package/dist/collection/components/six-datepicker/components/month-selection.js +2 -2
  156. package/dist/collection/components/six-datepicker/components/year-selection.js +2 -2
  157. package/dist/collection/components/six-datepicker/six-datepicker.js +120 -182
  158. package/dist/collection/components/six-datepicker/six-datepicker.js.map +1 -1
  159. package/dist/collection/components/six-datepicker/test/six-datepicker.spec.js +26 -0
  160. package/dist/collection/components/six-datepicker/test/six-datepicker.spec.js.map +1 -0
  161. package/dist/collection/components/six-details/six-details.js +14 -8
  162. package/dist/collection/components/six-details/six-details.js.map +1 -1
  163. package/dist/collection/components/six-details/test/six-details.spec.js +36 -0
  164. package/dist/collection/components/six-details/test/six-details.spec.js.map +1 -0
  165. package/dist/collection/components/six-dialog/six-dialog.js +21 -13
  166. package/dist/collection/components/six-dialog/six-dialog.js.map +1 -1
  167. package/dist/collection/components/six-dialog/test/six-dialog.spec.js +34 -0
  168. package/dist/collection/components/six-dialog/test/six-dialog.spec.js.map +1 -0
  169. package/dist/collection/components/six-drawer/six-drawer.js +21 -13
  170. package/dist/collection/components/six-drawer/six-drawer.js.map +1 -1
  171. package/dist/collection/components/six-drawer/test/six-drawer.spec.js +34 -0
  172. package/dist/collection/components/six-drawer/test/six-drawer.spec.js.map +1 -0
  173. package/dist/collection/components/six-dropdown/six-dropdown.js +30 -18
  174. package/dist/collection/components/six-dropdown/six-dropdown.js.map +1 -1
  175. package/dist/collection/components/six-dropdown/test/six-dropdown.spec.js +122 -0
  176. package/dist/collection/components/six-dropdown/test/six-dropdown.spec.js.map +1 -0
  177. package/dist/collection/components/six-error-page/six-error-page.js +1 -1
  178. package/dist/collection/components/six-error-page/test/six-error-page.spec.js +240 -0
  179. package/dist/collection/components/six-error-page/test/six-error-page.spec.js.map +1 -0
  180. package/dist/collection/components/six-file-list/six-file-list.js +1 -1
  181. package/dist/collection/components/six-file-list/test/six-file-list.spec.js +67 -0
  182. package/dist/collection/components/six-file-list/test/six-file-list.spec.js.map +1 -0
  183. package/dist/collection/components/six-file-list-item/six-file-list-item.js +5 -3
  184. package/dist/collection/components/six-file-list-item/six-file-list-item.js.map +1 -1
  185. package/dist/collection/components/six-file-list-item/test/six-file-list-item.spec.js +169 -0
  186. package/dist/collection/components/six-file-list-item/test/six-file-list-item.spec.js.map +1 -0
  187. package/dist/collection/components/six-file-upload/six-file-upload.js +5 -3
  188. package/dist/collection/components/six-file-upload/six-file-upload.js.map +1 -1
  189. package/dist/collection/components/six-file-upload/test/six-file-upload.spec.js +103 -0
  190. package/dist/collection/components/six-file-upload/test/six-file-upload.spec.js.map +1 -0
  191. package/dist/collection/components/six-footer/six-footer.js +1 -1
  192. package/dist/collection/components/six-footer/test/six-footer.spec.js +21 -0
  193. package/dist/collection/components/six-footer/test/six-footer.spec.js.map +1 -0
  194. package/dist/collection/components/six-group-label/six-group-label.js +5 -5
  195. package/dist/collection/components/six-group-label/six-group-label.js.map +1 -1
  196. package/dist/collection/components/six-group-label/test/six-group-label.spec.js +43 -0
  197. package/dist/collection/components/six-group-label/test/six-group-label.spec.js.map +1 -0
  198. package/dist/collection/components/six-header/six-header.js +19 -11
  199. package/dist/collection/components/six-header/six-header.js.map +1 -1
  200. package/dist/collection/components/six-header/test/six-header.spec.js +133 -0
  201. package/dist/collection/components/six-header/test/six-header.spec.js.map +1 -0
  202. package/dist/collection/components/six-icon/six-icon.js +1 -1
  203. package/dist/collection/components/six-icon/test/six-icon.spec.js +20 -0
  204. package/dist/collection/components/six-icon/test/six-icon.spec.js.map +1 -0
  205. package/dist/collection/components/six-icon-button/six-icon-button.js +2 -2
  206. package/dist/collection/components/six-icon-button/test/six-icon-button.spec.js +23 -0
  207. package/dist/collection/components/six-icon-button/test/six-icon-button.spec.js.map +1 -0
  208. package/dist/collection/components/six-input/six-input.css +1 -1
  209. package/dist/collection/components/six-input/six-input.js +91 -277
  210. package/dist/collection/components/six-input/six-input.js.map +1 -1
  211. package/dist/collection/components/six-input/test/six-input.spec.js +37 -0
  212. package/dist/collection/components/six-input/test/six-input.spec.js.map +1 -0
  213. package/dist/collection/components/six-item-picker/six-item-picker.js +14 -10
  214. package/dist/collection/components/six-item-picker/six-item-picker.js.map +1 -1
  215. package/dist/collection/components/six-item-picker/test/six-item-picker.spec.js +90 -0
  216. package/dist/collection/components/six-item-picker/test/six-item-picker.spec.js.map +1 -0
  217. package/dist/collection/components/six-language-switcher/six-language-switcher.js +5 -3
  218. package/dist/collection/components/six-language-switcher/six-language-switcher.js.map +1 -1
  219. package/dist/collection/components/six-language-switcher/test/six-language-switcher.spec.js +196 -0
  220. package/dist/collection/components/six-language-switcher/test/six-language-switcher.spec.js.map +1 -0
  221. package/dist/collection/components/six-layout-grid/six-layout-grid.js +1 -1
  222. package/dist/collection/components/six-layout-grid/test/six-layout-grid.spec.js +18 -0
  223. package/dist/collection/components/six-layout-grid/test/six-layout-grid.spec.js.map +1 -0
  224. package/dist/collection/components/six-main-container/six-main-container.js +1 -1
  225. package/dist/collection/components/six-main-container/test/six-main-container.spec.js +22 -0
  226. package/dist/collection/components/six-main-container/test/six-main-container.spec.js.map +1 -0
  227. package/dist/collection/components/six-menu/six-menu.js +12 -8
  228. package/dist/collection/components/six-menu/six-menu.js.map +1 -1
  229. package/dist/collection/components/six-menu/test/six-menu.spec.js +93 -0
  230. package/dist/collection/components/six-menu/test/six-menu.spec.js.map +1 -0
  231. package/dist/collection/components/six-menu-divider/six-menu-divider.js +1 -1
  232. package/dist/collection/components/six-menu-divider/test/six-menu-divider.spec.js +18 -0
  233. package/dist/collection/components/six-menu-divider/test/six-menu-divider.spec.js.map +1 -0
  234. package/dist/collection/components/six-menu-item/six-menu-item.js +10 -6
  235. package/dist/collection/components/six-menu-item/six-menu-item.js.map +1 -1
  236. package/dist/collection/components/six-menu-item/test/six-menu-item.spec.js +33 -0
  237. package/dist/collection/components/six-menu-item/test/six-menu-item.spec.js.map +1 -0
  238. package/dist/collection/components/six-menu-label/six-menu-label.js +1 -1
  239. package/dist/collection/components/six-menu-label/test/six-menu-label.spec.js +20 -0
  240. package/dist/collection/components/six-menu-label/test/six-menu-label.spec.js.map +1 -0
  241. package/dist/collection/components/six-picto/six-picto.js +1 -1
  242. package/dist/collection/components/six-picto/test/six-picto.spec.js +33 -0
  243. package/dist/collection/components/six-picto/test/six-picto.spec.js.map +1 -0
  244. package/dist/collection/components/six-progress-bar/six-progress-bar.js +1 -1
  245. package/dist/collection/components/six-progress-bar/test/six-progress-bar.spec.js +24 -0
  246. package/dist/collection/components/six-progress-bar/test/six-progress-bar.spec.js.map +1 -0
  247. package/dist/collection/components/six-progress-ring/six-progress-ring.js +1 -1
  248. package/dist/collection/components/six-progress-ring/test/six-progress-ring.spec.js +26 -0
  249. package/dist/collection/components/six-progress-ring/test/six-progress-ring.spec.js.map +1 -0
  250. package/dist/collection/components/six-radio/six-radio.js +42 -115
  251. package/dist/collection/components/six-radio/six-radio.js.map +1 -1
  252. package/dist/collection/components/six-radio/test/six-radio.spec.js +63 -0
  253. package/dist/collection/components/six-radio/test/six-radio.spec.js.map +1 -0
  254. package/dist/collection/components/six-range/six-range.js +43 -129
  255. package/dist/collection/components/six-range/six-range.js.map +1 -1
  256. package/dist/collection/components/six-range/test/six-range.spec.js +32 -0
  257. package/dist/collection/components/six-range/test/six-range.spec.js.map +1 -0
  258. package/dist/collection/components/six-root/six-root.js +5 -3
  259. package/dist/collection/components/six-root/six-root.js.map +1 -1
  260. package/dist/collection/components/six-root/test/six-root.spec.js +43 -0
  261. package/dist/collection/components/six-root/test/six-root.spec.js.map +1 -0
  262. package/dist/collection/components/six-search-field/six-search-field.js +5 -4
  263. package/dist/collection/components/six-search-field/six-search-field.js.map +1 -1
  264. package/dist/collection/components/six-search-field/test/six-search-field.spec.js +22 -0
  265. package/dist/collection/components/six-search-field/test/six-search-field.spec.js.map +1 -0
  266. package/dist/collection/components/six-select/six-select.css +6 -9
  267. package/dist/collection/components/six-select/six-select.js +75 -190
  268. package/dist/collection/components/six-select/six-select.js.map +1 -1
  269. package/dist/collection/components/six-select/test/six-select.spec.js +82 -0
  270. package/dist/collection/components/six-select/test/six-select.spec.js.map +1 -0
  271. package/dist/collection/components/six-select/test/util.spec.js +81 -0
  272. package/dist/collection/components/six-select/test/util.spec.js.map +1 -0
  273. package/dist/collection/components/six-sidebar/six-sidebar.js +26 -14
  274. package/dist/collection/components/six-sidebar/six-sidebar.js.map +1 -1
  275. package/dist/collection/components/six-sidebar/test/six-sidebar.spec.js +22 -0
  276. package/dist/collection/components/six-sidebar/test/six-sidebar.spec.js.map +1 -0
  277. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js +1 -1
  278. package/dist/collection/components/six-sidebar-item/test/six-sidebar-item.spec.js +50 -0
  279. package/dist/collection/components/six-sidebar-item/test/six-sidebar-item.spec.js.map +1 -0
  280. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js +2 -2
  281. package/dist/collection/components/six-sidebar-item-group/test/six-sidebar-item-group.spec.js +53 -0
  282. package/dist/collection/components/six-sidebar-item-group/test/six-sidebar-item-group.spec.js.map +1 -0
  283. package/dist/collection/components/six-spinner/six-spinner.js +1 -1
  284. package/dist/collection/components/six-spinner/test/six-spinner.spec.js +37 -0
  285. package/dist/collection/components/six-spinner/test/six-spinner.spec.js.map +1 -0
  286. package/dist/collection/components/six-stage-indicator/six-stage-indicator.js +3 -2
  287. package/dist/collection/components/six-stage-indicator/six-stage-indicator.js.map +1 -1
  288. package/dist/collection/components/six-stage-indicator/test/six-stage-indicator.spec.js +117 -0
  289. package/dist/collection/components/six-stage-indicator/test/six-stage-indicator.spec.js.map +1 -0
  290. package/dist/collection/components/six-switch/six-switch.css +77 -0
  291. package/dist/collection/components/six-switch/six-switch.js +67 -106
  292. package/dist/collection/components/six-switch/six-switch.js.map +1 -1
  293. package/dist/collection/components/six-switch/test/six-switch.spec.js +69 -0
  294. package/dist/collection/components/six-switch/test/six-switch.spec.js.map +1 -0
  295. package/dist/collection/components/six-tab/six-tab.js +9 -5
  296. package/dist/collection/components/six-tab/six-tab.js.map +1 -1
  297. package/dist/collection/components/six-tab/test/six-tab.spec.js +20 -0
  298. package/dist/collection/components/six-tab/test/six-tab.spec.js.map +1 -0
  299. package/dist/collection/components/six-tab-group/six-tab-group.js +10 -7
  300. package/dist/collection/components/six-tab-group/six-tab-group.js.map +1 -1
  301. package/dist/collection/components/six-tab-group/test/six-tab-group.spec.js +45 -0
  302. package/dist/collection/components/six-tab-group/test/six-tab-group.spec.js.map +1 -0
  303. package/dist/collection/components/six-tab-panel/six-tab-panel.js +1 -1
  304. package/dist/collection/components/six-tab-panel/test/six-tab-panel.spec.js +20 -0
  305. package/dist/collection/components/six-tab-panel/test/six-tab-panel.spec.js.map +1 -0
  306. package/dist/collection/components/six-tag/six-tag.css +6 -0
  307. package/dist/collection/components/six-tag/six-tag.js +3 -2
  308. package/dist/collection/components/six-tag/six-tag.js.map +1 -1
  309. package/dist/collection/components/six-tag/test/six-tag.spec.js +42 -0
  310. package/dist/collection/components/six-tag/test/six-tag.spec.js.map +1 -0
  311. package/dist/collection/components/six-textarea/six-textarea.js +88 -213
  312. package/dist/collection/components/six-textarea/six-textarea.js.map +1 -1
  313. package/dist/collection/components/six-textarea/test/six-textarea.spec.js +117 -0
  314. package/dist/collection/components/six-textarea/test/six-textarea.spec.js.map +1 -0
  315. package/dist/collection/components/six-tile/six-tile.js +10 -6
  316. package/dist/collection/components/six-tile/six-tile.js.map +1 -1
  317. package/dist/collection/components/six-tile/test/six-tile.spec.js +69 -0
  318. package/dist/collection/components/six-tile/test/six-tile.spec.js.map +1 -0
  319. package/dist/collection/components/six-timepicker/six-timepicker.js +60 -107
  320. package/dist/collection/components/six-timepicker/six-timepicker.js.map +1 -1
  321. package/dist/collection/components/six-timepicker/test/six-timepicker.spec.js +496 -0
  322. package/dist/collection/components/six-timepicker/test/six-timepicker.spec.js.map +1 -0
  323. package/dist/collection/components/six-tooltip/six-tooltip.js +14 -8
  324. package/dist/collection/components/six-tooltip/six-tooltip.js.map +1 -1
  325. package/dist/collection/components/six-tooltip/test/six-tooltip.spec.js +28 -0
  326. package/dist/collection/components/six-tooltip/test/six-tooltip.spec.js.map +1 -0
  327. package/dist/collection/functional-components/form-control/form-control.js +2 -4
  328. package/dist/collection/functional-components/form-control/form-control.js.map +1 -1
  329. package/dist/collection/index.js +1 -1
  330. package/dist/collection/index.js.map +1 -1
  331. package/dist/collection/utils/date-util.js +2 -1
  332. package/dist/collection/utils/date-util.js.map +1 -1
  333. package/dist/collection/utils/date-util.spec.js +995 -0
  334. package/dist/collection/utils/date-util.spec.js.map +1 -0
  335. package/dist/collection/utils/error-messages.js +91 -0
  336. package/dist/collection/utils/error-messages.js.map +1 -0
  337. package/dist/collection/utils/event-listeners.js +16 -0
  338. package/dist/collection/utils/event-listeners.js.map +1 -1
  339. package/dist/collection/utils/form.js +15 -0
  340. package/dist/collection/utils/form.js.map +1 -0
  341. package/dist/collection/utils/popover.js +1 -1
  342. package/dist/collection/utils/scroll.js +1 -1
  343. package/dist/collection/utils/scroll.spec.js +122 -0
  344. package/dist/collection/utils/scroll.spec.js.map +1 -0
  345. package/dist/collection/utils/time.util.spec.js +368 -0
  346. package/dist/collection/utils/time.util.spec.js.map +1 -0
  347. package/dist/collection/wrappers/set-attributes/set-attributes.js +1 -1
  348. package/dist/collection/wrappers/set-attributes/test/set-attributes.spec.js +16 -0
  349. package/dist/collection/wrappers/set-attributes/test/set-attributes.spec.js.map +1 -0
  350. package/dist/components/event-listeners.js +16 -0
  351. package/dist/components/event-listeners.js.map +1 -1
  352. package/dist/components/execution-control.js.map +1 -1
  353. package/dist/components/focus-visible.js.map +1 -1
  354. package/dist/components/form-control.js +1 -3
  355. package/dist/components/form-control.js.map +1 -1
  356. package/dist/components/form.js +18 -0
  357. package/dist/components/form.js.map +1 -0
  358. package/dist/components/index.js +92 -3
  359. package/dist/components/index.js.map +1 -1
  360. package/dist/components/modal.js.map +1 -1
  361. package/dist/components/popover.js +6 -12
  362. package/dist/components/popover.js.map +1 -1
  363. package/dist/components/scroll.js.map +1 -1
  364. package/dist/components/set-attributes2.js.map +1 -1
  365. package/dist/components/six-alert.js.map +1 -1
  366. package/dist/components/six-avatar.js.map +1 -1
  367. package/dist/components/six-badge.js.map +1 -1
  368. package/dist/components/six-button.js +7 -1
  369. package/dist/components/six-button.js.map +1 -1
  370. package/dist/components/six-card.js.map +1 -1
  371. package/dist/components/six-checkbox.js +9 -62
  372. package/dist/components/six-checkbox.js.map +1 -1
  373. package/dist/components/six-datepicker.js +29 -61
  374. package/dist/components/six-datepicker.js.map +1 -1
  375. package/dist/components/six-details2.js.map +1 -1
  376. package/dist/components/six-dialog.js.map +1 -1
  377. package/dist/components/six-drawer.js.map +1 -1
  378. package/dist/components/six-dropdown2.js.map +1 -1
  379. package/dist/components/six-error-page.js.map +1 -1
  380. package/dist/components/six-file-list-item.js.map +1 -1
  381. package/dist/components/six-file-list.js.map +1 -1
  382. package/dist/components/six-file-upload.js.map +1 -1
  383. package/dist/components/six-footer.js.map +1 -1
  384. package/dist/components/six-group-label.js +1 -1
  385. package/dist/components/six-group-label.js.map +1 -1
  386. package/dist/components/six-header.js.map +1 -1
  387. package/dist/components/six-icon-button2.js.map +1 -1
  388. package/dist/components/six-icon2.js.map +1 -1
  389. package/dist/components/six-input2.js +31 -99
  390. package/dist/components/six-input2.js.map +1 -1
  391. package/dist/components/six-item-picker2.js +2 -2
  392. package/dist/components/six-item-picker2.js.map +1 -1
  393. package/dist/components/six-language-switcher.js.map +1 -1
  394. package/dist/components/six-layout-grid.js.map +1 -1
  395. package/dist/components/six-main-container.js.map +1 -1
  396. package/dist/components/six-menu-divider.js.map +1 -1
  397. package/dist/components/six-menu-item2.js.map +1 -1
  398. package/dist/components/six-menu-label.js.map +1 -1
  399. package/dist/components/six-menu2.js.map +1 -1
  400. package/dist/components/six-picto2.js.map +1 -1
  401. package/dist/components/six-progress-bar.js.map +1 -1
  402. package/dist/components/six-progress-ring.js.map +1 -1
  403. package/dist/components/six-radio.js +28 -46
  404. package/dist/components/six-radio.js.map +1 -1
  405. package/dist/components/six-range.js +8 -50
  406. package/dist/components/six-range.js.map +1 -1
  407. package/dist/components/six-root.js.map +1 -1
  408. package/dist/components/six-search-field.js.map +1 -1
  409. package/dist/components/six-select.js +25 -70
  410. package/dist/components/six-select.js.map +1 -1
  411. package/dist/components/six-sidebar-item-group.js.map +1 -1
  412. package/dist/components/six-sidebar-item.js.map +1 -1
  413. package/dist/components/six-sidebar.js.map +1 -1
  414. package/dist/components/six-spinner2.js.map +1 -1
  415. package/dist/components/six-stage-indicator2.js.map +1 -1
  416. package/dist/components/six-switch.js +24 -38
  417. package/dist/components/six-switch.js.map +1 -1
  418. package/dist/components/six-tab-group.js.map +1 -1
  419. package/dist/components/six-tab-panel.js.map +1 -1
  420. package/dist/components/six-tab.js.map +1 -1
  421. package/dist/components/six-tag2.js +1 -1
  422. package/dist/components/six-tag2.js.map +1 -1
  423. package/dist/components/six-textarea.js +29 -84
  424. package/dist/components/six-textarea.js.map +1 -1
  425. package/dist/components/six-tile.js.map +1 -1
  426. package/dist/components/six-timepicker2.js +18 -31
  427. package/dist/components/six-timepicker2.js.map +1 -1
  428. package/dist/components/six-tooltip2.js.map +1 -1
  429. package/dist/components/slot.js.map +1 -1
  430. package/dist/components.d.ts +361 -88
  431. package/dist/components.json +3830 -777
  432. package/dist/esm/{event-listeners-6b434035.js → event-listeners-f6e5b0ab.js} +17 -1
  433. package/dist/esm/event-listeners-f6e5b0ab.js.map +1 -0
  434. package/dist/esm/{execution-control-72cc50f4.js → execution-control-e0892a05.js} +1 -1
  435. package/dist/esm/execution-control-e0892a05.js.map +1 -0
  436. package/dist/esm/{focus-visible-fa7129a0.js → focus-visible-fc6ac671.js} +1 -1
  437. package/dist/esm/focus-visible-fc6ac671.js.map +1 -0
  438. package/dist/esm/form-81252534.js +18 -0
  439. package/dist/esm/form-81252534.js.map +1 -0
  440. package/dist/esm/{form-control-44a50dd6.js → form-control-32cb533f.js} +3 -5
  441. package/dist/esm/form-control-32cb533f.js.map +1 -0
  442. package/dist/esm/{index-371fb9d4.js → index-8a74f992.js} +397 -57
  443. package/dist/esm/index-8a74f992.js.map +1 -0
  444. package/dist/esm/index.js +91 -0
  445. package/dist/esm/index.js.map +1 -1
  446. package/dist/esm/loader.js +4 -13
  447. package/dist/esm/loader.js.map +1 -1
  448. package/dist/esm/{modal-b1d96441.js → modal-7d32e141.js} +1 -1
  449. package/dist/esm/modal-7d32e141.js.map +1 -0
  450. package/dist/esm/{popover-1aacbae8.js → popover-136d1f73.js} +7 -13
  451. package/dist/esm/popover-136d1f73.js.map +1 -0
  452. package/dist/esm/{popup-678b8592.js → popup-7f89a001.js} +1 -1
  453. package/dist/esm/popup-7f89a001.js.map +1 -0
  454. package/dist/esm/{scroll-180b53fd.js → scroll-3fb087a2.js} +1 -1
  455. package/dist/esm/scroll-3fb087a2.js.map +1 -0
  456. package/dist/esm/set-attributes_2.entry.js +1 -1
  457. package/dist/esm/set-attributes_2.entry.js.map +1 -1
  458. package/dist/esm/six-alert.entry.js +1 -1
  459. package/dist/esm/six-alert.entry.js.map +1 -1
  460. package/dist/esm/six-avatar.entry.js +1 -1
  461. package/dist/esm/six-avatar.entry.js.map +1 -1
  462. package/dist/esm/six-badge.entry.js +1 -1
  463. package/dist/esm/six-badge.entry.js.map +1 -1
  464. package/dist/esm/six-button.entry.js +9 -3
  465. package/dist/esm/six-button.entry.js.map +1 -1
  466. package/dist/esm/six-card.entry.js +1 -1
  467. package/dist/esm/six-card.entry.js.map +1 -1
  468. package/dist/esm/six-checkbox.entry.js +11 -58
  469. package/dist/esm/six-checkbox.entry.js.map +1 -1
  470. package/dist/esm/six-datepicker.entry.js +29 -58
  471. package/dist/esm/six-datepicker.entry.js.map +1 -1
  472. package/dist/esm/six-details.entry.js +2 -2
  473. package/dist/esm/six-details.entry.js.map +1 -1
  474. package/dist/esm/six-dialog.entry.js +4 -4
  475. package/dist/esm/six-dialog.entry.js.map +1 -1
  476. package/dist/esm/six-drawer.entry.js +4 -4
  477. package/dist/esm/six-drawer.entry.js.map +1 -1
  478. package/dist/esm/six-dropdown_2.entry.js +5 -5
  479. package/dist/esm/six-dropdown_2.entry.js.map +1 -1
  480. package/dist/esm/six-error-page.entry.js +1 -1
  481. package/dist/esm/six-error-page.entry.js.map +1 -1
  482. package/dist/esm/six-file-list-item.entry.js +1 -1
  483. package/dist/esm/six-file-list-item.entry.js.map +1 -1
  484. package/dist/esm/six-file-list.entry.js +1 -1
  485. package/dist/esm/six-file-list.entry.js.map +1 -1
  486. package/dist/esm/six-file-upload.entry.js +1 -1
  487. package/dist/esm/six-file-upload.entry.js.map +1 -1
  488. package/dist/esm/six-footer.entry.js +1 -1
  489. package/dist/esm/six-footer.entry.js.map +1 -1
  490. package/dist/esm/six-group-label.entry.js +3 -3
  491. package/dist/esm/six-group-label.entry.js.map +1 -1
  492. package/dist/esm/six-header.entry.js +3 -3
  493. package/dist/esm/six-header.entry.js.map +1 -1
  494. package/dist/esm/six-icon-button.entry.js +2 -2
  495. package/dist/esm/six-icon-button.entry.js.map +1 -1
  496. package/dist/esm/six-icon.entry.js +1 -1
  497. package/dist/esm/six-icon.entry.js.map +1 -1
  498. package/dist/esm/six-input.entry.js +30 -89
  499. package/dist/esm/six-input.entry.js.map +1 -1
  500. package/dist/esm/six-item-picker.entry.js +6 -6
  501. package/dist/esm/six-item-picker.entry.js.map +1 -1
  502. package/dist/esm/six-language-switcher.entry.js +1 -1
  503. package/dist/esm/six-language-switcher.entry.js.map +1 -1
  504. package/dist/esm/six-layout-grid.entry.js +1 -1
  505. package/dist/esm/six-layout-grid.entry.js.map +1 -1
  506. package/dist/esm/six-main-container.entry.js +1 -1
  507. package/dist/esm/six-main-container.entry.js.map +1 -1
  508. package/dist/esm/six-menu-divider.entry.js +1 -1
  509. package/dist/esm/six-menu-divider.entry.js.map +1 -1
  510. package/dist/esm/six-menu-item.entry.js +2 -2
  511. package/dist/esm/six-menu-item.entry.js.map +1 -1
  512. package/dist/esm/six-menu-label.entry.js +1 -1
  513. package/dist/esm/six-menu-label.entry.js.map +1 -1
  514. package/dist/esm/six-picto.entry.js +1 -1
  515. package/dist/esm/six-picto.entry.js.map +1 -1
  516. package/dist/esm/six-progress-bar.entry.js +1 -1
  517. package/dist/esm/six-progress-bar.entry.js.map +1 -1
  518. package/dist/esm/six-progress-ring.entry.js +1 -1
  519. package/dist/esm/six-progress-ring.entry.js.map +1 -1
  520. package/dist/esm/six-radio.entry.js +26 -40
  521. package/dist/esm/six-radio.entry.js.map +1 -1
  522. package/dist/esm/six-range.entry.js +7 -45
  523. package/dist/esm/six-range.entry.js.map +1 -1
  524. package/dist/esm/six-root.entry.js +1 -1
  525. package/dist/esm/six-root.entry.js.map +1 -1
  526. package/dist/esm/six-search-field.entry.js +3 -3
  527. package/dist/esm/six-search-field.entry.js.map +1 -1
  528. package/dist/esm/six-select.entry.js +27 -66
  529. package/dist/esm/six-select.entry.js.map +1 -1
  530. package/dist/esm/six-sidebar-item-group.entry.js +2 -2
  531. package/dist/esm/six-sidebar-item-group.entry.js.map +1 -1
  532. package/dist/esm/six-sidebar-item.entry.js +1 -1
  533. package/dist/esm/six-sidebar-item.entry.js.map +1 -1
  534. package/dist/esm/six-sidebar.entry.js +2 -2
  535. package/dist/esm/six-sidebar.entry.js.map +1 -1
  536. package/dist/esm/six-spinner.entry.js +1 -1
  537. package/dist/esm/six-spinner.entry.js.map +1 -1
  538. package/dist/esm/six-switch.entry.js +21 -33
  539. package/dist/esm/six-switch.entry.js.map +1 -1
  540. package/dist/esm/six-tab-group.entry.js +3 -3
  541. package/dist/esm/six-tab-group.entry.js.map +1 -1
  542. package/dist/esm/six-tab-panel.entry.js +1 -1
  543. package/dist/esm/six-tab-panel.entry.js.map +1 -1
  544. package/dist/esm/six-tab.entry.js +1 -1
  545. package/dist/esm/six-tab.entry.js.map +1 -1
  546. package/dist/esm/six-tag.entry.js +2 -2
  547. package/dist/esm/six-tag.entry.js.map +1 -1
  548. package/dist/esm/six-textarea.entry.js +28 -77
  549. package/dist/esm/six-textarea.entry.js.map +1 -1
  550. package/dist/esm/six-tile.entry.js +2 -2
  551. package/dist/esm/six-tile.entry.js.map +1 -1
  552. package/dist/esm/six-timepicker.entry.js +21 -31
  553. package/dist/esm/six-timepicker.entry.js.map +1 -1
  554. package/dist/esm/six-tooltip.entry.js +2 -2
  555. package/dist/esm/six-tooltip.entry.js.map +1 -1
  556. package/dist/esm/{slot-2e64df19.js → slot-ad36df3a.js} +1 -1
  557. package/dist/esm/slot-ad36df3a.js.map +1 -0
  558. package/dist/esm/{types-4b10b413.js → types-59b455aa.js} +1 -1
  559. package/dist/esm/types-59b455aa.js.map +1 -0
  560. package/dist/esm/ui-library.js +4 -7
  561. package/dist/esm/ui-library.js.map +1 -1
  562. package/dist/types/components/six-checkbox/six-checkbox.d.ts +5 -21
  563. package/dist/types/components/six-datepicker/six-datepicker.d.ts +11 -17
  564. package/dist/types/components/six-group-label/six-group-label.d.ts +1 -1
  565. package/dist/types/components/six-input/six-input.d.ts +7 -33
  566. package/dist/types/components/six-radio/six-radio.d.ts +5 -15
  567. package/dist/types/components/six-range/six-range.d.ts +6 -21
  568. package/dist/types/components/six-select/six-select.d.ts +9 -24
  569. package/dist/types/components/six-switch/six-switch.d.ts +11 -13
  570. package/dist/types/components/six-textarea/six-textarea.d.ts +7 -26
  571. package/dist/types/components/six-timepicker/six-timepicker.d.ts +7 -12
  572. package/dist/types/components.d.ts +94 -341
  573. package/dist/types/functional-components/form-control/form-control.d.ts +1 -3
  574. package/dist/types/index.d.ts +1 -0
  575. package/dist/types/stencil-public-runtime.d.ts +15 -2
  576. package/dist/types/types.d.ts +2 -0
  577. package/dist/types/utils/date-util.d.ts +1 -0
  578. package/dist/types/utils/error-messages.d.ts +42 -0
  579. package/dist/types/utils/event-listeners.d.ts +4 -3
  580. package/dist/types/utils/form.d.ts +1 -0
  581. package/dist/ui-library/index.esm.js +1 -1
  582. package/dist/ui-library/index.esm.js.map +1 -1
  583. package/dist/ui-library/p-02981b91.entry.js +2 -0
  584. package/dist/ui-library/p-02981b91.entry.js.map +1 -0
  585. package/dist/ui-library/{p-25a3bf57.js → p-0f510624.js} +1 -1
  586. package/dist/ui-library/p-0f510624.js.map +1 -0
  587. package/dist/ui-library/{p-bf4a35ec.js → p-0fdb185d.js} +1 -1
  588. package/dist/ui-library/p-0fdb185d.js.map +1 -0
  589. package/dist/ui-library/{p-f29ba9cb.entry.js → p-1256cc0a.entry.js} +2 -2
  590. package/dist/ui-library/p-1256cc0a.entry.js.map +1 -0
  591. package/dist/ui-library/{p-5084ca7c.entry.js → p-13b43e04.entry.js} +2 -2
  592. package/dist/ui-library/p-13b43e04.entry.js.map +1 -0
  593. package/dist/ui-library/{p-d87a6f4d.js → p-15559d38.js} +1 -1
  594. package/dist/ui-library/p-15559d38.js.map +1 -0
  595. package/dist/ui-library/{p-5c60227f.entry.js → p-19ed7a4c.entry.js} +2 -2
  596. package/dist/ui-library/p-19ed7a4c.entry.js.map +1 -0
  597. package/dist/ui-library/{p-965fa6a6.entry.js → p-1d5ee1a0.entry.js} +2 -2
  598. package/dist/ui-library/p-1d5ee1a0.entry.js.map +1 -0
  599. package/dist/ui-library/{p-eb8f05a9.js → p-1f18768a.js} +1 -1
  600. package/dist/ui-library/p-1f18768a.js.map +1 -0
  601. package/dist/ui-library/{p-deb01174.entry.js → p-21b3b321.entry.js} +2 -2
  602. package/dist/ui-library/p-21b3b321.entry.js.map +1 -0
  603. package/dist/ui-library/p-264d4ea8.entry.js +2 -0
  604. package/dist/ui-library/p-264d4ea8.entry.js.map +1 -0
  605. package/dist/ui-library/{p-73325eec.entry.js → p-29ac3d7d.entry.js} +2 -2
  606. package/dist/ui-library/p-29ac3d7d.entry.js.map +1 -0
  607. package/dist/ui-library/{p-713684c7.entry.js → p-314b2096.entry.js} +2 -2
  608. package/dist/ui-library/p-314b2096.entry.js.map +1 -0
  609. package/dist/ui-library/{p-f974a184.entry.js → p-330a4988.entry.js} +2 -2
  610. package/dist/ui-library/p-330a4988.entry.js.map +1 -0
  611. package/dist/ui-library/{p-a5143b8d.entry.js → p-346f9557.entry.js} +2 -2
  612. package/dist/ui-library/p-346f9557.entry.js.map +1 -0
  613. package/dist/ui-library/{p-a3cc0521.entry.js → p-37557787.entry.js} +2 -2
  614. package/dist/ui-library/p-37557787.entry.js.map +1 -0
  615. package/dist/ui-library/{p-cf1133a0.entry.js → p-3cc5addb.entry.js} +2 -2
  616. package/dist/ui-library/p-3cc5addb.entry.js.map +1 -0
  617. package/dist/ui-library/p-3d9de119.entry.js +2 -0
  618. package/dist/ui-library/p-3d9de119.entry.js.map +1 -0
  619. package/dist/ui-library/{p-cf1d36c0.entry.js → p-411ed539.entry.js} +2 -2
  620. package/dist/ui-library/p-411ed539.entry.js.map +1 -0
  621. package/dist/ui-library/{p-2a8ad91b.entry.js → p-4705a51e.entry.js} +2 -2
  622. package/dist/ui-library/p-4705a51e.entry.js.map +1 -0
  623. package/dist/ui-library/p-4abed9df.entry.js +2 -0
  624. package/dist/ui-library/p-4abed9df.entry.js.map +1 -0
  625. package/dist/ui-library/{p-0cc08e91.js → p-5654e4c7.js} +1 -1
  626. package/dist/ui-library/p-5654e4c7.js.map +1 -0
  627. package/dist/ui-library/{p-0fe78f9b.js → p-59210f0b.js} +1 -1
  628. package/dist/ui-library/p-59210f0b.js.map +1 -0
  629. package/dist/ui-library/{p-b27f496f.entry.js → p-5af44076.entry.js} +2 -2
  630. package/dist/ui-library/p-5af44076.entry.js.map +1 -0
  631. package/dist/ui-library/p-5d6b7353.entry.js +2 -0
  632. package/dist/ui-library/p-5d6b7353.entry.js.map +1 -0
  633. package/dist/ui-library/{p-aa6f71e1.entry.js → p-613283a7.entry.js} +2 -2
  634. package/dist/ui-library/p-613283a7.entry.js.map +1 -0
  635. package/dist/ui-library/p-6153045b.js +3 -0
  636. package/dist/ui-library/p-6153045b.js.map +1 -0
  637. package/dist/ui-library/{p-886a35ee.entry.js → p-6197fe2f.entry.js} +2 -2
  638. package/dist/ui-library/p-6197fe2f.entry.js.map +1 -0
  639. package/dist/ui-library/{p-8cf72af6.js → p-698bb2c8.js} +1 -1
  640. package/dist/ui-library/p-698bb2c8.js.map +1 -0
  641. package/dist/ui-library/{p-c07adc21.entry.js → p-72254eef.entry.js} +2 -2
  642. package/dist/ui-library/p-72254eef.entry.js.map +1 -0
  643. package/dist/ui-library/{p-3b71cac4.entry.js → p-724875b0.entry.js} +2 -2
  644. package/dist/ui-library/p-724875b0.entry.js.map +1 -0
  645. package/dist/ui-library/{p-649017db.entry.js → p-7afafb9d.entry.js} +2 -2
  646. package/dist/ui-library/p-7afafb9d.entry.js.map +1 -0
  647. package/dist/ui-library/p-7d95def3.js +2 -0
  648. package/dist/ui-library/p-7d95def3.js.map +1 -0
  649. package/dist/ui-library/{p-3a47c8ad.entry.js → p-7e3ad38a.entry.js} +2 -2
  650. package/dist/ui-library/p-7e3ad38a.entry.js.map +1 -0
  651. package/dist/ui-library/{p-053d6de8.entry.js → p-83864cfe.entry.js} +2 -2
  652. package/dist/ui-library/p-83864cfe.entry.js.map +1 -0
  653. package/dist/ui-library/{p-f66eb76c.entry.js → p-878226a0.entry.js} +2 -2
  654. package/dist/ui-library/p-878226a0.entry.js.map +1 -0
  655. package/dist/ui-library/p-8c0971e0.js +2 -0
  656. package/dist/ui-library/p-8c0971e0.js.map +1 -0
  657. package/dist/ui-library/{p-5b3e6eb7.entry.js → p-91b51800.entry.js} +2 -2
  658. package/dist/ui-library/p-91b51800.entry.js.map +1 -0
  659. package/dist/ui-library/{p-764f56dd.entry.js → p-95fbdd0b.entry.js} +2 -2
  660. package/dist/ui-library/p-95fbdd0b.entry.js.map +1 -0
  661. package/dist/ui-library/{p-8d6f4311.entry.js → p-99e24daf.entry.js} +2 -2
  662. package/dist/ui-library/p-99e24daf.entry.js.map +1 -0
  663. package/dist/ui-library/{p-ba74863a.js → p-9ace84c7.js} +1 -1
  664. package/dist/ui-library/p-9ace84c7.js.map +1 -0
  665. package/dist/ui-library/{p-cab99e54.entry.js → p-9b354f5d.entry.js} +2 -2
  666. package/dist/ui-library/p-9b354f5d.entry.js.map +1 -0
  667. package/dist/ui-library/{p-d8c97778.entry.js → p-9c1be3fb.entry.js} +2 -2
  668. package/dist/ui-library/p-9c1be3fb.entry.js.map +1 -0
  669. package/dist/ui-library/p-9f0b43f9.entry.js +2 -0
  670. package/dist/ui-library/p-9f0b43f9.entry.js.map +1 -0
  671. package/dist/ui-library/{p-e5ba13d2.entry.js → p-a0f290d0.entry.js} +2 -2
  672. package/dist/ui-library/p-a0f290d0.entry.js.map +1 -0
  673. package/dist/ui-library/{p-c700e3eb.entry.js → p-a55c7258.entry.js} +2 -2
  674. package/dist/ui-library/p-a55c7258.entry.js.map +1 -0
  675. package/dist/ui-library/{p-27c4ee88.entry.js → p-a6a9ee96.entry.js} +2 -2
  676. package/dist/ui-library/p-a6a9ee96.entry.js.map +1 -0
  677. package/dist/ui-library/{p-3e4b9341.entry.js → p-ac099e6b.entry.js} +2 -2
  678. package/dist/ui-library/p-ac099e6b.entry.js.map +1 -0
  679. package/dist/ui-library/{p-90c2dc30.entry.js → p-ae601a0f.entry.js} +2 -2
  680. package/dist/ui-library/p-ae601a0f.entry.js.map +1 -0
  681. package/dist/ui-library/{p-9f8b6144.entry.js → p-b351f889.entry.js} +2 -2
  682. package/dist/ui-library/p-b351f889.entry.js.map +1 -0
  683. package/dist/ui-library/p-b550a258.entry.js +2 -0
  684. package/dist/ui-library/p-b550a258.entry.js.map +1 -0
  685. package/dist/ui-library/p-bf87464b.entry.js +2 -0
  686. package/dist/ui-library/p-bf87464b.entry.js.map +1 -0
  687. package/dist/ui-library/{p-abb98245.entry.js → p-c03ebf7d.entry.js} +2 -2
  688. package/dist/ui-library/p-c03ebf7d.entry.js.map +1 -0
  689. package/dist/ui-library/{p-0eee4c41.entry.js → p-cd67da3d.entry.js} +2 -2
  690. package/dist/ui-library/p-cd67da3d.entry.js.map +1 -0
  691. package/dist/ui-library/{p-5dc40a6a.entry.js → p-cdaed936.entry.js} +2 -2
  692. package/dist/ui-library/p-cdaed936.entry.js.map +1 -0
  693. package/dist/ui-library/{p-5c1dd25a.entry.js → p-d367f4f9.entry.js} +2 -2
  694. package/dist/ui-library/p-d367f4f9.entry.js.map +1 -0
  695. package/dist/ui-library/p-d42c2025.js +2 -0
  696. package/dist/ui-library/p-d42c2025.js.map +1 -0
  697. package/dist/ui-library/{p-9b9c3afc.entry.js → p-dfed33c5.entry.js} +2 -2
  698. package/dist/ui-library/p-dfed33c5.entry.js.map +1 -0
  699. package/dist/ui-library/p-ed381ad9.entry.js +2 -0
  700. package/dist/ui-library/p-ed381ad9.entry.js.map +1 -0
  701. package/dist/ui-library/p-ee8342e1.entry.js +2 -0
  702. package/dist/ui-library/p-ee8342e1.entry.js.map +1 -0
  703. package/dist/ui-library/{p-25b42655.entry.js → p-ee950ce2.entry.js} +2 -2
  704. package/dist/ui-library/p-ee950ce2.entry.js.map +1 -0
  705. package/dist/ui-library/{p-41f0b6ff.entry.js → p-ff90ffd1.entry.js} +2 -2
  706. package/dist/ui-library/p-ff90ffd1.entry.js.map +1 -0
  707. package/dist/ui-library/ui-library.esm.js +1 -1
  708. package/dist/ui-library/ui-library.esm.js.map +1 -1
  709. package/loader/index.d.ts +1 -1
  710. package/package.json +8 -8
  711. package/dist/cjs/event-listeners-dd94dcfb.js.map +0 -1
  712. package/dist/cjs/execution-control-45c84c46.js.map +0 -1
  713. package/dist/cjs/focus-visible-e0d93a95.js.map +0 -1
  714. package/dist/cjs/form-control-7494488a.js.map +0 -1
  715. package/dist/cjs/index-ccf35821.js.map +0 -1
  716. package/dist/cjs/modal-21350fb5.js.map +0 -1
  717. package/dist/cjs/popover-b5e2d5ef.js.map +0 -1
  718. package/dist/cjs/popup-44836aaf.js.map +0 -1
  719. package/dist/cjs/scroll-76e6f5d7.js.map +0 -1
  720. package/dist/cjs/six-form.cjs.entry.js +0 -236
  721. package/dist/cjs/six-form.cjs.entry.js.map +0 -1
  722. package/dist/cjs/slot-bccbdb59.js.map +0 -1
  723. package/dist/cjs/types-64878648.js.map +0 -1
  724. package/dist/collection/components/six-form/six-form.css +0 -11
  725. package/dist/collection/components/six-form/six-form.js +0 -427
  726. package/dist/collection/components/six-form/six-form.js.map +0 -1
  727. package/dist/components/six-form.d.ts +0 -11
  728. package/dist/components/six-form.js +0 -257
  729. package/dist/components/six-form.js.map +0 -1
  730. package/dist/esm/event-listeners-6b434035.js.map +0 -1
  731. package/dist/esm/execution-control-72cc50f4.js.map +0 -1
  732. package/dist/esm/focus-visible-fa7129a0.js.map +0 -1
  733. package/dist/esm/form-control-44a50dd6.js.map +0 -1
  734. package/dist/esm/index-371fb9d4.js.map +0 -1
  735. package/dist/esm/modal-b1d96441.js.map +0 -1
  736. package/dist/esm/polyfills/css-shim.js +0 -1
  737. package/dist/esm/popover-1aacbae8.js.map +0 -1
  738. package/dist/esm/popup-678b8592.js.map +0 -1
  739. package/dist/esm/scroll-180b53fd.js.map +0 -1
  740. package/dist/esm/six-form.entry.js +0 -232
  741. package/dist/esm/six-form.entry.js.map +0 -1
  742. package/dist/esm/slot-2e64df19.js.map +0 -1
  743. package/dist/esm/types-4b10b413.js.map +0 -1
  744. package/dist/types/components/six-form/six-form.d.ts +0 -60
  745. package/dist/ui-library/p-02d5a6d8.js +0 -2
  746. package/dist/ui-library/p-02d5a6d8.js.map +0 -1
  747. package/dist/ui-library/p-053d6de8.entry.js.map +0 -1
  748. package/dist/ui-library/p-0cc08e91.js.map +0 -1
  749. package/dist/ui-library/p-0eee4c41.entry.js.map +0 -1
  750. package/dist/ui-library/p-0fe78f9b.js.map +0 -1
  751. package/dist/ui-library/p-187fbba0.js +0 -3
  752. package/dist/ui-library/p-187fbba0.js.map +0 -1
  753. package/dist/ui-library/p-25a3bf57.js.map +0 -1
  754. package/dist/ui-library/p-25b42655.entry.js.map +0 -1
  755. package/dist/ui-library/p-271ba152.entry.js +0 -2
  756. package/dist/ui-library/p-271ba152.entry.js.map +0 -1
  757. package/dist/ui-library/p-27c4ee88.entry.js.map +0 -1
  758. package/dist/ui-library/p-2a36b7d0.entry.js +0 -2
  759. package/dist/ui-library/p-2a36b7d0.entry.js.map +0 -1
  760. package/dist/ui-library/p-2a8ad91b.entry.js.map +0 -1
  761. package/dist/ui-library/p-30e0cdce.entry.js +0 -2
  762. package/dist/ui-library/p-30e0cdce.entry.js.map +0 -1
  763. package/dist/ui-library/p-3a47c8ad.entry.js.map +0 -1
  764. package/dist/ui-library/p-3a4815cb.entry.js +0 -2
  765. package/dist/ui-library/p-3a4815cb.entry.js.map +0 -1
  766. package/dist/ui-library/p-3b71cac4.entry.js.map +0 -1
  767. package/dist/ui-library/p-3d4a2e03.entry.js +0 -2
  768. package/dist/ui-library/p-3d4a2e03.entry.js.map +0 -1
  769. package/dist/ui-library/p-3e4b9341.entry.js.map +0 -1
  770. package/dist/ui-library/p-41f0b6ff.entry.js.map +0 -1
  771. package/dist/ui-library/p-435242a8.entry.js +0 -2
  772. package/dist/ui-library/p-435242a8.entry.js.map +0 -1
  773. package/dist/ui-library/p-5084ca7c.entry.js.map +0 -1
  774. package/dist/ui-library/p-5b3e6eb7.entry.js.map +0 -1
  775. package/dist/ui-library/p-5c1dd25a.entry.js.map +0 -1
  776. package/dist/ui-library/p-5c60227f.entry.js.map +0 -1
  777. package/dist/ui-library/p-5dc40a6a.entry.js.map +0 -1
  778. package/dist/ui-library/p-649017db.entry.js.map +0 -1
  779. package/dist/ui-library/p-713684c7.entry.js.map +0 -1
  780. package/dist/ui-library/p-73325eec.entry.js.map +0 -1
  781. package/dist/ui-library/p-7639c68e.entry.js +0 -2
  782. package/dist/ui-library/p-7639c68e.entry.js.map +0 -1
  783. package/dist/ui-library/p-764f56dd.entry.js.map +0 -1
  784. package/dist/ui-library/p-886a35ee.entry.js.map +0 -1
  785. package/dist/ui-library/p-8cf72af6.js.map +0 -1
  786. package/dist/ui-library/p-8d6f4311.entry.js.map +0 -1
  787. package/dist/ui-library/p-90c2dc30.entry.js.map +0 -1
  788. package/dist/ui-library/p-965fa6a6.entry.js.map +0 -1
  789. package/dist/ui-library/p-98234e3f.entry.js +0 -2
  790. package/dist/ui-library/p-98234e3f.entry.js.map +0 -1
  791. package/dist/ui-library/p-9b9c3afc.entry.js.map +0 -1
  792. package/dist/ui-library/p-9c34eab7.entry.js +0 -2
  793. package/dist/ui-library/p-9c34eab7.entry.js.map +0 -1
  794. package/dist/ui-library/p-9e0c386f.entry.js +0 -2
  795. package/dist/ui-library/p-9e0c386f.entry.js.map +0 -1
  796. package/dist/ui-library/p-9f8b6144.entry.js.map +0 -1
  797. package/dist/ui-library/p-a3cc0521.entry.js.map +0 -1
  798. package/dist/ui-library/p-a5143b8d.entry.js.map +0 -1
  799. package/dist/ui-library/p-aa6f71e1.entry.js.map +0 -1
  800. package/dist/ui-library/p-abb98245.entry.js.map +0 -1
  801. package/dist/ui-library/p-b183e44f.js +0 -2
  802. package/dist/ui-library/p-b183e44f.js.map +0 -1
  803. package/dist/ui-library/p-b27f496f.entry.js.map +0 -1
  804. package/dist/ui-library/p-ba74863a.js.map +0 -1
  805. package/dist/ui-library/p-bf4a35ec.js.map +0 -1
  806. package/dist/ui-library/p-c07adc21.entry.js.map +0 -1
  807. package/dist/ui-library/p-c700e3eb.entry.js.map +0 -1
  808. package/dist/ui-library/p-cab99e54.entry.js.map +0 -1
  809. package/dist/ui-library/p-cf1133a0.entry.js.map +0 -1
  810. package/dist/ui-library/p-cf1d36c0.entry.js.map +0 -1
  811. package/dist/ui-library/p-d87a6f4d.js.map +0 -1
  812. package/dist/ui-library/p-d8c97778.entry.js.map +0 -1
  813. package/dist/ui-library/p-deb01174.entry.js.map +0 -1
  814. package/dist/ui-library/p-e5ba13d2.entry.js.map +0 -1
  815. package/dist/ui-library/p-eb8f05a9.js.map +0 -1
  816. package/dist/ui-library/p-f29ba9cb.entry.js.map +0 -1
  817. package/dist/ui-library/p-f66eb76c.entry.js.map +0 -1
  818. package/dist/ui-library/p-f974a184.entry.js.map +0 -1
  819. package/dist/ui-library/p-fb8d0734.entry.js +0 -2
  820. package/dist/ui-library/p-fb8d0734.entry.js.map +0 -1
  821. package/readme.md +0 -156
@@ -1 +1 @@
1
- {"version":3,"file":"six-select.js","sourceRoot":"","sources":["../../../src/components/six-select/six-select.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACvG,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,WAAW,MAAM,uDAAuD,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAOtC,IAAI,EAAE,GAAG,CAAC,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,MAAM,OAAO,SAAS;;IAIZ,YAAO,GAAG,UAAU,EAAE,EAAE,EAAE,CAAC;IAC3B,YAAO,GAAG,gBAAgB,EAAE,EAAE,CAAC;IAC/B,eAAU,GAAG,oBAAoB,EAAE,EAAE,CAAC;IACtC,gBAAW,GAAG,qBAAqB,EAAE,EAAE,CAAC;IAGxC,YAAO,GAAG,KAAK,CAAC;IAChB,oBAAe,GAAG,EAAE,CAAC;IACrB,qBAAgB,GAAG,KAAK,CAAC;IACzB,mBAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAqQtC,eAAU,GAAG,GAAG,EAAE;MACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;MACtB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC,CAAC;IAEM,gBAAW,GAAG,GAAG,EAAE;MACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;MACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC,CAAC;IAEM,kBAAa,GAAG,GAAG,EAAE;MAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC,CAAC;IAEM,qBAAgB,GAAG,CAAC,KAAiB,EAAE,EAAE;MAC/C,KAAK,CAAC,eAAe,EAAE,CAAC;MACxB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC,CAAC;IAOM,oBAAe,GAAG,CAAC,KAAoB,EAAE,EAAE;MACjD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;MACzF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC;MAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;MAE3B,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,OAAO;OACR;MAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;QACvE,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE3F,gBAAgB;WACb,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;WACpC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,oBAAoB,CAAC,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvG,IAAI,CAAC,KAAK,GAAG,oBAAoB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;OACvD;IACH,CAAC,CAAC;IAEM,kBAAa,GAAG,CAAC,KAAoB,EAAE,EAAE;;MAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;MAE3C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;MAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;MAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;MAEzC,6BAA6B;MAC7B,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE;QAC9C,OAAO;OACR;MAED,uCAAuC;MACvC,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;UACf,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,EAAE,CAAC;SACvB;QACD,OAAO;OACR;MAED,yBAAyB;MACzB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QAChD,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,yCAAyC;QACzC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;UAChB,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,EAAE,CAAC;SACvB;QAED,uBAAuB;QACvB,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,SAAS,EAAE;UAC1C,SAAS,CAAC,QAAQ,EAAE,CAAC;UACrB,OAAO;SACR;QAED,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,QAAQ,EAAE;UACvC,QAAQ,CAAC,QAAQ,EAAE,CAAC;UACpB,OAAO;SACR;OACF;MAED,2DAA2D;MAC3D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAChB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,EAAE,CAAC;QACtB,MAAA,IAAI,CAAC,IAAI,0CAAE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;OACpC;IACH,CAAC,CAAC;IAEM,qBAAgB,GAAG,GAAG,EAAE;;MAC9B,MAAA,IAAI,CAAC,GAAG,0CAAE,KAAK,EAAE,CAAC;IACpB,CAAC,CAAC;IAEM,qBAAgB,GAAG,CAAC,KAAkB,EAAE,EAAE;MAChD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;MAE/B,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,IAAI,IAAI,CAAC,QAAQ,EAAE;UACjB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YACpC,CAAC,CAAE,IAAI,CAAC,KAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC;YACpD,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;aAAM;UACL,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;MACH,CAAC,CAAC;MAEF,IAAI,CAAC,KAAK,GAAG,QAAQ,EAAE,CAAC;MAExB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEM,mBAAc,GAAG,CAAC,KAAkB,EAAE,EAAE;;MAC9C,IAAI,IAAI,CAAC,QAAQ,EAAE;QACjB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,OAAO;OACR;MAED,IAAI,CAAC,UAAU,EAAE,CAAC;MAClB,MAAA,IAAI,CAAC,cAAc,0CAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;MACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC,CAAC;IAEM,mBAAc,GAAG,GAAG,EAAE;;MAC5B,MAAA,IAAI,CAAC,cAAc,0CAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;MAC1C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC,CAAC;IAEM,qBAAgB,GAAG,GAAG,EAAE;MAC9B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;MACvD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;MACzD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;MAChD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEM,yBAAoB,GAAG,CAAC,KAAiC,EAAE,EAAE;MACnE,+DAA+D;MAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAmB,CAAC;MACnD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;QACnC,IAAI,EAAE,YAAY,WAAW,EAAE;UAC7B,MAAM,OAAO,GAAG,EAAiB,CAAC;UAClC,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;SACjD;MACH,CAAC,CAAC,CAAC;MAEH,IAAI,WAAW,EAAE;QACf,KAAK,CAAC,eAAe,EAAE,CAAC;OACzB;IACH,CAAC,CAAC;oBA1ZkB,KAAK;2BACE,KAAK;4BACJ,KAAK;wBACT,KAAK;kBACX,KAAK;wBACC,EAAE;uBACkB,EAAE;oBAG3B,KAAK;0BAMC,CAAC;oBAGP,KAAK;gBAGT,EAAE;uBAGK,EAAE;;0BAMC,qBAAqB;gBAGD,QAAQ;iBAMrC,KAAK;iBAG+B,EAAE;gBAGvC,KAAK;iBAGJ,EAAE;oBAGC,EAAE;qBAGD,EAAE;oBAGH,KAAK;qBAGJ,KAAK;mBAGU,KAAK;gBAGzB,KAAK;uBAGE,KAAK;kBAGV,KAAK;uBAOA,KAAK;wBAKJ,KAAK;yBAGJ,qBAAqB;mBAGD,IAAI;yBAIxB,KAAK;wBAGa,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;;EAGjE,oBAAoB;;IAClB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;MAChC,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,EAAE,CAAC;KACvB;EACH,CAAC;EAKD,iBAAiB;IACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;EAC1B,CAAC;EAGD,oBAAoB;IAClB,kDAAkD;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,IAAI,CAAC,kBAAkB,EAAE,CAAC;EAC5B,CAAC;EAGD,iBAAiB;IACf,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;MAC/C,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KACjB;IAED,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;MACpD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KACjB;IAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC1B,IAAI,IAAI,CAAC,KAAK,EAAE;MACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;KAC9D;EACH,CAAC;EAWD,iBAAiB;;IACf,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;MAC/C,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;KACvE;IACD,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,0CAAE,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;EAC9E,CAAC;EAED,iBAAiB;IACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;MACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;KACrC;EACH,CAAC;EAED,gBAAgB;IACd,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;MAAE,OAAO;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAElE,8GAA8G;IAC9G,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEvD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;MAC7D,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,EAAE;QAC/G,IAAI,CAAC,eAAe,GAAG,MAAM,KAAK,CAAC,oBAAoB,EAAE,CAAC;OAC3D;MACD,KAAK,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,KAAK,EACL,iBAAiB,EACjB,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;MACjB,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;MACjC,IAAI,CAAC,WAAW,EAAE,CAAC;MACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;MAChE,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CACvB,CAAC;IAEF,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;EAC7D,CAAC;EAED,oBAAoB;;IAClB,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,0CAAE,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/E,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;EAClC,CAAC;EAED,gGAAgG;EAEhG,KAAK,CAAC,cAAc;;IAClB,OAAO,MAAA,IAAI,CAAC,KAAK,0CAAE,cAAc,EAAE,CAAC;EACtC,CAAC;EAED,2BAA2B;EAE3B,KAAK,CAAC,aAAa;;IACjB,OAAO,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,EAAE,CAAC;EAC/B,CAAC;EAED,yGAAyG;EAEzG,KAAK,CAAC,iBAAiB,CAAC,OAAe;IACrC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;MAAE,OAAO;IAE/B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC1B,IAAI,CAAC,gBAAgB,GAAG,OAAO,KAAK,EAAE,CAAC;IACvC,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;EACrD,CAAC;EAED,6BAA6B;EAE7B,KAAK,CAAC,KAAK;IACT,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;MAAE,OAAO;IAE/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;IAC/B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC1B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;EACvB,CAAC;EAEO,YAAY,CAAC,IAA4B;;IAC/C,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,UAAU,0CAAE,aAAa,CAAC,kBAAkB,CAAoB,CAAC;IACnF,IAAI,IAAI,IAAI,IAAI,EAAE;MAChB,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;KAC7B;SAAM;MACL,2EAA2E;MAC3E,OAAO,MAAA,IAAI,CAAC,WAAW,mCAAI,EAAE,CAAC;KAC/B;EACH,CAAC;EAEO,QAAQ;IACd,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;MACzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAe,KAAK,EAAE,MAAM,CAAC,KAAK,IAAG,MAAM,CAAC,KAAK,CAAiB,CAAC,CAAC;KACzG;IAED,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;EAC1D,CAAC;EAEO,YAAY;IAClB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;EACpC,CAAC;EAEO,eAAe;IACrB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrE,iFAAiF;IACjF,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;EAC5B,CAAC;EAqBO,WAAW;;IACjB,IAAI,CAAC,KAAK,GAAG,MAAA,IAAI,CAAC,YAAY,mCAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,kBAAkB,EAAE,CAAC;EAC5B,CAAC;EAqIO,UAAU;IAChB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI;MAAE,OAAO;IAClD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC;IAEvD,IAAI,IAAI,CAAC,QAAQ,EAAE;MACjB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;KAC5B;EACH,CAAC;EAEO,KAAK,CAAC,kBAAkB;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAErC,sBAAsB;IACtB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAErE,qBAAqB;IACrB,IAAI,IAAI,CAAC,QAAQ,EAAE;MACjB,MAAM,YAAY,GAA6B,EAAE,CAAC;MAClD,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;MAEnG,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3C,OAAO,CACL,eACE,WAAW,EAAC,UAAU,EACtB,IAAI,EAAC,SAAS,EACd,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,QACT,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAClC,SAAS,EAAE,IAAI,CAAC,oBAAoB,qBACnB,CAAC,KAAK,EAAE,EAAE;YACzB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;cAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;cACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;UACH,CAAC,IAEA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAChB,CACX,CAAC;MACJ,CAAC,CAAC,CAAC;MAEH,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;QAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAClE,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,eAAS,WAAW,EAAC,UAAU,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI;;UACvD,KAAK,GAAG,IAAI,CAAC,cAAc,CACrB,CACX,CAAC;OACH;KACF;SAAM;MACL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;MACnE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;KACvB;IAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;MAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACrB;IACD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;MACtC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;MACjF,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;KACpD;EACH,CAAC;EAEO,2BAA2B,CAAC,KAAe,EAAE,KAA+B;IAClF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;MACjE,OAAO,EAAE,CAAC;KACX;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;MACzB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;MAC5E,OAAO,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,KAAI,EAAE,CAAC;KACpC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;EAC3D,CAAC;EAEO,kBAAkB;IACxB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ;MACxB,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;MACrE,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,EAAE,CAAC;EACT,CAAC;EAEO,YAAY;IAClB,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;EACjF,CAAC;EAED,MAAM;;IACJ,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAEzC,OAAO,CACL,EAAC,WAAW,IACV,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,SAAS,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAC9G,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,YAAY,EAAE,IAAI,CAAC,gBAAgB,EACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;MAEjC,oBACE,IAAI,EAAC,MAAM,EACX,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,EACjC,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,aAAa,EAAE,CAAC,IAAI,CAAC,QAAQ,EAC7B,iBAAiB,EAAE,IAAI,CAAC,IAAI,EAC5B,0BAA0B,EAAE,IAAI,CAAC,YAAY,EAC7C,KAAK,EAAE;UACL,MAAM,EAAE,IAAI;UACZ,cAAc,EAAE,IAAI,CAAC,MAAM;UAC3B,eAAe,EAAE,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,MAAK,CAAC;UACzC,iBAAiB,EAAE,IAAI,CAAC,QAAQ;UAChC,mBAAmB,EAAE,IAAI,CAAC,SAAS;UACnC,kBAAkB,EAAE,IAAI,CAAC,QAAQ;UACjC,kBAAkB,EAAE,IAAI,CAAC,QAAQ;UACjC,kBAAkB,EAAE,IAAI,CAAC,QAAQ,IAAI,YAAY;UACjD,6BAA6B,EAAE,IAAI,CAAC,YAAY,KAAK,EAAE;UACvD,eAAe,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO;UACtC,gBAAgB,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ;UACxC,eAAe,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO;UACtC,cAAc,EAAE,IAAI,CAAC,IAAI;UACzB,iBAAiB,EAAE,IAAI,CAAC,OAAO;SAChC,EACD,SAAS,EAAE,IAAI,CAAC,eAAe,yBACV,IAAI,CAAC,cAAc,yBACnB,IAAI,CAAC,cAAc,EACxC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAE7B,WACE,IAAI,EAAC,SAAS,EACd,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,EAC5B,EAAE,EAAE,IAAI,CAAC,OAAO,EAChB,KAAK,EAAE;YACL,WAAW,EAAE,IAAI;YACjB,mBAAmB,EAAE,IAAI,CAAC,IAAI;YAC9B,2BAA2B,EAAE,IAAI,CAAC,YAAY;WAC/C,EACD,IAAI,EAAC,UAAU,qBACE,IAAI,CAAC,OAAO,sBACX,IAAI,CAAC,UAAU,mBACnB,MAAM,mBACL,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAChC,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,aAAa;UAE7B,YAAM,KAAK,EAAC,eAAe,IACxB,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC7B,YAAM,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,cAAc,IACnC,IAAI,CAAC,WAAW,CACZ,CACR,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CACtC,CACI;UAEN,IAAI,CAAC,SAAS,IAAI,YAAY,IAAI,CACjC,uBACE,WAAW,EAAC,mBAAmB,EAC/B,KAAK,EAAC,eAAe,EACrB,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAC9B,QAAQ,EAAC,IAAI,GACb,CACH;UAEA,IAAI,CAAC,YAAY,EAAE,IAAI,CACtB,YAAM,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,cAAc;YACpC,gBAAU,IAAI,EAAC,QAAQ,kBAAuB,CACzC,CACR;UAMD,iBACE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,EAC9B,KAAK,EAAE;cACL,aAAa,EAAE,IAAI;cACnB,uBAAuB,EAAE,CAAC,IAAI,CAAC,YAAY;aAC5C,iBACW,MAAM,EAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,QAAQ,EAAE,CAAC,CAAC,GACZ,CACE;QAEN,gBACE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EAC7B,IAAI,EAAC,MAAM,EACX,KAAK,EAAE;YACL,YAAY,EAAE,IAAI;YAClB,wBAAwB,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW;YACzD,sBAAsB,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;WAC7C,8BACyB,IAAI,CAAC,gBAAgB,EAC/C,KAAK,EAAE,IAAI,CAAC,OAAO,EACnB,aAAa,EAAE,IAAI,CAAC,aAAa;UAGjC,YAAM,YAAY,EAAE,IAAI,CAAC,gBAAgB,GAAI,CACpC,CACE,CACH,CACf,CAAC;EACJ,CAAC;EAEO,YAAY;IAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;EACnE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { getTextContent, hasSlot } from '../../utils/slot';\nimport FormControl from '../../functional-components/form-control/form-control';\nimport { EmptyPayload } from '../../utils/types';\nimport { EventListeners } from '../../utils/event-listeners';\nimport { debounce, DEFAULT_DEBOUNCE_FAST } from '../../utils/execution-control';\nimport { SixMenuItemData } from '../six-menu/six-menu';\nimport { isValueEmpty } from './util';\n\nexport interface SixSelectChangePayload {\n value: string | string[];\n isSelected: boolean;\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 - The select's options in the form of menu items.\n * @slot label - The select's label. Alternatively, you can use the label prop.\n * @slot help-text - Help text that describes how to use the select.\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 clear-button - The input's clear button, exported from six-input.\n * @part form-control - The form control that wraps the label, input, and help text.\n * @part help-text - The select's help text.\n * @part icon - The select's icon.\n * @part label - The select's label.\n * @part menu - The select menu, a six-menu element.\n * @part tag - The multiselect option, a six-tag element.\n * @part tags - The container in which multiselect options are rendered.\n */\n\n@Component({\n tag: 'six-select',\n styleUrl: 'six-select.scss',\n shadow: true,\n})\nexport class SixSelect {\n private box?: HTMLElement;\n private dropdown?: HTMLSixDropdownElement;\n private input?: HTMLSixInputElement;\n private inputId = `select-${++id}`;\n private labelId = `select-label-${id}`;\n private helpTextId = `select-help-text-${id}`;\n private errorTextId = `select-error-text-${id}`;\n private menu?: HTMLSixMenuElement;\n private resizeObserver?: ResizeObserver;\n private touched = false;\n private customErrorText = '';\n private customValidation = false;\n private eventListeners = new EventListeners();\n\n @Element() host!: HTMLSixSelectElement;\n\n @State() hasFocus = false;\n @State() hasHelpTextSlot = false;\n @State() hasErrorTextSlot = false;\n @State() hasLabelSlot = false;\n @State() isOpen = false;\n @State() displayLabel = '';\n @State() displayTags: HTMLSixTagElement[] = [];\n\n /** Set to true to enable multiselect. */\n @Prop() multiple = false;\n\n /**\n * The maximum number of tags to show when `multiple` is true. After the maximum, \"+n\" will be shown to indicate the\n * number of additional items that are selected. Set to -1 to remove the limit.\n */\n @Prop() maxTagsVisible = 3;\n\n /** Set to true to disable the select control. */\n @Prop() disabled = false;\n\n /** The select's name. */\n @Prop() name = '';\n\n /** The select's placeholder text. */\n @Prop() placeholder = '';\n\n /** The filter's placeholder text. */\n @Prop() filterPlaceholder?: string;\n\n /** The debounce for the filter callbacks. */\n @Prop() filterDebounce = DEFAULT_DEBOUNCE_FAST;\n\n /** The select's size. */\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\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 value of the control. This will be a string or an array depending on `multiple`. */\n @Prop({ mutable: true }) value: string | string[] = '';\n\n /** Set to true to draw a pill-style select with rounded edges. */\n @Prop() pill = false;\n\n /** The select's label. Alternatively, you can use the label slot. */\n @Prop() label = '';\n\n /** The select's help text. Alternatively, you can use the help-text slot. */\n @Prop() helpText = '';\n\n /** The select's error text. Alternatively, you can use the error-text slot. */\n @Prop() errorText = '';\n\n /** The select's required attribute. */\n @Prop() required = false;\n\n /** Set to true to add a clear button when the select is populated. */\n @Prop() clearable = false;\n\n /** This will be true when the control is in an invalid state. Validity is determined by the `required` prop. */\n @Prop({ mutable: true }) invalid = false;\n\n /** Set to render as line */\n @Prop() line = false;\n\n /** Set to display the error text on blur and not when typing */\n @Prop() errorOnBlur = false;\n\n /** Set to true to allow filtering for entries in the dropdown */\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 /**\n * Set to true to turn the six-select into an autocomplete.\n */\n @Prop() autocomplete = false;\n\n /** The debounce for when the input changes for autocompletes should be emitted */\n @Prop() inputDebounce = DEFAULT_DEBOUNCE_FAST;\n\n /** Set the options to be shown in the dropdown (alternative to setting the elements via html) */\n @Prop() options: SixMenuItemData[] | null = null;\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 /** The default value the select will be reverted to when reset is executed */\n @Prop() defaultValue: string | string[] = this.multiple ? [] : '';\n\n @Watch('disabled')\n handleDisabledChange() {\n if (this.disabled && this.isOpen) {\n this.dropdown?.hide();\n }\n }\n\n @Watch('helpText')\n @Watch('errorText')\n @Watch('label')\n handleLabelChange() {\n this.handleSlotChange();\n }\n\n @Watch('multiple')\n handleMultipleChange() {\n // Cast to array | string based on `this.multiple`\n const value = this.getValueAsArray();\n this.value = this.multiple ? value : value[0] || '';\n this.syncItemsFromValue();\n }\n\n @Watch('value')\n handleValueChange() {\n if (this.multiple && !Array.isArray(this.value)) {\n this.value = [];\n }\n\n if (!this.multiple && typeof this.value !== 'string') {\n this.value = '';\n }\n\n this.syncItemsFromValue();\n if (this.input) {\n this.sixChange.emit({ value: this.value, isSelected: true });\n }\n }\n\n /** Emitted when the control's value changes. */\n @Event({ eventName: 'six-select-change' }) sixChange!: EventEmitter<SixSelectChangePayload>;\n\n /** Emitted when the control gains focus. */\n @Event({ eventName: 'six-select-focus' }) sixFocus!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the control loses focus. */\n @Event({ eventName: 'six-select-blur' }) sixBlur!: EventEmitter<EmptyPayload>;\n\n connectedCallback() {\n if (this.virtualScroll && this.options === null) {\n console.error('Options must be defined when using virtual scrolling');\n }\n this.host.shadowRoot?.addEventListener('slotchange', this.handleSlotChange);\n }\n\n componentWillLoad() {\n this.handleSlotChange();\n if (this.multiple && this.value != null) {\n this.value = this.getValueAsArray();\n }\n }\n\n componentDidLoad() {\n if (this.input == null) return;\n const input = this.input;\n this.resizeObserver = new ResizeObserver(() => this.resizeMenu());\n\n // We need to do an initial sync after the component has rendered, so this will suppress the re-render warning\n requestAnimationFrame(() => this.syncItemsFromValue());\n\n this.eventListeners.add(this.input, 'invalid', async (event) => {\n if (this.customValidation || (!this.hasErrorTextSlot && this.errorText == null && this.customErrorText == null)) {\n this.customErrorText = await input.getValidationMessage();\n }\n event.preventDefault();\n });\n\n this.eventListeners.add(\n input,\n 'six-input-input',\n debounce((event) => {\n const enteredValue = input.value;\n this.clearValues();\n this.sixChange.emit({ value: enteredValue, isSelected: false });\n event.stopPropagation();\n }, this.inputDebounce)\n );\n\n input.value = this.hasSelection() ? this.displayLabel : '';\n }\n\n disconnectedCallback() {\n this.host.shadowRoot?.removeEventListener('slotchange', this.handleSlotChange);\n this.eventListeners.removeAll();\n }\n\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n @Method()\n async reportValidity() {\n return this.input?.reportValidity();\n }\n\n /** Checks for validity. */\n @Method()\n async checkValidity() {\n return this.input?.isValid();\n }\n\n /** Sets a custom validation message. If `message` is not empty, the field will be considered invalid. */\n @Method()\n async setCustomValidity(message: string) {\n if (this.input == null) return;\n\n this.customErrorText = '';\n this.customValidation = message !== '';\n await this.input.setCustomValidity(message);\n this.invalid = !(await this.input.checkValidity());\n }\n\n /** Resets the formcontrol */\n @Method()\n async reset() {\n if (this.input == null) return;\n\n this.value = this.defaultValue;\n this.customErrorText = '';\n this.customValidation = false;\n await this.input.setCustomValidity('');\n this.invalid = false;\n }\n\n private getItemLabel(item: HTMLSixMenuItemElement): string {\n const slot = item.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement;\n if (slot != null) {\n return getTextContent(slot);\n } else {\n // bugfix/COMSLI-203-six-select-value-is-not-updated-if-the-slot-is-changed\n return item.textContent ?? '';\n }\n }\n\n private getItems(): HTMLSixMenuItemElement[] {\n if (this.options !== null) {\n return this.options.map((option) => <six-menu-item value={option.value}>{option.label}</six-menu-item>);\n }\n\n return [...this.host.querySelectorAll('six-menu-item')];\n }\n\n private hasMenuItems() {\n return this.getItems().length > 0;\n }\n\n private getValueAsArray() {\n const values = Array.isArray(this.value) ? this.value : [this.value];\n // enforce that the values are converted to 'string' before the value is compared\n return values.map(String);\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 handleInvalid = () => {\n this.invalid = true;\n };\n\n private handleClearClick = (event: MouseEvent) => {\n event.stopPropagation();\n this.clearValues();\n };\n\n private clearValues() {\n this.value = this.defaultValue ?? (this.multiple ? [] : '');\n this.syncItemsFromValue();\n }\n\n private handleSelectAll = (event: KeyboardEvent) => {\n const nonFilteredItems = this.getItems().filter((item) => item.style.display !== 'none');\n const keyName = event.key;\n const keyCode = event.code;\n\n if (keyName === 'Control') {\n return;\n }\n\n if (this.isOpen && this.multiple && keyCode === 'KeyA' && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = nonFilteredItems.some((opt) => !opt.disabled && !opt.checked);\n\n nonFilteredItems\n .filter((option) => !option.disabled)\n .forEach((option) => (option.checked = hasDeselectedOptions));\n const checkedItems = nonFilteredItems.filter((option) => option.checked).map((option) => option.value);\n this.value = hasDeselectedOptions ? checkedItems : [];\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const target = event.target as HTMLElement;\n\n const items = this.getItems();\n const firstItem = items[0];\n const lastItem = items[items.length - 1];\n\n // Ignore key presses on tags\n if (target.tagName.toLowerCase() === 'six-tag') {\n return;\n }\n\n // Tabbing out of the control closes it\n if (event.key === 'Tab') {\n if (this.isOpen) {\n this.dropdown?.hide();\n }\n return;\n }\n\n // Up/down opens the menu\n if (['ArrowDown', 'ArrowUp'].includes(event.key)) {\n event.preventDefault();\n\n // Show the menu if it's not already open\n if (!this.isOpen) {\n this.dropdown?.show();\n }\n\n // Focus on a menu item\n if (event.key === 'ArrowDown' && firstItem) {\n firstItem.setFocus();\n return;\n }\n\n if (event.key === 'ArrowUp' && lastItem) {\n lastItem.setFocus();\n return;\n }\n }\n\n // All other keys open the menu and initiate type to select\n if (!this.isOpen) {\n event.stopPropagation();\n event.preventDefault();\n this.dropdown?.show();\n this.menu?.typeToSelect(event.key);\n }\n };\n\n private handleLabelClick = () => {\n this.box?.focus();\n };\n\n private handleMenuSelect = (event: CustomEvent) => {\n const item = event.detail.item;\n\n const getValue = () => {\n if (this.multiple) {\n return this.value.includes(item.value)\n ? (this.value as []).filter((v) => v !== item.value)\n : [...this.value, item.value];\n } else {\n return item.value;\n }\n };\n\n this.value = getValue();\n\n this.syncItemsFromValue();\n };\n\n private handleMenuShow = (event: CustomEvent) => {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n\n this.resizeMenu();\n this.resizeObserver?.observe(this.host);\n this.isOpen = true;\n };\n\n private handleMenuHide = () => {\n this.resizeObserver?.unobserve(this.host);\n this.isOpen = false;\n };\n\n private handleSlotChange = () => {\n this.hasHelpTextSlot = hasSlot(this.host, 'help-text');\n this.hasErrorTextSlot = hasSlot(this.host, 'error-text');\n this.hasLabelSlot = hasSlot(this.host, 'label');\n this.syncItemsFromValue();\n };\n\n private handleTagInteraction = (event: KeyboardEvent | MouseEvent) => {\n // Don't toggle the menu when a tag's clear button is activated\n const path = event.composedPath() as EventTarget[];\n const clearButton = path.find((el) => {\n if (el instanceof HTMLElement) {\n const element = el as HTMLElement;\n return element.classList.contains('tag__clear');\n }\n });\n\n if (clearButton) {\n event.stopPropagation();\n }\n };\n\n private resizeMenu() {\n if (this.menu == null || this.box == null) return;\n this.menu.style.minWidth = `${this.box.clientWidth}px`;\n\n if (this.dropdown) {\n this.dropdown.reposition();\n }\n }\n\n private async syncItemsFromValue() {\n const items = this.getItems();\n const value = this.getValueAsArray();\n\n // Sync checked states\n items.forEach((item) => (item.checked = value.includes(item.value)));\n\n // Sync display label\n if (this.multiple) {\n const checkedItems: HTMLSixMenuItemElement[] = [];\n value.forEach((val) => items.map((item) => (item.value === val ? checkedItems.push(item) : null)));\n\n this.displayTags = checkedItems.map((item) => {\n return (\n <six-tag\n exportparts=\"base:tag\"\n type=\"primary\"\n size={this.size}\n pill={this.pill}\n clearable\n onClick={this.handleTagInteraction}\n onKeyDown={this.handleTagInteraction}\n onSix-tag-clear={(event) => {\n event.stopPropagation();\n if (!this.disabled) {\n item.checked = false;\n this.syncValueFromItems();\n }\n }}\n >\n {this.getItemLabel(item)}\n </six-tag>\n );\n });\n\n if (this.maxTagsVisible > 0 && this.displayTags.length > this.maxTagsVisible) {\n const total = this.displayTags.length;\n this.displayLabel = '';\n this.displayTags = this.displayTags.slice(0, this.maxTagsVisible);\n this.displayTags.push(\n <six-tag exportparts=\"base:tag\" type=\"info\" size={this.size}>\n +{total - this.maxTagsVisible}\n </six-tag>\n );\n }\n } else {\n this.displayLabel = this.extractLabelForSelectedItem(value, items);\n this.displayTags = [];\n }\n\n if (!isValueEmpty(this.value)) {\n this.touched = true;\n }\n if (this.touched && this.input != null) {\n this.input.value = Array.isArray(this.value) ? this.value.join(',') : this.value;\n this.invalid = !(await this.input.checkValidity());\n }\n }\n\n private extractLabelForSelectedItem(value: string[], items: HTMLSixMenuItemElement[]): string {\n if (value.length === 0 || (value.length === 1 && value[0] === '')) {\n return '';\n }\n\n if (this.options !== null) {\n const selectedOption = this.options.find((item) => item.value === value[0]);\n return selectedOption?.value || '';\n }\n\n const checkedItem = items.find((item) => item.value === value[0]);\n return checkedItem ? this.getItemLabel(checkedItem) : '';\n }\n\n private syncValueFromItems() {\n const items = this.getItems();\n const checkedItems = items.filter((item) => item.checked);\n const checkedValues = checkedItems.map((item) => item.value);\n this.value = this.multiple\n ? this.getValueAsArray().filter((val) => checkedValues.includes(val))\n : checkedValues.length > 0\n ? checkedValues[0]\n : '';\n }\n\n private displayError() {\n return this.invalid && (!this.errorOnBlur || (!this.hasFocus && !this.isOpen));\n }\n\n render() {\n const hasSelection = this.hasSelection();\n\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 errorTextId={this.errorTextId}\n errorText={this.customErrorText != null && this.customErrorText !== '' ? this.customErrorText : this.errorText}\n hasErrorTextSlot={this.hasErrorTextSlot}\n size={this.size}\n onLabelClick={this.handleLabelClick}\n disabled={this.disabled}\n required={this.required}\n displayError={this.displayError()}\n >\n <six-dropdown\n part=\"base\"\n ref={(el) => (this.dropdown = el)}\n hoist={this.hoist}\n closeOnSelect={!this.multiple}\n containingElement={this.host}\n disableHideOnEnterAndSpace={this.autocomplete}\n class={{\n select: true,\n 'select--open': this.isOpen,\n 'select--empty': this.value?.length === 0,\n 'select--focused': this.hasFocus,\n 'select--clearable': this.clearable,\n 'select--disabled': this.disabled,\n 'select--multiple': this.multiple,\n 'select--has-tags': this.multiple && hasSelection,\n 'select--placeholder-visible': this.displayLabel === '',\n 'select--small': this.size === 'small',\n 'select--medium': this.size === 'medium',\n 'select--large': this.size === 'large',\n 'select--pill': this.pill,\n 'select--invalid': this.invalid,\n }}\n onKeyDown={this.handleSelectAll}\n onSix-dropdown-show={this.handleMenuShow}\n onSix-dropdown-hide={this.handleMenuHide}\n filterPlaceholder={this.filterPlaceholder}\n filterDebounce={this.filterDebounce}\n filter={this.filter}\n asyncFilter={this.asyncFilter}\n >\n <div\n slot=\"trigger\"\n ref={(el) => (this.box = el)}\n id={this.inputId}\n class={{\n select__box: true,\n 'select__box--line': this.line,\n 'select__box--autocomplete': this.autocomplete,\n }}\n role=\"combobox\"\n aria-labelledby={this.labelId}\n aria-describedby={this.helpTextId}\n aria-haspopup=\"true\"\n aria-expanded={this.isOpen ? 'true' : 'false'}\n tabIndex={this.disabled ? -1 : 0}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n >\n <span class=\"select__label\">\n {this.displayTags.length > 0 ? (\n <span part=\"tags\" class=\"select__tags\">\n {this.displayTags}\n </span>\n ) : (\n this.displayLabel || this.placeholder\n )}\n </span>\n\n {this.clearable && hasSelection && (\n <six-icon-button\n exportparts=\"base:clear-button\"\n class=\"select__clear\"\n name=\"clear\"\n size=\"small\"\n onClick={this.handleClearClick}\n tabindex=\"-1\"\n />\n )}\n\n {this.hasMenuItems() && (\n <span part=\"icon\" class=\"select__icon\">\n <six-icon size=\"medium\">expand_more</six-icon>\n </span>\n )}\n\n {/*\n The hidden input tricks the browser's built-in validation so it works as expected. We use an input instead\n of a select because, otherwise, iOS will show a list of options during validation.\n */}\n <six-input\n ref={(el) => (this.input = el)}\n class={{\n select__input: true,\n 'select__hidden-select': !this.autocomplete,\n }}\n aria-hidden=\"true\"\n required={this.required}\n onInvalid={this.handleInvalid}\n onFocus={this.handleFocus}\n clearable={this.clearable}\n placeholder={this.placeholder}\n pill={this.pill}\n disabled={this.disabled}\n size={this.size}\n tabIndex={-1}\n />\n </div>\n\n <six-menu\n ref={(el) => (this.menu = el)}\n part=\"menu\"\n class={{\n select__menu: true,\n 'select__menu--filtered': this.filter || this.asyncFilter,\n 'select__menu--hidden': !this.hasMenuItems(),\n }}\n onSix-menu-item-selected={this.handleMenuSelect}\n items={this.options}\n virtualScroll={this.virtualScroll}\n remove-box-shadow\n >\n <slot onSlotchange={this.handleSlotChange} />\n </six-menu>\n </six-dropdown>\n </FormControl>\n );\n }\n\n private hasSelection() {\n return this.multiple ? this.value.length > 0 : this.value !== '';\n }\n}\n"]}
1
+ {"version":3,"file":"six-select.js","sourceRoot":"","sources":["../../../src/components/six-select/six-select.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { getTextContent, hasSlot } from '../../utils/slot';\nimport FormControl from '../../functional-components/form-control/form-control';\nimport { EmptyPayload } from '../../utils/types';\nimport { EventListeners } from '../../utils/event-listeners';\nimport { debounce, DEFAULT_DEBOUNCE_FAST } from '../../utils/execution-control';\nimport { SixMenuItemData } from '../six-menu/six-menu';\nimport { isValueEmpty } from './util';\n\nexport interface SixSelectChangePayload {\n value: string | string[];\n isSelected: boolean;\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 - The select's options in the form of menu items.\n * @slot label - The select's label. Alternatively, you can use the label prop.\n * @slot help-text - Help text that describes how to use the select.\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 clear-button - The input's clear button, exported from six-input.\n * @part form-control - The form control that wraps the label, input, and help text.\n * @part help-text - The select's help text.\n * @part icon - The select's icon.\n * @part label - The select's label.\n * @part menu - The select menu, a six-menu element.\n * @part tag - The multiselect option, a six-tag element.\n * @part tags - The container in which multiselect options are rendered.\n */\n\n@Component({\n tag: 'six-select',\n styleUrl: 'six-select.scss',\n shadow: true,\n})\nexport class SixSelect {\n private box?: HTMLElement;\n private dropdown?: HTMLSixDropdownElement;\n private input?: HTMLSixInputElement;\n private inputId = `select-${++id}`;\n private labelId = `select-label-${id}`;\n private helpTextId = `select-help-text-${id}`;\n private errorTextId = `select-error-text-${id}`;\n private menu?: HTMLSixMenuElement;\n private resizeObserver?: ResizeObserver;\n private touched = false;\n private eventListeners = new EventListeners();\n\n @Element() host!: HTMLSixSelectElement;\n\n @State() hasFocus = false;\n @State() hasHelpTextSlot = false;\n @State() hasLabelSlot = false;\n @State() isOpen = false;\n @State() displayLabel = '';\n @State() displayTags: HTMLSixTagElement[] = [];\n\n /** Set to true to enable multiselect. */\n @Prop() multiple = false;\n\n /**\n * The maximum number of tags to show when `multiple` is true. After the maximum, \"+n\" will be shown to indicate the\n * number of additional items that are selected. Set to -1 to remove the limit.\n */\n @Prop() maxTagsVisible = 3;\n\n /** Set to true to disable the select control. */\n @Prop() disabled = false;\n\n /** The select's name. */\n @Prop() name = '';\n\n /** The select's placeholder text. */\n @Prop() placeholder = '';\n\n /** The filter's placeholder text. */\n @Prop() filterPlaceholder?: string;\n\n /** The debounce for the filter callbacks. */\n @Prop() filterDebounce = DEFAULT_DEBOUNCE_FAST;\n\n /** The select's size. */\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\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 value of the control. This will be a string or an array depending on `multiple`. */\n @Prop({ mutable: true }) value: string | string[] = '';\n\n /** Set to true to draw a pill-style select with rounded edges. */\n @Prop() pill = false;\n\n /** The select's help text. Alternatively, you can use the help-text slot. */\n @Prop() helpText = '';\n\n /** Set to true to show an asterisk beneath the label. */\n @Prop() required = false;\n\n /** Set to true to add a clear button when the select is populated. */\n @Prop() clearable = false;\n\n /** The label text. */\n @Prop() label = '';\n\n /** The error message shown, if `invalid` is set to true. */\n @Prop() errorText = '';\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 /** Set to render as line */\n @Prop() line = false;\n\n /** Set to true to allow filtering for entries in the dropdown */\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 /**\n * Set to true to turn the six-select into an autocomplete.\n */\n @Prop() autocomplete = false;\n\n /** The debounce for when the input changes for autocompletes should be emitted */\n @Prop() inputDebounce = DEFAULT_DEBOUNCE_FAST;\n\n /** Set the options to be shown in the dropdown (alternative to setting the elements via html) */\n @Prop() options: SixMenuItemData[] | null = null;\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 @Watch('disabled')\n handleDisabledChange() {\n if (this.disabled && this.isOpen) {\n this.dropdown?.hide();\n }\n }\n\n @Watch('helpText')\n @Watch('errorText')\n @Watch('label')\n handleLabelChange() {\n this.handleSlotChange();\n }\n\n @Watch('multiple')\n handleMultipleChange() {\n // Cast to array | string based on `this.multiple`\n const value = this.getValueAsArray();\n this.value = this.multiple ? value : value[0] || '';\n this.syncItemsFromValue();\n }\n\n @Watch('value')\n async handleValueChange() {\n if (this.multiple && !Array.isArray(this.value)) {\n this.value = [];\n }\n\n if (!this.multiple && typeof this.value !== 'string') {\n this.value = '';\n }\n\n await this.syncItemsFromValue();\n }\n\n /** Emitted when the control's value changes. */\n @Event({ eventName: 'six-select-change' }) sixChange!: EventEmitter<SixSelectChangePayload>;\n\n /** Emitted when the control gains focus. */\n @Event({ eventName: 'six-select-focus' }) sixFocus!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the control loses focus. */\n @Event({ eventName: 'six-select-blur' }) sixBlur!: EventEmitter<EmptyPayload>;\n\n connectedCallback() {\n if (this.virtualScroll && this.options === null) {\n console.error('Options must be defined when using virtual scrolling');\n }\n this.host.shadowRoot?.addEventListener('slotchange', this.handleSlotChange);\n this.eventListeners.forward('six-select-change', 'change', this.host);\n this.eventListeners.forward('six-select-blur', 'blur', this.host);\n this.eventListeners.forward('six-select-focus', 'focus', this.host);\n }\n\n componentWillLoad() {\n this.handleSlotChange();\n if (this.multiple && this.value != null) {\n this.value = this.getValueAsArray();\n }\n }\n\n componentDidLoad() {\n if (this.input == null) return;\n const input = this.input;\n this.resizeObserver = new ResizeObserver(() => this.resizeMenu());\n\n // We need to do an initial sync after the component has rendered, so this will suppress the re-render warning\n requestAnimationFrame(() => this.syncItemsFromValue());\n\n this.eventListeners.add(\n input,\n 'six-input-input',\n debounce((event) => {\n const enteredValue = input.value;\n this.clearValues();\n this.sixChange.emit({ value: enteredValue, isSelected: false });\n event.stopPropagation();\n }, this.inputDebounce)\n );\n\n input.value = this.hasSelection() ? this.displayLabel : '';\n }\n\n disconnectedCallback() {\n this.host.shadowRoot?.removeEventListener('slotchange', this.handleSlotChange);\n this.eventListeners.removeAll();\n }\n\n /** Sets focus on the select. */\n @Method()\n async setFocus(options?: FocusOptions) {\n this.hasFocus = true;\n this.box?.focus(options);\n }\n\n private getItemLabel(item: HTMLSixMenuItemElement): string {\n const slot = item.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement;\n if (slot != null) {\n return getTextContent(slot);\n } else {\n // bugfix/COMSLI-203-six-select-value-is-not-updated-if-the-slot-is-changed\n return item.textContent ?? '';\n }\n }\n\n private getItems(): HTMLSixMenuItemElement[] {\n if (this.options !== null) {\n return this.options.map((option) => <six-menu-item value={option.value}>{option.label}</six-menu-item>);\n }\n\n return [...this.host.querySelectorAll('six-menu-item')];\n }\n\n private hasMenuItems() {\n return this.getItems().length > 0;\n }\n\n private getValueAsArray() {\n const values = Array.isArray(this.value) ? this.value : this.value === '' ? [] : [this.value];\n // enforce that the values are converted to 'string' before the value is compared\n return values.map(String);\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 handleClearClick = (event: MouseEvent) => {\n event.stopPropagation();\n this.clearValues();\n this.sixChange.emit({ value: this.value, isSelected: true });\n };\n\n private clearValues() {\n this.value = this.multiple ? [] : '';\n this.syncItemsFromValue();\n }\n\n private handleSelectAll = (event: KeyboardEvent) => {\n const nonFilteredItems = this.getItems().filter((item) => item.style.display !== 'none');\n const keyName = event.key;\n const keyCode = event.code;\n\n if (keyName === 'Control') {\n return;\n }\n\n if (this.isOpen && this.multiple && keyCode === 'KeyA' && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = nonFilteredItems.some((opt) => !opt.disabled && !opt.checked);\n\n nonFilteredItems\n .filter((option) => !option.disabled)\n .forEach((option) => (option.checked = hasDeselectedOptions));\n const checkedItems = nonFilteredItems.filter((option) => option.checked).map((option) => option.value);\n this.value = hasDeselectedOptions ? checkedItems : [];\n this.sixChange.emit({ value: this.value, isSelected: true });\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const target = event.target as HTMLElement;\n\n const items = this.getItems();\n const firstItem = items[0];\n const lastItem = items[items.length - 1];\n\n // Ignore key presses on tags\n if (target.tagName.toLowerCase() === 'six-tag') {\n return;\n }\n\n // Tabbing out of the control closes it\n if (event.key === 'Tab') {\n if (this.isOpen) {\n this.dropdown?.hide();\n }\n return;\n }\n\n // Up/down opens the menu\n if (['ArrowDown', 'ArrowUp'].includes(event.key)) {\n event.preventDefault();\n\n // Show the menu if it's not already open\n if (!this.isOpen) {\n this.dropdown?.show();\n }\n\n // Focus on a menu item\n if (event.key === 'ArrowDown' && firstItem) {\n firstItem.setFocus();\n return;\n }\n\n if (event.key === 'ArrowUp' && lastItem) {\n lastItem.setFocus();\n return;\n }\n }\n\n // All other keys open the menu and initiate type to select\n if (!this.isOpen) {\n event.stopPropagation();\n event.preventDefault();\n this.dropdown?.show();\n this.menu?.typeToSelect(event.key);\n }\n };\n\n private handleLabelClick = () => {\n this.box?.focus();\n };\n\n private handleMenuSelect = (event: CustomEvent) => {\n const item = event.detail.item;\n\n const getValue = () => {\n if (this.multiple) {\n return this.value.includes(item.value)\n ? (this.value as []).filter((v) => v !== item.value)\n : [...this.value, item.value];\n } else {\n return item.value;\n }\n };\n\n this.value = getValue();\n\n this.syncItemsFromValue();\n this.sixChange.emit({ value: this.value, isSelected: true });\n };\n\n private handleMenuShow = (event: CustomEvent) => {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n\n this.resizeMenu();\n this.resizeObserver?.observe(this.host);\n this.isOpen = true;\n };\n\n private handleMenuHide = () => {\n this.resizeObserver?.unobserve(this.host);\n this.isOpen = false;\n };\n\n private handleSlotChange = () => {\n this.hasHelpTextSlot = hasSlot(this.host, 'help-text');\n this.hasLabelSlot = hasSlot(this.host, 'label');\n this.syncItemsFromValue();\n };\n\n private handleTagInteraction = (event: KeyboardEvent | MouseEvent) => {\n // Don't toggle the menu when a tag's clear button is activated\n const path = event.composedPath() as EventTarget[];\n const clearButton = path.find((el) => {\n if (el instanceof HTMLElement) {\n const element = el as HTMLElement;\n return element.classList.contains('tag__clear');\n }\n });\n\n if (clearButton) {\n event.stopPropagation();\n this.sixChange.emit({ value: this.value, isSelected: true });\n }\n };\n\n private resizeMenu() {\n if (this.menu == null || this.box == null) return;\n this.menu.style.minWidth = `${this.box.clientWidth}px`;\n\n if (this.dropdown) {\n this.dropdown.reposition();\n }\n }\n\n private async syncItemsFromValue() {\n const items = this.getItems();\n const value = this.getValueAsArray();\n\n // Sync checked states\n items.forEach((item) => (item.checked = value.includes(item.value)));\n\n // Sync display label\n if (this.multiple) {\n const checkedItems: HTMLSixMenuItemElement[] = [];\n value.forEach((val) => items.map((item) => (item.value === val ? checkedItems.push(item) : null)));\n\n this.displayTags = checkedItems.map((item) => {\n return (\n <six-tag\n exportparts=\"base:tag\"\n type=\"primary\"\n size={this.size}\n pill={this.pill}\n clearable\n onClick={this.handleTagInteraction}\n onKeyDown={this.handleTagInteraction}\n onSix-tag-clear={(event) => {\n event.stopPropagation();\n if (!this.disabled) {\n item.checked = false;\n this.syncValueFromItems();\n }\n }}\n >\n {this.getItemLabel(item)}\n </six-tag>\n );\n });\n\n if (this.maxTagsVisible > 0 && this.displayTags.length > this.maxTagsVisible) {\n const total = this.displayTags.length;\n this.displayLabel = '';\n this.displayTags = this.displayTags.slice(0, this.maxTagsVisible);\n this.displayTags.push(\n <six-tag exportparts=\"base:tag\" type=\"info\" size={this.size}>\n +{total - this.maxTagsVisible}\n </six-tag>\n );\n }\n } else {\n this.displayLabel = this.extractLabelForSelectedItem(value, items);\n this.displayTags = [];\n }\n\n if (!isValueEmpty(this.value)) {\n this.touched = true;\n }\n if (this.touched && this.input != null) {\n this.input.value = Array.isArray(this.value) ? this.value.join(',') : this.value;\n }\n }\n\n private extractLabelForSelectedItem(value: string[], items: HTMLSixMenuItemElement[]): string {\n if (value.length === 0 || (value.length === 1 && value[0] === '')) {\n return '';\n }\n\n if (this.options !== null) {\n const selectedOption = this.options.find((item) => item.value === value[0]);\n return selectedOption?.value || '';\n }\n\n const checkedItem = items.find((item) => item.value === value[0]);\n return checkedItem ? this.getItemLabel(checkedItem) : '';\n }\n\n private syncValueFromItems() {\n const items = this.getItems();\n const checkedItems = items.filter((item) => item.checked);\n const checkedValues = checkedItems.map((item) => item.value);\n this.value = this.multiple\n ? this.getValueAsArray().filter((val) => checkedValues.includes(val))\n : checkedValues.length > 0\n ? checkedValues[0]\n : '';\n }\n\n render() {\n const hasSelection = this.hasSelection();\n\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 errorTextId={this.errorTextId}\n errorText={this.errorText}\n size={this.size}\n onLabelClick={this.handleLabelClick}\n disabled={this.disabled}\n required={this.required}\n displayError={this.invalid}\n >\n <six-dropdown\n part=\"base\"\n ref={(el) => (this.dropdown = el)}\n hoist={this.hoist}\n closeOnSelect={!this.multiple}\n containingElement={this.host}\n disableHideOnEnterAndSpace={this.autocomplete}\n class={{\n select: true,\n 'select--open': this.isOpen,\n 'select--empty': this.value?.length === 0,\n 'select--focused': this.hasFocus,\n 'select--clearable': this.clearable,\n 'select--disabled': this.disabled,\n 'select--multiple': this.multiple,\n 'select--has-tags': this.multiple && hasSelection,\n 'select--placeholder-visible': this.displayLabel === '',\n 'select--small': this.size === 'small',\n 'select--medium': this.size === 'medium',\n 'select--large': this.size === 'large',\n 'select--pill': this.pill,\n 'select--invalid': this.invalid,\n }}\n onKeyDown={this.handleSelectAll}\n onSix-dropdown-show={this.handleMenuShow}\n onSix-dropdown-hide={this.handleMenuHide}\n filterPlaceholder={this.filterPlaceholder}\n filterDebounce={this.filterDebounce}\n filter={this.filter}\n asyncFilter={this.asyncFilter}\n >\n <div\n slot=\"trigger\"\n ref={(el) => (this.box = el)}\n id={this.inputId}\n class={{\n select__box: true,\n 'select__box--line': this.line,\n 'select__box--autocomplete': this.autocomplete,\n }}\n role=\"combobox\"\n aria-labelledby={this.labelId}\n aria-describedby={this.helpTextId}\n aria-haspopup=\"true\"\n aria-expanded={this.isOpen ? 'true' : 'false'}\n tabIndex={this.disabled ? -1 : 0}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n >\n <span class={{ select__label: true, 'select__label--single': !this.displayTags.length }}>\n {this.displayTags.length > 0 ? (\n <span part=\"tags\" class=\"select__tags\">\n {this.displayTags}\n </span>\n ) : (\n this.displayLabel || this.placeholder\n )}\n </span>\n\n {this.clearable && hasSelection && (\n <six-icon-button\n exportparts=\"base:clear-button\"\n class=\"select__clear\"\n name=\"clear\"\n size=\"small\"\n onClick={this.handleClearClick}\n tabindex=\"-1\"\n />\n )}\n\n {this.hasMenuItems() && (\n <span part=\"icon\" class=\"select__icon\">\n <six-icon size=\"medium\">expand_more</six-icon>\n </span>\n )}\n\n {/*\n The hidden input tricks the browser's built-in validation so it works as expected. We use an input instead\n of a select because, otherwise, iOS will show a list of options during validation.\n */}\n <six-input\n ref={(el) => (this.input = el)}\n class={{\n select__input: true,\n 'select__hidden-select': !this.autocomplete,\n }}\n aria-hidden=\"true\"\n required={this.required}\n onFocus={this.handleFocus}\n clearable={this.clearable}\n placeholder={this.placeholder}\n pill={this.pill}\n disabled={this.disabled}\n size={this.size}\n tabIndex={-1}\n />\n </div>\n\n <six-menu\n ref={(el) => (this.menu = el)}\n part=\"menu\"\n class={{\n select__menu: true,\n 'select__menu--filtered': this.filter || this.asyncFilter,\n 'select__menu--hidden': !this.hasMenuItems(),\n }}\n onSix-menu-item-selected={this.handleMenuSelect}\n items={this.options}\n virtualScroll={this.virtualScroll}\n remove-box-shadow\n >\n <slot onSlotchange={this.handleSlotChange} />\n </six-menu>\n </six-dropdown>\n </FormControl>\n );\n }\n\n private hasSelection() {\n return this.multiple ? this.value.length > 0 : this.value !== '';\n }\n}\n"]}
@@ -0,0 +1,82 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { SixSelect } from "../six-select";
3
+ describe('six-select', () => {
4
+ it('renders normal six-select', async () => {
5
+ global.ResizeObserver = jest.fn();
6
+ const page = await newSpecPage({
7
+ components: [SixSelect],
8
+ html: `
9
+ <six-select>
10
+ <six-menu-item value="option-1">Option 1</six-menu-item>
11
+ </six-select>`,
12
+ });
13
+ expect(page.root).toEqualHtml(`
14
+ <six-select>
15
+ <mock:shadow-root>
16
+ <div class="form-control form-control--medium" part="form-control">
17
+ <label aria-hidden="true" class="form-control__label" htmlfor="select-1" id="select-label-1" part="label">
18
+ <slot name="label"></slot>
19
+ </label>
20
+ <div class="form-control__input">
21
+ <six-dropdown class="select select--empty select--medium select--placeholder-visible" closeonselect="" filterdebounce="300" part="base">
22
+ <div aria-describedby="select-help-text-1" aria-expanded="false" aria-haspopup="true" aria-labelledby="select-label-1" class="select__box" id="select-1" role="combobox" slot="trigger" tabindex="0">
23
+ <span class="select__label select__label--single"></span>
24
+ <span class="select__icon" part="icon">
25
+ <six-icon size="medium">expand_more</six-icon>
26
+ </span>
27
+ <six-input aria-hidden="true" class="select__hidden-select select__input" placeholder="" size="medium" tabindex="-1"></six-input>
28
+ </div>
29
+ <six-menu class="select__menu" part="menu" remove-box-shadow>
30
+ <slot></slot>
31
+ </six-menu>
32
+ </six-dropdown>
33
+ </div>
34
+ <div aria-hidden="true" class="form-control__error-text" id="select-error-text-1" part="error-text"></div>
35
+ <div aria-hidden="true" class="form-control__help-text" id="select-help-text-1" part="help-text">
36
+ <slot name="help-text"></slot>
37
+ </div>
38
+ </div>
39
+ </mock:shadow-root>
40
+ <six-menu-item value="option-1">
41
+ Option 1
42
+ </six-menu-item>
43
+ </six-select>
44
+ `);
45
+ });
46
+ it('renders normal autocomplete six-select', async () => {
47
+ global.ResizeObserver = jest.fn();
48
+ const page = await newSpecPage({
49
+ components: [SixSelect],
50
+ html: `
51
+ <six-select autocomplete>
52
+ </six-select>`,
53
+ });
54
+ expect(page.root).toEqualHtml(`
55
+ <six-select autocomplete="">
56
+ <mock:shadow-root>
57
+ <div class="form-control form-control--medium" part="form-control">
58
+ <label aria-hidden="true" class="form-control__label" htmlfor="select-2" id="select-label-2" part="label">
59
+ <slot name="label"></slot>
60
+ </label>
61
+ <div class="form-control__input">
62
+ <six-dropdown class="select select--empty select--medium select--placeholder-visible" closeonselect="" disablehideonenterandspace="" filterdebounce="300" part="base">
63
+ <div aria-describedby="select-help-text-2" aria-expanded="false" aria-haspopup="true" aria-labelledby="select-label-2" class="select__box select__box--autocomplete" id="select-2" role="combobox" slot="trigger" tabindex="0">
64
+ <span class="select__label select__label--single"></span>
65
+ <six-input aria-hidden="true" class="select__input" placeholder="" size="medium" tabindex="-1"></six-input>
66
+ </div>
67
+ <six-menu class="select__menu select__menu--hidden" part="menu" remove-box-shadow>
68
+ <slot></slot>
69
+ </six-menu>
70
+ </six-dropdown>
71
+ </div>
72
+ <div aria-hidden="true" class="form-control__error-text" id="select-error-text-2" part="error-text"></div>
73
+ <div aria-hidden="true" class="form-control__help-text" id="select-help-text-2" part="help-text">
74
+ <slot name="help-text"></slot>
75
+ </div>
76
+ </div>
77
+ </mock:shadow-root>
78
+ </six-select>
79
+ `);
80
+ });
81
+ });
82
+ //# sourceMappingURL=six-select.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"six-select.spec.js","sourceRoot":"","sources":["../../../../src/components/six-select/test/six-select.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;EAC1B,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;IACzC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAElC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,SAAS,CAAC;MACvB,IAAI,EAAE;;;sBAGU;KACjB,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+B7B,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;IACtD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAElC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,SAAS,CAAC;MACvB,IAAI,EAAE;;sBAEU;KACjB,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;KAyB7B,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newSpecPage } from '@stencil/core/testing';\nimport { SixSelect } from '../six-select';\n\ndescribe('six-select', () => {\n it('renders normal six-select', async () => {\n global.ResizeObserver = jest.fn();\n\n const page = await newSpecPage({\n components: [SixSelect],\n html: `\n <six-select>\n <six-menu-item value=\"option-1\">Option 1</six-menu-item>\n </six-select>`,\n });\n expect(page.root).toEqualHtml(`\n <six-select>\n <mock:shadow-root>\n <div class=\"form-control form-control--medium\" part=\"form-control\">\n <label aria-hidden=\"true\" class=\"form-control__label\" htmlfor=\"select-1\" id=\"select-label-1\" part=\"label\">\n <slot name=\"label\"></slot>\n </label>\n <div class=\"form-control__input\">\n <six-dropdown class=\"select select--empty select--medium select--placeholder-visible\" closeonselect=\"\" filterdebounce=\"300\" part=\"base\">\n <div aria-describedby=\"select-help-text-1\" aria-expanded=\"false\" aria-haspopup=\"true\" aria-labelledby=\"select-label-1\" class=\"select__box\" id=\"select-1\" role=\"combobox\" slot=\"trigger\" tabindex=\"0\">\n <span class=\"select__label select__label--single\"></span>\n <span class=\"select__icon\" part=\"icon\">\n <six-icon size=\"medium\">expand_more</six-icon>\n </span>\n <six-input aria-hidden=\"true\" class=\"select__hidden-select select__input\" placeholder=\"\" size=\"medium\" tabindex=\"-1\"></six-input>\n </div>\n <six-menu class=\"select__menu\" part=\"menu\" remove-box-shadow>\n <slot></slot>\n </six-menu>\n </six-dropdown>\n </div>\n <div aria-hidden=\"true\" class=\"form-control__error-text\" id=\"select-error-text-1\" part=\"error-text\"></div>\n <div aria-hidden=\"true\" class=\"form-control__help-text\" id=\"select-help-text-1\" part=\"help-text\">\n <slot name=\"help-text\"></slot>\n </div>\n </div>\n </mock:shadow-root>\n <six-menu-item value=\"option-1\">\n Option 1\n </six-menu-item>\n </six-select>\n `);\n });\n\n it('renders normal autocomplete six-select', async () => {\n global.ResizeObserver = jest.fn();\n\n const page = await newSpecPage({\n components: [SixSelect],\n html: `\n <six-select autocomplete>\n </six-select>`,\n });\n expect(page.root).toEqualHtml(`\n <six-select autocomplete=\"\">\n <mock:shadow-root>\n <div class=\"form-control form-control--medium\" part=\"form-control\">\n <label aria-hidden=\"true\" class=\"form-control__label\" htmlfor=\"select-2\" id=\"select-label-2\" part=\"label\">\n <slot name=\"label\"></slot>\n </label>\n <div class=\"form-control__input\">\n <six-dropdown class=\"select select--empty select--medium select--placeholder-visible\" closeonselect=\"\" disablehideonenterandspace=\"\" filterdebounce=\"300\" part=\"base\">\n <div aria-describedby=\"select-help-text-2\" aria-expanded=\"false\" aria-haspopup=\"true\" aria-labelledby=\"select-label-2\" class=\"select__box select__box--autocomplete\" id=\"select-2\" role=\"combobox\" slot=\"trigger\" tabindex=\"0\">\n <span class=\"select__label select__label--single\"></span>\n <six-input aria-hidden=\"true\" class=\"select__input\" placeholder=\"\" size=\"medium\" tabindex=\"-1\"></six-input>\n </div>\n <six-menu class=\"select__menu select__menu--hidden\" part=\"menu\" remove-box-shadow>\n <slot></slot>\n </six-menu>\n </six-dropdown>\n </div>\n <div aria-hidden=\"true\" class=\"form-control__error-text\" id=\"select-error-text-2\" part=\"error-text\"></div>\n <div aria-hidden=\"true\" class=\"form-control__help-text\" id=\"select-help-text-2\" part=\"help-text\">\n <slot name=\"help-text\"></slot>\n </div>\n </div>\n </mock:shadow-root>\n </six-select>\n `);\n });\n});\n"]}
@@ -0,0 +1,81 @@
1
+ import { getValue, isValidValue } from "../util";
2
+ describe('util', () => {
3
+ describe('getValue(multiple)', () => {
4
+ it.each([
5
+ [null, [], []],
6
+ [undefined, [], []],
7
+ [10, [], []],
8
+ [[1, 2, 3], [{ value: '1' }, { value: '2' }], []],
9
+ [{}, [], []],
10
+ [[], [], []],
11
+ ['', [], []],
12
+ ['1', [{ value: '1' }], ['1']],
13
+ [['1'], [{ value: '1' }], ['1']],
14
+ ['1', [{ value: '2' }], []],
15
+ [['1'], [{ value: '2' }], []],
16
+ ['1', [{ value: '1' }, { value: '2' }], ['1']],
17
+ [['1'], [{ value: '1' }, { value: '2' }], ['1']],
18
+ ])("value '%s', items: '%s' == '%s'", (value, menuItems, expected) => {
19
+ expect(getValue(value, true, menuItems)).toStrictEqual(expected);
20
+ });
21
+ });
22
+ describe('getValue(single)', () => {
23
+ it.each([
24
+ [null, [], ''],
25
+ [undefined, [], ''],
26
+ [10, [], ''],
27
+ [{}, [], ''],
28
+ [[], [], ''],
29
+ ['', [], ''],
30
+ ['1', [{ value: '1' }], '1'],
31
+ [['1'], [{ value: '1' }], ''],
32
+ ['1', [{ value: '2' }], ''],
33
+ [['1'], [{ value: '2' }], ''],
34
+ ['1', [{ value: '1' }, { value: '2' }], '1'],
35
+ [['2'], [{ value: '1' }, { value: '2' }], ''],
36
+ [[1, 2], [{ value: '1' }, { value: '2' }], ''],
37
+ ])("value '%s', items: '%s' == '%s'", (value, menuItems, expected) => {
38
+ expect(getValue(value, false, menuItems)).toStrictEqual(expected);
39
+ });
40
+ });
41
+ describe('isValidValue(multiple)', () => {
42
+ it.each([
43
+ [null, [], false],
44
+ [undefined, [], false],
45
+ [10, [], false],
46
+ [{}, [], false],
47
+ ['', [], true],
48
+ [[], [], true],
49
+ ['1', [{ value: '1' }], true],
50
+ [['1'], [{ value: '1' }], true],
51
+ ['1', [{ value: '2' }], false],
52
+ [['1'], [{ value: '2' }], false],
53
+ ['1', [{ value: '1' }, { value: '2' }], true],
54
+ [['1'], [{ value: '1' }, { value: '2' }], true],
55
+ [['1', '3'], [{ value: '1' }, { value: '2' }], false],
56
+ ])("value '%s', items: '%s' == '%s'", (value, menuItems, expected) => {
57
+ expect(isValidValue(value, true, menuItems)).toBe(expected);
58
+ });
59
+ });
60
+ describe('isValidValue(single)', () => {
61
+ it.each([
62
+ [null, [], false],
63
+ [undefined, [], false],
64
+ [10, [], false],
65
+ [{}, [], false],
66
+ ['', [], true],
67
+ [[], [], false],
68
+ ['1', [{ value: '1' }], true],
69
+ [['1'], [{ value: '1' }], false],
70
+ ['1', [{ value: '2' }], false],
71
+ [['1'], [{ value: '2' }], false],
72
+ ['1', [{ value: '1' }, { value: '2' }], true],
73
+ [['2'], [{ value: '1' }, { value: '2' }], false],
74
+ [[1, 2], [{ value: '1' }, { value: '2' }], false],
75
+ [['1', '2'], [{ value: '1' }, { value: '2' }], false],
76
+ ])("value '%s', items: '%s' == '%s'", (value, menuItems, expected) => {
77
+ expect(isValidValue(value, false, menuItems)).toBe(expected);
78
+ });
79
+ });
80
+ });
81
+ //# sourceMappingURL=util.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.spec.js","sourceRoot":"","sources":["../../../../src/components/six-select/test/util.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { getValue, isValidValue } from '../util';\n\ndescribe('util', () => {\n describe('getValue(multiple)', () => {\n it.each([\n [null, [], []],\n [undefined, [], []],\n [10, [], []],\n [[1, 2, 3], [{ value: '1' }, { value: '2' }], []],\n [{}, [], []],\n [[], [], []],\n ['', [], []],\n ['1', [{ value: '1' }], ['1']],\n [['1'], [{ value: '1' }], ['1']],\n ['1', [{ value: '2' }], []],\n [['1'], [{ value: '2' }], []],\n ['1', [{ value: '1' }, { value: '2' }], ['1']],\n [['1'], [{ value: '1' }, { value: '2' }], ['1']],\n ])(\"value '%s', items: '%s' == '%s'\", (value, menuItems, expected) => {\n expect(getValue(value, true, menuItems)).toStrictEqual(expected);\n });\n });\n\n describe('getValue(single)', () => {\n it.each([\n [null, [], ''],\n [undefined, [], ''],\n [10, [], ''],\n [{}, [], ''],\n [[], [], ''],\n ['', [], ''],\n ['1', [{ value: '1' }], '1'],\n [['1'], [{ value: '1' }], ''],\n ['1', [{ value: '2' }], ''],\n [['1'], [{ value: '2' }], ''],\n ['1', [{ value: '1' }, { value: '2' }], '1'],\n [['2'], [{ value: '1' }, { value: '2' }], ''],\n [[1, 2], [{ value: '1' }, { value: '2' }], ''],\n ])(\"value '%s', items: '%s' == '%s'\", (value, menuItems, expected) => {\n expect(getValue(value, false, menuItems)).toStrictEqual(expected);\n });\n });\n\n describe('isValidValue(multiple)', () => {\n it.each([\n [null, [], false],\n [undefined, [], false],\n [10, [], false],\n [{}, [], false],\n ['', [], true],\n [[], [], true],\n ['1', [{ value: '1' }], true],\n [['1'], [{ value: '1' }], true],\n ['1', [{ value: '2' }], false],\n [['1'], [{ value: '2' }], false],\n ['1', [{ value: '1' }, { value: '2' }], true],\n [['1'], [{ value: '1' }, { value: '2' }], true],\n [['1', '3'], [{ value: '1' }, { value: '2' }], false],\n ])(\"value '%s', items: '%s' == '%s'\", (value, menuItems, expected) => {\n expect(isValidValue(value, true, menuItems)).toBe(expected);\n });\n });\n\n describe('isValidValue(single)', () => {\n it.each([\n [null, [], false],\n [undefined, [], false],\n [10, [], false],\n [{}, [], false],\n ['', [], true],\n [[], [], false],\n ['1', [{ value: '1' }], true],\n [['1'], [{ value: '1' }], false],\n ['1', [{ value: '2' }], false],\n [['1'], [{ value: '2' }], false],\n ['1', [{ value: '1' }, { value: '2' }], true],\n [['2'], [{ value: '1' }, { value: '2' }], false],\n [[1, 2], [{ value: '1' }, { value: '2' }], false],\n [['1', '2'], [{ value: '1' }, { value: '2' }], false],\n ])(\"value '%s', items: '%s' == '%s'\", (value, menuItems, expected) => {\n expect(isValidValue(value, false, menuItems)).toBe(expected);\n });\n });\n});\n"]}
@@ -1,5 +1,5 @@
1
- import { h } from '@stencil/core';
2
- import { scrollIntoView } from '../../utils/scroll';
1
+ import { h } from "@stencil/core";
2
+ import { scrollIntoView } from "../../utils/scroll";
3
3
  const isSidebarItemGroup = (node) => { var _a; return ((_a = node === null || node === void 0 ? void 0 : node.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'six-sidebar-item-group'; };
4
4
  /**
5
5
  * @since 1.0
@@ -293,7 +293,8 @@ export class SixSidebar {
293
293
  "references": {
294
294
  "EmptyPayload": {
295
295
  "location": "import",
296
- "path": "../../utils/types"
296
+ "path": "../../utils/types",
297
+ "id": "src/utils/types.ts::EmptyPayload"
297
298
  }
298
299
  }
299
300
  }
@@ -313,7 +314,8 @@ export class SixSidebar {
313
314
  "references": {
314
315
  "EmptyPayload": {
315
316
  "location": "import",
316
- "path": "../../utils/types"
317
+ "path": "../../utils/types",
318
+ "id": "src/utils/types.ts::EmptyPayload"
317
319
  }
318
320
  }
319
321
  }
@@ -333,7 +335,8 @@ export class SixSidebar {
333
335
  "references": {
334
336
  "EmptyPayload": {
335
337
  "location": "import",
336
- "path": "../../utils/types"
338
+ "path": "../../utils/types",
339
+ "id": "src/utils/types.ts::EmptyPayload"
337
340
  }
338
341
  }
339
342
  }
@@ -353,7 +356,8 @@ export class SixSidebar {
353
356
  "references": {
354
357
  "EmptyPayload": {
355
358
  "location": "import",
356
- "path": "../../utils/types"
359
+ "path": "../../utils/types",
360
+ "id": "src/utils/types.ts::EmptyPayload"
357
361
  }
358
362
  }
359
363
  }
@@ -373,7 +377,8 @@ export class SixSidebar {
373
377
  "references": {
374
378
  "EmptyPayload": {
375
379
  "location": "import",
376
- "path": "../../utils/types"
380
+ "path": "../../utils/types",
381
+ "id": "src/utils/types.ts::EmptyPayload"
377
382
  }
378
383
  }
379
384
  }
@@ -387,7 +392,8 @@ export class SixSidebar {
387
392
  "parameters": [],
388
393
  "references": {
389
394
  "Promise": {
390
- "location": "global"
395
+ "location": "global",
396
+ "id": "global::Promise"
391
397
  }
392
398
  },
393
399
  "return": "Promise<void>"
@@ -403,7 +409,8 @@ export class SixSidebar {
403
409
  "parameters": [],
404
410
  "references": {
405
411
  "Promise": {
406
- "location": "global"
412
+ "location": "global",
413
+ "id": "global::Promise"
407
414
  }
408
415
  },
409
416
  "return": "Promise<void>"
@@ -419,7 +426,8 @@ export class SixSidebar {
419
426
  "parameters": [],
420
427
  "references": {
421
428
  "Promise": {
422
- "location": "global"
429
+ "location": "global",
430
+ "id": "global::Promise"
423
431
  }
424
432
  },
425
433
  "return": "Promise<void>"
@@ -438,10 +446,12 @@ export class SixSidebar {
438
446
  }],
439
447
  "references": {
440
448
  "Promise": {
441
- "location": "global"
449
+ "location": "global",
450
+ "id": "global::Promise"
442
451
  },
443
452
  "HTMLSixDetailsElement": {
444
- "location": "global"
453
+ "location": "global",
454
+ "id": "global::HTMLSixDetailsElement"
445
455
  }
446
456
  },
447
457
  "return": "Promise<void>"
@@ -460,10 +470,12 @@ export class SixSidebar {
460
470
  }],
461
471
  "references": {
462
472
  "Promise": {
463
- "location": "global"
473
+ "location": "global",
474
+ "id": "global::Promise"
464
475
  },
465
476
  "HTMLSixSidebarItemGroupElement": {
466
- "location": "global"
477
+ "location": "global",
478
+ "id": "global::HTMLSixSidebarItemGroupElement"
467
479
  }
468
480
  },
469
481
  "return": "Promise<void>"
@@ -1 +1 @@
1
- {"version":3,"file":"six-sidebar.js","sourceRoot":"","sources":["../../../src/components/six-sidebar/six-sidebar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { EmptyPayload } from '../../utils/types';\nimport { scrollIntoView } from '../../utils/scroll';\n\nconst isSidebarItemGroup = (node?: Element | null): boolean =>\n node?.tagName?.toLowerCase() === 'six-sidebar-item-group';\n\n/**\n * @since 1.0\n * @status stable\n *\n * @slot - Used to define the nested side bar [group] items.\n */\n\n@Component({\n tag: 'six-sidebar',\n styleUrl: 'six-sidebar.scss',\n shadow: true,\n})\nexport class SixSidebar {\n private willShow = false;\n private willHide = false;\n\n private sidebar?: HTMLElement;\n\n @State() isVisible = false;\n\n /** Sidebar position */\n @Prop() position: 'left' | 'right' = 'left';\n\n /** Indicates whether the sidebar is open. You can use this in lieu of the show/hide methods. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n /** Sidebar width */\n @Prop() width = '16rem';\n\n /** Define whether sidebar is toggled meaning only one menu can be open at the same time*/\n @Prop() toggled = false;\n\n /** Emitted when the sidebar opens. Calling `event.preventDefault()` will prevent it from being opened. */\n @Event({ eventName: 'six-sidebar-show' }) sixShow!: EventEmitter<EmptyPayload>;\n\n /** Emitted after the sidebar opens and all transitions are complete. */\n @Event({ eventName: 'six-sidebar-after-show' }) sixAfterShow!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the sidebar closes. Calling `event.preventDefault()` will prevent it from being closed. */\n @Event({ eventName: 'six-sidebar-hide' }) sixHide!: EventEmitter<EmptyPayload>;\n\n /** Emitted after the sidebar closes and all transitions are complete. */\n @Event({ eventName: 'six-sidebar-after-hide' }) sixAfterHide!: EventEmitter<EmptyPayload>;\n\n /**\n * Emitted when the sidebar opens and the panel gains focus. Calling `event.preventDefault()` will prevent focus and\n * allow you to set it on a different element in the sidebar, such as an input or button.\n */\n @Event({ eventName: 'six-sidebar-initial-focus' }) sixInitialFocus!: EventEmitter<EmptyPayload>;\n\n @Watch('open')\n handleOpenChange() {\n this.open ? this.show() : this.hide();\n }\n\n private handleTransitionEnd = (event: TransitionEvent) => {\n const target = event.target as HTMLElement;\n\n // Ensure we only emit one event when the target element is no longer visible\n if (event.type === 'transitionend' && target.classList.contains('sidebar__container')) {\n this.resetTransitionVariables();\n }\n };\n\n componentWillLoad() {\n // Show on init if open\n if (this.open) {\n void this.show();\n // if the sidebar is open by default we need to manually reset the\n // transition variables since there will be no transition event\n this.resetTransitionVariables();\n }\n }\n\n componentDidRender() {\n this.setupTogglableMenuItems();\n }\n\n disconnectedCallback() {\n this.sidebar?.removeEventListener('six-details-show', this.closeSiblingDetailsOnShow);\n }\n\n private closeSiblingDetailsOnShow = (event: Event) => {\n const clickedMenuItem = event.target as HTMLElement;\n if (this.sidebar != null) {\n scrollIntoView(clickedMenuItem, this.sidebar);\n }\n\n const closeAllSiblingsBySiblingProperty = (\n getSibling: (node: Element | null | undefined) => Element | null | undefined\n ) => {\n let node: Element | null | undefined = clickedMenuItem;\n while (getSibling(node) != null) {\n node = getSibling(node);\n if (isSidebarItemGroup(node)) {\n const detailsElement = node?.shadowRoot?.querySelector('six-details');\n if (detailsElement != null) {\n detailsElement.open = false;\n }\n }\n }\n };\n\n // close all previous siblings\n closeAllSiblingsBySiblingProperty((node) => node?.previousElementSibling);\n // close all further siblings\n closeAllSiblingsBySiblingProperty((node) => node?.nextElementSibling);\n };\n\n private setupTogglableMenuItems() {\n if (!this.toggled || this.sidebar == null) return;\n this.markAllMenuItemsAsSelectableEmpty();\n this.sidebar.addEventListener('six-details-show', this.closeSiblingDetailsOnShow);\n }\n\n private markAllMenuItemsAsSelectableEmpty() {\n // when you have a toggled menu you also want to close other menu items when you click on an item without children\n // nice benefit this item will then also be highlighted\n const slot = this.sidebar?.querySelector('slot');\n const nodes = slot?.assignedElements() || [];\n\n // since we don't just want to make the top level empty menuItems selectable in toggled mode,\n // but also nested items we need to traverse the whole menu item tree\n const menuItems = [];\n while (nodes.length > 0) {\n const node = nodes.pop();\n if (node?.shadowRoot == null) {\n continue;\n }\n\n // collect six-details in the current shadowDOM\n const menuItemsForCurrentNode = node.shadowRoot.querySelectorAll('six-details');\n menuItems.push(...menuItemsForCurrentNode);\n\n // collect all six-sidebar-item-group children of the current node to afterwards check their shadowDOM too\n const newItemGroups = Array.from(node.children).filter(isSidebarItemGroup);\n nodes.push(...newItemGroups);\n }\n\n menuItems.forEach((details) => (details.selectableEmpty = true));\n }\n\n /** Toggles whether the sidebar should be shown or hidden */\n @Method()\n async toggle() {\n if (this.willShow || this.willHide) {\n return;\n }\n\n if (this.open) {\n await this.hide();\n } else {\n await this.show();\n }\n }\n\n /** Shows the sidebar */\n @Method()\n async show() {\n if (this.willShow) {\n return;\n }\n\n const sixShow = this.sixShow.emit();\n if (sixShow.defaultPrevented) {\n this.open = false;\n return;\n }\n\n this.willShow = true;\n this.isVisible = true;\n this.open = true;\n }\n\n /** Hides the sidebar */\n @Method()\n async hide() {\n if (this.willHide) {\n return;\n }\n\n const sixHide = this.sixHide.emit();\n if (sixHide.defaultPrevented) {\n this.open = true;\n return;\n }\n\n this.willHide = true;\n this.open = false;\n }\n\n /** Allows to select a menu item programmatically by index */\n @Method()\n async selectItemByIndex(index: number) {\n if (this.sidebar == null) return;\n\n const slot = this.sidebar.querySelector('slot');\n const menuItemsOnRootLevel: HTMLSixDetailsElement[] = (slot?.assignedElements() || []).flatMap((el) => {\n const detailsElement = el.shadowRoot?.querySelector('six-details');\n if (detailsElement == null) {\n return [];\n }\n return [detailsElement];\n });\n if (index < 0 || index > menuItemsOnRootLevel.length - 1) {\n console.error(\n `Tried to access sidebar menu item by index, but provided index out of range. Provided index: ${index}`\n );\n return;\n }\n await menuItemsOnRootLevel[index].show();\n }\n\n /** Allows to select a menu item programmatically by name */\n @Method()\n async selectItemByName(value: string) {\n const slot = this.sidebar?.querySelector('slot');\n const sidebarItemGroups = slot?.assignedElements() as HTMLSixSidebarItemGroupElement[];\n if (sidebarItemGroups == null) {\n return;\n }\n\n const indexOfSelectedElement = sidebarItemGroups.findIndex((el) => el?.name === value);\n const selectedItem = sidebarItemGroups.at(indexOfSelectedElement)?.shadowRoot?.querySelector('six-details');\n await selectedItem?.show();\n }\n\n private resetTransitionVariables() {\n this.isVisible = this.open;\n this.willShow = false;\n this.willHide = false;\n this.open ? this.sixAfterShow.emit() : this.sixAfterHide.emit();\n }\n\n render() {\n return (\n <host class=\"six-sidebar\">\n <div\n class={{\n sidebar__container: true,\n 'sidebar--visible': this.isVisible,\n 'sidebar--open': this.open,\n 'sidebar--left': this.position === 'left',\n 'sidebar--right': this.position === 'right',\n }}\n style={{\n width: this.width,\n [`margin-${this.position}`]: this.open ? '0' : `calc(1rem - ${this.width})`,\n }}\n ref={(el) => (this.sidebar = el)}\n aria-hidden={this.open ? 'false' : 'true'}\n onTransitionEnd={this.handleTransitionEnd}\n >\n <slot />\n </div>\n </host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"six-sidebar.js","sourceRoot":"","sources":["../../../src/components/six-sidebar/six-sidebar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { EmptyPayload } from '../../utils/types';\nimport { scrollIntoView } from '../../utils/scroll';\n\nconst isSidebarItemGroup = (node?: Element | null): boolean =>\n node?.tagName?.toLowerCase() === 'six-sidebar-item-group';\n\n/**\n * @since 1.0\n * @status stable\n *\n * @slot - Used to define the nested side bar [group] items.\n */\n\n@Component({\n tag: 'six-sidebar',\n styleUrl: 'six-sidebar.scss',\n shadow: true,\n})\nexport class SixSidebar {\n private willShow = false;\n private willHide = false;\n\n private sidebar?: HTMLElement;\n\n @State() isVisible = false;\n\n /** Sidebar position */\n @Prop() position: 'left' | 'right' = 'left';\n\n /** Indicates whether the sidebar is open. You can use this in lieu of the show/hide methods. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n /** Sidebar width */\n @Prop() width = '16rem';\n\n /** Define whether sidebar is toggled meaning only one menu can be open at the same time*/\n @Prop() toggled = false;\n\n /** Emitted when the sidebar opens. Calling `event.preventDefault()` will prevent it from being opened. */\n @Event({ eventName: 'six-sidebar-show' }) sixShow!: EventEmitter<EmptyPayload>;\n\n /** Emitted after the sidebar opens and all transitions are complete. */\n @Event({ eventName: 'six-sidebar-after-show' }) sixAfterShow!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the sidebar closes. Calling `event.preventDefault()` will prevent it from being closed. */\n @Event({ eventName: 'six-sidebar-hide' }) sixHide!: EventEmitter<EmptyPayload>;\n\n /** Emitted after the sidebar closes and all transitions are complete. */\n @Event({ eventName: 'six-sidebar-after-hide' }) sixAfterHide!: EventEmitter<EmptyPayload>;\n\n /**\n * Emitted when the sidebar opens and the panel gains focus. Calling `event.preventDefault()` will prevent focus and\n * allow you to set it on a different element in the sidebar, such as an input or button.\n */\n @Event({ eventName: 'six-sidebar-initial-focus' }) sixInitialFocus!: EventEmitter<EmptyPayload>;\n\n @Watch('open')\n handleOpenChange() {\n this.open ? this.show() : this.hide();\n }\n\n private handleTransitionEnd = (event: TransitionEvent) => {\n const target = event.target as HTMLElement;\n\n // Ensure we only emit one event when the target element is no longer visible\n if (event.type === 'transitionend' && target.classList.contains('sidebar__container')) {\n this.resetTransitionVariables();\n }\n };\n\n componentWillLoad() {\n // Show on init if open\n if (this.open) {\n void this.show();\n // if the sidebar is open by default we need to manually reset the\n // transition variables since there will be no transition event\n this.resetTransitionVariables();\n }\n }\n\n componentDidRender() {\n this.setupTogglableMenuItems();\n }\n\n disconnectedCallback() {\n this.sidebar?.removeEventListener('six-details-show', this.closeSiblingDetailsOnShow);\n }\n\n private closeSiblingDetailsOnShow = (event: Event) => {\n const clickedMenuItem = event.target as HTMLElement;\n if (this.sidebar != null) {\n scrollIntoView(clickedMenuItem, this.sidebar);\n }\n\n const closeAllSiblingsBySiblingProperty = (\n getSibling: (node: Element | null | undefined) => Element | null | undefined\n ) => {\n let node: Element | null | undefined = clickedMenuItem;\n while (getSibling(node) != null) {\n node = getSibling(node);\n if (isSidebarItemGroup(node)) {\n const detailsElement = node?.shadowRoot?.querySelector('six-details');\n if (detailsElement != null) {\n detailsElement.open = false;\n }\n }\n }\n };\n\n // close all previous siblings\n closeAllSiblingsBySiblingProperty((node) => node?.previousElementSibling);\n // close all further siblings\n closeAllSiblingsBySiblingProperty((node) => node?.nextElementSibling);\n };\n\n private setupTogglableMenuItems() {\n if (!this.toggled || this.sidebar == null) return;\n this.markAllMenuItemsAsSelectableEmpty();\n this.sidebar.addEventListener('six-details-show', this.closeSiblingDetailsOnShow);\n }\n\n private markAllMenuItemsAsSelectableEmpty() {\n // when you have a toggled menu you also want to close other menu items when you click on an item without children\n // nice benefit this item will then also be highlighted\n const slot = this.sidebar?.querySelector('slot');\n const nodes = slot?.assignedElements() || [];\n\n // since we don't just want to make the top level empty menuItems selectable in toggled mode,\n // but also nested items we need to traverse the whole menu item tree\n const menuItems = [];\n while (nodes.length > 0) {\n const node = nodes.pop();\n if (node?.shadowRoot == null) {\n continue;\n }\n\n // collect six-details in the current shadowDOM\n const menuItemsForCurrentNode = node.shadowRoot.querySelectorAll('six-details');\n menuItems.push(...menuItemsForCurrentNode);\n\n // collect all six-sidebar-item-group children of the current node to afterwards check their shadowDOM too\n const newItemGroups = Array.from(node.children).filter(isSidebarItemGroup);\n nodes.push(...newItemGroups);\n }\n\n menuItems.forEach((details) => (details.selectableEmpty = true));\n }\n\n /** Toggles whether the sidebar should be shown or hidden */\n @Method()\n async toggle() {\n if (this.willShow || this.willHide) {\n return;\n }\n\n if (this.open) {\n await this.hide();\n } else {\n await this.show();\n }\n }\n\n /** Shows the sidebar */\n @Method()\n async show() {\n if (this.willShow) {\n return;\n }\n\n const sixShow = this.sixShow.emit();\n if (sixShow.defaultPrevented) {\n this.open = false;\n return;\n }\n\n this.willShow = true;\n this.isVisible = true;\n this.open = true;\n }\n\n /** Hides the sidebar */\n @Method()\n async hide() {\n if (this.willHide) {\n return;\n }\n\n const sixHide = this.sixHide.emit();\n if (sixHide.defaultPrevented) {\n this.open = true;\n return;\n }\n\n this.willHide = true;\n this.open = false;\n }\n\n /** Allows to select a menu item programmatically by index */\n @Method()\n async selectItemByIndex(index: number) {\n if (this.sidebar == null) return;\n\n const slot = this.sidebar.querySelector('slot');\n const menuItemsOnRootLevel: HTMLSixDetailsElement[] = (slot?.assignedElements() || []).flatMap((el) => {\n const detailsElement = el.shadowRoot?.querySelector('six-details');\n if (detailsElement == null) {\n return [];\n }\n return [detailsElement];\n });\n if (index < 0 || index > menuItemsOnRootLevel.length - 1) {\n console.error(\n `Tried to access sidebar menu item by index, but provided index out of range. Provided index: ${index}`\n );\n return;\n }\n await menuItemsOnRootLevel[index].show();\n }\n\n /** Allows to select a menu item programmatically by name */\n @Method()\n async selectItemByName(value: string) {\n const slot = this.sidebar?.querySelector('slot');\n const sidebarItemGroups = slot?.assignedElements() as HTMLSixSidebarItemGroupElement[];\n if (sidebarItemGroups == null) {\n return;\n }\n\n const indexOfSelectedElement = sidebarItemGroups.findIndex((el) => el?.name === value);\n const selectedItem = sidebarItemGroups.at(indexOfSelectedElement)?.shadowRoot?.querySelector('six-details');\n await selectedItem?.show();\n }\n\n private resetTransitionVariables() {\n this.isVisible = this.open;\n this.willShow = false;\n this.willHide = false;\n this.open ? this.sixAfterShow.emit() : this.sixAfterHide.emit();\n }\n\n render() {\n return (\n <host class=\"six-sidebar\">\n <div\n class={{\n sidebar__container: true,\n 'sidebar--visible': this.isVisible,\n 'sidebar--open': this.open,\n 'sidebar--left': this.position === 'left',\n 'sidebar--right': this.position === 'right',\n }}\n style={{\n width: this.width,\n [`margin-${this.position}`]: this.open ? '0' : `calc(1rem - ${this.width})`,\n }}\n ref={(el) => (this.sidebar = el)}\n aria-hidden={this.open ? 'false' : 'true'}\n onTransitionEnd={this.handleTransitionEnd}\n >\n <slot />\n </div>\n </host>\n );\n }\n}\n"]}
@@ -0,0 +1,22 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { SixSidebar } from "../six-sidebar";
3
+ describe('six-sidebar', () => {
4
+ it('renders', async () => {
5
+ const page = await newSpecPage({
6
+ components: [SixSidebar],
7
+ html: `<six-sidebar></six-sidebar>`,
8
+ });
9
+ expect(page.root).toEqualHtml(`
10
+ <six-sidebar>
11
+ <mock:shadow-root>
12
+ <host class="six-sidebar">
13
+ <div aria-hidden="true" class="sidebar--left sidebar__container" style="width: 16rem; margin-left: calc(1rem - 16rem);">
14
+ <slot></slot>
15
+ </div>
16
+ </host>
17
+ </mock:shadow-root>
18
+ </six-sidebar>
19
+ `);
20
+ });
21
+ });
22
+ //# sourceMappingURL=six-sidebar.spec.js.map