@nova-design-system/nova-react 3.0.0-beta.43 → 3.0.0-beta.44
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/dist/cjs/index-BZCQTWfv.js +26372 -0
- package/dist/cjs/index-B_VOAJzk.js +26373 -0
- package/dist/cjs/index-CDe7nrrW.js +26373 -0
- package/dist/cjs/index-CEWbQ5nh.js +26373 -0
- package/dist/cjs/index-CIcUUomJ.js +26373 -0
- package/dist/cjs/index-CtI3SivD.js +26373 -0
- package/dist/cjs/index-wDACGzKb.js +26373 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/nv-alert.entry-B-P-Fgdo.js +173 -0
- package/dist/cjs/nv-alert.entry-B3NpZh1C.js +173 -0
- package/dist/cjs/nv-alert.entry-BU86GY-d.js +173 -0
- package/dist/cjs/nv-alert.entry-CwZcD170.js +173 -0
- package/dist/cjs/nv-alert.entry-CxSN1zpW.js +173 -0
- package/dist/cjs/nv-alert.entry-DsoqN5tQ.js +173 -0
- package/dist/cjs/nv-alert.entry-xuY-Lvuj.js +173 -0
- package/dist/cjs/nv-avatar.entry-CFgnor0-.js +67 -0
- package/dist/cjs/nv-avatar.entry-DJkpupVT.js +67 -0
- package/dist/cjs/nv-avatar.entry-DKXMQPOz.js +67 -0
- package/dist/cjs/nv-avatar.entry-DWOADxdQ.js +67 -0
- package/dist/cjs/nv-avatar.entry-DjyiGt07.js +67 -0
- package/dist/cjs/nv-avatar.entry-DuN1d3Vy.js +67 -0
- package/dist/cjs/nv-avatar.entry-yyLQEqI7.js +67 -0
- package/dist/cjs/nv-badge_2.entry-BFURAuBQ.js +195 -0
- package/dist/cjs/nv-badge_2.entry-BQXL0ZhP.js +195 -0
- package/dist/cjs/nv-badge_2.entry-CJQWS2xG.js +195 -0
- package/dist/cjs/nv-badge_2.entry-D0jeqYIQ.js +195 -0
- package/dist/cjs/nv-badge_2.entry-DKGHx4c8.js +194 -0
- package/dist/cjs/nv-badge_2.entry-Drgx-565.js +195 -0
- package/dist/cjs/nv-badge_2.entry-im1VnU5f.js +195 -0
- package/dist/cjs/nv-base.entry-9HF044Di.js +71 -0
- package/dist/cjs/nv-base.entry-BmY-1Lne.js +71 -0
- package/dist/cjs/nv-base.entry-BuxI7QmU.js +71 -0
- package/dist/cjs/nv-base.entry-CcaAXjnO.js +71 -0
- package/dist/cjs/nv-base.entry-Ch8ncPl0.js +71 -0
- package/dist/cjs/nv-base.entry-D7gUvPIG.js +71 -0
- package/dist/cjs/nv-base.entry-c723sI4Y.js +71 -0
- package/dist/cjs/nv-breadcrumb.entry-B9rOxsg_.js +45 -0
- package/dist/cjs/nv-breadcrumb.entry-BtM_AHRC.js +45 -0
- package/dist/cjs/nv-breadcrumb.entry-C-xHbSJw.js +45 -0
- package/dist/cjs/nv-breadcrumb.entry-CL9l0Wkr.js +45 -0
- package/dist/cjs/nv-breadcrumb.entry-CxGReUqZ.js +45 -0
- package/dist/cjs/nv-breadcrumb.entry-LYt0sALP.js +45 -0
- package/dist/cjs/nv-breadcrumb.entry-wy-P2BMg.js +45 -0
- package/dist/cjs/nv-breadcrumbs.entry-9LlUycIv.js +20 -0
- package/dist/cjs/nv-breadcrumbs.entry-B7CaTbBe.js +20 -0
- package/dist/cjs/nv-breadcrumbs.entry-BA-TnreZ.js +20 -0
- package/dist/cjs/nv-breadcrumbs.entry-CEmZ3yFi.js +20 -0
- package/dist/cjs/nv-breadcrumbs.entry-De5lsjQf.js +20 -0
- package/dist/cjs/nv-breadcrumbs.entry-_w38BddR.js +20 -0
- package/dist/cjs/nv-breadcrumbs.entry-ubxLcEUH.js +20 -0
- package/dist/cjs/nv-button.entry-B3rEQuGV.js +162 -0
- package/dist/cjs/nv-button.entry-B5-Wf9hh.js +162 -0
- package/dist/cjs/nv-button.entry-CBNfIn-r.js +162 -0
- package/dist/cjs/nv-button.entry-D-DPQDNM.js +162 -0
- package/dist/cjs/nv-button.entry-DHZX7KH4.js +162 -0
- package/dist/cjs/nv-button.entry-DLoECCSK.js +162 -0
- package/dist/cjs/nv-button.entry-Dk6DqHG2.js +162 -0
- package/dist/cjs/nv-calendar.entry-BeCCaAVE.js +1036 -0
- package/dist/cjs/nv-calendar.entry-DNyH8T5e.js +1036 -0
- package/dist/cjs/nv-calendar.entry-DSWhDnEC.js +1036 -0
- package/dist/cjs/nv-calendar.entry-DUHckAh3.js +1036 -0
- package/dist/cjs/nv-calendar.entry-NU1TumeS.js +1036 -0
- package/dist/cjs/nv-calendar.entry-UUE6v4YC.js +1036 -0
- package/dist/cjs/nv-calendar.entry-ZtfR2qOV.js +1036 -0
- package/dist/cjs/nv-col.entry-B5nCHhbO.js +37 -0
- package/dist/cjs/nv-col.entry-Bx1VZSMw.js +37 -0
- package/dist/cjs/nv-col.entry-C400BeEE.js +37 -0
- package/dist/cjs/nv-col.entry-CYjFAVMF.js +37 -0
- package/dist/cjs/nv-col.entry-DDEtfCv-.js +37 -0
- package/dist/cjs/nv-col.entry-DqzImLSJ.js +37 -0
- package/dist/cjs/nv-col.entry-DtYBQEJz.js +37 -0
- package/dist/cjs/nv-datagrid.entry-5VIvkJGL.js +3671 -0
- package/dist/cjs/nv-datagrid.entry-Ba9sfMQp.js +3671 -0
- package/dist/cjs/nv-datagrid.entry-Beehe_Sq.js +3671 -0
- package/dist/cjs/nv-datagrid.entry-CkD_jV75.js +3671 -0
- package/dist/cjs/nv-datagrid.entry-D6p67Pa6.js +3671 -0
- package/dist/cjs/nv-datagrid.entry-DKqScS8N.js +3671 -0
- package/dist/cjs/nv-datagrid.entry-ee865R4b.js +3671 -0
- package/dist/cjs/nv-datagridcolumn.entry-BeGXaBUe.js +18 -0
- package/dist/cjs/nv-datagridcolumn.entry-BodICzof.js +18 -0
- package/dist/cjs/nv-datagridcolumn.entry-C_FtSltZ.js +18 -0
- package/dist/cjs/nv-datagridcolumn.entry-D1cyTR_G.js +18 -0
- package/dist/cjs/nv-datagridcolumn.entry-DRE7BDkk.js +18 -0
- package/dist/cjs/nv-datagridcolumn.entry-Du6-7fjr.js +18 -0
- package/dist/cjs/nv-datagridcolumn.entry-N70Aen6Q.js +18 -0
- package/dist/cjs/nv-dialog.entry-BgHknrOx.js +784 -0
- package/dist/cjs/nv-dialog.entry-C1hg-EG1.js +784 -0
- package/dist/cjs/nv-dialog.entry-COv2do_O.js +784 -0
- package/dist/cjs/nv-dialog.entry-Ck2hU43g.js +784 -0
- package/dist/cjs/nv-dialog.entry-Cl8iLrCo.js +784 -0
- package/dist/cjs/nv-dialog.entry-Cy71tlWz.js +784 -0
- package/dist/cjs/nv-dialog.entry-DdAHZGzm.js +784 -0
- package/dist/cjs/nv-dialogfooter_2.entry-CXvA0O-2.js +134 -0
- package/dist/cjs/nv-dialogfooter_2.entry-Ck6adFfd.js +134 -0
- package/dist/cjs/nv-dialogfooter_2.entry-DHa0SYhR.js +134 -0
- package/dist/cjs/nv-dialogfooter_2.entry-DKvzkpt3.js +134 -0
- package/dist/cjs/nv-dialogfooter_2.entry-D_VuofBe.js +134 -0
- package/dist/cjs/nv-dialogfooter_2.entry-L5tHIb_T.js +134 -0
- package/dist/cjs/nv-dialogfooter_2.entry-kEa1K0n5.js +134 -0
- package/dist/cjs/nv-fieldcheckbox.entry-B4We4zG2.js +137 -0
- package/dist/cjs/nv-fieldcheckbox.entry-BmYyNV4r.js +137 -0
- package/dist/cjs/nv-fieldcheckbox.entry-CBsQsbIA.js +137 -0
- package/dist/cjs/nv-fieldcheckbox.entry-DTIebeJR.js +137 -0
- package/dist/cjs/nv-fieldcheckbox.entry-P--9IAJF.js +137 -0
- package/dist/cjs/nv-fieldcheckbox.entry-dBYg7CBU.js +137 -0
- package/dist/cjs/nv-fieldcheckbox.entry-dxhUZiEg.js +137 -0
- package/dist/cjs/nv-fielddate.entry-B53E-JaI.js +278 -0
- package/dist/cjs/nv-fielddate.entry-Bofdd2rE.js +278 -0
- package/dist/cjs/nv-fielddate.entry-CIo_61Dc.js +278 -0
- package/dist/cjs/nv-fielddate.entry-CekIFTA0.js +278 -0
- package/dist/cjs/nv-fielddate.entry-DgS0X1wI.js +278 -0
- package/dist/cjs/nv-fielddate.entry-Do69eqHA.js +278 -0
- package/dist/cjs/nv-fielddate.entry-NJ6RAqlG.js +278 -0
- package/dist/cjs/nv-fielddaterange.entry-BtPwfRw-.js +355 -0
- package/dist/cjs/nv-fielddaterange.entry-CxaBrZAX.js +355 -0
- package/dist/cjs/nv-fielddaterange.entry-D-6LjhjB.js +355 -0
- package/dist/cjs/nv-fielddaterange.entry-D0fq5KFb.js +355 -0
- package/dist/cjs/nv-fielddaterange.entry-D2dzD3rW.js +355 -0
- package/dist/cjs/nv-fielddaterange.entry-DTLKVIqg.js +355 -0
- package/dist/cjs/nv-fielddaterange.entry-w8WXPDuX.js +355 -0
- package/dist/cjs/nv-fielddropdown.entry-BAaPyGtB.js +361 -0
- package/dist/cjs/nv-fielddropdown.entry-C5kMWmPP.js +361 -0
- package/dist/cjs/nv-fielddropdown.entry-CX2Ycn2i.js +361 -0
- package/dist/cjs/nv-fielddropdown.entry-CZxQlRNa.js +361 -0
- package/dist/cjs/nv-fielddropdown.entry-DVl_Uy5A.js +361 -0
- package/dist/cjs/nv-fielddropdown.entry-akfp1Bcy.js +361 -0
- package/dist/cjs/nv-fielddropdown.entry-hHh_RDC4.js +361 -0
- package/dist/cjs/nv-fielddropdownitem.entry-BscNyhXz.js +68 -0
- package/dist/cjs/nv-fielddropdownitem.entry-CMWgXP_Z.js +68 -0
- package/dist/cjs/nv-fielddropdownitem.entry-CS1Ejbc9.js +68 -0
- package/dist/cjs/nv-fielddropdownitem.entry-CW4WMmSZ.js +68 -0
- package/dist/cjs/nv-fielddropdownitem.entry-CuQqsz4f.js +68 -0
- package/dist/cjs/nv-fielddropdownitem.entry-Dn2HJc1t.js +68 -0
- package/dist/cjs/nv-fielddropdownitem.entry-HK2I5pUG.js +68 -0
- package/dist/cjs/nv-fieldmultiselect.entry-5jdK36m6.js +1060 -0
- package/dist/cjs/nv-fieldmultiselect.entry-6o1yhNI5.js +1060 -0
- package/dist/cjs/nv-fieldmultiselect.entry-BGzYCJuF.js +1060 -0
- package/dist/cjs/nv-fieldmultiselect.entry-BN1ObPi8.js +1060 -0
- package/dist/cjs/nv-fieldmultiselect.entry-CuVEYN0v.js +1060 -0
- package/dist/cjs/nv-fieldmultiselect.entry-DHXJErt4.js +1060 -0
- package/dist/cjs/nv-fieldmultiselect.entry-DycRd14V.js +1060 -0
- package/dist/cjs/nv-fieldnumber.entry-BHhIsjLK.js +126 -0
- package/dist/cjs/nv-fieldnumber.entry-BklKxOFA.js +126 -0
- package/dist/cjs/nv-fieldnumber.entry-C8zJkL24.js +126 -0
- package/dist/cjs/nv-fieldnumber.entry-C9rKWY_M.js +126 -0
- package/dist/cjs/nv-fieldnumber.entry-CEmPQK-3.js +126 -0
- package/dist/cjs/nv-fieldnumber.entry-CLhjFlCj.js +126 -0
- package/dist/cjs/nv-fieldnumber.entry-_UiieYov.js +126 -0
- package/dist/cjs/nv-fieldpassword.entry-7lS0Msfg.js +115 -0
- package/dist/cjs/nv-fieldpassword.entry-B9-QFEsB.js +115 -0
- package/dist/cjs/nv-fieldpassword.entry-BIIoIKH4.js +115 -0
- package/dist/cjs/nv-fieldpassword.entry-BPhQxjsj.js +115 -0
- package/dist/cjs/nv-fieldpassword.entry-C5vG4jlh.js +115 -0
- package/dist/cjs/nv-fieldpassword.entry-C_jsHFJI.js +115 -0
- package/dist/cjs/nv-fieldpassword.entry-DZkGQwM8.js +115 -0
- package/dist/cjs/nv-fieldradio.entry-BgpmbG9E.js +102 -0
- package/dist/cjs/nv-fieldradio.entry-CXR4k3wf.js +102 -0
- package/dist/cjs/nv-fieldradio.entry-CnasQlEx.js +102 -0
- package/dist/cjs/nv-fieldradio.entry-DUDPigQb.js +102 -0
- package/dist/cjs/nv-fieldradio.entry-DiD7Luxv.js +102 -0
- package/dist/cjs/nv-fieldradio.entry-Ili2RVKl.js +102 -0
- package/dist/cjs/nv-fieldradio.entry-aRAaLwpK.js +102 -0
- package/dist/cjs/nv-fieldselect.entry-B94QXSEk.js +365 -0
- package/dist/cjs/nv-fieldselect.entry-BwtEjL08.js +365 -0
- package/dist/cjs/nv-fieldselect.entry-CFDqeR-D.js +365 -0
- package/dist/cjs/nv-fieldselect.entry-CJSu63o5.js +365 -0
- package/dist/cjs/nv-fieldselect.entry-CmN1R9ij.js +365 -0
- package/dist/cjs/nv-fieldselect.entry-CoDfr4ie.js +365 -0
- package/dist/cjs/nv-fieldselect.entry-DgmnHnOR.js +365 -0
- package/dist/cjs/nv-fieldtext.entry-B1TlZWjU.js +119 -0
- package/dist/cjs/nv-fieldtext.entry-BfQrX8ft.js +119 -0
- package/dist/cjs/nv-fieldtext.entry-BrUQu4OD.js +119 -0
- package/dist/cjs/nv-fieldtext.entry-CW6P-R-Q.js +119 -0
- package/dist/cjs/nv-fieldtext.entry-CyLJxDw6.js +119 -0
- package/dist/cjs/nv-fieldtext.entry-DDqDSJp3.js +119 -0
- package/dist/cjs/nv-fieldtext.entry-IeIHa3jf.js +119 -0
- package/dist/cjs/nv-fieldtextarea.entry-D86SKGIN.js +194 -0
- package/dist/cjs/nv-fieldtextarea.entry-DlFdCv_d.js +194 -0
- package/dist/cjs/nv-fieldtextarea.entry-DqzeITCG.js +194 -0
- package/dist/cjs/nv-fieldtextarea.entry-TI-bucN-.js +194 -0
- package/dist/cjs/nv-fieldtextarea.entry-qMX2O8cX.js +194 -0
- package/dist/cjs/nv-fieldtextarea.entry-tTnWQgE4.js +194 -0
- package/dist/cjs/nv-fieldtextarea.entry-v6VpnEuH.js +194 -0
- package/dist/cjs/nv-fieldtime.entry-CPyLyQfR.js +1011 -0
- package/dist/cjs/nv-fieldtime.entry-CYmcHY1D.js +1011 -0
- package/dist/cjs/nv-fieldtime.entry-DGP1X4wF.js +1011 -0
- package/dist/cjs/nv-fieldtime.entry-DLSuRrlr.js +1011 -0
- package/dist/cjs/nv-fieldtime.entry-Zbjbmm7_.js +1011 -0
- package/dist/cjs/nv-fieldtime.entry-eDVRT6te.js +1011 -0
- package/dist/cjs/nv-fieldtime.entry-j-Fliiqj.js +1011 -0
- package/dist/cjs/nv-icon.entry-B0Y3rgBQ.js +79 -0
- package/dist/cjs/nv-icon.entry-B_wtREWb.js +79 -0
- package/dist/cjs/nv-icon.entry-BfRAl2b6.js +79 -0
- package/dist/cjs/nv-icon.entry-CrKTCqY_.js +79 -0
- package/dist/cjs/nv-icon.entry-DRRmcXzh.js +79 -0
- package/dist/cjs/nv-icon.entry-Dlj1ko2i.js +79 -0
- package/dist/cjs/nv-icon.entry-S7WlK_lO.js +79 -0
- package/dist/cjs/nv-iconbutton_2.entry-B02iDUid.js +163 -0
- package/dist/cjs/nv-iconbutton_2.entry-C1Legk9t.js +163 -0
- package/dist/cjs/nv-iconbutton_2.entry-CUiW6MtK.js +163 -0
- package/dist/cjs/nv-iconbutton_2.entry-ClcvupMe.js +163 -0
- package/dist/cjs/nv-iconbutton_2.entry-D8MI5uzP.js +163 -0
- package/dist/cjs/nv-iconbutton_2.entry-D8hZ51H-.js +163 -0
- package/dist/cjs/nv-iconbutton_2.entry-QwaiOoYl.js +163 -0
- package/dist/cjs/nv-menu.entry-BfmYkdYY.js +227 -0
- package/dist/cjs/nv-menu.entry-CT98WIRF.js +227 -0
- package/dist/cjs/nv-menu.entry-CfERF478.js +227 -0
- package/dist/cjs/nv-menu.entry-Ci3I7PDt.js +227 -0
- package/dist/cjs/nv-menu.entry-DtLnsQW-.js +227 -0
- package/dist/cjs/nv-menu.entry-Kz5kGi2w.js +227 -0
- package/dist/cjs/nv-menu.entry-XdjjbAL6.js +227 -0
- package/dist/cjs/nv-menuitem.entry-C8nXPwP0.js +58 -0
- package/dist/cjs/nv-menuitem.entry-C9dsQqqN.js +58 -0
- package/dist/cjs/nv-menuitem.entry-Cedg0TCQ.js +58 -0
- package/dist/cjs/nv-menuitem.entry-CxCLeNsY.js +58 -0
- package/dist/cjs/nv-menuitem.entry-DkIG5z-x.js +58 -0
- package/dist/cjs/nv-menuitem.entry-bPnSDq_9.js +58 -0
- package/dist/cjs/nv-menuitem.entry-sRx1fD0O.js +58 -0
- package/dist/cjs/nv-popover.entry-BGXEOQM6.js +1960 -0
- package/dist/cjs/nv-popover.entry-C57rfYUn.js +1960 -0
- package/dist/cjs/nv-popover.entry-C6HFJJ-m.js +1960 -0
- package/dist/cjs/nv-popover.entry-CiGCCbn9.js +1960 -0
- package/dist/cjs/nv-popover.entry-CjTPZYkq.js +1960 -0
- package/dist/cjs/nv-popover.entry-CtO6pR6l.js +1960 -0
- package/dist/cjs/nv-popover.entry-Mo3DNUH6.js +1960 -0
- package/dist/cjs/nv-row.entry-BEgyuDR-.js +21 -0
- package/dist/cjs/nv-row.entry-BM_EcSp4.js +21 -0
- package/dist/cjs/nv-row.entry-B_7PiJA7.js +21 -0
- package/dist/cjs/nv-row.entry-Ca7LiDAy.js +21 -0
- package/dist/cjs/nv-row.entry-Cy9vd2iY.js +21 -0
- package/dist/cjs/nv-row.entry-DKoNhAcX.js +21 -0
- package/dist/cjs/nv-row.entry-OYGKTXhV.js +21 -0
- package/dist/cjs/nv-stack.entry-BNyPxECg.js +30 -0
- package/dist/cjs/nv-stack.entry-C8ZFDaKn.js +30 -0
- package/dist/cjs/nv-stack.entry-CLMAAbkw.js +30 -0
- package/dist/cjs/nv-stack.entry-DfRRFeEo.js +30 -0
- package/dist/cjs/nv-stack.entry-DiXvhuSS.js +30 -0
- package/dist/cjs/nv-stack.entry-lwhqS230.js +30 -0
- package/dist/cjs/nv-stack.entry-u3NjC31-.js +30 -0
- package/dist/cjs/nv-table.entry-BNy2ALll.js +338 -0
- package/dist/cjs/nv-table.entry-BPazUUGA.js +338 -0
- package/dist/cjs/nv-table.entry-COwgRxqz.js +338 -0
- package/dist/cjs/nv-table.entry-CTo8cqCN.js +338 -0
- package/dist/cjs/nv-table.entry-DzOGLNUx.js +338 -0
- package/dist/cjs/nv-table.entry-mEtRfake.js +338 -0
- package/dist/cjs/nv-table.entry-o525Lfea.js +338 -0
- package/dist/cjs/nv-tablecolumn.entry-BESdQMDh.js +18 -0
- package/dist/cjs/nv-tablecolumn.entry-CuEt5Wgn.js +18 -0
- package/dist/cjs/nv-tablecolumn.entry-D3I1dB1X.js +18 -0
- package/dist/cjs/nv-tablecolumn.entry-DvJF_QTE.js +18 -0
- package/dist/cjs/nv-tablecolumn.entry-DvO0JxdY.js +18 -0
- package/dist/cjs/nv-tablecolumn.entry-L4KLlHFu.js +18 -0
- package/dist/cjs/nv-tablecolumn.entry-vrmt1Y0L.js +18 -0
- package/dist/cjs/nv-toggle.entry-BIclNIeq.js +79 -0
- package/dist/cjs/nv-toggle.entry-Bv0DrF-x.js +79 -0
- package/dist/cjs/nv-toggle.entry-BxKZDHdI.js +79 -0
- package/dist/cjs/nv-toggle.entry-DYhnFucd.js +79 -0
- package/dist/cjs/nv-toggle.entry-PRWy57Ro.js +79 -0
- package/dist/cjs/nv-toggle.entry-fDIAyeVX.js +79 -0
- package/dist/cjs/nv-toggle.entry-yqg7e7Qc.js +79 -0
- package/dist/cjs/nv-tooltip.entry--TVfBopp.js +44 -0
- package/dist/cjs/nv-tooltip.entry-58RCazbO.js +44 -0
- package/dist/cjs/nv-tooltip.entry-BBJNnZmj.js +44 -0
- package/dist/cjs/nv-tooltip.entry-Bnu7xEl6.js +44 -0
- package/dist/cjs/nv-tooltip.entry-BrrSQyMx.js +44 -0
- package/dist/cjs/nv-tooltip.entry-BuSwME_F.js +44 -0
- package/dist/cjs/nv-tooltip.entry-ChQpdQn_.js +44 -0
- package/dist/generated/components.js +2 -2
- package/dist/types/generated/components.d.ts +2 -4
- package/package.json +1 -1
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-CIcUUomJ.js');
|
|
4
|
+
require('react');
|
|
5
|
+
|
|
6
|
+
const nvMenuCss = "nv-menuitem{display:flex;align-items:center;max-width:300px;width:100vw;font-size:var(--menu-contextual-item-font-size);font-weight:var(--menu-contextual-item-font-weight);color:var(--components-menu-contextual-item-content);border-radius:var(--menu-contextual-item-radius);gap:var(--menu-contextual-item-gap-x);padding:var(--menu-contextual-item-padding-y) var(--menu-contextual-item-padding-x);transition:background-color 150ms ease-out;cursor:pointer}nv-menuitem:hover,nv-menuitem:focus,nv-menuitem:focus-within{background-color:var(--components-menu-contextual-item-background-hover);color:var(--components-menu-contextual-item-content-hover)}nv-menuitem *{pointer-events:none}nv-menuitem kbd{color:var(--components-menu-contextual-item-shortcut)}nv-menuitem [data-scope=text]{margin-right:auto}nv-menuitem[disabled]:not([disabled=false]){cursor:unset;background-color:unset;color:var(--components-menu-contextual-item-content-disabled)}nv-menu{display:inline-block;position:relative}nv-menu:has([fluid]:not([fluid=false])){display:block}nv-menu nv-popover{display:unset}nv-menu nv-popover [data-scope=popover]{background-color:transparent !important;padding:0 !important}nv-menu [slot=content]{padding:var(--menu-contextual-padding-y) var(--menu-contextual-padding-x);border-radius:var(--menu-contextual-radius);gap:var(--menu-contextual-gap-y);background-color:var(--components-menu-contextual-background);border-color:var(--components-menu-contextual-border);display:flex;flex-direction:column}nv-menu nv-menu[open]:not([open=false])>nv-menuitem{background-color:var(--components-menu-contextual-item-background-hover);color:var(--components-menu-contextual-item-content-hover)}nv-menu hr{display:block;margin:var(--menu-contextual-divider-padding-top) var(--menu-contextual-divider-padding-x) var(--menu-contextual-divider-padding-bottom) var(--menu-contextual-divider-padding-x)}";
|
|
7
|
+
const NvMenuStyle0 = nvMenuCss;
|
|
8
|
+
|
|
9
|
+
const NvMenu = class {
|
|
10
|
+
constructor(hostRef) {
|
|
11
|
+
index.registerInstance(this, hostRef);
|
|
12
|
+
this.menuitemSelected = index.createEvent(this, "menuitemSelected");
|
|
13
|
+
this.isHandlingKeyDown = false;
|
|
14
|
+
/****************************************************************************/
|
|
15
|
+
//#region PROPERTIES
|
|
16
|
+
/**
|
|
17
|
+
* Use this to toggle the initial visibility of the menu, by default the menu
|
|
18
|
+
* is hidden.
|
|
19
|
+
*/
|
|
20
|
+
this.open = false;
|
|
21
|
+
/**
|
|
22
|
+
* Use this if the menu is nested inside another menu. This will prevent the
|
|
23
|
+
* parent menu from closing when the child menu is opened.
|
|
24
|
+
*/
|
|
25
|
+
this.nested = false;
|
|
26
|
+
/**
|
|
27
|
+
* Use this to disable the menu from closing automatically when a menu item is
|
|
28
|
+
* selected.
|
|
29
|
+
*/
|
|
30
|
+
this.disableCloseOnSelect = false;
|
|
31
|
+
/**
|
|
32
|
+
* Decides where the menu shows up next to the button it’s linked to (above,
|
|
33
|
+
* below, to the sides). If there isn’t enough room, it will adjust its
|
|
34
|
+
* position on the axis to fit on the screen, so users can always see it.
|
|
35
|
+
*/
|
|
36
|
+
this.placement = 'bottom-end';
|
|
37
|
+
/**
|
|
38
|
+
* Parsed items stored in state.
|
|
39
|
+
*/
|
|
40
|
+
this.parsedItems = [];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Watcher to parse the items when the `items` property changes.
|
|
44
|
+
* @param {string} newValue - The new value of the `items` property.
|
|
45
|
+
*/
|
|
46
|
+
handleItemsChange(newValue) {
|
|
47
|
+
if (typeof newValue === 'string') {
|
|
48
|
+
try {
|
|
49
|
+
this.parsedItems = JSON.parse(newValue);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
console.error('Error parsing menu items:', error);
|
|
53
|
+
this.parsedItems = [];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//#endregion PROPERTIES
|
|
58
|
+
/****************************************************************************/
|
|
59
|
+
//#region METHODS
|
|
60
|
+
/**
|
|
61
|
+
* Opens the menu.
|
|
62
|
+
*/
|
|
63
|
+
async show() {
|
|
64
|
+
this.open = true;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Closes the menu.
|
|
68
|
+
*/
|
|
69
|
+
async close() {
|
|
70
|
+
this.open = false;
|
|
71
|
+
}
|
|
72
|
+
handleMenuItemSelect(event) {
|
|
73
|
+
if (this.disableCloseOnSelect)
|
|
74
|
+
return;
|
|
75
|
+
if (event.detail.hasSubmenu)
|
|
76
|
+
return;
|
|
77
|
+
this.open = false;
|
|
78
|
+
}
|
|
79
|
+
handleKeydown(event) {
|
|
80
|
+
// If the menu is not open, check if the trigger is focused
|
|
81
|
+
// and the user presses Enter or ArrowDown, open the menu
|
|
82
|
+
if (!this.open) {
|
|
83
|
+
if ((event.key === 'Enter' ||
|
|
84
|
+
event.key === 'ArrowDown' ||
|
|
85
|
+
event.key === ' ') &&
|
|
86
|
+
document.activeElement === this.triggerElement) {
|
|
87
|
+
event.preventDefault();
|
|
88
|
+
this.show();
|
|
89
|
+
// Then, put the focus on the first menuitem
|
|
90
|
+
const firstMenuItem = this.popoverElement.querySelector('nv-menuitem');
|
|
91
|
+
if (firstMenuItem) {
|
|
92
|
+
requestAnimationFrame(() => firstMenuItem.focus());
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (this.isHandlingKeyDown)
|
|
98
|
+
return;
|
|
99
|
+
this.isHandlingKeyDown = true;
|
|
100
|
+
if (event.key === 'ArrowDown' ||
|
|
101
|
+
event.key === 'ArrowUp' ||
|
|
102
|
+
event.key === 'ArrowLeft' ||
|
|
103
|
+
event.key === 'ArrowRight' ||
|
|
104
|
+
event.key === 'Escape') {
|
|
105
|
+
event.preventDefault();
|
|
106
|
+
}
|
|
107
|
+
if (event.key === 'Escape' && !this.nested) {
|
|
108
|
+
this.close();
|
|
109
|
+
this.triggerElement.focus();
|
|
110
|
+
this.isHandlingKeyDown = false;
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const menuContent = this.el.querySelector('[slot="content"]');
|
|
114
|
+
const menuItems = Array.from(menuContent.childNodes).filter(item => { var _a; return (_a = item.matches) === null || _a === void 0 ? void 0 : _a.call(item, 'nv-menuitem, nv-menu'); });
|
|
115
|
+
let currentIndex = menuItems.indexOf(document.activeElement);
|
|
116
|
+
if (currentIndex === -1)
|
|
117
|
+
currentIndex = menuItems.indexOf(document.activeElement.parentElement);
|
|
118
|
+
if (currentIndex === -1 &&
|
|
119
|
+
menuItems.find(item => item.matches('nv-menu[open]'))) {
|
|
120
|
+
this.isHandlingKeyDown = false;
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {
|
|
124
|
+
menuItems.forEach(item => {
|
|
125
|
+
if (item.matches('nv-menu'))
|
|
126
|
+
item.close();
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
if (event.key === 'ArrowDown') {
|
|
130
|
+
let nextIndex = (currentIndex + 1) % menuItems.length;
|
|
131
|
+
while (menuItems[nextIndex].matches('nv-menuitem[disabled]')) {
|
|
132
|
+
nextIndex = (nextIndex + 1) % menuItems.length;
|
|
133
|
+
}
|
|
134
|
+
const nextFocusable = menuItems[nextIndex];
|
|
135
|
+
if (nextFocusable.matches('nv-menuitem')) {
|
|
136
|
+
nextFocusable.focus();
|
|
137
|
+
}
|
|
138
|
+
else if (nextFocusable.matches('nv-menu')) {
|
|
139
|
+
nextFocusable.querySelector('nv-menuitem').focus();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (event.key === 'ArrowUp') {
|
|
143
|
+
let prevIndex = (currentIndex - 1 + menuItems.length) % menuItems.length;
|
|
144
|
+
while (menuItems[prevIndex].matches('nv-menuitem[disabled]')) {
|
|
145
|
+
prevIndex = (prevIndex - 1 + menuItems.length) % menuItems.length;
|
|
146
|
+
}
|
|
147
|
+
const prevFocusable = menuItems[prevIndex];
|
|
148
|
+
if (prevFocusable.matches('nv-menuitem')) {
|
|
149
|
+
prevFocusable.focus();
|
|
150
|
+
}
|
|
151
|
+
else if (prevFocusable.matches('nv-menu')) {
|
|
152
|
+
prevFocusable.querySelector('nv-menuitem').focus();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (event.key === 'ArrowRight') {
|
|
156
|
+
const submenu = menuItems[currentIndex];
|
|
157
|
+
if (!submenu.matches('nv-menu')) {
|
|
158
|
+
this.isHandlingKeyDown = false;
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
submenu.show();
|
|
162
|
+
}
|
|
163
|
+
if (event.key === 'ArrowLeft' && this.nested) {
|
|
164
|
+
if (menuItems.find(item => item.matches('nv-menu[open]'))) {
|
|
165
|
+
this.isHandlingKeyDown = false;
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
this.close();
|
|
169
|
+
this.triggerElement.focus();
|
|
170
|
+
}
|
|
171
|
+
this.isHandlingKeyDown = false;
|
|
172
|
+
}
|
|
173
|
+
handleOpenChanged(event) {
|
|
174
|
+
if (event.target === this.el.querySelector('nv-popover')) {
|
|
175
|
+
this.open = event.detail;
|
|
176
|
+
}
|
|
177
|
+
const triggerHasFocus = this.triggerElement === document.activeElement;
|
|
178
|
+
const triggerHasFocusVisible = this.triggerElement.matches(':focus-visible');
|
|
179
|
+
if (triggerHasFocus && triggerHasFocusVisible)
|
|
180
|
+
this.focusFirstItem();
|
|
181
|
+
}
|
|
182
|
+
focusFirstItem() {
|
|
183
|
+
const firstButton = this.popoverElement.querySelector('nv-menuitem');
|
|
184
|
+
if (firstButton) {
|
|
185
|
+
requestAnimationFrame(() => firstButton.focus());
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
//#endregion EVENTS
|
|
189
|
+
/****************************************************************************/
|
|
190
|
+
//#region LIFECYCLE
|
|
191
|
+
componentWillLoad() {
|
|
192
|
+
this.triggerElement = Array.from(this.el.children).find(child => {
|
|
193
|
+
return child.getAttribute('slot') === 'trigger';
|
|
194
|
+
});
|
|
195
|
+
// If the items attribute is provided, parse its value.
|
|
196
|
+
if (this.items) {
|
|
197
|
+
this.handleItemsChange(this.items);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
//#endregion LIFECYCLE
|
|
201
|
+
/****************************************************************************/
|
|
202
|
+
//#region RENDER
|
|
203
|
+
/**
|
|
204
|
+
* Generates menu items from the `items` property.
|
|
205
|
+
* @param {MenuItem[]} items - The items to display in the menu.
|
|
206
|
+
* @returns {HTMLElement[]} The rendered items.
|
|
207
|
+
*/
|
|
208
|
+
renderMenuItems(items) {
|
|
209
|
+
return items.map(item => {
|
|
210
|
+
var _a;
|
|
211
|
+
if (item.hasSubmenu && ((_a = item.submenuItems) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
212
|
+
return (index.h("nv-menu", { nested: true, placement: "right-start", items: JSON.stringify(item.submenuItems) }, index.h("nv-menuitem", { slot: "trigger", "has-submenu": true, disabled: item.disabled, icon: item.icon, shortcut: item.shortcut, id: item.value, name: item.label, label: item.label })));
|
|
213
|
+
}
|
|
214
|
+
return (index.h("nv-menuitem", { disabled: item.disabled, icon: item.icon, shortcut: item.shortcut, id: item.value, name: item.label, label: item.label }));
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
render() {
|
|
218
|
+
return (index.h(index.Host, { key: '848044034b707f29f791fa984cc51b606498b162' }, index.h("slot", { key: '385c9081f84034215745ea79d096cf8e3cebbf8e', name: "trigger" }), index.h("nv-popover", { key: 'b47a09258a76f608e0eba173039ec8ec49b6186a', ref: el => (this.popoverElement = el), triggerMode: "click", triggerElement: this.triggerElement, placement: this.placement, nested: this.nested, open: this.open }, this.parsedItems.length > 0 ? (index.h("ul", { slot: "content" }, this.renderMenuItems(this.parsedItems))) : (index.h("slot", { name: "content" })))));
|
|
219
|
+
}
|
|
220
|
+
get el() { return index.getElement(this); }
|
|
221
|
+
static get watchers() { return {
|
|
222
|
+
"items": ["handleItemsChange"]
|
|
223
|
+
}; }
|
|
224
|
+
};
|
|
225
|
+
NvMenu.style = NvMenuStyle0;
|
|
226
|
+
|
|
227
|
+
exports.nv_menu = NvMenu;
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-CtI3SivD.js');
|
|
4
|
+
require('react');
|
|
5
|
+
|
|
6
|
+
const nvMenuCss = "nv-menuitem{display:flex;align-items:center;max-width:300px;width:100vw;font-size:var(--menu-contextual-item-font-size);font-weight:var(--menu-contextual-item-font-weight);color:var(--components-menu-contextual-item-content);border-radius:var(--menu-contextual-item-radius);gap:var(--menu-contextual-item-gap-x);padding:var(--menu-contextual-item-padding-y) var(--menu-contextual-item-padding-x);transition:background-color 150ms ease-out;cursor:pointer}nv-menuitem:hover,nv-menuitem:focus,nv-menuitem:focus-within{background-color:var(--components-menu-contextual-item-background-hover);color:var(--components-menu-contextual-item-content-hover)}nv-menuitem *{pointer-events:none}nv-menuitem kbd{color:var(--components-menu-contextual-item-shortcut)}nv-menuitem [data-scope=text]{margin-right:auto}nv-menuitem[disabled]:not([disabled=false]){cursor:unset;background-color:unset;color:var(--components-menu-contextual-item-content-disabled)}nv-menu{display:inline-block;position:relative}nv-menu:has([fluid]:not([fluid=false])){display:block}nv-menu nv-popover{display:unset}nv-menu nv-popover [data-scope=popover]{background-color:transparent !important;padding:0 !important}nv-menu [slot=content]{padding:var(--menu-contextual-padding-y) var(--menu-contextual-padding-x);border-radius:var(--menu-contextual-radius);gap:var(--menu-contextual-gap-y);background-color:var(--components-menu-contextual-background);border-color:var(--components-menu-contextual-border);display:flex;flex-direction:column}nv-menu nv-menu[open]:not([open=false])>nv-menuitem{background-color:var(--components-menu-contextual-item-background-hover);color:var(--components-menu-contextual-item-content-hover)}nv-menu hr{display:block;margin:var(--menu-contextual-divider-padding-top) var(--menu-contextual-divider-padding-x) var(--menu-contextual-divider-padding-bottom) var(--menu-contextual-divider-padding-x)}";
|
|
7
|
+
const NvMenuStyle0 = nvMenuCss;
|
|
8
|
+
|
|
9
|
+
const NvMenu = class {
|
|
10
|
+
constructor(hostRef) {
|
|
11
|
+
index.registerInstance(this, hostRef);
|
|
12
|
+
this.menuitemSelected = index.createEvent(this, "menuitemSelected");
|
|
13
|
+
this.isHandlingKeyDown = false;
|
|
14
|
+
/****************************************************************************/
|
|
15
|
+
//#region PROPERTIES
|
|
16
|
+
/**
|
|
17
|
+
* Use this to toggle the initial visibility of the menu, by default the menu
|
|
18
|
+
* is hidden.
|
|
19
|
+
*/
|
|
20
|
+
this.open = false;
|
|
21
|
+
/**
|
|
22
|
+
* Use this if the menu is nested inside another menu. This will prevent the
|
|
23
|
+
* parent menu from closing when the child menu is opened.
|
|
24
|
+
*/
|
|
25
|
+
this.nested = false;
|
|
26
|
+
/**
|
|
27
|
+
* Use this to disable the menu from closing automatically when a menu item is
|
|
28
|
+
* selected.
|
|
29
|
+
*/
|
|
30
|
+
this.disableCloseOnSelect = false;
|
|
31
|
+
/**
|
|
32
|
+
* Decides where the menu shows up next to the button it’s linked to (above,
|
|
33
|
+
* below, to the sides). If there isn’t enough room, it will adjust its
|
|
34
|
+
* position on the axis to fit on the screen, so users can always see it.
|
|
35
|
+
*/
|
|
36
|
+
this.placement = 'bottom-end';
|
|
37
|
+
/**
|
|
38
|
+
* Parsed items stored in state.
|
|
39
|
+
*/
|
|
40
|
+
this.parsedItems = [];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Watcher to parse the items when the `items` property changes.
|
|
44
|
+
* @param {string} newValue - The new value of the `items` property.
|
|
45
|
+
*/
|
|
46
|
+
handleItemsChange(newValue) {
|
|
47
|
+
if (typeof newValue === 'string') {
|
|
48
|
+
try {
|
|
49
|
+
this.parsedItems = JSON.parse(newValue);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
console.error('Error parsing menu items:', error);
|
|
53
|
+
this.parsedItems = [];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//#endregion PROPERTIES
|
|
58
|
+
/****************************************************************************/
|
|
59
|
+
//#region METHODS
|
|
60
|
+
/**
|
|
61
|
+
* Opens the menu.
|
|
62
|
+
*/
|
|
63
|
+
async show() {
|
|
64
|
+
this.open = true;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Closes the menu.
|
|
68
|
+
*/
|
|
69
|
+
async close() {
|
|
70
|
+
this.open = false;
|
|
71
|
+
}
|
|
72
|
+
handleMenuItemSelect(event) {
|
|
73
|
+
if (this.disableCloseOnSelect)
|
|
74
|
+
return;
|
|
75
|
+
if (event.detail.hasSubmenu)
|
|
76
|
+
return;
|
|
77
|
+
this.open = false;
|
|
78
|
+
}
|
|
79
|
+
handleKeydown(event) {
|
|
80
|
+
// If the menu is not open, check if the trigger is focused
|
|
81
|
+
// and the user presses Enter or ArrowDown, open the menu
|
|
82
|
+
if (!this.open) {
|
|
83
|
+
if ((event.key === 'Enter' ||
|
|
84
|
+
event.key === 'ArrowDown' ||
|
|
85
|
+
event.key === ' ') &&
|
|
86
|
+
document.activeElement === this.triggerElement) {
|
|
87
|
+
event.preventDefault();
|
|
88
|
+
this.show();
|
|
89
|
+
// Then, put the focus on the first menuitem
|
|
90
|
+
const firstMenuItem = this.popoverElement.querySelector('nv-menuitem');
|
|
91
|
+
if (firstMenuItem) {
|
|
92
|
+
requestAnimationFrame(() => firstMenuItem.focus());
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (this.isHandlingKeyDown)
|
|
98
|
+
return;
|
|
99
|
+
this.isHandlingKeyDown = true;
|
|
100
|
+
if (event.key === 'ArrowDown' ||
|
|
101
|
+
event.key === 'ArrowUp' ||
|
|
102
|
+
event.key === 'ArrowLeft' ||
|
|
103
|
+
event.key === 'ArrowRight' ||
|
|
104
|
+
event.key === 'Escape') {
|
|
105
|
+
event.preventDefault();
|
|
106
|
+
}
|
|
107
|
+
if (event.key === 'Escape' && !this.nested) {
|
|
108
|
+
this.close();
|
|
109
|
+
this.triggerElement.focus();
|
|
110
|
+
this.isHandlingKeyDown = false;
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const menuContent = this.el.querySelector('[slot="content"]');
|
|
114
|
+
const menuItems = Array.from(menuContent.childNodes).filter(item => { var _a; return (_a = item.matches) === null || _a === void 0 ? void 0 : _a.call(item, 'nv-menuitem, nv-menu'); });
|
|
115
|
+
let currentIndex = menuItems.indexOf(document.activeElement);
|
|
116
|
+
if (currentIndex === -1)
|
|
117
|
+
currentIndex = menuItems.indexOf(document.activeElement.parentElement);
|
|
118
|
+
if (currentIndex === -1 &&
|
|
119
|
+
menuItems.find(item => item.matches('nv-menu[open]'))) {
|
|
120
|
+
this.isHandlingKeyDown = false;
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {
|
|
124
|
+
menuItems.forEach(item => {
|
|
125
|
+
if (item.matches('nv-menu'))
|
|
126
|
+
item.close();
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
if (event.key === 'ArrowDown') {
|
|
130
|
+
let nextIndex = (currentIndex + 1) % menuItems.length;
|
|
131
|
+
while (menuItems[nextIndex].matches('nv-menuitem[disabled]')) {
|
|
132
|
+
nextIndex = (nextIndex + 1) % menuItems.length;
|
|
133
|
+
}
|
|
134
|
+
const nextFocusable = menuItems[nextIndex];
|
|
135
|
+
if (nextFocusable.matches('nv-menuitem')) {
|
|
136
|
+
nextFocusable.focus();
|
|
137
|
+
}
|
|
138
|
+
else if (nextFocusable.matches('nv-menu')) {
|
|
139
|
+
nextFocusable.querySelector('nv-menuitem').focus();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (event.key === 'ArrowUp') {
|
|
143
|
+
let prevIndex = (currentIndex - 1 + menuItems.length) % menuItems.length;
|
|
144
|
+
while (menuItems[prevIndex].matches('nv-menuitem[disabled]')) {
|
|
145
|
+
prevIndex = (prevIndex - 1 + menuItems.length) % menuItems.length;
|
|
146
|
+
}
|
|
147
|
+
const prevFocusable = menuItems[prevIndex];
|
|
148
|
+
if (prevFocusable.matches('nv-menuitem')) {
|
|
149
|
+
prevFocusable.focus();
|
|
150
|
+
}
|
|
151
|
+
else if (prevFocusable.matches('nv-menu')) {
|
|
152
|
+
prevFocusable.querySelector('nv-menuitem').focus();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (event.key === 'ArrowRight') {
|
|
156
|
+
const submenu = menuItems[currentIndex];
|
|
157
|
+
if (!submenu.matches('nv-menu')) {
|
|
158
|
+
this.isHandlingKeyDown = false;
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
submenu.show();
|
|
162
|
+
}
|
|
163
|
+
if (event.key === 'ArrowLeft' && this.nested) {
|
|
164
|
+
if (menuItems.find(item => item.matches('nv-menu[open]'))) {
|
|
165
|
+
this.isHandlingKeyDown = false;
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
this.close();
|
|
169
|
+
this.triggerElement.focus();
|
|
170
|
+
}
|
|
171
|
+
this.isHandlingKeyDown = false;
|
|
172
|
+
}
|
|
173
|
+
handleOpenChanged(event) {
|
|
174
|
+
if (event.target === this.el.querySelector('nv-popover')) {
|
|
175
|
+
this.open = event.detail;
|
|
176
|
+
}
|
|
177
|
+
const triggerHasFocus = this.triggerElement === document.activeElement;
|
|
178
|
+
const triggerHasFocusVisible = this.triggerElement.matches(':focus-visible');
|
|
179
|
+
if (triggerHasFocus && triggerHasFocusVisible)
|
|
180
|
+
this.focusFirstItem();
|
|
181
|
+
}
|
|
182
|
+
focusFirstItem() {
|
|
183
|
+
const firstButton = this.popoverElement.querySelector('nv-menuitem');
|
|
184
|
+
if (firstButton) {
|
|
185
|
+
requestAnimationFrame(() => firstButton.focus());
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
//#endregion EVENTS
|
|
189
|
+
/****************************************************************************/
|
|
190
|
+
//#region LIFECYCLE
|
|
191
|
+
componentWillLoad() {
|
|
192
|
+
this.triggerElement = Array.from(this.el.children).find(child => {
|
|
193
|
+
return child.getAttribute('slot') === 'trigger';
|
|
194
|
+
});
|
|
195
|
+
// If the items attribute is provided, parse its value.
|
|
196
|
+
if (this.items) {
|
|
197
|
+
this.handleItemsChange(this.items);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
//#endregion LIFECYCLE
|
|
201
|
+
/****************************************************************************/
|
|
202
|
+
//#region RENDER
|
|
203
|
+
/**
|
|
204
|
+
* Generates menu items from the `items` property.
|
|
205
|
+
* @param {MenuItem[]} items - The items to display in the menu.
|
|
206
|
+
* @returns {HTMLElement[]} The rendered items.
|
|
207
|
+
*/
|
|
208
|
+
renderMenuItems(items) {
|
|
209
|
+
return items.map(item => {
|
|
210
|
+
var _a;
|
|
211
|
+
if (item.hasSubmenu && ((_a = item.submenuItems) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
212
|
+
return (index.h("nv-menu", { nested: true, placement: "right-start", items: JSON.stringify(item.submenuItems) }, index.h("nv-menuitem", { slot: "trigger", "has-submenu": true, disabled: item.disabled, icon: item.icon, shortcut: item.shortcut, id: item.value, name: item.label, label: item.label })));
|
|
213
|
+
}
|
|
214
|
+
return (index.h("nv-menuitem", { disabled: item.disabled, icon: item.icon, shortcut: item.shortcut, id: item.value, name: item.label, label: item.label }));
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
render() {
|
|
218
|
+
return (index.h(index.Host, { key: 'acc2b78005a96fcd2e6c9e48d17134fcaa6c1e6e' }, index.h("slot", { key: '5eaa8c9d60eacf51e5da09804f0fcd7ef93b8249', name: "trigger" }), index.h("nv-popover", { key: 'd5e1dbe20c617b6d72abbc12f7fe578396690f69', ref: el => (this.popoverElement = el), triggerMode: "click", triggerElement: this.triggerElement, placement: this.placement, nested: this.nested, open: this.open }, this.parsedItems.length > 0 ? (index.h("ul", { slot: "content" }, this.renderMenuItems(this.parsedItems))) : (index.h("slot", { name: "content" })))));
|
|
219
|
+
}
|
|
220
|
+
get el() { return index.getElement(this); }
|
|
221
|
+
static get watchers() { return {
|
|
222
|
+
"items": ["handleItemsChange"]
|
|
223
|
+
}; }
|
|
224
|
+
};
|
|
225
|
+
NvMenu.style = NvMenuStyle0;
|
|
226
|
+
|
|
227
|
+
exports.nv_menu = NvMenu;
|