@six-group/ui-library 0.0.0-insider.b85326c → 0.0.0-insider.b9211de

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 (494) hide show
  1. package/dist/cjs/{form-control-Ditp8yHw.js → form-control-CX8QRq9v.js} +3 -3
  2. package/dist/cjs/{form-control-Ditp8yHw.js.map → form-control-CX8QRq9v.js.map} +1 -1
  3. package/dist/cjs/{index-BKTrCUjx.js → index-C8rK7OAe.js} +19 -11
  4. package/dist/{esm/index-D0Go1Zjj.js.map → cjs/index-C8rK7OAe.js.map} +1 -1
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/six-alert.cjs.entry.js +1 -1
  7. package/dist/cjs/six-avatar.cjs.entry.js +1 -1
  8. package/dist/cjs/six-badge.cjs.entry.js +1 -1
  9. package/dist/cjs/six-breadcrumbs-item.cjs.entry.js +25 -0
  10. package/dist/cjs/six-breadcrumbs-item.cjs.entry.js.map +1 -0
  11. package/dist/cjs/six-breadcrumbs-item.entry.cjs.js.map +1 -0
  12. package/dist/cjs/six-breadcrumbs.cjs.entry.js +73 -0
  13. package/dist/cjs/six-breadcrumbs.cjs.entry.js.map +1 -0
  14. package/dist/cjs/six-breadcrumbs.entry.cjs.js.map +1 -0
  15. package/dist/cjs/six-button.six-spinner.entry.cjs.js.map +1 -0
  16. package/dist/cjs/{six-button.cjs.entry.js → six-button_2.cjs.entry.js} +56 -5
  17. package/dist/cjs/six-button_2.cjs.entry.js.map +1 -0
  18. package/dist/cjs/six-card.cjs.entry.js +2 -2
  19. package/dist/cjs/six-checkbox_2.cjs.entry.js +6 -6
  20. package/dist/cjs/six-date.cjs.entry.js +39 -34
  21. package/dist/cjs/six-date.cjs.entry.js.map +1 -1
  22. package/dist/cjs/six-date.entry.cjs.js.map +1 -1
  23. package/dist/cjs/six-datepicker.cjs.entry.js +4 -4
  24. package/dist/cjs/six-datepicker.cjs.entry.js.map +1 -1
  25. package/dist/cjs/six-datepicker.entry.cjs.js.map +1 -1
  26. package/dist/cjs/six-details.cjs.entry.js +4 -4
  27. package/dist/cjs/six-dialog.cjs.entry.js +1 -1
  28. package/dist/cjs/six-drawer.cjs.entry.js +1 -1
  29. package/dist/cjs/six-dropdown_2.cjs.entry.js +1 -1
  30. package/dist/cjs/six-error-page.cjs.entry.js +2 -2
  31. package/dist/cjs/six-error.cjs.entry.js +2 -2
  32. package/dist/cjs/six-file-list-item.cjs.entry.js +1 -1
  33. package/dist/cjs/six-file-list.cjs.entry.js +2 -2
  34. package/dist/cjs/six-file-upload.cjs.entry.js +1 -1
  35. package/dist/cjs/six-footer.cjs.entry.js +2 -2
  36. package/dist/cjs/six-group-label.cjs.entry.js +3 -3
  37. package/dist/cjs/six-header-dropdown-item.cjs.entry.js +3 -3
  38. package/dist/cjs/six-header-item.cjs.entry.js +2 -2
  39. package/dist/cjs/six-header-menu-button.cjs.entry.js +2 -2
  40. package/dist/cjs/six-header.cjs.entry.js +3 -3
  41. package/dist/cjs/six-icon-button.cjs.entry.js +4 -4
  42. package/dist/cjs/six-icon.cjs.entry.js +3 -3
  43. package/dist/cjs/six-input.cjs.entry.js +2 -2
  44. package/dist/cjs/six-item-picker.cjs.entry.js +1 -1
  45. package/dist/cjs/six-language-switcher.cjs.entry.js +1 -1
  46. package/dist/cjs/six-layout-grid.cjs.entry.js +2 -2
  47. package/dist/cjs/six-logo.cjs.entry.js +1 -1
  48. package/dist/cjs/six-main-container.cjs.entry.js +2 -2
  49. package/dist/cjs/six-menu-divider.cjs.entry.js +2 -2
  50. package/dist/cjs/six-menu-label.cjs.entry.js +2 -2
  51. package/dist/cjs/six-picto.cjs.entry.js +2 -2
  52. package/dist/cjs/six-progress-bar.cjs.entry.js +4 -4
  53. package/dist/cjs/six-progress-ring.cjs.entry.js +2 -2
  54. package/dist/cjs/six-radio.cjs.entry.js +3 -3
  55. package/dist/cjs/six-range.cjs.entry.js +4 -4
  56. package/dist/cjs/six-range.cjs.entry.js.map +1 -1
  57. package/dist/cjs/six-range.entry.cjs.js.map +1 -1
  58. package/dist/cjs/six-rating.cjs.entry.js +126 -0
  59. package/dist/cjs/six-rating.cjs.entry.js.map +1 -0
  60. package/dist/cjs/six-rating.entry.cjs.js.map +1 -0
  61. package/dist/cjs/six-root.cjs.entry.js +2 -2
  62. package/dist/cjs/six-search-field.cjs.entry.js +1 -1
  63. package/dist/cjs/six-select.cjs.entry.js +2 -2
  64. package/dist/cjs/six-sidebar-item-group.cjs.entry.js +1 -1
  65. package/dist/cjs/six-sidebar-item.cjs.entry.js +3 -3
  66. package/dist/cjs/six-sidebar.cjs.entry.js +3 -3
  67. package/dist/cjs/six-stage-indicator.cjs.entry.js +1 -1
  68. package/dist/cjs/six-switch.cjs.entry.js +4 -4
  69. package/dist/cjs/six-switch.cjs.entry.js.map +1 -1
  70. package/dist/cjs/six-switch.entry.cjs.js.map +1 -1
  71. package/dist/cjs/six-tab-group.cjs.entry.js +1 -1
  72. package/dist/cjs/six-tab-panel.cjs.entry.js +2 -2
  73. package/dist/cjs/six-tab.cjs.entry.js +4 -4
  74. package/dist/cjs/six-tab.cjs.entry.js.map +1 -1
  75. package/dist/cjs/six-tab.entry.cjs.js.map +1 -1
  76. package/dist/cjs/six-tag.cjs.entry.js +3 -3
  77. package/dist/cjs/six-textarea.cjs.entry.js +4 -4
  78. package/dist/cjs/six-tile.cjs.entry.js +6 -6
  79. package/dist/cjs/six-timepicker.cjs.entry.js +18 -10
  80. package/dist/cjs/six-timepicker.cjs.entry.js.map +1 -1
  81. package/dist/cjs/six-timepicker.entry.cjs.js.map +1 -1
  82. package/dist/cjs/six-tooltip.cjs.entry.js +3 -3
  83. package/dist/cjs/ui-library.cjs.js +3 -3
  84. package/dist/cjs/ui-library.cjs.js.map +1 -1
  85. package/dist/collection/collection-manifest.json +4 -1
  86. package/dist/collection/components/six-breadcrumbs/six-breadcrumbs.css +27 -0
  87. package/dist/collection/components/six-breadcrumbs/six-breadcrumbs.js +109 -0
  88. package/dist/collection/components/six-breadcrumbs/six-breadcrumbs.js.map +1 -0
  89. package/dist/collection/components/six-breadcrumbs-item/six-breadcrumbs-item.css +61 -0
  90. package/dist/collection/components/six-breadcrumbs-item/six-breadcrumbs-item.js +123 -0
  91. package/dist/collection/components/six-breadcrumbs-item/six-breadcrumbs-item.js.map +1 -0
  92. package/dist/collection/components/six-button/six-button.js +2 -2
  93. package/dist/collection/components/six-card/six-card.js +1 -1
  94. package/dist/collection/components/six-checkbox/six-checkbox.js +2 -2
  95. package/dist/collection/components/six-date/iso-date.js +32 -0
  96. package/dist/collection/components/six-date/iso-date.js.map +1 -1
  97. package/dist/collection/components/six-date/six-date.js +7 -34
  98. package/dist/collection/components/six-date/six-date.js.map +1 -1
  99. package/dist/collection/components/six-datepicker/six-datepicker.js +4 -4
  100. package/dist/collection/components/six-datepicker/six-datepicker.js.map +1 -1
  101. package/dist/collection/components/six-details/six-details.js +3 -3
  102. package/dist/collection/components/six-error/six-error.js +1 -1
  103. package/dist/collection/components/six-error-page/six-error-page.js +1 -1
  104. package/dist/collection/components/six-file-list/six-file-list.js +1 -1
  105. package/dist/collection/components/six-footer/six-footer.js +1 -1
  106. package/dist/collection/components/six-group-label/six-group-label.js +1 -1
  107. package/dist/collection/components/six-header/six-header.js +2 -2
  108. package/dist/collection/components/six-header-dropdown-item/six-header-dropdown-item.js +2 -2
  109. package/dist/collection/components/six-header-item/six-header-item.js +1 -1
  110. package/dist/collection/components/six-header-menu-button/six-header-menu-button.js +1 -1
  111. package/dist/collection/components/six-icon/six-icon.js +2 -2
  112. package/dist/collection/components/six-icon-button/six-icon-button.js +3 -3
  113. package/dist/collection/components/six-layout-grid/six-layout-grid.js +1 -1
  114. package/dist/collection/components/six-main-container/six-main-container.js +1 -1
  115. package/dist/collection/components/six-menu-divider/six-menu-divider.js +1 -1
  116. package/dist/collection/components/six-menu-item/six-menu-item.js +2 -2
  117. package/dist/collection/components/six-menu-label/six-menu-label.js +1 -1
  118. package/dist/collection/components/six-picto/six-picto.js +1 -1
  119. package/dist/collection/components/six-progress-bar/six-progress-bar.js +3 -3
  120. package/dist/collection/components/six-progress-ring/six-progress-ring.js +1 -1
  121. package/dist/collection/components/six-radio/six-radio.js +2 -2
  122. package/dist/collection/components/six-range/six-range.js +2 -2
  123. package/dist/collection/components/six-rating/six-rating.css +125 -0
  124. package/dist/collection/components/six-rating/six-rating.js +432 -0
  125. package/dist/collection/components/six-rating/six-rating.js.map +1 -0
  126. package/dist/collection/components/six-root/six-root.js +1 -1
  127. package/dist/collection/components/six-sidebar/six-sidebar.js +2 -2
  128. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js +2 -2
  129. package/dist/collection/components/six-switch/six-switch.js +2 -2
  130. package/dist/collection/components/six-tab/six-tab.css +12 -0
  131. package/dist/collection/components/six-tab/six-tab.js +2 -2
  132. package/dist/collection/components/six-tab/six-tab.js.map +1 -1
  133. package/dist/collection/components/six-tab-panel/six-tab-panel.js +1 -1
  134. package/dist/collection/components/six-tag/six-tag.js +2 -2
  135. package/dist/collection/components/six-textarea/six-textarea.js +2 -2
  136. package/dist/collection/components/six-tile/six-tile.js +5 -5
  137. package/dist/collection/components/six-timepicker/six-timepicker.js +17 -9
  138. package/dist/collection/components/six-timepicker/six-timepicker.js.map +1 -1
  139. package/dist/collection/components/six-tooltip/six-tooltip.js +2 -2
  140. package/dist/components/index.js +7 -1
  141. package/dist/components/index.js.map +1 -1
  142. package/dist/components/{p-DV46ui1Q.js → p-BB2rei7y.js} +3 -3
  143. package/dist/components/{p-DV46ui1Q.js.map → p-BB2rei7y.js.map} +1 -1
  144. package/dist/components/{p-BtNjuUha.js → p-BDCdPEjW.js} +6 -6
  145. package/dist/components/p-BDCdPEjW.js.map +1 -0
  146. package/dist/components/{p-Bl7vxyI3.js → p-BKl-wAjt.js} +7 -7
  147. package/dist/components/{p-Bl7vxyI3.js.map → p-BKl-wAjt.js.map} +1 -1
  148. package/dist/components/{p-Cr6sHYme.js → p-BLocui1Z.js} +4 -4
  149. package/dist/components/{p-Cr6sHYme.js.map → p-BLocui1Z.js.map} +1 -1
  150. package/dist/components/{p-B-XztaHV.js → p-BS2kSSCX.js} +8 -8
  151. package/dist/components/{p-B-XztaHV.js.map → p-BS2kSSCX.js.map} +1 -1
  152. package/dist/components/{p-mLQ66WNK.js → p-C12rf0Ka.js} +7 -7
  153. package/dist/components/{p-mLQ66WNK.js.map → p-C12rf0Ka.js.map} +1 -1
  154. package/dist/components/{p-D0dsFLio.js → p-C7EO-HRN.js} +24 -16
  155. package/dist/components/p-C7EO-HRN.js.map +1 -0
  156. package/dist/components/{p-DXhOme6Y.js → p-CH82uB3t.js} +4 -4
  157. package/dist/components/{p-DXhOme6Y.js.map → p-CH82uB3t.js.map} +1 -1
  158. package/dist/components/{p-BxWEEwNO.js → p-CNEhbYaS.js} +6 -6
  159. package/dist/components/{p-BxWEEwNO.js.map → p-CNEhbYaS.js.map} +1 -1
  160. package/dist/components/{p-7eUoSVPj.js → p-CVZ589gc.js} +7 -7
  161. package/dist/components/{p-7eUoSVPj.js.map → p-CVZ589gc.js.map} +1 -1
  162. package/dist/components/{p-Mse5vRUS.js → p-CdBejqVk.js} +5 -5
  163. package/dist/components/{p-Mse5vRUS.js.map → p-CdBejqVk.js.map} +1 -1
  164. package/dist/components/{p-BtF2Ym6T.js → p-D512q9rn.js} +17 -4
  165. package/dist/components/p-D512q9rn.js.map +1 -0
  166. package/dist/components/{p-CpcN3YG9.js → p-D7VTCp8h.js} +4 -4
  167. package/dist/components/{p-CpcN3YG9.js.map → p-D7VTCp8h.js.map} +1 -1
  168. package/dist/components/{p-CLtU4Br-.js → p-DHpl3Lfk.js} +4 -4
  169. package/dist/components/{p-CLtU4Br-.js.map → p-DHpl3Lfk.js.map} +1 -1
  170. package/dist/components/{p-BmW8cpEG.js → p-DIkvCBxr.js} +3 -3
  171. package/dist/components/{p-BmW8cpEG.js.map → p-DIkvCBxr.js.map} +1 -1
  172. package/dist/components/{p-eW-dQ-wI.js → p-Dyx3R5VU.js} +7 -7
  173. package/dist/components/{p-eW-dQ-wI.js.map → p-Dyx3R5VU.js.map} +1 -1
  174. package/dist/components/{p-CNVkBlqA.js → p-iuKqFOKd.js} +9 -9
  175. package/dist/components/{p-CNVkBlqA.js.map → p-iuKqFOKd.js.map} +1 -1
  176. package/dist/components/{p-CYrYPnLQ.js → p-jflTvJ8E.js} +5 -5
  177. package/dist/components/{p-CYrYPnLQ.js.map → p-jflTvJ8E.js.map} +1 -1
  178. package/dist/components/six-alert.js +3 -3
  179. package/dist/components/six-avatar.js +2 -2
  180. package/dist/components/six-badge.js +1 -1
  181. package/dist/components/six-breadcrumbs-item.d.ts +11 -0
  182. package/dist/components/six-breadcrumbs-item.js +58 -0
  183. package/dist/components/six-breadcrumbs-item.js.map +1 -0
  184. package/dist/components/six-breadcrumbs.d.ts +11 -0
  185. package/dist/components/six-breadcrumbs.js +97 -0
  186. package/dist/components/six-breadcrumbs.js.map +1 -0
  187. package/dist/components/six-button.js +1 -1
  188. package/dist/components/six-card.js +2 -2
  189. package/dist/components/six-checkbox.js +1 -1
  190. package/dist/components/six-date.js +43 -38
  191. package/dist/components/six-date.js.map +1 -1
  192. package/dist/components/six-datepicker.js +9 -9
  193. package/dist/components/six-datepicker.js.map +1 -1
  194. package/dist/components/six-details.js +1 -1
  195. package/dist/components/six-dialog.js +3 -3
  196. package/dist/components/six-drawer.js +3 -3
  197. package/dist/components/six-dropdown.js +1 -1
  198. package/dist/components/six-error-page.js +3 -3
  199. package/dist/components/six-error.js +1 -1
  200. package/dist/components/six-file-list-item.js +2 -2
  201. package/dist/components/six-file-list.js +2 -2
  202. package/dist/components/six-file-upload.js +4 -4
  203. package/dist/components/six-footer.js +2 -2
  204. package/dist/components/six-group-label.js +4 -4
  205. package/dist/components/six-header-dropdown-item.js +10 -10
  206. package/dist/components/six-header-item.js +2 -2
  207. package/dist/components/six-header-menu-button.js +4 -4
  208. package/dist/components/six-header.js +3 -3
  209. package/dist/components/six-icon-button.js +1 -1
  210. package/dist/components/six-icon.js +1 -1
  211. package/dist/components/six-input.js +1 -1
  212. package/dist/components/six-item-picker.js +1 -1
  213. package/dist/components/six-language-switcher.js +1 -1
  214. package/dist/components/six-layout-grid.js +2 -2
  215. package/dist/components/six-logo.js +1 -1
  216. package/dist/components/six-main-container.js +2 -2
  217. package/dist/components/six-menu-divider.js +2 -2
  218. package/dist/components/six-menu-item.js +1 -1
  219. package/dist/components/six-menu-label.js +2 -2
  220. package/dist/components/six-menu.js +1 -1
  221. package/dist/components/six-picto.js +1 -1
  222. package/dist/components/six-progress-bar.js +4 -4
  223. package/dist/components/six-progress-ring.js +2 -2
  224. package/dist/components/six-radio.js +3 -3
  225. package/dist/components/six-range.js +5 -5
  226. package/dist/components/six-range.js.map +1 -1
  227. package/dist/components/six-rating.d.ts +11 -0
  228. package/dist/components/six-rating.js +173 -0
  229. package/dist/components/six-rating.js.map +1 -0
  230. package/dist/components/six-root.js +4 -4
  231. package/dist/components/six-search-field.js +4 -4
  232. package/dist/components/six-select.js +12 -12
  233. package/dist/components/six-sidebar-item-group.js +3 -3
  234. package/dist/components/six-sidebar-item.js +4 -4
  235. package/dist/components/six-sidebar.js +3 -3
  236. package/dist/components/six-spinner.js +1 -1
  237. package/dist/components/six-stage-indicator.js +1 -1
  238. package/dist/components/six-switch.js +5 -5
  239. package/dist/components/six-switch.js.map +1 -1
  240. package/dist/components/six-tab-group.js +3 -3
  241. package/dist/components/six-tab-panel.js +2 -2
  242. package/dist/components/six-tab.js +6 -6
  243. package/dist/components/six-tab.js.map +1 -1
  244. package/dist/components/six-tag.js +6 -6
  245. package/dist/components/six-textarea.js +5 -5
  246. package/dist/components/six-tile.js +9 -9
  247. package/dist/components/six-timepicker.js +1 -1
  248. package/dist/components/six-tooltip.js +1 -1
  249. package/dist/components.json +2975 -646
  250. package/dist/esm/{form-control-D_uS8E6o.js → form-control-DI6V1ZhR.js} +3 -3
  251. package/dist/esm/{form-control-D_uS8E6o.js.map → form-control-DI6V1ZhR.js.map} +1 -1
  252. package/dist/esm/{index-D0Go1Zjj.js → index-JoG9I7EO.js} +19 -11
  253. package/dist/{cjs/index-BKTrCUjx.js.map → esm/index-JoG9I7EO.js.map} +1 -1
  254. package/dist/esm/loader.js +3 -3
  255. package/dist/esm/six-alert.entry.js +1 -1
  256. package/dist/esm/six-avatar.entry.js +1 -1
  257. package/dist/esm/six-badge.entry.js +1 -1
  258. package/dist/esm/six-breadcrumbs-item.entry.js +23 -0
  259. package/dist/esm/six-breadcrumbs-item.entry.js.map +1 -0
  260. package/dist/esm/six-breadcrumbs.entry.js +71 -0
  261. package/dist/esm/six-breadcrumbs.entry.js.map +1 -0
  262. package/dist/esm/six-button.six-spinner.entry.js.map +1 -0
  263. package/dist/esm/{six-button.entry.js → six-button_2.entry.js} +56 -6
  264. package/dist/esm/six-button_2.entry.js.map +1 -0
  265. package/dist/esm/six-card.entry.js +2 -2
  266. package/dist/esm/six-checkbox_2.entry.js +6 -6
  267. package/dist/esm/six-date.entry.js +39 -34
  268. package/dist/esm/six-date.entry.js.map +1 -1
  269. package/dist/esm/six-datepicker.entry.js +4 -4
  270. package/dist/esm/six-datepicker.entry.js.map +1 -1
  271. package/dist/esm/six-details.entry.js +4 -4
  272. package/dist/esm/six-dialog.entry.js +1 -1
  273. package/dist/esm/six-drawer.entry.js +1 -1
  274. package/dist/esm/six-dropdown_2.entry.js +1 -1
  275. package/dist/esm/six-error-page.entry.js +2 -2
  276. package/dist/esm/six-error.entry.js +2 -2
  277. package/dist/esm/six-file-list-item.entry.js +1 -1
  278. package/dist/esm/six-file-list.entry.js +2 -2
  279. package/dist/esm/six-file-upload.entry.js +1 -1
  280. package/dist/esm/six-footer.entry.js +2 -2
  281. package/dist/esm/six-group-label.entry.js +3 -3
  282. package/dist/esm/six-header-dropdown-item.entry.js +3 -3
  283. package/dist/esm/six-header-item.entry.js +2 -2
  284. package/dist/esm/six-header-menu-button.entry.js +2 -2
  285. package/dist/esm/six-header.entry.js +3 -3
  286. package/dist/esm/six-icon-button.entry.js +4 -4
  287. package/dist/esm/six-icon.entry.js +3 -3
  288. package/dist/esm/six-input.entry.js +2 -2
  289. package/dist/esm/six-item-picker.entry.js +1 -1
  290. package/dist/esm/six-language-switcher.entry.js +1 -1
  291. package/dist/esm/six-layout-grid.entry.js +2 -2
  292. package/dist/esm/six-logo.entry.js +1 -1
  293. package/dist/esm/six-main-container.entry.js +2 -2
  294. package/dist/esm/six-menu-divider.entry.js +2 -2
  295. package/dist/esm/six-menu-label.entry.js +2 -2
  296. package/dist/esm/six-picto.entry.js +2 -2
  297. package/dist/esm/six-progress-bar.entry.js +4 -4
  298. package/dist/esm/six-progress-ring.entry.js +2 -2
  299. package/dist/esm/six-radio.entry.js +3 -3
  300. package/dist/esm/six-range.entry.js +4 -4
  301. package/dist/esm/six-range.entry.js.map +1 -1
  302. package/dist/esm/six-rating.entry.js +124 -0
  303. package/dist/esm/six-rating.entry.js.map +1 -0
  304. package/dist/esm/six-root.entry.js +2 -2
  305. package/dist/esm/six-search-field.entry.js +1 -1
  306. package/dist/esm/six-select.entry.js +2 -2
  307. package/dist/esm/six-sidebar-item-group.entry.js +1 -1
  308. package/dist/esm/six-sidebar-item.entry.js +3 -3
  309. package/dist/esm/six-sidebar.entry.js +3 -3
  310. package/dist/esm/six-stage-indicator.entry.js +1 -1
  311. package/dist/esm/six-switch.entry.js +4 -4
  312. package/dist/esm/six-switch.entry.js.map +1 -1
  313. package/dist/esm/six-tab-group.entry.js +1 -1
  314. package/dist/esm/six-tab-panel.entry.js +2 -2
  315. package/dist/esm/six-tab.entry.js +4 -4
  316. package/dist/esm/six-tab.entry.js.map +1 -1
  317. package/dist/esm/six-tag.entry.js +3 -3
  318. package/dist/esm/six-textarea.entry.js +4 -4
  319. package/dist/esm/six-tile.entry.js +6 -6
  320. package/dist/esm/six-timepicker.entry.js +18 -10
  321. package/dist/esm/six-timepicker.entry.js.map +1 -1
  322. package/dist/esm/six-tooltip.entry.js +3 -3
  323. package/dist/esm/ui-library.js +4 -4
  324. package/dist/esm/ui-library.js.map +1 -1
  325. package/dist/types/components/six-breadcrumbs/six-breadcrumbs.d.ts +20 -0
  326. package/dist/types/components/six-breadcrumbs-item/six-breadcrumbs-item.d.ts +27 -0
  327. package/dist/types/components/six-date/iso-date.d.ts +2 -0
  328. package/dist/types/components/six-datepicker/six-datepicker.d.ts +1 -1
  329. package/dist/types/components/six-rating/six-rating.d.ts +52 -0
  330. package/dist/types/components.d.ts +886 -4
  331. package/dist/types/stencil-public-runtime.d.ts +19 -0
  332. package/dist/ui-library/{p-95182417.entry.js → p-014f44f4.entry.js} +2 -2
  333. package/dist/ui-library/p-014f44f4.entry.js.map +1 -0
  334. package/dist/ui-library/p-05ca516d.entry.js +2 -0
  335. package/dist/ui-library/{p-73b64625.entry.js → p-06c6b189.entry.js} +2 -2
  336. package/dist/ui-library/{p-7bdc9f95.entry.js → p-0eb90caf.entry.js} +2 -2
  337. package/dist/ui-library/{p-4a4a0751.entry.js → p-12a2cc6b.entry.js} +2 -2
  338. package/dist/ui-library/p-12e7a9e1.entry.js +2 -0
  339. package/dist/ui-library/p-12e7a9e1.entry.js.map +1 -0
  340. package/dist/ui-library/{p-6990e5ed.entry.js → p-194037e9.entry.js} +2 -2
  341. package/dist/ui-library/{p-e91aa04b.entry.js → p-22ad3353.entry.js} +2 -2
  342. package/dist/ui-library/p-22f924a1.entry.js +2 -0
  343. package/dist/ui-library/{p-df05b23b.entry.js → p-26219330.entry.js} +2 -2
  344. package/dist/ui-library/{p-16028bce.entry.js → p-29994dc3.entry.js} +2 -2
  345. package/dist/ui-library/{p-cc44af70.entry.js → p-29aac7ea.entry.js} +2 -2
  346. package/dist/ui-library/p-29aac7ea.entry.js.map +1 -0
  347. package/dist/ui-library/{p-1e4d1252.entry.js → p-2a245a37.entry.js} +2 -2
  348. package/dist/ui-library/{p-5e70085d.entry.js → p-313177b7.entry.js} +2 -2
  349. package/dist/ui-library/p-38c51fd1.entry.js +2 -0
  350. package/dist/ui-library/p-38c51fd1.entry.js.map +1 -0
  351. package/dist/ui-library/{p-9e8fdf44.entry.js → p-39109b96.entry.js} +2 -2
  352. package/dist/ui-library/{p-84964501.entry.js → p-3c1285ad.entry.js} +2 -2
  353. package/dist/ui-library/{p-8fe7ecdd.entry.js → p-3d9e03b5.entry.js} +2 -2
  354. package/dist/ui-library/{p-7d2f5f44.entry.js → p-4152b371.entry.js} +2 -2
  355. package/dist/ui-library/{p-81af96f2.entry.js → p-4d9785bd.entry.js} +2 -2
  356. package/dist/ui-library/p-4decf969.entry.js +2 -0
  357. package/dist/ui-library/p-4decf969.entry.js.map +1 -0
  358. package/dist/ui-library/{p-394c1dc0.entry.js → p-54490d28.entry.js} +2 -2
  359. package/dist/ui-library/{p-6a760300.entry.js → p-56e172e0.entry.js} +2 -2
  360. package/dist/ui-library/{p-d9640c45.entry.js → p-6607d03a.entry.js} +2 -2
  361. package/dist/ui-library/{p-baf698e1.entry.js → p-664ddbab.entry.js} +2 -2
  362. package/dist/ui-library/{p-830ed202.entry.js → p-66b94978.entry.js} +2 -2
  363. package/dist/ui-library/{p-36a316e0.entry.js → p-66d616e8.entry.js} +2 -2
  364. package/dist/ui-library/{p-5ed5842b.entry.js → p-6cd4fbd8.entry.js} +2 -2
  365. package/dist/ui-library/{p-85dbcfb5.entry.js → p-6dd3f54c.entry.js} +2 -2
  366. package/dist/ui-library/{p-01306147.entry.js → p-70388108.entry.js} +2 -2
  367. package/dist/ui-library/p-72d3f332.entry.js +2 -0
  368. package/dist/ui-library/p-72d3f332.entry.js.map +1 -0
  369. package/dist/ui-library/{p-64377a4b.entry.js → p-7f7413db.entry.js} +2 -2
  370. package/dist/ui-library/p-7f7413db.entry.js.map +1 -0
  371. package/dist/ui-library/{p-2992225b.entry.js → p-83d5fa7c.entry.js} +2 -2
  372. package/dist/ui-library/{p-b8db5638.entry.js → p-8c2edb7f.entry.js} +2 -2
  373. package/dist/ui-library/{p-19361e9b.entry.js → p-91c195d3.entry.js} +2 -2
  374. package/dist/ui-library/{p-9f0ed997.entry.js → p-984a1f6d.entry.js} +2 -2
  375. package/dist/ui-library/p-9b75e009.entry.js +2 -0
  376. package/dist/ui-library/p-9b75e009.entry.js.map +1 -0
  377. package/dist/ui-library/{p-d7866617.entry.js → p-9deca0d0.entry.js} +2 -2
  378. package/dist/ui-library/{p-IBmarOIS.js → p-Dg9366Gk.js} +2 -2
  379. package/dist/ui-library/{p-IBmarOIS.js.map → p-Dg9366Gk.js.map} +1 -1
  380. package/dist/ui-library/{p-D0Go1Zjj.js → p-JoG9I7EO.js} +1 -1
  381. package/dist/ui-library/{p-D0Go1Zjj.js.map → p-JoG9I7EO.js.map} +1 -1
  382. package/dist/ui-library/{p-97b78889.entry.js → p-a6d7d618.entry.js} +2 -2
  383. package/dist/ui-library/p-a7f9c92d.entry.js +2 -0
  384. package/dist/ui-library/{p-79a79513.entry.js.map → p-a7f9c92d.entry.js.map} +1 -1
  385. package/dist/ui-library/{p-071ed780.entry.js → p-aaea0f73.entry.js} +2 -2
  386. package/dist/ui-library/{p-c2ec443c.entry.js → p-ab043a8c.entry.js} +2 -2
  387. package/dist/ui-library/{p-f0f73eef.entry.js → p-b37d9771.entry.js} +2 -2
  388. package/dist/ui-library/{p-9713ecff.entry.js → p-bea434d1.entry.js} +2 -2
  389. package/dist/ui-library/p-bea434d1.entry.js.map +1 -0
  390. package/dist/ui-library/{p-6bb0b9e9.entry.js → p-c47f11e4.entry.js} +2 -2
  391. package/dist/ui-library/{p-ba68b30c.entry.js → p-ccc7e227.entry.js} +2 -2
  392. package/dist/ui-library/{p-f38c1d23.entry.js → p-d81265f4.entry.js} +2 -2
  393. package/dist/ui-library/{p-537a8953.entry.js → p-da5f40ed.entry.js} +2 -2
  394. package/dist/ui-library/{p-a534a4bc.entry.js → p-df2b8f01.entry.js} +2 -2
  395. package/dist/ui-library/p-e100aff2.entry.js +2 -0
  396. package/dist/ui-library/{p-679f1e08.entry.js → p-e8e5445e.entry.js} +2 -2
  397. package/dist/ui-library/{p-68c50fb7.entry.js → p-e92df84a.entry.js} +2 -2
  398. package/dist/ui-library/{p-9f77ae55.entry.js → p-ed6625e6.entry.js} +2 -2
  399. package/dist/ui-library/p-fc2d893f.entry.js +2 -0
  400. package/dist/ui-library/p-fcd3305f.entry.js +2 -0
  401. package/dist/ui-library/{p-0d97e592.entry.js.map → p-fcd3305f.entry.js.map} +1 -1
  402. package/dist/ui-library/p-fd97bc8a.entry.js +2 -0
  403. package/dist/ui-library/p-fd97bc8a.entry.js.map +1 -0
  404. package/dist/ui-library/{p-7c438e21.entry.js → p-fe2ef0a4.entry.js} +2 -2
  405. package/dist/ui-library/six-breadcrumbs-item.entry.esm.js.map +1 -0
  406. package/dist/ui-library/six-breadcrumbs.entry.esm.js.map +1 -0
  407. package/dist/ui-library/six-button.six-spinner.entry.esm.js.map +1 -0
  408. package/dist/ui-library/six-date.entry.esm.js.map +1 -1
  409. package/dist/ui-library/six-datepicker.entry.esm.js.map +1 -1
  410. package/dist/ui-library/six-range.entry.esm.js.map +1 -1
  411. package/dist/ui-library/six-rating.entry.esm.js.map +1 -0
  412. package/dist/ui-library/six-switch.entry.esm.js.map +1 -1
  413. package/dist/ui-library/six-tab.entry.esm.js.map +1 -1
  414. package/dist/ui-library/six-timepicker.entry.esm.js.map +1 -1
  415. package/dist/ui-library/ui-library.css +1 -1
  416. package/dist/ui-library/ui-library.esm.js +1 -1
  417. package/dist/ui-library/ui-library.esm.js.map +1 -1
  418. package/package.json +7 -8
  419. package/dist/cjs/six-button.cjs.entry.js.map +0 -1
  420. package/dist/cjs/six-button.entry.cjs.js.map +0 -1
  421. package/dist/cjs/six-spinner.cjs.entry.js +0 -58
  422. package/dist/cjs/six-spinner.cjs.entry.js.map +0 -1
  423. package/dist/cjs/six-spinner.entry.cjs.js.map +0 -1
  424. package/dist/components/p-BtF2Ym6T.js.map +0 -1
  425. package/dist/components/p-BtNjuUha.js.map +0 -1
  426. package/dist/components/p-D0dsFLio.js.map +0 -1
  427. package/dist/esm/six-button.entry.js.map +0 -1
  428. package/dist/esm/six-spinner.entry.js +0 -56
  429. package/dist/esm/six-spinner.entry.js.map +0 -1
  430. package/dist/ui-library/p-0d97e592.entry.js +0 -2
  431. package/dist/ui-library/p-5e5bd309.entry.js +0 -2
  432. package/dist/ui-library/p-5e5bd309.entry.js.map +0 -1
  433. package/dist/ui-library/p-64377a4b.entry.js.map +0 -1
  434. package/dist/ui-library/p-695e450e.entry.js +0 -2
  435. package/dist/ui-library/p-6d212bc0.entry.js +0 -2
  436. package/dist/ui-library/p-79a79513.entry.js +0 -2
  437. package/dist/ui-library/p-868fab98.entry.js +0 -2
  438. package/dist/ui-library/p-95182417.entry.js.map +0 -1
  439. package/dist/ui-library/p-9713ecff.entry.js.map +0 -1
  440. package/dist/ui-library/p-9b1c8a24.entry.js +0 -2
  441. package/dist/ui-library/p-9b1c8a24.entry.js.map +0 -1
  442. package/dist/ui-library/p-cc44af70.entry.js.map +0 -1
  443. package/dist/ui-library/p-d1bd67af.entry.js +0 -2
  444. package/dist/ui-library/p-d1bd67af.entry.js.map +0 -1
  445. package/dist/ui-library/p-f4e2ddfc.entry.js +0 -2
  446. package/dist/ui-library/p-f585a5ab.entry.js +0 -2
  447. package/dist/ui-library/p-f585a5ab.entry.js.map +0 -1
  448. package/dist/ui-library/six-button.entry.esm.js.map +0 -1
  449. package/dist/ui-library/six-spinner.entry.esm.js.map +0 -1
  450. /package/dist/ui-library/{p-695e450e.entry.js.map → p-05ca516d.entry.js.map} +0 -0
  451. /package/dist/ui-library/{p-73b64625.entry.js.map → p-06c6b189.entry.js.map} +0 -0
  452. /package/dist/ui-library/{p-7bdc9f95.entry.js.map → p-0eb90caf.entry.js.map} +0 -0
  453. /package/dist/ui-library/{p-4a4a0751.entry.js.map → p-12a2cc6b.entry.js.map} +0 -0
  454. /package/dist/ui-library/{p-6990e5ed.entry.js.map → p-194037e9.entry.js.map} +0 -0
  455. /package/dist/ui-library/{p-e91aa04b.entry.js.map → p-22ad3353.entry.js.map} +0 -0
  456. /package/dist/ui-library/{p-f4e2ddfc.entry.js.map → p-22f924a1.entry.js.map} +0 -0
  457. /package/dist/ui-library/{p-df05b23b.entry.js.map → p-26219330.entry.js.map} +0 -0
  458. /package/dist/ui-library/{p-16028bce.entry.js.map → p-29994dc3.entry.js.map} +0 -0
  459. /package/dist/ui-library/{p-1e4d1252.entry.js.map → p-2a245a37.entry.js.map} +0 -0
  460. /package/dist/ui-library/{p-5e70085d.entry.js.map → p-313177b7.entry.js.map} +0 -0
  461. /package/dist/ui-library/{p-9e8fdf44.entry.js.map → p-39109b96.entry.js.map} +0 -0
  462. /package/dist/ui-library/{p-84964501.entry.js.map → p-3c1285ad.entry.js.map} +0 -0
  463. /package/dist/ui-library/{p-8fe7ecdd.entry.js.map → p-3d9e03b5.entry.js.map} +0 -0
  464. /package/dist/ui-library/{p-7d2f5f44.entry.js.map → p-4152b371.entry.js.map} +0 -0
  465. /package/dist/ui-library/{p-81af96f2.entry.js.map → p-4d9785bd.entry.js.map} +0 -0
  466. /package/dist/ui-library/{p-394c1dc0.entry.js.map → p-54490d28.entry.js.map} +0 -0
  467. /package/dist/ui-library/{p-6a760300.entry.js.map → p-56e172e0.entry.js.map} +0 -0
  468. /package/dist/ui-library/{p-d9640c45.entry.js.map → p-6607d03a.entry.js.map} +0 -0
  469. /package/dist/ui-library/{p-baf698e1.entry.js.map → p-664ddbab.entry.js.map} +0 -0
  470. /package/dist/ui-library/{p-830ed202.entry.js.map → p-66b94978.entry.js.map} +0 -0
  471. /package/dist/ui-library/{p-36a316e0.entry.js.map → p-66d616e8.entry.js.map} +0 -0
  472. /package/dist/ui-library/{p-5ed5842b.entry.js.map → p-6cd4fbd8.entry.js.map} +0 -0
  473. /package/dist/ui-library/{p-85dbcfb5.entry.js.map → p-6dd3f54c.entry.js.map} +0 -0
  474. /package/dist/ui-library/{p-01306147.entry.js.map → p-70388108.entry.js.map} +0 -0
  475. /package/dist/ui-library/{p-2992225b.entry.js.map → p-83d5fa7c.entry.js.map} +0 -0
  476. /package/dist/ui-library/{p-b8db5638.entry.js.map → p-8c2edb7f.entry.js.map} +0 -0
  477. /package/dist/ui-library/{p-19361e9b.entry.js.map → p-91c195d3.entry.js.map} +0 -0
  478. /package/dist/ui-library/{p-9f0ed997.entry.js.map → p-984a1f6d.entry.js.map} +0 -0
  479. /package/dist/ui-library/{p-d7866617.entry.js.map → p-9deca0d0.entry.js.map} +0 -0
  480. /package/dist/ui-library/{p-97b78889.entry.js.map → p-a6d7d618.entry.js.map} +0 -0
  481. /package/dist/ui-library/{p-071ed780.entry.js.map → p-aaea0f73.entry.js.map} +0 -0
  482. /package/dist/ui-library/{p-c2ec443c.entry.js.map → p-ab043a8c.entry.js.map} +0 -0
  483. /package/dist/ui-library/{p-f0f73eef.entry.js.map → p-b37d9771.entry.js.map} +0 -0
  484. /package/dist/ui-library/{p-6bb0b9e9.entry.js.map → p-c47f11e4.entry.js.map} +0 -0
  485. /package/dist/ui-library/{p-ba68b30c.entry.js.map → p-ccc7e227.entry.js.map} +0 -0
  486. /package/dist/ui-library/{p-f38c1d23.entry.js.map → p-d81265f4.entry.js.map} +0 -0
  487. /package/dist/ui-library/{p-537a8953.entry.js.map → p-da5f40ed.entry.js.map} +0 -0
  488. /package/dist/ui-library/{p-a534a4bc.entry.js.map → p-df2b8f01.entry.js.map} +0 -0
  489. /package/dist/ui-library/{p-6d212bc0.entry.js.map → p-e100aff2.entry.js.map} +0 -0
  490. /package/dist/ui-library/{p-679f1e08.entry.js.map → p-e8e5445e.entry.js.map} +0 -0
  491. /package/dist/ui-library/{p-68c50fb7.entry.js.map → p-e92df84a.entry.js.map} +0 -0
  492. /package/dist/ui-library/{p-9f77ae55.entry.js.map → p-ed6625e6.entry.js.map} +0 -0
  493. /package/dist/ui-library/{p-868fab98.entry.js.map → p-fc2d893f.entry.js.map} +0 -0
  494. /package/dist/ui-library/{p-7c438e21.entry.js.map → p-fe2ef0a4.entry.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- import{r as s,h as i}from"./p-D0Go1Zjj.js";const e=".six-files-list__container{padding:1rem}.six-files-list__container :last-child{padding-bottom:0}";const t=class{constructor(i){s(this,i)}render(){return i("div",{key:"38755b01aeafb28e3f268925a347fabdb53cac9b",class:"six-files-list__container"},i("slot",{key:"7e9e866c6b7f6dffbe26ba5b10c46b135cc1c389"}))}};t.style=e;export{t as six_file_list};
2
- //# sourceMappingURL=p-695e450e.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as e,h as t,H as s,g as a}from"./p-D0Go1Zjj.js";const i=":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:border-box}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}:host{display:block;font-family:var(--six-font-family)}.tab-panel{border:solid 1px transparent;padding:20px 20px}";let o=0;const r=class{constructor(t){e(this,t);this.componentId=`tab-panel-${++o}`;this.name="";this.active=false}render(){return t(s,{key:"2a0ab4d655a8de97585c947099381c1fab61e858",id:this.host.id||this.componentId,style:{display:this.active?"block":"none"}},t("div",{key:"7ee7661cd01b4390bea7981c4f3fad3e8bb0e6c0",part:"base",class:"tab-panel",role:"tabpanel","aria-selected":this.active?"true":"false","aria-hidden":this.active?"false":"true"},t("slot",{key:"21c8561d0a126ef557c1fa9660209f10b6cd7936"})))}get host(){return a(this)}};r.style=i;export{r as six_tab_panel};
2
- //# sourceMappingURL=p-6d212bc0.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as e,h as r}from"./p-D0Go1Zjj.js";const s=":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:border-box}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}:host{--track-color:var(--six-progress-track-color);--indicator-color:var(--six-progress-indicator-color);display:inline-flex}.progress-ring{display:inline-flex;align-items:center;justify-content:center;position:relative}.progress-ring__image{transform:rotate(-90deg);transform-origin:50% 50%}.progress-ring__track{stroke:var(--track-color)}.progress-ring__indicator{stroke:var(--indicator-color);transition:0.35s stroke-dashoffset, 0.35s stroke}.progress-ring__label{display:flex;align-items:center;justify-content:center;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;user-select:none;font-family:var(--six-font-family)}";const t=class{constructor(r){e(this,r);this.size=128;this.strokeWidth=4;this.percentage=0}handlePercentageChange(){this.updateProgress()}componentDidLoad(){this.updateProgress()}updateProgress(){var e;if(((e=this.indicator)===null||e===void 0?void 0:e.r)==null)return;const r=this.indicator.r.baseVal.value;const s=r*2*Math.PI;const t=s-this.percentage/100*s;this.indicator.style.strokeDasharray=`${s} ${s}`;this.indicator.style.strokeDashoffset=`${t}`}render(){return r("div",{key:"6f48ef171c32eef14162bb15d53befc7bf30f923",part:"base",class:"progress-ring"},r("svg",{key:"b1479eec3a5dbabdb39716484c58396a09db1272",class:"progress-ring__image",width:this.size,height:this.size},r("circle",{key:"abb6fd5f35d514fe1580e02fd251774e107da5ce",class:"progress-ring__track","stroke-width":this.strokeWidth,"stroke-linecap":"round",fill:"transparent",r:this.size/2-this.strokeWidth*2,cx:this.size/2,cy:this.size/2}),r("circle",{key:"ca3fb1650516df81c8757594a0ce0d62d82febd3",ref:e=>this.indicator=e,class:"progress-ring__indicator","stroke-width":this.strokeWidth,"stroke-linecap":"round",fill:"transparent",r:this.size/2-this.strokeWidth*2,cx:this.size/2,cy:this.size/2})),r("span",{key:"c9b746f63f7c8bb0b325397d0344f6d82b8e3c0d",part:"label",class:"progress-ring__label"},r("slot",{key:"905b3a001f4d95c31e80e5d74ecd29d0ec59992a"})))}static get watchers(){return{percentage:["handlePercentageChange"]}}};t.style=s;export{t as six_progress_ring};
2
- //# sourceMappingURL=p-79a79513.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as e,h as a,g as t}from"./p-D0Go1Zjj.js";const d=":host{display:block;overflow:hidden;height:inherit}.six-root{display:grid;grid-template:auto 1fr auto/auto 1fr auto;height:100%}.six-root__container--padded{padding:var(--six-spacing-xxx-large)}.six-root__left-sidebar{height:100%;overflow:scroll;grid-column:1/2}.six-root__right-sidebar{height:100%;overflow:scroll;grid-column:3/4}.six-root nav{overflow:hidden}header{grid-column:1/4;position:sticky;top:0;z-index:var(--six-z-index-header);margin-right:2px}main{height:100%;display:flex;flex-direction:column;justify-content:space-between;grid-column:2/3;overflow:auto}footer{grid-column:1/4}";const i=class{constructor(a){e(this,a);this.padded=true;this.stage=null;this.version=""}render(){return a("host",{key:"005ad5514d4137e97a862fd2a09151013e6250d0",class:"six-root"},a("header",{key:"4cde9e57f125b9ea179608c36b311d33449ab9d3",part:"header"},this.stage&&a("six-stage-indicator",{key:"9c8d9ce4ae9d7652249fd3e2bbb39431830e6813",stage:this.stage},this.version),a("slot",{key:"dd414f2b13ec59e96ebe1e1df8f2fb71de113a60",name:"header"})),a("nav",{key:"b9abf9d3eae12e6c492b64aada73bd7101a4edb1",class:"six-root__left-sidebar",part:"left-sidebar"},a("slot",{key:"d664769001501f55dd65a0c772fa6df6742ffe4c",name:"left-sidebar"})),a("main",{key:"4fb77beeed3e16ccb53a6d486d1307893d16aac3",part:"main"},a("div",{key:"587d43eedf0a41c790b184c54f41941ea12fdd37",class:{"six-root__container":true,"six-root__container--padded":this.padded},part:"container"},a("slot",{key:"66473b0c3e44effb55ce262b27f2980b668b4335",name:"main"})),a("div",{key:"b4dcc58d0fe42bcee91f2d0586e07f026b70bf5f",class:"six-root__footer"},a("slot",{key:"bf3efc6011d2cfbdd121973d77b7eba58c12c440",name:"footer"}))),a("nav",{key:"88683d098fd1c75bf35b9ecb9aaf2d2e1b8f6715",class:"six-root__right-sidebar",part:"right-sidebar"},a("slot",{key:"3e38e0f3d3c0c66075c27f305d0460f52bbf725c",name:"right-sidebar"})))}get host(){return t(this)}};i.style=d;export{i as six_root};
2
- //# sourceMappingURL=p-868fab98.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["sixButtonCss","SixButton","constructor","hostRef","this","hasFocus","hasLabel","hasPrefix","hasSuffix","type","size","caret","disabled","loading","pill","circle","submit","reset","name","value","handleSlotChange","hasSlot","host","prefixIcon","querySelector","suffixIcon","tagName","toLowerCase","setAttribute","mapSizeToIconSize","handleBlur","sixBlur","emit","handleFocus","sixFocus","handleClick","event","preventDefault","stopPropagation","submitForm","componentWillLoad","setFocus","options","_a","nativeButton","focus","removeFocus","blur","buttonSize","sizeMap","small","medium","large","render","isLink","href","isButton","Button","h","key","onClick","class","ref","el","part","button","undefined","tabindex","target","download","rel","onBlur","onFocus","onSlotchange","viewBox","fill","stroke","points"],"sources":["src/components/six-button/six-button.scss?tag=six-button&encapsulation=shadow","src/components/six-button/six-button.tsx"],"sourcesContent":["@import 'src/global/component';\n\n:host {\n display: inline-block;\n width: auto;\n cursor: pointer;\n}\n\n.button {\n display: inline-flex;\n align-items: stretch;\n justify-content: center;\n width: 100%;\n border-style: solid;\n border-width: var(--six-border-width);\n border-radius: 0;\n font-family: var(--six-font-family);\n font-weight: var(--six-font-weight-semibold);\n text-decoration: none;\n user-select: none;\n white-space: nowrap;\n vertical-align: middle;\n padding: 0;\n transition:\n var(--six-transition-fast) background-color,\n var(--six-transition-fast) color,\n var(--six-transition-fast) border,\n var(--six-transition-fast) box-shadow;\n cursor: inherit;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &:focus {\n outline: none;\n }\n\n &.button--disabled {\n pointer-events: none;\n }\n\n ::slotted(six-icon) {\n // Clicks on icons shouldn't prevent the button from gaining focus\n pointer-events: none;\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n }\n}\n\n.button-wrapper--disabled {\n cursor: not-allowed;\n}\n\n.button__prefix,\n.button__suffix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Standard buttons\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.button {\n &:focus-visible {\n outline: var(--six-focus-ring);\n outline-offset: var(--six-focus-ring-offset);\n }\n\n &.button--secondary {\n background-color: var(--six-color-white);\n border-color: var(--six-color-web-rock-900);\n color: var(--six-color-web-rock-900);\n\n &.button--disabled {\n background-color: var(--six-color-web-rock-400);\n border-color: var(--six-color-web-rock-400);\n color: var(--six-color-web-rock-700);\n }\n\n &:hover:not(.button--disabled) {\n background-color: var(--six-color-web-rock-100);\n }\n\n &:active:not(.button--disabled) {\n background-color: var(--six-color-web-rock-300);\n border-color: var(--six-color-web-rock-900);\n border-width: 1px;\n }\n }\n\n &.button--primary {\n background-color: var(--six-color-web-rock-900);\n border-color: var(--six-color-web-rock-900);\n color: var(--six-color-white);\n\n &.button--disabled {\n background-color: var(--six-color-web-rock-400);\n border-color: var(--six-color-web-rock-400);\n color: var(--six-color-web-rock-700);\n }\n\n &:hover:not(.button--disabled) {\n background-color: var(--six-color-web-rock-800);\n border-color: var(--six-color-web-rock-800);\n }\n\n &:active:not(.button--disabled) {\n background-color: var(--six-color-web-rock-900);\n border-color: var(--six-color-web-rock-900);\n opacity: 70%;\n }\n }\n\n &.button--link {\n background-color: transparent;\n border-color: transparent;\n color: var(--six-color-action-500);\n\n &.button--disabled {\n color: var(--six-color-web-rock-400);\n }\n\n &:hover:not(.button--disabled) {\n color: var(--six-color-action-600);\n }\n\n &:active:not(.button--disabled) {\n color: var(--six-color-action-light-to-be-defined);\n }\n }\n\n &.button--danger {\n background-color: var(--six-color-danger-800);\n border-color: var(--six-color-danger-800);\n color: var(--six-color-white);\n\n &.button--disabled {\n background-color: var(--six-color-web-rock-400);\n border-color: var(--six-color-web-rock-400);\n color: var(--six-color-web-rock-700);\n }\n\n &:hover:not(.button--disabled) {\n background-color: var(--six-color-danger-900);\n border-color: var(--six-color-danger-900);\n }\n\n &:active:not(.button--disabled) {\n background-color: var(--six-color-danger-800);\n border-color: var(--six-color-danger-800);\n opacity: 70%;\n }\n }\n\n &.button--warning {\n background-color: var(--six-color-warning-700);\n border-color: var(--six-color-warning-700);\n color: var(--six-color-web-rock-900);\n\n &.button--disabled {\n background-color: var(--six-color-web-rock-400);\n border-color: var(--six-color-web-rock-400);\n color: var(--six-color-web-rock-700);\n }\n\n &:hover:not(.button--disabled) {\n background-color: var(--six-color-warning-800);\n border-color: var(--six-color-warning-800);\n }\n\n &:active:not(.button--disabled) {\n background-color: var(--six-color-warning-700);\n border-color: var(--six-color-warning-700);\n opacity: 70%;\n }\n }\n\n &.button--success {\n background-color: var(--six-color-success-500);\n border-color: var(--six-color-success-500);\n color: var(--six-color-web-rock-900);\n\n &.button--disabled {\n background-color: var(--six-color-web-rock-400);\n border-color: var(--six-color-web-rock-400);\n color: var(--six-color-web-rock-700);\n }\n\n &:hover:not(.button--disabled) {\n background-color: var(--six-color-success-600);\n border-color: var(--six-color-success-600);\n }\n\n &:active:not(.button--disabled) {\n background-color: var(--six-color-success-500);\n border-color: var(--six-color-success-500);\n opacity: 70%;\n }\n }\n\n &.button--action {\n background-color: var(--six-color-action-500);\n border-color: var(--six-color-action-500);\n color: var(--six-color-white);\n\n &.button--disabled {\n background-color: var(--six-color-web-rock-400);\n border-color: var(--six-color-web-rock-400);\n color: var(--six-color-web-rock-700);\n }\n\n &:hover:not(.button--disabled) {\n background-color: var(--six-color-action-600);\n border-color: var(--six-color-action-600);\n }\n\n &:active:not(.button--disabled) {\n background-color: var(--six-color-action-500);\n border-color: var(--six-color-action-500);\n opacity: 70%;\n }\n }\n\n &.button--action-outline {\n border-color: var(--six-color-action-500);\n background-color: var(--six-color-white);\n color: var(--six-color-action-500);\n\n &.button--disabled {\n background-color: var(--six-color-web-rock-400);\n border-color: var(--six-color-web-rock-400);\n color: var(--six-color-web-rock-700);\n }\n\n &:hover:not(.button--disabled) {\n background-color: var(--six-color-web-rock-100);\n }\n\n &:active:not(.button--disabled) {\n border-color: var(--six-color-action-500);\n opacity: 70%;\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Size modifiers\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.button--small {\n font-size: var(--six-button-font-size-small);\n height: var(--six-height-small);\n line-height: calc(var(--six-height-small) - var(--six-border-width) * 2);\n}\n\n.button--medium {\n font-size: var(--six-button-font-size-medium);\n height: var(--six-height-medium);\n line-height: calc(var(--six-height-medium) - var(--six-border-width) * 2);\n}\n\n.button--large {\n font-size: var(--six-button-font-size-large);\n height: var(--six-height-large);\n line-height: calc(var(--six-height-large) - var(--six-border-width) * 2);\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Pill modifier\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.button--pill {\n &.button--small {\n border-radius: var(--six-height-small);\n }\n\n &.button--medium {\n border-radius: var(--six-height-medium);\n }\n\n &.button--large {\n border-radius: var(--six-height-large);\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Circle modifier\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.button--circle {\n padding-left: 0;\n padding-right: 0;\n font-size: revert;\n\n &.button--small {\n width: var(--six-height-small);\n border-radius: 50%;\n }\n\n &.button--medium {\n width: var(--six-height-medium);\n border-radius: 50%;\n }\n\n &.button--large {\n width: var(--six-height-large);\n border-radius: 50%;\n }\n\n .button__prefix,\n .button__suffix,\n .button__caret {\n display: none;\n\n svg {\n color: var(--six-color-web-rock-900);\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Caret modifier\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.button--caret {\n .button__suffix {\n display: none;\n }\n\n .button__caret {\n display: flex;\n align-items: center;\n\n svg {\n color: var(--six-color-web-rock-900);\n width: 1em;\n height: 1em;\n }\n }\n}\n\n.button--primary,\n.button--action,\n.button--danger {\n .button__caret {\n svg {\n color: var(--six-color-white);\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Loading modifier\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.button--loading {\n position: relative;\n cursor: wait;\n\n .button__prefix,\n .button__label,\n .button__suffix,\n .button__caret {\n visibility: hidden;\n }\n\n six-spinner {\n --indicator-color: currentColor;\n position: absolute;\n height: 1em;\n width: 1em;\n top: calc(50% - 0.5em);\n left: calc(50% - 0.5em);\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Badges\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.button ::slotted(six-badge) {\n position: absolute;\n top: 0;\n right: 0;\n transform: translateY(-50%) translateX(50%);\n pointer-events: none;\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Button spacing\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.button--has-label {\n &.button--small .button__label {\n padding: 0 var(--six-spacing-small);\n }\n\n &.button--medium .button__label {\n padding: 0 var(--six-spacing-medium);\n }\n\n &.button--large .button__label {\n padding: 0 var(--six-spacing-large);\n }\n}\n\n.button--has-prefix {\n &.button--small {\n padding-left: var(--six-spacing-x-small);\n\n .button__label {\n padding-left: var(--six-spacing-x-small);\n }\n }\n\n &.button--medium {\n padding-left: var(--six-spacing-small);\n\n .button__label {\n padding-left: var(--six-spacing-small);\n }\n }\n\n &.button--large {\n padding-left: var(--six-spacing-small);\n\n .button__label {\n padding-left: var(--six-spacing-small);\n }\n }\n}\n\n.button--has-suffix,\n.button--caret {\n &.button--small {\n padding-right: var(--six-spacing-x-small);\n\n .button__label {\n padding-right: var(--six-spacing-x-small);\n }\n }\n\n &.button--medium {\n padding-right: var(--six-spacing-small);\n\n .button__label {\n padding-right: var(--six-spacing-small);\n }\n }\n\n &.button--large {\n padding-right: var(--six-spacing-small);\n\n .button__label {\n padding-right: var(--six-spacing-small);\n }\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State } from '@stencil/core';\nimport { hasSlot } from '../../utils/slot';\nimport { EmptyPayload } from '../../utils/types';\nimport { submitForm } from '../../utils/form';\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot - The button's label.\n * @slot prefix - Used to prepend an icon or similar element to the button.\n * @slot suffix - Used to append an icon or similar element to the button.\n *\n * @part base - The component's base wrapper.\n * @part prefix - The prefix container.\n * @part label - The button's label.\n * @part suffix - The suffix container.\n * @part caret - The button's caret.\n */\n\n@Component({\n tag: 'six-button',\n styleUrl: 'six-button.scss',\n shadow: true,\n})\nexport class SixButton {\n private nativeButton?: HTMLButtonElement | HTMLAnchorElement;\n\n @Element() host!: HTMLSixButtonElement;\n\n @State() hasFocus = false;\n @State() hasLabel = false;\n @State() hasPrefix = false;\n @State() hasSuffix = false;\n\n /** The button's type. */\n @Prop({ reflect: true }) type:\n | 'secondary'\n | 'primary'\n | 'link'\n | 'success'\n | 'warning'\n | 'danger'\n | 'action'\n | 'action-outline' = 'primary';\n\n /** The button's size. */\n @Prop({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Set to true to draw the button with a caret for use with dropdowns, popovers, etc. */\n @Prop() caret = false;\n\n /** Set to true to disable the button. */\n @Prop({ reflect: true }) disabled = false;\n\n /** Set to true to draw the button in a loading state. */\n @Prop({ reflect: true }) loading = false;\n\n /** Set to true to draw a pill-style button with rounded edges. */\n @Prop({ reflect: true }) pill = false;\n\n /** Set to true to draw a circle button. */\n @Prop({ reflect: true }) circle = false;\n\n /** Indicates if activating the button should submit the form. Ignored when `href` is set. */\n @Prop({ reflect: true }) submit = false;\n\n /** Indicates if activating the button should reset the form. */\n @Prop({ reflect: true }) reset = false;\n\n /** An optional name for the button. Ignored when `href` is set. */\n @Prop() name = '';\n\n /** An optional value for the button. Ignored when `href` is set. */\n @Prop() value = '';\n\n /** When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`. */\n @Prop() href?: string;\n\n /** Tells the browser where to open the link. Only used when `href` is set. */\n @Prop() target?: '_blank' | '_parent' | '_self' | '_top';\n\n /** Tells the browser to download the linked file as this filename. Only used when `href` is set. */\n @Prop() download?: string;\n\n /** Emitted when the button loses focus. */\n @Event({ eventName: 'six-button-blur' }) sixBlur!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the button gains focus. */\n @Event({ eventName: 'six-button-focus' }) sixFocus!: EventEmitter<EmptyPayload>;\n\n componentWillLoad() {\n this.handleSlotChange();\n }\n\n /** Sets focus on the button. */\n @Method()\n async setFocus(options?: FocusOptions) {\n this.nativeButton?.focus(options);\n }\n\n /** Removes focus from the button. */\n @Method()\n async removeFocus() {\n this.nativeButton?.blur();\n }\n\n private handleSlotChange = () => {\n this.hasLabel = hasSlot(this.host);\n this.hasPrefix = hasSlot(this.host, 'prefix');\n this.hasSuffix = hasSlot(this.host, 'suffix');\n\n // set the correct icon size for suffix and prefix icons\n const prefixIcon = this.host.querySelector('[slot=\"prefix\"]');\n const suffixIcon = this.host.querySelector('[slot=\"suffix\"]');\n\n if (prefixIcon?.tagName.toLowerCase() === 'six-icon') {\n prefixIcon.setAttribute('size', this.mapSizeToIconSize(this.size));\n }\n\n if (suffixIcon?.tagName.toLowerCase() === 'six-icon') {\n suffixIcon.setAttribute('size', this.mapSizeToIconSize(this.size));\n }\n };\n\n private mapSizeToIconSize(buttonSize: 'small' | 'medium' | 'large'): string {\n const sizeMap = {\n small: 'xSmall',\n medium: 'small',\n large: 'medium',\n };\n return sizeMap[buttonSize] || 'small'; // Default to small\n }\n\n private handleBlur = () => {\n this.hasFocus = false;\n this.sixBlur.emit();\n };\n\n private handleFocus = () => {\n this.hasFocus = true;\n this.sixFocus.emit();\n };\n\n private handleClick = (event: MouseEvent) => {\n if (this.disabled || this.loading) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n if (this.submit) {\n event.preventDefault();\n submitForm(this.host);\n }\n };\n\n render() {\n const isLink = this.href != null;\n const isButton = !isLink;\n const Button = isLink ? 'a' : 'button';\n\n return (\n <div onClick={this.handleClick} class={{ 'button-wrapper--disabled': this.disabled }}>\n <Button\n ref={(el) => (this.nativeButton = el)}\n part=\"base\"\n class={{\n button: true,\n\n // Types\n 'button--secondary': this.type === 'secondary',\n 'button--primary': this.type === 'primary',\n 'button--link': this.type === 'link',\n 'button--success': this.type === 'success',\n 'button--warning': this.type === 'warning',\n 'button--danger': this.type === 'danger',\n 'button--action': this.type === 'action',\n 'button--action-outline': this.type === 'action-outline',\n\n // Sizes\n 'button--small': this.size === 'small',\n 'button--medium': this.size === 'medium',\n 'button--large': this.size === 'large',\n\n // Modifiers\n 'button--caret': this.caret,\n 'button--circle': this.circle,\n 'button--disabled': this.disabled,\n 'button--focused': this.hasFocus,\n 'button--loading': this.loading,\n 'button--pill': this.pill,\n 'button--has-label': this.hasLabel,\n 'button--has-prefix': this.hasPrefix,\n 'button--has-suffix': this.hasSuffix,\n }}\n disabled={isButton ? this.disabled : undefined}\n tabindex={this.disabled ? '-1' : undefined}\n type={isButton ? (this.submit ? 'submit' : this.reset ? 'reset' : 'button') : undefined}\n name={isButton ? this.name : undefined}\n value={isButton ? this.value : undefined}\n href={isLink ? this.href : undefined}\n target={isLink && this.target != null ? this.target : undefined}\n download={isLink && this.download != null ? this.download : undefined}\n rel={isLink && this.target != null ? 'noreferrer noopener' : undefined}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n data-testid=\"button\"\n >\n <span part=\"prefix\" class=\"button__prefix\">\n <slot onSlotchange={this.handleSlotChange} name=\"prefix\" />\n </span>\n <span part=\"label\" class=\"button__label\">\n <slot onSlotchange={this.handleSlotChange} />\n </span>\n <span part=\"suffix\" class=\"button__suffix\">\n <slot onSlotchange={this.handleSlotChange} name=\"suffix\" />\n </span>\n {this.caret && (\n <span part=\"caret\" class=\"button__caret\">\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n </span>\n )}\n\n {this.loading && <six-spinner />}\n </Button>\n </div>\n );\n }\n}\n"],"mappings":"iIAAA,MAAMA,EAAe,m+R,MC2BRC,EAAS,MALtB,WAAAC,CAAAC,G,0FAUWC,KAAQC,SAAG,MACXD,KAAQE,SAAG,MACXF,KAASG,UAAG,MACZH,KAASI,UAAG,MAGIJ,KAAIK,KAQN,UAGEL,KAAIM,KAAiC,SAGtDN,KAAKO,MAAG,MAGSP,KAAQQ,SAAG,MAGXR,KAAOS,QAAG,MAGVT,KAAIU,KAAG,MAGPV,KAAMW,OAAG,MAGTX,KAAMY,OAAG,MAGTZ,KAAKa,MAAG,MAGzBb,KAAIc,KAAG,GAGPd,KAAKe,MAAG,GAiCRf,KAAgBgB,iBAAG,KACzBhB,KAAKE,SAAWe,EAAQjB,KAAKkB,MAC7BlB,KAAKG,UAAYc,EAAQjB,KAAKkB,KAAM,UACpClB,KAAKI,UAAYa,EAAQjB,KAAKkB,KAAM,UAGpC,MAAMC,EAAanB,KAAKkB,KAAKE,cAAc,mBAC3C,MAAMC,EAAarB,KAAKkB,KAAKE,cAAc,mBAE3C,IAAID,IAAA,MAAAA,SAAU,SAAVA,EAAYG,QAAQC,iBAAkB,WAAY,CACpDJ,EAAWK,aAAa,OAAQxB,KAAKyB,kBAAkBzB,KAAKM,M,CAG9D,IAAIe,IAAA,MAAAA,SAAU,SAAVA,EAAYC,QAAQC,iBAAkB,WAAY,CACpDF,EAAWG,aAAa,OAAQxB,KAAKyB,kBAAkBzB,KAAKM,M,GAaxDN,KAAU0B,WAAG,KACnB1B,KAAKC,SAAW,MAChBD,KAAK2B,QAAQC,MAAM,EAGb5B,KAAW6B,YAAG,KACpB7B,KAAKC,SAAW,KAChBD,KAAK8B,SAASF,MAAM,EAGd5B,KAAA+B,YAAeC,IACrB,GAAIhC,KAAKQ,UAAYR,KAAKS,QAAS,CACjCuB,EAAMC,iBACND,EAAME,kBACN,M,CAGF,GAAIlC,KAAKY,OAAQ,CACfoB,EAAMC,iBACNE,EAAWnC,KAAKkB,K,EAqFrB,CAnJC,iBAAAkB,GACEpC,KAAKgB,kB,CAKP,cAAMqB,CAASC,G,OACbC,EAAAvC,KAAKwC,gBAAY,MAAAD,SAAA,SAAAA,EAAEE,MAAMH,E,CAK3B,iBAAMI,G,OACJH,EAAAvC,KAAKwC,gBAAc,MAAAD,SAAA,SAAAA,EAAAI,M,CAqBb,iBAAAlB,CAAkBmB,GACxB,MAAMC,EAAU,CACdC,MAAO,SACPC,OAAQ,QACRC,MAAO,UAET,OAAOH,EAAQD,IAAe,O,CA0BhC,MAAAK,GACE,MAAMC,EAASlD,KAAKmD,MAAQ,KAC5B,MAAMC,GAAYF,EAClB,MAAMG,EAASH,EAAS,IAAM,SAE9B,OACEI,EAAK,OAAAC,IAAA,2CAAAC,QAASxD,KAAK+B,YAAa0B,MAAO,CAAE,2BAA4BzD,KAAKQ,WACxE8C,EAACD,EAAM,CAAAE,IAAA,2CACLG,IAAMC,GAAQ3D,KAAKwC,aAAemB,EAClCC,KAAK,OACLH,MAAO,CACLI,OAAQ,KAGR,oBAAqB7D,KAAKK,OAAS,YACnC,kBAAmBL,KAAKK,OAAS,UACjC,eAAgBL,KAAKK,OAAS,OAC9B,kBAAmBL,KAAKK,OAAS,UACjC,kBAAmBL,KAAKK,OAAS,UACjC,iBAAkBL,KAAKK,OAAS,SAChC,iBAAkBL,KAAKK,OAAS,SAChC,yBAA0BL,KAAKK,OAAS,iBAGxC,gBAAiBL,KAAKM,OAAS,QAC/B,iBAAkBN,KAAKM,OAAS,SAChC,gBAAiBN,KAAKM,OAAS,QAG/B,gBAAiBN,KAAKO,MACtB,iBAAkBP,KAAKW,OACvB,mBAAoBX,KAAKQ,SACzB,kBAAmBR,KAAKC,SACxB,kBAAmBD,KAAKS,QACxB,eAAgBT,KAAKU,KACrB,oBAAqBV,KAAKE,SAC1B,qBAAsBF,KAAKG,UAC3B,qBAAsBH,KAAKI,WAE7BI,SAAU4C,EAAWpD,KAAKQ,SAAWsD,UACrCC,SAAU/D,KAAKQ,SAAW,KAAOsD,UACjCzD,KAAM+C,EAAYpD,KAAKY,OAAS,SAAWZ,KAAKa,MAAQ,QAAU,SAAYiD,UAC9EhD,KAAMsC,EAAWpD,KAAKc,KAAOgD,UAC7B/C,MAAOqC,EAAWpD,KAAKe,MAAQ+C,UAC/BX,KAAMD,EAASlD,KAAKmD,KAAOW,UAC3BE,OAAQd,GAAUlD,KAAKgE,QAAU,KAAOhE,KAAKgE,OAASF,UACtDG,SAAUf,GAAUlD,KAAKiE,UAAY,KAAOjE,KAAKiE,SAAWH,UAC5DI,IAAKhB,GAAUlD,KAAKgE,QAAU,KAAO,sBAAwBF,UAC7DK,OAAQnE,KAAK0B,WACb0C,QAASpE,KAAK6B,YAAW,cACb,UAEZyB,EAAA,QAAAC,IAAA,2CAAMK,KAAK,SAASH,MAAM,kBACxBH,EAAM,QAAAC,IAAA,2CAAAc,aAAcrE,KAAKgB,iBAAkBF,KAAK,YAElDwC,EAAA,QAAAC,IAAA,2CAAMK,KAAK,QAAQH,MAAM,iBACvBH,EAAA,QAAAC,IAAA,2CAAMc,aAAcrE,KAAKgB,oBAE3BsC,EAAA,QAAAC,IAAA,2CAAMK,KAAK,SAASH,MAAM,kBACxBH,EAAM,QAAAC,IAAA,2CAAAc,aAAcrE,KAAKgB,iBAAkBF,KAAK,YAEjDd,KAAKO,OACJ+C,EAAA,QAAAC,IAAA,2CAAMK,KAAK,QAAQH,MAAM,iBACvBH,EAAA,OAAAC,IAAA,2CACEe,QAAQ,YACRC,KAAK,OACLC,OAAO,eACM,mBACE,yBAAO,kBACN,SAEhBlB,EAAA,YAAAC,IAAA,2CAAUkB,OAAO,qBAKtBzE,KAAKS,SAAW6C,EAAA,eAAAC,IAAA,8C","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["sixRangeCss","id","SixRange","constructor","hostRef","this","inputId","labelId","helpTextId","errorTextId","eventListeners","EventListeners","hasFocus","hasHelpTextSlot","hasErrorTextSlot","hasLabelSlot","hasTooltip","name","value","required","helpText","disabled","label","errorText","invalid","min","max","step","tooltip","tooltipFormatter","toString","handleInput","nativeInput","update","parseFloat","requestAnimationFrame","sixChange","emit","handleBlur","sixBlur","_a","resizeObserver","unobserve","handleFocus","sixFocus","observe","handleSlotChange","hasSlot","host","handleTouchStart","setFocus","handleLabelChange","handleValueChange","connectedCallback","shadowRoot","addEventListener","componentWillLoad","componentDidLoad","ResizeObserver","disconnectedCallback","removeEventListener","removeAll","componentDidUpdate","getMinMax","syncTooltip","Number","_b","options","focus","removeFocus","blur","output","percent","Math","inputWidth","offsetWidth","tooltipWidth","thumbSize","getComputedStyle","getPropertyValue","x","style","transform","marginLeft","isFirefox","navigator","userAgent","toLowerCase","indexOf","updateValue","parsedValue","isNaN","getDefaultValue","calculateColorRunnableTrack","ceil","background","render","h","FormControl","key","size","errorTextCount","displayError","part","class","range","onTouchStart","ref","el","type","onInput","onFocus","onBlur"],"sources":["src/components/six-range/six-range.scss?tag=six-range&encapsulation=shadow","src/components/six-range/six-range.tsx"],"sourcesContent":["@import 'src/global/component';\n@import '../../functional-components/form-control/form-control';\n\n:host {\n --thumb-size: 14px;\n --tooltip-offset-y: 10px;\n --track-color: var(--six-color-web-rock-900);\n --thumb-color: var(--six-color-web-rock-900);\n --track-height: 3px;\n\n display: block;\n}\n\n.range {\n position: relative;\n\n .range__control {\n -webkit-appearance: none;\n width: 100%;\n height: var(--six-input-height-medium);\n background: transparent;\n line-height: var(--six-input-height-medium);\n vertical-align: middle;\n\n &::-webkit-slider-runnable-track {\n width: 100%;\n height: var(--track-height);\n border-radius: 3px;\n border: none;\n }\n\n &::-webkit-slider-thumb {\n border: none;\n width: var(--thumb-size);\n height: var(--thumb-size);\n border-radius: 50%;\n background-color: var(--thumb-color);\n -webkit-appearance: none;\n margin-top: calc(var(--thumb-size) / -2 + var(--track-height) / 2);\n transition:\n var(--six-transition-fast) border-color,\n var(--six-transition-fast) background-color,\n var(--six-transition-fast) color,\n var(--six-transition-fast) box-shadow,\n var(--six-transition-fast) transform;\n cursor: pointer;\n }\n\n &:not(:disabled)::-webkit-slider-thumb:hover {\n background-color: var(--thumb-color);\n }\n\n &:not(:disabled):focus::-webkit-slider-thumb {\n background-color: var(--thumb-color);\n }\n\n &:not(:disabled)::-webkit-slider-thumb:active {\n background-color: var(--thumb-color);\n cursor: grabbing;\n }\n\n // Firefox\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-moz-range-track {\n width: 100%;\n height: var(--track-height);\n background-color: var(--six-progress-track-color);\n border-radius: 3px;\n border: none;\n }\n\n &::-moz-range-progress {\n height: var(--track-height);\n border-radius: 3px;\n background-color: var(--track-color);\n border: none;\n }\n\n &::-moz-range-thumb {\n border: none;\n height: var(--thumb-size);\n width: var(--thumb-size);\n border-radius: 50%;\n background-color: var(--thumb-color);\n transition:\n var(--six-transition-fast) border-color,\n var(--six-transition-fast) background-color,\n var(--six-transition-fast) color,\n var(--six-transition-fast) box-shadow,\n var(--six-transition-fast) transform;\n cursor: pointer;\n }\n\n &:not(:disabled)::-moz-range-thumb:hover {\n background-color: var(--thumb-color);\n }\n\n &:not(:disabled):focus::-moz-range-thumb {\n background-color: var(--thumb-color);\n }\n\n &:not(:disabled)::-moz-range-thumb:active {\n background-color: var(--thumb-color);\n cursor: grabbing;\n }\n\n // States\n &:focus {\n outline: none;\n }\n\n &:disabled {\n &::-webkit-slider-thumb {\n cursor: not-allowed;\n color: var(--six-color-web-rock-300);\n border-color: var(--six-color-web-rock-300);\n background-color: var(--six-color-web-rock-300);\n }\n\n &::-moz-range-thumb {\n cursor: not-allowed;\n color: var(--six-color-web-rock-300);\n border-color: var(--six-color-web-rock-300);\n background-color: var(--six-color-web-rock-300);\n }\n }\n }\n}\n\n// Tooltip\n.range__tooltip {\n position: absolute;\n z-index: var(--six-z-index-tooltip);\n left: 2px;\n border-radius: var(--six-border-radius-medium);\n background-color: var(--six-color-web-rock-900);\n font-family: var(--six-font-family);\n font-size: var(--six-tooltip-font-size);\n font-weight: var(--six-tooltip-font-weight);\n line-height: var(--six-tooltip-line-height);\n color: var(--six-color-white);\n opacity: 0;\n padding: var(--six-spacing-xxx-small) var(--six-spacing-xx-small);\n transition: var(--six-transition-fast) opacity;\n pointer-events: none;\n\n &::after {\n content: '';\n position: absolute;\n width: 0;\n height: 0;\n left: 50%;\n margin-left: calc(-1 * var(--six-tooltip-arrow-size));\n }\n}\n\n.range--tooltip-visible .range__tooltip {\n opacity: 1;\n}\n\n// Tooltip on top\n.range--tooltip-top .range__tooltip {\n top: calc(-1 * var(--thumb-size) - var(--tooltip-offset-y));\n\n &::after {\n border-top: var(--six-tooltip-arrow-size) solid var(--six-color-web-rock-900);\n border-left: var(--six-tooltip-arrow-size) solid transparent;\n border-right: var(--six-tooltip-arrow-size) solid transparent;\n top: 100%;\n }\n}\n\n// Tooltip on bottom\n.range--tooltip-bottom .range__tooltip {\n bottom: calc(-1 * var(--thumb-size) - var(--tooltip-offset-y));\n\n &::after {\n border-bottom: var(--six-tooltip-arrow-size) solid var(--six-color-web-rock-900);\n border-left: var(--six-tooltip-arrow-size) solid transparent;\n border-right: var(--six-tooltip-arrow-size) solid transparent;\n bottom: 100%;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport FormControl from '../../functional-components/form-control/form-control';\nimport { hasSlot } from '../../utils/slot';\nimport { EmptyPayload } from '../../utils/types';\nimport { EventListeners } from '../../utils/event-listeners';\n\nlet id = 0;\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot label - The input's label. Alternatively, you can use the label prop.\n * @slot help-text - Help text that describes how to use the input. Alternatively, you can use the help-text prop.\n * @slot error-text - Error text that is shown for validation errors. Alternatively, you can use the error-text prop.\n *\n * @part base - The component's base wrapper.\n * @part input - The native range input.\n * @part tooltip - The range tooltip.\n */\n@Component({\n tag: 'six-range',\n styleUrl: 'six-range.scss',\n shadow: true,\n})\nexport class SixRange {\n private inputId = `input-${++id}`;\n private labelId = `input-label-${id}`;\n private helpTextId = `input-help-text-${id}`;\n private errorTextId = `input-error-text-${id}`;\n private eventListeners = new EventListeners();\n private resizeObserver?: ResizeObserver;\n\n private output?: HTMLElement;\n private nativeInput?: HTMLInputElement;\n\n @Element() host!: HTMLSixRangeElement;\n\n @State() hasFocus = false;\n @State() hasHelpTextSlot = false;\n @State() hasErrorTextSlot = false;\n @State() hasLabelSlot = false;\n @State() hasTooltip = false;\n\n /** The input's name attribute. */\n @Prop() name = '';\n\n /** The input's value attribute. */\n @Prop({ mutable: true }) value = 0;\n\n /** Set to true to show an asterisk beneath the label. */\n @Prop() required = false;\n\n /** The range's help text. Alternatively, you can use the help-text slot. */\n @Prop() helpText = '';\n\n /** Set to true to disable the input. */\n @Prop() disabled = false;\n\n /** The label text. */\n @Prop() label = '';\n\n /** The error message shown, if `invalid` is set to true. */\n @Prop() errorText: string | string[] = '';\n\n /** The number of error texts to be shown (if the error-text slot isn't used). Defaults to 1 */\n @Prop() errorTextCount?: number;\n\n /** If this property is set to true and an error message is provided by `errorText`, the error message is displayed. */\n @Prop({ reflect: true }) invalid = false;\n\n /** The input's min attribute. */\n @Prop() min = 0;\n\n /** The input's max attribute. */\n @Prop() max = 100;\n\n /** The input's step attribute. */\n @Prop() step = 1;\n\n /** The preferred placedment of the tooltip. */\n @Prop() tooltip: 'top' | 'bottom' | 'none' = 'top';\n\n /** A function used to format the tooltip's value. */\n @Prop() tooltipFormatter = (value: number) => value.toString();\n\n /** Emitted when the control's value changes. */\n @Event({ eventName: 'six-range-change' }) sixChange!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the control loses focus. */\n @Event({ eventName: 'six-range-blur' }) sixBlur!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the control gains focus. */\n @Event({ eventName: 'six-range-focus' }) sixFocus!: EventEmitter<EmptyPayload>;\n\n @Watch('label')\n @Watch('errorText')\n @Watch('helpText')\n handleLabelChange() {\n this.handleSlotChange();\n }\n\n @Watch('value')\n @Watch('min')\n @Watch('max')\n handleValueChange() {\n this.update();\n }\n\n connectedCallback() {\n this.host.shadowRoot?.addEventListener('slotchange', this.handleSlotChange);\n }\n\n componentWillLoad() {\n this.update();\n this.handleSlotChange();\n }\n\n componentDidLoad() {\n const nativeInput = this.nativeInput;\n if (nativeInput == null) {\n return;\n }\n this.update();\n this.resizeObserver = new ResizeObserver(() => this.update());\n }\n\n disconnectedCallback() {\n this.host.shadowRoot?.removeEventListener('slotchange', this.handleSlotChange);\n this.eventListeners.removeAll();\n }\n\n componentDidUpdate() {\n const { min, max } = this.getMinMax();\n this.syncTooltip(min, max, this.value);\n }\n\n private getMinMax() {\n const min = Number(this.min) ?? 0;\n const max = Number(this.max) ?? 0;\n return { min, max };\n }\n\n /** Sets focus on the input. */\n @Method()\n async setFocus(options?: FocusOptions) {\n this.nativeInput?.focus(options);\n }\n\n /** Removes focus from the input. */\n @Method()\n async removeFocus() {\n this.nativeInput?.blur();\n }\n\n private handleInput = () => {\n if (this.nativeInput != null) {\n this.update(parseFloat(this.nativeInput.value));\n }\n requestAnimationFrame(() => {\n this.sixChange.emit();\n });\n };\n\n private handleBlur = () => {\n this.hasFocus = false;\n this.hasTooltip = false;\n this.sixBlur.emit();\n if (this.nativeInput != null) {\n this.resizeObserver?.unobserve(this.nativeInput);\n }\n };\n\n private handleFocus = () => {\n this.hasFocus = true;\n this.hasTooltip = true;\n this.sixFocus.emit();\n if (this.nativeInput != null) {\n this.resizeObserver?.observe(this.nativeInput);\n }\n };\n\n private handleSlotChange = () => {\n this.hasHelpTextSlot = hasSlot(this.host, 'help-text');\n this.hasLabelSlot = hasSlot(this.host, 'label');\n this.hasErrorTextSlot = hasSlot(this.host, 'error-text');\n };\n\n private handleTouchStart = () => {\n this.setFocus();\n };\n\n private syncTooltip(min: number, max: number, value: number) {\n if (this.tooltip !== 'none' && this.nativeInput != null && this.output != null) {\n const percent = Math.max(0, (value - min) / (max - min));\n const inputWidth = this.nativeInput.offsetWidth;\n const tooltipWidth = this.output.offsetWidth;\n const thumbSize = getComputedStyle(this.nativeInput).getPropertyValue('--thumb-size');\n const x = `calc(${inputWidth * percent}px - calc(calc(${percent} * ${thumbSize}) - calc(${thumbSize} / 2)))`;\n this.output.style.transform = `translateX(${x})`;\n this.output.style.marginLeft = `-${tooltipWidth / 2}px`;\n }\n }\n\n private isFirefox() {\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n }\n\n private update(updateValue?: number) {\n if (updateValue != null) {\n this.value = updateValue;\n }\n\n const min = Number(this.min) ?? 0;\n const max = Number(this.max) ?? 0;\n let value;\n const parsedValue = parseFloat(this.value as never);\n if (isNaN(parsedValue)) {\n value = this.getDefaultValue(min, max);\n } else {\n value = parsedValue;\n }\n\n if (this.nativeInput != null) {\n // The value may have constraints, so we set the native control's\n // value and sync it back to ensure it adheres to min, max, and step\n // properly.\n this.nativeInput.value = value.toString();\n this.value = parseFloat(this.nativeInput.value);\n } else {\n this.value = value;\n }\n this.calculateColorRunnableTrack(min, max, this.value);\n this.syncTooltip(min, max, this.value);\n }\n\n /**\n * from https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#value\n */\n private getDefaultValue(min: number, max: number): number {\n return max < min ? min : min + (max - min) / 2;\n }\n\n /**\n * For Firefox this functionality is not needed because it is supported by standard CSS.\n */\n private calculateColorRunnableTrack(min: number, max: number, value: number) {\n if (!this.isFirefox() && this.nativeInput != null) {\n const percent = Math.ceil(((value - min) / (max - min)) * 100);\n this.nativeInput.style.background =\n '-webkit-linear-gradient(left, var(--track-color) 0%, var(--track-color) ' +\n percent +\n '%, var(--six-color-web-rock-300) ' +\n percent +\n '%)';\n }\n }\n\n render() {\n return (\n <FormControl\n inputId={this.inputId}\n label={this.label}\n labelId={this.labelId}\n hasLabelSlot={this.hasLabelSlot}\n helpTextId={this.helpTextId}\n helpText={this.helpText}\n hasHelpTextSlot={this.hasHelpTextSlot}\n size=\"medium\"\n errorTextId={this.errorTextId}\n errorText={this.errorText}\n hasErrorTextSlot={this.hasErrorTextSlot}\n errorTextCount={this.errorTextCount}\n disabled={this.disabled}\n required={this.required}\n displayError={this.invalid}\n >\n <div\n part=\"base\"\n class={{\n range: true,\n\n // States\n 'range--disabled': this.disabled,\n 'range--focused': this.hasFocus,\n 'range--tooltip-visible': this.hasTooltip,\n 'range--tooltip-top': this.tooltip === 'top',\n 'range--tooltip-bottom': this.tooltip === 'bottom',\n }}\n onTouchStart={this.handleTouchStart}\n >\n <input\n part=\"input\"\n ref={(el) => (this.nativeInput = el)}\n type=\"range\"\n class=\"range__control\"\n name={this.name}\n disabled={this.disabled}\n min={this.min}\n max={this.max}\n step={this.step}\n value={this.value}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n {this.tooltip !== 'none' && (\n <output part=\"tooltip\" ref={(el) => (this.output = el)} class=\"range__tooltip\">\n {this.tooltipFormatter(this.value)}\n </output>\n )}\n </div>\n </FormControl>\n );\n }\n}\n"],"mappings":"qKAAA,MAAMA,EAAc,upNCMpB,IAAIC,EAAK,E,MAqBIC,EAAQ,MALrB,WAAAC,CAAAC,G,kIAMUC,KAAAC,QAAU,WAAWL,IACrBI,KAAAE,QAAU,eAAeN,IACzBI,KAAAG,WAAa,mBAAmBP,IAChCI,KAAAI,YAAc,oBAAoBR,IAClCI,KAAAK,eAAiB,IAAIC,EAQpBN,KAAQO,SAAG,MACXP,KAAeQ,gBAAG,MAClBR,KAAgBS,iBAAG,MACnBT,KAAYU,aAAG,MACfV,KAAUW,WAAG,MAGdX,KAAIY,KAAG,GAGUZ,KAAKa,MAAG,EAGzBb,KAAQc,SAAG,MAGXd,KAAQe,SAAG,GAGXf,KAAQgB,SAAG,MAGXhB,KAAKiB,MAAG,GAGRjB,KAASkB,UAAsB,GAMdlB,KAAOmB,QAAG,MAG3BnB,KAAGoB,IAAG,EAGNpB,KAAGqB,IAAG,IAGNrB,KAAIsB,KAAG,EAGPtB,KAAOuB,QAA8B,MAGrCvB,KAAgBwB,iBAAIX,GAAkBA,EAAMY,WAuE5CzB,KAAW0B,YAAG,KACpB,GAAI1B,KAAK2B,aAAe,KAAM,CAC5B3B,KAAK4B,OAAOC,WAAW7B,KAAK2B,YAAYd,O,CAE1CiB,uBAAsB,KACpB9B,KAAK+B,UAAUC,MAAM,GACrB,EAGIhC,KAAUiC,WAAG,K,MACnBjC,KAAKO,SAAW,MAChBP,KAAKW,WAAa,MAClBX,KAAKkC,QAAQF,OACb,GAAIhC,KAAK2B,aAAe,KAAM,EAC5BQ,EAAAnC,KAAKoC,kBAAgB,MAAAD,SAAA,SAAAA,EAAAE,UAAUrC,KAAK2B,Y,GAIhC3B,KAAWsC,YAAG,K,MACpBtC,KAAKO,SAAW,KAChBP,KAAKW,WAAa,KAClBX,KAAKuC,SAASP,OACd,GAAIhC,KAAK2B,aAAe,KAAM,EAC5BQ,EAAAnC,KAAKoC,kBAAgB,MAAAD,SAAA,SAAAA,EAAAK,QAAQxC,KAAK2B,Y,GAI9B3B,KAAgByC,iBAAG,KACzBzC,KAAKQ,gBAAkBkC,EAAQ1C,KAAK2C,KAAM,aAC1C3C,KAAKU,aAAegC,EAAQ1C,KAAK2C,KAAM,SACvC3C,KAAKS,iBAAmBiC,EAAQ1C,KAAK2C,KAAM,aAAa,EAGlD3C,KAAgB4C,iBAAG,KACzB5C,KAAK6C,UAAU,CA8HlB,CAzNC,iBAAAC,GACE9C,KAAKyC,kB,CAMP,iBAAAM,GACE/C,KAAK4B,Q,CAGP,iBAAAoB,G,OACEb,EAAAnC,KAAK2C,KAAKM,cAAY,MAAAd,SAAA,SAAAA,EAAAe,iBAAiB,aAAclD,KAAKyC,iB,CAG5D,iBAAAU,GACEnD,KAAK4B,SACL5B,KAAKyC,kB,CAGP,gBAAAW,GACE,MAAMzB,EAAc3B,KAAK2B,YACzB,GAAIA,GAAe,KAAM,CACvB,M,CAEF3B,KAAK4B,SACL5B,KAAKoC,eAAiB,IAAIiB,gBAAe,IAAMrD,KAAK4B,U,CAGtD,oBAAA0B,G,OACEnB,EAAAnC,KAAK2C,KAAKM,cAAY,MAAAd,SAAA,SAAAA,EAAAoB,oBAAoB,aAAcvD,KAAKyC,kBAC7DzC,KAAKK,eAAemD,W,CAGtB,kBAAAC,GACE,MAAMrC,IAAEA,EAAGC,IAAEA,GAAQrB,KAAK0D,YAC1B1D,KAAK2D,YAAYvC,EAAKC,EAAKrB,KAAKa,M,CAG1B,SAAA6C,G,QACN,MAAMtC,GAAMe,EAAAyB,OAAO5D,KAAKoB,QAAQ,MAAAe,SAAA,EAAAA,EAAA,EAChC,MAAMd,GAAMwC,EAAAD,OAAO5D,KAAKqB,QAAQ,MAAAwC,SAAA,EAAAA,EAAA,EAChC,MAAO,CAAEzC,MAAKC,M,CAKhB,cAAMwB,CAASiB,G,OACb3B,EAAAnC,KAAK2B,eAAW,MAAAQ,SAAA,SAAAA,EAAE4B,MAAMD,E,CAK1B,iBAAME,G,OACJ7B,EAAAnC,KAAK2B,eAAa,MAAAQ,SAAA,SAAAA,EAAA8B,M,CAwCZ,WAAAN,CAAYvC,EAAaC,EAAaR,GAC5C,GAAIb,KAAKuB,UAAY,QAAUvB,KAAK2B,aAAe,MAAQ3B,KAAKkE,QAAU,KAAM,CAC9E,MAAMC,EAAUC,KAAK/C,IAAI,GAAIR,EAAQO,IAAQC,EAAMD,IACnD,MAAMiD,EAAarE,KAAK2B,YAAY2C,YACpC,MAAMC,EAAevE,KAAKkE,OAAOI,YACjC,MAAME,EAAYC,iBAAiBzE,KAAK2B,aAAa+C,iBAAiB,gBACtE,MAAMC,EAAI,QAAQN,EAAaF,mBAAyBA,OAAaK,aAAqBA,WAC1FxE,KAAKkE,OAAOU,MAAMC,UAAY,cAAcF,KAC5C3E,KAAKkE,OAAOU,MAAME,WAAa,IAAIP,EAAe,K,EAI9C,SAAAQ,GACN,OAAOC,UAAUC,UAAUC,cAAcC,QAAQ,YAAa,C,CAGxD,MAAAvD,CAAOwD,G,QACb,GAAIA,GAAe,KAAM,CACvBpF,KAAKa,MAAQuE,C,CAGf,MAAMhE,GAAMe,EAAAyB,OAAO5D,KAAKoB,QAAQ,MAAAe,SAAA,EAAAA,EAAA,EAChC,MAAMd,GAAMwC,EAAAD,OAAO5D,KAAKqB,QAAQ,MAAAwC,SAAA,EAAAA,EAAA,EAChC,IAAIhD,EACJ,MAAMwE,EAAcxD,WAAW7B,KAAKa,OACpC,GAAIyE,MAAMD,GAAc,CACtBxE,EAAQb,KAAKuF,gBAAgBnE,EAAKC,E,KAC7B,CACLR,EAAQwE,C,CAGV,GAAIrF,KAAK2B,aAAe,KAAM,CAI5B3B,KAAK2B,YAAYd,MAAQA,EAAMY,WAC/BzB,KAAKa,MAAQgB,WAAW7B,KAAK2B,YAAYd,M,KACpC,CACLb,KAAKa,MAAQA,C,CAEfb,KAAKwF,4BAA4BpE,EAAKC,EAAKrB,KAAKa,OAChDb,KAAK2D,YAAYvC,EAAKC,EAAKrB,KAAKa,M,CAM1B,eAAA0E,CAAgBnE,EAAaC,GACnC,OAAOA,EAAMD,EAAMA,EAAMA,GAAOC,EAAMD,GAAO,C,CAMvC,2BAAAoE,CAA4BpE,EAAaC,EAAaR,GAC5D,IAAKb,KAAK+E,aAAe/E,KAAK2B,aAAe,KAAM,CACjD,MAAMwC,EAAUC,KAAKqB,MAAO5E,EAAQO,IAAQC,EAAMD,GAAQ,KAC1DpB,KAAK2B,YAAYiD,MAAMc,WACrB,2EACAvB,EACA,oCACAA,EACA,I,EAIN,MAAAwB,GACE,OACEC,EAACC,EAAW,CAAAC,IAAA,2CACV7F,QAASD,KAAKC,QACdgB,MAAOjB,KAAKiB,MACZf,QAASF,KAAKE,QACdQ,aAAcV,KAAKU,aACnBP,WAAYH,KAAKG,WACjBY,SAAUf,KAAKe,SACfP,gBAAiBR,KAAKQ,gBACtBuF,KAAK,SACL3F,YAAaJ,KAAKI,YAClBc,UAAWlB,KAAKkB,UAChBT,iBAAkBT,KAAKS,iBACvBuF,eAAgBhG,KAAKgG,eACrBhF,SAAUhB,KAAKgB,SACfF,SAAUd,KAAKc,SACfmF,aAAcjG,KAAKmB,SAEnByE,EAAA,OAAAE,IAAA,2CACEI,KAAK,OACLC,MAAO,CACLC,MAAO,KAGP,kBAAmBpG,KAAKgB,SACxB,iBAAkBhB,KAAKO,SACvB,yBAA0BP,KAAKW,WAC/B,qBAAsBX,KAAKuB,UAAY,MACvC,wBAAyBvB,KAAKuB,UAAY,UAE5C8E,aAAcrG,KAAK4C,kBAEnBgD,EAAA,SAAAE,IAAA,2CACEI,KAAK,QACLI,IAAMC,GAAQvG,KAAK2B,YAAc4E,EACjCC,KAAK,QACLL,MAAM,iBACNvF,KAAMZ,KAAKY,KACXI,SAAUhB,KAAKgB,SACfI,IAAKpB,KAAKoB,IACVC,IAAKrB,KAAKqB,IACVC,KAAMtB,KAAKsB,KACXT,MAAOb,KAAKa,MACZ4F,QAASzG,KAAK0B,YACdgF,QAAS1G,KAAKsC,YACdqE,OAAQ3G,KAAKiC,aAEdjC,KAAKuB,UAAY,QAChBqE,EAAA,UAAAE,IAAA,2CAAQI,KAAK,UAAUI,IAAMC,GAAQvG,KAAKkE,OAASqC,EAAKJ,MAAM,kBAC3DnG,KAAKwB,iBAAiBxB,KAAKa,S","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as s,g as e}from"./p-D0Go1Zjj.js";import{I as r}from"./p-WA6V9mN8.js";import{D as n,b as o,a as h}from"./p-CKhg9ibv.js";import{E as a}from"./p-C4h4qpGl.js";import{h as c}from"./p-j3oIB5oT.js";import{a as l,m as p}from"./p-Dd6pdO8C.js";const u=()=>{const t=new Date;return{hours:t.getHours(),minutes:t.getMinutes(),seconds:t.getSeconds(),milliseconds:t.getMilliseconds(),has24Hours:true}};const m=12;const d=t=>t>m?t-m:t;const f=()=>{const t=new Date;const i=t.getHours();return{hours:d(i),minutes:t.getMinutes(),seconds:t.getSeconds(),milliseconds:t.getMilliseconds(),has24Hours:false,period:i>=m?"PM":"AM"}};const g=(t=true)=>t?u():f();const x=(t,i)=>{const s=t.split(":");const e=i.split(":");return s.length===e.length};const b=(t,i)=>{const s=t.split(":");const e=i.split(":");if(!x(t,i)){console.error(`Timestring did not match expected format.\nExpected format: ${i}\nReceived timestring: ${t}`)}const r={};s.forEach(((t,i)=>{const s=e[i];switch(s){case"HH":r.hours=Number(t);r.has24Hours=true;break;case"hh":r.hours=Number(t);r.has24Hours=false;break;case"mm":r.minutes=Number(t);break;case"ss":r.seconds=Number(t);break;case"ms":r.milliseconds=Number(t);break;case"aa":r.period=t.toUpperCase()==="PM"?"PM":"AM"}}));return r};const k=(t,i)=>{if(t==null){return""}const s=i.split(":");return s.map((i=>{switch(i){case"HH":case"hh":return String(t.hours).padStart(2,"0");case"mm":return String(t.minutes).padStart(2,"0");case"ss":return String(t.seconds).padStart(2,"0");case"ms":return String(t.milliseconds).padStart(3,"0");case"aa":return String(t.period)}})).join(":")};const v=":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:border-box}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}:host{display:block;font-family:var(--six-font-family)}.timepicker_clear{display:inline-flex;align-items:center;font-size:inherit;color:var(--six-input-icon-color);border:none;background:none;padding:0;transition:var(--six-transition-fast) color;cursor:pointer}.timepicker_clear:hover{color:var(--six-input-icon-color-hover)}.timepicker_clear:focus{outline:none}.timepicker_clear--right{right:0;position:absolute}.timepicker_clear--left{right:35px;position:absolute}.timepicker__container{position:relative}.timepicker__popup{display:flex;justify-content:center;min-width:min-content;background-color:white;padding:0.5em;box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);user-select:none;position:absolute;z-index:var(--six-z-index-dropdown);right:0;left:0}.timepicker__popup--is-up{bottom:100%}.timepicker__popup--is-inline{position:initial;box-shadow:none;border:1px solid var(--six-color-web-rock-400)}.timepicker__separator{display:flex;align-items:center}.timepicker__item--wide{padding-left:0.5rem;padding-right:0.5rem}.input--empty .timepicker_clear{visibility:hidden}.input--hide{display:none}.prefix{cursor:pointer}.prefix--right{right:0;display:inline-flex;position:absolute;font-size:inherit;color:var(--six-input-icon-color);border:none;background:none;margin-right:var(--six-input-spacing-medium);transition:var(--six-transition-fast) color}";const _=145;const y=class{constructor(s){t(this,s);this.sixChange=i(this,"six-timepicker-change");this.sixChangeDebounced=i(this,"six-timepicker-change-debounced");this.sixClear=i(this,"six-timepicker-clear");this.eventListeners=new a;this.format="HH:mm:ss";this.separator=":";this.value="";this.open=false;this.inline=false;this.readonly=false;this.disabled=false;this.size="medium";this.required=false;this.errorText="";this.label="";this.invalid=false;this.name="";this.clearable=false;this.iconPosition="left";this.hoist=false;this.timeout=n;this.interval=o;this.debounce=n;this.isPopupContentUp=false;this.isDropDownContentUp=false;this.popupValue={};this.handlePickerChange=(t,i)=>{t.stopPropagation();if(this.popupValue==null){return}this.popupValue[i]=t.detail;const s=k(this.popupValue,this.format);this.value=s;this.sixChange.emit({changedProperty:i,value:this.popupValue,valueAsString:s})};this.handleDocumentMouseDown=t=>{const i=t.composedPath();if(!i.includes(this.host)){this.closePopup();return}};this.handleClearClick=t=>{t.stopPropagation();this.value="";this.sixClear.emit();this.sixChange.emit({value:{},valueAsString:""})}}async resizeHandler(){this.calcIsPopupContentUp();this.moveOpenHoistedPopup()}async scrollHandler(){this.calcIsPopupContentUp();this.moveOpenHoistedPopup()}valueChanged(){this.updateValue()}async setFocus(t){var i;(i=this.inputElement)===null||i===void 0?void 0:i.setFocus(t)}connectedCallback(){this.eventListeners.forward("six-timepicker-change","change",this.host)}componentWillLoad(){this.updateValue();if(this.inline){this.open=true}if(this.open){this.eventListeners.add(document,"mousedown",this.handleDocumentMouseDown)}}componentDidLoad(){if(this.inputElement==null)return;const t=this.inputElement;this.eventListeners.add(this.host,"six-timepicker-change",h((t=>this.sixChangeDebounced.emit(t.detail)),this.debounce));this.eventListeners.add(t,"six-input-input",h((i=>{i.stopPropagation();if(!x(t.value,this.format)){this.value=t.value;this.sixChange.emit({value:{},valueAsString:""});return}this.value=t.value;this.popupValue=b(t.value,this.format);this.sixChange.emit({value:this.popupValue,valueAsString:k(this.popupValue,this.format)})}),this.debounce))}componentDidRender(){l(this.hoist,this.popup,this.inputElement,this.wrapper,_,(t=>this.isDropDownContentUp=t))}disconnectedCallback(){this.eventListeners.removeAll()}updateValue(){if(typeof this.value!=="string"||!x(this.value,this.format)){this.value=""}if(this.value===""){if(this.defaultTime==null){this.popupValue=g(this.is24HourClock())}else{this.popupValue=b(this.defaultTime,this.format)}}else{this.popupValue=b(this.value,this.format)}}calcIsPopupContentUp(){if(this.inputElement==null||this.wrapper==null){return}const t=this.inputElement.getBoundingClientRect();const i=this.wrapper.getBoundingClientRect();const s=Math.max(i.height,_);const e=t.y>window.innerHeight/2;this.isPopupContentUp=e&&window.innerHeight<t.bottom+s}moveOpenHoistedPopup(){p(this.hoist,this.open,this.popup,this.inputElement,this.wrapper,_)}getSixTimeUnitPicker(t){return s("six-item-picker",{class:t.class,timeout:this.timeout,interval:this.interval,padded:true,min:t.min,max:t.max,value:this.popupValue[t.propertyName],items:t.items,type:t.type||r.NUMBER,"padding-length":t.paddingLength,"onSix-item-picker-change":i=>this.handlePickerChange(i,t.propertyName)})}getHour24Picker(){if(!this.is24HourClock()){return}return this.getSixTimeUnitPicker({min:0,max:23,propertyName:"hours"})}is24HourClock(){return this.format.includes("HH")}getHour12Picker(){if(!this.is12HourClock()){return}return this.getSixTimeUnitPicker({min:0,max:11,propertyName:"hours"})}is12HourClock(){return this.format.includes("hh")}getAmPmPicker(){if(!this.is12HourClock()){return}const t=["AM","PM"];return this.getSixTimeUnitPicker({items:t,type:r.CUSTOM,propertyName:"period"})}getMinutePicker(){if(!this.format.includes("mm")){return}return this.getSixTimeUnitPicker({min:0,max:59,propertyName:"minutes"})}getSecondsPicker(){if(!this.format.includes("ss")){return}return this.getSixTimeUnitPicker({min:0,max:59,propertyName:"seconds"})}getMillisecondsPicker(){if(!this.format.includes("ms")){return}return this.getSixTimeUnitPicker({min:0,max:999,class:"timepicker__item--wide",paddingLength:3,propertyName:"milliseconds"})}getSeparator(){return s("div",{class:"timepicker__separator"},s("span",null,this.separator))}getContent(){const t=[this.getHour24Picker(),this.getHour12Picker(),this.getMinutePicker(),this.getSecondsPicker(),this.getMillisecondsPicker()];const i=t.filter((t=>t!==undefined));return i.map(((t,s)=>{if(s===i.length-1){return[t]}return[t,this.getSeparator()]}))}openPopup(){if(!this.open&&!this.disabled){this.open=true;this.eventListeners.add(document,"mousedown",this.handleDocumentMouseDown)}}closePopup(){if(this.inline){return}this.open=false;this.eventListeners.remove(document,"mousedown",this.handleDocumentMouseDown)}renderClearable(){return this.clearable&&s("button",{slot:"suffix",class:{timepicker_clear:true,"timepicker_clear--right":this.iconPosition==="left","timepicker_clear--left":this.iconPosition==="right"},type:"button",onClick:this.handleClearClick,tabindex:"-1"},s("six-icon",{size:"small"},"clear"))}renderCustomIcon(){const t=c(this.host,"custom-icon")?s("slot",{name:"custom-icon"}):s("six-icon",{size:this.size==="large"?"medium":this.size},"watch_later");return s("span",{slot:"prefix",part:"icon",class:{prefix:true,"prefix--right":this.iconPosition==="right"}},t)}render(){return s("div",{key:"58240c7c32227225d1811fa59e9cf336aad03a4d",part:"container",ref:t=>this.wrapper=t,class:"timepicker__container"},s("six-input",{key:"1b6e9b28d997b67a933d055fa3e73e3c0751aa53",ref:t=>this.inputElement=t,part:"input",onClick:()=>this.openPopup(),value:this.value,placeholder:this.placeholder,readonly:this.readonly,disabled:this.disabled,errorTextCount:this.errorTextCount,errorText:this.errorText,invalid:this.invalid,size:this.size,name:this.name,label:this.label,required:this.required,class:{"input--empty":this.value==="","input--hide":this.inline}},this.renderCustomIcon(),this.renderClearable(),c(this.host,"label")?s("span",{slot:"label"},s("slot",{name:"label"})):null,c(this.host,"error-text")?s("span",{slot:"error-text"},s("slot",{name:"error-text"})):null),this.open&&s("div",{key:"b762116d0af1bc11d7f2cbb255b071e8fe3b52cf",ref:t=>this.popup=t,part:"popup",class:{timepicker__popup:true,"timepicker__popup--is-up":this.placement==null?this.placement==="top":this.isPopupContentUp,"timepicker__popup--is-inline":this.inline}},...this.getContent(),this.getAmPmPicker()))}get host(){return e(this)}static get watchers(){return{value:["valueChanged"]}}};y.style=v;export{y as six_timepicker};
2
- //# sourceMappingURL=p-9b1c8a24.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["getCurrentTimeIn24Hours","now","Date","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","has24Hours","HOURS_IN_12_HOUR_CLOCK_FORMAT","getHoursIn12HourFormat","getCurrentTimeIn12Hours","period","getCurrentTime","isValidTimeString","timeStr","format","timeStringParts","split","timeFormatParts","length","parseTimeString","timeParts","formatParts","console","error","time","forEach","timeStringPart","i","formatStringPart","Number","toUpperCase","createTimeString","map","timeFormatPart","String","padStart","join","sixTimepickerCss","MIN_POPUP_HEIGHT","SixTimepicker","constructor","hostRef","this","eventListeners","EventListeners","separator","value","open","inline","readonly","disabled","size","required","errorText","label","invalid","name","clearable","iconPosition","hoist","timeout","DEFAULT_DEBOUNCE_FAST","interval","DEFAULT_DEBOUNCE_INSANELY_FAST","debounce","isPopupContentUp","isDropDownContentUp","popupValue","handlePickerChange","event","property","stopPropagation","detail","timeString","sixChange","emit","changedProperty","valueAsString","handleDocumentMouseDown","path","composedPath","includes","host","closePopup","handleClearClick","sixClear","resizeHandler","calcIsPopupContentUp","moveOpenHoistedPopup","scrollHandler","valueChanged","updateValue","setFocus","options","_a","inputElement","connectedCallback","forward","componentWillLoad","add","document","componentDidLoad","sixChangeDebounced","componentDidRender","adjustPopupForHoisting","popup","wrapper","isUp","disconnectedCallback","removeAll","defaultTime","is24HourClock","inputBoundingRect","getBoundingClientRect","wrapperBoundingRect","minPopupHeight","Math","max","height","moreSpaceInTop","y","window","innerHeight","bottom","movePopup","getSixTimeUnitPicker","params","h","class","padded","min","propertyName","items","type","ItemPickerType","NUMBER","paddingLength","getHour24Picker","getHour12Picker","is12HourClock","getAmPmPicker","CUSTOM","getMinutePicker","getSecondsPicker","getMillisecondsPicker","getSeparator","getContent","elementsInOrder","visibleElements","filter","el","undefined","idx","openPopup","remove","renderClearable","slot","timepicker_clear","onClick","tabindex","renderCustomIcon","icon","hasSlot","part","prefix","render","key","ref","placeholder","errorTextCount","timepicker__popup","placement"],"sources":["src/utils/time.util.ts","src/components/six-timepicker/six-timepicker.scss?tag=six-timepicker&encapsulation=shadow","src/components/six-timepicker/six-timepicker.tsx"],"sourcesContent":["export type TimePeriod = 'AM' | 'PM';\n\nexport interface Time {\n hours?: number;\n minutes?: number;\n seconds?: number;\n milliseconds?: number;\n has24Hours?: boolean; // true => 24h, false => 12h\n period?: TimePeriod; // only needed for 12-hour clock\n}\n\nexport type TimeProperties = keyof Time;\n\nexport type TimeFormatChar =\n | 'HH' // 24h\n | 'hh' // 12h\n | 'mm' // minutes\n | 'ss' // seconds\n | 'ms' // milliseconds\n | 'aa'; // period (AM/PM)\n\n/*\n * Supported time formats\n */\nexport type TimeFormat =\n | 'HH:mm:ss'\n | 'hh:mm:ss:aa'\n | 'HH:mm:ss:ms'\n | 'hh:mm:ss:ms:aa'\n | 'HH:mm'\n | 'hh:mm:aa'\n | 'HH'\n | 'hh:aa'\n | 'mm'\n | 'ss'\n | 'ms';\n\nexport const getCurrentTimeIn24Hours = (): Time => {\n const now = new Date();\n return {\n hours: now.getHours(),\n minutes: now.getMinutes(),\n seconds: now.getSeconds(),\n milliseconds: now.getMilliseconds(),\n has24Hours: true,\n };\n};\n\nconst HOURS_IN_12_HOUR_CLOCK_FORMAT = 12;\n\nexport const getHoursIn12HourFormat = (hours: number) =>\n hours > HOURS_IN_12_HOUR_CLOCK_FORMAT ? hours - HOURS_IN_12_HOUR_CLOCK_FORMAT : hours;\n\nexport const getCurrentTimeIn12Hours = (): Time => {\n const now = new Date();\n const hours = now.getHours();\n return {\n hours: getHoursIn12HourFormat(hours),\n minutes: now.getMinutes(),\n seconds: now.getSeconds(),\n milliseconds: now.getMilliseconds(),\n has24Hours: false,\n period: hours >= HOURS_IN_12_HOUR_CLOCK_FORMAT ? 'PM' : 'AM',\n };\n};\n\nexport const getCurrentTime = (has24Hours = true): Time => {\n return has24Hours ? getCurrentTimeIn24Hours() : getCurrentTimeIn12Hours();\n};\n\nexport const isValidTimeString = (timeStr: string, format: TimeFormat) => {\n const timeStringParts = timeStr.split(':');\n const timeFormatParts = format.split(':');\n return timeStringParts.length === timeFormatParts.length;\n};\n\nexport const parseTimeString = (timeStr: string, format: TimeFormat): Time => {\n const timeParts = timeStr.split(':');\n const formatParts = format.split(':') as TimeFormatChar[];\n\n if (!isValidTimeString(timeStr, format)) {\n console.error(\n `Timestring did not match expected format.\\nExpected format: ${format}\\nReceived timestring: ${timeStr}`\n );\n }\n\n const time: Time = {};\n\n timeParts.forEach((timeStringPart, i) => {\n const formatStringPart: TimeFormatChar = formatParts[i];\n switch (formatStringPart) {\n case 'HH':\n time.hours = Number(timeStringPart);\n time.has24Hours = true;\n break;\n case 'hh':\n time.hours = Number(timeStringPart);\n time.has24Hours = false;\n break;\n case 'mm':\n time.minutes = Number(timeStringPart);\n break;\n case 'ss':\n time.seconds = Number(timeStringPart);\n break;\n case 'ms':\n time.milliseconds = Number(timeStringPart);\n break;\n case 'aa':\n time.period = timeStringPart.toUpperCase() === 'PM' ? 'PM' : 'AM';\n }\n });\n return time;\n};\n\nexport const createTimeString = (time: Time | undefined, format: TimeFormat): string => {\n if (time == null) {\n return '';\n }\n\n const formatParts = format.split(':') as TimeFormatChar[];\n\n return formatParts\n .map((timeFormatPart) => {\n switch (timeFormatPart) {\n case 'HH':\n case 'hh':\n return String(time.hours).padStart(2, '0');\n case 'mm':\n return String(time.minutes).padStart(2, '0');\n case 'ss':\n return String(time.seconds).padStart(2, '0');\n case 'ms':\n return String(time.milliseconds).padStart(3, '0');\n case 'aa':\n return String(time.period);\n }\n })\n .join(':');\n};\n","@import 'src/global/component';\n\n:host {\n display: block;\n font-family: var(--six-font-family);\n}\n\n.timepicker {\n &_clear {\n display: inline-flex;\n align-items: center;\n font-size: inherit;\n color: var(--six-input-icon-color);\n border: none;\n background: none;\n padding: 0;\n transition: var(--six-transition-fast) color;\n cursor: pointer;\n\n &:hover {\n color: var(--six-input-icon-color-hover);\n }\n\n &:focus {\n outline: none;\n }\n\n &--right {\n right: 0;\n position: absolute;\n }\n\n &--left {\n right: 35px;\n position: absolute;\n }\n }\n\n &__container {\n position: relative;\n }\n\n &__popup {\n display: flex;\n justify-content: center;\n min-width: min-content;\n background-color: white;\n padding: 0.5em;\n box-shadow:\n 0 2px 4px -1px rgb(0 0 0 / 20%),\n 0 4px 5px 0 rgb(0 0 0 / 14%),\n 0 1px 10px 0 rgb(0 0 0 / 12%);\n user-select: none;\n position: absolute;\n z-index: var(--six-z-index-dropdown);\n right: 0;\n left: 0;\n\n &--is-up {\n bottom: 100%;\n }\n\n &--is-inline {\n position: initial;\n box-shadow: none;\n border: 1px solid var(--six-color-web-rock-400);\n }\n }\n\n &__separator {\n display: flex;\n align-items: center;\n }\n\n &__item {\n &--wide {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n }\n }\n}\n\n.input--empty .timepicker_clear {\n visibility: hidden;\n}\n\n.input--hide {\n display: none;\n}\n\n// Icon position\n.prefix {\n cursor: pointer;\n\n &--right {\n right: 0;\n display: inline-flex;\n position: absolute;\n font-size: inherit;\n color: var(--six-input-icon-color);\n border: none;\n background: none;\n margin-right: var(--six-input-spacing-medium);\n transition: var(--six-transition-fast) color;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Method, Prop, State, Watch } from '@stencil/core';\nimport { ItemPickerType } from '../six-item-picker/types';\nimport {\n createTimeString,\n getCurrentTime,\n isValidTimeString,\n parseTimeString,\n Time,\n TimeFormat,\n TimeProperties,\n} from '../../utils/time.util';\nimport { debounce, DEFAULT_DEBOUNCE_FAST, DEFAULT_DEBOUNCE_INSANELY_FAST } from '../../utils/execution-control';\nimport { SixItemPickerChangePayload } from '../six-item-picker/six-item-picker';\nimport { EventListeners } from '../../utils/event-listeners';\nimport { hasSlot } from '../../utils/slot';\nimport { EmptyPayload } from '../../utils/types';\nimport { adjustPopupForHoisting, movePopup } from '../../utils/popup';\n\nexport interface SixTimepickerChange {\n value?: Time;\n valueAsString: string;\n changedProperty?: string;\n}\n\ninterface SixTimeUnitPickerParams {\n min?: number;\n max?: number;\n items?: string[];\n type?: ItemPickerType;\n class?: string;\n paddingLength?: number;\n propertyName: TimeProperties;\n}\n\nconst MIN_POPUP_HEIGHT = 145;\n\n/**\n * @since 2.0.0\n * @status experimental\n *\n * @slot error-text - Error text that is shown for validation errors. Alternatively, you can use the error-text prop.\n *\n * @part input - The input field\n * @part container - The container of whole component\n * @part popup - The popup of the timepicker component\n *\n */\n@Component({\n tag: 'six-timepicker',\n styleUrl: 'six-timepicker.scss',\n shadow: true,\n})\nexport class SixTimepicker {\n private eventListeners = new EventListeners();\n private popup?: HTMLElement;\n private wrapper?: HTMLElement;\n private inputElement?: HTMLSixInputElement;\n\n @Element() host!: HTMLSixTimepickerElement;\n\n /**\n * Define the time format. Valid formats are:\n *\n * HH:mm:ss\n * hh:mm:ss:aa\n * HH:mm:ss:ms\n * hh:mm:ss:ms:aa\n * HH:mm\n * hh:mm:aa\n * HH\n * hh:aa\n * mm\n * ss\n * ms\n *\n * where HH is the 24 hour format\n * and hh is the 12 hour format\n *\n * Please notice that when using the 12-hour-clock (hh)\n * you always need a period indicator (aa). So the time can be parsed as either am or pm\n * */\n @Prop() format: TimeFormat = 'HH:mm:ss';\n\n /**\n * Define the separator to be shown between the time unit pickers.\n * Please be aware that this property will modify the displayed separator only.\n * The separator for a timestring is always expected to be a colon (eg. '13:52:20')\n * */\n @Prop() separator = ':';\n\n /**\n * The value of the timepicker provided as a string. The string mast match the provided format (or default format)\n */\n @Prop({ mutable: true }) value = '';\n\n /** Indicates whether the timepicker dropdown is open on startup. You can use this in lieu of the show/hide methods. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n /** Indicates whether the timepicker should be shown as an inline (always open) component */\n @Prop({ reflect: true }) inline = false;\n\n /**\n * If `true` the user can only select a time via the timepicker but not directly edit the input field.\n */\n @Prop() readonly = false;\n\n /**\n * If `true` the component is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * The enforced placement of the dropdown panel.\n */\n @Prop() placement?: 'top' | 'bottom';\n\n /** Timepicker size. */\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Set to true to show an asterisk beneath the label. */\n @Prop() required = false;\n\n /**\n * The placeholder defines what text to be shown on the input element\n */\n @Prop() placeholder?: string;\n\n /** The input's error text. Alternatively, you can use the error-text slot. */\n @Prop() errorText: string | string[] = '';\n\n /** The number of error texts to be shown (if the error-text slot isn't used). Defaults to 1 */\n @Prop() errorTextCount?: number;\n\n /** The input's label. Alternatively, you can use the label slot. */\n @Prop() label = '';\n\n /** If this property is set to true and an error message is provided by `errorText`, the error message is displayed. */\n @Prop({ reflect: true }) invalid = false;\n\n /** The input's name attribute. */\n @Prop({ reflect: true }) name = '';\n\n /** Set to true to add a clear button when the input is populated. */\n @Prop() clearable = false;\n\n /** Set the position of the icon */\n @Prop() iconPosition: 'left' | 'right' = 'left';\n\n /**\n * Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`.\n */\n @Prop() hoist = false;\n\n /**\n * Set the amount of time, in milliseconds, to wait to trigger faster switching between timeunits (e.g. hours).\n */\n @Prop() timeout = DEFAULT_DEBOUNCE_FAST;\n\n /**\n * Set the amount of time, in milliseconds, to wait between switching to next timeunit (e.g. next hour) when mouse button is held pressed.\n */\n @Prop() interval = DEFAULT_DEBOUNCE_INSANELY_FAST;\n\n /**\n * The defaultTime defines the default setting for the timepicker when you open the popup. Default time must match the provided format.\n */\n @Prop() defaultTime?: string;\n\n /**\n * Set the amount of time, in milliseconds, to wait to trigger the `six-timepicker-change-debounced` event.\n * If you want your change debounce event to not trigger when keeping the nav button pressed before, make sure debounce\n * is 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\n */\n @Prop() debounce = DEFAULT_DEBOUNCE_FAST;\n\n /**\n * Emitted when the timepicker's value changes\n */\n @Event({ eventName: 'six-timepicker-change' }) sixChange!: EventEmitter<SixTimepickerChange>;\n\n /**\n * Emitted when the timepicker's value changes, but debounced\n */\n @Event({ eventName: 'six-timepicker-change-debounced' }) sixChangeDebounced!: EventEmitter<SixTimepickerChange>;\n\n /**\n * Emitted when the clear button is activated.\n */\n @Event({ eventName: 'six-timepicker-clear' }) sixClear!: EventEmitter<EmptyPayload>;\n\n @State() isPopupContentUp = false;\n\n @State() isDropDownContentUp = false;\n\n @Listen('resize', { target: 'window' })\n async resizeHandler() {\n this.calcIsPopupContentUp();\n this.moveOpenHoistedPopup();\n }\n\n @Listen('scroll', { target: 'window' })\n async scrollHandler() {\n this.calcIsPopupContentUp();\n this.moveOpenHoistedPopup();\n }\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n this.updateValue();\n }\n\n /** Sets focus on the datepickers input. */\n @Method()\n async setFocus(options?: FocusOptions) {\n this.inputElement?.setFocus(options);\n }\n\n /*\n * Internally the six-timepicker uses a standardized representation of time, so we don't have a mess,\n * when switching between formats\n */\n @State() private popupValue: Time = {};\n\n connectedCallback() {\n this.eventListeners.forward('six-timepicker-change', 'change', this.host);\n }\n\n componentWillLoad() {\n this.updateValue();\n\n if (this.inline) {\n this.open = true;\n }\n\n if (this.open) {\n this.eventListeners.add(document, 'mousedown', this.handleDocumentMouseDown);\n }\n }\n\n componentDidLoad() {\n if (this.inputElement == null) return;\n const inputElement = this.inputElement;\n\n // emit debounced change event\n this.eventListeners.add(\n this.host,\n 'six-timepicker-change',\n debounce((event: Event) => this.sixChangeDebounced.emit((event as CustomEvent).detail), this.debounce)\n );\n\n // update value and popup value based on input-element value\n this.eventListeners.add(\n inputElement,\n 'six-input-input',\n debounce((event: Event) => {\n event.stopPropagation();\n\n // emit empty event if time string is invalid\n if (!isValidTimeString(inputElement.value, this.format)) {\n this.value = inputElement.value;\n this.sixChange.emit({\n value: {},\n valueAsString: '',\n });\n return;\n }\n\n // update value and popup value, and emit the new value\n this.value = inputElement.value;\n this.popupValue = parseTimeString(inputElement.value, this.format);\n this.sixChange.emit({\n value: this.popupValue,\n valueAsString: createTimeString(this.popupValue, this.format),\n });\n }, this.debounce)\n );\n }\n\n componentDidRender() {\n adjustPopupForHoisting(\n this.hoist,\n this.popup,\n this.inputElement,\n this.wrapper,\n MIN_POPUP_HEIGHT,\n (isUp) => (this.isDropDownContentUp = isUp)\n );\n }\n\n disconnectedCallback() {\n this.eventListeners.removeAll();\n }\n private updateValue() {\n // normalize value\n if (typeof this.value !== 'string' || !isValidTimeString(this.value, this.format)) {\n this.value = '';\n }\n\n // update popup value\n if (this.value === '') {\n if (this.defaultTime == null) {\n this.popupValue = getCurrentTime(this.is24HourClock());\n } else {\n this.popupValue = parseTimeString(this.defaultTime, this.format);\n }\n } else {\n this.popupValue = parseTimeString(this.value, this.format);\n }\n }\n\n private calcIsPopupContentUp() {\n if (this.inputElement == null || this.wrapper == null) {\n return;\n }\n\n const inputBoundingRect = this.inputElement.getBoundingClientRect();\n const wrapperBoundingRect = this.wrapper.getBoundingClientRect();\n const minPopupHeight = Math.max(wrapperBoundingRect.height, MIN_POPUP_HEIGHT);\n\n const moreSpaceInTop = inputBoundingRect.y > window.innerHeight / 2;\n this.isPopupContentUp = moreSpaceInTop && window.innerHeight < inputBoundingRect.bottom + minPopupHeight;\n }\n\n private moveOpenHoistedPopup() {\n movePopup(this.hoist, this.open, this.popup, this.inputElement, this.wrapper, MIN_POPUP_HEIGHT);\n }\n\n private handlePickerChange = (event: CustomEvent<SixItemPickerChangePayload>, property: TimeProperties) => {\n // stop propagation, since the timepicker should not expose the events of the underlying item-picker\n event.stopPropagation();\n if (this.popupValue == null) {\n return;\n }\n\n // update the internal state\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.popupValue[property] = event.detail;\n\n const timeString = createTimeString(this.popupValue, this.format);\n\n // update the input value\n this.value = timeString;\n\n // emit change event\n this.sixChange.emit({\n changedProperty: property,\n value: this.popupValue,\n valueAsString: timeString,\n });\n };\n\n private getSixTimeUnitPicker(params: SixTimeUnitPickerParams) {\n return (\n <six-item-picker\n class={params.class}\n timeout={this.timeout}\n interval={this.interval}\n padded\n min={params.min}\n max={params.max}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n value={this.popupValue[params.propertyName]}\n items={params.items}\n type={params.type || ItemPickerType.NUMBER}\n padding-length={params.paddingLength}\n onSix-item-picker-change={(event) => this.handlePickerChange(event, params.propertyName)}\n ></six-item-picker>\n );\n }\n\n private getHour24Picker() {\n if (!this.is24HourClock()) {\n return;\n }\n return this.getSixTimeUnitPicker({ min: 0, max: 23, propertyName: 'hours' });\n }\n\n private is24HourClock() {\n return this.format.includes('HH');\n }\n\n private getHour12Picker() {\n if (!this.is12HourClock()) {\n return;\n }\n return this.getSixTimeUnitPicker({ min: 0, max: 11, propertyName: 'hours' });\n }\n\n private is12HourClock() {\n return this.format.includes('hh');\n }\n\n private getAmPmPicker() {\n if (!this.is12HourClock()) {\n return;\n }\n const items = ['AM', 'PM'];\n return this.getSixTimeUnitPicker({\n items,\n type: ItemPickerType.CUSTOM,\n propertyName: 'period',\n });\n }\n\n private getMinutePicker() {\n if (!this.format.includes('mm')) {\n return;\n }\n\n return this.getSixTimeUnitPicker({ min: 0, max: 59, propertyName: 'minutes' });\n }\n\n private getSecondsPicker() {\n if (!this.format.includes('ss')) {\n return;\n }\n\n return this.getSixTimeUnitPicker({ min: 0, max: 59, propertyName: 'seconds' });\n }\n\n private getMillisecondsPicker() {\n if (!this.format.includes('ms')) {\n return;\n }\n\n return this.getSixTimeUnitPicker({\n min: 0,\n max: 999,\n class: 'timepicker__item--wide',\n paddingLength: 3,\n propertyName: 'milliseconds',\n });\n }\n\n private getSeparator() {\n return (\n <div class=\"timepicker__separator\">\n <span>{this.separator}</span>\n </div>\n );\n }\n\n private getContent() {\n const elementsInOrder = [\n this.getHour24Picker(),\n this.getHour12Picker(),\n this.getMinutePicker(),\n this.getSecondsPicker(),\n this.getMillisecondsPicker(),\n ];\n\n const visibleElements = elementsInOrder.filter((el) => el !== undefined);\n\n return visibleElements.map((el, idx) => {\n if (idx === visibleElements.length - 1) {\n return [el];\n }\n\n return [el, this.getSeparator()];\n });\n }\n\n private openPopup() {\n if (!this.open && !this.disabled) {\n this.open = true;\n this.eventListeners.add(document, 'mousedown', this.handleDocumentMouseDown);\n }\n }\n\n private closePopup() {\n if (this.inline) {\n return;\n }\n\n this.open = false;\n this.eventListeners.remove(document, 'mousedown', this.handleDocumentMouseDown);\n }\n\n private handleDocumentMouseDown = (event: Event) => {\n // Close when clicking outside the containing element\n const path = event.composedPath() as EventTarget[];\n if (!path.includes(this.host)) {\n this.closePopup();\n return;\n }\n };\n\n private handleClearClick = (event: MouseEvent) => {\n event.stopPropagation();\n this.value = '';\n this.sixClear.emit();\n this.sixChange.emit({\n value: {},\n valueAsString: '',\n });\n };\n\n private renderClearable() {\n return (\n this.clearable && (\n <button\n slot=\"suffix\"\n class={{\n timepicker_clear: true,\n 'timepicker_clear--right': this.iconPosition === 'left',\n 'timepicker_clear--left': this.iconPosition === 'right',\n }}\n type=\"button\"\n onClick={this.handleClearClick}\n tabindex=\"-1\"\n >\n <six-icon size=\"small\">clear</six-icon>\n </button>\n )\n );\n }\n\n private renderCustomIcon() {\n const icon = hasSlot(this.host, 'custom-icon') ? (\n <slot name=\"custom-icon\"></slot>\n ) : (\n <six-icon size={this.size === 'large' ? 'medium' : this.size}>watch_later</six-icon>\n );\n\n return (\n <span\n slot=\"prefix\"\n part=\"icon\"\n class={{\n prefix: true,\n 'prefix--right': this.iconPosition === 'right',\n }}\n >\n {icon}\n </span>\n );\n }\n\n render() {\n return (\n <div part=\"container\" ref={(el) => (this.wrapper = el)} class=\"timepicker__container\">\n <six-input\n ref={(el) => (this.inputElement = el)}\n part=\"input\"\n onClick={() => this.openPopup()}\n value={this.value}\n placeholder={this.placeholder}\n readonly={this.readonly}\n disabled={this.disabled}\n errorTextCount={this.errorTextCount}\n errorText={this.errorText}\n invalid={this.invalid}\n size={this.size}\n name={this.name}\n label={this.label}\n required={this.required}\n class={{\n 'input--empty': this.value === '',\n 'input--hide': this.inline,\n }}\n >\n {this.renderCustomIcon()}\n {this.renderClearable()}\n {hasSlot(this.host, 'label') ? (\n <span slot=\"label\">\n <slot name=\"label\" />\n </span>\n ) : null}\n {hasSlot(this.host, 'error-text') ? (\n <span slot=\"error-text\">\n <slot name=\"error-text\" />\n </span>\n ) : null}\n </six-input>\n {this.open && (\n <div\n ref={(el) => (this.popup = el)}\n part=\"popup\"\n class={{\n timepicker__popup: true,\n 'timepicker__popup--is-up': this.placement == null ? this.placement === 'top' : this.isPopupContentUp,\n 'timepicker__popup--is-inline': this.inline,\n }}\n >\n {...this.getContent()}\n {this.getAmPmPicker()}\n </div>\n )}\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["sixSwitchCss","id","SixSwitch","constructor","hostRef","this","switchId","labelId","errorTextId","eventListeners","EventListeners","hasFocus","hasErrorTextSlot","name","value","disabled","required","checked","label","errorText","invalid","handleSlotChange","hasSlot","host","handleClick","inputElement","sixChange","emit","handleBlur","sixBlur","handleFocus","sixFocus","handleKeyDown","event","key","preventDefault","handleMouseDown","_a","focus","componentWillLoad","handleCheckedChange","connectedCallback","shadowRoot","addEventListener","forward","disconnectedCallback","removeEventListener","removeAll","handleLabelChange","setFocus","options","removeFocus","blur","render","h","FormControl","inputId","hasLabelSlot","errorTextCount","size","displayError","part","htmlFor","class","switch","onMouseDown","ref","el","type","role","onClick","onBlur","onFocus","onKeyDown"],"sources":["src/components/six-switch/six-switch.scss?tag=six-switch&encapsulation=shadow","src/components/six-switch/six-switch.tsx"],"sourcesContent":["@import 'src/global/component';\n@import '../../functional-components/form-control/form-control';\n\n/**\n * @prop --width: The width of the switch.\n * @prop --height: The height of the switch.\n * @prop --thumb-size: The size of the thumb.\n */\n:host {\n --height: var(--six-selection-control-toggle-size);\n --thumb-size: calc(var(--six-selection-control-toggle-size) - 4px);\n --width: calc(var(--height) * 2);\n\n display: inline-block;\n}\n\n.switch {\n display: inline-flex;\n align-items: center;\n font-family: var(--six-font-family);\n font-size: var(--six-input-font-size-medium);\n font-weight: var(--six-input-font-weight);\n color: var(--six-input-color);\n vertical-align: middle;\n cursor: pointer;\n}\n\n.switch__control {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--width);\n height: var(--height);\n background-color: var(--six-selection-control-color-disabled);\n border-radius: var(--height);\n transition:\n var(--six-transition-fast) border-color,\n var(--six-transition-fast) background-color;\n\n .switch__thumb {\n width: var(--thumb-size);\n height: var(--thumb-size);\n background-color: var(--six-input-background-color);\n border-radius: 50%;\n transform: translateX(calc(var(--width) / -2 + var(--thumb-size) / 2 - (var(--thumb-size) - var(--height)) / 2));\n transition:\n var(--six-transition-fast) transform ease,\n var(--six-transition-fast) background-color,\n var(--six-transition-fast) border-color,\n var(--six-transition-fast) box-shadow;\n }\n\n input[type='checkbox'] {\n position: absolute;\n opacity: 0;\n padding: 0;\n margin: 0;\n pointer-events: none;\n }\n}\n\n// Hover\n.switch:not(.switch--checked):not(.switch--disabled) .switch__control:hover {\n background-color: var(--six-input-border-color-hover);\n}\n\n// Checked\n.switch--checked .switch__control {\n background-color: var(--six-selection-control-color);\n\n .switch__thumb {\n background-color: var(--six-color-white);\n transform: translateX(calc(var(--width) / 2 - var(--thumb-size) / 2 + (var(--thumb-size) - var(--height)) / 2));\n }\n}\n\n// Checked + hover\n.switch.switch--checked:not(.switch--disabled) .switch__control:hover {\n background-color: var(--six-input-border-color-focus);\n}\n\n// Disabled\n.switch--disabled {\n cursor: not-allowed;\n color: var(--six-selection-control-color-disabled);\n\n .switch__control {\n background-color: var(--six-selection-control-color-disabled);\n }\n\n &.switch--checked .switch__control {\n background-color: var(--six-selection-control-color-disabled);\n }\n}\n\n.switch__label {\n line-height: var(--height);\n margin-left: 0.5em;\n user-select: none;\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { EmptyPayload } from '../../utils/types';\nimport { EventListeners } from '../../utils/event-listeners';\nimport FormControl from '../../functional-components/form-control/form-control';\nimport { hasSlot } from '../../utils/slot';\n\nlet id = 0;\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot - The switch's label.\n * @slot error-text - Error text that is shown for validation errors. Alternatively, you can use the error-text prop.\n *\n * @part base - The component's base wrapper.\n * @part control - The switch control.\n * @part thumb - The switch position indicator.\n * @part label - The switch label.\n */\n\n@Component({\n tag: 'six-switch',\n styleUrl: 'six-switch.scss',\n shadow: true,\n})\nexport class SixSwitch {\n private switchId = `switch-${++id}`;\n private labelId = `switch-label-${id}`;\n private errorTextId = `input-error-text-${id}`;\n\n private inputElement?: HTMLInputElement;\n private eventListeners = new EventListeners();\n\n @Element() host!: HTMLSixSwitchElement;\n\n @State() hasFocus = false;\n @State() hasErrorTextSlot = false;\n\n /** The switch's name attribute. */\n @Prop() name = '';\n\n /** The switch's value attribute. */\n @Prop() value = 'on';\n\n /** Set to true to disable the switch. */\n @Prop() disabled = false;\n\n /** Set to true to show an asterisk beneath the label. */\n @Prop() required = false;\n\n /** Set to true to draw the switch in a checked state. */\n @Prop({ mutable: true, reflect: true }) checked = false;\n\n /** The label text. */\n @Prop() label = '';\n\n /** The error message shown, if `invalid` is set to true. */\n @Prop() errorText: string | string[] = '';\n\n /** The number of error texts to be shown (if the error-text slot isn't used). Defaults to 1 */\n @Prop() errorTextCount?: number;\n\n /** If this property is set to true and an error message is provided by `errorText`, the error message is displayed. */\n @Prop({ reflect: true }) invalid = false;\n\n componentWillLoad() {\n this.handleSlotChange();\n }\n\n @Watch('checked')\n handleCheckedChange() {\n if (this.inputElement != null) {\n this.inputElement.checked = this.checked;\n this.checked = this.inputElement.checked;\n }\n }\n\n /** Emitted when the control loses focus. */\n @Event({ eventName: 'six-switch-blur' }) sixBlur!: EventEmitter<boolean>;\n\n /** Emitted when the control's checked state changes. */\n @Event({ eventName: 'six-switch-change' }) sixChange!: EventEmitter<boolean>;\n\n /** Emitted when the control gains focus. */\n @Event({ eventName: 'six-switch-focus' }) sixFocus!: EventEmitter<EmptyPayload>;\n\n connectedCallback() {\n this.host.shadowRoot?.addEventListener('slotchange', this.handleSlotChange);\n this.eventListeners.forward('six-switch-change', 'change', this.host);\n this.eventListeners.forward('six-switch-blur', 'blur', this.host);\n this.eventListeners.forward('six-switch-focus', 'focus', this.host);\n }\n\n disconnectedCallback() {\n this.host.shadowRoot?.removeEventListener('slotchange', this.handleSlotChange);\n this.eventListeners.removeAll();\n }\n\n @Watch('errorText')\n @Watch('label')\n handleLabelChange() {\n this.handleSlotChange();\n }\n\n private handleSlotChange = () => {\n this.hasErrorTextSlot = hasSlot(this.host, 'error-text');\n };\n\n /** Sets focus on the switch. */\n @Method()\n async setFocus(options?: FocusOptions) {\n this.inputElement?.focus(options);\n }\n\n /** Removes focus from the switch. */\n @Method()\n async removeFocus() {\n this.inputElement?.blur();\n }\n\n private handleClick = () => {\n if (this.inputElement != null) {\n this.checked = this.inputElement.checked;\n this.sixChange.emit(this.checked);\n }\n };\n\n private handleBlur = () => {\n this.hasFocus = false;\n this.sixBlur.emit(this.checked);\n };\n\n private handleFocus = () => {\n this.hasFocus = true;\n this.sixFocus.emit();\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n this.checked = false;\n this.sixChange.emit(this.checked);\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n this.checked = true;\n this.sixChange.emit(this.checked);\n }\n };\n\n private handleMouseDown = (event: MouseEvent) => {\n // Prevent clicks on the label from briefly blurring the input\n event.preventDefault();\n this.inputElement?.focus();\n };\n\n render() {\n return (\n <FormControl\n inputId={this.switchId}\n label={this.label}\n labelId={this.labelId}\n hasLabelSlot={false}\n errorTextId={this.errorTextId}\n errorText={this.errorText}\n errorTextCount={this.errorTextCount}\n hasErrorTextSlot={this.hasErrorTextSlot}\n size=\"medium\"\n disabled={this.disabled}\n required={this.required}\n displayError={this.invalid}\n >\n <label\n part=\"base\"\n htmlFor={this.switchId}\n class={{\n switch: true,\n 'switch--checked': this.checked,\n 'switch--disabled': this.disabled,\n 'switch--focused': this.hasFocus,\n }}\n onMouseDown={this.handleMouseDown}\n >\n <span part=\"control\" class=\"switch__control\">\n <span part=\"thumb\" class=\"switch__thumb\" />\n\n <input\n ref={(el) => (this.inputElement = el)}\n id={this.switchId}\n type=\"checkbox\"\n name={this.name}\n value={this.value}\n checked={this.checked}\n disabled={this.disabled}\n required={this.required}\n role=\"switch\"\n aria-checked={this.checked ? 'true' : 'false'}\n aria-labelledby={this.labelId}\n onClick={this.handleClick}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n />\n </span>\n\n <span part=\"label\" id={this.labelId} class=\"switch__label\">\n <slot />\n </span>\n </label>\n </FormControl>\n );\n }\n}\n"],"mappings":"qKAAA,MAAMA,EAAe,uuJCMrB,IAAIC,EAAK,E,MAsBIC,EAAS,MALtB,WAAAC,CAAAC,G,qIAMUC,KAAAC,SAAW,YAAYL,IACvBI,KAAAE,QAAU,gBAAgBN,IAC1BI,KAAAG,YAAc,oBAAoBP,IAGlCI,KAAAI,eAAiB,IAAIC,EAIpBL,KAAQM,SAAG,MACXN,KAAgBO,iBAAG,MAGpBP,KAAIQ,KAAG,GAGPR,KAAKS,MAAG,KAGRT,KAAQU,SAAG,MAGXV,KAAQW,SAAG,MAGqBX,KAAOY,QAAG,MAG1CZ,KAAKa,MAAG,GAGRb,KAASc,UAAsB,GAMdd,KAAOe,QAAG,MAyC3Bf,KAAgBgB,iBAAG,KACzBhB,KAAKO,iBAAmBU,EAAQjB,KAAKkB,KAAM,aAAa,EAelDlB,KAAWmB,YAAG,KACpB,GAAInB,KAAKoB,cAAgB,KAAM,CAC7BpB,KAAKY,QAAUZ,KAAKoB,aAAaR,QACjCZ,KAAKqB,UAAUC,KAAKtB,KAAKY,Q,GAIrBZ,KAAUuB,WAAG,KACnBvB,KAAKM,SAAW,MAChBN,KAAKwB,QAAQF,KAAKtB,KAAKY,QAAQ,EAGzBZ,KAAWyB,YAAG,KACpBzB,KAAKM,SAAW,KAChBN,KAAK0B,SAASJ,MAAM,EAGdtB,KAAA2B,cAAiBC,IACvB,GAAIA,EAAMC,MAAQ,YAAa,CAC7BD,EAAME,iBACN9B,KAAKY,QAAU,MACfZ,KAAKqB,UAAUC,KAAKtB,KAAKY,Q,CAG3B,GAAIgB,EAAMC,MAAQ,aAAc,CAC9BD,EAAME,iBACN9B,KAAKY,QAAU,KACfZ,KAAKqB,UAAUC,KAAKtB,KAAKY,Q,GAIrBZ,KAAA+B,gBAAmBH,I,MAEzBA,EAAME,kBACNE,EAAAhC,KAAKoB,gBAAc,MAAAY,SAAA,SAAAA,EAAAC,OAAO,CA2D7B,CApJC,iBAAAC,GACElC,KAAKgB,kB,CAIP,mBAAAmB,GACE,GAAInC,KAAKoB,cAAgB,KAAM,CAC7BpB,KAAKoB,aAAaR,QAAUZ,KAAKY,QACjCZ,KAAKY,QAAUZ,KAAKoB,aAAaR,O,EAarC,iBAAAwB,G,OACEJ,EAAAhC,KAAKkB,KAAKmB,cAAY,MAAAL,SAAA,SAAAA,EAAAM,iBAAiB,aAActC,KAAKgB,kBAC1DhB,KAAKI,eAAemC,QAAQ,oBAAqB,SAAUvC,KAAKkB,MAChElB,KAAKI,eAAemC,QAAQ,kBAAmB,OAAQvC,KAAKkB,MAC5DlB,KAAKI,eAAemC,QAAQ,mBAAoB,QAASvC,KAAKkB,K,CAGhE,oBAAAsB,G,OACER,EAAAhC,KAAKkB,KAAKmB,cAAY,MAAAL,SAAA,SAAAA,EAAAS,oBAAoB,aAAczC,KAAKgB,kBAC7DhB,KAAKI,eAAesC,W,CAKtB,iBAAAC,GACE3C,KAAKgB,kB,CASP,cAAM4B,CAASC,G,OACbb,EAAAhC,KAAKoB,gBAAY,MAAAY,SAAA,SAAAA,EAAEC,MAAMY,E,CAK3B,iBAAMC,G,OACJd,EAAAhC,KAAKoB,gBAAc,MAAAY,SAAA,SAAAA,EAAAe,M,CAwCrB,MAAAC,GACE,OACEC,EAACC,EAAW,CAAArB,IAAA,2CACVsB,QAASnD,KAAKC,SACdY,MAAOb,KAAKa,MACZX,QAASF,KAAKE,QACdkD,aAAc,MACdjD,YAAaH,KAAKG,YAClBW,UAAWd,KAAKc,UAChBuC,eAAgBrD,KAAKqD,eACrB9C,iBAAkBP,KAAKO,iBACvB+C,KAAK,SACL5C,SAAUV,KAAKU,SACfC,SAAUX,KAAKW,SACf4C,aAAcvD,KAAKe,SAEnBkC,EACE,SAAApB,IAAA,2CAAA2B,KAAK,OACLC,QAASzD,KAAKC,SACdyD,MAAO,CACLC,OAAQ,KACR,kBAAmB3D,KAAKY,QACxB,mBAAoBZ,KAAKU,SACzB,kBAAmBV,KAAKM,UAE1BsD,YAAa5D,KAAK+B,iBAElBkB,EAAA,QAAApB,IAAA,2CAAM2B,KAAK,UAAUE,MAAM,mBACzBT,EAAA,QAAApB,IAAA,2CAAM2B,KAAK,QAAQE,MAAM,kBAEzBT,EACE,SAAApB,IAAA,2CAAAgC,IAAMC,GAAQ9D,KAAKoB,aAAe0C,EAClClE,GAAII,KAAKC,SACT8D,KAAK,WACLvD,KAAMR,KAAKQ,KACXC,MAAOT,KAAKS,MACZG,QAASZ,KAAKY,QACdF,SAAUV,KAAKU,SACfC,SAAUX,KAAKW,SACfqD,KAAK,SACS,eAAAhE,KAAKY,QAAU,OAAS,QAAO,kBAC5BZ,KAAKE,QACtB+D,QAASjE,KAAKmB,YACd+C,OAAQlE,KAAKuB,WACb4C,QAASnE,KAAKyB,YACd2C,UAAWpE,KAAK2B,iBAIpBsB,EAAA,QAAApB,IAAA,2CAAM2B,KAAK,QAAQ5D,GAAII,KAAKE,QAASwD,MAAM,iBACzCT,EAAA,QAAApB,IAAA,+C","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as a,H as o,g as s}from"./p-D0Go1Zjj.js";const e=":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:border-box}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}:host{display:flex}.tab{display:inline-flex;align-items:center;font-family:var(--six-font-family);font-size:var(--six-font-size-small);font-weight:var(--six-font-weight-semibold);color:var(--six-tab-color);padding:var(--six-spacing-medium) var(--six-spacing-large);white-space:nowrap;user-select:none;cursor:pointer;width:100%}.tab:focus{outline:none}.tab:focus-visible{outline:var(--six-focus-ring);outline-offset:calc(-1 * var(--six-focus-ring-width) - var(--six-focus-ring-offset))}.tab.tab--active:not(.tab--disabled){color:var(--six-tab-color-active);font-weight:var(--six-font-weight-bold)}.tab.tab--closable{padding-right:var(--six-spacing-small)}.tab.tab--disabled{color:var(--six-tab-color-disabled);cursor:not-allowed}.tab:hover:not(.tab--disabled){color:var(--six-tab-color-hover)}.tab__close-button{font-size:var(--six-font-size-large);margin-left:var(--six-spacing-xx-small)}.tab__close-button::part(base){padding:var(--six-spacing-xxx-small)}.tab__indicator{position:absolute}.tab__indicator.tab__indicator--active{background-color:var(--six-tab-border-color-active)}.tab--top{margin-bottom:var(--six-spacing-xxx-small)}.tab__indicator--top{width:100%;bottom:0;height:var(--six-tab-border-width)}.tab--bottom{margin-top:var(--six-spacing-xxx-small)}.tab__indicator--bottom{width:100%;top:0;height:var(--six-tab-border-width)}.tab--left{margin-right:var(--six-spacing-xxx-small)}.tab__indicator--left{height:100%;right:0;top:0;width:var(--six-tab-border-width)}.tab--right{margin-left:var(--six-spacing-xxx-small)}.tab__indicator--right{height:100%;left:0;top:0;width:var(--six-tab-border-width)}";let r=0;const b=class{constructor(a){t(this,a);this.sixClose=i(this,"six-tab-close");this.componentId=`tab-${++r}`;this.panel="";this.active=false;this.closable=false;this.disabled=false}connectedCallback(){this.handleCloseClick=this.handleCloseClick.bind(this)}async setFocus(t){var i;(i=this.tab)===null||i===void 0?void 0:i.focus(t)}async removeFocus(){var t;(t=this.tab)===null||t===void 0?void 0:t.blur()}handleCloseClick(){this.sixClose.emit()}render(){var t;const i=this.host.closest("six-tab-group");const s=(t=i===null||i===void 0?void 0:i.placement)!==null&&t!==void 0?t:"top";return a(o,{key:"6b59af3a0794c9ea26b362fa1ea1c0d7513babea",id:this.host.id||this.componentId},a("div",{key:"fdb3e8ffb5523a1e6c0f07287925169a0f5fd07f",part:"base",ref:t=>this.tab=t,class:{tab:true,"tab--top":s==="top","tab--bottom":s==="bottom","tab--left":s==="left","tab--right":s==="right","tab--active":this.active,"tab--closable":this.closable,"tab--disabled":this.disabled},role:"tab","aria-disabled":this.disabled?"true":"false","aria-selected":this.active?"true":"false",tabindex:this.disabled||!this.active?"-1":"0"},a("slot",{key:"907db4032971efbd5a4cfe145db3347404dba051"}),this.closable&&a("six-icon-button",{key:"117fbf10c199b315c8df0f4469b45b63956e156b",name:"close",size:"xSmall",exportparts:"base:close-button",class:"tab__close-button",onClick:this.handleCloseClick,tabIndex:-1,"aria-hidden":"true"})),a("div",{key:"0227ba2ba257cd478488d2b2d6f580bc5e95340b",part:this.active?"active-tab-indicator":"",class:{tab__indicator:true,"tab__indicator--active":this.active,"tab__indicator--top":s==="top","tab__indicator--bottom":s==="bottom","tab__indicator--left":s==="left","tab__indicator--right":s==="right"}}))}get host(){return s(this)}};b.style=e;export{b as six_tab};
2
- //# sourceMappingURL=p-d1bd67af.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["sixTabCss","id","SixTab","constructor","hostRef","this","componentId","panel","active","closable","disabled","connectedCallback","handleCloseClick","bind","setFocus","options","_a","tab","focus","removeFocus","blur","sixClose","emit","render","tabGroup","host","closest","placement","h","Host","key","part","ref","el","class","role","tabindex","name","size","exportparts","onClick","tabIndex","tab__indicator"],"sources":["src/components/six-tab/six-tab.scss?tag=six-tab&encapsulation=shadow","src/components/six-tab/six-tab.tsx"],"sourcesContent":["@import 'src/global/component';\n\n:host {\n display: flex;\n}\n\n.tab {\n display: inline-flex;\n align-items: center;\n font-family: var(--six-font-family);\n font-size: var(--six-font-size-small);\n font-weight: var(--six-font-weight-semibold);\n color: var(--six-tab-color);\n padding: var(--six-spacing-medium) var(--six-spacing-large);\n white-space: nowrap;\n user-select: none;\n cursor: pointer;\n width: 100%;\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n outline: var(--six-focus-ring);\n outline-offset: calc(-1 * var(--six-focus-ring-width) - var(--six-focus-ring-offset));\n }\n\n &.tab--active:not(.tab--disabled) {\n color: var(--six-tab-color-active);\n font-weight: var(--six-font-weight-bold);\n }\n\n &.tab--closable {\n padding-right: var(--six-spacing-small);\n }\n\n &.tab--disabled {\n color: var(--six-tab-color-disabled);\n cursor: not-allowed;\n }\n\n &:hover:not(.tab--disabled) {\n color: var(--six-tab-color-hover);\n }\n}\n\n.tab__close-button {\n font-size: var(--six-font-size-large);\n margin-left: var(--six-spacing-xx-small);\n\n &::part(base) {\n padding: var(--six-spacing-xxx-small);\n }\n}\n\n// TAB INDICATOR\n.tab__indicator {\n position: absolute;\n &.tab__indicator--active {\n background-color: var(--six-tab-border-color-active);\n }\n}\n\n// TOP\n.tab--top {\n margin-bottom: var(--six-spacing-xxx-small);\n}\n\n.tab__indicator--top {\n width: 100%;\n bottom: 0;\n height: var(--six-tab-border-width);\n}\n\n// BOTTOM\n.tab--bottom {\n margin-top: var(--six-spacing-xxx-small);\n}\n\n.tab__indicator--bottom {\n width: 100%;\n top: 0;\n height: var(--six-tab-border-width);\n}\n\n// LEFT\n.tab--left {\n margin-right: var(--six-spacing-xxx-small);\n}\n\n.tab__indicator--left {\n height: 100%;\n right: 0;\n top: 0;\n width: var(--six-tab-border-width);\n}\n\n// RIGHT\n.tab--right {\n margin-left: var(--six-spacing-xxx-small);\n}\n\n.tab__indicator--right {\n height: 100%;\n left: 0;\n top: 0;\n width: var(--six-tab-border-width);\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop } from '@stencil/core';\nimport { EmptyPayload } from '../../utils/types';\n\nlet id = 0;\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot - The tab's label.\n *\n * @part base - The component's base wrapper.\n * @part close-button - The close button, which is the icon button's base wrapper.\n */\n\n@Component({\n tag: 'six-tab',\n styleUrl: 'six-tab.scss',\n shadow: true,\n})\nexport class SixTab {\n private componentId = `tab-${++id}`;\n private tab?: HTMLElement;\n\n @Element() host!: HTMLSixTabElement;\n\n /** The name of the tab panel the tab will control. The panel must be located in the same tab group. */\n @Prop({ reflect: true }) panel = '';\n\n /** Set to true to draw the tab in an active state. */\n @Prop({ reflect: true }) active = false;\n\n /** When true, the tab will be rendered with a close icon. */\n @Prop() closable = false;\n\n /** Set to true to draw the tab in a disabled state. */\n @Prop({ reflect: true }) disabled = false;\n\n /** Emitted when the tab is closable and the close button is activated. */\n @Event({ eventName: 'six-tab-close' }) sixClose!: EventEmitter<EmptyPayload>;\n\n connectedCallback() {\n this.handleCloseClick = this.handleCloseClick.bind(this);\n }\n\n /** Sets focus to the tab. */\n @Method()\n async setFocus(options?: FocusOptions) {\n this.tab?.focus(options);\n }\n\n /** Removes focus from the tab. */\n @Method()\n async removeFocus() {\n this.tab?.blur();\n }\n\n private handleCloseClick() {\n this.sixClose.emit();\n }\n\n render() {\n const tabGroup: HTMLSixTabGroupElement | null = this.host.closest('six-tab-group');\n const placement = tabGroup?.placement ?? 'top';\n return (\n // If the user didn't provide an ID, we'll set one, so we can link tabs and tab panels with aria labels\n <Host id={this.host.id || this.componentId}>\n <div\n part=\"base\"\n ref={(el) => (this.tab = el)}\n class={{\n tab: true,\n\n // Placements\n 'tab--top': placement === 'top',\n 'tab--bottom': placement === 'bottom',\n 'tab--left': placement === 'left',\n 'tab--right': placement === 'right',\n\n // States\n 'tab--active': this.active,\n 'tab--closable': this.closable,\n 'tab--disabled': this.disabled,\n }}\n role=\"tab\"\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-selected={this.active ? 'true' : 'false'}\n tabindex={this.disabled || !this.active ? '-1' : '0'}\n >\n <slot />\n {this.closable && (\n <six-icon-button\n name=\"close\"\n size=\"xSmall\"\n exportparts=\"base:close-button\"\n class=\"tab__close-button\"\n onClick={this.handleCloseClick}\n tabIndex={-1}\n aria-hidden=\"true\"\n />\n )}\n </div>\n <div\n part={this.active ? 'active-tab-indicator' : ''}\n class={{\n tab__indicator: true,\n 'tab__indicator--active': this.active,\n\n // Placements\n 'tab__indicator--top': placement === 'top',\n 'tab__indicator--bottom': placement === 'bottom',\n 'tab__indicator--left': placement === 'left',\n 'tab__indicator--right': placement === 'right',\n }}\n ></div>\n </Host>\n );\n }\n}\n"],"mappings":"gEAAA,MAAMA,EAAY,gzDCGlB,IAAIC,EAAK,E,MAmBIC,EAAM,MALnB,WAAAC,CAAAC,G,gDAMUC,KAAAC,YAAc,SAASL,IAMNI,KAAKE,MAAG,GAGRF,KAAMG,OAAG,MAG1BH,KAAQI,SAAG,MAGMJ,KAAQK,SAAG,KAkFrC,CA7EC,iBAAAC,GACEN,KAAKO,iBAAmBP,KAAKO,iBAAiBC,KAAKR,K,CAKrD,cAAMS,CAASC,G,OACbC,EAAAX,KAAKY,OAAG,MAAAD,SAAA,SAAAA,EAAEE,MAAMH,E,CAKlB,iBAAMI,G,OACJH,EAAAX,KAAKY,OAAK,MAAAD,SAAA,SAAAA,EAAAI,M,CAGJ,gBAAAR,GACNP,KAAKgB,SAASC,M,CAGhB,MAAAC,G,MACE,MAAMC,EAA0CnB,KAAKoB,KAAKC,QAAQ,iBAClE,MAAMC,GAAYX,EAAAQ,IAAA,MAAAA,SAAA,SAAAA,EAAUG,aAAa,MAAAX,SAAA,EAAAA,EAAA,MACzC,OAEEY,EAACC,EAAI,CAAAC,IAAA,2CAAC7B,GAAII,KAAKoB,KAAKxB,IAAMI,KAAKC,aAC7BsB,EACE,OAAAE,IAAA,2CAAAC,KAAK,OACLC,IAAMC,GAAQ5B,KAAKY,IAAMgB,EACzBC,MAAO,CACLjB,IAAK,KAGL,WAAYU,IAAc,MAC1B,cAAeA,IAAc,SAC7B,YAAaA,IAAc,OAC3B,aAAcA,IAAc,QAG5B,cAAetB,KAAKG,OACpB,gBAAiBH,KAAKI,SACtB,gBAAiBJ,KAAKK,UAExByB,KAAK,MAAK,gBACK9B,KAAKK,SAAW,OAAS,QAAO,gBAChCL,KAAKG,OAAS,OAAS,QACtC4B,SAAU/B,KAAKK,WAAaL,KAAKG,OAAS,KAAO,KAEjDoB,EAAQ,QAAAE,IAAA,6CACPzB,KAAKI,UACJmB,EAAA,mBAAAE,IAAA,2CACEO,KAAK,QACLC,KAAK,SACLC,YAAY,oBACZL,MAAM,oBACNM,QAASnC,KAAKO,iBACd6B,UAAU,EAAE,cACA,UAIlBb,EAAA,OAAAE,IAAA,2CACEC,KAAM1B,KAAKG,OAAS,uBAAyB,GAC7C0B,MAAO,CACLQ,eAAgB,KAChB,yBAA0BrC,KAAKG,OAG/B,sBAAuBmB,IAAc,MACrC,yBAA0BA,IAAc,SACxC,uBAAwBA,IAAc,OACtC,wBAAyBA,IAAc,W","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as a,h as e,H as t,g as c}from"./p-D0Go1Zjj.js";const r=":host{display:flex;flex-wrap:nowrap;min-width:fit-content}.left-margin,.right-margin{flex:1 6 10rem;min-width:var(--six-spacing-xxx-large)}.content{flex:6 1 60rem;min-width:48rem;max-width:100rem}.content--padded{padding:var(--six-spacing-xxx-large) 0}";const i=class{constructor(e){a(this,e);this.padded=true}render(){return e(t,{key:"6a58c3bf1117f6d8ec771b10b9bb5eeca8f75d38"},e("div",{key:"709e6b3c0f6b915cdb02b6231b8475a32aaef821",part:"left-margin",class:"left-margin"}),e("div",{key:"8bca7342d56b444696b39e3b4e03b69fc7a8724a",part:"content",class:{content:true,"content--padded":this.padded}},e("slot",{key:"8cae2e164ec3d6370b2d481bc62f4c2af2b194c5"})),e("div",{key:"5c4a7ecbbaff6cd381ba7a3253ccbc20a72e90cc",part:"right-margin",class:"right-margin"}))}get host(){return c(this)}};i.style=r;export{i as six_main_container};
2
- //# sourceMappingURL=p-f4e2ddfc.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as s,h as e}from"./p-D0Go1Zjj.js";const i=":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:border-box}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}:host{--track-color:var(--six-progress-track-color);--indicator-color:var(--six-progress-indicator-color);--stroke-width:2px;display:inline-flex}.spinner{display:inline-block;width:1em;height:1em;border-radius:50%;border:solid var(--stroke-width) var(--track-color);border-top-color:var(--indicator-color);border-right-color:var(--indicator-color);animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.six-spinner{width:auto;height:auto;position:relative}.six-spinner .six-spinner__container{margin:0;transform:translateX(0)}.six-spinner .six-spinner__container svg{transform:translateX(0)}.six-spinner__container{position:relative;margin:0 auto;top:calc(50% - 20px);z-index:1}.six-spinner__container,.six-spinner__container svg{width:40px;height:40px;display:block;transform:translateX(40px)}.six-spinner path{stroke-dashoffset:70px;stroke-dasharray:70, 444;-webkit-animation:six-spinner 2s cubic-bezier(0.56, 0.39, 0.51, 0.96) infinite;animation:six-spinner 2s cubic-bezier(0.56, 0.39, 0.51, 0.96) infinite}.six-spinner polygon{stroke-dasharray:310;stroke-dashoffset:310;animation:big-polygon-draw 2s ease-in-out infinite;-webkit-animation:big-polygon-draw 2s ease-in-out infinite}.six-spinner polygon:nth-child(2),.six-spinner polygon:nth-child(3){stroke-dasharray:110;stroke-dashoffset:110;animation:small-polygon-draw 2s ease-in-out infinite;-webkit-animation:small-polygon-draw 2s ease-in-out infinite}@keyframes big-polygon-draw{0%,100%{stroke-dashoffset:310}50%{stroke-dashoffset:140}}@-webkit-keyframes big-polygon-draw{0%,100%{stroke-dashoffset:310}50%{stroke-dashoffset:140}}@keyframes small-polygon-draw{0%,100%{stroke-dashoffset:110}50%{stroke-dashoffset:50}}@-webkit-keyframes small-polygon-draw{0%,100%{stroke-dashoffset:110}50%{stroke-dashoffset:50}}@-webkit-keyframes six-spinner{to{stroke-dashoffset:-444}}@keyframes six-spinner{to{stroke-dashoffset:-444}}";const r=class{constructor(e){s(this,e)}renderWrapper(s){return e("span",{class:"six-spinner","aria-busy":"true","aria-live":"polite"},e("div",{class:"six-spinner__container"},s))}renderSIXLogo(){const s=e("svg",{viewBox:"0 0 40 40",part:"svg"},e("path",{fill:"none",stroke:"#de3919","stroke-width":"5","stroke-linecap":"round",d:"M 35 5 V 35 H 5 T 5 5 H 35 V 35 H 5 V 5 H 35 V 35 H -34 V 30 H 7 A 9 8 0 0 0 14 27 L 27 14 A 8 6 0 0 1 33 12 H 42"}));return this.renderWrapper(s)}renderBMELogo(){const s=e("svg",{viewBox:"0 0 45 55",part:"svg"},e("polygon",{fill:"none",stroke:"black","stroke-width":"2","stroke-linecap":"round",points:"4.42 51.96 17.02 31.473 2 31.473 2 22.486 17.02 22.486 4.42 2 15.404 2 30.289 26.98 14.763 51.96 4.42 51.96"}),e("polygon",{fill:"none",stroke:"black","stroke-width":"2","stroke-linecap":"round",points:"42 51.96 31.655 51.96 24.598 40.498 29.831 32.073 42 51.96"}),e("polygon",{fill:"none",stroke:"black","stroke-width":"2","stroke-linecap":"round",points:"24.518 12.719 31.014 2 42 2 29.831 21.637 24.518 12.719"}));return this.renderWrapper(s)}renderSimpleSpinner(){return e("span",{part:"base",class:"spinner","aria-busy":"true","aria-live":"polite"})}render(){if(this.six){console.warn('The "six" prop is deprecated. Use "logo=\'six\'" instead.');return this.renderSIXLogo()}switch(this.logo){case"six":return this.renderSIXLogo();case"bme":return this.renderBMELogo();default:return this.renderSimpleSpinner()}}};r.style=i;export{r as six_spinner};
2
- //# sourceMappingURL=p-f585a5ab.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["sixSpinnerCss","SixSpinner","renderWrapper","content","h","class","renderSIXLogo","sixLogo","viewBox","part","fill","stroke","d","this","renderBMELogo","bmeLogo","points","renderSimpleSpinner","render","six","console","warn","logo"],"sources":["src/components/six-spinner/six-spinner.scss?tag=six-spinner&encapsulation=shadow","src/components/six-spinner/six-spinner.tsx"],"sourcesContent":["@import 'src/global/component';\n\n/**\n * @prop --track-color: The color of the spinner's track.\n * @prop --indicator-color: The color of the spinner's indicator.\n * @prop --stroke-width: The width of the indicator.\n */\n:host {\n --track-color: var(--six-progress-track-color);\n --indicator-color: var(--six-progress-indicator-color);\n --stroke-width: 2px;\n\n display: inline-flex;\n}\n\n.spinner {\n display: inline-block;\n width: 1em;\n height: 1em;\n border-radius: 50%;\n border: solid var(--stroke-width) var(--track-color);\n border-top-color: var(--indicator-color);\n border-right-color: var(--indicator-color);\n animation: 1s linear infinite spin;\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n$color-six-spinner-background: rgba(255, 255, 255, 0.7);\n\n.six-spinner {\n width: auto;\n height: auto;\n position: relative;\n\n .six-spinner__container {\n margin: 0;\n transform: translateX(0);\n }\n\n .six-spinner__container svg {\n transform: translateX(0);\n }\n\n &__container {\n position: relative;\n margin: 0 auto;\n top: calc(50% - 20px);\n z-index: 1;\n }\n\n &__container,\n &__container svg {\n width: 40px;\n height: 40px;\n display: block;\n transform: translateX(40px);\n }\n\n path {\n stroke-dashoffset: 70px;\n stroke-dasharray: 70, 444;\n -webkit-animation: six-spinner 2s cubic-bezier(0.56, 0.39, 0.51, 0.96) infinite;\n animation: six-spinner 2s cubic-bezier(0.56, 0.39, 0.51, 0.96) infinite;\n }\n\n polygon {\n stroke-dasharray: 310;\n stroke-dashoffset: 310;\n animation: big-polygon-draw 2s ease-in-out infinite;\n -webkit-animation: big-polygon-draw 2s ease-in-out infinite;\n }\n\n polygon:nth-child(2),\n polygon:nth-child(3) {\n stroke-dasharray: 110;\n stroke-dashoffset: 110;\n animation: small-polygon-draw 2s ease-in-out infinite;\n -webkit-animation: small-polygon-draw 2s ease-in-out infinite;\n }\n\n @keyframes big-polygon-draw {\n 0%,\n 100% {\n stroke-dashoffset: 310;\n }\n 50% {\n stroke-dashoffset: 140;\n }\n }\n\n @-webkit-keyframes big-polygon-draw {\n 0%,\n 100% {\n stroke-dashoffset: 310;\n }\n 50% {\n stroke-dashoffset: 140;\n }\n }\n\n @keyframes small-polygon-draw {\n 0%,\n 100% {\n stroke-dashoffset: 110;\n }\n 50% {\n stroke-dashoffset: 50;\n }\n }\n\n @-webkit-keyframes small-polygon-draw {\n 0%,\n 100% {\n stroke-dashoffset: 110;\n }\n 50% {\n stroke-dashoffset: 50;\n }\n }\n\n @-webkit-keyframes six-spinner {\n to {\n stroke-dashoffset: -444;\n }\n }\n\n @keyframes six-spinner {\n to {\n stroke-dashoffset: -444;\n }\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @part base - The component's base wrapper.\n * @part svg - The spinner icon.\n */\n@Component({\n tag: 'six-spinner',\n styleUrl: 'six-spinner.scss',\n shadow: true,\n})\nexport class SixSpinner {\n /** Indicates if the spinner is shown as animated SIX or BME logo or a simple spinner. */\n @Prop() logo?: 'six' | 'bme';\n /**\n * **@deprecated** Use `logo=\"six\"` instead.\n *\n * If set to true, the spinner displays the SIX logo.\n */\n @Prop() six?: boolean;\n\n /**\n * Renders a container with a given SVG content.\n */\n private renderWrapper(content: SVGElement) {\n return (\n <span class=\"six-spinner\" aria-busy=\"true\" aria-live=\"polite\">\n <div class=\"six-spinner__container\">{content}</div>\n </span>\n );\n }\n\n /**\n * Renders the SIX logo spinner.\n */\n private renderSIXLogo() {\n const sixLogo = (\n <svg viewBox=\"0 0 40 40\" part=\"svg\">\n <path\n fill=\"none\"\n stroke=\"#de3919\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n d=\"M 35 5 V 35 H 5 T 5 5 H 35 V 35 H 5 V 5 H 35 V 35 H -34 V 30 H 7 A 9 8 0 0 0 14 27 L 27 14 A 8 6 0 0 1 33 12 H 42\"\n ></path>\n </svg>\n );\n return this.renderWrapper(sixLogo);\n }\n\n /**\n * Renders the BME logo spinner.\n */\n private renderBMELogo() {\n const bmeLogo = (\n <svg viewBox=\"0 0 45 55\" part=\"svg\">\n <polygon\n fill=\"none\"\n stroke=\"black\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n points=\"4.42 51.96 17.02 31.473 2 31.473 2 22.486 17.02 22.486 4.42 2 15.404 2 30.289 26.98 14.763 51.96 4.42 51.96\"\n />\n <polygon\n fill=\"none\"\n stroke=\"black\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n points=\"42 51.96 31.655 51.96 24.598 40.498 29.831 32.073 42 51.96\"\n />\n <polygon\n fill=\"none\"\n stroke=\"black\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n points=\"24.518 12.719 31.014 2 42 2 29.831 21.637 24.518 12.719\"\n />\n </svg>\n );\n return this.renderWrapper(bmeLogo);\n }\n\n /**\n * Renders a simple spinner.\n */\n private renderSimpleSpinner() {\n return <span part=\"base\" class=\"spinner\" aria-busy=\"true\" aria-live=\"polite\" />;\n }\n\n render() {\n // Check the deprecated `six` property first\n if (this.six) {\n console.warn('The \"six\" prop is deprecated. Use \"logo=\\'six\\'\" instead.');\n return this.renderSIXLogo();\n }\n\n switch (this.logo) {\n case 'six':\n return this.renderSIXLogo();\n case 'bme':\n return this.renderBMELogo();\n default:\n return this.renderSimpleSpinner();\n }\n }\n}\n"],"mappings":"2CAAA,MAAMA,EAAgB,+mE,MCgBTC,EAAU,M,yBAab,aAAAC,CAAcC,GACpB,OACEC,EAAA,QAAMC,MAAM,cAAwB,mBAAM,YAAW,UACnDD,EAAK,OAAAC,MAAM,0BAA0BF,G,CAQnC,aAAAG,GACN,MAAMC,EACJH,EAAK,OAAAI,QAAQ,YAAYC,KAAK,OAC5BL,EAAA,QACEM,KAAK,OACLC,OAAO,UACM,mBACE,yBACfC,EAAE,uHAIR,OAAOC,KAAKX,cAAcK,E,CAMpB,aAAAO,GACN,MAAMC,EACJX,EAAK,OAAAI,QAAQ,YAAYC,KAAK,OAC5BL,EAAA,WACEM,KAAK,OACLC,OAAO,QACM,mBAAG,iBACD,QACfK,OAAO,gHAETZ,EAAA,WACEM,KAAK,OACLC,OAAO,QACM,mBAAG,iBACD,QACfK,OAAO,+DAETZ,EAAA,WACEM,KAAK,OACLC,OAAO,QACM,mBACE,yBACfK,OAAO,6DAIb,OAAOH,KAAKX,cAAca,E,CAMpB,mBAAAE,GACN,OAAOb,EAAM,QAAAK,KAAK,OAAOJ,MAAM,UAAoB,mBAAiB,sB,CAGtE,MAAAa,GAEE,GAAIL,KAAKM,IAAK,CACZC,QAAQC,KAAK,6DACb,OAAOR,KAAKP,e,CAGd,OAAQO,KAAKS,MACX,IAAK,MACH,OAAOT,KAAKP,gBACd,IAAK,MACH,OAAOO,KAAKC,gBACd,QACE,OAAOD,KAAKI,sB","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"six-button.entry.esm.js","sources":["src/components/six-button/six-button.scss?tag=six-button&encapsulation=shadow","src/components/six-button/six-button.tsx"],"sourcesContent":["@import 'src/global/component';\n\n:host {\n display: inline-block;\n width: auto;\n cursor: pointer;\n}\n\n.button {\n display: inline-flex;\n align-items: stretch;\n justify-content: center;\n width: 100%;\n border-style: solid;\n border-width: var(--six-border-width);\n border-radius: 0;\n font-family: var(--six-font-family);\n font-weight: var(--six-font-weight-semibold);\n text-decoration: none;\n user-select: none;\n white-space: nowrap;\n vertical-align: middle;\n padding: 0;\n transition:\n var(--six-transition-fast) background-color,\n var(--six-transition-fast) color,\n var(--six-transition-fast) border,\n var(--six-transition-fast) box-shadow;\n cursor: inherit;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &:focus {\n outline: none;\n }\n\n &.button--disabled {\n pointer-events: none;\n }\n\n ::slotted(six-icon) {\n // Clicks on icons shouldn't prevent the button from gaining focus\n pointer-events: none;\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n }\n}\n\n.button-wrapper--disabled {\n cursor: not-allowed;\n}\n\n.button__prefix,\n.button__suffix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Standard buttons\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.button {\n &:focus-visible {\n outline: var(--six-focus-ring);\n outline-offset: var(--six-focus-ring-offset);\n }\n\n &.button--secondary {\n background-color: var(--six-color-white);\n border-color: var(--six-color-web-rock-900);\n color: var(--six-color-web-rock-900);\n\n &.button--disabled {\n background-color: var(--six-color-web-rock-400);\n border-color: var(--six-color-web-rock-400);\n color: var(--six-color-web-rock-700);\n }\n\n &:hover:not(.button--disabled) {\n background-color: var(--six-color-web-rock-100);\n }\n\n &:active:not(.button--disabled) {\n background-color: var(--six-color-web-rock-300);\n border-color: var(--six-color-web-rock-900);\n border-width: 1px;\n }\n }\n\n &.button--primary {\n background-color: var(--six-color-web-rock-900);\n border-color: var(--six-color-web-rock-900);\n color: var(--six-color-white);\n\n &.button--disabled {\n background-color: var(--six-color-web-rock-400);\n border-color: var(--six-color-web-rock-400);\n color: var(--six-color-web-rock-700);\n }\n\n &:hover:not(.button--disabled) {\n background-color: var(--six-color-web-rock-800);\n border-color: var(--six-color-web-rock-800);\n }\n\n &:active:not(.button--disabled) {\n background-color: var(--six-color-web-rock-900);\n border-color: var(--six-color-web-rock-900);\n opacity: 70%;\n }\n }\n\n &.button--link {\n background-color: transparent;\n border-color: transparent;\n color: var(--six-color-action-500);\n\n &.button--disabled {\n color: var(--six-color-web-rock-400);\n }\n\n &:hover:not(.button--disabled) {\n color: var(--six-color-action-600);\n }\n\n &:active:not(.button--disabled) {\n color: var(--six-color-action-light-to-be-defined);\n }\n }\n\n &.button--danger {\n background-color: var(--six-color-danger-800);\n border-color: var(--six-color-danger-800);\n color: var(--six-color-white);\n\n &.button--disabled {\n background-color: var(--six-color-web-rock-400);\n border-color: var(--six-color-web-rock-400);\n color: var(--six-color-web-rock-700);\n }\n\n &:hover:not(.button--disabled) {\n background-color: var(--six-color-danger-900);\n border-color: var(--six-color-danger-900);\n }\n\n &:active:not(.button--disabled) {\n background-color: var(--six-color-danger-800);\n border-color: var(--six-color-danger-800);\n opacity: 70%;\n }\n }\n\n &.button--warning {\n background-color: var(--six-color-warning-700);\n border-color: var(--six-color-warning-700);\n color: var(--six-color-web-rock-900);\n\n &.button--disabled {\n background-color: var(--six-color-web-rock-400);\n border-color: var(--six-color-web-rock-400);\n color: var(--six-color-web-rock-700);\n }\n\n &:hover:not(.button--disabled) {\n background-color: var(--six-color-warning-800);\n border-color: var(--six-color-warning-800);\n }\n\n &:active:not(.button--disabled) {\n background-color: var(--six-color-warning-700);\n border-color: var(--six-color-warning-700);\n opacity: 70%;\n }\n }\n\n &.button--success {\n background-color: var(--six-color-success-500);\n border-color: var(--six-color-success-500);\n color: var(--six-color-web-rock-900);\n\n &.button--disabled {\n background-color: var(--six-color-web-rock-400);\n border-color: var(--six-color-web-rock-400);\n color: var(--six-color-web-rock-700);\n }\n\n &:hover:not(.button--disabled) {\n background-color: var(--six-color-success-600);\n border-color: var(--six-color-success-600);\n }\n\n &:active:not(.button--disabled) {\n background-color: var(--six-color-success-500);\n border-color: var(--six-color-success-500);\n opacity: 70%;\n }\n }\n\n &.button--action {\n background-color: var(--six-color-action-500);\n border-color: var(--six-color-action-500);\n color: var(--six-color-white);\n\n &.button--disabled {\n background-color: var(--six-color-web-rock-400);\n border-color: var(--six-color-web-rock-400);\n color: var(--six-color-web-rock-700);\n }\n\n &:hover:not(.button--disabled) {\n background-color: var(--six-color-action-600);\n border-color: var(--six-color-action-600);\n }\n\n &:active:not(.button--disabled) {\n background-color: var(--six-color-action-500);\n border-color: var(--six-color-action-500);\n opacity: 70%;\n }\n }\n\n &.button--action-outline {\n border-color: var(--six-color-action-500);\n background-color: var(--six-color-white);\n color: var(--six-color-action-500);\n\n &.button--disabled {\n background-color: var(--six-color-web-rock-400);\n border-color: var(--six-color-web-rock-400);\n color: var(--six-color-web-rock-700);\n }\n\n &:hover:not(.button--disabled) {\n background-color: var(--six-color-web-rock-100);\n }\n\n &:active:not(.button--disabled) {\n border-color: var(--six-color-action-500);\n opacity: 70%;\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Size modifiers\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.button--small {\n font-size: var(--six-button-font-size-small);\n height: var(--six-height-small);\n line-height: calc(var(--six-height-small) - var(--six-border-width) * 2);\n}\n\n.button--medium {\n font-size: var(--six-button-font-size-medium);\n height: var(--six-height-medium);\n line-height: calc(var(--six-height-medium) - var(--six-border-width) * 2);\n}\n\n.button--large {\n font-size: var(--six-button-font-size-large);\n height: var(--six-height-large);\n line-height: calc(var(--six-height-large) - var(--six-border-width) * 2);\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Pill modifier\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.button--pill {\n &.button--small {\n border-radius: var(--six-height-small);\n }\n\n &.button--medium {\n border-radius: var(--six-height-medium);\n }\n\n &.button--large {\n border-radius: var(--six-height-large);\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Circle modifier\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.button--circle {\n padding-left: 0;\n padding-right: 0;\n font-size: revert;\n\n &.button--small {\n width: var(--six-height-small);\n border-radius: 50%;\n }\n\n &.button--medium {\n width: var(--six-height-medium);\n border-radius: 50%;\n }\n\n &.button--large {\n width: var(--six-height-large);\n border-radius: 50%;\n }\n\n .button__prefix,\n .button__suffix,\n .button__caret {\n display: none;\n\n svg {\n color: var(--six-color-web-rock-900);\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Caret modifier\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.button--caret {\n .button__suffix {\n display: none;\n }\n\n .button__caret {\n display: flex;\n align-items: center;\n\n svg {\n color: var(--six-color-web-rock-900);\n width: 1em;\n height: 1em;\n }\n }\n}\n\n.button--primary,\n.button--action,\n.button--danger {\n .button__caret {\n svg {\n color: var(--six-color-white);\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Loading modifier\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.button--loading {\n position: relative;\n cursor: wait;\n\n .button__prefix,\n .button__label,\n .button__suffix,\n .button__caret {\n visibility: hidden;\n }\n\n six-spinner {\n --indicator-color: currentColor;\n position: absolute;\n height: 1em;\n width: 1em;\n top: calc(50% - 0.5em);\n left: calc(50% - 0.5em);\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Badges\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.button ::slotted(six-badge) {\n position: absolute;\n top: 0;\n right: 0;\n transform: translateY(-50%) translateX(50%);\n pointer-events: none;\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Button spacing\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.button--has-label {\n &.button--small .button__label {\n padding: 0 var(--six-spacing-small);\n }\n\n &.button--medium .button__label {\n padding: 0 var(--six-spacing-medium);\n }\n\n &.button--large .button__label {\n padding: 0 var(--six-spacing-large);\n }\n}\n\n.button--has-prefix {\n &.button--small {\n padding-left: var(--six-spacing-x-small);\n\n .button__label {\n padding-left: var(--six-spacing-x-small);\n }\n }\n\n &.button--medium {\n padding-left: var(--six-spacing-small);\n\n .button__label {\n padding-left: var(--six-spacing-small);\n }\n }\n\n &.button--large {\n padding-left: var(--six-spacing-small);\n\n .button__label {\n padding-left: var(--six-spacing-small);\n }\n }\n}\n\n.button--has-suffix,\n.button--caret {\n &.button--small {\n padding-right: var(--six-spacing-x-small);\n\n .button__label {\n padding-right: var(--six-spacing-x-small);\n }\n }\n\n &.button--medium {\n padding-right: var(--six-spacing-small);\n\n .button__label {\n padding-right: var(--six-spacing-small);\n }\n }\n\n &.button--large {\n padding-right: var(--six-spacing-small);\n\n .button__label {\n padding-right: var(--six-spacing-small);\n }\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State } from '@stencil/core';\nimport { hasSlot } from '../../utils/slot';\nimport { EmptyPayload } from '../../utils/types';\nimport { submitForm } from '../../utils/form';\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot - The button's label.\n * @slot prefix - Used to prepend an icon or similar element to the button.\n * @slot suffix - Used to append an icon or similar element to the button.\n *\n * @part base - The component's base wrapper.\n * @part prefix - The prefix container.\n * @part label - The button's label.\n * @part suffix - The suffix container.\n * @part caret - The button's caret.\n */\n\n@Component({\n tag: 'six-button',\n styleUrl: 'six-button.scss',\n shadow: true,\n})\nexport class SixButton {\n private nativeButton?: HTMLButtonElement | HTMLAnchorElement;\n\n @Element() host!: HTMLSixButtonElement;\n\n @State() hasFocus = false;\n @State() hasLabel = false;\n @State() hasPrefix = false;\n @State() hasSuffix = false;\n\n /** The button's type. */\n @Prop({ reflect: true }) type:\n | 'secondary'\n | 'primary'\n | 'link'\n | 'success'\n | 'warning'\n | 'danger'\n | 'action'\n | 'action-outline' = 'primary';\n\n /** The button's size. */\n @Prop({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Set to true to draw the button with a caret for use with dropdowns, popovers, etc. */\n @Prop() caret = false;\n\n /** Set to true to disable the button. */\n @Prop({ reflect: true }) disabled = false;\n\n /** Set to true to draw the button in a loading state. */\n @Prop({ reflect: true }) loading = false;\n\n /** Set to true to draw a pill-style button with rounded edges. */\n @Prop({ reflect: true }) pill = false;\n\n /** Set to true to draw a circle button. */\n @Prop({ reflect: true }) circle = false;\n\n /** Indicates if activating the button should submit the form. Ignored when `href` is set. */\n @Prop({ reflect: true }) submit = false;\n\n /** Indicates if activating the button should reset the form. */\n @Prop({ reflect: true }) reset = false;\n\n /** An optional name for the button. Ignored when `href` is set. */\n @Prop() name = '';\n\n /** An optional value for the button. Ignored when `href` is set. */\n @Prop() value = '';\n\n /** When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`. */\n @Prop() href?: string;\n\n /** Tells the browser where to open the link. Only used when `href` is set. */\n @Prop() target?: '_blank' | '_parent' | '_self' | '_top';\n\n /** Tells the browser to download the linked file as this filename. Only used when `href` is set. */\n @Prop() download?: string;\n\n /** Emitted when the button loses focus. */\n @Event({ eventName: 'six-button-blur' }) sixBlur!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the button gains focus. */\n @Event({ eventName: 'six-button-focus' }) sixFocus!: EventEmitter<EmptyPayload>;\n\n componentWillLoad() {\n this.handleSlotChange();\n }\n\n /** Sets focus on the button. */\n @Method()\n async setFocus(options?: FocusOptions) {\n this.nativeButton?.focus(options);\n }\n\n /** Removes focus from the button. */\n @Method()\n async removeFocus() {\n this.nativeButton?.blur();\n }\n\n private handleSlotChange = () => {\n this.hasLabel = hasSlot(this.host);\n this.hasPrefix = hasSlot(this.host, 'prefix');\n this.hasSuffix = hasSlot(this.host, 'suffix');\n\n // set the correct icon size for suffix and prefix icons\n const prefixIcon = this.host.querySelector('[slot=\"prefix\"]');\n const suffixIcon = this.host.querySelector('[slot=\"suffix\"]');\n\n if (prefixIcon?.tagName.toLowerCase() === 'six-icon') {\n prefixIcon.setAttribute('size', this.mapSizeToIconSize(this.size));\n }\n\n if (suffixIcon?.tagName.toLowerCase() === 'six-icon') {\n suffixIcon.setAttribute('size', this.mapSizeToIconSize(this.size));\n }\n };\n\n private mapSizeToIconSize(buttonSize: 'small' | 'medium' | 'large'): string {\n const sizeMap = {\n small: 'xSmall',\n medium: 'small',\n large: 'medium',\n };\n return sizeMap[buttonSize] || 'small'; // Default to small\n }\n\n private handleBlur = () => {\n this.hasFocus = false;\n this.sixBlur.emit();\n };\n\n private handleFocus = () => {\n this.hasFocus = true;\n this.sixFocus.emit();\n };\n\n private handleClick = (event: MouseEvent) => {\n if (this.disabled || this.loading) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n if (this.submit) {\n event.preventDefault();\n submitForm(this.host);\n }\n };\n\n render() {\n const isLink = this.href != null;\n const isButton = !isLink;\n const Button = isLink ? 'a' : 'button';\n\n return (\n <div onClick={this.handleClick} class={{ 'button-wrapper--disabled': this.disabled }}>\n <Button\n ref={(el) => (this.nativeButton = el)}\n part=\"base\"\n class={{\n button: true,\n\n // Types\n 'button--secondary': this.type === 'secondary',\n 'button--primary': this.type === 'primary',\n 'button--link': this.type === 'link',\n 'button--success': this.type === 'success',\n 'button--warning': this.type === 'warning',\n 'button--danger': this.type === 'danger',\n 'button--action': this.type === 'action',\n 'button--action-outline': this.type === 'action-outline',\n\n // Sizes\n 'button--small': this.size === 'small',\n 'button--medium': this.size === 'medium',\n 'button--large': this.size === 'large',\n\n // Modifiers\n 'button--caret': this.caret,\n 'button--circle': this.circle,\n 'button--disabled': this.disabled,\n 'button--focused': this.hasFocus,\n 'button--loading': this.loading,\n 'button--pill': this.pill,\n 'button--has-label': this.hasLabel,\n 'button--has-prefix': this.hasPrefix,\n 'button--has-suffix': this.hasSuffix,\n }}\n disabled={isButton ? this.disabled : undefined}\n tabindex={this.disabled ? '-1' : undefined}\n type={isButton ? (this.submit ? 'submit' : this.reset ? 'reset' : 'button') : undefined}\n name={isButton ? this.name : undefined}\n value={isButton ? this.value : undefined}\n href={isLink ? this.href : undefined}\n target={isLink && this.target != null ? this.target : undefined}\n download={isLink && this.download != null ? this.download : undefined}\n rel={isLink && this.target != null ? 'noreferrer noopener' : undefined}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n data-testid=\"button\"\n >\n <span part=\"prefix\" class=\"button__prefix\">\n <slot onSlotchange={this.handleSlotChange} name=\"prefix\" />\n </span>\n <span part=\"label\" class=\"button__label\">\n <slot onSlotchange={this.handleSlotChange} />\n </span>\n <span part=\"suffix\" class=\"button__suffix\">\n <slot onSlotchange={this.handleSlotChange} name=\"suffix\" />\n </span>\n {this.caret && (\n <span part=\"caret\" class=\"button__caret\">\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n </span>\n )}\n\n {this.loading && <six-spinner />}\n </Button>\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"six-spinner.entry.esm.js","sources":["src/components/six-spinner/six-spinner.scss?tag=six-spinner&encapsulation=shadow","src/components/six-spinner/six-spinner.tsx"],"sourcesContent":["@import 'src/global/component';\n\n/**\n * @prop --track-color: The color of the spinner's track.\n * @prop --indicator-color: The color of the spinner's indicator.\n * @prop --stroke-width: The width of the indicator.\n */\n:host {\n --track-color: var(--six-progress-track-color);\n --indicator-color: var(--six-progress-indicator-color);\n --stroke-width: 2px;\n\n display: inline-flex;\n}\n\n.spinner {\n display: inline-block;\n width: 1em;\n height: 1em;\n border-radius: 50%;\n border: solid var(--stroke-width) var(--track-color);\n border-top-color: var(--indicator-color);\n border-right-color: var(--indicator-color);\n animation: 1s linear infinite spin;\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n$color-six-spinner-background: rgba(255, 255, 255, 0.7);\n\n.six-spinner {\n width: auto;\n height: auto;\n position: relative;\n\n .six-spinner__container {\n margin: 0;\n transform: translateX(0);\n }\n\n .six-spinner__container svg {\n transform: translateX(0);\n }\n\n &__container {\n position: relative;\n margin: 0 auto;\n top: calc(50% - 20px);\n z-index: 1;\n }\n\n &__container,\n &__container svg {\n width: 40px;\n height: 40px;\n display: block;\n transform: translateX(40px);\n }\n\n path {\n stroke-dashoffset: 70px;\n stroke-dasharray: 70, 444;\n -webkit-animation: six-spinner 2s cubic-bezier(0.56, 0.39, 0.51, 0.96) infinite;\n animation: six-spinner 2s cubic-bezier(0.56, 0.39, 0.51, 0.96) infinite;\n }\n\n polygon {\n stroke-dasharray: 310;\n stroke-dashoffset: 310;\n animation: big-polygon-draw 2s ease-in-out infinite;\n -webkit-animation: big-polygon-draw 2s ease-in-out infinite;\n }\n\n polygon:nth-child(2),\n polygon:nth-child(3) {\n stroke-dasharray: 110;\n stroke-dashoffset: 110;\n animation: small-polygon-draw 2s ease-in-out infinite;\n -webkit-animation: small-polygon-draw 2s ease-in-out infinite;\n }\n\n @keyframes big-polygon-draw {\n 0%,\n 100% {\n stroke-dashoffset: 310;\n }\n 50% {\n stroke-dashoffset: 140;\n }\n }\n\n @-webkit-keyframes big-polygon-draw {\n 0%,\n 100% {\n stroke-dashoffset: 310;\n }\n 50% {\n stroke-dashoffset: 140;\n }\n }\n\n @keyframes small-polygon-draw {\n 0%,\n 100% {\n stroke-dashoffset: 110;\n }\n 50% {\n stroke-dashoffset: 50;\n }\n }\n\n @-webkit-keyframes small-polygon-draw {\n 0%,\n 100% {\n stroke-dashoffset: 110;\n }\n 50% {\n stroke-dashoffset: 50;\n }\n }\n\n @-webkit-keyframes six-spinner {\n to {\n stroke-dashoffset: -444;\n }\n }\n\n @keyframes six-spinner {\n to {\n stroke-dashoffset: -444;\n }\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @part base - The component's base wrapper.\n * @part svg - The spinner icon.\n */\n@Component({\n tag: 'six-spinner',\n styleUrl: 'six-spinner.scss',\n shadow: true,\n})\nexport class SixSpinner {\n /** Indicates if the spinner is shown as animated SIX or BME logo or a simple spinner. */\n @Prop() logo?: 'six' | 'bme';\n /**\n * **@deprecated** Use `logo=\"six\"` instead.\n *\n * If set to true, the spinner displays the SIX logo.\n */\n @Prop() six?: boolean;\n\n /**\n * Renders a container with a given SVG content.\n */\n private renderWrapper(content: SVGElement) {\n return (\n <span class=\"six-spinner\" aria-busy=\"true\" aria-live=\"polite\">\n <div class=\"six-spinner__container\">{content}</div>\n </span>\n );\n }\n\n /**\n * Renders the SIX logo spinner.\n */\n private renderSIXLogo() {\n const sixLogo = (\n <svg viewBox=\"0 0 40 40\" part=\"svg\">\n <path\n fill=\"none\"\n stroke=\"#de3919\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n d=\"M 35 5 V 35 H 5 T 5 5 H 35 V 35 H 5 V 5 H 35 V 35 H -34 V 30 H 7 A 9 8 0 0 0 14 27 L 27 14 A 8 6 0 0 1 33 12 H 42\"\n ></path>\n </svg>\n );\n return this.renderWrapper(sixLogo);\n }\n\n /**\n * Renders the BME logo spinner.\n */\n private renderBMELogo() {\n const bmeLogo = (\n <svg viewBox=\"0 0 45 55\" part=\"svg\">\n <polygon\n fill=\"none\"\n stroke=\"black\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n points=\"4.42 51.96 17.02 31.473 2 31.473 2 22.486 17.02 22.486 4.42 2 15.404 2 30.289 26.98 14.763 51.96 4.42 51.96\"\n />\n <polygon\n fill=\"none\"\n stroke=\"black\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n points=\"42 51.96 31.655 51.96 24.598 40.498 29.831 32.073 42 51.96\"\n />\n <polygon\n fill=\"none\"\n stroke=\"black\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n points=\"24.518 12.719 31.014 2 42 2 29.831 21.637 24.518 12.719\"\n />\n </svg>\n );\n return this.renderWrapper(bmeLogo);\n }\n\n /**\n * Renders a simple spinner.\n */\n private renderSimpleSpinner() {\n return <span part=\"base\" class=\"spinner\" aria-busy=\"true\" aria-live=\"polite\" />;\n }\n\n render() {\n // Check the deprecated `six` property first\n if (this.six) {\n console.warn('The \"six\" prop is deprecated. Use \"logo=\\'six\\'\" instead.');\n return this.renderSIXLogo();\n }\n\n switch (this.logo) {\n case 'six':\n return this.renderSIXLogo();\n case 'bme':\n return this.renderBMELogo();\n default:\n return this.renderSimpleSpinner();\n }\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,aAAa,GAAG,8mEAA8mE;;MCgBvnE,UAAU,GAAA,MAAA;;;;AAUrB;;AAEG;AACK,IAAA,aAAa,CAAC,OAAmB,EAAA;AACvC,QAAA,QACE,YAAM,KAAK,EAAC,aAAa,EAAW,WAAA,EAAA,MAAM,eAAW,QAAQ,EAAA,EAC3D,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,wBAAwB,EAAA,EAAE,OAAO,CAAO,CAC9C;;AAIX;;AAEG;IACK,aAAa,GAAA;QACnB,MAAM,OAAO,IACX,CAAK,CAAA,KAAA,EAAA,EAAA,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,KAAK,EAAA,EACjC,CAAA,CAAA,MAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,SAAS,EACH,cAAA,EAAA,GAAG,EACD,gBAAA,EAAA,OAAO,EACtB,CAAC,EAAC,mHAAmH,EAC/G,CAAA,CACJ,CACP;AACD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;;AAGpC;;AAEG;IACK,aAAa,GAAA;QACnB,MAAM,OAAO,IACX,CAAK,CAAA,KAAA,EAAA,EAAA,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,KAAK,EAAA,EACjC,CAAA,CAAA,SAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,OAAO,EACD,cAAA,EAAA,GAAG,oBACD,OAAO,EACtB,MAAM,EAAC,6GAA6G,EACpH,CAAA,EACF,CAAA,CAAA,SAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,OAAO,EACD,cAAA,EAAA,GAAG,oBACD,OAAO,EACtB,MAAM,EAAC,4DAA4D,EACnE,CAAA,EACF,CAAA,CAAA,SAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,OAAO,EACD,cAAA,EAAA,GAAG,EACD,gBAAA,EAAA,OAAO,EACtB,MAAM,EAAC,yDAAyD,EAChE,CAAA,CACE,CACP;AACD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;;AAGpC;;AAEG;IACK,mBAAmB,GAAA;QACzB,OAAO,CAAM,CAAA,MAAA,EAAA,EAAA,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,SAAS,EAAW,WAAA,EAAA,MAAM,EAAW,WAAA,EAAA,QAAQ,GAAG;;IAGjF,MAAM,GAAA;;AAEJ,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC;AACzE,YAAA,OAAO,IAAI,CAAC,aAAa,EAAE;;AAG7B,QAAA,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,IAAI,CAAC,aAAa,EAAE;AAC7B,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,IAAI,CAAC,aAAa,EAAE;AAC7B,YAAA;AACE,gBAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE;;;;;;;;"}