@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
@@ -1,4 +1,5 @@
1
1
  const NAMESPACE = 'ui-library';
2
+ const BUILD = /* ui-library */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: true, cmpDidUnload: false, cmpDidUpdate: true, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: true, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: true, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, scoped: true, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: true, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: true };
2
3
 
3
4
  /**
4
5
  * Virtual DOM patching algorithm based on Snabbdom by
@@ -110,13 +111,13 @@ const h = (nodeName, vnodeData, ...children) => {
110
111
  };
111
112
  walk(children);
112
113
  if (vnodeData) {
113
- // normalize class / classname attributes
114
114
  if (vnodeData.key) {
115
115
  key = vnodeData.key;
116
116
  }
117
117
  if (vnodeData.name) {
118
118
  slotName = vnodeData.name;
119
119
  }
120
+ // normalize class / className attributes
120
121
  {
121
122
  const classData = vnodeData.className || vnodeData.class;
122
123
  if (classData) {
@@ -483,11 +484,19 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
483
484
  // except for the first character, we keep the event name case
484
485
  memberName = ln[2] + memberName.slice(3);
485
486
  }
486
- if (oldValue) {
487
- plt.rel(elm, memberName, oldValue, false);
488
- }
489
- if (newValue) {
490
- plt.ael(elm, memberName, newValue, false);
487
+ if (oldValue || newValue) {
488
+ // Need to account for "capture" events.
489
+ // If the event name ends with "Capture", we'll update the name to remove
490
+ // the "Capture" suffix and make sure the event listener is setup to handle the capture event.
491
+ const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
492
+ // Make sure we only replace the last instance of "Capture"
493
+ memberName = memberName.replace(CAPTURE_EVENT_REGEX, '');
494
+ if (oldValue) {
495
+ plt.rel(elm, memberName, oldValue, capture);
496
+ }
497
+ if (newValue) {
498
+ plt.ael(elm, memberName, newValue, capture);
499
+ }
491
500
  }
492
501
  }
493
502
  else {
@@ -529,6 +538,8 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
529
538
  };
530
539
  const parseClassListRegex = /\s/;
531
540
  const parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex));
541
+ const CAPTURE_EVENT_SUFFIX = 'Capture';
542
+ const CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + '$');
532
543
  const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
533
544
  // if the element passed in is a shadow root, which is a document fragment
534
545
  // then we want to be adding attrs/props to the shadow root's "host" element
@@ -562,6 +573,7 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
562
573
  * @returns the newly created node
563
574
  */
564
575
  const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
576
+ var _a;
565
577
  // tslint:disable-next-line: prefer-const
566
578
  const newVNode = newParentVNode.$children$[childIndex];
567
579
  let i = 0;
@@ -640,6 +652,8 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
640
652
  if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {
641
653
  // remember the content reference comment
642
654
  elm['s-sr'] = true;
655
+ // Persist the name of the slot that this slot was going to be projected into.
656
+ elm['s-fs'] = (_a = newVNode.$attrs$) === null || _a === void 0 ? void 0 : _a.slot;
643
657
  // remember the content reference comment
644
658
  elm['s-cr'] = contentRef;
645
659
  // remember the slot name, or empty string for default slot
@@ -656,6 +670,7 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
656
670
  return elm;
657
671
  };
658
672
  const putBackInOriginalLocation = (parentElm, recursive) => {
673
+ var _a;
659
674
  plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
660
675
  const oldSlotChildNodes = parentElm.childNodes;
661
676
  for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {
@@ -668,9 +683,17 @@ const putBackInOriginalLocation = (parentElm, recursive) => {
668
683
  parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));
669
684
  // remove the old original location comment entirely
670
685
  // later on the patch function will know what to do
671
- // and move this to the correct spot in need be
686
+ // and move this to the correct spot if need be
672
687
  childNode['s-ol'].remove();
673
688
  childNode['s-ol'] = undefined;
689
+ // Reset so we can correctly move the node around again.
690
+ childNode['s-sh'] = undefined;
691
+ // When putting an element node back in its original location,
692
+ // we need to reset the `slot` attribute back to the value it originally had
693
+ // so we can correctly relocate it again in the future
694
+ if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
695
+ childNode.setAttribute('slot', (_a = childNode['s-sn']) !== null && _a !== void 0 ? _a : '');
696
+ }
674
697
  checkSlotRelocate = true;
675
698
  }
676
699
  if (recursive) {
@@ -1094,42 +1117,53 @@ const patch = (oldVNode, newVNode) => {
1094
1117
  elm.data = text;
1095
1118
  }
1096
1119
  };
1120
+ /**
1121
+ * Adjust the `.hidden` property as-needed on any nodes in a DOM subtree which
1122
+ * are slot fallbacks nodes.
1123
+ *
1124
+ * A slot fallback node should be visible by default. Then, it should be
1125
+ * conditionally hidden if:
1126
+ *
1127
+ * - it has a sibling with a `slot` property set to its slot name or if
1128
+ * - it is a default fallback slot node, in which case we hide if it has any
1129
+ * content
1130
+ *
1131
+ * @param elm the element of interest
1132
+ */
1097
1133
  const updateFallbackSlotVisibility = (elm) => {
1098
- // tslint:disable-next-line: prefer-const
1099
1134
  const childNodes = elm.childNodes;
1100
- let childNode;
1101
- let i;
1102
- let ilen;
1103
- let j;
1104
- let slotNameAttr;
1105
- let nodeType;
1106
- for (i = 0, ilen = childNodes.length; i < ilen; i++) {
1107
- childNode = childNodes[i];
1135
+ for (const childNode of childNodes) {
1108
1136
  if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1109
1137
  if (childNode['s-sr']) {
1110
1138
  // this is a slot fallback node
1111
1139
  // get the slot name for this slot reference node
1112
- slotNameAttr = childNode['s-sn'];
1140
+ const slotName = childNode['s-sn'];
1113
1141
  // by default always show a fallback slot node
1114
1142
  // then hide it if there are other slots in the light dom
1115
1143
  childNode.hidden = false;
1116
- for (j = 0; j < ilen; j++) {
1117
- nodeType = childNodes[j].nodeType;
1118
- if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') {
1119
- // this sibling node is from a different component OR is a named fallback slot node
1120
- if (nodeType === 1 /* NODE_TYPE.ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {
1121
- childNode.hidden = true;
1122
- break;
1144
+ // we need to check all of its sibling nodes in order to see if
1145
+ // `childNode` should be hidden
1146
+ for (const siblingNode of childNodes) {
1147
+ // Don't check the node against itself
1148
+ if (siblingNode !== childNode) {
1149
+ if (siblingNode['s-hn'] !== childNode['s-hn'] || slotName !== '') {
1150
+ // this sibling node is from a different component OR is a named
1151
+ // fallback slot node
1152
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ &&
1153
+ (slotName === siblingNode.getAttribute('slot') || slotName === siblingNode['s-sn'])) {
1154
+ childNode.hidden = true;
1155
+ break;
1156
+ }
1123
1157
  }
1124
- }
1125
- else {
1126
- // this is a default fallback slot node
1127
- // any element or text node (with content)
1128
- // should hide the default fallback slot node
1129
- if (nodeType === 1 /* NODE_TYPE.ElementNode */ ||
1130
- (nodeType === 3 /* NODE_TYPE.TextNode */ && childNodes[j].textContent.trim() !== '')) {
1131
- childNode.hidden = true;
1132
- break;
1158
+ else {
1159
+ // this is a default fallback slot node
1160
+ // any element or text node (with content)
1161
+ // should hide the default fallback slot node
1162
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ ||
1163
+ (siblingNode.nodeType === 3 /* NODE_TYPE.TextNode */ && siblingNode.textContent.trim() !== '')) {
1164
+ childNode.hidden = true;
1165
+ break;
1166
+ }
1133
1167
  }
1134
1168
  }
1135
1169
  }
@@ -1139,45 +1173,67 @@ const updateFallbackSlotVisibility = (elm) => {
1139
1173
  }
1140
1174
  }
1141
1175
  };
1176
+ /**
1177
+ * Component-global information about nodes which are either currently being
1178
+ * relocated or will be shortly.
1179
+ */
1142
1180
  const relocateNodes = [];
1143
- const relocateSlotContent = (elm) => {
1181
+ /**
1182
+ * Mark the contents of a slot for relocation via adding references to them to
1183
+ * the {@link relocateNodes} data structure. The actual work of relocating them
1184
+ * will then be handled in {@link renderVdom}.
1185
+ *
1186
+ * @param elm a render node whose child nodes need to be relocated
1187
+ */
1188
+ const markSlotContentForRelocation = (elm) => {
1144
1189
  // tslint:disable-next-line: prefer-const
1145
- let childNode;
1146
1190
  let node;
1147
1191
  let hostContentNodes;
1148
- let slotNameAttr;
1149
- let relocateNodeData;
1150
1192
  let j;
1151
- let i = 0;
1152
- const childNodes = elm.childNodes;
1153
- const ilen = childNodes.length;
1154
- for (; i < ilen; i++) {
1155
- childNode = childNodes[i];
1193
+ for (const childNode of elm.childNodes) {
1194
+ // we need to find child nodes which are slot references so we can then try
1195
+ // to match them up with nodes that need to be relocated
1156
1196
  if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {
1157
- // first got the content reference comment node
1158
- // then we got it's parent, which is where all the host content is in now
1197
+ // first get the content reference comment node ('s-cr'), then we get
1198
+ // its parent, which is where all the host content is now
1159
1199
  hostContentNodes = node.parentNode.childNodes;
1160
- slotNameAttr = childNode['s-sn'];
1200
+ const slotName = childNode['s-sn'];
1201
+ // iterate through all the nodes under the location where the host was
1202
+ // originally rendered
1161
1203
  for (j = hostContentNodes.length - 1; j >= 0; j--) {
1162
1204
  node = hostContentNodes[j];
1163
- if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) {
1164
- // let's do some relocating to its new home
1165
- // but never relocate a content reference node
1166
- // that is suppose to always represent the original content location
1167
- if (isNodeLocatedInSlot(node, slotNameAttr)) {
1205
+ // check that the node is not a content reference node or a node
1206
+ // reference and then check that the host name does not match that of
1207
+ // childNode.
1208
+ // In addition, check that the slot either has not already been relocated, or
1209
+ // that its current location's host is not childNode's host. This is essentially
1210
+ // a check so that we don't try to relocate (and then hide) a node that is already
1211
+ // where it should be.
1212
+ if (!node['s-cn'] &&
1213
+ !node['s-nr'] &&
1214
+ node['s-hn'] !== childNode['s-hn'] &&
1215
+ (!BUILD.experimentalSlotFixes )) {
1216
+ // if `node` is located in the slot that `childNode` refers to (via the
1217
+ // `'s-sn'` property) then we need to relocate it from it's current spot
1218
+ // (under the host element parent) to the right slot location
1219
+ if (isNodeLocatedInSlot(node, slotName)) {
1168
1220
  // it's possible we've already decided to relocate this node
1169
- relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1221
+ let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1170
1222
  // made some changes to slots
1171
1223
  // let's make sure we also double check
1172
1224
  // fallbacks are correctly hidden or shown
1173
1225
  checkSlotFallbackVisibility = true;
1174
- node['s-sn'] = node['s-sn'] || slotNameAttr;
1226
+ // ensure that the slot-name attr is correct
1227
+ node['s-sn'] = node['s-sn'] || slotName;
1175
1228
  if (relocateNodeData) {
1176
- // previously we never found a slot home for this node
1177
- // but turns out we did, so let's remember it now
1229
+ relocateNodeData.$nodeToRelocate$['s-sh'] = childNode['s-hn'];
1230
+ // we marked this node for relocation previously but didn't find
1231
+ // out the slot reference node to which it needs to be relocated
1232
+ // so write it down now!
1178
1233
  relocateNodeData.$slotRefNode$ = childNode;
1179
1234
  }
1180
1235
  else {
1236
+ node['s-sh'] = childNode['s-hn'];
1181
1237
  // add to our list of nodes to relocate
1182
1238
  relocateNodes.push({
1183
1239
  $slotRefNode$: childNode,
@@ -1196,8 +1252,10 @@ const relocateSlotContent = (elm) => {
1196
1252
  }
1197
1253
  }
1198
1254
  else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
1199
- // so far this element does not have a slot home, not setting slotRefNode on purpose
1200
- // if we never find a home for this element then we'll need to hide it
1255
+ // the node is not found within the slot (`childNode`) that we're
1256
+ // currently looking at, so we stick it into `relocateNodes` to
1257
+ // handle later. If we never find a home for this element then
1258
+ // we'll need to hide it
1201
1259
  relocateNodes.push({
1202
1260
  $nodeToRelocate$: node,
1203
1261
  });
@@ -1205,30 +1263,41 @@ const relocateSlotContent = (elm) => {
1205
1263
  }
1206
1264
  }
1207
1265
  }
1266
+ // if we're dealing with any type of element (capable of itself being a
1267
+ // slot reference or containing one) then we recur
1208
1268
  if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1209
- relocateSlotContent(childNode);
1269
+ markSlotContentForRelocation(childNode);
1210
1270
  }
1211
1271
  }
1212
1272
  };
1213
- const isNodeLocatedInSlot = (nodeToRelocate, slotNameAttr) => {
1273
+ /**
1274
+ * Check whether a node is located in a given named slot.
1275
+ *
1276
+ * @param nodeToRelocate the node of interest
1277
+ * @param slotName the slot name to check
1278
+ * @returns whether the node is located in the slot or not
1279
+ */
1280
+ const isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
1214
1281
  if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1215
- if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {
1282
+ if (nodeToRelocate.getAttribute('slot') === null && slotName === '') {
1283
+ // if the node doesn't have a slot attribute, and the slot we're checking
1284
+ // is not a named slot, then we assume the node should be within the slot
1216
1285
  return true;
1217
1286
  }
1218
- if (nodeToRelocate.getAttribute('slot') === slotNameAttr) {
1287
+ if (nodeToRelocate.getAttribute('slot') === slotName) {
1219
1288
  return true;
1220
1289
  }
1221
1290
  return false;
1222
1291
  }
1223
- if (nodeToRelocate['s-sn'] === slotNameAttr) {
1292
+ if (nodeToRelocate['s-sn'] === slotName) {
1224
1293
  return true;
1225
1294
  }
1226
- return slotNameAttr === '';
1295
+ return slotName === '';
1227
1296
  };
1228
1297
  /**
1229
- * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by
1230
- * calling them with `null`. This signals that the DOM element corresponding to
1231
- * the VDom node has been removed from the DOM.
1298
+ * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by calling
1299
+ * them with `null`. This signals that the DOM element corresponding to the VDom
1300
+ * node has been removed from the DOM.
1232
1301
  *
1233
1302
  * @param vNode a virtual DOM node
1234
1303
  */
@@ -1252,6 +1321,7 @@ const nullifyVNodeRefs = (vNode) => {
1252
1321
  * @param isInitialLoad whether or not this is the first call after page load
1253
1322
  */
1254
1323
  const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1324
+ var _a, _b;
1255
1325
  const hostElm = hostRef.$hostElement$;
1256
1326
  const cmpMeta = hostRef.$cmpMeta$;
1257
1327
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -1307,43 +1377,48 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1307
1377
  // the disconnectCallback from working
1308
1378
  plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
1309
1379
  if (checkSlotRelocate) {
1310
- relocateSlotContent(rootVnode.$elm$);
1311
- let relocateData;
1312
- let nodeToRelocate;
1313
- let orgLocationNode;
1314
- let parentNodeRef;
1315
- let insertBeforeNode;
1316
- let refNode;
1317
- let i = 0;
1318
- for (; i < relocateNodes.length; i++) {
1319
- relocateData = relocateNodes[i];
1320
- nodeToRelocate = relocateData.$nodeToRelocate$;
1380
+ markSlotContentForRelocation(rootVnode.$elm$);
1381
+ for (const relocateData of relocateNodes) {
1382
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1321
1383
  if (!nodeToRelocate['s-ol']) {
1322
1384
  // add a reference node marking this node's original location
1323
1385
  // keep a reference to this node for later lookups
1324
- orgLocationNode =
1325
- doc.createTextNode('');
1386
+ const orgLocationNode = doc.createTextNode('');
1326
1387
  orgLocationNode['s-nr'] = nodeToRelocate;
1327
1388
  nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);
1328
1389
  }
1329
1390
  }
1330
- for (i = 0; i < relocateNodes.length; i++) {
1331
- relocateData = relocateNodes[i];
1332
- nodeToRelocate = relocateData.$nodeToRelocate$;
1333
- if (relocateData.$slotRefNode$) {
1334
- // by default we're just going to insert it directly
1335
- // after the slot reference node
1336
- parentNodeRef = relocateData.$slotRefNode$.parentNode;
1337
- insertBeforeNode = relocateData.$slotRefNode$.nextSibling;
1338
- orgLocationNode = nodeToRelocate['s-ol'];
1339
- while ((orgLocationNode = orgLocationNode.previousSibling)) {
1340
- refNode = orgLocationNode['s-nr'];
1341
- if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
1342
- refNode = refNode.nextSibling;
1343
- if (!refNode || !refNode['s-nr']) {
1344
- insertBeforeNode = refNode;
1345
- break;
1391
+ for (const relocateData of relocateNodes) {
1392
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1393
+ const slotRefNode = relocateData.$slotRefNode$;
1394
+ if (slotRefNode) {
1395
+ const parentNodeRef = slotRefNode.parentNode;
1396
+ // When determining where to insert content, the most simple case would be
1397
+ // to relocate the node immediately following the slot reference node. We do this
1398
+ // by getting a reference to the node immediately following the slot reference node
1399
+ // since we will use `insertBefore` to manipulate the DOM.
1400
+ //
1401
+ // If there is no node immediately following the slot reference node, then we will just
1402
+ // end up appending the node as the last child of the parent.
1403
+ let insertBeforeNode = slotRefNode.nextSibling;
1404
+ // If the node we're currently planning on inserting the new node before is an element,
1405
+ // we need to do some additional checks to make sure we're inserting the node in the correct order.
1406
+ // The use case here would be that we have multiple nodes being relocated to the same slot. So, we want
1407
+ // to make sure they get inserted into their new how in the same order they were declared in their original location.
1408
+ //
1409
+ // TODO(STENCIL-914): Remove `experimentalSlotFixes` check
1410
+ {
1411
+ let orgLocationNode = (_a = nodeToRelocate['s-ol']) === null || _a === void 0 ? void 0 : _a.previousSibling;
1412
+ while (orgLocationNode) {
1413
+ let refNode = (_b = orgLocationNode['s-nr']) !== null && _b !== void 0 ? _b : null;
1414
+ if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
1415
+ refNode = refNode.nextSibling;
1416
+ if (!refNode || !refNode['s-nr']) {
1417
+ insertBeforeNode = refNode;
1418
+ break;
1419
+ }
1346
1420
  }
1421
+ orgLocationNode = orgLocationNode.previousSibling;
1347
1422
  }
1348
1423
  }
1349
1424
  if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||
@@ -1353,10 +1428,13 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1353
1428
  // has a different next sibling or parent relocated
1354
1429
  if (nodeToRelocate !== insertBeforeNode) {
1355
1430
  if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {
1356
- // probably a component in the index.html that doesn't have it's hostname set
1431
+ // probably a component in the index.html that doesn't have its hostname set
1357
1432
  nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;
1358
1433
  }
1359
- // add it back to the dom but in its new home
1434
+ // Add it back to the dom but in its new home
1435
+ // If we get to this point and `insertBeforeNode` is `null`, that means
1436
+ // we're just going to append the node as the last child of the parent. Passing
1437
+ // `null` as the second arg here will trigger that behavior.
1360
1438
  parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);
1361
1439
  }
1362
1440
  }
@@ -1533,6 +1611,10 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
1533
1611
  */
1534
1612
  const callRender = (hostRef, instance, elm, isInitialLoad) => {
1535
1613
  try {
1614
+ /**
1615
+ * minification optimization: `allRenderFn` is `true` if all components have a `render`
1616
+ * method, so we can call the method immediately. If not, check before calling it.
1617
+ */
1536
1618
  instance = instance.render() ;
1537
1619
  {
1538
1620
  hostRef.$flags$ &= ~16 /* HOST_FLAGS.isQueuedForUpdate */;
@@ -1615,6 +1697,16 @@ const appDidLoad = (who) => {
1615
1697
  }
1616
1698
  nextTick(() => emitEvent(win, 'appload', { detail: { namespace: NAMESPACE } }));
1617
1699
  };
1700
+ /**
1701
+ * Allows to safely call a method, e.g. `componentDidLoad`, on an instance,
1702
+ * e.g. custom element node. If a build figures out that e.g. no component
1703
+ * has a `componentDidLoad` method, the instance method gets removed from the
1704
+ * output bundle and this function returns `undefined`.
1705
+ * @param instance any object that may or may not contain methods
1706
+ * @param method method name
1707
+ * @param arg single arbitrary argument
1708
+ * @returns result of method call if it exists, otherwise `undefined`
1709
+ */
1618
1710
  const safeCall = (instance, method, arg) => {
1619
1711
  if (instance && instance[method]) {
1620
1712
  try {
@@ -1682,6 +1774,7 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1682
1774
  * @returns a reference to the same constructor passed in (but now mutated)
1683
1775
  */
1684
1776
  const proxyComponent = (Cstr, cmpMeta, flags) => {
1777
+ var _a;
1685
1778
  if (cmpMeta.$members$) {
1686
1779
  if (Cstr.watchers) {
1687
1780
  cmpMeta.$watchers$ = Cstr.watchers;
@@ -1719,7 +1812,7 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1719
1812
  });
1720
1813
  if ((flags & 1 /* PROXY_FLAGS.isElementConstructor */)) {
1721
1814
  const attrNameToPropName = new Map();
1722
- prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {
1815
+ prototype.attributeChangedCallback = function (attrName, oldValue, newValue) {
1723
1816
  plt.jmp(() => {
1724
1817
  const propName = attrNameToPropName.get(attrName);
1725
1818
  // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback
@@ -1742,12 +1835,12 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1742
1835
  // customElements.define('my-component', MyComponent);
1743
1836
  // </script>
1744
1837
  // ```
1745
- // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback
1838
+ // In this case if we do not un-shadow here and use the value of the shadowing property, attributeChangedCallback
1746
1839
  // will be called with `newValue = "some-value"` and will set the shadowed property (this.someAttribute = "another-value")
1747
1840
  // to the value that was set inline i.e. "some-value" from above example. When
1748
- // the connectedCallback attempts to unshadow it will use "some-value" as the initial value rather than "another-value"
1841
+ // the connectedCallback attempts to un-shadow it will use "some-value" as the initial value rather than "another-value"
1749
1842
  //
1750
- // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed
1843
+ // The case where the attribute was NOT set inline but was not set programmatically shall be handled/un-shadowed
1751
1844
  // by connectedCallback as this attributeChangedCallback will not fire.
1752
1845
  //
1753
1846
  // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties
@@ -1767,26 +1860,65 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1767
1860
  // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.
1768
1861
  return;
1769
1862
  }
1863
+ else if (propName == null) {
1864
+ // At this point we should know this is not a "member", so we can treat it like watching an attribute
1865
+ // on a vanilla web component
1866
+ const hostRef = getHostRef(this);
1867
+ const flags = hostRef === null || hostRef === void 0 ? void 0 : hostRef.$flags$;
1868
+ // We only want to trigger the callback(s) if:
1869
+ // 1. The instance is ready
1870
+ // 2. The watchers are ready
1871
+ // 3. The value has changed
1872
+ if (!(flags & 8 /* HOST_FLAGS.isConstructingInstance */) &&
1873
+ flags & 128 /* HOST_FLAGS.isWatchReady */ &&
1874
+ newValue !== oldValue) {
1875
+ const instance = hostRef.$lazyInstance$ ;
1876
+ const entry = cmpMeta.$watchers$[attrName];
1877
+ entry === null || entry === void 0 ? void 0 : entry.forEach((callbackName) => {
1878
+ if (instance[callbackName] != null) {
1879
+ instance[callbackName].call(instance, newValue, oldValue, attrName);
1880
+ }
1881
+ });
1882
+ }
1883
+ return;
1884
+ }
1770
1885
  this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;
1771
1886
  });
1772
1887
  };
1773
- // create an array of attributes to observe
1774
- // and also create a map of html attribute name to js property name
1775
- Cstr.observedAttributes = members
1776
- .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes
1777
- .map(([propName, m]) => {
1778
- const attrName = m[1] || propName;
1779
- attrNameToPropName.set(attrName, propName);
1780
- if (m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {
1781
- cmpMeta.$attrsToReflect$.push([propName, attrName]);
1782
- }
1783
- return attrName;
1784
- });
1888
+ // Create an array of attributes to observe
1889
+ // This list in comprised of all strings used within a `@Watch()` decorator
1890
+ // on a component as well as any Stencil-specific "members" (`@Prop()`s and `@State()`s).
1891
+ // As such, there is no way to guarantee type-safety here that a user hasn't entered
1892
+ // an invalid attribute.
1893
+ Cstr.observedAttributes = Array.from(new Set([
1894
+ ...Object.keys((_a = cmpMeta.$watchers$) !== null && _a !== void 0 ? _a : {}),
1895
+ ...members
1896
+ .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */)
1897
+ .map(([propName, m]) => {
1898
+ const attrName = m[1] || propName;
1899
+ attrNameToPropName.set(attrName, propName);
1900
+ if (m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {
1901
+ cmpMeta.$attrsToReflect$.push([propName, attrName]);
1902
+ }
1903
+ return attrName;
1904
+ }),
1905
+ ]));
1785
1906
  }
1786
1907
  }
1787
1908
  return Cstr;
1788
1909
  };
1789
- const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {
1910
+ /**
1911
+ * Initialize a Stencil component given a reference to its host element, its
1912
+ * runtime bookkeeping data structure, runtime metadata about the component,
1913
+ * and (optionally) an HMR version ID.
1914
+ *
1915
+ * @param elm a host element
1916
+ * @param hostRef the element's runtime bookkeeping object
1917
+ * @param cmpMeta runtime metadata for the Stencil component
1918
+ * @param hmrVersionId an (optional) HMR version ID
1919
+ */
1920
+ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1921
+ let Cstr;
1790
1922
  // initializeComponent
1791
1923
  if ((hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {
1792
1924
  // Let the runtime know that the component has been initialized
@@ -1983,6 +2115,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1983
2115
  plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;
1984
2116
  lazyBundles.map((lazyBundle) => {
1985
2117
  lazyBundle[1].map((compactMeta) => {
2118
+ var _a;
1986
2119
  const cmpMeta = {
1987
2120
  $flags$: compactMeta[0],
1988
2121
  $tagName$: compactMeta[1],
@@ -1999,7 +2132,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1999
2132
  cmpMeta.$attrsToReflect$ = [];
2000
2133
  }
2001
2134
  {
2002
- cmpMeta.$watchers$ = {};
2135
+ cmpMeta.$watchers$ = (_a = compactMeta[4]) !== null && _a !== void 0 ? _a : {};
2003
2136
  }
2004
2137
  const tagName = cmpMeta.$tagName$;
2005
2138
  const HostElement = class extends HTMLElement {
@@ -2112,13 +2245,40 @@ const hostListenerOpts = (flags) => (flags & 2 /* LISTENER_FLAGS.Capture */) !==
2112
2245
  * @returns void
2113
2246
  */
2114
2247
  const setNonce = (nonce) => (plt.$nonce$ = nonce);
2248
+ /**
2249
+ * A WeakMap mapping runtime component references to their corresponding host reference
2250
+ * instances.
2251
+ */
2115
2252
  const hostRefs = /*@__PURE__*/ new WeakMap();
2253
+ /**
2254
+ * Given a {@link d.RuntimeRef} retrieve the corresponding {@link d.HostRef}
2255
+ *
2256
+ * @param ref the runtime ref of interest
2257
+ * @returns the Host reference (if found) or undefined
2258
+ */
2116
2259
  const getHostRef = (ref) => hostRefs.get(ref);
2260
+ /**
2261
+ * Register a lazy instance with the {@link hostRefs} object so it's
2262
+ * corresponding {@link d.HostRef} can be retrieved later.
2263
+ *
2264
+ * @param lazyInstance the lazy instance of interest
2265
+ * @param hostRef that instances `HostRef` object
2266
+ * @returns a reference to the host ref WeakMap
2267
+ */
2117
2268
  const registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);
2118
- const registerHost = (elm, cmpMeta) => {
2269
+ /**
2270
+ * Register a host element for a Stencil component, setting up various metadata
2271
+ * and callbacks based on {@link BUILD} flags as well as the component's runtime
2272
+ * metadata.
2273
+ *
2274
+ * @param hostElement the host element to register
2275
+ * @param cmpMeta runtime metadata for that component
2276
+ * @returns a reference to the host ref WeakMap
2277
+ */
2278
+ const registerHost = (hostElement, cmpMeta) => {
2119
2279
  const hostRef = {
2120
2280
  $flags$: 0,
2121
- $hostElement$: elm,
2281
+ $hostElement$: hostElement,
2122
2282
  $cmpMeta$: cmpMeta,
2123
2283
  $instanceValues$: new Map(),
2124
2284
  };
@@ -2127,11 +2287,11 @@ const registerHost = (elm, cmpMeta) => {
2127
2287
  }
2128
2288
  {
2129
2289
  hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));
2130
- elm['s-p'] = [];
2131
- elm['s-rc'] = [];
2290
+ hostElement['s-p'] = [];
2291
+ hostElement['s-rc'] = [];
2132
2292
  }
2133
- addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
2134
- return hostRefs.set(elm, hostRef);
2293
+ addHostEventListeners(hostElement, hostRef, cmpMeta.$listeners$);
2294
+ return hostRefs.set(hostElement, hostRef);
2135
2295
  };
2136
2296
  const isMemberInElement = (elm, memberName) => memberName in elm;
2137
2297
  const consoleError = (e, el) => (0, console.error)(e, el);
@@ -2437,4 +2597,4 @@ const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
2437
2597
 
2438
2598
  export { Host as H, bootstrapLazy as b, createEvent as c, getElement as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
2439
2599
 
2440
- //# sourceMappingURL=index-8a74f992.js.map
2600
+ //# sourceMappingURL=index-4ee8b33e.js.map