@six-group/ui-library 0.0.0-insider.73220e4 → 0.0.0-insider.7926ac9

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 (508) hide show
  1. package/README.md +9 -0
  2. package/dist/cjs/{form-control-d369af14.js → form-control-19303ed2.js} +11 -8
  3. package/dist/cjs/form-control-19303ed2.js.map +1 -0
  4. package/dist/cjs/{index-900437fc.js → index-7d73cbd6.js} +495 -122
  5. package/dist/cjs/index-7d73cbd6.js.map +1 -0
  6. package/dist/cjs/index.cjs.js +15 -0
  7. package/dist/cjs/index.cjs.js.map +1 -1
  8. package/dist/cjs/loader.cjs.js +2 -2
  9. package/dist/cjs/{scroll-03678de1.js → scroll-2c4200dc.js} +1 -2
  10. package/dist/cjs/scroll-2c4200dc.js.map +1 -0
  11. package/dist/cjs/set-attributes_2.cjs.entry.js +1 -1
  12. package/dist/cjs/six-alert.cjs.entry.js +1 -1
  13. package/dist/cjs/six-avatar.cjs.entry.js +1 -1
  14. package/dist/cjs/six-badge.cjs.entry.js +1 -1
  15. package/dist/cjs/six-button.cjs.entry.js +4 -4
  16. package/dist/cjs/six-button.cjs.entry.js.map +1 -1
  17. package/dist/cjs/six-card.cjs.entry.js +1 -1
  18. package/dist/cjs/six-checkbox.cjs.entry.js +7 -4
  19. package/dist/cjs/six-checkbox.cjs.entry.js.map +1 -1
  20. package/dist/cjs/six-datepicker.cjs.entry.js +3 -8
  21. package/dist/cjs/six-datepicker.cjs.entry.js.map +1 -1
  22. package/dist/cjs/six-details.cjs.entry.js +2 -2
  23. package/dist/cjs/six-details.cjs.entry.js.map +1 -1
  24. package/dist/cjs/six-dialog.cjs.entry.js +2 -2
  25. package/dist/cjs/six-drawer.cjs.entry.js +3 -3
  26. package/dist/cjs/six-drawer.cjs.entry.js.map +1 -1
  27. package/dist/cjs/six-dropdown_2.cjs.entry.js +2 -2
  28. package/dist/cjs/six-dropdown_2.cjs.entry.js.map +1 -1
  29. package/dist/cjs/six-error-page.cjs.entry.js +1 -1
  30. package/dist/cjs/six-error.cjs.entry.js +21 -0
  31. package/dist/cjs/six-error.cjs.entry.js.map +1 -0
  32. package/dist/cjs/six-file-list-item.cjs.entry.js +1 -1
  33. package/dist/cjs/six-file-list.cjs.entry.js +1 -1
  34. package/dist/cjs/six-file-upload.cjs.entry.js +1 -1
  35. package/dist/cjs/six-footer.cjs.entry.js +1 -1
  36. package/dist/cjs/six-group-label.cjs.entry.js +3 -3
  37. package/dist/cjs/six-group-label.cjs.entry.js.map +1 -1
  38. package/dist/cjs/six-header.cjs.entry.js +1 -1
  39. package/dist/cjs/six-icon-button.cjs.entry.js +2 -2
  40. package/dist/cjs/six-icon-button.cjs.entry.js.map +1 -1
  41. package/dist/cjs/six-icon.cjs.entry.js +1 -1
  42. package/dist/cjs/six-input.cjs.entry.js +7 -4
  43. package/dist/cjs/six-input.cjs.entry.js.map +1 -1
  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 +1 -1
  47. package/dist/cjs/six-main-container.cjs.entry.js +1 -1
  48. package/dist/cjs/six-menu-divider.cjs.entry.js +1 -1
  49. package/dist/cjs/six-menu-item.cjs.entry.js +1 -1
  50. package/dist/cjs/six-menu-label.cjs.entry.js +1 -1
  51. package/dist/cjs/six-picto.cjs.entry.js +1 -1
  52. package/dist/cjs/six-progress-bar.cjs.entry.js +1 -1
  53. package/dist/cjs/six-progress-ring.cjs.entry.js +1 -1
  54. package/dist/cjs/six-radio.cjs.entry.js +1 -1
  55. package/dist/cjs/six-range.cjs.entry.js +7 -4
  56. package/dist/cjs/six-range.cjs.entry.js.map +1 -1
  57. package/dist/cjs/six-root.cjs.entry.js +1 -1
  58. package/dist/cjs/six-search-field.cjs.entry.js +1 -1
  59. package/dist/cjs/six-select.cjs.entry.js +9 -6
  60. package/dist/cjs/six-select.cjs.entry.js.map +1 -1
  61. package/dist/cjs/six-sidebar-item-group.cjs.entry.js +14 -3
  62. package/dist/cjs/six-sidebar-item-group.cjs.entry.js.map +1 -1
  63. package/dist/cjs/six-sidebar-item.cjs.entry.js +6 -4
  64. package/dist/cjs/six-sidebar-item.cjs.entry.js.map +1 -1
  65. package/dist/cjs/six-sidebar.cjs.entry.js +2 -2
  66. package/dist/cjs/six-spinner.cjs.entry.js +1 -1
  67. package/dist/cjs/six-switch.cjs.entry.js +23 -5
  68. package/dist/cjs/six-switch.cjs.entry.js.map +1 -1
  69. package/dist/cjs/six-tab-group.cjs.entry.js +46 -51
  70. package/dist/cjs/six-tab-group.cjs.entry.js.map +1 -1
  71. package/dist/cjs/six-tab-panel.cjs.entry.js +1 -1
  72. package/dist/cjs/six-tab.cjs.entry.js +20 -4
  73. package/dist/cjs/six-tab.cjs.entry.js.map +1 -1
  74. package/dist/cjs/six-tag.cjs.entry.js +25 -3
  75. package/dist/cjs/six-tag.cjs.entry.js.map +1 -1
  76. package/dist/cjs/six-textarea.cjs.entry.js +7 -4
  77. package/dist/cjs/six-textarea.cjs.entry.js.map +1 -1
  78. package/dist/cjs/six-tile.cjs.entry.js +1 -1
  79. package/dist/cjs/six-timepicker.cjs.entry.js +5 -10
  80. package/dist/cjs/six-timepicker.cjs.entry.js.map +1 -1
  81. package/dist/cjs/six-tooltip.cjs.entry.js +3 -3
  82. package/dist/cjs/six-tooltip.cjs.entry.js.map +1 -1
  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 +3 -2
  86. package/dist/collection/components/six-button/six-button.css +5 -30
  87. package/dist/collection/components/six-button/six-button.js +2 -2
  88. package/dist/collection/components/six-button/six-button.js.map +1 -1
  89. package/dist/collection/components/six-checkbox/six-checkbox.css +4 -1
  90. package/dist/collection/components/six-checkbox/six-checkbox.js +25 -4
  91. package/dist/collection/components/six-checkbox/six-checkbox.js.map +1 -1
  92. package/dist/collection/components/six-checkbox/test/six-checkbox.spec.js +6 -2
  93. package/dist/collection/components/six-checkbox/test/six-checkbox.spec.js.map +1 -1
  94. package/dist/collection/components/six-datepicker/six-datepicker.js +22 -11
  95. package/dist/collection/components/six-datepicker/six-datepicker.js.map +1 -1
  96. package/dist/collection/components/six-datepicker/test/six-datepicker.spec.js +1 -1
  97. package/dist/collection/components/six-datepicker/test/six-datepicker.spec.js.map +1 -1
  98. package/dist/collection/components/six-details/six-details.css +3 -1
  99. package/dist/collection/components/six-drawer/six-drawer.js +1 -1
  100. package/dist/collection/components/six-drawer/six-drawer.js.map +1 -1
  101. package/dist/collection/components/six-drawer/test/six-drawer.spec.js +1 -1
  102. package/dist/collection/components/six-drawer/test/six-drawer.spec.js.map +1 -1
  103. package/dist/collection/components/six-dropdown/six-dropdown.css +2 -1
  104. package/dist/collection/components/six-error/six-error.css +5 -0
  105. package/dist/collection/components/six-error/six-error.js +25 -0
  106. package/dist/collection/components/six-error/six-error.js.map +1 -0
  107. package/dist/collection/components/six-group-label/six-group-label.css +4 -1
  108. package/dist/collection/components/six-group-label/test/six-group-label.spec.js +3 -1
  109. package/dist/collection/components/six-group-label/test/six-group-label.spec.js.map +1 -1
  110. package/dist/collection/components/six-icon-button/six-icon-button.css +4 -4
  111. package/dist/collection/components/six-input/six-input.css +4 -1
  112. package/dist/collection/components/six-input/six-input.js +27 -4
  113. package/dist/collection/components/six-input/six-input.js.map +1 -1
  114. package/dist/collection/components/six-input/test/six-input.spec.js +3 -1
  115. package/dist/collection/components/six-input/test/six-input.spec.js.map +1 -1
  116. package/dist/collection/components/six-range/six-range.css +4 -1
  117. package/dist/collection/components/six-range/six-range.js +24 -3
  118. package/dist/collection/components/six-range/six-range.js.map +1 -1
  119. package/dist/collection/components/six-range/test/six-range.spec.js +3 -1
  120. package/dist/collection/components/six-range/test/six-range.spec.js.map +1 -1
  121. package/dist/collection/components/six-select/six-select.css +10 -10
  122. package/dist/collection/components/six-select/six-select.js +26 -5
  123. package/dist/collection/components/six-select/six-select.js.map +1 -1
  124. package/dist/collection/components/six-select/test/six-select.spec.js +8 -4
  125. package/dist/collection/components/six-select/test/six-select.spec.js.map +1 -1
  126. package/dist/collection/components/six-sidebar-item/six-sidebar-item.css +6 -1
  127. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js +21 -2
  128. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js.map +1 -1
  129. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.css +11 -0
  130. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js +29 -1
  131. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js.map +1 -1
  132. package/dist/collection/components/six-sidebar-item-group/test/six-sidebar-item-group.spec.js +2 -2
  133. package/dist/collection/components/six-sidebar-item-group/test/six-sidebar-item-group.spec.js.map +1 -1
  134. package/dist/collection/components/six-switch/six-switch.css +4 -1
  135. package/dist/collection/components/six-switch/six-switch.js +45 -4
  136. package/dist/collection/components/six-switch/six-switch.js.map +1 -1
  137. package/dist/collection/components/six-switch/test/six-switch.spec.js +6 -2
  138. package/dist/collection/components/six-switch/test/six-switch.spec.js.map +1 -1
  139. package/dist/collection/components/six-tab/six-tab.css +54 -5
  140. package/dist/collection/components/six-tab/six-tab.js +18 -2
  141. package/dist/collection/components/six-tab/six-tab.js.map +1 -1
  142. package/dist/collection/components/six-tab-group/six-tab-group.css +0 -31
  143. package/dist/collection/components/six-tab-group/six-tab-group.js +10 -51
  144. package/dist/collection/components/six-tab-group/six-tab-group.js.map +1 -1
  145. package/dist/collection/components/six-tag/six-tag.css +6 -0
  146. package/dist/collection/components/six-tag/six-tag.js +23 -1
  147. package/dist/collection/components/six-tag/six-tag.js.map +1 -1
  148. package/dist/collection/components/six-tag/test/six-tag.spec.js +12 -0
  149. package/dist/collection/components/six-tag/test/six-tag.spec.js.map +1 -1
  150. package/dist/collection/components/six-textarea/six-textarea.css +4 -1
  151. package/dist/collection/components/six-textarea/six-textarea.js +25 -4
  152. package/dist/collection/components/six-textarea/six-textarea.js.map +1 -1
  153. package/dist/collection/components/six-textarea/test/six-textarea.spec.js +3 -1
  154. package/dist/collection/components/six-textarea/test/six-textarea.spec.js.map +1 -1
  155. package/dist/collection/components/six-timepicker/six-timepicker.js +24 -12
  156. package/dist/collection/components/six-timepicker/six-timepicker.js.map +1 -1
  157. package/dist/collection/components/six-timepicker/test/six-timepicker.spec.js +15 -15
  158. package/dist/collection/components/six-timepicker/test/six-timepicker.spec.js.map +1 -1
  159. package/dist/collection/components/six-tooltip/six-tooltip.css +1 -1
  160. package/dist/collection/components/six-tooltip/six-tooltip.js +1 -1
  161. package/dist/collection/components/six-tooltip/six-tooltip.js.map +1 -1
  162. package/dist/collection/functional-components/form-control/form-control.js +8 -6
  163. package/dist/collection/functional-components/form-control/form-control.js.map +1 -1
  164. package/dist/collection/utils/animation.js +34 -0
  165. package/dist/collection/utils/animation.js.map +1 -0
  166. package/dist/collection/utils/error-messages.js +14 -0
  167. package/dist/collection/utils/error-messages.js.map +1 -1
  168. package/dist/components/form-control.js +9 -6
  169. package/dist/components/form-control.js.map +1 -1
  170. package/dist/components/index.d.ts +6 -0
  171. package/dist/components/index.js +18 -2
  172. package/dist/components/index.js.map +1 -1
  173. package/dist/components/scroll.js +1 -1
  174. package/dist/components/set-attributes2.js +2 -0
  175. package/dist/components/set-attributes2.js.map +1 -1
  176. package/dist/components/six-alert.js +3 -0
  177. package/dist/components/six-alert.js.map +1 -1
  178. package/dist/components/six-button.js +3 -3
  179. package/dist/components/six-button.js.map +1 -1
  180. package/dist/components/six-checkbox.js +19 -3
  181. package/dist/components/six-checkbox.js.map +1 -1
  182. package/dist/components/six-datepicker.js +14 -9
  183. package/dist/components/six-datepicker.js.map +1 -1
  184. package/dist/components/six-details2.js +3 -1
  185. package/dist/components/six-details2.js.map +1 -1
  186. package/dist/components/six-dialog.js +2 -0
  187. package/dist/components/six-dialog.js.map +1 -1
  188. package/dist/components/six-drawer.js +3 -1
  189. package/dist/components/six-drawer.js.map +1 -1
  190. package/dist/components/six-dropdown2.js +15 -2
  191. package/dist/components/six-dropdown2.js.map +1 -1
  192. package/dist/components/six-error.d.ts +11 -0
  193. package/dist/components/six-error.js +8 -0
  194. package/dist/components/six-error.js.map +1 -0
  195. package/dist/components/six-error2.js +32 -0
  196. package/dist/components/six-error2.js.map +1 -0
  197. package/dist/components/six-group-label.js +11 -2
  198. package/dist/components/six-group-label.js.map +1 -1
  199. package/dist/components/six-header.js +10 -2
  200. package/dist/components/six-header.js.map +1 -1
  201. package/dist/components/six-icon-button2.js +1 -1
  202. package/dist/components/six-icon-button2.js.map +1 -1
  203. package/dist/components/six-input2.js +19 -3
  204. package/dist/components/six-input2.js.map +1 -1
  205. package/dist/components/six-item-picker2.js +4 -0
  206. package/dist/components/six-item-picker2.js.map +1 -1
  207. package/dist/components/six-language-switcher.js +2 -0
  208. package/dist/components/six-language-switcher.js.map +1 -1
  209. package/dist/components/six-layout-grid.js +2 -0
  210. package/dist/components/six-layout-grid.js.map +1 -1
  211. package/dist/components/six-progress-ring.js +2 -0
  212. package/dist/components/six-progress-ring.js.map +1 -1
  213. package/dist/components/six-radio.js +3 -0
  214. package/dist/components/six-radio.js.map +1 -1
  215. package/dist/components/six-range.js +21 -3
  216. package/dist/components/six-range.js.map +1 -1
  217. package/dist/components/six-root.js +2 -0
  218. package/dist/components/six-root.js.map +1 -1
  219. package/dist/components/six-search-field.js +9 -1
  220. package/dist/components/six-search-field.js.map +1 -1
  221. package/dist/components/six-select.js +42 -18
  222. package/dist/components/six-select.js.map +1 -1
  223. package/dist/components/six-sidebar-item-group.js +14 -2
  224. package/dist/components/six-sidebar-item-group.js.map +1 -1
  225. package/dist/components/six-sidebar-item.js +7 -4
  226. package/dist/components/six-sidebar-item.js.map +1 -1
  227. package/dist/components/six-sidebar.js +2 -0
  228. package/dist/components/six-sidebar.js.map +1 -1
  229. package/dist/components/six-switch.js +34 -4
  230. package/dist/components/six-switch.js.map +1 -1
  231. package/dist/components/six-tab-group.js +47 -50
  232. package/dist/components/six-tab-group.js.map +1 -1
  233. package/dist/components/six-tab.js +19 -3
  234. package/dist/components/six-tab.js.map +1 -1
  235. package/dist/components/six-tag2.js +34 -6
  236. package/dist/components/six-tag2.js.map +1 -1
  237. package/dist/components/six-textarea.js +20 -3
  238. package/dist/components/six-textarea.js.map +1 -1
  239. package/dist/components/six-timepicker2.js +15 -11
  240. package/dist/components/six-timepicker2.js.map +1 -1
  241. package/dist/components/six-tooltip2.js +4 -2
  242. package/dist/components/six-tooltip2.js.map +1 -1
  243. package/dist/components.json +475 -57
  244. package/dist/esm/{form-control-32cb533f.js → form-control-079f7fb6.js} +11 -8
  245. package/dist/esm/form-control-079f7fb6.js.map +1 -0
  246. package/dist/esm/{index-8a74f992.js → index-4ee8b33e.js} +495 -122
  247. package/dist/esm/index-4ee8b33e.js.map +1 -0
  248. package/dist/esm/index.js +15 -1
  249. package/dist/esm/index.js.map +1 -1
  250. package/dist/esm/loader.js +3 -3
  251. package/dist/esm/{scroll-3fb087a2.js → scroll-774762d6.js} +2 -2
  252. package/dist/esm/{scroll-3fb087a2.js.map → scroll-774762d6.js.map} +1 -1
  253. package/dist/esm/set-attributes_2.entry.js +1 -1
  254. package/dist/esm/six-alert.entry.js +1 -1
  255. package/dist/esm/six-avatar.entry.js +1 -1
  256. package/dist/esm/six-badge.entry.js +1 -1
  257. package/dist/esm/six-button.entry.js +4 -4
  258. package/dist/esm/six-button.entry.js.map +1 -1
  259. package/dist/esm/six-card.entry.js +1 -1
  260. package/dist/esm/six-checkbox.entry.js +7 -4
  261. package/dist/esm/six-checkbox.entry.js.map +1 -1
  262. package/dist/esm/six-datepicker.entry.js +3 -8
  263. package/dist/esm/six-datepicker.entry.js.map +1 -1
  264. package/dist/esm/six-details.entry.js +2 -2
  265. package/dist/esm/six-details.entry.js.map +1 -1
  266. package/dist/esm/six-dialog.entry.js +2 -2
  267. package/dist/esm/six-drawer.entry.js +3 -3
  268. package/dist/esm/six-drawer.entry.js.map +1 -1
  269. package/dist/esm/six-dropdown_2.entry.js +2 -2
  270. package/dist/esm/six-dropdown_2.entry.js.map +1 -1
  271. package/dist/esm/six-error-page.entry.js +1 -1
  272. package/dist/esm/six-error.entry.js +17 -0
  273. package/dist/esm/six-error.entry.js.map +1 -0
  274. package/dist/esm/six-file-list-item.entry.js +1 -1
  275. package/dist/esm/six-file-list.entry.js +1 -1
  276. package/dist/esm/six-file-upload.entry.js +1 -1
  277. package/dist/esm/six-footer.entry.js +1 -1
  278. package/dist/esm/six-group-label.entry.js +3 -3
  279. package/dist/esm/six-group-label.entry.js.map +1 -1
  280. package/dist/esm/six-header.entry.js +1 -1
  281. package/dist/esm/six-icon-button.entry.js +2 -2
  282. package/dist/esm/six-icon-button.entry.js.map +1 -1
  283. package/dist/esm/six-icon.entry.js +1 -1
  284. package/dist/esm/six-input.entry.js +7 -4
  285. package/dist/esm/six-input.entry.js.map +1 -1
  286. package/dist/esm/six-item-picker.entry.js +1 -1
  287. package/dist/esm/six-language-switcher.entry.js +1 -1
  288. package/dist/esm/six-layout-grid.entry.js +1 -1
  289. package/dist/esm/six-main-container.entry.js +1 -1
  290. package/dist/esm/six-menu-divider.entry.js +1 -1
  291. package/dist/esm/six-menu-item.entry.js +1 -1
  292. package/dist/esm/six-menu-label.entry.js +1 -1
  293. package/dist/esm/six-picto.entry.js +1 -1
  294. package/dist/esm/six-progress-bar.entry.js +1 -1
  295. package/dist/esm/six-progress-ring.entry.js +1 -1
  296. package/dist/esm/six-radio.entry.js +1 -1
  297. package/dist/esm/six-range.entry.js +7 -4
  298. package/dist/esm/six-range.entry.js.map +1 -1
  299. package/dist/esm/six-root.entry.js +1 -1
  300. package/dist/esm/six-search-field.entry.js +1 -1
  301. package/dist/esm/six-select.entry.js +9 -6
  302. package/dist/esm/six-select.entry.js.map +1 -1
  303. package/dist/esm/six-sidebar-item-group.entry.js +14 -3
  304. package/dist/esm/six-sidebar-item-group.entry.js.map +1 -1
  305. package/dist/esm/six-sidebar-item.entry.js +6 -4
  306. package/dist/esm/six-sidebar-item.entry.js.map +1 -1
  307. package/dist/esm/six-sidebar.entry.js +2 -2
  308. package/dist/esm/six-spinner.entry.js +1 -1
  309. package/dist/esm/six-switch.entry.js +23 -5
  310. package/dist/esm/six-switch.entry.js.map +1 -1
  311. package/dist/esm/six-tab-group.entry.js +46 -51
  312. package/dist/esm/six-tab-group.entry.js.map +1 -1
  313. package/dist/esm/six-tab-panel.entry.js +1 -1
  314. package/dist/esm/six-tab.entry.js +20 -4
  315. package/dist/esm/six-tab.entry.js.map +1 -1
  316. package/dist/esm/six-tag.entry.js +25 -3
  317. package/dist/esm/six-tag.entry.js.map +1 -1
  318. package/dist/esm/six-textarea.entry.js +7 -4
  319. package/dist/esm/six-textarea.entry.js.map +1 -1
  320. package/dist/esm/six-tile.entry.js +1 -1
  321. package/dist/esm/six-timepicker.entry.js +5 -10
  322. package/dist/esm/six-timepicker.entry.js.map +1 -1
  323. package/dist/esm/six-tooltip.entry.js +3 -3
  324. package/dist/esm/six-tooltip.entry.js.map +1 -1
  325. package/dist/esm/ui-library.js +4 -4
  326. package/dist/esm/ui-library.js.map +1 -1
  327. package/dist/types/components/six-checkbox/six-checkbox.d.ts +4 -1
  328. package/dist/types/components/six-datepicker/six-datepicker.d.ts +4 -2
  329. package/dist/types/components/six-error/six-error.d.ts +9 -0
  330. package/dist/types/components/six-input/six-input.d.ts +7 -2
  331. package/dist/types/components/six-range/six-range.d.ts +4 -1
  332. package/dist/types/components/six-select/six-select.d.ts +4 -1
  333. package/dist/types/components/six-sidebar-item/six-sidebar-item.d.ts +5 -0
  334. package/dist/types/components/six-sidebar-item-group/six-sidebar-item-group.d.ts +6 -0
  335. package/dist/types/components/six-switch/six-switch.d.ts +8 -1
  336. package/dist/types/components/six-tab-group/six-tab-group.d.ts +0 -3
  337. package/dist/types/components/six-tag/six-tag.d.ts +8 -0
  338. package/dist/types/components/six-textarea/six-textarea.d.ts +4 -1
  339. package/dist/types/components/six-timepicker/six-timepicker.d.ts +5 -2
  340. package/dist/types/components.d.ts +505 -16
  341. package/dist/types/functional-components/form-control/form-control.d.ts +6 -2
  342. package/dist/types/stencil-public-runtime.d.ts +26 -3
  343. package/dist/types/utils/animation.d.ts +12 -0
  344. package/dist/types/utils/error-messages.d.ts +2 -1
  345. package/dist/ui-library/index.esm.js +1 -1
  346. package/dist/ui-library/index.esm.js.map +1 -1
  347. package/dist/ui-library/{p-330a4988.entry.js → p-0416ec85.entry.js} +2 -2
  348. package/dist/ui-library/{p-1f18768a.js → p-052aa8d3.js} +2 -2
  349. package/dist/ui-library/{p-ae601a0f.entry.js → p-0d8154b1.entry.js} +2 -2
  350. package/dist/ui-library/p-120a1b66.entry.js +2 -0
  351. package/dist/ui-library/p-120a1b66.entry.js.map +1 -0
  352. package/dist/ui-library/{p-9c1be3fb.entry.js → p-16eb37cd.entry.js} +2 -2
  353. package/dist/ui-library/{p-878226a0.entry.js → p-1f7dac36.entry.js} +2 -2
  354. package/dist/ui-library/{p-a6a9ee96.entry.js → p-20cb60c9.entry.js} +2 -2
  355. package/dist/ui-library/{p-613283a7.entry.js → p-21606e14.entry.js} +2 -2
  356. package/dist/ui-library/{p-411ed539.entry.js → p-2280038f.entry.js} +2 -2
  357. package/dist/ui-library/p-24e80289.entry.js +2 -0
  358. package/dist/ui-library/p-24e80289.entry.js.map +1 -0
  359. package/dist/ui-library/{p-264d4ea8.entry.js → p-27987d45.entry.js} +2 -2
  360. package/dist/ui-library/{p-cd67da3d.entry.js → p-2945a132.entry.js} +2 -2
  361. package/dist/ui-library/{p-3cc5addb.entry.js → p-2e99f389.entry.js} +2 -2
  362. package/dist/ui-library/p-3d7678a8.entry.js +2 -0
  363. package/dist/ui-library/p-3d7678a8.entry.js.map +1 -0
  364. package/dist/ui-library/p-4196a75a.entry.js +2 -0
  365. package/dist/ui-library/p-4196a75a.entry.js.map +1 -0
  366. package/dist/ui-library/p-48b7c199.entry.js +2 -0
  367. package/dist/ui-library/p-48b7c199.entry.js.map +1 -0
  368. package/dist/ui-library/{p-37557787.entry.js → p-51630491.entry.js} +2 -2
  369. package/dist/ui-library/{p-ed381ad9.entry.js → p-5218986b.entry.js} +2 -2
  370. package/dist/ui-library/p-5218986b.entry.js.map +1 -0
  371. package/dist/ui-library/p-5904d3c3.entry.js +2 -0
  372. package/dist/ui-library/p-5904d3c3.entry.js.map +1 -0
  373. package/dist/ui-library/p-66a48dc4.entry.js +2 -0
  374. package/dist/ui-library/{p-d367f4f9.entry.js.map → p-66a48dc4.entry.js.map} +1 -1
  375. package/dist/ui-library/{p-91b51800.entry.js → p-66d1d93d.entry.js} +2 -2
  376. package/dist/ui-library/p-6aced322.entry.js +2 -0
  377. package/dist/ui-library/p-6aced322.entry.js.map +1 -0
  378. package/dist/ui-library/p-6e87aeea.entry.js +2 -0
  379. package/dist/ui-library/p-6e87aeea.entry.js.map +1 -0
  380. package/dist/ui-library/p-74179b03.entry.js +2 -0
  381. package/dist/ui-library/p-74179b03.entry.js.map +1 -0
  382. package/dist/ui-library/{p-1d5ee1a0.entry.js → p-77424c6b.entry.js} +2 -2
  383. package/dist/ui-library/{p-13b43e04.entry.js → p-7d00de3a.entry.js} +2 -2
  384. package/dist/ui-library/{p-cdaed936.entry.js → p-7e9257f3.entry.js} +2 -2
  385. package/dist/ui-library/p-8226e363.entry.js +2 -0
  386. package/dist/ui-library/p-8226e363.entry.js.map +1 -0
  387. package/dist/ui-library/{p-99e24daf.entry.js → p-8296e24c.entry.js} +2 -2
  388. package/dist/ui-library/{p-99e24daf.entry.js.map → p-8296e24c.entry.js.map} +1 -1
  389. package/dist/ui-library/{p-7e3ad38a.entry.js → p-93a9b693.entry.js} +2 -2
  390. package/dist/ui-library/{p-5af44076.entry.js → p-94bd8347.entry.js} +2 -2
  391. package/dist/ui-library/{p-ee950ce2.entry.js → p-9bec3e14.entry.js} +2 -2
  392. package/dist/ui-library/{p-9b354f5d.entry.js → p-a15928c4.entry.js} +2 -2
  393. package/dist/ui-library/p-a4348ad4.entry.js +2 -0
  394. package/dist/ui-library/p-a4348ad4.entry.js.map +1 -0
  395. package/dist/ui-library/{p-7afafb9d.entry.js → p-acd3ecfd.entry.js} +2 -2
  396. package/dist/ui-library/p-ae383f66.entry.js +2 -0
  397. package/dist/ui-library/p-ae383f66.entry.js.map +1 -0
  398. package/dist/ui-library/p-af0e163e.entry.js +2 -0
  399. package/dist/ui-library/p-af0e163e.entry.js.map +1 -0
  400. package/dist/ui-library/p-b3a14438.entry.js +2 -0
  401. package/dist/ui-library/p-b3a14438.entry.js.map +1 -0
  402. package/dist/ui-library/{p-dfed33c5.entry.js → p-b42fd9c3.entry.js} +2 -2
  403. package/dist/ui-library/p-b5fdfa6a.js +3 -0
  404. package/dist/ui-library/p-b5fdfa6a.js.map +1 -0
  405. package/dist/ui-library/p-b7597736.entry.js +2 -0
  406. package/dist/ui-library/p-b7597736.entry.js.map +1 -0
  407. package/dist/ui-library/{p-c03ebf7d.entry.js → p-b906a605.entry.js} +2 -2
  408. package/dist/ui-library/{p-ac099e6b.entry.js → p-b97764a1.entry.js} +2 -2
  409. package/dist/ui-library/p-bbefcec9.entry.js +2 -0
  410. package/dist/ui-library/p-bbefcec9.entry.js.map +1 -0
  411. package/dist/ui-library/{p-b351f889.entry.js → p-c75694df.entry.js} +2 -2
  412. package/dist/ui-library/p-cb32f8d2.entry.js +2 -0
  413. package/dist/ui-library/p-cb32f8d2.entry.js.map +1 -0
  414. package/dist/ui-library/{p-a0f290d0.entry.js → p-cd3281fb.entry.js} +2 -2
  415. package/dist/ui-library/{p-19ed7a4c.entry.js → p-cec8c149.entry.js} +2 -2
  416. package/dist/ui-library/{p-724875b0.entry.js → p-d1ba2ad5.entry.js} +2 -2
  417. package/dist/ui-library/{p-346f9557.entry.js → p-d2196113.entry.js} +2 -2
  418. package/dist/ui-library/p-de7a9448.entry.js +2 -0
  419. package/dist/ui-library/p-de7a9448.entry.js.map +1 -0
  420. package/dist/ui-library/{p-a55c7258.entry.js → p-df1c4a1f.entry.js} +2 -2
  421. package/dist/ui-library/{p-95fbdd0b.entry.js → p-e740215a.entry.js} +2 -2
  422. package/dist/ui-library/p-f3fdc121.js +2 -0
  423. package/dist/ui-library/p-f3fdc121.js.map +1 -0
  424. package/dist/ui-library/ui-library.css +2 -2
  425. package/dist/ui-library/ui-library.esm.js +1 -1
  426. package/dist/ui-library/ui-library.esm.js.map +1 -1
  427. package/package.json +14 -11
  428. package/dist/cjs/form-control-d369af14.js.map +0 -1
  429. package/dist/cjs/index-900437fc.js.map +0 -1
  430. package/dist/cjs/scroll-03678de1.js.map +0 -1
  431. package/dist/collection/components/six-tab/test/six-tab.spec.js +0 -20
  432. package/dist/collection/components/six-tab/test/six-tab.spec.js.map +0 -1
  433. package/dist/collection/components/six-tab-group/test/six-tab-group.spec.js +0 -45
  434. package/dist/collection/components/six-tab-group/test/six-tab-group.spec.js.map +0 -1
  435. package/dist/esm/form-control-32cb533f.js.map +0 -1
  436. package/dist/esm/index-8a74f992.js.map +0 -1
  437. package/dist/ui-library/p-1256cc0a.entry.js +0 -2
  438. package/dist/ui-library/p-1256cc0a.entry.js.map +0 -1
  439. package/dist/ui-library/p-1d0bee53.entry.js +0 -2
  440. package/dist/ui-library/p-1d0bee53.entry.js.map +0 -1
  441. package/dist/ui-library/p-21b3b321.entry.js +0 -2
  442. package/dist/ui-library/p-21b3b321.entry.js.map +0 -1
  443. package/dist/ui-library/p-2451cfdc.entry.js +0 -2
  444. package/dist/ui-library/p-2451cfdc.entry.js.map +0 -1
  445. package/dist/ui-library/p-29ac3d7d.entry.js +0 -2
  446. package/dist/ui-library/p-29ac3d7d.entry.js.map +0 -1
  447. package/dist/ui-library/p-314b2096.entry.js +0 -2
  448. package/dist/ui-library/p-314b2096.entry.js.map +0 -1
  449. package/dist/ui-library/p-3d9de119.entry.js +0 -2
  450. package/dist/ui-library/p-3d9de119.entry.js.map +0 -1
  451. package/dist/ui-library/p-4705a51e.entry.js +0 -2
  452. package/dist/ui-library/p-4705a51e.entry.js.map +0 -1
  453. package/dist/ui-library/p-4abed9df.entry.js +0 -2
  454. package/dist/ui-library/p-4abed9df.entry.js.map +0 -1
  455. package/dist/ui-library/p-5d6b7353.entry.js +0 -2
  456. package/dist/ui-library/p-5d6b7353.entry.js.map +0 -1
  457. package/dist/ui-library/p-6153045b.js +0 -3
  458. package/dist/ui-library/p-6153045b.js.map +0 -1
  459. package/dist/ui-library/p-6197fe2f.entry.js +0 -2
  460. package/dist/ui-library/p-6197fe2f.entry.js.map +0 -1
  461. package/dist/ui-library/p-72254eef.entry.js +0 -2
  462. package/dist/ui-library/p-72254eef.entry.js.map +0 -1
  463. package/dist/ui-library/p-83864cfe.entry.js +0 -2
  464. package/dist/ui-library/p-83864cfe.entry.js.map +0 -1
  465. package/dist/ui-library/p-9f0b43f9.entry.js +0 -2
  466. package/dist/ui-library/p-9f0b43f9.entry.js.map +0 -1
  467. package/dist/ui-library/p-bf87464b.entry.js +0 -2
  468. package/dist/ui-library/p-bf87464b.entry.js.map +0 -1
  469. package/dist/ui-library/p-d367f4f9.entry.js +0 -2
  470. package/dist/ui-library/p-d42c2025.js +0 -2
  471. package/dist/ui-library/p-d42c2025.js.map +0 -1
  472. package/dist/ui-library/p-ed381ad9.entry.js.map +0 -1
  473. package/dist/ui-library/p-ee8342e1.entry.js +0 -2
  474. package/dist/ui-library/p-ee8342e1.entry.js.map +0 -1
  475. package/dist/ui-library/p-ff90ffd1.entry.js +0 -2
  476. package/dist/ui-library/p-ff90ffd1.entry.js.map +0 -1
  477. package/readme.md +0 -156
  478. /package/dist/ui-library/{p-330a4988.entry.js.map → p-0416ec85.entry.js.map} +0 -0
  479. /package/dist/ui-library/{p-1f18768a.js.map → p-052aa8d3.js.map} +0 -0
  480. /package/dist/ui-library/{p-ae601a0f.entry.js.map → p-0d8154b1.entry.js.map} +0 -0
  481. /package/dist/ui-library/{p-9c1be3fb.entry.js.map → p-16eb37cd.entry.js.map} +0 -0
  482. /package/dist/ui-library/{p-878226a0.entry.js.map → p-1f7dac36.entry.js.map} +0 -0
  483. /package/dist/ui-library/{p-a6a9ee96.entry.js.map → p-20cb60c9.entry.js.map} +0 -0
  484. /package/dist/ui-library/{p-613283a7.entry.js.map → p-21606e14.entry.js.map} +0 -0
  485. /package/dist/ui-library/{p-411ed539.entry.js.map → p-2280038f.entry.js.map} +0 -0
  486. /package/dist/ui-library/{p-264d4ea8.entry.js.map → p-27987d45.entry.js.map} +0 -0
  487. /package/dist/ui-library/{p-cd67da3d.entry.js.map → p-2945a132.entry.js.map} +0 -0
  488. /package/dist/ui-library/{p-3cc5addb.entry.js.map → p-2e99f389.entry.js.map} +0 -0
  489. /package/dist/ui-library/{p-37557787.entry.js.map → p-51630491.entry.js.map} +0 -0
  490. /package/dist/ui-library/{p-91b51800.entry.js.map → p-66d1d93d.entry.js.map} +0 -0
  491. /package/dist/ui-library/{p-1d5ee1a0.entry.js.map → p-77424c6b.entry.js.map} +0 -0
  492. /package/dist/ui-library/{p-13b43e04.entry.js.map → p-7d00de3a.entry.js.map} +0 -0
  493. /package/dist/ui-library/{p-cdaed936.entry.js.map → p-7e9257f3.entry.js.map} +0 -0
  494. /package/dist/ui-library/{p-7e3ad38a.entry.js.map → p-93a9b693.entry.js.map} +0 -0
  495. /package/dist/ui-library/{p-5af44076.entry.js.map → p-94bd8347.entry.js.map} +0 -0
  496. /package/dist/ui-library/{p-ee950ce2.entry.js.map → p-9bec3e14.entry.js.map} +0 -0
  497. /package/dist/ui-library/{p-9b354f5d.entry.js.map → p-a15928c4.entry.js.map} +0 -0
  498. /package/dist/ui-library/{p-7afafb9d.entry.js.map → p-acd3ecfd.entry.js.map} +0 -0
  499. /package/dist/ui-library/{p-dfed33c5.entry.js.map → p-b42fd9c3.entry.js.map} +0 -0
  500. /package/dist/ui-library/{p-c03ebf7d.entry.js.map → p-b906a605.entry.js.map} +0 -0
  501. /package/dist/ui-library/{p-ac099e6b.entry.js.map → p-b97764a1.entry.js.map} +0 -0
  502. /package/dist/ui-library/{p-b351f889.entry.js.map → p-c75694df.entry.js.map} +0 -0
  503. /package/dist/ui-library/{p-a0f290d0.entry.js.map → p-cd3281fb.entry.js.map} +0 -0
  504. /package/dist/ui-library/{p-19ed7a4c.entry.js.map → p-cec8c149.entry.js.map} +0 -0
  505. /package/dist/ui-library/{p-724875b0.entry.js.map → p-d1ba2ad5.entry.js.map} +0 -0
  506. /package/dist/ui-library/{p-346f9557.entry.js.map → p-d2196113.entry.js.map} +0 -0
  507. /package/dist/ui-library/{p-a55c7258.entry.js.map → p-df1c4a1f.entry.js.map} +0 -0
  508. /package/dist/ui-library/{p-95fbdd0b.entry.js.map → p-e740215a.entry.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
2
 
3
- const sixSidebarItemCss = ":host{display:block}.sidebar-item{font-size:0.9rem;color:var(--six-sidebar-color);cursor:pointer;padding:8px 8px 16px 16px;font-family:var(--six-font-family)}.sidebar-item:hover:not(.sidebar-item--disabled){color:var(--six-color-web-rock-600)}.sidebar-item.sidebar-item--disabled{outline:none;color:var(--six-input-color-disabled);cursor:not-allowed}.sidebar-item.sidebar-item--selected{font-weight:var(--six-font-weight-bold)}";
3
+ const sixSidebarItemCss = ":host{display:block}a{text-decoration:none;display:block}.sidebar-item{padding:8px 8px 16px 16px;font-size:0.9rem;color:var(--six-sidebar-color);cursor:pointer;font-family:var(--six-font-family)}.sidebar-item:hover:not(.sidebar-item--disabled){color:var(--six-color-web-rock-600)}.sidebar-item.sidebar-item--disabled{outline:none;color:var(--six-input-color-disabled);cursor:not-allowed}.sidebar-item.sidebar-item--selected{font-weight:var(--six-font-weight-bold)}";
4
4
 
5
5
  const SixSidebarItem$1 = /*@__PURE__*/ proxyCustomElement(class SixSidebarItem extends HTMLElement {
6
6
  constructor() {
@@ -10,19 +10,22 @@ const SixSidebarItem$1 = /*@__PURE__*/ proxyCustomElement(class SixSidebarItem e
10
10
  this.value = '';
11
11
  this.selected = false;
12
12
  this.disabled = false;
13
+ this.href = undefined;
13
14
  }
14
15
  render() {
15
- return (h("div", { class: {
16
+ const Tag = this.href != null ? 'a' : 'div';
17
+ return (h(Tag, { class: {
16
18
  'sidebar-item': true,
17
19
  'sidebar-item--selected': this.selected,
18
20
  'sidebar-item--disabled': this.disabled,
19
- }, role: "menuitem", "aria-selected": this.selected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }, h("slot", null)));
21
+ }, role: "menuitem", href: this.href, "aria-selected": this.selected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }, h("slot", null)));
20
22
  }
21
23
  static get style() { return sixSidebarItemCss; }
22
24
  }, [1, "six-sidebar-item", {
23
25
  "value": [513],
24
26
  "selected": [516],
25
- "disabled": [516]
27
+ "disabled": [516],
28
+ "href": [513]
26
29
  }]);
27
30
  function defineCustomElement$1() {
28
31
  if (typeof customElements === "undefined") {
@@ -1 +1 @@
1
- {"file":"six-sidebar-item.js","mappings":";;AAAA,MAAM,iBAAiB,GAAG,6aAA6a;;MCc1bA,gBAAc;;;;;iBAEQ,EAAE;oBAGC,KAAK;oBAGL,KAAK;;EAEzC,MAAM;IACJ,QACE,WACE,KAAK,EAAE;QACL,cAAc,EAAE,IAAI;QACpB,wBAAwB,EAAE,IAAI,CAAC,QAAQ;QACvC,wBAAwB,EAAE,IAAI,CAAC,QAAQ;OACxC,EACD,IAAI,EAAC,UAAU,mBACA,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,mBAChC,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,IAE/C,eAAa,CACT,EACN;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["SixSidebarItem"],"sources":["src/components/six-sidebar-item/six-sidebar-item.scss?tag=six-sidebar-item&encapsulation=shadow","src/components/six-sidebar-item/six-sidebar-item.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.sidebar-item {\n font-size: 0.9rem;\n color: var(--six-sidebar-color);\n cursor: pointer;\n padding: 8px 8px 16px 16px;\n font-family: var(--six-font-family);\n\n &:hover:not(.sidebar-item--disabled) {\n color: var(--six-color-web-rock-600);\n }\n\n &.sidebar-item--disabled {\n outline: none;\n color: var(--six-input-color-disabled);\n cursor: not-allowed;\n }\n\n &.sidebar-item--selected {\n font-weight: var(--six-font-weight-bold);\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * @since 1.0\n * @status stable\n *\n * @slot - Used to define the nested displayed text of the item.\n */\n\n@Component({\n tag: 'six-sidebar-item',\n styleUrl: 'six-sidebar-item.scss',\n shadow: true,\n})\nexport class SixSidebarItem {\n /** A unique value to store in the sidebar item. This can be used as a way to identify sidebar items when selected. */\n @Prop({ reflect: true }) value = '';\n\n /** Set to true to draw the item in a selected state. */\n @Prop({ reflect: true }) selected = false;\n\n /** Set to true to draw the sidebar item in a disabled state. */\n @Prop({ reflect: true }) disabled = false;\n\n render() {\n return (\n <div\n class={{\n 'sidebar-item': true,\n 'sidebar-item--selected': this.selected,\n 'sidebar-item--disabled': this.disabled,\n }}\n role=\"menuitem\"\n aria-selected={this.selected ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n >\n <slot></slot>\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"six-sidebar-item.js","mappings":";;AAAA,MAAM,iBAAiB,GAAG,kdAAkd;;MCc/dA,gBAAc;;;;;iBAEQ,EAAE;oBAGC,KAAK;oBAGL,KAAK;;;EAQzC,MAAM;IACJ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;IAC5C,QACE,EAAC,GAAG,IACF,KAAK,EAAE;QACL,cAAc,EAAE,IAAI;QACpB,wBAAwB,EAAE,IAAI,CAAC,QAAQ;QACvC,wBAAwB,EAAE,IAAI,CAAC,QAAQ;OACxC,EACD,IAAI,EAAC,UAAU,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,mBACA,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,mBAChC,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,IAE/C,eAAa,CACT,EACN;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["SixSidebarItem"],"sources":["src/components/six-sidebar-item/six-sidebar-item.scss?tag=six-sidebar-item&encapsulation=shadow","src/components/six-sidebar-item/six-sidebar-item.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\na {\n text-decoration: none;\n display: block;\n}\n\n.sidebar-item {\n padding: 8px 8px 16px 16px;\n font-size: 0.9rem;\n color: var(--six-sidebar-color);\n cursor: pointer;\n font-family: var(--six-font-family);\n\n &:hover:not(.sidebar-item--disabled) {\n color: var(--six-color-web-rock-600);\n }\n\n &.sidebar-item--disabled {\n outline: none;\n color: var(--six-input-color-disabled);\n cursor: not-allowed;\n }\n\n &.sidebar-item--selected {\n font-weight: var(--six-font-weight-bold);\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * @since 1.0\n * @status stable\n *\n * @slot - Used to define the nested displayed text of the item.\n */\n\n@Component({\n tag: 'six-sidebar-item',\n styleUrl: 'six-sidebar-item.scss',\n shadow: true,\n})\nexport class SixSidebarItem {\n /** A unique value to store in the sidebar item. This can be used as a way to identify sidebar items when selected. */\n @Prop({ reflect: true }) value = '';\n\n /** Set to true to draw the item in a selected state. */\n @Prop({ reflect: true }) selected = false;\n\n /** Set to true to draw the sidebar item in a disabled state. */\n @Prop({ reflect: true }) disabled = false;\n\n /**\n * Provide if the item should be rendered as anchor tag.\n * Note, that the href is added automatically when using routerLink in Angular.\n */\n @Prop({ reflect: true }) href: string | undefined;\n\n render() {\n const Tag = this.href != null ? 'a' : 'div';\n return (\n <Tag\n class={{\n 'sidebar-item': true,\n 'sidebar-item--selected': this.selected,\n 'sidebar-item--disabled': this.disabled,\n }}\n role=\"menuitem\"\n href={this.href}\n aria-selected={this.selected ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n >\n <slot></slot>\n </Tag>\n );\n }\n}\n"],"version":3}
@@ -203,6 +203,8 @@ const SixSidebar$1 = /*@__PURE__*/ proxyCustomElement(class SixSidebar extends H
203
203
  "hide": [64],
204
204
  "selectItemByIndex": [64],
205
205
  "selectItemByName": [64]
206
+ }, undefined, {
207
+ "open": ["handleOpenChange"]
206
208
  }]);
207
209
  function defineCustomElement$1() {
208
210
  if (typeof customElements === "undefined") {
@@ -1 +1 @@
1
- {"file":"six-sidebar.js","mappings":"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","names":["SixSidebar"],"sources":["src/components/six-sidebar/six-sidebar.scss?tag=six-sidebar&encapsulation=shadow","src/components/six-sidebar/six-sidebar.tsx"],"sourcesContent":["@import 'src/global/component';\n@import 'src/global/mixins/hidden';\n@import 'src/global/mixins/scrollbar';\n\n:host {\n display: block;\n height: 100%;\n}\n\n.sidebar {\n &__container {\n // scroll\n height: 100%;\n overflow: auto;\n\n &.sidebar--open {\n box-shadow: var(--six-elevation-1dp);\n }\n\n &:not(.sidebar--visible) {\n @include hidden;\n }\n }\n\n &--left {\n color: var(--six-sidebar-color);\n background-color: var(--six-sidebar-background-color);\n // collapse\n transition: var(--six-transition-medium) margin-left;\n // six background\n background-size: 300vw 70%;\n background-position: bottom;\n background-repeat: no-repeat;\n }\n\n &--right {\n // collapse\n transition: var(--six-transition-medium) margin-right;\n }\n\n // if the sidebar is embedded within six-root it cuts-off the border styling, for thus we need to guarante a margin\n &--open {\n &.sidebar--left {\n margin-right: 2px;\n }\n\n &.sidebar--right {\n margin-left: 2px;\n }\n }\n}\n","import { Component, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { EmptyPayload } from '../../utils/types';\nimport { scrollIntoView } from '../../utils/scroll';\n\nconst isSidebarItemGroup = (node?: Element | null): boolean =>\n node?.tagName?.toLowerCase() === 'six-sidebar-item-group';\n\n/**\n * @since 1.0\n * @status stable\n *\n * @slot - Used to define the nested side bar [group] items.\n */\n\n@Component({\n tag: 'six-sidebar',\n styleUrl: 'six-sidebar.scss',\n shadow: true,\n})\nexport class SixSidebar {\n private willShow = false;\n private willHide = false;\n\n private sidebar?: HTMLElement;\n\n @State() isVisible = false;\n\n /** Sidebar position */\n @Prop() position: 'left' | 'right' = 'left';\n\n /** Indicates whether the sidebar is open. You can use this in lieu of the show/hide methods. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n /** Sidebar width */\n @Prop() width = '16rem';\n\n /** Define whether sidebar is toggled meaning only one menu can be open at the same time*/\n @Prop() toggled = false;\n\n /** Emitted when the sidebar opens. Calling `event.preventDefault()` will prevent it from being opened. */\n @Event({ eventName: 'six-sidebar-show' }) sixShow!: EventEmitter<EmptyPayload>;\n\n /** Emitted after the sidebar opens and all transitions are complete. */\n @Event({ eventName: 'six-sidebar-after-show' }) sixAfterShow!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the sidebar closes. Calling `event.preventDefault()` will prevent it from being closed. */\n @Event({ eventName: 'six-sidebar-hide' }) sixHide!: EventEmitter<EmptyPayload>;\n\n /** Emitted after the sidebar closes and all transitions are complete. */\n @Event({ eventName: 'six-sidebar-after-hide' }) sixAfterHide!: EventEmitter<EmptyPayload>;\n\n /**\n * Emitted when the sidebar opens and the panel gains focus. Calling `event.preventDefault()` will prevent focus and\n * allow you to set it on a different element in the sidebar, such as an input or button.\n */\n @Event({ eventName: 'six-sidebar-initial-focus' }) sixInitialFocus!: EventEmitter<EmptyPayload>;\n\n @Watch('open')\n handleOpenChange() {\n this.open ? this.show() : this.hide();\n }\n\n private handleTransitionEnd = (event: TransitionEvent) => {\n const target = event.target as HTMLElement;\n\n // Ensure we only emit one event when the target element is no longer visible\n if (event.type === 'transitionend' && target.classList.contains('sidebar__container')) {\n this.resetTransitionVariables();\n }\n };\n\n componentWillLoad() {\n // Show on init if open\n if (this.open) {\n void this.show();\n // if the sidebar is open by default we need to manually reset the\n // transition variables since there will be no transition event\n this.resetTransitionVariables();\n }\n }\n\n componentDidRender() {\n this.setupTogglableMenuItems();\n }\n\n disconnectedCallback() {\n this.sidebar?.removeEventListener('six-details-show', this.closeSiblingDetailsOnShow);\n }\n\n private closeSiblingDetailsOnShow = (event: Event) => {\n const clickedMenuItem = event.target as HTMLElement;\n if (this.sidebar != null) {\n scrollIntoView(clickedMenuItem, this.sidebar);\n }\n\n const closeAllSiblingsBySiblingProperty = (\n getSibling: (node: Element | null | undefined) => Element | null | undefined\n ) => {\n let node: Element | null | undefined = clickedMenuItem;\n while (getSibling(node) != null) {\n node = getSibling(node);\n if (isSidebarItemGroup(node)) {\n const detailsElement = node?.shadowRoot?.querySelector('six-details');\n if (detailsElement != null) {\n detailsElement.open = false;\n }\n }\n }\n };\n\n // close all previous siblings\n closeAllSiblingsBySiblingProperty((node) => node?.previousElementSibling);\n // close all further siblings\n closeAllSiblingsBySiblingProperty((node) => node?.nextElementSibling);\n };\n\n private setupTogglableMenuItems() {\n if (!this.toggled || this.sidebar == null) return;\n this.markAllMenuItemsAsSelectableEmpty();\n this.sidebar.addEventListener('six-details-show', this.closeSiblingDetailsOnShow);\n }\n\n private markAllMenuItemsAsSelectableEmpty() {\n // when you have a toggled menu you also want to close other menu items when you click on an item without children\n // nice benefit this item will then also be highlighted\n const slot = this.sidebar?.querySelector('slot');\n const nodes = slot?.assignedElements() || [];\n\n // since we don't just want to make the top level empty menuItems selectable in toggled mode,\n // but also nested items we need to traverse the whole menu item tree\n const menuItems = [];\n while (nodes.length > 0) {\n const node = nodes.pop();\n if (node?.shadowRoot == null) {\n continue;\n }\n\n // collect six-details in the current shadowDOM\n const menuItemsForCurrentNode = node.shadowRoot.querySelectorAll('six-details');\n menuItems.push(...menuItemsForCurrentNode);\n\n // collect all six-sidebar-item-group children of the current node to afterwards check their shadowDOM too\n const newItemGroups = Array.from(node.children).filter(isSidebarItemGroup);\n nodes.push(...newItemGroups);\n }\n\n menuItems.forEach((details) => (details.selectableEmpty = true));\n }\n\n /** Toggles whether the sidebar should be shown or hidden */\n @Method()\n async toggle() {\n if (this.willShow || this.willHide) {\n return;\n }\n\n if (this.open) {\n await this.hide();\n } else {\n await this.show();\n }\n }\n\n /** Shows the sidebar */\n @Method()\n async show() {\n if (this.willShow) {\n return;\n }\n\n const sixShow = this.sixShow.emit();\n if (sixShow.defaultPrevented) {\n this.open = false;\n return;\n }\n\n this.willShow = true;\n this.isVisible = true;\n this.open = true;\n }\n\n /** Hides the sidebar */\n @Method()\n async hide() {\n if (this.willHide) {\n return;\n }\n\n const sixHide = this.sixHide.emit();\n if (sixHide.defaultPrevented) {\n this.open = true;\n return;\n }\n\n this.willHide = true;\n this.open = false;\n }\n\n /** Allows to select a menu item programmatically by index */\n @Method()\n async selectItemByIndex(index: number) {\n if (this.sidebar == null) return;\n\n const slot = this.sidebar.querySelector('slot');\n const menuItemsOnRootLevel: HTMLSixDetailsElement[] = (slot?.assignedElements() || []).flatMap((el) => {\n const detailsElement = el.shadowRoot?.querySelector('six-details');\n if (detailsElement == null) {\n return [];\n }\n return [detailsElement];\n });\n if (index < 0 || index > menuItemsOnRootLevel.length - 1) {\n console.error(\n `Tried to access sidebar menu item by index, but provided index out of range. Provided index: ${index}`\n );\n return;\n }\n await menuItemsOnRootLevel[index].show();\n }\n\n /** Allows to select a menu item programmatically by name */\n @Method()\n async selectItemByName(value: string) {\n const slot = this.sidebar?.querySelector('slot');\n const sidebarItemGroups = slot?.assignedElements() as HTMLSixSidebarItemGroupElement[];\n if (sidebarItemGroups == null) {\n return;\n }\n\n const indexOfSelectedElement = sidebarItemGroups.findIndex((el) => el?.name === value);\n const selectedItem = sidebarItemGroups.at(indexOfSelectedElement)?.shadowRoot?.querySelector('six-details');\n await selectedItem?.show();\n }\n\n private resetTransitionVariables() {\n this.isVisible = this.open;\n this.willShow = false;\n this.willHide = false;\n this.open ? this.sixAfterShow.emit() : this.sixAfterHide.emit();\n }\n\n render() {\n return (\n <host class=\"six-sidebar\">\n <div\n class={{\n sidebar__container: true,\n 'sidebar--visible': this.isVisible,\n 'sidebar--open': this.open,\n 'sidebar--left': this.position === 'left',\n 'sidebar--right': this.position === 'right',\n }}\n style={{\n width: this.width,\n [`margin-${this.position}`]: this.open ? '0' : `calc(1rem - ${this.width})`,\n }}\n ref={(el) => (this.sidebar = el)}\n aria-hidden={this.open ? 'false' : 'true'}\n onTransitionEnd={this.handleTransitionEnd}\n >\n <slot />\n </div>\n </host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"six-sidebar.js","mappings":"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","names":["SixSidebar"],"sources":["src/components/six-sidebar/six-sidebar.scss?tag=six-sidebar&encapsulation=shadow","src/components/six-sidebar/six-sidebar.tsx"],"sourcesContent":["@import 'src/global/component';\n@import 'src/global/mixins/hidden';\n@import 'src/global/mixins/scrollbar';\n\n:host {\n display: block;\n height: 100%;\n}\n\n.sidebar {\n &__container {\n // scroll\n height: 100%;\n overflow: auto;\n\n &.sidebar--open {\n box-shadow: var(--six-elevation-1dp);\n }\n\n &:not(.sidebar--visible) {\n @include hidden;\n }\n }\n\n &--left {\n color: var(--six-sidebar-color);\n background-color: var(--six-sidebar-background-color);\n // collapse\n transition: var(--six-transition-medium) margin-left;\n // six background\n background-size: 300vw 70%;\n background-position: bottom;\n background-repeat: no-repeat;\n }\n\n &--right {\n // collapse\n transition: var(--six-transition-medium) margin-right;\n }\n\n // if the sidebar is embedded within six-root it cuts-off the border styling, for thus we need to guarante a margin\n &--open {\n &.sidebar--left {\n margin-right: 2px;\n }\n\n &.sidebar--right {\n margin-left: 2px;\n }\n }\n}\n","import { Component, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { EmptyPayload } from '../../utils/types';\nimport { scrollIntoView } from '../../utils/scroll';\n\nconst isSidebarItemGroup = (node?: Element | null): boolean =>\n node?.tagName?.toLowerCase() === 'six-sidebar-item-group';\n\n/**\n * @since 1.0\n * @status stable\n *\n * @slot - Used to define the nested side bar [group] items.\n */\n\n@Component({\n tag: 'six-sidebar',\n styleUrl: 'six-sidebar.scss',\n shadow: true,\n})\nexport class SixSidebar {\n private willShow = false;\n private willHide = false;\n\n private sidebar?: HTMLElement;\n\n @State() isVisible = false;\n\n /** Sidebar position */\n @Prop() position: 'left' | 'right' = 'left';\n\n /** Indicates whether the sidebar is open. You can use this in lieu of the show/hide methods. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n /** Sidebar width */\n @Prop() width = '16rem';\n\n /** Define whether sidebar is toggled meaning only one menu can be open at the same time*/\n @Prop() toggled = false;\n\n /** Emitted when the sidebar opens. Calling `event.preventDefault()` will prevent it from being opened. */\n @Event({ eventName: 'six-sidebar-show' }) sixShow!: EventEmitter<EmptyPayload>;\n\n /** Emitted after the sidebar opens and all transitions are complete. */\n @Event({ eventName: 'six-sidebar-after-show' }) sixAfterShow!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the sidebar closes. Calling `event.preventDefault()` will prevent it from being closed. */\n @Event({ eventName: 'six-sidebar-hide' }) sixHide!: EventEmitter<EmptyPayload>;\n\n /** Emitted after the sidebar closes and all transitions are complete. */\n @Event({ eventName: 'six-sidebar-after-hide' }) sixAfterHide!: EventEmitter<EmptyPayload>;\n\n /**\n * Emitted when the sidebar opens and the panel gains focus. Calling `event.preventDefault()` will prevent focus and\n * allow you to set it on a different element in the sidebar, such as an input or button.\n */\n @Event({ eventName: 'six-sidebar-initial-focus' }) sixInitialFocus!: EventEmitter<EmptyPayload>;\n\n @Watch('open')\n handleOpenChange() {\n this.open ? this.show() : this.hide();\n }\n\n private handleTransitionEnd = (event: TransitionEvent) => {\n const target = event.target as HTMLElement;\n\n // Ensure we only emit one event when the target element is no longer visible\n if (event.type === 'transitionend' && target.classList.contains('sidebar__container')) {\n this.resetTransitionVariables();\n }\n };\n\n componentWillLoad() {\n // Show on init if open\n if (this.open) {\n void this.show();\n // if the sidebar is open by default we need to manually reset the\n // transition variables since there will be no transition event\n this.resetTransitionVariables();\n }\n }\n\n componentDidRender() {\n this.setupTogglableMenuItems();\n }\n\n disconnectedCallback() {\n this.sidebar?.removeEventListener('six-details-show', this.closeSiblingDetailsOnShow);\n }\n\n private closeSiblingDetailsOnShow = (event: Event) => {\n const clickedMenuItem = event.target as HTMLElement;\n if (this.sidebar != null) {\n scrollIntoView(clickedMenuItem, this.sidebar);\n }\n\n const closeAllSiblingsBySiblingProperty = (\n getSibling: (node: Element | null | undefined) => Element | null | undefined\n ) => {\n let node: Element | null | undefined = clickedMenuItem;\n while (getSibling(node) != null) {\n node = getSibling(node);\n if (isSidebarItemGroup(node)) {\n const detailsElement = node?.shadowRoot?.querySelector('six-details');\n if (detailsElement != null) {\n detailsElement.open = false;\n }\n }\n }\n };\n\n // close all previous siblings\n closeAllSiblingsBySiblingProperty((node) => node?.previousElementSibling);\n // close all further siblings\n closeAllSiblingsBySiblingProperty((node) => node?.nextElementSibling);\n };\n\n private setupTogglableMenuItems() {\n if (!this.toggled || this.sidebar == null) return;\n this.markAllMenuItemsAsSelectableEmpty();\n this.sidebar.addEventListener('six-details-show', this.closeSiblingDetailsOnShow);\n }\n\n private markAllMenuItemsAsSelectableEmpty() {\n // when you have a toggled menu you also want to close other menu items when you click on an item without children\n // nice benefit this item will then also be highlighted\n const slot = this.sidebar?.querySelector('slot');\n const nodes = slot?.assignedElements() || [];\n\n // since we don't just want to make the top level empty menuItems selectable in toggled mode,\n // but also nested items we need to traverse the whole menu item tree\n const menuItems = [];\n while (nodes.length > 0) {\n const node = nodes.pop();\n if (node?.shadowRoot == null) {\n continue;\n }\n\n // collect six-details in the current shadowDOM\n const menuItemsForCurrentNode = node.shadowRoot.querySelectorAll('six-details');\n menuItems.push(...menuItemsForCurrentNode);\n\n // collect all six-sidebar-item-group children of the current node to afterwards check their shadowDOM too\n const newItemGroups = Array.from(node.children).filter(isSidebarItemGroup);\n nodes.push(...newItemGroups);\n }\n\n menuItems.forEach((details) => (details.selectableEmpty = true));\n }\n\n /** Toggles whether the sidebar should be shown or hidden */\n @Method()\n async toggle() {\n if (this.willShow || this.willHide) {\n return;\n }\n\n if (this.open) {\n await this.hide();\n } else {\n await this.show();\n }\n }\n\n /** Shows the sidebar */\n @Method()\n async show() {\n if (this.willShow) {\n return;\n }\n\n const sixShow = this.sixShow.emit();\n if (sixShow.defaultPrevented) {\n this.open = false;\n return;\n }\n\n this.willShow = true;\n this.isVisible = true;\n this.open = true;\n }\n\n /** Hides the sidebar */\n @Method()\n async hide() {\n if (this.willHide) {\n return;\n }\n\n const sixHide = this.sixHide.emit();\n if (sixHide.defaultPrevented) {\n this.open = true;\n return;\n }\n\n this.willHide = true;\n this.open = false;\n }\n\n /** Allows to select a menu item programmatically by index */\n @Method()\n async selectItemByIndex(index: number) {\n if (this.sidebar == null) return;\n\n const slot = this.sidebar.querySelector('slot');\n const menuItemsOnRootLevel: HTMLSixDetailsElement[] = (slot?.assignedElements() || []).flatMap((el) => {\n const detailsElement = el.shadowRoot?.querySelector('six-details');\n if (detailsElement == null) {\n return [];\n }\n return [detailsElement];\n });\n if (index < 0 || index > menuItemsOnRootLevel.length - 1) {\n console.error(\n `Tried to access sidebar menu item by index, but provided index out of range. Provided index: ${index}`\n );\n return;\n }\n await menuItemsOnRootLevel[index].show();\n }\n\n /** Allows to select a menu item programmatically by name */\n @Method()\n async selectItemByName(value: string) {\n const slot = this.sidebar?.querySelector('slot');\n const sidebarItemGroups = slot?.assignedElements() as HTMLSixSidebarItemGroupElement[];\n if (sidebarItemGroups == null) {\n return;\n }\n\n const indexOfSelectedElement = sidebarItemGroups.findIndex((el) => el?.name === value);\n const selectedItem = sidebarItemGroups.at(indexOfSelectedElement)?.shadowRoot?.querySelector('six-details');\n await selectedItem?.show();\n }\n\n private resetTransitionVariables() {\n this.isVisible = this.open;\n this.willShow = false;\n this.willHide = false;\n this.open ? this.sixAfterShow.emit() : this.sixAfterHide.emit();\n }\n\n render() {\n return (\n <host class=\"six-sidebar\">\n <div\n class={{\n sidebar__container: true,\n 'sidebar--visible': this.isVisible,\n 'sidebar--open': this.open,\n 'sidebar--left': this.position === 'left',\n 'sidebar--right': this.position === 'right',\n }}\n style={{\n width: this.width,\n [`margin-${this.position}`]: this.open ? '0' : `calc(1rem - ${this.width})`,\n }}\n ref={(el) => (this.sidebar = el)}\n aria-hidden={this.open ? 'false' : 'true'}\n onTransitionEnd={this.handleTransitionEnd}\n >\n <slot />\n </div>\n </host>\n );\n }\n}\n"],"version":3}
@@ -1,8 +1,10 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
2
  import { E as EventListeners } from './event-listeners.js';
3
3
  import { F as FormControl } from './form-control.js';
4
+ import { h as hasSlot } from './slot.js';
5
+ import { d as defineCustomElement$2 } from './six-error2.js';
4
6
 
5
- const sixSwitchCss = ":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.form-control .form-control__label{display:none}.form-control .form-control__help-text{display:none}.form-control .form-control__error-text{display:none}.form-control--has-label .form-control__label{display:inline-block;color:var(--six-input-label-color);font-weight:var(--six-font-weight-bold);margin-bottom:var(--six-spacing-x-small)}.form-control--has-label .form-control__label__required::after{color:var(--six-color-danger-800);content:\"*\"}.form-control--has-label.form-control--small .form-control__label{font-size:var(--six-input-label-font-size-small)}.form-control--has-label.form-control--medium .form-control__label{font-size:var(--six-input-label-font-size-medium)}.form-control--has-label.form-control--large .form-control_label{font-size:var(--six-input-label-font-size-large)}.form-control--has-help-text .form-control__help-text{display:block;color:var(--six-input-help-text-color);margin-top:var(--six-spacing-x-small)}.form-control--has-help-text .form-control__help-text ::slotted(*){margin-top:var(--six-spacing-xxx-small)}.form-control--has-help-text.form-control--small .form-control__help-text{font-size:var(--six-input-help-text-font-size-small)}.form-control--has-help-text.form-control--medium .form-control__help-text{font-size:var(--six-input-help-text-font-size-medium)}.form-control--has-help-text.form-control--large .form-control__help-text{font-size:var(--six-input-help-text-font-size-large)}.form-control--has-error-text .form-control__error-text{display:block;color:var(--six-color-danger-800);margin-top:var(--six-spacing-xxx-small)}.form-control--has-error-text .form-control__error-text ::slotted(*){margin-top:var(--six-spacing-xxx-small)}.form-control--has-error-text.form-control--small .form-control__error-text{font-size:var(--six-input-help-text-font-size-small)}.form-control--has-error-text.form-control--medium .form-control__error-text{font-size:var(--six-input-help-text-font-size-medium)}.form-control--has-error-text.form-control--large .form-control__error-text{font-size:var(--six-input-help-text-font-size-large)}.form-control--disabled .form-control__help-text{color:var(--six-input-help-text-color-disabled)}.form-control--disabled .form-control__label{color:var(--six-input-label-color-disabled)}.form-control--invalid:not(.form-control--disabled) .form-control__label{color:var(--six-input-label-color)}:host{--height:var(--six-selection-control-toggle-size);--thumb-size:calc(var(--six-selection-control-toggle-size) - 4px);--width:calc(var(--height) * 2);display:inline-block}.switch{display:inline-flex;align-items:center;font-family:var(--six-font-family);font-size:var(--six-input-font-size-medium);font-weight:var(--six-input-font-weight);color:var(--six-input-color);vertical-align:middle;cursor:pointer}.switch__control{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--width);height:var(--height);background-color:var(--six-selection-control-color-disabled);border-radius:var(--height);transition:var(--six-transition-fast) border-color, var(--six-transition-fast) background-color}.switch__control .switch__thumb{width:var(--thumb-size);height:var(--thumb-size);background-color:var(--six-input-background-color);border-radius:50%;transform:translateX(calc(var(--width) / -2 + var(--thumb-size) / 2 - (var(--thumb-size) - var(--height)) / 2));transition:var(--six-transition-fast) transform ease, var(--six-transition-fast) background-color, var(--six-transition-fast) border-color, var(--six-transition-fast) box-shadow}.switch__control input[type=checkbox]{position:absolute;opacity:0;padding:0;margin:0;pointer-events:none}.switch:not(.switch--checked):not(.switch--disabled) .switch__control:hover{background-color:var(--six-input-border-color-hover)}.switch--checked .switch__control{background-color:var(--six-selection-control-color)}.switch--checked .switch__control .switch__thumb{background-color:var(--six-color-white);transform:translateX(calc(var(--width) / 2 - var(--thumb-size) / 2 + (var(--thumb-size) - var(--height)) / 2))}.switch.switch--checked:not(.switch--disabled) .switch__control:hover{background-color:var(--six-input-border-color-focus)}.switch--disabled{cursor:not-allowed;color:var(--six-selection-control-color-disabled)}.switch--disabled .switch__control{background-color:var(--six-selection-control-color-disabled)}.switch--disabled.switch--checked .switch__control{background-color:var(--six-selection-control-color-disabled)}.switch__label{line-height:var(--height);margin-left:0.5em;user-select:none}";
7
+ const sixSwitchCss = ":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.form-control .form-control__label{display:none}.form-control .form-control__help-text{display:none}.form-control .form-control__error-text{display:none;text-align:left}.form-control--has-label .form-control__label{display:inline-block;color:var(--six-input-label-color);font-weight:var(--six-font-weight-bold);margin-bottom:var(--six-spacing-x-small)}.form-control--has-label .form-control__label__required::after{color:var(--six-color-danger-800);content:\"*\";transform:scale(1.1);margin-left:var(--six-spacing-xxx-small);position:absolute}.form-control--has-label.form-control--small .form-control__label{font-size:var(--six-input-label-font-size-small)}.form-control--has-label.form-control--medium .form-control__label{font-size:var(--six-input-label-font-size-medium)}.form-control--has-label.form-control--large .form-control_label{font-size:var(--six-input-label-font-size-large)}.form-control--has-help-text .form-control__help-text{display:block;color:var(--six-input-help-text-color);margin-top:var(--six-spacing-x-small)}.form-control--has-help-text .form-control__help-text ::slotted(*){margin-top:var(--six-spacing-xxx-small)}.form-control--has-help-text.form-control--small .form-control__help-text{font-size:var(--six-input-help-text-font-size-small)}.form-control--has-help-text.form-control--medium .form-control__help-text{font-size:var(--six-input-help-text-font-size-medium)}.form-control--has-help-text.form-control--large .form-control__help-text{font-size:var(--six-input-help-text-font-size-large)}.form-control--has-error-text .form-control__error-text{display:block;margin-top:var(--six-spacing-xxx-small)}.form-control--has-error-text .form-control__error-text ::slotted(*){margin-top:var(--six-spacing-xxx-small)}.form-control--has-error-text.form-control--small .form-control__error-text{font-size:var(--six-input-help-text-font-size-small)}.form-control--has-error-text.form-control--medium .form-control__error-text{font-size:var(--six-input-help-text-font-size-medium)}.form-control--has-error-text.form-control--large .form-control__error-text{font-size:var(--six-input-help-text-font-size-large)}.form-control--disabled .form-control__help-text{color:var(--six-input-help-text-color-disabled)}.form-control--disabled .form-control__label{color:var(--six-input-label-color-disabled)}.form-control--invalid:not(.form-control--disabled) .form-control__label{color:var(--six-input-label-color)}:host{--height:var(--six-selection-control-toggle-size);--thumb-size:calc(var(--six-selection-control-toggle-size) - 4px);--width:calc(var(--height) * 2);display:inline-block}.switch{display:inline-flex;align-items:center;font-family:var(--six-font-family);font-size:var(--six-input-font-size-medium);font-weight:var(--six-input-font-weight);color:var(--six-input-color);vertical-align:middle;cursor:pointer}.switch__control{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--width);height:var(--height);background-color:var(--six-selection-control-color-disabled);border-radius:var(--height);transition:var(--six-transition-fast) border-color, var(--six-transition-fast) background-color}.switch__control .switch__thumb{width:var(--thumb-size);height:var(--thumb-size);background-color:var(--six-input-background-color);border-radius:50%;transform:translateX(calc(var(--width) / -2 + var(--thumb-size) / 2 - (var(--thumb-size) - var(--height)) / 2));transition:var(--six-transition-fast) transform ease, var(--six-transition-fast) background-color, var(--six-transition-fast) border-color, var(--six-transition-fast) box-shadow}.switch__control input[type=checkbox]{position:absolute;opacity:0;padding:0;margin:0;pointer-events:none}.switch:not(.switch--checked):not(.switch--disabled) .switch__control:hover{background-color:var(--six-input-border-color-hover)}.switch--checked .switch__control{background-color:var(--six-selection-control-color)}.switch--checked .switch__control .switch__thumb{background-color:var(--six-color-white);transform:translateX(calc(var(--width) / 2 - var(--thumb-size) / 2 + (var(--thumb-size) - var(--height)) / 2))}.switch.switch--checked:not(.switch--disabled) .switch__control:hover{background-color:var(--six-input-border-color-focus)}.switch--disabled{cursor:not-allowed;color:var(--six-selection-control-color-disabled)}.switch--disabled .switch__control{background-color:var(--six-selection-control-color-disabled)}.switch--disabled.switch--checked .switch__control{background-color:var(--six-selection-control-color-disabled)}.switch__label{line-height:var(--height);margin-left:0.5em;user-select:none}";
6
8
 
7
9
  let id = 0;
8
10
  const SixSwitch$1 = /*@__PURE__*/ proxyCustomElement(class SixSwitch extends HTMLElement {
@@ -17,6 +19,9 @@ const SixSwitch$1 = /*@__PURE__*/ proxyCustomElement(class SixSwitch extends HTM
17
19
  this.labelId = `switch-label-${id}`;
18
20
  this.errorTextId = `input-error-text-${id}`;
19
21
  this.eventListeners = new EventListeners();
22
+ this.handleSlotChange = () => {
23
+ this.hasErrorTextSlot = hasSlot(this.host, 'error-text');
24
+ };
20
25
  this.handleClick = () => {
21
26
  if (this.inputElement != null) {
22
27
  this.checked = this.inputElement.checked;
@@ -50,6 +55,7 @@ const SixSwitch$1 = /*@__PURE__*/ proxyCustomElement(class SixSwitch extends HTM
50
55
  (_a = this.inputElement) === null || _a === void 0 ? void 0 : _a.focus();
51
56
  };
52
57
  this.hasFocus = false;
58
+ this.hasErrorTextSlot = false;
53
59
  this.name = '';
54
60
  this.value = 'on';
55
61
  this.disabled = false;
@@ -57,8 +63,12 @@ const SixSwitch$1 = /*@__PURE__*/ proxyCustomElement(class SixSwitch extends HTM
57
63
  this.checked = false;
58
64
  this.label = '';
59
65
  this.errorText = '';
66
+ this.errorTextCount = undefined;
60
67
  this.invalid = false;
61
68
  }
69
+ componentWillLoad() {
70
+ this.handleSlotChange();
71
+ }
62
72
  handleCheckedChange() {
63
73
  if (this.inputElement != null) {
64
74
  this.inputElement.checked = this.checked;
@@ -66,13 +76,20 @@ const SixSwitch$1 = /*@__PURE__*/ proxyCustomElement(class SixSwitch extends HTM
66
76
  }
67
77
  }
68
78
  connectedCallback() {
79
+ var _a;
80
+ (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.addEventListener('slotchange', this.handleSlotChange);
69
81
  this.eventListeners.forward('six-switch-change', 'change', this.host);
70
82
  this.eventListeners.forward('six-switch-blur', 'blur', this.host);
71
83
  this.eventListeners.forward('six-switch-focus', 'focus', this.host);
72
84
  }
73
85
  disconnectedCallback() {
86
+ var _a;
87
+ (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.removeEventListener('slotchange', this.handleSlotChange);
74
88
  this.eventListeners.removeAll();
75
89
  }
90
+ handleLabelChange() {
91
+ this.handleSlotChange();
92
+ }
76
93
  /** Sets focus on the switch. */
77
94
  async setFocus(options) {
78
95
  var _a;
@@ -84,7 +101,7 @@ const SixSwitch$1 = /*@__PURE__*/ proxyCustomElement(class SixSwitch extends HTM
84
101
  (_a = this.inputElement) === null || _a === void 0 ? void 0 : _a.blur();
85
102
  }
86
103
  render() {
87
- return (h(FormControl, { inputId: this.switchId, label: this.label, labelId: this.labelId, hasLabelSlot: false, errorTextId: this.errorTextId, errorText: this.errorText, size: "medium", disabled: this.disabled, required: this.required, displayError: this.invalid }, h("label", { part: "base", htmlFor: this.switchId, class: {
104
+ return (h(FormControl, { inputId: this.switchId, label: this.label, labelId: this.labelId, hasLabelSlot: false, errorTextId: this.errorTextId, errorText: this.errorText, errorTextCount: this.errorTextCount, hasErrorTextSlot: this.hasErrorTextSlot, size: "medium", disabled: this.disabled, required: this.required, displayError: this.invalid }, h("label", { part: "base", htmlFor: this.switchId, class: {
88
105
  switch: true,
89
106
  'switch--checked': this.checked,
90
107
  'switch--disabled': this.disabled,
@@ -93,7 +110,9 @@ const SixSwitch$1 = /*@__PURE__*/ proxyCustomElement(class SixSwitch extends HTM
93
110
  }
94
111
  get host() { return this; }
95
112
  static get watchers() { return {
96
- "checked": ["handleCheckedChange"]
113
+ "checked": ["handleCheckedChange"],
114
+ "errorText": ["handleLabelChange"],
115
+ "label": ["handleLabelChange"]
97
116
  }; }
98
117
  static get style() { return sixSwitchCss; }
99
118
  }, [1, "six-switch", {
@@ -104,22 +123,33 @@ const SixSwitch$1 = /*@__PURE__*/ proxyCustomElement(class SixSwitch extends HTM
104
123
  "checked": [1540],
105
124
  "label": [1],
106
125
  "errorText": [1, "error-text"],
126
+ "errorTextCount": [2, "error-text-count"],
107
127
  "invalid": [516],
108
128
  "hasFocus": [32],
129
+ "hasErrorTextSlot": [32],
109
130
  "setFocus": [64],
110
131
  "removeFocus": [64]
132
+ }, undefined, {
133
+ "checked": ["handleCheckedChange"],
134
+ "errorText": ["handleLabelChange"],
135
+ "label": ["handleLabelChange"]
111
136
  }]);
112
137
  function defineCustomElement$1() {
113
138
  if (typeof customElements === "undefined") {
114
139
  return;
115
140
  }
116
- const components = ["six-switch"];
141
+ const components = ["six-switch", "six-error"];
117
142
  components.forEach(tagName => { switch (tagName) {
118
143
  case "six-switch":
119
144
  if (!customElements.get(tagName)) {
120
145
  customElements.define(tagName, SixSwitch$1);
121
146
  }
122
147
  break;
148
+ case "six-error":
149
+ if (!customElements.get(tagName)) {
150
+ defineCustomElement$2();
151
+ }
152
+ break;
123
153
  } });
124
154
  }
125
155
 
@@ -1 +1 @@
1
- {"file":"six-switch.js","mappings":"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","names":["SixSwitch"],"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: var(--six-transition-fast) border-color, 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: var(--six-transition-fast) transform ease, var(--six-transition-fast) background-color,\n var(--six-transition-fast) border-color, 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';\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 *\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\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 = '';\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 @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.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.eventListeners.removeAll();\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 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"],"version":3}
1
+ {"file":"six-switch.js","mappings":"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","names":["SixSwitch"],"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: var(--six-transition-fast) border-color, 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: var(--six-transition-fast) transform ease, var(--six-transition-fast) background-color,\n var(--six-transition-fast) border-color, 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"],"version":3}
@@ -1,10 +1,43 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
- import { s as scrollIntoView, g as getOffset } from './scroll.js';
3
- import { f as focusVisible } from './focus-visible.js';
2
+ import { s as scrollIntoView } from './scroll.js';
4
3
  import { d as defineCustomElement$3 } from './six-icon2.js';
5
4
  import { d as defineCustomElement$2 } from './six-icon-button2.js';
6
5
 
7
- const sixTabGroupCss = ":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host{--tabs-border-color:var(--six-tab-border-color);display:block}.tab-group{display:flex;border:solid 1px transparent;border-radius:0}.tab-group .tab-group__tabs{display:flex;position:relative}.tab-group .tab-group__active-tab-indicator{position:absolute;transition:var(--six-transition-fast) transform ease, var(--six-transition-fast) width ease}.tab-group:not(.focus-visible) ::slotted(six-tab){--focus-ring:none}.tab-group--has-scroll-controls .tab-group__nav-container{position:relative;padding:0 var(--six-spacing-x-large)}.tab-group__scroll-button{display:flex;align-items:center;justify-content:center;position:absolute;top:0;bottom:0;width:var(--six-spacing-x-large)}.tab-group__scroll-button--left{left:0}.tab-group__scroll-button--right{right:0}.tab-group--top{flex-direction:column}.tab-group--top .tab-group__nav-container{order:1}.tab-group--top .tab-group__nav{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.tab-group--top .tab-group__nav::-webkit-scrollbar{width:0;height:0}.tab-group--top .tab-group__tabs{flex:1 1 auto;position:relative;flex-direction:row;border-bottom:solid var(--six-tab-border-width) var(--tabs-border-color)}.tab-group--top .tab-group__active-tab-indicator{bottom:-2px;border-bottom:solid var(--six-tab-border-width-active) var(--six-tab-border-color-active)}.tab-group--top .tab-group__body{order:2}.tab-group--bottom{flex-direction:column}.tab-group--bottom .tab-group__nav-container{order:2}.tab-group--bottom .tab-group__nav{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.tab-group--bottom .tab-group__nav::-webkit-scrollbar{width:0;height:0}.tab-group--bottom .tab-group__tabs{flex:1 1 auto;position:relative;flex-direction:row;border-top:solid var(--six-tab-border-width) var(--tabs-border-color)}.tab-group--bottom .tab-group__active-tab-indicator{top:-2px;border-top:solid var(--six-tab-border-width-active) var(--six-tab-border-color-active)}.tab-group--bottom .tab-group__body{order:1}.tab-group--left{flex-direction:row}.tab-group--left .tab-group__nav-container{order:1}.tab-group--left .tab-group__tabs{flex:0 0 auto;flex-direction:column;border-right:solid var(--six-tab-border-width) var(--tabs-border-color)}.tab-group--left .tab-group__active-tab-indicator{right:-2px;border-right:solid var(--six-tab-border-width-active) var(--six-tab-border-color-active)}.tab-group--left .tab-group__body{flex:1 1 auto;order:2}.tab-group--right{flex-direction:row}.tab-group--right .tab-group__nav-container{order:2}.tab-group--right .tab-group__tabs{flex:0 0 auto;flex-direction:column;border-left:solid var(--six-tab-border-width) var(--tabs-border-color)}.tab-group--right .tab-group__active-tab-indicator{left:-2px;border-left:solid var(--six-tab-border-width-active) var(--six-tab-border-color-active)}.tab-group--right .tab-group__body{flex:1 1 auto;order:1}";
6
+ /**
7
+ * Animates a given `element` from the position and dimension of `fromElement` to
8
+ * its current position and dimension. Can be useful to implement the FLIP animation technique.
9
+ *
10
+ * @see {@link https://css-tricks.com/animating-layouts-with-the-flip-technique/} for details on the FLIP technique.
11
+ *
12
+ * @param {Element} element - The element to animate.
13
+ * @param {Element} fromElement - The element representing the initial position and dimensions.
14
+ * @param {KeyframeAnimationOptions} [options={ duration: 150, easing: 'ease', fill: 'both' }] - Optional animation parameters.
15
+ *
16
+ */
17
+ function flipAnimate(element, fromElement, options = {
18
+ duration: 150,
19
+ easing: 'ease',
20
+ fill: 'both',
21
+ }) {
22
+ const dimensionsTo = fromElement.getBoundingClientRect();
23
+ const dimensionsFrom = element.getBoundingClientRect();
24
+ const deltaX = dimensionsTo.left - dimensionsFrom.left;
25
+ const deltaY = dimensionsTo.top - dimensionsFrom.top;
26
+ const deltaW = dimensionsTo.width / dimensionsFrom.width;
27
+ const deltaH = dimensionsTo.height / dimensionsFrom.height;
28
+ element.animate([
29
+ {
30
+ transformOrigin: 'top left',
31
+ transform: `translate(${deltaX}px, ${deltaY}px) scale(${deltaW}, ${deltaH})`,
32
+ },
33
+ {
34
+ transformOrigin: 'top left',
35
+ transform: 'none',
36
+ },
37
+ ], options);
38
+ }
39
+
40
+ const sixTabGroupCss = ":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host{display:block}.tab-group{display:flex;border:solid 1px transparent;border-radius:0}.tab-group .tab-group__tabs{display:flex;position:relative}.tab-group--has-scroll-controls .tab-group__nav-container{position:relative;padding:0 var(--six-spacing-x-large)}.tab-group__scroll-button{display:flex;align-items:center;justify-content:center;position:absolute;top:0;bottom:0;width:var(--six-spacing-x-large)}.tab-group__scroll-button--left{left:0}.tab-group__scroll-button--right{right:0}.tab-group--top{flex-direction:column}.tab-group--top .tab-group__nav-container{order:1}.tab-group--top .tab-group__nav{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.tab-group--top .tab-group__nav::-webkit-scrollbar{width:0;height:0}.tab-group--top .tab-group__tabs{flex:1 1 auto;position:relative;flex-direction:row}.tab-group--top .tab-group__body{order:2}.tab-group--bottom{flex-direction:column}.tab-group--bottom .tab-group__nav-container{order:2}.tab-group--bottom .tab-group__nav{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.tab-group--bottom .tab-group__nav::-webkit-scrollbar{width:0;height:0}.tab-group--bottom .tab-group__tabs{flex:1 1 auto;position:relative;flex-direction:row}.tab-group--bottom .tab-group__body{order:1}.tab-group--left{flex-direction:row}.tab-group--left .tab-group__nav-container{order:1}.tab-group--left .tab-group__tabs{flex:0 0 auto;flex-direction:column}.tab-group--left .tab-group__body{flex:1 1 auto;order:2}.tab-group--right{flex-direction:row}.tab-group--right .tab-group__nav-container{order:2}.tab-group--right .tab-group__tabs{flex:0 0 auto;flex-direction:column}.tab-group--right .tab-group__body{flex:1 1 auto;order:1}";
8
41
 
9
42
  const SixTabGroup$1 = /*@__PURE__*/ proxyCustomElement(class SixTabGroup extends HTMLElement {
10
43
  constructor() {
@@ -35,13 +68,6 @@ const SixTabGroup$1 = /*@__PURE__*/ proxyCustomElement(class SixTabGroup extends
35
68
  if (tabGroup !== this.host) {
36
69
  return false;
37
70
  }
38
- // Activate a tab
39
- if (['Enter', ' '].includes(event.key)) {
40
- if (tab != null) {
41
- this.setActiveTab(tab);
42
- event.preventDefault();
43
- }
44
- }
45
71
  // Move focus left or right
46
72
  if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {
47
73
  const activeEl = document.activeElement;
@@ -61,6 +87,7 @@ const SixTabGroup$1 = /*@__PURE__*/ proxyCustomElement(class SixTabGroup extends
61
87
  index = Math.min(tabs.length - 1, index + 1);
62
88
  }
63
89
  tabs[index].setFocus({ preventScroll: true });
90
+ this.setActiveTab(tabs[index]);
64
91
  if (['top', 'bottom'].includes(this.placement)) {
65
92
  scrollIntoView(tabs[index], this.nav, 'horizontal');
66
93
  }
@@ -84,44 +111,10 @@ const SixTabGroup$1 = /*@__PURE__*/ proxyCustomElement(class SixTabGroup extends
84
111
  behavior: 'smooth',
85
112
  });
86
113
  };
87
- this.syncActiveTabIndicator = () => {
88
- if (this.activeTabIndicator == null || this.nav == null)
89
- return;
90
- const tab = this.getActiveTab();
91
- if (tab != null) {
92
- this.activeTabIndicator.style.display = 'block';
93
- }
94
- else {
95
- this.activeTabIndicator.style.display = 'none';
96
- return;
97
- }
98
- const width = tab.clientWidth;
99
- const height = tab.clientHeight;
100
- const offset = getOffset(tab, this.nav);
101
- const offsetTop = offset.top + this.nav.scrollTop;
102
- const offsetLeft = offset.left + this.nav.scrollLeft;
103
- switch (this.placement) {
104
- case 'top':
105
- case 'bottom':
106
- this.activeTabIndicator.style.width = `${width}px`;
107
- this.activeTabIndicator.style.height = '';
108
- this.activeTabIndicator.style.transform = `translateX(${offsetLeft}px)`;
109
- break;
110
- case 'left':
111
- case 'right':
112
- this.activeTabIndicator.style.width = '';
113
- this.activeTabIndicator.style.height = `${height}px`;
114
- this.activeTabIndicator.style.transform = `translateY(${offsetTop}px)`;
115
- break;
116
- }
117
- };
118
114
  this.hasScrollControls = false;
119
115
  this.placement = 'top';
120
116
  this.noScrollControls = false;
121
117
  }
122
- handlePlacementChange() {
123
- this.syncActiveTabIndicator();
124
- }
125
118
  handleNoScrollControlsChange() {
126
119
  this.updateScrollControls();
127
120
  }
@@ -137,7 +130,6 @@ const SixTabGroup$1 = /*@__PURE__*/ proxyCustomElement(class SixTabGroup extends
137
130
  }
138
131
  });
139
132
  observer.observe(this.host);
140
- focusVisible.observe(this.tabGroup);
141
133
  this.resizeObserver = new ResizeObserver(() => this.updateScrollControls());
142
134
  this.resizeObserver.observe(this.nav);
143
135
  requestAnimationFrame(() => this.updateScrollControls());
@@ -157,7 +149,6 @@ const SixTabGroup$1 = /*@__PURE__*/ proxyCustomElement(class SixTabGroup extends
157
149
  return;
158
150
  }
159
151
  this.mutationObserver.disconnect();
160
- focusVisible.unobserve(this.tabGroup);
161
152
  this.resizeObserver.unobserve(this.nav);
162
153
  }
163
154
  /** Shows the specified tab panel. */
@@ -197,15 +188,20 @@ const SixTabGroup$1 = /*@__PURE__*/ proxyCustomElement(class SixTabGroup extends
197
188
  : ['top', 'bottom'].includes(this.placement) && this.nav.scrollWidth > this.nav.clientWidth;
198
189
  }
199
190
  setActiveTab(tab, emitEvents = true) {
191
+ var _a, _b, _c;
200
192
  if (this.nav == null)
201
193
  return;
202
- if (tab != null && tab !== this.activeTab && !tab.disabled) {
194
+ const newIndicator = (_a = tab === null || tab === void 0 ? void 0 : tab.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.tab__indicator');
195
+ const oldIndicator = (_c = (_b = this.getActiveTab()) === null || _b === void 0 ? void 0 : _b.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.tab__indicator');
196
+ if (oldIndicator != null && newIndicator != null) {
197
+ flipAnimate(newIndicator, oldIndicator);
198
+ }
199
+ if (tab !== this.activeTab && !tab.disabled) {
203
200
  const previousTab = this.activeTab;
204
201
  this.activeTab = tab;
205
202
  // Sync tabs and panels
206
203
  this.getAllTabs().map((el) => (el.active = el === this.activeTab));
207
204
  this.getAllPanels().map((el) => { var _a; return (el.active = el.name === ((_a = this.activeTab) === null || _a === void 0 ? void 0 : _a.panel)); });
208
- this.syncActiveTabIndicator();
209
205
  if (['top', 'bottom'].includes(this.placement)) {
210
206
  scrollIntoView(this.activeTab, this.nav, 'horizontal');
211
207
  }
@@ -240,11 +236,10 @@ const SixTabGroup$1 = /*@__PURE__*/ proxyCustomElement(class SixTabGroup extends
240
236
  'tab-group--left': this.placement === 'left',
241
237
  'tab-group--right': this.placement === 'right',
242
238
  'tab-group--has-scroll-controls': this.hasScrollControls,
243
- }, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, h("div", { class: "tab-group__nav-container" }, this.hasScrollControls && (h("six-icon-button", { class: "tab-group__scroll-button tab-group__scroll-button--left", exportparts: "base:scroll-button", name: "chevron_left", onClick: this.handleScrollLeft })), h("div", { ref: (el) => (this.nav = el), key: "nav", part: "nav", class: "tab-group__nav" }, h("div", { ref: (el) => (this.tabs = el), part: "tabs", class: "tab-group__tabs", role: "tablist" }, h("div", { ref: (el) => (this.activeTabIndicator = el), part: "active-tab-indicator", class: "tab-group__active-tab-indicator" }), h("slot", { name: "nav", onSlotchange: this.syncActiveTabIndicator }))), this.hasScrollControls && (h("six-icon-button", { class: "tab-group__scroll-button tab-group__scroll-button--right", exportparts: "base:scroll-button", name: "chevron_right", onClick: this.handleScrollRight }))), h("div", { ref: (el) => (this.body = el), part: "body", class: "tab-group__body" }, h("slot", { onSlotchange: this.syncActiveTabIndicator }))));
239
+ }, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, h("div", { class: "tab-group__nav-container" }, this.hasScrollControls && (h("six-icon-button", { class: "tab-group__scroll-button tab-group__scroll-button--left", exportparts: "base:scroll-button", name: "chevron_left", onClick: this.handleScrollLeft })), h("div", { ref: (el) => (this.nav = el), key: "nav", part: "nav", class: "tab-group__nav" }, h("div", { ref: (el) => (this.tabs = el), part: "tabs", class: "tab-group__tabs", role: "tablist" }, h("slot", { name: "nav" }))), this.hasScrollControls && (h("six-icon-button", { class: "tab-group__scroll-button tab-group__scroll-button--right", exportparts: "base:scroll-button", name: "chevron_right", onClick: this.handleScrollRight }))), h("div", { ref: (el) => (this.body = el), part: "body", class: "tab-group__body" }, h("slot", null))));
244
240
  }
245
241
  get host() { return this; }
246
242
  static get watchers() { return {
247
- "placement": ["handlePlacementChange"],
248
243
  "noScrollControls": ["handleNoScrollControlsChange"]
249
244
  }; }
250
245
  static get style() { return sixTabGroupCss; }
@@ -253,6 +248,8 @@ const SixTabGroup$1 = /*@__PURE__*/ proxyCustomElement(class SixTabGroup extends
253
248
  "noScrollControls": [4, "no-scroll-controls"],
254
249
  "hasScrollControls": [32],
255
250
  "show": [64]
251
+ }, undefined, {
252
+ "noScrollControls": ["handleNoScrollControlsChange"]
256
253
  }]);
257
254
  function defineCustomElement$1() {
258
255
  if (typeof customElements === "undefined") {