@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
@@ -21,6 +21,7 @@ function _interopNamespace(e) {
21
21
  }
22
22
 
23
23
  const NAMESPACE = 'ui-library';
24
+ 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 };
24
25
 
25
26
  /**
26
27
  * Virtual DOM patching algorithm based on Snabbdom by
@@ -31,8 +32,11 @@ const NAMESPACE = 'ui-library';
31
32
  * Modified for Stencil's renderer and slot projection
32
33
  */
33
34
  let scopeId;
35
+ let contentRef;
34
36
  let hostTagName;
35
37
  let useNativeShadowDom = false;
38
+ let checkSlotFallbackVisibility = false;
39
+ let checkSlotRelocate = false;
36
40
  let isSvgMode = false;
37
41
  let queuePending = false;
38
42
  const createTime = (fnName, tagName = '') => {
@@ -108,6 +112,7 @@ function queryNonceMetaTagContent(doc) {
108
112
  const h = (nodeName, vnodeData, ...children) => {
109
113
  let child = null;
110
114
  let key = null;
115
+ let slotName = null;
111
116
  let simple = false;
112
117
  let lastSimple = false;
113
118
  const vNodeChildren = [];
@@ -138,6 +143,9 @@ const h = (nodeName, vnodeData, ...children) => {
138
143
  if (vnodeData.key) {
139
144
  key = vnodeData.key;
140
145
  }
146
+ if (vnodeData.name) {
147
+ slotName = vnodeData.name;
148
+ }
141
149
  // normalize class / className attributes
142
150
  {
143
151
  const classData = vnodeData.className || vnodeData.class;
@@ -163,6 +171,9 @@ const h = (nodeName, vnodeData, ...children) => {
163
171
  {
164
172
  vnode.$key$ = key;
165
173
  }
174
+ {
175
+ vnode.$name$ = slotName;
176
+ }
166
177
  return vnode;
167
178
  };
168
179
  /**
@@ -187,6 +198,9 @@ const newVNode = (tag, text) => {
187
198
  {
188
199
  vnode.$key$ = null;
189
200
  }
201
+ {
202
+ vnode.$name$ = null;
203
+ }
190
204
  return vnode;
191
205
  };
192
206
  const Host = {};
@@ -606,16 +620,39 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
606
620
  let i = 0;
607
621
  let elm;
608
622
  let childNode;
623
+ let oldVNode;
624
+ if (!useNativeShadowDom) {
625
+ // remember for later we need to check to relocate nodes
626
+ checkSlotRelocate = true;
627
+ if (newVNode.$tag$ === 'slot') {
628
+ if (scopeId) {
629
+ // scoped css needs to add its scoped id to the parent element
630
+ parentElm.classList.add(scopeId + '-s');
631
+ }
632
+ newVNode.$flags$ |= newVNode.$children$
633
+ ? // slot element has fallback content
634
+ 2 /* VNODE_FLAGS.isSlotFallback */
635
+ : // slot element does not have fallback content
636
+ 1 /* VNODE_FLAGS.isSlotReference */;
637
+ }
638
+ }
609
639
  if (newVNode.$text$ !== null) {
610
640
  // create text node
611
641
  elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);
612
642
  }
643
+ else if (newVNode.$flags$ & 1 /* VNODE_FLAGS.isSlotReference */) {
644
+ // create a slot reference node
645
+ elm = newVNode.$elm$ =
646
+ doc.createTextNode('');
647
+ }
613
648
  else {
614
649
  if (!isSvgMode) {
615
650
  isSvgMode = newVNode.$tag$ === 'svg';
616
651
  }
617
652
  // create element
618
- elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$tag$)
653
+ elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */
654
+ ? 'slot-fb'
655
+ : newVNode.$tag$)
619
656
  );
620
657
  if (isSvgMode && newVNode.$tag$ === 'foreignObject') {
621
658
  isSvgMode = false;
@@ -632,7 +669,7 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
632
669
  if (newVNode.$children$) {
633
670
  for (i = 0; i < newVNode.$children$.length; ++i) {
634
671
  // create the node
635
- childNode = createElm(oldParentVNode, newVNode, i);
672
+ childNode = createElm(oldParentVNode, newVNode, i, elm);
636
673
  // return node could have been null
637
674
  if (childNode) {
638
675
  // append our new node
@@ -654,8 +691,50 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
654
691
  // This needs to always happen so we can hide nodes that are projected
655
692
  // to another component but don't end up in a slot
656
693
  elm['s-hn'] = hostTagName;
694
+ {
695
+ if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {
696
+ // remember the content reference comment
697
+ elm['s-sr'] = true;
698
+ // remember the content reference comment
699
+ elm['s-cr'] = contentRef;
700
+ // remember the slot name, or empty string for default slot
701
+ elm['s-sn'] = newVNode.$name$ || '';
702
+ // check if we've got an old vnode for this slot
703
+ oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
704
+ if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {
705
+ {
706
+ // we've got an old slot vnode and the wrapper is being replaced
707
+ // so let's move the old slot content back to its original location
708
+ putBackInOriginalLocation(oldParentVNode.$elm$, false);
709
+ }
710
+ }
711
+ }
712
+ }
657
713
  return elm;
658
714
  };
715
+ const putBackInOriginalLocation = (parentElm, recursive) => {
716
+ plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
717
+ const oldSlotChildNodes = parentElm.childNodes;
718
+ for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {
719
+ const childNode = oldSlotChildNodes[i];
720
+ if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) {
721
+ // and relocate it back to it's original location
722
+ parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));
723
+ // remove the old original location comment entirely
724
+ // later on the patch function will know what to do
725
+ // and move this to the correct spot if need be
726
+ childNode['s-ol'].remove();
727
+ childNode['s-ol'] = undefined;
728
+ // Reset so we can correctly move the node around again.
729
+ childNode['s-sh'] = undefined;
730
+ checkSlotRelocate = true;
731
+ }
732
+ if (recursive) {
733
+ putBackInOriginalLocation(childNode, recursive);
734
+ }
735
+ }
736
+ plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;
737
+ };
659
738
  /**
660
739
  * Create DOM nodes corresponding to a list of {@link d.Vnode} objects and
661
740
  * add them to the DOM in the appropriate place.
@@ -672,17 +751,17 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
672
751
  * creating DOM nodes (inclusive)
673
752
  */
674
753
  const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
675
- let containerElm = (parentElm);
754
+ let containerElm = ((parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);
676
755
  let childNode;
677
756
  if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {
678
757
  containerElm = containerElm.shadowRoot;
679
758
  }
680
759
  for (; startIdx <= endIdx; ++startIdx) {
681
760
  if (vnodes[startIdx]) {
682
- childNode = createElm(null, parentVNode, startIdx);
761
+ childNode = createElm(null, parentVNode, startIdx, parentElm);
683
762
  if (childNode) {
684
763
  vnodes[startIdx].$elm$ = childNode;
685
- containerElm.insertBefore(childNode, before);
764
+ containerElm.insertBefore(childNode, referenceNode(before) );
686
765
  }
687
766
  }
688
767
  }
@@ -705,6 +784,20 @@ const removeVnodes = (vnodes, startIdx, endIdx) => {
705
784
  const elm = vnode.$elm$;
706
785
  nullifyVNodeRefs(vnode);
707
786
  if (elm) {
787
+ {
788
+ // we're removing this element
789
+ // so it's possible we need to show slot fallback content now
790
+ checkSlotFallbackVisibility = true;
791
+ if (elm['s-ol']) {
792
+ // remove the original location comment
793
+ elm['s-ol'].remove();
794
+ }
795
+ else {
796
+ // it's possible that child nodes of the node
797
+ // that's being removed are slot nodes
798
+ putBackInOriginalLocation(elm, true);
799
+ }
800
+ }
708
801
  // remove the vnode's element from the dom
709
802
  elm.remove();
710
803
  }
@@ -825,6 +918,23 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh, isInitialRender = fal
825
918
  newEndVnode = newCh[--newEndIdx];
826
919
  }
827
920
  else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {
921
+ // case: "Vnode moved right"
922
+ //
923
+ // We've found that the last node in our window on the new children is
924
+ // the same VNode as the _first_ node in our window on the old children
925
+ // we're dealing with now. Visually, this is the layout of these two
926
+ // nodes:
927
+ //
928
+ // newCh: [..., newStartVnode , ... , newEndVnode , ...]
929
+ // ^^^^^^^^^^^
930
+ // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]
931
+ // ^^^^^^^^^^^^^
932
+ //
933
+ // In this situation we need to patch `newEndVnode` onto `oldStartVnode`
934
+ // and move the DOM element for `oldStartVnode`.
935
+ if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
936
+ putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);
937
+ }
828
938
  patch(oldStartVnode, newEndVnode, isInitialRender);
829
939
  // We need to move the element for `oldStartVnode` into a position which
830
940
  // will be appropriate for `newEndVnode`. For this we can use
@@ -848,6 +958,24 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh, isInitialRender = fal
848
958
  newEndVnode = newCh[--newEndIdx];
849
959
  }
850
960
  else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {
961
+ // case: "Vnode moved left"
962
+ //
963
+ // We've found that the first node in our window on the new children is
964
+ // the same VNode as the _last_ node in our window on the old children.
965
+ // Visually, this is the layout of these two nodes:
966
+ //
967
+ // newCh: [..., newStartVnode , ... , newEndVnode , ...]
968
+ // ^^^^^^^^^^^^^
969
+ // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]
970
+ // ^^^^^^^^^^^
971
+ //
972
+ // In this situation we need to patch `newStartVnode` onto `oldEndVnode`
973
+ // (which will handle updating any changed attributes, reconciling their
974
+ // children etc) but we also need to move the DOM node to which
975
+ // `oldEndVnode` corresponds.
976
+ if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
977
+ putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);
978
+ }
851
979
  patch(oldEndVnode, newStartVnode, isInitialRender);
852
980
  // We've already checked above if `oldStartVnode` and `newStartVnode` are
853
981
  // the same node, so since we're here we know that they are not. Thus we
@@ -882,7 +1010,7 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh, isInitialRender = fal
882
1010
  elmToMove = oldCh[idxInOld];
883
1011
  if (elmToMove.$tag$ !== newStartVnode.$tag$) {
884
1012
  // the tag doesn't match so we'll need a new DOM element
885
- node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld);
1013
+ node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld, parentElm);
886
1014
  }
887
1015
  else {
888
1016
  patch(elmToMove, newStartVnode, isInitialRender);
@@ -898,13 +1026,13 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh, isInitialRender = fal
898
1026
  // the key of the first new child OR the build is not using `key`
899
1027
  // attributes at all. In either case we need to create a new element
900
1028
  // for the new node.
901
- node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx);
1029
+ node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx, parentElm);
902
1030
  newStartVnode = newCh[++newStartIdx];
903
1031
  }
904
1032
  if (node) {
905
1033
  // if we created a new node then handle inserting it to the DOM
906
1034
  {
907
- oldStartVnode.$elm$.parentNode.insertBefore(node, oldStartVnode.$elm$);
1035
+ parentReferenceNode(oldStartVnode.$elm$).insertBefore(node, referenceNode(oldStartVnode.$elm$));
908
1036
  }
909
1037
  }
910
1038
  }
@@ -943,6 +1071,9 @@ const isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
943
1071
  // compare if two vnode to see if they're "technically" the same
944
1072
  // need to have the same element tag, and same key to be the same
945
1073
  if (leftVNode.$tag$ === rightVNode.$tag$) {
1074
+ if (leftVNode.$tag$ === 'slot') {
1075
+ return leftVNode.$name$ === rightVNode.$name$;
1076
+ }
946
1077
  // this will be set if JSX tags in the build have `key` attrs set on them
947
1078
  // we only want to check this if we're not on the first render since on
948
1079
  // first render `leftVNode.$key$` will always be `null`, so we can be led
@@ -955,6 +1086,14 @@ const isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
955
1086
  }
956
1087
  return false;
957
1088
  };
1089
+ const referenceNode = (node) => {
1090
+ // this node was relocated to a new location in the dom
1091
+ // because of some other component's slot
1092
+ // but we still have an html comment in place of where
1093
+ // it's original location was according to it's original vdom
1094
+ return (node && node['s-ol']) || node;
1095
+ };
1096
+ const parentReferenceNode = (node) => (node['s-ol'] ? node['s-ol'] : node).parentNode;
958
1097
  /**
959
1098
  * Handle reconciling an outdated VNode with a new one which corresponds to
960
1099
  * it. This function handles flushing updates to the DOM and reconciling the
@@ -970,6 +1109,7 @@ const patch = (oldVNode, newVNode, isInitialRender = false) => {
970
1109
  const newChildren = newVNode.$children$;
971
1110
  const tag = newVNode.$tag$;
972
1111
  const text = newVNode.$text$;
1112
+ let defaultHolder;
973
1113
  if (text === null) {
974
1114
  {
975
1115
  // test if we're rendering an svg element, or still rendering nodes inside of one
@@ -1007,12 +1147,193 @@ const patch = (oldVNode, newVNode, isInitialRender = false) => {
1007
1147
  isSvgMode = false;
1008
1148
  }
1009
1149
  }
1150
+ else if ((defaultHolder = elm['s-cr'])) {
1151
+ // this element has slotted content
1152
+ defaultHolder.parentNode.textContent = text;
1153
+ }
1010
1154
  else if (oldVNode.$text$ !== text) {
1011
1155
  // update the text content for the text only vnode
1012
1156
  // and also only if the text is different than before
1013
1157
  elm.data = text;
1014
1158
  }
1015
1159
  };
1160
+ /**
1161
+ * Adjust the `.hidden` property as-needed on any nodes in a DOM subtree which
1162
+ * are slot fallbacks nodes.
1163
+ *
1164
+ * A slot fallback node should be visible by default. Then, it should be
1165
+ * conditionally hidden if:
1166
+ *
1167
+ * - it has a sibling with a `slot` property set to its slot name or if
1168
+ * - it is a default fallback slot node, in which case we hide if it has any
1169
+ * content
1170
+ *
1171
+ * @param elm the element of interest
1172
+ */
1173
+ const updateFallbackSlotVisibility = (elm) => {
1174
+ const childNodes = elm.childNodes;
1175
+ for (const childNode of childNodes) {
1176
+ if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1177
+ if (childNode['s-sr']) {
1178
+ // this is a slot fallback node
1179
+ // get the slot name for this slot reference node
1180
+ const slotName = childNode['s-sn'];
1181
+ // by default always show a fallback slot node
1182
+ // then hide it if there are other slots in the light dom
1183
+ childNode.hidden = false;
1184
+ // we need to check all of its sibling nodes in order to see if
1185
+ // `childNode` should be hidden
1186
+ for (const siblingNode of childNodes) {
1187
+ // Don't check the node against itself
1188
+ if (siblingNode !== childNode) {
1189
+ if (siblingNode['s-hn'] !== childNode['s-hn'] || slotName !== '') {
1190
+ // this sibling node is from a different component OR is a named
1191
+ // fallback slot node
1192
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ &&
1193
+ (slotName === siblingNode.getAttribute('slot') || slotName === siblingNode['s-sn'])) {
1194
+ childNode.hidden = true;
1195
+ break;
1196
+ }
1197
+ }
1198
+ else {
1199
+ // this is a default fallback slot node
1200
+ // any element or text node (with content)
1201
+ // should hide the default fallback slot node
1202
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ ||
1203
+ (siblingNode.nodeType === 3 /* NODE_TYPE.TextNode */ && siblingNode.textContent.trim() !== '')) {
1204
+ childNode.hidden = true;
1205
+ break;
1206
+ }
1207
+ }
1208
+ }
1209
+ }
1210
+ }
1211
+ // keep drilling down
1212
+ updateFallbackSlotVisibility(childNode);
1213
+ }
1214
+ }
1215
+ };
1216
+ /**
1217
+ * Component-global information about nodes which are either currently being
1218
+ * relocated or will be shortly.
1219
+ */
1220
+ const relocateNodes = [];
1221
+ /**
1222
+ * Mark the contents of a slot for relocation via adding references to them to
1223
+ * the {@link relocateNodes} data structure. The actual work of relocating them
1224
+ * will then be handled in {@link renderVdom}.
1225
+ *
1226
+ * @param elm a render node whose child nodes need to be relocated
1227
+ */
1228
+ const markSlotContentForRelocation = (elm) => {
1229
+ // tslint:disable-next-line: prefer-const
1230
+ let node;
1231
+ let hostContentNodes;
1232
+ let j;
1233
+ for (const childNode of elm.childNodes) {
1234
+ // we need to find child nodes which are slot references so we can then try
1235
+ // to match them up with nodes that need to be relocated
1236
+ if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {
1237
+ // first get the content reference comment node ('s-cr'), then we get
1238
+ // its parent, which is where all the host content is now
1239
+ hostContentNodes = node.parentNode.childNodes;
1240
+ const slotName = childNode['s-sn'];
1241
+ // iterate through all the nodes under the location where the host was
1242
+ // originally rendered
1243
+ for (j = hostContentNodes.length - 1; j >= 0; j--) {
1244
+ node = hostContentNodes[j];
1245
+ // check that the node is not a content reference node or a node
1246
+ // reference and then check that the host name does not match that of
1247
+ // childNode.
1248
+ // In addition, check that the slot either has not already been relocated, or
1249
+ // that its current location's host is not childNode's host. This is essentially
1250
+ // a check so that we don't try to relocate (and then hide) a node that is already
1251
+ // where it should be.
1252
+ if (!node['s-cn'] &&
1253
+ !node['s-nr'] &&
1254
+ node['s-hn'] !== childNode['s-hn'] &&
1255
+ (!BUILD.experimentalSlotFixes )) {
1256
+ // if `node` is located in the slot that `childNode` refers to (via the
1257
+ // `'s-sn'` property) then we need to relocate it from it's current spot
1258
+ // (under the host element parent) to the right slot location
1259
+ if (isNodeLocatedInSlot(node, slotName)) {
1260
+ // it's possible we've already decided to relocate this node
1261
+ let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1262
+ // made some changes to slots
1263
+ // let's make sure we also double check
1264
+ // fallbacks are correctly hidden or shown
1265
+ checkSlotFallbackVisibility = true;
1266
+ // ensure that the slot-name attr is correct
1267
+ node['s-sn'] = node['s-sn'] || slotName;
1268
+ if (relocateNodeData) {
1269
+ relocateNodeData.$nodeToRelocate$['s-sh'] = childNode['s-hn'];
1270
+ // we marked this node for relocation previously but didn't find
1271
+ // out the slot reference node to which it needs to be relocated
1272
+ // so write it down now!
1273
+ relocateNodeData.$slotRefNode$ = childNode;
1274
+ }
1275
+ else {
1276
+ node['s-sh'] = childNode['s-hn'];
1277
+ // add to our list of nodes to relocate
1278
+ relocateNodes.push({
1279
+ $slotRefNode$: childNode,
1280
+ $nodeToRelocate$: node,
1281
+ });
1282
+ }
1283
+ if (node['s-sr']) {
1284
+ relocateNodes.map((relocateNode) => {
1285
+ if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) {
1286
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1287
+ if (relocateNodeData && !relocateNode.$slotRefNode$) {
1288
+ relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;
1289
+ }
1290
+ }
1291
+ });
1292
+ }
1293
+ }
1294
+ else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
1295
+ // the node is not found within the slot (`childNode`) that we're
1296
+ // currently looking at, so we stick it into `relocateNodes` to
1297
+ // handle later. If we never find a home for this element then
1298
+ // we'll need to hide it
1299
+ relocateNodes.push({
1300
+ $nodeToRelocate$: node,
1301
+ });
1302
+ }
1303
+ }
1304
+ }
1305
+ }
1306
+ // if we're dealing with any type of element (capable of itself being a
1307
+ // slot reference or containing one) then we recur
1308
+ if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1309
+ markSlotContentForRelocation(childNode);
1310
+ }
1311
+ }
1312
+ };
1313
+ /**
1314
+ * Check whether a node is located in a given named slot.
1315
+ *
1316
+ * @param nodeToRelocate the node of interest
1317
+ * @param slotName the slot name to check
1318
+ * @returns whether the node is located in the slot or not
1319
+ */
1320
+ const isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
1321
+ if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1322
+ if (nodeToRelocate.getAttribute('slot') === null && slotName === '') {
1323
+ // if the node doesn't have a slot attribute, and the slot we're checking
1324
+ // is not a named slot, then we assume the node should be within the slot
1325
+ return true;
1326
+ }
1327
+ if (nodeToRelocate.getAttribute('slot') === slotName) {
1328
+ return true;
1329
+ }
1330
+ return false;
1331
+ }
1332
+ if (nodeToRelocate['s-sn'] === slotName) {
1333
+ return true;
1334
+ }
1335
+ return slotName === '';
1336
+ };
1016
1337
  /**
1017
1338
  * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by calling
1018
1339
  * them with `null`. This signals that the DOM element corresponding to the VDom
@@ -1040,6 +1361,7 @@ const nullifyVNodeRefs = (vNode) => {
1040
1361
  * @param isInitialLoad whether or not this is the first call after page load
1041
1362
  */
1042
1363
  const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1364
+ var _a, _b, _c, _d;
1043
1365
  const hostElm = hostRef.$hostElement$;
1044
1366
  const cmpMeta = hostRef.$cmpMeta$;
1045
1367
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -1083,8 +1405,111 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1083
1405
  scopeId = hostElm['s-sc'];
1084
1406
  }
1085
1407
  useNativeShadowDom = (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) !== 0;
1408
+ {
1409
+ contentRef = hostElm['s-cr'];
1410
+ // always reset
1411
+ checkSlotFallbackVisibility = false;
1412
+ }
1086
1413
  // synchronous patch
1087
1414
  patch(oldVNode, rootVnode, isInitialLoad);
1415
+ {
1416
+ // while we're moving nodes around existing nodes, temporarily disable
1417
+ // the disconnectCallback from working
1418
+ plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
1419
+ if (checkSlotRelocate) {
1420
+ markSlotContentForRelocation(rootVnode.$elm$);
1421
+ for (const relocateData of relocateNodes) {
1422
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1423
+ if (!nodeToRelocate['s-ol']) {
1424
+ // add a reference node marking this node's original location
1425
+ // keep a reference to this node for later lookups
1426
+ const orgLocationNode = doc.createTextNode('');
1427
+ orgLocationNode['s-nr'] = nodeToRelocate;
1428
+ nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);
1429
+ }
1430
+ }
1431
+ for (const relocateData of relocateNodes) {
1432
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1433
+ const slotRefNode = relocateData.$slotRefNode$;
1434
+ if (slotRefNode) {
1435
+ const parentNodeRef = slotRefNode.parentNode;
1436
+ // When determining where to insert content, the most simple case would be
1437
+ // to relocate the node immediately following the slot reference node. We do this
1438
+ // by getting a reference to the node immediately following the slot reference node
1439
+ // since we will use `insertBefore` to manipulate the DOM.
1440
+ //
1441
+ // If there is no node immediately following the slot reference node, then we will just
1442
+ // end up appending the node as the last child of the parent.
1443
+ let insertBeforeNode = slotRefNode.nextSibling;
1444
+ // If the node we're currently planning on inserting the new node before is an element,
1445
+ // we need to do some additional checks to make sure we're inserting the node in the correct order.
1446
+ // The use case here would be that we have multiple nodes being relocated to the same slot. So, we want
1447
+ // to make sure they get inserted into their new how in the same order they were declared in their original location.
1448
+ //
1449
+ // TODO(STENCIL-914): Remove `experimentalSlotFixes` check
1450
+ {
1451
+ let orgLocationNode = (_a = nodeToRelocate['s-ol']) === null || _a === void 0 ? void 0 : _a.previousSibling;
1452
+ while (orgLocationNode) {
1453
+ let refNode = (_b = orgLocationNode['s-nr']) !== null && _b !== void 0 ? _b : null;
1454
+ if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
1455
+ refNode = refNode.nextSibling;
1456
+ if (!refNode || !refNode['s-nr']) {
1457
+ insertBeforeNode = refNode;
1458
+ break;
1459
+ }
1460
+ }
1461
+ orgLocationNode = orgLocationNode.previousSibling;
1462
+ }
1463
+ }
1464
+ if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||
1465
+ nodeToRelocate.nextSibling !== insertBeforeNode) {
1466
+ // we've checked that it's worth while to relocate
1467
+ // since that the node to relocate
1468
+ // has a different next sibling or parent relocated
1469
+ if (nodeToRelocate !== insertBeforeNode) {
1470
+ if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {
1471
+ // probably a component in the index.html that doesn't have its hostname set
1472
+ nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;
1473
+ }
1474
+ // Add it back to the dom but in its new home
1475
+ // If we get to this point and `insertBeforeNode` is `null`, that means
1476
+ // we're just going to append the node as the last child of the parent. Passing
1477
+ // `null` as the second arg here will trigger that behavior.
1478
+ parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);
1479
+ // Reset the `hidden` value back to what it was defined as originally
1480
+ // This solves a problem where a `slot` is dynamically rendered and `hidden` may have
1481
+ // been set on content originally, but now it has a slot to go to so it should have
1482
+ // the value it was defined as having in the DOM, not what we overrode it to.
1483
+ if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1484
+ nodeToRelocate.hidden = (_c = nodeToRelocate['s-ih']) !== null && _c !== void 0 ? _c : false;
1485
+ }
1486
+ }
1487
+ }
1488
+ }
1489
+ else {
1490
+ // this node doesn't have a slot home to go to, so let's hide it
1491
+ if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1492
+ // Store the initial value of `hidden` so we can reset it later when
1493
+ // moving nodes around.
1494
+ if (isInitialLoad) {
1495
+ nodeToRelocate['s-ih'] = (_d = nodeToRelocate.hidden) !== null && _d !== void 0 ? _d : false;
1496
+ }
1497
+ nodeToRelocate.hidden = true;
1498
+ }
1499
+ }
1500
+ }
1501
+ }
1502
+ if (checkSlotFallbackVisibility) {
1503
+ updateFallbackSlotVisibility(rootVnode.$elm$);
1504
+ }
1505
+ // done moving nodes around
1506
+ // allow the disconnect callback to work again
1507
+ plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;
1508
+ // always reset
1509
+ relocateNodes.length = 0;
1510
+ }
1511
+ // Clear the content ref so we don't create a memory leak
1512
+ contentRef = undefined;
1088
1513
  };
1089
1514
  const attachToAncestor = (hostRef, ancestorComponent) => {
1090
1515
  if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {
@@ -1652,6 +2077,16 @@ const connectedCallback = (elm) => {
1652
2077
  if (!(hostRef.$flags$ & 1 /* HOST_FLAGS.hasConnected */)) {
1653
2078
  // first time this component has connected
1654
2079
  hostRef.$flags$ |= 1 /* HOST_FLAGS.hasConnected */;
2080
+ {
2081
+ // initUpdate
2082
+ // if the slot polyfill is required we'll need to put some nodes
2083
+ // in here to act as original content anchors as we move nodes around
2084
+ // host element has been connected to the DOM
2085
+ if ((// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field
2086
+ cmpMeta.$flags$ & (4 /* CMP_FLAGS.hasSlotRelocation */ | 8 /* CMP_FLAGS.needsShadowDomShim */))) {
2087
+ setContentReference(elm);
2088
+ }
2089
+ }
1655
2090
  {
1656
2091
  // find the first ancestor component (if there is one) and register
1657
2092
  // this component as one of the actively loading child components for its ancestor
@@ -1698,6 +2133,17 @@ const connectedCallback = (elm) => {
1698
2133
  endConnected();
1699
2134
  }
1700
2135
  };
2136
+ const setContentReference = (elm) => {
2137
+ // only required when we're NOT using native shadow dom (slot)
2138
+ // or this browser doesn't support native shadow dom
2139
+ // and this host element was NOT created with SSR
2140
+ // let's pick out the inner content for slot projection
2141
+ // create a node to represent where the original
2142
+ // content was first placed, which is useful later on
2143
+ const contentRefElm = (elm['s-cr'] = doc.createComment(''));
2144
+ contentRefElm['s-cn'] = true;
2145
+ elm.insertBefore(contentRefElm, elm.firstChild);
2146
+ };
1701
2147
  const disconnectInstance = (instance) => {
1702
2148
  {
1703
2149
  safeCall(instance, 'disconnectedCallback');
@@ -2269,4 +2715,4 @@ exports.promiseResolve = promiseResolve;
2269
2715
  exports.registerInstance = registerInstance;
2270
2716
  exports.setNonce = setNonce;
2271
2717
 
2272
- //# sourceMappingURL=index-b288f7d9.js.map
2718
+ //# sourceMappingURL=index-1f707a55.js.map