@tet/tet-components 1.4.71-testing → 1.4.72-production

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 (524) hide show
  1. package/dist/cjs/{address-656e77f6.js → address-951109ee.js} +1 -1
  2. package/dist/cjs/{assets-f64f0e16.js → assets-c00a24d2.js} +1 -1
  3. package/dist/cjs/{async-request-fcf33aba.js → async-request-13036d6f.js} +1 -1
  4. package/dist/cjs/{http-codes-40da1e61.js → http-codes-16564d25.js} +1 -1
  5. package/dist/cjs/{index-3242ff3f.js → index-162b4cbc.js} +17 -9
  6. package/dist/cjs/{index-4b423f33.js → index-a59cbcb0.js} +1 -1
  7. package/dist/cjs/loader.cjs.js +2 -2
  8. package/dist/cjs/{phone-055efd07.js → phone-39f20542.js} +2 -2
  9. package/dist/cjs/{product-comparison-88a89820.js → product-comparison-5535cd9e.js} +1 -1
  10. package/dist/cjs/tet-accordion.cjs.entry.js +1 -1
  11. package/dist/cjs/tet-address-offers-filters-products_2.cjs.entry.js +4 -4
  12. package/dist/cjs/tet-address-offers-view.cjs.entry.js +3 -3
  13. package/dist/cjs/tet-address-offers_4.cjs.entry.js +7 -7
  14. package/dist/cjs/tet-address-search.cjs.entry.js +4 -4
  15. package/dist/cjs/tet-asset-addresses.cjs.entry.js +3 -3
  16. package/dist/cjs/tet-autocomplete-dropdown.cjs.entry.js +1 -1
  17. package/dist/cjs/tet-autocomplete.cjs.entry.js +1 -1
  18. package/dist/cjs/tet-b2b-check-out-form_5.cjs.entry.js +3 -3
  19. package/dist/cjs/tet-b2b-configurator.cjs.entry.js +4 -4
  20. package/dist/cjs/tet-b2b-service-calculator.cjs.entry.js +3 -3
  21. package/dist/cjs/tet-banner-nav.cjs.entry.js +3 -3
  22. package/dist/cjs/tet-bar-graph.cjs.entry.js +1 -1
  23. package/dist/cjs/tet-border-radius.cjs.entry.js +1 -1
  24. package/dist/cjs/tet-business-card.cjs.entry.js +1 -1
  25. package/dist/cjs/tet-business-compare-card.cjs.entry.js +1 -1
  26. package/dist/cjs/tet-business-lines.cjs.entry.js +4 -4
  27. package/dist/cjs/tet-business-round-stepper.cjs.entry.js +1 -1
  28. package/dist/cjs/tet-button.cjs.entry.js +1 -1
  29. package/dist/cjs/tet-card-list.cjs.entry.js +1 -1
  30. package/dist/cjs/tet-carousel.cjs.entry.js +3 -3
  31. package/dist/cjs/{tet-checkbox_3.cjs.entry.js → tet-checkbox_2.cjs.entry.js} +1 -375
  32. package/dist/cjs/tet-cloud-application-form-dialog.cjs.entry.js +3 -3
  33. package/dist/cjs/tet-cloud-configurator.cjs.entry.js +3 -3
  34. package/dist/cjs/tet-colors.cjs.entry.js +1 -1
  35. package/dist/cjs/tet-compare-card-v2.cjs.entry.js +4 -4
  36. package/dist/cjs/tet-compare-card-v3.cjs.entry.js +360 -0
  37. package/dist/cjs/tet-compare-cards-tab.cjs.entry.js +3 -3
  38. package/dist/cjs/tet-compare-cards_2.cjs.entry.js +3 -3
  39. package/dist/cjs/tet-components.cjs.js +2 -2
  40. package/dist/cjs/tet-contact-form.cjs.entry.js +5 -5
  41. package/dist/cjs/tet-contact-info.cjs.entry.js +1 -1
  42. package/dist/cjs/tet-container_2.cjs.entry.js +1 -1
  43. package/dist/cjs/tet-countdown.cjs.entry.js +1 -1
  44. package/dist/cjs/tet-counter.cjs.entry.js +1 -1
  45. package/dist/cjs/tet-customer-assets.cjs.entry.js +3 -3
  46. package/dist/cjs/tet-datepicker-header_4.cjs.entry.js +1 -1
  47. package/dist/cjs/tet-datepicker.cjs.entry.js +1 -1
  48. package/dist/cjs/tet-dialog.cjs.entry.js +3 -3
  49. package/dist/cjs/tet-display.cjs.entry.js +1 -1
  50. package/dist/cjs/tet-divider.cjs.entry.js +1 -1
  51. package/dist/cjs/tet-dynamic-card.cjs.entry.js +1 -1
  52. package/dist/cjs/tet-expandable-input.cjs.entry.js +2 -2
  53. package/dist/cjs/tet-expansion-panel.cjs.entry.js +1 -1
  54. package/dist/cjs/tet-feedback-form.cjs.entry.js +3 -3
  55. package/dist/cjs/tet-filter.cjs.entry.js +1 -1
  56. package/dist/cjs/tet-floating-block.cjs.entry.js +1 -1
  57. package/dist/cjs/tet-font-weight.cjs.entry.js +1 -1
  58. package/dist/cjs/tet-fonts.cjs.entry.js +1 -1
  59. package/dist/cjs/tet-grid.cjs.entry.js +1 -1
  60. package/dist/cjs/tet-icon.cjs.entry.js +2 -2
  61. package/dist/cjs/tet-inline-message.cjs.entry.js +1 -1
  62. package/dist/cjs/tet-input.cjs.entry.js +3 -3
  63. package/dist/cjs/tet-label.cjs.entry.js +3 -3
  64. package/dist/cjs/tet-layout.cjs.entry.js +1 -1
  65. package/dist/cjs/tet-link-card-list.cjs.entry.js +1 -1
  66. package/dist/cjs/tet-link.cjs.entry.js +1 -1
  67. package/dist/cjs/tet-loader.cjs.entry.js +1 -1
  68. package/dist/cjs/tet-macd-view.cjs.entry.js +6 -6
  69. package/dist/cjs/tet-menu-mobile.cjs.entry.js +7 -5
  70. package/dist/cjs/tet-menu.cjs.entry.js +397 -92
  71. package/dist/cjs/tet-mini-compare-card.cjs.entry.js +1 -1
  72. package/dist/cjs/tet-multi-step-dialog.cjs.entry.js +3 -3
  73. package/dist/cjs/tet-navigation-mobile.cjs.entry.js +2 -2
  74. package/dist/cjs/tet-news-card-list.cjs.entry.js +1 -1
  75. package/dist/cjs/tet-notification.cjs.entry.js +1 -1
  76. package/dist/cjs/tet-number-input.cjs.entry.js +1 -1
  77. package/dist/cjs/tet-placeholder.cjs.entry.js +1 -1
  78. package/dist/cjs/tet-position.cjs.entry.js +1 -1
  79. package/dist/cjs/tet-price-view.cjs.entry.js +1 -1
  80. package/dist/cjs/tet-radio.cjs.entry.js +13 -11
  81. package/dist/cjs/tet-range-slider.cjs.entry.js +1 -1
  82. package/dist/cjs/tet-referral.cjs.entry.js +5 -5
  83. package/dist/cjs/tet-round-stepper.cjs.entry.js +1 -1
  84. package/dist/cjs/tet-snicker-card-badge.cjs.entry.js +1 -1
  85. package/dist/cjs/tet-snicker-card-group.cjs.entry.js +1 -1
  86. package/dist/cjs/tet-snicker-card.cjs.entry.js +3 -3
  87. package/dist/cjs/tet-spacing.cjs.entry.js +1 -1
  88. package/dist/cjs/tet-spinner.cjs.entry.js +1 -1
  89. package/dist/cjs/tet-stepper-input.cjs.entry.js +3 -3
  90. package/dist/cjs/tet-stepper-v2.cjs.entry.js +1 -1
  91. package/dist/cjs/tet-stepper-v3.cjs.entry.js +1 -1
  92. package/dist/cjs/tet-stepper.cjs.entry.js +1 -1
  93. package/dist/cjs/tet-support-search.cjs.entry.js +1 -1
  94. package/dist/cjs/tet-switch.cjs.entry.js +2 -2
  95. package/dist/cjs/tet-tab-header.cjs.entry.js +1 -1
  96. package/dist/cjs/tet-table.cjs.entry.js +1 -1
  97. package/dist/cjs/tet-tag_2.cjs.entry.js +3 -3
  98. package/dist/cjs/tet-text-list.cjs.entry.js +2 -2
  99. package/dist/cjs/tet-text.cjs.entry.js +1 -1
  100. package/dist/cjs/tet-textarea.cjs.entry.js +1 -1
  101. package/dist/cjs/tet-thank-you-view-v2.cjs.entry.js +3 -3
  102. package/dist/cjs/tet-thank-you-view-v3.cjs.entry.js +3 -3
  103. package/dist/cjs/tet-thank-you-view.cjs.entry.js +1 -1
  104. package/dist/cjs/tet-tooltip.cjs.entry.js +380 -0
  105. package/dist/cjs/tet-tv-gift-block.cjs.entry.js +1 -1
  106. package/dist/cjs/tet-tv-gift-list.cjs.entry.js +1 -1
  107. package/dist/cjs/{theme-wrapper-66880718.js → theme-wrapper-cde3168f.js} +2 -2
  108. package/dist/cjs/{translations-03c9de64.js → translations-ca556860.js} +1 -1
  109. package/dist/collection/collection-manifest.json +1 -0
  110. package/dist/collection/components/advanced/cards/tet-compare-card/tet-compare-card.css +34 -0
  111. package/dist/collection/components/advanced/cards/tet-compare-card-v2/tet-compare-card-v2.css +34 -0
  112. package/dist/collection/components/advanced/cards/tet-compare-card-v3/test/comparison-response.mock.js +463 -0
  113. package/dist/collection/components/advanced/cards/tet-compare-card-v3/tet-compare-card-v3.css +868 -0
  114. package/dist/collection/components/advanced/cards/tet-compare-card-v3/tet-compare-card-v3.js +699 -0
  115. package/dist/collection/components/basic/buttons/tet-radio/tet-radio.css +3 -0
  116. package/dist/collection/components/basic/buttons/tet-radio/tet-radio.js +11 -9
  117. package/dist/collection/components/basic/buttons/tet-switch/tet-switch.css +3 -0
  118. package/dist/collection/components/simple/inputs/tet-expandable-input/tet-expandable-input.css +23 -7
  119. package/dist/collection/components/simple/lists/tet-text-list/tet-text-list.css +34 -0
  120. package/dist/collection/components/simple/menu/tet-menu/tet-menu.css +819 -39
  121. package/dist/collection/components/simple/menu/tet-menu/tet-menu.js +464 -95
  122. package/dist/collection/components/simple/menu/tet-menu-mobile/tet-menu-mobile.css +56 -36
  123. package/dist/collection/components/simple/menu/tet-menu-mobile/tet-menu-mobile.js +23 -3
  124. package/dist/collection/components/simple/menu/tet-navigation-mobile/tet-navigation-mobile.css +17 -3
  125. package/dist/components/index.js +3 -1
  126. package/dist/components/{p-8f9ff447.js → p-0c6b7ee4.js} +2 -2
  127. package/dist/components/{p-1a84e464.js → p-0cd72467.js} +6 -6
  128. package/dist/components/{p-cd88c18e.js → p-0d7a13c4.js} +7 -7
  129. package/dist/components/{p-d840d114.js → p-0fb58488.js} +1 -1
  130. package/dist/components/{p-789bee5f.js → p-14371fc9.js} +1 -1
  131. package/dist/components/{p-b63a7833.js → p-16a058a6.js} +3 -3
  132. package/dist/components/{p-d2906f29.js → p-17f7575a.js} +3 -3
  133. package/dist/components/{p-ecb62209.js → p-19b3a55c.js} +2 -2
  134. package/dist/components/{p-de671173.js → p-1ab3676a.js} +1 -1
  135. package/dist/components/{p-734f67c5.js → p-1ad085d5.js} +1 -1
  136. package/dist/components/{p-b51591ec.js → p-1d8bc79a.js} +1 -1
  137. package/dist/components/{p-05a4a88a.js → p-1e920550.js} +2 -2
  138. package/dist/components/{p-4d181fc9.js → p-2297d3a8.js} +5 -5
  139. package/dist/components/{p-411270c6.js → p-2523029a.js} +2 -2
  140. package/dist/components/{p-6e273f47.js → p-2b8d8b77.js} +1 -1
  141. package/dist/components/{p-8cd5cc24.js → p-2e4ca0ab.js} +2 -2
  142. package/dist/components/{p-b7eb822d.js → p-358dc559.js} +1 -1
  143. package/dist/components/{p-d6c8d210.js → p-3ef3a3e7.js} +10 -10
  144. package/dist/components/{p-5a41a155.js → p-4092e01d.js} +4 -4
  145. package/dist/components/{p-3c404244.js → p-429235d1.js} +1 -1
  146. package/dist/components/{p-a46ed058.js → p-47657122.js} +1 -1
  147. package/dist/components/{p-e8595e06.js → p-50d97c82.js} +14 -12
  148. package/dist/components/{p-8f3097ac.js → p-600c6af2.js} +10 -10
  149. package/dist/components/{p-69ddd50b.js → p-67f81125.js} +6 -6
  150. package/dist/components/{p-25ea4db6.js → p-6b814793.js} +1 -1
  151. package/dist/components/{p-6b6e4f80.js → p-6c7cd629.js} +1 -1
  152. package/dist/components/{p-42d78188.js → p-6ee658e2.js} +7 -7
  153. package/dist/components/{p-22b05881.js → p-6f9d915f.js} +3 -3
  154. package/dist/components/{p-1942f0f5.js → p-71cd1694.js} +3 -3
  155. package/dist/components/{p-2f7b2d35.js → p-75549c13.js} +1 -1
  156. package/dist/components/{p-a57638be.js → p-75c001fd.js} +1 -1
  157. package/dist/components/{p-70507bfc.js → p-78567cb4.js} +1 -1
  158. package/dist/components/{p-a004fba4.js → p-78acba3f.js} +2 -2
  159. package/dist/components/{p-23f7b264.js → p-7dad0edc.js} +7 -7
  160. package/dist/components/{p-d659d0dc.js → p-7dd4f8c0.js} +1 -1
  161. package/dist/components/{p-efa3ec10.js → p-80b1df35.js} +2 -2
  162. package/dist/components/{p-d5d6ad18.js → p-84775fd7.js} +2 -2
  163. package/dist/components/{p-4468c9e9.js → p-8792ebce.js} +1 -1
  164. package/dist/components/{p-25b93e8f.js → p-8b6ad07d.js} +1 -1
  165. package/dist/components/{p-f6e855a8.js → p-8fe68dae.js} +7 -7
  166. package/dist/components/{p-a6c51126.js → p-936f84b7.js} +2 -2
  167. package/dist/components/{p-2be031c9.js → p-a0601962.js} +9 -9
  168. package/dist/components/{p-61ba5ba1.js → p-a60d01a4.js} +1 -1
  169. package/dist/components/{p-189a37d2.js → p-ac0cadcb.js} +5 -5
  170. package/dist/components/{p-c7f783f8.js → p-ad96b57a.js} +7 -7
  171. package/dist/components/{p-454eccfc.js → p-adc7c3dd.js} +3 -3
  172. package/dist/components/{p-eabd73fc.js → p-b8ad4f15.js} +3 -3
  173. package/dist/components/{p-1281b61e.js → p-bc02b9e7.js} +2 -2
  174. package/dist/components/{p-f6c678ae.js → p-c1cdf2d3.js} +2 -2
  175. package/dist/components/{p-809b2c68.js → p-d0886e4e.js} +3 -3
  176. package/dist/components/{p-79e64e7a.js → p-d096569b.js} +3 -3
  177. package/dist/components/{p-72215a89.js → p-d0f08803.js} +2 -2
  178. package/dist/components/{p-68c6a6d2.js → p-df8f8a8f.js} +1 -1
  179. package/dist/components/{p-70a6ba6c.js → p-f74e2b37.js} +14 -14
  180. package/dist/components/{p-e72337be.js → p-f92e8f2d.js} +1 -1
  181. package/dist/components/{p-8803338b.js → p-f99f28c0.js} +1 -1
  182. package/dist/components/{p-7cd73a11.js → p-fa6601a7.js} +3 -3
  183. package/dist/components/{p-dab4d025.js → p-fb3d7fdc.js} +1 -1
  184. package/dist/components/{p-806583bf.js → p-fe16cabd.js} +4 -4
  185. package/dist/components/tet-accordion.js +1 -1
  186. package/dist/components/tet-address-offers-filters-products.js +1 -1
  187. package/dist/components/tet-address-offers-filters.js +1 -1
  188. package/dist/components/tet-address-offers-view.js +24 -24
  189. package/dist/components/tet-address-offers.js +1 -1
  190. package/dist/components/tet-address-search.js +1 -1
  191. package/dist/components/tet-asset-addresses.js +13 -13
  192. package/dist/components/tet-asset-availability-addresses.js +1 -1
  193. package/dist/components/tet-autocomplete-dropdown.js +5 -5
  194. package/dist/components/tet-autocomplete.js +1 -1
  195. package/dist/components/tet-availability-contact-form.js +1 -1
  196. package/dist/components/tet-b2b-check-out-form.js +1 -1
  197. package/dist/components/tet-b2b-compare-card.js +1 -1
  198. package/dist/components/tet-b2b-configurator-cart.js +1 -1
  199. package/dist/components/tet-b2b-configurator.js +20 -20
  200. package/dist/components/tet-b2b-service-calculator.js +8 -8
  201. package/dist/components/tet-banner-nav.js +3 -3
  202. package/dist/components/tet-bar-graph.js +1 -1
  203. package/dist/components/tet-border-radius.js +1 -1
  204. package/dist/components/tet-business-card.js +1 -1
  205. package/dist/components/tet-business-compare-card.js +3 -3
  206. package/dist/components/tet-business-lines.js +5 -5
  207. package/dist/components/tet-business-navigation.js +1 -1
  208. package/dist/components/tet-business-round-stepper.js +2 -2
  209. package/dist/components/tet-business-summary-card.js +1 -1
  210. package/dist/components/tet-button.js +1 -1
  211. package/dist/components/tet-card-list.js +1 -1
  212. package/dist/components/tet-carousel.js +4 -4
  213. package/dist/components/tet-checkbox.js +1 -1
  214. package/dist/components/tet-cloud-application-form-dialog.js +8 -8
  215. package/dist/components/tet-cloud-configurator.js +12 -12
  216. package/dist/components/tet-colors.js +1 -1
  217. package/dist/components/tet-compare-card-v2.js +10 -10
  218. package/dist/components/tet-compare-card-v3.d.ts +11 -0
  219. package/dist/components/tet-compare-card-v3.js +440 -0
  220. package/dist/components/tet-compare-card.js +1 -1
  221. package/dist/components/tet-compare-cards-tab.js +16 -16
  222. package/dist/components/tet-compare-cards.js +1 -1
  223. package/dist/components/tet-contact-form.js +9 -9
  224. package/dist/components/tet-contact-info.js +1 -1
  225. package/dist/components/tet-container.js +1 -1
  226. package/dist/components/tet-countdown.js +1 -1
  227. package/dist/components/tet-counter.js +1 -1
  228. package/dist/components/tet-customer-assets.js +9 -9
  229. package/dist/components/tet-datepicker-header.js +1 -1
  230. package/dist/components/tet-datepicker-month-view.js +1 -1
  231. package/dist/components/tet-datepicker-multi-year-view.js +1 -1
  232. package/dist/components/tet-datepicker-year-view.js +1 -1
  233. package/dist/components/tet-datepicker.js +6 -6
  234. package/dist/components/tet-dialog.js +1 -1
  235. package/dist/components/tet-display.js +8 -8
  236. package/dist/components/tet-divider.js +7 -7
  237. package/dist/components/tet-dropdown.js +1 -1
  238. package/dist/components/tet-dynamic-card.js +4 -4
  239. package/dist/components/tet-expandable-input.js +4 -4
  240. package/dist/components/tet-expansion-panel.js +1 -1
  241. package/dist/components/tet-feedback-form.js +7 -7
  242. package/dist/components/tet-filter.js +4 -4
  243. package/dist/components/tet-floating-block.js +3 -3
  244. package/dist/components/tet-font-weight.js +1 -1
  245. package/dist/components/tet-fonts.js +1 -1
  246. package/dist/components/tet-grid.js +1 -1
  247. package/dist/components/tet-icon.js +1 -1
  248. package/dist/components/tet-inline-message.js +1 -1
  249. package/dist/components/tet-input.js +1 -1
  250. package/dist/components/tet-label.js +3 -3
  251. package/dist/components/tet-layout.js +1 -1
  252. package/dist/components/tet-link-card-list.js +3 -3
  253. package/dist/components/tet-link.js +1 -1
  254. package/dist/components/tet-loader.js +1 -1
  255. package/dist/components/tet-macd-view.js +10 -10
  256. package/dist/components/tet-menu-mobile.js +9 -6
  257. package/dist/components/tet-menu.js +405 -95
  258. package/dist/components/tet-mini-compare-card.js +3 -3
  259. package/dist/components/tet-multi-step-dialog.js +5 -5
  260. package/dist/components/tet-navigation-mobile.js +3 -3
  261. package/dist/components/tet-news-card-list.js +4 -4
  262. package/dist/components/tet-notification.js +1 -1
  263. package/dist/components/tet-number-input.js +1 -1
  264. package/dist/components/tet-placeholder.js +1 -1
  265. package/dist/components/tet-position.js +7 -7
  266. package/dist/components/tet-price-view.js +1 -1
  267. package/dist/components/tet-radio.js +1 -1
  268. package/dist/components/tet-range-slider.js +1 -1
  269. package/dist/components/tet-referral.js +6 -6
  270. package/dist/components/tet-round-stepper.js +2 -2
  271. package/dist/components/tet-selection-list.js +1 -1
  272. package/dist/components/tet-snicker-card-badge.js +1 -1
  273. package/dist/components/tet-snicker-card-group.js +1 -1
  274. package/dist/components/tet-snicker-card.js +11 -11
  275. package/dist/components/tet-spacing.js +1 -1
  276. package/dist/components/tet-spinner.js +1 -1
  277. package/dist/components/tet-stepper-input.js +1 -1
  278. package/dist/components/tet-stepper-v2.js +1 -1
  279. package/dist/components/tet-stepper-v3.js +1 -1
  280. package/dist/components/tet-stepper.js +1 -1
  281. package/dist/components/tet-support-search.js +7 -7
  282. package/dist/components/tet-switch.js +1 -1
  283. package/dist/components/tet-tab-content.js +1 -1
  284. package/dist/components/tet-tab-header.js +1 -1
  285. package/dist/components/tet-table.js +3 -3
  286. package/dist/components/tet-tag-group.js +1 -1
  287. package/dist/components/tet-tag.js +1 -1
  288. package/dist/components/tet-text-list.js +1 -1
  289. package/dist/components/tet-text.js +7 -7
  290. package/dist/components/tet-textarea.js +1 -1
  291. package/dist/components/tet-thank-you-view-v2.js +5 -5
  292. package/dist/components/tet-thank-you-view-v3.js +5 -5
  293. package/dist/components/tet-thank-you-view.js +4 -4
  294. package/dist/components/tet-tooltip.js +1 -1
  295. package/dist/components/tet-tv-gift-block.js +1 -1
  296. package/dist/components/tet-tv-gift-list.js +2 -2
  297. package/dist/esm/{address-1e0810e7.js → address-24e316f2.js} +1 -1
  298. package/dist/esm/{assets-e1349520.js → assets-343a0b59.js} +1 -1
  299. package/dist/esm/{async-request-4c945e13.js → async-request-a5159336.js} +1 -1
  300. package/dist/esm/{http-codes-1927ea00.js → http-codes-98d3e25c.js} +1 -1
  301. package/dist/esm/{index-aac31bd2.js → index-0da0d682.js} +17 -9
  302. package/dist/esm/{index-412df137.js → index-6c5bc6fc.js} +1 -1
  303. package/dist/esm/loader.js +3 -3
  304. package/dist/esm/{phone-1a920c5c.js → phone-ea11e1d0.js} +2 -2
  305. package/dist/esm/{product-comparison-dd90c721.js → product-comparison-21980b84.js} +1 -1
  306. package/dist/esm/tet-accordion.entry.js +1 -1
  307. package/dist/esm/tet-address-offers-filters-products_2.entry.js +4 -4
  308. package/dist/esm/tet-address-offers-view.entry.js +3 -3
  309. package/dist/esm/tet-address-offers_4.entry.js +7 -7
  310. package/dist/esm/tet-address-search.entry.js +4 -4
  311. package/dist/esm/tet-asset-addresses.entry.js +3 -3
  312. package/dist/esm/tet-autocomplete-dropdown.entry.js +1 -1
  313. package/dist/esm/tet-autocomplete.entry.js +1 -1
  314. package/dist/esm/tet-b2b-check-out-form_5.entry.js +3 -3
  315. package/dist/esm/tet-b2b-configurator.entry.js +4 -4
  316. package/dist/esm/tet-b2b-service-calculator.entry.js +3 -3
  317. package/dist/esm/tet-banner-nav.entry.js +3 -3
  318. package/dist/esm/tet-bar-graph.entry.js +1 -1
  319. package/dist/esm/tet-border-radius.entry.js +1 -1
  320. package/dist/esm/tet-business-card.entry.js +1 -1
  321. package/dist/esm/tet-business-compare-card.entry.js +1 -1
  322. package/dist/esm/tet-business-lines.entry.js +4 -4
  323. package/dist/esm/tet-business-round-stepper.entry.js +1 -1
  324. package/dist/esm/tet-button.entry.js +1 -1
  325. package/dist/esm/tet-card-list.entry.js +1 -1
  326. package/dist/esm/tet-carousel.entry.js +3 -3
  327. package/dist/esm/{tet-checkbox_3.entry.js → tet-checkbox_2.entry.js} +2 -375
  328. package/dist/esm/tet-cloud-application-form-dialog.entry.js +3 -3
  329. package/dist/esm/tet-cloud-configurator.entry.js +3 -3
  330. package/dist/esm/tet-colors.entry.js +1 -1
  331. package/dist/esm/tet-compare-card-v2.entry.js +4 -4
  332. package/dist/esm/tet-compare-card-v3.entry.js +356 -0
  333. package/dist/esm/tet-compare-cards-tab.entry.js +3 -3
  334. package/dist/esm/tet-compare-cards_2.entry.js +3 -3
  335. package/dist/esm/tet-components.js +3 -3
  336. package/dist/esm/tet-contact-form.entry.js +5 -5
  337. package/dist/esm/tet-contact-info.entry.js +1 -1
  338. package/dist/esm/tet-container_2.entry.js +1 -1
  339. package/dist/esm/tet-countdown.entry.js +1 -1
  340. package/dist/esm/tet-counter.entry.js +1 -1
  341. package/dist/esm/tet-customer-assets.entry.js +3 -3
  342. package/dist/esm/tet-datepicker-header_4.entry.js +1 -1
  343. package/dist/esm/tet-datepicker.entry.js +1 -1
  344. package/dist/esm/tet-dialog.entry.js +3 -3
  345. package/dist/esm/tet-display.entry.js +1 -1
  346. package/dist/esm/tet-divider.entry.js +1 -1
  347. package/dist/esm/tet-dynamic-card.entry.js +1 -1
  348. package/dist/esm/tet-expandable-input.entry.js +2 -2
  349. package/dist/esm/tet-expansion-panel.entry.js +1 -1
  350. package/dist/esm/tet-feedback-form.entry.js +3 -3
  351. package/dist/esm/tet-filter.entry.js +1 -1
  352. package/dist/esm/tet-floating-block.entry.js +1 -1
  353. package/dist/esm/tet-font-weight.entry.js +1 -1
  354. package/dist/esm/tet-fonts.entry.js +1 -1
  355. package/dist/esm/tet-grid.entry.js +1 -1
  356. package/dist/esm/tet-icon.entry.js +2 -2
  357. package/dist/esm/tet-inline-message.entry.js +1 -1
  358. package/dist/esm/tet-input.entry.js +3 -3
  359. package/dist/esm/tet-label.entry.js +3 -3
  360. package/dist/esm/tet-layout.entry.js +1 -1
  361. package/dist/esm/tet-link-card-list.entry.js +1 -1
  362. package/dist/esm/tet-link.entry.js +1 -1
  363. package/dist/esm/tet-loader.entry.js +1 -1
  364. package/dist/esm/tet-macd-view.entry.js +6 -6
  365. package/dist/esm/tet-menu-mobile.entry.js +7 -5
  366. package/dist/esm/tet-menu.entry.js +397 -92
  367. package/dist/esm/tet-mini-compare-card.entry.js +1 -1
  368. package/dist/esm/tet-multi-step-dialog.entry.js +3 -3
  369. package/dist/esm/tet-navigation-mobile.entry.js +2 -2
  370. package/dist/esm/tet-news-card-list.entry.js +1 -1
  371. package/dist/esm/tet-notification.entry.js +1 -1
  372. package/dist/esm/tet-number-input.entry.js +1 -1
  373. package/dist/esm/tet-placeholder.entry.js +1 -1
  374. package/dist/esm/tet-position.entry.js +1 -1
  375. package/dist/esm/tet-price-view.entry.js +1 -1
  376. package/dist/esm/tet-radio.entry.js +13 -11
  377. package/dist/esm/tet-range-slider.entry.js +1 -1
  378. package/dist/esm/tet-referral.entry.js +5 -5
  379. package/dist/esm/tet-round-stepper.entry.js +1 -1
  380. package/dist/esm/tet-snicker-card-badge.entry.js +1 -1
  381. package/dist/esm/tet-snicker-card-group.entry.js +1 -1
  382. package/dist/esm/tet-snicker-card.entry.js +3 -3
  383. package/dist/esm/tet-spacing.entry.js +1 -1
  384. package/dist/esm/tet-spinner.entry.js +1 -1
  385. package/dist/esm/tet-stepper-input.entry.js +3 -3
  386. package/dist/esm/tet-stepper-v2.entry.js +1 -1
  387. package/dist/esm/tet-stepper-v3.entry.js +1 -1
  388. package/dist/esm/tet-stepper.entry.js +1 -1
  389. package/dist/esm/tet-support-search.entry.js +1 -1
  390. package/dist/esm/tet-switch.entry.js +2 -2
  391. package/dist/esm/tet-tab-header.entry.js +1 -1
  392. package/dist/esm/tet-table.entry.js +1 -1
  393. package/dist/esm/tet-tag_2.entry.js +3 -3
  394. package/dist/esm/tet-text-list.entry.js +2 -2
  395. package/dist/esm/tet-text.entry.js +1 -1
  396. package/dist/esm/tet-textarea.entry.js +1 -1
  397. package/dist/esm/tet-thank-you-view-v2.entry.js +3 -3
  398. package/dist/esm/tet-thank-you-view-v3.entry.js +3 -3
  399. package/dist/esm/tet-thank-you-view.entry.js +1 -1
  400. package/dist/esm/tet-tooltip.entry.js +376 -0
  401. package/dist/esm/tet-tv-gift-block.entry.js +1 -1
  402. package/dist/esm/tet-tv-gift-list.entry.js +1 -1
  403. package/dist/esm/{theme-wrapper-72d0b9da.js → theme-wrapper-37dd9692.js} +2 -2
  404. package/dist/esm/{translations-4712c45f.js → translations-9a0d9386.js} +1 -1
  405. package/dist/tet-components/{p-f6916bfc.entry.js → p-01a44fa7.entry.js} +1 -1
  406. package/dist/tet-components/{p-e6aab016.entry.js → p-01e5830a.entry.js} +1 -1
  407. package/dist/tet-components/{p-0c6b6730.js → p-0255120e.js} +1 -1
  408. package/dist/tet-components/{p-3324b31a.entry.js → p-038230dc.entry.js} +1 -1
  409. package/dist/tet-components/{p-b44083d7.entry.js → p-08be0a0c.entry.js} +1 -1
  410. package/dist/tet-components/{p-e290c65d.entry.js → p-096705a4.entry.js} +1 -1
  411. package/dist/tet-components/{p-ff291490.entry.js → p-0993a390.entry.js} +1 -1
  412. package/dist/tet-components/p-0e2df2d9.entry.js +1 -0
  413. package/dist/tet-components/p-102119d0.entry.js +1 -0
  414. package/dist/tet-components/{p-4c6a379b.entry.js → p-1537fc09.entry.js} +1 -1
  415. package/dist/tet-components/{p-46b3fc7f.entry.js → p-18ef5232.entry.js} +1 -1
  416. package/dist/tet-components/{p-7544dfd7.js → p-19c6a28c.js} +1 -1
  417. package/dist/tet-components/{p-724189c2.entry.js → p-1ad37ab3.entry.js} +1 -1
  418. package/dist/tet-components/{p-b01405f8.entry.js → p-1be60596.entry.js} +1 -1
  419. package/dist/tet-components/{p-ba8c6a1c.entry.js → p-1ca03991.entry.js} +1 -1
  420. package/dist/tet-components/{p-697d23d7.entry.js → p-1e00c707.entry.js} +1 -1
  421. package/dist/tet-components/{p-1fd2adaf.js → p-1e9db0cc.js} +1 -1
  422. package/dist/tet-components/{p-d8518d4b.js → p-21acfb7d.js} +1 -1
  423. package/dist/tet-components/{p-003e17a0.entry.js → p-23ba99b6.entry.js} +1 -1
  424. package/dist/tet-components/{p-38be49a6.entry.js → p-249d52da.entry.js} +1 -1
  425. package/dist/tet-components/{p-25e48d9f.entry.js → p-25fa66d3.entry.js} +1 -1
  426. package/dist/tet-components/{p-e13c62c8.entry.js → p-2725e612.entry.js} +1 -1
  427. package/dist/tet-components/{p-25bb7d4f.entry.js → p-27ef835b.entry.js} +1 -1
  428. package/dist/tet-components/{p-c711cd66.entry.js → p-2c577b6b.entry.js} +1 -1
  429. package/dist/tet-components/{p-e93ab3e8.entry.js → p-35250549.entry.js} +1 -1
  430. package/dist/tet-components/p-3649ee82.entry.js +1 -0
  431. package/dist/tet-components/{p-689e9d36.entry.js → p-3e4a1fea.entry.js} +1 -1
  432. package/dist/tet-components/{p-2c92d701.entry.js → p-403b7e52.entry.js} +1 -1
  433. package/dist/tet-components/{p-be3cb49b.entry.js → p-42b40e30.entry.js} +1 -1
  434. package/dist/tet-components/{p-cde8057a.entry.js → p-48d13280.entry.js} +1 -1
  435. package/dist/tet-components/{p-4b84438a.entry.js → p-4ef61eca.entry.js} +1 -1
  436. package/dist/tet-components/{p-1ff1f044.entry.js → p-51b6c13e.entry.js} +1 -1
  437. package/dist/tet-components/{p-b5315830.entry.js → p-5974d9e0.entry.js} +1 -1
  438. package/dist/tet-components/{p-0ebbf5ef.js → p-59ffdcd3.js} +1 -1
  439. package/dist/tet-components/{p-6be0549b.entry.js → p-5afa5243.entry.js} +1 -1
  440. package/dist/tet-components/{p-6693715e.entry.js → p-5c469b6d.entry.js} +1 -1
  441. package/dist/tet-components/{p-b10165d6.entry.js → p-60a85942.entry.js} +1 -1
  442. package/dist/tet-components/{p-7f18c74c.entry.js → p-674c34fe.entry.js} +1 -1
  443. package/dist/tet-components/{p-805fb580.entry.js → p-6b01ed30.entry.js} +1 -1
  444. package/dist/tet-components/{p-93820289.entry.js → p-6c01686a.entry.js} +1 -1
  445. package/dist/tet-components/{p-97cff839.entry.js → p-6c1fe6e2.entry.js} +1 -1
  446. package/dist/tet-components/{p-480ca12a.entry.js → p-6ce50129.entry.js} +1 -1
  447. package/dist/tet-components/{p-5c821eef.entry.js → p-6f456e0a.entry.js} +1 -1
  448. package/dist/tet-components/{p-64e277c1.entry.js → p-725a4439.entry.js} +1 -1
  449. package/dist/tet-components/{p-52949a88.entry.js → p-76662132.entry.js} +1 -1
  450. package/dist/tet-components/{p-d1035694.entry.js → p-779c00c2.entry.js} +1 -1
  451. package/dist/tet-components/p-7c868b40.js +2 -0
  452. package/dist/tet-components/p-81456c37.js +1 -0
  453. package/dist/tet-components/{p-778c46a6.js → p-81586378.js} +1 -1
  454. package/dist/tet-components/{p-d5b36540.entry.js → p-8318b6ce.entry.js} +1 -1
  455. package/dist/tet-components/{p-84322a3d.entry.js → p-85dbfd0e.entry.js} +1 -1
  456. package/dist/tet-components/{p-fa259a3d.entry.js → p-86732da3.entry.js} +1 -1
  457. package/dist/tet-components/{p-b0c62997.entry.js → p-8763c126.entry.js} +1 -1
  458. package/dist/tet-components/{p-949d0eaf.entry.js → p-8d03a36d.entry.js} +1 -1
  459. package/dist/tet-components/{p-9a75ed39.entry.js → p-93a7b0e4.entry.js} +1 -1
  460. package/dist/tet-components/{p-83e4ae9f.entry.js → p-9595c23f.entry.js} +1 -1
  461. package/dist/tet-components/{p-8fa0be45.entry.js → p-95a1dd7c.entry.js} +1 -1
  462. package/dist/tet-components/p-962240a1.entry.js +1 -0
  463. package/dist/tet-components/{p-ddce536f.entry.js → p-96df0d8f.entry.js} +1 -1
  464. package/dist/tet-components/{p-6b088283.entry.js → p-9d45496b.entry.js} +1 -1
  465. package/dist/tet-components/{p-bd9f9dea.entry.js → p-9e507839.entry.js} +1 -1
  466. package/dist/tet-components/{p-f81b3bb0.js → p-a0b08ff1.js} +1 -1
  467. package/dist/tet-components/{p-c9f21fde.entry.js → p-a193f723.entry.js} +1 -1
  468. package/dist/tet-components/{p-1393ed60.entry.js → p-a2ab4213.entry.js} +1 -1
  469. package/dist/tet-components/{p-122f3d3c.entry.js → p-a31f3a9a.entry.js} +1 -1
  470. package/dist/tet-components/{p-cf3456e2.entry.js → p-ada4d25e.entry.js} +1 -1
  471. package/dist/tet-components/{p-401e736e.entry.js → p-b2e718fd.entry.js} +1 -1
  472. package/dist/tet-components/{p-331e7bf2.entry.js → p-b7af088e.entry.js} +1 -1
  473. package/dist/tet-components/{p-cd86d0b1.entry.js → p-b8dc6b8f.entry.js} +1 -1
  474. package/dist/tet-components/{p-fc88ce77.entry.js → p-b9005e25.entry.js} +1 -1
  475. package/dist/tet-components/{p-f9c69d39.entry.js → p-bb1691e9.entry.js} +1 -1
  476. package/dist/tet-components/{p-a0baf31a.entry.js → p-bc83880b.entry.js} +1 -1
  477. package/dist/tet-components/{p-6babde37.entry.js → p-bcac4284.entry.js} +1 -1
  478. package/dist/tet-components/{p-46f6a051.entry.js → p-bcbb0768.entry.js} +1 -1
  479. package/dist/tet-components/{p-2b5b2c71.entry.js → p-be5be172.entry.js} +1 -1
  480. package/dist/tet-components/{p-5b5001cf.entry.js → p-bf65a1c5.entry.js} +1 -1
  481. package/dist/tet-components/{p-f93ab9f3.entry.js → p-bfaa6230.entry.js} +1 -1
  482. package/dist/tet-components/{p-900bd4e1.entry.js → p-c0f90a8e.entry.js} +1 -1
  483. package/dist/tet-components/{p-876009b7.entry.js → p-c2aa35fe.entry.js} +1 -1
  484. package/dist/tet-components/{p-d778c1fe.entry.js → p-c51611c6.entry.js} +1 -1
  485. package/dist/tet-components/{p-85f3f726.entry.js → p-c65639c0.entry.js} +1 -1
  486. package/dist/tet-components/{p-39ae25f5.entry.js → p-c735bfbc.entry.js} +1 -1
  487. package/dist/tet-components/{p-7fc933fe.entry.js → p-c855d22d.entry.js} +1 -1
  488. package/dist/tet-components/{p-9c837569.entry.js → p-c95500c7.entry.js} +1 -1
  489. package/dist/tet-components/{p-1080e977.entry.js → p-ca61e250.entry.js} +1 -1
  490. package/dist/tet-components/{p-b31168fc.entry.js → p-cb311987.entry.js} +1 -1
  491. package/dist/tet-components/{p-c4de9e32.entry.js → p-ccbe2f2a.entry.js} +1 -1
  492. package/dist/tet-components/{p-e17d0862.entry.js → p-cd87b2ca.entry.js} +1 -1
  493. package/dist/tet-components/p-ce264566.entry.js +1 -0
  494. package/dist/tet-components/{p-d06f8b4e.entry.js → p-d2127f71.entry.js} +1 -1
  495. package/dist/tet-components/{p-69c58fc4.entry.js → p-d83369f0.entry.js} +1 -1
  496. package/dist/tet-components/{p-f58bb61e.entry.js → p-dd8ba61f.entry.js} +1 -1
  497. package/dist/tet-components/p-e15c11c7.entry.js +1 -0
  498. package/dist/tet-components/{p-ed07c65a.entry.js → p-e39dc6d0.entry.js} +1 -1
  499. package/dist/tet-components/{p-7e7068af.entry.js → p-e3a61004.entry.js} +1 -1
  500. package/dist/tet-components/{p-75bbc14a.entry.js → p-e3ccb120.entry.js} +1 -1
  501. package/dist/tet-components/{p-255cd889.entry.js → p-ea7f687c.entry.js} +1 -1
  502. package/dist/tet-components/{p-78d6f52c.entry.js → p-ee6331bf.entry.js} +1 -1
  503. package/dist/tet-components/{p-edd42275.entry.js → p-f05d8d8d.entry.js} +1 -1
  504. package/dist/tet-components/{p-5fb62a1b.entry.js → p-f272a0ce.entry.js} +1 -1
  505. package/dist/tet-components/{p-87221449.entry.js → p-f3cd9c56.entry.js} +1 -1
  506. package/dist/tet-components/{p-a8051a99.js → p-f9e5405c.js} +1 -1
  507. package/dist/tet-components/{p-8bfd498e.entry.js → p-fa69d1cf.entry.js} +1 -1
  508. package/dist/tet-components/{p-ccfa9f31.entry.js → p-fc8d6963.entry.js} +1 -1
  509. package/dist/tet-components/{p-b98f7254.entry.js → p-fd5460fc.entry.js} +1 -1
  510. package/dist/tet-components/{p-2fb8ea65.entry.js → p-fda6a584.entry.js} +1 -1
  511. package/dist/tet-components/tet-components.css +2 -2
  512. package/dist/tet-components/tet-components.esm.js +1 -1
  513. package/dist/types/components/advanced/cards/tet-compare-card-v3/tet-compare-card-v3.d.ts +169 -0
  514. package/dist/types/components/simple/menu/tet-menu/tet-menu.d.ts +111 -1
  515. package/dist/types/components/simple/menu/tet-menu-mobile/tet-menu-mobile.d.ts +4 -0
  516. package/dist/types/components.d.ts +186 -3
  517. package/dist/types/services/api/services/catalog/product-comparison.d.ts +3 -3
  518. package/package.json +1 -1
  519. package/dist/tet-components/p-1fbb7d96.entry.js +0 -1
  520. package/dist/tet-components/p-83f43fdd.js +0 -2
  521. package/dist/tet-components/p-b0688983.entry.js +0 -1
  522. package/dist/tet-components/p-cac7dbf9.entry.js +0 -1
  523. package/dist/tet-components/p-d091fa60.entry.js +0 -1
  524. package/dist/tet-components/p-f81d95ae.js +0 -1
@@ -8,47 +8,312 @@ export class TetMenu {
8
8
  this.active = false;
9
9
  this.clickable = false;
10
10
  this.firstLevelTitle = '';
11
- this.firstLevelId = null;
11
+ this.firstLevelId = undefined;
12
12
  this.firstLevelLink = '';
13
13
  this.firstLevelIcon = '';
14
14
  this.menuItemTheme = '';
15
15
  this.showMenuItemAnimation = true;
16
16
  this.subLevels = [];
17
17
  this.darkMode = false;
18
+ this.parentSelector = '';
19
+ this.isMegaMenuLayout = false;
18
20
  this.isSubmenuLeft = false;
21
+ this.megaActiveSubLevelIndex = -1;
22
+ this.isMegaMenuOpen = false;
23
+ this.isMegaMenuEscapeClosed = false;
19
24
  }
25
+ /** The host element. */
26
+ el;
27
+ /** Stores 3rd level hover handlers to avoid duplicate listeners. */
28
+ thirdLevelMouseEnterHandlers = new WeakMap();
29
+ /** Parent element used for mega-menu close-on-parent-leave binding. */
30
+ megaParentElement = null;
20
31
  /**
21
32
  * Listener for windows resize events
22
33
  */
23
34
  onWindowResize() {
35
+ this.syncLayout();
36
+ }
37
+ /**
38
+ * Handles host mouse leave to reset mega-menu leave-related state.
39
+ */
40
+ onHostMouseLeave() {
41
+ this.handleMenuMouseLeave();
42
+ }
43
+ /**
44
+ * Handles host focus-in to reopen mega-menu after Escape dismissal when needed.
45
+ */
46
+ onHostFocusIn() {
47
+ this.handleMenuFocusIn();
48
+ }
49
+ /**
50
+ * Recalculates interactive layout values.
51
+ */
52
+ syncLayout = () => {
53
+ if (!this.isMegaMenuEnabled()) {
54
+ this.setMegaParentElement(null);
55
+ }
24
56
  this.setupThirdLevelEvent();
57
+ this.updateDropdownLayout();
58
+ };
59
+ /**
60
+ * Determines whether mega-menu logic should be active.
61
+ */
62
+ isMegaMenuEnabled() {
63
+ return this.isMegaMenuLayout && this.type === 'main' && this.subLevels.length > 0;
25
64
  }
65
+ /**
66
+ * Binds/updates parent mouseleave listener for mega-menu close behavior.
67
+ */
68
+ setMegaParentElement(parentElement) {
69
+ if (this.megaParentElement === parentElement) {
70
+ return;
71
+ }
72
+ if (this.megaParentElement) {
73
+ this.megaParentElement.removeEventListener('mouseleave', this.handleMegaParentMouseLeave);
74
+ }
75
+ this.megaParentElement = parentElement;
76
+ this.megaParentElement?.addEventListener('mouseleave', this.handleMegaParentMouseLeave);
77
+ }
78
+ /**
79
+ * Closes mega-menu and clears active 2nd-level state.
80
+ */
81
+ closeMegaMenu = () => {
82
+ if (!this.isMegaMenuEnabled()) {
83
+ return;
84
+ }
85
+ this.isMegaMenuOpen = false;
86
+ this.clearMegaActiveSubLevel();
87
+ };
88
+ /**
89
+ * Clears focus inside shadow root so :focus-within does not immediately reopen mega-menu.
90
+ */
91
+ blurFocusedMenuItem() {
92
+ const focusedMenuItem = this.el.shadowRoot?.activeElement;
93
+ focusedMenuItem?.blur();
94
+ }
95
+ /**
96
+ * Handles parent mouseleave for mega-menu close behavior.
97
+ */
98
+ handleMegaParentMouseLeave = () => {
99
+ this.closeMegaMenu();
100
+ };
101
+ /**
102
+ * Opens mega-menu and notifies sibling mega-menu instances to close.
103
+ */
104
+ openMegaMenu() {
105
+ if (!this.isMegaMenuEnabled()) {
106
+ return;
107
+ }
108
+ this.isMegaMenuEscapeClosed = false;
109
+ this.isMegaMenuOpen = true;
110
+ globalThis.dispatchEvent(new CustomEvent('tet-menu-mega-open', { detail: this.el }));
111
+ }
112
+ /**
113
+ * Handles first-level pointer/focus entry:
114
+ * opens mega menu when available or notifies mega siblings to close.
115
+ */
116
+ handleFirstLevelInteraction = () => {
117
+ if (this.isMegaMenuEnabled()) {
118
+ this.syncLayout();
119
+ this.openMegaMenu();
120
+ return;
121
+ }
122
+ globalThis.dispatchEvent(new CustomEvent('tet-menu-mega-open', { detail: this.el }));
123
+ };
124
+ /**
125
+ * Resets Escape-dismissed state once pointer fully leaves this menu trigger area.
126
+ */
127
+ handleMenuMouseLeave = () => {
128
+ if (!this.isMegaMenuEnabled()) {
129
+ return;
130
+ }
131
+ this.clearMegaActiveSubLevel();
132
+ this.isMegaMenuEscapeClosed = false;
133
+ };
134
+ /**
135
+ * Reopens mega menu when focus re-enters menu content after an Escape dismissal.
136
+ */
137
+ handleMenuFocusIn = () => {
138
+ if (!this.isMegaMenuEnabled() || !this.isMegaMenuEscapeClosed) {
139
+ return;
140
+ }
141
+ this.openMegaMenu();
142
+ };
143
+ /**
144
+ * Handles Escape to close mega-menu for both hover-open and keyboard-focus-open states.
145
+ */
146
+ onWindowKeyDown(event) {
147
+ if (!this.isMegaMenuEnabled() || event.key !== 'Escape') {
148
+ return;
149
+ }
150
+ const eventPath = typeof event.composedPath === 'function' ? event.composedPath() : [];
151
+ const isEventFromCurrentMenu = eventPath.includes(this.el);
152
+ if (!this.isMegaMenuOpen && !isEventFromCurrentMenu) {
153
+ return;
154
+ }
155
+ this.isMegaMenuEscapeClosed = true;
156
+ this.closeMegaMenu();
157
+ this.blurFocusedMenuItem();
158
+ }
159
+ /**
160
+ * Closes current mega-menu when another menu instance announces open state.
161
+ */
162
+ onExternalMegaMenuOpen(event) {
163
+ if (!this.isMegaMenuEnabled() || event.detail === this.el) {
164
+ return;
165
+ }
166
+ this.isMegaMenuEscapeClosed = true;
167
+ this.closeMegaMenu();
168
+ }
169
+ /**
170
+ * Sets active second-level item in mega-menu mode.
171
+ */
172
+ setMegaActiveSubLevel(index, hasSubMenuItems) {
173
+ if (!this.isMegaMenuEnabled()) {
174
+ return;
175
+ }
176
+ this.megaActiveSubLevelIndex = hasSubMenuItems ? index : -1;
177
+ }
178
+ /**
179
+ * Mirrors non-mega keyboard behavior:
180
+ * tabbing from a 2nd-level item with submenu should enter 3rd-level links.
181
+ */
182
+ handleMegaSecondLevelKeyDown(event, index, hasSubMenuItems) {
183
+ if (!this.isMegaMenuEnabled() || !hasSubMenuItems || event.key !== 'Tab' || event.shiftKey) {
184
+ return;
185
+ }
186
+ event.preventDefault();
187
+ this.setMegaActiveSubLevel(index, hasSubMenuItems);
188
+ globalThis.requestAnimationFrame(() => {
189
+ const firstThirdLevelLink = this.el.shadowRoot?.querySelector('.menu__dropdown__mega-third-list a');
190
+ firstThirdLevelLink?.focus();
191
+ });
192
+ }
193
+ /**
194
+ * Handles Tab navigation within mega-menu 3rd-level links.
195
+ */
196
+ handleMegaThirdLevelLinkKeyDown = (event) => {
197
+ if (!this.isMegaMenuEnabled() || event.key !== 'Tab') {
198
+ return;
199
+ }
200
+ const megaThirdLevelLinks = Array.from(this.el.shadowRoot?.querySelectorAll('.menu__dropdown__mega-third-list a') ?? []);
201
+ if (megaThirdLevelLinks.length === 0) {
202
+ return;
203
+ }
204
+ const currentAnchor = event.currentTarget;
205
+ const currentIndex = megaThirdLevelLinks.indexOf(currentAnchor);
206
+ if (currentIndex < 0) {
207
+ return;
208
+ }
209
+ if (event.shiftKey) {
210
+ if (currentIndex > 0) {
211
+ event.preventDefault();
212
+ megaThirdLevelLinks[currentIndex - 1]?.focus();
213
+ return;
214
+ }
215
+ const activeSecondLevelIndex = this.megaActiveSubLevelIndex;
216
+ if (activeSecondLevelIndex < 0) {
217
+ return;
218
+ }
219
+ event.preventDefault();
220
+ const secondLevelLinks = this.el.shadowRoot?.querySelectorAll('.menu__dropdown__list--mega > li > a');
221
+ secondLevelLinks?.[activeSecondLevelIndex]?.focus();
222
+ return;
223
+ }
224
+ if (currentIndex < megaThirdLevelLinks.length - 1) {
225
+ event.preventDefault();
226
+ megaThirdLevelLinks[currentIndex + 1]?.focus();
227
+ return;
228
+ }
229
+ const activeSecondLevelIndex = this.megaActiveSubLevelIndex;
230
+ if (activeSecondLevelIndex < 0) {
231
+ return;
232
+ }
233
+ const secondLevelLinks = this.el.shadowRoot?.querySelectorAll('.menu__dropdown__list--mega > li > a');
234
+ const nextSecondLevelLink = secondLevelLinks?.[activeSecondLevelIndex + 1];
235
+ if (nextSecondLevelLink) {
236
+ event.preventDefault();
237
+ nextSecondLevelLink.focus();
238
+ }
239
+ };
240
+ /**
241
+ * Clears active second-level item in mega-menu mode.
242
+ */
243
+ clearMegaActiveSubLevel = () => {
244
+ if (!this.isMegaMenuEnabled()) {
245
+ return;
246
+ }
247
+ this.megaActiveSubLevelIndex = -1;
248
+ };
26
249
  /**
27
250
  * Renders the first menu level.
28
251
  */
29
252
  renderFirstLevel() {
30
- const { firstLevelTitle, firstLevelLink, firstLevelId, firstLevelIcon, menuItemTheme, showMenuItemAnimation, active, clickable, type } = this;
253
+ const { firstLevelTitle, firstLevelLink, firstLevelId, firstLevelIcon, menuItemTheme, showMenuItemAnimation, active, subLevels, clickable, type } = this;
31
254
  const link = clickable && firstLevelLink.length !== 0 ? firstLevelLink : 'javascript:void(0)';
32
255
  const icon = firstLevelIcon ? this.renderIcon({ name: firstLevelIcon, invertIcon: true }) : '';
256
+ const hasActiveDescendant = type === 'main' && this.hasActiveSubLevels(subLevels);
257
+ const isFirstLevelActive = (active || hasActiveDescendant) && type !== 'login';
33
258
  let menuItemThemeClass = '', showAnimation = false;
34
259
  if (type === 'main') {
35
260
  menuItemThemeClass = menuItemTheme ? `menu__first-level--theme-${menuItemTheme}` : '';
36
261
  showAnimation = showMenuItemAnimation;
37
262
  }
38
- return (h("a", { id: firstLevelId, href: link, class: {
263
+ return (h("a", { id: firstLevelId, href: link, part: "first-level", onMouseEnter: this.handleFirstLevelInteraction, onFocus: this.handleFirstLevelInteraction, class: {
39
264
  'menu__first-level': true,
40
- 'menu--active': active && type !== 'login',
265
+ 'menu--active': isFirstLevelActive,
41
266
  'menu__first-level--themed': menuItemThemeClass.length > 0,
42
267
  ...(menuItemThemeClass && { [menuItemThemeClass]: true }),
43
268
  ...(showAnimation && { 'show-animation': true })
44
269
  } }, icon, firstLevelTitle, this.renderChevron()));
45
270
  }
271
+ /**
272
+ * Checks whether any nested sub-level item is marked as active.
273
+ */
274
+ hasActiveSubLevels(items) {
275
+ return items.some((item) => !!item.active || this.hasActiveSubLevels(item.subLevels ?? []));
276
+ }
46
277
  /**
47
278
  * Emit event when the component has been rendered.
48
279
  * Calculates available space on screen after first full render to correctly render 3rd level navigation.
49
280
  */
50
281
  componentDidRender() {
51
- this.setupThirdLevelEvent();
282
+ this.syncLayout();
283
+ }
284
+ disconnectedCallback() {
285
+ this.setMegaParentElement(null);
286
+ }
287
+ /**
288
+ * Syncs dropdown size and position with parent container.
289
+ */
290
+ updateDropdownLayout() {
291
+ if (!this.isMegaMenuEnabled()) {
292
+ return;
293
+ }
294
+ const dropdown = this.el.shadowRoot?.querySelector('.menu__dropdown');
295
+ if (!dropdown) {
296
+ return;
297
+ }
298
+ const parentSelector = this.parentSelector?.trim();
299
+ const parentElement = parentSelector
300
+ ? this.el.closest(parentSelector)
301
+ : this.el.parentElement;
302
+ if (!parentElement) {
303
+ this.setMegaParentElement(null);
304
+ dropdown.style.removeProperty('top');
305
+ dropdown.style.removeProperty('--menu-dropdown-hover-bridge-height');
306
+ return;
307
+ }
308
+ this.setMegaParentElement(parentElement);
309
+ const parentRect = parentElement.getBoundingClientRect();
310
+ if (parentRect.width <= 0) {
311
+ return;
312
+ }
313
+ const menuRect = this.el.getBoundingClientRect();
314
+ const hoverBridgeHeight = Math.max(0, parentRect.bottom - menuRect.bottom);
315
+ dropdown.style.top = `${parentRect.bottom}px`;
316
+ dropdown.style.setProperty('--menu-dropdown-hover-bridge-height', `${hoverBridgeHeight}px`);
52
317
  }
53
318
  /**
54
319
  * Renders the chevron icon if the menu has sub-levels.
@@ -70,7 +335,7 @@ export class TetMenu {
70
335
  if (!subLevel.active || type !== 'language') {
71
336
  return '';
72
337
  }
73
- return (h("tet-icon", { name: "check", class: "menu__dropdown__list__checkmark", theme: this.darkMode ? 'dark' : 'light' }));
338
+ return (h("tet-icon", { name: "tc-check", class: "menu__dropdown__list__checkmark", theme: this.darkMode ? 'dark' : 'light' }));
74
339
  }
75
340
  /**
76
341
  * Renders the dropdown of the menu.
@@ -80,51 +345,71 @@ export class TetMenu {
80
345
  if (subLevels.length < 1) {
81
346
  return '';
82
347
  }
83
- const renderedSubLevels = subLevels.map((subLevel) => this.renderSubItem(subLevel));
84
- return (h("div", { class: "menu__dropdown" }, h("ul", { class: "menu__dropdown__list" }, renderedSubLevels)));
348
+ const isMegaMenuEnabled = this.isMegaMenuEnabled();
349
+ const megaIndex = isMegaMenuEnabled ? this.megaActiveSubLevelIndex : -1;
350
+ const activeMegaSubLevels = megaIndex >= 0 ? (subLevels[megaIndex]?.subLevels ?? []) : [];
351
+ const renderedSubLevels = subLevels.map((subLevel, index) => this.renderSubItem(subLevel, index, isMegaMenuEnabled));
352
+ const list = (h("ul", { class: { 'menu__dropdown__list': true, 'menu__dropdown__list--mega': isMegaMenuEnabled } }, renderedSubLevels));
353
+ return (h("div", { class: { 'menu__dropdown': true, 'menu__dropdown--mega': isMegaMenuEnabled } }, isMegaMenuEnabled
354
+ ? (h("div", { class: "tet-grid" }, h("div", { class: "menu__dropdown__wrapper tet-grid__cell tet-grid__cell--span-all" }, h("div", { class: "menu__dropdown__mega-lists" }, list, h("div", { class: "menu__dropdown__mega-third" }, activeMegaSubLevels.length > 0 && (h("ul", { class: "menu__dropdown__mega-third-list" }, activeMegaSubLevels.map((_subLevel) => this.renderSublevelItem(_subLevel)))))), h("div", { class: "menu__dropdown__mega-banner" }, h("slot", { name: "banner" })))))
355
+ : list));
85
356
  }
86
357
  /**
87
358
  * Renders the sub-levels of the menu.
88
359
  * @param subLevel
89
360
  */
90
- renderSubItem(subLevel) {
361
+ renderSubItem(subLevel, index, isMegaMenuEnabled) {
91
362
  const subMenuItems = subLevel.subLevels?.map((_subLevel) => {
92
363
  return this.renderSublevelItem(_subLevel);
93
364
  });
365
+ const hasSubMenuItems = !!subMenuItems?.length;
366
+ const hasActiveDescendant = this.hasActiveSubLevels(subLevel.subLevels ?? []);
367
+ const subMenuChevronName = 'chevron-right';
94
368
  let iconLeft = '';
95
369
  let iconRight = '';
96
- if (subLevel.iconLeft) {
97
- iconLeft = this.renderIcon({
98
- name: subLevel.iconLeft,
99
- right: false,
100
- id: subLevel.id,
101
- size: subLevel.iconSize,
102
- useDefaultColor: subLevel.useDefaultColor
103
- });
104
- }
105
- else if (subLevel.imageSrc) {
106
- iconLeft = this.renderImage(subLevel);
107
- }
108
- if (subLevel.iconRight) {
109
- iconRight = this.renderIcon({
110
- name: subLevel.iconRight,
111
- right: true,
112
- id: subLevel.id,
113
- size: subLevel.iconSize
114
- });
115
- }
116
- const subTitle = subLevel.subTitle && subLevel.subTitle.length !== 0 ? (h("div", { class: "menu__dropdown__list__sub-title" }, subLevel.subTitle)) : ('');
117
- const itemId = subLevel.id?.toString() || null;
118
- return (h("li", null, h("a", { id: itemId, href: subLevel.link, class: {
119
- 'menu--active': subLevel.active,
120
- 'menu--highlighted': subLevel.highlighted,
121
- 'line-top': subLevel.lineTop,
122
- 'text-color-secondary': subLevel.textColorSecondary,
123
- 'translation-none': subLevel.translationNone,
124
- 'menu--submenu': !!subMenuItems?.length
370
+ if (!this.isMegaMenuLayout) {
371
+ if (subLevel.iconLeft) {
372
+ iconLeft = this.renderIcon({
373
+ name: subLevel.iconLeft,
374
+ right: false,
375
+ id: subLevel.id,
376
+ size: subLevel.iconSize,
377
+ useDefaultColor: subLevel.useDefaultColor
378
+ });
379
+ }
380
+ else if (subLevel.imageSrc) {
381
+ iconLeft = this.renderImage(subLevel);
382
+ }
383
+ if (subLevel.iconRight) {
384
+ iconRight = this.renderIcon({
385
+ name: subLevel.iconRight,
386
+ right: true,
387
+ id: subLevel.id,
388
+ size: subLevel.iconSize
389
+ });
390
+ }
391
+ }
392
+ const subTitle = subLevel.subTitle && subLevel.subTitle.length !== 0 ? (h("div", { class: {
393
+ "menu__dropdown__list__sub-title": true,
394
+ "menu__dropdown__list__sub-title--mega": this.isMegaMenuLayout,
395
+ } }, subLevel.subTitle)) : ('');
396
+ const itemId = subLevel.id?.toString();
397
+ const subList = hasSubMenuItems && !isMegaMenuEnabled ? (h("div", { class: {
398
+ left: !isMegaMenuEnabled && this.isSubmenuLeft,
399
+ right: !isMegaMenuEnabled && !this.isSubmenuLeft,
400
+ menu__sublist: true
401
+ } }, h("ul", { class: { content: true } }, subMenuItems))) : null;
402
+ return (h("li", null, h("a", { id: itemId, href: subLevel.link, onMouseEnter: () => this.setMegaActiveSubLevel(index, hasSubMenuItems), onFocus: () => this.setMegaActiveSubLevel(index, hasSubMenuItems), onKeyDown: (event) => this.handleMegaSecondLevelKeyDown(event, index, hasSubMenuItems), class: {
403
+ 'menu--active': !!subLevel.active || hasActiveDescendant,
404
+ 'menu--mega-current': isMegaMenuEnabled && index === this.megaActiveSubLevelIndex,
405
+ 'menu--highlighted': !!subLevel.highlighted,
406
+ 'line-top': !!subLevel.lineTop,
407
+ 'text-color-secondary': !!subLevel.textColorSecondary,
408
+ 'translation-none': !!subLevel.translationNone,
409
+ 'menu--submenu': hasSubMenuItems
125
410
  }, tabIndex: 0 }, iconLeft, h("div", null, !!subLevel.badgeText
126
411
  ? h("span", { class: "menu__badge" }, subLevel.badgeText)
127
- : null, h("div", null, subLevel.title), subTitle, this.renderCheckmark(subLevel)), iconRight, !!subMenuItems && (h("tet-icon", { class: "menu__chevron", name: "chevron-right", theme: this.darkMode ? 'dark' : 'light' })), !!subMenuItems && (h("div", { class: { left: this.isSubmenuLeft, right: !this.isSubmenuLeft, menu__sublist: true } }, h("ul", { class: { content: true } }, subMenuItems))))));
412
+ : null, h("div", null, subLevel.title), subTitle, this.renderCheckmark(subLevel)), iconRight, hasSubMenuItems && (h("tet-icon", { class: "menu__chevron", name: subMenuChevronName, theme: this.darkMode ? 'dark' : 'light' }))), subList));
128
413
  }
129
414
  /**
130
415
  * Renders the sub-levels of the menu.
@@ -133,31 +418,33 @@ export class TetMenu {
133
418
  renderSublevelItem(subLevel) {
134
419
  let iconLeft = '';
135
420
  let iconRight = '';
136
- if (subLevel.iconLeft) {
137
- iconLeft = this.renderIcon({
138
- name: subLevel.iconLeft,
139
- right: false,
140
- id: subLevel.id,
141
- size: subLevel.iconSize,
142
- useDefaultColor: subLevel.useDefaultColor
143
- });
144
- }
145
- else if (subLevel.imageSrc) {
146
- iconLeft = this.renderImage(subLevel);
147
- }
148
- if (subLevel.iconRight) {
149
- iconRight = this.renderIcon({
150
- name: subLevel.iconRight,
151
- right: true,
152
- id: subLevel.id,
153
- size: subLevel.iconSize
154
- });
155
- }
156
- return (h("li", null, h("a", { id: subLevel.id, href: subLevel.link, class: {
157
- 'menu--active': subLevel.active,
158
- 'menu--highlighted': subLevel.highlighted,
159
- 'line-top': subLevel.lineTop,
160
- 'text-color-secondary': subLevel.textColorSecondary
421
+ if (!this.isMegaMenuLayout) {
422
+ if (subLevel.iconLeft) {
423
+ iconLeft = this.renderIcon({
424
+ name: subLevel.iconLeft,
425
+ right: false,
426
+ id: subLevel.id,
427
+ size: subLevel.iconSize,
428
+ useDefaultColor: subLevel.useDefaultColor
429
+ });
430
+ }
431
+ else if (subLevel.imageSrc) {
432
+ iconLeft = this.renderImage(subLevel);
433
+ }
434
+ if (subLevel.iconRight) {
435
+ iconRight = this.renderIcon({
436
+ name: subLevel.iconRight,
437
+ right: true,
438
+ id: subLevel.id,
439
+ size: subLevel.iconSize
440
+ });
441
+ }
442
+ }
443
+ return (h("li", null, h("a", { id: subLevel.id, href: subLevel.link, onKeyDown: this.handleMegaThirdLevelLinkKeyDown, class: {
444
+ 'menu--active': !!subLevel.active,
445
+ 'menu--highlighted': !!subLevel.highlighted,
446
+ 'line-top': !!subLevel.lineTop,
447
+ 'text-color-secondary': !!subLevel.textColorSecondary
161
448
  }, tabIndex: 0 }, iconLeft, h("div", null, h("div", null, h("span", null, subLevel.title), !!subLevel.badgeText
162
449
  ? h("span", { class: "menu__badge" }, subLevel.badgeText)
163
450
  : null), this.renderCheckmark(subLevel)), iconRight)));
@@ -182,41 +469,60 @@ export class TetMenu {
182
469
  return (h("div", { class: "menu__icon" }, h("img", { src: subLevel.imageSrc, alt: "" })));
183
470
  }
184
471
  setupThirdLevelEvent() {
185
- const tetMenus = document.querySelectorAll('tet-menu');
186
- tetMenus.forEach((tetMenu) => {
187
- const thirdLevelmenus = tetMenu.shadowRoot.querySelectorAll('.menu__sublist');
188
- if (thirdLevelmenus) {
189
- thirdLevelmenus.forEach((thirdLevelmenu) => {
190
- const parent = thirdLevelmenu.closest('a');
191
- parent.addEventListener('mouseenter', () => {
192
- const windowWidth = window.innerWidth;
193
- const windowHeight = window.innerHeight;
194
- const parentRect = parent.getBoundingClientRect();
195
- const thirdRectParent = thirdLevelmenu.offsetParent || null;
196
- const offsetRect = thirdRectParent ? thirdRectParent.getBoundingClientRect() : { top: 0 };
197
- const thirdLevelmenuWidth = thirdLevelmenu.offsetWidth;
198
- const thirdLevelmenuHeight = thirdLevelmenu.offsetHeight;
199
- // Desired top position in viewport coordinates
200
- const bottomPadding = 10;
201
- const desiredTopViewport = Math.max(10, Math.min(parentRect.top, windowHeight - thirdLevelmenuHeight - bottomPadding));
202
- const desiredTopOffset = desiredTopViewport - offsetRect.top;
203
- thirdLevelmenu.style.top = `${desiredTopOffset}px`;
204
- thirdLevelmenu.style.bottom = '';
205
- const parentRight = parentRect.right;
206
- this.isSubmenuLeft = windowWidth < parentRight + thirdLevelmenuWidth;
207
- });
208
- });
472
+ if (this.isMegaMenuEnabled()) {
473
+ return;
474
+ }
475
+ const thirdLevelmenus = this.el.shadowRoot?.querySelectorAll('.menu__sublist');
476
+ if (!thirdLevelmenus) {
477
+ return;
478
+ }
479
+ thirdLevelmenus.forEach((thirdLevelmenu) => {
480
+ const menuItem = thirdLevelmenu.closest('li');
481
+ if (!menuItem) {
482
+ return;
483
+ }
484
+ const parent = menuItem.querySelector('a');
485
+ if (!parent) {
486
+ return;
209
487
  }
488
+ const existingHandler = this.thirdLevelMouseEnterHandlers.get(parent);
489
+ if (existingHandler) {
490
+ parent.removeEventListener('mouseenter', existingHandler);
491
+ this.thirdLevelMouseEnterHandlers.delete(parent);
492
+ }
493
+ thirdLevelmenu.style.removeProperty('top');
494
+ thirdLevelmenu.style.removeProperty('bottom');
495
+ const onMouseEnter = () => {
496
+ const windowWidth = window.innerWidth;
497
+ const windowHeight = window.innerHeight;
498
+ const parentRect = parent.getBoundingClientRect();
499
+ const thirdRectParent = thirdLevelmenu.offsetParent || null;
500
+ const offsetRect = thirdRectParent ? thirdRectParent.getBoundingClientRect() : { top: 0 };
501
+ const thirdLevelmenuWidth = thirdLevelmenu.offsetWidth;
502
+ const thirdLevelmenuHeight = thirdLevelmenu.offsetHeight;
503
+ // Desired top position in viewport coordinates
504
+ const bottomPadding = 10;
505
+ const desiredTopViewport = Math.max(10, Math.min(parentRect.top, windowHeight - thirdLevelmenuHeight - bottomPadding));
506
+ const desiredTopOffset = desiredTopViewport - offsetRect.top;
507
+ thirdLevelmenu.style.top = `${desiredTopOffset}px`;
508
+ thirdLevelmenu.style.bottom = '';
509
+ const parentRight = parentRect.right;
510
+ this.isSubmenuLeft = windowWidth < parentRight + thirdLevelmenuWidth;
511
+ };
512
+ parent.addEventListener('mouseenter', onMouseEnter);
513
+ this.thirdLevelMouseEnterHandlers.set(parent, onMouseEnter);
210
514
  });
211
515
  }
212
516
  render() {
213
517
  const { type } = this;
214
- return (h(Host, { key: 'e2d8b43766609775d960b7aaa03d6feb75f1a659' }, h("div", { key: 'f9af384dd73f665ceec77c22a0947347066e082a', class: {
518
+ return (h(Host, { key: '981d8a58d272ace848d7a6c4c82e7916a4282991' }, h("div", { key: '3eb7afce24ff6373a43bc4405fbba7cb6a421e85', class: {
215
519
  menu: true,
216
520
  menu__main: type === 'main',
217
521
  menu__language: type === 'language',
218
522
  menu__login: type === 'login',
219
- menu__dark: this.darkMode
523
+ menu__dark: this.darkMode,
524
+ 'menu--mega-open': this.isMegaMenuEnabled() && this.isMegaMenuOpen,
525
+ 'menu--mega-escape-closed': this.isMegaMenuEnabled() && this.isMegaMenuEscapeClosed
220
526
  } }, this.renderFirstLevel(), this.renderSubLevels())));
221
527
  }
222
528
  static get is() { return "tet-menu"; }
@@ -263,7 +569,7 @@ export class TetMenu {
263
569
  "optional": false,
264
570
  "docs": {
265
571
  "tags": [],
266
- "text": "Determines whether the menu item should appear as active."
572
+ "text": "Determines whether the menu item should appear as active.\nFor `type=\"main\"`, it is also treated as active when any nested child item is active."
267
573
  },
268
574
  "attribute": "active",
269
575
  "reflect": false,
@@ -314,14 +620,13 @@ export class TetMenu {
314
620
  "references": {}
315
621
  },
316
622
  "required": false,
317
- "optional": false,
623
+ "optional": true,
318
624
  "docs": {
319
625
  "tags": [],
320
626
  "text": "The id of the first menu level."
321
627
  },
322
628
  "attribute": "first-level-id",
323
- "reflect": false,
324
- "defaultValue": "null"
629
+ "reflect": false
325
630
  },
326
631
  "firstLevelLink": {
327
632
  "type": "string",
@@ -440,14 +745,54 @@ export class TetMenu {
440
745
  "attribute": "dark-mode",
441
746
  "reflect": false,
442
747
  "defaultValue": "false"
748
+ },
749
+ "parentSelector": {
750
+ "type": "string",
751
+ "mutable": false,
752
+ "complexType": {
753
+ "original": "string",
754
+ "resolved": "string",
755
+ "references": {}
756
+ },
757
+ "required": false,
758
+ "optional": false,
759
+ "docs": {
760
+ "tags": [],
761
+ "text": "The selector of the parent element."
762
+ },
763
+ "attribute": "parent-selector",
764
+ "reflect": false,
765
+ "defaultValue": "''"
766
+ },
767
+ "isMegaMenuLayout": {
768
+ "type": "boolean",
769
+ "mutable": false,
770
+ "complexType": {
771
+ "original": "boolean",
772
+ "resolved": "boolean",
773
+ "references": {}
774
+ },
775
+ "required": false,
776
+ "optional": false,
777
+ "docs": {
778
+ "tags": [],
779
+ "text": "Enables mega-menu behavior for main type menus by aligning the dropdown to the parent container."
780
+ },
781
+ "attribute": "is-mega-menu-layout",
782
+ "reflect": false,
783
+ "defaultValue": "false"
443
784
  }
444
785
  };
445
786
  }
446
787
  static get states() {
447
788
  return {
448
- "isSubmenuLeft": {}
789
+ "isSubmenuLeft": {},
790
+ "megaActiveSubLevelIndex": {},
791
+ "isMegaMenuOpen": {},
792
+ "isMegaMenuEscapeClosed": {}
449
793
  };
450
794
  }
795
+ static get elementRef() { return "el"; }
451
796
  static get listeners() {
452
797
  return [{
453
798
  "name": "resize",
@@ -455,6 +800,30 @@ export class TetMenu {
455
800
  "target": "window",
456
801
  "capture": false,
457
802
  "passive": true
803
+ }, {
804
+ "name": "mouseleave",
805
+ "method": "onHostMouseLeave",
806
+ "target": undefined,
807
+ "capture": false,
808
+ "passive": true
809
+ }, {
810
+ "name": "focusin",
811
+ "method": "onHostFocusIn",
812
+ "target": undefined,
813
+ "capture": false,
814
+ "passive": false
815
+ }, {
816
+ "name": "keydown",
817
+ "method": "onWindowKeyDown",
818
+ "target": "window",
819
+ "capture": false,
820
+ "passive": false
821
+ }, {
822
+ "name": "tet-menu-mega-open",
823
+ "method": "onExternalMegaMenuOpen",
824
+ "target": "window",
825
+ "capture": false,
826
+ "passive": false
458
827
  }];
459
828
  }
460
829
  }