@six-group/ui-library 4.0.2 → 4.0.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 (358) hide show
  1. package/dist/cjs/{form-control-9769b310.js → form-control-19303ed2.js} +2 -2
  2. package/dist/cjs/{form-control-9769b310.js.map → form-control-19303ed2.js.map} +1 -1
  3. package/dist/cjs/{index-900437fc.js → index-7d73cbd6.js} +281 -121
  4. package/dist/cjs/index-7d73cbd6.js.map +1 -0
  5. package/dist/cjs/index.cjs.js +15 -0
  6. package/dist/cjs/index.cjs.js.map +1 -1
  7. package/dist/cjs/loader.cjs.js +2 -2
  8. package/dist/cjs/set-attributes_2.cjs.entry.js +1 -1
  9. package/dist/cjs/six-alert.cjs.entry.js +1 -1
  10. package/dist/cjs/six-avatar.cjs.entry.js +1 -1
  11. package/dist/cjs/six-badge.cjs.entry.js +1 -1
  12. package/dist/cjs/six-button.cjs.entry.js +3 -3
  13. package/dist/cjs/six-button.cjs.entry.js.map +1 -1
  14. package/dist/cjs/six-card.cjs.entry.js +1 -1
  15. package/dist/cjs/six-checkbox.cjs.entry.js +3 -3
  16. package/dist/cjs/six-checkbox.cjs.entry.js.map +1 -1
  17. package/dist/cjs/six-datepicker.cjs.entry.js +1 -1
  18. package/dist/cjs/six-details.cjs.entry.js +1 -1
  19. package/dist/cjs/six-dialog.cjs.entry.js +1 -1
  20. package/dist/cjs/six-drawer.cjs.entry.js +2 -2
  21. package/dist/cjs/six-drawer.cjs.entry.js.map +1 -1
  22. package/dist/cjs/six-dropdown_2.cjs.entry.js +1 -1
  23. package/dist/cjs/six-error-page.cjs.entry.js +1 -1
  24. package/dist/cjs/six-error.cjs.entry.js +1 -1
  25. package/dist/cjs/six-file-list-item.cjs.entry.js +1 -1
  26. package/dist/cjs/six-file-list.cjs.entry.js +1 -1
  27. package/dist/cjs/six-file-upload.cjs.entry.js +1 -1
  28. package/dist/cjs/six-footer.cjs.entry.js +1 -1
  29. package/dist/cjs/six-group-label.cjs.entry.js +3 -3
  30. package/dist/cjs/six-group-label.cjs.entry.js.map +1 -1
  31. package/dist/cjs/six-header.cjs.entry.js +1 -1
  32. package/dist/cjs/six-icon-button.cjs.entry.js +1 -1
  33. package/dist/cjs/six-icon.cjs.entry.js +1 -1
  34. package/dist/cjs/six-input.cjs.entry.js +3 -3
  35. package/dist/cjs/six-input.cjs.entry.js.map +1 -1
  36. package/dist/cjs/six-item-picker.cjs.entry.js +1 -1
  37. package/dist/cjs/six-language-switcher.cjs.entry.js +1 -1
  38. package/dist/cjs/six-layout-grid.cjs.entry.js +1 -1
  39. package/dist/cjs/six-main-container.cjs.entry.js +1 -1
  40. package/dist/cjs/six-menu-divider.cjs.entry.js +1 -1
  41. package/dist/cjs/six-menu-item.cjs.entry.js +1 -1
  42. package/dist/cjs/six-menu-label.cjs.entry.js +1 -1
  43. package/dist/cjs/six-picto.cjs.entry.js +1 -1
  44. package/dist/cjs/six-progress-bar.cjs.entry.js +1 -1
  45. package/dist/cjs/six-progress-ring.cjs.entry.js +1 -1
  46. package/dist/cjs/six-radio.cjs.entry.js +1 -1
  47. package/dist/cjs/six-range.cjs.entry.js +3 -3
  48. package/dist/cjs/six-range.cjs.entry.js.map +1 -1
  49. package/dist/cjs/six-root.cjs.entry.js +1 -1
  50. package/dist/cjs/six-search-field.cjs.entry.js +1 -1
  51. package/dist/cjs/six-select.cjs.entry.js +3 -3
  52. package/dist/cjs/six-select.cjs.entry.js.map +1 -1
  53. package/dist/cjs/six-sidebar-item-group.cjs.entry.js +13 -3
  54. package/dist/cjs/six-sidebar-item-group.cjs.entry.js.map +1 -1
  55. package/dist/cjs/six-sidebar-item.cjs.entry.js +6 -4
  56. package/dist/cjs/six-sidebar-item.cjs.entry.js.map +1 -1
  57. package/dist/cjs/six-sidebar.cjs.entry.js +1 -1
  58. package/dist/cjs/six-spinner.cjs.entry.js +1 -1
  59. package/dist/cjs/six-switch.cjs.entry.js +3 -3
  60. package/dist/cjs/six-switch.cjs.entry.js.map +1 -1
  61. package/dist/cjs/six-tab-group.cjs.entry.js +1 -1
  62. package/dist/cjs/six-tab-panel.cjs.entry.js +1 -1
  63. package/dist/cjs/six-tab.cjs.entry.js +1 -1
  64. package/dist/cjs/six-tag.cjs.entry.js +1 -1
  65. package/dist/cjs/six-textarea.cjs.entry.js +3 -3
  66. package/dist/cjs/six-textarea.cjs.entry.js.map +1 -1
  67. package/dist/cjs/six-tile.cjs.entry.js +1 -1
  68. package/dist/cjs/six-timepicker.cjs.entry.js +1 -1
  69. package/dist/cjs/six-tooltip.cjs.entry.js +1 -1
  70. package/dist/cjs/ui-library.cjs.js +3 -3
  71. package/dist/cjs/ui-library.cjs.js.map +1 -1
  72. package/dist/collection/collection-manifest.json +2 -2
  73. package/dist/collection/components/six-button/six-button.js +2 -2
  74. package/dist/collection/components/six-button/six-button.js.map +1 -1
  75. package/dist/collection/components/six-checkbox/six-checkbox.css +3 -0
  76. package/dist/collection/components/six-drawer/six-drawer.js +1 -1
  77. package/dist/collection/components/six-drawer/six-drawer.js.map +1 -1
  78. package/dist/collection/components/six-drawer/test/six-drawer.spec.js +1 -1
  79. package/dist/collection/components/six-drawer/test/six-drawer.spec.js.map +1 -1
  80. package/dist/collection/components/six-group-label/six-group-label.css +3 -0
  81. package/dist/collection/components/six-input/six-input.css +3 -0
  82. package/dist/collection/components/six-range/six-range.css +3 -0
  83. package/dist/collection/components/six-select/six-select.css +3 -0
  84. package/dist/collection/components/six-sidebar-item/six-sidebar-item.css +6 -1
  85. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js +21 -2
  86. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js.map +1 -1
  87. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.css +7 -0
  88. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js +28 -1
  89. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js.map +1 -1
  90. package/dist/collection/components/six-switch/six-switch.css +3 -0
  91. package/dist/collection/components/six-textarea/six-textarea.css +3 -0
  92. package/dist/collection/utils/error-messages.js +14 -0
  93. package/dist/collection/utils/error-messages.js.map +1 -1
  94. package/dist/components/index.d.ts +6 -0
  95. package/dist/components/index.js +16 -2
  96. package/dist/components/index.js.map +1 -1
  97. package/dist/components/set-attributes2.js +2 -0
  98. package/dist/components/set-attributes2.js.map +1 -1
  99. package/dist/components/six-alert.js +3 -0
  100. package/dist/components/six-alert.js.map +1 -1
  101. package/dist/components/six-button.js +2 -2
  102. package/dist/components/six-button.js.map +1 -1
  103. package/dist/components/six-checkbox.js +6 -1
  104. package/dist/components/six-checkbox.js.map +1 -1
  105. package/dist/components/six-datepicker.js +4 -1
  106. package/dist/components/six-datepicker.js.map +1 -1
  107. package/dist/components/six-details2.js +2 -0
  108. package/dist/components/six-details2.js.map +1 -1
  109. package/dist/components/six-dialog.js +2 -0
  110. package/dist/components/six-dialog.js.map +1 -1
  111. package/dist/components/six-drawer.js +3 -1
  112. package/dist/components/six-drawer.js.map +1 -1
  113. package/dist/components/six-dropdown2.js +7 -0
  114. package/dist/components/six-dropdown2.js.map +1 -1
  115. package/dist/components/six-group-label.js +4 -1
  116. package/dist/components/six-group-label.js.map +1 -1
  117. package/dist/components/six-header.js +2 -0
  118. package/dist/components/six-header.js.map +1 -1
  119. package/dist/components/six-input2.js +6 -1
  120. package/dist/components/six-input2.js.map +1 -1
  121. package/dist/components/six-item-picker2.js +4 -0
  122. package/dist/components/six-item-picker2.js.map +1 -1
  123. package/dist/components/six-language-switcher.js +2 -0
  124. package/dist/components/six-language-switcher.js.map +1 -1
  125. package/dist/components/six-layout-grid.js +2 -0
  126. package/dist/components/six-layout-grid.js.map +1 -1
  127. package/dist/components/six-progress-ring.js +2 -0
  128. package/dist/components/six-progress-ring.js.map +1 -1
  129. package/dist/components/six-radio.js +3 -0
  130. package/dist/components/six-radio.js.map +1 -1
  131. package/dist/components/six-range.js +8 -1
  132. package/dist/components/six-range.js.map +1 -1
  133. package/dist/components/six-root.js +2 -0
  134. package/dist/components/six-root.js.map +1 -1
  135. package/dist/components/six-search-field.js +2 -0
  136. package/dist/components/six-search-field.js.map +1 -1
  137. package/dist/components/six-select.js +8 -1
  138. package/dist/components/six-select.js.map +1 -1
  139. package/dist/components/six-sidebar-item-group.js +13 -2
  140. package/dist/components/six-sidebar-item-group.js.map +1 -1
  141. package/dist/components/six-sidebar-item.js +7 -4
  142. package/dist/components/six-sidebar-item.js.map +1 -1
  143. package/dist/components/six-sidebar.js +2 -0
  144. package/dist/components/six-sidebar.js.map +1 -1
  145. package/dist/components/six-switch.js +5 -1
  146. package/dist/components/six-switch.js.map +1 -1
  147. package/dist/components/six-tab-group.js +2 -0
  148. package/dist/components/six-tab-group.js.map +1 -1
  149. package/dist/components/six-textarea.js +7 -1
  150. package/dist/components/six-textarea.js.map +1 -1
  151. package/dist/components/six-timepicker2.js +3 -1
  152. package/dist/components/six-timepicker2.js.map +1 -1
  153. package/dist/components/six-tooltip2.js +2 -0
  154. package/dist/components/six-tooltip2.js.map +1 -1
  155. package/dist/components.json +51 -3
  156. package/dist/esm/{form-control-b0febe88.js → form-control-079f7fb6.js} +2 -2
  157. package/dist/esm/{form-control-b0febe88.js.map → form-control-079f7fb6.js.map} +1 -1
  158. package/dist/esm/{index-8a74f992.js → index-4ee8b33e.js} +281 -121
  159. package/dist/esm/index-4ee8b33e.js.map +1 -0
  160. package/dist/esm/index.js +15 -1
  161. package/dist/esm/index.js.map +1 -1
  162. package/dist/esm/loader.js +3 -3
  163. package/dist/esm/set-attributes_2.entry.js +1 -1
  164. package/dist/esm/six-alert.entry.js +1 -1
  165. package/dist/esm/six-avatar.entry.js +1 -1
  166. package/dist/esm/six-badge.entry.js +1 -1
  167. package/dist/esm/six-button.entry.js +3 -3
  168. package/dist/esm/six-button.entry.js.map +1 -1
  169. package/dist/esm/six-card.entry.js +1 -1
  170. package/dist/esm/six-checkbox.entry.js +3 -3
  171. package/dist/esm/six-checkbox.entry.js.map +1 -1
  172. package/dist/esm/six-datepicker.entry.js +1 -1
  173. package/dist/esm/six-details.entry.js +1 -1
  174. package/dist/esm/six-dialog.entry.js +1 -1
  175. package/dist/esm/six-drawer.entry.js +2 -2
  176. package/dist/esm/six-drawer.entry.js.map +1 -1
  177. package/dist/esm/six-dropdown_2.entry.js +1 -1
  178. package/dist/esm/six-error-page.entry.js +1 -1
  179. package/dist/esm/six-error.entry.js +1 -1
  180. package/dist/esm/six-file-list-item.entry.js +1 -1
  181. package/dist/esm/six-file-list.entry.js +1 -1
  182. package/dist/esm/six-file-upload.entry.js +1 -1
  183. package/dist/esm/six-footer.entry.js +1 -1
  184. package/dist/esm/six-group-label.entry.js +3 -3
  185. package/dist/esm/six-group-label.entry.js.map +1 -1
  186. package/dist/esm/six-header.entry.js +1 -1
  187. package/dist/esm/six-icon-button.entry.js +1 -1
  188. package/dist/esm/six-icon.entry.js +1 -1
  189. package/dist/esm/six-input.entry.js +3 -3
  190. package/dist/esm/six-input.entry.js.map +1 -1
  191. package/dist/esm/six-item-picker.entry.js +1 -1
  192. package/dist/esm/six-language-switcher.entry.js +1 -1
  193. package/dist/esm/six-layout-grid.entry.js +1 -1
  194. package/dist/esm/six-main-container.entry.js +1 -1
  195. package/dist/esm/six-menu-divider.entry.js +1 -1
  196. package/dist/esm/six-menu-item.entry.js +1 -1
  197. package/dist/esm/six-menu-label.entry.js +1 -1
  198. package/dist/esm/six-picto.entry.js +1 -1
  199. package/dist/esm/six-progress-bar.entry.js +1 -1
  200. package/dist/esm/six-progress-ring.entry.js +1 -1
  201. package/dist/esm/six-radio.entry.js +1 -1
  202. package/dist/esm/six-range.entry.js +3 -3
  203. package/dist/esm/six-range.entry.js.map +1 -1
  204. package/dist/esm/six-root.entry.js +1 -1
  205. package/dist/esm/six-search-field.entry.js +1 -1
  206. package/dist/esm/six-select.entry.js +3 -3
  207. package/dist/esm/six-select.entry.js.map +1 -1
  208. package/dist/esm/six-sidebar-item-group.entry.js +13 -3
  209. package/dist/esm/six-sidebar-item-group.entry.js.map +1 -1
  210. package/dist/esm/six-sidebar-item.entry.js +6 -4
  211. package/dist/esm/six-sidebar-item.entry.js.map +1 -1
  212. package/dist/esm/six-sidebar.entry.js +1 -1
  213. package/dist/esm/six-spinner.entry.js +1 -1
  214. package/dist/esm/six-switch.entry.js +3 -3
  215. package/dist/esm/six-switch.entry.js.map +1 -1
  216. package/dist/esm/six-tab-group.entry.js +1 -1
  217. package/dist/esm/six-tab-panel.entry.js +1 -1
  218. package/dist/esm/six-tab.entry.js +1 -1
  219. package/dist/esm/six-tag.entry.js +1 -1
  220. package/dist/esm/six-textarea.entry.js +3 -3
  221. package/dist/esm/six-textarea.entry.js.map +1 -1
  222. package/dist/esm/six-tile.entry.js +1 -1
  223. package/dist/esm/six-timepicker.entry.js +1 -1
  224. package/dist/esm/six-tooltip.entry.js +1 -1
  225. package/dist/esm/ui-library.js +4 -4
  226. package/dist/esm/ui-library.js.map +1 -1
  227. package/dist/types/components/six-sidebar-item/six-sidebar-item.d.ts +5 -0
  228. package/dist/types/components/six-sidebar-item-group/six-sidebar-item-group.d.ts +6 -0
  229. package/dist/types/components.d.ts +396 -0
  230. package/dist/types/stencil-public-runtime.d.ts +26 -3
  231. package/dist/types/utils/error-messages.d.ts +2 -1
  232. package/dist/ui-library/index.esm.js +1 -1
  233. package/dist/ui-library/index.esm.js.map +1 -1
  234. package/dist/ui-library/{p-5800663b.entry.js → p-0416ec85.entry.js} +2 -2
  235. package/dist/ui-library/{p-ae601a0f.entry.js → p-0d8154b1.entry.js} +2 -2
  236. package/dist/ui-library/p-120a1b66.entry.js +2 -0
  237. package/dist/ui-library/{p-538f3c50.entry.js.map → p-120a1b66.entry.js.map} +1 -1
  238. package/dist/ui-library/{p-9c1be3fb.entry.js → p-16eb37cd.entry.js} +2 -2
  239. package/dist/ui-library/{p-878226a0.entry.js → p-1f7dac36.entry.js} +2 -2
  240. package/dist/ui-library/{p-a6a9ee96.entry.js → p-20cb60c9.entry.js} +2 -2
  241. package/dist/ui-library/{p-613283a7.entry.js → p-21606e14.entry.js} +2 -2
  242. package/dist/ui-library/{p-411ed539.entry.js → p-2280038f.entry.js} +2 -2
  243. package/dist/ui-library/{p-e775dcb4.entry.js → p-24e80289.entry.js} +2 -2
  244. package/dist/ui-library/{p-264d4ea8.entry.js → p-27987d45.entry.js} +2 -2
  245. package/dist/ui-library/{p-cd67da3d.entry.js → p-2945a132.entry.js} +2 -2
  246. package/dist/ui-library/{p-3cc5addb.entry.js → p-2e99f389.entry.js} +2 -2
  247. package/dist/ui-library/p-3d7678a8.entry.js +2 -0
  248. package/dist/ui-library/p-3d7678a8.entry.js.map +1 -0
  249. package/dist/ui-library/p-4196a75a.entry.js +2 -0
  250. package/dist/ui-library/{p-a457fee8.entry.js.map → p-4196a75a.entry.js.map} +1 -1
  251. package/dist/ui-library/{p-dc4f41d8.entry.js → p-48b7c199.entry.js} +2 -2
  252. package/dist/ui-library/{p-37557787.entry.js → p-51630491.entry.js} +2 -2
  253. package/dist/ui-library/{p-14c1ec31.entry.js → p-5218986b.entry.js} +2 -2
  254. package/dist/ui-library/{p-66fe54b3.entry.js → p-5904d3c3.entry.js} +2 -2
  255. package/dist/ui-library/p-66a48dc4.entry.js +2 -0
  256. package/dist/ui-library/{p-db936ad7.entry.js.map → p-66a48dc4.entry.js.map} +1 -1
  257. package/dist/ui-library/{p-91b51800.entry.js → p-66d1d93d.entry.js} +2 -2
  258. package/dist/ui-library/{p-25bb1752.entry.js → p-6aced322.entry.js} +2 -2
  259. package/dist/ui-library/{p-22c9b8c3.entry.js → p-6e87aeea.entry.js} +2 -2
  260. package/dist/ui-library/p-74179b03.entry.js +2 -0
  261. package/dist/ui-library/{p-ab91c2a9.entry.js.map → p-74179b03.entry.js.map} +1 -1
  262. package/dist/ui-library/{p-1d5ee1a0.entry.js → p-77424c6b.entry.js} +2 -2
  263. package/dist/ui-library/{p-13b43e04.entry.js → p-7d00de3a.entry.js} +2 -2
  264. package/dist/ui-library/{p-cdaed936.entry.js → p-7e9257f3.entry.js} +2 -2
  265. package/dist/ui-library/p-8226e363.entry.js +2 -0
  266. package/dist/ui-library/{p-b57afbe4.entry.js.map → p-8226e363.entry.js.map} +1 -1
  267. package/dist/ui-library/{p-a2035543.entry.js → p-8296e24c.entry.js} +2 -2
  268. package/dist/ui-library/{p-a2035543.entry.js.map → p-8296e24c.entry.js.map} +1 -1
  269. package/dist/ui-library/{p-7e3ad38a.entry.js → p-93a9b693.entry.js} +2 -2
  270. package/dist/ui-library/{p-5af44076.entry.js → p-94bd8347.entry.js} +2 -2
  271. package/dist/ui-library/{p-ee950ce2.entry.js → p-9bec3e14.entry.js} +2 -2
  272. package/dist/ui-library/{p-9b354f5d.entry.js → p-a15928c4.entry.js} +2 -2
  273. package/dist/ui-library/{p-cba69e9d.entry.js → p-a4348ad4.entry.js} +2 -2
  274. package/dist/ui-library/{p-7afafb9d.entry.js → p-acd3ecfd.entry.js} +2 -2
  275. package/dist/ui-library/{p-f1dc3a88.entry.js → p-ae383f66.entry.js} +2 -2
  276. package/dist/ui-library/{p-1286ab62.entry.js → p-af0e163e.entry.js} +2 -2
  277. package/dist/ui-library/{p-1286ab62.entry.js.map → p-af0e163e.entry.js.map} +1 -1
  278. package/dist/ui-library/{p-3f1a5ecb.entry.js → p-b3a14438.entry.js} +2 -2
  279. package/dist/ui-library/{p-dfed33c5.entry.js → p-b42fd9c3.entry.js} +2 -2
  280. package/dist/ui-library/p-b5fdfa6a.js +3 -0
  281. package/dist/ui-library/p-b5fdfa6a.js.map +1 -0
  282. package/dist/ui-library/p-b7597736.entry.js +2 -0
  283. package/dist/ui-library/{p-4435ff73.entry.js.map → p-b7597736.entry.js.map} +1 -1
  284. package/dist/ui-library/{p-c03ebf7d.entry.js → p-b906a605.entry.js} +2 -2
  285. package/dist/ui-library/{p-ac099e6b.entry.js → p-b97764a1.entry.js} +2 -2
  286. package/dist/ui-library/p-bbefcec9.entry.js +2 -0
  287. package/dist/ui-library/{p-db34a6cc.entry.js.map → p-bbefcec9.entry.js.map} +1 -1
  288. package/dist/ui-library/{p-b351f889.entry.js → p-c75694df.entry.js} +2 -2
  289. package/dist/ui-library/{p-b6f47c9d.entry.js → p-cb32f8d2.entry.js} +2 -2
  290. package/dist/ui-library/{p-a0f290d0.entry.js → p-cd3281fb.entry.js} +2 -2
  291. package/dist/ui-library/{p-d1bda563.entry.js → p-cec8c149.entry.js} +2 -2
  292. package/dist/ui-library/{p-724875b0.entry.js → p-d1ba2ad5.entry.js} +2 -2
  293. package/dist/ui-library/{p-346f9557.entry.js → p-d2196113.entry.js} +2 -2
  294. package/dist/ui-library/p-de7a9448.entry.js +2 -0
  295. package/dist/ui-library/p-de7a9448.entry.js.map +1 -0
  296. package/dist/ui-library/{p-a55c7258.entry.js → p-df1c4a1f.entry.js} +2 -2
  297. package/dist/ui-library/{p-95fbdd0b.entry.js → p-e740215a.entry.js} +2 -2
  298. package/dist/ui-library/{p-e5020f0d.js → p-f3fdc121.js} +2 -2
  299. package/dist/ui-library/ui-library.css +1 -1
  300. package/dist/ui-library/ui-library.esm.js +1 -1
  301. package/dist/ui-library/ui-library.esm.js.map +1 -1
  302. package/package.json +13 -10
  303. package/dist/cjs/index-900437fc.js.map +0 -1
  304. package/dist/esm/index-8a74f992.js.map +0 -1
  305. package/dist/ui-library/p-4435ff73.entry.js +0 -2
  306. package/dist/ui-library/p-538f3c50.entry.js +0 -2
  307. package/dist/ui-library/p-5ba3a0fe.entry.js +0 -2
  308. package/dist/ui-library/p-5ba3a0fe.entry.js.map +0 -1
  309. package/dist/ui-library/p-6153045b.js +0 -3
  310. package/dist/ui-library/p-6153045b.js.map +0 -1
  311. package/dist/ui-library/p-6197fe2f.entry.js +0 -2
  312. package/dist/ui-library/p-6197fe2f.entry.js.map +0 -1
  313. package/dist/ui-library/p-a457fee8.entry.js +0 -2
  314. package/dist/ui-library/p-ab91c2a9.entry.js +0 -2
  315. package/dist/ui-library/p-b57afbe4.entry.js +0 -2
  316. package/dist/ui-library/p-db34a6cc.entry.js +0 -2
  317. package/dist/ui-library/p-db936ad7.entry.js +0 -2
  318. /package/dist/ui-library/{p-5800663b.entry.js.map → p-0416ec85.entry.js.map} +0 -0
  319. /package/dist/ui-library/{p-ae601a0f.entry.js.map → p-0d8154b1.entry.js.map} +0 -0
  320. /package/dist/ui-library/{p-9c1be3fb.entry.js.map → p-16eb37cd.entry.js.map} +0 -0
  321. /package/dist/ui-library/{p-878226a0.entry.js.map → p-1f7dac36.entry.js.map} +0 -0
  322. /package/dist/ui-library/{p-a6a9ee96.entry.js.map → p-20cb60c9.entry.js.map} +0 -0
  323. /package/dist/ui-library/{p-613283a7.entry.js.map → p-21606e14.entry.js.map} +0 -0
  324. /package/dist/ui-library/{p-411ed539.entry.js.map → p-2280038f.entry.js.map} +0 -0
  325. /package/dist/ui-library/{p-e775dcb4.entry.js.map → p-24e80289.entry.js.map} +0 -0
  326. /package/dist/ui-library/{p-264d4ea8.entry.js.map → p-27987d45.entry.js.map} +0 -0
  327. /package/dist/ui-library/{p-cd67da3d.entry.js.map → p-2945a132.entry.js.map} +0 -0
  328. /package/dist/ui-library/{p-3cc5addb.entry.js.map → p-2e99f389.entry.js.map} +0 -0
  329. /package/dist/ui-library/{p-dc4f41d8.entry.js.map → p-48b7c199.entry.js.map} +0 -0
  330. /package/dist/ui-library/{p-37557787.entry.js.map → p-51630491.entry.js.map} +0 -0
  331. /package/dist/ui-library/{p-14c1ec31.entry.js.map → p-5218986b.entry.js.map} +0 -0
  332. /package/dist/ui-library/{p-66fe54b3.entry.js.map → p-5904d3c3.entry.js.map} +0 -0
  333. /package/dist/ui-library/{p-91b51800.entry.js.map → p-66d1d93d.entry.js.map} +0 -0
  334. /package/dist/ui-library/{p-25bb1752.entry.js.map → p-6aced322.entry.js.map} +0 -0
  335. /package/dist/ui-library/{p-22c9b8c3.entry.js.map → p-6e87aeea.entry.js.map} +0 -0
  336. /package/dist/ui-library/{p-1d5ee1a0.entry.js.map → p-77424c6b.entry.js.map} +0 -0
  337. /package/dist/ui-library/{p-13b43e04.entry.js.map → p-7d00de3a.entry.js.map} +0 -0
  338. /package/dist/ui-library/{p-cdaed936.entry.js.map → p-7e9257f3.entry.js.map} +0 -0
  339. /package/dist/ui-library/{p-7e3ad38a.entry.js.map → p-93a9b693.entry.js.map} +0 -0
  340. /package/dist/ui-library/{p-5af44076.entry.js.map → p-94bd8347.entry.js.map} +0 -0
  341. /package/dist/ui-library/{p-ee950ce2.entry.js.map → p-9bec3e14.entry.js.map} +0 -0
  342. /package/dist/ui-library/{p-9b354f5d.entry.js.map → p-a15928c4.entry.js.map} +0 -0
  343. /package/dist/ui-library/{p-cba69e9d.entry.js.map → p-a4348ad4.entry.js.map} +0 -0
  344. /package/dist/ui-library/{p-7afafb9d.entry.js.map → p-acd3ecfd.entry.js.map} +0 -0
  345. /package/dist/ui-library/{p-f1dc3a88.entry.js.map → p-ae383f66.entry.js.map} +0 -0
  346. /package/dist/ui-library/{p-3f1a5ecb.entry.js.map → p-b3a14438.entry.js.map} +0 -0
  347. /package/dist/ui-library/{p-dfed33c5.entry.js.map → p-b42fd9c3.entry.js.map} +0 -0
  348. /package/dist/ui-library/{p-c03ebf7d.entry.js.map → p-b906a605.entry.js.map} +0 -0
  349. /package/dist/ui-library/{p-ac099e6b.entry.js.map → p-b97764a1.entry.js.map} +0 -0
  350. /package/dist/ui-library/{p-b351f889.entry.js.map → p-c75694df.entry.js.map} +0 -0
  351. /package/dist/ui-library/{p-b6f47c9d.entry.js.map → p-cb32f8d2.entry.js.map} +0 -0
  352. /package/dist/ui-library/{p-a0f290d0.entry.js.map → p-cd3281fb.entry.js.map} +0 -0
  353. /package/dist/ui-library/{p-d1bda563.entry.js.map → p-cec8c149.entry.js.map} +0 -0
  354. /package/dist/ui-library/{p-724875b0.entry.js.map → p-d1ba2ad5.entry.js.map} +0 -0
  355. /package/dist/ui-library/{p-346f9557.entry.js.map → p-d2196113.entry.js.map} +0 -0
  356. /package/dist/ui-library/{p-a55c7258.entry.js.map → p-df1c4a1f.entry.js.map} +0 -0
  357. /package/dist/ui-library/{p-95fbdd0b.entry.js.map → p-e740215a.entry.js.map} +0 -0
  358. /package/dist/ui-library/{p-e5020f0d.js.map → p-f3fdc121.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, 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
@@ -132,13 +133,13 @@ const h = (nodeName, vnodeData, ...children) => {
132
133
  };
133
134
  walk(children);
134
135
  if (vnodeData) {
135
- // normalize class / classname attributes
136
136
  if (vnodeData.key) {
137
137
  key = vnodeData.key;
138
138
  }
139
139
  if (vnodeData.name) {
140
140
  slotName = vnodeData.name;
141
141
  }
142
+ // normalize class / className attributes
142
143
  {
143
144
  const classData = vnodeData.className || vnodeData.class;
144
145
  if (classData) {
@@ -505,11 +506,19 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
505
506
  // except for the first character, we keep the event name case
506
507
  memberName = ln[2] + memberName.slice(3);
507
508
  }
508
- if (oldValue) {
509
- plt.rel(elm, memberName, oldValue, false);
510
- }
511
- if (newValue) {
512
- plt.ael(elm, memberName, newValue, false);
509
+ if (oldValue || newValue) {
510
+ // Need to account for "capture" events.
511
+ // If the event name ends with "Capture", we'll update the name to remove
512
+ // the "Capture" suffix and make sure the event listener is setup to handle the capture event.
513
+ const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
514
+ // Make sure we only replace the last instance of "Capture"
515
+ memberName = memberName.replace(CAPTURE_EVENT_REGEX, '');
516
+ if (oldValue) {
517
+ plt.rel(elm, memberName, oldValue, capture);
518
+ }
519
+ if (newValue) {
520
+ plt.ael(elm, memberName, newValue, capture);
521
+ }
513
522
  }
514
523
  }
515
524
  else {
@@ -551,6 +560,8 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
551
560
  };
552
561
  const parseClassListRegex = /\s/;
553
562
  const parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex));
563
+ const CAPTURE_EVENT_SUFFIX = 'Capture';
564
+ const CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + '$');
554
565
  const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
555
566
  // if the element passed in is a shadow root, which is a document fragment
556
567
  // then we want to be adding attrs/props to the shadow root's "host" element
@@ -584,6 +595,7 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
584
595
  * @returns the newly created node
585
596
  */
586
597
  const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
598
+ var _a;
587
599
  // tslint:disable-next-line: prefer-const
588
600
  const newVNode = newParentVNode.$children$[childIndex];
589
601
  let i = 0;
@@ -662,6 +674,8 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
662
674
  if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {
663
675
  // remember the content reference comment
664
676
  elm['s-sr'] = true;
677
+ // Persist the name of the slot that this slot was going to be projected into.
678
+ elm['s-fs'] = (_a = newVNode.$attrs$) === null || _a === void 0 ? void 0 : _a.slot;
665
679
  // remember the content reference comment
666
680
  elm['s-cr'] = contentRef;
667
681
  // remember the slot name, or empty string for default slot
@@ -678,6 +692,7 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
678
692
  return elm;
679
693
  };
680
694
  const putBackInOriginalLocation = (parentElm, recursive) => {
695
+ var _a;
681
696
  plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
682
697
  const oldSlotChildNodes = parentElm.childNodes;
683
698
  for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {
@@ -690,9 +705,17 @@ const putBackInOriginalLocation = (parentElm, recursive) => {
690
705
  parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));
691
706
  // remove the old original location comment entirely
692
707
  // later on the patch function will know what to do
693
- // and move this to the correct spot in need be
708
+ // and move this to the correct spot if need be
694
709
  childNode['s-ol'].remove();
695
710
  childNode['s-ol'] = undefined;
711
+ // Reset so we can correctly move the node around again.
712
+ childNode['s-sh'] = undefined;
713
+ // When putting an element node back in its original location,
714
+ // we need to reset the `slot` attribute back to the value it originally had
715
+ // so we can correctly relocate it again in the future
716
+ if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
717
+ childNode.setAttribute('slot', (_a = childNode['s-sn']) !== null && _a !== void 0 ? _a : '');
718
+ }
696
719
  checkSlotRelocate = true;
697
720
  }
698
721
  if (recursive) {
@@ -1116,42 +1139,53 @@ const patch = (oldVNode, newVNode) => {
1116
1139
  elm.data = text;
1117
1140
  }
1118
1141
  };
1142
+ /**
1143
+ * Adjust the `.hidden` property as-needed on any nodes in a DOM subtree which
1144
+ * are slot fallbacks nodes.
1145
+ *
1146
+ * A slot fallback node should be visible by default. Then, it should be
1147
+ * conditionally hidden if:
1148
+ *
1149
+ * - it has a sibling with a `slot` property set to its slot name or if
1150
+ * - it is a default fallback slot node, in which case we hide if it has any
1151
+ * content
1152
+ *
1153
+ * @param elm the element of interest
1154
+ */
1119
1155
  const updateFallbackSlotVisibility = (elm) => {
1120
- // tslint:disable-next-line: prefer-const
1121
1156
  const childNodes = elm.childNodes;
1122
- let childNode;
1123
- let i;
1124
- let ilen;
1125
- let j;
1126
- let slotNameAttr;
1127
- let nodeType;
1128
- for (i = 0, ilen = childNodes.length; i < ilen; i++) {
1129
- childNode = childNodes[i];
1157
+ for (const childNode of childNodes) {
1130
1158
  if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1131
1159
  if (childNode['s-sr']) {
1132
1160
  // this is a slot fallback node
1133
1161
  // get the slot name for this slot reference node
1134
- slotNameAttr = childNode['s-sn'];
1162
+ const slotName = childNode['s-sn'];
1135
1163
  // by default always show a fallback slot node
1136
1164
  // then hide it if there are other slots in the light dom
1137
1165
  childNode.hidden = false;
1138
- for (j = 0; j < ilen; j++) {
1139
- nodeType = childNodes[j].nodeType;
1140
- if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') {
1141
- // this sibling node is from a different component OR is a named fallback slot node
1142
- if (nodeType === 1 /* NODE_TYPE.ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {
1143
- childNode.hidden = true;
1144
- break;
1166
+ // we need to check all of its sibling nodes in order to see if
1167
+ // `childNode` should be hidden
1168
+ for (const siblingNode of childNodes) {
1169
+ // Don't check the node against itself
1170
+ if (siblingNode !== childNode) {
1171
+ if (siblingNode['s-hn'] !== childNode['s-hn'] || slotName !== '') {
1172
+ // this sibling node is from a different component OR is a named
1173
+ // fallback slot node
1174
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ &&
1175
+ (slotName === siblingNode.getAttribute('slot') || slotName === siblingNode['s-sn'])) {
1176
+ childNode.hidden = true;
1177
+ break;
1178
+ }
1145
1179
  }
1146
- }
1147
- else {
1148
- // this is a default fallback slot node
1149
- // any element or text node (with content)
1150
- // should hide the default fallback slot node
1151
- if (nodeType === 1 /* NODE_TYPE.ElementNode */ ||
1152
- (nodeType === 3 /* NODE_TYPE.TextNode */ && childNodes[j].textContent.trim() !== '')) {
1153
- childNode.hidden = true;
1154
- break;
1180
+ else {
1181
+ // this is a default fallback slot node
1182
+ // any element or text node (with content)
1183
+ // should hide the default fallback slot node
1184
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ ||
1185
+ (siblingNode.nodeType === 3 /* NODE_TYPE.TextNode */ && siblingNode.textContent.trim() !== '')) {
1186
+ childNode.hidden = true;
1187
+ break;
1188
+ }
1155
1189
  }
1156
1190
  }
1157
1191
  }
@@ -1161,45 +1195,67 @@ const updateFallbackSlotVisibility = (elm) => {
1161
1195
  }
1162
1196
  }
1163
1197
  };
1198
+ /**
1199
+ * Component-global information about nodes which are either currently being
1200
+ * relocated or will be shortly.
1201
+ */
1164
1202
  const relocateNodes = [];
1165
- const relocateSlotContent = (elm) => {
1203
+ /**
1204
+ * Mark the contents of a slot for relocation via adding references to them to
1205
+ * the {@link relocateNodes} data structure. The actual work of relocating them
1206
+ * will then be handled in {@link renderVdom}.
1207
+ *
1208
+ * @param elm a render node whose child nodes need to be relocated
1209
+ */
1210
+ const markSlotContentForRelocation = (elm) => {
1166
1211
  // tslint:disable-next-line: prefer-const
1167
- let childNode;
1168
1212
  let node;
1169
1213
  let hostContentNodes;
1170
- let slotNameAttr;
1171
- let relocateNodeData;
1172
1214
  let j;
1173
- let i = 0;
1174
- const childNodes = elm.childNodes;
1175
- const ilen = childNodes.length;
1176
- for (; i < ilen; i++) {
1177
- childNode = childNodes[i];
1215
+ for (const childNode of elm.childNodes) {
1216
+ // we need to find child nodes which are slot references so we can then try
1217
+ // to match them up with nodes that need to be relocated
1178
1218
  if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {
1179
- // first got the content reference comment node
1180
- // then we got it's parent, which is where all the host content is in now
1219
+ // first get the content reference comment node ('s-cr'), then we get
1220
+ // its parent, which is where all the host content is now
1181
1221
  hostContentNodes = node.parentNode.childNodes;
1182
- slotNameAttr = childNode['s-sn'];
1222
+ const slotName = childNode['s-sn'];
1223
+ // iterate through all the nodes under the location where the host was
1224
+ // originally rendered
1183
1225
  for (j = hostContentNodes.length - 1; j >= 0; j--) {
1184
1226
  node = hostContentNodes[j];
1185
- if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) {
1186
- // let's do some relocating to its new home
1187
- // but never relocate a content reference node
1188
- // that is suppose to always represent the original content location
1189
- if (isNodeLocatedInSlot(node, slotNameAttr)) {
1227
+ // check that the node is not a content reference node or a node
1228
+ // reference and then check that the host name does not match that of
1229
+ // childNode.
1230
+ // In addition, check that the slot either has not already been relocated, or
1231
+ // that its current location's host is not childNode's host. This is essentially
1232
+ // a check so that we don't try to relocate (and then hide) a node that is already
1233
+ // where it should be.
1234
+ if (!node['s-cn'] &&
1235
+ !node['s-nr'] &&
1236
+ node['s-hn'] !== childNode['s-hn'] &&
1237
+ (!BUILD.experimentalSlotFixes )) {
1238
+ // if `node` is located in the slot that `childNode` refers to (via the
1239
+ // `'s-sn'` property) then we need to relocate it from it's current spot
1240
+ // (under the host element parent) to the right slot location
1241
+ if (isNodeLocatedInSlot(node, slotName)) {
1190
1242
  // it's possible we've already decided to relocate this node
1191
- relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1243
+ let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1192
1244
  // made some changes to slots
1193
1245
  // let's make sure we also double check
1194
1246
  // fallbacks are correctly hidden or shown
1195
1247
  checkSlotFallbackVisibility = true;
1196
- node['s-sn'] = node['s-sn'] || slotNameAttr;
1248
+ // ensure that the slot-name attr is correct
1249
+ node['s-sn'] = node['s-sn'] || slotName;
1197
1250
  if (relocateNodeData) {
1198
- // previously we never found a slot home for this node
1199
- // but turns out we did, so let's remember it now
1251
+ relocateNodeData.$nodeToRelocate$['s-sh'] = childNode['s-hn'];
1252
+ // we marked this node for relocation previously but didn't find
1253
+ // out the slot reference node to which it needs to be relocated
1254
+ // so write it down now!
1200
1255
  relocateNodeData.$slotRefNode$ = childNode;
1201
1256
  }
1202
1257
  else {
1258
+ node['s-sh'] = childNode['s-hn'];
1203
1259
  // add to our list of nodes to relocate
1204
1260
  relocateNodes.push({
1205
1261
  $slotRefNode$: childNode,
@@ -1218,8 +1274,10 @@ const relocateSlotContent = (elm) => {
1218
1274
  }
1219
1275
  }
1220
1276
  else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
1221
- // so far this element does not have a slot home, not setting slotRefNode on purpose
1222
- // if we never find a home for this element then we'll need to hide it
1277
+ // the node is not found within the slot (`childNode`) that we're
1278
+ // currently looking at, so we stick it into `relocateNodes` to
1279
+ // handle later. If we never find a home for this element then
1280
+ // we'll need to hide it
1223
1281
  relocateNodes.push({
1224
1282
  $nodeToRelocate$: node,
1225
1283
  });
@@ -1227,30 +1285,41 @@ const relocateSlotContent = (elm) => {
1227
1285
  }
1228
1286
  }
1229
1287
  }
1288
+ // if we're dealing with any type of element (capable of itself being a
1289
+ // slot reference or containing one) then we recur
1230
1290
  if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1231
- relocateSlotContent(childNode);
1291
+ markSlotContentForRelocation(childNode);
1232
1292
  }
1233
1293
  }
1234
1294
  };
1235
- const isNodeLocatedInSlot = (nodeToRelocate, slotNameAttr) => {
1295
+ /**
1296
+ * Check whether a node is located in a given named slot.
1297
+ *
1298
+ * @param nodeToRelocate the node of interest
1299
+ * @param slotName the slot name to check
1300
+ * @returns whether the node is located in the slot or not
1301
+ */
1302
+ const isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
1236
1303
  if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1237
- if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {
1304
+ if (nodeToRelocate.getAttribute('slot') === null && slotName === '') {
1305
+ // if the node doesn't have a slot attribute, and the slot we're checking
1306
+ // is not a named slot, then we assume the node should be within the slot
1238
1307
  return true;
1239
1308
  }
1240
- if (nodeToRelocate.getAttribute('slot') === slotNameAttr) {
1309
+ if (nodeToRelocate.getAttribute('slot') === slotName) {
1241
1310
  return true;
1242
1311
  }
1243
1312
  return false;
1244
1313
  }
1245
- if (nodeToRelocate['s-sn'] === slotNameAttr) {
1314
+ if (nodeToRelocate['s-sn'] === slotName) {
1246
1315
  return true;
1247
1316
  }
1248
- return slotNameAttr === '';
1317
+ return slotName === '';
1249
1318
  };
1250
1319
  /**
1251
- * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by
1252
- * calling them with `null`. This signals that the DOM element corresponding to
1253
- * the VDom node has been removed from the DOM.
1320
+ * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by calling
1321
+ * them with `null`. This signals that the DOM element corresponding to the VDom
1322
+ * node has been removed from the DOM.
1254
1323
  *
1255
1324
  * @param vNode a virtual DOM node
1256
1325
  */
@@ -1274,6 +1343,7 @@ const nullifyVNodeRefs = (vNode) => {
1274
1343
  * @param isInitialLoad whether or not this is the first call after page load
1275
1344
  */
1276
1345
  const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1346
+ var _a, _b;
1277
1347
  const hostElm = hostRef.$hostElement$;
1278
1348
  const cmpMeta = hostRef.$cmpMeta$;
1279
1349
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -1329,43 +1399,48 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1329
1399
  // the disconnectCallback from working
1330
1400
  plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
1331
1401
  if (checkSlotRelocate) {
1332
- relocateSlotContent(rootVnode.$elm$);
1333
- let relocateData;
1334
- let nodeToRelocate;
1335
- let orgLocationNode;
1336
- let parentNodeRef;
1337
- let insertBeforeNode;
1338
- let refNode;
1339
- let i = 0;
1340
- for (; i < relocateNodes.length; i++) {
1341
- relocateData = relocateNodes[i];
1342
- nodeToRelocate = relocateData.$nodeToRelocate$;
1402
+ markSlotContentForRelocation(rootVnode.$elm$);
1403
+ for (const relocateData of relocateNodes) {
1404
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1343
1405
  if (!nodeToRelocate['s-ol']) {
1344
1406
  // add a reference node marking this node's original location
1345
1407
  // keep a reference to this node for later lookups
1346
- orgLocationNode =
1347
- doc.createTextNode('');
1408
+ const orgLocationNode = doc.createTextNode('');
1348
1409
  orgLocationNode['s-nr'] = nodeToRelocate;
1349
1410
  nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);
1350
1411
  }
1351
1412
  }
1352
- for (i = 0; i < relocateNodes.length; i++) {
1353
- relocateData = relocateNodes[i];
1354
- nodeToRelocate = relocateData.$nodeToRelocate$;
1355
- if (relocateData.$slotRefNode$) {
1356
- // by default we're just going to insert it directly
1357
- // after the slot reference node
1358
- parentNodeRef = relocateData.$slotRefNode$.parentNode;
1359
- insertBeforeNode = relocateData.$slotRefNode$.nextSibling;
1360
- orgLocationNode = nodeToRelocate['s-ol'];
1361
- while ((orgLocationNode = orgLocationNode.previousSibling)) {
1362
- refNode = orgLocationNode['s-nr'];
1363
- if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
1364
- refNode = refNode.nextSibling;
1365
- if (!refNode || !refNode['s-nr']) {
1366
- insertBeforeNode = refNode;
1367
- break;
1413
+ for (const relocateData of relocateNodes) {
1414
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1415
+ const slotRefNode = relocateData.$slotRefNode$;
1416
+ if (slotRefNode) {
1417
+ const parentNodeRef = slotRefNode.parentNode;
1418
+ // When determining where to insert content, the most simple case would be
1419
+ // to relocate the node immediately following the slot reference node. We do this
1420
+ // by getting a reference to the node immediately following the slot reference node
1421
+ // since we will use `insertBefore` to manipulate the DOM.
1422
+ //
1423
+ // If there is no node immediately following the slot reference node, then we will just
1424
+ // end up appending the node as the last child of the parent.
1425
+ let insertBeforeNode = slotRefNode.nextSibling;
1426
+ // If the node we're currently planning on inserting the new node before is an element,
1427
+ // we need to do some additional checks to make sure we're inserting the node in the correct order.
1428
+ // The use case here would be that we have multiple nodes being relocated to the same slot. So, we want
1429
+ // to make sure they get inserted into their new how in the same order they were declared in their original location.
1430
+ //
1431
+ // TODO(STENCIL-914): Remove `experimentalSlotFixes` check
1432
+ {
1433
+ let orgLocationNode = (_a = nodeToRelocate['s-ol']) === null || _a === void 0 ? void 0 : _a.previousSibling;
1434
+ while (orgLocationNode) {
1435
+ let refNode = (_b = orgLocationNode['s-nr']) !== null && _b !== void 0 ? _b : null;
1436
+ if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
1437
+ refNode = refNode.nextSibling;
1438
+ if (!refNode || !refNode['s-nr']) {
1439
+ insertBeforeNode = refNode;
1440
+ break;
1441
+ }
1368
1442
  }
1443
+ orgLocationNode = orgLocationNode.previousSibling;
1369
1444
  }
1370
1445
  }
1371
1446
  if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||
@@ -1375,10 +1450,13 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1375
1450
  // has a different next sibling or parent relocated
1376
1451
  if (nodeToRelocate !== insertBeforeNode) {
1377
1452
  if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {
1378
- // probably a component in the index.html that doesn't have it's hostname set
1453
+ // probably a component in the index.html that doesn't have its hostname set
1379
1454
  nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;
1380
1455
  }
1381
- // add it back to the dom but in its new home
1456
+ // Add it back to the dom but in its new home
1457
+ // If we get to this point and `insertBeforeNode` is `null`, that means
1458
+ // we're just going to append the node as the last child of the parent. Passing
1459
+ // `null` as the second arg here will trigger that behavior.
1382
1460
  parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);
1383
1461
  }
1384
1462
  }
@@ -1555,6 +1633,10 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
1555
1633
  */
1556
1634
  const callRender = (hostRef, instance, elm, isInitialLoad) => {
1557
1635
  try {
1636
+ /**
1637
+ * minification optimization: `allRenderFn` is `true` if all components have a `render`
1638
+ * method, so we can call the method immediately. If not, check before calling it.
1639
+ */
1558
1640
  instance = instance.render() ;
1559
1641
  {
1560
1642
  hostRef.$flags$ &= ~16 /* HOST_FLAGS.isQueuedForUpdate */;
@@ -1637,6 +1719,16 @@ const appDidLoad = (who) => {
1637
1719
  }
1638
1720
  nextTick(() => emitEvent(win, 'appload', { detail: { namespace: NAMESPACE } }));
1639
1721
  };
1722
+ /**
1723
+ * Allows to safely call a method, e.g. `componentDidLoad`, on an instance,
1724
+ * e.g. custom element node. If a build figures out that e.g. no component
1725
+ * has a `componentDidLoad` method, the instance method gets removed from the
1726
+ * output bundle and this function returns `undefined`.
1727
+ * @param instance any object that may or may not contain methods
1728
+ * @param method method name
1729
+ * @param arg single arbitrary argument
1730
+ * @returns result of method call if it exists, otherwise `undefined`
1731
+ */
1640
1732
  const safeCall = (instance, method, arg) => {
1641
1733
  if (instance && instance[method]) {
1642
1734
  try {
@@ -1704,6 +1796,7 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1704
1796
  * @returns a reference to the same constructor passed in (but now mutated)
1705
1797
  */
1706
1798
  const proxyComponent = (Cstr, cmpMeta, flags) => {
1799
+ var _a;
1707
1800
  if (cmpMeta.$members$) {
1708
1801
  if (Cstr.watchers) {
1709
1802
  cmpMeta.$watchers$ = Cstr.watchers;
@@ -1741,7 +1834,7 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1741
1834
  });
1742
1835
  if ((flags & 1 /* PROXY_FLAGS.isElementConstructor */)) {
1743
1836
  const attrNameToPropName = new Map();
1744
- prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {
1837
+ prototype.attributeChangedCallback = function (attrName, oldValue, newValue) {
1745
1838
  plt.jmp(() => {
1746
1839
  const propName = attrNameToPropName.get(attrName);
1747
1840
  // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback
@@ -1764,12 +1857,12 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1764
1857
  // customElements.define('my-component', MyComponent);
1765
1858
  // </script>
1766
1859
  // ```
1767
- // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback
1860
+ // In this case if we do not un-shadow here and use the value of the shadowing property, attributeChangedCallback
1768
1861
  // will be called with `newValue = "some-value"` and will set the shadowed property (this.someAttribute = "another-value")
1769
1862
  // to the value that was set inline i.e. "some-value" from above example. When
1770
- // the connectedCallback attempts to unshadow it will use "some-value" as the initial value rather than "another-value"
1863
+ // the connectedCallback attempts to un-shadow it will use "some-value" as the initial value rather than "another-value"
1771
1864
  //
1772
- // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed
1865
+ // The case where the attribute was NOT set inline but was not set programmatically shall be handled/un-shadowed
1773
1866
  // by connectedCallback as this attributeChangedCallback will not fire.
1774
1867
  //
1775
1868
  // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties
@@ -1789,26 +1882,65 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1789
1882
  // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.
1790
1883
  return;
1791
1884
  }
1885
+ else if (propName == null) {
1886
+ // At this point we should know this is not a "member", so we can treat it like watching an attribute
1887
+ // on a vanilla web component
1888
+ const hostRef = getHostRef(this);
1889
+ const flags = hostRef === null || hostRef === void 0 ? void 0 : hostRef.$flags$;
1890
+ // We only want to trigger the callback(s) if:
1891
+ // 1. The instance is ready
1892
+ // 2. The watchers are ready
1893
+ // 3. The value has changed
1894
+ if (!(flags & 8 /* HOST_FLAGS.isConstructingInstance */) &&
1895
+ flags & 128 /* HOST_FLAGS.isWatchReady */ &&
1896
+ newValue !== oldValue) {
1897
+ const instance = hostRef.$lazyInstance$ ;
1898
+ const entry = cmpMeta.$watchers$[attrName];
1899
+ entry === null || entry === void 0 ? void 0 : entry.forEach((callbackName) => {
1900
+ if (instance[callbackName] != null) {
1901
+ instance[callbackName].call(instance, newValue, oldValue, attrName);
1902
+ }
1903
+ });
1904
+ }
1905
+ return;
1906
+ }
1792
1907
  this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;
1793
1908
  });
1794
1909
  };
1795
- // create an array of attributes to observe
1796
- // and also create a map of html attribute name to js property name
1797
- Cstr.observedAttributes = members
1798
- .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes
1799
- .map(([propName, m]) => {
1800
- const attrName = m[1] || propName;
1801
- attrNameToPropName.set(attrName, propName);
1802
- if (m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {
1803
- cmpMeta.$attrsToReflect$.push([propName, attrName]);
1804
- }
1805
- return attrName;
1806
- });
1910
+ // Create an array of attributes to observe
1911
+ // This list in comprised of all strings used within a `@Watch()` decorator
1912
+ // on a component as well as any Stencil-specific "members" (`@Prop()`s and `@State()`s).
1913
+ // As such, there is no way to guarantee type-safety here that a user hasn't entered
1914
+ // an invalid attribute.
1915
+ Cstr.observedAttributes = Array.from(new Set([
1916
+ ...Object.keys((_a = cmpMeta.$watchers$) !== null && _a !== void 0 ? _a : {}),
1917
+ ...members
1918
+ .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */)
1919
+ .map(([propName, m]) => {
1920
+ const attrName = m[1] || propName;
1921
+ attrNameToPropName.set(attrName, propName);
1922
+ if (m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {
1923
+ cmpMeta.$attrsToReflect$.push([propName, attrName]);
1924
+ }
1925
+ return attrName;
1926
+ }),
1927
+ ]));
1807
1928
  }
1808
1929
  }
1809
1930
  return Cstr;
1810
1931
  };
1811
- const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {
1932
+ /**
1933
+ * Initialize a Stencil component given a reference to its host element, its
1934
+ * runtime bookkeeping data structure, runtime metadata about the component,
1935
+ * and (optionally) an HMR version ID.
1936
+ *
1937
+ * @param elm a host element
1938
+ * @param hostRef the element's runtime bookkeeping object
1939
+ * @param cmpMeta runtime metadata for the Stencil component
1940
+ * @param hmrVersionId an (optional) HMR version ID
1941
+ */
1942
+ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1943
+ let Cstr;
1812
1944
  // initializeComponent
1813
1945
  if ((hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {
1814
1946
  // Let the runtime know that the component has been initialized
@@ -2005,6 +2137,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
2005
2137
  plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;
2006
2138
  lazyBundles.map((lazyBundle) => {
2007
2139
  lazyBundle[1].map((compactMeta) => {
2140
+ var _a;
2008
2141
  const cmpMeta = {
2009
2142
  $flags$: compactMeta[0],
2010
2143
  $tagName$: compactMeta[1],
@@ -2021,7 +2154,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
2021
2154
  cmpMeta.$attrsToReflect$ = [];
2022
2155
  }
2023
2156
  {
2024
- cmpMeta.$watchers$ = {};
2157
+ cmpMeta.$watchers$ = (_a = compactMeta[4]) !== null && _a !== void 0 ? _a : {};
2025
2158
  }
2026
2159
  const tagName = cmpMeta.$tagName$;
2027
2160
  const HostElement = class extends HTMLElement {
@@ -2134,13 +2267,40 @@ const hostListenerOpts = (flags) => (flags & 2 /* LISTENER_FLAGS.Capture */) !==
2134
2267
  * @returns void
2135
2268
  */
2136
2269
  const setNonce = (nonce) => (plt.$nonce$ = nonce);
2270
+ /**
2271
+ * A WeakMap mapping runtime component references to their corresponding host reference
2272
+ * instances.
2273
+ */
2137
2274
  const hostRefs = /*@__PURE__*/ new WeakMap();
2275
+ /**
2276
+ * Given a {@link d.RuntimeRef} retrieve the corresponding {@link d.HostRef}
2277
+ *
2278
+ * @param ref the runtime ref of interest
2279
+ * @returns the Host reference (if found) or undefined
2280
+ */
2138
2281
  const getHostRef = (ref) => hostRefs.get(ref);
2282
+ /**
2283
+ * Register a lazy instance with the {@link hostRefs} object so it's
2284
+ * corresponding {@link d.HostRef} can be retrieved later.
2285
+ *
2286
+ * @param lazyInstance the lazy instance of interest
2287
+ * @param hostRef that instances `HostRef` object
2288
+ * @returns a reference to the host ref WeakMap
2289
+ */
2139
2290
  const registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);
2140
- const registerHost = (elm, cmpMeta) => {
2291
+ /**
2292
+ * Register a host element for a Stencil component, setting up various metadata
2293
+ * and callbacks based on {@link BUILD} flags as well as the component's runtime
2294
+ * metadata.
2295
+ *
2296
+ * @param hostElement the host element to register
2297
+ * @param cmpMeta runtime metadata for that component
2298
+ * @returns a reference to the host ref WeakMap
2299
+ */
2300
+ const registerHost = (hostElement, cmpMeta) => {
2141
2301
  const hostRef = {
2142
2302
  $flags$: 0,
2143
- $hostElement$: elm,
2303
+ $hostElement$: hostElement,
2144
2304
  $cmpMeta$: cmpMeta,
2145
2305
  $instanceValues$: new Map(),
2146
2306
  };
@@ -2149,11 +2309,11 @@ const registerHost = (elm, cmpMeta) => {
2149
2309
  }
2150
2310
  {
2151
2311
  hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));
2152
- elm['s-p'] = [];
2153
- elm['s-rc'] = [];
2312
+ hostElement['s-p'] = [];
2313
+ hostElement['s-rc'] = [];
2154
2314
  }
2155
- addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
2156
- return hostRefs.set(elm, hostRef);
2315
+ addHostEventListeners(hostElement, hostRef, cmpMeta.$listeners$);
2316
+ return hostRefs.set(hostElement, hostRef);
2157
2317
  };
2158
2318
  const isMemberInElement = (elm, memberName) => memberName in elm;
2159
2319
  const consoleError = (e, el) => (0, console.error)(e, el);
@@ -2466,4 +2626,4 @@ exports.promiseResolve = promiseResolve;
2466
2626
  exports.registerInstance = registerInstance;
2467
2627
  exports.setNonce = setNonce;
2468
2628
 
2469
- //# sourceMappingURL=index-900437fc.js.map
2629
+ //# sourceMappingURL=index-7d73cbd6.js.map