@mgdis/mg-components 5.19.2 → 5.20.0

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 (496) hide show
  1. package/dist/cjs/{components.utils-dc9c8a53.js → components.utils-cd908d4e.js} +102 -99
  2. package/dist/cjs/components.utils-cd908d4e.js.map +1 -0
  3. package/dist/cjs/{index-c042e24b.js → index-8532b5e9.js} +320 -137
  4. package/dist/cjs/index-8532b5e9.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/mg-action-more_34.cjs.entry.js +5130 -5057
  7. package/dist/cjs/mg-action-more_34.cjs.entry.js.map +1 -1
  8. package/dist/cjs/mg-components.cjs.js +3 -3
  9. package/dist/cjs/mg-components.cjs.js.map +1 -1
  10. package/dist/cjs/mg-item-more.cjs.entry.js +224 -224
  11. package/dist/cjs/mg-item-more.cjs.entry.js.map +1 -1
  12. package/dist/collection/assets/icons/index.js +193 -183
  13. package/dist/collection/assets/icons/index.js.map +1 -0
  14. package/dist/collection/collection-manifest.json +6 -6
  15. package/dist/collection/components/atoms/mg-badge/mg-badge.js +161 -161
  16. package/dist/collection/components/atoms/mg-badge/mg-badge.js.map +1 -1
  17. package/dist/collection/components/atoms/mg-button/mg-button.js +362 -347
  18. package/dist/collection/components/atoms/mg-button/mg-button.js.map +1 -1
  19. package/dist/collection/components/atoms/mg-card/mg-card.js +126 -126
  20. package/dist/collection/components/atoms/mg-card/mg-card.js.map +1 -1
  21. package/dist/collection/components/atoms/mg-character-left/mg-character-left.js +101 -101
  22. package/dist/collection/components/atoms/mg-character-left/mg-character-left.js.map +1 -1
  23. package/dist/collection/components/atoms/mg-divider/mg-divider.js +47 -47
  24. package/dist/collection/components/atoms/mg-divider/mg-divider.js.map +1 -1
  25. package/dist/collection/components/atoms/mg-icon/mg-icon.js +231 -231
  26. package/dist/collection/components/atoms/mg-icon/mg-icon.js.map +1 -1
  27. package/dist/collection/components/atoms/mg-input-title/mg-input-title.js +132 -132
  28. package/dist/collection/components/atoms/mg-input-title/mg-input-title.js.map +1 -1
  29. package/dist/collection/components/atoms/mg-tag/mg-tag.js +158 -158
  30. package/dist/collection/components/atoms/mg-tag/mg-tag.js.map +1 -1
  31. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.js +46 -46
  32. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.js.map +1 -1
  33. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.conf.js +3 -3
  34. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.conf.js.map +1 -1
  35. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +398 -398
  36. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js.map +1 -1
  37. package/dist/collection/components/molecules/inputs/MgInput.conf.js +8 -0
  38. package/dist/collection/components/molecules/inputs/MgInput.conf.js.map +1 -1
  39. package/dist/collection/components/molecules/inputs/MgInput.js +84 -84
  40. package/dist/collection/components/molecules/inputs/MgInput.js.map +1 -1
  41. package/dist/collection/components/molecules/inputs/mg-input-checkbox/MgInputCheckboxList.js +8 -8
  42. package/dist/collection/components/molecules/inputs/mg-input-checkbox/MgInputCheckboxList.js.map +1 -1
  43. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.js +266 -266
  44. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.js.map +1 -1
  45. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.js +4 -4
  46. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.js.map +1 -1
  47. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +789 -791
  48. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js.map +1 -1
  49. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.conf.js +4 -4
  50. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.conf.js.map +1 -1
  51. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +589 -572
  52. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js.map +1 -1
  53. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.conf.js +4 -4
  54. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.conf.js.map +1 -1
  55. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +779 -767
  56. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js.map +1 -1
  57. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +537 -520
  58. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js.map +1 -1
  59. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +566 -550
  60. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js.map +1 -1
  61. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +701 -689
  62. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js.map +1 -1
  63. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.conf.js +0 -4
  64. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.conf.js.map +1 -1
  65. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +771 -754
  66. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js.map +1 -1
  67. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +706 -689
  68. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js.map +1 -1
  69. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +527 -522
  70. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js.map +1 -1
  71. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.conf.js +2 -2
  72. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.conf.js.map +1 -1
  73. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js +263 -263
  74. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js.map +1 -1
  75. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.conf.js +6 -6
  76. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.conf.js.map +1 -1
  77. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js +423 -423
  78. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js.map +1 -1
  79. package/dist/collection/components/molecules/mg-action-more/mg-action-more.conf.js.map +1 -1
  80. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js +214 -214
  81. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js.map +1 -1
  82. package/dist/collection/components/molecules/mg-details/mg-details.js +155 -150
  83. package/dist/collection/components/molecules/mg-details/mg-details.js.map +1 -1
  84. package/dist/collection/components/molecules/mg-form/mg-form.js +332 -335
  85. package/dist/collection/components/molecules/mg-form/mg-form.js.map +1 -1
  86. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js +85 -85
  87. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js.map +1 -1
  88. package/dist/collection/components/molecules/mg-item-more/mg-item-more.js +189 -189
  89. package/dist/collection/components/molecules/mg-item-more/mg-item-more.js.map +1 -1
  90. package/dist/collection/components/molecules/mg-message/mg-message.js +325 -304
  91. package/dist/collection/components/molecules/mg-message/mg-message.js.map +1 -1
  92. package/dist/collection/components/molecules/mg-modal/mg-modal.js +317 -317
  93. package/dist/collection/components/molecules/mg-modal/mg-modal.js.map +1 -1
  94. package/dist/collection/components/molecules/mg-pagination/mg-pagination.conf.js +2 -2
  95. package/dist/collection/components/molecules/mg-pagination/mg-pagination.conf.js.map +1 -1
  96. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +216 -216
  97. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js.map +1 -1
  98. package/dist/collection/components/molecules/mg-panel/mg-panel.js +409 -399
  99. package/dist/collection/components/molecules/mg-panel/mg-panel.js.map +1 -1
  100. package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js +91 -91
  101. package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js.map +1 -1
  102. package/dist/collection/components/molecules/mg-popover/mg-popover.js +336 -329
  103. package/dist/collection/components/molecules/mg-popover/mg-popover.js.map +1 -1
  104. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js +94 -94
  105. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js.map +1 -1
  106. package/dist/collection/components/molecules/mg-tabs/mg-tabs.conf.js +4 -4
  107. package/dist/collection/components/molecules/mg-tabs/mg-tabs.conf.js.map +1 -1
  108. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +348 -343
  109. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js.map +1 -1
  110. package/dist/collection/locales/fr/messages.json +4 -4
  111. package/dist/collection/locales/index.spec.js +20 -20
  112. package/dist/collection/locales/index.spec.js.map +1 -1
  113. package/dist/collection/utils/behaviors.utils.js +127 -127
  114. package/dist/collection/utils/behaviors.utils.js.map +1 -1
  115. package/dist/collection/utils/behaviors.utils.spec.js +42 -42
  116. package/dist/collection/utils/behaviors.utils.spec.js.map +1 -1
  117. package/dist/collection/utils/components.utils.js +77 -75
  118. package/dist/collection/utils/components.utils.js.map +1 -1
  119. package/dist/collection/utils/components.utils.spec.js +150 -135
  120. package/dist/collection/utils/components.utils.spec.js.map +1 -1
  121. package/dist/collection/utils/e2e.test.utils.js +21 -21
  122. package/dist/collection/utils/e2e.test.utils.js.map +1 -1
  123. package/dist/collection/utils/locale.utils.js +17 -17
  124. package/dist/collection/utils/locale.utils.js.map +1 -1
  125. package/dist/collection/utils/locale.utils.spec.js +45 -45
  126. package/dist/collection/utils/locale.utils.spec.js.map +1 -1
  127. package/dist/collection/utils/playwright.e2e.test.utils.js +41 -41
  128. package/dist/collection/utils/playwright.e2e.test.utils.js.map +1 -1
  129. package/dist/collection/utils/playwright.fixture.js +24 -0
  130. package/dist/collection/utils/playwright.fixture.js.map +1 -0
  131. package/dist/collection/utils/unit.test.utils.js +50 -50
  132. package/dist/collection/utils/unit.test.utils.js.map +1 -1
  133. package/dist/components/MgInput.js +105 -97
  134. package/dist/components/MgInput.js.map +1 -1
  135. package/dist/components/components.utils.js +78 -76
  136. package/dist/components/components.utils.js.map +1 -1
  137. package/dist/components/index2.js +21 -21
  138. package/dist/components/index2.js.map +1 -1
  139. package/dist/components/mg-action-more.d.ts +2 -2
  140. package/dist/components/mg-action-more.js +173 -173
  141. package/dist/components/mg-action-more.js.map +1 -1
  142. package/dist/components/mg-badge.d.ts +2 -2
  143. package/dist/components/mg-badge2.js +83 -83
  144. package/dist/components/mg-badge2.js.map +1 -1
  145. package/dist/components/mg-button.d.ts +2 -2
  146. package/dist/components/mg-button2.js +182 -167
  147. package/dist/components/mg-button2.js.map +1 -1
  148. package/dist/components/mg-card.d.ts +2 -2
  149. package/dist/components/mg-card2.js +77 -77
  150. package/dist/components/mg-card2.js.map +1 -1
  151. package/dist/components/mg-character-left.d.ts +2 -2
  152. package/dist/components/mg-character-left2.js +50 -50
  153. package/dist/components/mg-character-left2.js.map +1 -1
  154. package/dist/components/mg-details.d.ts +2 -2
  155. package/dist/components/mg-details.js +69 -69
  156. package/dist/components/mg-details.js.map +1 -1
  157. package/dist/components/mg-divider.d.ts +2 -2
  158. package/dist/components/mg-divider.js +30 -30
  159. package/dist/components/mg-divider.js.map +1 -1
  160. package/dist/components/mg-form.d.ts +2 -2
  161. package/dist/components/mg-form.js +171 -179
  162. package/dist/components/mg-form.js.map +1 -1
  163. package/dist/components/mg-icon.d.ts +2 -2
  164. package/dist/components/mg-icon2.js +327 -309
  165. package/dist/components/mg-icon2.js.map +1 -1
  166. package/dist/components/mg-illustrated-message.d.ts +2 -2
  167. package/dist/components/mg-illustrated-message.js +51 -51
  168. package/dist/components/mg-illustrated-message.js.map +1 -1
  169. package/dist/components/mg-input-checkbox-paginated.d.ts +2 -2
  170. package/dist/components/mg-input-checkbox-paginated2.js +170 -170
  171. package/dist/components/mg-input-checkbox-paginated2.js.map +1 -1
  172. package/dist/components/mg-input-checkbox.d.ts +2 -2
  173. package/dist/components/mg-input-checkbox.js +478 -480
  174. package/dist/components/mg-input-checkbox.js.map +1 -1
  175. package/dist/components/mg-input-date.d.ts +2 -2
  176. package/dist/components/mg-input-date.js +266 -260
  177. package/dist/components/mg-input-date.js.map +1 -1
  178. package/dist/components/mg-input-numeric.d.ts +2 -2
  179. package/dist/components/mg-input-numeric.js +354 -348
  180. package/dist/components/mg-input-numeric.js.map +1 -1
  181. package/dist/components/mg-input-password.d.ts +2 -2
  182. package/dist/components/mg-input-password.js +205 -199
  183. package/dist/components/mg-input-password.js.map +1 -1
  184. package/dist/components/mg-input-radio.d.ts +2 -2
  185. package/dist/components/mg-input-radio.js +236 -231
  186. package/dist/components/mg-input-radio.js.map +1 -1
  187. package/dist/components/mg-input-select.d.ts +2 -2
  188. package/dist/components/mg-input-select2.js +316 -310
  189. package/dist/components/mg-input-select2.js.map +1 -1
  190. package/dist/components/mg-input-text.d.ts +2 -2
  191. package/dist/components/mg-input-text2.js +306 -300
  192. package/dist/components/mg-input-text2.js.map +1 -1
  193. package/dist/components/mg-input-textarea.d.ts +2 -2
  194. package/dist/components/mg-input-textarea.js +277 -271
  195. package/dist/components/mg-input-textarea.js.map +1 -1
  196. package/dist/components/mg-input-title.d.ts +2 -2
  197. package/dist/components/mg-input-title2.js +60 -60
  198. package/dist/components/mg-input-title2.js.map +1 -1
  199. package/dist/components/mg-input-toggle.d.ts +2 -2
  200. package/dist/components/mg-input-toggle.js +251 -251
  201. package/dist/components/mg-input-toggle.js.map +1 -1
  202. package/dist/components/mg-item-more.d.ts +2 -2
  203. package/dist/components/mg-item-more.js +285 -285
  204. package/dist/components/mg-item-more.js.map +1 -1
  205. package/dist/components/mg-menu-item.d.ts +2 -2
  206. package/dist/components/mg-menu-item2.js +345 -345
  207. package/dist/components/mg-menu-item2.js.map +1 -1
  208. package/dist/components/mg-menu.conf.js +2 -2
  209. package/dist/components/mg-menu.conf.js.map +1 -1
  210. package/dist/components/mg-menu.d.ts +2 -2
  211. package/dist/components/mg-menu2.js +176 -176
  212. package/dist/components/mg-menu2.js.map +1 -1
  213. package/dist/components/mg-message.d.ts +2 -2
  214. package/dist/components/mg-message.js +198 -193
  215. package/dist/components/mg-message.js.map +1 -1
  216. package/dist/components/mg-modal.d.ts +2 -2
  217. package/dist/components/mg-modal.js +198 -198
  218. package/dist/components/mg-modal.js.map +1 -1
  219. package/dist/components/mg-pagination.d.ts +2 -2
  220. package/dist/components/mg-pagination2.js +133 -133
  221. package/dist/components/mg-pagination2.js.map +1 -1
  222. package/dist/components/mg-panel.d.ts +2 -2
  223. package/dist/components/mg-panel.js +238 -238
  224. package/dist/components/mg-panel.js.map +1 -1
  225. package/dist/components/mg-popover-content.d.ts +2 -2
  226. package/dist/components/mg-popover-content2.js +70 -70
  227. package/dist/components/mg-popover-content2.js.map +1 -1
  228. package/dist/components/mg-popover.d.ts +2 -2
  229. package/dist/components/mg-popover2.js +224 -222
  230. package/dist/components/mg-popover2.js.map +1 -1
  231. package/dist/components/mg-skip-links.d.ts +2 -2
  232. package/dist/components/mg-skip-links.js +57 -57
  233. package/dist/components/mg-skip-links.js.map +1 -1
  234. package/dist/components/mg-tabs.d.ts +2 -2
  235. package/dist/components/mg-tabs.js +243 -243
  236. package/dist/components/mg-tabs.js.map +1 -1
  237. package/dist/components/mg-tag.d.ts +2 -2
  238. package/dist/components/mg-tag.js +97 -97
  239. package/dist/components/mg-tag.js.map +1 -1
  240. package/dist/components/mg-tooltip-content.d.ts +2 -2
  241. package/dist/components/mg-tooltip-content2.js +30 -30
  242. package/dist/components/mg-tooltip-content2.js.map +1 -1
  243. package/dist/components/mg-tooltip.d.ts +2 -2
  244. package/dist/components/mg-tooltip2.js +316 -316
  245. package/dist/components/mg-tooltip2.js.map +1 -1
  246. package/dist/components/popper.js +6 -12
  247. package/dist/components/popper.js.map +1 -1
  248. package/dist/esm/{components.utils-0f76010d.js → components.utils-0d67c31c.js} +102 -100
  249. package/dist/esm/components.utils-0d67c31c.js.map +1 -0
  250. package/dist/esm/{index-ce01e63b.js → index-f34a3a2c.js} +320 -137
  251. package/dist/esm/index-f34a3a2c.js.map +1 -0
  252. package/dist/esm/loader.js +3 -3
  253. package/dist/esm/mg-action-more_34.entry.js +5130 -5057
  254. package/dist/esm/mg-action-more_34.entry.js.map +1 -1
  255. package/dist/esm/mg-components.js +4 -4
  256. package/dist/esm/mg-components.js.map +1 -1
  257. package/dist/esm/mg-item-more.entry.js +224 -224
  258. package/dist/esm/mg-item-more.entry.js.map +1 -1
  259. package/dist/mg-components/locales/fr/messages.json +4 -4
  260. package/dist/mg-components/mg-components.css +1 -1
  261. package/dist/mg-components/mg-components.esm.js +1 -1
  262. package/dist/mg-components/mg-components.esm.js.map +1 -1
  263. package/dist/mg-components/p-629454f7.entry.js +2 -0
  264. package/dist/mg-components/p-629454f7.entry.js.map +1 -0
  265. package/dist/mg-components/p-7444ff40.js +3 -0
  266. package/dist/mg-components/p-7444ff40.js.map +1 -0
  267. package/dist/mg-components/p-af42d17b.js +2 -0
  268. package/dist/mg-components/p-af42d17b.js.map +1 -0
  269. package/dist/mg-components/{p-01ebc95a.entry.js → p-e0fb0f3c.entry.js} +2 -2
  270. package/dist/mg-components/p-e0fb0f3c.entry.js.map +1 -0
  271. package/dist/types/assets/icons/index.d.ts +193 -0
  272. package/dist/types/components/atoms/mg-badge/mg-badge.d.ts +41 -41
  273. package/dist/types/components/atoms/mg-button/mg-button.d.ts +100 -96
  274. package/dist/types/components/atoms/mg-card/mg-card.d.ts +39 -39
  275. package/dist/types/components/atoms/mg-character-left/mg-character-left.d.ts +37 -37
  276. package/dist/types/components/atoms/mg-divider/mg-divider.d.ts +12 -12
  277. package/dist/types/components/atoms/mg-icon/mg-icon.d.ts +56 -56
  278. package/dist/types/components/atoms/mg-input-title/mg-input-title.d.ts +34 -34
  279. package/dist/types/components/atoms/mg-tag/mg-tag.d.ts +51 -51
  280. package/dist/types/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.d.ts +12 -12
  281. package/dist/types/components/atoms/mg-tooltip/mg-tooltip.conf.d.ts +3 -3
  282. package/dist/types/components/atoms/mg-tooltip/mg-tooltip.d.ts +113 -113
  283. package/dist/types/components/molecules/inputs/MgInput.conf.d.ts +10 -3
  284. package/dist/types/components/molecules/inputs/MgInput.d.ts +17 -16
  285. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.d.ts +100 -100
  286. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.d.ts +26 -26
  287. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.d.ts +262 -260
  288. package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.conf.d.ts +4 -4
  289. package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.d.ts +150 -149
  290. package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.conf.d.ts +4 -4
  291. package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.d.ts +223 -222
  292. package/dist/types/components/molecules/inputs/mg-input-password/mg-input-password.d.ts +142 -141
  293. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.conf.d.ts +3 -3
  294. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.d.ts +152 -151
  295. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.conf.d.ts +6 -6
  296. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.d.ts +193 -192
  297. package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.conf.d.ts +1 -6
  298. package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.d.ts +195 -194
  299. package/dist/types/components/molecules/inputs/mg-input-textarea/mg-input-textarea.d.ts +181 -180
  300. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.conf.d.ts +2 -2
  301. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.d.ts +141 -141
  302. package/dist/types/components/molecules/menu/mg-menu/mg-menu.conf.d.ts +2 -2
  303. package/dist/types/components/molecules/menu/mg-menu/mg-menu.d.ts +97 -97
  304. package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.conf.d.ts +6 -6
  305. package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.d.ts +179 -179
  306. package/dist/types/components/molecules/mg-action-more/mg-action-more.conf.d.ts +12 -11
  307. package/dist/types/components/molecules/mg-action-more/mg-action-more.d.ts +72 -72
  308. package/dist/types/components/molecules/mg-details/mg-details.d.ts +45 -45
  309. package/dist/types/components/molecules/mg-form/mg-form.d.ts +103 -104
  310. package/dist/types/components/molecules/mg-illustrated-message/mg-illustrated-message.d.ts +27 -27
  311. package/dist/types/components/molecules/mg-item-more/mg-item-more.conf.d.ts +5 -5
  312. package/dist/types/components/molecules/mg-item-more/mg-item-more.d.ts +61 -61
  313. package/dist/types/components/molecules/mg-message/mg-message.d.ts +100 -93
  314. package/dist/types/components/molecules/mg-modal/mg-modal.d.ts +107 -107
  315. package/dist/types/components/molecules/mg-pagination/mg-pagination.conf.d.ts +2 -2
  316. package/dist/types/components/molecules/mg-pagination/mg-pagination.d.ts +74 -74
  317. package/dist/types/components/molecules/mg-panel/mg-panel.d.ts +149 -149
  318. package/dist/types/components/molecules/mg-popover/mg-popover-content/mg-popover-content.d.ts +43 -43
  319. package/dist/types/components/molecules/mg-popover/mg-popover.d.ts +88 -88
  320. package/dist/types/components/molecules/mg-skip-links/mg-skip-links.conf.d.ts +2 -2
  321. package/dist/types/components/molecules/mg-skip-links/mg-skip-links.d.ts +40 -40
  322. package/dist/types/components/molecules/mg-tabs/mg-tabs.conf.d.ts +10 -10
  323. package/dist/types/components/molecules/mg-tabs/mg-tabs.d.ts +118 -118
  324. package/dist/types/components.d.ts +296 -32
  325. package/dist/types/locales/index.d.ts +172 -172
  326. package/dist/types/stencil-public-runtime.d.ts +29 -0
  327. package/dist/types/utils/behaviors.utils.d.ts +65 -65
  328. package/dist/types/utils/components.utils.d.ts +32 -26
  329. package/dist/types/utils/locale.utils.d.ts +2 -2
  330. package/dist/types/utils/playwright.fixture.d.ts +3 -0
  331. package/dist/types/utils/unit.test.utils.d.ts +5 -5
  332. package/package.json +33 -47
  333. package/dist/cjs/components.utils-dc9c8a53.js.map +0 -1
  334. package/dist/cjs/index-c042e24b.js.map +0 -1
  335. package/dist/collection/components/atoms/mg-badge/test/mg-badge.e2e.playwright.js +0 -33
  336. package/dist/collection/components/atoms/mg-badge/test/mg-badge.e2e.playwright.js.map +0 -1
  337. package/dist/collection/components/atoms/mg-badge/test/mg-badge.spec.js +0 -70
  338. package/dist/collection/components/atoms/mg-badge/test/mg-badge.spec.js.map +0 -1
  339. package/dist/collection/components/atoms/mg-button/test/mg-button.e2e.js +0 -91
  340. package/dist/collection/components/atoms/mg-button/test/mg-button.e2e.js.map +0 -1
  341. package/dist/collection/components/atoms/mg-button/test/mg-button.spec.js +0 -142
  342. package/dist/collection/components/atoms/mg-button/test/mg-button.spec.js.map +0 -1
  343. package/dist/collection/components/atoms/mg-card/test/mg-card.e2e.js +0 -36
  344. package/dist/collection/components/atoms/mg-card/test/mg-card.e2e.js.map +0 -1
  345. package/dist/collection/components/atoms/mg-card/test/mg-card.spec.js +0 -43
  346. package/dist/collection/components/atoms/mg-card/test/mg-card.spec.js.map +0 -1
  347. package/dist/collection/components/atoms/mg-character-left/test/mg-character-left.e2e.js +0 -15
  348. package/dist/collection/components/atoms/mg-character-left/test/mg-character-left.e2e.js.map +0 -1
  349. package/dist/collection/components/atoms/mg-character-left/test/mg-character-left.spec.js +0 -42
  350. package/dist/collection/components/atoms/mg-character-left/test/mg-character-left.spec.js.map +0 -1
  351. package/dist/collection/components/atoms/mg-divider/test/mg-divider.e2e.js +0 -11
  352. package/dist/collection/components/atoms/mg-divider/test/mg-divider.e2e.js.map +0 -1
  353. package/dist/collection/components/atoms/mg-divider/test/mg-divider.spec.js +0 -14
  354. package/dist/collection/components/atoms/mg-divider/test/mg-divider.spec.js.map +0 -1
  355. package/dist/collection/components/atoms/mg-icon/test/mg-icon.e2e.js +0 -55
  356. package/dist/collection/components/atoms/mg-icon/test/mg-icon.e2e.js.map +0 -1
  357. package/dist/collection/components/atoms/mg-icon/test/mg-icon.spec.js +0 -84
  358. package/dist/collection/components/atoms/mg-icon/test/mg-icon.spec.js.map +0 -1
  359. package/dist/collection/components/atoms/mg-input-title/test/mg-input-title.e2e.playwright.js +0 -12
  360. package/dist/collection/components/atoms/mg-input-title/test/mg-input-title.e2e.playwright.js.map +0 -1
  361. package/dist/collection/components/atoms/mg-input-title/test/mg-input-title.spec.js +0 -23
  362. package/dist/collection/components/atoms/mg-input-title/test/mg-input-title.spec.js.map +0 -1
  363. package/dist/collection/components/atoms/mg-tag/test/mg-tag.e2e.playwright.js +0 -23
  364. package/dist/collection/components/atoms/mg-tag/test/mg-tag.e2e.playwright.js.map +0 -1
  365. package/dist/collection/components/atoms/mg-tag/test/mg-tag.spec.js +0 -71
  366. package/dist/collection/components/atoms/mg-tag/test/mg-tag.spec.js.map +0 -1
  367. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.e2e.js +0 -138
  368. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.e2e.js.map +0 -1
  369. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.spec.js +0 -272
  370. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.spec.js.map +0 -1
  371. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.e2e.playwright.js +0 -237
  372. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.e2e.playwright.js.map +0 -1
  373. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.spec.js +0 -640
  374. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.spec.js.map +0 -1
  375. package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.e2e.js +0 -123
  376. package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.e2e.js.map +0 -1
  377. package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.spec.js +0 -379
  378. package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.spec.js.map +0 -1
  379. package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.e2e.js +0 -212
  380. package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.e2e.js.map +0 -1
  381. package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.spec.js +0 -456
  382. package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.spec.js.map +0 -1
  383. package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.e2e.js +0 -115
  384. package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.e2e.js.map +0 -1
  385. package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.spec.js +0 -289
  386. package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.spec.js.map +0 -1
  387. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.e2e.js +0 -154
  388. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.e2e.js.map +0 -1
  389. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.spec.js +0 -355
  390. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.spec.js.map +0 -1
  391. package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.e2e.js +0 -194
  392. package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.e2e.js.map +0 -1
  393. package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.spec.js +0 -399
  394. package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.spec.js.map +0 -1
  395. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.playwright.js +0 -147
  396. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.playwright.js.map +0 -1
  397. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.spec.js +0 -353
  398. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.spec.js.map +0 -1
  399. package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.e2e.js +0 -129
  400. package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.e2e.js.map +0 -1
  401. package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.spec.js +0 -318
  402. package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.spec.js.map +0 -1
  403. package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.e2e.playwright.js +0 -108
  404. package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.e2e.playwright.js.map +0 -1
  405. package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.spec.js +0 -247
  406. package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.spec.js.map +0 -1
  407. package/dist/collection/components/molecules/menu/mg-menu/test/mg-menu.e2e.playwright.js +0 -239
  408. package/dist/collection/components/molecules/menu/mg-menu/test/mg-menu.e2e.playwright.js.map +0 -1
  409. package/dist/collection/components/molecules/menu/mg-menu/test/mg-menu.spec.js +0 -175
  410. package/dist/collection/components/molecules/menu/mg-menu/test/mg-menu.spec.js.map +0 -1
  411. package/dist/collection/components/molecules/menu/mg-menu-item/test/mg-menu-item.e2e.playwright.js +0 -100
  412. package/dist/collection/components/molecules/menu/mg-menu-item/test/mg-menu-item.e2e.playwright.js.map +0 -1
  413. package/dist/collection/components/molecules/menu/mg-menu-item/test/mg-menu-item.spec.js +0 -295
  414. package/dist/collection/components/molecules/menu/mg-menu-item/test/mg-menu-item.spec.js.map +0 -1
  415. package/dist/collection/components/molecules/mg-action-more/test/mg-action-more.e2e.playwright.js +0 -128
  416. package/dist/collection/components/molecules/mg-action-more/test/mg-action-more.e2e.playwright.js.map +0 -1
  417. package/dist/collection/components/molecules/mg-action-more/test/mg-action-more.spec.js +0 -187
  418. package/dist/collection/components/molecules/mg-action-more/test/mg-action-more.spec.js.map +0 -1
  419. package/dist/collection/components/molecules/mg-details/test/mg-details.e2e.playwright.js +0 -30
  420. package/dist/collection/components/molecules/mg-details/test/mg-details.e2e.playwright.js.map +0 -1
  421. package/dist/collection/components/molecules/mg-details/test/mg-details.spec.js +0 -42
  422. package/dist/collection/components/molecules/mg-details/test/mg-details.spec.js.map +0 -1
  423. package/dist/collection/components/molecules/mg-form/test/mg-form.e2e.js +0 -169
  424. package/dist/collection/components/molecules/mg-form/test/mg-form.e2e.js.map +0 -1
  425. package/dist/collection/components/molecules/mg-form/test/mg-form.spec.js +0 -277
  426. package/dist/collection/components/molecules/mg-form/test/mg-form.spec.js.map +0 -1
  427. package/dist/collection/components/molecules/mg-illustrated-message/test/mg-illustrated-message.e2e.js +0 -39
  428. package/dist/collection/components/molecules/mg-illustrated-message/test/mg-illustrated-message.e2e.js.map +0 -1
  429. package/dist/collection/components/molecules/mg-illustrated-message/test/mg-illustrated-message.spec.js +0 -36
  430. package/dist/collection/components/molecules/mg-illustrated-message/test/mg-illustrated-message.spec.js.map +0 -1
  431. package/dist/collection/components/molecules/mg-item-more/test/mg-item-more.e2e.playwright.js +0 -85
  432. package/dist/collection/components/molecules/mg-item-more/test/mg-item-more.e2e.playwright.js.map +0 -1
  433. package/dist/collection/components/molecules/mg-item-more/test/mg-item-more.spec.js +0 -106
  434. package/dist/collection/components/molecules/mg-item-more/test/mg-item-more.spec.js.map +0 -1
  435. package/dist/collection/components/molecules/mg-message/test/mg-message.e2e.js +0 -64
  436. package/dist/collection/components/molecules/mg-message/test/mg-message.e2e.js.map +0 -1
  437. package/dist/collection/components/molecules/mg-message/test/mg-message.spec.js +0 -109
  438. package/dist/collection/components/molecules/mg-message/test/mg-message.spec.js.map +0 -1
  439. package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.playwright.js +0 -62
  440. package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.playwright.js.map +0 -1
  441. package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.template.js +0 -40
  442. package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.template.js.map +0 -1
  443. package/dist/collection/components/molecules/mg-modal/test/mg-modal.firefox.e2e.playwright.js +0 -26
  444. package/dist/collection/components/molecules/mg-modal/test/mg-modal.firefox.e2e.playwright.js.map +0 -1
  445. package/dist/collection/components/molecules/mg-modal/test/mg-modal.spec.js +0 -122
  446. package/dist/collection/components/molecules/mg-modal/test/mg-modal.spec.js.map +0 -1
  447. package/dist/collection/components/molecules/mg-pagination/test/mg-pagination.e2e.playwright.js +0 -57
  448. package/dist/collection/components/molecules/mg-pagination/test/mg-pagination.e2e.playwright.js.map +0 -1
  449. package/dist/collection/components/molecules/mg-pagination/test/mg-pagination.spec.js +0 -121
  450. package/dist/collection/components/molecules/mg-pagination/test/mg-pagination.spec.js.map +0 -1
  451. package/dist/collection/components/molecules/mg-panel/test/mg-panel.e2e.playwright.js +0 -106
  452. package/dist/collection/components/molecules/mg-panel/test/mg-panel.e2e.playwright.js.map +0 -1
  453. package/dist/collection/components/molecules/mg-panel/test/mg-panel.spec.js +0 -213
  454. package/dist/collection/components/molecules/mg-panel/test/mg-panel.spec.js.map +0 -1
  455. package/dist/collection/components/molecules/mg-popover/test/mg-popover.e2e.playwright.js +0 -140
  456. package/dist/collection/components/molecules/mg-popover/test/mg-popover.e2e.playwright.js.map +0 -1
  457. package/dist/collection/components/molecules/mg-popover/test/mg-popover.spec.js +0 -142
  458. package/dist/collection/components/molecules/mg-popover/test/mg-popover.spec.js.map +0 -1
  459. package/dist/collection/components/molecules/mg-skip-links/test/mg-skip-links.e2e.js +0 -55
  460. package/dist/collection/components/molecules/mg-skip-links/test/mg-skip-links.e2e.js.map +0 -1
  461. package/dist/collection/components/molecules/mg-skip-links/test/mg-skip-links.spec.js +0 -55
  462. package/dist/collection/components/molecules/mg-skip-links/test/mg-skip-links.spec.js.map +0 -1
  463. package/dist/collection/components/molecules/mg-tabs/test/mg-tabs.e2e.playwright.js +0 -76
  464. package/dist/collection/components/molecules/mg-tabs/test/mg-tabs.e2e.playwright.js.map +0 -1
  465. package/dist/collection/components/molecules/mg-tabs/test/mg-tabs.spec.js +0 -332
  466. package/dist/collection/components/molecules/mg-tabs/test/mg-tabs.spec.js.map +0 -1
  467. package/dist/collection/utils/stencil.e2e.test.utils.js +0 -33
  468. package/dist/collection/utils/stencil.e2e.test.utils.js.map +0 -1
  469. package/dist/esm/components.utils-0f76010d.js.map +0 -1
  470. package/dist/esm/index-ce01e63b.js.map +0 -1
  471. package/dist/mg-components/p-01ebc95a.entry.js.map +0 -1
  472. package/dist/mg-components/p-1aa89acf.js +0 -3
  473. package/dist/mg-components/p-1aa89acf.js.map +0 -1
  474. package/dist/mg-components/p-71a5a848.entry.js +0 -2
  475. package/dist/mg-components/p-71a5a848.entry.js.map +0 -1
  476. package/dist/mg-components/p-c9e2c669.js +0 -2
  477. package/dist/mg-components/p-c9e2c669.js.map +0 -1
  478. package/dist/types/components/atoms/mg-badge/test/mg-badge.e2e.playwright.d.ts +0 -1
  479. package/dist/types/components/atoms/mg-input-title/test/mg-input-title.e2e.playwright.d.ts +0 -1
  480. package/dist/types/components/atoms/mg-tag/test/mg-tag.e2e.playwright.d.ts +0 -1
  481. package/dist/types/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.e2e.playwright.d.ts +0 -1
  482. package/dist/types/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.playwright.d.ts +0 -1
  483. package/dist/types/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.e2e.playwright.d.ts +0 -1
  484. package/dist/types/components/molecules/menu/mg-menu/test/mg-menu.e2e.playwright.d.ts +0 -1
  485. package/dist/types/components/molecules/menu/mg-menu-item/test/mg-menu-item.e2e.playwright.d.ts +0 -1
  486. package/dist/types/components/molecules/mg-action-more/test/mg-action-more.e2e.playwright.d.ts +0 -2
  487. package/dist/types/components/molecules/mg-details/test/mg-details.e2e.playwright.d.ts +0 -1
  488. package/dist/types/components/molecules/mg-item-more/test/mg-item-more.e2e.playwright.d.ts +0 -1
  489. package/dist/types/components/molecules/mg-modal/test/mg-modal.e2e.playwright.d.ts +0 -1
  490. package/dist/types/components/molecules/mg-modal/test/mg-modal.e2e.template.d.ts +0 -12
  491. package/dist/types/components/molecules/mg-modal/test/mg-modal.firefox.e2e.playwright.d.ts +0 -1
  492. package/dist/types/components/molecules/mg-pagination/test/mg-pagination.e2e.playwright.d.ts +0 -1
  493. package/dist/types/components/molecules/mg-panel/test/mg-panel.e2e.playwright.d.ts +0 -1
  494. package/dist/types/components/molecules/mg-popover/test/mg-popover.e2e.playwright.d.ts +0 -1
  495. package/dist/types/components/molecules/mg-tabs/test/mg-tabs.e2e.playwright.d.ts +0 -1
  496. package/dist/types/utils/stencil.e2e.test.utils.d.ts +0 -14
@@ -21,6 +21,7 @@ function _interopNamespace(e) {
21
21
  }
22
22
 
23
23
  const NAMESPACE = 'mg-components';
24
+ const BUILD = /* mg-components */ { allRenderFn: false, 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: true, connectedCallback: false, 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: false, 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: true, watchCallback: true };
24
25
 
25
26
  /**
26
27
  * Virtual DOM patching algorithm based on Snabbdom by
@@ -53,6 +54,13 @@ const uniqueTime = (key, measureText) => {
53
54
  }
54
55
  };
55
56
  const HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';
57
+ /**
58
+ * Constant for styles to be globally applied to `slot-fb` elements for pseudo-slot behavior.
59
+ *
60
+ * Two cascading rules must be used instead of a `:not()` selector due to Stencil browser
61
+ * support as of Stencil v4.
62
+ */
63
+ const SLOT_FB_CSS = 'slot-fb{display:contents}slot-fb[hidden]{display:none}';
56
64
  const XLINK_NS = 'http://www.w3.org/1999/xlink';
57
65
  /**
58
66
  * Default style mode id
@@ -368,6 +376,10 @@ const addStyle = (styleContainerNode, cmpMeta, mode) => {
368
376
  }
369
377
  styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));
370
378
  }
379
+ // Add styles for `slot-fb` elements if we're using slots outside the Shadow DOM
380
+ if (cmpMeta.$flags$ & 4 /* CMP_FLAGS.hasSlotRelocation */) {
381
+ styleElm.innerHTML += SLOT_FB_CSS;
382
+ }
371
383
  if (appliedStyles) {
372
384
  appliedStyles.add(scopeId);
373
385
  }
@@ -501,11 +513,19 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
501
513
  // except for the first character, we keep the event name case
502
514
  memberName = ln[2] + memberName.slice(3);
503
515
  }
504
- if (oldValue) {
505
- plt.rel(elm, memberName, oldValue, false);
506
- }
507
- if (newValue) {
508
- plt.ael(elm, memberName, newValue, false);
516
+ if (oldValue || newValue) {
517
+ // Need to account for "capture" events.
518
+ // If the event name ends with "Capture", we'll update the name to remove
519
+ // the "Capture" suffix and make sure the event listener is setup to handle the capture event.
520
+ const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
521
+ // Make sure we only replace the last instance of "Capture"
522
+ memberName = memberName.replace(CAPTURE_EVENT_REGEX, '');
523
+ if (oldValue) {
524
+ plt.rel(elm, memberName, oldValue, capture);
525
+ }
526
+ if (newValue) {
527
+ plt.ael(elm, memberName, newValue, capture);
528
+ }
509
529
  }
510
530
  }
511
531
  else {
@@ -527,7 +547,11 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
527
547
  elm[memberName] = newValue;
528
548
  }
529
549
  }
530
- catch (e) { }
550
+ catch (e) {
551
+ /**
552
+ * in case someone tries to set a read-only property, e.g. "namespaceURI", we just ignore it
553
+ */
554
+ }
531
555
  }
532
556
  /**
533
557
  * Need to manually update attribute if:
@@ -566,7 +590,14 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
566
590
  }
567
591
  };
568
592
  const parseClassListRegex = /\s/;
593
+ /**
594
+ * Parsed a string of classnames into an array
595
+ * @param value className string, e.g. "foo bar baz"
596
+ * @returns list of classes, e.g. ["foo", "bar", "baz"]
597
+ */
569
598
  const parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex));
599
+ const CAPTURE_EVENT_SUFFIX = 'Capture';
600
+ const CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + '$');
570
601
  const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
571
602
  // if the element passed in is a shadow root, which is a document fragment
572
603
  // then we want to be adding attrs/props to the shadow root's "host" element
@@ -600,6 +631,7 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
600
631
  * @returns the newly created node
601
632
  */
602
633
  const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
634
+ var _a;
603
635
  // tslint:disable-next-line: prefer-const
604
636
  const newVNode = newParentVNode.$children$[childIndex];
605
637
  let i = 0;
@@ -656,11 +688,15 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
656
688
  }
657
689
  }
658
690
  }
691
+ // This needs to always happen so we can hide nodes that are projected
692
+ // to another component but don't end up in a slot
693
+ elm['s-hn'] = hostTagName;
659
694
  {
660
- elm['s-hn'] = hostTagName;
661
695
  if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {
662
696
  // remember the content reference comment
663
697
  elm['s-sr'] = true;
698
+ // Persist the name of the slot that this slot was going to be projected into.
699
+ elm['s-fs'] = (_a = newVNode.$attrs$) === null || _a === void 0 ? void 0 : _a.slot;
664
700
  // remember the content reference comment
665
701
  elm['s-cr'] = contentRef;
666
702
  // remember the slot name, or empty string for default slot
@@ -668,30 +704,38 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
668
704
  // check if we've got an old vnode for this slot
669
705
  oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
670
706
  if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {
671
- // we've got an old slot vnode and the wrapper is being replaced
672
- // so let's move the old slot content back to it's original location
673
- putBackInOriginalLocation(oldParentVNode.$elm$, false);
707
+ {
708
+ // we've got an old slot vnode and the wrapper is being replaced
709
+ // so let's move the old slot content back to its original location
710
+ putBackInOriginalLocation(oldParentVNode.$elm$, false);
711
+ }
674
712
  }
675
713
  }
676
714
  }
677
715
  return elm;
678
716
  };
679
717
  const putBackInOriginalLocation = (parentElm, recursive) => {
718
+ var _a;
680
719
  plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
681
720
  const oldSlotChildNodes = parentElm.childNodes;
682
721
  for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {
683
722
  const childNode = oldSlotChildNodes[i];
684
723
  if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) {
685
- // // this child node in the old element is from another component
686
- // // remove this node from the old slot's parent
687
- // childNode.remove();
688
724
  // and relocate it back to it's original location
689
725
  parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));
690
726
  // remove the old original location comment entirely
691
727
  // later on the patch function will know what to do
692
- // and move this to the correct spot in need be
728
+ // and move this to the correct spot if need be
693
729
  childNode['s-ol'].remove();
694
730
  childNode['s-ol'] = undefined;
731
+ // Reset so we can correctly move the node around again.
732
+ childNode['s-sh'] = undefined;
733
+ // When putting an element node back in its original location,
734
+ // we need to reset the `slot` attribute back to the value it originally had
735
+ // so we can correctly relocate it again in the future
736
+ if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
737
+ childNode.setAttribute('slot', (_a = childNode['s-sn']) !== null && _a !== void 0 ? _a : '');
738
+ }
695
739
  checkSlotRelocate = true;
696
740
  }
697
741
  if (recursive) {
@@ -1107,42 +1151,53 @@ const patch = (oldVNode, newVNode) => {
1107
1151
  elm.data = text;
1108
1152
  }
1109
1153
  };
1154
+ /**
1155
+ * Adjust the `.hidden` property as-needed on any nodes in a DOM subtree which
1156
+ * are slot fallbacks nodes.
1157
+ *
1158
+ * A slot fallback node should be visible by default. Then, it should be
1159
+ * conditionally hidden if:
1160
+ *
1161
+ * - it has a sibling with a `slot` property set to its slot name or if
1162
+ * - it is a default fallback slot node, in which case we hide if it has any
1163
+ * content
1164
+ *
1165
+ * @param elm the element of interest
1166
+ */
1110
1167
  const updateFallbackSlotVisibility = (elm) => {
1111
- // tslint:disable-next-line: prefer-const
1112
1168
  const childNodes = elm.childNodes;
1113
- let childNode;
1114
- let i;
1115
- let ilen;
1116
- let j;
1117
- let slotNameAttr;
1118
- let nodeType;
1119
- for (i = 0, ilen = childNodes.length; i < ilen; i++) {
1120
- childNode = childNodes[i];
1169
+ for (const childNode of childNodes) {
1121
1170
  if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1122
1171
  if (childNode['s-sr']) {
1123
1172
  // this is a slot fallback node
1124
1173
  // get the slot name for this slot reference node
1125
- slotNameAttr = childNode['s-sn'];
1174
+ const slotName = childNode['s-sn'];
1126
1175
  // by default always show a fallback slot node
1127
1176
  // then hide it if there are other slots in the light dom
1128
1177
  childNode.hidden = false;
1129
- for (j = 0; j < ilen; j++) {
1130
- nodeType = childNodes[j].nodeType;
1131
- if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') {
1132
- // this sibling node is from a different component OR is a named fallback slot node
1133
- if (nodeType === 1 /* NODE_TYPE.ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {
1134
- childNode.hidden = true;
1135
- break;
1178
+ // we need to check all of its sibling nodes in order to see if
1179
+ // `childNode` should be hidden
1180
+ for (const siblingNode of childNodes) {
1181
+ // Don't check the node against itself
1182
+ if (siblingNode !== childNode) {
1183
+ if (siblingNode['s-hn'] !== childNode['s-hn'] || slotName !== '') {
1184
+ // this sibling node is from a different component OR is a named
1185
+ // fallback slot node
1186
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ &&
1187
+ (slotName === siblingNode.getAttribute('slot') || slotName === siblingNode['s-sn'])) {
1188
+ childNode.hidden = true;
1189
+ break;
1190
+ }
1136
1191
  }
1137
- }
1138
- else {
1139
- // this is a default fallback slot node
1140
- // any element or text node (with content)
1141
- // should hide the default fallback slot node
1142
- if (nodeType === 1 /* NODE_TYPE.ElementNode */ ||
1143
- (nodeType === 3 /* NODE_TYPE.TextNode */ && childNodes[j].textContent.trim() !== '')) {
1144
- childNode.hidden = true;
1145
- break;
1192
+ else {
1193
+ // this is a default fallback slot node
1194
+ // any element or text node (with content)
1195
+ // should hide the default fallback slot node
1196
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ ||
1197
+ (siblingNode.nodeType === 3 /* NODE_TYPE.TextNode */ && siblingNode.textContent.trim() !== '')) {
1198
+ childNode.hidden = true;
1199
+ break;
1200
+ }
1146
1201
  }
1147
1202
  }
1148
1203
  }
@@ -1152,45 +1207,67 @@ const updateFallbackSlotVisibility = (elm) => {
1152
1207
  }
1153
1208
  }
1154
1209
  };
1210
+ /**
1211
+ * Component-global information about nodes which are either currently being
1212
+ * relocated or will be shortly.
1213
+ */
1155
1214
  const relocateNodes = [];
1156
- const relocateSlotContent = (elm) => {
1215
+ /**
1216
+ * Mark the contents of a slot for relocation via adding references to them to
1217
+ * the {@link relocateNodes} data structure. The actual work of relocating them
1218
+ * will then be handled in {@link renderVdom}.
1219
+ *
1220
+ * @param elm a render node whose child nodes need to be relocated
1221
+ */
1222
+ const markSlotContentForRelocation = (elm) => {
1157
1223
  // tslint:disable-next-line: prefer-const
1158
- let childNode;
1159
1224
  let node;
1160
1225
  let hostContentNodes;
1161
- let slotNameAttr;
1162
- let relocateNodeData;
1163
1226
  let j;
1164
- let i = 0;
1165
- const childNodes = elm.childNodes;
1166
- const ilen = childNodes.length;
1167
- for (; i < ilen; i++) {
1168
- childNode = childNodes[i];
1227
+ for (const childNode of elm.childNodes) {
1228
+ // we need to find child nodes which are slot references so we can then try
1229
+ // to match them up with nodes that need to be relocated
1169
1230
  if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {
1170
- // first got the content reference comment node
1171
- // then we got it's parent, which is where all the host content is in now
1231
+ // first get the content reference comment node ('s-cr'), then we get
1232
+ // its parent, which is where all the host content is now
1172
1233
  hostContentNodes = node.parentNode.childNodes;
1173
- slotNameAttr = childNode['s-sn'];
1234
+ const slotName = childNode['s-sn'];
1235
+ // iterate through all the nodes under the location where the host was
1236
+ // originally rendered
1174
1237
  for (j = hostContentNodes.length - 1; j >= 0; j--) {
1175
1238
  node = hostContentNodes[j];
1176
- if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) {
1177
- // let's do some relocating to its new home
1178
- // but never relocate a content reference node
1179
- // that is suppose to always represent the original content location
1180
- if (isNodeLocatedInSlot(node, slotNameAttr)) {
1239
+ // check that the node is not a content reference node or a node
1240
+ // reference and then check that the host name does not match that of
1241
+ // childNode.
1242
+ // In addition, check that the slot either has not already been relocated, or
1243
+ // that its current location's host is not childNode's host. This is essentially
1244
+ // a check so that we don't try to relocate (and then hide) a node that is already
1245
+ // where it should be.
1246
+ if (!node['s-cn'] &&
1247
+ !node['s-nr'] &&
1248
+ node['s-hn'] !== childNode['s-hn'] &&
1249
+ (!BUILD.experimentalSlotFixes )) {
1250
+ // if `node` is located in the slot that `childNode` refers to (via the
1251
+ // `'s-sn'` property) then we need to relocate it from it's current spot
1252
+ // (under the host element parent) to the right slot location
1253
+ if (isNodeLocatedInSlot(node, slotName)) {
1181
1254
  // it's possible we've already decided to relocate this node
1182
- relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1255
+ let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1183
1256
  // made some changes to slots
1184
1257
  // let's make sure we also double check
1185
1258
  // fallbacks are correctly hidden or shown
1186
1259
  checkSlotFallbackVisibility = true;
1187
- node['s-sn'] = node['s-sn'] || slotNameAttr;
1260
+ // ensure that the slot-name attr is correct
1261
+ node['s-sn'] = node['s-sn'] || slotName;
1188
1262
  if (relocateNodeData) {
1189
- // previously we never found a slot home for this node
1190
- // but turns out we did, so let's remember it now
1263
+ relocateNodeData.$nodeToRelocate$['s-sh'] = childNode['s-hn'];
1264
+ // we marked this node for relocation previously but didn't find
1265
+ // out the slot reference node to which it needs to be relocated
1266
+ // so write it down now!
1191
1267
  relocateNodeData.$slotRefNode$ = childNode;
1192
1268
  }
1193
1269
  else {
1270
+ node['s-sh'] = childNode['s-hn'];
1194
1271
  // add to our list of nodes to relocate
1195
1272
  relocateNodes.push({
1196
1273
  $slotRefNode$: childNode,
@@ -1209,8 +1286,10 @@ const relocateSlotContent = (elm) => {
1209
1286
  }
1210
1287
  }
1211
1288
  else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
1212
- // so far this element does not have a slot home, not setting slotRefNode on purpose
1213
- // if we never find a home for this element then we'll need to hide it
1289
+ // the node is not found within the slot (`childNode`) that we're
1290
+ // currently looking at, so we stick it into `relocateNodes` to
1291
+ // handle later. If we never find a home for this element then
1292
+ // we'll need to hide it
1214
1293
  relocateNodes.push({
1215
1294
  $nodeToRelocate$: node,
1216
1295
  });
@@ -1218,30 +1297,41 @@ const relocateSlotContent = (elm) => {
1218
1297
  }
1219
1298
  }
1220
1299
  }
1300
+ // if we're dealing with any type of element (capable of itself being a
1301
+ // slot reference or containing one) then we recur
1221
1302
  if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1222
- relocateSlotContent(childNode);
1303
+ markSlotContentForRelocation(childNode);
1223
1304
  }
1224
1305
  }
1225
1306
  };
1226
- const isNodeLocatedInSlot = (nodeToRelocate, slotNameAttr) => {
1307
+ /**
1308
+ * Check whether a node is located in a given named slot.
1309
+ *
1310
+ * @param nodeToRelocate the node of interest
1311
+ * @param slotName the slot name to check
1312
+ * @returns whether the node is located in the slot or not
1313
+ */
1314
+ const isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
1227
1315
  if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1228
- if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {
1316
+ if (nodeToRelocate.getAttribute('slot') === null && slotName === '') {
1317
+ // if the node doesn't have a slot attribute, and the slot we're checking
1318
+ // is not a named slot, then we assume the node should be within the slot
1229
1319
  return true;
1230
1320
  }
1231
- if (nodeToRelocate.getAttribute('slot') === slotNameAttr) {
1321
+ if (nodeToRelocate.getAttribute('slot') === slotName) {
1232
1322
  return true;
1233
1323
  }
1234
1324
  return false;
1235
1325
  }
1236
- if (nodeToRelocate['s-sn'] === slotNameAttr) {
1326
+ if (nodeToRelocate['s-sn'] === slotName) {
1237
1327
  return true;
1238
1328
  }
1239
- return slotNameAttr === '';
1329
+ return slotName === '';
1240
1330
  };
1241
1331
  /**
1242
- * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by
1243
- * calling them with `null`. This signals that the DOM element corresponding to
1244
- * the VDom node has been removed from the DOM.
1332
+ * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by calling
1333
+ * them with `null`. This signals that the DOM element corresponding to the VDom
1334
+ * node has been removed from the DOM.
1245
1335
  *
1246
1336
  * @param vNode a virtual DOM node
1247
1337
  */
@@ -1265,6 +1355,7 @@ const nullifyVNodeRefs = (vNode) => {
1265
1355
  * @param isInitialLoad whether or not this is the first call after page load
1266
1356
  */
1267
1357
  const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1358
+ var _a, _b, _c, _d;
1268
1359
  const hostElm = hostRef.$hostElement$;
1269
1360
  const cmpMeta = hostRef.$cmpMeta$;
1270
1361
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -1320,43 +1411,48 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1320
1411
  // the disconnectCallback from working
1321
1412
  plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
1322
1413
  if (checkSlotRelocate) {
1323
- relocateSlotContent(rootVnode.$elm$);
1324
- let relocateData;
1325
- let nodeToRelocate;
1326
- let orgLocationNode;
1327
- let parentNodeRef;
1328
- let insertBeforeNode;
1329
- let refNode;
1330
- let i = 0;
1331
- for (; i < relocateNodes.length; i++) {
1332
- relocateData = relocateNodes[i];
1333
- nodeToRelocate = relocateData.$nodeToRelocate$;
1414
+ markSlotContentForRelocation(rootVnode.$elm$);
1415
+ for (const relocateData of relocateNodes) {
1416
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1334
1417
  if (!nodeToRelocate['s-ol']) {
1335
1418
  // add a reference node marking this node's original location
1336
1419
  // keep a reference to this node for later lookups
1337
- orgLocationNode =
1338
- doc.createTextNode('');
1420
+ const orgLocationNode = doc.createTextNode('');
1339
1421
  orgLocationNode['s-nr'] = nodeToRelocate;
1340
1422
  nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);
1341
1423
  }
1342
1424
  }
1343
- for (i = 0; i < relocateNodes.length; i++) {
1344
- relocateData = relocateNodes[i];
1345
- nodeToRelocate = relocateData.$nodeToRelocate$;
1346
- if (relocateData.$slotRefNode$) {
1347
- // by default we're just going to insert it directly
1348
- // after the slot reference node
1349
- parentNodeRef = relocateData.$slotRefNode$.parentNode;
1350
- insertBeforeNode = relocateData.$slotRefNode$.nextSibling;
1351
- orgLocationNode = nodeToRelocate['s-ol'];
1352
- while ((orgLocationNode = orgLocationNode.previousSibling)) {
1353
- refNode = orgLocationNode['s-nr'];
1354
- if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
1355
- refNode = refNode.nextSibling;
1356
- if (!refNode || !refNode['s-nr']) {
1357
- insertBeforeNode = refNode;
1358
- break;
1425
+ for (const relocateData of relocateNodes) {
1426
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1427
+ const slotRefNode = relocateData.$slotRefNode$;
1428
+ if (slotRefNode) {
1429
+ const parentNodeRef = slotRefNode.parentNode;
1430
+ // When determining where to insert content, the most simple case would be
1431
+ // to relocate the node immediately following the slot reference node. We do this
1432
+ // by getting a reference to the node immediately following the slot reference node
1433
+ // since we will use `insertBefore` to manipulate the DOM.
1434
+ //
1435
+ // If there is no node immediately following the slot reference node, then we will just
1436
+ // end up appending the node as the last child of the parent.
1437
+ let insertBeforeNode = slotRefNode.nextSibling;
1438
+ // If the node we're currently planning on inserting the new node before is an element,
1439
+ // we need to do some additional checks to make sure we're inserting the node in the correct order.
1440
+ // The use case here would be that we have multiple nodes being relocated to the same slot. So, we want
1441
+ // to make sure they get inserted into their new how in the same order they were declared in their original location.
1442
+ //
1443
+ // TODO(STENCIL-914): Remove `experimentalSlotFixes` check
1444
+ {
1445
+ let orgLocationNode = (_a = nodeToRelocate['s-ol']) === null || _a === void 0 ? void 0 : _a.previousSibling;
1446
+ while (orgLocationNode) {
1447
+ let refNode = (_b = orgLocationNode['s-nr']) !== null && _b !== void 0 ? _b : null;
1448
+ if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
1449
+ refNode = refNode.nextSibling;
1450
+ if (!refNode || !refNode['s-nr']) {
1451
+ insertBeforeNode = refNode;
1452
+ break;
1453
+ }
1359
1454
  }
1455
+ orgLocationNode = orgLocationNode.previousSibling;
1360
1456
  }
1361
1457
  }
1362
1458
  if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||
@@ -1369,14 +1465,29 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1369
1465
  // probably a component in the index.html that doesn't have its hostname set
1370
1466
  nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;
1371
1467
  }
1372
- // add it back to the dom but in its new home
1468
+ // Add it back to the dom but in its new home
1469
+ // If we get to this point and `insertBeforeNode` is `null`, that means
1470
+ // we're just going to append the node as the last child of the parent. Passing
1471
+ // `null` as the second arg here will trigger that behavior.
1373
1472
  parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);
1473
+ // Reset the `hidden` value back to what it was defined as originally
1474
+ // This solves a problem where a `slot` is dynamically rendered and `hidden` may have
1475
+ // been set on content originally, but now it has a slot to go to so it should have
1476
+ // the value it was defined as having in the DOM, not what we overrode it to.
1477
+ if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1478
+ nodeToRelocate.hidden = (_c = nodeToRelocate['s-ih']) !== null && _c !== void 0 ? _c : false;
1479
+ }
1374
1480
  }
1375
1481
  }
1376
1482
  }
1377
1483
  else {
1378
1484
  // this node doesn't have a slot home to go to, so let's hide it
1379
1485
  if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1486
+ // Store the initial value of `hidden` so we can reset it later when
1487
+ // moving nodes around.
1488
+ if (isInitialLoad) {
1489
+ nodeToRelocate['s-ih'] = (_d = nodeToRelocate.hidden) !== null && _d !== void 0 ? _d : false;
1490
+ }
1380
1491
  nodeToRelocate.hidden = true;
1381
1492
  }
1382
1493
  }
@@ -1556,6 +1667,10 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
1556
1667
  */
1557
1668
  const callRender = (hostRef, instance, elm, isInitialLoad) => {
1558
1669
  try {
1670
+ /**
1671
+ * minification optimization: `allRenderFn` is `true` if all components have a `render`
1672
+ * method, so we can call the method immediately. If not, check before calling it.
1673
+ */
1559
1674
  instance = instance.render && instance.render();
1560
1675
  {
1561
1676
  hostRef.$flags$ &= ~16 /* HOST_FLAGS.isQueuedForUpdate */;
@@ -1638,6 +1753,16 @@ const appDidLoad = (who) => {
1638
1753
  }
1639
1754
  nextTick(() => emitEvent(win, 'appload', { detail: { namespace: NAMESPACE } }));
1640
1755
  };
1756
+ /**
1757
+ * Allows to safely call a method, e.g. `componentDidLoad`, on an instance,
1758
+ * e.g. custom element node. If a build figures out that e.g. no component
1759
+ * has a `componentDidLoad` method, the instance method gets removed from the
1760
+ * output bundle and this function returns `undefined`.
1761
+ * @param instance any object that may or may not contain methods
1762
+ * @param method method name
1763
+ * @param arg single arbitrary argument
1764
+ * @returns result of method call if it exists, otherwise `undefined`
1765
+ */
1641
1766
  const safeCall = (instance, method, arg) => {
1642
1767
  if (instance && instance[method]) {
1643
1768
  try {
@@ -1706,13 +1831,13 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1706
1831
  */
1707
1832
  const proxyComponent = (Cstr, cmpMeta, flags) => {
1708
1833
  var _a;
1834
+ const prototype = Cstr.prototype;
1709
1835
  if (cmpMeta.$members$) {
1710
1836
  if (Cstr.watchers) {
1711
1837
  cmpMeta.$watchers$ = Cstr.watchers;
1712
1838
  }
1713
1839
  // It's better to have a const than two Object.entries()
1714
1840
  const members = Object.entries(cmpMeta.$members$);
1715
- const prototype = Cstr.prototype;
1716
1841
  members.map(([memberName, [memberFlags]]) => {
1717
1842
  if ((memberFlags & 31 /* MEMBER_FLAGS.Prop */ ||
1718
1843
  ((flags & 2 /* PROXY_FLAGS.proxyState */) && memberFlags & 32 /* MEMBER_FLAGS.State */))) {
@@ -1735,8 +1860,9 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1735
1860
  // proxyComponent - method
1736
1861
  Object.defineProperty(prototype, memberName, {
1737
1862
  value(...args) {
1863
+ var _a;
1738
1864
  const ref = getHostRef(this);
1739
- return ref.$onInstancePromise$.then(() => ref.$lazyInstance$[memberName](...args));
1865
+ return (_a = ref === null || ref === void 0 ? void 0 : ref.$onInstancePromise$) === null || _a === void 0 ? void 0 : _a.then(() => { var _a; return (_a = ref.$lazyInstance$) === null || _a === void 0 ? void 0 : _a[memberName](...args); });
1740
1866
  },
1741
1867
  });
1742
1868
  }
@@ -1745,6 +1871,7 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1745
1871
  const attrNameToPropName = new Map();
1746
1872
  prototype.attributeChangedCallback = function (attrName, oldValue, newValue) {
1747
1873
  plt.jmp(() => {
1874
+ var _a;
1748
1875
  const propName = attrNameToPropName.get(attrName);
1749
1876
  // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback
1750
1877
  // in the case where an attribute was set inline.
@@ -1800,11 +1927,12 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1800
1927
  // 1. The instance is ready
1801
1928
  // 2. The watchers are ready
1802
1929
  // 3. The value has changed
1803
- if (!(flags & 8 /* HOST_FLAGS.isConstructingInstance */) &&
1930
+ if (flags &&
1931
+ !(flags & 8 /* HOST_FLAGS.isConstructingInstance */) &&
1804
1932
  flags & 128 /* HOST_FLAGS.isWatchReady */ &&
1805
1933
  newValue !== oldValue) {
1806
1934
  const instance = hostRef.$lazyInstance$ ;
1807
- const entry = cmpMeta.$watchers$[attrName];
1935
+ const entry = (_a = cmpMeta.$watchers$) === null || _a === void 0 ? void 0 : _a[attrName];
1808
1936
  entry === null || entry === void 0 ? void 0 : entry.forEach((callbackName) => {
1809
1937
  if (instance[callbackName] != null) {
1810
1938
  instance[callbackName].call(instance, newValue, oldValue, attrName);
@@ -1826,10 +1954,11 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1826
1954
  ...members
1827
1955
  .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */)
1828
1956
  .map(([propName, m]) => {
1957
+ var _a;
1829
1958
  const attrName = m[1] || propName;
1830
1959
  attrNameToPropName.set(attrName, propName);
1831
1960
  if (m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {
1832
- cmpMeta.$attrsToReflect$.push([propName, attrName]);
1961
+ (_a = cmpMeta.$attrsToReflect$) === null || _a === void 0 ? void 0 : _a.push([propName, attrName]);
1833
1962
  }
1834
1963
  return attrName;
1835
1964
  }),
@@ -1838,7 +1967,18 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1838
1967
  }
1839
1968
  return Cstr;
1840
1969
  };
1841
- const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {
1970
+ /**
1971
+ * Initialize a Stencil component given a reference to its host element, its
1972
+ * runtime bookkeeping data structure, runtime metadata about the component,
1973
+ * and (optionally) an HMR version ID.
1974
+ *
1975
+ * @param elm a host element
1976
+ * @param hostRef the element's runtime bookkeeping object
1977
+ * @param cmpMeta runtime metadata for the Stencil component
1978
+ * @param hmrVersionId an (optional) HMR version ID
1979
+ */
1980
+ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1981
+ let Cstr;
1842
1982
  // initializeComponent
1843
1983
  if ((hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {
1844
1984
  // Let the runtime know that the component has been initialized
@@ -2021,12 +2161,13 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
2021
2161
  const customElements = win.customElements;
2022
2162
  const head = doc.head;
2023
2163
  const metaCharset = /*@__PURE__*/ head.querySelector('meta[charset]');
2024
- const visibilityStyle = /*@__PURE__*/ doc.createElement('style');
2164
+ const dataStyles = /*@__PURE__*/ doc.createElement('style');
2025
2165
  const deferredConnectedCallbacks = [];
2026
2166
  let appLoadFallback;
2027
2167
  let isBootstrapping = true;
2028
2168
  Object.assign(plt, options);
2029
2169
  plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;
2170
+ let hasSlotRelocation = false;
2030
2171
  lazyBundles.map((lazyBundle) => {
2031
2172
  lazyBundle[1].map((compactMeta) => {
2032
2173
  var _a;
@@ -2036,6 +2177,11 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
2036
2177
  $members$: compactMeta[2],
2037
2178
  $listeners$: compactMeta[3],
2038
2179
  };
2180
+ // Check if we are using slots outside the shadow DOM in this component.
2181
+ // We'll use this information later to add styles for `slot-fb` elements
2182
+ if (cmpMeta.$flags$ & 4 /* CMP_FLAGS.hasSlotRelocation */) {
2183
+ hasSlotRelocation = true;
2184
+ }
2039
2185
  {
2040
2186
  cmpMeta.$members$ = compactMeta[2];
2041
2187
  }
@@ -2095,15 +2241,25 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
2095
2241
  }
2096
2242
  });
2097
2243
  });
2244
+ // Add styles for `slot-fb` elements if any of our components are using slots outside the Shadow DOM
2245
+ if (hasSlotRelocation) {
2246
+ dataStyles.innerHTML += SLOT_FB_CSS;
2247
+ }
2248
+ // Add hydration styles
2098
2249
  {
2099
- visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;
2100
- visibilityStyle.setAttribute('data-styles', '');
2250
+ dataStyles.innerHTML += cmpTags + HYDRATED_CSS;
2251
+ }
2252
+ // If we have styles, add them to the DOM
2253
+ if (dataStyles.innerHTML.length) {
2254
+ dataStyles.setAttribute('data-styles', '');
2101
2255
  // Apply CSP nonce to the style tag if it exists
2102
2256
  const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);
2103
2257
  if (nonce != null) {
2104
- visibilityStyle.setAttribute('nonce', nonce);
2258
+ dataStyles.setAttribute('nonce', nonce);
2105
2259
  }
2106
- head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);
2260
+ // Insert the styles into the document head
2261
+ // NOTE: this _needs_ to happen last so we can ensure the nonce (and other attributes) are applied
2262
+ head.insertBefore(dataStyles, metaCharset ? metaCharset.nextSibling : head.firstChild);
2107
2263
  }
2108
2264
  // Process deferred connectedCallbacks now all components have been registered
2109
2265
  isBootstrapping = false;
@@ -2159,13 +2315,40 @@ const hostListenerOpts = (flags) => (flags & 2 /* LISTENER_FLAGS.Capture */) !==
2159
2315
  * @returns void
2160
2316
  */
2161
2317
  const setNonce = (nonce) => (plt.$nonce$ = nonce);
2318
+ /**
2319
+ * A WeakMap mapping runtime component references to their corresponding host reference
2320
+ * instances.
2321
+ */
2162
2322
  const hostRefs = /*@__PURE__*/ new WeakMap();
2323
+ /**
2324
+ * Given a {@link d.RuntimeRef} retrieve the corresponding {@link d.HostRef}
2325
+ *
2326
+ * @param ref the runtime ref of interest
2327
+ * @returns the Host reference (if found) or undefined
2328
+ */
2163
2329
  const getHostRef = (ref) => hostRefs.get(ref);
2330
+ /**
2331
+ * Register a lazy instance with the {@link hostRefs} object so it's
2332
+ * corresponding {@link d.HostRef} can be retrieved later.
2333
+ *
2334
+ * @param lazyInstance the lazy instance of interest
2335
+ * @param hostRef that instances `HostRef` object
2336
+ * @returns a reference to the host ref WeakMap
2337
+ */
2164
2338
  const registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);
2165
- const registerHost = (elm, cmpMeta) => {
2339
+ /**
2340
+ * Register a host element for a Stencil component, setting up various metadata
2341
+ * and callbacks based on {@link BUILD} flags as well as the component's runtime
2342
+ * metadata.
2343
+ *
2344
+ * @param hostElement the host element to register
2345
+ * @param cmpMeta runtime metadata for that component
2346
+ * @returns a reference to the host ref WeakMap
2347
+ */
2348
+ const registerHost = (hostElement, cmpMeta) => {
2166
2349
  const hostRef = {
2167
2350
  $flags$: 0,
2168
- $hostElement$: elm,
2351
+ $hostElement$: hostElement,
2169
2352
  $cmpMeta$: cmpMeta,
2170
2353
  $instanceValues$: new Map(),
2171
2354
  };
@@ -2174,11 +2357,11 @@ const registerHost = (elm, cmpMeta) => {
2174
2357
  }
2175
2358
  {
2176
2359
  hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));
2177
- elm['s-p'] = [];
2178
- elm['s-rc'] = [];
2360
+ hostElement['s-p'] = [];
2361
+ hostElement['s-rc'] = [];
2179
2362
  }
2180
- addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
2181
- return hostRefs.set(elm, hostRef);
2363
+ addHostEventListeners(hostElement, hostRef, cmpMeta.$listeners$);
2364
+ return hostRefs.set(hostElement, hostRef);
2182
2365
  };
2183
2366
  const isMemberInElement = (elm, memberName) => memberName in elm;
2184
2367
  const consoleError = (e, el) => (0, console.error)(e, el);
@@ -2192,23 +2375,23 @@ const loadModule = (cmpMeta, hostRef, hmrVersionId) => {
2192
2375
  return module[exportName];
2193
2376
  }
2194
2377
 
2195
- if (!hmrVersionId || !BUILD.hotModuleReplacement) {
2196
- const processMod = importedModule => {
2197
- cmpModules.set(bundleId, importedModule);
2198
- return importedModule[exportName];
2199
- }
2200
- switch(bundleId) {
2201
-
2202
- case 'mg-action-more_34.cjs':
2203
- return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
2204
- /* webpackMode: "lazy" */
2205
- './mg-action-more_34.cjs.entry.js')); }).then(processMod, consoleError);
2206
- case 'mg-item-more.cjs':
2207
- return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
2208
- /* webpackMode: "lazy" */
2209
- './mg-item-more.cjs.entry.js')); }).then(processMod, consoleError);
2378
+ if (!hmrVersionId || !BUILD.hotModuleReplacement) {
2379
+ const processMod = importedModule => {
2380
+ cmpModules.set(bundleId, importedModule);
2381
+ return importedModule[exportName];
2382
+ }
2383
+ switch(bundleId) {
2384
+
2385
+ case 'mg-action-more_34.cjs':
2386
+ return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
2387
+ /* webpackMode: "lazy" */
2388
+ './mg-action-more_34.cjs.entry.js')); }).then(processMod, consoleError);
2389
+ case 'mg-item-more.cjs':
2390
+ return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
2391
+ /* webpackMode: "lazy" */
2392
+ './mg-item-more.cjs.entry.js')); }).then(processMod, consoleError);
2393
+ }
2210
2394
  }
2211
- }
2212
2395
  return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
2213
2396
  /* @vite-ignore */
2214
2397
  /* webpackInclude: /\.entry\.js$/ */
@@ -2283,7 +2466,7 @@ const flush = () => {
2283
2466
  }
2284
2467
  }
2285
2468
  };
2286
- const nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);
2469
+ const nextTick = (cb) => promiseResolve().then(cb);
2287
2470
  const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
2288
2471
 
2289
2472
  exports.Host = Host;
@@ -2295,4 +2478,4 @@ exports.promiseResolve = promiseResolve;
2295
2478
  exports.registerInstance = registerInstance;
2296
2479
  exports.setNonce = setNonce;
2297
2480
 
2298
- //# sourceMappingURL=index-c042e24b.js.map
2481
+ //# sourceMappingURL=index-8532b5e9.js.map