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

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 (729) hide show
  1. package/dist/cjs/{event-listeners-74715e62.js → event-listeners-dd94dcfb.js} +7 -7
  2. package/dist/cjs/event-listeners-dd94dcfb.js.map +1 -0
  3. package/dist/cjs/{execution-control-46f388e0.js → execution-control-45c84c46.js} +6 -3
  4. package/dist/cjs/execution-control-45c84c46.js.map +1 -0
  5. package/dist/cjs/{focus-visible-0b352c74.js → focus-visible-e0d93a95.js} +3 -3
  6. package/dist/cjs/focus-visible-e0d93a95.js.map +1 -0
  7. package/dist/cjs/{form-control-2c17c573.js → form-control-7494488a.js} +10 -9
  8. package/dist/cjs/form-control-7494488a.js.map +1 -0
  9. package/dist/cjs/{index-2f6daa5b.js → index-ccf35821.js} +4 -1
  10. package/dist/cjs/index-ccf35821.js.map +1 -0
  11. package/dist/cjs/loader.cjs.js +2 -2
  12. package/dist/cjs/{modal-48d42228.js → modal-21350fb5.js} +4 -3
  13. package/dist/cjs/modal-21350fb5.js.map +1 -0
  14. package/dist/cjs/{popover-f743f62b.js → popover-b5e2d5ef.js} +33 -19
  15. package/dist/cjs/popover-b5e2d5ef.js.map +1 -0
  16. package/dist/cjs/popup-44836aaf.js +103 -0
  17. package/dist/cjs/popup-44836aaf.js.map +1 -0
  18. package/dist/cjs/set-attributes_2.cjs.entry.js +4 -2
  19. package/dist/cjs/set-attributes_2.cjs.entry.js.map +1 -1
  20. package/dist/cjs/six-alert.cjs.entry.js +18 -23
  21. package/dist/cjs/six-alert.cjs.entry.js.map +1 -1
  22. package/dist/cjs/six-avatar.cjs.entry.js +5 -8
  23. package/dist/cjs/six-avatar.cjs.entry.js.map +1 -1
  24. package/dist/cjs/six-badge.cjs.entry.js +2 -2
  25. package/dist/cjs/six-badge.cjs.entry.js.map +1 -1
  26. package/dist/cjs/six-button.cjs.entry.js +30 -34
  27. package/dist/cjs/six-button.cjs.entry.js.map +1 -1
  28. package/dist/cjs/six-card.cjs.entry.js +1 -1
  29. package/dist/cjs/six-card.cjs.entry.js.map +1 -1
  30. package/dist/cjs/six-checkbox.cjs.entry.js +5 -4
  31. package/dist/cjs/six-checkbox.cjs.entry.js.map +1 -1
  32. package/dist/cjs/six-datepicker.cjs.entry.js +148 -245
  33. package/dist/cjs/six-datepicker.cjs.entry.js.map +1 -1
  34. package/dist/cjs/six-details.cjs.entry.js +48 -47
  35. package/dist/cjs/six-details.cjs.entry.js.map +1 -1
  36. package/dist/cjs/six-dialog.cjs.entry.js +36 -40
  37. package/dist/cjs/six-dialog.cjs.entry.js.map +1 -1
  38. package/dist/cjs/six-drawer.cjs.entry.js +33 -37
  39. package/dist/cjs/six-drawer.cjs.entry.js.map +1 -1
  40. package/dist/cjs/six-dropdown_2.cjs.entry.js +215 -196
  41. package/dist/cjs/six-dropdown_2.cjs.entry.js.map +1 -1
  42. package/dist/cjs/six-error-page.cjs.entry.js +20 -22
  43. package/dist/cjs/six-error-page.cjs.entry.js.map +1 -1
  44. package/dist/cjs/six-file-list-item.cjs.entry.js +2 -2
  45. package/dist/cjs/six-file-list-item.cjs.entry.js.map +1 -1
  46. package/dist/cjs/six-file-list.cjs.entry.js +1 -1
  47. package/dist/cjs/six-file-upload.cjs.entry.js +21 -21
  48. package/dist/cjs/six-file-upload.cjs.entry.js.map +1 -1
  49. package/dist/cjs/six-footer.cjs.entry.js +1 -1
  50. package/dist/cjs/six-form.cjs.entry.js +40 -35
  51. package/dist/cjs/six-form.cjs.entry.js.map +1 -1
  52. package/dist/cjs/six-group-label.cjs.entry.js +12 -11
  53. package/dist/cjs/six-group-label.cjs.entry.js.map +1 -1
  54. package/dist/cjs/six-header.cjs.entry.js +66 -44
  55. package/dist/cjs/six-header.cjs.entry.js.map +1 -1
  56. package/dist/cjs/six-icon-button.cjs.entry.js +4 -4
  57. package/dist/cjs/six-icon-button.cjs.entry.js.map +1 -1
  58. package/dist/cjs/six-icon.cjs.entry.js +1 -1
  59. package/dist/cjs/six-input.cjs.entry.js +5 -5
  60. package/dist/cjs/six-input.cjs.entry.js.map +1 -1
  61. package/dist/cjs/six-item-picker.cjs.entry.js +59 -78
  62. package/dist/cjs/six-item-picker.cjs.entry.js.map +1 -1
  63. package/dist/cjs/six-language-switcher.cjs.entry.js +2 -2
  64. package/dist/cjs/six-language-switcher.cjs.entry.js.map +1 -1
  65. package/dist/cjs/six-layout-grid.cjs.entry.js +5 -3
  66. package/dist/cjs/six-layout-grid.cjs.entry.js.map +1 -1
  67. package/dist/cjs/six-main-container.cjs.entry.js +1 -1
  68. package/dist/cjs/six-main-container.cjs.entry.js.map +1 -1
  69. package/dist/cjs/six-menu-divider.cjs.entry.js +1 -1
  70. package/dist/cjs/six-menu-item.cjs.entry.js +9 -7
  71. package/dist/cjs/six-menu-item.cjs.entry.js.map +1 -1
  72. package/dist/cjs/six-menu-label.cjs.entry.js +1 -1
  73. package/dist/cjs/six-picto.cjs.entry.js +5 -2
  74. package/dist/cjs/six-picto.cjs.entry.js.map +1 -1
  75. package/dist/cjs/six-progress-bar.cjs.entry.js +1 -1
  76. package/dist/cjs/six-progress-ring.cjs.entry.js +4 -4
  77. package/dist/cjs/six-progress-ring.cjs.entry.js.map +1 -1
  78. package/dist/cjs/six-radio.cjs.entry.js +1 -1
  79. package/dist/cjs/six-range.cjs.entry.js +4 -4
  80. package/dist/cjs/six-root.cjs.entry.js +2 -2
  81. package/dist/cjs/six-root.cjs.entry.js.map +1 -1
  82. package/dist/cjs/six-search-field.cjs.entry.js +11 -6
  83. package/dist/cjs/six-search-field.cjs.entry.js.map +1 -1
  84. package/dist/cjs/six-select.cjs.entry.js +135 -188
  85. package/dist/cjs/six-select.cjs.entry.js.map +1 -1
  86. package/dist/cjs/six-sidebar-item-group.cjs.entry.js +10 -6
  87. package/dist/cjs/six-sidebar-item-group.cjs.entry.js.map +1 -1
  88. package/dist/cjs/six-sidebar-item.cjs.entry.js +1 -1
  89. package/dist/cjs/six-sidebar.cjs.entry.js +40 -19
  90. package/dist/cjs/six-sidebar.cjs.entry.js.map +1 -1
  91. package/dist/cjs/six-spinner.cjs.entry.js +1 -1
  92. package/dist/cjs/six-spinner.cjs.entry.js.map +1 -1
  93. package/dist/cjs/six-switch.cjs.entry.js +51 -45
  94. package/dist/cjs/six-switch.cjs.entry.js.map +1 -1
  95. package/dist/cjs/six-tab-group.cjs.entry.js +131 -113
  96. package/dist/cjs/six-tab-group.cjs.entry.js.map +1 -1
  97. package/dist/cjs/six-tab-panel.cjs.entry.js +2 -2
  98. package/dist/cjs/six-tab-panel.cjs.entry.js.map +1 -1
  99. package/dist/cjs/six-tab.cjs.entry.js +5 -3
  100. package/dist/cjs/six-tab.cjs.entry.js.map +1 -1
  101. package/dist/cjs/six-tag.cjs.entry.js +5 -8
  102. package/dist/cjs/six-tag.cjs.entry.js.map +1 -1
  103. package/dist/cjs/six-textarea.cjs.entry.js +4 -4
  104. package/dist/cjs/six-tile.cjs.entry.js +14 -17
  105. package/dist/cjs/six-tile.cjs.entry.js.map +1 -1
  106. package/dist/cjs/six-timepicker.cjs.entry.js +155 -201
  107. package/dist/cjs/six-timepicker.cjs.entry.js.map +1 -1
  108. package/dist/cjs/six-tooltip.cjs.entry.js +54 -57
  109. package/dist/cjs/six-tooltip.cjs.entry.js.map +1 -1
  110. package/dist/cjs/{slot-ad537f24.js → slot-bccbdb59.js} +11 -10
  111. package/dist/cjs/slot-bccbdb59.js.map +1 -0
  112. package/dist/cjs/ui-library.cjs.js +2 -2
  113. package/dist/collection/components/six-alert/six-alert.js +17 -22
  114. package/dist/collection/components/six-alert/six-alert.js.map +1 -1
  115. package/dist/collection/components/six-avatar/six-avatar.js +4 -7
  116. package/dist/collection/components/six-avatar/six-avatar.js.map +1 -1
  117. package/dist/collection/components/six-badge/six-badge.js +1 -1
  118. package/dist/collection/components/six-badge/six-badge.js.map +1 -1
  119. package/dist/collection/components/six-button/six-button.js +38 -40
  120. package/dist/collection/components/six-button/six-button.js.map +1 -1
  121. package/dist/collection/components/six-card/six-card.js +1 -1
  122. package/dist/collection/components/six-card/six-card.js.map +1 -1
  123. package/dist/collection/components/six-checkbox/six-checkbox.js +3 -2
  124. package/dist/collection/components/six-checkbox/six-checkbox.js.map +1 -1
  125. package/dist/collection/components/six-datepicker/components/day-selection.js +2 -2
  126. package/dist/collection/components/six-datepicker/components/day-selection.js.map +1 -1
  127. package/dist/collection/components/six-datepicker/components/month-selection.js +4 -3
  128. package/dist/collection/components/six-datepicker/components/month-selection.js.map +1 -1
  129. package/dist/collection/components/six-datepicker/components/year-selection.js +9 -6
  130. package/dist/collection/components/six-datepicker/components/year-selection.js.map +1 -1
  131. package/dist/collection/components/six-datepicker/six-datepicker.js +126 -240
  132. package/dist/collection/components/six-datepicker/six-datepicker.js.map +1 -1
  133. package/dist/collection/components/six-details/six-details.js +51 -50
  134. package/dist/collection/components/six-details/six-details.js.map +1 -1
  135. package/dist/collection/components/six-dialog/six-dialog.js +34 -38
  136. package/dist/collection/components/six-dialog/six-dialog.js.map +1 -1
  137. package/dist/collection/components/six-drawer/six-drawer.js +31 -35
  138. package/dist/collection/components/six-drawer/six-drawer.js.map +1 -1
  139. package/dist/collection/components/six-dropdown/six-dropdown.js +185 -173
  140. package/dist/collection/components/six-dropdown/six-dropdown.js.map +1 -1
  141. package/dist/collection/components/six-error-page/six-error-page.js +25 -27
  142. package/dist/collection/components/six-error-page/six-error-page.js.map +1 -1
  143. package/dist/collection/components/six-file-list-item/six-file-list-item.js +3 -3
  144. package/dist/collection/components/six-file-list-item/six-file-list-item.js.map +1 -1
  145. package/dist/collection/components/six-file-upload/six-file-upload.js +32 -32
  146. package/dist/collection/components/six-file-upload/six-file-upload.js.map +1 -1
  147. package/dist/collection/components/six-form/six-form.js +41 -33
  148. package/dist/collection/components/six-form/six-form.js.map +1 -1
  149. package/dist/collection/components/six-group-label/six-group-label.js +11 -9
  150. package/dist/collection/components/six-group-label/six-group-label.js.map +1 -1
  151. package/dist/collection/components/six-header/six-header.js +64 -42
  152. package/dist/collection/components/six-header/six-header.js.map +1 -1
  153. package/dist/collection/components/six-icon-button/six-icon-button.js +8 -8
  154. package/dist/collection/components/six-icon-button/six-icon-button.js.map +1 -1
  155. package/dist/collection/components/six-input/six-input.js +16 -16
  156. package/dist/collection/components/six-input/six-input.js.map +1 -1
  157. package/dist/collection/components/six-item-picker/six-item-picker.js +65 -84
  158. package/dist/collection/components/six-item-picker/six-item-picker.js.map +1 -1
  159. package/dist/collection/components/six-language-switcher/six-language-switcher.js +2 -2
  160. package/dist/collection/components/six-language-switcher/six-language-switcher.js.map +1 -1
  161. package/dist/collection/components/six-layout-grid/six-layout-grid.js +10 -8
  162. package/dist/collection/components/six-layout-grid/six-layout-grid.js.map +1 -1
  163. package/dist/collection/components/six-main-container/six-main-container.js +1 -1
  164. package/dist/collection/components/six-main-container/six-main-container.js.map +1 -1
  165. package/dist/collection/components/six-menu/six-menu.js +29 -23
  166. package/dist/collection/components/six-menu/six-menu.js.map +1 -1
  167. package/dist/collection/components/six-menu-item/six-menu-item.js +7 -5
  168. package/dist/collection/components/six-menu-item/six-menu-item.js.map +1 -1
  169. package/dist/collection/components/six-picto/six-picto.js +5 -2
  170. package/dist/collection/components/six-picto/six-picto.js.map +1 -1
  171. package/dist/collection/components/six-progress-ring/six-progress-ring.js +5 -4
  172. package/dist/collection/components/six-progress-ring/six-progress-ring.js.map +1 -1
  173. package/dist/collection/components/six-radio/six-radio.js +2 -2
  174. package/dist/collection/components/six-root/six-root.js +4 -4
  175. package/dist/collection/components/six-root/six-root.js.map +1 -1
  176. package/dist/collection/components/six-search-field/six-search-field.js +10 -5
  177. package/dist/collection/components/six-search-field/six-search-field.js.map +1 -1
  178. package/dist/collection/components/six-select/six-select.js +139 -146
  179. package/dist/collection/components/six-select/six-select.js.map +1 -1
  180. package/dist/collection/components/six-select/util.js.map +1 -1
  181. package/dist/collection/components/six-sidebar/six-sidebar.js +40 -19
  182. package/dist/collection/components/six-sidebar/six-sidebar.js.map +1 -1
  183. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js +12 -8
  184. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js.map +1 -1
  185. package/dist/collection/components/six-spinner/six-spinner.js.map +1 -1
  186. package/dist/collection/components/six-stage-indicator/six-stage-indicator.js +1 -1
  187. package/dist/collection/components/six-switch/six-switch.js +58 -50
  188. package/dist/collection/components/six-switch/six-switch.js.map +1 -1
  189. package/dist/collection/components/six-tab/six-tab.js +5 -3
  190. package/dist/collection/components/six-tab/six-tab.js.map +1 -1
  191. package/dist/collection/components/six-tab-group/six-tab-group.js +130 -112
  192. package/dist/collection/components/six-tab-group/six-tab-group.js.map +1 -1
  193. package/dist/collection/components/six-tab-panel/six-tab-panel.js +2 -2
  194. package/dist/collection/components/six-tab-panel/six-tab-panel.js.map +1 -1
  195. package/dist/collection/components/six-tag/six-tag.js +4 -7
  196. package/dist/collection/components/six-tag/six-tag.js.map +1 -1
  197. package/dist/collection/components/six-textarea/six-textarea.js +10 -10
  198. package/dist/collection/components/six-tile/six-tile.js +17 -20
  199. package/dist/collection/components/six-tile/six-tile.js.map +1 -1
  200. package/dist/collection/components/six-timepicker/six-timepicker.js +129 -177
  201. package/dist/collection/components/six-timepicker/six-timepicker.js.map +1 -1
  202. package/dist/collection/components/six-tooltip/six-tooltip.js +56 -59
  203. package/dist/collection/components/six-tooltip/six-tooltip.js.map +1 -1
  204. package/dist/collection/functional-components/form-control/form-control.js +8 -7
  205. package/dist/collection/functional-components/form-control/form-control.js.map +1 -1
  206. package/dist/collection/testUtil/delay.js.map +1 -1
  207. package/dist/collection/utils/date-util.js +24 -16
  208. package/dist/collection/utils/date-util.js.map +1 -1
  209. package/dist/collection/utils/event-listeners.js +6 -6
  210. package/dist/collection/utils/event-listeners.js.map +1 -1
  211. package/dist/collection/utils/execution-control.js +5 -4
  212. package/dist/collection/utils/execution-control.js.map +1 -1
  213. package/dist/collection/utils/focus-visible.js +2 -2
  214. package/dist/collection/utils/focus-visible.js.map +1 -1
  215. package/dist/collection/utils/modal.js +3 -2
  216. package/dist/collection/utils/modal.js.map +1 -1
  217. package/dist/collection/utils/popover.js +32 -18
  218. package/dist/collection/utils/popover.js.map +1 -1
  219. package/dist/collection/utils/popup.js +95 -0
  220. package/dist/collection/utils/popup.js.map +1 -0
  221. package/dist/collection/utils/slot.js +9 -24
  222. package/dist/collection/utils/slot.js.map +1 -1
  223. package/dist/collection/utils/tabbable.js +6 -6
  224. package/dist/collection/utils/tabbable.js.map +1 -1
  225. package/dist/collection/utils/time.util.js +48 -34
  226. package/dist/collection/utils/time.util.js.map +1 -1
  227. package/dist/collection/utils/type-check.js +0 -1
  228. package/dist/collection/utils/type-check.js.map +1 -1
  229. package/dist/collection/wrappers/set-attributes/set-attributes.js +3 -1
  230. package/dist/collection/wrappers/set-attributes/set-attributes.js.map +1 -1
  231. package/dist/components/event-listeners.js +6 -6
  232. package/dist/components/event-listeners.js.map +1 -1
  233. package/dist/components/execution-control.js +5 -2
  234. package/dist/components/execution-control.js.map +1 -1
  235. package/dist/components/focus-visible.js +2 -2
  236. package/dist/components/focus-visible.js.map +1 -1
  237. package/dist/components/form-control.js +8 -7
  238. package/dist/components/form-control.js.map +1 -1
  239. package/dist/components/modal.js +3 -2
  240. package/dist/components/modal.js.map +1 -1
  241. package/dist/components/popover.js +32 -18
  242. package/dist/components/popover.js.map +1 -1
  243. package/dist/components/set-attributes2.js +3 -1
  244. package/dist/components/set-attributes2.js.map +1 -1
  245. package/dist/components/six-alert.js +17 -22
  246. package/dist/components/six-alert.js.map +1 -1
  247. package/dist/components/six-avatar.js +4 -7
  248. package/dist/components/six-avatar.js.map +1 -1
  249. package/dist/components/six-badge.js +1 -1
  250. package/dist/components/six-badge.js.map +1 -1
  251. package/dist/components/six-button.js +28 -32
  252. package/dist/components/six-button.js.map +1 -1
  253. package/dist/components/six-card.js.map +1 -1
  254. package/dist/components/six-checkbox.js +1 -0
  255. package/dist/components/six-checkbox.js.map +1 -1
  256. package/dist/components/six-datepicker.js +141 -238
  257. package/dist/components/six-datepicker.js.map +1 -1
  258. package/dist/components/six-details2.js +46 -45
  259. package/dist/components/six-details2.js.map +1 -1
  260. package/dist/components/six-dialog.js +33 -37
  261. package/dist/components/six-dialog.js.map +1 -1
  262. package/dist/components/six-drawer.js +30 -34
  263. package/dist/components/six-drawer.js.map +1 -1
  264. package/dist/components/six-dropdown2.js +185 -173
  265. package/dist/components/six-dropdown2.js.map +1 -1
  266. package/dist/components/six-error-page.js +19 -21
  267. package/dist/components/six-error-page.js.map +1 -1
  268. package/dist/components/six-file-list-item.js +1 -1
  269. package/dist/components/six-file-list-item.js.map +1 -1
  270. package/dist/components/six-file-upload.js +20 -20
  271. package/dist/components/six-file-upload.js.map +1 -1
  272. package/dist/components/six-form.js +38 -33
  273. package/dist/components/six-form.js.map +1 -1
  274. package/dist/components/six-group-label.js +9 -8
  275. package/dist/components/six-group-label.js.map +1 -1
  276. package/dist/components/six-header.js +64 -42
  277. package/dist/components/six-header.js.map +1 -1
  278. package/dist/components/six-icon-button2.js +2 -2
  279. package/dist/components/six-icon-button2.js.map +1 -1
  280. package/dist/components/six-input2.js +1 -1
  281. package/dist/components/six-input2.js.map +1 -1
  282. package/dist/components/six-item-picker2.js +56 -75
  283. package/dist/components/six-item-picker2.js.map +1 -1
  284. package/dist/components/six-language-switcher.js +1 -1
  285. package/dist/components/six-language-switcher.js.map +1 -1
  286. package/dist/components/six-layout-grid.js +5 -3
  287. package/dist/components/six-layout-grid.js.map +1 -1
  288. package/dist/components/six-main-container.js.map +1 -1
  289. package/dist/components/six-menu-item2.js +7 -5
  290. package/dist/components/six-menu-item2.js.map +1 -1
  291. package/dist/components/six-menu2.js +25 -18
  292. package/dist/components/six-menu2.js.map +1 -1
  293. package/dist/components/six-picto2.js +4 -1
  294. package/dist/components/six-picto2.js.map +1 -1
  295. package/dist/components/six-progress-ring.js +3 -3
  296. package/dist/components/six-progress-ring.js.map +1 -1
  297. package/dist/components/six-root.js +1 -1
  298. package/dist/components/six-root.js.map +1 -1
  299. package/dist/components/six-search-field.js +8 -3
  300. package/dist/components/six-search-field.js.map +1 -1
  301. package/dist/components/six-select.js +129 -182
  302. package/dist/components/six-select.js.map +1 -1
  303. package/dist/components/six-sidebar-item-group.js +8 -4
  304. package/dist/components/six-sidebar-item-group.js.map +1 -1
  305. package/dist/components/six-sidebar.js +39 -18
  306. package/dist/components/six-sidebar.js.map +1 -1
  307. package/dist/components/six-spinner2.js.map +1 -1
  308. package/dist/components/six-switch.js +50 -44
  309. package/dist/components/six-switch.js.map +1 -1
  310. package/dist/components/six-tab-group.js +129 -111
  311. package/dist/components/six-tab-group.js.map +1 -1
  312. package/dist/components/six-tab-panel.js +1 -1
  313. package/dist/components/six-tab-panel.js.map +1 -1
  314. package/dist/components/six-tab.js +4 -2
  315. package/dist/components/six-tab.js.map +1 -1
  316. package/dist/components/six-tag2.js +4 -7
  317. package/dist/components/six-tag2.js.map +1 -1
  318. package/dist/components/six-tile.js +14 -17
  319. package/dist/components/six-tile.js.map +1 -1
  320. package/dist/components/six-timepicker.js +1 -1
  321. package/dist/components/six-timepicker2.js +241 -239
  322. package/dist/components/six-timepicker2.js.map +1 -1
  323. package/dist/components/six-tooltip2.js +52 -55
  324. package/dist/components/six-tooltip2.js.map +1 -1
  325. package/dist/components/slot.js +10 -9
  326. package/dist/components/slot.js.map +1 -1
  327. package/dist/components.json +348 -166
  328. package/dist/esm/{event-listeners-570a24ea.js → event-listeners-6b434035.js} +7 -7
  329. package/dist/esm/event-listeners-6b434035.js.map +1 -0
  330. package/dist/esm/{execution-control-1a60d709.js → execution-control-72cc50f4.js} +6 -3
  331. package/dist/esm/execution-control-72cc50f4.js.map +1 -0
  332. package/dist/esm/{focus-visible-97933ea9.js → focus-visible-fa7129a0.js} +3 -3
  333. package/dist/esm/focus-visible-fa7129a0.js.map +1 -0
  334. package/dist/esm/{form-control-3b440ea1.js → form-control-44a50dd6.js} +10 -9
  335. package/dist/esm/form-control-44a50dd6.js.map +1 -0
  336. package/dist/esm/{index-5c0f6628.js → index-371fb9d4.js} +4 -2
  337. package/dist/esm/index-371fb9d4.js.map +1 -0
  338. package/dist/esm/loader.js +3 -3
  339. package/dist/esm/{modal-5ebdc320.js → modal-b1d96441.js} +4 -3
  340. package/dist/esm/modal-b1d96441.js.map +1 -0
  341. package/dist/esm/{popover-bd2c2fca.js → popover-1aacbae8.js} +33 -19
  342. package/dist/{cjs/popover-f743f62b.js.map → esm/popover-1aacbae8.js.map} +1 -1
  343. package/dist/esm/popup-678b8592.js +98 -0
  344. package/dist/esm/popup-678b8592.js.map +1 -0
  345. package/dist/esm/set-attributes_2.entry.js +4 -2
  346. package/dist/esm/set-attributes_2.entry.js.map +1 -1
  347. package/dist/esm/six-alert.entry.js +18 -23
  348. package/dist/esm/six-alert.entry.js.map +1 -1
  349. package/dist/esm/six-avatar.entry.js +5 -8
  350. package/dist/esm/six-avatar.entry.js.map +1 -1
  351. package/dist/esm/six-badge.entry.js +2 -2
  352. package/dist/esm/six-badge.entry.js.map +1 -1
  353. package/dist/esm/six-button.entry.js +30 -34
  354. package/dist/esm/six-button.entry.js.map +1 -1
  355. package/dist/esm/six-card.entry.js +1 -1
  356. package/dist/esm/six-card.entry.js.map +1 -1
  357. package/dist/esm/six-checkbox.entry.js +5 -4
  358. package/dist/esm/six-checkbox.entry.js.map +1 -1
  359. package/dist/esm/six-datepicker.entry.js +145 -242
  360. package/dist/esm/six-datepicker.entry.js.map +1 -1
  361. package/dist/esm/six-details.entry.js +48 -47
  362. package/dist/esm/six-details.entry.js.map +1 -1
  363. package/dist/esm/six-dialog.entry.js +36 -40
  364. package/dist/esm/six-dialog.entry.js.map +1 -1
  365. package/dist/esm/six-drawer.entry.js +33 -37
  366. package/dist/esm/six-drawer.entry.js.map +1 -1
  367. package/dist/esm/six-dropdown_2.entry.js +215 -196
  368. package/dist/esm/six-dropdown_2.entry.js.map +1 -1
  369. package/dist/esm/six-error-page.entry.js +20 -22
  370. package/dist/esm/six-error-page.entry.js.map +1 -1
  371. package/dist/esm/six-file-list-item.entry.js +2 -2
  372. package/dist/esm/six-file-list-item.entry.js.map +1 -1
  373. package/dist/esm/six-file-list.entry.js +1 -1
  374. package/dist/esm/six-file-upload.entry.js +21 -21
  375. package/dist/esm/six-file-upload.entry.js.map +1 -1
  376. package/dist/esm/six-footer.entry.js +1 -1
  377. package/dist/esm/six-form.entry.js +40 -35
  378. package/dist/esm/six-form.entry.js.map +1 -1
  379. package/dist/esm/six-group-label.entry.js +12 -11
  380. package/dist/esm/six-group-label.entry.js.map +1 -1
  381. package/dist/esm/six-header.entry.js +66 -44
  382. package/dist/esm/six-header.entry.js.map +1 -1
  383. package/dist/esm/six-icon-button.entry.js +4 -4
  384. package/dist/esm/six-icon-button.entry.js.map +1 -1
  385. package/dist/esm/six-icon.entry.js +1 -1
  386. package/dist/esm/six-input.entry.js +5 -5
  387. package/dist/esm/six-input.entry.js.map +1 -1
  388. package/dist/esm/six-item-picker.entry.js +59 -78
  389. package/dist/esm/six-item-picker.entry.js.map +1 -1
  390. package/dist/esm/six-language-switcher.entry.js +2 -2
  391. package/dist/esm/six-language-switcher.entry.js.map +1 -1
  392. package/dist/esm/six-layout-grid.entry.js +5 -3
  393. package/dist/esm/six-layout-grid.entry.js.map +1 -1
  394. package/dist/esm/six-main-container.entry.js +1 -1
  395. package/dist/esm/six-main-container.entry.js.map +1 -1
  396. package/dist/esm/six-menu-divider.entry.js +1 -1
  397. package/dist/esm/six-menu-item.entry.js +9 -7
  398. package/dist/esm/six-menu-item.entry.js.map +1 -1
  399. package/dist/esm/six-menu-label.entry.js +1 -1
  400. package/dist/esm/six-picto.entry.js +5 -2
  401. package/dist/esm/six-picto.entry.js.map +1 -1
  402. package/dist/esm/six-progress-bar.entry.js +1 -1
  403. package/dist/esm/six-progress-ring.entry.js +4 -4
  404. package/dist/esm/six-progress-ring.entry.js.map +1 -1
  405. package/dist/esm/six-radio.entry.js +1 -1
  406. package/dist/esm/six-range.entry.js +4 -4
  407. package/dist/esm/six-root.entry.js +2 -2
  408. package/dist/esm/six-root.entry.js.map +1 -1
  409. package/dist/esm/six-search-field.entry.js +11 -6
  410. package/dist/esm/six-search-field.entry.js.map +1 -1
  411. package/dist/esm/six-select.entry.js +135 -188
  412. package/dist/esm/six-select.entry.js.map +1 -1
  413. package/dist/esm/six-sidebar-item-group.entry.js +10 -6
  414. package/dist/esm/six-sidebar-item-group.entry.js.map +1 -1
  415. package/dist/esm/six-sidebar-item.entry.js +1 -1
  416. package/dist/esm/six-sidebar.entry.js +40 -19
  417. package/dist/esm/six-sidebar.entry.js.map +1 -1
  418. package/dist/esm/six-spinner.entry.js +1 -1
  419. package/dist/esm/six-spinner.entry.js.map +1 -1
  420. package/dist/esm/six-switch.entry.js +51 -45
  421. package/dist/esm/six-switch.entry.js.map +1 -1
  422. package/dist/esm/six-tab-group.entry.js +131 -113
  423. package/dist/esm/six-tab-group.entry.js.map +1 -1
  424. package/dist/esm/six-tab-panel.entry.js +2 -2
  425. package/dist/esm/six-tab-panel.entry.js.map +1 -1
  426. package/dist/esm/six-tab.entry.js +5 -3
  427. package/dist/esm/six-tab.entry.js.map +1 -1
  428. package/dist/esm/six-tag.entry.js +5 -8
  429. package/dist/esm/six-tag.entry.js.map +1 -1
  430. package/dist/esm/six-textarea.entry.js +4 -4
  431. package/dist/esm/six-tile.entry.js +14 -17
  432. package/dist/esm/six-tile.entry.js.map +1 -1
  433. package/dist/esm/six-timepicker.entry.js +155 -201
  434. package/dist/esm/six-timepicker.entry.js.map +1 -1
  435. package/dist/esm/six-tooltip.entry.js +54 -57
  436. package/dist/esm/six-tooltip.entry.js.map +1 -1
  437. package/dist/esm/{slot-6f3984c7.js → slot-2e64df19.js} +11 -10
  438. package/dist/esm/slot-2e64df19.js.map +1 -0
  439. package/dist/esm/ui-library.js +3 -3
  440. package/dist/types/components/six-alert/six-alert.d.ts +5 -7
  441. package/dist/types/components/six-avatar/six-avatar.d.ts +1 -2
  442. package/dist/types/components/six-badge/six-badge.d.ts +0 -1
  443. package/dist/types/components/six-button/six-button.d.ts +8 -9
  444. package/dist/types/components/six-checkbox/six-checkbox.d.ts +1 -1
  445. package/dist/types/components/six-datepicker/components/day-selection.d.ts +9 -5
  446. package/dist/types/components/six-datepicker/components/month-selection.d.ts +8 -5
  447. package/dist/types/components/six-datepicker/components/year-selection.d.ts +7 -5
  448. package/dist/types/components/six-datepicker/six-datepicker.d.ts +34 -39
  449. package/dist/types/components/six-details/six-details.d.ts +12 -12
  450. package/dist/types/components/six-dialog/six-dialog.d.ts +12 -13
  451. package/dist/types/components/six-drawer/six-drawer.d.ts +12 -13
  452. package/dist/types/components/six-dropdown/six-dropdown.d.ts +28 -32
  453. package/dist/types/components/six-error-page/six-error-page.d.ts +1 -1
  454. package/dist/types/components/six-file-list-item/six-file-list-item.d.ts +3 -3
  455. package/dist/types/components/six-file-upload/six-file-upload.d.ts +11 -11
  456. package/dist/types/components/six-form/six-form.d.ts +7 -16
  457. package/dist/types/components/six-group-label/six-group-label.d.ts +4 -4
  458. package/dist/types/components/six-header/six-header.d.ts +16 -27
  459. package/dist/types/components/six-icon-button/six-icon-button.d.ts +4 -4
  460. package/dist/types/components/six-input/six-input.d.ts +3 -3
  461. package/dist/types/components/six-item-picker/six-item-picker.d.ts +13 -16
  462. package/dist/types/components/six-layout-grid/six-layout-grid.d.ts +1 -1
  463. package/dist/types/components/six-menu/six-menu.d.ts +10 -11
  464. package/dist/types/components/six-menu-item/six-menu-item.d.ts +6 -6
  465. package/dist/types/components/six-progress-ring/six-progress-ring.d.ts +2 -2
  466. package/dist/types/components/six-radio/six-radio.d.ts +1 -1
  467. package/dist/types/components/six-root/six-root.d.ts +3 -3
  468. package/dist/types/components/six-search-field/six-search-field.d.ts +4 -5
  469. package/dist/types/components/six-select/six-select.d.ts +15 -12
  470. package/dist/types/components/six-sidebar/six-sidebar.d.ts +5 -5
  471. package/dist/types/components/six-sidebar-item-group/six-sidebar-item-group.d.ts +7 -6
  472. package/dist/types/components/six-spinner/six-spinner.d.ts +2 -2
  473. package/dist/types/components/six-switch/six-switch.d.ts +10 -11
  474. package/dist/types/components/six-tab/six-tab.d.ts +3 -3
  475. package/dist/types/components/six-tab-group/six-tab-group.d.ts +20 -21
  476. package/dist/types/components/six-tab-panel/six-tab-panel.d.ts +1 -1
  477. package/dist/types/components/six-tag/six-tag.d.ts +1 -3
  478. package/dist/types/components/six-textarea/six-textarea.d.ts +3 -3
  479. package/dist/types/components/six-tile/six-tile.d.ts +2 -3
  480. package/dist/types/components/six-timepicker/six-timepicker.d.ts +21 -33
  481. package/dist/types/components/six-tooltip/six-tooltip.d.ts +19 -21
  482. package/dist/types/components.d.ts +110 -98
  483. package/dist/types/functional-components/form-control/form-control.d.ts +5 -4
  484. package/dist/types/testUtil/delay.d.ts +1 -1
  485. package/dist/types/utils/date-util.d.ts +17 -10
  486. package/dist/types/utils/event-listeners.d.ts +1 -1
  487. package/dist/types/utils/execution-control.d.ts +1 -3
  488. package/dist/types/utils/modal.d.ts +2 -2
  489. package/dist/types/utils/popover.d.ts +5 -5
  490. package/dist/types/utils/popup.d.ts +9 -0
  491. package/dist/types/utils/slot.d.ts +2 -7
  492. package/dist/types/utils/tabbable.d.ts +1 -1
  493. package/dist/types/utils/time.util.d.ts +18 -9
  494. package/dist/types/utils/type-check.d.ts +3 -4
  495. package/dist/types/wrappers/set-attributes/set-attributes.d.ts +1 -1
  496. package/dist/ui-library/p-02d5a6d8.js +2 -0
  497. package/dist/ui-library/p-02d5a6d8.js.map +1 -0
  498. package/dist/ui-library/p-053d6de8.entry.js +2 -0
  499. package/dist/ui-library/p-053d6de8.entry.js.map +1 -0
  500. package/dist/ui-library/p-0cc08e91.js +2 -0
  501. package/dist/ui-library/p-0cc08e91.js.map +1 -0
  502. package/dist/ui-library/{p-a1d4f6cf.entry.js → p-0eee4c41.entry.js} +2 -2
  503. package/dist/ui-library/p-0eee4c41.entry.js.map +1 -0
  504. package/dist/ui-library/p-0fe78f9b.js +2 -0
  505. package/dist/ui-library/p-0fe78f9b.js.map +1 -0
  506. package/dist/ui-library/{p-ac4f4d45.js → p-187fbba0.js} +3 -3
  507. package/dist/ui-library/p-187fbba0.js.map +1 -0
  508. package/dist/ui-library/p-25b42655.entry.js +2 -0
  509. package/dist/ui-library/p-25b42655.entry.js.map +1 -0
  510. package/dist/ui-library/p-271ba152.entry.js +2 -0
  511. package/dist/ui-library/p-271ba152.entry.js.map +1 -0
  512. package/dist/ui-library/{p-6d75f216.entry.js → p-27c4ee88.entry.js} +2 -2
  513. package/dist/ui-library/{p-f604e067.entry.js → p-2a36b7d0.entry.js} +2 -2
  514. package/dist/ui-library/p-2a8ad91b.entry.js +2 -0
  515. package/dist/ui-library/p-2a8ad91b.entry.js.map +1 -0
  516. package/dist/ui-library/{p-97cc839c.entry.js → p-30e0cdce.entry.js} +2 -2
  517. package/dist/ui-library/p-30e0cdce.entry.js.map +1 -0
  518. package/dist/ui-library/{p-63703ba3.entry.js → p-3a47c8ad.entry.js} +2 -2
  519. package/dist/ui-library/{p-63703ba3.entry.js.map → p-3a47c8ad.entry.js.map} +1 -1
  520. package/dist/ui-library/p-3a4815cb.entry.js +2 -0
  521. package/dist/ui-library/p-3a4815cb.entry.js.map +1 -0
  522. package/dist/ui-library/p-3b71cac4.entry.js +2 -0
  523. package/dist/ui-library/p-3b71cac4.entry.js.map +1 -0
  524. package/dist/ui-library/{p-5a25d6fb.entry.js → p-3d4a2e03.entry.js} +2 -2
  525. package/dist/ui-library/{p-73597d13.entry.js → p-3e4b9341.entry.js} +2 -2
  526. package/dist/ui-library/{p-73597d13.entry.js.map → p-3e4b9341.entry.js.map} +1 -1
  527. package/dist/ui-library/{p-3c635d0a.entry.js → p-41f0b6ff.entry.js} +2 -2
  528. package/dist/ui-library/p-435242a8.entry.js +2 -0
  529. package/dist/ui-library/p-435242a8.entry.js.map +1 -0
  530. package/dist/ui-library/{p-19364560.entry.js → p-5084ca7c.entry.js} +2 -2
  531. package/dist/ui-library/{p-19364560.entry.js.map → p-5084ca7c.entry.js.map} +1 -1
  532. package/dist/ui-library/p-5b3e6eb7.entry.js +2 -0
  533. package/dist/ui-library/p-5b3e6eb7.entry.js.map +1 -0
  534. package/dist/ui-library/{p-8a970a40.entry.js → p-5c1dd25a.entry.js} +2 -2
  535. package/dist/ui-library/p-5c1dd25a.entry.js.map +1 -0
  536. package/dist/ui-library/p-5c60227f.entry.js +2 -0
  537. package/dist/ui-library/p-5c60227f.entry.js.map +1 -0
  538. package/dist/ui-library/p-5dc40a6a.entry.js +2 -0
  539. package/dist/ui-library/p-5dc40a6a.entry.js.map +1 -0
  540. package/dist/ui-library/{p-dd3c76f1.entry.js → p-649017db.entry.js} +2 -2
  541. package/dist/ui-library/p-713684c7.entry.js +2 -0
  542. package/dist/ui-library/p-713684c7.entry.js.map +1 -0
  543. package/dist/ui-library/{p-c30f9e0b.entry.js → p-73325eec.entry.js} +2 -2
  544. package/dist/ui-library/p-73325eec.entry.js.map +1 -0
  545. package/dist/ui-library/p-7639c68e.entry.js +2 -0
  546. package/dist/ui-library/p-7639c68e.entry.js.map +1 -0
  547. package/dist/ui-library/p-764f56dd.entry.js +2 -0
  548. package/dist/ui-library/p-764f56dd.entry.js.map +1 -0
  549. package/dist/ui-library/{p-e19a6c95.entry.js → p-886a35ee.entry.js} +2 -2
  550. package/dist/ui-library/p-8cf72af6.js +2 -0
  551. package/dist/ui-library/p-8cf72af6.js.map +1 -0
  552. package/dist/ui-library/p-8d6f4311.entry.js +2 -0
  553. package/dist/ui-library/p-8d6f4311.entry.js.map +1 -0
  554. package/dist/ui-library/p-90c2dc30.entry.js +2 -0
  555. package/dist/ui-library/p-90c2dc30.entry.js.map +1 -0
  556. package/dist/ui-library/{p-97323ad7.entry.js → p-965fa6a6.entry.js} +2 -2
  557. package/dist/ui-library/p-98234e3f.entry.js +2 -0
  558. package/dist/ui-library/p-98234e3f.entry.js.map +1 -0
  559. package/dist/ui-library/{p-820c23f0.entry.js → p-9b9c3afc.entry.js} +2 -2
  560. package/dist/ui-library/{p-394a2a12.entry.js → p-9c34eab7.entry.js} +2 -2
  561. package/dist/ui-library/{p-394a2a12.entry.js.map → p-9c34eab7.entry.js.map} +1 -1
  562. package/dist/ui-library/p-9e0c386f.entry.js +2 -0
  563. package/dist/ui-library/p-9e0c386f.entry.js.map +1 -0
  564. package/dist/ui-library/p-9f8b6144.entry.js +2 -0
  565. package/dist/ui-library/p-9f8b6144.entry.js.map +1 -0
  566. package/dist/ui-library/p-a3cc0521.entry.js +2 -0
  567. package/dist/ui-library/p-a3cc0521.entry.js.map +1 -0
  568. package/dist/ui-library/{p-21859bca.entry.js → p-a5143b8d.entry.js} +2 -2
  569. package/dist/ui-library/{p-097cced4.entry.js → p-aa6f71e1.entry.js} +2 -2
  570. package/dist/ui-library/{p-097cced4.entry.js.map → p-aa6f71e1.entry.js.map} +1 -1
  571. package/dist/ui-library/p-abb98245.entry.js +2 -0
  572. package/dist/ui-library/p-abb98245.entry.js.map +1 -0
  573. package/dist/ui-library/p-b183e44f.js +2 -0
  574. package/dist/ui-library/p-b183e44f.js.map +1 -0
  575. package/dist/ui-library/{p-19b50b5a.entry.js → p-b27f496f.entry.js} +2 -2
  576. package/dist/ui-library/p-b27f496f.entry.js.map +1 -0
  577. package/dist/ui-library/{p-4f8394d7.js → p-ba74863a.js} +2 -2
  578. package/dist/ui-library/p-ba74863a.js.map +1 -0
  579. package/dist/ui-library/p-bf4a35ec.js +2 -0
  580. package/dist/ui-library/p-bf4a35ec.js.map +1 -0
  581. package/dist/ui-library/{p-d5633a29.entry.js → p-c07adc21.entry.js} +2 -2
  582. package/dist/ui-library/p-c07adc21.entry.js.map +1 -0
  583. package/dist/ui-library/p-c700e3eb.entry.js +2 -0
  584. package/dist/ui-library/p-c700e3eb.entry.js.map +1 -0
  585. package/dist/ui-library/p-cab99e54.entry.js +2 -0
  586. package/dist/ui-library/p-cab99e54.entry.js.map +1 -0
  587. package/dist/ui-library/{p-baa03951.entry.js → p-cf1133a0.entry.js} +2 -2
  588. package/dist/ui-library/p-cf1d36c0.entry.js +2 -0
  589. package/dist/ui-library/p-cf1d36c0.entry.js.map +1 -0
  590. package/dist/ui-library/p-d87a6f4d.js +2 -0
  591. package/dist/ui-library/p-d87a6f4d.js.map +1 -0
  592. package/dist/ui-library/{p-c349d1d4.entry.js → p-d8c97778.entry.js} +2 -2
  593. package/dist/ui-library/p-d8c97778.entry.js.map +1 -0
  594. package/dist/ui-library/p-deb01174.entry.js +2 -0
  595. package/dist/ui-library/p-deb01174.entry.js.map +1 -0
  596. package/dist/ui-library/{p-af793d04.entry.js → p-e5ba13d2.entry.js} +2 -2
  597. package/dist/ui-library/p-e5ba13d2.entry.js.map +1 -0
  598. package/dist/ui-library/{p-611e1978.entry.js → p-f29ba9cb.entry.js} +2 -2
  599. package/dist/ui-library/{p-611e1978.entry.js.map → p-f29ba9cb.entry.js.map} +1 -1
  600. package/dist/ui-library/{p-9328e5bc.entry.js → p-f66eb76c.entry.js} +2 -2
  601. package/dist/ui-library/p-f66eb76c.entry.js.map +1 -0
  602. package/dist/ui-library/p-f974a184.entry.js +2 -0
  603. package/dist/ui-library/p-f974a184.entry.js.map +1 -0
  604. package/dist/ui-library/{p-b0e5658f.entry.js → p-fb8d0734.entry.js} +2 -2
  605. package/dist/ui-library/p-fb8d0734.entry.js.map +1 -0
  606. package/dist/ui-library/ui-library.esm.js +1 -1
  607. package/dist/ui-library/ui-library.esm.js.map +1 -1
  608. package/package.json +1 -1
  609. package/dist/cjs/event-listeners-74715e62.js.map +0 -1
  610. package/dist/cjs/execution-control-46f388e0.js.map +0 -1
  611. package/dist/cjs/focus-visible-0b352c74.js.map +0 -1
  612. package/dist/cjs/form-control-2c17c573.js.map +0 -1
  613. package/dist/cjs/index-2f6daa5b.js.map +0 -1
  614. package/dist/cjs/modal-48d42228.js.map +0 -1
  615. package/dist/cjs/six-timepicker.types-c19ebff3.js +0 -56
  616. package/dist/cjs/six-timepicker.types-c19ebff3.js.map +0 -1
  617. package/dist/cjs/slot-ad537f24.js.map +0 -1
  618. package/dist/collection/components/six-timepicker/six-time-format.js +0 -15
  619. package/dist/collection/components/six-timepicker/six-time-format.js.map +0 -1
  620. package/dist/collection/components/six-timepicker/six-timepicker.types.js +0 -41
  621. package/dist/collection/components/six-timepicker/six-timepicker.types.js.map +0 -1
  622. package/dist/collection/utils/as-array.js +0 -2
  623. package/dist/collection/utils/as-array.js.map +0 -1
  624. package/dist/collection/utils/matchers.js +0 -3
  625. package/dist/collection/utils/matchers.js.map +0 -1
  626. package/dist/collection/utils/testing.js +0 -39
  627. package/dist/collection/utils/testing.js.map +0 -1
  628. package/dist/esm/event-listeners-570a24ea.js.map +0 -1
  629. package/dist/esm/execution-control-1a60d709.js.map +0 -1
  630. package/dist/esm/focus-visible-97933ea9.js.map +0 -1
  631. package/dist/esm/form-control-3b440ea1.js.map +0 -1
  632. package/dist/esm/index-5c0f6628.js.map +0 -1
  633. package/dist/esm/modal-5ebdc320.js.map +0 -1
  634. package/dist/esm/popover-bd2c2fca.js.map +0 -1
  635. package/dist/esm/six-timepicker.types-e161a447.js +0 -50
  636. package/dist/esm/six-timepicker.types-e161a447.js.map +0 -1
  637. package/dist/esm/slot-6f3984c7.js.map +0 -1
  638. package/dist/types/components/six-timepicker/six-time-format.d.ts +0 -13
  639. package/dist/types/components/six-timepicker/six-timepicker.types.d.ts +0 -36
  640. package/dist/types/utils/as-array.d.ts +0 -1
  641. package/dist/types/utils/matchers.d.ts +0 -2
  642. package/dist/types/utils/popper.d.ts +0 -33
  643. package/dist/types/utils/testing.d.ts +0 -2
  644. package/dist/ui-library/p-054e12cc.entry.js +0 -2
  645. package/dist/ui-library/p-054e12cc.entry.js.map +0 -1
  646. package/dist/ui-library/p-0786fa7c.js +0 -2
  647. package/dist/ui-library/p-0786fa7c.js.map +0 -1
  648. package/dist/ui-library/p-163f2bb0.entry.js +0 -2
  649. package/dist/ui-library/p-163f2bb0.entry.js.map +0 -1
  650. package/dist/ui-library/p-18e5f772.entry.js +0 -2
  651. package/dist/ui-library/p-18e5f772.entry.js.map +0 -1
  652. package/dist/ui-library/p-18ea0c56.js +0 -2
  653. package/dist/ui-library/p-18ea0c56.js.map +0 -1
  654. package/dist/ui-library/p-19b50b5a.entry.js.map +0 -1
  655. package/dist/ui-library/p-2e48c8d2.entry.js +0 -2
  656. package/dist/ui-library/p-2e48c8d2.entry.js.map +0 -1
  657. package/dist/ui-library/p-308261c4.entry.js +0 -2
  658. package/dist/ui-library/p-308261c4.entry.js.map +0 -1
  659. package/dist/ui-library/p-33f7e22b.entry.js +0 -2
  660. package/dist/ui-library/p-33f7e22b.entry.js.map +0 -1
  661. package/dist/ui-library/p-4ae91795.entry.js +0 -2
  662. package/dist/ui-library/p-4ae91795.entry.js.map +0 -1
  663. package/dist/ui-library/p-4f8394d7.js.map +0 -1
  664. package/dist/ui-library/p-53a13db5.entry.js +0 -2
  665. package/dist/ui-library/p-53a13db5.entry.js.map +0 -1
  666. package/dist/ui-library/p-559c87f0.entry.js +0 -2
  667. package/dist/ui-library/p-559c87f0.entry.js.map +0 -1
  668. package/dist/ui-library/p-6403fd87.entry.js +0 -2
  669. package/dist/ui-library/p-6403fd87.entry.js.map +0 -1
  670. package/dist/ui-library/p-6433c0da.entry.js +0 -2
  671. package/dist/ui-library/p-6433c0da.entry.js.map +0 -1
  672. package/dist/ui-library/p-79eee01b.js +0 -2
  673. package/dist/ui-library/p-79eee01b.js.map +0 -1
  674. package/dist/ui-library/p-8a970a40.entry.js.map +0 -1
  675. package/dist/ui-library/p-90824648.entry.js +0 -2
  676. package/dist/ui-library/p-90824648.entry.js.map +0 -1
  677. package/dist/ui-library/p-9328e5bc.entry.js.map +0 -1
  678. package/dist/ui-library/p-97cc839c.entry.js.map +0 -1
  679. package/dist/ui-library/p-9a860acc.js +0 -2
  680. package/dist/ui-library/p-9a860acc.js.map +0 -1
  681. package/dist/ui-library/p-9d1d222f.entry.js +0 -2
  682. package/dist/ui-library/p-9d1d222f.entry.js.map +0 -1
  683. package/dist/ui-library/p-a1d4f6cf.entry.js.map +0 -1
  684. package/dist/ui-library/p-ac4f4d45.js.map +0 -1
  685. package/dist/ui-library/p-af793d04.entry.js.map +0 -1
  686. package/dist/ui-library/p-b0e5658f.entry.js.map +0 -1
  687. package/dist/ui-library/p-b1e66136.js +0 -2
  688. package/dist/ui-library/p-b1e66136.js.map +0 -1
  689. package/dist/ui-library/p-b4dfb7cf.js +0 -2
  690. package/dist/ui-library/p-b4dfb7cf.js.map +0 -1
  691. package/dist/ui-library/p-b997e43c.entry.js +0 -2
  692. package/dist/ui-library/p-b997e43c.entry.js.map +0 -1
  693. package/dist/ui-library/p-c0cb6436.entry.js +0 -2
  694. package/dist/ui-library/p-c0cb6436.entry.js.map +0 -1
  695. package/dist/ui-library/p-c30f9e0b.entry.js.map +0 -1
  696. package/dist/ui-library/p-c349d1d4.entry.js.map +0 -1
  697. package/dist/ui-library/p-c53a63f9.entry.js +0 -2
  698. package/dist/ui-library/p-c53a63f9.entry.js.map +0 -1
  699. package/dist/ui-library/p-c640c2d8.entry.js +0 -2
  700. package/dist/ui-library/p-c640c2d8.entry.js.map +0 -1
  701. package/dist/ui-library/p-c94d0b07.entry.js +0 -2
  702. package/dist/ui-library/p-c94d0b07.entry.js.map +0 -1
  703. package/dist/ui-library/p-d12c6092.js +0 -2
  704. package/dist/ui-library/p-d12c6092.js.map +0 -1
  705. package/dist/ui-library/p-d5633a29.entry.js.map +0 -1
  706. package/dist/ui-library/p-df655bc9.entry.js +0 -2
  707. package/dist/ui-library/p-df655bc9.entry.js.map +0 -1
  708. package/dist/ui-library/p-f18ba86f.entry.js +0 -2
  709. package/dist/ui-library/p-f18ba86f.entry.js.map +0 -1
  710. package/dist/ui-library/p-f4938771.entry.js +0 -2
  711. package/dist/ui-library/p-f4938771.entry.js.map +0 -1
  712. package/dist/ui-library/p-f70e2403.entry.js +0 -2
  713. package/dist/ui-library/p-f70e2403.entry.js.map +0 -1
  714. package/dist/ui-library/p-f9d345e0.entry.js +0 -2
  715. package/dist/ui-library/p-f9d345e0.entry.js.map +0 -1
  716. package/dist/ui-library/p-fed07a1f.entry.js +0 -2
  717. package/dist/ui-library/p-fed07a1f.entry.js.map +0 -1
  718. package/dist/ui-library/p-ff0257bf.entry.js +0 -2
  719. package/dist/ui-library/p-ff0257bf.entry.js.map +0 -1
  720. /package/dist/ui-library/{p-6d75f216.entry.js.map → p-27c4ee88.entry.js.map} +0 -0
  721. /package/dist/ui-library/{p-f604e067.entry.js.map → p-2a36b7d0.entry.js.map} +0 -0
  722. /package/dist/ui-library/{p-5a25d6fb.entry.js.map → p-3d4a2e03.entry.js.map} +0 -0
  723. /package/dist/ui-library/{p-3c635d0a.entry.js.map → p-41f0b6ff.entry.js.map} +0 -0
  724. /package/dist/ui-library/{p-dd3c76f1.entry.js.map → p-649017db.entry.js.map} +0 -0
  725. /package/dist/ui-library/{p-e19a6c95.entry.js.map → p-886a35ee.entry.js.map} +0 -0
  726. /package/dist/ui-library/{p-97323ad7.entry.js.map → p-965fa6a6.entry.js.map} +0 -0
  727. /package/dist/ui-library/{p-820c23f0.entry.js.map → p-9b9c3afc.entry.js.map} +0 -0
  728. /package/dist/ui-library/{p-21859bca.entry.js.map → p-a5143b8d.entry.js.map} +0 -0
  729. /package/dist/ui-library/{p-baa03951.entry.js.map → p-cf1133a0.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"six-file-upload.js","sourceRoot":"","sources":["../../../src/components/six-file-upload/six-file-upload.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Listen, Prop, State } from '@stencil/core';\n\ninterface ISingleFile {\n file: File;\n}\n\ninterface IMultipleFiles {\n files: FileList;\n}\n\nexport type SixFileUploadSuccessPayload = ISingleFile | IMultipleFiles;\n\nexport interface SixFileUploadFailurePayload {\n reason: string;\n}\n\n/**\n * @since 2.0.0\n * @status experimental\n *\n */\n@Component({\n tag: 'six-file-upload',\n styleUrl: 'six-file-upload.scss',\n scoped: true,\n shadow: false,\n})\nexport class SixFileUpload {\n @Element() readonly host: HTMLSixFileUploadElement;\n\n fileInput: HTMLInputElement;\n\n @State() isOver = false;\n\n /** Set to true if file control should be small. */\n @Prop() readonly compact: boolean = false;\n\n /** Label of the drop area. */\n @Prop() readonly label: string;\n\n /** Set when button is disabled. */\n @Prop() readonly disabled: boolean = false;\n\n /** Accepted MIME-Types. */\n @Prop() readonly accept: string;\n\n /** More than one file allowed. */\n @Prop() readonly multiple: boolean;\n\n /** Allowed max file size in bytes. */\n @Prop() readonly maxFileSize: number | undefined = undefined;\n\n /** Triggers when a file is added. */\n @Event({ eventName: 'six-file-upload-success' })\n readonly fileUploadSuccessEvent: EventEmitter<SixFileUploadSuccessPayload>;\n\n /** Triggers when an uploaded file doesn't match MIME type or max file size. */\n @Event({ eventName: 'six-file-upload-failure' })\n readonly fileUploadFailureEvent: EventEmitter<SixFileUploadFailurePayload>;\n\n @Listen('dragenter', { capture: false })\n dragenterHandler() {\n if (!this.disabled) {\n this.isOver = true;\n }\n }\n\n @Listen('dragover', { capture: false })\n dragoverHandler() {\n if (!this.disabled) {\n this.isOver = true;\n }\n }\n\n @Listen('dragleave', { capture: false })\n dragleaveHandler() {\n if (!this.disabled) {\n this.isOver = false;\n }\n }\n\n @Listen('drop', { capture: false })\n dropHandler({ dataTransfer }: DragEvent) {\n if (!this.disabled) {\n this.isOver = false;\n if (dataTransfer) {\n this.handleFiles(dataTransfer.files);\n }\n }\n }\n\n handleFiles = (files: FileList) => {\n if (this.disabled) {\n return;\n }\n\n if (files.length === 0) {\n return;\n }\n\n if (!this.multiple && files.length > 1) {\n return this.fileUploadFailureEvent.emit({ reason: 'Only one file is allowed.' });\n }\n\n for (const file of files) {\n if (!file) {\n return;\n }\n\n const acceptedTypesList = this.accept && this.accept.replace(/\\s/g, '').split(',');\n\n if (this.accept && acceptedTypesList.indexOf(file.type) === -1) {\n const reason = files.length > 1 ? 'One or more files have invalid MIME type.' : 'File has invalid MIME type.';\n return this.fileUploadFailureEvent.emit({ reason });\n }\n\n if (this.maxFileSize && file.size > this.maxFileSize) {\n const reason = files.length > 1 ? 'One or more files are too big' : 'File is too big.';\n return this.fileUploadFailureEvent.emit({ reason });\n }\n }\n\n const objectToEmit: SixFileUploadSuccessPayload = this.multiple ? { files } : { file: files.item(0) };\n\n this.fileUploadSuccessEvent.emit(objectToEmit);\n };\n\n componentDidLoad() {\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {\n this.host.addEventListener(eventName, this.preventDefaults, false);\n document.body.addEventListener(eventName, this.preventDefaults, false);\n });\n }\n\n disconnectedCallback() {\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {\n this.host.removeEventListener(eventName, this.preventDefaults, false);\n document.body.removeEventListener(eventName, this.preventDefaults, false);\n });\n }\n\n preventDefaults(e: Event) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n onChange = () => {\n if (this.fileInput?.files) {\n const files = this.fileInput.files;\n this.handleFiles(files);\n this.fileInput.value = '';\n }\n };\n\n private renderLabel() {\n return (\n this.label ||\n (this.compact ? (\n 'Upload'\n ) : (\n <span>\n Drop files to upload, or <span class=\"six-file-upload__label--highlighted\">browse</span>\n </span>\n ))\n );\n }\n\n render() {\n const Container = this.compact ? 'six-button' : 'six-card';\n\n return (\n <div\n class={{\n 'six-file-upload': true,\n 'six-file-upload--disabled': this.disabled,\n }}\n >\n <Container\n class={{\n 'six-file-upload__container--compact': this.compact,\n 'six-file-upload__container--full': !this.compact,\n }}\n >\n {this.compact && (\n <span slot=\"prefix\">\n <six-icon class=\"six-file-upload__label-icon\">arrow_circle_up</six-icon>\n </span>\n )}\n <div\n class={{\n 'six-file-upload__drop-zone': true,\n 'six-file-upload__drop-zone--hover': this.isOver,\n 'six-file-upload__drop-zone--compact': this.compact,\n }}\n >\n <span>{this.renderLabel()}</span>\n <input\n class=\"six-file-upload__input\"\n type=\"file\"\n name=\"resume\"\n disabled={this.disabled}\n accept={this.accept}\n multiple={this.multiple}\n onChange={this.onChange}\n ref={(el) => (this.fileInput = el)}\n />\n </div>\n </Container>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"six-file-upload.js","sourceRoot":"","sources":["../../../src/components/six-file-upload/six-file-upload.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Listen, Prop, State } from '@stencil/core';\n\ninterface ISingleFile {\n file: File;\n}\n\ninterface IMultipleFiles {\n files: FileList;\n}\n\nexport type SixFileUploadSuccessPayload = ISingleFile | IMultipleFiles;\n\nexport interface SixFileUploadFailurePayload {\n reason: string;\n}\n\n/**\n * @since 2.0.0\n * @status experimental\n *\n */\n@Component({\n tag: 'six-file-upload',\n styleUrl: 'six-file-upload.scss',\n scoped: true,\n shadow: false,\n})\nexport class SixFileUpload {\n @Element() readonly host!: HTMLSixFileUploadElement;\n\n private fileInput?: HTMLInputElement;\n\n @State() isOver = false;\n\n /** Set to true if file control should be small. */\n @Prop() readonly compact: boolean = false;\n\n /** Label of the drop area. */\n @Prop() readonly label?: string;\n\n /** Set when button is disabled. */\n @Prop() readonly disabled = false;\n\n /** Accepted MIME-Types. */\n @Prop() readonly accept?: string;\n\n /** More than one file allowed. */\n @Prop() readonly multiple = false;\n\n /** Allowed max file size in bytes. */\n @Prop() readonly maxFileSize?: number;\n\n /** Triggers when a file is added. */\n @Event({ eventName: 'six-file-upload-success' }) success!: EventEmitter<SixFileUploadSuccessPayload>;\n\n /** Triggers when an uploaded file doesn't match MIME type or max file size. */\n @Event({ eventName: 'six-file-upload-failure' }) failure!: EventEmitter<SixFileUploadFailurePayload>;\n\n @Listen('dragenter', { capture: false })\n dragenterHandler() {\n if (!this.disabled) {\n this.isOver = true;\n }\n }\n\n @Listen('dragover', { capture: false })\n dragoverHandler() {\n if (!this.disabled) {\n this.isOver = true;\n }\n }\n\n @Listen('dragleave', { capture: false })\n dragleaveHandler() {\n if (!this.disabled) {\n this.isOver = false;\n }\n }\n\n @Listen('drop', { capture: false })\n dropHandler({ dataTransfer }: DragEvent) {\n if (!this.disabled) {\n this.isOver = false;\n if (dataTransfer != null) {\n this.handleFiles(dataTransfer.files);\n }\n }\n }\n\n private handleFiles = (files: FileList) => {\n if (this.disabled || files.length === 0) {\n return;\n }\n\n if (!this.multiple && files.length > 1) {\n return this.failure.emit({ reason: 'Only one file is allowed.' });\n }\n\n for (const file of files) {\n if (file == null) {\n return;\n }\n\n let acceptedTypesList: string[] = [];\n if (this.accept != null) {\n acceptedTypesList = this.accept.replace(/\\s/g, '').split(',');\n }\n\n if (acceptedTypesList.length > 0 && acceptedTypesList.indexOf(file.type) === -1) {\n const reason = files.length > 1 ? 'One or more files have invalid MIME type.' : 'File has invalid MIME type.';\n return this.failure.emit({ reason });\n }\n\n if (this.maxFileSize != null && file.size > this.maxFileSize) {\n const reason = files.length > 1 ? 'One or more files are too big' : 'File is too big.';\n return this.failure.emit({ reason });\n }\n }\n\n const eventPayload: SixFileUploadSuccessPayload = this.multiple ? { files } : { file: files[0] };\n this.success.emit(eventPayload);\n };\n\n componentDidLoad() {\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {\n this.host.addEventListener(eventName, this.preventDefaults, false);\n document.body.addEventListener(eventName, this.preventDefaults, false);\n });\n }\n\n disconnectedCallback() {\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {\n this.host.removeEventListener(eventName, this.preventDefaults, false);\n document.body.removeEventListener(eventName, this.preventDefaults, false);\n });\n }\n\n private preventDefaults(e: Event) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n private onChange = () => {\n if (this.fileInput?.files != null) {\n const files = this.fileInput.files;\n this.handleFiles(files);\n this.fileInput.value = '';\n }\n };\n\n private renderLabel() {\n return (\n this.label ??\n (this.compact ? (\n 'Upload'\n ) : (\n <span>\n Drop files to upload, or <span class=\"six-file-upload__label--highlighted\">browse</span>\n </span>\n ))\n );\n }\n\n render() {\n const Container = this.compact ? 'six-button' : 'six-card';\n\n return (\n <div\n class={{\n 'six-file-upload': true,\n 'six-file-upload--disabled': this.disabled,\n }}\n >\n <Container\n class={{\n 'six-file-upload__container--compact': this.compact,\n 'six-file-upload__container--full': !this.compact,\n }}\n >\n {this.compact && (\n <span slot=\"prefix\">\n <six-icon class=\"six-file-upload__label-icon\">arrow_circle_up</six-icon>\n </span>\n )}\n <div\n class={{\n 'six-file-upload__drop-zone': true,\n 'six-file-upload__drop-zone--hover': this.isOver,\n 'six-file-upload__drop-zone--compact': this.compact,\n }}\n >\n <span>{this.renderLabel()}</span>\n <input\n class=\"six-file-upload__input\"\n type=\"file\"\n name=\"resume\"\n disabled={this.disabled}\n accept={this.accept}\n multiple={this.multiple}\n onChange={this.onChange}\n ref={(el) => (this.fileInput = el)}\n />\n </div>\n </Container>\n </div>\n );\n }\n}\n"]}
@@ -12,14 +12,33 @@ import { EventListeners } from '../../utils/event-listeners';
12
12
  */
13
13
  export class SixForm {
14
14
  constructor() {
15
+ this.formControls = [];
15
16
  this.eventListeners = new EventListeners();
17
+ this.handleClick = (event) => {
18
+ const target = event.target;
19
+ const tag = target.tagName.toLowerCase();
20
+ for (const formControl of this.formControls) {
21
+ if (formControl.tag === tag && formControl.click != null) {
22
+ formControl.click(event);
23
+ }
24
+ }
25
+ };
26
+ this.handleKeyDown = (event) => {
27
+ const target = event.target;
28
+ const tag = target.tagName.toLowerCase();
29
+ for (const formControl of this.formControls) {
30
+ if (formControl.tag === tag && formControl.keyDown != null) {
31
+ formControl.keyDown(event);
32
+ }
33
+ }
34
+ };
16
35
  this.novalidate = false;
17
36
  }
18
37
  connectedCallback() {
19
38
  this.formControls = [
20
39
  {
21
40
  tag: 'six-button',
22
- serialize: (el, formData) => el.name && !el.disabled ? formData.append(el.name, el.value) : null,
41
+ serialize: (el, formData) => el.name !== '' && !el.disabled ? formData.append(el.name, el.value) : null,
23
42
  click: (event) => {
24
43
  const target = event.target;
25
44
  if (target.submit) {
@@ -32,16 +51,16 @@ export class SixForm {
32
51
  },
33
52
  {
34
53
  tag: 'six-checkbox',
35
- serialize: (el, formData) => el.name && el.checked && !el.disabled ? formData.append(el.name, el.value) : null,
54
+ serialize: (el, formData) => el.name !== '' && el.checked && !el.disabled ? formData.append(el.name, el.value) : null,
36
55
  changeEventName: 'six-checkbox-change',
37
56
  },
38
57
  {
39
58
  tag: 'six-color-picker',
40
- serialize: (el, formData) => el.name && !el.disabled ? formData.append(el.name, el.value) : null,
59
+ serialize: (el, formData) => el.name !== '' && !el.disabled ? formData.append(el.name, el.value) : null,
41
60
  },
42
61
  {
43
62
  tag: 'six-input',
44
- serialize: (el, formData) => el.name && !el.disabled ? formData.append(el.name, el.value) : null,
63
+ serialize: (el, formData) => el.name !== '' && !el.disabled ? formData.append(el.name, el.value) : null,
45
64
  keyDown: (event) => {
46
65
  if (event.key === 'Enter' && !event.defaultPrevented) {
47
66
  this.submit();
@@ -51,7 +70,7 @@ export class SixForm {
51
70
  },
52
71
  {
53
72
  tag: 'six-datepicker',
54
- serialize: (el, formData) => { var _a; return el.name && !el.disabled ? formData.append(el.name, (_a = el.value) === null || _a === void 0 ? void 0 : _a.toISOString()) : null; },
73
+ serialize: (el, formData) => { var _a; return el.name !== '' && !el.disabled && el.value != null ? formData.append(el.name, (_a = el.value) === null || _a === void 0 ? void 0 : _a.toISOString()) : null; },
55
74
  keyDown: (event) => {
56
75
  if (event.key === 'Enter' && !event.defaultPrevented) {
57
76
  this.submit();
@@ -61,13 +80,13 @@ export class SixForm {
61
80
  },
62
81
  {
63
82
  tag: 'six-radio',
64
- serialize: (el, formData) => el.name && el.checked && !el.disabled ? formData.append(el.name, el.value) : null,
83
+ serialize: (el, formData) => el.name !== '' && el.checked && !el.disabled ? formData.append(el.name, el.value) : null,
65
84
  changeEventName: 'six-radio-change',
66
85
  },
67
86
  {
68
87
  tag: 'six-range',
69
88
  serialize: (el, formData) => {
70
- if (el.name && !el.disabled) {
89
+ if (el.name !== '' && !el.disabled) {
71
90
  formData.append(el.name, el.value + '');
72
91
  }
73
92
  },
@@ -76,10 +95,10 @@ export class SixForm {
76
95
  {
77
96
  tag: 'six-select',
78
97
  serialize: (el, formData) => {
79
- if (el.name && !el.disabled) {
98
+ if (el.name !== '' && !el.disabled) {
80
99
  if (el.multiple) {
81
100
  const selectedOptions = [...el.value];
82
- if (selectedOptions.length) {
101
+ if (selectedOptions.length > 0) {
83
102
  selectedOptions.map((value) => formData.append(el.name, value));
84
103
  }
85
104
  else {
@@ -95,17 +114,17 @@ export class SixForm {
95
114
  },
96
115
  {
97
116
  tag: 'six-switch',
98
- serialize: (el, formData) => el.name && el.checked && !el.disabled ? formData.append(el.name, el.value) : null,
117
+ serialize: (el, formData) => el.name !== '' && el.checked && !el.disabled ? formData.append(el.name, el.value) : null,
99
118
  changeEventName: 'six-switch-change',
100
119
  },
101
120
  {
102
121
  tag: 'six-textarea',
103
- serialize: (el, formData) => el.name && !el.disabled ? formData.append(el.name, el.value) : null,
122
+ serialize: (el, formData) => el.name !== '' && !el.disabled ? formData.append(el.name, el.value) : null,
104
123
  changeEventName: 'six-textarea-change',
105
124
  },
106
125
  {
107
126
  tag: 'six-timepicker',
108
- serialize: (el, formData) => el.name && !el.disabled ? formData.append(el.name, el.value) : null,
127
+ serialize: (el, formData) => el.name !== '' && !el.disabled ? formData.append(el.name, el.value) : null,
109
128
  keyDown: (event) => {
110
129
  if (event.key === 'Enter' && !event.defaultPrevented) {
111
130
  this.submit();
@@ -114,8 +133,6 @@ export class SixForm {
114
133
  changeEventName: 'six-timepicker-change',
115
134
  },
116
135
  ];
117
- this.handleClick = this.handleClick.bind(this);
118
- this.handleKeyDown = this.handleKeyDown.bind(this);
119
136
  }
120
137
  disconnectedCallback() {
121
138
  this.eventListeners.removeAll();
@@ -126,7 +143,7 @@ export class SixForm {
126
143
  appendChangeListener(el) {
127
144
  const tag = el.tagName.toLowerCase();
128
145
  for (const formControl of this.formControls) {
129
- if (formControl.tag === tag && formControl.changeEventName) {
146
+ if (formControl.tag === tag && formControl.changeEventName != null) {
130
147
  this.eventListeners.add(el, formControl.changeEventName, () => this.handleChange(el));
131
148
  }
132
149
  }
@@ -140,7 +157,13 @@ export class SixForm {
140
157
  }
141
158
  /** Gets all form control elements (native and custom). */
142
159
  async getFormControls() {
160
+ if (this.form == null) {
161
+ return [];
162
+ }
143
163
  const slot = this.form.querySelector('slot');
164
+ if (slot == null) {
165
+ return [];
166
+ }
144
167
  const tags = this.formControls.map((control) => control.tag);
145
168
  return slot
146
169
  .assignedElements({ flatten: true })
@@ -186,24 +209,6 @@ export class SixForm {
186
209
  .forEach((formControl) => formControl.reset());
187
210
  this.sixReset.emit();
188
211
  }
189
- handleClick(event) {
190
- const target = event.target;
191
- const tag = target.tagName.toLowerCase();
192
- for (const formControl of this.formControls) {
193
- if (formControl.tag === tag && formControl.click) {
194
- formControl.click(event);
195
- }
196
- }
197
- }
198
- handleKeyDown(event) {
199
- const target = event.target;
200
- const tag = target.tagName.toLowerCase();
201
- for (const formControl of this.formControls) {
202
- if (formControl.tag === tag && formControl.keyDown) {
203
- formControl.keyDown(event);
204
- }
205
- }
206
- }
207
212
  handleChange(el) {
208
213
  this.checkValidity().then((isValid) => this.sixChange.emit({
209
214
  valid: isValid,
@@ -350,6 +355,9 @@ export class SixForm {
350
355
  },
351
356
  "HTMLFormElement": {
352
357
  "location": "global"
358
+ },
359
+ "Element": {
360
+ "location": "global"
353
361
  }
354
362
  },
355
363
  "return": "Promise<HTMLFormElement[]>"
@@ -1 +1 @@
1
- {"version":3,"file":"six-form.js","sourceRoot":"","sources":["../../../src/components/six-form/six-form.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, EventEmitter, h, Method, Prop } from '@stencil/core';\nimport { EventListeners } from '../../utils/event-listeners';\nimport { EmptyPayload } from '../../utils/types';\n\nexport interface SixFormSubmitPayload {\n formData: FormData;\n formControls: HTMLFormElement[];\n}\n\nexport interface SixFormChangePayload {\n formControl: HTMLFormElement;\n valid: boolean;\n}\n\ninterface FormControl {\n tag: string;\n\n serialize(el: HTMLFormElement | HTMLElement, formData: FormData): void;\n\n click?(event: MouseEvent): any;\n\n keyDown?(event: KeyboardEvent): any;\n\n changeEventName?: string;\n}\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot - The form's content.\n *\n * @part base - The component's base wrapper.\n */\n@Component({\n tag: 'six-form',\n styleUrl: 'six-form.scss',\n shadow: true,\n})\nexport class SixForm {\n form: HTMLElement;\n formControls: FormControl[];\n\n readonly eventListeners = new EventListeners();\n\n /** Prevent the form from validating inputs before submitting. */\n @Prop() novalidate = false;\n\n /**\n * Emitted when the form is submitted. This event will not be emitted if any form control inside of it is in an\n * invalid state, unless the form has the `novalidate` attribute. Note that there is never a need to prevent this\n * event, since it doen't send a GET or POST request like native forms. To \"prevent\" submission, use a conditional\n * around the XHR request you use to submit the form's data with.\n */\n @Event({ eventName: 'six-form-submit' }) sixSubmit: EventEmitter<SixFormSubmitPayload>;\n\n /** Emitted when the control's value changes. */\n @Event({ eventName: 'six-form-change' }) sixChange: EventEmitter<SixFormChangePayload>;\n\n /** Emitted when the forms values are reset. */\n @Event({ eventName: 'six-form-reset' }) sixReset: EventEmitter<EmptyPayload>;\n\n connectedCallback() {\n this.formControls = [\n {\n tag: 'six-button',\n serialize: (el: HTMLSixButtonElement, formData) =>\n el.name && !el.disabled ? formData.append(el.name, el.value) : null,\n click: (event) => {\n const target = event.target as HTMLSixButtonElement;\n if (target.submit) {\n this.submit();\n }\n\n if (target.reset) {\n this.reset();\n }\n },\n },\n {\n tag: 'six-checkbox',\n serialize: (el: HTMLSixCheckboxElement, formData) =>\n el.name && el.checked && !el.disabled ? formData.append(el.name, el.value) : null,\n changeEventName: 'six-checkbox-change',\n },\n {\n tag: 'six-color-picker',\n serialize: (el: HTMLSixCheckboxElement, formData) =>\n el.name && !el.disabled ? formData.append(el.name, el.value) : null,\n },\n {\n tag: 'six-input',\n serialize: (el: HTMLSixInputElement, formData) =>\n el.name && !el.disabled ? formData.append(el.name, el.value) : null,\n keyDown: (event) => {\n if (event.key === 'Enter' && !event.defaultPrevented) {\n this.submit();\n }\n },\n changeEventName: 'six-input-change',\n },\n {\n tag: 'six-datepicker',\n serialize: (el: HTMLSixDatepickerElement, formData) =>\n el.name && !el.disabled ? formData.append(el.name, el.value?.toISOString()) : null,\n keyDown: (event) => {\n if (event.key === 'Enter' && !event.defaultPrevented) {\n this.submit();\n }\n },\n changeEventName: 'six-datepicker-select',\n },\n {\n tag: 'six-radio',\n serialize: (el: HTMLSixRadioElement, formData) =>\n el.name && el.checked && !el.disabled ? formData.append(el.name, el.value) : null,\n changeEventName: 'six-radio-change',\n },\n {\n tag: 'six-range',\n serialize: (el: HTMLSixRangeElement, formData) => {\n if (el.name && !el.disabled) {\n formData.append(el.name, el.value + '');\n }\n },\n changeEventName: 'six-range-change',\n },\n {\n tag: 'six-select',\n serialize: (el: HTMLSixSelectElement, formData) => {\n if (el.name && !el.disabled) {\n if (el.multiple) {\n const selectedOptions = [...el.value];\n if (selectedOptions.length) {\n selectedOptions.map((value) => formData.append(el.name, value));\n } else {\n formData.append(el.name, '');\n }\n } else {\n formData.append(el.name, el.value + '');\n }\n }\n },\n changeEventName: 'six-select-change',\n },\n {\n tag: 'six-switch',\n serialize: (el: HTMLSixSwitchElement, formData) =>\n el.name && el.checked && !el.disabled ? formData.append(el.name, el.value) : null,\n changeEventName: 'six-switch-change',\n },\n {\n tag: 'six-textarea',\n serialize: (el: HTMLSixTextareaElement, formData) =>\n el.name && !el.disabled ? formData.append(el.name, el.value) : null,\n changeEventName: 'six-textarea-change',\n },\n {\n tag: 'six-timepicker',\n serialize: (el: HTMLSixTimepickerElement, formData) =>\n el.name && !el.disabled ? formData.append(el.name, el.value) : null,\n keyDown: (event) => {\n if (event.key === 'Enter' && !event.defaultPrevented) {\n this.submit();\n }\n },\n changeEventName: 'six-timepicker-change',\n },\n ];\n\n this.handleClick = this.handleClick.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n }\n\n disconnectedCallback() {\n this.eventListeners.removeAll();\n }\n\n componentDidLoad() {\n this.getFormControls().then((controls) => controls.forEach((control) => this.appendChangeListener(control)));\n }\n\n private appendChangeListener(el: HTMLFormElement) {\n const tag = el.tagName.toLowerCase();\n for (const formControl of this.formControls) {\n if (formControl.tag === tag && formControl.changeEventName) {\n this.eventListeners.add(el as HTMLElement, formControl.changeEventName, () => this.handleChange(el));\n }\n }\n }\n\n /** Serializes all form controls elements and returns a `FormData` object. */\n @Method()\n async getFormData() {\n const formData = new FormData();\n const formControls = await this.getFormControls();\n\n formControls.map((el) => this.serializeElement(el, formData));\n\n return formData;\n }\n\n /** Gets all form control elements (native and custom). */\n @Method()\n async getFormControls() {\n const slot = this.form.querySelector('slot');\n const tags = this.formControls.map((control) => control.tag);\n return slot\n .assignedElements({ flatten: true })\n .reduce((all, el) => all.concat(el, [...el.querySelectorAll('*')]), [])\n .filter((el) => tags.includes(el.tagName.toLowerCase())) as HTMLFormElement[];\n }\n\n /**\n * Submits the form. If all controls are valid, the `six-form-submit` event will be emitted and the promise will resolve\n * with `true`. If any form control is invalid, the promise will resolve with `false` and no event will be emitted.\n */\n @Method()\n async submit() {\n const formData = await this.getFormData();\n const formControls = await this.getFormControls();\n const formControlsThatReport = formControls.filter(\n (el: HTMLFormElement) => typeof el.reportValidity === 'function'\n ) as any;\n\n if (!this.novalidate) {\n let isValid = true;\n for (const el of formControlsThatReport) {\n if (!(await el.reportValidity())) {\n isValid = false;\n }\n }\n if (!isValid) {\n return false;\n }\n }\n\n this.sixSubmit.emit({ formData, formControls });\n\n return true;\n }\n\n /** Checks for validity. */\n @Method()\n async checkValidity() {\n const formControls = await this.getFormControls();\n const validationTasks = formControls\n .filter((el: HTMLFormElement) => typeof el.checkValidity === 'function')\n .map((el: HTMLFormElement) => el.checkValidity());\n const invalidControls = await Promise.all(validationTasks).then((results) =>\n results.filter((valid) => valid === false)\n );\n return invalidControls.length == 0;\n }\n\n /** Resets the form and resets the value of all descendants*/\n @Method()\n async reset() {\n const formControls = await this.getFormControls();\n\n formControls\n .filter((control) => control?.reset && typeof control?.reset === 'function')\n .forEach((formControl) => formControl.reset());\n\n this.sixReset.emit();\n }\n\n handleClick(event: MouseEvent) {\n const target = event.target as HTMLFormElement;\n const tag = target.tagName.toLowerCase();\n\n for (const formControl of this.formControls) {\n if (formControl.tag === tag && formControl.click) {\n formControl.click(event);\n }\n }\n }\n\n handleKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLFormElement;\n const tag = target.tagName.toLowerCase();\n\n for (const formControl of this.formControls) {\n if (formControl.tag === tag && formControl.keyDown) {\n formControl.keyDown(event);\n }\n }\n }\n\n handleChange(el: HTMLFormElement) {\n this.checkValidity().then((isValid) =>\n this.sixChange.emit({\n valid: isValid,\n formControl: el,\n })\n );\n }\n\n serializeElement(el: HTMLFormElement, formData: FormData) {\n const tag = el.tagName.toLowerCase();\n\n for (const formControl of this.formControls) {\n if (formControl.tag === tag) {\n return formControl.serialize(el, formData);\n }\n }\n\n return null;\n }\n\n render() {\n return (\n <div\n ref={(el) => (this.form = el)}\n part=\"base\"\n class=\"form\"\n role=\"form\"\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n >\n <slot />\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"six-form.js","sourceRoot":"","sources":["../../../src/components/six-form/six-form.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, EventEmitter, h, Method, Prop } from '@stencil/core';\nimport { EventListeners } from '../../utils/event-listeners';\nimport { EmptyPayload } from '../../utils/types';\n\nexport interface SixFormSubmitPayload {\n formData: FormData;\n formControls: HTMLFormElement[];\n}\n\nexport interface SixFormChangePayload {\n formControl: HTMLFormElement;\n valid: boolean;\n}\n\ninterface FormControl {\n tag: string;\n\n serialize(el: HTMLFormElement | HTMLElement, formData: FormData): void;\n\n click?(event: MouseEvent): void;\n\n keyDown?(event: KeyboardEvent): void;\n\n changeEventName?: string;\n}\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot - The form's content.\n *\n * @part base - The component's base wrapper.\n */\n@Component({\n tag: 'six-form',\n styleUrl: 'six-form.scss',\n shadow: true,\n})\nexport class SixForm {\n private form?: HTMLElement;\n private formControls: FormControl[] = [];\n private eventListeners = new EventListeners();\n\n /** Prevent the form from validating inputs before submitting. */\n @Prop() novalidate = false;\n\n /**\n * Emitted when the form is submitted. This event will not be emitted if any form control inside of it is in an\n * invalid state, unless the form has the `novalidate` attribute. Note that there is never a need to prevent this\n * event, since it doen't send a GET or POST request like native forms. To \"prevent\" submission, use a conditional\n * around the XHR request you use to submit the form's data with.\n */\n @Event({ eventName: 'six-form-submit' }) sixSubmit!: EventEmitter<SixFormSubmitPayload>;\n\n /** Emitted when the control's value changes. */\n @Event({ eventName: 'six-form-change' }) sixChange!: EventEmitter<SixFormChangePayload>;\n\n /** Emitted when the forms values are reset. */\n @Event({ eventName: 'six-form-reset' }) sixReset!: EventEmitter<EmptyPayload>;\n\n connectedCallback() {\n this.formControls = [\n {\n tag: 'six-button',\n serialize: (el: HTMLSixButtonElement, formData) =>\n el.name !== '' && !el.disabled ? formData.append(el.name, el.value) : null,\n click: (event) => {\n const target = event.target as HTMLSixButtonElement;\n if (target.submit) {\n this.submit();\n }\n\n if (target.reset) {\n this.reset();\n }\n },\n },\n {\n tag: 'six-checkbox',\n serialize: (el: HTMLSixCheckboxElement, formData) =>\n el.name !== '' && el.checked && !el.disabled ? formData.append(el.name, el.value) : null,\n changeEventName: 'six-checkbox-change',\n },\n {\n tag: 'six-color-picker',\n serialize: (el: HTMLSixCheckboxElement, formData) =>\n el.name !== '' && !el.disabled ? formData.append(el.name, el.value) : null,\n },\n {\n tag: 'six-input',\n serialize: (el: HTMLSixInputElement, formData) =>\n el.name !== '' && !el.disabled ? formData.append(el.name, el.value) : null,\n keyDown: (event) => {\n if (event.key === 'Enter' && !event.defaultPrevented) {\n this.submit();\n }\n },\n changeEventName: 'six-input-change',\n },\n {\n tag: 'six-datepicker',\n serialize: (el: HTMLSixDatepickerElement, formData) =>\n el.name !== '' && !el.disabled && el.value != null ? formData.append(el.name, el.value?.toISOString()) : null,\n keyDown: (event) => {\n if (event.key === 'Enter' && !event.defaultPrevented) {\n this.submit();\n }\n },\n changeEventName: 'six-datepicker-select',\n },\n {\n tag: 'six-radio',\n serialize: (el: HTMLSixRadioElement, formData) =>\n el.name !== '' && el.checked && !el.disabled ? formData.append(el.name, el.value) : null,\n changeEventName: 'six-radio-change',\n },\n {\n tag: 'six-range',\n serialize: (el: HTMLSixRangeElement, formData) => {\n if (el.name !== '' && !el.disabled) {\n formData.append(el.name, el.value + '');\n }\n },\n changeEventName: 'six-range-change',\n },\n {\n tag: 'six-select',\n serialize: (el: HTMLSixSelectElement, formData) => {\n if (el.name !== '' && !el.disabled) {\n if (el.multiple) {\n const selectedOptions = [...el.value];\n if (selectedOptions.length > 0) {\n selectedOptions.map((value) => formData.append(el.name, value));\n } else {\n formData.append(el.name, '');\n }\n } else {\n formData.append(el.name, el.value + '');\n }\n }\n },\n changeEventName: 'six-select-change',\n },\n {\n tag: 'six-switch',\n serialize: (el: HTMLSixSwitchElement, formData) =>\n el.name !== '' && el.checked && !el.disabled ? formData.append(el.name, el.value) : null,\n changeEventName: 'six-switch-change',\n },\n {\n tag: 'six-textarea',\n serialize: (el: HTMLSixTextareaElement, formData) =>\n el.name !== '' && !el.disabled ? formData.append(el.name, el.value) : null,\n changeEventName: 'six-textarea-change',\n },\n {\n tag: 'six-timepicker',\n serialize: (el: HTMLSixTimepickerElement, formData) =>\n el.name !== '' && !el.disabled ? formData.append(el.name, el.value) : null,\n keyDown: (event) => {\n if (event.key === 'Enter' && !event.defaultPrevented) {\n this.submit();\n }\n },\n changeEventName: 'six-timepicker-change',\n },\n ];\n }\n\n disconnectedCallback() {\n this.eventListeners.removeAll();\n }\n\n componentDidLoad() {\n this.getFormControls().then((controls) => controls.forEach((control) => this.appendChangeListener(control)));\n }\n\n private appendChangeListener(el: HTMLFormElement) {\n const tag = el.tagName.toLowerCase();\n for (const formControl of this.formControls) {\n if (formControl.tag === tag && formControl.changeEventName != null) {\n this.eventListeners.add(el as HTMLElement, formControl.changeEventName, () => this.handleChange(el));\n }\n }\n }\n\n /** Serializes all form controls elements and returns a `FormData` object. */\n @Method()\n async getFormData() {\n const formData = new FormData();\n const formControls = await this.getFormControls();\n\n formControls.map((el) => this.serializeElement(el, formData));\n\n return formData;\n }\n\n /** Gets all form control elements (native and custom). */\n @Method()\n async getFormControls(): Promise<HTMLFormElement[]> {\n if (this.form == null) {\n return [];\n }\n const slot = this.form.querySelector('slot');\n if (slot == null) {\n return [];\n }\n const tags = this.formControls.map((control) => control.tag);\n return slot\n .assignedElements({ flatten: true })\n .reduce((all, el) => all.concat(el, [...el.querySelectorAll('*')]), [] as Element[])\n .filter((el) => tags.includes(el.tagName.toLowerCase())) as HTMLFormElement[];\n }\n\n /**\n * Submits the form. If all controls are valid, the `six-form-submit` event will be emitted and the promise will resolve\n * with `true`. If any form control is invalid, the promise will resolve with `false` and no event will be emitted.\n */\n @Method()\n async submit() {\n const formData = await this.getFormData();\n const formControls = await this.getFormControls();\n const formControlsThatReport = formControls.filter(\n (el: HTMLFormElement) => typeof el.reportValidity === 'function'\n );\n\n if (!this.novalidate) {\n let isValid = true;\n for (const el of formControlsThatReport) {\n if (!(await el.reportValidity())) {\n isValid = false;\n }\n }\n if (!isValid) {\n return false;\n }\n }\n\n this.sixSubmit.emit({ formData, formControls });\n\n return true;\n }\n\n /** Checks for validity. */\n @Method()\n async checkValidity() {\n const formControls = await this.getFormControls();\n const validationTasks = formControls\n .filter((el: HTMLFormElement) => typeof el.checkValidity === 'function')\n .map((el: HTMLFormElement) => el.checkValidity());\n const invalidControls = await Promise.all(validationTasks).then((results) =>\n results.filter((valid) => valid === false)\n );\n return invalidControls.length == 0;\n }\n\n /** Resets the form and resets the value of all descendants*/\n @Method()\n async reset() {\n const formControls = await this.getFormControls();\n\n formControls\n .filter((control) => control?.reset && typeof control?.reset === 'function')\n .forEach((formControl) => formControl.reset());\n\n this.sixReset.emit();\n }\n\n private handleClick = (event: MouseEvent) => {\n const target = event.target as HTMLFormElement;\n const tag = target.tagName.toLowerCase();\n\n for (const formControl of this.formControls) {\n if (formControl.tag === tag && formControl.click != null) {\n formControl.click(event);\n }\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const target = event.target as HTMLFormElement;\n const tag = target.tagName.toLowerCase();\n\n for (const formControl of this.formControls) {\n if (formControl.tag === tag && formControl.keyDown != null) {\n formControl.keyDown(event);\n }\n }\n };\n\n private handleChange(el: HTMLFormElement) {\n this.checkValidity().then((isValid) =>\n this.sixChange.emit({\n valid: isValid,\n formControl: el,\n })\n );\n }\n\n private serializeElement(el: HTMLFormElement, formData: FormData) {\n const tag = el.tagName.toLowerCase();\n\n for (const formControl of this.formControls) {\n if (formControl.tag === tag) {\n return formControl.serialize(el, formData);\n }\n }\n\n return null;\n }\n\n render() {\n return (\n <div\n ref={(el) => (this.form = el)}\n part=\"base\"\n class=\"form\"\n role=\"form\"\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n >\n <slot />\n </div>\n );\n }\n}\n"]}
@@ -20,30 +20,31 @@ export class SixGroupLabel {
20
20
  this.wrapperLabelId = `label-${++id}`;
21
21
  this.labelId = `label-label-${id}`;
22
22
  this.helpTextId = `label-help-text-${id}`;
23
+ this.handleSlotChange = () => {
24
+ this.hasLabelSlot = hasSlot(this.host, 'label');
25
+ this.hasHelpTextSlot = hasSlot(this.host, 'help-text');
26
+ };
23
27
  this.hasHelpTextSlot = false;
24
28
  this.hasLabelSlot = false;
25
29
  this.size = 'medium';
26
30
  this.label = '';
27
31
  this.helpText = '';
28
32
  this.disabled = false;
29
- this.required = undefined;
33
+ this.required = false;
30
34
  }
31
35
  handleLabelChange() {
32
36
  this.handleSlotChange();
33
37
  }
34
38
  connectedCallback() {
35
- this.handleSlotChange = this.handleSlotChange.bind(this);
36
- this.host.shadowRoot.addEventListener('slotchange', this.handleSlotChange);
39
+ var _a;
40
+ (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.addEventListener('slotchange', this.handleSlotChange);
37
41
  }
38
42
  componentWillLoad() {
39
43
  this.handleSlotChange();
40
44
  }
41
45
  disconnectedCallback() {
42
- this.host.shadowRoot.removeEventListener('slotchange', this.handleSlotChange);
43
- }
44
- handleSlotChange() {
45
- this.hasLabelSlot = hasSlot(this.host, 'label');
46
- this.hasHelpTextSlot = hasSlot(this.host, 'help-text');
46
+ var _a;
47
+ (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.removeEventListener('slotchange', this.handleSlotChange);
47
48
  }
48
49
  render() {
49
50
  return (h(FormControl, { inputId: this.wrapperLabelId, label: this.label, labelId: this.labelId, hasLabelSlot: this.hasLabelSlot, helpTextId: this.helpTextId, helpText: this.helpText, hasHelpTextSlot: this.hasHelpTextSlot, size: this.size, disabled: this.disabled, required: this.required }, h("slot", null)));
@@ -149,7 +150,8 @@ export class SixGroupLabel {
149
150
  "text": "The label's required attribute."
150
151
  },
151
152
  "attribute": "required",
152
- "reflect": true
153
+ "reflect": true,
154
+ "defaultValue": "false"
153
155
  }
154
156
  };
155
157
  }
@@ -1 +1 @@
1
- {"version":3,"file":"six-group-label.js","sourceRoot":"","sources":["../../../src/components/six-group-label/six-group-label.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,WAAW,MAAM,uDAAuD,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,IAAI,EAAE,GAAG,CAAC,CAAC;AAEX;;;;;;;;;;;;GAYG;AAMH,MAAM,OAAO,aAAa;;IACxB,mBAAc,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC;IACjC,YAAO,GAAG,eAAe,EAAE,EAAE,CAAC;IAC9B,eAAU,GAAG,mBAAmB,EAAE,EAAE,CAAC;2BAIV,KAAK;wBACR,KAAK;gBAGiC,QAAQ;iBAGtD,EAAE;oBAGC,EAAE;oBAGe,KAAK;;;EAOzC,iBAAiB;IACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;EAC1B,CAAC;EAED,iBAAiB;IACf,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;EAC7E,CAAC;EAED,iBAAiB;IACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;EAC1B,CAAC;EAED,oBAAoB;IAClB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;EAChF,CAAC;EAED,gBAAgB;IACd,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;EACzD,CAAC;EAED,MAAM;IACJ,OAAO,CACL,EAAC,WAAW,IACV,OAAO,EAAE,IAAI,CAAC,cAAc,EAC5B,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,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;MAEvB,eAAa,CACD,CACf,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, Prop, State, Watch } from '@stencil/core';\nimport FormControl from '../../functional-components/form-control/form-control';\nimport { hasSlot } from '../../utils/slot';\n\nlet id = 0;\n\n/**\n * @since 1.1\n * @status stable\n *\n * @slot label - The wrapped component's label. Alternatively, you can use the label prop.\n * @slot help-text - Help text that describes how to use the input.\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 form-control - The form control that wraps the label, textarea, and help text.\n * @part label - The label of wrapped component.\n * @part help-text - The help text of the wrapped component.\n */\n@Component({\n tag: 'six-group-label',\n styleUrl: 'six-group-label.scss',\n shadow: true,\n})\nexport class SixGroupLabel {\n wrapperLabelId = `label-${++id}`;\n labelId = `label-label-${id}`;\n helpTextId = `label-help-text-${id}`;\n\n @Element() host: HTMLSixGroupLabelElement;\n\n @State() hasHelpTextSlot = false;\n @State() hasLabelSlot = false;\n\n /** The label's size. */\n @Prop({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /** The wrapper label's label. Alternatively, you can use the label slot. */\n @Prop() label = '';\n\n /** The wrapper label's help text. Alternatively, you can use the help-text slot. */\n @Prop() helpText = '';\n\n /** Set to true to disable the label. */\n @Prop({ reflect: true }) disabled = false;\n\n /** The label's required attribute. */\n @Prop({ reflect: true }) required: boolean;\n\n @Watch('helpText')\n @Watch('label')\n handleLabelChange() {\n this.handleSlotChange();\n }\n\n connectedCallback() {\n this.handleSlotChange = this.handleSlotChange.bind(this);\n this.host.shadowRoot.addEventListener('slotchange', this.handleSlotChange);\n }\n\n componentWillLoad() {\n this.handleSlotChange();\n }\n\n disconnectedCallback() {\n this.host.shadowRoot.removeEventListener('slotchange', this.handleSlotChange);\n }\n\n handleSlotChange() {\n this.hasLabelSlot = hasSlot(this.host, 'label');\n this.hasHelpTextSlot = hasSlot(this.host, 'help-text');\n }\n\n render() {\n return (\n <FormControl\n inputId={this.wrapperLabelId}\n label={this.label}\n labelId={this.labelId}\n hasLabelSlot={this.hasLabelSlot}\n helpTextId={this.helpTextId}\n helpText={this.helpText}\n hasHelpTextSlot={this.hasHelpTextSlot}\n size={this.size}\n disabled={this.disabled}\n required={this.required}\n >\n <slot></slot>\n </FormControl>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"six-group-label.js","sourceRoot":"","sources":["../../../src/components/six-group-label/six-group-label.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,WAAW,MAAM,uDAAuD,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,IAAI,EAAE,GAAG,CAAC,CAAC;AAEX;;;;;;;;;;;;GAYG;AAMH,MAAM,OAAO,aAAa;;IAChB,mBAAc,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC;IACjC,YAAO,GAAG,eAAe,EAAE,EAAE,CAAC;IAC9B,eAAU,GAAG,mBAAmB,EAAE,EAAE,CAAC;IAwCrC,qBAAgB,GAAG,GAAG,EAAE;MAC9B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;MAChD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACzD,CAAC,CAAC;2BAvCyB,KAAK;wBACR,KAAK;gBAGiC,QAAQ;iBAGtD,EAAE;oBAGC,EAAE;oBAGe,KAAK;oBAGL,KAAK;;EAIzC,iBAAiB;IACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;EAC1B,CAAC;EAED,iBAAiB;;IACf,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;EAC1B,CAAC;EAED,oBAAoB;;IAClB,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,0CAAE,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;EACjF,CAAC;EAOD,MAAM;IACJ,OAAO,CACL,EAAC,WAAW,IACV,OAAO,EAAE,IAAI,CAAC,cAAc,EAC5B,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,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;MAEvB,eAAa,CACD,CACf,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, Prop, State, Watch } from '@stencil/core';\nimport FormControl from '../../functional-components/form-control/form-control';\nimport { hasSlot } from '../../utils/slot';\n\nlet id = 0;\n\n/**\n * @since 1.1\n * @status stable\n *\n * @slot label - The wrapped component's label. Alternatively, you can use the label prop.\n * @slot help-text - Help text that describes how to use the input.\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 form-control - The form control that wraps the label, textarea, and help text.\n * @part label - The label of wrapped component.\n * @part help-text - The help text of the wrapped component.\n */\n@Component({\n tag: 'six-group-label',\n styleUrl: 'six-group-label.scss',\n shadow: true,\n})\nexport class SixGroupLabel {\n private wrapperLabelId = `label-${++id}`;\n private labelId = `label-label-${id}`;\n private helpTextId = `label-help-text-${id}`;\n\n @Element() host!: HTMLSixGroupLabelElement;\n\n @State() hasHelpTextSlot = false;\n @State() hasLabelSlot = false;\n\n /** The label's size. */\n @Prop({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /** The wrapper label's label. Alternatively, you can use the label slot. */\n @Prop() label = '';\n\n /** The wrapper label's help text. Alternatively, you can use the help-text slot. */\n @Prop() helpText = '';\n\n /** Set to true to disable the label. */\n @Prop({ reflect: true }) disabled = false;\n\n /** The label's required attribute. */\n @Prop({ reflect: true }) required = false;\n\n @Watch('helpText')\n @Watch('label')\n handleLabelChange() {\n this.handleSlotChange();\n }\n\n connectedCallback() {\n this.host.shadowRoot?.addEventListener('slotchange', this.handleSlotChange);\n }\n\n componentWillLoad() {\n this.handleSlotChange();\n }\n\n disconnectedCallback() {\n this.host.shadowRoot?.removeEventListener('slotchange', this.handleSlotChange);\n }\n\n private handleSlotChange = () => {\n this.hasLabelSlot = hasSlot(this.host, 'label');\n this.hasHelpTextSlot = hasSlot(this.host, 'help-text');\n };\n\n render() {\n return (\n <FormControl\n inputId={this.wrapperLabelId}\n label={this.label}\n labelId={this.labelId}\n hasLabelSlot={this.hasLabelSlot}\n helpTextId={this.helpTextId}\n helpText={this.helpText}\n hasHelpTextSlot={this.hasHelpTextSlot}\n size={this.size}\n disabled={this.disabled}\n required={this.required}\n >\n <slot></slot>\n </FormControl>\n );\n }\n}\n"]}
@@ -1,13 +1,12 @@
1
1
  import { h, Host } from '@stencil/core';
2
2
  import { EventListeners } from '../../utils/event-listeners';
3
- import { getAvailableSlots } from '../../utils/slot';
3
+ import { getSlot, hasSlot } from '../../utils/slot';
4
4
  var Section;
5
5
  (function (Section) {
6
6
  Section[Section["None"] = 0] = "None";
7
7
  Section[Section["Search"] = 1] = "Search";
8
- Section[Section["Notifications"] = 2] = "Notifications";
9
- Section[Section["AppSwitcher"] = 3] = "AppSwitcher";
10
- Section[Section["Profile"] = 4] = "Profile";
8
+ Section[Section["AppSwitcher"] = 2] = "AppSwitcher";
9
+ Section[Section["Profile"] = 3] = "Profile";
11
10
  })(Section || (Section = {}));
12
11
  var Slot;
13
12
  (function (Slot) {
@@ -17,7 +16,6 @@ var Slot;
17
16
  Slot["Profile"] = "profile-menu";
18
17
  Slot["Logo"] = "logo";
19
18
  })(Slot || (Slot = {}));
20
- const getSlots = getAvailableSlots(Slot);
21
19
  /**
22
20
  * @since 1.0
23
21
  * @status stable
@@ -32,42 +30,31 @@ const getSlots = getAvailableSlots(Slot);
32
30
  export class SixHeader {
33
31
  constructor() {
34
32
  this.eventListeners = new EventListeners();
35
- this.has = (slot) => this.slots[slot];
36
- this.selected = (value) => value === this.selectedSection;
37
- this.select = (value) => () => {
38
- this.selectedSection = value;
39
- };
40
- this.toggleSearch = (value) => () => {
41
- var _a;
42
- if (value === Section.Search) {
43
- const visible = this.selectedSection !== value;
44
- if (visible) {
45
- (_a = this.host.querySelector(`[slot="${Slot.Search}"]`).shadowRoot.querySelector('six-input')) === null || _a === void 0 ? void 0 : _a.setFocus();
46
- }
47
- this.sixSearchFieldToggle.emit({ visible });
48
- }
49
- this.selectedSection = this.selectedSection === value ? Section.None : value;
50
- };
51
33
  this.setupMenu = (el) => {
34
+ if (el == null)
35
+ return;
52
36
  this.eventListeners.add(el, 'click', () => this.sixHamburgerClick.emit());
53
37
  };
54
38
  this.setupLogo = (el) => {
55
- if (!this.clickableLogo) {
39
+ if (!this.clickableLogo || el == null)
56
40
  return;
57
- }
58
41
  this.eventListeners.add(el, 'click', () => this.sixLogoClick.emit());
59
42
  };
60
43
  this.setupProfile = (el) => {
61
- this.eventListeners.add(el, 'six-dropdown-show', this.select(Section.Profile));
62
- this.eventListeners.add(el, 'six-dropdown-hide', this.select(Section.None));
44
+ if (el == null)
45
+ return;
46
+ this.eventListeners.add(el, 'six-dropdown-show', this.selectSection(Section.Profile));
47
+ this.eventListeners.add(el, 'six-dropdown-hide', this.selectSection(Section.None));
63
48
  this.eventListeners.add(el, 'six-menu-item-selected', (event) => {
64
49
  const { name, item } = event.detail;
65
50
  this.sixProfileSelect.emit({ selectedLabel: item.innerText, name, item });
66
51
  });
67
52
  };
68
53
  this.setupAppSwitcher = (el) => {
69
- this.eventListeners.add(el, 'six-dropdown-show', this.select(Section.AppSwitcher));
70
- this.eventListeners.add(el, 'six-dropdown-hide', this.select(Section.None));
54
+ if (el == null)
55
+ return;
56
+ this.eventListeners.add(el, 'six-dropdown-show', this.selectSection(Section.AppSwitcher));
57
+ this.eventListeners.add(el, 'six-dropdown-hide', this.selectSection(Section.None));
71
58
  this.eventListeners.add(el, 'six-menu-item-selected', (event) => {
72
59
  const { name, item } = event.detail;
73
60
  this.selectedApp = item.innerText;
@@ -101,46 +88,81 @@ export class SixHeader {
101
88
  async getIsSearchOpen() {
102
89
  return this.selectedSection === Section.Search;
103
90
  }
91
+ hasSlot(slot) {
92
+ if (this.slots == null) {
93
+ return false;
94
+ }
95
+ return this.slots[slot];
96
+ }
97
+ isSectionSelected(value) {
98
+ return value === this.selectedSection;
99
+ }
100
+ selectSection(section) {
101
+ return () => (this.selectedSection = section);
102
+ }
103
+ toggleSearch() {
104
+ const visible = this.selectedSection !== Section.Search;
105
+ this.selectedSection = this.selectedSection === Section.Search ? Section.None : Section.Search;
106
+ this.sixSearchFieldToggle.emit({ visible });
107
+ if (this.selectedSection === Section.Search) {
108
+ // setFocus deferred due to https://github.com/ionic-team/stencil/issues/3772
109
+ setTimeout(async () => {
110
+ var _a, _b;
111
+ const slot = getSlot(this.host, Slot.Search);
112
+ (_b = (_a = slot === null || slot === void 0 ? void 0 : slot.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('six-input')) === null || _b === void 0 ? void 0 : _b.setFocus();
113
+ }, 50);
114
+ }
115
+ }
104
116
  componentWillLoad() {
105
- this.slots = getSlots(this.host);
106
- if (this.has(Slot.AppSwitcher)) {
117
+ this.slots = {
118
+ [Slot.Search]: hasSlot(this.host, Slot.Search),
119
+ [Slot.Notifications]: hasSlot(this.host, Slot.Notifications),
120
+ [Slot.AppSwitcher]: hasSlot(this.host, Slot.AppSwitcher),
121
+ [Slot.Profile]: hasSlot(this.host, Slot.Profile),
122
+ [Slot.Logo]: hasSlot(this.host, Slot.Logo),
123
+ };
124
+ if (this.hasSlot(Slot.AppSwitcher)) {
107
125
  this.selectedApp = this.getSelectedApp();
108
126
  }
109
- if (this.has(Slot.Search)) {
127
+ if (this.hasSlot(Slot.Search)) {
110
128
  this.computeSearchOpenState();
111
129
  }
112
130
  }
113
131
  getSelectedApp() {
132
+ var _a;
114
133
  // there are more concise ways to select the first checked menu item, but this is one that works for jest
115
- const element = this.host.querySelector(`[slot="${Slot.AppSwitcher}"]`);
134
+ const element = getSlot(this.host, Slot.AppSwitcher);
135
+ if (element == null) {
136
+ return undefined;
137
+ }
116
138
  const items = Array.from(element.querySelectorAll('six-menu-item'));
117
139
  const firstCheckedMenuItem = items.find((item) => item.hasAttribute('checked'));
118
- return firstCheckedMenuItem === null || firstCheckedMenuItem === void 0 ? void 0 : firstCheckedMenuItem.textContent;
140
+ return (_a = firstCheckedMenuItem === null || firstCheckedMenuItem === void 0 ? void 0 : firstCheckedMenuItem.textContent) !== null && _a !== void 0 ? _a : undefined;
119
141
  }
120
142
  disconnectedCallback() {
121
143
  this.eventListeners.removeAll();
122
144
  }
123
145
  render() {
124
- const search = this.has(Slot.Search) && (h("section", { class: {
146
+ const search = this.hasSlot(Slot.Search) && (h("section", { class: {
125
147
  'six-header__search': true,
126
- 'six-header__search--open': this.selected(Section.Search),
127
- } }, h("six-icon-button", { name: "search", onClick: this.toggleSearch(Section.Search), "data-testid": "search-trigger" })));
128
- const notifications = this.has(Slot.Notifications) && (h("section", { class: "six-header__notification" }, h("slot", { name: Slot.Notifications })));
129
- const appSwitcher = this.has(Slot.AppSwitcher) && (h("section", { class: {
148
+ 'six-header__search--open': this.isSectionSelected(Section.Search),
149
+ } }, h("six-icon-button", { name: "search", onClick: () => this.toggleSearch(), "data-testid": "search-trigger" })));
150
+ const notifications = this.hasSlot(Slot.Notifications) && (h("section", { class: "six-header__notification" }, h("slot", { name: Slot.Notifications })));
151
+ const appSwitcher = this.hasSlot(Slot.AppSwitcher) && (h("section", { class: {
130
152
  'six-header__app-switcher': true,
131
- 'six-header__app-switcher--open': this.selected(Section.AppSwitcher),
153
+ 'six-header__app-switcher--open': this.isSectionSelected(Section.AppSwitcher),
132
154
  } }, h("a", { onClick: this.appNameClicked, class: "six-header__selected-app" }, this.selectedApp), h("six-dropdown", { distance: 13, skidding: 20, placement: "bottom-end", ref: this.setupAppSwitcher }, h("six-icon-button", { name: "apps", slot: "trigger" }), h("slot", { name: Slot.AppSwitcher }))));
133
- const profile = this.has(Slot.Profile) && (h("section", { class: {
155
+ const profile = this.hasSlot(Slot.Profile) && (h("section", { class: {
134
156
  'six-header__profile': true,
135
- 'six-header__profile--open': this.selected(Section.Profile),
157
+ 'six-header__profile--open': this.isSectionSelected(Section.Profile),
136
158
  } }, h("six-dropdown", { distance: 17, skidding: 20, placement: "bottom-end", ref: this.setupProfile }, h("slot", { name: "profile-avatar", slot: "trigger" }), h("slot", { name: "profile-menu" }))));
137
- const logo = this.has(Slot.Logo) ? (h("section", null, h("slot", { name: "logo" }))) : (h("section", { class: {
159
+ const logo = this.hasSlot(Slot.Logo) ? (h("section", null, h("slot", { name: "logo" }))) : (h("section", { class: {
138
160
  'six-header__logo': true,
139
161
  'six-header__logo--clickable': this.clickableLogo,
140
162
  }, ref: this.setupLogo }, h("svg", { height: "20", viewBox: "0 0 90 26", xmlns: "http://www.w3.org/2000/svg" }, h("title", null, "SIX"), h("g", { fill: "#DE3919", "fill-rule": "nonzero" }, h("path", { d: "m22.798 3.869c1.82-2.168 4.549-3.545 7.6-3.545h6.807v4.961h-6.807c-1.526 0-2.89.689-3.8 1.771l-12.19 14.526c-1.82 2.166-4.549 3.545-7.6 3.545h-6.808v-4.961h6.808c1.525 0 2.889-.689 3.799-1.773l12.191-14.525" }), h("path", { d: "m42.16.324h5.21v24.806h-5.21z" }), h("path", { d: "m66.743 3.869l4.195 4.999 4.195-4.999c1.819-2.168 4.549-3.545 7.6-3.545h6.806v4.961h-6.806c-1.526 0-2.89.689-3.8 1.771l-4.758 5.669 4.758 5.669c.91 1.084 2.274 1.773 3.8 1.773h6.806v4.961h-6.806c-3.051 0-5.781-1.379-7.6-3.545l-4.195-4.999-4.195 4.999c-1.82 2.166-4.55 3.545-7.6 3.545h-6.807v-4.961h6.807c1.525 0 2.889-.689 3.799-1.773l4.758-5.669-4.758-5.669c-.91-1.083-2.274-1.771-3.799-1.771h-6.807v-4.961h6.807c3.05 0 5.78 1.378 7.6 3.545" })))));
141
163
  return (h(Host, null, h("header", { class: "six-header" }, h("section", { class: "six-header__menu" }, h("six-icon-button", { name: this.openHamburgerMenu ? 'menu_open' : 'menu', ref: this.setupMenu })), logo, h("section", { class: "six-header__placeholder" }), h("section", { class: "six-header__custom" }, h("slot", null)), search, notifications, appSwitcher, profile), h("div", { class: {
142
164
  'six-header__search-field': true,
143
- 'six-header__search-field--visible': this.selected(Section.Search),
165
+ 'six-header__search-field--visible': this.isSectionSelected(Section.Search),
144
166
  'six-header__search-field--shift-content': this.shiftContent,
145
167
  } }, h("slot", { name: Slot.Search }))));
146
168
  }