@duetds/components 6.2.4 → 6.2.6

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 (645) hide show
  1. package/hydrate/index.d.ts +1 -1
  2. package/hydrate/index.js +2385 -4366
  3. package/lib/cjs/{dom-96576bce.js → dom-bcfa684c.js} +1 -1
  4. package/lib/cjs/duet-action-button.cjs.entry.js +14 -77
  5. package/lib/cjs/duet-alert.cjs.entry.js +10 -42
  6. package/lib/cjs/duet-badge.cjs.entry.js +1 -10
  7. package/lib/cjs/duet-breadcrumb.cjs.entry.js +2 -10
  8. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +2 -4
  9. package/lib/cjs/duet-button_2.cjs.entry.js +30 -119
  10. package/lib/cjs/duet-caption_4.cjs.entry.js +4 -78
  11. package/lib/cjs/duet-card.cjs.entry.js +16 -55
  12. package/lib/cjs/duet-checkbox.cjs.entry.js +21 -49
  13. package/lib/cjs/duet-choice_2.cjs.entry.js +52 -153
  14. package/lib/cjs/duet-collapsible.cjs.entry.js +8 -41
  15. package/lib/cjs/duet-combobox.cjs.entry.js +26 -50
  16. package/lib/cjs/duet-cookie-consent.cjs.entry.js +3 -9
  17. package/lib/cjs/duet-date-picker.cjs.entry.js +37 -108
  18. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -17
  19. package/lib/cjs/duet-editable-table_3.cjs.entry.js +163 -404
  20. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -10
  21. package/lib/cjs/duet-fieldset.cjs.entry.js +8 -14
  22. package/lib/cjs/duet-footer.cjs.entry.js +13 -42
  23. package/lib/cjs/duet-grid_2.cjs.entry.js +3 -43
  24. package/lib/cjs/duet-header_2.cjs.entry.js +56 -163
  25. package/lib/cjs/duet-hero.cjs.entry.js +15 -90
  26. package/lib/cjs/duet-icon.cjs.entry.js +4 -35
  27. package/lib/cjs/duet-input_2.cjs.entry.js +41 -115
  28. package/lib/cjs/duet-layout.cjs.entry.js +1 -24
  29. package/lib/cjs/duet-list_2.cjs.entry.js +1 -23
  30. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +15 -11
  31. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +28 -26
  32. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +22 -12
  33. package/lib/cjs/duet-menu-bar.cjs.entry.js +6 -8
  34. package/lib/cjs/duet-modal.cjs.entry.js +4 -59
  35. package/lib/cjs/duet-multiselect.cjs.entry.js +18 -59
  36. package/lib/cjs/duet-nav.cjs.entry.js +2 -83
  37. package/lib/cjs/duet-notification_2.cjs.entry.js +15 -74
  38. package/lib/cjs/duet-number-input.cjs.entry.js +53 -142
  39. package/lib/cjs/duet-pagination_2.cjs.entry.js +51 -125
  40. package/lib/cjs/duet-progress.cjs.entry.js +4 -26
  41. package/lib/cjs/duet-radio_2.cjs.entry.js +36 -84
  42. package/lib/cjs/duet-range-slider.cjs.entry.js +21 -62
  43. package/lib/cjs/duet-scrollable_3.cjs.entry.js +25 -88
  44. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -7
  45. package/lib/cjs/duet-select.cjs.entry.js +25 -65
  46. package/lib/cjs/duet-step_2.cjs.entry.js +8 -34
  47. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +43 -0
  48. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +51 -0
  49. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +37 -0
  50. package/lib/cjs/duet-submenu-bar.cjs.entry.js +35 -0
  51. package/lib/cjs/duet-textarea.cjs.entry.js +31 -79
  52. package/lib/cjs/duet-toggle.cjs.entry.js +15 -38
  53. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +1 -13
  54. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +11 -28
  55. package/lib/cjs/duet-toolbar-link.cjs.entry.js +2 -14
  56. package/lib/cjs/duet-toolbar.cjs.entry.js +2 -5
  57. package/lib/cjs/duet-tooltip.cjs.entry.js +25 -77
  58. package/lib/cjs/duet-tray.cjs.entry.js +11 -53
  59. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +8 -29
  60. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  61. package/lib/cjs/duet.cjs.js +4 -4
  62. package/lib/cjs/{focus-utils-25247ce1.js → focus-utils-0d18f24e.js} +1 -1
  63. package/lib/cjs/{index-e009343b.js → index-14a34a4b.js} +1438 -1235
  64. package/lib/cjs/loader.cjs.js +3 -3
  65. package/lib/cjs/{shadow-css-38b9e725.js → shadow-css-1ea48714.js} +1 -1
  66. package/lib/collection/collection-manifest.json +8 -8
  67. package/lib/collection/common/a11y-component.js +0 -3
  68. package/lib/collection/common/form-components.js +0 -3
  69. package/lib/collection/components/duet-action-button/duet-action-button.js +403 -461
  70. package/lib/collection/components/duet-alert/duet-alert.js +259 -289
  71. package/lib/collection/components/duet-badge/duet-badge.js +84 -89
  72. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +96 -101
  73. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +47 -48
  74. package/lib/collection/components/duet-button/duet-button.js +838 -912
  75. package/lib/collection/components/duet-caption/duet-caption.js +96 -103
  76. package/lib/collection/components/duet-card/duet-card.js +381 -431
  77. package/lib/collection/components/duet-checkbox/duet-checkbox.js +476 -498
  78. package/lib/collection/components/duet-choice/duet-choice.css +6 -1
  79. package/lib/collection/components/duet-choice/duet-choice.js +731 -819
  80. package/lib/collection/components/duet-choice-group/duet-choice-group.js +282 -308
  81. package/lib/collection/components/duet-collapsible/duet-collapsible.js +208 -237
  82. package/lib/collection/components/duet-combobox/duet-combobox-select-single.js +1 -5
  83. package/lib/collection/components/duet-combobox/duet-combobox-select.js +1 -3
  84. package/lib/collection/components/duet-combobox/duet-combobox.css +47 -14
  85. package/lib/collection/components/duet-combobox/duet-combobox.js +257 -269
  86. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.js +77 -82
  87. package/lib/collection/components/duet-date-picker/date-picker-day.js +1 -3
  88. package/lib/collection/components/duet-date-picker/date-picker-input.js +1 -12
  89. package/lib/collection/components/duet-date-picker/date-picker-month.js +6 -12
  90. package/lib/collection/components/duet-date-picker/duet-date-picker.js +703 -795
  91. package/lib/collection/components/duet-divider/duet-divider.js +57 -57
  92. package/lib/collection/components/duet-editable-table/duet-editable-table.js +316 -381
  93. package/lib/collection/components/duet-empty-state/duet-empty-state.js +83 -90
  94. package/lib/collection/components/duet-fieldset/duet-fieldset.css +2 -0
  95. package/lib/collection/components/duet-fieldset/duet-fieldset.js +143 -153
  96. package/lib/collection/components/duet-footer/duet-footer.js +337 -378
  97. package/lib/collection/components/duet-grid/duet-grid.js +149 -162
  98. package/lib/collection/components/duet-grid-item/duet-grid-item.js +153 -164
  99. package/lib/collection/components/duet-header/duet-header-dropdown.js +11 -19
  100. package/lib/collection/components/duet-header/duet-header-hamburger.js +1 -5
  101. package/lib/collection/components/duet-header/duet-header-icon.js +1 -2
  102. package/lib/collection/components/duet-header/duet-header.js +872 -1023
  103. package/lib/collection/components/duet-heading/duet-heading.js +183 -200
  104. package/lib/collection/components/duet-hero/duet-hero.js +568 -660
  105. package/lib/collection/components/duet-icon/duet-icon.js +240 -263
  106. package/lib/collection/components/duet-input/duet-input.js +937 -1009
  107. package/lib/collection/components/duet-label/duet-label.js +95 -100
  108. package/lib/collection/components/duet-layout/duet-layout.js +163 -189
  109. package/lib/collection/components/duet-link/duet-link.js +204 -223
  110. package/lib/collection/components/duet-list/duet-list.js +181 -196
  111. package/lib/collection/components/duet-list-item/duet-list-item.js +12 -12
  112. package/lib/collection/components/duet-logo/duet-logo.js +171 -190
  113. package/lib/collection/components/duet-menu-bar/duet-menu-bar.css +8 -1
  114. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +62 -43
  115. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.css +4 -3
  116. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +110 -120
  117. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.css +10 -2
  118. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +105 -80
  119. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.css +47 -7
  120. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +108 -77
  121. package/lib/collection/components/duet-modal/duet-modal.js +466 -520
  122. package/lib/collection/components/duet-multiselect/duet-multiselect.js +411 -454
  123. package/lib/collection/components/duet-nav/duet-nav.css +5 -0
  124. package/lib/collection/components/duet-nav/duet-nav.js +38 -152
  125. package/lib/collection/components/duet-notification/duet-notification.js +201 -231
  126. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +284 -312
  127. package/lib/collection/components/duet-number-input/duet-number-input.js +851 -944
  128. package/lib/collection/components/duet-pagination/duet-pagination.js +374 -439
  129. package/lib/collection/components/duet-paragraph/duet-paragraph.js +140 -154
  130. package/lib/collection/components/duet-progress/duet-progress.js +223 -253
  131. package/lib/collection/components/duet-radio/duet-radio.js +519 -531
  132. package/lib/collection/components/duet-radio-group/duet-radio-group.js +282 -308
  133. package/lib/collection/components/duet-range-slider/duet-range-slider.js +468 -505
  134. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +187 -204
  135. package/lib/collection/components/duet-scrollable/duet-scrollable.js +98 -106
  136. package/lib/collection/components/duet-section-layout/duet-section-layout.js +58 -61
  137. package/lib/collection/components/duet-select/duet-select.js +565 -606
  138. package/lib/collection/components/duet-spacer/duet-spacer.js +77 -81
  139. package/lib/collection/components/duet-spinner/duet-spinner.js +99 -107
  140. package/lib/collection/components/duet-step/duet-step.js +206 -219
  141. package/lib/collection/components/duet-stepper/duet-stepper.js +148 -156
  142. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.css +37 -0
  143. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +63 -0
  144. package/lib/collection/components/{duet-menu-bar-menu-dropdown/duet-menu-bar-menu-dropdown.css → duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.css} +28 -18
  145. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +124 -0
  146. package/lib/collection/components/{duet-menu-bar-menu-dropdown-link/duet-menu-bar-menu-dropdown-link.css → duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.css} +6 -6
  147. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +143 -0
  148. package/lib/collection/components/{duet-menu-bar-menu-link/duet-menu-bar-menu-link.css → duet-submenu-bar-link/duet-submenu-bar-link.css} +5 -17
  149. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +101 -0
  150. package/lib/collection/components/duet-tab/duet-tab.js +95 -96
  151. package/lib/collection/components/duet-tab-group/duet-tab-group.js +367 -405
  152. package/lib/collection/components/duet-table/duet-table.js +144 -160
  153. package/lib/collection/components/duet-textarea/duet-textarea.js +694 -747
  154. package/lib/collection/components/duet-toggle/duet-toggle.js +388 -404
  155. package/lib/collection/components/duet-toolbar/duet-toolbar.css +1 -0
  156. package/lib/collection/components/duet-toolbar/duet-toolbar.js +38 -38
  157. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.css +2 -3
  158. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +116 -145
  159. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +93 -102
  160. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +89 -98
  161. package/lib/collection/components/duet-tooltip/duet-tooltip.js +349 -401
  162. package/lib/collection/components/duet-tray/duet-tray.js +235 -276
  163. package/lib/collection/components/duet-upload/duet-upload.js +1371 -1549
  164. package/lib/collection/components/duet-upload/upload-editable-item-error.js +1 -6
  165. package/lib/collection/components/duet-upload/upload-editable-item-inprogres.js +1 -6
  166. package/lib/collection/components/duet-upload/upload-editable-item-pending.js +1 -4
  167. package/lib/collection/components/duet-upload/upload-editable-item-success.js +5 -21
  168. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +137 -153
  169. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +12 -9
  170. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  171. package/lib/dist-custom-elements/duet-alert.js +1 -1
  172. package/lib/dist-custom-elements/duet-badge.js +1 -1
  173. package/lib/dist-custom-elements/duet-breadcrumb.js +3 -11
  174. package/lib/dist-custom-elements/duet-breadcrumbs.js +3 -5
  175. package/lib/dist-custom-elements/duet-button.js +1 -1
  176. package/lib/dist-custom-elements/duet-caption.js +1 -1
  177. package/lib/dist-custom-elements/duet-card.js +19 -58
  178. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  179. package/lib/dist-custom-elements/duet-choice-group.js +19 -49
  180. package/lib/dist-custom-elements/duet-choice.js +43 -114
  181. package/lib/dist-custom-elements/duet-collapsible.js +10 -43
  182. package/lib/dist-custom-elements/duet-combobox.js +29 -59
  183. package/lib/dist-custom-elements/duet-cookie-consent.js +8 -14
  184. package/lib/dist-custom-elements/duet-date-picker.js +45 -116
  185. package/lib/dist-custom-elements/duet-divider.js +1 -1
  186. package/lib/dist-custom-elements/duet-editable-table.js +1 -1
  187. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  188. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  189. package/lib/dist-custom-elements/duet-footer.js +16 -45
  190. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  191. package/lib/dist-custom-elements/duet-grid.js +1 -1
  192. package/lib/dist-custom-elements/duet-header.js +65 -152
  193. package/lib/dist-custom-elements/duet-heading.js +1 -1
  194. package/lib/dist-custom-elements/duet-hero.js +23 -98
  195. package/lib/dist-custom-elements/duet-icon.js +1 -1
  196. package/lib/dist-custom-elements/duet-input.js +1 -1
  197. package/lib/dist-custom-elements/duet-label.js +1 -1
  198. package/lib/dist-custom-elements/duet-layout.js +1 -24
  199. package/lib/dist-custom-elements/duet-link.js +1 -1
  200. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  201. package/lib/dist-custom-elements/duet-list.js +1 -1
  202. package/lib/dist-custom-elements/duet-logo.js +1 -1
  203. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +18 -13
  204. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +30 -28
  205. package/lib/dist-custom-elements/duet-menu-bar-link.js +24 -13
  206. package/lib/dist-custom-elements/duet-menu-bar.js +9 -10
  207. package/lib/dist-custom-elements/duet-modal.js +10 -65
  208. package/lib/dist-custom-elements/duet-multiselect.js +25 -66
  209. package/lib/dist-custom-elements/duet-nav.js +3 -84
  210. package/lib/dist-custom-elements/duet-notification-drawer.js +18 -48
  211. package/lib/dist-custom-elements/duet-notification.js +2 -31
  212. package/lib/dist-custom-elements/duet-number-input.js +59 -148
  213. package/lib/dist-custom-elements/duet-pagination.js +51 -101
  214. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  215. package/lib/dist-custom-elements/duet-progress.js +1 -1
  216. package/lib/dist-custom-elements/duet-radio-group.js +19 -49
  217. package/lib/dist-custom-elements/duet-radio.js +23 -41
  218. package/lib/dist-custom-elements/duet-range-slider.js +23 -64
  219. package/lib/dist-custom-elements/duet-range-stepper.js +10 -34
  220. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  221. package/lib/dist-custom-elements/duet-section-layout.js +1 -7
  222. package/lib/dist-custom-elements/duet-select.js +1 -1
  223. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  224. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  225. package/lib/dist-custom-elements/duet-step.js +11 -20
  226. package/lib/dist-custom-elements/duet-stepper.js +2 -19
  227. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.d.ts +11 -0
  228. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +69 -0
  229. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.d.ts +11 -0
  230. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +75 -0
  231. package/lib/dist-custom-elements/{duet-menu-bar-menu-link.d.ts → duet-submenu-bar-link.d.ts} +4 -4
  232. package/lib/dist-custom-elements/duet-submenu-bar-link.js +61 -0
  233. package/lib/dist-custom-elements/{duet-menu-bar-menu.d.ts → duet-submenu-bar.d.ts} +4 -4
  234. package/lib/dist-custom-elements/duet-submenu-bar.js +51 -0
  235. package/lib/dist-custom-elements/duet-tab-group.js +26 -72
  236. package/lib/dist-custom-elements/duet-tab.js +3 -9
  237. package/lib/dist-custom-elements/duet-table.js +1 -1
  238. package/lib/dist-custom-elements/duet-textarea.js +38 -86
  239. package/lib/dist-custom-elements/duet-toggle.js +16 -39
  240. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -14
  241. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +13 -30
  242. package/lib/dist-custom-elements/duet-toolbar-link.js +3 -15
  243. package/lib/dist-custom-elements/duet-toolbar.js +2 -5
  244. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  245. package/lib/dist-custom-elements/duet-tray.js +14 -56
  246. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  247. package/lib/dist-custom-elements/duet-upload.js +165 -332
  248. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  249. package/lib/dist-custom-elements/index.d.ts +75 -5
  250. package/lib/dist-custom-elements/index.js +76 -1
  251. package/lib/dist-custom-elements/{p-dcffd5be.js → p-0145dc9f.js} +1 -7
  252. package/lib/dist-custom-elements/{p-0938933e.js → p-029208b5.js} +20 -71
  253. package/lib/dist-custom-elements/{p-f674e164.js → p-076044f7.js} +17 -80
  254. package/lib/dist-custom-elements/{p-c5d74817.js → p-0bc5bea3.js} +2 -22
  255. package/lib/dist-custom-elements/{p-b4b809ff.js → p-11621a52.js} +33 -109
  256. package/lib/dist-custom-elements/{p-bd4ab88c.js → p-1c5a0ab0.js} +21 -49
  257. package/lib/dist-custom-elements/{p-70d1ca9f.js → p-2d3fc462.js} +1 -1
  258. package/lib/dist-custom-elements/{p-396cb7a5.js → p-2f9f54eb.js} +9 -30
  259. package/lib/dist-custom-elements/{p-8c0cf877.js → p-31b3a82e.js} +27 -79
  260. package/lib/dist-custom-elements/{p-29b4f008.js → p-3b1bc8f3.js} +5 -26
  261. package/lib/dist-custom-elements/{p-c4165359.js → p-4905133d.js} +1 -13
  262. package/lib/dist-custom-elements/{p-0347f9ec.js → p-49d5f105.js} +1 -1
  263. package/lib/dist-custom-elements/{p-1302f6e8.js → p-52471a7a.js} +5 -27
  264. package/lib/dist-custom-elements/{p-9ed347f9.js → p-535ce3ec.js} +1 -1
  265. package/lib/dist-custom-elements/{p-33e00967.js → p-55325c49.js} +1 -1
  266. package/lib/dist-custom-elements/{p-279dedcd.js → p-5846a06a.js} +2 -11
  267. package/lib/dist-custom-elements/{p-e57df145.js → p-626f0ed7.js} +2 -25
  268. package/lib/dist-custom-elements/{p-c4d8cad0.js → p-738bd3c5.js} +1 -1
  269. package/lib/dist-custom-elements/{p-862c60cc.js → p-7b1b2eef.js} +3 -16
  270. package/lib/dist-custom-elements/{p-6e81048c.js → p-88b72658.js} +30 -70
  271. package/lib/dist-custom-elements/{p-908c1151.js → p-91098fd5.js} +5 -36
  272. package/lib/dist-custom-elements/{p-0b8f16f1.js → p-9986919d.js} +1 -1
  273. package/lib/dist-custom-elements/{p-3fa8edce.js → p-9d08c707.js} +45 -111
  274. package/lib/dist-custom-elements/{p-4367369a.js → p-a1724291.js} +475 -272
  275. package/lib/dist-custom-elements/{p-b89983b2.js → p-a5f24f49.js} +1 -10
  276. package/lib/dist-custom-elements/{p-ed503468.js → p-ab04760e.js} +3 -20
  277. package/lib/dist-custom-elements/{p-2a509b17.js → p-becb3aa3.js} +2 -21
  278. package/lib/dist-custom-elements/{p-1fef1f90.js → p-cc5bc0c6.js} +9 -15
  279. package/lib/dist-custom-elements/{p-464a80f2.js → p-ce42be86.js} +1 -23
  280. package/lib/dist-custom-elements/{p-e987e04b.js → p-d188f26e.js} +1 -11
  281. package/lib/dist-custom-elements/{p-4bb2e37b.js → p-db985827.js} +6 -17
  282. package/lib/dist-custom-elements/{p-d4c234ed.js → p-e2cd1c98.js} +1 -1
  283. package/lib/dist-custom-elements/{p-b9058029.js → p-e4a60f42.js} +8 -0
  284. package/lib/dist-custom-elements/{p-9cfc3bee.js → p-e4c2e7eb.js} +14 -46
  285. package/lib/dist-custom-elements/{p-1f03397c.js → p-f079cc55.js} +7 -30
  286. package/lib/dist-custom-elements/{p-f51d88cc.js → p-f4d2face.js} +2 -10
  287. package/lib/dist-custom-elements/{p-ca2b02bc.js → p-fe5341bf.js} +3 -25
  288. package/lib/duet/duet.esm.js +1 -1
  289. package/lib/duet/duet.js +2 -1
  290. package/lib/duet/{p-61baccc6.system.entry.js → p-01a95d2f.system.entry.js} +1 -1
  291. package/lib/duet/p-06a4aee0.system.entry.js +4 -0
  292. package/lib/duet/{p-3b31184e.js → p-07970d29.js} +0 -0
  293. package/lib/duet/p-07a46bc0.entry.js +4 -0
  294. package/lib/duet/p-0818ae38.entry.js +4 -0
  295. package/lib/duet/{p-a5dcf047.entry.js → p-08f88403.entry.js} +1 -1
  296. package/lib/duet/{p-2cf9ce9f.system.entry.js → p-140c2b23.system.entry.js} +2 -2
  297. package/lib/duet/{p-e60b3dc2.entry.js → p-16665db1.entry.js} +1 -1
  298. package/lib/duet/{p-a585455c.system.entry.js → p-16803126.system.entry.js} +1 -1
  299. package/lib/duet/{p-71f1a210.system.entry.js → p-18bdd586.system.entry.js} +1 -1
  300. package/lib/duet/p-1bde084c.entry.js +4 -0
  301. package/lib/duet/p-1c8bd070.system.entry.js +4 -0
  302. package/lib/duet/p-1d75f8c8.system.entry.js +4 -0
  303. package/lib/duet/{p-eb94a92c.system.entry.js → p-1f1ce7cb.system.entry.js} +1 -1
  304. package/lib/duet/{p-21e8b3cb.system.entry.js → p-250c73cb.system.entry.js} +1 -1
  305. package/lib/duet/p-25bbc964.system.entry.js +4 -0
  306. package/lib/duet/p-2821969c.system.entry.js +4 -0
  307. package/lib/duet/{p-a5f977bc.system.entry.js → p-2ddfb202.system.entry.js} +2 -2
  308. package/lib/duet/{p-995fe7b5.entry.js → p-2e21973b.entry.js} +1 -1
  309. package/lib/duet/p-321b7e1b.entry.js +4 -0
  310. package/lib/duet/{p-71e54f66.system.entry.js → p-38c7c72f.system.entry.js} +1 -1
  311. package/lib/duet/{p-ace82109.system.entry.js → p-3d2b34f3.system.entry.js} +2 -2
  312. package/lib/duet/{p-4c7ae11f.system.entry.js → p-3e4a074c.system.entry.js} +1 -1
  313. package/lib/duet/p-3e4cfd2d.entry.js +4 -0
  314. package/lib/duet/p-428f4378.entry.js +4 -0
  315. package/lib/duet/p-44fb0cd4.entry.js +4 -0
  316. package/lib/duet/{p-15b79ed1.entry.js → p-453bb082.entry.js} +1 -1
  317. package/lib/duet/{p-465c7f64.system.entry.js → p-476affb5.system.entry.js} +1 -1
  318. package/lib/duet/p-498a337c.entry.js +4 -0
  319. package/lib/duet/p-49f74a78.system.entry.js +4 -0
  320. package/lib/duet/p-4afc265b.entry.js +4 -0
  321. package/lib/duet/p-4bf9ce5d.entry.js +4 -0
  322. package/lib/duet/{p-14e5b2e7.system.entry.js → p-4d7701cf.system.entry.js} +1 -1
  323. package/lib/duet/p-4e5a7d50.entry.js +4 -0
  324. package/lib/duet/{p-32c587da.entry.js → p-4e669043.entry.js} +1 -1
  325. package/lib/duet/p-52b1ae9c.entry.js +4 -0
  326. package/lib/duet/{p-870e88b7.system.entry.js → p-589d18c0.system.entry.js} +1 -1
  327. package/lib/duet/{p-daa920e3.system.entry.js → p-5be0eb10.system.entry.js} +1 -1
  328. package/lib/duet/p-5d2799c7.system.entry.js +4 -0
  329. package/lib/duet/p-5d3d3ef4.entry.js +4 -0
  330. package/lib/duet/p-5ffa7084.entry.js +4 -0
  331. package/lib/duet/p-61208b24.system.entry.js +4 -0
  332. package/lib/duet/p-665fc09a.entry.js +4 -0
  333. package/lib/duet/{p-fe87f458.system.entry.js → p-6801edc9.system.entry.js} +1 -1
  334. package/lib/duet/{p-fc200674.system.entry.js → p-68802a44.system.entry.js} +2 -2
  335. package/lib/duet/p-6ba131a6.entry.js +4 -0
  336. package/lib/duet/{p-d164cdeb.system.entry.js → p-6dcb5ddf.system.entry.js} +1 -1
  337. package/lib/duet/{p-2bcf54bb.entry.js → p-71669602.entry.js} +1 -1
  338. package/lib/duet/p-71b48d4c.entry.js +4 -0
  339. package/lib/duet/{p-b668b67c.system.js → p-73900354.system.js} +0 -0
  340. package/lib/duet/p-73b840aa.entry.js +4 -0
  341. package/lib/duet/{p-caf8cc5f.system.entry.js → p-7758cfac.system.entry.js} +2 -2
  342. package/lib/duet/p-79740f92.entry.js +4 -0
  343. package/lib/duet/p-7aa97a75.js +5 -0
  344. package/lib/duet/{p-66f1bdce.entry.js → p-7c171bac.entry.js} +1 -1
  345. package/lib/duet/p-7d6c1aee.entry.js +4 -0
  346. package/lib/duet/p-7e2dd844.system.entry.js +4 -0
  347. package/lib/duet/p-7e3dd6a8.system.entry.js +4 -0
  348. package/lib/duet/p-80b2336e.entry.js +4 -0
  349. package/lib/duet/p-80e9768b.entry.js +4 -0
  350. package/lib/duet/p-80ee2e1e.entry.js +4 -0
  351. package/lib/duet/p-821b780e.entry.js +4 -0
  352. package/lib/duet/{p-f8133fe1.system.entry.js → p-86cc218e.system.entry.js} +2 -2
  353. package/lib/duet/{p-7ea15c5c.system.entry.js → p-882e9987.system.entry.js} +1 -1
  354. package/lib/duet/p-88cd99ba.entry.js +4 -0
  355. package/lib/duet/{p-eb168145.system.js → p-8b50f74e.system.js} +1 -1
  356. package/lib/duet/p-8bf3f0e9.js +4 -0
  357. package/lib/duet/p-92867eb0.entry.js +4 -0
  358. package/lib/duet/{p-e1dc6e7f.system.entry.js → p-93825b5f.system.entry.js} +1 -1
  359. package/lib/duet/p-9663117c.entry.js +4 -0
  360. package/lib/duet/{p-93138df9.entry.js → p-96c274ff.entry.js} +1 -1
  361. package/lib/duet/p-98821736.entry.js +4 -0
  362. package/lib/duet/{p-1c2bc99b.system.entry.js → p-99577e5e.system.entry.js} +1 -1
  363. package/lib/duet/{p-9ea3b585.system.entry.js → p-9ab64b1c.system.entry.js} +2 -2
  364. package/lib/duet/{p-5a61c374.system.entry.js → p-9adf9ec0.system.entry.js} +1 -1
  365. package/lib/duet/p-9b946c8f.system.entry.js +4 -0
  366. package/lib/duet/p-9ba30a52.system.entry.js +4 -0
  367. package/lib/duet/p-9c0ae091.system.js +5 -0
  368. package/lib/duet/{p-a2d89ed8.system.entry.js → p-9f02fd3a.system.entry.js} +1 -1
  369. package/lib/duet/p-a03ec953.system.entry.js +4 -0
  370. package/lib/duet/{p-aa10446f.system.entry.js → p-a238f10c.system.entry.js} +1 -1
  371. package/lib/duet/p-a259e3da.system.entry.js +4 -0
  372. package/lib/duet/p-a345635b.system.entry.js +4 -0
  373. package/lib/duet/p-a5a7be5e.entry.js +4 -0
  374. package/lib/duet/{p-b09e3f47.system.entry.js → p-a5af4cc5.system.entry.js} +1 -1
  375. package/lib/duet/{p-c8ba8ed5.system.entry.js → p-b20f40db.system.entry.js} +1 -1
  376. package/lib/duet/p-b21e895c.entry.js +4 -0
  377. package/lib/duet/{p-0734bdd5.system.entry.js → p-b31232db.system.entry.js} +1 -1
  378. package/lib/duet/{p-5d9ec5ef.entry.js → p-b3fd554a.entry.js} +1 -1
  379. package/lib/duet/p-b5ee9c33.system.entry.js +4 -0
  380. package/lib/duet/{p-ed024bd6.entry.js → p-b624c8ec.entry.js} +1 -1
  381. package/lib/duet/{p-617872b5.system.entry.js → p-b68e7921.system.entry.js} +1 -1
  382. package/lib/duet/p-b8adb02e.entry.js +4 -0
  383. package/lib/duet/{p-37b5759b.entry.js → p-bb33769c.entry.js} +1 -1
  384. package/lib/duet/p-bfab9d81.entry.js +4 -0
  385. package/lib/duet/{p-fc2cda87.system.entry.js → p-c33cfdf4.system.entry.js} +2 -2
  386. package/lib/duet/p-c346b2c2.system.entry.js +4 -0
  387. package/lib/duet/{p-fe0cb2a5.entry.js → p-ccae1572.entry.js} +1 -1
  388. package/lib/duet/p-cdbad668.system.js +4 -0
  389. package/lib/duet/{p-41110e9b.system.entry.js → p-ce6d729c.system.entry.js} +1 -1
  390. package/lib/duet/{p-ce3fc2bd.entry.js → p-cf202e49.entry.js} +1 -1
  391. package/lib/duet/p-d3a8e2e6.entry.js +4 -0
  392. package/lib/duet/{p-176c64c4.system.entry.js → p-d3b1d4dc.system.entry.js} +1 -1
  393. package/lib/duet/p-d6045a19.entry.js +4 -0
  394. package/lib/duet/{p-a629e72a.system.entry.js → p-d64a3684.system.entry.js} +1 -1
  395. package/lib/duet/{p-ff46ec81.system.js → p-da0d4ee3.system.js} +0 -0
  396. package/lib/duet/p-daa9f332.system.entry.js +4 -0
  397. package/lib/duet/{p-436b415a.system.entry.js → p-dd594b0c.system.entry.js} +1 -1
  398. package/lib/duet/{p-15743dbe.system.entry.js → p-df2f8d6d.system.entry.js} +1 -1
  399. package/lib/duet/{p-d4c234ed.js → p-e2cd1c98.js} +0 -0
  400. package/lib/duet/p-e2f77664.entry.js +4 -0
  401. package/lib/duet/p-e651e225.entry.js +4 -0
  402. package/lib/duet/p-e6f8fb38.entry.js +4 -0
  403. package/lib/duet/p-e78f9d3b.entry.js +4 -0
  404. package/lib/duet/p-e8da082b.entry.js +4 -0
  405. package/lib/duet/{p-fc34b8a0.system.entry.js → p-e9259242.system.entry.js} +1 -1
  406. package/lib/duet/p-ea769354.entry.js +4 -0
  407. package/lib/duet/{p-67a7ac4f.entry.js → p-efbe9082.entry.js} +1 -1
  408. package/lib/duet/{p-8755500b.entry.js → p-f17dd3be.entry.js} +1 -1
  409. package/lib/duet/{p-ad0cf0f5.system.entry.js → p-f1d8bc66.system.entry.js} +2 -2
  410. package/lib/duet/p-f3f652cb.entry.js +4 -0
  411. package/lib/duet/{p-db64d031.system.entry.js → p-f6665a9b.system.entry.js} +1 -1
  412. package/lib/duet/p-fb7e3c61.entry.js +4 -0
  413. package/lib/esm/{dom-3dbcb0d8.js → dom-4d9c03f4.js} +1 -1
  414. package/lib/esm/duet-action-button.entry.js +14 -77
  415. package/lib/esm/duet-alert.entry.js +10 -42
  416. package/lib/esm/duet-badge.entry.js +1 -10
  417. package/lib/esm/duet-breadcrumb.entry.js +2 -10
  418. package/lib/esm/duet-breadcrumbs.entry.js +2 -4
  419. package/lib/esm/duet-button_2.entry.js +30 -119
  420. package/lib/esm/duet-caption_4.entry.js +4 -78
  421. package/lib/esm/duet-card.entry.js +16 -55
  422. package/lib/esm/duet-checkbox.entry.js +21 -49
  423. package/lib/esm/duet-choice_2.entry.js +52 -153
  424. package/lib/esm/duet-collapsible.entry.js +8 -41
  425. package/lib/esm/duet-combobox.entry.js +26 -50
  426. package/lib/esm/duet-cookie-consent.entry.js +3 -9
  427. package/lib/esm/duet-date-picker.entry.js +37 -108
  428. package/lib/esm/duet-divider_2.entry.js +1 -17
  429. package/lib/esm/duet-editable-table_3.entry.js +163 -404
  430. package/lib/esm/duet-empty-state.entry.js +1 -10
  431. package/lib/esm/duet-fieldset.entry.js +8 -14
  432. package/lib/esm/duet-footer.entry.js +13 -42
  433. package/lib/esm/duet-grid_2.entry.js +3 -43
  434. package/lib/esm/duet-header_2.entry.js +56 -163
  435. package/lib/esm/duet-hero.entry.js +15 -90
  436. package/lib/esm/duet-icon.entry.js +4 -35
  437. package/lib/esm/duet-input_2.entry.js +41 -115
  438. package/lib/esm/duet-layout.entry.js +1 -24
  439. package/lib/esm/duet-list_2.entry.js +1 -23
  440. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +15 -11
  441. package/lib/esm/duet-menu-bar-dropdown.entry.js +28 -26
  442. package/lib/esm/duet-menu-bar-link.entry.js +22 -12
  443. package/lib/esm/duet-menu-bar.entry.js +6 -8
  444. package/lib/esm/duet-modal.entry.js +4 -59
  445. package/lib/esm/duet-multiselect.entry.js +18 -59
  446. package/lib/esm/duet-nav.entry.js +2 -83
  447. package/lib/esm/duet-notification_2.entry.js +15 -74
  448. package/lib/esm/duet-number-input.entry.js +53 -142
  449. package/lib/esm/duet-pagination_2.entry.js +51 -125
  450. package/lib/esm/duet-progress.entry.js +4 -26
  451. package/lib/esm/duet-radio_2.entry.js +36 -84
  452. package/lib/esm/duet-range-slider.entry.js +21 -62
  453. package/lib/esm/duet-scrollable_3.entry.js +25 -88
  454. package/lib/esm/duet-section-layout.entry.js +1 -7
  455. package/lib/esm/duet-select.entry.js +25 -65
  456. package/lib/esm/duet-step_2.entry.js +8 -34
  457. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +39 -0
  458. package/lib/esm/duet-submenu-bar-dropdown.entry.js +47 -0
  459. package/lib/esm/duet-submenu-bar-link.entry.js +33 -0
  460. package/lib/esm/duet-submenu-bar.entry.js +31 -0
  461. package/lib/esm/duet-textarea.entry.js +31 -79
  462. package/lib/esm/duet-toggle.entry.js +15 -38
  463. package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -13
  464. package/lib/esm/duet-toolbar-dropdown.entry.js +11 -28
  465. package/lib/esm/duet-toolbar-link.entry.js +2 -14
  466. package/lib/esm/duet-toolbar.entry.js +2 -5
  467. package/lib/esm/duet-tooltip.entry.js +25 -77
  468. package/lib/esm/duet-tray.entry.js +11 -53
  469. package/lib/esm/duet-upload-aria-status.entry.js +8 -29
  470. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  471. package/lib/esm/duet.js +4 -4
  472. package/lib/esm/{focus-utils-c6e25a2b.js → focus-utils-25584abb.js} +1 -1
  473. package/lib/esm/{index-adbabdb3.js → index-f74e4d6a.js} +1438 -1235
  474. package/lib/esm/loader.js +3 -3
  475. package/lib/esm/polyfills/css-shim.js +1 -1
  476. package/lib/esm/{shadow-css-501eda9a.js → shadow-css-a011f1fe.js} +1 -1
  477. package/lib/esm-es5/{dom-3dbcb0d8.js → dom-4d9c03f4.js} +0 -0
  478. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  479. package/lib/esm-es5/duet-alert.entry.js +1 -1
  480. package/lib/esm-es5/duet-badge.entry.js +1 -1
  481. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  482. package/lib/esm-es5/duet-breadcrumbs.entry.js +2 -2
  483. package/lib/esm-es5/duet-button_2.entry.js +2 -2
  484. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  485. package/lib/esm-es5/duet-card.entry.js +1 -1
  486. package/lib/esm-es5/duet-checkbox.entry.js +2 -2
  487. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  488. package/lib/esm-es5/duet-collapsible.entry.js +2 -2
  489. package/lib/esm-es5/duet-combobox.entry.js +2 -2
  490. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  491. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  492. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  493. package/lib/esm-es5/duet-editable-table_3.entry.js +2 -2
  494. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  495. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  496. package/lib/esm-es5/duet-footer.entry.js +2 -2
  497. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  498. package/lib/esm-es5/duet-header_2.entry.js +2 -2
  499. package/lib/esm-es5/duet-hero.entry.js +1 -1
  500. package/lib/esm-es5/duet-icon.entry.js +2 -2
  501. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  502. package/lib/esm-es5/duet-layout.entry.js +1 -1
  503. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  504. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  505. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  506. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  507. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  508. package/lib/esm-es5/duet-modal.entry.js +2 -2
  509. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  510. package/lib/esm-es5/duet-nav.entry.js +1 -1
  511. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  512. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  513. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  514. package/lib/esm-es5/duet-progress.entry.js +1 -1
  515. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  516. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  517. package/lib/esm-es5/duet-scrollable_3.entry.js +2 -2
  518. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  519. package/lib/esm-es5/duet-select.entry.js +2 -2
  520. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  521. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +4 -0
  522. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +4 -0
  523. package/lib/esm-es5/duet-submenu-bar-link.entry.js +4 -0
  524. package/lib/esm-es5/duet-submenu-bar.entry.js +4 -0
  525. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  526. package/lib/esm-es5/duet-toggle.entry.js +2 -2
  527. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  528. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  529. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  530. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  531. package/lib/esm-es5/duet-tooltip.entry.js +2 -2
  532. package/lib/esm-es5/duet-tray.entry.js +1 -1
  533. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  534. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  535. package/lib/esm-es5/duet.js +1 -1
  536. package/lib/esm-es5/focus-utils-25584abb.js +4 -0
  537. package/lib/esm-es5/index-f74e4d6a.js +5 -0
  538. package/lib/esm-es5/loader.js +1 -1
  539. package/lib/esm-es5/{shadow-css-501eda9a.js → shadow-css-a011f1fe.js} +0 -0
  540. package/lib/loader/package.json +1 -0
  541. package/lib/types/components/duet-combobox/duet-combobox.d.ts +1 -2
  542. package/lib/types/components/duet-menu-bar/duet-menu-bar.d.ts +4 -0
  543. package/lib/types/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.d.ts +2 -16
  544. package/lib/types/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.d.ts +5 -0
  545. package/lib/types/components/duet-menu-bar-link/duet-menu-bar-link.d.ts +5 -0
  546. package/lib/types/components/duet-nav/duet-nav.d.ts +0 -18
  547. package/lib/types/components/duet-submenu-bar/duet-submenu-bar.d.ts +24 -0
  548. package/lib/types/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.d.ts +34 -0
  549. package/lib/types/components/{duet-menu-bar-menu-dropdown-link/duet-menu-bar-menu-dropdown-link.d.ts → duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.d.ts} +1 -1
  550. package/lib/types/components/{duet-menu-bar-menu-link/duet-menu-bar-menu-link.d.ts → duet-submenu-bar-link/duet-submenu-bar-link.d.ts} +1 -5
  551. package/lib/types/components/duet-toolbar-dropdown/duet-toolbar-dropdown.d.ts +1 -16
  552. package/lib/types/components.d.ts +158 -194
  553. package/lib/types/stencil-public-runtime.d.ts +20 -4
  554. package/package.json +8 -10
  555. package/lib/cjs/duet-menu-bar-menu-dropdown-link.cjs.entry.js +0 -58
  556. package/lib/cjs/duet-menu-bar-menu-dropdown.cjs.entry.js +0 -65
  557. package/lib/cjs/duet-menu-bar-menu-link.cjs.entry.js +0 -50
  558. package/lib/cjs/duet-menu-bar-menu.cjs.entry.js +0 -65
  559. package/lib/collection/components/duet-menu-bar-menu/duet-menu-bar-menu.css +0 -113
  560. package/lib/collection/components/duet-menu-bar-menu/duet-menu-bar-menu.js +0 -147
  561. package/lib/collection/components/duet-menu-bar-menu-dropdown/duet-menu-bar-menu-dropdown.js +0 -150
  562. package/lib/collection/components/duet-menu-bar-menu-dropdown-link/duet-menu-bar-menu-dropdown-link.js +0 -156
  563. package/lib/collection/components/duet-menu-bar-menu-link/duet-menu-bar-menu-link.js +0 -129
  564. package/lib/dist-custom-elements/duet-menu-bar-menu-dropdown-link.d.ts +0 -11
  565. package/lib/dist-custom-elements/duet-menu-bar-menu-dropdown-link.js +0 -84
  566. package/lib/dist-custom-elements/duet-menu-bar-menu-dropdown.d.ts +0 -11
  567. package/lib/dist-custom-elements/duet-menu-bar-menu-dropdown.js +0 -89
  568. package/lib/dist-custom-elements/duet-menu-bar-menu-link.js +0 -75
  569. package/lib/dist-custom-elements/duet-menu-bar-menu.js +0 -83
  570. package/lib/duet/p-03ac8c12.entry.js +0 -4
  571. package/lib/duet/p-0b0b1a31.js +0 -4
  572. package/lib/duet/p-1b3fc470.system.entry.js +0 -4
  573. package/lib/duet/p-1b4da2a6.entry.js +0 -4
  574. package/lib/duet/p-22793750.entry.js +0 -4
  575. package/lib/duet/p-2482298d.entry.js +0 -4
  576. package/lib/duet/p-2be7affe.system.entry.js +0 -4
  577. package/lib/duet/p-2e2eca0e.entry.js +0 -4
  578. package/lib/duet/p-2e71b284.system.js +0 -4
  579. package/lib/duet/p-3198246d.system.entry.js +0 -4
  580. package/lib/duet/p-31a8380d.entry.js +0 -4
  581. package/lib/duet/p-3d96bd35.entry.js +0 -4
  582. package/lib/duet/p-48d5c614.entry.js +0 -4
  583. package/lib/duet/p-4fd9fab5.entry.js +0 -4
  584. package/lib/duet/p-526c88d9.system.entry.js +0 -4
  585. package/lib/duet/p-570786a7.system.entry.js +0 -4
  586. package/lib/duet/p-5bbac6e9.system.entry.js +0 -4
  587. package/lib/duet/p-5be11a3f.entry.js +0 -4
  588. package/lib/duet/p-6198dd87.entry.js +0 -4
  589. package/lib/duet/p-6226ebc9.entry.js +0 -4
  590. package/lib/duet/p-6ef4c26f.system.entry.js +0 -4
  591. package/lib/duet/p-73b1bfff.system.js +0 -5
  592. package/lib/duet/p-74a85e06.entry.js +0 -4
  593. package/lib/duet/p-74edab4b.system.entry.js +0 -4
  594. package/lib/duet/p-7ac15184.system.entry.js +0 -4
  595. package/lib/duet/p-7e0d3659.entry.js +0 -4
  596. package/lib/duet/p-8e12f166.entry.js +0 -4
  597. package/lib/duet/p-8e83ab80.entry.js +0 -4
  598. package/lib/duet/p-925f5739.entry.js +0 -4
  599. package/lib/duet/p-9e5192fd.entry.js +0 -4
  600. package/lib/duet/p-a4575910.entry.js +0 -4
  601. package/lib/duet/p-a57f8242.entry.js +0 -4
  602. package/lib/duet/p-aeee20b5.system.entry.js +0 -4
  603. package/lib/duet/p-b0fa24ea.system.entry.js +0 -4
  604. package/lib/duet/p-b252c6c7.entry.js +0 -4
  605. package/lib/duet/p-b28b7458.entry.js +0 -4
  606. package/lib/duet/p-bb2dab53.system.entry.js +0 -4
  607. package/lib/duet/p-bbc7c22c.js +0 -5
  608. package/lib/duet/p-bce4669c.entry.js +0 -4
  609. package/lib/duet/p-bf165746.entry.js +0 -4
  610. package/lib/duet/p-bf4e00b1.system.entry.js +0 -4
  611. package/lib/duet/p-c0732300.system.entry.js +0 -4
  612. package/lib/duet/p-c4375ca3.entry.js +0 -4
  613. package/lib/duet/p-c4f57811.entry.js +0 -4
  614. package/lib/duet/p-cd5358ce.entry.js +0 -4
  615. package/lib/duet/p-d1da9fe1.system.entry.js +0 -4
  616. package/lib/duet/p-d448c7fc.system.entry.js +0 -4
  617. package/lib/duet/p-d770b87e.entry.js +0 -4
  618. package/lib/duet/p-d7d944f5.entry.js +0 -4
  619. package/lib/duet/p-d7fa0c7c.entry.js +0 -4
  620. package/lib/duet/p-d83f8247.entry.js +0 -4
  621. package/lib/duet/p-dc9b21ad.entry.js +0 -4
  622. package/lib/duet/p-dcf2df11.entry.js +0 -4
  623. package/lib/duet/p-de024983.entry.js +0 -4
  624. package/lib/duet/p-e01e9f71.entry.js +0 -4
  625. package/lib/duet/p-e7196c1b.system.entry.js +0 -4
  626. package/lib/duet/p-e7808045.entry.js +0 -4
  627. package/lib/duet/p-e9cf0568.entry.js +0 -4
  628. package/lib/duet/p-ebbe496d.entry.js +0 -4
  629. package/lib/duet/p-f015180c.entry.js +0 -4
  630. package/lib/duet/p-f084d355.system.entry.js +0 -4
  631. package/lib/duet/p-f0e4ccb6.entry.js +0 -4
  632. package/lib/duet/p-f0f8a1fd.entry.js +0 -4
  633. package/lib/duet/p-f5149c67.entry.js +0 -4
  634. package/lib/esm/duet-menu-bar-menu-dropdown-link.entry.js +0 -54
  635. package/lib/esm/duet-menu-bar-menu-dropdown.entry.js +0 -61
  636. package/lib/esm/duet-menu-bar-menu-link.entry.js +0 -46
  637. package/lib/esm/duet-menu-bar-menu.entry.js +0 -61
  638. package/lib/esm-es5/duet-menu-bar-menu-dropdown-link.entry.js +0 -4
  639. package/lib/esm-es5/duet-menu-bar-menu-dropdown.entry.js +0 -4
  640. package/lib/esm-es5/duet-menu-bar-menu-link.entry.js +0 -4
  641. package/lib/esm-es5/duet-menu-bar-menu.entry.js +0 -4
  642. package/lib/esm-es5/focus-utils-c6e25a2b.js +0 -4
  643. package/lib/esm-es5/index-adbabdb3.js +0 -5
  644. package/lib/types/components/duet-menu-bar-menu/duet-menu-bar-menu.d.ts +0 -49
  645. package/lib/types/components/duet-menu-bar-menu-dropdown/duet-menu-bar-menu-dropdown.d.ts +0 -49
@@ -2,8 +2,16 @@
2
2
  * Built with Duet Design System
3
3
  */
4
4
  const NAMESPACE = 'duet';
5
- const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"3.0.12"};
5
+ const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"3.0.14"};
6
6
 
7
+ /**
8
+ * Virtual DOM patching algorithm based on Snabbdom by
9
+ * Simon Friis Vindum (@paldepind)
10
+ * Licensed under the MIT License
11
+ * https://github.com/snabbdom/snabbdom/blob/master/LICENSE
12
+ *
13
+ * Modified for Stencil's renderer and slot projection
14
+ */
7
15
  let scopeId;
8
16
  let contentRef;
9
17
  let hostTagName;
@@ -12,64 +20,13 @@ let checkSlotFallbackVisibility = false;
12
20
  let checkSlotRelocate = false;
13
21
  let isSvgMode = false;
14
22
  let queuePending = false;
15
- const win = typeof window !== 'undefined' ? window : {};
16
- const doc = win.document || { head: {} };
17
- const H = (win.HTMLElement || class {
18
- });
19
- const plt = {
20
- $flags$: 0,
21
- $resourcesUrl$: '',
22
- jmp: (h) => h(),
23
- raf: (h) => requestAnimationFrame(h),
24
- ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),
25
- rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),
26
- ce: (eventName, opts) => new CustomEvent(eventName, opts),
27
- };
28
- const supportsShadow = /*@__PURE__*/ (() => (doc.head.attachShadow + '').indexOf('[native') > -1)()
29
- ;
30
- const promiseResolve = (v) => Promise.resolve(v);
31
- const supportsConstructibleStylesheets = /*@__PURE__*/ (() => {
32
- try {
33
- new CSSStyleSheet();
34
- return typeof new CSSStyleSheet().replace === 'function';
35
- }
36
- catch (e) { }
37
- return false;
38
- })()
39
- ;
40
- const addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
41
- if (listeners) {
42
- listeners.map(([flags, name, method]) => {
43
- const target = getHostListenerTarget(elm, flags) ;
44
- const handler = hostListenerProxy(hostRef, method);
45
- const opts = hostListenerOpts(flags);
46
- plt.ael(target, name, handler, opts);
47
- (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));
48
- });
49
- }
50
- };
51
- const hostListenerProxy = (hostRef, methodName) => (ev) => {
52
- try {
53
- {
54
- hostRef.$hostElement$[methodName](ev);
55
- }
56
- }
57
- catch (e) {
58
- consoleError(e);
59
- }
60
- };
61
- const getHostListenerTarget = (elm, flags) => {
62
- if (flags & 4 /* TargetDocument */)
63
- return doc;
64
- if (flags & 8 /* TargetWindow */)
65
- return win;
66
- if (flags & 16 /* TargetBody */)
67
- return doc.body;
68
- return elm;
23
+ const Build = {
24
+ isDev: false,
25
+ isBrowser: true,
26
+ isServer: false,
27
+ isTesting: false,
69
28
  };
70
- // prettier-ignore
71
- const hostListenerOpts = (flags) => (flags & 2 /* Capture */) !== 0;
72
- const XLINK_NS = 'http://www.w3.org/1999/xlink';
29
+ const setAssetPath = (path) => (plt.$resourcesUrl$ = path);
73
30
  const createTime = (fnName, tagName = '') => {
74
31
  {
75
32
  return () => {
@@ -77,74 +34,7 @@ const createTime = (fnName, tagName = '') => {
77
34
  };
78
35
  }
79
36
  };
80
- const rootAppliedStyles = new WeakMap();
81
- const registerStyle = (scopeId, cssText, allowCS) => {
82
- let style = styles.get(scopeId);
83
- if (supportsConstructibleStylesheets && allowCS) {
84
- style = (style || new CSSStyleSheet());
85
- style.replace(cssText);
86
- }
87
- else {
88
- style = cssText;
89
- }
90
- styles.set(scopeId, style);
91
- };
92
- const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {
93
- let scopeId = getScopeId(cmpMeta);
94
- const style = styles.get(scopeId);
95
- // if an element is NOT connected then getRootNode() will return the wrong root node
96
- // so the fallback is to always use the document for the root node in those cases
97
- styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : doc;
98
- if (style) {
99
- if (typeof style === 'string') {
100
- styleContainerNode = styleContainerNode.head || styleContainerNode;
101
- let appliedStyles = rootAppliedStyles.get(styleContainerNode);
102
- let styleElm;
103
- if (!appliedStyles) {
104
- rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set()));
105
- }
106
- if (!appliedStyles.has(scopeId)) {
107
- {
108
- {
109
- styleElm = doc.createElement('style');
110
- styleElm.innerHTML = style;
111
- }
112
- styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));
113
- }
114
- if (appliedStyles) {
115
- appliedStyles.add(scopeId);
116
- }
117
- }
118
- }
119
- else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {
120
- styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];
121
- }
122
- }
123
- return scopeId;
124
- };
125
- const attachStyles = (hostRef) => {
126
- const cmpMeta = hostRef.$cmpMeta$;
127
- const elm = hostRef.$hostElement$;
128
- const flags = cmpMeta.$flags$;
129
- const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);
130
- const scopeId = addStyle(supportsShadow && elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta);
131
- if (flags & 10 /* needsScopedEncapsulation */) {
132
- // only required when we're NOT using native shadow dom (slot)
133
- // or this browser doesn't support native shadow dom
134
- // and this host element was NOT created with SSR
135
- // let's pick out the inner content for slot projection
136
- // create a node to represent where the original
137
- // content was first placed, which is useful later on
138
- // DOM WRITE!!
139
- elm['s-sc'] = scopeId;
140
- elm.classList.add(scopeId + '-h');
141
- if (flags & 2 /* scopedCssEncapsulation */) {
142
- elm.classList.add(scopeId + '-s');
143
- }
144
- }
145
- endAttachStyles();
146
- };
147
- const getScopeId = (cmp, mode) => 'sc-' + (cmp.$tagName$);
37
+ const XLINK_NS = 'http://www.w3.org/1999/xlink';
148
38
  /**
149
39
  * Default style mode id
150
40
  */
@@ -293,6 +183,152 @@ const convertToPrivate = (node) => {
293
183
  vnode.$name$ = node.vname;
294
184
  return vnode;
295
185
  };
186
+ /**
187
+ * Parse a new property value for a given property type.
188
+ *
189
+ * While the prop value can reasonably be expected to be of `any` type as far as TypeScript's type checker is concerned,
190
+ * it is not safe to assume that the string returned by evaluating `typeof propValue` matches:
191
+ * 1. `any`, the type given to `propValue` in the function signature
192
+ * 2. the type stored from `propType`.
193
+ *
194
+ * This function provides the capability to parse/coerce a property's value to potentially any other JavaScript type.
195
+ *
196
+ * Property values represented in TSX preserve their type information. In the example below, the number 0 is passed to
197
+ * a component. This `propValue` will preserve its type information (`typeof propValue === 'number'`). Note that is
198
+ * based on the type of the value being passed in, not the type declared of the class member decorated with `@Prop`.
199
+ * ```tsx
200
+ * <my-cmp prop-val={0}></my-cmp>
201
+ * ```
202
+ *
203
+ * HTML prop values on the other hand, will always a string
204
+ *
205
+ * @param propValue the new value to coerce to some type
206
+ * @param propType the type of the prop, expressed as a binary number
207
+ * @returns the parsed/coerced value
208
+ */
209
+ const parsePropertyValue = (propValue, propType) => {
210
+ // ensure this value is of the correct prop type
211
+ if (propValue != null && !isComplexType(propValue)) {
212
+ if (propType & 4 /* MEMBER_FLAGS.Boolean */) {
213
+ // per the HTML spec, any string value means it is a boolean true value
214
+ // but we'll cheat here and say that the string "false" is the boolean false
215
+ return propValue === 'false' ? false : propValue === '' || !!propValue;
216
+ }
217
+ if (propType & 2 /* MEMBER_FLAGS.Number */) {
218
+ // force it to be a number
219
+ return parseFloat(propValue);
220
+ }
221
+ if (propType & 1 /* MEMBER_FLAGS.String */) {
222
+ // could have been passed as a number or boolean
223
+ // but we still want it as a string
224
+ return String(propValue);
225
+ }
226
+ // redundant return here for better minification
227
+ return propValue;
228
+ }
229
+ // not sure exactly what type we want
230
+ // so no need to change to a different type
231
+ return propValue;
232
+ };
233
+ const getElement = (ref) => (ref);
234
+ const createEvent = (ref, name, flags) => {
235
+ const elm = getElement(ref);
236
+ return {
237
+ emit: (detail) => {
238
+ return emitEvent(elm, name, {
239
+ bubbles: !!(flags & 4 /* EVENT_FLAGS.Bubbles */),
240
+ composed: !!(flags & 2 /* EVENT_FLAGS.Composed */),
241
+ cancelable: !!(flags & 1 /* EVENT_FLAGS.Cancellable */),
242
+ detail,
243
+ });
244
+ },
245
+ };
246
+ };
247
+ /**
248
+ * Helper function to create & dispatch a custom Event on a provided target
249
+ * @param elm the target of the Event
250
+ * @param name the name to give the custom Event
251
+ * @param opts options for configuring a custom Event
252
+ * @returns the custom Event
253
+ */
254
+ const emitEvent = (elm, name, opts) => {
255
+ const ev = plt.ce(name, opts);
256
+ elm.dispatchEvent(ev);
257
+ return ev;
258
+ };
259
+ const rootAppliedStyles = /*@__PURE__*/ new WeakMap();
260
+ const registerStyle = (scopeId, cssText, allowCS) => {
261
+ let style = styles.get(scopeId);
262
+ if (supportsConstructableStylesheets && allowCS) {
263
+ style = (style || new CSSStyleSheet());
264
+ if (typeof style === 'string') {
265
+ style = cssText;
266
+ }
267
+ else {
268
+ style.replaceSync(cssText);
269
+ }
270
+ }
271
+ else {
272
+ style = cssText;
273
+ }
274
+ styles.set(scopeId, style);
275
+ };
276
+ const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {
277
+ let scopeId = getScopeId(cmpMeta);
278
+ const style = styles.get(scopeId);
279
+ // if an element is NOT connected then getRootNode() will return the wrong root node
280
+ // so the fallback is to always use the document for the root node in those cases
281
+ styleContainerNode = styleContainerNode.nodeType === 11 /* NODE_TYPE.DocumentFragment */ ? styleContainerNode : doc;
282
+ if (style) {
283
+ if (typeof style === 'string') {
284
+ styleContainerNode = styleContainerNode.head || styleContainerNode;
285
+ let appliedStyles = rootAppliedStyles.get(styleContainerNode);
286
+ let styleElm;
287
+ if (!appliedStyles) {
288
+ rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set()));
289
+ }
290
+ if (!appliedStyles.has(scopeId)) {
291
+ {
292
+ {
293
+ styleElm = doc.createElement('style');
294
+ styleElm.innerHTML = style;
295
+ }
296
+ styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));
297
+ }
298
+ if (appliedStyles) {
299
+ appliedStyles.add(scopeId);
300
+ }
301
+ }
302
+ }
303
+ else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {
304
+ styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];
305
+ }
306
+ }
307
+ return scopeId;
308
+ };
309
+ const attachStyles = (hostRef) => {
310
+ const cmpMeta = hostRef.$cmpMeta$;
311
+ const elm = hostRef.$hostElement$;
312
+ const flags = cmpMeta.$flags$;
313
+ const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);
314
+ const scopeId = addStyle(supportsShadow && elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta);
315
+ if (flags & 10 /* CMP_FLAGS.needsScopedEncapsulation */) {
316
+ // only required when we're NOT using native shadow dom (slot)
317
+ // or this browser doesn't support native shadow dom
318
+ // and this host element was NOT created with SSR
319
+ // let's pick out the inner content for slot projection
320
+ // create a node to represent where the original
321
+ // content was first placed, which is useful later on
322
+ // DOM WRITE!!
323
+ elm['s-sc'] = scopeId;
324
+ elm.classList.add(scopeId + '-h');
325
+ if (flags & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {
326
+ elm.classList.add(scopeId + '-s');
327
+ }
328
+ }
329
+ endAttachStyles();
330
+ };
331
+ const getScopeId = (cmp, mode) => 'sc-' + (cmp.$tagName$);
296
332
  /**
297
333
  * Production setAccessor() function based on Preact by
298
334
  * Jason Miller (@developit)
@@ -429,7 +465,7 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
429
465
  }
430
466
  }
431
467
  }
432
- else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {
468
+ else if ((!isProp || flags & 4 /* VNODE_FLAGS.isHost */ || isSvg) && !isComplex) {
433
469
  newValue = newValue === true ? '' : newValue;
434
470
  if (xlink) {
435
471
  elm.setAttributeNS(XLINK_NS, memberName, newValue);
@@ -447,7 +483,7 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
447
483
  // if the element passed in is a shadow root, which is a document fragment
448
484
  // then we want to be adding attrs/props to the shadow root's "host" element
449
485
  // if it's not a shadow root, then we add attrs/props to the same element
450
- const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host
486
+ const elm = newVnode.$elm$.nodeType === 11 /* NODE_TYPE.DocumentFragment */ && newVnode.$elm$.host
451
487
  ? newVnode.$elm$.host
452
488
  : newVnode.$elm$;
453
489
  const oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ;
@@ -465,6 +501,16 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
465
501
  setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$);
466
502
  }
467
503
  };
504
+ /**
505
+ * Create a DOM Node corresponding to one of the children of a given VNode.
506
+ *
507
+ * @param oldParentVNode the parent VNode from the previous render
508
+ * @param newParentVNode the parent VNode from the current render
509
+ * @param childIndex the index of the VNode, in the _new_ parent node's
510
+ * children, for which we will create a new DOM node
511
+ * @param parentElm the parent DOM node which our new node will be a child of
512
+ * @returns the newly created node
513
+ */
468
514
  const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
469
515
  // tslint:disable-next-line: prefer-const
470
516
  const newVNode = newParentVNode.$children$[childIndex];
@@ -482,16 +528,16 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
482
528
  }
483
529
  newVNode.$flags$ |= newVNode.$children$
484
530
  ? // slot element has fallback content
485
- 2 /* isSlotFallback */
531
+ 2 /* VNODE_FLAGS.isSlotFallback */
486
532
  : // slot element does not have fallback content
487
- 1 /* isSlotReference */;
533
+ 1 /* VNODE_FLAGS.isSlotReference */;
488
534
  }
489
535
  }
490
536
  if (newVNode.$text$ !== null) {
491
537
  // create text node
492
538
  elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);
493
539
  }
494
- else if (newVNode.$flags$ & 1 /* isSlotReference */) {
540
+ else if (newVNode.$flags$ & 1 /* VNODE_FLAGS.isSlotReference */) {
495
541
  // create a slot reference node
496
542
  elm = newVNode.$elm$ =
497
543
  doc.createTextNode('');
@@ -501,7 +547,7 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
501
547
  isSvgMode = newVNode.$tag$ === 'svg';
502
548
  }
503
549
  // create element
504
- elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* isSlotFallback */
550
+ elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */
505
551
  ? 'slot-fb'
506
552
  : newVNode.$tag$)
507
553
  );
@@ -541,7 +587,7 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
541
587
  }
542
588
  {
543
589
  elm['s-hn'] = hostTagName;
544
- if (newVNode.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {
590
+ if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {
545
591
  // remember the content reference comment
546
592
  elm['s-sr'] = true;
547
593
  // remember the content reference comment
@@ -560,7 +606,7 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
560
606
  return elm;
561
607
  };
562
608
  const putBackInOriginalLocation = (parentElm, recursive) => {
563
- plt.$flags$ |= 1 /* isTmpDisconnected */;
609
+ plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
564
610
  const oldSlotChildNodes = parentElm.childNodes;
565
611
  for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {
566
612
  const childNode = oldSlotChildNodes[i];
@@ -581,7 +627,7 @@ const putBackInOriginalLocation = (parentElm, recursive) => {
581
627
  putBackInOriginalLocation(childNode, recursive);
582
628
  }
583
629
  }
584
- plt.$flags$ &= ~1 /* isTmpDisconnected */;
630
+ plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;
585
631
  };
586
632
  const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
587
633
  let containerElm = ((parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);
@@ -623,6 +669,74 @@ const removeVnodes = (vnodes, startIdx, endIdx, vnode, elm) => {
623
669
  }
624
670
  }
625
671
  };
672
+ /**
673
+ * Reconcile the children of a new VNode with the children of an old VNode by
674
+ * traversing the two collections of children, identifying nodes that are
675
+ * conserved or changed, calling out to `patch` to make any necessary
676
+ * updates to the DOM, and rearranging DOM nodes as needed.
677
+ *
678
+ * The algorithm for reconciling children works by analyzing two 'windows' onto
679
+ * the two arrays of children (`oldCh` and `newCh`). We keep track of the
680
+ * 'windows' by storing start and end indices and references to the
681
+ * corresponding array entries. Initially the two 'windows' are basically equal
682
+ * to the entire array, but we progressively narrow the windows until there are
683
+ * no children left to update by doing the following:
684
+ *
685
+ * 1. Skip any `null` entries at the beginning or end of the two arrays, so
686
+ * that if we have an initial array like the following we'll end up dealing
687
+ * only with a window bounded by the highlighted elements:
688
+ *
689
+ * [null, null, VNode1 , ... , VNode2, null, null]
690
+ * ^^^^^^ ^^^^^^
691
+ *
692
+ * 2. Check to see if the elements at the head and tail positions are equal
693
+ * across the windows. This will basically detect elements which haven't
694
+ * been added, removed, or changed position, i.e. if you had the following
695
+ * VNode elements (represented as HTML):
696
+ *
697
+ * oldVNode: `<div><p><span>HEY</span></p></div>`
698
+ * newVNode: `<div><p><span>THERE</span></p></div>`
699
+ *
700
+ * Then when comparing the children of the `<div>` tag we check the equality
701
+ * of the VNodes corresponding to the `<p>` tags and, since they are the
702
+ * same tag in the same position, we'd be able to avoid completely
703
+ * re-rendering the subtree under them with a new DOM element and would just
704
+ * call out to `patch` to handle reconciling their children and so on.
705
+ *
706
+ * 3. Check, for both windows, to see if the element at the beginning of the
707
+ * window corresponds to the element at the end of the other window. This is
708
+ * a heuristic which will let us identify _some_ situations in which
709
+ * elements have changed position, for instance it _should_ detect that the
710
+ * children nodes themselves have not changed but merely moved in the
711
+ * following example:
712
+ *
713
+ * oldVNode: `<div><element-one /><element-two /></div>`
714
+ * newVNode: `<div><element-two /><element-one /></div>`
715
+ *
716
+ * If we find cases like this then we also need to move the concrete DOM
717
+ * elements corresponding to the moved children to write the re-order to the
718
+ * DOM.
719
+ *
720
+ * 4. Finally, if VNodes have the `key` attribute set on them we check for any
721
+ * nodes in the old children which have the same key as the first element in
722
+ * our window on the new children. If we find such a node we handle calling
723
+ * out to `patch`, moving relevant DOM nodes, and so on, in accordance with
724
+ * what we find.
725
+ *
726
+ * Finally, once we've narrowed our 'windows' to the point that either of them
727
+ * collapse (i.e. they have length 0) we then handle any remaining VNode
728
+ * insertion or deletion that needs to happen to get a DOM state that correctly
729
+ * reflects the new child VNodes. If, for instance, after our window on the old
730
+ * children has collapsed we still have more nodes on the new children that
731
+ * we haven't dealt with yet then we need to add them, or if the new children
732
+ * collapse but we still have unhandled _old_ children then we need to make
733
+ * sure the corresponding DOM nodes are removed.
734
+ *
735
+ * @param parentElm the node into which the parent VNode is rendered
736
+ * @param oldCh the old children of the parent node
737
+ * @param newVNode the new VNode which will replace the parent
738
+ * @param newCh the new children of the parent node
739
+ */
626
740
  const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
627
741
  let oldStartIdx = 0;
628
742
  let newStartIdx = 0;
@@ -638,7 +752,7 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
638
752
  let elmToMove;
639
753
  while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
640
754
  if (oldStartVnode == null) {
641
- // Vnode might have been moved left
755
+ // VNode might have been moved left
642
756
  oldStartVnode = oldCh[++oldStartIdx];
643
757
  }
644
758
  else if (oldEndVnode == null) {
@@ -651,37 +765,100 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
651
765
  newEndVnode = newCh[--newEndIdx];
652
766
  }
653
767
  else if (isSameVnode(oldStartVnode, newStartVnode)) {
768
+ // if the start nodes are the same then we should patch the new VNode
769
+ // onto the old one, and increment our `newStartIdx` and `oldStartIdx`
770
+ // indices to reflect that. We don't need to move any DOM Nodes around
771
+ // since things are matched up in order.
654
772
  patch(oldStartVnode, newStartVnode);
655
773
  oldStartVnode = oldCh[++oldStartIdx];
656
774
  newStartVnode = newCh[++newStartIdx];
657
775
  }
658
776
  else if (isSameVnode(oldEndVnode, newEndVnode)) {
777
+ // likewise, if the end nodes are the same we patch new onto old and
778
+ // decrement our end indices, and also likewise in this case we don't
779
+ // need to move any DOM Nodes.
659
780
  patch(oldEndVnode, newEndVnode);
660
781
  oldEndVnode = oldCh[--oldEndIdx];
661
782
  newEndVnode = newCh[--newEndIdx];
662
783
  }
663
784
  else if (isSameVnode(oldStartVnode, newEndVnode)) {
664
- // Vnode moved right
785
+ // case: "Vnode moved right"
786
+ //
787
+ // We've found that the last node in our window on the new children is
788
+ // the same VNode as the _first_ node in our window on the old children
789
+ // we're dealing with now. Visually, this is the layout of these two
790
+ // nodes:
791
+ //
792
+ // newCh: [..., newStartVnode , ... , newEndVnode , ...]
793
+ // ^^^^^^^^^^^
794
+ // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]
795
+ // ^^^^^^^^^^^^^
796
+ //
797
+ // In this situation we need to patch `newEndVnode` onto `oldStartVnode`
798
+ // and move the DOM element for `oldStartVnode`.
665
799
  if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
666
800
  putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);
667
801
  }
668
802
  patch(oldStartVnode, newEndVnode);
803
+ // We need to move the element for `oldStartVnode` into a position which
804
+ // will be appropriate for `newEndVnode`. For this we can use
805
+ // `.insertBefore` and `oldEndVnode.$elm$.nextSibling`. If there is a
806
+ // sibling for `oldEndVnode.$elm$` then we want to move the DOM node for
807
+ // `oldStartVnode` between `oldEndVnode` and it's sibling, like so:
808
+ //
809
+ // <old-start-node />
810
+ // <some-intervening-node />
811
+ // <old-end-node />
812
+ // <!-- -> <-- `oldStartVnode.$elm$` should be inserted here
813
+ // <next-sibling />
814
+ //
815
+ // If instead `oldEndVnode.$elm$` has no sibling then we just want to put
816
+ // the node for `oldStartVnode` at the end of the children of
817
+ // `parentElm`. Luckily, `Node.nextSibling` will return `null` if there
818
+ // aren't any siblings, and passing `null` to `Node.insertBefore` will
819
+ // append it to the children of the parent element.
669
820
  parentElm.insertBefore(oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);
670
821
  oldStartVnode = oldCh[++oldStartIdx];
671
822
  newEndVnode = newCh[--newEndIdx];
672
823
  }
673
824
  else if (isSameVnode(oldEndVnode, newStartVnode)) {
674
- // Vnode moved left
825
+ // case: "Vnode moved left"
826
+ //
827
+ // We've found that the first node in our window on the new children is
828
+ // the same VNode as the _last_ node in our window on the old children.
829
+ // Visually, this is the layout of these two nodes:
830
+ //
831
+ // newCh: [..., newStartVnode , ... , newEndVnode , ...]
832
+ // ^^^^^^^^^^^^^
833
+ // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]
834
+ // ^^^^^^^^^^^
835
+ //
836
+ // In this situation we need to patch `newStartVnode` onto `oldEndVnode`
837
+ // (which will handle updating any changed attributes, reconciling their
838
+ // children etc) but we also need to move the DOM node to which
839
+ // `oldEndVnode` corresponds.
675
840
  if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
676
841
  putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);
677
842
  }
678
843
  patch(oldEndVnode, newStartVnode);
844
+ // We've already checked above if `oldStartVnode` and `newStartVnode` are
845
+ // the same node, so since we're here we know that they are not. Thus we
846
+ // can move the element for `oldEndVnode` _before_ the element for
847
+ // `oldStartVnode`, leaving `oldStartVnode` to be reconciled in the
848
+ // future.
679
849
  parentElm.insertBefore(oldEndVnode.$elm$, oldStartVnode.$elm$);
680
850
  oldEndVnode = oldCh[--oldEndIdx];
681
851
  newStartVnode = newCh[++newStartIdx];
682
852
  }
683
853
  else {
684
- // createKeyToOldIdx
854
+ // Here we do some checks to match up old and new nodes based on the
855
+ // `$key$` attribute, which is set by putting a `key="my-key"` attribute
856
+ // in the JSX for a DOM element in the implementation of a Stencil
857
+ // component.
858
+ //
859
+ // First we check to see if there are any nodes in the array of old
860
+ // children which have the same key as the first node in the new
861
+ // children.
685
862
  idxInOld = -1;
686
863
  {
687
864
  for (i = oldStartIdx; i <= oldEndIdx; ++i) {
@@ -692,23 +869,32 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
692
869
  }
693
870
  }
694
871
  if (idxInOld >= 0) {
872
+ // We found a node in the old children which matches up with the first
873
+ // node in the new children! So let's deal with that
695
874
  elmToMove = oldCh[idxInOld];
696
875
  if (elmToMove.$tag$ !== newStartVnode.$tag$) {
876
+ // the tag doesn't match so we'll need a new DOM element
697
877
  node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld, parentElm);
698
878
  }
699
879
  else {
700
880
  patch(elmToMove, newStartVnode);
881
+ // invalidate the matching old node so that we won't try to update it
882
+ // again later on
701
883
  oldCh[idxInOld] = undefined;
702
884
  node = elmToMove.$elm$;
703
885
  }
704
886
  newStartVnode = newCh[++newStartIdx];
705
887
  }
706
888
  else {
707
- // new element
889
+ // We either didn't find an element in the old children that matches
890
+ // the key of the first new child OR the build is not using `key`
891
+ // attributes at all. In either case we need to create a new element
892
+ // for the new node.
708
893
  node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx, parentElm);
709
894
  newStartVnode = newCh[++newStartIdx];
710
895
  }
711
896
  if (node) {
897
+ // if we created a new node then handle inserting it to the DOM
712
898
  {
713
899
  parentReferenceNode(oldStartVnode.$elm$).insertBefore(node, referenceNode(oldStartVnode.$elm$));
714
900
  }
@@ -716,21 +902,43 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
716
902
  }
717
903
  }
718
904
  if (oldStartIdx > oldEndIdx) {
905
+ // we have some more new nodes to add which don't match up with old nodes
719
906
  addVnodes(parentElm, newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$, newVNode, newCh, newStartIdx, newEndIdx);
720
907
  }
721
908
  else if (newStartIdx > newEndIdx) {
909
+ // there are nodes in the `oldCh` array which no longer correspond to nodes
910
+ // in the new array, so lets remove them (which entails cleaning up the
911
+ // relevant DOM nodes)
722
912
  removeVnodes(oldCh, oldStartIdx, oldEndIdx);
723
913
  }
724
914
  };
725
- const isSameVnode = (vnode1, vnode2) => {
915
+ /**
916
+ * Compare two VNodes to determine if they are the same
917
+ *
918
+ * **NB**: This function is an equality _heuristic_ based on the available
919
+ * information set on the two VNodes and can be misleading under certain
920
+ * circumstances. In particular, if the two nodes do not have `key` attrs
921
+ * (available under `$key$` on VNodes) then the function falls back on merely
922
+ * checking that they have the same tag.
923
+ *
924
+ * So, in other words, if `key` attrs are not set on VNodes which may be
925
+ * changing order within a `children` array or something along those lines then
926
+ * we could obtain a false positive and then have to do needless re-rendering.
927
+ *
928
+ * @param leftVNode the first VNode to check
929
+ * @param rightVNode the second VNode to check
930
+ * @returns whether they're equal or not
931
+ */
932
+ const isSameVnode = (leftVNode, rightVNode) => {
726
933
  // compare if two vnode to see if they're "technically" the same
727
934
  // need to have the same element tag, and same key to be the same
728
- if (vnode1.$tag$ === vnode2.$tag$) {
729
- if (vnode1.$tag$ === 'slot') {
730
- return vnode1.$name$ === vnode2.$name$;
935
+ if (leftVNode.$tag$ === rightVNode.$tag$) {
936
+ if (leftVNode.$tag$ === 'slot') {
937
+ return leftVNode.$name$ === rightVNode.$name$;
731
938
  }
939
+ // this will be set if components in the build have `key` attrs set on them
732
940
  {
733
- return vnode1.$key$ === vnode2.$key$;
941
+ return leftVNode.$key$ === rightVNode.$key$;
734
942
  }
735
943
  }
736
944
  return false;
@@ -743,6 +951,14 @@ const referenceNode = (node) => {
743
951
  return (node && node['s-ol']) || node;
744
952
  };
745
953
  const parentReferenceNode = (node) => (node['s-ol'] ? node['s-ol'] : node).parentNode;
954
+ /**
955
+ * Handle reconciling an outdated VNode with a new one which corresponds to
956
+ * it. This function handles flushing updates to the DOM and reconciling the
957
+ * children of the two nodes (if any).
958
+ *
959
+ * @param oldVNode an old VNode whose DOM element and children we want to update
960
+ * @param newVNode a new VNode representing an updated version of the old one
961
+ */
746
962
  const patch = (oldVNode, newVNode) => {
747
963
  const elm = (newVNode.$elm$ = oldVNode.$elm$);
748
964
  const oldChildren = oldVNode.$children$;
@@ -756,7 +972,6 @@ const patch = (oldVNode, newVNode) => {
756
972
  // only add this to the when the compiler sees we're using an svg somewhere
757
973
  isSvgMode = tag === 'svg' ? true : tag === 'foreignObject' ? false : isSvgMode;
758
974
  }
759
- // element node
760
975
  {
761
976
  if (tag === 'slot')
762
977
  ;
@@ -769,6 +984,7 @@ const patch = (oldVNode, newVNode) => {
769
984
  }
770
985
  if (oldChildren !== null && newChildren !== null) {
771
986
  // looks like there's child vnodes for both the old and new vnodes
987
+ // so we need to call `updateChildren` to reconcile them
772
988
  updateChildren(elm, oldChildren, newVNode, newChildren);
773
989
  }
774
990
  else if (newChildren !== null) {
@@ -809,7 +1025,7 @@ const updateFallbackSlotVisibility = (elm) => {
809
1025
  let nodeType;
810
1026
  for (i = 0, ilen = childNodes.length; i < ilen; i++) {
811
1027
  childNode = childNodes[i];
812
- if (childNode.nodeType === 1 /* ElementNode */) {
1028
+ if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
813
1029
  if (childNode['s-sr']) {
814
1030
  // this is a slot fallback node
815
1031
  // get the slot name for this slot reference node
@@ -821,7 +1037,7 @@ const updateFallbackSlotVisibility = (elm) => {
821
1037
  nodeType = childNodes[j].nodeType;
822
1038
  if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') {
823
1039
  // this sibling node is from a different component OR is a named fallback slot node
824
- if (nodeType === 1 /* ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {
1040
+ if (nodeType === 1 /* NODE_TYPE.ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {
825
1041
  childNode.hidden = true;
826
1042
  break;
827
1043
  }
@@ -830,8 +1046,8 @@ const updateFallbackSlotVisibility = (elm) => {
830
1046
  // this is a default fallback slot node
831
1047
  // any element or text node (with content)
832
1048
  // should hide the default fallback slot node
833
- if (nodeType === 1 /* ElementNode */ ||
834
- (nodeType === 3 /* TextNode */ && childNodes[j].textContent.trim() !== '')) {
1049
+ if (nodeType === 1 /* NODE_TYPE.ElementNode */ ||
1050
+ (nodeType === 3 /* NODE_TYPE.TextNode */ && childNodes[j].textContent.trim() !== '')) {
835
1051
  childNode.hidden = true;
836
1052
  break;
837
1053
  }
@@ -909,13 +1125,13 @@ const relocateSlotContent = (elm) => {
909
1125
  }
910
1126
  }
911
1127
  }
912
- if (childNode.nodeType === 1 /* ElementNode */) {
1128
+ if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
913
1129
  relocateSlotContent(childNode);
914
1130
  }
915
1131
  }
916
1132
  };
917
1133
  const isNodeLocatedInSlot = (nodeToRelocate, slotNameAttr) => {
918
- if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
1134
+ if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
919
1135
  if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {
920
1136
  return true;
921
1137
  }
@@ -946,7 +1162,7 @@ const renderVdom = (hostRef, renderFnResults) => {
946
1162
  cmpMeta.$attrsToReflect$.map(([propName, attribute]) => (rootVnode.$attrs$[attribute] = hostElm[propName]));
947
1163
  }
948
1164
  rootVnode.$tag$ = null;
949
- rootVnode.$flags$ |= 4 /* isHost */;
1165
+ rootVnode.$flags$ |= 4 /* VNODE_FLAGS.isHost */;
950
1166
  hostRef.$vnode$ = rootVnode;
951
1167
  rootVnode.$elm$ = oldVNode.$elm$ = (hostElm.shadowRoot || hostElm );
952
1168
  {
@@ -954,7 +1170,7 @@ const renderVdom = (hostRef, renderFnResults) => {
954
1170
  }
955
1171
  {
956
1172
  contentRef = hostElm['s-cr'];
957
- useNativeShadowDom = supportsShadow && (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0;
1173
+ useNativeShadowDom = supportsShadow && (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) !== 0;
958
1174
  // always reset
959
1175
  checkSlotFallbackVisibility = false;
960
1176
  }
@@ -963,7 +1179,7 @@ const renderVdom = (hostRef, renderFnResults) => {
963
1179
  {
964
1180
  // while we're moving nodes around existing nodes, temporarily disable
965
1181
  // the disconnectCallback from working
966
- plt.$flags$ |= 1 /* isTmpDisconnected */;
1182
+ plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
967
1183
  if (checkSlotRelocate) {
968
1184
  relocateSlotContent(rootVnode.$elm$);
969
1185
  let relocateData;
@@ -1021,7 +1237,7 @@ const renderVdom = (hostRef, renderFnResults) => {
1021
1237
  }
1022
1238
  else {
1023
1239
  // this node doesn't have a slot home to go to, so let's hide it
1024
- if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
1240
+ if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1025
1241
  nodeToRelocate.hidden = true;
1026
1242
  }
1027
1243
  }
@@ -1032,37 +1248,11 @@ const renderVdom = (hostRef, renderFnResults) => {
1032
1248
  }
1033
1249
  // done moving nodes around
1034
1250
  // allow the disconnect callback to work again
1035
- plt.$flags$ &= ~1 /* isTmpDisconnected */;
1251
+ plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;
1036
1252
  // always reset
1037
1253
  relocateNodes.length = 0;
1038
1254
  }
1039
1255
  };
1040
- const getElement = (ref) => (ref);
1041
- const createEvent = (ref, name, flags) => {
1042
- const elm = getElement(ref);
1043
- return {
1044
- emit: (detail) => {
1045
- return emitEvent(elm, name, {
1046
- bubbles: !!(flags & 4 /* Bubbles */),
1047
- composed: !!(flags & 2 /* Composed */),
1048
- cancelable: !!(flags & 1 /* Cancellable */),
1049
- detail,
1050
- });
1051
- },
1052
- };
1053
- };
1054
- /**
1055
- * Helper function to create & dispatch a custom Event on a provided target
1056
- * @param elm the target of the Event
1057
- * @param name the name to give the custom Event
1058
- * @param opts options for configuring a custom Event
1059
- * @returns the custom Event
1060
- */
1061
- const emitEvent = (elm, name, opts) => {
1062
- const ev = plt.ce(name, opts);
1063
- elm.dispatchEvent(ev);
1064
- return ev;
1065
- };
1066
1256
  const attachToAncestor = (hostRef, ancestorComponent) => {
1067
1257
  if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {
1068
1258
  ancestorComponent['s-p'].push(new Promise((r) => (hostRef.$onRenderResolve$ = r)));
@@ -1070,10 +1260,10 @@ const attachToAncestor = (hostRef, ancestorComponent) => {
1070
1260
  };
1071
1261
  const scheduleUpdate = (hostRef, isInitialLoad) => {
1072
1262
  {
1073
- hostRef.$flags$ |= 16 /* isQueuedForUpdate */;
1263
+ hostRef.$flags$ |= 16 /* HOST_FLAGS.isQueuedForUpdate */;
1074
1264
  }
1075
- if (hostRef.$flags$ & 4 /* isWaitingForChildren */) {
1076
- hostRef.$flags$ |= 512 /* needsRerender */;
1265
+ if (hostRef.$flags$ & 4 /* HOST_FLAGS.isWaitingForChildren */) {
1266
+ hostRef.$flags$ |= 512 /* HOST_FLAGS.needsRerender */;
1077
1267
  return;
1078
1268
  }
1079
1269
  attachToAncestor(hostRef, hostRef.$ancestorComponent$);
@@ -1129,7 +1319,7 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
1129
1319
  }
1130
1320
  else {
1131
1321
  Promise.all(childrenPromises).then(postUpdate);
1132
- hostRef.$flags$ |= 4 /* isWaitingForChildren */;
1322
+ hostRef.$flags$ |= 4 /* HOST_FLAGS.isWaitingForChildren */;
1133
1323
  childrenPromises.length = 0;
1134
1324
  }
1135
1325
  }
@@ -1138,10 +1328,10 @@ const callRender = (hostRef, instance, elm) => {
1138
1328
  try {
1139
1329
  instance = instance.render() ;
1140
1330
  {
1141
- hostRef.$flags$ &= ~16 /* isQueuedForUpdate */;
1331
+ hostRef.$flags$ &= ~16 /* HOST_FLAGS.isQueuedForUpdate */;
1142
1332
  }
1143
1333
  {
1144
- hostRef.$flags$ |= 2 /* hasRendered */;
1334
+ hostRef.$flags$ |= 2 /* HOST_FLAGS.hasRendered */;
1145
1335
  }
1146
1336
  {
1147
1337
  {
@@ -1168,8 +1358,8 @@ const postUpdateComponent = (hostRef) => {
1168
1358
  {
1169
1359
  safeCall(instance, 'componentDidRender');
1170
1360
  }
1171
- if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {
1172
- hostRef.$flags$ |= 64 /* hasLoadedComponent */;
1361
+ if (!(hostRef.$flags$ & 64 /* HOST_FLAGS.hasLoadedComponent */)) {
1362
+ hostRef.$flags$ |= 64 /* HOST_FLAGS.hasLoadedComponent */;
1173
1363
  {
1174
1364
  // DOM WRITE!
1175
1365
  addHydratedFlag(elm);
@@ -1198,10 +1388,10 @@ const postUpdateComponent = (hostRef) => {
1198
1388
  hostRef.$onRenderResolve$();
1199
1389
  hostRef.$onRenderResolve$ = undefined;
1200
1390
  }
1201
- if (hostRef.$flags$ & 512 /* needsRerender */) {
1391
+ if (hostRef.$flags$ & 512 /* HOST_FLAGS.needsRerender */) {
1202
1392
  nextTick(() => scheduleUpdate(hostRef, false));
1203
1393
  }
1204
- hostRef.$flags$ &= ~(4 /* isWaitingForChildren */ | 512 /* needsRerender */);
1394
+ hostRef.$flags$ &= ~(4 /* HOST_FLAGS.isWaitingForChildren */ | 512 /* HOST_FLAGS.needsRerender */);
1205
1395
  }
1206
1396
  // ( •_•)
1207
1397
  // ( •_•)>⌐■-■
@@ -1231,53 +1421,6 @@ const then = (promise, thenFn) => {
1231
1421
  };
1232
1422
  const addHydratedFlag = (elm) => elm.classList.add('hydrated')
1233
1423
  ;
1234
- /**
1235
- * Parse a new property value for a given property type.
1236
- *
1237
- * While the prop value can reasonably be expected to be of `any` type as far as TypeScript's type checker is concerned,
1238
- * it is not safe to assume that the string returned by evaluating `typeof propValue` matches:
1239
- * 1. `any`, the type given to `propValue` in the function signature
1240
- * 2. the type stored from `propType`.
1241
- *
1242
- * This function provides the capability to parse/coerce a property's value to potentially any other JavaScript type.
1243
- *
1244
- * Property values represented in TSX preserve their type information. In the example below, the number 0 is passed to
1245
- * a component. This `propValue` will preserve its type information (`typeof propValue === 'number'`). Note that is
1246
- * based on the type of the value being passed in, not the type declared of the class member decorated with `@Prop`.
1247
- * ```tsx
1248
- * <my-cmp prop-val={0}></my-cmp>
1249
- * ```
1250
- *
1251
- * HTML prop values on the other hand, will always a string
1252
- *
1253
- * @param propValue the new value to coerce to some type
1254
- * @param propType the type of the prop, expressed as a binary number
1255
- * @returns the parsed/coerced value
1256
- */
1257
- const parsePropertyValue = (propValue, propType) => {
1258
- // ensure this value is of the correct prop type
1259
- if (propValue != null && !isComplexType(propValue)) {
1260
- if (propType & 4 /* Boolean */) {
1261
- // per the HTML spec, any string value means it is a boolean true value
1262
- // but we'll cheat here and say that the string "false" is the boolean false
1263
- return propValue === 'false' ? false : propValue === '' || !!propValue;
1264
- }
1265
- if (propType & 2 /* Number */) {
1266
- // force it to be a number
1267
- return parseFloat(propValue);
1268
- }
1269
- if (propType & 1 /* String */) {
1270
- // could have been passed as a number or boolean
1271
- // but we still want it as a string
1272
- return String(propValue);
1273
- }
1274
- // redundant return here for better minification
1275
- return propValue;
1276
- }
1277
- // not sure exactly what type we want
1278
- // so no need to change to a different type
1279
- return propValue;
1280
- };
1281
1424
  const getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);
1282
1425
  const setValue = (ref, propName, newVal, cmpMeta) => {
1283
1426
  // check our new property value against our internal value
@@ -1296,7 +1439,7 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1296
1439
  hostRef.$instanceValues$.set(propName, newVal);
1297
1440
  {
1298
1441
  // get an array of method names of watch functions to call
1299
- if (cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) {
1442
+ if (cmpMeta.$watchers$ && flags & 128 /* HOST_FLAGS.isWatchReady */) {
1300
1443
  const watchMethods = cmpMeta.$watchers$[propName];
1301
1444
  if (watchMethods) {
1302
1445
  // this instance is watching for when this property changed
@@ -1311,7 +1454,7 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1311
1454
  });
1312
1455
  }
1313
1456
  }
1314
- if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1457
+ if ((flags & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {
1315
1458
  // looks like this value actually changed, so we've got work to do!
1316
1459
  // but only if we've already rendered, otherwise just chill out
1317
1460
  // queue that we need to do an update, but don't worry about queuing
@@ -1321,6 +1464,16 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1321
1464
  }
1322
1465
  }
1323
1466
  };
1467
+ /**
1468
+ * Attach a series of runtime constructs to a compiled Stencil component
1469
+ * constructor, including getters and setters for the `@Prop` and `@State`
1470
+ * decorators, callbacks for when attributes change, and so on.
1471
+ *
1472
+ * @param Cstr the constructor for a component that we need to process
1473
+ * @param cmpMeta metadata collected previously about the component
1474
+ * @param flags a number used to store a series of bit flags
1475
+ * @returns a reference to the same constructor passed in (but now mutated)
1476
+ */
1324
1477
  const proxyComponent = (Cstr, cmpMeta, flags) => {
1325
1478
  if (cmpMeta.$members$) {
1326
1479
  if (Cstr.watchers) {
@@ -1330,8 +1483,8 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1330
1483
  const members = Object.entries(cmpMeta.$members$);
1331
1484
  const prototype = Cstr.prototype;
1332
1485
  members.map(([memberName, [memberFlags]]) => {
1333
- if ((memberFlags & 31 /* Prop */ ||
1334
- (memberFlags & 32 /* State */))) {
1486
+ if ((memberFlags & 31 /* MEMBER_FLAGS.Prop */ ||
1487
+ (memberFlags & 32 /* MEMBER_FLAGS.State */))) {
1335
1488
  // proxyComponent - prop
1336
1489
  Object.defineProperty(prototype, memberName, {
1337
1490
  get() {
@@ -1403,11 +1556,11 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1403
1556
  // create an array of attributes to observe
1404
1557
  // and also create a map of html attribute name to js property name
1405
1558
  Cstr.observedAttributes = members
1406
- .filter(([_, m]) => m[0] & 15 /* HasAttribute */) // filter to only keep props that should match attributes
1559
+ .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes
1407
1560
  .map(([propName, m]) => {
1408
1561
  const attrName = m[1] || propName;
1409
1562
  attrNameToPropName.set(attrName, propName);
1410
- if (m[0] & 512 /* ReflectAttr */) {
1563
+ if (m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {
1411
1564
  cmpMeta.$attrsToReflect$.push([propName, attrName]);
1412
1565
  }
1413
1566
  return attrName;
@@ -1418,15 +1571,15 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1418
1571
  };
1419
1572
  const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {
1420
1573
  // initializeComponent
1421
- if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
1574
+ if ((hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {
1422
1575
  {
1423
1576
  // sync constructor component
1424
1577
  Cstr = elm.constructor;
1425
- hostRef.$flags$ |= 32 /* hasInitializedComponent */;
1578
+ hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;
1426
1579
  // wait for the CustomElementRegistry to mark the component as ready before setting `isWatchReady`. Otherwise,
1427
1580
  // watchers may fire prematurely if `customElements.get()`/`customElements.whenDefined()` resolves _before_
1428
1581
  // Stencil has completed instantiating the component.
1429
- customElements.whenDefined(cmpMeta.$tagName$).then(() => (hostRef.$flags$ |= 128 /* isWatchReady */));
1582
+ customElements.whenDefined(cmpMeta.$tagName$).then(() => (hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */));
1430
1583
  }
1431
1584
  if (Cstr.style) {
1432
1585
  // this component has styles but we haven't registered them yet
@@ -1434,10 +1587,10 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
1434
1587
  const scopeId = getScopeId(cmpMeta);
1435
1588
  if (!styles.has(scopeId)) {
1436
1589
  const endRegisterStyles = createTime('registerStyles', cmpMeta.$tagName$);
1437
- if (cmpMeta.$flags$ & 8 /* needsShadowDomShim */) {
1438
- style = await import('./p-d4c234ed.js').then((m) => m.scopeCss(style, scopeId, false));
1590
+ if (cmpMeta.$flags$ & 8 /* CMP_FLAGS.needsShadowDomShim */) {
1591
+ style = await import('./p-e2cd1c98.js').then((m) => m.scopeCss(style, scopeId, false));
1439
1592
  }
1440
- registerStyle(scopeId, style, !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */));
1593
+ registerStyle(scopeId, style, !!(cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */));
1441
1594
  endRegisterStyles();
1442
1595
  }
1443
1596
  }
@@ -1459,19 +1612,19 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
1459
1612
  }
1460
1613
  };
1461
1614
  const connectedCallback = (elm) => {
1462
- if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
1615
+ if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {
1463
1616
  const hostRef = getHostRef(elm);
1464
1617
  const cmpMeta = hostRef.$cmpMeta$;
1465
1618
  const endConnected = createTime('connectedCallback', cmpMeta.$tagName$);
1466
- if (!(hostRef.$flags$ & 1 /* hasConnected */)) {
1619
+ if (!(hostRef.$flags$ & 1 /* HOST_FLAGS.hasConnected */)) {
1467
1620
  // first time this component has connected
1468
- hostRef.$flags$ |= 1 /* hasConnected */;
1621
+ hostRef.$flags$ |= 1 /* HOST_FLAGS.hasConnected */;
1469
1622
  {
1470
1623
  // initUpdate
1471
1624
  // if the slot polyfill is required we'll need to put some nodes
1472
1625
  // in here to act as original content anchors as we move nodes around
1473
1626
  // host element has been connected to the DOM
1474
- if ((cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */))) {
1627
+ if ((cmpMeta.$flags$ & (4 /* CMP_FLAGS.hasSlotRelocation */ | 8 /* CMP_FLAGS.needsShadowDomShim */))) {
1475
1628
  setContentReference(elm);
1476
1629
  }
1477
1630
  }
@@ -1494,7 +1647,7 @@ const connectedCallback = (elm) => {
1494
1647
  // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties
1495
1648
  if (cmpMeta.$members$) {
1496
1649
  Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {
1497
- if (memberFlags & 31 /* Prop */ && elm.hasOwnProperty(memberName)) {
1650
+ if (memberFlags & 31 /* MEMBER_FLAGS.Prop */ && elm.hasOwnProperty(memberName)) {
1498
1651
  const value = elm[memberName];
1499
1652
  delete elm[memberName];
1500
1653
  elm[memberName] = value;
@@ -1526,7 +1679,7 @@ const setContentReference = (elm) => {
1526
1679
  elm.insertBefore(contentRefElm, elm.firstChild);
1527
1680
  };
1528
1681
  const disconnectedCallback = (elm) => {
1529
- if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
1682
+ if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {
1530
1683
  const hostRef = getHostRef(elm);
1531
1684
  {
1532
1685
  if (hostRef.$rmListeners$) {
@@ -1553,8 +1706,8 @@ const proxyCustomElement = (Cstr, compactMeta) => {
1553
1706
  {
1554
1707
  cmpMeta.$attrsToReflect$ = [];
1555
1708
  }
1556
- if (!supportsShadow && cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {
1557
- cmpMeta.$flags$ |= 8 /* needsShadowDomShim */;
1709
+ if (!supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {
1710
+ cmpMeta.$flags$ |= 8 /* CMP_FLAGS.needsShadowDomShim */;
1558
1711
  }
1559
1712
  const originalConnectedCallback = Cstr.prototype.connectedCallback;
1560
1713
  const originalDisconnectedCallback = Cstr.prototype.disconnectedCallback;
@@ -1579,7 +1732,7 @@ const proxyCustomElement = (Cstr, compactMeta) => {
1579
1732
  {
1580
1733
  this.attachShadow({
1581
1734
  mode: 'open',
1582
- delegatesFocus: !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */),
1735
+ delegatesFocus: !!(cmpMeta.$flags$ & 16 /* CMP_FLAGS.shadowDelegatesFocus */),
1583
1736
  });
1584
1737
  }
1585
1738
  }
@@ -1591,10 +1744,41 @@ const proxyCustomElement = (Cstr, compactMeta) => {
1591
1744
  Cstr.is = cmpMeta.$tagName$;
1592
1745
  return proxyComponent(Cstr, cmpMeta);
1593
1746
  };
1594
- const setAssetPath = (path) => (plt.$resourcesUrl$ = path);
1595
- const setPlatformOptions = (opts) => Object.assign(plt, opts);
1596
1747
  const Fragment = (_, children) => children;
1597
- const hostRefs = new WeakMap();
1748
+ const addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
1749
+ if (listeners) {
1750
+ listeners.map(([flags, name, method]) => {
1751
+ const target = getHostListenerTarget(elm, flags) ;
1752
+ const handler = hostListenerProxy(hostRef, method);
1753
+ const opts = hostListenerOpts(flags);
1754
+ plt.ael(target, name, handler, opts);
1755
+ (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));
1756
+ });
1757
+ }
1758
+ };
1759
+ const hostListenerProxy = (hostRef, methodName) => (ev) => {
1760
+ try {
1761
+ {
1762
+ hostRef.$hostElement$[methodName](ev);
1763
+ }
1764
+ }
1765
+ catch (e) {
1766
+ consoleError(e);
1767
+ }
1768
+ };
1769
+ const getHostListenerTarget = (elm, flags) => {
1770
+ if (flags & 4 /* LISTENER_FLAGS.TargetDocument */)
1771
+ return doc;
1772
+ if (flags & 8 /* LISTENER_FLAGS.TargetWindow */)
1773
+ return win;
1774
+ if (flags & 16 /* LISTENER_FLAGS.TargetBody */)
1775
+ return doc.body;
1776
+ return elm;
1777
+ };
1778
+ // prettier-ignore
1779
+ const hostListenerOpts = (flags) => (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0;
1780
+ const setPlatformOptions = (opts) => Object.assign(plt, opts);
1781
+ const hostRefs = /*@__PURE__*/ new WeakMap();
1598
1782
  const getHostRef = (ref) => hostRefs.get(ref);
1599
1783
  const registerHost = (elm, cmpMeta) => {
1600
1784
  const hostRef = {
@@ -1613,14 +1797,39 @@ const registerHost = (elm, cmpMeta) => {
1613
1797
  };
1614
1798
  const isMemberInElement = (elm, memberName) => memberName in elm;
1615
1799
  const consoleError = (e, el) => (0, console.error)(e, el);
1616
- const styles = new Map();
1800
+ const styles = /*@__PURE__*/ new Map();
1801
+ const win = typeof window !== 'undefined' ? window : {};
1802
+ const doc = win.document || { head: {} };
1803
+ const H = (win.HTMLElement || class {
1804
+ });
1805
+ const plt = {
1806
+ $flags$: 0,
1807
+ $resourcesUrl$: '',
1808
+ jmp: (h) => h(),
1809
+ raf: (h) => requestAnimationFrame(h),
1810
+ ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),
1811
+ rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),
1812
+ ce: (eventName, opts) => new CustomEvent(eventName, opts),
1813
+ };
1814
+ const supportsShadow = /*@__PURE__*/ (() => (doc.head.attachShadow + '').indexOf('[native') > -1)()
1815
+ ;
1816
+ const promiseResolve = (v) => Promise.resolve(v);
1817
+ const supportsConstructableStylesheets = /*@__PURE__*/ (() => {
1818
+ try {
1819
+ new CSSStyleSheet();
1820
+ return typeof new CSSStyleSheet().replaceSync === 'function';
1821
+ }
1822
+ catch (e) { }
1823
+ return false;
1824
+ })()
1825
+ ;
1617
1826
  const queueDomReads = [];
1618
1827
  const queueDomWrites = [];
1619
1828
  const queueTask = (queue, write) => (cb) => {
1620
1829
  queue.push(cb);
1621
1830
  if (!queuePending) {
1622
1831
  queuePending = true;
1623
- if (write && plt.$flags$ & 4 /* queueSync */) {
1832
+ if (write && plt.$flags$ & 4 /* PLATFORM_FLAGS.queueSync */) {
1624
1833
  nextTick(flush);
1625
1834
  }
1626
1835
  else {
@@ -1656,11 +1865,5 @@ const flush = () => {
1656
1865
  };
1657
1866
  const nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);
1658
1867
  const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
1659
- const Build = {
1660
- isDev: false,
1661
- isBrowser: true,
1662
- isServer: false,
1663
- isTesting: false,
1664
- };
1665
1868
 
1666
1869
  export { Build as B, Env as E, Fragment as F, H, setPlatformOptions as a, Host as b, createEvent as c, h, proxyCustomElement as p, setAssetPath as s };