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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1002) hide show
  1. package/dist/cjs/{event-listeners-4a8d66d5.js → event-listeners-74715e62.js} +40 -38
  2. package/dist/cjs/event-listeners-74715e62.js.map +1 -0
  3. package/dist/cjs/{execution-control-3bc9c7c4.js → execution-control-46f388e0.js} +37 -35
  4. package/dist/cjs/execution-control-46f388e0.js.map +1 -0
  5. package/dist/cjs/{focus-visible-b08d956f.js → focus-visible-0b352c74.js} +42 -40
  6. package/dist/cjs/focus-visible-0b352c74.js.map +1 -0
  7. package/dist/cjs/{form-control-9e4dffd1.js → form-control-8e2ae807.js} +28 -26
  8. package/dist/cjs/form-control-8e2ae807.js.map +1 -0
  9. package/dist/cjs/{index-341df120.js → index-b3257a77.js} +603 -279
  10. package/dist/cjs/index-b3257a77.js.map +1 -0
  11. package/dist/cjs/index.cjs.js +2 -0
  12. package/dist/cjs/index.cjs.js.map +1 -0
  13. package/dist/cjs/loader.cjs.js +6 -3
  14. package/dist/cjs/loader.cjs.js.map +1 -0
  15. package/dist/cjs/{modal-a9679ddf.js → modal-48d42228.js} +43 -41
  16. package/dist/cjs/modal-48d42228.js.map +1 -0
  17. package/dist/cjs/{popover-e3781f5a.js → popover-f743f62b.js} +100 -99
  18. package/dist/cjs/popover-f743f62b.js.map +1 -0
  19. package/dist/cjs/{scroll-5b8676ba.js → scroll-76e6f5d7.js} +59 -57
  20. package/dist/cjs/scroll-76e6f5d7.js.map +1 -0
  21. package/dist/cjs/set-attributes_2.cjs.entry.js +58 -58
  22. package/dist/cjs/set-attributes_2.cjs.entry.js.map +1 -0
  23. package/dist/cjs/six-alert.cjs.entry.js +127 -132
  24. package/dist/cjs/six-alert.cjs.entry.js.map +1 -0
  25. package/dist/cjs/six-avatar.cjs.entry.js +27 -29
  26. package/dist/cjs/six-avatar.cjs.entry.js.map +1 -0
  27. package/dist/cjs/six-badge.cjs.entry.js +26 -27
  28. package/dist/cjs/six-badge.cjs.entry.js.map +1 -0
  29. package/dist/cjs/six-button.cjs.entry.js +96 -98
  30. package/dist/cjs/six-button.cjs.entry.js.map +1 -0
  31. package/dist/cjs/six-card.cjs.entry.js +11 -9
  32. package/dist/cjs/six-card.cjs.entry.js.map +1 -0
  33. package/dist/cjs/six-checkbox.cjs.entry.js +149 -153
  34. package/dist/cjs/six-checkbox.cjs.entry.js.map +1 -0
  35. package/dist/cjs/six-datepicker.cjs.entry.js +1137 -1190
  36. package/dist/cjs/six-datepicker.cjs.entry.js.map +1 -0
  37. package/dist/cjs/six-details.cjs.entry.js +137 -140
  38. package/dist/cjs/six-details.cjs.entry.js.map +1 -0
  39. package/dist/cjs/six-dialog.cjs.entry.js +146 -153
  40. package/dist/cjs/six-dialog.cjs.entry.js.map +1 -0
  41. package/dist/cjs/six-drawer.cjs.entry.js +163 -175
  42. package/dist/cjs/six-drawer.cjs.entry.js.map +1 -0
  43. package/dist/cjs/six-dropdown_3.cjs.entry.js +682 -729
  44. package/dist/cjs/six-dropdown_3.cjs.entry.js.map +1 -0
  45. package/dist/cjs/six-error-page.cjs.entry.js +98 -95
  46. package/dist/cjs/six-error-page.cjs.entry.js.map +1 -0
  47. package/dist/cjs/six-file-list-item.cjs.entry.js +37 -39
  48. package/dist/cjs/six-file-list-item.cjs.entry.js.map +1 -0
  49. package/dist/cjs/six-file-list.cjs.entry.js +11 -9
  50. package/dist/cjs/six-file-list.cjs.entry.js.map +1 -0
  51. package/dist/cjs/six-file-upload.cjs.entry.js +110 -97
  52. package/dist/cjs/six-file-upload.cjs.entry.js.map +1 -0
  53. package/dist/cjs/six-footer.cjs.entry.js +11 -9
  54. package/dist/cjs/six-footer.cjs.entry.js.map +1 -0
  55. package/dist/cjs/six-form.cjs.entry.js +221 -220
  56. package/dist/cjs/six-form.cjs.entry.js.map +1 -0
  57. package/dist/cjs/six-group-label.cjs.entry.js +46 -47
  58. package/dist/cjs/six-group-label.cjs.entry.js.map +1 -0
  59. package/dist/cjs/six-header.cjs.entry.js +150 -150
  60. package/dist/cjs/six-header.cjs.entry.js.map +1 -0
  61. package/dist/cjs/six-icon-button.cjs.entry.js +37 -34
  62. package/dist/cjs/six-icon-button.cjs.entry.js.map +1 -0
  63. package/dist/cjs/six-icon.cjs.entry.js +25 -25
  64. package/dist/cjs/six-icon.cjs.entry.js.map +1 -0
  65. package/dist/cjs/six-input.cjs.entry.js +229 -231
  66. package/dist/cjs/six-input.cjs.entry.js.map +1 -0
  67. package/dist/cjs/six-item-picker.cjs.entry.js +347 -362
  68. package/dist/cjs/six-item-picker.cjs.entry.js.map +1 -0
  69. package/dist/cjs/six-language-switcher.cjs.entry.js +55 -53
  70. package/dist/cjs/six-language-switcher.cjs.entry.js.map +1 -0
  71. package/dist/cjs/six-layout-grid.cjs.entry.js +23 -20
  72. package/dist/cjs/six-layout-grid.cjs.entry.js.map +1 -0
  73. package/dist/cjs/six-main-container.cjs.entry.js +13 -12
  74. package/dist/cjs/six-main-container.cjs.entry.js.map +1 -0
  75. package/dist/cjs/six-menu-divider.cjs.entry.js +11 -9
  76. package/dist/cjs/six-menu-divider.cjs.entry.js.map +1 -0
  77. package/dist/cjs/six-menu-label.cjs.entry.js +11 -9
  78. package/dist/cjs/six-menu-label.cjs.entry.js.map +1 -0
  79. package/dist/cjs/six-picto.cjs.entry.js +15 -16
  80. package/dist/cjs/six-picto.cjs.entry.js.map +1 -0
  81. package/dist/cjs/six-progress-bar.cjs.entry.js +18 -18
  82. package/dist/cjs/six-progress-bar.cjs.entry.js.map +1 -0
  83. package/dist/cjs/six-progress-ring.cjs.entry.js +33 -32
  84. package/dist/cjs/six-progress-ring.cjs.entry.js.map +1 -0
  85. package/dist/cjs/six-radio.cjs.entry.js +120 -122
  86. package/dist/cjs/six-radio.cjs.entry.js.map +1 -0
  87. package/dist/cjs/six-range.cjs.entry.js +188 -199
  88. package/dist/cjs/six-range.cjs.entry.js.map +1 -0
  89. package/dist/cjs/six-root.cjs.entry.js +34 -35
  90. package/dist/cjs/six-root.cjs.entry.js.map +1 -0
  91. package/dist/cjs/six-search-field.cjs.entry.js +43 -44
  92. package/dist/cjs/six-search-field.cjs.entry.js.map +1 -0
  93. package/dist/cjs/six-select.cjs.entry.js +422 -448
  94. package/dist/cjs/six-select.cjs.entry.js.map +1 -0
  95. package/dist/cjs/six-sidebar-item-group.cjs.entry.js +44 -43
  96. package/dist/cjs/six-sidebar-item-group.cjs.entry.js.map +1 -0
  97. package/dist/cjs/six-sidebar-item.cjs.entry.js +18 -19
  98. package/dist/cjs/six-sidebar-item.cjs.entry.js.map +1 -0
  99. package/dist/cjs/six-sidebar.cjs.entry.js +170 -172
  100. package/dist/cjs/six-sidebar.cjs.entry.js.map +1 -0
  101. package/dist/cjs/six-spinner.cjs.entry.js +18 -17
  102. package/dist/cjs/six-spinner.cjs.entry.js.map +1 -0
  103. package/dist/cjs/six-switch.cjs.entry.js +101 -101
  104. package/dist/cjs/six-switch.cjs.entry.js.map +1 -0
  105. package/dist/cjs/six-tab-group.cjs.entry.js +227 -227
  106. package/dist/cjs/six-tab-group.cjs.entry.js.map +1 -0
  107. package/dist/cjs/six-tab-panel.cjs.entry.js +18 -18
  108. package/dist/cjs/six-tab-panel.cjs.entry.js.map +1 -0
  109. package/dist/cjs/six-tab.cjs.entry.js +41 -43
  110. package/dist/cjs/six-tab.cjs.entry.js.map +1 -0
  111. package/dist/cjs/six-table-cell_4.cjs.entry.js +77 -72
  112. package/dist/cjs/six-table-cell_4.cjs.entry.js.map +1 -0
  113. package/dist/cjs/six-table.cjs.entry.js +145 -146
  114. package/dist/cjs/six-table.cjs.entry.js.map +1 -0
  115. package/dist/cjs/six-tag.cjs.entry.js +39 -41
  116. package/dist/cjs/six-tag.cjs.entry.js.map +1 -0
  117. package/dist/cjs/six-textarea.cjs.entry.js +209 -212
  118. package/dist/cjs/six-textarea.cjs.entry.js.map +1 -0
  119. package/dist/cjs/six-tile.cjs.entry.js +87 -90
  120. package/dist/cjs/six-tile.cjs.entry.js.map +1 -0
  121. package/dist/cjs/six-timepicker.cjs.entry.js +441 -490
  122. package/dist/cjs/six-timepicker.cjs.entry.js.map +1 -0
  123. package/dist/cjs/{six-timepicker.types-c58cc88b.js → six-timepicker.types-c19ebff3.js} +45 -43
  124. package/dist/cjs/six-timepicker.types-c19ebff3.js.map +1 -0
  125. package/dist/cjs/six-tooltip.cjs.entry.js +163 -173
  126. package/dist/cjs/six-tooltip.cjs.entry.js.map +1 -0
  127. package/dist/cjs/{slot-8abe833c.js → slot-ad537f24.js} +44 -42
  128. package/dist/cjs/slot-ad537f24.js.map +1 -0
  129. package/dist/cjs/{types-0c28e484.js → types-64878648.js} +14 -12
  130. package/dist/cjs/types-64878648.js.map +1 -0
  131. package/dist/cjs/ui-library.cjs.js +12 -3
  132. package/dist/cjs/ui-library.cjs.js.map +1 -0
  133. package/dist/collection/collection-manifest.json +2 -2
  134. package/dist/collection/components/six-alert/six-alert.js +368 -366
  135. package/dist/collection/components/six-alert/six-alert.js.map +1 -0
  136. package/dist/collection/components/six-avatar/six-avatar.js +131 -131
  137. package/dist/collection/components/six-avatar/six-avatar.js.map +1 -0
  138. package/dist/collection/components/six-badge/six-badge.js +104 -101
  139. package/dist/collection/components/six-badge/six-badge.js.map +1 -0
  140. package/dist/collection/components/six-button/six-button.js +464 -466
  141. package/dist/collection/components/six-button/six-button.js.map +1 -0
  142. package/dist/collection/components/six-card/six-card.js +25 -21
  143. package/dist/collection/components/six-card/six-card.js.map +1 -0
  144. package/dist/collection/components/six-checkbox/six-checkbox.js +541 -550
  145. package/dist/collection/components/six-checkbox/six-checkbox.js.map +1 -0
  146. package/dist/collection/components/six-datepicker/components/day-selection.js +12 -13
  147. package/dist/collection/components/six-datepicker/components/day-selection.js.map +1 -0
  148. package/dist/collection/components/six-datepicker/components/month-selection.js +12 -12
  149. package/dist/collection/components/six-datepicker/components/month-selection.js.map +1 -0
  150. package/dist/collection/components/six-datepicker/components/year-selection.js +10 -10
  151. package/dist/collection/components/six-datepicker/components/year-selection.js.map +1 -0
  152. package/dist/collection/components/six-datepicker/six-date-formats.js +24 -23
  153. package/dist/collection/components/six-datepicker/six-date-formats.js.map +1 -0
  154. package/dist/collection/components/six-datepicker/six-datepicker.js +1271 -1343
  155. package/dist/collection/components/six-datepicker/six-datepicker.js.map +1 -0
  156. package/dist/collection/components/six-datepicker/test/six-datepicker.test-helpers.js +17 -16
  157. package/dist/collection/components/six-datepicker/test/six-datepicker.test-helpers.js.map +1 -0
  158. package/dist/collection/components/six-details/six-details.js +434 -432
  159. package/dist/collection/components/six-details/six-details.js.map +1 -0
  160. package/dist/collection/components/six-dialog/six-dialog.js +397 -401
  161. package/dist/collection/components/six-dialog/six-dialog.js.map +1 -0
  162. package/dist/collection/components/six-drawer/six-drawer.js +449 -458
  163. package/dist/collection/components/six-drawer/six-drawer.js.map +1 -0
  164. package/dist/collection/components/six-dropdown/six-dropdown.js +919 -939
  165. package/dist/collection/components/six-dropdown/six-dropdown.js.map +1 -0
  166. package/dist/collection/components/six-error-page/six-error-page.js +203 -199
  167. package/dist/collection/components/six-error-page/six-error-page.js.map +1 -0
  168. package/dist/collection/components/six-file-list/six-file-list.js +24 -20
  169. package/dist/collection/components/six-file-list/six-file-list.js.map +1 -0
  170. package/dist/collection/components/six-file-list-item/six-file-list-item.js +204 -203
  171. package/dist/collection/components/six-file-list-item/six-file-list-item.js.map +1 -0
  172. package/dist/collection/components/six-file-upload/six-file-upload.js +307 -272
  173. package/dist/collection/components/six-file-upload/six-file-upload.js.map +1 -0
  174. package/dist/collection/components/six-footer/six-footer.js +25 -21
  175. package/dist/collection/components/six-footer/six-footer.js.map +1 -0
  176. package/dist/collection/components/six-form/six-form.js +419 -408
  177. package/dist/collection/components/six-form/six-form.js.map +1 -0
  178. package/dist/collection/components/six-group-label/six-group-label.js +173 -166
  179. package/dist/collection/components/six-group-label/six-group-label.js.map +1 -0
  180. package/dist/collection/components/six-header/six-header.js +412 -420
  181. package/dist/collection/components/six-header/six-header.js.map +1 -0
  182. package/dist/collection/components/six-icon/six-icon.js +81 -77
  183. package/dist/collection/components/six-icon/six-icon.js.map +1 -0
  184. package/dist/collection/components/six-icon-button/six-icon-button.js +146 -142
  185. package/dist/collection/components/six-icon-button/six-icon-button.js.map +1 -0
  186. package/dist/collection/components/six-input/six-input.js +1140 -1141
  187. package/dist/collection/components/six-input/six-input.js.map +1 -0
  188. package/dist/collection/components/six-item-picker/six-item-picker.js +681 -688
  189. package/dist/collection/components/six-item-picker/six-item-picker.js.map +1 -0
  190. package/dist/collection/components/six-item-picker/types.js +14 -13
  191. package/dist/collection/components/six-item-picker/types.js.map +1 -0
  192. package/dist/collection/components/six-language-switcher/six-language-switcher.js +139 -128
  193. package/dist/collection/components/six-language-switcher/six-language-switcher.js.map +1 -0
  194. package/dist/collection/components/six-layout-grid/six-layout-grid.js +63 -52
  195. package/dist/collection/components/six-layout-grid/six-layout-grid.js.map +1 -0
  196. package/dist/collection/components/six-main-container/six-main-container.js +55 -53
  197. package/dist/collection/components/six-main-container/six-main-container.js.map +1 -0
  198. package/dist/collection/components/six-menu/six-menu.js +398 -406
  199. package/dist/collection/components/six-menu/six-menu.js.map +1 -0
  200. package/dist/collection/components/six-menu-divider/six-menu-divider.js +27 -22
  201. package/dist/collection/components/six-menu-divider/six-menu-divider.js.map +1 -0
  202. package/dist/collection/components/six-menu-item/six-menu-item.js +198 -177
  203. package/dist/collection/components/six-menu-item/six-menu-item.js.map +1 -0
  204. package/dist/collection/components/six-menu-label/six-menu-label.js +29 -25
  205. package/dist/collection/components/six-menu-label/six-menu-label.js.map +1 -0
  206. package/dist/collection/components/six-picto/six-picto.js +53 -50
  207. package/dist/collection/components/six-picto/six-picto.js.map +1 -0
  208. package/dist/collection/components/six-progress-bar/six-progress-bar.js +80 -77
  209. package/dist/collection/components/six-progress-bar/six-progress-bar.js.map +1 -0
  210. package/dist/collection/components/six-progress-ring/six-progress-ring.js +114 -111
  211. package/dist/collection/components/six-progress-ring/six-progress-ring.js.map +1 -0
  212. package/dist/collection/components/six-radio/six-radio.js +412 -410
  213. package/dist/collection/components/six-radio/six-radio.js.map +1 -0
  214. package/dist/collection/components/six-range/six-range.js +619 -620
  215. package/dist/collection/components/six-range/six-range.js.map +1 -0
  216. package/dist/collection/components/six-root/six-root.js +165 -167
  217. package/dist/collection/components/six-root/six-root.js.map +1 -0
  218. package/dist/collection/components/six-search-field/six-search-field.js +177 -171
  219. package/dist/collection/components/six-search-field/six-search-field.js.map +1 -0
  220. package/dist/collection/components/six-select/six-select.css +1 -2
  221. package/dist/collection/components/six-select/six-select.js +1081 -1105
  222. package/dist/collection/components/six-select/six-select.js.map +1 -0
  223. package/dist/collection/components/six-sidebar/six-sidebar.js +464 -455
  224. package/dist/collection/components/six-sidebar/six-sidebar.js.map +1 -0
  225. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js +92 -89
  226. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js.map +1 -0
  227. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js +159 -158
  228. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js.map +1 -0
  229. package/dist/collection/components/six-spinner/six-spinner.js +58 -55
  230. package/dist/collection/components/six-spinner/six-spinner.js.map +1 -0
  231. package/dist/collection/components/six-stage-indicator/six-stage-indicator.js +49 -46
  232. package/dist/collection/components/six-stage-indicator/six-stage-indicator.js.map +1 -0
  233. package/dist/collection/components/six-switch/six-switch.js +401 -393
  234. package/dist/collection/components/six-switch/six-switch.js.map +1 -0
  235. package/dist/collection/components/six-tab/six-tab.js +202 -198
  236. package/dist/collection/components/six-tab/six-tab.js.map +1 -0
  237. package/dist/collection/components/six-tab-group/six-tab-group.js +368 -362
  238. package/dist/collection/components/six-tab-group/six-tab-group.js.map +1 -0
  239. package/dist/collection/components/six-tab-panel/six-tab-panel.js +78 -75
  240. package/dist/collection/components/six-tab-panel/six-tab-panel.js.map +1 -0
  241. package/dist/collection/components/six-table/six-table.js +219 -209
  242. package/dist/collection/components/six-table/six-table.js.map +1 -0
  243. package/dist/collection/components/six-table/test/helpers.js +14 -13
  244. package/dist/collection/components/six-table/test/helpers.js.map +1 -0
  245. package/dist/collection/components/six-table/types.js +9 -8
  246. package/dist/collection/components/six-table/types.js.map +1 -0
  247. package/dist/collection/components/six-table/util/filter-by.js +34 -34
  248. package/dist/collection/components/six-table/util/filter-by.js.map +1 -0
  249. package/dist/collection/components/six-table/util/from-data.js +32 -33
  250. package/dist/collection/components/six-table/util/from-data.js.map +1 -0
  251. package/dist/collection/components/six-table/util/is.js +4 -3
  252. package/dist/collection/components/six-table/util/is.js.map +1 -0
  253. package/dist/collection/components/six-table/util/quick-filter-by.js +14 -13
  254. package/dist/collection/components/six-table/util/quick-filter-by.js.map +1 -0
  255. package/dist/collection/components/six-table/util/sort-by.js +25 -25
  256. package/dist/collection/components/six-table/util/sort-by.js.map +1 -0
  257. package/dist/collection/components/six-table-cell/six-table-cell.js +25 -21
  258. package/dist/collection/components/six-table-cell/six-table-cell.js.map +1 -0
  259. package/dist/collection/components/six-table-header/six-table-header.js +25 -21
  260. package/dist/collection/components/six-table-header/six-table-header.js.map +1 -0
  261. package/dist/collection/components/six-table-header-cell/get-next-state.js +7 -7
  262. package/dist/collection/components/six-table-header-cell/get-next-state.js.map +1 -0
  263. package/dist/collection/components/six-table-header-cell/icons.js +12 -12
  264. package/dist/collection/components/six-table-header-cell/icons.js.map +1 -0
  265. package/dist/collection/components/six-table-header-cell/six-table-header-cell.js +179 -174
  266. package/dist/collection/components/six-table-header-cell/six-table-header-cell.js.map +1 -0
  267. package/dist/collection/components/six-table-header-cell/types.js +2 -13
  268. package/dist/collection/components/six-table-header-cell/types.js.map +1 -0
  269. package/dist/collection/components/six-table-header-cell/util/create-model.js +7 -6
  270. package/dist/collection/components/six-table-header-cell/util/create-model.js.map +1 -0
  271. package/dist/collection/components/six-table-header-cell/util/get-next-state.js +7 -7
  272. package/dist/collection/components/six-table-header-cell/util/get-next-state.js.map +1 -0
  273. package/dist/collection/components/six-table-row/six-table-row.js +25 -21
  274. package/dist/collection/components/six-table-row/six-table-row.js.map +1 -0
  275. package/dist/collection/components/six-tag/six-tag.js +159 -157
  276. package/dist/collection/components/six-tag/six-tag.js.map +1 -0
  277. package/dist/collection/components/six-textarea/six-textarea.js +920 -912
  278. package/dist/collection/components/six-textarea/six-textarea.js.map +1 -0
  279. package/dist/collection/components/six-tile/six-tile.js +314 -315
  280. package/dist/collection/components/six-tile/six-tile.js.map +1 -0
  281. package/dist/collection/components/six-timepicker/six-time-format.js +15 -14
  282. package/dist/collection/components/six-timepicker/six-time-format.js.map +1 -0
  283. package/dist/collection/components/six-timepicker/six-timepicker.js +936 -980
  284. package/dist/collection/components/six-timepicker/six-timepicker.js.map +1 -0
  285. package/dist/collection/components/six-timepicker/six-timepicker.types.js +41 -40
  286. package/dist/collection/components/six-timepicker/six-timepicker.types.js.map +1 -0
  287. package/dist/collection/components/six-tooltip/six-tooltip.js +432 -435
  288. package/dist/collection/components/six-tooltip/six-tooltip.js.map +1 -0
  289. package/dist/collection/functional-components/form-control/form-control.js +23 -28
  290. package/dist/collection/functional-components/form-control/form-control.js.map +1 -0
  291. package/dist/collection/index.js +2 -1
  292. package/dist/collection/index.js.map +1 -0
  293. package/dist/collection/testUtil/delay.js +4 -3
  294. package/dist/collection/testUtil/delay.js.map +1 -0
  295. package/dist/collection/utils/as-array.js +2 -1
  296. package/dist/collection/utils/as-array.js.map +1 -0
  297. package/dist/collection/utils/date-util.js +713 -712
  298. package/dist/collection/utils/date-util.js.map +1 -0
  299. package/dist/collection/utils/event-listeners.js +40 -39
  300. package/dist/collection/utils/event-listeners.js.map +1 -0
  301. package/dist/collection/utils/execution-control.js +39 -38
  302. package/dist/collection/utils/execution-control.js.map +1 -0
  303. package/dist/collection/utils/focus-visible.js +42 -41
  304. package/dist/collection/utils/focus-visible.js.map +1 -0
  305. package/dist/collection/utils/matchers.js +3 -2
  306. package/dist/collection/utils/matchers.js.map +1 -0
  307. package/dist/collection/utils/modal.js +29 -28
  308. package/dist/collection/utils/modal.js.map +1 -0
  309. package/dist/collection/utils/offset.js +14 -13
  310. package/dist/collection/utils/offset.js.map +1 -0
  311. package/dist/collection/utils/popover.js +114 -113
  312. package/dist/collection/utils/popover.js.map +1 -0
  313. package/dist/collection/utils/scroll.js +48 -47
  314. package/dist/collection/utils/scroll.js.map +1 -0
  315. package/dist/collection/utils/slot.js +60 -59
  316. package/dist/collection/utils/slot.js.map +1 -0
  317. package/dist/collection/utils/support.js +16 -15
  318. package/dist/collection/utils/support.js.map +1 -0
  319. package/dist/collection/utils/tabbable.js +23 -22
  320. package/dist/collection/utils/tabbable.js.map +1 -0
  321. package/dist/collection/utils/testing.js +39 -38
  322. package/dist/collection/utils/testing.js.map +1 -0
  323. package/dist/collection/utils/time.util.js +75 -74
  324. package/dist/collection/utils/time.util.js.map +1 -0
  325. package/dist/collection/utils/type-check.js +6 -5
  326. package/dist/collection/utils/type-check.js.map +1 -0
  327. package/dist/collection/utils/types.js +2 -1
  328. package/dist/collection/utils/types.js.map +1 -0
  329. package/dist/collection/wrappers/set-attributes/set-attributes.js +72 -68
  330. package/dist/collection/wrappers/set-attributes/set-attributes.js.map +1 -0
  331. package/dist/{esm/event-listeners-1bef934e.js → components/event-listeners.js} +40 -38
  332. package/dist/components/event-listeners.js.map +1 -0
  333. package/dist/{esm/execution-control-235f5126.js → components/execution-control.js} +37 -35
  334. package/dist/components/execution-control.js.map +1 -0
  335. package/dist/{esm/focus-visible-4b7946aa.js → components/focus-visible.js} +42 -40
  336. package/dist/components/focus-visible.js.map +1 -0
  337. package/dist/components/form-control.js +32 -0
  338. package/dist/components/form-control.js.map +1 -0
  339. package/dist/components/index.d.ts +39 -0
  340. package/dist/components/index.js +132 -0
  341. package/dist/components/index.js.map +1 -0
  342. package/dist/{esm/modal-e5709f6b.js → components/modal.js} +43 -41
  343. package/dist/components/modal.js.map +1 -0
  344. package/dist/{esm/popover-5a51f84d.js → components/popover.js} +100 -99
  345. package/dist/components/popover.js.map +1 -0
  346. package/dist/{esm/scroll-99b214c2.js → components/scroll.js} +59 -57
  347. package/dist/components/scroll.js.map +1 -0
  348. package/dist/components/set-attributes.d.ts +11 -0
  349. package/dist/components/set-attributes.js +8 -0
  350. package/dist/components/set-attributes.js.map +1 -0
  351. package/dist/components/set-attributes2.js +69 -0
  352. package/dist/components/set-attributes2.js.map +1 -0
  353. package/dist/components/six-alert.d.ts +11 -0
  354. package/dist/components/six-alert.js +172 -0
  355. package/dist/components/six-alert.js.map +1 -0
  356. package/dist/components/six-avatar.d.ts +11 -0
  357. package/dist/components/six-avatar.js +63 -0
  358. package/dist/components/six-avatar.js.map +1 -0
  359. package/dist/components/six-badge.d.ts +11 -0
  360. package/dist/components/six-badge.js +54 -0
  361. package/dist/components/six-badge.js.map +1 -0
  362. package/dist/components/six-button.d.ts +11 -0
  363. package/dist/components/six-button.js +147 -0
  364. package/dist/components/six-button.js.map +1 -0
  365. package/dist/components/six-card.d.ts +11 -0
  366. package/dist/components/six-card.js +35 -0
  367. package/dist/components/six-card.js.map +1 -0
  368. package/dist/components/six-checkbox.d.ts +11 -0
  369. package/dist/components/six-checkbox.js +193 -0
  370. package/dist/components/six-checkbox.js.map +1 -0
  371. package/dist/components/six-datepicker.d.ts +11 -0
  372. package/dist/components/six-datepicker.js +1229 -0
  373. package/dist/components/six-datepicker.js.map +1 -0
  374. package/dist/components/six-details.d.ts +11 -0
  375. package/dist/components/six-details.js +8 -0
  376. package/dist/components/six-details.js.map +1 -0
  377. package/dist/components/six-details2.js +176 -0
  378. package/dist/components/six-details2.js.map +1 -0
  379. package/dist/components/six-dialog.d.ts +11 -0
  380. package/dist/components/six-dialog.js +190 -0
  381. package/dist/components/six-dialog.js.map +1 -0
  382. package/dist/components/six-drawer.d.ts +11 -0
  383. package/dist/components/six-drawer.js +209 -0
  384. package/dist/components/six-drawer.js.map +1 -0
  385. package/dist/components/six-dropdown.d.ts +11 -0
  386. package/dist/components/six-dropdown.js +8 -0
  387. package/dist/components/six-dropdown.js.map +1 -0
  388. package/dist/components/six-dropdown2.js +499 -0
  389. package/dist/components/six-dropdown2.js.map +1 -0
  390. package/dist/components/six-error-page.d.ts +11 -0
  391. package/dist/components/six-error-page.js +134 -0
  392. package/dist/components/six-error-page.js.map +1 -0
  393. package/dist/components/six-file-list-item.d.ts +11 -0
  394. package/dist/components/six-file-list-item.js +74 -0
  395. package/dist/components/six-file-list-item.js.map +1 -0
  396. package/dist/components/six-file-list.d.ts +11 -0
  397. package/dist/components/six-file-list.js +35 -0
  398. package/dist/components/six-file-list.js.map +1 -0
  399. package/dist/components/six-file-upload.d.ts +11 -0
  400. package/dist/components/six-file-upload.js +147 -0
  401. package/dist/components/six-file-upload.js.map +1 -0
  402. package/dist/components/six-footer.d.ts +11 -0
  403. package/dist/components/six-footer.js +35 -0
  404. package/dist/components/six-footer.js.map +1 -0
  405. package/dist/components/six-form.d.ts +11 -0
  406. package/dist/components/six-form.js +252 -0
  407. package/dist/components/six-form.js.map +1 -0
  408. package/dist/components/six-group-label.d.ts +11 -0
  409. package/dist/components/six-group-label.js +78 -0
  410. package/dist/components/six-group-label.js.map +1 -0
  411. package/dist/components/six-header.d.ts +11 -0
  412. package/dist/components/six-header.js +219 -0
  413. package/dist/components/six-header.js.map +1 -0
  414. package/dist/components/six-icon-button.d.ts +11 -0
  415. package/dist/components/six-icon-button.js +8 -0
  416. package/dist/components/six-icon-button.js.map +1 -0
  417. package/dist/components/six-icon-button2.js +70 -0
  418. package/dist/components/six-icon-button2.js.map +1 -0
  419. package/dist/components/six-icon.d.ts +11 -0
  420. package/dist/components/six-icon.js +8 -0
  421. package/dist/components/six-icon.js.map +1 -0
  422. package/dist/components/six-icon2.js +49 -0
  423. package/dist/components/six-icon2.js.map +1 -0
  424. package/dist/components/six-input.d.ts +11 -0
  425. package/dist/components/six-input.js +8 -0
  426. package/dist/components/six-input.js.map +1 -0
  427. package/dist/components/six-input2.js +303 -0
  428. package/dist/components/six-input2.js.map +1 -0
  429. package/dist/components/six-item-picker.d.ts +11 -0
  430. package/dist/components/six-item-picker.js +8 -0
  431. package/dist/components/six-item-picker.js.map +1 -0
  432. package/dist/components/six-item-picker2.js +404 -0
  433. package/dist/components/six-item-picker2.js.map +1 -0
  434. package/dist/components/six-language-switcher.d.ts +11 -0
  435. package/dist/components/six-language-switcher.js +82 -0
  436. package/dist/components/six-language-switcher.js.map +1 -0
  437. package/dist/components/six-layout-grid.d.ts +11 -0
  438. package/dist/components/six-layout-grid.js +49 -0
  439. package/dist/components/six-layout-grid.js.map +1 -0
  440. package/dist/components/six-main-container.d.ts +11 -0
  441. package/dist/components/six-main-container.js +39 -0
  442. package/dist/components/six-main-container.js.map +1 -0
  443. package/dist/components/six-menu-divider.d.ts +11 -0
  444. package/dist/components/six-menu-divider.js +35 -0
  445. package/dist/components/six-menu-divider.js.map +1 -0
  446. package/dist/components/six-menu-item.d.ts +11 -0
  447. package/dist/components/six-menu-item.js +8 -0
  448. package/dist/components/six-menu-item.js.map +1 -0
  449. package/dist/components/six-menu-item2.js +86 -0
  450. package/dist/components/six-menu-item2.js.map +1 -0
  451. package/dist/components/six-menu-label.d.ts +11 -0
  452. package/dist/components/six-menu-label.js +35 -0
  453. package/dist/components/six-menu-label.js.map +1 -0
  454. package/dist/components/six-menu.d.ts +11 -0
  455. package/dist/components/six-menu.js +8 -0
  456. package/dist/components/six-menu.js.map +1 -0
  457. package/dist/components/six-menu2.js +252 -0
  458. package/dist/components/six-menu2.js.map +1 -0
  459. package/dist/components/six-picto.d.ts +11 -0
  460. package/dist/components/six-picto.js +8 -0
  461. package/dist/components/six-picto.js.map +1 -0
  462. package/dist/{custom-elements/index.js → components/six-picto2.js} +30 -9749
  463. package/dist/components/six-picto2.js.map +1 -0
  464. package/dist/components/six-progress-bar.d.ts +11 -0
  465. package/dist/components/six-progress-bar.js +45 -0
  466. package/dist/components/six-progress-bar.js.map +1 -0
  467. package/dist/components/six-progress-ring.d.ts +11 -0
  468. package/dist/components/six-progress-ring.js +61 -0
  469. package/dist/components/six-progress-ring.js.map +1 -0
  470. package/dist/components/six-radio.d.ts +11 -0
  471. package/dist/components/six-radio.js +157 -0
  472. package/dist/components/six-radio.js.map +1 -0
  473. package/dist/components/six-range.d.ts +11 -0
  474. package/dist/components/six-range.js +236 -0
  475. package/dist/components/six-range.js.map +1 -0
  476. package/dist/components/six-root.d.ts +11 -0
  477. package/dist/components/six-root.js +82 -0
  478. package/dist/components/six-root.js.map +1 -0
  479. package/dist/components/six-search-field.d.ts +11 -0
  480. package/dist/components/six-search-field.js +85 -0
  481. package/dist/components/six-search-field.js.map +1 -0
  482. package/dist/components/six-select.d.ts +11 -0
  483. package/dist/components/six-select.js +526 -0
  484. package/dist/components/six-select.js.map +1 -0
  485. package/dist/components/six-sidebar-item-group.d.ts +11 -0
  486. package/dist/components/six-sidebar-item-group.js +88 -0
  487. package/dist/components/six-sidebar-item-group.js.map +1 -0
  488. package/dist/components/six-sidebar-item.d.ts +11 -0
  489. package/dist/components/six-sidebar-item.js +46 -0
  490. package/dist/components/six-sidebar-item.js.map +1 -0
  491. package/dist/components/six-sidebar.d.ts +11 -0
  492. package/dist/components/six-sidebar.js +205 -0
  493. package/dist/components/six-sidebar.js.map +1 -0
  494. package/dist/components/six-spinner.d.ts +11 -0
  495. package/dist/components/six-spinner.js +8 -0
  496. package/dist/components/six-spinner.js.map +1 -0
  497. package/dist/components/six-spinner2.js +41 -0
  498. package/dist/components/six-spinner2.js.map +1 -0
  499. package/dist/components/six-stage-indicator.d.ts +11 -0
  500. package/dist/components/six-stage-indicator.js +8 -0
  501. package/dist/components/six-stage-indicator.js.map +1 -0
  502. package/dist/components/six-stage-indicator2.js +41 -0
  503. package/dist/components/six-stage-indicator2.js.map +1 -0
  504. package/dist/components/six-switch.d.ts +11 -0
  505. package/dist/components/six-switch.js +139 -0
  506. package/dist/components/six-switch.js.map +1 -0
  507. package/dist/components/six-tab-group.d.ts +11 -0
  508. package/dist/components/six-tab-group.js +268 -0
  509. package/dist/components/six-tab-group.js.map +1 -0
  510. package/dist/components/six-tab-panel.d.ts +11 -0
  511. package/dist/components/six-tab-panel.js +45 -0
  512. package/dist/components/six-tab-panel.js.map +1 -0
  513. package/dist/components/six-tab.d.ts +11 -0
  514. package/dist/components/six-tab.js +84 -0
  515. package/dist/components/six-tab.js.map +1 -0
  516. package/dist/components/six-table-cell.d.ts +11 -0
  517. package/dist/components/six-table-cell.js +8 -0
  518. package/dist/components/six-table-cell.js.map +1 -0
  519. package/dist/components/six-table-cell2.js +32 -0
  520. package/dist/components/six-table-cell2.js.map +1 -0
  521. package/dist/components/six-table-header-cell.d.ts +11 -0
  522. package/dist/components/six-table-header-cell.js +8 -0
  523. package/dist/components/six-table-header-cell.js.map +1 -0
  524. package/dist/components/six-table-header-cell2.js +120 -0
  525. package/dist/components/six-table-header-cell2.js.map +1 -0
  526. package/dist/components/six-table-header.d.ts +11 -0
  527. package/dist/components/six-table-header.js +8 -0
  528. package/dist/components/six-table-header.js.map +1 -0
  529. package/dist/components/six-table-header2.js +32 -0
  530. package/dist/components/six-table-header2.js.map +1 -0
  531. package/dist/components/six-table-row.d.ts +11 -0
  532. package/dist/components/six-table-row.js +8 -0
  533. package/dist/components/six-table-row.js.map +1 -0
  534. package/dist/components/six-table-row2.js +32 -0
  535. package/dist/components/six-table-row2.js.map +1 -0
  536. package/dist/components/six-table.d.ts +11 -0
  537. package/dist/components/six-table.js +252 -0
  538. package/dist/components/six-table.js.map +1 -0
  539. package/dist/components/six-tag.d.ts +11 -0
  540. package/dist/components/six-tag.js +8 -0
  541. package/dist/components/six-tag.js.map +1 -0
  542. package/dist/components/six-tag2.js +77 -0
  543. package/dist/components/six-tag2.js.map +1 -0
  544. package/dist/components/six-textarea.d.ts +11 -0
  545. package/dist/components/six-textarea.js +269 -0
  546. package/dist/components/six-textarea.js.map +1 -0
  547. package/dist/components/six-tile.d.ts +11 -0
  548. package/dist/components/six-tile.js +142 -0
  549. package/dist/components/six-tile.js.map +1 -0
  550. package/dist/components/six-timepicker.d.ts +11 -0
  551. package/dist/components/six-timepicker.js +8 -0
  552. package/dist/components/six-timepicker.js.map +1 -0
  553. package/dist/components/six-timepicker2.js +559 -0
  554. package/dist/components/six-timepicker2.js.map +1 -0
  555. package/dist/components/six-tooltip.d.ts +11 -0
  556. package/dist/components/six-tooltip.js +8 -0
  557. package/dist/components/six-tooltip.js.map +1 -0
  558. package/dist/components/six-tooltip2.js +194 -0
  559. package/dist/components/six-tooltip2.js.map +1 -0
  560. package/dist/{esm/slot-5253e199.js → components/slot.js} +44 -42
  561. package/dist/components/slot.js.map +1 -0
  562. package/dist/components.d.ts +27 -0
  563. package/dist/components.json +61 -28
  564. package/dist/esm/event-listeners-570a24ea.js +43 -0
  565. package/dist/esm/event-listeners-570a24ea.js.map +1 -0
  566. package/dist/esm/execution-control-1a60d709.js +40 -0
  567. package/dist/esm/execution-control-1a60d709.js.map +1 -0
  568. package/dist/esm/focus-visible-97933ea9.js +45 -0
  569. package/dist/esm/focus-visible-97933ea9.js.map +1 -0
  570. package/dist/esm/{form-control-17478ad2.js → form-control-bdd1478a.js} +28 -26
  571. package/dist/esm/form-control-bdd1478a.js.map +1 -0
  572. package/dist/esm/{index-a2605a62.js → index-96b1af5d.js} +603 -279
  573. package/dist/esm/index-96b1af5d.js.map +1 -0
  574. package/dist/esm/index.js +2 -0
  575. package/dist/esm/index.js.map +1 -0
  576. package/dist/esm/loader.js +6 -3
  577. package/dist/esm/loader.js.map +1 -0
  578. package/dist/esm/modal-5ebdc320.js +48 -0
  579. package/dist/esm/modal-5ebdc320.js.map +1 -0
  580. package/dist/esm/polyfills/core-js.js +0 -0
  581. package/dist/esm/polyfills/css-shim.js +1 -1
  582. package/dist/esm/polyfills/dom.js +0 -0
  583. package/dist/esm/polyfills/es5-html-element.js +0 -0
  584. package/dist/esm/polyfills/index.js +0 -0
  585. package/dist/esm/polyfills/system.js +0 -0
  586. package/dist/esm/popover-bd2c2fca.js +1897 -0
  587. package/dist/esm/popover-bd2c2fca.js.map +1 -0
  588. package/dist/esm/scroll-180b53fd.js +64 -0
  589. package/dist/esm/scroll-180b53fd.js.map +1 -0
  590. package/dist/esm/set-attributes_2.entry.js +58 -58
  591. package/dist/esm/set-attributes_2.entry.js.map +1 -0
  592. package/dist/esm/six-alert.entry.js +127 -132
  593. package/dist/esm/six-alert.entry.js.map +1 -0
  594. package/dist/esm/six-avatar.entry.js +27 -29
  595. package/dist/esm/six-avatar.entry.js.map +1 -0
  596. package/dist/esm/six-badge.entry.js +26 -27
  597. package/dist/esm/six-badge.entry.js.map +1 -0
  598. package/dist/esm/six-button.entry.js +96 -98
  599. package/dist/esm/six-button.entry.js.map +1 -0
  600. package/dist/esm/six-card.entry.js +11 -9
  601. package/dist/esm/six-card.entry.js.map +1 -0
  602. package/dist/esm/six-checkbox.entry.js +149 -153
  603. package/dist/esm/six-checkbox.entry.js.map +1 -0
  604. package/dist/esm/six-datepicker.entry.js +1137 -1190
  605. package/dist/esm/six-datepicker.entry.js.map +1 -0
  606. package/dist/esm/six-details.entry.js +137 -140
  607. package/dist/esm/six-details.entry.js.map +1 -0
  608. package/dist/esm/six-dialog.entry.js +146 -153
  609. package/dist/esm/six-dialog.entry.js.map +1 -0
  610. package/dist/esm/six-drawer.entry.js +163 -175
  611. package/dist/esm/six-drawer.entry.js.map +1 -0
  612. package/dist/esm/six-dropdown_3.entry.js +682 -729
  613. package/dist/esm/six-dropdown_3.entry.js.map +1 -0
  614. package/dist/esm/six-error-page.entry.js +98 -95
  615. package/dist/esm/six-error-page.entry.js.map +1 -0
  616. package/dist/esm/six-file-list-item.entry.js +37 -39
  617. package/dist/esm/six-file-list-item.entry.js.map +1 -0
  618. package/dist/esm/six-file-list.entry.js +11 -9
  619. package/dist/esm/six-file-list.entry.js.map +1 -0
  620. package/dist/esm/six-file-upload.entry.js +110 -97
  621. package/dist/esm/six-file-upload.entry.js.map +1 -0
  622. package/dist/esm/six-footer.entry.js +11 -9
  623. package/dist/esm/six-footer.entry.js.map +1 -0
  624. package/dist/esm/six-form.entry.js +221 -220
  625. package/dist/esm/six-form.entry.js.map +1 -0
  626. package/dist/esm/six-group-label.entry.js +46 -47
  627. package/dist/esm/six-group-label.entry.js.map +1 -0
  628. package/dist/esm/six-header.entry.js +150 -150
  629. package/dist/esm/six-header.entry.js.map +1 -0
  630. package/dist/esm/six-icon-button.entry.js +37 -34
  631. package/dist/esm/six-icon-button.entry.js.map +1 -0
  632. package/dist/esm/six-icon.entry.js +25 -25
  633. package/dist/esm/six-icon.entry.js.map +1 -0
  634. package/dist/esm/six-input.entry.js +229 -231
  635. package/dist/esm/six-input.entry.js.map +1 -0
  636. package/dist/esm/six-item-picker.entry.js +347 -362
  637. package/dist/esm/six-item-picker.entry.js.map +1 -0
  638. package/dist/esm/six-language-switcher.entry.js +55 -53
  639. package/dist/esm/six-language-switcher.entry.js.map +1 -0
  640. package/dist/esm/six-layout-grid.entry.js +23 -20
  641. package/dist/esm/six-layout-grid.entry.js.map +1 -0
  642. package/dist/esm/six-main-container.entry.js +13 -12
  643. package/dist/esm/six-main-container.entry.js.map +1 -0
  644. package/dist/esm/six-menu-divider.entry.js +11 -9
  645. package/dist/esm/six-menu-divider.entry.js.map +1 -0
  646. package/dist/esm/six-menu-label.entry.js +11 -9
  647. package/dist/esm/six-menu-label.entry.js.map +1 -0
  648. package/dist/esm/six-picto.entry.js +15 -16
  649. package/dist/esm/six-picto.entry.js.map +1 -0
  650. package/dist/esm/six-progress-bar.entry.js +18 -18
  651. package/dist/esm/six-progress-bar.entry.js.map +1 -0
  652. package/dist/esm/six-progress-ring.entry.js +33 -32
  653. package/dist/esm/six-progress-ring.entry.js.map +1 -0
  654. package/dist/esm/six-radio.entry.js +120 -122
  655. package/dist/esm/six-radio.entry.js.map +1 -0
  656. package/dist/esm/six-range.entry.js +188 -199
  657. package/dist/esm/six-range.entry.js.map +1 -0
  658. package/dist/esm/six-root.entry.js +34 -35
  659. package/dist/esm/six-root.entry.js.map +1 -0
  660. package/dist/esm/six-search-field.entry.js +43 -44
  661. package/dist/esm/six-search-field.entry.js.map +1 -0
  662. package/dist/esm/six-select.entry.js +422 -448
  663. package/dist/esm/six-select.entry.js.map +1 -0
  664. package/dist/esm/six-sidebar-item-group.entry.js +44 -43
  665. package/dist/esm/six-sidebar-item-group.entry.js.map +1 -0
  666. package/dist/esm/six-sidebar-item.entry.js +18 -19
  667. package/dist/esm/six-sidebar-item.entry.js.map +1 -0
  668. package/dist/esm/six-sidebar.entry.js +170 -172
  669. package/dist/esm/six-sidebar.entry.js.map +1 -0
  670. package/dist/esm/six-spinner.entry.js +18 -17
  671. package/dist/esm/six-spinner.entry.js.map +1 -0
  672. package/dist/esm/six-switch.entry.js +101 -101
  673. package/dist/esm/six-switch.entry.js.map +1 -0
  674. package/dist/esm/six-tab-group.entry.js +227 -227
  675. package/dist/esm/six-tab-group.entry.js.map +1 -0
  676. package/dist/esm/six-tab-panel.entry.js +18 -18
  677. package/dist/esm/six-tab-panel.entry.js.map +1 -0
  678. package/dist/esm/six-tab.entry.js +41 -43
  679. package/dist/esm/six-tab.entry.js.map +1 -0
  680. package/dist/esm/six-table-cell_4.entry.js +77 -72
  681. package/dist/esm/six-table-cell_4.entry.js.map +1 -0
  682. package/dist/esm/six-table.entry.js +145 -146
  683. package/dist/esm/six-table.entry.js.map +1 -0
  684. package/dist/esm/six-tag.entry.js +39 -41
  685. package/dist/esm/six-tag.entry.js.map +1 -0
  686. package/dist/esm/six-textarea.entry.js +209 -212
  687. package/dist/esm/six-textarea.entry.js.map +1 -0
  688. package/dist/esm/six-tile.entry.js +87 -90
  689. package/dist/esm/six-tile.entry.js.map +1 -0
  690. package/dist/esm/six-timepicker.entry.js +441 -490
  691. package/dist/esm/six-timepicker.entry.js.map +1 -0
  692. package/dist/esm/{six-timepicker.types-cd6bac03.js → six-timepicker.types-e161a447.js} +45 -43
  693. package/dist/esm/six-timepicker.types-e161a447.js.map +1 -0
  694. package/dist/esm/six-tooltip.entry.js +163 -173
  695. package/dist/esm/six-tooltip.entry.js.map +1 -0
  696. package/dist/esm/slot-6f3984c7.js +47 -0
  697. package/dist/esm/slot-6f3984c7.js.map +1 -0
  698. package/dist/esm/{types-a37c1695.js → types-4b10b413.js} +14 -12
  699. package/dist/esm/types-4b10b413.js.map +1 -0
  700. package/dist/esm/ui-library.js +9 -3
  701. package/dist/esm/ui-library.js.map +1 -0
  702. package/dist/types/components/six-alert/six-alert.d.ts +60 -60
  703. package/dist/types/components/six-avatar/six-avatar.d.ts +27 -27
  704. package/dist/types/components/six-badge/six-badge.d.ts +20 -20
  705. package/dist/types/components/six-button/six-button.d.ts +69 -69
  706. package/dist/types/components/six-card/six-card.d.ts +9 -9
  707. package/dist/types/components/six-checkbox/six-checkbox.d.ts +86 -86
  708. package/dist/types/components/six-datepicker/components/day-selection.d.ts +5 -5
  709. package/dist/types/components/six-datepicker/components/month-selection.d.ts +5 -5
  710. package/dist/types/components/six-datepicker/components/year-selection.d.ts +5 -5
  711. package/dist/types/components/six-datepicker/six-date-formats.d.ts +22 -22
  712. package/dist/types/components/six-datepicker/six-datepicker.d.ts +214 -214
  713. package/dist/types/components/six-datepicker/test/six-datepicker.test-helpers.d.ts +1 -1
  714. package/dist/types/components/six-details/six-details.d.ts +61 -61
  715. package/dist/types/components/six-dialog/six-dialog.d.ts +75 -75
  716. package/dist/types/components/six-drawer/six-drawer.d.ts +82 -82
  717. package/dist/types/components/six-dropdown/six-dropdown.d.ts +140 -140
  718. package/dist/types/components/six-error-page/six-error-page.d.ts +27 -27
  719. package/dist/types/components/six-file-list/six-file-list.d.ts +8 -8
  720. package/dist/types/components/six-file-list-item/six-file-list-item.d.ts +35 -35
  721. package/dist/types/components/six-file-upload/six-file-upload.d.ts +49 -42
  722. package/dist/types/components/six-footer/six-footer.d.ts +9 -9
  723. package/dist/types/components/six-form/six-form.d.ts +69 -69
  724. package/dist/types/components/six-group-label/six-group-label.d.ts +37 -37
  725. package/dist/types/components/six-header/six-header.d.ts +90 -90
  726. package/dist/types/components/six-icon/six-icon.d.ts +13 -13
  727. package/dist/types/components/six-icon-button/six-icon-button.d.ts +28 -28
  728. package/dist/types/components/six-input/six-input.d.ts +165 -165
  729. package/dist/types/components/six-item-picker/six-item-picker.d.ts +106 -106
  730. package/dist/types/components/six-item-picker/types.d.ts +11 -11
  731. package/dist/types/components/six-language-switcher/six-language-switcher.d.ts +25 -25
  732. package/dist/types/components/six-layout-grid/six-layout-grid.d.ts +14 -14
  733. package/dist/types/components/six-main-container/six-main-container.d.ts +16 -16
  734. package/dist/types/components/six-menu/six-menu.d.ts +81 -81
  735. package/dist/types/components/six-menu-divider/six-menu-divider.d.ts +11 -11
  736. package/dist/types/components/six-menu-item/six-menu-item.d.ts +39 -36
  737. package/dist/types/components/six-menu-label/six-menu-label.d.ts +13 -13
  738. package/dist/types/components/six-picto/six-picto.d.ts +14 -14
  739. package/dist/types/components/six-progress-bar/six-progress-bar.d.ts +19 -19
  740. package/dist/types/components/six-progress-ring/six-progress-ring.d.ts +24 -24
  741. package/dist/types/components/six-radio/six-radio.d.ts +66 -66
  742. package/dist/types/components/six-range/six-range.d.ts +101 -101
  743. package/dist/types/components/six-root/six-root.d.ts +34 -34
  744. package/dist/types/components/six-search-field/six-search-field.d.ts +32 -32
  745. package/dist/types/components/six-select/six-select.d.ts +164 -163
  746. package/dist/types/components/six-sidebar/six-sidebar.d.ts +55 -55
  747. package/dist/types/components/six-sidebar-item/six-sidebar-item.d.ts +15 -15
  748. package/dist/types/components/six-sidebar-item-group/six-sidebar-item-group.d.ts +26 -26
  749. package/dist/types/components/six-spinner/six-spinner.d.ts +15 -15
  750. package/dist/types/components/six-stage-indicator/six-stage-indicator.d.ts +6 -6
  751. package/dist/types/components/six-switch/six-switch.d.ts +62 -62
  752. package/dist/types/components/six-tab/six-tab.d.ts +35 -35
  753. package/dist/types/components/six-tab-group/six-tab-group.d.ts +62 -62
  754. package/dist/types/components/six-tab-panel/six-tab-panel.d.ts +19 -19
  755. package/dist/types/components/six-table/six-table.d.ts +30 -30
  756. package/dist/types/components/six-table/test/helpers.d.ts +2 -2
  757. package/dist/types/components/six-table/types.d.ts +33 -33
  758. package/dist/types/components/six-table/util/filter-by.d.ts +2 -2
  759. package/dist/types/components/six-table/util/from-data.d.ts +8 -8
  760. package/dist/types/components/six-table/util/is.d.ts +3 -3
  761. package/dist/types/components/six-table/util/quick-filter-by.d.ts +2 -2
  762. package/dist/types/components/six-table/util/sort-by.d.ts +2 -2
  763. package/dist/types/components/six-table-cell/six-table-cell.d.ts +9 -9
  764. package/dist/types/components/six-table-header/six-table-header.d.ts +9 -9
  765. package/dist/types/components/six-table-header-cell/get-next-state.d.ts +2 -2
  766. package/dist/types/components/six-table-header-cell/icons.d.ts +3 -3
  767. package/dist/types/components/six-table-header-cell/six-table-header-cell.d.ts +32 -32
  768. package/dist/types/components/six-table-header-cell/types.d.ts +2 -11
  769. package/dist/types/components/six-table-header-cell/util/create-model.d.ts +4 -4
  770. package/dist/types/components/six-table-header-cell/util/get-next-state.d.ts +3 -3
  771. package/dist/types/components/six-table-row/six-table-row.d.ts +9 -9
  772. package/dist/types/components/six-tag/six-tag.d.ts +30 -30
  773. package/dist/types/components/six-textarea/six-textarea.d.ts +134 -134
  774. package/dist/types/components/six-tile/six-tile.d.ts +40 -40
  775. package/dist/types/components/six-timepicker/six-time-format.d.ts +13 -13
  776. package/dist/types/components/six-timepicker/six-timepicker.d.ts +184 -184
  777. package/dist/types/components/six-timepicker/six-timepicker.types.d.ts +36 -36
  778. package/dist/types/components/six-tooltip/six-tooltip.d.ts +72 -72
  779. package/dist/types/components.d.ts +1254 -106
  780. package/dist/types/functional-components/form-control/form-control.d.ts +34 -34
  781. package/dist/types/index.d.ts +1 -1
  782. package/dist/types/stencil-public-runtime.d.ts +91 -19
  783. package/dist/types/testUtil/delay.d.ts +1 -1
  784. package/dist/types/utils/as-array.d.ts +1 -1
  785. package/dist/types/utils/date-util.d.ts +194 -194
  786. package/dist/types/utils/event-listeners.d.ts +15 -15
  787. package/dist/types/utils/execution-control.d.ts +26 -26
  788. package/dist/types/utils/focus-visible.d.ts +6 -6
  789. package/dist/types/utils/matchers.d.ts +2 -2
  790. package/dist/types/utils/modal.d.ts +13 -13
  791. package/dist/types/utils/offset.d.ts +4 -4
  792. package/dist/types/utils/popover.d.ts +27 -27
  793. package/dist/types/utils/scroll.d.ts +3 -3
  794. package/dist/types/utils/slot.d.ts +9 -9
  795. package/dist/types/utils/support.d.ts +1 -1
  796. package/dist/types/utils/tabbable.d.ts +2 -2
  797. package/dist/types/utils/testing.d.ts +2 -2
  798. package/dist/types/utils/time.util.d.ts +10 -10
  799. package/dist/types/utils/type-check.d.ts +4 -4
  800. package/dist/types/utils/types.d.ts +4 -4
  801. package/dist/types/wrappers/set-attributes/set-attributes.d.ts +9 -9
  802. package/dist/ui-library/index.esm.js +2 -0
  803. package/dist/ui-library/index.esm.js.map +1 -0
  804. package/dist/ui-library/p-00507165.entry.js +2 -0
  805. package/dist/ui-library/p-00507165.entry.js.map +1 -0
  806. package/dist/ui-library/p-028a2c54.entry.js +2 -0
  807. package/dist/ui-library/p-028a2c54.entry.js.map +1 -0
  808. package/dist/ui-library/p-028a2f77.entry.js +2 -0
  809. package/dist/ui-library/p-028a2f77.entry.js.map +1 -0
  810. package/dist/ui-library/p-0786fa7c.js +2 -0
  811. package/dist/ui-library/p-0786fa7c.js.map +1 -0
  812. package/dist/ui-library/p-0c89817e.entry.js +2 -0
  813. package/dist/ui-library/p-0c89817e.entry.js.map +1 -0
  814. package/dist/ui-library/p-0d1fdc4e.entry.js +2 -0
  815. package/dist/ui-library/p-0d1fdc4e.entry.js.map +1 -0
  816. package/dist/ui-library/p-0d9cbb51.entry.js +2 -0
  817. package/dist/ui-library/p-0d9cbb51.entry.js.map +1 -0
  818. package/dist/ui-library/p-12000282.entry.js +2 -0
  819. package/dist/ui-library/p-12000282.entry.js.map +1 -0
  820. package/dist/ui-library/p-1414a242.entry.js +2 -0
  821. package/dist/ui-library/p-1414a242.entry.js.map +1 -0
  822. package/dist/ui-library/p-14db57aa.entry.js +2 -0
  823. package/dist/ui-library/p-14db57aa.entry.js.map +1 -0
  824. package/dist/ui-library/p-16732ac1.entry.js +2 -0
  825. package/dist/ui-library/p-16732ac1.entry.js.map +1 -0
  826. package/dist/ui-library/p-16b99232.js +3 -0
  827. package/dist/ui-library/p-16b99232.js.map +1 -0
  828. package/dist/ui-library/p-18ea0c56.js +2 -0
  829. package/dist/ui-library/p-18ea0c56.js.map +1 -0
  830. package/dist/ui-library/p-232d43a6.entry.js +2 -0
  831. package/dist/ui-library/p-232d43a6.entry.js.map +1 -0
  832. package/dist/ui-library/p-25a3bf57.js +2 -0
  833. package/dist/ui-library/p-25a3bf57.js.map +1 -0
  834. package/dist/ui-library/p-28e6c2eb.entry.js +2 -0
  835. package/dist/ui-library/p-28e6c2eb.entry.js.map +1 -0
  836. package/dist/ui-library/p-2a02734a.entry.js +2 -0
  837. package/dist/ui-library/p-2a02734a.entry.js.map +1 -0
  838. package/dist/ui-library/p-2a61cc66.entry.js +2 -0
  839. package/dist/ui-library/p-2a61cc66.entry.js.map +1 -0
  840. package/dist/ui-library/p-3c100309.js +2 -0
  841. package/dist/ui-library/p-3c100309.js.map +1 -0
  842. package/dist/ui-library/p-3d5cad2d.entry.js +2 -0
  843. package/dist/ui-library/p-3d5cad2d.entry.js.map +1 -0
  844. package/dist/ui-library/p-3e3edcbc.entry.js +2 -0
  845. package/dist/ui-library/p-3e3edcbc.entry.js.map +1 -0
  846. package/dist/ui-library/p-3efe46cf.entry.js +2 -0
  847. package/dist/ui-library/p-3efe46cf.entry.js.map +1 -0
  848. package/dist/ui-library/p-4b44fa83.entry.js +2 -0
  849. package/dist/ui-library/p-4b44fa83.entry.js.map +1 -0
  850. package/dist/ui-library/p-4bcebd5a.entry.js +2 -0
  851. package/dist/ui-library/p-4bcebd5a.entry.js.map +1 -0
  852. package/dist/ui-library/p-4d4829db.entry.js +2 -0
  853. package/dist/ui-library/p-4d4829db.entry.js.map +1 -0
  854. package/dist/ui-library/p-4f8394d7.js +2 -0
  855. package/dist/ui-library/p-4f8394d7.js.map +1 -0
  856. package/dist/ui-library/p-524e5804.entry.js +2 -0
  857. package/dist/ui-library/p-524e5804.entry.js.map +1 -0
  858. package/dist/ui-library/p-52cb61bd.entry.js +2 -0
  859. package/dist/ui-library/p-52cb61bd.entry.js.map +1 -0
  860. package/dist/ui-library/p-55dc28ad.entry.js +2 -0
  861. package/dist/ui-library/p-55dc28ad.entry.js.map +1 -0
  862. package/dist/ui-library/p-57a84d7f.entry.js +2 -0
  863. package/dist/ui-library/p-57a84d7f.entry.js.map +1 -0
  864. package/dist/ui-library/p-5eb21538.entry.js +2 -0
  865. package/dist/ui-library/p-5eb21538.entry.js.map +1 -0
  866. package/dist/ui-library/p-60c5395c.entry.js +2 -0
  867. package/dist/ui-library/p-60c5395c.entry.js.map +1 -0
  868. package/dist/ui-library/p-694829b8.entry.js +2 -0
  869. package/dist/ui-library/p-694829b8.entry.js.map +1 -0
  870. package/dist/ui-library/p-6cc82df5.entry.js +2 -0
  871. package/dist/ui-library/p-6cc82df5.entry.js.map +1 -0
  872. package/dist/ui-library/p-7115416e.entry.js +2 -0
  873. package/dist/ui-library/p-7115416e.entry.js.map +1 -0
  874. package/dist/ui-library/p-788281d0.entry.js +2 -0
  875. package/dist/ui-library/p-788281d0.entry.js.map +1 -0
  876. package/dist/ui-library/p-7cbc261b.entry.js +2 -0
  877. package/dist/ui-library/p-7cbc261b.entry.js.map +1 -0
  878. package/dist/ui-library/p-80f32909.entry.js +2 -0
  879. package/dist/ui-library/p-80f32909.entry.js.map +1 -0
  880. package/dist/ui-library/p-8187701c.entry.js +2 -0
  881. package/dist/ui-library/p-8187701c.entry.js.map +1 -0
  882. package/dist/ui-library/p-94ab37b2.entry.js +2 -0
  883. package/dist/ui-library/p-94ab37b2.entry.js.map +1 -0
  884. package/dist/ui-library/p-9a860acc.js +2 -0
  885. package/dist/ui-library/p-9a860acc.js.map +1 -0
  886. package/dist/ui-library/p-9eba5c71.entry.js +2 -0
  887. package/dist/ui-library/p-9eba5c71.entry.js.map +1 -0
  888. package/dist/ui-library/p-9f9bef35.entry.js +2 -0
  889. package/dist/ui-library/p-9f9bef35.entry.js.map +1 -0
  890. package/dist/ui-library/p-b1683e9c.entry.js +2 -0
  891. package/dist/ui-library/p-b1683e9c.entry.js.map +1 -0
  892. package/dist/ui-library/p-b1e66136.js +2 -0
  893. package/dist/ui-library/p-b1e66136.js.map +1 -0
  894. package/dist/ui-library/p-b3974ad4.entry.js +2 -0
  895. package/dist/ui-library/p-b3974ad4.entry.js.map +1 -0
  896. package/dist/ui-library/p-b4dfb7cf.js +2 -0
  897. package/dist/ui-library/p-b4dfb7cf.js.map +1 -0
  898. package/dist/ui-library/p-b66c5c48.entry.js +2 -0
  899. package/dist/ui-library/p-b66c5c48.entry.js.map +1 -0
  900. package/dist/ui-library/p-ba6e1f0e.entry.js +2 -0
  901. package/dist/ui-library/p-ba6e1f0e.entry.js.map +1 -0
  902. package/dist/ui-library/p-c799a6bf.entry.js +2 -0
  903. package/dist/ui-library/p-c799a6bf.entry.js.map +1 -0
  904. package/dist/ui-library/p-ccee090e.entry.js +2 -0
  905. package/dist/ui-library/p-ccee090e.entry.js.map +1 -0
  906. package/dist/ui-library/p-cf2bdd34.entry.js +2 -0
  907. package/dist/ui-library/p-cf2bdd34.entry.js.map +1 -0
  908. package/dist/ui-library/p-d12c6092.js +2 -0
  909. package/dist/ui-library/p-d12c6092.js.map +1 -0
  910. package/dist/ui-library/p-dd0ac344.entry.js +2 -0
  911. package/dist/ui-library/p-dd0ac344.entry.js.map +1 -0
  912. package/dist/ui-library/p-def4a925.entry.js +2 -0
  913. package/dist/ui-library/p-def4a925.entry.js.map +1 -0
  914. package/dist/ui-library/p-e0bda772.entry.js +2 -0
  915. package/dist/ui-library/p-e0bda772.entry.js.map +1 -0
  916. package/dist/ui-library/p-e1aed7ed.entry.js +2 -0
  917. package/dist/ui-library/p-e1aed7ed.entry.js.map +1 -0
  918. package/dist/ui-library/p-e4b6264b.entry.js +2 -0
  919. package/dist/ui-library/p-e4b6264b.entry.js.map +1 -0
  920. package/dist/ui-library/p-eb1ec1b7.entry.js +2 -0
  921. package/dist/ui-library/p-eb1ec1b7.entry.js.map +1 -0
  922. package/dist/ui-library/p-eb8f05a9.js +2 -0
  923. package/dist/ui-library/p-eb8f05a9.js.map +1 -0
  924. package/dist/ui-library/p-f65aa796.entry.js +2 -0
  925. package/dist/ui-library/p-f65aa796.entry.js.map +1 -0
  926. package/dist/ui-library/p-f68b5c54.entry.js +2 -0
  927. package/dist/ui-library/p-f68b5c54.entry.js.map +1 -0
  928. package/dist/ui-library/p-f9c50f81.entry.js +2 -0
  929. package/dist/ui-library/p-f9c50f81.entry.js.map +1 -0
  930. package/dist/ui-library/ui-library.esm.js +2 -1
  931. package/dist/ui-library/ui-library.esm.js.map +1 -0
  932. package/loader/index.d.ts +9 -0
  933. package/loader/package.json +1 -0
  934. package/package.json +8 -12
  935. package/readme.md +41 -39
  936. package/dist/cjs/types-65e5c95b.js +0 -15
  937. package/dist/custom-elements/index.d.ts +0 -387
  938. package/dist/esm/types-33d15673.js +0 -15
  939. package/dist/ui-library/p-044c6bf9.js +0 -1
  940. package/dist/ui-library/p-0493c926.entry.js +0 -1
  941. package/dist/ui-library/p-1005d1a8.entry.js +0 -1
  942. package/dist/ui-library/p-12cc24c3.js +0 -1
  943. package/dist/ui-library/p-191f958b.js +0 -1
  944. package/dist/ui-library/p-19543c96.entry.js +0 -1
  945. package/dist/ui-library/p-19ff1079.entry.js +0 -1
  946. package/dist/ui-library/p-1b92cc7a.entry.js +0 -1
  947. package/dist/ui-library/p-1c9f0dc6.js +0 -1
  948. package/dist/ui-library/p-2053c61a.entry.js +0 -1
  949. package/dist/ui-library/p-2ff97cdf.entry.js +0 -1
  950. package/dist/ui-library/p-30ebc1e7.js +0 -1
  951. package/dist/ui-library/p-34e6d8e8.js +0 -1
  952. package/dist/ui-library/p-354704e5.entry.js +0 -1
  953. package/dist/ui-library/p-376b8f30.entry.js +0 -1
  954. package/dist/ui-library/p-3a7daff8.entry.js +0 -1
  955. package/dist/ui-library/p-3f577392.entry.js +0 -1
  956. package/dist/ui-library/p-48ea4419.entry.js +0 -1
  957. package/dist/ui-library/p-4cc01afc.entry.js +0 -1
  958. package/dist/ui-library/p-572e3690.js +0 -1
  959. package/dist/ui-library/p-5ead7b2f.entry.js +0 -1
  960. package/dist/ui-library/p-60491176.entry.js +0 -1
  961. package/dist/ui-library/p-6494e92d.entry.js +0 -1
  962. package/dist/ui-library/p-66601906.entry.js +0 -1
  963. package/dist/ui-library/p-68d31736.js +0 -1
  964. package/dist/ui-library/p-6a4f0542.entry.js +0 -1
  965. package/dist/ui-library/p-6f67f986.entry.js +0 -1
  966. package/dist/ui-library/p-76bfa55f.entry.js +0 -1
  967. package/dist/ui-library/p-7735d99f.js +0 -1
  968. package/dist/ui-library/p-7fe09462.entry.js +0 -1
  969. package/dist/ui-library/p-88e1e390.entry.js +0 -1
  970. package/dist/ui-library/p-89f68e76.entry.js +0 -1
  971. package/dist/ui-library/p-8bd0873f.entry.js +0 -1
  972. package/dist/ui-library/p-8e8e922b.entry.js +0 -1
  973. package/dist/ui-library/p-968c5169.entry.js +0 -1
  974. package/dist/ui-library/p-9f2dc381.entry.js +0 -1
  975. package/dist/ui-library/p-a77a6442.entry.js +0 -1
  976. package/dist/ui-library/p-a8c225f2.entry.js +0 -1
  977. package/dist/ui-library/p-a98198bd.entry.js +0 -1
  978. package/dist/ui-library/p-af3d757c.js +0 -1
  979. package/dist/ui-library/p-b391f704.entry.js +0 -1
  980. package/dist/ui-library/p-b9377445.entry.js +0 -1
  981. package/dist/ui-library/p-b9fb8455.entry.js +0 -1
  982. package/dist/ui-library/p-bf110ea9.entry.js +0 -1
  983. package/dist/ui-library/p-c09dc3a9.js +0 -1
  984. package/dist/ui-library/p-c4b22513.entry.js +0 -1
  985. package/dist/ui-library/p-c536792e.entry.js +0 -1
  986. package/dist/ui-library/p-c733dead.js +0 -1
  987. package/dist/ui-library/p-c948d3db.entry.js +0 -1
  988. package/dist/ui-library/p-ce02c34f.entry.js +0 -1
  989. package/dist/ui-library/p-d724bbc9.entry.js +0 -1
  990. package/dist/ui-library/p-e96dcf96.entry.js +0 -1
  991. package/dist/ui-library/p-ea1fcff2.entry.js +0 -1
  992. package/dist/ui-library/p-ea781e94.entry.js +0 -1
  993. package/dist/ui-library/p-eae232c3.entry.js +0 -1
  994. package/dist/ui-library/p-eb0956d2.entry.js +0 -1
  995. package/dist/ui-library/p-ebaea182.entry.js +0 -1
  996. package/dist/ui-library/p-ec1ecc2a.entry.js +0 -1
  997. package/dist/ui-library/p-ed21cc57.entry.js +0 -1
  998. package/dist/ui-library/p-f00c1783.entry.js +0 -1
  999. package/dist/ui-library/p-f0e91e17.entry.js +0 -1
  1000. package/dist/ui-library/p-f9c0cfb7.entry.js +0 -1
  1001. package/dist/ui-library/p-fcd2356c.entry.js +0 -1
  1002. package/dist/ui-library/p-fdb455d7.entry.js +0 -1
@@ -1,980 +1,936 @@
1
- import { Component, Element, Event, h, Listen, Method, Prop, State, Watch } from '@stencil/core';
2
- import { ItemPickerType } from '../six-item-picker/types';
3
- import { SixTimeFormat } from './six-time-format';
4
- import { SixTimePropertyName, TIME_FORMAT_CHAR } from './six-timepicker.types';
5
- import { createTimeString, getCurrentTime, isValidTimeString, parseTimeString, TIME_FORMAT_SEPARATOR, } from '../../utils/time.util';
6
- import { debounce, DEFAULT_DEBOUNCE_FAST, DEFAULT_DEBOUNCE_INSANELY_FAST } from '../../utils/execution-control';
7
- import { EventListeners } from '../../utils/event-listeners';
8
- import { hasSlot } from '../../utils/slot';
9
- import { isNil } from '../../utils/type-check';
10
- const TAG = `[SIX-TIMEPICKER]`;
11
- const DEBOUNCE_TIMEPICKER_LISTENER = 'debounced-timepicker';
12
- const MIN_POPUP_HEIGHT = 145;
13
- /**
14
- * @since 2.0.0
15
- * @status experimental
16
- *
17
- * @part input - The input field
18
- * @part container - The container of whole component
19
- * @part popup - The popup of the timepicker component
20
- *
21
- */
22
- export class SixTimepicker {
23
- constructor() {
24
- this.eventListeners = new EventListeners();
25
- /**
26
- * Define the time format. Valid formats are:
27
- *
28
- * HH:mm:ss
29
- * hh:mm:ss:aa
30
- * HH:mm:ss:ms
31
- * hh:mm:ss:ms:aa
32
- * HH:mm
33
- * hh:mm:aa
34
- * HH
35
- * hh:aa
36
- * mm
37
- * ss
38
- * ms
39
- *
40
- * where HH is the 24 hour format
41
- * and hh is the 12 hour format
42
- *
43
- * Please notice that when using the 12-hour-clock (hh)
44
- * you always need a period indicator (aa). So the time can be parsed as either am or pm
45
- * */
46
- this.format = SixTimeFormat.HHmmss;
47
- /**
48
- * Define the separator to be shown between the time unit pickers.
49
- * Please be aware that this property will modify the displayed separator only.
50
- * The separator for a timestring is always expected to be a colon (eg. '13:52:20')
51
- * */
52
- this.separator = TIME_FORMAT_SEPARATOR;
53
- /** Indicates whether or not the timepicker dropdown is open on startup. You can use this in lieu of the show/hide methods. */
54
- this.open = false;
55
- /** Indicates whether or not the timepicker should be shown as an inline (always open) component */
56
- this.inline = false;
57
- /**
58
- * If `true` the user can only select a time via the timepicker but not directly edit the input field.
59
- */
60
- this.readonly = false;
61
- /**
62
- * If `true` the component is disabled.
63
- */
64
- this.disabled = false;
65
- /** Timepicker size. */
66
- this.size = 'medium';
67
- /** Set to display the error text on blur and not when typing */
68
- this.errorOnBlur = false;
69
- /** The input's error text. Alternatively, you can use the error-text slot. */
70
- this.errorText = '';
71
- /** The input's label. Alternatively, you can use the label slot. */
72
- this.label = '';
73
- /** The input's name attribute. */
74
- this.name = '';
75
- /** Set to true to add a clear button when the input is populated. */
76
- this.clearable = false;
77
- /** Set the position of the icon */
78
- this.iconPosition = 'left';
79
- /**
80
- * Enable this option to prevent the panel from being clipped when the component is placed inside a container with
81
- * `overflow: auto|scroll`.
82
- */
83
- this.hoist = false;
84
- /**
85
- * Set the amount of time, in milliseconds, to wait to trigger faster switching between timeunits (e.g. hours).
86
- */
87
- this.timeout = DEFAULT_DEBOUNCE_FAST;
88
- /**
89
- * Set the amount of time, in milliseconds, to wait between switching to next timeunit (e.g. next hour) when mouse button is held pressed.
90
- */
91
- this.interval = DEFAULT_DEBOUNCE_INSANELY_FAST;
92
- /**
93
- * Set the amount of time, in milliseconds, to wait to trigger the `six-timepicker-change-debounced` event.
94
- * If you want your change debounce event to not trigger when keeping the nav button pressed before, make sure debounce
95
- * is a bit bigger than timeout, otherwise keeping the button pressed will trigger the event twice: once you click
96
- * (and keep pressed) and once you release
97
- */
98
- this.debounce = DEFAULT_DEBOUNCE_FAST;
99
- this.isPopupContentUp = false;
100
- this.isDropDownContentUp = false;
101
- this.defaultValue = null;
102
- this.handleInputChange = (event) => {
103
- event.stopPropagation();
104
- const inputValue = this.inputElement.value;
105
- if (!isValidTimeString(inputValue, this.format)) {
106
- this.sixChange.emit({
107
- value: {},
108
- valueAsString: '',
109
- });
110
- return;
111
- }
112
- this.internalValue = parseTimeString(inputValue, this.format);
113
- this.sixChange.emit({
114
- value: this.internalValue,
115
- valueAsString: createTimeString(this.internalValue, this.format),
116
- });
117
- };
118
- this.handleSixTimepickerChangeDebounced = ({ detail }) => {
119
- this.sixChangeDebounced.emit(detail);
120
- };
121
- this.handleChange = (event, property) => {
122
- // stop propagation, since the timepicker should not expose the events of the underlying item-picker
123
- event.stopPropagation();
124
- // update the internal state
125
- this.internalValue[property] = event.detail;
126
- const timeString = createTimeString(this.internalValue, this.format);
127
- // fire timepicker's own event
128
- this.sixChange.emit({
129
- changedProperty: property,
130
- value: this.internalValue,
131
- valueAsString: timeString,
132
- });
133
- // update the input value
134
- this.value = timeString;
135
- };
136
- this.handleDocumentMouseDown = (event) => {
137
- // Close when clicking outside of the containing element
138
- const path = event.composedPath();
139
- if (!path.includes(this.host)) {
140
- this.closePopup();
141
- return;
142
- }
143
- };
144
- this.handleClearClick = (event) => {
145
- event.stopPropagation();
146
- this.value = undefined;
147
- this.sixClear.emit();
148
- };
149
- }
150
- async resizeHandler() {
151
- this.calcIsPopupContentUp();
152
- this.moveOpenHoistedPopup();
153
- }
154
- async scrollHandler() {
155
- this.calcIsPopupContentUp();
156
- this.moveOpenHoistedPopup();
157
- }
158
- debounceChanged() {
159
- this.eventListeners.removeByIdentifier(DEBOUNCE_TIMEPICKER_LISTENER);
160
- this.eventListeners.add(this.host, 'six-timepicker-change', debounce(this.handleSixTimepickerChangeDebounced, this.debounce), DEBOUNCE_TIMEPICKER_LISTENER);
161
- }
162
- /**
163
- * Update the native input element when the value changes
164
- */
165
- valueChanged(newValue) {
166
- if (this.value !== newValue) {
167
- this.value = newValue;
168
- }
169
- this.setupInternalTime();
170
- this.sixChange.emit({
171
- value: this.internalValue,
172
- valueAsString: createTimeString(this.internalValue, this.format),
173
- });
174
- }
175
- /** Checks for validity and shows the browser's validation message if the control is invalid. */
176
- async reportValidity() {
177
- return this.inputElement.reportValidity();
178
- }
179
- /** Checks for validity. */
180
- async checkValidity() {
181
- return this.inputElement.checkValidity();
182
- }
183
- /** Sets a custom validation message. If `message` is not empty, the field will be considered invalid. */
184
- async setCustomValidity(message) {
185
- await this.inputElement.setCustomValidity(message);
186
- }
187
- /** Resets the formcontrol */
188
- async reset() {
189
- this.internalValue = this.defaultValue;
190
- this.inputElement.value = createTimeString(this.internalValue, this.format);
191
- await this.inputElement.reset();
192
- }
193
- componentWillLoad() {
194
- this.setupInternalTime();
195
- if (this.inline) {
196
- this.open = true;
197
- }
198
- if (this.open) {
199
- this.eventListeners.add(document, 'mousedown', this.handleDocumentMouseDown);
200
- }
201
- }
202
- componentDidLoad() {
203
- this.eventListeners.add(this.host, 'six-timepicker-change', debounce(this.handleSixTimepickerChangeDebounced, this.debounce), DEBOUNCE_TIMEPICKER_LISTENER);
204
- this.eventListeners.add(this.inputElement, 'six-input-input', debounce(this.handleInputChange, this.debounce));
205
- }
206
- disconnectedCallback() {
207
- this.eventListeners.removeAll();
208
- }
209
- calcIsPopupContentUp() {
210
- if (!this.inputElement || !this.wrapper) {
211
- return;
212
- }
213
- const inputBoundingRect = this.inputElement.getBoundingClientRect();
214
- const wrapperBoundingRect = this.wrapper.getBoundingClientRect();
215
- const minPopupHeight = Math.max(wrapperBoundingRect.height, MIN_POPUP_HEIGHT);
216
- const moreSpaceInTop = inputBoundingRect.y > window.innerHeight / 2;
217
- this.isPopupContentUp = moreSpaceInTop && window.innerHeight < inputBoundingRect.bottom + minPopupHeight;
218
- }
219
- /*
220
- * The position of the hoisted timepicker needs to be correctly calculated since the position changes to fixed.
221
- * Thus if the user scrolls or adjusts the screen size we need to recalculate the timepicker position.
222
- */
223
- moveOpenHoistedPopup() {
224
- if (!this.hoist || !this.open) {
225
- return;
226
- }
227
- const popupBoundingClientRect = this.popup.getBoundingClientRect();
228
- const popupHeight = popupBoundingClientRect.height;
229
- const inputBoundingClientRect = this.inputElement.getBoundingClientRect();
230
- const inputTop = inputBoundingClientRect.top;
231
- const inputHeight = inputBoundingClientRect.height;
232
- this.calcIsPopupContentUp();
233
- if (this.isPopupContentUp) {
234
- this.popup.style.top = `${inputTop - popupHeight}px`;
235
- }
236
- else {
237
- this.popup.style.top = `${inputTop + inputHeight}px`;
238
- }
239
- }
240
- getSixTimeUnitPicker(params) {
241
- return (h("six-item-picker", { class: params.class, timeout: this.timeout, interval: this.interval, padded: true, min: params.min, max: params.max, value: this.internalValue[params.propertyName], items: params.items, type: params.type || ItemPickerType.NUMBER, "padding-length": params.paddingLength, "onSix-item-picker-change": (event) => this.handleChange(event, params.propertyName) }));
242
- }
243
- setupInternalTime() {
244
- if (this.is12HourClock() && !this.format.includes(TIME_FORMAT_CHAR.PERIOD)) {
245
- console.error(`${TAG} You provided a 12-hour-clock format but are missing the period (am or pm) in the time-format-string!`);
246
- }
247
- if (this.value === null || this.value === undefined) {
248
- this.internalValue = isNil(this.defaultTime)
249
- ? getCurrentTime(this.is24HourClock())
250
- : parseTimeString(this.defaultTime, this.format);
251
- }
252
- else {
253
- this.internalValue = parseTimeString(this.value, this.format);
254
- }
255
- this.defaultValue = this.internalValue;
256
- }
257
- getHour24Picker() {
258
- if (!this.is24HourClock()) {
259
- return;
260
- }
261
- return this.getSixTimeUnitPicker({ min: 0, max: 23, propertyName: SixTimePropertyName.HOURS });
262
- }
263
- is24HourClock() {
264
- return this.format.includes(TIME_FORMAT_CHAR.HOUR_24);
265
- }
266
- getHour12Picker() {
267
- if (!this.is12HourClock()) {
268
- return;
269
- }
270
- return this.getSixTimeUnitPicker({ min: 0, max: 11, propertyName: SixTimePropertyName.HOURS });
271
- }
272
- is12HourClock() {
273
- return this.format.includes(TIME_FORMAT_CHAR.HOUR_12);
274
- }
275
- getAmPmPicker() {
276
- if (!this.is12HourClock()) {
277
- return;
278
- }
279
- const items = ['AM', 'PM'];
280
- return this.getSixTimeUnitPicker({
281
- items,
282
- type: ItemPickerType.CUSTOM,
283
- propertyName: SixTimePropertyName.PERIOD,
284
- });
285
- }
286
- getMinutePicker() {
287
- if (!this.format.includes(TIME_FORMAT_CHAR.MINUTE)) {
288
- return;
289
- }
290
- return this.getSixTimeUnitPicker({ min: 0, max: 59, propertyName: SixTimePropertyName.MINUTES });
291
- }
292
- getSecondsPicker() {
293
- if (!this.format.includes(TIME_FORMAT_CHAR.SECOND)) {
294
- return;
295
- }
296
- return this.getSixTimeUnitPicker({ min: 0, max: 59, propertyName: SixTimePropertyName.SECONDS });
297
- }
298
- getMillisecondsPicker() {
299
- if (!this.format.includes(TIME_FORMAT_CHAR.MILLISECOND)) {
300
- return;
301
- }
302
- return this.getSixTimeUnitPicker({
303
- min: 0,
304
- max: 999,
305
- class: 'timepicker__item--wide',
306
- paddingLength: 3,
307
- propertyName: SixTimePropertyName.MILLISECONDS,
308
- });
309
- }
310
- getSeparator() {
311
- return (h("div", { class: "timepicker__separator" },
312
- h("span", null, this.separator)));
313
- }
314
- getContent() {
315
- const elementsInOrder = [
316
- this.getHour24Picker(),
317
- this.getHour12Picker(),
318
- this.getMinutePicker(),
319
- this.getSecondsPicker(),
320
- this.getMillisecondsPicker(),
321
- ];
322
- const visibleElements = elementsInOrder.filter((el) => el !== undefined);
323
- return visibleElements.map((el, idx) => {
324
- if (idx === visibleElements.length - 1) {
325
- return [el];
326
- }
327
- return [el, this.getSeparator()];
328
- });
329
- }
330
- openPopup() {
331
- if (!this.open && !this.disabled) {
332
- this.open = true;
333
- this.eventListeners.add(document, 'mousedown', this.handleDocumentMouseDown);
334
- }
335
- }
336
- closePopup() {
337
- if (this.inline) {
338
- return;
339
- }
340
- this.open = false;
341
- this.eventListeners.remove(document, 'mousedown', this.handleDocumentMouseDown);
342
- }
343
- renderClearable() {
344
- return (this.clearable && (h("button", { slot: "suffix", class: {
345
- timepicker_clear: true,
346
- 'timepicker_clear--right': this.iconPosition === 'left',
347
- 'timepicker_clear--left': this.iconPosition === 'right',
348
- }, type: "button", onClick: this.handleClearClick, tabindex: "-1" },
349
- h("six-icon", { size: "small" }, "clear"))));
350
- }
351
- renderCustomIcon() {
352
- const icon = hasSlot(this.host, 'custom-icon') ? (h("slot", { name: "custom-icon" })) : (h("six-icon", { size: this.size === 'large' ? 'medium' : this.size }, "watch_later"));
353
- return (h("span", { slot: "prefix", part: "icon", class: {
354
- prefix: true,
355
- 'prefix--right': this.iconPosition === 'right',
356
- } }, icon));
357
- }
358
- calcIsDropDownContentUp() {
359
- if (!this.inputElement || !this.wrapper) {
360
- return;
361
- }
362
- const inputBoundingRect = this.inputElement.getBoundingClientRect();
363
- const wrapperBoundingRect = this.wrapper.getBoundingClientRect();
364
- const minPopupHeight = Math.max(wrapperBoundingRect.height, MIN_POPUP_HEIGHT);
365
- const moreSpaceInTop = inputBoundingRect.y > window.innerHeight / 2;
366
- this.isDropDownContentUp = moreSpaceInTop && window.innerHeight < inputBoundingRect.bottom + minPopupHeight;
367
- }
368
- /*
369
- * If the popup is hoisted we popup is hoisted its position will change to fix to not be clipped of by a containing container.
370
- * To render the popup correctly we render it normally, and then assign this screenposition to the fixed popup
371
- */
372
- adjustPopupForHoisting() {
373
- if (!this.hoist) {
374
- return;
375
- }
376
- // execute after dropdown has been rendered to make sure the popup reference is correctly set
377
- setTimeout(() => {
378
- if (!this.popup) {
379
- return;
380
- }
381
- // take a snapshot of normally rendered popup
382
- const popupBoundingClientRect = this.popup.getBoundingClientRect();
383
- // apply screen position to fixed popup
384
- this.popup.style.position = 'fixed';
385
- ['top', 'left', 'width', 'height'].forEach((property) => {
386
- this.popup.style[property] = `${popupBoundingClientRect[property]}px`;
387
- });
388
- const inputBoundingClientRect = this.inputElement.getBoundingClientRect();
389
- const inputTop = inputBoundingClientRect.top;
390
- const popupTop = popupBoundingClientRect.top;
391
- this.calcIsDropDownContentUp();
392
- // check screen position to check whether the popup should be moved above or below the trigger element
393
- if (this.isDropDownContentUp && inputTop < popupTop) {
394
- // move popup above input field if timepicker is at bottom of screen
395
- this.popup.style.top = `${popupTop - popupBoundingClientRect.height - inputBoundingClientRect.height}px`;
396
- }
397
- }, 0);
398
- }
399
- render() {
400
- this.adjustPopupForHoisting();
401
- return (h("div", { part: "container", ref: (el) => (this.wrapper = el), class: "timepicker__container" },
402
- h("six-input", { ref: (el) => (this.inputElement = el), part: "input", onClick: () => this.openPopup(), value: this.value, placeholder: this.placeholder, readonly: this.readonly, disabled: this.disabled, size: this.size, name: this.name, label: this.label, required: this.required, "error-text": this.errorText, "error-on-blur": this.errorOnBlur, class: {
403
- 'input--empty': !this.value,
404
- 'input--hide': this.inline,
405
- } },
406
- this.renderCustomIcon(),
407
- this.renderClearable(),
408
- hasSlot(this.host, 'error-text') ? (h("span", { slot: "error-text" },
409
- h("slot", { name: "error-text" }))) : null,
410
- hasSlot(this.host, 'label') ? (h("span", { slot: "label" },
411
- h("slot", { name: "label" }))) : null),
412
- this.open && (h("div", { ref: (el) => (this.popup = el), part: "popup", class: {
413
- timepicker__popup: true,
414
- 'timepicker__popup--is-up': this.placement ? this.placement === 'top' : this.isPopupContentUp,
415
- 'timepicker__popup--is-inline': this.inline,
416
- } },
417
- ...this.getContent(),
418
- this.getAmPmPicker()))));
419
- }
420
- static get is() { return "six-timepicker"; }
421
- static get encapsulation() { return "shadow"; }
422
- static get originalStyleUrls() { return {
423
- "$": ["six-timepicker.scss"]
424
- }; }
425
- static get styleUrls() { return {
426
- "$": ["six-timepicker.css"]
427
- }; }
428
- static get properties() { return {
429
- "format": {
430
- "type": "string",
431
- "mutable": false,
432
- "complexType": {
433
- "original": "SixTimeFormat",
434
- "resolved": "SixTimeFormat.HH | SixTimeFormat.HHmm | SixTimeFormat.HHmmss | SixTimeFormat.HHmmssms | SixTimeFormat.hhaa | SixTimeFormat.hhmmaa | SixTimeFormat.hhmmssaa | SixTimeFormat.hhmmssmsaa | SixTimeFormat.mm | SixTimeFormat.ms | SixTimeFormat.ss",
435
- "references": {
436
- "SixTimeFormat": {
437
- "location": "import",
438
- "path": "./six-time-format"
439
- }
440
- }
441
- },
442
- "required": false,
443
- "optional": false,
444
- "docs": {
445
- "tags": [],
446
- "text": "Define the time format. Valid formats are:\n\nHH:mm:ss\nhh:mm:ss:aa\nHH:mm:ss:ms\nhh:mm:ss:ms:aa\nHH:mm\nhh:mm:aa\nHH\nhh:aa\nmm\nss\nms\n\nwhere HH is the 24 hour format\nand hh is the 12 hour format\n\nPlease notice that when using the 12-hour-clock (hh)\nyou always need a period indicator (aa). So the time can be parsed as either am or pm"
447
- },
448
- "attribute": "format",
449
- "reflect": false,
450
- "defaultValue": "SixTimeFormat.HHmmss"
451
- },
452
- "separator": {
453
- "type": "string",
454
- "mutable": false,
455
- "complexType": {
456
- "original": "string",
457
- "resolved": "string",
458
- "references": {}
459
- },
460
- "required": false,
461
- "optional": false,
462
- "docs": {
463
- "tags": [],
464
- "text": "Define the separator to be shown between the time unit pickers.\nPlease be aware that this property will modify the displayed separator only.\nThe separator for a timestring is always expected to be a colon (eg. '13:52:20')"
465
- },
466
- "attribute": "separator",
467
- "reflect": false,
468
- "defaultValue": "TIME_FORMAT_SEPARATOR"
469
- },
470
- "value": {
471
- "type": "string",
472
- "mutable": true,
473
- "complexType": {
474
- "original": "string | null",
475
- "resolved": "string",
476
- "references": {}
477
- },
478
- "required": false,
479
- "optional": true,
480
- "docs": {
481
- "tags": [],
482
- "text": "The value of the timepicker provided as a string. The string mast match the provided format (or default format)"
483
- },
484
- "attribute": "value",
485
- "reflect": false
486
- },
487
- "open": {
488
- "type": "boolean",
489
- "mutable": true,
490
- "complexType": {
491
- "original": "boolean",
492
- "resolved": "boolean",
493
- "references": {}
494
- },
495
- "required": false,
496
- "optional": false,
497
- "docs": {
498
- "tags": [],
499
- "text": "Indicates whether or not the timepicker dropdown is open on startup. You can use this in lieu of the show/hide methods."
500
- },
501
- "attribute": "open",
502
- "reflect": true,
503
- "defaultValue": "false"
504
- },
505
- "inline": {
506
- "type": "boolean",
507
- "mutable": false,
508
- "complexType": {
509
- "original": "boolean",
510
- "resolved": "boolean",
511
- "references": {}
512
- },
513
- "required": false,
514
- "optional": false,
515
- "docs": {
516
- "tags": [],
517
- "text": "Indicates whether or not the timepicker should be shown as an inline (always open) component"
518
- },
519
- "attribute": "inline",
520
- "reflect": true,
521
- "defaultValue": "false"
522
- },
523
- "readonly": {
524
- "type": "boolean",
525
- "mutable": false,
526
- "complexType": {
527
- "original": "boolean",
528
- "resolved": "boolean",
529
- "references": {}
530
- },
531
- "required": false,
532
- "optional": false,
533
- "docs": {
534
- "tags": [],
535
- "text": "If `true` the user can only select a time via the timepicker but not directly edit the input field."
536
- },
537
- "attribute": "readonly",
538
- "reflect": false,
539
- "defaultValue": "false"
540
- },
541
- "disabled": {
542
- "type": "boolean",
543
- "mutable": false,
544
- "complexType": {
545
- "original": "boolean",
546
- "resolved": "boolean",
547
- "references": {}
548
- },
549
- "required": false,
550
- "optional": false,
551
- "docs": {
552
- "tags": [],
553
- "text": "If `true` the component is disabled."
554
- },
555
- "attribute": "disabled",
556
- "reflect": false,
557
- "defaultValue": "false"
558
- },
559
- "placement": {
560
- "type": "string",
561
- "mutable": false,
562
- "complexType": {
563
- "original": "'top' | 'bottom'",
564
- "resolved": "\"bottom\" | \"top\"",
565
- "references": {}
566
- },
567
- "required": false,
568
- "optional": false,
569
- "docs": {
570
- "tags": [],
571
- "text": "The enforced placement of the dropdown panel."
572
- },
573
- "attribute": "placement",
574
- "reflect": false
575
- },
576
- "size": {
577
- "type": "string",
578
- "mutable": false,
579
- "complexType": {
580
- "original": "'small' | 'medium' | 'large'",
581
- "resolved": "\"large\" | \"medium\" | \"small\"",
582
- "references": {}
583
- },
584
- "required": false,
585
- "optional": false,
586
- "docs": {
587
- "tags": [],
588
- "text": "Timepicker size."
589
- },
590
- "attribute": "size",
591
- "reflect": false,
592
- "defaultValue": "'medium'"
593
- },
594
- "required": {
595
- "type": "boolean",
596
- "mutable": false,
597
- "complexType": {
598
- "original": "boolean",
599
- "resolved": "boolean",
600
- "references": {}
601
- },
602
- "required": false,
603
- "optional": false,
604
- "docs": {
605
- "tags": [],
606
- "text": "Set to true to make the input a required field."
607
- },
608
- "attribute": "required",
609
- "reflect": true
610
- },
611
- "placeholder": {
612
- "type": "string",
613
- "mutable": false,
614
- "complexType": {
615
- "original": "string | null",
616
- "resolved": "string",
617
- "references": {}
618
- },
619
- "required": false,
620
- "optional": true,
621
- "docs": {
622
- "tags": [],
623
- "text": "The placeholder defines what text to be shown on the input element"
624
- },
625
- "attribute": "placeholder",
626
- "reflect": false
627
- },
628
- "errorOnBlur": {
629
- "type": "boolean",
630
- "mutable": false,
631
- "complexType": {
632
- "original": "boolean",
633
- "resolved": "boolean",
634
- "references": {}
635
- },
636
- "required": false,
637
- "optional": false,
638
- "docs": {
639
- "tags": [],
640
- "text": "Set to display the error text on blur and not when typing"
641
- },
642
- "attribute": "error-on-blur",
643
- "reflect": false,
644
- "defaultValue": "false"
645
- },
646
- "errorText": {
647
- "type": "string",
648
- "mutable": false,
649
- "complexType": {
650
- "original": "string",
651
- "resolved": "string",
652
- "references": {}
653
- },
654
- "required": false,
655
- "optional": false,
656
- "docs": {
657
- "tags": [],
658
- "text": "The input's error text. Alternatively, you can use the error-text slot."
659
- },
660
- "attribute": "error-text",
661
- "reflect": false,
662
- "defaultValue": "''"
663
- },
664
- "label": {
665
- "type": "string",
666
- "mutable": false,
667
- "complexType": {
668
- "original": "string",
669
- "resolved": "string",
670
- "references": {}
671
- },
672
- "required": false,
673
- "optional": false,
674
- "docs": {
675
- "tags": [],
676
- "text": "The input's label. Alternatively, you can use the label slot."
677
- },
678
- "attribute": "label",
679
- "reflect": false,
680
- "defaultValue": "''"
681
- },
682
- "name": {
683
- "type": "string",
684
- "mutable": false,
685
- "complexType": {
686
- "original": "string",
687
- "resolved": "string",
688
- "references": {}
689
- },
690
- "required": false,
691
- "optional": false,
692
- "docs": {
693
- "tags": [],
694
- "text": "The input's name attribute."
695
- },
696
- "attribute": "name",
697
- "reflect": true,
698
- "defaultValue": "''"
699
- },
700
- "clearable": {
701
- "type": "boolean",
702
- "mutable": false,
703
- "complexType": {
704
- "original": "boolean",
705
- "resolved": "boolean",
706
- "references": {}
707
- },
708
- "required": false,
709
- "optional": false,
710
- "docs": {
711
- "tags": [],
712
- "text": "Set to true to add a clear button when the input is populated."
713
- },
714
- "attribute": "clearable",
715
- "reflect": false,
716
- "defaultValue": "false"
717
- },
718
- "iconPosition": {
719
- "type": "string",
720
- "mutable": false,
721
- "complexType": {
722
- "original": "'left' | 'right'",
723
- "resolved": "\"left\" | \"right\"",
724
- "references": {}
725
- },
726
- "required": false,
727
- "optional": false,
728
- "docs": {
729
- "tags": [],
730
- "text": "Set the position of the icon"
731
- },
732
- "attribute": "icon-position",
733
- "reflect": false,
734
- "defaultValue": "'left'"
735
- },
736
- "hoist": {
737
- "type": "boolean",
738
- "mutable": false,
739
- "complexType": {
740
- "original": "boolean",
741
- "resolved": "boolean",
742
- "references": {}
743
- },
744
- "required": false,
745
- "optional": false,
746
- "docs": {
747
- "tags": [],
748
- "text": "Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`."
749
- },
750
- "attribute": "hoist",
751
- "reflect": false,
752
- "defaultValue": "false"
753
- },
754
- "timeout": {
755
- "type": "number",
756
- "mutable": false,
757
- "complexType": {
758
- "original": "number",
759
- "resolved": "number",
760
- "references": {}
761
- },
762
- "required": false,
763
- "optional": false,
764
- "docs": {
765
- "tags": [],
766
- "text": "Set the amount of time, in milliseconds, to wait to trigger faster switching between timeunits (e.g. hours)."
767
- },
768
- "attribute": "timeout",
769
- "reflect": false,
770
- "defaultValue": "DEFAULT_DEBOUNCE_FAST"
771
- },
772
- "interval": {
773
- "type": "number",
774
- "mutable": false,
775
- "complexType": {
776
- "original": "number",
777
- "resolved": "number",
778
- "references": {}
779
- },
780
- "required": false,
781
- "optional": false,
782
- "docs": {
783
- "tags": [],
784
- "text": "Set the amount of time, in milliseconds, to wait between switching to next timeunit (e.g. next hour) when mouse button is held pressed."
785
- },
786
- "attribute": "interval",
787
- "reflect": false,
788
- "defaultValue": "DEFAULT_DEBOUNCE_INSANELY_FAST"
789
- },
790
- "defaultTime": {
791
- "type": "string",
792
- "mutable": false,
793
- "complexType": {
794
- "original": "string | null",
795
- "resolved": "string",
796
- "references": {}
797
- },
798
- "required": false,
799
- "optional": true,
800
- "docs": {
801
- "tags": [],
802
- "text": "The defaultTime defines the default setting for the timepicker when you open the popup. Default time must match the provided format."
803
- },
804
- "attribute": "default-time",
805
- "reflect": false
806
- },
807
- "debounce": {
808
- "type": "number",
809
- "mutable": false,
810
- "complexType": {
811
- "original": "number",
812
- "resolved": "number",
813
- "references": {}
814
- },
815
- "required": false,
816
- "optional": false,
817
- "docs": {
818
- "tags": [],
819
- "text": "Set the amount of time, in milliseconds, to wait to trigger the `six-timepicker-change-debounced` event.\nIf you want your change debounce event to not trigger when keeping the nav button pressed before, make sure debounce\nis a bit bigger than timeout, otherwise keeping the button pressed will trigger the event twice: once you click\n(and keep pressed) and once you release"
820
- },
821
- "attribute": "debounce",
822
- "reflect": false,
823
- "defaultValue": "DEFAULT_DEBOUNCE_FAST"
824
- }
825
- }; }
826
- static get states() { return {
827
- "isPopupContentUp": {},
828
- "isDropDownContentUp": {},
829
- "internalValue": {}
830
- }; }
831
- static get events() { return [{
832
- "method": "sixChange",
833
- "name": "six-timepicker-change",
834
- "bubbles": true,
835
- "cancelable": true,
836
- "composed": true,
837
- "docs": {
838
- "tags": [],
839
- "text": "Emitted when the timepicker's value changes"
840
- },
841
- "complexType": {
842
- "original": "SixTimepickerChange",
843
- "resolved": "SixTimepickerChange",
844
- "references": {
845
- "SixTimepickerChange": {
846
- "location": "local"
847
- }
848
- }
849
- }
850
- }, {
851
- "method": "sixChangeDebounced",
852
- "name": "six-timepicker-change-debounced",
853
- "bubbles": true,
854
- "cancelable": true,
855
- "composed": true,
856
- "docs": {
857
- "tags": [],
858
- "text": "Emitted when the timepicker's value changes, but debounced"
859
- },
860
- "complexType": {
861
- "original": "SixTimepickerChange",
862
- "resolved": "SixTimepickerChange",
863
- "references": {
864
- "SixTimepickerChange": {
865
- "location": "local"
866
- }
867
- }
868
- }
869
- }, {
870
- "method": "sixClear",
871
- "name": "six-timepicker-clear",
872
- "bubbles": true,
873
- "cancelable": true,
874
- "composed": true,
875
- "docs": {
876
- "tags": [],
877
- "text": "Emitted when the clear button is activated."
878
- },
879
- "complexType": {
880
- "original": "EmptyPayload",
881
- "resolved": "undefined",
882
- "references": {
883
- "EmptyPayload": {
884
- "location": "import",
885
- "path": "../../utils/types"
886
- }
887
- }
888
- }
889
- }]; }
890
- static get methods() { return {
891
- "reportValidity": {
892
- "complexType": {
893
- "signature": "() => Promise<boolean>",
894
- "parameters": [],
895
- "references": {
896
- "Promise": {
897
- "location": "global"
898
- }
899
- },
900
- "return": "Promise<boolean>"
901
- },
902
- "docs": {
903
- "text": "Checks for validity and shows the browser's validation message if the control is invalid.",
904
- "tags": []
905
- }
906
- },
907
- "checkValidity": {
908
- "complexType": {
909
- "signature": "() => Promise<boolean>",
910
- "parameters": [],
911
- "references": {
912
- "Promise": {
913
- "location": "global"
914
- }
915
- },
916
- "return": "Promise<boolean>"
917
- },
918
- "docs": {
919
- "text": "Checks for validity.",
920
- "tags": []
921
- }
922
- },
923
- "setCustomValidity": {
924
- "complexType": {
925
- "signature": "(message: string) => Promise<void>",
926
- "parameters": [{
927
- "tags": [],
928
- "text": ""
929
- }],
930
- "references": {
931
- "Promise": {
932
- "location": "global"
933
- }
934
- },
935
- "return": "Promise<void>"
936
- },
937
- "docs": {
938
- "text": "Sets a custom validation message. If `message` is not empty, the field will be considered invalid.",
939
- "tags": []
940
- }
941
- },
942
- "reset": {
943
- "complexType": {
944
- "signature": "() => Promise<void>",
945
- "parameters": [],
946
- "references": {
947
- "Promise": {
948
- "location": "global"
949
- }
950
- },
951
- "return": "Promise<void>"
952
- },
953
- "docs": {
954
- "text": "Resets the formcontrol",
955
- "tags": []
956
- }
957
- }
958
- }; }
959
- static get elementRef() { return "host"; }
960
- static get watchers() { return [{
961
- "propName": "debounce",
962
- "methodName": "debounceChanged"
963
- }, {
964
- "propName": "value",
965
- "methodName": "valueChanged"
966
- }]; }
967
- static get listeners() { return [{
968
- "name": "resize",
969
- "method": "resizeHandler",
970
- "target": "window",
971
- "capture": false,
972
- "passive": true
973
- }, {
974
- "name": "scroll",
975
- "method": "scrollHandler",
976
- "target": "window",
977
- "capture": false,
978
- "passive": true
979
- }]; }
980
- }
1
+ import { h } from '@stencil/core';
2
+ import { ItemPickerType } from '../six-item-picker/types';
3
+ import { SixTimeFormat } from './six-time-format';
4
+ import { SixTimePropertyName, TIME_FORMAT_CHAR } from './six-timepicker.types';
5
+ import { createTimeString, getCurrentTime, isValidTimeString, parseTimeString, TIME_FORMAT_SEPARATOR, } from '../../utils/time.util';
6
+ import { debounce, DEFAULT_DEBOUNCE_FAST, DEFAULT_DEBOUNCE_INSANELY_FAST } from '../../utils/execution-control';
7
+ import { EventListeners } from '../../utils/event-listeners';
8
+ import { hasSlot } from '../../utils/slot';
9
+ import { isNil } from '../../utils/type-check';
10
+ const TAG = `[SIX-TIMEPICKER]`;
11
+ const DEBOUNCE_TIMEPICKER_LISTENER = 'debounced-timepicker';
12
+ const MIN_POPUP_HEIGHT = 145;
13
+ /**
14
+ * @since 2.0.0
15
+ * @status experimental
16
+ *
17
+ * @part input - The input field
18
+ * @part container - The container of whole component
19
+ * @part popup - The popup of the timepicker component
20
+ *
21
+ */
22
+ export class SixTimepicker {
23
+ constructor() {
24
+ this.eventListeners = new EventListeners();
25
+ this.defaultValue = null;
26
+ this.handleInputChange = (event) => {
27
+ event.stopPropagation();
28
+ const inputValue = this.inputElement.value;
29
+ if (!isValidTimeString(inputValue, this.format)) {
30
+ this.sixChange.emit({
31
+ value: {},
32
+ valueAsString: '',
33
+ });
34
+ return;
35
+ }
36
+ this.internalValue = parseTimeString(inputValue, this.format);
37
+ this.sixChange.emit({
38
+ value: this.internalValue,
39
+ valueAsString: createTimeString(this.internalValue, this.format),
40
+ });
41
+ };
42
+ this.handleSixTimepickerChangeDebounced = ({ detail }) => {
43
+ this.sixChangeDebounced.emit(detail);
44
+ };
45
+ this.handleChange = (event, property) => {
46
+ // stop propagation, since the timepicker should not expose the events of the underlying item-picker
47
+ event.stopPropagation();
48
+ // update the internal state
49
+ this.internalValue[property] = event.detail;
50
+ const timeString = createTimeString(this.internalValue, this.format);
51
+ // fire timepicker's own event
52
+ this.sixChange.emit({
53
+ changedProperty: property,
54
+ value: this.internalValue,
55
+ valueAsString: timeString,
56
+ });
57
+ // update the input value
58
+ this.value = timeString;
59
+ };
60
+ this.handleDocumentMouseDown = (event) => {
61
+ // Close when clicking outside of the containing element
62
+ const path = event.composedPath();
63
+ if (!path.includes(this.host)) {
64
+ this.closePopup();
65
+ return;
66
+ }
67
+ };
68
+ this.handleClearClick = (event) => {
69
+ event.stopPropagation();
70
+ this.value = undefined;
71
+ this.sixClear.emit();
72
+ };
73
+ this.format = SixTimeFormat.HHmmss;
74
+ this.separator = TIME_FORMAT_SEPARATOR;
75
+ this.value = undefined;
76
+ this.open = false;
77
+ this.inline = false;
78
+ this.readonly = false;
79
+ this.disabled = false;
80
+ this.placement = undefined;
81
+ this.size = 'medium';
82
+ this.required = undefined;
83
+ this.placeholder = undefined;
84
+ this.errorOnBlur = false;
85
+ this.errorText = '';
86
+ this.label = '';
87
+ this.name = '';
88
+ this.clearable = false;
89
+ this.iconPosition = 'left';
90
+ this.hoist = false;
91
+ this.timeout = DEFAULT_DEBOUNCE_FAST;
92
+ this.interval = DEFAULT_DEBOUNCE_INSANELY_FAST;
93
+ this.defaultTime = undefined;
94
+ this.debounce = DEFAULT_DEBOUNCE_FAST;
95
+ this.isPopupContentUp = false;
96
+ this.isDropDownContentUp = false;
97
+ this.internalValue = undefined;
98
+ }
99
+ async resizeHandler() {
100
+ this.calcIsPopupContentUp();
101
+ this.moveOpenHoistedPopup();
102
+ }
103
+ async scrollHandler() {
104
+ this.calcIsPopupContentUp();
105
+ this.moveOpenHoistedPopup();
106
+ }
107
+ debounceChanged() {
108
+ this.eventListeners.removeByIdentifier(DEBOUNCE_TIMEPICKER_LISTENER);
109
+ this.eventListeners.add(this.host, 'six-timepicker-change', debounce(this.handleSixTimepickerChangeDebounced, this.debounce), DEBOUNCE_TIMEPICKER_LISTENER);
110
+ }
111
+ /**
112
+ * Update the native input element when the value changes
113
+ */
114
+ valueChanged(newValue) {
115
+ if (this.value !== newValue) {
116
+ this.value = newValue;
117
+ }
118
+ this.setupInternalTime();
119
+ this.sixChange.emit({
120
+ value: this.internalValue,
121
+ valueAsString: createTimeString(this.internalValue, this.format),
122
+ });
123
+ }
124
+ /** Checks for validity and shows the browser's validation message if the control is invalid. */
125
+ async reportValidity() {
126
+ return this.inputElement.reportValidity();
127
+ }
128
+ /** Checks for validity. */
129
+ async checkValidity() {
130
+ return this.inputElement.checkValidity();
131
+ }
132
+ /** Sets a custom validation message. If `message` is not empty, the field will be considered invalid. */
133
+ async setCustomValidity(message) {
134
+ await this.inputElement.setCustomValidity(message);
135
+ }
136
+ /** Resets the formcontrol */
137
+ async reset() {
138
+ this.internalValue = this.defaultValue;
139
+ this.inputElement.value = createTimeString(this.internalValue, this.format);
140
+ await this.inputElement.reset();
141
+ }
142
+ componentWillLoad() {
143
+ this.setupInternalTime();
144
+ if (this.inline) {
145
+ this.open = true;
146
+ }
147
+ if (this.open) {
148
+ this.eventListeners.add(document, 'mousedown', this.handleDocumentMouseDown);
149
+ }
150
+ }
151
+ componentDidLoad() {
152
+ this.eventListeners.add(this.host, 'six-timepicker-change', debounce(this.handleSixTimepickerChangeDebounced, this.debounce), DEBOUNCE_TIMEPICKER_LISTENER);
153
+ this.eventListeners.add(this.inputElement, 'six-input-input', debounce(this.handleInputChange, this.debounce));
154
+ }
155
+ disconnectedCallback() {
156
+ this.eventListeners.removeAll();
157
+ }
158
+ calcIsPopupContentUp() {
159
+ if (!this.inputElement || !this.wrapper) {
160
+ return;
161
+ }
162
+ const inputBoundingRect = this.inputElement.getBoundingClientRect();
163
+ const wrapperBoundingRect = this.wrapper.getBoundingClientRect();
164
+ const minPopupHeight = Math.max(wrapperBoundingRect.height, MIN_POPUP_HEIGHT);
165
+ const moreSpaceInTop = inputBoundingRect.y > window.innerHeight / 2;
166
+ this.isPopupContentUp = moreSpaceInTop && window.innerHeight < inputBoundingRect.bottom + minPopupHeight;
167
+ }
168
+ /*
169
+ * The position of the hoisted timepicker needs to be correctly calculated since the position changes to fixed.
170
+ * Thus if the user scrolls or adjusts the screen size we need to recalculate the timepicker position.
171
+ */
172
+ moveOpenHoistedPopup() {
173
+ if (!this.hoist || !this.open) {
174
+ return;
175
+ }
176
+ const popupBoundingClientRect = this.popup.getBoundingClientRect();
177
+ const popupHeight = popupBoundingClientRect.height;
178
+ const inputBoundingClientRect = this.inputElement.getBoundingClientRect();
179
+ const inputTop = inputBoundingClientRect.top;
180
+ const inputHeight = inputBoundingClientRect.height;
181
+ this.calcIsPopupContentUp();
182
+ if (this.isPopupContentUp) {
183
+ this.popup.style.top = `${inputTop - popupHeight}px`;
184
+ }
185
+ else {
186
+ this.popup.style.top = `${inputTop + inputHeight}px`;
187
+ }
188
+ }
189
+ getSixTimeUnitPicker(params) {
190
+ return (h("six-item-picker", { class: params.class, timeout: this.timeout, interval: this.interval, padded: true, min: params.min, max: params.max, value: this.internalValue[params.propertyName], items: params.items, type: params.type || ItemPickerType.NUMBER, "padding-length": params.paddingLength, "onSix-item-picker-change": (event) => this.handleChange(event, params.propertyName) }));
191
+ }
192
+ setupInternalTime() {
193
+ if (this.is12HourClock() && !this.format.includes(TIME_FORMAT_CHAR.PERIOD)) {
194
+ console.error(`${TAG} You provided a 12-hour-clock format but are missing the period (am or pm) in the time-format-string!`);
195
+ }
196
+ if (this.value === null || this.value === undefined) {
197
+ this.internalValue = isNil(this.defaultTime)
198
+ ? getCurrentTime(this.is24HourClock())
199
+ : parseTimeString(this.defaultTime, this.format);
200
+ }
201
+ else {
202
+ this.internalValue = parseTimeString(this.value, this.format);
203
+ }
204
+ this.defaultValue = this.internalValue;
205
+ }
206
+ getHour24Picker() {
207
+ if (!this.is24HourClock()) {
208
+ return;
209
+ }
210
+ return this.getSixTimeUnitPicker({ min: 0, max: 23, propertyName: SixTimePropertyName.HOURS });
211
+ }
212
+ is24HourClock() {
213
+ return this.format.includes(TIME_FORMAT_CHAR.HOUR_24);
214
+ }
215
+ getHour12Picker() {
216
+ if (!this.is12HourClock()) {
217
+ return;
218
+ }
219
+ return this.getSixTimeUnitPicker({ min: 0, max: 11, propertyName: SixTimePropertyName.HOURS });
220
+ }
221
+ is12HourClock() {
222
+ return this.format.includes(TIME_FORMAT_CHAR.HOUR_12);
223
+ }
224
+ getAmPmPicker() {
225
+ if (!this.is12HourClock()) {
226
+ return;
227
+ }
228
+ const items = ['AM', 'PM'];
229
+ return this.getSixTimeUnitPicker({
230
+ items,
231
+ type: ItemPickerType.CUSTOM,
232
+ propertyName: SixTimePropertyName.PERIOD,
233
+ });
234
+ }
235
+ getMinutePicker() {
236
+ if (!this.format.includes(TIME_FORMAT_CHAR.MINUTE)) {
237
+ return;
238
+ }
239
+ return this.getSixTimeUnitPicker({ min: 0, max: 59, propertyName: SixTimePropertyName.MINUTES });
240
+ }
241
+ getSecondsPicker() {
242
+ if (!this.format.includes(TIME_FORMAT_CHAR.SECOND)) {
243
+ return;
244
+ }
245
+ return this.getSixTimeUnitPicker({ min: 0, max: 59, propertyName: SixTimePropertyName.SECONDS });
246
+ }
247
+ getMillisecondsPicker() {
248
+ if (!this.format.includes(TIME_FORMAT_CHAR.MILLISECOND)) {
249
+ return;
250
+ }
251
+ return this.getSixTimeUnitPicker({
252
+ min: 0,
253
+ max: 999,
254
+ class: 'timepicker__item--wide',
255
+ paddingLength: 3,
256
+ propertyName: SixTimePropertyName.MILLISECONDS,
257
+ });
258
+ }
259
+ getSeparator() {
260
+ return (h("div", { class: "timepicker__separator" }, h("span", null, this.separator)));
261
+ }
262
+ getContent() {
263
+ const elementsInOrder = [
264
+ this.getHour24Picker(),
265
+ this.getHour12Picker(),
266
+ this.getMinutePicker(),
267
+ this.getSecondsPicker(),
268
+ this.getMillisecondsPicker(),
269
+ ];
270
+ const visibleElements = elementsInOrder.filter((el) => el !== undefined);
271
+ return visibleElements.map((el, idx) => {
272
+ if (idx === visibleElements.length - 1) {
273
+ return [el];
274
+ }
275
+ return [el, this.getSeparator()];
276
+ });
277
+ }
278
+ openPopup() {
279
+ if (!this.open && !this.disabled) {
280
+ this.open = true;
281
+ this.eventListeners.add(document, 'mousedown', this.handleDocumentMouseDown);
282
+ }
283
+ }
284
+ closePopup() {
285
+ if (this.inline) {
286
+ return;
287
+ }
288
+ this.open = false;
289
+ this.eventListeners.remove(document, 'mousedown', this.handleDocumentMouseDown);
290
+ }
291
+ renderClearable() {
292
+ return (this.clearable && (h("button", { slot: "suffix", class: {
293
+ timepicker_clear: true,
294
+ 'timepicker_clear--right': this.iconPosition === 'left',
295
+ 'timepicker_clear--left': this.iconPosition === 'right',
296
+ }, type: "button", onClick: this.handleClearClick, tabindex: "-1" }, h("six-icon", { size: "small" }, "clear"))));
297
+ }
298
+ renderCustomIcon() {
299
+ const icon = hasSlot(this.host, 'custom-icon') ? (h("slot", { name: "custom-icon" })) : (h("six-icon", { size: this.size === 'large' ? 'medium' : this.size }, "watch_later"));
300
+ return (h("span", { slot: "prefix", part: "icon", class: {
301
+ prefix: true,
302
+ 'prefix--right': this.iconPosition === 'right',
303
+ } }, icon));
304
+ }
305
+ calcIsDropDownContentUp() {
306
+ if (!this.inputElement || !this.wrapper) {
307
+ return;
308
+ }
309
+ const inputBoundingRect = this.inputElement.getBoundingClientRect();
310
+ const wrapperBoundingRect = this.wrapper.getBoundingClientRect();
311
+ const minPopupHeight = Math.max(wrapperBoundingRect.height, MIN_POPUP_HEIGHT);
312
+ const moreSpaceInTop = inputBoundingRect.y > window.innerHeight / 2;
313
+ this.isDropDownContentUp = moreSpaceInTop && window.innerHeight < inputBoundingRect.bottom + minPopupHeight;
314
+ }
315
+ /*
316
+ * If the popup is hoisted we popup is hoisted its position will change to fix to not be clipped of by a containing container.
317
+ * To render the popup correctly we render it normally, and then assign this screenposition to the fixed popup
318
+ */
319
+ adjustPopupForHoisting() {
320
+ if (!this.hoist) {
321
+ return;
322
+ }
323
+ // execute after dropdown has been rendered to make sure the popup reference is correctly set
324
+ setTimeout(() => {
325
+ if (!this.popup) {
326
+ return;
327
+ }
328
+ // take a snapshot of normally rendered popup
329
+ const popupBoundingClientRect = this.popup.getBoundingClientRect();
330
+ // apply screen position to fixed popup
331
+ this.popup.style.position = 'fixed';
332
+ ['top', 'left', 'width', 'height'].forEach((property) => {
333
+ this.popup.style[property] = `${popupBoundingClientRect[property]}px`;
334
+ });
335
+ const inputBoundingClientRect = this.inputElement.getBoundingClientRect();
336
+ const inputTop = inputBoundingClientRect.top;
337
+ const popupTop = popupBoundingClientRect.top;
338
+ this.calcIsDropDownContentUp();
339
+ // check screen position to check whether the popup should be moved above or below the trigger element
340
+ if (this.isDropDownContentUp && inputTop < popupTop) {
341
+ // move popup above input field if timepicker is at bottom of screen
342
+ this.popup.style.top = `${popupTop - popupBoundingClientRect.height - inputBoundingClientRect.height}px`;
343
+ }
344
+ }, 0);
345
+ }
346
+ render() {
347
+ this.adjustPopupForHoisting();
348
+ return (h("div", { part: "container", ref: (el) => (this.wrapper = el), class: "timepicker__container" }, h("six-input", { ref: (el) => (this.inputElement = el), part: "input", onClick: () => this.openPopup(), value: this.value, placeholder: this.placeholder, readonly: this.readonly, disabled: this.disabled, size: this.size, name: this.name, label: this.label, required: this.required, "error-text": this.errorText, "error-on-blur": this.errorOnBlur, class: {
349
+ 'input--empty': !this.value,
350
+ 'input--hide': this.inline,
351
+ } }, this.renderCustomIcon(), this.renderClearable(), hasSlot(this.host, 'error-text') ? (h("span", { slot: "error-text" }, h("slot", { name: "error-text" }))) : null, hasSlot(this.host, 'label') ? (h("span", { slot: "label" }, h("slot", { name: "label" }))) : null), this.open && (h("div", { ref: (el) => (this.popup = el), part: "popup", class: {
352
+ timepicker__popup: true,
353
+ 'timepicker__popup--is-up': this.placement ? this.placement === 'top' : this.isPopupContentUp,
354
+ 'timepicker__popup--is-inline': this.inline,
355
+ } }, ...this.getContent(), this.getAmPmPicker()))));
356
+ }
357
+ static get is() { return "six-timepicker"; }
358
+ static get encapsulation() { return "shadow"; }
359
+ static get originalStyleUrls() {
360
+ return {
361
+ "$": ["six-timepicker.scss"]
362
+ };
363
+ }
364
+ static get styleUrls() {
365
+ return {
366
+ "$": ["six-timepicker.css"]
367
+ };
368
+ }
369
+ static get properties() {
370
+ return {
371
+ "format": {
372
+ "type": "string",
373
+ "mutable": false,
374
+ "complexType": {
375
+ "original": "SixTimeFormat",
376
+ "resolved": "SixTimeFormat.HH | SixTimeFormat.HHmm | SixTimeFormat.HHmmss | SixTimeFormat.HHmmssms | SixTimeFormat.hhaa | SixTimeFormat.hhmmaa | SixTimeFormat.hhmmssaa | SixTimeFormat.hhmmssmsaa | SixTimeFormat.mm | SixTimeFormat.ms | SixTimeFormat.ss",
377
+ "references": {
378
+ "SixTimeFormat": {
379
+ "location": "import",
380
+ "path": "./six-time-format"
381
+ }
382
+ }
383
+ },
384
+ "required": false,
385
+ "optional": false,
386
+ "docs": {
387
+ "tags": [],
388
+ "text": "Define the time format. Valid formats are:\n\nHH:mm:ss\nhh:mm:ss:aa\nHH:mm:ss:ms\nhh:mm:ss:ms:aa\nHH:mm\nhh:mm:aa\nHH\nhh:aa\nmm\nss\nms\n\nwhere HH is the 24 hour format\nand hh is the 12 hour format\n\nPlease notice that when using the 12-hour-clock (hh)\nyou always need a period indicator (aa). So the time can be parsed as either am or pm"
389
+ },
390
+ "attribute": "format",
391
+ "reflect": false,
392
+ "defaultValue": "SixTimeFormat.HHmmss"
393
+ },
394
+ "separator": {
395
+ "type": "string",
396
+ "mutable": false,
397
+ "complexType": {
398
+ "original": "string",
399
+ "resolved": "string",
400
+ "references": {}
401
+ },
402
+ "required": false,
403
+ "optional": false,
404
+ "docs": {
405
+ "tags": [],
406
+ "text": "Define the separator to be shown between the time unit pickers.\nPlease be aware that this property will modify the displayed separator only.\nThe separator for a timestring is always expected to be a colon (eg. '13:52:20')"
407
+ },
408
+ "attribute": "separator",
409
+ "reflect": false,
410
+ "defaultValue": "TIME_FORMAT_SEPARATOR"
411
+ },
412
+ "value": {
413
+ "type": "string",
414
+ "mutable": true,
415
+ "complexType": {
416
+ "original": "string | null",
417
+ "resolved": "string",
418
+ "references": {}
419
+ },
420
+ "required": false,
421
+ "optional": true,
422
+ "docs": {
423
+ "tags": [],
424
+ "text": "The value of the timepicker provided as a string. The string mast match the provided format (or default format)"
425
+ },
426
+ "attribute": "value",
427
+ "reflect": false
428
+ },
429
+ "open": {
430
+ "type": "boolean",
431
+ "mutable": true,
432
+ "complexType": {
433
+ "original": "boolean",
434
+ "resolved": "boolean",
435
+ "references": {}
436
+ },
437
+ "required": false,
438
+ "optional": false,
439
+ "docs": {
440
+ "tags": [],
441
+ "text": "Indicates whether or not the timepicker dropdown is open on startup. You can use this in lieu of the show/hide methods."
442
+ },
443
+ "attribute": "open",
444
+ "reflect": true,
445
+ "defaultValue": "false"
446
+ },
447
+ "inline": {
448
+ "type": "boolean",
449
+ "mutable": false,
450
+ "complexType": {
451
+ "original": "boolean",
452
+ "resolved": "boolean",
453
+ "references": {}
454
+ },
455
+ "required": false,
456
+ "optional": false,
457
+ "docs": {
458
+ "tags": [],
459
+ "text": "Indicates whether or not the timepicker should be shown as an inline (always open) component"
460
+ },
461
+ "attribute": "inline",
462
+ "reflect": true,
463
+ "defaultValue": "false"
464
+ },
465
+ "readonly": {
466
+ "type": "boolean",
467
+ "mutable": false,
468
+ "complexType": {
469
+ "original": "boolean",
470
+ "resolved": "boolean",
471
+ "references": {}
472
+ },
473
+ "required": false,
474
+ "optional": false,
475
+ "docs": {
476
+ "tags": [],
477
+ "text": "If `true` the user can only select a time via the timepicker but not directly edit the input field."
478
+ },
479
+ "attribute": "readonly",
480
+ "reflect": false,
481
+ "defaultValue": "false"
482
+ },
483
+ "disabled": {
484
+ "type": "boolean",
485
+ "mutable": false,
486
+ "complexType": {
487
+ "original": "boolean",
488
+ "resolved": "boolean",
489
+ "references": {}
490
+ },
491
+ "required": false,
492
+ "optional": false,
493
+ "docs": {
494
+ "tags": [],
495
+ "text": "If `true` the component is disabled."
496
+ },
497
+ "attribute": "disabled",
498
+ "reflect": false,
499
+ "defaultValue": "false"
500
+ },
501
+ "placement": {
502
+ "type": "string",
503
+ "mutable": false,
504
+ "complexType": {
505
+ "original": "'top' | 'bottom'",
506
+ "resolved": "\"bottom\" | \"top\"",
507
+ "references": {}
508
+ },
509
+ "required": false,
510
+ "optional": false,
511
+ "docs": {
512
+ "tags": [],
513
+ "text": "The enforced placement of the dropdown panel."
514
+ },
515
+ "attribute": "placement",
516
+ "reflect": false
517
+ },
518
+ "size": {
519
+ "type": "string",
520
+ "mutable": false,
521
+ "complexType": {
522
+ "original": "'small' | 'medium' | 'large'",
523
+ "resolved": "\"large\" | \"medium\" | \"small\"",
524
+ "references": {}
525
+ },
526
+ "required": false,
527
+ "optional": false,
528
+ "docs": {
529
+ "tags": [],
530
+ "text": "Timepicker size."
531
+ },
532
+ "attribute": "size",
533
+ "reflect": false,
534
+ "defaultValue": "'medium'"
535
+ },
536
+ "required": {
537
+ "type": "boolean",
538
+ "mutable": false,
539
+ "complexType": {
540
+ "original": "boolean",
541
+ "resolved": "boolean",
542
+ "references": {}
543
+ },
544
+ "required": false,
545
+ "optional": false,
546
+ "docs": {
547
+ "tags": [],
548
+ "text": "Set to true to make the input a required field."
549
+ },
550
+ "attribute": "required",
551
+ "reflect": true
552
+ },
553
+ "placeholder": {
554
+ "type": "string",
555
+ "mutable": false,
556
+ "complexType": {
557
+ "original": "string | null",
558
+ "resolved": "string",
559
+ "references": {}
560
+ },
561
+ "required": false,
562
+ "optional": true,
563
+ "docs": {
564
+ "tags": [],
565
+ "text": "The placeholder defines what text to be shown on the input element"
566
+ },
567
+ "attribute": "placeholder",
568
+ "reflect": false
569
+ },
570
+ "errorOnBlur": {
571
+ "type": "boolean",
572
+ "mutable": false,
573
+ "complexType": {
574
+ "original": "boolean",
575
+ "resolved": "boolean",
576
+ "references": {}
577
+ },
578
+ "required": false,
579
+ "optional": false,
580
+ "docs": {
581
+ "tags": [],
582
+ "text": "Set to display the error text on blur and not when typing"
583
+ },
584
+ "attribute": "error-on-blur",
585
+ "reflect": false,
586
+ "defaultValue": "false"
587
+ },
588
+ "errorText": {
589
+ "type": "string",
590
+ "mutable": false,
591
+ "complexType": {
592
+ "original": "string",
593
+ "resolved": "string",
594
+ "references": {}
595
+ },
596
+ "required": false,
597
+ "optional": false,
598
+ "docs": {
599
+ "tags": [],
600
+ "text": "The input's error text. Alternatively, you can use the error-text slot."
601
+ },
602
+ "attribute": "error-text",
603
+ "reflect": false,
604
+ "defaultValue": "''"
605
+ },
606
+ "label": {
607
+ "type": "string",
608
+ "mutable": false,
609
+ "complexType": {
610
+ "original": "string",
611
+ "resolved": "string",
612
+ "references": {}
613
+ },
614
+ "required": false,
615
+ "optional": false,
616
+ "docs": {
617
+ "tags": [],
618
+ "text": "The input's label. Alternatively, you can use the label slot."
619
+ },
620
+ "attribute": "label",
621
+ "reflect": false,
622
+ "defaultValue": "''"
623
+ },
624
+ "name": {
625
+ "type": "string",
626
+ "mutable": false,
627
+ "complexType": {
628
+ "original": "string",
629
+ "resolved": "string",
630
+ "references": {}
631
+ },
632
+ "required": false,
633
+ "optional": false,
634
+ "docs": {
635
+ "tags": [],
636
+ "text": "The input's name attribute."
637
+ },
638
+ "attribute": "name",
639
+ "reflect": true,
640
+ "defaultValue": "''"
641
+ },
642
+ "clearable": {
643
+ "type": "boolean",
644
+ "mutable": false,
645
+ "complexType": {
646
+ "original": "boolean",
647
+ "resolved": "boolean",
648
+ "references": {}
649
+ },
650
+ "required": false,
651
+ "optional": false,
652
+ "docs": {
653
+ "tags": [],
654
+ "text": "Set to true to add a clear button when the input is populated."
655
+ },
656
+ "attribute": "clearable",
657
+ "reflect": false,
658
+ "defaultValue": "false"
659
+ },
660
+ "iconPosition": {
661
+ "type": "string",
662
+ "mutable": false,
663
+ "complexType": {
664
+ "original": "'left' | 'right'",
665
+ "resolved": "\"left\" | \"right\"",
666
+ "references": {}
667
+ },
668
+ "required": false,
669
+ "optional": false,
670
+ "docs": {
671
+ "tags": [],
672
+ "text": "Set the position of the icon"
673
+ },
674
+ "attribute": "icon-position",
675
+ "reflect": false,
676
+ "defaultValue": "'left'"
677
+ },
678
+ "hoist": {
679
+ "type": "boolean",
680
+ "mutable": false,
681
+ "complexType": {
682
+ "original": "boolean",
683
+ "resolved": "boolean",
684
+ "references": {}
685
+ },
686
+ "required": false,
687
+ "optional": false,
688
+ "docs": {
689
+ "tags": [],
690
+ "text": "Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`."
691
+ },
692
+ "attribute": "hoist",
693
+ "reflect": false,
694
+ "defaultValue": "false"
695
+ },
696
+ "timeout": {
697
+ "type": "number",
698
+ "mutable": false,
699
+ "complexType": {
700
+ "original": "number",
701
+ "resolved": "number",
702
+ "references": {}
703
+ },
704
+ "required": false,
705
+ "optional": false,
706
+ "docs": {
707
+ "tags": [],
708
+ "text": "Set the amount of time, in milliseconds, to wait to trigger faster switching between timeunits (e.g. hours)."
709
+ },
710
+ "attribute": "timeout",
711
+ "reflect": false,
712
+ "defaultValue": "DEFAULT_DEBOUNCE_FAST"
713
+ },
714
+ "interval": {
715
+ "type": "number",
716
+ "mutable": false,
717
+ "complexType": {
718
+ "original": "number",
719
+ "resolved": "number",
720
+ "references": {}
721
+ },
722
+ "required": false,
723
+ "optional": false,
724
+ "docs": {
725
+ "tags": [],
726
+ "text": "Set the amount of time, in milliseconds, to wait between switching to next timeunit (e.g. next hour) when mouse button is held pressed."
727
+ },
728
+ "attribute": "interval",
729
+ "reflect": false,
730
+ "defaultValue": "DEFAULT_DEBOUNCE_INSANELY_FAST"
731
+ },
732
+ "defaultTime": {
733
+ "type": "string",
734
+ "mutable": false,
735
+ "complexType": {
736
+ "original": "string | null",
737
+ "resolved": "string",
738
+ "references": {}
739
+ },
740
+ "required": false,
741
+ "optional": true,
742
+ "docs": {
743
+ "tags": [],
744
+ "text": "The defaultTime defines the default setting for the timepicker when you open the popup. Default time must match the provided format."
745
+ },
746
+ "attribute": "default-time",
747
+ "reflect": false
748
+ },
749
+ "debounce": {
750
+ "type": "number",
751
+ "mutable": false,
752
+ "complexType": {
753
+ "original": "number",
754
+ "resolved": "number",
755
+ "references": {}
756
+ },
757
+ "required": false,
758
+ "optional": false,
759
+ "docs": {
760
+ "tags": [],
761
+ "text": "Set the amount of time, in milliseconds, to wait to trigger the `six-timepicker-change-debounced` event.\nIf you want your change debounce event to not trigger when keeping the nav button pressed before, make sure debounce\nis a bit bigger than timeout, otherwise keeping the button pressed will trigger the event twice: once you click\n(and keep pressed) and once you release"
762
+ },
763
+ "attribute": "debounce",
764
+ "reflect": false,
765
+ "defaultValue": "DEFAULT_DEBOUNCE_FAST"
766
+ }
767
+ };
768
+ }
769
+ static get states() {
770
+ return {
771
+ "isPopupContentUp": {},
772
+ "isDropDownContentUp": {},
773
+ "internalValue": {}
774
+ };
775
+ }
776
+ static get events() {
777
+ return [{
778
+ "method": "sixChange",
779
+ "name": "six-timepicker-change",
780
+ "bubbles": true,
781
+ "cancelable": true,
782
+ "composed": true,
783
+ "docs": {
784
+ "tags": [],
785
+ "text": "Emitted when the timepicker's value changes"
786
+ },
787
+ "complexType": {
788
+ "original": "SixTimepickerChange",
789
+ "resolved": "SixTimepickerChange",
790
+ "references": {
791
+ "SixTimepickerChange": {
792
+ "location": "local",
793
+ "path": "/home/runner/work/six-webcomponents/six-webcomponents/packages/ui-library/src/components/six-timepicker/six-timepicker.tsx"
794
+ }
795
+ }
796
+ }
797
+ }, {
798
+ "method": "sixChangeDebounced",
799
+ "name": "six-timepicker-change-debounced",
800
+ "bubbles": true,
801
+ "cancelable": true,
802
+ "composed": true,
803
+ "docs": {
804
+ "tags": [],
805
+ "text": "Emitted when the timepicker's value changes, but debounced"
806
+ },
807
+ "complexType": {
808
+ "original": "SixTimepickerChange",
809
+ "resolved": "SixTimepickerChange",
810
+ "references": {
811
+ "SixTimepickerChange": {
812
+ "location": "local",
813
+ "path": "/home/runner/work/six-webcomponents/six-webcomponents/packages/ui-library/src/components/six-timepicker/six-timepicker.tsx"
814
+ }
815
+ }
816
+ }
817
+ }, {
818
+ "method": "sixClear",
819
+ "name": "six-timepicker-clear",
820
+ "bubbles": true,
821
+ "cancelable": true,
822
+ "composed": true,
823
+ "docs": {
824
+ "tags": [],
825
+ "text": "Emitted when the clear button is activated."
826
+ },
827
+ "complexType": {
828
+ "original": "EmptyPayload",
829
+ "resolved": "undefined",
830
+ "references": {
831
+ "EmptyPayload": {
832
+ "location": "import",
833
+ "path": "../../utils/types"
834
+ }
835
+ }
836
+ }
837
+ }];
838
+ }
839
+ static get methods() {
840
+ return {
841
+ "reportValidity": {
842
+ "complexType": {
843
+ "signature": "() => Promise<boolean>",
844
+ "parameters": [],
845
+ "references": {
846
+ "Promise": {
847
+ "location": "global"
848
+ }
849
+ },
850
+ "return": "Promise<boolean>"
851
+ },
852
+ "docs": {
853
+ "text": "Checks for validity and shows the browser's validation message if the control is invalid.",
854
+ "tags": []
855
+ }
856
+ },
857
+ "checkValidity": {
858
+ "complexType": {
859
+ "signature": "() => Promise<boolean>",
860
+ "parameters": [],
861
+ "references": {
862
+ "Promise": {
863
+ "location": "global"
864
+ }
865
+ },
866
+ "return": "Promise<boolean>"
867
+ },
868
+ "docs": {
869
+ "text": "Checks for validity.",
870
+ "tags": []
871
+ }
872
+ },
873
+ "setCustomValidity": {
874
+ "complexType": {
875
+ "signature": "(message: string) => Promise<void>",
876
+ "parameters": [{
877
+ "tags": [],
878
+ "text": ""
879
+ }],
880
+ "references": {
881
+ "Promise": {
882
+ "location": "global"
883
+ }
884
+ },
885
+ "return": "Promise<void>"
886
+ },
887
+ "docs": {
888
+ "text": "Sets a custom validation message. If `message` is not empty, the field will be considered invalid.",
889
+ "tags": []
890
+ }
891
+ },
892
+ "reset": {
893
+ "complexType": {
894
+ "signature": "() => Promise<void>",
895
+ "parameters": [],
896
+ "references": {
897
+ "Promise": {
898
+ "location": "global"
899
+ }
900
+ },
901
+ "return": "Promise<void>"
902
+ },
903
+ "docs": {
904
+ "text": "Resets the formcontrol",
905
+ "tags": []
906
+ }
907
+ }
908
+ };
909
+ }
910
+ static get elementRef() { return "host"; }
911
+ static get watchers() {
912
+ return [{
913
+ "propName": "debounce",
914
+ "methodName": "debounceChanged"
915
+ }, {
916
+ "propName": "value",
917
+ "methodName": "valueChanged"
918
+ }];
919
+ }
920
+ static get listeners() {
921
+ return [{
922
+ "name": "resize",
923
+ "method": "resizeHandler",
924
+ "target": "window",
925
+ "capture": false,
926
+ "passive": true
927
+ }, {
928
+ "name": "scroll",
929
+ "method": "scrollHandler",
930
+ "target": "window",
931
+ "capture": false,
932
+ "passive": true
933
+ }];
934
+ }
935
+ }
936
+ //# sourceMappingURL=six-timepicker.js.map