@sapudex/web-components 2.57.0 → 2.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cypress/specs/FilterMenu.cy.tsx +209 -19
- package/cypress/specs/List.cy.tsx +67 -4
- package/cypress/specs/ListItem.cy.tsx +35 -9
- package/cypress/specs/SelectBox.cy.tsx +101 -1
- package/cypress/specs/TabNavigation.cy.tsx +351 -21
- package/cypress/specs/TagGroup.cy.tsx +1 -1
- package/dist/List.d.ts +15 -1
- package/dist/List.js +23 -2
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeaderBase.d.ts +13 -0
- package/dist/ListGroupHeaderBase.js +43 -2
- package/dist/ListGroupHeaderBase.js.map +1 -1
- package/dist/ListGroupHeaderTemplate.js +26 -7
- package/dist/ListGroupHeaderTemplate.js.map +1 -1
- package/dist/ListItem.d.ts +0 -3
- package/dist/ListItem.js +18 -12
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +17 -0
- package/dist/ListItemBase.js +15 -0
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListItemTemplate.js +2 -2
- package/dist/ListItemTemplate.js.map +1 -1
- package/dist/MastheadCountrySelector.js +5 -5
- package/dist/MastheadCountrySelector.js.map +1 -1
- package/dist/MastheadCountrySelectorTemplate.d.ts +2 -0
- package/dist/MastheadCountrySelectorTemplate.js +15 -0
- package/dist/MastheadCountrySelectorTemplate.js.map +1 -0
- package/dist/MastheadItem.d.ts +0 -3
- package/dist/MastheadItem.js +3 -6
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadItemTemplate.d.ts +2 -0
- package/dist/MastheadItemTemplate.js +41 -0
- package/dist/MastheadItemTemplate.js.map +1 -0
- package/dist/MastheadMenu.d.ts +1 -0
- package/dist/MastheadMenu.js +4 -6
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMenuItem.d.ts +0 -3
- package/dist/MastheadMenuItem.js +3 -6
- package/dist/MastheadMenuItem.js.map +1 -1
- package/dist/MastheadMenuItemTemplate.d.ts +2 -0
- package/dist/MastheadMenuItemTemplate.js +36 -0
- package/dist/MastheadMenuItemTemplate.js.map +1 -0
- package/dist/MastheadMenuTemplate.d.ts +2 -0
- package/dist/MastheadMenuTemplate.js +13 -0
- package/dist/MastheadMenuTemplate.js.map +1 -0
- package/dist/MastheadMobileMenu.js +3 -3
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadMobileMenuTemplate.d.ts +2 -0
- package/dist/MastheadMobileMenuTemplate.js +33 -0
- package/dist/MastheadMobileMenuTemplate.js.map +1 -0
- package/dist/MastheadProfileMenu.d.ts +2 -4
- package/dist/MastheadProfileMenu.js +5 -20
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadProfileMenuTemplate.d.ts +2 -0
- package/dist/MastheadProfileMenuTemplate.js +24 -0
- package/dist/MastheadProfileMenuTemplate.js.map +1 -0
- package/dist/MastheadShell.js +3 -5
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MastheadShellTemplate.d.ts +2 -0
- package/dist/MastheadShellTemplate.js +20 -0
- package/dist/MastheadShellTemplate.js.map +1 -0
- package/dist/RatingIndicatorTemplate.js +1 -1
- package/dist/RatingIndicatorTemplate.js.map +1 -1
- package/dist/SearchableListBase.d.ts +10 -0
- package/dist/SearchableListBase.js +34 -1
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SearchableListBaseTemplate.js +35 -4
- package/dist/SearchableListBaseTemplate.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +1 -0
- package/dist/SecondaryNavigation.js +23 -9
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +0 -1
- package/dist/SecondaryNavigationItem.js +4 -6
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationItemBase.js +2 -2
- package/dist/SecondaryNavigationItemBase.js.map +1 -1
- package/dist/SecondaryNavigationItemTemplate.d.ts +2 -0
- package/dist/SecondaryNavigationItemTemplate.js +12 -0
- package/dist/SecondaryNavigationItemTemplate.js.map +1 -0
- package/dist/SecondaryNavigationSubItem.d.ts +0 -2
- package/dist/SecondaryNavigationSubItem.js +3 -7
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/SecondaryNavigationSubItemTemplate.d.ts +2 -0
- package/dist/SecondaryNavigationSubItemTemplate.js +16 -0
- package/dist/SecondaryNavigationSubItemTemplate.js.map +1 -0
- package/dist/SecondaryNavigationTemplate.d.ts +2 -0
- package/dist/SecondaryNavigationTemplate.js +7 -0
- package/dist/SecondaryNavigationTemplate.js.map +1 -0
- package/dist/SelectBase.js +8 -3
- package/dist/SelectBase.js.map +1 -1
- package/dist/SideNavigationMobile.d.ts +2 -3
- package/dist/SideNavigationMobile.js +22 -16
- package/dist/SideNavigationMobile.js.map +1 -1
- package/dist/SideNavigationMobileTemplate.d.ts +2 -0
- package/dist/SideNavigationMobileTemplate.js +11 -0
- package/dist/SideNavigationMobileTemplate.js.map +1 -0
- package/dist/Tab.d.ts +0 -7
- package/dist/Tab.js +4 -19
- package/dist/Tab.js.map +1 -1
- package/dist/TabHeaderTemplate.d.ts +2 -0
- package/dist/TabHeaderTemplate.js +15 -0
- package/dist/TabHeaderTemplate.js.map +1 -0
- package/dist/TabInOverflowTemplate.d.ts +2 -0
- package/dist/TabInOverflowTemplate.js +7 -0
- package/dist/TabInOverflowTemplate.js.map +1 -0
- package/dist/TabNavigation.d.ts +15 -4
- package/dist/TabNavigation.js +70 -40
- package/dist/TabNavigation.js.map +1 -1
- package/dist/TabNavigationPopoverTemplate.d.ts +2 -0
- package/dist/TabNavigationPopoverTemplate.js +9 -0
- package/dist/TabNavigationPopoverTemplate.js.map +1 -0
- package/dist/TabNavigationTemplate.d.ts +2 -0
- package/dist/TabNavigationTemplate.js +10 -0
- package/dist/TabNavigationTemplate.js.map +1 -0
- package/dist/TabTemplate.d.ts +2 -0
- package/dist/TabTemplate.js +5 -0
- package/dist/TabTemplate.js.map +1 -0
- package/dist/TagGroup.d.ts +2 -2
- package/dist/TagGroup.js +14 -3
- package/dist/TagGroup.js.map +1 -1
- package/dist/assets/InputSuggestions-CloTVyrf.js +2 -0
- package/dist/assets/{ListItemStandardExpandableTextTemplate-BQtSr7yg.js → ListItemStandardExpandableTextTemplate-DpquSMb2.js} +1 -1
- package/dist/assets/{ar-6UKwJun6.js → ar-CMU2PGtw.js} +1 -1
- package/dist/assets/{ar_EG-BTSal4jr.js → ar_EG-Bi2CIb24.js} +1 -1
- package/dist/assets/{ar_SA-Ck13AOrQ.js → ar_SA-BXTzBfWR.js} +1 -1
- package/dist/assets/{bg-fF9FXKHH.js → bg-B6_PMtzW.js} +1 -1
- package/dist/assets/{bundle.esm-GvPkDyXP.js → bundle.esm-Cyz8a5IX.js} +244 -262
- package/dist/assets/{ca-ZuvXTynI.js → ca-DFP6ILMq.js} +1 -1
- package/dist/assets/{cnr-CiidS6E_.js → cnr-Grlu3JuX.js} +1 -1
- package/dist/assets/{cs-CKH0PBiM.js → cs-lgNqqL4u.js} +1 -1
- package/dist/assets/{da-DLJy-V4w.js → da-ZKggtzGq.js} +1 -1
- package/dist/assets/{de-0N92OkSB.js → de-DL1zgfsi.js} +1 -1
- package/dist/assets/{de_AT-D8g7Tth2.js → de_AT-CmarUHhe.js} +1 -1
- package/dist/assets/{de_CH-DYTcKEqU.js → de_CH-CFp86jVo.js} +1 -1
- package/dist/assets/{el-OYZuNIHv.js → el-FdvefiDT.js} +1 -1
- package/dist/assets/{el_CY-D79vuMAa.js → el_CY-BJPkkKi8.js} +1 -1
- package/dist/assets/{en-CllNN7YY.js → en-B1Q_JFFb.js} +1 -1
- package/dist/assets/{en_AU-Ddrviu44.js → en_AU-Bm6lcfFm.js} +1 -1
- package/dist/assets/{en_GB-B9eSErHy.js → en_GB-CCipb5dG.js} +1 -1
- package/dist/assets/{en_HK-FdAjB4tQ.js → en_HK-Bu8Js72H.js} +1 -1
- package/dist/assets/{en_IE-zdmtzUDu.js → en_IE-BZXJHeYM.js} +1 -1
- package/dist/assets/{en_IN-DJJRjMIF.js → en_IN-Dh3537uv.js} +1 -1
- package/dist/assets/{en_NZ-BY--qj4s.js → en_NZ-Bx3mG4fb.js} +1 -1
- package/dist/assets/{en_PG-RcJi2hvJ.js → en_PG-CyRO9VGd.js} +1 -1
- package/dist/assets/{en_SG-BUtJMBS2.js → en_SG-BEsuw651.js} +1 -1
- package/dist/assets/{en_ZA-D-uqJ4Za.js → en_ZA-i0tdkruX.js} +1 -1
- package/dist/assets/{es-DgitLRHt.js → es-BKtAFDBk.js} +1 -1
- package/dist/assets/{es_AR-7a81KXAl.js → es_AR-Cgh6Q2W_.js} +1 -1
- package/dist/assets/{es_BO-CdNGyTgv.js → es_BO-CaK9OOQC.js} +1 -1
- package/dist/assets/{es_CL-DuHBIVFo.js → es_CL-u6fJ6PPk.js} +1 -1
- package/dist/assets/{es_CO-C0CJWwB-.js → es_CO-DAO-13dw.js} +1 -1
- package/dist/assets/{es_MX-DtPgyxGD.js → es_MX-D1KhXUy4.js} +1 -1
- package/dist/assets/{es_PE-DGF7Yjrt.js → es_PE-DEUen4VG.js} +1 -1
- package/dist/assets/{es_UY-fD9lVhfR.js → es_UY-CPBMwHSz.js} +1 -1
- package/dist/assets/{es_VE-BX3pigg8.js → es_VE-CNZouG2K.js} +1 -1
- package/dist/assets/{et-BMj4rjsT.js → et-DNQPssPo.js} +1 -1
- package/dist/assets/{fa-CQhbGi8S.js → fa-4zj1zCg1.js} +1 -1
- package/dist/assets/{fi-DBKA9_K5.js → fi-C6HFNTL6.js} +1 -1
- package/dist/assets/{fr-CMQtkd4R.js → fr-BydrHZkq.js} +1 -1
- package/dist/assets/{fr_BE-Bl0FruWm.js → fr_BE-C8hcZNOL.js} +1 -1
- package/dist/assets/{fr_CA-DFlIL_d4.js → fr_CA-Cw2zy44G.js} +1 -1
- package/dist/assets/{fr_CH-C8lyCDBe.js → fr_CH-BbCQFx3s.js} +1 -1
- package/dist/assets/{fr_LU-CG5r3b1-.js → fr_LU-BpH6nMiI.js} +1 -1
- package/dist/assets/{he-D3P1Q9GQ.js → he-CfKmVVrF.js} +1 -1
- package/dist/assets/{hi-B3yky8gy.js → hi-D1WBUmI6.js} +1 -1
- package/dist/assets/{hr-cQ9G2h7E.js → hr-pnk2hlkB.js} +1 -1
- package/dist/assets/{hu-D0ywysYs.js → hu-CCzBj3iT.js} +1 -1
- package/dist/assets/{id-B-yAWgiT.js → id-BeGrqJpK.js} +1 -1
- package/dist/assets/{it-DLzjbv-9.js → it-B6Mz1czr.js} +1 -1
- package/dist/assets/{it_CH-DKz1oDNC.js → it_CH-CwPXoj3N.js} +1 -1
- package/dist/assets/{ja-C8zg_Zor.js → ja-BILluLT2.js} +1 -1
- package/dist/assets/{kk-DZZOQ4wh.js → kk-YSUtf5Jy.js} +1 -1
- package/dist/assets/{ko-BEJWYeL9.js → ko-DUlXl0QQ.js} +1 -1
- package/dist/assets/{lt-Cji-Zk_r.js → lt-Dn5sAAtt.js} +1 -1
- package/dist/assets/{lv-rjxWTRTn.js → lv-D_k8IElJ.js} +1 -1
- package/dist/assets/messagebundle_ar-C3EXytoC.js +1 -0
- package/dist/assets/messagebundle_ar-DmZrrjEF.js +1 -0
- package/dist/assets/messagebundle_bg-BaZ97Q_b.js +1 -0
- package/dist/assets/messagebundle_bg-CgU7GPvK.js +1 -0
- package/dist/assets/messagebundle_ca-BwjVUbUA.js +1 -0
- package/dist/assets/messagebundle_ca-YiUGbO_8.js +1 -0
- package/dist/assets/messagebundle_cnr-CN2hPZIN.js +1 -0
- package/dist/assets/messagebundle_cnr-zdEdPJvc.js +1 -0
- package/dist/assets/messagebundle_cs-CGbnEjza.js +1 -0
- package/dist/assets/messagebundle_cs-DmRWH--o.js +1 -0
- package/dist/assets/messagebundle_cy-BF0YH9Iz.js +1 -0
- package/dist/assets/messagebundle_cy-CUiGsjO6.js +1 -0
- package/dist/assets/messagebundle_da-CWKLQJiq.js +1 -0
- package/dist/assets/messagebundle_da-bTkr4pUc.js +1 -0
- package/dist/assets/messagebundle_de-BmnClk4G.js +1 -0
- package/dist/assets/messagebundle_de-vB6qhgvG.js +1 -0
- package/dist/assets/messagebundle_el-DKdItEgW.js +1 -0
- package/dist/assets/messagebundle_el-Gv1Ly8aj.js +1 -0
- package/dist/assets/messagebundle_en-B7YJOdQz.js +1 -0
- package/dist/assets/messagebundle_en-DbKo-Dkl.js +1 -0
- package/dist/assets/messagebundle_en-DcV886MF.js +1 -0
- package/dist/assets/messagebundle_en_GB-Be93_Z4H.js +1 -0
- package/dist/assets/messagebundle_en_GB-CFh7e8hQ.js +1 -0
- package/dist/assets/messagebundle_en_US_sappsd-HCarC-Yr.js +1 -0
- package/dist/assets/messagebundle_en_US_sappsd-Se8GgI58.js +1 -0
- package/dist/assets/messagebundle_en_US_saprigi-CCHFk7YZ.js +1 -0
- package/dist/assets/messagebundle_en_US_saprigi-CbfvaHUL.js +1 -0
- package/dist/assets/messagebundle_en_US_saptrc-B8AIRzlo.js +1 -0
- package/dist/assets/messagebundle_en_US_saptrc-yJ3PcdEm.js +1 -0
- package/dist/assets/messagebundle_es-BH-a8BxO.js +1 -0
- package/dist/assets/messagebundle_es-Dt93wbGV.js +1 -0
- package/dist/assets/messagebundle_es_MX-BedlYlF3.js +1 -0
- package/dist/assets/messagebundle_es_MX-COPqooo9.js +1 -0
- package/dist/assets/messagebundle_et-BsYgDw46.js +1 -0
- package/dist/assets/messagebundle_et-UwpqUE-p.js +1 -0
- package/dist/assets/messagebundle_fi-BN3UWEz0.js +1 -0
- package/dist/assets/messagebundle_fi-Cwf7Puui.js +1 -0
- package/dist/assets/messagebundle_fr-43w09LAE.js +1 -0
- package/dist/assets/messagebundle_fr-CVRaf9_H.js +1 -0
- package/dist/assets/messagebundle_fr_CA-BM04X6xU.js +1 -0
- package/dist/assets/messagebundle_fr_CA-CdnVYumi.js +1 -0
- package/dist/assets/messagebundle_hi-DfeonbAH.js +1 -0
- package/dist/assets/messagebundle_hi-JRJlP9Uh.js +1 -0
- package/dist/assets/messagebundle_hr-CKOnn34q.js +1 -0
- package/dist/assets/messagebundle_hr-CbyIBlH3.js +1 -0
- package/dist/assets/messagebundle_hu-DF1gQudE.js +1 -0
- package/dist/assets/messagebundle_hu-D_IQ9kTy.js +1 -0
- package/dist/assets/messagebundle_id-B0K1usj4.js +1 -0
- package/dist/assets/messagebundle_id-gDJYoaGq.js +1 -0
- package/dist/assets/messagebundle_it-B80_R2Ih.js +1 -0
- package/dist/assets/messagebundle_it-CVqU4g6t.js +1 -0
- package/dist/assets/messagebundle_iw-BoelOIS4.js +1 -0
- package/dist/assets/messagebundle_iw-iMDtLxaa.js +1 -0
- package/dist/assets/messagebundle_ja-BlRbv4vb.js +1 -0
- package/dist/assets/messagebundle_ja-BrDH-19-.js +1 -0
- package/dist/assets/messagebundle_kk-C7VPek1-.js +1 -0
- package/dist/assets/messagebundle_kk-DhAT_bim.js +1 -0
- package/dist/assets/messagebundle_ko-CIqP8x6n.js +1 -0
- package/dist/assets/messagebundle_ko-DgD6uyZ5.js +1 -0
- package/dist/assets/messagebundle_lt-BGK5mpcm.js +1 -0
- package/dist/assets/messagebundle_lt-BV0kKrY0.js +1 -0
- package/dist/assets/messagebundle_lv-5IcjoxWD.js +1 -0
- package/dist/assets/messagebundle_lv-DDBi7iKe.js +1 -0
- package/dist/assets/messagebundle_mk-BUrn04sZ.js +1 -0
- package/dist/assets/messagebundle_mk-P5veRdg2.js +1 -0
- package/dist/assets/messagebundle_ms-9VDLR5en.js +1 -0
- package/dist/assets/messagebundle_ms-CB8sQUg2.js +1 -0
- package/dist/assets/messagebundle_nl-BaAgPO7h.js +1 -0
- package/dist/assets/messagebundle_nl-f1Up3dB9.js +1 -0
- package/dist/assets/messagebundle_no-C-_ldp7o.js +1 -0
- package/dist/assets/messagebundle_no-DRSqWQ-C.js +1 -0
- package/dist/assets/messagebundle_pl-BQoPaokq.js +1 -0
- package/dist/assets/messagebundle_pl-DBO1atMe.js +1 -0
- package/dist/assets/messagebundle_pt-BNEglYxa.js +1 -0
- package/dist/assets/messagebundle_pt-DgAMHmW-.js +1 -0
- package/dist/assets/messagebundle_pt_PT-BtYzp9KB.js +1 -0
- package/dist/assets/messagebundle_pt_PT-D1Ef8kUU.js +1 -0
- package/dist/assets/messagebundle_ro-CuDPp2fe.js +1 -0
- package/dist/assets/messagebundle_ro-D591wJ6f.js +1 -0
- package/dist/assets/messagebundle_ru-D0NridWi.js +1 -0
- package/dist/assets/messagebundle_ru-I8YLCfrn.js +1 -0
- package/dist/assets/messagebundle_sh-BswdbSRi.js +1 -0
- package/dist/assets/messagebundle_sh-Dw2y_oct.js +1 -0
- package/dist/assets/messagebundle_sk-BG4S4ZVk.js +1 -0
- package/dist/assets/messagebundle_sk-CXOF1RuF.js +1 -0
- package/dist/assets/messagebundle_sl-CAnJO_8X.js +1 -0
- package/dist/assets/messagebundle_sl-kpVWxIp_.js +1 -0
- package/dist/assets/messagebundle_sr-BTWvO8VQ.js +1 -0
- package/dist/assets/messagebundle_sr-VJmRSdj4.js +1 -0
- package/dist/assets/messagebundle_sv-B-RCgnW_.js +1 -0
- package/dist/assets/messagebundle_sv-Bd4wCcDb.js +1 -0
- package/dist/assets/messagebundle_th-CMHmLdI3.js +1 -0
- package/dist/assets/messagebundle_th-CZ1imsCy.js +1 -0
- package/dist/assets/messagebundle_tr-BfWAYIdW.js +1 -0
- package/dist/assets/messagebundle_tr-D-BnBirv.js +1 -0
- package/dist/assets/messagebundle_uk-DhxIThVl.js +1 -0
- package/dist/assets/messagebundle_uk-HU8hI0yj.js +1 -0
- package/dist/assets/messagebundle_vi-BUTqUKd4.js +1 -0
- package/dist/assets/messagebundle_vi-D1El4_Wj.js +1 -0
- package/dist/assets/messagebundle_zh_CN-Dt0azUea.js +1 -0
- package/dist/assets/messagebundle_zh_CN-Ofgx2uXY.js +1 -0
- package/dist/assets/messagebundle_zh_TW-5lv7yYS1.js +1 -0
- package/dist/assets/messagebundle_zh_TW-LSErOAsd.js +1 -0
- package/dist/assets/{mk-9_dtu4u_.js → mk-DTLhuyCG.js} +1 -1
- package/dist/assets/{ms-9b0nct8m.js → ms-BrLiVOVI.js} +1 -1
- package/dist/assets/{nb-CbGeVRux.js → nb-BeQEL0TR.js} +1 -1
- package/dist/assets/{nl-C0vlsmuT.js → nl-CGAh49hZ.js} +1 -1
- package/dist/assets/{nl_BE-Cteh34au.js → nl_BE-CxJbQu5q.js} +1 -1
- package/dist/assets/{parameters-bundle.css-D7WciSOr.js → parameters-bundle.css-B68EyCuR.js} +2 -0
- package/dist/assets/{parameters-bundle.css-CT-eTeTy.js → parameters-bundle.css-BkJSEiFx.js} +2 -0
- package/dist/assets/{parameters-bundle.css-BXQ-0CBp.js → parameters-bundle.css-C5V2Zp_F.js} +2 -0
- package/dist/assets/{parameters-bundle.css-XYDTPt-n.js → parameters-bundle.css-COeynv6D.js} +3 -1
- package/dist/assets/parameters-bundle.css-CnIzAMdG.js +3 -0
- package/dist/assets/parameters-bundle.css-CsV5qbZp.js +3 -0
- package/dist/assets/{parameters-bundle.css-C7KCPeJ8.js → parameters-bundle.css-DCvHNL3s.js} +1 -1
- package/dist/assets/{parameters-bundle.css-CQFZmxYm.js → parameters-bundle.css-DK40uKOQ.js} +1 -1
- package/dist/assets/parameters-bundle.css-DMfTAqMv.js +2 -0
- package/dist/assets/parameters-bundle.css-DO35k9r0.js +2 -0
- package/dist/assets/parameters-bundle.css-Df7wtRW4.js +2 -0
- package/dist/assets/{parameters-bundle.css-CxjtOlRD.js → parameters-bundle.css-DmEWEk0u.js} +36 -28
- package/dist/assets/{parameters-bundle.css-CSUOmZKr.js → parameters-bundle.css-DvAfqdlT.js} +1 -1
- package/dist/assets/{parameters-bundle.css-DPz62M1p.js → parameters-bundle.css-K-MvKimD.js} +3 -1
- package/dist/assets/parameters-bundle.css-KoXGNyLG.js +3 -0
- package/dist/assets/{parameters-bundle.css-CLLnzh9T.js → parameters-bundle.css-P_M_rm9z.js} +1 -1
- package/dist/assets/parameters-bundle.css-UJIxXHL5.js +2 -0
- package/dist/assets/{parameters-bundle.css-V2I5eOdH.js → parameters-bundle.css-co26r5Nz.js} +1 -1
- package/dist/assets/parameters-bundle.css-uT62L0va.js +3 -0
- package/dist/assets/{parameters-bundle.css-Cmk27zY9.js → parameters-bundle.css-vNsSPPU5.js} +38 -31
- package/dist/assets/{pl-CDjXMBDR.js → pl-DaZJCEN3.js} +1 -1
- package/dist/assets/{pt-BXklB5_T.js → pt-RxoGfR56.js} +1 -1
- package/dist/assets/{pt_PT-DEzSdlMb.js → pt_PT-CuC22O4H.js} +1 -1
- package/dist/assets/{ro-bFLE5ZuX.js → ro-kcCACdbI.js} +1 -1
- package/dist/assets/{ru-DuGdFJZn.js → ru-BQzoU2Gq.js} +1 -1
- package/dist/assets/{ru_UA-DujiLlPN.js → ru_UA-BtdbuqWW.js} +1 -1
- package/dist/assets/{sk-GkzEgQor.js → sk-D4C2H17S.js} +1 -1
- package/dist/assets/{sl-BhuoMxwQ.js → sl-7ESgddjQ.js} +1 -1
- package/dist/assets/{sr-Bb668mIq.js → sr-m2FCxV00.js} +1 -1
- package/dist/assets/{sr_Latn-C61cXg9o.js → sr_Latn-Dh8ru1_a.js} +1 -1
- package/dist/assets/{sv-yft9g0aL.js → sv-DkcDHqsr.js} +1 -1
- package/dist/assets/{th-BiAki51N.js → th-sJeg9F0h.js} +1 -1
- package/dist/assets/{tr-DDt0vBOs.js → tr-C2e7ABy0.js} +1 -1
- package/dist/assets/{uk-A-zqF2vZ.js → uk-Cdp63d6T.js} +1 -1
- package/dist/assets/{vi-Bleu1lwm.js → vi-DuFuMCO2.js} +1 -1
- package/dist/assets/{zh_CN-kJCGkFOs.js → zh_CN-BOAGYFIg.js} +1 -1
- package/dist/assets/{zh_HK-BJMkT2Ze.js → zh_HK-Bmft66uR.js} +1 -1
- package/dist/assets/{zh_SG-Lz9Li7LQ.js → zh_SG-ChcB0A9F.js} +1 -1
- package/dist/assets/{zh_TW-P8-QBSyv.js → zh_TW-C8FI5AC8.js} +1 -1
- package/dist/css/themes/AccordionSpotlight.css +1 -1
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/Checkbox.css +1 -1
- package/dist/css/themes/Footer.css +1 -1
- package/dist/css/themes/ListGroupHeader.css +1 -1
- package/dist/css/themes/PromoTile.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/SecondaryNavigation.css +1 -1
- package/dist/css/themes/SecondaryNavigationItem.css +1 -1
- package/dist/css/themes/SecondaryNavigationSubItem.css +1 -1
- package/dist/css/themes/TabInOverflow.css +1 -1
- package/dist/css/themes/WizardTab.css +1 -1
- package/dist/custom-elements-internal.json +19 -0
- package/dist/custom-elements.json +52 -0
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
- package/dist/generated/i18n/i18n-defaults.js +3 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/AccordionSpotlight.css.d.ts +1 -1
- package/dist/generated/themes/AccordionSpotlight.css.js +1 -1
- package/dist/generated/themes/AccordionSpotlight.css.js.map +1 -1
- package/dist/generated/themes/Button.css.d.ts +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/Checkbox.css.d.ts +1 -1
- package/dist/generated/themes/Checkbox.css.js +1 -1
- package/dist/generated/themes/Checkbox.css.js.map +1 -1
- package/dist/generated/themes/Footer.css.d.ts +1 -1
- package/dist/generated/themes/Footer.css.js +1 -1
- package/dist/generated/themes/Footer.css.js.map +1 -1
- package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/PromoTile.css.d.ts +1 -1
- package/dist/generated/themes/PromoTile.css.js +1 -1
- package/dist/generated/themes/PromoTile.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.d.ts +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigationSubItem.css.d.ts +1 -1
- package/dist/generated/themes/SecondaryNavigationSubItem.css.js +1 -1
- package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
- package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
- package/dist/generated/themes/TabInOverflow.css.js +1 -1
- package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
- package/dist/generated/themes/WizardTab.css.d.ts +1 -1
- package/dist/generated/themes/WizardTab.css.js +1 -1
- package/dist/generated/themes/WizardTab.css.js.map +1 -1
- package/dist/messagebundle.properties +4 -0
- package/dist/messagebundle_en.properties +2 -0
- package/dist/utils/Breakpoints.d.ts +20 -1
- package/dist/utils/Breakpoints.js +38 -8
- package/dist/utils/Breakpoints.js.map +1 -1
- package/dist/vscode.html-custom-data.json +115 -456
- package/dist/web-types.json +11 -1
- package/package.json +8 -8
- package/src/List.ts +24 -2
- package/src/ListGroupHeaderBase.ts +44 -2
- package/src/ListGroupHeaderTemplate.tsx +74 -23
- package/src/ListItem.ts +18 -15
- package/src/ListItemBase.ts +30 -0
- package/src/ListItemTemplate.tsx +4 -4
- package/src/MastheadCountrySelector.ts +5 -5
- package/src/MastheadCountrySelectorTemplate.tsx +98 -0
- package/src/MastheadItem.ts +3 -6
- package/src/MastheadItemTemplate.tsx +178 -0
- package/src/MastheadMenu.ts +5 -6
- package/src/MastheadMenuItem.ts +3 -7
- package/src/MastheadMenuItemTemplate.tsx +123 -0
- package/src/MastheadMenuTemplate.tsx +142 -0
- package/src/MastheadMobileMenu.ts +3 -3
- package/src/MastheadMobileMenuTemplate.tsx +274 -0
- package/src/MastheadProfileMenu.ts +10 -23
- package/src/MastheadProfileMenuTemplate.tsx +143 -0
- package/src/MastheadShell.ts +3 -5
- package/src/MastheadShellTemplate.tsx +228 -0
- package/src/RatingIndicatorTemplate.tsx +0 -1
- package/src/SearchableListBase.ts +37 -1
- package/src/SearchableListBaseTemplate.tsx +38 -2
- package/src/SecondaryNavigation.ts +24 -9
- package/src/SecondaryNavigationItem.ts +4 -6
- package/src/SecondaryNavigationItemBase.ts +2 -2
- package/src/SecondaryNavigationItemTemplate.tsx +80 -0
- package/src/SecondaryNavigationSubItem.ts +3 -7
- package/src/SecondaryNavigationSubItemTemplate.tsx +63 -0
- package/src/SecondaryNavigationTemplate.tsx +90 -0
- package/src/SelectBase.ts +8 -3
- package/src/SideNavigationMobile.ts +24 -17
- package/src/SideNavigationMobileTemplate.tsx +59 -0
- package/src/Tab.ts +4 -24
- package/src/TabHeaderTemplate.tsx +153 -0
- package/src/TabInOverflowTemplate.tsx +68 -0
- package/src/TabNavigation.ts +78 -44
- package/src/TabNavigationPopoverTemplate.tsx +27 -0
- package/src/TabNavigationTemplate.tsx +98 -0
- package/src/TabTemplate.tsx +7 -0
- package/src/TagGroup.ts +16 -5
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/themes/AccordionSpotlight.css.ts +1 -1
- package/src/generated/themes/Button.css.ts +1 -1
- package/src/generated/themes/Checkbox.css.ts +1 -1
- package/src/generated/themes/Footer.css.ts +1 -1
- package/src/generated/themes/ListGroupHeader.css.ts +1 -1
- package/src/generated/themes/PromoTile.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigationSubItem.css.ts +1 -1
- package/src/generated/themes/TabInOverflow.css.ts +1 -1
- package/src/generated/themes/WizardTab.css.ts +1 -1
- package/src/i18n/messagebundle.properties +4 -0
- package/src/i18n/messagebundle_en.properties +2 -0
- package/src/themes/AccordionSpotlight.css +1 -1
- package/src/themes/Button.css +2 -1
- package/src/themes/Checkbox.css +5 -1
- package/src/themes/Footer.css +4 -4
- package/src/themes/ListGroupHeader.css +50 -7
- package/src/themes/PromoTile.css +1 -0
- package/src/themes/RatingIndicator.css +6 -1
- package/src/themes/SecondaryNavigation.css +3 -3
- package/src/themes/SecondaryNavigationItem.css +2 -2
- package/src/themes/SecondaryNavigationSubItem.css +2 -2
- package/src/themes/TabInOverflow.css +9 -4
- package/src/themes/WizardTab.css +6 -1
- package/src/utils/Breakpoints.ts +39 -8
- package/dist/assets/InputSuggestions-C8grDr_8.js +0 -2
- package/dist/assets/messagebundle_ar-BRkfjlVF.js +0 -1
- package/dist/assets/messagebundle_ar-D5A573iZ.js +0 -1
- package/dist/assets/messagebundle_bg-ByA8yRlQ.js +0 -1
- package/dist/assets/messagebundle_bg-CIVFOczQ.js +0 -1
- package/dist/assets/messagebundle_ca-BR3XuU9o.js +0 -1
- package/dist/assets/messagebundle_ca-CnMQ87v0.js +0 -1
- package/dist/assets/messagebundle_cnr-C6YhRiS7.js +0 -1
- package/dist/assets/messagebundle_cnr-CKZii51E.js +0 -1
- package/dist/assets/messagebundle_cs-DcOu8IOK.js +0 -1
- package/dist/assets/messagebundle_cs-I7yYpbsI.js +0 -1
- package/dist/assets/messagebundle_cy-BxrFUGJ9.js +0 -1
- package/dist/assets/messagebundle_cy-iXD_sJ-H.js +0 -1
- package/dist/assets/messagebundle_da-BVQHPgwf.js +0 -1
- package/dist/assets/messagebundle_da-CMGObFa5.js +0 -1
- package/dist/assets/messagebundle_de-CSl05u5u.js +0 -1
- package/dist/assets/messagebundle_de-Ca8NttFO.js +0 -1
- package/dist/assets/messagebundle_el-Cqfj_U5v.js +0 -1
- package/dist/assets/messagebundle_el-D9Zgq5tn.js +0 -1
- package/dist/assets/messagebundle_en-D0JTZvAf.js +0 -1
- package/dist/assets/messagebundle_en-DBpf5Il2.js +0 -1
- package/dist/assets/messagebundle_en-DWqF0cay.js +0 -1
- package/dist/assets/messagebundle_en_GB-CGB_FKp4.js +0 -1
- package/dist/assets/messagebundle_en_GB-Cl7ekzz2.js +0 -1
- package/dist/assets/messagebundle_en_US_sappsd-7UdOh8vN.js +0 -1
- package/dist/assets/messagebundle_en_US_sappsd-B8rqsyFQ.js +0 -1
- package/dist/assets/messagebundle_en_US_saprigi-9VCo5QY0.js +0 -1
- package/dist/assets/messagebundle_en_US_saprigi-DfLzOCPY.js +0 -1
- package/dist/assets/messagebundle_en_US_saptrc-DZqYka05.js +0 -1
- package/dist/assets/messagebundle_en_US_saptrc-Wh_IysAB.js +0 -1
- package/dist/assets/messagebundle_es-DKn8EzzP.js +0 -1
- package/dist/assets/messagebundle_es-lf5AJZNW.js +0 -1
- package/dist/assets/messagebundle_es_MX-DyYZGjON.js +0 -1
- package/dist/assets/messagebundle_es_MX-yBTcvu7u.js +0 -1
- package/dist/assets/messagebundle_et-Dz8Ohhcp.js +0 -1
- package/dist/assets/messagebundle_et-rMWbS-Nu.js +0 -1
- package/dist/assets/messagebundle_fi-Bfbyhuuz.js +0 -1
- package/dist/assets/messagebundle_fi-DnXm7LPH.js +0 -1
- package/dist/assets/messagebundle_fr-BvbeCfZ-.js +0 -1
- package/dist/assets/messagebundle_fr-KQhoZEew.js +0 -1
- package/dist/assets/messagebundle_fr_CA-CE2lzYx5.js +0 -1
- package/dist/assets/messagebundle_fr_CA-CIhDzHAJ.js +0 -1
- package/dist/assets/messagebundle_hi-BRQ9tZ6F.js +0 -1
- package/dist/assets/messagebundle_hi-DPwH9vag.js +0 -1
- package/dist/assets/messagebundle_hr-BSKQ6zHT.js +0 -1
- package/dist/assets/messagebundle_hr-D3gQg5JN.js +0 -1
- package/dist/assets/messagebundle_hu-CAA4oM1C.js +0 -1
- package/dist/assets/messagebundle_hu-CZNs1K9T.js +0 -1
- package/dist/assets/messagebundle_id-9H0uJyXB.js +0 -1
- package/dist/assets/messagebundle_id-m6iosVVP.js +0 -1
- package/dist/assets/messagebundle_it-BWzxa-Mi.js +0 -1
- package/dist/assets/messagebundle_it-Cm_0HF21.js +0 -1
- package/dist/assets/messagebundle_iw-DpB2YXTa.js +0 -1
- package/dist/assets/messagebundle_iw-NfqePNtD.js +0 -1
- package/dist/assets/messagebundle_ja-BCSZcI8t.js +0 -1
- package/dist/assets/messagebundle_ja-C-qqwzFf.js +0 -1
- package/dist/assets/messagebundle_kk--PGqyTVS.js +0 -1
- package/dist/assets/messagebundle_kk-DAlCQkFU.js +0 -1
- package/dist/assets/messagebundle_ko-D8mIkPe1.js +0 -1
- package/dist/assets/messagebundle_ko-qoWc4ZGG.js +0 -1
- package/dist/assets/messagebundle_lt-BIEH02V4.js +0 -1
- package/dist/assets/messagebundle_lt-ruMxSuY-.js +0 -1
- package/dist/assets/messagebundle_lv-C2om7wu0.js +0 -1
- package/dist/assets/messagebundle_lv-Dfrbh1ci.js +0 -1
- package/dist/assets/messagebundle_mk-DHvZle6t.js +0 -1
- package/dist/assets/messagebundle_mk-l_Kubx1p.js +0 -1
- package/dist/assets/messagebundle_ms-CKCmj1p_.js +0 -1
- package/dist/assets/messagebundle_ms-IhSEK5ij.js +0 -1
- package/dist/assets/messagebundle_nl-BiIb6e5c.js +0 -1
- package/dist/assets/messagebundle_nl-DquG38Cj.js +0 -1
- package/dist/assets/messagebundle_no-CX23v_jg.js +0 -1
- package/dist/assets/messagebundle_no-DFdvykvP.js +0 -1
- package/dist/assets/messagebundle_pl-BAeue3mo.js +0 -1
- package/dist/assets/messagebundle_pl-iHE_prgN.js +0 -1
- package/dist/assets/messagebundle_pt-BpQnTLvl.js +0 -1
- package/dist/assets/messagebundle_pt-C_bG3Erm.js +0 -1
- package/dist/assets/messagebundle_pt_PT-CR7qXFK-.js +0 -1
- package/dist/assets/messagebundle_pt_PT-DyseXKQQ.js +0 -1
- package/dist/assets/messagebundle_ro-CHU1E6hv.js +0 -1
- package/dist/assets/messagebundle_ro-C_amsd63.js +0 -1
- package/dist/assets/messagebundle_ru-Cab4H6Ud.js +0 -1
- package/dist/assets/messagebundle_ru-D6JMraBp.js +0 -1
- package/dist/assets/messagebundle_sh-DusYn00L.js +0 -1
- package/dist/assets/messagebundle_sh-hThvw_lF.js +0 -1
- package/dist/assets/messagebundle_sk-BqiUMEcX.js +0 -1
- package/dist/assets/messagebundle_sk-CZHfFNQ_.js +0 -1
- package/dist/assets/messagebundle_sl-B79d3kfY.js +0 -1
- package/dist/assets/messagebundle_sl-SfAn6n6j.js +0 -1
- package/dist/assets/messagebundle_sr-4iz7n4Te.js +0 -1
- package/dist/assets/messagebundle_sr-DxELdG62.js +0 -1
- package/dist/assets/messagebundle_sv-CPOHCrxs.js +0 -1
- package/dist/assets/messagebundle_sv-i6GuWK0l.js +0 -1
- package/dist/assets/messagebundle_th-D-kPI3tt.js +0 -1
- package/dist/assets/messagebundle_th-D64J-JvN.js +0 -1
- package/dist/assets/messagebundle_tr-CuE9DqZT.js +0 -1
- package/dist/assets/messagebundle_tr-gTuGftNt.js +0 -1
- package/dist/assets/messagebundle_uk-C6JSX-jF.js +0 -1
- package/dist/assets/messagebundle_uk-IKxyo-LT.js +0 -1
- package/dist/assets/messagebundle_vi-BRdRT5L6.js +0 -1
- package/dist/assets/messagebundle_vi-rZGL12-x.js +0 -1
- package/dist/assets/messagebundle_zh_CN-L55Y4Dfs.js +0 -1
- package/dist/assets/messagebundle_zh_CN-ZalS15WG.js +0 -1
- package/dist/assets/messagebundle_zh_TW-BcMzZCW2.js +0 -1
- package/dist/assets/messagebundle_zh_TW-sRVDBYOx.js +0 -1
- package/dist/assets/parameters-bundle.css-8pAQYERs.js +0 -3
- package/dist/assets/parameters-bundle.css-B_KvbSAR.js +0 -2
- package/dist/assets/parameters-bundle.css-Ciey0vhA.js +0 -2
- package/dist/assets/parameters-bundle.css-D7Hj83QD.js +0 -2
- package/dist/assets/parameters-bundle.css-DJgsxqD8.js +0 -2
- package/dist/assets/parameters-bundle.css-DMVuljH3.js +0 -3
- package/dist/assets/parameters-bundle.css-DkHyiuRq.js +0 -3
- package/dist/assets/parameters-bundle.css-Dvgwa73x.js +0 -3
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js +0 -13
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js.map +0 -1
- package/dist/generated/templates/MastheadItemTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/MastheadItemTemplate.lit.js +0 -43
- package/dist/generated/templates/MastheadItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +0 -21
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/MastheadMenuTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/MastheadMenuTemplate.lit.js +0 -25
- package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +0 -1
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +0 -37
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +0 -1
- package/dist/generated/templates/MastheadProfileMenuTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +0 -18
- package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +0 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/MastheadShellTemplate.lit.js +0 -28
- package/dist/generated/templates/MastheadShellTemplate.lit.js.map +0 -1
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +0 -13
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +0 -12
- package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +0 -15
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +0 -1
- package/dist/generated/templates/SideNavigationMobileTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/SideNavigationMobileTemplate.lit.js +0 -10
- package/dist/generated/templates/SideNavigationMobileTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TabHeaderTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TabHeaderTemplate.lit.js +0 -52
- package/dist/generated/templates/TabHeaderTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TabInOverflowTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TabInOverflowTemplate.lit.js +0 -15
- package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TabNavigationPopoverTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js +0 -8
- package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TabNavigationTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TabNavigationTemplate.lit.js +0 -16
- package/dist/generated/templates/TabNavigationTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TabTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TabTemplate.lit.js +0 -7
- package/dist/generated/templates/TabTemplate.lit.js.map +0 -1
- package/src/MastheadCountrySelector.hbs +0 -76
- package/src/MastheadItem.hbs +0 -136
- package/src/MastheadMenu.hbs +0 -131
- package/src/MastheadMenuItem.hbs +0 -102
- package/src/MastheadMobileMenu.hbs +0 -253
- package/src/MastheadProfileMenu.hbs +0 -121
- package/src/MastheadShell.hbs +0 -223
- package/src/SecondaryNavigation.hbs +0 -87
- package/src/SecondaryNavigationItem.hbs +0 -68
- package/src/SecondaryNavigationSubItem.hbs +0 -47
- package/src/SideNavigationMobile.hbs +0 -41
- package/src/Tab.hbs +0 -1
- package/src/TabHeader.hbs +0 -141
- package/src/TabInOverflow.hbs +0 -59
- package/src/TabNavigation.hbs +0 -88
- package/src/TabNavigationPopover.hbs +0 -18
- package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +0 -17
- package/src/generated/templates/MastheadItemTemplate.lit.ts +0 -47
- package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +0 -25
- package/src/generated/templates/MastheadMenuTemplate.lit.ts +0 -29
- package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +0 -41
- package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +0 -22
- package/src/generated/templates/MastheadShellTemplate.lit.ts +0 -32
- package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +0 -17
- package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +0 -16
- package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +0 -19
- package/src/generated/templates/SideNavigationMobileTemplate.lit.ts +0 -14
- package/src/generated/templates/TabHeaderTemplate.lit.ts +0 -56
- package/src/generated/templates/TabInOverflowTemplate.lit.ts +0 -19
- package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +0 -12
- package/src/generated/templates/TabNavigationTemplate.lit.ts +0 -20
- package/src/generated/templates/TabTemplate.lit.ts +0 -11
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import UDExTabNavigation, { UDExTabNavigationOrientation, UDExTabNavigationPlacement, UDExTabNavigationVerticalAlignment } from "../../src/TabNavigation.js";
|
|
2
2
|
import UDExTab from "../../src/Tab.js";
|
|
3
|
+
import UDExLink from "../../src/Link.js";
|
|
3
4
|
|
|
4
5
|
// ─── Process Tab fixtures ─────────────────────────────────────────────────────
|
|
5
6
|
|
|
@@ -223,12 +224,12 @@ describe("Tab Navigation component", () => {
|
|
|
223
224
|
.shadow()
|
|
224
225
|
.find(".udex-tab-navigation__root")
|
|
225
226
|
.should("be.visible");
|
|
226
|
-
|
|
227
|
+
|
|
227
228
|
// All tabs should be visible without overflow
|
|
228
229
|
cy.get("[udex-tab-navigation]")
|
|
229
230
|
.find("udex-tab")
|
|
230
231
|
.should("have.length", 5);
|
|
231
|
-
|
|
232
|
+
|
|
232
233
|
cy.get("[udex-tab-navigation]")
|
|
233
234
|
.shadow()
|
|
234
235
|
.find("button[role='tab']")
|
|
@@ -250,7 +251,7 @@ describe("Tab Navigation component", () => {
|
|
|
250
251
|
.shadow()
|
|
251
252
|
.find("button[role='tab'][aria-selected='true']")
|
|
252
253
|
.should("contain.text", "General Settings");
|
|
253
|
-
|
|
254
|
+
|
|
254
255
|
cy.get("[udex-tab-navigation]")
|
|
255
256
|
.find("udex-tab[selected]")
|
|
256
257
|
.find("h3")
|
|
@@ -270,7 +271,7 @@ describe("Tab Navigation component", () => {
|
|
|
270
271
|
.shadow()
|
|
271
272
|
.find("button[role='tab'][aria-selected='true']")
|
|
272
273
|
.should("contain.text", "Notifications");
|
|
273
|
-
|
|
274
|
+
|
|
274
275
|
cy.get("[udex-tab-navigation]")
|
|
275
276
|
.find("udex-tab[selected]")
|
|
276
277
|
.find("h3")
|
|
@@ -279,7 +280,7 @@ describe("Tab Navigation component", () => {
|
|
|
279
280
|
|
|
280
281
|
it("emits tab-select event on tab change", () => {
|
|
281
282
|
const tabSelectHandler = cy.stub().as("tabSelect");
|
|
282
|
-
|
|
283
|
+
|
|
283
284
|
cy.mount(
|
|
284
285
|
<UDExTabNavigation orientation="Vertical" onTabSelect={tabSelectHandler}>
|
|
285
286
|
<UDExTab text="Tab 1" selected>
|
|
@@ -468,11 +469,11 @@ describe("Tab Navigation component", () => {
|
|
|
468
469
|
.shadow()
|
|
469
470
|
.find(".udex-tab-navigation__root")
|
|
470
471
|
.should("be.visible");
|
|
471
|
-
|
|
472
|
+
|
|
472
473
|
cy.get("[udex-tab-navigation]")
|
|
473
474
|
.find("udex-tab")
|
|
474
475
|
.should("have.length", 3);
|
|
475
|
-
|
|
476
|
+
|
|
476
477
|
cy.get("[udex-tab-navigation]")
|
|
477
478
|
.shadow()
|
|
478
479
|
.find("button[role='tab']")
|
|
@@ -484,7 +485,7 @@ describe("Tab Navigation component", () => {
|
|
|
484
485
|
.shadow()
|
|
485
486
|
.find("button[role='tab'][aria-selected='true']")
|
|
486
487
|
.should("contain.text", "Tab 1");
|
|
487
|
-
|
|
488
|
+
|
|
488
489
|
cy.get("[udex-tab-navigation]")
|
|
489
490
|
.find("udex-tab[selected]")
|
|
490
491
|
.find("p")
|
|
@@ -504,7 +505,7 @@ describe("Tab Navigation component", () => {
|
|
|
504
505
|
.shadow()
|
|
505
506
|
.find("button[role='tab'][aria-selected='true']")
|
|
506
507
|
.should("contain.text", "Tab 3");
|
|
507
|
-
|
|
508
|
+
|
|
508
509
|
cy.get("[udex-tab-navigation]")
|
|
509
510
|
.find("udex-tab[selected]")
|
|
510
511
|
.find("p")
|
|
@@ -681,6 +682,60 @@ describe("Tab Navigation component", () => {
|
|
|
681
682
|
.should("exist");
|
|
682
683
|
});
|
|
683
684
|
|
|
685
|
+
it("does not set a dangling aria-labelledby on the tab list", () => {
|
|
686
|
+
cy.get("[udex-tab-navigation]")
|
|
687
|
+
.shadow()
|
|
688
|
+
.find("[role='tablist']")
|
|
689
|
+
.should("not.have.attr", "aria-labelledby");
|
|
690
|
+
});
|
|
691
|
+
|
|
692
|
+
it("has no aria-label on the tab list when accessibleName is not set", () => {
|
|
693
|
+
cy.get("[udex-tab-navigation]")
|
|
694
|
+
.shadow()
|
|
695
|
+
.find("[role='tablist']")
|
|
696
|
+
.should("not.have.attr", "aria-label");
|
|
697
|
+
});
|
|
698
|
+
|
|
699
|
+
it("exposes accessibleName as aria-label on the tab list", () => {
|
|
700
|
+
cy.mount(
|
|
701
|
+
<UDExTabNavigation accessibleName="Profile navigation">
|
|
702
|
+
<UDExTab text="Privacy" selected>
|
|
703
|
+
<div>Privacy content</div>
|
|
704
|
+
</UDExTab>
|
|
705
|
+
<UDExTab text="Security">
|
|
706
|
+
<div>Security content</div>
|
|
707
|
+
</UDExTab>
|
|
708
|
+
</UDExTabNavigation>
|
|
709
|
+
);
|
|
710
|
+
|
|
711
|
+
cy.get("[udex-tab-navigation]")
|
|
712
|
+
.shadow()
|
|
713
|
+
.find("[role='tablist']")
|
|
714
|
+
.should("have.attr", "aria-label", "Profile navigation");
|
|
715
|
+
});
|
|
716
|
+
|
|
717
|
+
it("removes the aria-label when accessibleName is cleared", () => {
|
|
718
|
+
cy.mount(
|
|
719
|
+
<UDExTabNavigation accessibleName="Profile navigation">
|
|
720
|
+
<UDExTab text="Privacy" selected>
|
|
721
|
+
<div>Privacy content</div>
|
|
722
|
+
</UDExTab>
|
|
723
|
+
<UDExTab text="Security">
|
|
724
|
+
<div>Security content</div>
|
|
725
|
+
</UDExTab>
|
|
726
|
+
</UDExTabNavigation>
|
|
727
|
+
);
|
|
728
|
+
|
|
729
|
+
cy.get("[udex-tab-navigation]").then($el => {
|
|
730
|
+
($el[0] as UDExTabNavigation).accessibleName = "";
|
|
731
|
+
});
|
|
732
|
+
|
|
733
|
+
cy.get("[udex-tab-navigation]")
|
|
734
|
+
.shadow()
|
|
735
|
+
.find("[role='tablist']")
|
|
736
|
+
.should("not.have.attr", "aria-label");
|
|
737
|
+
});
|
|
738
|
+
|
|
684
739
|
it("has correct tabindex on selected tab", () => {
|
|
685
740
|
cy.get("[udex-tab-navigation]")
|
|
686
741
|
.shadow()
|
|
@@ -826,15 +881,15 @@ describe("Tab Navigation component", () => {
|
|
|
826
881
|
it("displays body text content correctly for each vertical tab", () => {
|
|
827
882
|
cy.mount(
|
|
828
883
|
<UDExTabNavigation orientation="Vertical">
|
|
829
|
-
<UDExTab
|
|
830
|
-
text="Settings"
|
|
831
|
-
bodyText="Configure your preferences"
|
|
884
|
+
<UDExTab
|
|
885
|
+
text="Settings"
|
|
886
|
+
bodyText="Configure your preferences"
|
|
832
887
|
selected
|
|
833
888
|
>
|
|
834
889
|
<div>Settings content</div>
|
|
835
890
|
</UDExTab>
|
|
836
|
-
<UDExTab
|
|
837
|
-
text="Account"
|
|
891
|
+
<UDExTab
|
|
892
|
+
text="Account"
|
|
838
893
|
bodyText="Manage your account"
|
|
839
894
|
>
|
|
840
895
|
<div>Account content</div>
|
|
@@ -1046,7 +1101,7 @@ describe("Tab Navigation component", () => {
|
|
|
1046
1101
|
cy.mount(
|
|
1047
1102
|
<UDExTabNavigation orientation={UDExTabNavigationOrientation.Vertical}>
|
|
1048
1103
|
<UDExTab text="Account" body-text="Privacy settings" selected>
|
|
1049
|
-
<
|
|
1104
|
+
<UDExLink slot="link" href="https://sap.com/" design="Default">Privacy Policy</UDExLink>
|
|
1050
1105
|
<div>Account content</div>
|
|
1051
1106
|
</UDExTab>
|
|
1052
1107
|
<UDExTab text="Settings">
|
|
@@ -1065,8 +1120,8 @@ describe("Tab Navigation component", () => {
|
|
|
1065
1120
|
cy.mount(
|
|
1066
1121
|
<UDExTabNavigation orientation={UDExTabNavigationOrientation.Vertical}>
|
|
1067
1122
|
<UDExTab text="Account" selected>
|
|
1068
|
-
<
|
|
1069
|
-
<
|
|
1123
|
+
<UDExLink slot="link" href="https://sap.com/privacy" design="Default">Privacy Policy</UDExLink>
|
|
1124
|
+
<UDExLink slot="link" href="https://sap.com/terms" design="Default">Terms of Service</UDExLink>
|
|
1070
1125
|
<div>Account content</div>
|
|
1071
1126
|
</UDExTab>
|
|
1072
1127
|
<UDExTab text="Settings">
|
|
@@ -1085,11 +1140,11 @@ describe("Tab Navigation component", () => {
|
|
|
1085
1140
|
cy.mount(
|
|
1086
1141
|
<UDExTabNavigation orientation={UDExTabNavigationOrientation.Vertical}>
|
|
1087
1142
|
<UDExTab text="Account" selected>
|
|
1088
|
-
<
|
|
1143
|
+
<UDExLink slot="link" href="https://sap.com/" design="Default">Privacy Policy</UDExLink>
|
|
1089
1144
|
<div>Account content</div>
|
|
1090
1145
|
</UDExTab>
|
|
1091
1146
|
<UDExTab text="Settings">
|
|
1092
|
-
<
|
|
1147
|
+
<UDExLink slot="link" href="https://sap.com/" design="Default">Terms of Service</UDExLink>
|
|
1093
1148
|
<div>Settings content</div>
|
|
1094
1149
|
</UDExTab>
|
|
1095
1150
|
</UDExTabNavigation>
|
|
@@ -1117,7 +1172,7 @@ describe("Tab Navigation component", () => {
|
|
|
1117
1172
|
<div>Account content</div>
|
|
1118
1173
|
</UDExTab>
|
|
1119
1174
|
<UDExTab text="Settings">
|
|
1120
|
-
<
|
|
1175
|
+
<UDExLink slot="link" href="https://sap.com/" design="Default">Privacy Policy</UDExLink>
|
|
1121
1176
|
<div>Settings content</div>
|
|
1122
1177
|
</UDExTab>
|
|
1123
1178
|
</UDExTabNavigation>
|
|
@@ -1139,7 +1194,7 @@ describe("Tab Navigation component", () => {
|
|
|
1139
1194
|
cy.mount(
|
|
1140
1195
|
<UDExTabNavigation orientation={UDExTabNavigationOrientation.Horizontal}>
|
|
1141
1196
|
<UDExTab text="Account" selected>
|
|
1142
|
-
<
|
|
1197
|
+
<UDExLink slot="link" href="https://sap.com/" design="Default">Privacy Policy</UDExLink>
|
|
1143
1198
|
<div>Account content</div>
|
|
1144
1199
|
</UDExTab>
|
|
1145
1200
|
<UDExTab text="Settings">
|
|
@@ -1983,6 +2038,198 @@ describe("Tab Navigation component", () => {
|
|
|
1983
2038
|
});
|
|
1984
2039
|
});
|
|
1985
2040
|
|
|
2041
|
+
// DOM-measurement-based overflow does not work in Cypress component tests
|
|
2042
|
+
// (see the skipped overflow suites above), so we move tabs into the overflow
|
|
2043
|
+
// popover programmatically. The popover only renders once _overflowItems has
|
|
2044
|
+
// length, so we populate it first, wait for the popover to mount, then open it.
|
|
2045
|
+
const openOverflowPopover = (overflowStartIndex: number) => {
|
|
2046
|
+
// 1. Set _overflowItems and stub updateOverflowItems so onBeforeRendering
|
|
2047
|
+
// cannot reset it back to [] (which it would, because no tabs are hidden
|
|
2048
|
+
// in the Cypress layout environment).
|
|
2049
|
+
cy.get("[udex-tab-navigation]").then($el => {
|
|
2050
|
+
const nav = $el[0] as any;
|
|
2051
|
+
// Stub first so onBeforeRendering cannot reset _overflowItems.
|
|
2052
|
+
nav.updateOverflowItems = () => {};
|
|
2053
|
+
// Setting the property triggers the internal re-render via the UI5 setter.
|
|
2054
|
+
nav._overflowItems = Array.from(nav.items).slice(overflowStartIndex);
|
|
2055
|
+
});
|
|
2056
|
+
|
|
2057
|
+
// 2. Once the popover is in the DOM, open it using the More button as opener.
|
|
2058
|
+
cy.get("[udex-tab-navigation]").shadow().find("[ui5-popover]").should("exist");
|
|
2059
|
+
cy.get("[udex-tab-navigation]").then($el => {
|
|
2060
|
+
const nav = $el[0] as any;
|
|
2061
|
+
nav._popover = nav.getResponsePopover();
|
|
2062
|
+
nav._popover.opener = nav.getMoreButton();
|
|
2063
|
+
nav._popover.open = true;
|
|
2064
|
+
nav._isExpanded = true;
|
|
2065
|
+
// updateOverflowItems is stubbed, so it never removes the hidden attribute.
|
|
2066
|
+
// Unhide the More button so it can receive focus (e.g. on Escape).
|
|
2067
|
+
nav.getMoreButton()?.removeAttribute("hidden");
|
|
2068
|
+
});
|
|
2069
|
+
|
|
2070
|
+
// 3. Wait for the overflow tab buttons to be in the DOM.
|
|
2071
|
+
cy.get("[udex-tab-navigation]")
|
|
2072
|
+
.shadow()
|
|
2073
|
+
.find(".udex-tab-overflow__button")
|
|
2074
|
+
.should("exist");
|
|
2075
|
+
};
|
|
2076
|
+
|
|
2077
|
+
describe("Overflow dropdown — disabled tab navigation", () => {
|
|
2078
|
+
|
|
2079
|
+
it("disabled item has aria-disabled and is not interactive", () => {
|
|
2080
|
+
const tabSelectStub = cy.stub().as("tabSelect");
|
|
2081
|
+
|
|
2082
|
+
cy.mount(
|
|
2083
|
+
<UDExTabNavigation>
|
|
2084
|
+
<UDExTab text="Tab 1" selected><div>Content 1</div></UDExTab>
|
|
2085
|
+
<UDExTab text="Tab 2" disabled><div>Content 2</div></UDExTab>
|
|
2086
|
+
<UDExTab text="Tab 3"><div>Content 3</div></UDExTab>
|
|
2087
|
+
</UDExTabNavigation>
|
|
2088
|
+
);
|
|
2089
|
+
|
|
2090
|
+
cy.get("[udex-tab-navigation]").then($el => {
|
|
2091
|
+
$el[0].addEventListener("tab-select", tabSelectStub);
|
|
2092
|
+
});
|
|
2093
|
+
|
|
2094
|
+
openOverflowPopover(1); // overflow: Tab 2 (disabled), Tab 3
|
|
2095
|
+
|
|
2096
|
+
// The disabled overflow item reflects aria-disabled="true".
|
|
2097
|
+
cy.get("[udex-tab-navigation]")
|
|
2098
|
+
.shadow()
|
|
2099
|
+
.find(".udex-tab-overflow__button[aria-disabled='true']")
|
|
2100
|
+
.should("contain.text", "Tab 2");
|
|
2101
|
+
|
|
2102
|
+
// Clicking the disabled item must not select it nor fire tab-select.
|
|
2103
|
+
cy.get("[udex-tab-navigation]")
|
|
2104
|
+
.shadow()
|
|
2105
|
+
.find(".udex-tab-overflow__button[aria-disabled='true']")
|
|
2106
|
+
.click({ force: true });
|
|
2107
|
+
|
|
2108
|
+
cy.get("@tabSelect").should("not.have.been.called");
|
|
2109
|
+
|
|
2110
|
+
// Tab 1 remains the selected (active) header tab.
|
|
2111
|
+
cy.get("[udex-tab-navigation]")
|
|
2112
|
+
.shadow()
|
|
2113
|
+
.find(".udex-tab-navigation__button-tab--active")
|
|
2114
|
+
.should("contain.text", "Tab 1");
|
|
2115
|
+
});
|
|
2116
|
+
|
|
2117
|
+
it("arrow navigation skips disabled items", () => {
|
|
2118
|
+
cy.mount(
|
|
2119
|
+
<UDExTabNavigation>
|
|
2120
|
+
<UDExTab text="Tab 1" selected><div>Content 1</div></UDExTab>
|
|
2121
|
+
<UDExTab text="Tab 2" disabled><div>Content 2</div></UDExTab>
|
|
2122
|
+
<UDExTab text="Tab 3"><div>Content 3</div></UDExTab>
|
|
2123
|
+
<UDExTab text="Tab 4" disabled><div>Content 4</div></UDExTab>
|
|
2124
|
+
<UDExTab text="Tab 5"><div>Content 5</div></UDExTab>
|
|
2125
|
+
</UDExTabNavigation>
|
|
2126
|
+
);
|
|
2127
|
+
|
|
2128
|
+
openOverflowPopover(1); // overflow: Tab 2 (disabled), Tab 3, Tab 4 (disabled), Tab 5
|
|
2129
|
+
|
|
2130
|
+
// ArrowDown from Tab 3 (index 1) skips disabled Tab 4 and lands on Tab 5.
|
|
2131
|
+
// onNextItemInPopover sets tabindex="0" on the destination item.
|
|
2132
|
+
cy.get("[udex-tab-navigation]").then($el => {
|
|
2133
|
+
const nav = $el[0] as any;
|
|
2134
|
+
const items: HTMLElement[] = nav.getItemsFromPopover();
|
|
2135
|
+
items.forEach((item, i) => item.setAttribute("tabindex", i === 1 ? "0" : "-1"));
|
|
2136
|
+
nav.onNextItemInPopover(items[1]);
|
|
2137
|
+
});
|
|
2138
|
+
cy.get("[udex-tab-navigation]").shadow()
|
|
2139
|
+
.find(".udex-tab-overflow__button").contains("Tab 5")
|
|
2140
|
+
.should("have.attr", "tabindex", "0");
|
|
2141
|
+
|
|
2142
|
+
// ArrowUp from Tab 3 (index 1) skips disabled Tab 2 and wraps back to Tab 5.
|
|
2143
|
+
cy.get("[udex-tab-navigation]").then($el => {
|
|
2144
|
+
const nav = $el[0] as any;
|
|
2145
|
+
const items: HTMLElement[] = nav.getItemsFromPopover();
|
|
2146
|
+
items.forEach((item, i) => item.setAttribute("tabindex", i === 1 ? "0" : "-1"));
|
|
2147
|
+
nav.onPreviousItemInPopover(items[1]);
|
|
2148
|
+
});
|
|
2149
|
+
cy.get("[udex-tab-navigation]").shadow()
|
|
2150
|
+
.find(".udex-tab-overflow__button").contains("Tab 5")
|
|
2151
|
+
.should("have.attr", "tabindex", "0");
|
|
2152
|
+
});
|
|
2153
|
+
|
|
2154
|
+
it("focus moves to first non-disabled item on open when first item is disabled", () => {
|
|
2155
|
+
cy.mount(
|
|
2156
|
+
<UDExTabNavigation>
|
|
2157
|
+
<UDExTab text="Tab 1" selected><div>Content 1</div></UDExTab>
|
|
2158
|
+
<UDExTab text="Tab 2" disabled><div>Content 2</div></UDExTab>
|
|
2159
|
+
<UDExTab text="Tab 3"><div>Content 3</div></UDExTab>
|
|
2160
|
+
<UDExTab text="Tab 4"><div>Content 4</div></UDExTab>
|
|
2161
|
+
</UDExTabNavigation>
|
|
2162
|
+
);
|
|
2163
|
+
|
|
2164
|
+
openOverflowPopover(1); // overflow: Tab 2 (disabled), Tab 3, Tab 4
|
|
2165
|
+
|
|
2166
|
+
// onFocusFirstItemPopover sets tabindex="0" on the first non-disabled item.
|
|
2167
|
+
cy.get("[udex-tab-navigation]").then($el => {
|
|
2168
|
+
($el[0] as any).onFocusFirstItemPopover();
|
|
2169
|
+
});
|
|
2170
|
+
cy.get("[udex-tab-navigation]").shadow()
|
|
2171
|
+
.find(".udex-tab-overflow__button").contains("Tab 3")
|
|
2172
|
+
.should("have.attr", "tabindex", "0");
|
|
2173
|
+
});
|
|
2174
|
+
|
|
2175
|
+
it("Home key moves focus to first non-disabled item", () => {
|
|
2176
|
+
cy.mount(
|
|
2177
|
+
<UDExTabNavigation>
|
|
2178
|
+
<UDExTab text="Tab 1" selected><div>Content 1</div></UDExTab>
|
|
2179
|
+
<UDExTab text="Tab 2" disabled><div>Content 2</div></UDExTab>
|
|
2180
|
+
<UDExTab text="Tab 3"><div>Content 3</div></UDExTab>
|
|
2181
|
+
<UDExTab text="Tab 4"><div>Content 4</div></UDExTab>
|
|
2182
|
+
</UDExTabNavigation>
|
|
2183
|
+
);
|
|
2184
|
+
|
|
2185
|
+
openOverflowPopover(1); // overflow: Tab 2 (disabled), Tab 3, Tab 4
|
|
2186
|
+
|
|
2187
|
+
// Spy on .focus() calls to assert which item handleHome targets.
|
|
2188
|
+
cy.get("[udex-tab-navigation]").then($el => {
|
|
2189
|
+
const nav = $el[0] as any;
|
|
2190
|
+
const items: HTMLElement[] = nav.getItemsFromPopover();
|
|
2191
|
+
let focusedItem: HTMLElement | undefined;
|
|
2192
|
+
items.forEach(item => {
|
|
2193
|
+
const orig = item.focus.bind(item);
|
|
2194
|
+
item.focus = () => { focusedItem = item; orig(); };
|
|
2195
|
+
});
|
|
2196
|
+
const e = new KeyboardEvent("keydown", { key: "Home", keyCode: 36, bubbles: true, cancelable: true });
|
|
2197
|
+
nav.handleHome(e);
|
|
2198
|
+
// Tab 3 (index 1) is the first non-disabled item; Tab 2 (index 0) must be skipped.
|
|
2199
|
+
expect(focusedItem).to.equal(items[1]);
|
|
2200
|
+
});
|
|
2201
|
+
});
|
|
2202
|
+
|
|
2203
|
+
it("End key moves focus to last non-disabled item", () => {
|
|
2204
|
+
cy.mount(
|
|
2205
|
+
<UDExTabNavigation>
|
|
2206
|
+
<UDExTab text="Tab 1" selected><div>Content 1</div></UDExTab>
|
|
2207
|
+
<UDExTab text="Tab 2"><div>Content 2</div></UDExTab>
|
|
2208
|
+
<UDExTab text="Tab 3"><div>Content 3</div></UDExTab>
|
|
2209
|
+
<UDExTab text="Tab 4"><div>Content 4</div></UDExTab>
|
|
2210
|
+
<UDExTab text="Tab 5" disabled><div>Content 5</div></UDExTab>
|
|
2211
|
+
</UDExTabNavigation>
|
|
2212
|
+
);
|
|
2213
|
+
|
|
2214
|
+
openOverflowPopover(2); // overflow: Tab 3, Tab 4, Tab 5 (disabled)
|
|
2215
|
+
|
|
2216
|
+
// Spy on .focus() calls to assert which item handleEnd targets.
|
|
2217
|
+
cy.get("[udex-tab-navigation]").then($el => {
|
|
2218
|
+
const nav = $el[0] as any;
|
|
2219
|
+
const items: HTMLElement[] = nav.getItemsFromPopover();
|
|
2220
|
+
let focusedItem: HTMLElement | undefined;
|
|
2221
|
+
items.forEach(item => {
|
|
2222
|
+
const orig = item.focus.bind(item);
|
|
2223
|
+
item.focus = () => { focusedItem = item; orig(); };
|
|
2224
|
+
});
|
|
2225
|
+
const e = new KeyboardEvent("keydown", { key: "End", keyCode: 35, bubbles: true, cancelable: true });
|
|
2226
|
+
nav.handleEnd(e);
|
|
2227
|
+
// Tab 4 (index 1) is the last non-disabled item; Tab 5 (index 2) must be skipped.
|
|
2228
|
+
expect(focusedItem).to.equal(items[1]);
|
|
2229
|
+
});
|
|
2230
|
+
});
|
|
2231
|
+
});
|
|
2232
|
+
|
|
1986
2233
|
// ── Process Tab variant ──────────────────────────────────────────────────────
|
|
1987
2234
|
|
|
1988
2235
|
describe("TabNavigation - Process Tab variant", () => {
|
|
@@ -2376,4 +2623,87 @@ describe("Tab Navigation component", () => {
|
|
|
2376
2623
|
});
|
|
2377
2624
|
});
|
|
2378
2625
|
});
|
|
2626
|
+
|
|
2627
|
+
describe("Overflow dropdown — focus management", () => {
|
|
2628
|
+
it("pressing Escape closes the popover and moves focus to the More button", () => {
|
|
2629
|
+
cy.mount(
|
|
2630
|
+
<UDExTabNavigation>
|
|
2631
|
+
<UDExTab text="Tab 1" selected><div>Content 1</div></UDExTab>
|
|
2632
|
+
<UDExTab text="Tab 2"><div>Content 2</div></UDExTab>
|
|
2633
|
+
<UDExTab text="Tab 3"><div>Content 3</div></UDExTab>
|
|
2634
|
+
</UDExTabNavigation>
|
|
2635
|
+
);
|
|
2636
|
+
|
|
2637
|
+
openOverflowPopover(1);
|
|
2638
|
+
|
|
2639
|
+
cy.get("[udex-tab-navigation]").then($el => {
|
|
2640
|
+
const nav = $el[0] as any;
|
|
2641
|
+
const e = new KeyboardEvent("keydown", { key: "Escape", keyCode: 27, bubbles: true, cancelable: true });
|
|
2642
|
+
nav.handleEscape(e);
|
|
2643
|
+
});
|
|
2644
|
+
|
|
2645
|
+
cy.get("[udex-tab-navigation]")
|
|
2646
|
+
.shadow()
|
|
2647
|
+
.find("[ui5-popover]")
|
|
2648
|
+
.should("not.have.attr", "open");
|
|
2649
|
+
|
|
2650
|
+
cy.get("[udex-tab-navigation]")
|
|
2651
|
+
.shadow()
|
|
2652
|
+
.find(".udex-tab-navigation__button-more")
|
|
2653
|
+
.shadow()
|
|
2654
|
+
.find("button")
|
|
2655
|
+
.should("be.focused");
|
|
2656
|
+
});
|
|
2657
|
+
|
|
2658
|
+
it("clicking an overflow item moves focus to the selected tab in the header", () => {
|
|
2659
|
+
cy.mount(
|
|
2660
|
+
<UDExTabNavigation>
|
|
2661
|
+
<UDExTab text="Tab 1" selected><div>Content 1</div></UDExTab>
|
|
2662
|
+
<UDExTab text="Tab 2"><div>Content 2</div></UDExTab>
|
|
2663
|
+
<UDExTab text="Tab 3"><div>Content 3</div></UDExTab>
|
|
2664
|
+
</UDExTabNavigation>
|
|
2665
|
+
);
|
|
2666
|
+
|
|
2667
|
+
openOverflowPopover(1);
|
|
2668
|
+
|
|
2669
|
+
cy.get("[udex-tab-navigation]")
|
|
2670
|
+
.shadow()
|
|
2671
|
+
.find(".udex-tab-overflow__button")
|
|
2672
|
+
.contains("Tab 2")
|
|
2673
|
+
.click({ force: true });
|
|
2674
|
+
|
|
2675
|
+
cy.get("[udex-tab-navigation]")
|
|
2676
|
+
.shadow()
|
|
2677
|
+
.find(".udex-tab-navigation__button-tab[aria-selected='true']")
|
|
2678
|
+
.should("contain.text", "Tab 2")
|
|
2679
|
+
.and("be.focused");
|
|
2680
|
+
});
|
|
2681
|
+
|
|
2682
|
+
it("pressing Enter on an overflow item moves focus to the selected tab in the header", () => {
|
|
2683
|
+
cy.mount(
|
|
2684
|
+
<UDExTabNavigation>
|
|
2685
|
+
<UDExTab text="Tab 1" selected><div>Content 1</div></UDExTab>
|
|
2686
|
+
<UDExTab text="Tab 2"><div>Content 2</div></UDExTab>
|
|
2687
|
+
<UDExTab text="Tab 3"><div>Content 3</div></UDExTab>
|
|
2688
|
+
</UDExTabNavigation>
|
|
2689
|
+
);
|
|
2690
|
+
|
|
2691
|
+
openOverflowPopover(1);
|
|
2692
|
+
|
|
2693
|
+
cy.get("[udex-tab-navigation]").then($el => {
|
|
2694
|
+
const nav = $el[0] as any;
|
|
2695
|
+
const items: HTMLElement[] = nav.getItemsFromPopover();
|
|
2696
|
+
const tab2Item = items.find((item) => item.textContent?.trim().startsWith("Tab 2"))!;
|
|
2697
|
+
const e = new KeyboardEvent("keydown", { key: "Enter", keyCode: 13, bubbles: true, cancelable: true });
|
|
2698
|
+
Object.defineProperty(e, "target", { value: tab2Item, configurable: true });
|
|
2699
|
+
nav.handleEnterOrSpace(e);
|
|
2700
|
+
});
|
|
2701
|
+
|
|
2702
|
+
cy.get("[udex-tab-navigation]")
|
|
2703
|
+
.shadow()
|
|
2704
|
+
.find(".udex-tab-navigation__button-tab[aria-selected='true']")
|
|
2705
|
+
.should("contain.text", "Tab 2")
|
|
2706
|
+
.and("be.focused");
|
|
2707
|
+
});
|
|
2708
|
+
});
|
|
2379
2709
|
});
|
|
@@ -67,7 +67,7 @@ describe("TagGroup", () => {
|
|
|
67
67
|
const nMore = cy.get("[udex-tag-group]").shadow().find(".udex-tag-group__tokenizer").shadow().find(".ui5-tokenizer-more-text")
|
|
68
68
|
nMore.click()
|
|
69
69
|
cy.get("[udex-tag-group]").shadow().find(".udex-tag-group-tooltip__content").then($tooltip => {
|
|
70
|
-
expect($tooltip.find(".udex-tag-group__tag")).lengthOf(
|
|
70
|
+
expect($tooltip.find(".udex-tag-group__tag")).lengthOf(10)
|
|
71
71
|
})
|
|
72
72
|
});
|
|
73
73
|
|
package/dist/List.d.ts
CHANGED
|
@@ -113,6 +113,15 @@ declare class UDExList extends UI5Element {
|
|
|
113
113
|
handleKeyDown(e: KeyboardEvent): void;
|
|
114
114
|
handleArrowRight(e: KeyboardEvent): void;
|
|
115
115
|
handleArrowLeft(e: KeyboardEvent): void;
|
|
116
|
+
/**
|
|
117
|
+
* Arrow-key expand/collapse toggles `collapsed` directly here (multi-select
|
|
118
|
+
* headers deliver Left/Right to the List, not to the header's own key handler),
|
|
119
|
+
* so the `accordion-icon-click` event that drives the collapse/expand live-region
|
|
120
|
+
* announcement is never fired on this path. Re-emit it from the header so
|
|
121
|
+
* SearchableListBase announces the new state to screen readers, matching the
|
|
122
|
+
* chevron/pointer and single-select paths.
|
|
123
|
+
*/
|
|
124
|
+
fireAccordionToggle(target: UDExListItemBase): void;
|
|
116
125
|
handleUpArrow(e: KeyboardEvent): void;
|
|
117
126
|
handleDownArrow(e: KeyboardEvent): void;
|
|
118
127
|
handleHomeKey(e: KeyboardEvent): void;
|
|
@@ -158,7 +167,12 @@ declare class UDExList extends UI5Element {
|
|
|
158
167
|
* SingleContent is informational so "list"/"listitem" is the correct semantic.
|
|
159
168
|
*/
|
|
160
169
|
get singleContentRole(): string;
|
|
161
|
-
/**
|
|
170
|
+
/**
|
|
171
|
+
* aria-multiselectable is exposed for every MultiSelect list — the flat listbox
|
|
172
|
+
* and the collapsible tree alike. It is required so the screen reader announces
|
|
173
|
+
* each option's selected / not-selected state (from aria-selected) instead of
|
|
174
|
+
* treating the container as single-select and announcing only the active option.
|
|
175
|
+
*/
|
|
162
176
|
get _listAriaMultiSelectable(): string | undefined;
|
|
163
177
|
}
|
|
164
178
|
export default UDExList;
|
package/dist/List.js
CHANGED
|
@@ -118,6 +118,7 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
|
|
|
118
118
|
if (target.isGroup && target.hasAttribute("collapsible") && target.collapsed) {
|
|
119
119
|
target.collapsed = false;
|
|
120
120
|
this.setCollapsedItems(false, target);
|
|
121
|
+
this.fireAccordionToggle(target);
|
|
121
122
|
}
|
|
122
123
|
}
|
|
123
124
|
handleArrowLeft(e) {
|
|
@@ -125,8 +126,23 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
|
|
|
125
126
|
if (target.isGroup && target.hasAttribute("collapsible") && !target.collapsed) {
|
|
126
127
|
target.collapsed = true;
|
|
127
128
|
this.setCollapsedItems(true, target);
|
|
129
|
+
this.fireAccordionToggle(target);
|
|
128
130
|
}
|
|
129
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Arrow-key expand/collapse toggles `collapsed` directly here (multi-select
|
|
134
|
+
* headers deliver Left/Right to the List, not to the header's own key handler),
|
|
135
|
+
* so the `accordion-icon-click` event that drives the collapse/expand live-region
|
|
136
|
+
* announcement is never fired on this path. Re-emit it from the header so
|
|
137
|
+
* SearchableListBase announces the new state to screen readers, matching the
|
|
138
|
+
* chevron/pointer and single-select paths.
|
|
139
|
+
*/
|
|
140
|
+
fireAccordionToggle(target) {
|
|
141
|
+
target.dispatchEvent(new CustomEvent("accordion-icon-click", {
|
|
142
|
+
bubbles: true,
|
|
143
|
+
detail: { collapsed: target.collapsed },
|
|
144
|
+
}));
|
|
145
|
+
}
|
|
130
146
|
handleUpArrow(e) {
|
|
131
147
|
e.preventDefault();
|
|
132
148
|
const items = this.getKeyboardNavigationItems();
|
|
@@ -454,9 +470,14 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
|
|
|
454
470
|
get singleContentRole() {
|
|
455
471
|
return this.accessibleRole !== "listbox" ? this.accessibleRole : "list";
|
|
456
472
|
}
|
|
457
|
-
/**
|
|
473
|
+
/**
|
|
474
|
+
* aria-multiselectable is exposed for every MultiSelect list — the flat listbox
|
|
475
|
+
* and the collapsible tree alike. It is required so the screen reader announces
|
|
476
|
+
* each option's selected / not-selected state (from aria-selected) instead of
|
|
477
|
+
* treating the container as single-select and announcing only the active option.
|
|
478
|
+
*/
|
|
458
479
|
get _listAriaMultiSelectable() {
|
|
459
|
-
return
|
|
480
|
+
return this.modeMultiSelect ? "true" : undefined;
|
|
460
481
|
}
|
|
461
482
|
};
|
|
462
483
|
__decorate([
|