@mieweb/ui 0.10.0-dev.1 → 0.10.0-dev.10
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/agent/mieweb-ui.instructions.md +13 -1
- package/dist/CsvBlock-ROJCKJDP.cjs +16 -0
- package/dist/{CsvBlock-CVYA3HYS.cjs.map → CsvBlock-ROJCKJDP.cjs.map} +1 -1
- package/dist/CsvBlock-UWPMTLE2.js +7 -0
- package/dist/{CsvBlock-SM4NKSHA.js.map → CsvBlock-UWPMTLE2.js.map} +1 -1
- package/dist/HtmlPreviewBlock-DWFN6EUB.cjs +16 -0
- package/dist/{HtmlPreviewBlock-JF454L2L.cjs.map → HtmlPreviewBlock-DWFN6EUB.cjs.map} +1 -1
- package/dist/HtmlPreviewBlock-ME5U3XNS.js +7 -0
- package/dist/{HtmlPreviewBlock-FAMF4W24.js.map → HtmlPreviewBlock-ME5U3XNS.js.map} +1 -1
- package/dist/MermaidBlock-2B6CPD6Y.js +7 -0
- package/dist/{MermaidBlock-7V5G4K5A.js.map → MermaidBlock-2B6CPD6Y.js.map} +1 -1
- package/dist/MermaidBlock-D2UC5M55.cjs +16 -0
- package/dist/{MermaidBlock-FR5SQX4Q.cjs.map → MermaidBlock-D2UC5M55.cjs.map} +1 -1
- package/dist/SurveyBlock-4CD4AYMJ.cjs +16 -0
- package/dist/{SurveyBlock-MCJVWR7H.cjs.map → SurveyBlock-4CD4AYMJ.cjs.map} +1 -1
- package/dist/SurveyBlock-4DO62RBT.js +7 -0
- package/dist/{SurveyBlock-6K2POV7S.js.map → SurveyBlock-4DO62RBT.js.map} +1 -1
- package/dist/brands/index.cjs +20 -20
- package/dist/brands/index.js +4 -4
- package/dist/brands/types.cjs +4 -4
- package/dist/brands/types.d.cts +9 -0
- package/dist/brands/types.d.ts +9 -0
- package/dist/brands/types.js +1 -1
- package/dist/{chunk-XTHMC76F.cjs → chunk-2G75X6TS.cjs} +4 -4
- package/dist/{chunk-XTHMC76F.cjs.map → chunk-2G75X6TS.cjs.map} +1 -1
- package/dist/chunk-2IZLKPUW.js +412 -0
- package/dist/chunk-2IZLKPUW.js.map +1 -0
- package/dist/{chunk-VSVGMMNO.js → chunk-3M7TAXNR.js} +3 -3
- package/dist/{chunk-VSVGMMNO.js.map → chunk-3M7TAXNR.js.map} +1 -1
- package/dist/{chunk-5Z6UPVGC.cjs → chunk-3QEVGSFG.cjs} +5 -5
- package/dist/{chunk-5Z6UPVGC.cjs.map → chunk-3QEVGSFG.cjs.map} +1 -1
- package/dist/{chunk-PYHFVYVZ.js → chunk-3QGS6CXD.js} +3 -3
- package/dist/{chunk-PYHFVYVZ.js.map → chunk-3QGS6CXD.js.map} +1 -1
- package/dist/chunk-3YBS4WUQ.js +52 -0
- package/dist/chunk-3YBS4WUQ.js.map +1 -0
- package/dist/chunk-462XSCP3.cjs +199 -0
- package/dist/chunk-462XSCP3.cjs.map +1 -0
- package/dist/{chunk-X5YM3KXY.js → chunk-4A3W4TQF.js} +201 -4
- package/dist/chunk-4A3W4TQF.js.map +1 -0
- package/dist/chunk-4IS3QCOQ.cjs +453 -0
- package/dist/chunk-4IS3QCOQ.cjs.map +1 -0
- package/dist/chunk-4NCDU5IG.cjs +56 -0
- package/dist/chunk-4NCDU5IG.cjs.map +1 -0
- package/dist/{chunk-WOYUQ4AT.js → chunk-5GOWFNQ6.js} +9 -3
- package/dist/chunk-5GOWFNQ6.js.map +1 -0
- package/dist/chunk-5GUOOLPR.cjs +436 -0
- package/dist/chunk-5GUOOLPR.cjs.map +1 -0
- package/dist/{chunk-WUBMDOTG.js → chunk-5JJ2DAE4.js} +4 -4
- package/dist/{chunk-WUBMDOTG.js.map → chunk-5JJ2DAE4.js.map} +1 -1
- package/dist/{chunk-RSCA5AZW.cjs → chunk-5MCBWTIF.cjs} +4 -4
- package/dist/{chunk-RSCA5AZW.cjs.map → chunk-5MCBWTIF.cjs.map} +1 -1
- package/dist/chunk-6EN3IQQI.cjs +332 -0
- package/dist/chunk-6EN3IQQI.cjs.map +1 -0
- package/dist/chunk-74ENCTIK.js +162 -0
- package/dist/chunk-74ENCTIK.js.map +1 -0
- package/dist/chunk-76TBQDED.js +166 -0
- package/dist/chunk-76TBQDED.js.map +1 -0
- package/dist/{chunk-OAZUDUGX.js → chunk-7IBZA7G6.js} +4 -4
- package/dist/{chunk-OAZUDUGX.js.map → chunk-7IBZA7G6.js.map} +1 -1
- package/dist/{chunk-AUOTJQGO.cjs → chunk-7ZDPD5ZX.cjs} +4 -4
- package/dist/{chunk-AUOTJQGO.cjs.map → chunk-7ZDPD5ZX.cjs.map} +1 -1
- package/dist/{chunk-IB54SKWB.cjs → chunk-7ZXAQTV4.cjs} +8 -8
- package/dist/{chunk-IB54SKWB.cjs.map → chunk-7ZXAQTV4.cjs.map} +1 -1
- package/dist/{chunk-IIFQ6BSJ.js → chunk-ACCAXVOG.js} +6 -6
- package/dist/{chunk-IIFQ6BSJ.js.map → chunk-ACCAXVOG.js.map} +1 -1
- package/dist/{chunk-QO6PRHDX.cjs → chunk-AR7AKDM2.cjs} +2 -2
- package/dist/{chunk-QO6PRHDX.cjs.map → chunk-AR7AKDM2.cjs.map} +1 -1
- package/dist/{chunk-PY7XAG4D.cjs → chunk-ASSDGS4F.cjs} +201 -4
- package/dist/chunk-ASSDGS4F.cjs.map +1 -0
- package/dist/{chunk-24SEAAOH.js → chunk-AWJBOND5.js} +2 -2
- package/dist/{chunk-24SEAAOH.js.map → chunk-AWJBOND5.js.map} +1 -1
- package/dist/chunk-BM35CACB.js +148 -0
- package/dist/chunk-BM35CACB.js.map +1 -0
- package/dist/chunk-CR2SDI23.cjs +322 -0
- package/dist/chunk-CR2SDI23.cjs.map +1 -0
- package/dist/{chunk-OSPTA4UR.js → chunk-DEDN5HAG.js} +3 -3
- package/dist/{chunk-OSPTA4UR.js.map → chunk-DEDN5HAG.js.map} +1 -1
- package/dist/chunk-DZ5HFLRC.js +258 -0
- package/dist/chunk-DZ5HFLRC.js.map +1 -0
- package/dist/{chunk-PKD3JLS2.cjs → chunk-E4IBHYJ7.cjs} +9 -9
- package/dist/{chunk-PKD3JLS2.cjs.map → chunk-E4IBHYJ7.cjs.map} +1 -1
- package/dist/{chunk-QSVQABXD.js → chunk-ENKFJJZX.js} +7 -7
- package/dist/{chunk-QSVQABXD.js.map → chunk-ENKFJJZX.js.map} +1 -1
- package/dist/{chunk-MUIDWFYJ.js → chunk-FJ7YPVKV.js} +3 -3
- package/dist/{chunk-MUIDWFYJ.js.map → chunk-FJ7YPVKV.js.map} +1 -1
- package/dist/{chunk-3LHICE4I.cjs → chunk-FXO5ARBB.cjs} +5 -5
- package/dist/{chunk-3LHICE4I.cjs.map → chunk-FXO5ARBB.cjs.map} +1 -1
- package/dist/{chunk-QKAYRHWP.cjs → chunk-G3JX3UAU.cjs} +12 -12
- package/dist/{chunk-QKAYRHWP.cjs.map → chunk-G3JX3UAU.cjs.map} +1 -1
- package/dist/chunk-G4D6CLBT.js +333 -0
- package/dist/chunk-G4D6CLBT.js.map +1 -0
- package/dist/{chunk-OMAACCFW.cjs → chunk-GD7EBGC4.cjs} +19 -19
- package/dist/{chunk-OMAACCFW.cjs.map → chunk-GD7EBGC4.cjs.map} +1 -1
- package/dist/{chunk-KREUYVMZ.js → chunk-GOALNQZ2.js} +13 -4
- package/dist/chunk-GOALNQZ2.js.map +1 -0
- package/dist/{chunk-CK3KLRNF.js → chunk-H4ZXMQQW.js} +3 -3
- package/dist/{chunk-CK3KLRNF.js.map → chunk-H4ZXMQQW.js.map} +1 -1
- package/dist/chunk-IT775BYG.js +179 -0
- package/dist/chunk-IT775BYG.js.map +1 -0
- package/dist/{chunk-AHINB2TP.cjs → chunk-IX6KFB3K.cjs} +9 -9
- package/dist/{chunk-AHINB2TP.cjs.map → chunk-IX6KFB3K.cjs.map} +1 -1
- package/dist/chunk-IXFC7LK2.cjs +174 -0
- package/dist/chunk-IXFC7LK2.cjs.map +1 -0
- package/dist/{chunk-VNAREBLV.cjs → chunk-J5CSLNCN.cjs} +3 -3
- package/dist/{chunk-VNAREBLV.cjs.map → chunk-J5CSLNCN.cjs.map} +1 -1
- package/dist/{chunk-MM7QKUE3.cjs → chunk-JID7AZTO.cjs} +5 -5
- package/dist/{chunk-MM7QKUE3.cjs.map → chunk-JID7AZTO.cjs.map} +1 -1
- package/dist/{chunk-E3KC2XLN.cjs → chunk-KQUI4BGS.cjs} +51 -51
- package/dist/{chunk-E3KC2XLN.cjs.map → chunk-KQUI4BGS.cjs.map} +1 -1
- package/dist/{chunk-ZB54MTMQ.js → chunk-KZFBQ7GY.js} +3 -3
- package/dist/{chunk-ZB54MTMQ.js.map → chunk-KZFBQ7GY.js.map} +1 -1
- package/dist/{chunk-XBXDUAIM.js → chunk-LL6IWKI3.js} +4 -4
- package/dist/{chunk-XBXDUAIM.js.map → chunk-LL6IWKI3.js.map} +1 -1
- package/dist/{chunk-ON4JULCA.js → chunk-LMBXJZLG.js} +3 -3
- package/dist/{chunk-ON4JULCA.js.map → chunk-LMBXJZLG.js.map} +1 -1
- package/dist/{chunk-ZX2XRFE5.js → chunk-MNILXWVY.js} +7 -7
- package/dist/{chunk-ZX2XRFE5.js.map → chunk-MNILXWVY.js.map} +1 -1
- package/dist/chunk-MWVW4APN.cjs +260 -0
- package/dist/chunk-MWVW4APN.cjs.map +1 -0
- package/dist/{chunk-WIAQQNFU.cjs → chunk-MYHV2ND3.cjs} +37 -3
- package/dist/chunk-MYHV2ND3.cjs.map +1 -0
- package/dist/{chunk-BZAGP5W6.cjs → chunk-N6IY47YA.cjs} +8 -8
- package/dist/{chunk-BZAGP5W6.cjs.map → chunk-N6IY47YA.cjs.map} +1 -1
- package/dist/{chunk-OCV33S5Q.cjs → chunk-NFKX6QJP.cjs} +3 -3
- package/dist/{chunk-OCV33S5Q.cjs.map → chunk-NFKX6QJP.cjs.map} +1 -1
- package/dist/{chunk-J644FU54.cjs → chunk-NGQRS7AW.cjs} +9 -3
- package/dist/chunk-NGQRS7AW.cjs.map +1 -0
- package/dist/{chunk-QAKASRE6.js → chunk-NJ6MY6V5.js} +4 -4
- package/dist/{chunk-QAKASRE6.js.map → chunk-NJ6MY6V5.js.map} +1 -1
- package/dist/{chunk-P52GA3GJ.cjs → chunk-NM7O7RY5.cjs} +4 -2
- package/dist/chunk-NM7O7RY5.cjs.map +1 -0
- package/dist/chunk-OCSCBB52.cjs +188 -0
- package/dist/chunk-OCSCBB52.cjs.map +1 -0
- package/dist/{chunk-OFUKTVBN.cjs → chunk-OD47TTAW.cjs} +9 -9
- package/dist/{chunk-OFUKTVBN.cjs.map → chunk-OD47TTAW.cjs.map} +1 -1
- package/dist/{chunk-QKFJDQEK.js → chunk-OE5CKRUC.js} +4 -4
- package/dist/{chunk-QKFJDQEK.js.map → chunk-OE5CKRUC.js.map} +1 -1
- package/dist/chunk-OGNADPM4.cjs +170 -0
- package/dist/chunk-OGNADPM4.cjs.map +1 -0
- package/dist/{chunk-MBWF36DJ.js → chunk-P2CA3XGI.js} +3 -3
- package/dist/{chunk-MBWF36DJ.js.map → chunk-P2CA3XGI.js.map} +1 -1
- package/dist/chunk-POWS35OT.js +152 -0
- package/dist/chunk-POWS35OT.js.map +1 -0
- package/dist/chunk-PYJDVWXM.js +237 -0
- package/dist/chunk-PYJDVWXM.js.map +1 -0
- package/dist/{chunk-MTZPVOP6.js → chunk-Q77TE5DZ.js} +4 -2
- package/dist/chunk-Q77TE5DZ.js.map +1 -0
- package/dist/{chunk-L5W7TJQ5.js → chunk-RJ6NTJHC.js} +4 -4
- package/dist/{chunk-L5W7TJQ5.js.map → chunk-RJ6NTJHC.js.map} +1 -1
- package/dist/{chunk-C3DUS2VE.cjs → chunk-RS5VA6QU.cjs} +3 -3
- package/dist/{chunk-C3DUS2VE.cjs.map → chunk-RS5VA6QU.cjs.map} +1 -1
- package/dist/{chunk-IGNWT6RP.js → chunk-S7WCHDBO.js} +4 -4
- package/dist/{chunk-IGNWT6RP.js.map → chunk-S7WCHDBO.js.map} +1 -1
- package/dist/{chunk-RXPEZXAB.cjs → chunk-SGFYA22I.cjs} +5 -5
- package/dist/{chunk-RXPEZXAB.cjs.map → chunk-SGFYA22I.cjs.map} +1 -1
- package/dist/chunk-SQJFBZ42.js +297 -0
- package/dist/chunk-SQJFBZ42.js.map +1 -0
- package/dist/chunk-SUS3WFY3.js +156 -0
- package/dist/chunk-SUS3WFY3.js.map +1 -0
- package/dist/{chunk-H4AVMUOC.cjs → chunk-TAXD5ADA.cjs} +4 -4
- package/dist/{chunk-H4AVMUOC.cjs.map → chunk-TAXD5ADA.cjs.map} +1 -1
- package/dist/{chunk-NHN6A3ZO.js → chunk-TMMVIUUN.js} +4 -4
- package/dist/{chunk-NHN6A3ZO.js.map → chunk-TMMVIUUN.js.map} +1 -1
- package/dist/chunk-TPWKM7JH.js +196 -0
- package/dist/chunk-TPWKM7JH.js.map +1 -0
- package/dist/chunk-TU63764L.cjs +158 -0
- package/dist/chunk-TU63764L.cjs.map +1 -0
- package/dist/{chunk-7KWNY3HG.js → chunk-TVTIGV7Q.js} +9 -9
- package/dist/{chunk-7KWNY3HG.js.map → chunk-TVTIGV7Q.js.map} +1 -1
- package/dist/{chunk-22CYDCXA.js → chunk-TZJQB4P2.js} +37 -4
- package/dist/chunk-TZJQB4P2.js.map +1 -0
- package/dist/{chunk-X5QRRMGB.cjs → chunk-UAMXCMST.cjs} +4 -4
- package/dist/{chunk-X5QRRMGB.cjs.map → chunk-UAMXCMST.cjs.map} +1 -1
- package/dist/{chunk-QAQOCS2J.js → chunk-UBOVDAD7.js} +3 -3
- package/dist/{chunk-QAQOCS2J.js.map → chunk-UBOVDAD7.js.map} +1 -1
- package/dist/{chunk-IGSIWNX3.cjs → chunk-UQ3VVR6A.cjs} +4 -4
- package/dist/{chunk-IGSIWNX3.cjs.map → chunk-UQ3VVR6A.cjs.map} +1 -1
- package/dist/chunk-URAQIF67.cjs +356 -0
- package/dist/chunk-URAQIF67.cjs.map +1 -0
- package/dist/{chunk-6QKMMKRY.cjs → chunk-UV2FVNWT.cjs} +5 -5
- package/dist/{chunk-6QKMMKRY.cjs.map → chunk-UV2FVNWT.cjs.map} +1 -1
- package/dist/{chunk-EG7XFZ3W.js → chunk-V7D3YGUV.js} +4 -4
- package/dist/{chunk-EG7XFZ3W.js.map → chunk-V7D3YGUV.js.map} +1 -1
- package/dist/{chunk-Y6DFMDMH.js → chunk-VILW53UZ.js} +3 -3
- package/dist/{chunk-Y6DFMDMH.js.map → chunk-VILW53UZ.js.map} +1 -1
- package/dist/chunk-VINZZQBD.cjs +323 -0
- package/dist/chunk-VINZZQBD.cjs.map +1 -0
- package/dist/{chunk-5WOB4UBD.js → chunk-VKELAMAZ.js} +3 -3
- package/dist/{chunk-5WOB4UBD.js.map → chunk-VKELAMAZ.js.map} +1 -1
- package/dist/{chunk-IINZWUGK.cjs → chunk-VNYW4C4J.cjs} +13 -4
- package/dist/chunk-VNYW4C4J.cjs.map +1 -0
- package/dist/{chunk-RD3JDFYJ.js → chunk-VOKVG3ER.js} +4 -4
- package/dist/{chunk-RD3JDFYJ.js.map → chunk-VOKVG3ER.js.map} +1 -1
- package/dist/chunk-VPTASZ2O.cjs +171 -0
- package/dist/chunk-VPTASZ2O.cjs.map +1 -0
- package/dist/{chunk-37UZHCLM.cjs → chunk-VPWJCJCX.cjs} +3 -3
- package/dist/{chunk-37UZHCLM.cjs.map → chunk-VPWJCJCX.cjs.map} +1 -1
- package/dist/{chunk-3RB35GYK.js → chunk-VU6UTJRM.js} +4 -4
- package/dist/{chunk-3RB35GYK.js.map → chunk-VU6UTJRM.js.map} +1 -1
- package/dist/{chunk-6SAYPXHX.js → chunk-WGPLUCBD.js} +4 -4
- package/dist/{chunk-6SAYPXHX.js.map → chunk-WGPLUCBD.js.map} +1 -1
- package/dist/{chunk-KLJGJJHN.cjs → chunk-WNZAYBVB.cjs} +49 -49
- package/dist/{chunk-KLJGJJHN.cjs.map → chunk-WNZAYBVB.cjs.map} +1 -1
- package/dist/{chunk-BVMABVC4.cjs → chunk-WWJIW2IH.cjs} +3 -3
- package/dist/{chunk-BVMABVC4.cjs.map → chunk-WWJIW2IH.cjs.map} +1 -1
- package/dist/{chunk-OYQ7GYAA.cjs → chunk-X4XPNTCZ.cjs} +12 -12
- package/dist/{chunk-OYQ7GYAA.cjs.map → chunk-X4XPNTCZ.cjs.map} +1 -1
- package/dist/chunk-XDIMTPZU.cjs +202 -0
- package/dist/chunk-XDIMTPZU.cjs.map +1 -0
- package/dist/{chunk-IFDC4TXM.cjs → chunk-XEAT7XJG.cjs} +4 -4
- package/dist/{chunk-IFDC4TXM.cjs.map → chunk-XEAT7XJG.cjs.map} +1 -1
- package/dist/{chunk-S3BCHPXT.cjs → chunk-XI34EGK5.cjs} +9 -9
- package/dist/{chunk-S3BCHPXT.cjs.map → chunk-XI34EGK5.cjs.map} +1 -1
- package/dist/chunk-XVW5DPPP.js +429 -0
- package/dist/chunk-XVW5DPPP.js.map +1 -0
- package/dist/chunk-XZNN3S3S.cjs +281 -0
- package/dist/chunk-XZNN3S3S.cjs.map +1 -0
- package/dist/chunk-Y4QNLW7W.js +300 -0
- package/dist/chunk-Y4QNLW7W.js.map +1 -0
- package/dist/chunk-Y5HFM7LO.js +310 -0
- package/dist/chunk-Y5HFM7LO.js.map +1 -0
- package/dist/{chunk-LECJMLNE.js → chunk-YQDA366U.js} +3 -3
- package/dist/{chunk-LECJMLNE.js.map → chunk-YQDA366U.js.map} +1 -1
- package/dist/{chunk-PHK4XBO5.js → chunk-Z5V7SAZ4.js} +4 -4
- package/dist/{chunk-PHK4XBO5.js.map → chunk-Z5V7SAZ4.js.map} +1 -1
- package/dist/{chunk-TZX76ZNZ.js → chunk-ZGRCSNPK.js} +5 -5
- package/dist/{chunk-TZX76ZNZ.js.map → chunk-ZGRCSNPK.js.map} +1 -1
- package/dist/{chunk-AZP3DDBT.cjs → chunk-ZPSJ2UV6.cjs} +8 -8
- package/dist/{chunk-AZP3DDBT.cjs.map → chunk-ZPSJ2UV6.cjs.map} +1 -1
- package/dist/{chunk-SRA2L3SQ.cjs → chunk-ZSGEGISB.cjs} +4 -4
- package/dist/{chunk-SRA2L3SQ.cjs.map → chunk-ZSGEGISB.cjs.map} +1 -1
- package/dist/components/AlertDialog/index.cjs +6 -6
- package/dist/components/AlertDialog/index.js +5 -5
- package/dist/components/Autocomplete/index.cjs +3 -3
- package/dist/components/Autocomplete/index.js +2 -2
- package/dist/components/BoardView/index.cjs +24 -0
- package/dist/components/BoardView/index.cjs.map +1 -0
- package/dist/components/BoardView/index.d.cts +42 -0
- package/dist/components/BoardView/index.d.ts +42 -0
- package/dist/components/BoardView/index.js +7 -0
- package/dist/components/BoardView/index.js.map +1 -0
- package/dist/components/Button/index.cjs +3 -3
- package/dist/components/Button/index.d.cts +3 -0
- package/dist/components/Button/index.d.ts +3 -0
- package/dist/components/Button/index.js +1 -1
- package/dist/components/CalendarView/index.cjs +22 -0
- package/dist/components/CalendarView/index.cjs.map +1 -0
- package/dist/components/CalendarView/index.d.cts +40 -0
- package/dist/components/CalendarView/index.d.ts +40 -0
- package/dist/components/CalendarView/index.js +9 -0
- package/dist/components/CalendarView/index.js.map +1 -0
- package/dist/components/Collapsible/index.cjs +5 -5
- package/dist/components/Collapsible/index.js +2 -2
- package/dist/components/CountryCodeDropdown/index.cjs +6 -6
- package/dist/components/CountryCodeDropdown/index.js +3 -3
- package/dist/components/CustomizableDashboard/index.cjs +11 -11
- package/dist/components/CustomizableDashboard/index.js +4 -4
- package/dist/components/DateInput/index.cjs +4 -4
- package/dist/components/DateInput/index.js +3 -3
- package/dist/components/Dropdown/index.cjs +11 -11
- package/dist/components/Dropdown/index.js +4 -4
- package/dist/components/FloatingWindow/index.cjs +4 -4
- package/dist/components/FloatingWindow/index.js +2 -2
- package/dist/components/GanttView/index.cjs +20 -0
- package/dist/components/GanttView/index.cjs.map +1 -0
- package/dist/components/GanttView/index.d.cts +37 -0
- package/dist/components/GanttView/index.d.ts +37 -0
- package/dist/components/GanttView/index.js +7 -0
- package/dist/components/GanttView/index.js.map +1 -0
- package/dist/components/GlossaryTooltip/index.cjs +4 -4
- package/dist/components/GlossaryTooltip/index.js +3 -3
- package/dist/components/KeyboardShortcutsOverlay/index.cjs +6 -6
- package/dist/components/KeyboardShortcutsOverlay/index.js +4 -4
- package/dist/components/ListView/index.cjs +22 -0
- package/dist/components/ListView/index.cjs.map +1 -0
- package/dist/components/ListView/index.d.cts +37 -0
- package/dist/components/ListView/index.d.ts +37 -0
- package/dist/components/ListView/index.js +9 -0
- package/dist/components/ListView/index.js.map +1 -0
- package/dist/components/Markdown/index.cjs +19 -19
- package/dist/components/Markdown/index.js +7 -7
- package/dist/components/MediaEditor/index.cjs +16 -16
- package/dist/components/MediaEditor/index.js +11 -11
- package/dist/components/MediaPlayer/index.cjs +6 -6
- package/dist/components/MediaPlayer/index.js +3 -3
- package/dist/components/MegaMenu/index.cjs +23 -0
- package/dist/components/MegaMenu/index.cjs.map +1 -0
- package/dist/components/MegaMenu/index.d.cts +106 -0
- package/dist/components/MegaMenu/index.d.ts +106 -0
- package/dist/components/MegaMenu/index.js +6 -0
- package/dist/components/MegaMenu/index.js.map +1 -0
- package/dist/components/Modal/index.cjs +11 -11
- package/dist/components/Modal/index.js +3 -3
- package/dist/components/OrbitRing/index.cjs +14 -0
- package/dist/components/OrbitRing/index.cjs.map +1 -0
- package/dist/components/OrbitRing/index.d.cts +64 -0
- package/dist/components/OrbitRing/index.d.ts +64 -0
- package/dist/components/OrbitRing/index.js +5 -0
- package/dist/components/OrbitRing/index.js.map +1 -0
- package/dist/components/QuickAction/index.d.cts +1 -1
- package/dist/components/QuickAction/index.d.ts +1 -1
- package/dist/components/RadialExplorer/index.cjs +18 -0
- package/dist/components/RadialExplorer/index.cjs.map +1 -0
- package/dist/components/RadialExplorer/index.d.cts +83 -0
- package/dist/components/RadialExplorer/index.d.ts +83 -0
- package/dist/components/RadialExplorer/index.js +9 -0
- package/dist/components/RadialExplorer/index.js.map +1 -0
- package/dist/components/RichTextEditor/index.cjs +9 -9
- package/dist/components/RichTextEditor/index.js +6 -6
- package/dist/components/SectionSpyNav/index.cjs +4 -4
- package/dist/components/SectionSpyNav/index.js +3 -3
- package/dist/components/Select/index.cjs +5 -5
- package/dist/components/Select/index.js +3 -3
- package/dist/components/Sheet/index.cjs +11 -11
- package/dist/components/Sheet/index.js +2 -2
- package/dist/components/SliderCalculator/index.cjs +20 -0
- package/dist/components/SliderCalculator/index.cjs.map +1 -0
- package/dist/components/SliderCalculator/index.d.cts +100 -0
- package/dist/components/SliderCalculator/index.d.ts +100 -0
- package/dist/components/SliderCalculator/index.js +7 -0
- package/dist/components/SliderCalculator/index.js.map +1 -0
- package/dist/components/SourceTip/index.cjs +4 -4
- package/dist/components/SourceTip/index.js +3 -3
- package/dist/components/SuperChat/index.cjs +454 -279
- package/dist/components/SuperChat/index.cjs.map +1 -1
- package/dist/components/SuperChat/index.js +444 -269
- package/dist/components/SuperChat/index.js.map +1 -1
- package/dist/components/SuperChat/plugins/index.cjs +8 -8
- package/dist/components/SuperChat/plugins/index.js +7 -7
- package/dist/components/ThemeProvider/index.cjs +9 -9
- package/dist/components/ThemeProvider/index.js +3 -3
- package/dist/components/Tooltip/index.cjs +3 -3
- package/dist/components/Tooltip/index.js +2 -2
- package/dist/components/VideoCard/index.cjs +21 -0
- package/dist/components/VideoCard/index.cjs.map +1 -0
- package/dist/components/VideoCard/index.d.cts +75 -0
- package/dist/components/VideoCard/index.d.ts +75 -0
- package/dist/components/VideoCard/index.js +8 -0
- package/dist/components/VideoCard/index.js.map +1 -0
- package/dist/components/ViewSet/index.cjs +23 -0
- package/dist/components/ViewSet/index.cjs.map +1 -0
- package/dist/components/ViewSet/index.d.cts +89 -0
- package/dist/components/ViewSet/index.d.ts +89 -0
- package/dist/components/ViewSet/index.js +14 -0
- package/dist/components/ViewSet/index.js.map +1 -0
- package/dist/components/ViewSwitcher/index.cjs +20 -0
- package/dist/components/ViewSwitcher/index.cjs.map +1 -0
- package/dist/components/ViewSwitcher/index.d.cts +40 -0
- package/dist/components/ViewSwitcher/index.d.ts +40 -0
- package/dist/components/ViewSwitcher/index.js +7 -0
- package/dist/components/ViewSwitcher/index.js.map +1 -0
- package/dist/components/YearTimeline/index.cjs +26 -0
- package/dist/components/YearTimeline/index.cjs.map +1 -0
- package/dist/components/YearTimeline/index.d.cts +82 -0
- package/dist/components/YearTimeline/index.d.ts +82 -0
- package/dist/components/YearTimeline/index.js +5 -0
- package/dist/components/YearTimeline/index.js.map +1 -0
- package/dist/datavis.cjs +2 -2
- package/dist/datavis.js +1 -1
- package/dist/enterprise-health-ITUNXDIW.js +4 -0
- package/dist/{enterprise-health-CWLUB77O.js.map → enterprise-health-ITUNXDIW.js.map} +1 -1
- package/dist/enterprise-health-UHHPVPU6.cjs +19 -0
- package/dist/{enterprise-health-75VYWAVG.cjs.map → enterprise-health-UHHPVPU6.cjs.map} +1 -1
- package/dist/esheet.cjs +18 -18
- package/dist/esheet.js +15 -15
- package/dist/globe.cjs +306 -0
- package/dist/globe.cjs.map +1 -0
- package/dist/globe.d.cts +99 -0
- package/dist/globe.d.ts +99 -0
- package/dist/globe.js +279 -0
- package/dist/globe.js.map +1 -0
- package/dist/hooks/index.cjs +38 -24
- package/dist/hooks/index.d.cts +141 -1
- package/dist/hooks/index.d.ts +141 -1
- package/dist/hooks/index.js +6 -4
- package/dist/index.cjs +1510 -1205
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +97 -25
- package/dist/index.d.ts +97 -25
- package/dist/index.js +546 -379
- package/dist/index.js.map +1 -1
- package/dist/kerebron.cjs +58 -19
- package/dist/kerebron.cjs.map +1 -1
- package/dist/kerebron.d.cts +37 -0
- package/dist/kerebron.d.ts +37 -0
- package/dist/kerebron.js +58 -19
- package/dist/kerebron.js.map +1 -1
- package/dist/{speaker-verify-5GTWAN5Y.cjs → speaker-verify-4NEJAK6C.cjs} +57 -90
- package/dist/speaker-verify-4NEJAK6C.cjs.map +1 -0
- package/dist/{speaker-verify-R67P433H.js → speaker-verify-AWSKI6DI.js} +57 -90
- package/dist/speaker-verify-AWSKI6DI.js.map +1 -0
- package/dist/styles/effects.css +128 -0
- package/dist/styles/init.css +15 -0
- package/dist/styles.css +1 -1
- package/dist/tailwind-preset.cjs +4 -4
- package/dist/tailwind-preset.js +1 -1
- package/dist/types-CbWXIKbe.d.cts +119 -0
- package/dist/types-CbWXIKbe.d.ts +119 -0
- package/dist/utils/index.cjs +5 -5
- package/dist/utils/index.js +1 -1
- package/package.json +28 -2
- package/dist/CsvBlock-CVYA3HYS.cjs +0 -16
- package/dist/CsvBlock-SM4NKSHA.js +0 -7
- package/dist/HtmlPreviewBlock-FAMF4W24.js +0 -7
- package/dist/HtmlPreviewBlock-JF454L2L.cjs +0 -16
- package/dist/MermaidBlock-7V5G4K5A.js +0 -7
- package/dist/MermaidBlock-FR5SQX4Q.cjs +0 -16
- package/dist/SurveyBlock-6K2POV7S.js +0 -7
- package/dist/SurveyBlock-MCJVWR7H.cjs +0 -16
- package/dist/chunk-22CYDCXA.js.map +0 -1
- package/dist/chunk-IINZWUGK.cjs.map +0 -1
- package/dist/chunk-J644FU54.cjs.map +0 -1
- package/dist/chunk-KREUYVMZ.js.map +0 -1
- package/dist/chunk-MTZPVOP6.js.map +0 -1
- package/dist/chunk-P52GA3GJ.cjs.map +0 -1
- package/dist/chunk-PY7XAG4D.cjs.map +0 -1
- package/dist/chunk-WIAQQNFU.cjs.map +0 -1
- package/dist/chunk-WOYUQ4AT.js.map +0 -1
- package/dist/chunk-X5YM3KXY.js.map +0 -1
- package/dist/enterprise-health-75VYWAVG.cjs +0 -19
- package/dist/enterprise-health-CWLUB77O.js +0 -4
- package/dist/speaker-verify-5GTWAN5Y.cjs.map +0 -1
- package/dist/speaker-verify-R67P433H.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/brands/types.ts"],"names":[],"mappings":"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","file":"chunk-5GOWFNQ6.js","sourcesContent":["/**\n * @mieweb/ui Brand System Types\n *\n * This module provides type definitions and utilities for brand themes.\n * Brands define colors, typography, spacing, and other design tokens that\n * can be applied to @mieweb/ui components.\n */\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\n/**\n * Primary color scale (50-950) following Tailwind conventions.\n */\nexport interface ColorScale {\n 50: string;\n 100: string;\n 200: string;\n 300: string;\n 400: string;\n 500: string;\n 600: string;\n 700: string;\n 800: string;\n 900: string;\n 950: string;\n}\n\n/**\n * Semantic colors for a specific color mode (light or dark).\n */\nexport interface SemanticColors {\n /** Page background color */\n background: string;\n /** Primary text color */\n foreground: string;\n /** Card/panel background */\n card: string;\n /** Card text color */\n cardForeground: string;\n /** Muted/subtle background */\n muted: string;\n /** Muted/secondary text */\n mutedForeground: string;\n /** Border color */\n border: string;\n /** Input border color */\n input: string;\n /** Focus ring color */\n ring: string;\n /** Destructive/error color */\n destructive: string;\n /** Text on destructive backgrounds */\n destructiveForeground: string;\n /** Success color */\n success: string;\n /** Text on success backgrounds */\n successForeground: string;\n /** Warning color */\n warning: string;\n /** Text on warning backgrounds */\n warningForeground: string;\n}\n\n/**\n * Complete color configuration for a brand.\n */\nexport interface BrandColors {\n /** Primary brand color scale */\n primary: ColorScale;\n /** Secondary color scale (optional — falls back to library defaults) */\n secondary?: ColorScale;\n /** Neutral / gray color scale (optional — falls back to library defaults) */\n neutral?: ColorScale;\n /** Destructive / error color scale (optional — falls back to library defaults) */\n destructive?: ColorScale;\n /** Success color scale (optional — falls back to library defaults) */\n success?: ColorScale;\n /** Warning color scale (optional — falls back to library defaults) */\n warning?: ColorScale;\n /** Info color scale (optional — falls back to library defaults) */\n info?: ColorScale;\n /**\n * Brand accent (optional) — exposed as `--mieweb-accent`, `--mieweb-accent-light`\n * and `--mieweb-accent-dark`. Components fall back to the primary scale when unset.\n */\n accent?: { DEFAULT: string; light?: string; dark?: string };\n /** Light mode semantic colors */\n light: SemanticColors;\n /** Dark mode semantic colors */\n dark: SemanticColors;\n}\n\n/**\n * Typography configuration for a brand.\n */\nexport interface BrandTypography {\n /** Font family stack for body text */\n fontFamily: {\n sans: string[];\n mono?: string[];\n };\n /** Base font size (usually 16px) */\n baseFontSize?: string;\n}\n\n/**\n * Border radius configuration.\n */\nexport interface BrandBorderRadius {\n none: string;\n sm: string;\n md: string;\n lg: string;\n xl: string;\n '2xl': string;\n full: string;\n}\n\n/**\n * Box shadow configuration.\n */\nexport interface BrandBoxShadow {\n card: string;\n dropdown: string;\n modal: string;\n}\n\n/**\n * Complete brand configuration.\n */\nexport interface BrandConfig {\n /** Unique identifier (lowercase, no spaces) */\n name: string;\n /** Human-readable display name */\n displayName: string;\n /** Brand description */\n description?: string;\n /** Color configuration */\n colors: BrandColors;\n /** Typography settings */\n typography: BrandTypography;\n /** Border radius scale */\n borderRadius: BrandBorderRadius;\n /** Box shadow definitions */\n boxShadow: BrandBoxShadow;\n}\n\n// ============================================================================\n// CSS Generation\n// ============================================================================\n\n/**\n * Generate CSS custom properties from a brand configuration.\n * This creates a standalone CSS file that can be imported into any project.\n */\nexport function generateBrandCSS(brand: BrandConfig): string {\n const { colors, typography, borderRadius, boxShadow } = brand;\n\n // Collect all color scales (primary + any optional scales)\n const scaleNames = [\n 'primary',\n 'secondary',\n 'neutral',\n 'destructive',\n 'success',\n 'warning',\n 'info',\n ] as const;\n\n const scaleBlocks = scaleNames\n .filter(\n (name) =>\n name in colors &&\n typeof colors[name] === 'object' &&\n colors[name] !== undefined\n )\n .map((name) => {\n const scale = colors[name] as ColorScale;\n const label = name.charAt(0).toUpperCase() + name.slice(1);\n return ` /* ${label} Color Scale */\n --mieweb-${name}-50: ${scale[50]};\n --mieweb-${name}-100: ${scale[100]};\n --mieweb-${name}-200: ${scale[200]};\n --mieweb-${name}-300: ${scale[300]};\n --mieweb-${name}-400: ${scale[400]};\n --mieweb-${name}-500: ${scale[500]};\n --mieweb-${name}-600: ${scale[600]};\n --mieweb-${name}-700: ${scale[700]};\n --mieweb-${name}-800: ${scale[800]};\n --mieweb-${name}-900: ${scale[900]};\n --mieweb-${name}-950: ${scale[950]};`;\n })\n .join('\\n\\n');\n\n // Optional brand accent — components fall back to the primary scale when\n // these variables are absent, so only emit them when the brand defines one.\n const accentBlock = colors.accent\n ? `\n\n /* Brand Accent */\n --mieweb-accent: ${colors.accent.DEFAULT};${colors.accent.light ? `\\n --mieweb-accent-light: ${colors.accent.light};` : ''}${colors.accent.dark ? `\\n --mieweb-accent-dark: ${colors.accent.dark};` : ''}`\n : '';\n\n return `/**\n * ${brand.displayName} Brand Theme\n * Generated by @mieweb/ui\n * ${brand.description || ''}\n */\n\n/* ============================================\n ${brand.displayName} Design Tokens\n ============================================ */\n\n:root {\n${scaleBlocks}${accentBlock}\n\n /* Light Mode Semantic Colors */\n --mieweb-background: ${colors.light.background};\n --mieweb-foreground: ${colors.light.foreground};\n --mieweb-card: ${colors.light.card};\n --mieweb-card-foreground: ${colors.light.cardForeground};\n --mieweb-muted: ${colors.light.muted};\n --mieweb-muted-foreground: ${colors.light.mutedForeground};\n --mieweb-border: ${colors.light.border};\n --mieweb-input: ${colors.light.input};\n --mieweb-ring: ${colors.light.ring};\n --mieweb-destructive: ${colors.light.destructive};\n --mieweb-destructive-foreground: ${colors.light.destructiveForeground};\n --mieweb-success: ${colors.light.success};\n --mieweb-success-foreground: ${colors.light.successForeground};\n --mieweb-warning: ${colors.light.warning};\n --mieweb-warning-foreground: ${colors.light.warningForeground};\n\n /* Typography */\n --mieweb-font-sans: ${typography.fontFamily.sans.map((f) => (f.includes(' ') ? `\"${f}\"` : f)).join(', ')};\n ${typography.fontFamily.mono ? `--mieweb-font-mono: ${typography.fontFamily.mono.map((f) => (f.includes(' ') ? `\"${f}\"` : f)).join(', ')};` : ''}\n\n /* Border Radius */\n --mieweb-radius-none: ${borderRadius.none};\n --mieweb-radius-sm: ${borderRadius.sm};\n --mieweb-radius-md: ${borderRadius.md};\n --mieweb-radius-lg: ${borderRadius.lg};\n --mieweb-radius-xl: ${borderRadius.xl};\n --mieweb-radius-2xl: ${borderRadius['2xl']};\n --mieweb-radius-full: ${borderRadius.full};\n\n /* Shadows */\n --mieweb-shadow-card: ${boxShadow.card};\n --mieweb-shadow-dropdown: ${boxShadow.dropdown};\n --mieweb-shadow-modal: ${boxShadow.modal};\n}\n\n/* Dark Mode */\n[data-theme=\"dark\"],\n.dark {\n --mieweb-background: ${colors.dark.background};\n --mieweb-foreground: ${colors.dark.foreground};\n --mieweb-card: ${colors.dark.card};\n --mieweb-card-foreground: ${colors.dark.cardForeground};\n --mieweb-muted: ${colors.dark.muted};\n --mieweb-muted-foreground: ${colors.dark.mutedForeground};\n --mieweb-border: ${colors.dark.border};\n --mieweb-input: ${colors.dark.input};\n --mieweb-ring: ${colors.dark.ring};\n --mieweb-destructive: ${colors.dark.destructive};\n --mieweb-destructive-foreground: ${colors.dark.destructiveForeground};\n --mieweb-success: ${colors.dark.success};\n --mieweb-success-foreground: ${colors.dark.successForeground};\n --mieweb-warning: ${colors.dark.warning};\n --mieweb-warning-foreground: ${colors.dark.warningForeground};\n}\n`;\n}\n\n// ============================================================================\n// Tailwind Theme Generation\n// ============================================================================\n\n/**\n * Generate Tailwind CSS theme configuration from a brand.\n * Use this in your tailwind.config.js to apply the brand.\n */\nexport function generateTailwindTheme(brand: BrandConfig) {\n const { colors, typography, borderRadius, boxShadow } = brand;\n\n // Build color config including all provided optional scales\n const colorConfig: Record<string, ColorScale> = {\n primary: colors.primary,\n // Expose brand colors under the brand name for semantic usage\n [brand.name]: colors.primary,\n };\n\n const optionalScales = [\n 'secondary',\n 'neutral',\n 'destructive',\n 'success',\n 'warning',\n 'info',\n ] as const;\n\n for (const scale of optionalScales) {\n if (colors[scale]) {\n colorConfig[scale] = colors[scale];\n }\n }\n\n return {\n colors: colorConfig,\n fontFamily: {\n sans: typography.fontFamily.sans,\n ...(typography.fontFamily.mono\n ? { mono: typography.fontFamily.mono }\n : {}),\n },\n borderRadius: {\n none: borderRadius.none,\n sm: borderRadius.sm,\n md: borderRadius.md,\n lg: borderRadius.lg,\n xl: borderRadius.xl,\n '2xl': borderRadius['2xl'],\n full: borderRadius.full,\n },\n boxShadow: {\n card: boxShadow.card,\n dropdown: boxShadow.dropdown,\n modal: boxShadow.modal,\n },\n };\n}\n\n/**\n * Generate a complete Tailwind preset for a brand.\n * This includes the mieweb/ui base preset plus brand-specific overrides.\n */\nexport function createBrandPreset(brand: BrandConfig) {\n return {\n darkMode: ['class', '[data-theme=\"dark\"]'] as const,\n theme: {\n extend: generateTailwindTheme(brand),\n },\n };\n}\n"]}
|
|
@@ -0,0 +1,436 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkVNYW4C4J_cjs = require('./chunk-VNYW4C4J.cjs');
|
|
4
|
+
var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var lucideReact = require('lucide-react');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
|
|
9
|
+
function _interopNamespace(e) {
|
|
10
|
+
if (e && e.__esModule) return e;
|
|
11
|
+
var n = Object.create(null);
|
|
12
|
+
if (e) {
|
|
13
|
+
Object.keys(e).forEach(function (k) {
|
|
14
|
+
if (k !== 'default') {
|
|
15
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return e[k]; }
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
n.default = e;
|
|
24
|
+
return Object.freeze(n);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
28
|
+
|
|
29
|
+
var OPEN_DELAY_MS = 70;
|
|
30
|
+
var CLOSE_DELAY_MS = 150;
|
|
31
|
+
function normalizePath(href) {
|
|
32
|
+
const path = href.split("#")[0].split("?")[0];
|
|
33
|
+
let end = path.length;
|
|
34
|
+
while (end > 0 && path[end - 1] === "/") end--;
|
|
35
|
+
return path.slice(0, end) || "/";
|
|
36
|
+
}
|
|
37
|
+
function MegaMenu({
|
|
38
|
+
menu,
|
|
39
|
+
open,
|
|
40
|
+
onOpenChange,
|
|
41
|
+
currentPath,
|
|
42
|
+
variant = "dark",
|
|
43
|
+
resolveFeatured = (item, m) => item?.featured ?? m.featured,
|
|
44
|
+
onNavigate,
|
|
45
|
+
hoverMinWidth = 900,
|
|
46
|
+
className
|
|
47
|
+
}) {
|
|
48
|
+
const rootRef = React__namespace.useRef(null);
|
|
49
|
+
const panelRef = React__namespace.useRef(null);
|
|
50
|
+
const triggerRef = React__namespace.useRef(null);
|
|
51
|
+
const openTimer = React__namespace.useRef(null);
|
|
52
|
+
const closeTimer = React__namespace.useRef(null);
|
|
53
|
+
const [left, setLeft] = React__namespace.useState();
|
|
54
|
+
const [hovered, setHovered] = React__namespace.useState(null);
|
|
55
|
+
const panelId = React__namespace.useId();
|
|
56
|
+
const isHoverViewport = () => typeof window !== "undefined" && window.innerWidth >= hoverMinWidth;
|
|
57
|
+
const clearTimers = React__namespace.useCallback(() => {
|
|
58
|
+
if (openTimer.current !== null) window.clearTimeout(openTimer.current);
|
|
59
|
+
if (closeTimer.current !== null) window.clearTimeout(closeTimer.current);
|
|
60
|
+
openTimer.current = closeTimer.current = null;
|
|
61
|
+
}, []);
|
|
62
|
+
const requestOpen = React__namespace.useCallback(() => {
|
|
63
|
+
clearTimers();
|
|
64
|
+
openTimer.current = window.setTimeout(
|
|
65
|
+
() => onOpenChange(true),
|
|
66
|
+
OPEN_DELAY_MS
|
|
67
|
+
);
|
|
68
|
+
}, [clearTimers, onOpenChange]);
|
|
69
|
+
const requestClose = React__namespace.useCallback(() => {
|
|
70
|
+
clearTimers();
|
|
71
|
+
closeTimer.current = window.setTimeout(
|
|
72
|
+
() => onOpenChange(false),
|
|
73
|
+
CLOSE_DELAY_MS
|
|
74
|
+
);
|
|
75
|
+
}, [clearTimers, onOpenChange]);
|
|
76
|
+
const position = React__namespace.useCallback(() => {
|
|
77
|
+
const root = rootRef.current;
|
|
78
|
+
const panel = panelRef.current;
|
|
79
|
+
if (!root || !panel || !isHoverViewport()) {
|
|
80
|
+
setLeft(void 0);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const rect = root.getBoundingClientRect();
|
|
84
|
+
const pad = 16;
|
|
85
|
+
const vw = document.documentElement.clientWidth;
|
|
86
|
+
const clamped = Math.min(
|
|
87
|
+
Math.max(rect.left, pad),
|
|
88
|
+
Math.max(pad, vw - pad - panel.offsetWidth)
|
|
89
|
+
);
|
|
90
|
+
setLeft(clamped - rect.left);
|
|
91
|
+
}, [hoverMinWidth]);
|
|
92
|
+
const curPath = currentPath ? normalizePath(currentPath) : null;
|
|
93
|
+
const isCurrent = (href) => curPath !== null && normalizePath(href) === curPath;
|
|
94
|
+
const featured = resolveFeatured(hovered, menu);
|
|
95
|
+
React__namespace.useEffect(() => {
|
|
96
|
+
if (open) position();
|
|
97
|
+
else setHovered(null);
|
|
98
|
+
}, [open, position, featured]);
|
|
99
|
+
React__namespace.useEffect(() => {
|
|
100
|
+
window.addEventListener("resize", position);
|
|
101
|
+
return () => window.removeEventListener("resize", position);
|
|
102
|
+
}, [position]);
|
|
103
|
+
React__namespace.useEffect(() => clearTimers, [clearTimers]);
|
|
104
|
+
const onKeyDown = (e) => {
|
|
105
|
+
if (e.key === "Escape" && open) {
|
|
106
|
+
e.stopPropagation();
|
|
107
|
+
clearTimers();
|
|
108
|
+
onOpenChange(false);
|
|
109
|
+
triggerRef.current?.focus();
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
const triggerClass = chunkS5RVSXDV_cjs.cn(
|
|
113
|
+
"inline-flex items-center rounded-lg px-3 py-2 text-sm font-medium transition-colors",
|
|
114
|
+
variant === "light" ? "text-white/90 hover:bg-white/10 hover:text-white" : "text-foreground/80 hover:bg-muted hover:text-foreground",
|
|
115
|
+
open && (variant === "light" ? "bg-white/10 text-white" : "bg-muted text-foreground")
|
|
116
|
+
);
|
|
117
|
+
const navigate = () => {
|
|
118
|
+
onOpenChange(false);
|
|
119
|
+
onNavigate?.();
|
|
120
|
+
};
|
|
121
|
+
return (
|
|
122
|
+
// Hover/focus delegation region only — the trigger, toggle and links inside are the interactive elements.
|
|
123
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
124
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
125
|
+
"div",
|
|
126
|
+
{
|
|
127
|
+
ref: rootRef,
|
|
128
|
+
"data-slot": "mega-menu",
|
|
129
|
+
"data-state": open ? "open" : "closed",
|
|
130
|
+
className: chunkS5RVSXDV_cjs.cn("relative", className),
|
|
131
|
+
onMouseEnter: () => isHoverViewport() && requestOpen(),
|
|
132
|
+
onMouseLeave: () => isHoverViewport() && requestClose(),
|
|
133
|
+
onFocusCapture: () => {
|
|
134
|
+
if (!isHoverViewport()) return;
|
|
135
|
+
clearTimers();
|
|
136
|
+
onOpenChange(true);
|
|
137
|
+
},
|
|
138
|
+
onBlurCapture: (e) => {
|
|
139
|
+
if (!isHoverViewport()) return;
|
|
140
|
+
if (!rootRef.current?.contains(e.relatedTarget))
|
|
141
|
+
requestClose();
|
|
142
|
+
},
|
|
143
|
+
onKeyDown,
|
|
144
|
+
children: [
|
|
145
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center", children: [
|
|
146
|
+
menu.href ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
147
|
+
"a",
|
|
148
|
+
{
|
|
149
|
+
ref: triggerRef,
|
|
150
|
+
href: menu.href,
|
|
151
|
+
className: triggerClass,
|
|
152
|
+
"aria-haspopup": "true",
|
|
153
|
+
"aria-expanded": open,
|
|
154
|
+
"aria-controls": panelId,
|
|
155
|
+
"aria-current": isCurrent(menu.href) ? "page" : void 0,
|
|
156
|
+
onClick: navigate,
|
|
157
|
+
children: menu.label
|
|
158
|
+
}
|
|
159
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
160
|
+
"button",
|
|
161
|
+
{
|
|
162
|
+
ref: triggerRef,
|
|
163
|
+
type: "button",
|
|
164
|
+
className: triggerClass,
|
|
165
|
+
"aria-haspopup": "true",
|
|
166
|
+
"aria-expanded": open,
|
|
167
|
+
"aria-controls": panelId,
|
|
168
|
+
onClick: () => {
|
|
169
|
+
clearTimers();
|
|
170
|
+
onOpenChange(!open);
|
|
171
|
+
},
|
|
172
|
+
children: menu.label
|
|
173
|
+
}
|
|
174
|
+
),
|
|
175
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
176
|
+
"button",
|
|
177
|
+
{
|
|
178
|
+
type: "button",
|
|
179
|
+
"aria-label": `Toggle ${menu.label} menu`,
|
|
180
|
+
"aria-expanded": open,
|
|
181
|
+
"aria-controls": panelId,
|
|
182
|
+
onClick: () => {
|
|
183
|
+
clearTimers();
|
|
184
|
+
onOpenChange(!open);
|
|
185
|
+
},
|
|
186
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
187
|
+
"-ms-1 rounded-md p-1 transition-transform",
|
|
188
|
+
variant === "light" ? "text-white/70 hover:text-white" : "text-muted-foreground hover:text-foreground",
|
|
189
|
+
open && "rotate-180"
|
|
190
|
+
),
|
|
191
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { size: 16, "aria-hidden": "true" })
|
|
192
|
+
}
|
|
193
|
+
)
|
|
194
|
+
] }),
|
|
195
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
196
|
+
"div",
|
|
197
|
+
{
|
|
198
|
+
id: panelId,
|
|
199
|
+
ref: panelRef,
|
|
200
|
+
role: "region",
|
|
201
|
+
"aria-label": menu.label,
|
|
202
|
+
"data-slot": "mega-menu-panel",
|
|
203
|
+
style: { left },
|
|
204
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
205
|
+
"border-border bg-card text-card-foreground absolute top-full z-50 mt-3 origin-top-left rounded-2xl border shadow-xl",
|
|
206
|
+
"transition-[opacity,transform] duration-200",
|
|
207
|
+
open ? "visible translate-y-0 opacity-100" : "pointer-events-none invisible -translate-y-1 opacity-0",
|
|
208
|
+
featured ? "grid w-[min(880px,calc(100vw-2rem))] grid-cols-[1fr_280px]" : "w-[min(600px,calc(100vw-2rem))]"
|
|
209
|
+
),
|
|
210
|
+
children: [
|
|
211
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-6", children: [
|
|
212
|
+
menu.heading && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground mb-4 text-[11px] font-bold tracking-[0.14em] uppercase", children: menu.heading }),
|
|
213
|
+
menu.groups ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-6 sm:grid-cols-2 lg:grid-cols-3", children: menu.groups.map((g) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
214
|
+
g.href ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
215
|
+
"a",
|
|
216
|
+
{
|
|
217
|
+
href: g.href,
|
|
218
|
+
"aria-current": isCurrent(g.href) ? "page" : void 0,
|
|
219
|
+
onClick: navigate,
|
|
220
|
+
className: "text-foreground hover:text-primary-700 dark:hover:text-primary-300 mb-2 inline-flex items-center gap-1 text-sm font-semibold",
|
|
221
|
+
children: [
|
|
222
|
+
g.label,
|
|
223
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { size: 14, "aria-hidden": "true" })
|
|
224
|
+
]
|
|
225
|
+
}
|
|
226
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-foreground mb-2 text-sm font-semibold", children: g.label }),
|
|
227
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-0.5", children: g.items.map((it) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
228
|
+
ItemLink,
|
|
229
|
+
{
|
|
230
|
+
item: it,
|
|
231
|
+
compact: true,
|
|
232
|
+
current: isCurrent(it.href),
|
|
233
|
+
onHover: setHovered,
|
|
234
|
+
onNavigate: navigate
|
|
235
|
+
}
|
|
236
|
+
) }, it.href)) })
|
|
237
|
+
] }, g.label)) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-1 sm:grid-cols-2", children: menu.items?.map((it) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
238
|
+
ItemLink,
|
|
239
|
+
{
|
|
240
|
+
item: it,
|
|
241
|
+
current: isCurrent(it.href),
|
|
242
|
+
onHover: setHovered,
|
|
243
|
+
onNavigate: navigate
|
|
244
|
+
},
|
|
245
|
+
it.href
|
|
246
|
+
)) }),
|
|
247
|
+
(menu.allHref || menu.ctaHref) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-border mt-5 flex items-center justify-between gap-4 border-t pt-4", children: [
|
|
248
|
+
menu.allHref ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
249
|
+
"a",
|
|
250
|
+
{
|
|
251
|
+
href: menu.allHref,
|
|
252
|
+
onClick: navigate,
|
|
253
|
+
className: "text-foreground hover:text-primary-700 dark:hover:text-primary-300 inline-flex items-center gap-1.5 text-sm font-semibold",
|
|
254
|
+
children: [
|
|
255
|
+
menu.allLabel ?? "Browse all",
|
|
256
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRight, { size: 16, "aria-hidden": "true" })
|
|
257
|
+
]
|
|
258
|
+
}
|
|
259
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("span", {}),
|
|
260
|
+
menu.ctaHref && /* @__PURE__ */ jsxRuntime.jsx(
|
|
261
|
+
"a",
|
|
262
|
+
{
|
|
263
|
+
href: menu.ctaHref,
|
|
264
|
+
onClick: navigate,
|
|
265
|
+
className: chunkVNYW4C4J_cjs.buttonVariants({ size: "sm", effect: "sheen" }),
|
|
266
|
+
children: menu.ctaLabel ?? "Get started"
|
|
267
|
+
}
|
|
268
|
+
)
|
|
269
|
+
] })
|
|
270
|
+
] }),
|
|
271
|
+
featured && /* @__PURE__ */ jsxRuntime.jsx(FeaturedPanel, { featured, onNavigate: navigate })
|
|
272
|
+
]
|
|
273
|
+
}
|
|
274
|
+
)
|
|
275
|
+
]
|
|
276
|
+
}
|
|
277
|
+
)
|
|
278
|
+
);
|
|
279
|
+
}
|
|
280
|
+
function ItemLink({
|
|
281
|
+
item,
|
|
282
|
+
compact,
|
|
283
|
+
current,
|
|
284
|
+
onHover,
|
|
285
|
+
onNavigate
|
|
286
|
+
}) {
|
|
287
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
288
|
+
"a",
|
|
289
|
+
{
|
|
290
|
+
href: item.href,
|
|
291
|
+
target: item.external ? "_blank" : void 0,
|
|
292
|
+
rel: item.external ? "noopener noreferrer" : void 0,
|
|
293
|
+
"aria-current": current ? "page" : void 0,
|
|
294
|
+
"data-slot": "mega-menu-item",
|
|
295
|
+
onClick: onNavigate,
|
|
296
|
+
onMouseEnter: () => onHover(item),
|
|
297
|
+
onFocus: () => onHover(item),
|
|
298
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
299
|
+
"group flex items-start gap-3 rounded-xl text-start transition-colors",
|
|
300
|
+
compact ? "px-2 py-1.5" : "p-3",
|
|
301
|
+
"hover:bg-primary-500/10 focus-visible:bg-primary-500/10 focus-visible:outline-none",
|
|
302
|
+
current && "bg-primary-500/10"
|
|
303
|
+
),
|
|
304
|
+
children: [
|
|
305
|
+
item.icon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
306
|
+
"span",
|
|
307
|
+
{
|
|
308
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
309
|
+
"inline-flex shrink-0 items-center justify-center rounded-lg transition-colors",
|
|
310
|
+
compact ? "h-7 w-7 [&_svg]:h-4 [&_svg]:w-4" : "h-10 w-10 [&_svg]:h-5 [&_svg]:w-5",
|
|
311
|
+
"bg-muted text-foreground/70 group-hover:bg-primary-800 group-hover:text-white",
|
|
312
|
+
current && "bg-primary-800 text-white"
|
|
313
|
+
),
|
|
314
|
+
children: item.icon
|
|
315
|
+
}
|
|
316
|
+
),
|
|
317
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "min-w-0", children: [
|
|
318
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
319
|
+
"span",
|
|
320
|
+
{
|
|
321
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
322
|
+
"text-foreground group-hover:text-primary-800 dark:group-hover:text-primary-200 block font-semibold",
|
|
323
|
+
compact ? "text-sm" : "text-base"
|
|
324
|
+
),
|
|
325
|
+
children: item.label
|
|
326
|
+
}
|
|
327
|
+
),
|
|
328
|
+
!compact && item.description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground mt-0.5 block text-sm leading-snug", children: item.description })
|
|
329
|
+
] })
|
|
330
|
+
]
|
|
331
|
+
}
|
|
332
|
+
);
|
|
333
|
+
}
|
|
334
|
+
var TONE = {
|
|
335
|
+
primary: "bg-gradient-to-br from-primary-800 to-primary-950 text-white",
|
|
336
|
+
accent: "text-white [background:linear-gradient(160deg,color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-700))_70%,#000)_0%,var(--mieweb-primary-950)_100%)]",
|
|
337
|
+
neutral: "bg-muted text-foreground"
|
|
338
|
+
};
|
|
339
|
+
function FeaturedPanel({
|
|
340
|
+
featured,
|
|
341
|
+
onNavigate
|
|
342
|
+
}) {
|
|
343
|
+
const tone = featured.tone ?? "primary";
|
|
344
|
+
const onDark = tone !== "neutral";
|
|
345
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
346
|
+
"div",
|
|
347
|
+
{
|
|
348
|
+
"data-slot": "mega-menu-featured",
|
|
349
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
350
|
+
"flex flex-col rounded-e-2xl p-6 motion-safe:animate-[mie-fade-in_0.2s_ease-out]",
|
|
351
|
+
TONE[tone]
|
|
352
|
+
),
|
|
353
|
+
children: [
|
|
354
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
355
|
+
"p",
|
|
356
|
+
{
|
|
357
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
358
|
+
"text-[11px] font-bold tracking-[0.14em] uppercase",
|
|
359
|
+
onDark ? "text-white/70" : "text-muted-foreground"
|
|
360
|
+
),
|
|
361
|
+
children: featured.eyebrow
|
|
362
|
+
}
|
|
363
|
+
),
|
|
364
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: featured.media ?? (featured.icon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
365
|
+
"span",
|
|
366
|
+
{
|
|
367
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
368
|
+
"inline-flex h-14 w-14 items-center justify-center rounded-xl [&_svg]:h-7 [&_svg]:w-7",
|
|
369
|
+
onDark ? "bg-white/15 text-white" : "bg-card text-foreground"
|
|
370
|
+
),
|
|
371
|
+
children: featured.icon
|
|
372
|
+
}
|
|
373
|
+
)) }),
|
|
374
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-4 text-xl leading-tight font-semibold", children: featured.title }),
|
|
375
|
+
featured.description && /* @__PURE__ */ jsxRuntime.jsx(
|
|
376
|
+
"p",
|
|
377
|
+
{
|
|
378
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
379
|
+
"mt-2 text-sm leading-snug",
|
|
380
|
+
onDark ? "text-white/80" : "text-muted-foreground"
|
|
381
|
+
),
|
|
382
|
+
children: featured.description
|
|
383
|
+
}
|
|
384
|
+
),
|
|
385
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto pt-5", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
386
|
+
"a",
|
|
387
|
+
{
|
|
388
|
+
href: featured.ctaHref,
|
|
389
|
+
onClick: onNavigate,
|
|
390
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
391
|
+
chunkVNYW4C4J_cjs.buttonVariants({ variant: "outline", effect: "sheen" }),
|
|
392
|
+
onDark && "border-white/40 text-white hover:border-white hover:bg-white/10 hover:text-white dark:border-white/40 dark:text-white dark:hover:border-white dark:hover:bg-white/10"
|
|
393
|
+
),
|
|
394
|
+
children: [
|
|
395
|
+
featured.ctaLabel,
|
|
396
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRight, { size: 16, "aria-hidden": "true" })
|
|
397
|
+
]
|
|
398
|
+
}
|
|
399
|
+
) })
|
|
400
|
+
]
|
|
401
|
+
},
|
|
402
|
+
featured.title
|
|
403
|
+
);
|
|
404
|
+
}
|
|
405
|
+
function MegaMenuBar({
|
|
406
|
+
menus,
|
|
407
|
+
className,
|
|
408
|
+
"aria-label": ariaLabel = "Main navigation",
|
|
409
|
+
...rest
|
|
410
|
+
}) {
|
|
411
|
+
const [openKey, setOpenKey] = React__namespace.useState(null);
|
|
412
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
413
|
+
"nav",
|
|
414
|
+
{
|
|
415
|
+
"data-slot": "mega-menu-bar",
|
|
416
|
+
"aria-label": ariaLabel,
|
|
417
|
+
className: chunkS5RVSXDV_cjs.cn("flex items-center gap-1", className),
|
|
418
|
+
children: menus.map((m) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
419
|
+
MegaMenu,
|
|
420
|
+
{
|
|
421
|
+
menu: m,
|
|
422
|
+
open: openKey === m.key,
|
|
423
|
+
onOpenChange: (o) => setOpenKey(o ? m.key : openKey === m.key ? null : openKey),
|
|
424
|
+
...rest
|
|
425
|
+
},
|
|
426
|
+
m.key
|
|
427
|
+
))
|
|
428
|
+
}
|
|
429
|
+
);
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
exports.MegaMenu = MegaMenu;
|
|
433
|
+
exports.MegaMenuBar = MegaMenuBar;
|
|
434
|
+
exports.normalizePath = normalizePath;
|
|
435
|
+
//# sourceMappingURL=chunk-5GUOOLPR.cjs.map
|
|
436
|
+
//# sourceMappingURL=chunk-5GUOOLPR.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/MegaMenu/MegaMenu.tsx"],"names":["React","cn","jsxs","jsx","ChevronDown","ChevronRight","ArrowRight","buttonVariants"],"mappings":"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","file":"chunk-5GUOOLPR.cjs","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { ArrowRight, ChevronDown, ChevronRight } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { buttonVariants } from '../Button';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport type MegaMenuTone = 'primary' | 'accent' | 'neutral';\n\n/** The right-column feature panel. */\nexport interface MegaMenuFeatured {\n /** Small caps label, e.g. \"Whitepaper\". */\n eyebrow: string;\n title: string;\n description?: string;\n ctaLabel: string;\n ctaHref: string;\n /** Icon tile above the title. Ignored when `media` is given. */\n icon?: React.ReactNode;\n /** Rich media in place of the icon tile — a `VideoCard variant=\"plate\"`, an image. */\n media?: React.ReactNode;\n /** Panel colour. Default `primary`. */\n tone?: MegaMenuTone;\n}\n\nexport interface MegaMenuItem {\n label: string;\n href: string;\n description?: string;\n icon?: React.ReactNode;\n /**\n * Feature panel to show while this item is hovered/focused. Falls back to\n * the menu-level `featured` when unset — this is what makes the right\n * column contextual instead of static.\n */\n featured?: MegaMenuFeatured;\n external?: boolean;\n}\n\nexport interface MegaMenuGroup {\n label: string;\n /** Makes the group heading a link. */\n href?: string;\n items: MegaMenuItem[];\n}\n\nexport interface MegaMenuConfig {\n /** Stable id — used by `MegaMenuBar` to track the open menu. */\n key: string;\n /** Trigger label. */\n label: string;\n /** Trigger destination. Omit for a pure toggle. */\n href?: string;\n /** Heading inside the panel, e.g. \"Resources & insight\". */\n heading?: string;\n /** Flat 2-column grid of items (icon + label + description). */\n items?: MegaMenuItem[];\n /** Grouped columns of compact items. Takes precedence over `items`. */\n groups?: MegaMenuGroup[];\n /** \"Browse all …\" footer link. */\n allLabel?: string;\n allHref?: string;\n /** Footer CTA button. */\n ctaLabel?: string;\n ctaHref?: string;\n /** Default right-column feature panel. */\n featured?: MegaMenuFeatured;\n}\n\nexport interface MegaMenuProps {\n menu: MegaMenuConfig;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n /** Current pathname — marks the matching item/group with `aria-current`. */\n currentPath?: string;\n /** Trigger colours for light (on dark header) or dark (on light header) chrome. */\n variant?: 'light' | 'dark';\n /**\n * Override how the feature panel is chosen. Receives the hovered item (or\n * `null` when none) and the menu; return `undefined` to hide the column.\n * Default: `item?.featured ?? menu.featured`.\n */\n resolveFeatured?: (\n item: MegaMenuItem | null,\n menu: MegaMenuConfig\n ) => MegaMenuFeatured | undefined;\n /** Called after any in-panel navigation (close mobile drawers, etc.). */\n onNavigate?: () => void;\n /** Viewport width below which hover-open is disabled (touch/mobile). Default 900. */\n hoverMinWidth?: number;\n className?: string;\n}\n\nconst OPEN_DELAY_MS = 70;\nconst CLOSE_DELAY_MS = 150;\n\n/**\n * Normalize an href for `currentPath` comparison (strips hash, query and\n * trailing slashes). Shared with `SiteHeader`'s mobile drawer so desktop and\n * mobile menu links agree on `aria-current`.\n */\nexport function normalizePath(href: string): string {\n const path = href.split('#')[0].split('?')[0];\n // Trim trailing slashes with a scan: an anchored `\\/+$` is CodeQL's canonical\n // polynomial-backtracking pattern on caller-supplied hrefs full of slashes.\n let end = path.length;\n while (end > 0 && path[end - 1] === '/') end--;\n return path.slice(0, end) || '/';\n}\n\n// =============================================================================\n// MegaMenu\n// =============================================================================\n\n/**\n * A hover/click mega-menu: trigger link + chevron toggle, a panel with a\n * heading, a 2-column item grid (or grouped columns), a footer with\n * \"Browse all\" + CTA, and a right-column feature panel that **follows the\n * hovered item** (`item.featured`) before falling back to the menu default.\n * Marks the current route with `aria-current`. Ported from the Enterprise\n * Health frontdoor nav.\n *\n * Controlled — pair with `MegaMenuBar` to keep one menu open at a time.\n */\nexport function MegaMenu({\n menu,\n open,\n onOpenChange,\n currentPath,\n variant = 'dark',\n resolveFeatured = (item, m) => item?.featured ?? m.featured,\n onNavigate,\n hoverMinWidth = 900,\n className,\n}: MegaMenuProps) {\n const rootRef = React.useRef<HTMLDivElement>(null);\n const panelRef = React.useRef<HTMLDivElement>(null);\n const triggerRef = React.useRef<HTMLElement>(null);\n const openTimer = React.useRef<number | null>(null);\n const closeTimer = React.useRef<number | null>(null);\n const [left, setLeft] = React.useState<number | undefined>();\n const [hovered, setHovered] = React.useState<MegaMenuItem | null>(null);\n const panelId = React.useId();\n\n const isHoverViewport = () =>\n typeof window !== 'undefined' && window.innerWidth >= hoverMinWidth;\n\n const clearTimers = React.useCallback(() => {\n if (openTimer.current !== null) window.clearTimeout(openTimer.current);\n if (closeTimer.current !== null) window.clearTimeout(closeTimer.current);\n openTimer.current = closeTimer.current = null;\n }, []);\n\n const requestOpen = React.useCallback(() => {\n clearTimers();\n openTimer.current = window.setTimeout(\n () => onOpenChange(true),\n OPEN_DELAY_MS\n );\n }, [clearTimers, onOpenChange]);\n\n const requestClose = React.useCallback(() => {\n clearTimers();\n closeTimer.current = window.setTimeout(\n () => onOpenChange(false),\n CLOSE_DELAY_MS\n );\n }, [clearTimers, onOpenChange]);\n\n // Clamp the panel inside the viewport (it's absolutely positioned under the trigger).\n const position = React.useCallback(() => {\n const root = rootRef.current;\n const panel = panelRef.current;\n if (!root || !panel || !isHoverViewport()) {\n setLeft(undefined);\n return;\n }\n const rect = root.getBoundingClientRect();\n const pad = 16;\n const vw = document.documentElement.clientWidth;\n const clamped = Math.min(\n Math.max(rect.left, pad),\n Math.max(pad, vw - pad - panel.offsetWidth)\n );\n setLeft(clamped - rect.left);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [hoverMinWidth]);\n\n const curPath = currentPath ? normalizePath(currentPath) : null;\n const isCurrent = (href: string) =>\n curPath !== null && normalizePath(href) === curPath;\n const featured = resolveFeatured(hovered, menu);\n\n React.useEffect(() => {\n if (open) position();\n else setHovered(null);\n // `featured` is a dep because the feature column swaps the 600px layout\n // for the 880px one after open — the wider panel must be re-clamped or a\n // menu opened near the viewport edge overflows it.\n }, [open, position, featured]);\n\n React.useEffect(() => {\n window.addEventListener('resize', position);\n return () => window.removeEventListener('resize', position);\n }, [position]);\n\n React.useEffect(() => clearTimers, [clearTimers]);\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Escape' && open) {\n e.stopPropagation();\n clearTimers();\n onOpenChange(false);\n triggerRef.current?.focus();\n }\n };\n\n const triggerClass = cn(\n 'inline-flex items-center rounded-lg px-3 py-2 text-sm font-medium transition-colors',\n variant === 'light'\n ? 'text-white/90 hover:bg-white/10 hover:text-white'\n : 'text-foreground/80 hover:bg-muted hover:text-foreground',\n open &&\n (variant === 'light'\n ? 'bg-white/10 text-white'\n : 'bg-muted text-foreground')\n );\n\n const navigate = () => {\n onOpenChange(false);\n onNavigate?.();\n };\n\n return (\n // Hover/focus delegation region only — the trigger, toggle and links inside are the interactive elements.\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n ref={rootRef}\n data-slot=\"mega-menu\"\n data-state={open ? 'open' : 'closed'}\n className={cn('relative', className)}\n onMouseEnter={() => isHoverViewport() && requestOpen()}\n onMouseLeave={() => isHoverViewport() && requestClose()}\n onFocusCapture={() => {\n if (!isHoverViewport()) return;\n clearTimers();\n onOpenChange(true);\n }}\n onBlurCapture={(e) => {\n if (!isHoverViewport()) return;\n if (!rootRef.current?.contains(e.relatedTarget as Node | null))\n requestClose();\n }}\n onKeyDown={onKeyDown}\n >\n <div className=\"flex items-center\">\n {menu.href ? (\n <a\n ref={triggerRef as React.RefObject<HTMLAnchorElement>}\n href={menu.href}\n className={triggerClass}\n aria-haspopup=\"true\"\n aria-expanded={open}\n aria-controls={panelId}\n aria-current={isCurrent(menu.href) ? 'page' : undefined}\n onClick={navigate}\n >\n {menu.label}\n </a>\n ) : (\n <button\n ref={triggerRef as React.RefObject<HTMLButtonElement>}\n type=\"button\"\n className={triggerClass}\n aria-haspopup=\"true\"\n aria-expanded={open}\n aria-controls={panelId}\n onClick={() => {\n clearTimers();\n onOpenChange(!open);\n }}\n >\n {menu.label}\n </button>\n )}\n <button\n type=\"button\"\n aria-label={`Toggle ${menu.label} menu`}\n aria-expanded={open}\n aria-controls={panelId}\n onClick={() => {\n clearTimers();\n onOpenChange(!open);\n }}\n className={cn(\n '-ms-1 rounded-md p-1 transition-transform',\n variant === 'light'\n ? 'text-white/70 hover:text-white'\n : 'text-muted-foreground hover:text-foreground',\n open && 'rotate-180'\n )}\n >\n <ChevronDown size={16} aria-hidden=\"true\" />\n </button>\n </div>\n\n <div\n id={panelId}\n ref={panelRef}\n role=\"region\"\n aria-label={menu.label}\n data-slot=\"mega-menu-panel\"\n style={{ left }}\n className={cn(\n 'border-border bg-card text-card-foreground absolute top-full z-50 mt-3 origin-top-left rounded-2xl border shadow-xl',\n 'transition-[opacity,transform] duration-200',\n open\n ? 'visible translate-y-0 opacity-100'\n : 'pointer-events-none invisible -translate-y-1 opacity-0',\n featured\n ? 'grid w-[min(880px,calc(100vw-2rem))] grid-cols-[1fr_280px]'\n : 'w-[min(600px,calc(100vw-2rem))]'\n )}\n >\n <div className=\"p-6\">\n {menu.heading && (\n <p className=\"text-muted-foreground mb-4 text-[11px] font-bold tracking-[0.14em] uppercase\">\n {menu.heading}\n </p>\n )}\n\n {menu.groups ? (\n <div className=\"grid gap-6 sm:grid-cols-2 lg:grid-cols-3\">\n {menu.groups.map((g) => (\n <div key={g.label}>\n {g.href ? (\n <a\n href={g.href}\n aria-current={isCurrent(g.href) ? 'page' : undefined}\n onClick={navigate}\n className=\"text-foreground hover:text-primary-700 dark:hover:text-primary-300 mb-2 inline-flex items-center gap-1 text-sm font-semibold\"\n >\n {g.label}\n <ChevronRight size={14} aria-hidden=\"true\" />\n </a>\n ) : (\n <p className=\"text-foreground mb-2 text-sm font-semibold\">\n {g.label}\n </p>\n )}\n <ul className=\"space-y-0.5\">\n {g.items.map((it) => (\n <li key={it.href}>\n <ItemLink\n item={it}\n compact\n current={isCurrent(it.href)}\n onHover={setHovered}\n onNavigate={navigate}\n />\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"grid gap-1 sm:grid-cols-2\">\n {menu.items?.map((it) => (\n <ItemLink\n key={it.href}\n item={it}\n current={isCurrent(it.href)}\n onHover={setHovered}\n onNavigate={navigate}\n />\n ))}\n </div>\n )}\n\n {(menu.allHref || menu.ctaHref) && (\n <div className=\"border-border mt-5 flex items-center justify-between gap-4 border-t pt-4\">\n {menu.allHref ? (\n <a\n href={menu.allHref}\n onClick={navigate}\n className=\"text-foreground hover:text-primary-700 dark:hover:text-primary-300 inline-flex items-center gap-1.5 text-sm font-semibold\"\n >\n {menu.allLabel ?? 'Browse all'}\n <ArrowRight size={16} aria-hidden=\"true\" />\n </a>\n ) : (\n <span />\n )}\n {menu.ctaHref && (\n <a\n href={menu.ctaHref}\n onClick={navigate}\n className={buttonVariants({ size: 'sm', effect: 'sheen' })}\n >\n {menu.ctaLabel ?? 'Get started'}\n </a>\n )}\n </div>\n )}\n </div>\n\n {featured && (\n <FeaturedPanel featured={featured} onNavigate={navigate} />\n )}\n </div>\n </div>\n );\n}\n\n// =============================================================================\n// Pieces\n// =============================================================================\n\nfunction ItemLink({\n item,\n compact,\n current,\n onHover,\n onNavigate,\n}: {\n item: MegaMenuItem;\n compact?: boolean;\n current: boolean;\n onHover: (item: MegaMenuItem | null) => void;\n onNavigate: () => void;\n}) {\n return (\n <a\n href={item.href}\n target={item.external ? '_blank' : undefined}\n rel={item.external ? 'noopener noreferrer' : undefined}\n aria-current={current ? 'page' : undefined}\n data-slot=\"mega-menu-item\"\n onClick={onNavigate}\n onMouseEnter={() => onHover(item)}\n onFocus={() => onHover(item)}\n className={cn(\n 'group flex items-start gap-3 rounded-xl text-start transition-colors',\n compact ? 'px-2 py-1.5' : 'p-3',\n 'hover:bg-primary-500/10 focus-visible:bg-primary-500/10 focus-visible:outline-none',\n current && 'bg-primary-500/10'\n )}\n >\n {item.icon && (\n <span\n className={cn(\n 'inline-flex shrink-0 items-center justify-center rounded-lg transition-colors',\n compact\n ? 'h-7 w-7 [&_svg]:h-4 [&_svg]:w-4'\n : 'h-10 w-10 [&_svg]:h-5 [&_svg]:w-5',\n 'bg-muted text-foreground/70 group-hover:bg-primary-800 group-hover:text-white',\n current && 'bg-primary-800 text-white'\n )}\n >\n {item.icon}\n </span>\n )}\n <span className=\"min-w-0\">\n <span\n className={cn(\n 'text-foreground group-hover:text-primary-800 dark:group-hover:text-primary-200 block font-semibold',\n compact ? 'text-sm' : 'text-base'\n )}\n >\n {item.label}\n </span>\n {!compact && item.description && (\n <span className=\"text-muted-foreground mt-0.5 block text-sm leading-snug\">\n {item.description}\n </span>\n )}\n </span>\n </a>\n );\n}\n\nconst TONE: Record<MegaMenuTone, string> = {\n primary: 'bg-gradient-to-br from-primary-800 to-primary-950 text-white',\n accent:\n 'text-white [background:linear-gradient(160deg,color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-700))_70%,#000)_0%,var(--mieweb-primary-950)_100%)]',\n neutral: 'bg-muted text-foreground',\n};\n\nfunction FeaturedPanel({\n featured,\n onNavigate,\n}: {\n featured: MegaMenuFeatured;\n onNavigate: () => void;\n}) {\n const tone = featured.tone ?? 'primary';\n const onDark = tone !== 'neutral';\n // `key` re-mounts the panel so swapping between items replays the fade-in.\n // A `div`, not `aside`: a complementary landmark nested inside the menu\n // region violates axe landmark-complementary-is-top-level.\n return (\n <div\n data-slot=\"mega-menu-featured\"\n key={featured.title}\n className={cn(\n 'flex flex-col rounded-e-2xl p-6 motion-safe:animate-[mie-fade-in_0.2s_ease-out]',\n TONE[tone]\n )}\n >\n <p\n className={cn(\n 'text-[11px] font-bold tracking-[0.14em] uppercase',\n onDark ? 'text-white/70' : 'text-muted-foreground'\n )}\n >\n {featured.eyebrow}\n </p>\n <div className=\"mt-4\">\n {featured.media ??\n (featured.icon && (\n <span\n className={cn(\n 'inline-flex h-14 w-14 items-center justify-center rounded-xl [&_svg]:h-7 [&_svg]:w-7',\n onDark ? 'bg-white/15 text-white' : 'bg-card text-foreground'\n )}\n >\n {featured.icon}\n </span>\n ))}\n </div>\n <p className=\"mt-4 text-xl leading-tight font-semibold\">\n {featured.title}\n </p>\n {featured.description && (\n <p\n className={cn(\n 'mt-2 text-sm leading-snug',\n onDark ? 'text-white/80' : 'text-muted-foreground'\n )}\n >\n {featured.description}\n </p>\n )}\n <div className=\"mt-auto pt-5\">\n <a\n href={featured.ctaHref}\n onClick={onNavigate}\n className={cn(\n buttonVariants({ variant: 'outline', effect: 'sheen' }),\n onDark &&\n 'border-white/40 text-white hover:border-white hover:bg-white/10 hover:text-white dark:border-white/40 dark:text-white dark:hover:border-white dark:hover:bg-white/10'\n )}\n >\n {featured.ctaLabel}\n <ArrowRight size={16} aria-hidden=\"true\" />\n </a>\n </div>\n </div>\n );\n}\n\n// =============================================================================\n// MegaMenuBar — keeps one menu open at a time\n// =============================================================================\n\nexport interface MegaMenuBarProps extends Pick<\n MegaMenuProps,\n 'currentPath' | 'variant' | 'resolveFeatured' | 'onNavigate' | 'hoverMinWidth'\n> {\n menus: MegaMenuConfig[];\n className?: string;\n 'aria-label'?: string;\n}\n\n/** A row of `MegaMenu` triggers sharing one open-state so only one panel shows. */\nexport function MegaMenuBar({\n menus,\n className,\n 'aria-label': ariaLabel = 'Main navigation',\n ...rest\n}: MegaMenuBarProps) {\n const [openKey, setOpenKey] = React.useState<string | null>(null);\n return (\n <nav\n data-slot=\"mega-menu-bar\"\n aria-label={ariaLabel}\n className={cn('flex items-center gap-1', className)}\n >\n {menus.map((m) => (\n <MegaMenu\n key={m.key}\n menu={m}\n open={openKey === m.key}\n onOpenChange={(o) =>\n setOpenKey(o ? m.key : openKey === m.key ? null : openKey)\n }\n {...rest}\n />\n ))}\n </nav>\n );\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { useMotionRuntime, AnimatedPresence, Animated } from './chunk-XCP454Q6.js';
|
|
2
|
-
import { cn } from './chunk-TQONQSJO.js';
|
|
3
1
|
import { useFocusTrap } from './chunk-4SMSH4OY.js';
|
|
4
2
|
import { useEscapeKey } from './chunk-T4ME7QCT.js';
|
|
5
3
|
import { isStorybookDocsMode } from './chunk-VSQF22GL.js';
|
|
4
|
+
import { useMotionRuntime, AnimatedPresence, Animated } from './chunk-XCP454Q6.js';
|
|
5
|
+
import { cn } from './chunk-TQONQSJO.js';
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import { cva } from 'class-variance-authority';
|
|
8
8
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -294,5 +294,5 @@ function CloseIcon() {
|
|
|
294
294
|
}
|
|
295
295
|
|
|
296
296
|
export { Modal, ModalBody, ModalClose, ModalFooter, ModalHeader, ModalTitle, modalContentVariants, modalOverlayVariants };
|
|
297
|
-
//# sourceMappingURL=chunk-
|
|
298
|
-
//# sourceMappingURL=chunk-
|
|
297
|
+
//# sourceMappingURL=chunk-5JJ2DAE4.js.map
|
|
298
|
+
//# sourceMappingURL=chunk-5JJ2DAE4.js.map
|