@six-group/ui-library 4.2.2 → 4.2.4

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 (378) hide show
  1. package/dist/cjs/{form-control-73ff961d.js → form-control-de259450.js} +2 -2
  2. package/dist/cjs/{form-control-73ff961d.js.map → form-control-de259450.js.map} +1 -1
  3. package/dist/cjs/{index-b288f7d9.js → index-1f707a55.js} +455 -9
  4. package/dist/cjs/index-1f707a55.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/six-alert.cjs.entry.js +1 -1
  7. package/dist/cjs/six-avatar.cjs.entry.js +2 -2
  8. package/dist/cjs/six-badge.cjs.entry.js +3 -3
  9. package/dist/cjs/six-button.cjs.entry.js +5 -4
  10. package/dist/cjs/six-button.cjs.entry.js.map +1 -1
  11. package/dist/cjs/six-card.cjs.entry.js +2 -2
  12. package/dist/cjs/six-checkbox_2.cjs.entry.js +6 -6
  13. package/dist/cjs/six-datepicker.cjs.entry.js +13 -11
  14. package/dist/cjs/six-datepicker.cjs.entry.js.map +1 -1
  15. package/dist/cjs/six-details.cjs.entry.js +4 -4
  16. package/dist/cjs/six-dialog.cjs.entry.js +3 -3
  17. package/dist/cjs/six-drawer.cjs.entry.js +3 -3
  18. package/dist/cjs/six-dropdown_2.cjs.entry.js +1 -1
  19. package/dist/cjs/six-error-page.cjs.entry.js +2 -2
  20. package/dist/cjs/six-error.cjs.entry.js +3 -3
  21. package/dist/cjs/six-error.cjs.entry.js.map +1 -1
  22. package/dist/cjs/six-file-list-item.cjs.entry.js +1 -1
  23. package/dist/cjs/six-file-list.cjs.entry.js +2 -2
  24. package/dist/cjs/six-file-upload.cjs.entry.js +29 -6
  25. package/dist/cjs/six-file-upload.cjs.entry.js.map +1 -1
  26. package/dist/cjs/six-footer.cjs.entry.js +2 -2
  27. package/dist/cjs/six-group-label.cjs.entry.js +3 -3
  28. package/dist/cjs/six-header.cjs.entry.js +22 -15
  29. package/dist/cjs/six-header.cjs.entry.js.map +1 -1
  30. package/dist/cjs/six-icon-button.cjs.entry.js +4 -4
  31. package/dist/cjs/six-icon.cjs.entry.js +3 -3
  32. package/dist/cjs/six-input.cjs.entry.js +5 -5
  33. package/dist/cjs/six-item-picker.cjs.entry.js +1 -1
  34. package/dist/cjs/six-language-switcher.cjs.entry.js +2 -2
  35. package/dist/cjs/six-layout-grid.cjs.entry.js +2 -2
  36. package/dist/cjs/six-main-container.cjs.entry.js +2 -2
  37. package/dist/cjs/six-menu-divider.cjs.entry.js +2 -2
  38. package/dist/cjs/six-menu-label.cjs.entry.js +2 -2
  39. package/dist/cjs/six-picto.cjs.entry.js +2 -2
  40. package/dist/cjs/six-progress-bar.cjs.entry.js +3 -3
  41. package/dist/cjs/six-progress-ring.cjs.entry.js +2 -2
  42. package/dist/cjs/six-radio.cjs.entry.js +3 -3
  43. package/dist/cjs/six-range.cjs.entry.js +4 -4
  44. package/dist/cjs/six-root.cjs.entry.js +2 -2
  45. package/dist/cjs/six-search-field.cjs.entry.js +2 -2
  46. package/dist/cjs/six-select.cjs.entry.js +68 -43
  47. package/dist/cjs/six-select.cjs.entry.js.map +1 -1
  48. package/dist/cjs/six-sidebar-item-group.cjs.entry.js +1 -1
  49. package/dist/cjs/six-sidebar-item.cjs.entry.js +3 -3
  50. package/dist/cjs/six-sidebar.cjs.entry.js +3 -3
  51. package/dist/cjs/six-spinner.cjs.entry.js +1 -1
  52. package/dist/cjs/six-stage-indicator.cjs.entry.js +1 -1
  53. package/dist/cjs/six-switch.cjs.entry.js +4 -4
  54. package/dist/cjs/six-tab-group.cjs.entry.js +3 -3
  55. package/dist/cjs/six-tab-panel.cjs.entry.js +2 -2
  56. package/dist/cjs/six-tab.cjs.entry.js +3 -3
  57. package/dist/cjs/six-tab.cjs.entry.js.map +1 -1
  58. package/dist/cjs/six-tag.cjs.entry.js +3 -3
  59. package/dist/cjs/six-textarea.cjs.entry.js +4 -4
  60. package/dist/cjs/six-tile.cjs.entry.js +4 -4
  61. package/dist/cjs/six-timepicker.cjs.entry.js +1 -1
  62. package/dist/cjs/six-tooltip.cjs.entry.js +3 -3
  63. package/dist/cjs/ui-library.cjs.js +2 -2
  64. package/dist/collection/assets/TRADEMARKS.md +3 -3
  65. package/dist/collection/components/six-avatar/six-avatar.js +1 -1
  66. package/dist/collection/components/six-badge/six-badge.js +2 -2
  67. package/dist/collection/components/six-button/six-button.css +17 -0
  68. package/dist/collection/components/six-button/six-button.js +5 -4
  69. package/dist/collection/components/six-button/six-button.js.map +1 -1
  70. package/dist/collection/components/six-card/six-card.js +1 -1
  71. package/dist/collection/components/six-checkbox/six-checkbox.js +2 -2
  72. package/dist/collection/components/six-datepicker/six-datepicker.js +12 -10
  73. package/dist/collection/components/six-datepicker/six-datepicker.js.map +1 -1
  74. package/dist/collection/components/six-details/six-details.js +3 -3
  75. package/dist/collection/components/six-dialog/six-dialog.js +2 -2
  76. package/dist/collection/components/six-drawer/six-drawer.js +2 -2
  77. package/dist/collection/components/six-error/six-error.css +1 -0
  78. package/dist/collection/components/six-error/six-error.js +1 -1
  79. package/dist/collection/components/six-error-page/six-error-page.js +1 -1
  80. package/dist/collection/components/six-file-list/six-file-list.js +1 -1
  81. package/dist/collection/components/six-file-upload/six-file-upload.css +3 -0
  82. package/dist/collection/components/six-file-upload/six-file-upload.js +66 -5
  83. package/dist/collection/components/six-file-upload/six-file-upload.js.map +1 -1
  84. package/dist/collection/components/six-file-upload/test/six-file-upload.spec.js +114 -6
  85. package/dist/collection/components/six-file-upload/test/six-file-upload.spec.js.map +1 -1
  86. package/dist/collection/components/six-footer/six-footer.js +1 -1
  87. package/dist/collection/components/six-group-label/six-group-label.js +1 -1
  88. package/dist/collection/components/six-header/six-header.css +9 -0
  89. package/dist/collection/components/six-header/six-header.js +38 -13
  90. package/dist/collection/components/six-header/six-header.js.map +1 -1
  91. package/dist/collection/components/six-icon/six-icon.js +2 -2
  92. package/dist/collection/components/six-icon-button/six-icon-button.js +3 -3
  93. package/dist/collection/components/six-input/six-input.js +3 -3
  94. package/dist/collection/components/six-language-switcher/six-language-switcher.js +1 -1
  95. package/dist/collection/components/six-layout-grid/six-layout-grid.js +1 -1
  96. package/dist/collection/components/six-main-container/six-main-container.js +1 -1
  97. package/dist/collection/components/six-menu-divider/six-menu-divider.js +1 -1
  98. package/dist/collection/components/six-menu-item/six-menu-item.js +2 -2
  99. package/dist/collection/components/six-menu-label/six-menu-label.js +1 -1
  100. package/dist/collection/components/six-picto/six-picto.js +1 -1
  101. package/dist/collection/components/six-progress-bar/six-progress-bar.js +2 -2
  102. package/dist/collection/components/six-progress-ring/six-progress-ring.js +1 -1
  103. package/dist/collection/components/six-radio/six-radio.js +2 -2
  104. package/dist/collection/components/six-range/six-range.js +2 -2
  105. package/dist/collection/components/six-root/six-root.js +1 -1
  106. package/dist/collection/components/six-search-field/six-search-field.js +1 -1
  107. package/dist/collection/components/six-select/six-select.js +33 -41
  108. package/dist/collection/components/six-select/six-select.js.map +1 -1
  109. package/dist/collection/components/six-select/test/util.spec.js +23 -1
  110. package/dist/collection/components/six-select/test/util.spec.js.map +1 -1
  111. package/dist/collection/components/six-select/util.js +24 -0
  112. package/dist/collection/components/six-select/util.js.map +1 -1
  113. package/dist/collection/components/six-sidebar/six-sidebar.js +2 -2
  114. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js +2 -2
  115. package/dist/collection/components/six-switch/six-switch.js +2 -2
  116. package/dist/collection/components/six-tab/six-tab.js +2 -2
  117. package/dist/collection/components/six-tab/six-tab.js.map +1 -1
  118. package/dist/collection/components/six-tab-group/six-tab-group.js +2 -2
  119. package/dist/collection/components/six-tab-panel/six-tab-panel.js +1 -1
  120. package/dist/collection/components/six-tag/six-tag.js +2 -2
  121. package/dist/collection/components/six-textarea/six-textarea.js +2 -2
  122. package/dist/collection/components/six-tile/six-tile.js +3 -3
  123. package/dist/collection/components/six-tooltip/six-tooltip.js +2 -2
  124. package/dist/components/six-avatar.js +1 -1
  125. package/dist/components/six-badge.js +2 -2
  126. package/dist/components/six-button2.js +4 -3
  127. package/dist/components/six-button2.js.map +1 -1
  128. package/dist/components/six-card.js +1 -1
  129. package/dist/components/six-checkbox2.js +2 -2
  130. package/dist/components/six-datepicker.js +12 -10
  131. package/dist/components/six-datepicker.js.map +1 -1
  132. package/dist/components/six-details2.js +3 -3
  133. package/dist/components/six-dialog.js +2 -2
  134. package/dist/components/six-drawer.js +2 -2
  135. package/dist/components/six-error-page.js +1 -1
  136. package/dist/components/six-error2.js +2 -2
  137. package/dist/components/six-error2.js.map +1 -1
  138. package/dist/components/six-file-list.js +1 -1
  139. package/dist/components/six-file-upload.js +40 -8
  140. package/dist/components/six-file-upload.js.map +1 -1
  141. package/dist/components/six-footer.js +1 -1
  142. package/dist/components/six-group-label.js +1 -1
  143. package/dist/components/six-header.js +22 -14
  144. package/dist/components/six-header.js.map +1 -1
  145. package/dist/components/six-icon-button2.js +3 -3
  146. package/dist/components/six-icon2.js +2 -2
  147. package/dist/components/six-input2.js +3 -3
  148. package/dist/components/six-language-switcher.js +1 -1
  149. package/dist/components/six-layout-grid.js +1 -1
  150. package/dist/components/six-main-container.js +1 -1
  151. package/dist/components/six-menu-divider.js +1 -1
  152. package/dist/components/six-menu-item2.js +2 -2
  153. package/dist/components/six-menu-label.js +1 -1
  154. package/dist/components/six-picto2.js +1 -1
  155. package/dist/components/six-progress-bar.js +2 -2
  156. package/dist/components/six-progress-ring.js +1 -1
  157. package/dist/components/six-radio.js +2 -2
  158. package/dist/components/six-range.js +2 -2
  159. package/dist/components/six-root.js +1 -1
  160. package/dist/components/six-search-field.js +1 -1
  161. package/dist/components/six-select.js +66 -41
  162. package/dist/components/six-select.js.map +1 -1
  163. package/dist/components/six-sidebar-item.js +2 -2
  164. package/dist/components/six-sidebar.js +2 -2
  165. package/dist/components/six-switch.js +2 -2
  166. package/dist/components/six-tab-group.js +2 -2
  167. package/dist/components/six-tab-panel.js +1 -1
  168. package/dist/components/six-tab.js +2 -2
  169. package/dist/components/six-tab.js.map +1 -1
  170. package/dist/components/six-tag.js +2 -2
  171. package/dist/components/six-textarea.js +2 -2
  172. package/dist/components/six-tile.js +3 -3
  173. package/dist/components/six-tooltip2.js +2 -2
  174. package/dist/components.json +108 -10
  175. package/dist/esm/{form-control-40c37714.js → form-control-30c5bd8b.js} +2 -2
  176. package/dist/esm/{form-control-40c37714.js.map → form-control-30c5bd8b.js.map} +1 -1
  177. package/dist/esm/{index-52a755dc.js → index-5390c1d6.js} +455 -9
  178. package/dist/esm/index-5390c1d6.js.map +1 -0
  179. package/dist/esm/loader.js +3 -3
  180. package/dist/esm/six-alert.entry.js +1 -1
  181. package/dist/esm/six-avatar.entry.js +2 -2
  182. package/dist/esm/six-badge.entry.js +3 -3
  183. package/dist/esm/six-button.entry.js +5 -4
  184. package/dist/esm/six-button.entry.js.map +1 -1
  185. package/dist/esm/six-card.entry.js +2 -2
  186. package/dist/esm/six-checkbox_2.entry.js +6 -6
  187. package/dist/esm/six-datepicker.entry.js +13 -11
  188. package/dist/esm/six-datepicker.entry.js.map +1 -1
  189. package/dist/esm/six-details.entry.js +4 -4
  190. package/dist/esm/six-dialog.entry.js +3 -3
  191. package/dist/esm/six-drawer.entry.js +3 -3
  192. package/dist/esm/six-dropdown_2.entry.js +1 -1
  193. package/dist/esm/six-error-page.entry.js +2 -2
  194. package/dist/esm/six-error.entry.js +3 -3
  195. package/dist/esm/six-error.entry.js.map +1 -1
  196. package/dist/esm/six-file-list-item.entry.js +1 -1
  197. package/dist/esm/six-file-list.entry.js +2 -2
  198. package/dist/esm/six-file-upload.entry.js +29 -6
  199. package/dist/esm/six-file-upload.entry.js.map +1 -1
  200. package/dist/esm/six-footer.entry.js +2 -2
  201. package/dist/esm/six-group-label.entry.js +3 -3
  202. package/dist/esm/six-header.entry.js +22 -15
  203. package/dist/esm/six-header.entry.js.map +1 -1
  204. package/dist/esm/six-icon-button.entry.js +4 -4
  205. package/dist/esm/six-icon.entry.js +3 -3
  206. package/dist/esm/six-input.entry.js +5 -5
  207. package/dist/esm/six-item-picker.entry.js +1 -1
  208. package/dist/esm/six-language-switcher.entry.js +2 -2
  209. package/dist/esm/six-layout-grid.entry.js +2 -2
  210. package/dist/esm/six-main-container.entry.js +2 -2
  211. package/dist/esm/six-menu-divider.entry.js +2 -2
  212. package/dist/esm/six-menu-label.entry.js +2 -2
  213. package/dist/esm/six-picto.entry.js +2 -2
  214. package/dist/esm/six-progress-bar.entry.js +3 -3
  215. package/dist/esm/six-progress-ring.entry.js +2 -2
  216. package/dist/esm/six-radio.entry.js +3 -3
  217. package/dist/esm/six-range.entry.js +4 -4
  218. package/dist/esm/six-root.entry.js +2 -2
  219. package/dist/esm/six-search-field.entry.js +2 -2
  220. package/dist/esm/six-select.entry.js +68 -43
  221. package/dist/esm/six-select.entry.js.map +1 -1
  222. package/dist/esm/six-sidebar-item-group.entry.js +1 -1
  223. package/dist/esm/six-sidebar-item.entry.js +3 -3
  224. package/dist/esm/six-sidebar.entry.js +3 -3
  225. package/dist/esm/six-spinner.entry.js +1 -1
  226. package/dist/esm/six-stage-indicator.entry.js +1 -1
  227. package/dist/esm/six-switch.entry.js +4 -4
  228. package/dist/esm/six-tab-group.entry.js +3 -3
  229. package/dist/esm/six-tab-panel.entry.js +2 -2
  230. package/dist/esm/six-tab.entry.js +3 -3
  231. package/dist/esm/six-tab.entry.js.map +1 -1
  232. package/dist/esm/six-tag.entry.js +3 -3
  233. package/dist/esm/six-textarea.entry.js +4 -4
  234. package/dist/esm/six-tile.entry.js +4 -4
  235. package/dist/esm/six-timepicker.entry.js +1 -1
  236. package/dist/esm/six-tooltip.entry.js +3 -3
  237. package/dist/esm/ui-library.js +3 -3
  238. package/dist/types/components/six-button/six-button.d.ts +1 -1
  239. package/dist/types/components/six-file-upload/six-file-upload.d.ts +8 -0
  240. package/dist/types/components/six-header/six-header.d.ts +3 -1
  241. package/dist/types/components/six-select/six-select.d.ts +0 -2
  242. package/dist/types/components/six-select/util.d.ts +2 -0
  243. package/dist/types/components.d.ts +40 -2
  244. package/dist/ui-library/assets/TRADEMARKS.md +3 -3
  245. package/dist/ui-library/p-030fa1fa.entry.js +2 -0
  246. package/dist/ui-library/{p-29b75db4.entry.js → p-03d1b956.entry.js} +2 -2
  247. package/dist/ui-library/{p-45960b56.entry.js → p-047d02ad.entry.js} +2 -2
  248. package/dist/ui-library/p-05eb1bab.js +3 -0
  249. package/dist/ui-library/p-05eb1bab.js.map +1 -0
  250. package/dist/ui-library/{p-50dbe99f.entry.js → p-060069d4.entry.js} +2 -2
  251. package/dist/ui-library/{p-3827f9e0.entry.js → p-06ba653e.entry.js} +2 -2
  252. package/dist/ui-library/{p-3e9324c8.entry.js → p-07c8de65.entry.js} +2 -2
  253. package/dist/ui-library/{p-ab8f9503.entry.js → p-14e5fccc.entry.js} +2 -2
  254. package/dist/ui-library/p-189602e4.entry.js +2 -0
  255. package/dist/ui-library/{p-a2a6aaea.entry.js → p-19560508.entry.js} +2 -2
  256. package/dist/ui-library/{p-8938e9bd.entry.js → p-2386627e.entry.js} +2 -2
  257. package/dist/ui-library/p-2c25cb61.entry.js +2 -0
  258. package/dist/ui-library/p-2c25cb61.entry.js.map +1 -0
  259. package/dist/ui-library/{p-756f4acf.entry.js → p-32e421a3.entry.js} +2 -2
  260. package/dist/ui-library/p-32e421a3.entry.js.map +1 -0
  261. package/dist/ui-library/p-3603dd96.entry.js +2 -0
  262. package/dist/ui-library/{p-52c04973.entry.js → p-39ff5f61.entry.js} +2 -2
  263. package/dist/ui-library/{p-5f810571.entry.js → p-3b5a76ea.entry.js} +2 -2
  264. package/dist/ui-library/{p-724d0458.entry.js → p-419ed003.entry.js} +2 -2
  265. package/dist/ui-library/{p-21002de1.entry.js → p-45003bae.entry.js} +2 -2
  266. package/dist/ui-library/{p-93ab2efc.entry.js → p-4963f03c.entry.js} +2 -2
  267. package/dist/ui-library/{p-03900e17.entry.js → p-4d89932f.entry.js} +2 -2
  268. package/dist/ui-library/{p-aa99a393.js → p-605bdd81.js} +2 -2
  269. package/dist/ui-library/p-63acceb6.entry.js +2 -0
  270. package/dist/ui-library/{p-80476b0f.entry.js.map → p-63acceb6.entry.js.map} +1 -1
  271. package/dist/ui-library/{p-c948cf70.entry.js → p-6888b9ee.entry.js} +2 -2
  272. package/dist/ui-library/{p-8644f970.entry.js → p-6f9153be.entry.js} +2 -2
  273. package/dist/ui-library/{p-e798314b.entry.js → p-7561b336.entry.js} +2 -2
  274. package/dist/ui-library/p-785810fa.entry.js +2 -0
  275. package/dist/ui-library/p-785810fa.entry.js.map +1 -0
  276. package/dist/ui-library/p-7c18b8ca.entry.js +2 -0
  277. package/dist/ui-library/{p-1d4cb6e9.entry.js → p-82bd8781.entry.js} +2 -2
  278. package/dist/ui-library/p-89db9a8b.entry.js +2 -0
  279. package/dist/ui-library/{p-7a9dcb16.entry.js → p-8f1d3461.entry.js} +2 -2
  280. package/dist/ui-library/p-8fb96142.entry.js +2 -0
  281. package/dist/ui-library/p-8fb96142.entry.js.map +1 -0
  282. package/dist/ui-library/p-96d441e9.entry.js +2 -0
  283. package/dist/ui-library/p-96d441e9.entry.js.map +1 -0
  284. package/dist/ui-library/{p-8f307b55.entry.js → p-9bc1639b.entry.js} +2 -2
  285. package/dist/ui-library/p-9cb83369.entry.js +2 -0
  286. package/dist/ui-library/{p-d717a2f2.entry.js → p-a398e3eb.entry.js} +2 -2
  287. package/dist/ui-library/{p-19a1d34c.entry.js → p-a7e2f511.entry.js} +2 -2
  288. package/dist/ui-library/{p-7fc0bf6b.entry.js → p-a8863197.entry.js} +2 -2
  289. package/dist/ui-library/{p-9426a37b.entry.js → p-a9e009af.entry.js} +2 -2
  290. package/dist/ui-library/p-ab921403.entry.js +2 -0
  291. package/dist/ui-library/p-ab921403.entry.js.map +1 -0
  292. package/dist/ui-library/{p-01853739.entry.js → p-ac00076d.entry.js} +2 -2
  293. package/dist/ui-library/{p-803915da.entry.js → p-b4bc4915.entry.js} +2 -2
  294. package/dist/ui-library/{p-7562d5f5.entry.js → p-b5acf54d.entry.js} +2 -2
  295. package/dist/ui-library/{p-acc487ec.entry.js → p-b60c20aa.entry.js} +2 -2
  296. package/dist/ui-library/{p-7c2255b5.entry.js → p-c1d68730.entry.js} +2 -2
  297. package/dist/ui-library/{p-d55db23a.entry.js → p-c35a7cef.entry.js} +2 -2
  298. package/dist/ui-library/{p-e43e5e45.entry.js → p-c62893e5.entry.js} +2 -2
  299. package/dist/ui-library/{p-f8572492.entry.js → p-c6464bfe.entry.js} +2 -2
  300. package/dist/ui-library/{p-f8572492.entry.js.map → p-c6464bfe.entry.js.map} +1 -1
  301. package/dist/ui-library/{p-49e5d8bb.entry.js → p-cf109cbf.entry.js} +2 -2
  302. package/dist/ui-library/{p-6c96b62e.entry.js → p-d07b549f.entry.js} +2 -2
  303. package/dist/ui-library/{p-7a722a13.entry.js → p-d42f1ea9.entry.js} +2 -2
  304. package/dist/ui-library/p-fe37dadf.entry.js +2 -0
  305. package/dist/ui-library/{p-38a9a590.entry.js → p-fe89a7c4.entry.js} +2 -2
  306. package/dist/ui-library/ui-library.esm.js +1 -1
  307. package/dist/ui-library/ui-library.esm.js.map +1 -1
  308. package/package.json +2 -2
  309. package/dist/cjs/index-b288f7d9.js.map +0 -1
  310. package/dist/collection/components/six-header/assets/six-logo.svg +0 -1
  311. package/dist/collection/components/six-header/test/six-header.spec.js +0 -177
  312. package/dist/collection/components/six-header/test/six-header.spec.js.map +0 -1
  313. package/dist/esm/index-52a755dc.js.map +0 -1
  314. package/dist/ui-library/assets/six-logo.svg +0 -1
  315. package/dist/ui-library/p-0a094514.entry.js +0 -2
  316. package/dist/ui-library/p-19ca3bd1.entry.js +0 -2
  317. package/dist/ui-library/p-19ca3bd1.entry.js.map +0 -1
  318. package/dist/ui-library/p-1f1224ae.entry.js +0 -2
  319. package/dist/ui-library/p-338205f4.entry.js +0 -2
  320. package/dist/ui-library/p-338205f4.entry.js.map +0 -1
  321. package/dist/ui-library/p-3eed2287.entry.js +0 -2
  322. package/dist/ui-library/p-4af73ea9.entry.js +0 -2
  323. package/dist/ui-library/p-4af73ea9.entry.js.map +0 -1
  324. package/dist/ui-library/p-756f4acf.entry.js.map +0 -1
  325. package/dist/ui-library/p-80476b0f.entry.js +0 -2
  326. package/dist/ui-library/p-8dff4dcb.entry.js +0 -2
  327. package/dist/ui-library/p-8dff4dcb.entry.js.map +0 -1
  328. package/dist/ui-library/p-a2b8aca7.entry.js +0 -2
  329. package/dist/ui-library/p-ba7424b3.entry.js +0 -2
  330. package/dist/ui-library/p-d7739200.entry.js +0 -2
  331. package/dist/ui-library/p-e3766acb.entry.js +0 -2
  332. package/dist/ui-library/p-f1bb5648.entry.js +0 -2
  333. package/dist/ui-library/p-f1bb5648.entry.js.map +0 -1
  334. package/dist/ui-library/p-f93d8a4e.js +0 -3
  335. package/dist/ui-library/p-f93d8a4e.js.map +0 -1
  336. /package/dist/ui-library/{p-3eed2287.entry.js.map → p-030fa1fa.entry.js.map} +0 -0
  337. /package/dist/ui-library/{p-29b75db4.entry.js.map → p-03d1b956.entry.js.map} +0 -0
  338. /package/dist/ui-library/{p-45960b56.entry.js.map → p-047d02ad.entry.js.map} +0 -0
  339. /package/dist/ui-library/{p-50dbe99f.entry.js.map → p-060069d4.entry.js.map} +0 -0
  340. /package/dist/ui-library/{p-3827f9e0.entry.js.map → p-06ba653e.entry.js.map} +0 -0
  341. /package/dist/ui-library/{p-3e9324c8.entry.js.map → p-07c8de65.entry.js.map} +0 -0
  342. /package/dist/ui-library/{p-ab8f9503.entry.js.map → p-14e5fccc.entry.js.map} +0 -0
  343. /package/dist/ui-library/{p-d7739200.entry.js.map → p-189602e4.entry.js.map} +0 -0
  344. /package/dist/ui-library/{p-a2a6aaea.entry.js.map → p-19560508.entry.js.map} +0 -0
  345. /package/dist/ui-library/{p-8938e9bd.entry.js.map → p-2386627e.entry.js.map} +0 -0
  346. /package/dist/ui-library/{p-a2b8aca7.entry.js.map → p-3603dd96.entry.js.map} +0 -0
  347. /package/dist/ui-library/{p-52c04973.entry.js.map → p-39ff5f61.entry.js.map} +0 -0
  348. /package/dist/ui-library/{p-5f810571.entry.js.map → p-3b5a76ea.entry.js.map} +0 -0
  349. /package/dist/ui-library/{p-724d0458.entry.js.map → p-419ed003.entry.js.map} +0 -0
  350. /package/dist/ui-library/{p-21002de1.entry.js.map → p-45003bae.entry.js.map} +0 -0
  351. /package/dist/ui-library/{p-93ab2efc.entry.js.map → p-4963f03c.entry.js.map} +0 -0
  352. /package/dist/ui-library/{p-03900e17.entry.js.map → p-4d89932f.entry.js.map} +0 -0
  353. /package/dist/ui-library/{p-aa99a393.js.map → p-605bdd81.js.map} +0 -0
  354. /package/dist/ui-library/{p-c948cf70.entry.js.map → p-6888b9ee.entry.js.map} +0 -0
  355. /package/dist/ui-library/{p-8644f970.entry.js.map → p-6f9153be.entry.js.map} +0 -0
  356. /package/dist/ui-library/{p-e798314b.entry.js.map → p-7561b336.entry.js.map} +0 -0
  357. /package/dist/ui-library/{p-e3766acb.entry.js.map → p-7c18b8ca.entry.js.map} +0 -0
  358. /package/dist/ui-library/{p-1d4cb6e9.entry.js.map → p-82bd8781.entry.js.map} +0 -0
  359. /package/dist/ui-library/{p-ba7424b3.entry.js.map → p-89db9a8b.entry.js.map} +0 -0
  360. /package/dist/ui-library/{p-7a9dcb16.entry.js.map → p-8f1d3461.entry.js.map} +0 -0
  361. /package/dist/ui-library/{p-8f307b55.entry.js.map → p-9bc1639b.entry.js.map} +0 -0
  362. /package/dist/ui-library/{p-0a094514.entry.js.map → p-9cb83369.entry.js.map} +0 -0
  363. /package/dist/ui-library/{p-d717a2f2.entry.js.map → p-a398e3eb.entry.js.map} +0 -0
  364. /package/dist/ui-library/{p-19a1d34c.entry.js.map → p-a7e2f511.entry.js.map} +0 -0
  365. /package/dist/ui-library/{p-7fc0bf6b.entry.js.map → p-a8863197.entry.js.map} +0 -0
  366. /package/dist/ui-library/{p-9426a37b.entry.js.map → p-a9e009af.entry.js.map} +0 -0
  367. /package/dist/ui-library/{p-01853739.entry.js.map → p-ac00076d.entry.js.map} +0 -0
  368. /package/dist/ui-library/{p-803915da.entry.js.map → p-b4bc4915.entry.js.map} +0 -0
  369. /package/dist/ui-library/{p-7562d5f5.entry.js.map → p-b5acf54d.entry.js.map} +0 -0
  370. /package/dist/ui-library/{p-acc487ec.entry.js.map → p-b60c20aa.entry.js.map} +0 -0
  371. /package/dist/ui-library/{p-7c2255b5.entry.js.map → p-c1d68730.entry.js.map} +0 -0
  372. /package/dist/ui-library/{p-d55db23a.entry.js.map → p-c35a7cef.entry.js.map} +0 -0
  373. /package/dist/ui-library/{p-e43e5e45.entry.js.map → p-c62893e5.entry.js.map} +0 -0
  374. /package/dist/ui-library/{p-49e5d8bb.entry.js.map → p-cf109cbf.entry.js.map} +0 -0
  375. /package/dist/ui-library/{p-6c96b62e.entry.js.map → p-d07b549f.entry.js.map} +0 -0
  376. /package/dist/ui-library/{p-7a722a13.entry.js.map → p-d42f1ea9.entry.js.map} +0 -0
  377. /package/dist/ui-library/{p-1f1224ae.entry.js.map → p-fe37dadf.entry.js.map} +0 -0
  378. /package/dist/ui-library/{p-38a9a590.entry.js.map → p-fe89a7c4.entry.js.map} +0 -0
@@ -1,4 +1,5 @@
1
1
  const NAMESPACE = 'ui-library';
2
+ const BUILD = /* ui-library */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: true, cmpDidUnload: false, cmpDidUpdate: true, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: true, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: true, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, scoped: true, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: true, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: true };
2
3
 
3
4
  /**
4
5
  * Virtual DOM patching algorithm based on Snabbdom by
@@ -9,8 +10,11 @@ const NAMESPACE = 'ui-library';
9
10
  * Modified for Stencil's renderer and slot projection
10
11
  */
11
12
  let scopeId;
13
+ let contentRef;
12
14
  let hostTagName;
13
15
  let useNativeShadowDom = false;
16
+ let checkSlotFallbackVisibility = false;
17
+ let checkSlotRelocate = false;
14
18
  let isSvgMode = false;
15
19
  let queuePending = false;
16
20
  const createTime = (fnName, tagName = '') => {
@@ -86,6 +90,7 @@ function queryNonceMetaTagContent(doc) {
86
90
  const h = (nodeName, vnodeData, ...children) => {
87
91
  let child = null;
88
92
  let key = null;
93
+ let slotName = null;
89
94
  let simple = false;
90
95
  let lastSimple = false;
91
96
  const vNodeChildren = [];
@@ -116,6 +121,9 @@ const h = (nodeName, vnodeData, ...children) => {
116
121
  if (vnodeData.key) {
117
122
  key = vnodeData.key;
118
123
  }
124
+ if (vnodeData.name) {
125
+ slotName = vnodeData.name;
126
+ }
119
127
  // normalize class / className attributes
120
128
  {
121
129
  const classData = vnodeData.className || vnodeData.class;
@@ -141,6 +149,9 @@ const h = (nodeName, vnodeData, ...children) => {
141
149
  {
142
150
  vnode.$key$ = key;
143
151
  }
152
+ {
153
+ vnode.$name$ = slotName;
154
+ }
144
155
  return vnode;
145
156
  };
146
157
  /**
@@ -165,6 +176,9 @@ const newVNode = (tag, text) => {
165
176
  {
166
177
  vnode.$key$ = null;
167
178
  }
179
+ {
180
+ vnode.$name$ = null;
181
+ }
168
182
  return vnode;
169
183
  };
170
184
  const Host = {};
@@ -584,16 +598,39 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
584
598
  let i = 0;
585
599
  let elm;
586
600
  let childNode;
601
+ let oldVNode;
602
+ if (!useNativeShadowDom) {
603
+ // remember for later we need to check to relocate nodes
604
+ checkSlotRelocate = true;
605
+ if (newVNode.$tag$ === 'slot') {
606
+ if (scopeId) {
607
+ // scoped css needs to add its scoped id to the parent element
608
+ parentElm.classList.add(scopeId + '-s');
609
+ }
610
+ newVNode.$flags$ |= newVNode.$children$
611
+ ? // slot element has fallback content
612
+ 2 /* VNODE_FLAGS.isSlotFallback */
613
+ : // slot element does not have fallback content
614
+ 1 /* VNODE_FLAGS.isSlotReference */;
615
+ }
616
+ }
587
617
  if (newVNode.$text$ !== null) {
588
618
  // create text node
589
619
  elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);
590
620
  }
621
+ else if (newVNode.$flags$ & 1 /* VNODE_FLAGS.isSlotReference */) {
622
+ // create a slot reference node
623
+ elm = newVNode.$elm$ =
624
+ doc.createTextNode('');
625
+ }
591
626
  else {
592
627
  if (!isSvgMode) {
593
628
  isSvgMode = newVNode.$tag$ === 'svg';
594
629
  }
595
630
  // create element
596
- elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$tag$)
631
+ elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */
632
+ ? 'slot-fb'
633
+ : newVNode.$tag$)
597
634
  );
598
635
  if (isSvgMode && newVNode.$tag$ === 'foreignObject') {
599
636
  isSvgMode = false;
@@ -610,7 +647,7 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
610
647
  if (newVNode.$children$) {
611
648
  for (i = 0; i < newVNode.$children$.length; ++i) {
612
649
  // create the node
613
- childNode = createElm(oldParentVNode, newVNode, i);
650
+ childNode = createElm(oldParentVNode, newVNode, i, elm);
614
651
  // return node could have been null
615
652
  if (childNode) {
616
653
  // append our new node
@@ -632,8 +669,50 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
632
669
  // This needs to always happen so we can hide nodes that are projected
633
670
  // to another component but don't end up in a slot
634
671
  elm['s-hn'] = hostTagName;
672
+ {
673
+ if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {
674
+ // remember the content reference comment
675
+ elm['s-sr'] = true;
676
+ // remember the content reference comment
677
+ elm['s-cr'] = contentRef;
678
+ // remember the slot name, or empty string for default slot
679
+ elm['s-sn'] = newVNode.$name$ || '';
680
+ // check if we've got an old vnode for this slot
681
+ oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
682
+ if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {
683
+ {
684
+ // we've got an old slot vnode and the wrapper is being replaced
685
+ // so let's move the old slot content back to its original location
686
+ putBackInOriginalLocation(oldParentVNode.$elm$, false);
687
+ }
688
+ }
689
+ }
690
+ }
635
691
  return elm;
636
692
  };
693
+ const putBackInOriginalLocation = (parentElm, recursive) => {
694
+ plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
695
+ const oldSlotChildNodes = parentElm.childNodes;
696
+ for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {
697
+ const childNode = oldSlotChildNodes[i];
698
+ if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) {
699
+ // and relocate it back to it's original location
700
+ parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));
701
+ // remove the old original location comment entirely
702
+ // later on the patch function will know what to do
703
+ // and move this to the correct spot if need be
704
+ childNode['s-ol'].remove();
705
+ childNode['s-ol'] = undefined;
706
+ // Reset so we can correctly move the node around again.
707
+ childNode['s-sh'] = undefined;
708
+ checkSlotRelocate = true;
709
+ }
710
+ if (recursive) {
711
+ putBackInOriginalLocation(childNode, recursive);
712
+ }
713
+ }
714
+ plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;
715
+ };
637
716
  /**
638
717
  * Create DOM nodes corresponding to a list of {@link d.Vnode} objects and
639
718
  * add them to the DOM in the appropriate place.
@@ -650,17 +729,17 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
650
729
  * creating DOM nodes (inclusive)
651
730
  */
652
731
  const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
653
- let containerElm = (parentElm);
732
+ let containerElm = ((parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);
654
733
  let childNode;
655
734
  if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {
656
735
  containerElm = containerElm.shadowRoot;
657
736
  }
658
737
  for (; startIdx <= endIdx; ++startIdx) {
659
738
  if (vnodes[startIdx]) {
660
- childNode = createElm(null, parentVNode, startIdx);
739
+ childNode = createElm(null, parentVNode, startIdx, parentElm);
661
740
  if (childNode) {
662
741
  vnodes[startIdx].$elm$ = childNode;
663
- containerElm.insertBefore(childNode, before);
742
+ containerElm.insertBefore(childNode, referenceNode(before) );
664
743
  }
665
744
  }
666
745
  }
@@ -683,6 +762,20 @@ const removeVnodes = (vnodes, startIdx, endIdx) => {
683
762
  const elm = vnode.$elm$;
684
763
  nullifyVNodeRefs(vnode);
685
764
  if (elm) {
765
+ {
766
+ // we're removing this element
767
+ // so it's possible we need to show slot fallback content now
768
+ checkSlotFallbackVisibility = true;
769
+ if (elm['s-ol']) {
770
+ // remove the original location comment
771
+ elm['s-ol'].remove();
772
+ }
773
+ else {
774
+ // it's possible that child nodes of the node
775
+ // that's being removed are slot nodes
776
+ putBackInOriginalLocation(elm, true);
777
+ }
778
+ }
686
779
  // remove the vnode's element from the dom
687
780
  elm.remove();
688
781
  }
@@ -803,6 +896,23 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh, isInitialRender = fal
803
896
  newEndVnode = newCh[--newEndIdx];
804
897
  }
805
898
  else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {
899
+ // case: "Vnode moved right"
900
+ //
901
+ // We've found that the last node in our window on the new children is
902
+ // the same VNode as the _first_ node in our window on the old children
903
+ // we're dealing with now. Visually, this is the layout of these two
904
+ // nodes:
905
+ //
906
+ // newCh: [..., newStartVnode , ... , newEndVnode , ...]
907
+ // ^^^^^^^^^^^
908
+ // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]
909
+ // ^^^^^^^^^^^^^
910
+ //
911
+ // In this situation we need to patch `newEndVnode` onto `oldStartVnode`
912
+ // and move the DOM element for `oldStartVnode`.
913
+ if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
914
+ putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);
915
+ }
806
916
  patch(oldStartVnode, newEndVnode, isInitialRender);
807
917
  // We need to move the element for `oldStartVnode` into a position which
808
918
  // will be appropriate for `newEndVnode`. For this we can use
@@ -826,6 +936,24 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh, isInitialRender = fal
826
936
  newEndVnode = newCh[--newEndIdx];
827
937
  }
828
938
  else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {
939
+ // case: "Vnode moved left"
940
+ //
941
+ // We've found that the first node in our window on the new children is
942
+ // the same VNode as the _last_ node in our window on the old children.
943
+ // Visually, this is the layout of these two nodes:
944
+ //
945
+ // newCh: [..., newStartVnode , ... , newEndVnode , ...]
946
+ // ^^^^^^^^^^^^^
947
+ // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]
948
+ // ^^^^^^^^^^^
949
+ //
950
+ // In this situation we need to patch `newStartVnode` onto `oldEndVnode`
951
+ // (which will handle updating any changed attributes, reconciling their
952
+ // children etc) but we also need to move the DOM node to which
953
+ // `oldEndVnode` corresponds.
954
+ if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
955
+ putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);
956
+ }
829
957
  patch(oldEndVnode, newStartVnode, isInitialRender);
830
958
  // We've already checked above if `oldStartVnode` and `newStartVnode` are
831
959
  // the same node, so since we're here we know that they are not. Thus we
@@ -860,7 +988,7 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh, isInitialRender = fal
860
988
  elmToMove = oldCh[idxInOld];
861
989
  if (elmToMove.$tag$ !== newStartVnode.$tag$) {
862
990
  // the tag doesn't match so we'll need a new DOM element
863
- node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld);
991
+ node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld, parentElm);
864
992
  }
865
993
  else {
866
994
  patch(elmToMove, newStartVnode, isInitialRender);
@@ -876,13 +1004,13 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh, isInitialRender = fal
876
1004
  // the key of the first new child OR the build is not using `key`
877
1005
  // attributes at all. In either case we need to create a new element
878
1006
  // for the new node.
879
- node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx);
1007
+ node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx, parentElm);
880
1008
  newStartVnode = newCh[++newStartIdx];
881
1009
  }
882
1010
  if (node) {
883
1011
  // if we created a new node then handle inserting it to the DOM
884
1012
  {
885
- oldStartVnode.$elm$.parentNode.insertBefore(node, oldStartVnode.$elm$);
1013
+ parentReferenceNode(oldStartVnode.$elm$).insertBefore(node, referenceNode(oldStartVnode.$elm$));
886
1014
  }
887
1015
  }
888
1016
  }
@@ -921,6 +1049,9 @@ const isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
921
1049
  // compare if two vnode to see if they're "technically" the same
922
1050
  // need to have the same element tag, and same key to be the same
923
1051
  if (leftVNode.$tag$ === rightVNode.$tag$) {
1052
+ if (leftVNode.$tag$ === 'slot') {
1053
+ return leftVNode.$name$ === rightVNode.$name$;
1054
+ }
924
1055
  // this will be set if JSX tags in the build have `key` attrs set on them
925
1056
  // we only want to check this if we're not on the first render since on
926
1057
  // first render `leftVNode.$key$` will always be `null`, so we can be led
@@ -933,6 +1064,14 @@ const isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
933
1064
  }
934
1065
  return false;
935
1066
  };
1067
+ const referenceNode = (node) => {
1068
+ // this node was relocated to a new location in the dom
1069
+ // because of some other component's slot
1070
+ // but we still have an html comment in place of where
1071
+ // it's original location was according to it's original vdom
1072
+ return (node && node['s-ol']) || node;
1073
+ };
1074
+ const parentReferenceNode = (node) => (node['s-ol'] ? node['s-ol'] : node).parentNode;
936
1075
  /**
937
1076
  * Handle reconciling an outdated VNode with a new one which corresponds to
938
1077
  * it. This function handles flushing updates to the DOM and reconciling the
@@ -948,6 +1087,7 @@ const patch = (oldVNode, newVNode, isInitialRender = false) => {
948
1087
  const newChildren = newVNode.$children$;
949
1088
  const tag = newVNode.$tag$;
950
1089
  const text = newVNode.$text$;
1090
+ let defaultHolder;
951
1091
  if (text === null) {
952
1092
  {
953
1093
  // test if we're rendering an svg element, or still rendering nodes inside of one
@@ -985,12 +1125,193 @@ const patch = (oldVNode, newVNode, isInitialRender = false) => {
985
1125
  isSvgMode = false;
986
1126
  }
987
1127
  }
1128
+ else if ((defaultHolder = elm['s-cr'])) {
1129
+ // this element has slotted content
1130
+ defaultHolder.parentNode.textContent = text;
1131
+ }
988
1132
  else if (oldVNode.$text$ !== text) {
989
1133
  // update the text content for the text only vnode
990
1134
  // and also only if the text is different than before
991
1135
  elm.data = text;
992
1136
  }
993
1137
  };
1138
+ /**
1139
+ * Adjust the `.hidden` property as-needed on any nodes in a DOM subtree which
1140
+ * are slot fallbacks nodes.
1141
+ *
1142
+ * A slot fallback node should be visible by default. Then, it should be
1143
+ * conditionally hidden if:
1144
+ *
1145
+ * - it has a sibling with a `slot` property set to its slot name or if
1146
+ * - it is a default fallback slot node, in which case we hide if it has any
1147
+ * content
1148
+ *
1149
+ * @param elm the element of interest
1150
+ */
1151
+ const updateFallbackSlotVisibility = (elm) => {
1152
+ const childNodes = elm.childNodes;
1153
+ for (const childNode of childNodes) {
1154
+ if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1155
+ if (childNode['s-sr']) {
1156
+ // this is a slot fallback node
1157
+ // get the slot name for this slot reference node
1158
+ const slotName = childNode['s-sn'];
1159
+ // by default always show a fallback slot node
1160
+ // then hide it if there are other slots in the light dom
1161
+ childNode.hidden = false;
1162
+ // we need to check all of its sibling nodes in order to see if
1163
+ // `childNode` should be hidden
1164
+ for (const siblingNode of childNodes) {
1165
+ // Don't check the node against itself
1166
+ if (siblingNode !== childNode) {
1167
+ if (siblingNode['s-hn'] !== childNode['s-hn'] || slotName !== '') {
1168
+ // this sibling node is from a different component OR is a named
1169
+ // fallback slot node
1170
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ &&
1171
+ (slotName === siblingNode.getAttribute('slot') || slotName === siblingNode['s-sn'])) {
1172
+ childNode.hidden = true;
1173
+ break;
1174
+ }
1175
+ }
1176
+ else {
1177
+ // this is a default fallback slot node
1178
+ // any element or text node (with content)
1179
+ // should hide the default fallback slot node
1180
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ ||
1181
+ (siblingNode.nodeType === 3 /* NODE_TYPE.TextNode */ && siblingNode.textContent.trim() !== '')) {
1182
+ childNode.hidden = true;
1183
+ break;
1184
+ }
1185
+ }
1186
+ }
1187
+ }
1188
+ }
1189
+ // keep drilling down
1190
+ updateFallbackSlotVisibility(childNode);
1191
+ }
1192
+ }
1193
+ };
1194
+ /**
1195
+ * Component-global information about nodes which are either currently being
1196
+ * relocated or will be shortly.
1197
+ */
1198
+ const relocateNodes = [];
1199
+ /**
1200
+ * Mark the contents of a slot for relocation via adding references to them to
1201
+ * the {@link relocateNodes} data structure. The actual work of relocating them
1202
+ * will then be handled in {@link renderVdom}.
1203
+ *
1204
+ * @param elm a render node whose child nodes need to be relocated
1205
+ */
1206
+ const markSlotContentForRelocation = (elm) => {
1207
+ // tslint:disable-next-line: prefer-const
1208
+ let node;
1209
+ let hostContentNodes;
1210
+ let j;
1211
+ for (const childNode of elm.childNodes) {
1212
+ // we need to find child nodes which are slot references so we can then try
1213
+ // to match them up with nodes that need to be relocated
1214
+ if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {
1215
+ // first get the content reference comment node ('s-cr'), then we get
1216
+ // its parent, which is where all the host content is now
1217
+ hostContentNodes = node.parentNode.childNodes;
1218
+ const slotName = childNode['s-sn'];
1219
+ // iterate through all the nodes under the location where the host was
1220
+ // originally rendered
1221
+ for (j = hostContentNodes.length - 1; j >= 0; j--) {
1222
+ node = hostContentNodes[j];
1223
+ // check that the node is not a content reference node or a node
1224
+ // reference and then check that the host name does not match that of
1225
+ // childNode.
1226
+ // In addition, check that the slot either has not already been relocated, or
1227
+ // that its current location's host is not childNode's host. This is essentially
1228
+ // a check so that we don't try to relocate (and then hide) a node that is already
1229
+ // where it should be.
1230
+ if (!node['s-cn'] &&
1231
+ !node['s-nr'] &&
1232
+ node['s-hn'] !== childNode['s-hn'] &&
1233
+ (!BUILD.experimentalSlotFixes )) {
1234
+ // if `node` is located in the slot that `childNode` refers to (via the
1235
+ // `'s-sn'` property) then we need to relocate it from it's current spot
1236
+ // (under the host element parent) to the right slot location
1237
+ if (isNodeLocatedInSlot(node, slotName)) {
1238
+ // it's possible we've already decided to relocate this node
1239
+ let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1240
+ // made some changes to slots
1241
+ // let's make sure we also double check
1242
+ // fallbacks are correctly hidden or shown
1243
+ checkSlotFallbackVisibility = true;
1244
+ // ensure that the slot-name attr is correct
1245
+ node['s-sn'] = node['s-sn'] || slotName;
1246
+ if (relocateNodeData) {
1247
+ relocateNodeData.$nodeToRelocate$['s-sh'] = childNode['s-hn'];
1248
+ // we marked this node for relocation previously but didn't find
1249
+ // out the slot reference node to which it needs to be relocated
1250
+ // so write it down now!
1251
+ relocateNodeData.$slotRefNode$ = childNode;
1252
+ }
1253
+ else {
1254
+ node['s-sh'] = childNode['s-hn'];
1255
+ // add to our list of nodes to relocate
1256
+ relocateNodes.push({
1257
+ $slotRefNode$: childNode,
1258
+ $nodeToRelocate$: node,
1259
+ });
1260
+ }
1261
+ if (node['s-sr']) {
1262
+ relocateNodes.map((relocateNode) => {
1263
+ if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) {
1264
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1265
+ if (relocateNodeData && !relocateNode.$slotRefNode$) {
1266
+ relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;
1267
+ }
1268
+ }
1269
+ });
1270
+ }
1271
+ }
1272
+ else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
1273
+ // the node is not found within the slot (`childNode`) that we're
1274
+ // currently looking at, so we stick it into `relocateNodes` to
1275
+ // handle later. If we never find a home for this element then
1276
+ // we'll need to hide it
1277
+ relocateNodes.push({
1278
+ $nodeToRelocate$: node,
1279
+ });
1280
+ }
1281
+ }
1282
+ }
1283
+ }
1284
+ // if we're dealing with any type of element (capable of itself being a
1285
+ // slot reference or containing one) then we recur
1286
+ if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1287
+ markSlotContentForRelocation(childNode);
1288
+ }
1289
+ }
1290
+ };
1291
+ /**
1292
+ * Check whether a node is located in a given named slot.
1293
+ *
1294
+ * @param nodeToRelocate the node of interest
1295
+ * @param slotName the slot name to check
1296
+ * @returns whether the node is located in the slot or not
1297
+ */
1298
+ const isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
1299
+ if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1300
+ if (nodeToRelocate.getAttribute('slot') === null && slotName === '') {
1301
+ // if the node doesn't have a slot attribute, and the slot we're checking
1302
+ // is not a named slot, then we assume the node should be within the slot
1303
+ return true;
1304
+ }
1305
+ if (nodeToRelocate.getAttribute('slot') === slotName) {
1306
+ return true;
1307
+ }
1308
+ return false;
1309
+ }
1310
+ if (nodeToRelocate['s-sn'] === slotName) {
1311
+ return true;
1312
+ }
1313
+ return slotName === '';
1314
+ };
994
1315
  /**
995
1316
  * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by calling
996
1317
  * them with `null`. This signals that the DOM element corresponding to the VDom
@@ -1018,6 +1339,7 @@ const nullifyVNodeRefs = (vNode) => {
1018
1339
  * @param isInitialLoad whether or not this is the first call after page load
1019
1340
  */
1020
1341
  const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1342
+ var _a, _b, _c, _d;
1021
1343
  const hostElm = hostRef.$hostElement$;
1022
1344
  const cmpMeta = hostRef.$cmpMeta$;
1023
1345
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -1061,8 +1383,111 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1061
1383
  scopeId = hostElm['s-sc'];
1062
1384
  }
1063
1385
  useNativeShadowDom = (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) !== 0;
1386
+ {
1387
+ contentRef = hostElm['s-cr'];
1388
+ // always reset
1389
+ checkSlotFallbackVisibility = false;
1390
+ }
1064
1391
  // synchronous patch
1065
1392
  patch(oldVNode, rootVnode, isInitialLoad);
1393
+ {
1394
+ // while we're moving nodes around existing nodes, temporarily disable
1395
+ // the disconnectCallback from working
1396
+ plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
1397
+ if (checkSlotRelocate) {
1398
+ markSlotContentForRelocation(rootVnode.$elm$);
1399
+ for (const relocateData of relocateNodes) {
1400
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1401
+ if (!nodeToRelocate['s-ol']) {
1402
+ // add a reference node marking this node's original location
1403
+ // keep a reference to this node for later lookups
1404
+ const orgLocationNode = doc.createTextNode('');
1405
+ orgLocationNode['s-nr'] = nodeToRelocate;
1406
+ nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);
1407
+ }
1408
+ }
1409
+ for (const relocateData of relocateNodes) {
1410
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1411
+ const slotRefNode = relocateData.$slotRefNode$;
1412
+ if (slotRefNode) {
1413
+ const parentNodeRef = slotRefNode.parentNode;
1414
+ // When determining where to insert content, the most simple case would be
1415
+ // to relocate the node immediately following the slot reference node. We do this
1416
+ // by getting a reference to the node immediately following the slot reference node
1417
+ // since we will use `insertBefore` to manipulate the DOM.
1418
+ //
1419
+ // If there is no node immediately following the slot reference node, then we will just
1420
+ // end up appending the node as the last child of the parent.
1421
+ let insertBeforeNode = slotRefNode.nextSibling;
1422
+ // If the node we're currently planning on inserting the new node before is an element,
1423
+ // we need to do some additional checks to make sure we're inserting the node in the correct order.
1424
+ // The use case here would be that we have multiple nodes being relocated to the same slot. So, we want
1425
+ // to make sure they get inserted into their new how in the same order they were declared in their original location.
1426
+ //
1427
+ // TODO(STENCIL-914): Remove `experimentalSlotFixes` check
1428
+ {
1429
+ let orgLocationNode = (_a = nodeToRelocate['s-ol']) === null || _a === void 0 ? void 0 : _a.previousSibling;
1430
+ while (orgLocationNode) {
1431
+ let refNode = (_b = orgLocationNode['s-nr']) !== null && _b !== void 0 ? _b : null;
1432
+ if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
1433
+ refNode = refNode.nextSibling;
1434
+ if (!refNode || !refNode['s-nr']) {
1435
+ insertBeforeNode = refNode;
1436
+ break;
1437
+ }
1438
+ }
1439
+ orgLocationNode = orgLocationNode.previousSibling;
1440
+ }
1441
+ }
1442
+ if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||
1443
+ nodeToRelocate.nextSibling !== insertBeforeNode) {
1444
+ // we've checked that it's worth while to relocate
1445
+ // since that the node to relocate
1446
+ // has a different next sibling or parent relocated
1447
+ if (nodeToRelocate !== insertBeforeNode) {
1448
+ if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {
1449
+ // probably a component in the index.html that doesn't have its hostname set
1450
+ nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;
1451
+ }
1452
+ // Add it back to the dom but in its new home
1453
+ // If we get to this point and `insertBeforeNode` is `null`, that means
1454
+ // we're just going to append the node as the last child of the parent. Passing
1455
+ // `null` as the second arg here will trigger that behavior.
1456
+ parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);
1457
+ // Reset the `hidden` value back to what it was defined as originally
1458
+ // This solves a problem where a `slot` is dynamically rendered and `hidden` may have
1459
+ // been set on content originally, but now it has a slot to go to so it should have
1460
+ // the value it was defined as having in the DOM, not what we overrode it to.
1461
+ if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1462
+ nodeToRelocate.hidden = (_c = nodeToRelocate['s-ih']) !== null && _c !== void 0 ? _c : false;
1463
+ }
1464
+ }
1465
+ }
1466
+ }
1467
+ else {
1468
+ // this node doesn't have a slot home to go to, so let's hide it
1469
+ if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1470
+ // Store the initial value of `hidden` so we can reset it later when
1471
+ // moving nodes around.
1472
+ if (isInitialLoad) {
1473
+ nodeToRelocate['s-ih'] = (_d = nodeToRelocate.hidden) !== null && _d !== void 0 ? _d : false;
1474
+ }
1475
+ nodeToRelocate.hidden = true;
1476
+ }
1477
+ }
1478
+ }
1479
+ }
1480
+ if (checkSlotFallbackVisibility) {
1481
+ updateFallbackSlotVisibility(rootVnode.$elm$);
1482
+ }
1483
+ // done moving nodes around
1484
+ // allow the disconnect callback to work again
1485
+ plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;
1486
+ // always reset
1487
+ relocateNodes.length = 0;
1488
+ }
1489
+ // Clear the content ref so we don't create a memory leak
1490
+ contentRef = undefined;
1066
1491
  };
1067
1492
  const attachToAncestor = (hostRef, ancestorComponent) => {
1068
1493
  if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {
@@ -1630,6 +2055,16 @@ const connectedCallback = (elm) => {
1630
2055
  if (!(hostRef.$flags$ & 1 /* HOST_FLAGS.hasConnected */)) {
1631
2056
  // first time this component has connected
1632
2057
  hostRef.$flags$ |= 1 /* HOST_FLAGS.hasConnected */;
2058
+ {
2059
+ // initUpdate
2060
+ // if the slot polyfill is required we'll need to put some nodes
2061
+ // in here to act as original content anchors as we move nodes around
2062
+ // host element has been connected to the DOM
2063
+ if ((// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field
2064
+ cmpMeta.$flags$ & (4 /* CMP_FLAGS.hasSlotRelocation */ | 8 /* CMP_FLAGS.needsShadowDomShim */))) {
2065
+ setContentReference(elm);
2066
+ }
2067
+ }
1633
2068
  {
1634
2069
  // find the first ancestor component (if there is one) and register
1635
2070
  // this component as one of the actively loading child components for its ancestor
@@ -1676,6 +2111,17 @@ const connectedCallback = (elm) => {
1676
2111
  endConnected();
1677
2112
  }
1678
2113
  };
2114
+ const setContentReference = (elm) => {
2115
+ // only required when we're NOT using native shadow dom (slot)
2116
+ // or this browser doesn't support native shadow dom
2117
+ // and this host element was NOT created with SSR
2118
+ // let's pick out the inner content for slot projection
2119
+ // create a node to represent where the original
2120
+ // content was first placed, which is useful later on
2121
+ const contentRefElm = (elm['s-cr'] = doc.createComment(''));
2122
+ contentRefElm['s-cn'] = true;
2123
+ elm.insertBefore(contentRefElm, elm.firstChild);
2124
+ };
1679
2125
  const disconnectInstance = (instance) => {
1680
2126
  {
1681
2127
  safeCall(instance, 'disconnectedCallback');
@@ -2240,4 +2686,4 @@ const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
2240
2686
 
2241
2687
  export { Host as H, bootstrapLazy as b, createEvent as c, getElement as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
2242
2688
 
2243
- //# sourceMappingURL=index-52a755dc.js.map
2689
+ //# sourceMappingURL=index-5390c1d6.js.map