@mieweb/ui 0.10.0-dev.9 → 0.11.0-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/agent/mieweb-ui.instructions.md +77 -0
- package/dist/CsvBlock-CFXSDPBI.js +9 -0
- package/dist/{CsvBlock-UWPMTLE2.js.map → CsvBlock-CFXSDPBI.js.map} +1 -1
- package/dist/CsvBlock-RGO7JXHJ.cjs +18 -0
- package/dist/{CsvBlock-ROJCKJDP.cjs.map → CsvBlock-RGO7JXHJ.cjs.map} +1 -1
- package/dist/HtmlPreviewBlock-VBYXCXVT.cjs +18 -0
- package/dist/{HtmlPreviewBlock-DWFN6EUB.cjs.map → HtmlPreviewBlock-VBYXCXVT.cjs.map} +1 -1
- package/dist/HtmlPreviewBlock-Z2GCK325.js +9 -0
- package/dist/{HtmlPreviewBlock-ME5U3XNS.js.map → HtmlPreviewBlock-Z2GCK325.js.map} +1 -1
- package/dist/MermaidBlock-I2R2BQOX.cjs +18 -0
- package/dist/{MermaidBlock-D2UC5M55.cjs.map → MermaidBlock-I2R2BQOX.cjs.map} +1 -1
- package/dist/MermaidBlock-XCAK7IA5.js +9 -0
- package/dist/{MermaidBlock-2B6CPD6Y.js.map → MermaidBlock-XCAK7IA5.js.map} +1 -1
- package/dist/SurveyBlock-KI5JOWCL.js +9 -0
- package/dist/{SurveyBlock-4DO62RBT.js.map → SurveyBlock-KI5JOWCL.js.map} +1 -1
- package/dist/SurveyBlock-UKSGISRT.cjs +18 -0
- package/dist/{SurveyBlock-4CD4AYMJ.cjs.map → SurveyBlock-UKSGISRT.cjs.map} +1 -1
- package/dist/ag-grid.d.cts +142 -1
- package/dist/ag-grid.d.ts +142 -1
- package/dist/brands/bluehive.cjs +3 -3
- package/dist/brands/bluehive.css +3 -0
- package/dist/brands/bluehive.js +1 -1
- package/dist/brands/index.cjs +17 -17
- package/dist/brands/index.js +4 -4
- package/dist/{chunk-JYZW2PZS.cjs → chunk-254QK722.cjs} +7 -7
- package/dist/chunk-254QK722.cjs.map +1 -0
- package/dist/{chunk-4IS3QCOQ.cjs → chunk-2FZYZ4HT.cjs} +4 -3
- package/dist/chunk-2FZYZ4HT.cjs.map +1 -0
- package/dist/{chunk-VPIYTQCV.cjs → chunk-2I4IRQQG.cjs} +12 -5
- package/dist/chunk-2I4IRQQG.cjs.map +1 -0
- package/dist/{chunk-IT775BYG.js → chunk-2W73UQ3T.js} +4 -3
- package/dist/chunk-2W73UQ3T.js.map +1 -0
- package/dist/chunk-2X54ZLT6.js +874 -0
- package/dist/chunk-2X54ZLT6.js.map +1 -0
- package/dist/{chunk-5MCBWTIF.cjs → chunk-32ZCJOSR.cjs} +4 -4
- package/dist/{chunk-5MCBWTIF.cjs.map → chunk-32ZCJOSR.cjs.map} +1 -1
- package/dist/{chunk-WNJRS7Y7.cjs → chunk-3ZWCIPFT.cjs} +4 -2
- package/dist/chunk-3ZWCIPFT.cjs.map +1 -0
- package/dist/chunk-434L5RYF.js +314 -0
- package/dist/chunk-434L5RYF.js.map +1 -0
- package/dist/{chunk-TPWKM7JH.js → chunk-43K7OQ3E.js} +3 -3
- package/dist/{chunk-TPWKM7JH.js.map → chunk-43K7OQ3E.js.map} +1 -1
- package/dist/chunk-47P5QLX4.cjs +42 -0
- package/dist/chunk-47P5QLX4.cjs.map +1 -0
- package/dist/{chunk-CR2SDI23.cjs → chunk-4QYYWYFD.cjs} +8 -7
- package/dist/chunk-4QYYWYFD.cjs.map +1 -0
- package/dist/{chunk-76TBQDED.js → chunk-4RI3CQGE.js} +6 -6
- package/dist/{chunk-76TBQDED.js.map → chunk-4RI3CQGE.js.map} +1 -1
- package/dist/chunk-4ZB7RSMY.cjs +306 -0
- package/dist/chunk-4ZB7RSMY.cjs.map +1 -0
- package/dist/chunk-522WJIVI.js +99 -0
- package/dist/chunk-522WJIVI.js.map +1 -0
- package/dist/chunk-56VTM4OX.js +261 -0
- package/dist/chunk-56VTM4OX.js.map +1 -0
- package/dist/chunk-5HKZR6UG.js +248 -0
- package/dist/chunk-5HKZR6UG.js.map +1 -0
- package/dist/chunk-6BNZLN4B.cjs +548 -0
- package/dist/chunk-6BNZLN4B.cjs.map +1 -0
- package/dist/chunk-6N7NMOSV.js +233 -0
- package/dist/chunk-6N7NMOSV.js.map +1 -0
- package/dist/chunk-6TTCZY3P.cjs +4 -0
- package/dist/chunk-6TTCZY3P.cjs.map +1 -0
- package/dist/{chunk-YQDA366U.js → chunk-753ENNB6.js} +2 -2
- package/dist/{chunk-YQDA366U.js.map → chunk-753ENNB6.js.map} +1 -1
- package/dist/{chunk-N6IY47YA.cjs → chunk-7C5W744U.cjs} +8 -8
- package/dist/{chunk-N6IY47YA.cjs.map → chunk-7C5W744U.cjs.map} +1 -1
- package/dist/chunk-7E46YDOT.cjs +122 -0
- package/dist/chunk-7E46YDOT.cjs.map +1 -0
- package/dist/chunk-7HUTR6RX.js +178 -0
- package/dist/chunk-7HUTR6RX.js.map +1 -0
- package/dist/chunk-7IRTD4JT.cjs +61 -0
- package/dist/chunk-7IRTD4JT.cjs.map +1 -0
- package/dist/{chunk-KZFBQ7GY.js → chunk-7QW6TU4X.js} +3 -3
- package/dist/{chunk-KZFBQ7GY.js.map → chunk-7QW6TU4X.js.map} +1 -1
- package/dist/{chunk-MWVW4APN.cjs → chunk-7UTBDFFL.cjs} +4 -4
- package/dist/{chunk-MWVW4APN.cjs.map → chunk-7UTBDFFL.cjs.map} +1 -1
- package/dist/chunk-7WJ6MBF5.cjs +47 -0
- package/dist/chunk-7WJ6MBF5.cjs.map +1 -0
- package/dist/{chunk-FJ7YPVKV.js → chunk-7X6R3JIA.js} +3 -3
- package/dist/{chunk-FJ7YPVKV.js.map → chunk-7X6R3JIA.js.map} +1 -1
- package/dist/chunk-A4W5CSK7.cjs +216 -0
- package/dist/chunk-A4W5CSK7.cjs.map +1 -0
- package/dist/{chunk-2G75X6TS.cjs → chunk-AHHFFXJR.cjs} +3 -3
- package/dist/{chunk-2G75X6TS.cjs.map → chunk-AHHFFXJR.cjs.map} +1 -1
- package/dist/chunk-AJPFQF3H.cjs +896 -0
- package/dist/chunk-AJPFQF3H.cjs.map +1 -0
- package/dist/chunk-AMYFRY7K.js +3 -0
- package/dist/chunk-AMYFRY7K.js.map +1 -0
- package/dist/{chunk-VNYW4C4J.cjs → chunk-ANMX7YDL.cjs} +4 -84
- package/dist/chunk-ANMX7YDL.cjs.map +1 -0
- package/dist/chunk-ARIJ5OHW.cjs +139 -0
- package/dist/chunk-ARIJ5OHW.cjs.map +1 -0
- package/dist/{chunk-GD7EBGC4.cjs → chunk-ATRW3J5Z.cjs} +49 -19
- package/dist/chunk-ATRW3J5Z.cjs.map +1 -0
- package/dist/chunk-BJ6ABRSQ.cjs +256 -0
- package/dist/chunk-BJ6ABRSQ.cjs.map +1 -0
- package/dist/{chunk-G3JX3UAU.cjs → chunk-BWSZ2BHJ.cjs} +6 -6
- package/dist/{chunk-G3JX3UAU.cjs.map → chunk-BWSZ2BHJ.cjs.map} +1 -1
- package/dist/chunk-BXRQ6HEP.cjs +4 -0
- package/dist/chunk-BXRQ6HEP.cjs.map +1 -0
- package/dist/chunk-CBBKWRLG.js +213 -0
- package/dist/chunk-CBBKWRLG.js.map +1 -0
- package/dist/{chunk-UAMXCMST.cjs → chunk-CFI3TQMA.cjs} +3 -3
- package/dist/{chunk-UAMXCMST.cjs.map → chunk-CFI3TQMA.cjs.map} +1 -1
- package/dist/chunk-CLQW724U.cjs +271 -0
- package/dist/chunk-CLQW724U.cjs.map +1 -0
- package/dist/chunk-CPDNX3LS.cjs +47 -0
- package/dist/chunk-CPDNX3LS.cjs.map +1 -0
- package/dist/chunk-CVNPNZMX.js +44 -0
- package/dist/chunk-CVNPNZMX.js.map +1 -0
- package/dist/chunk-DGHS5IVD.js +305 -0
- package/dist/chunk-DGHS5IVD.js.map +1 -0
- package/dist/chunk-DHGCLPFZ.js +91 -0
- package/dist/chunk-DHGCLPFZ.js.map +1 -0
- package/dist/chunk-DO2YN46R.cjs +201 -0
- package/dist/chunk-DO2YN46R.cjs.map +1 -0
- package/dist/chunk-DVDT7TX7.js +151 -0
- package/dist/chunk-DVDT7TX7.js.map +1 -0
- package/dist/chunk-DXEPYK3I.cjs +92 -0
- package/dist/chunk-DXEPYK3I.cjs.map +1 -0
- package/dist/chunk-DXFP53KF.js +283 -0
- package/dist/chunk-DXFP53KF.js.map +1 -0
- package/dist/chunk-EACNRR3C.cjs +4 -0
- package/dist/chunk-EACNRR3C.cjs.map +1 -0
- package/dist/{chunk-TVTIGV7Q.js → chunk-EBKE4DLU.js} +18 -11
- package/dist/chunk-EBKE4DLU.js.map +1 -0
- package/dist/{chunk-ASSDGS4F.cjs → chunk-ECYIDXG6.cjs} +254 -4
- package/dist/chunk-ECYIDXG6.cjs.map +1 -0
- package/dist/chunk-EGPDT7SM.js +195 -0
- package/dist/chunk-EGPDT7SM.js.map +1 -0
- package/dist/chunk-EPCUPHEO.js +193 -0
- package/dist/chunk-EPCUPHEO.js.map +1 -0
- package/dist/{chunk-7ZXAQTV4.cjs → chunk-ERACGSDY.cjs} +8 -8
- package/dist/{chunk-7ZXAQTV4.cjs.map → chunk-ERACGSDY.cjs.map} +1 -1
- package/dist/{chunk-XCP454Q6.js → chunk-F4N67NAF.js} +12 -3
- package/dist/chunk-F4N67NAF.js.map +1 -0
- package/dist/{chunk-WGPLUCBD.js → chunk-F6W62K4J.js} +4 -4
- package/dist/{chunk-WGPLUCBD.js.map → chunk-F6W62K4J.js.map} +1 -1
- package/dist/{chunk-XVW5DPPP.js → chunk-F7SZSOB3.js} +4 -3
- package/dist/chunk-F7SZSOB3.js.map +1 -0
- package/dist/chunk-FBCDYTWM.js +385 -0
- package/dist/chunk-FBCDYTWM.js.map +1 -0
- package/dist/{chunk-KQUI4BGS.cjs → chunk-FBN2VHUV.cjs} +68 -61
- package/dist/chunk-FBN2VHUV.cjs.map +1 -0
- package/dist/{chunk-V7D3YGUV.js → chunk-FGLIP6YR.js} +4 -4
- package/dist/{chunk-V7D3YGUV.js.map → chunk-FGLIP6YR.js.map} +1 -1
- package/dist/{chunk-VU6UTJRM.js → chunk-FIKO4WR6.js} +3 -3
- package/dist/{chunk-VU6UTJRM.js.map → chunk-FIKO4WR6.js.map} +1 -1
- package/dist/{chunk-OD47TTAW.cjs → chunk-FMEA6WAY.cjs} +9 -9
- package/dist/{chunk-OD47TTAW.cjs.map → chunk-FMEA6WAY.cjs.map} +1 -1
- package/dist/chunk-FSGJXCBG.cjs +318 -0
- package/dist/chunk-FSGJXCBG.cjs.map +1 -0
- package/dist/chunk-FSWHZY3T.cjs +328 -0
- package/dist/chunk-FSWHZY3T.cjs.map +1 -0
- package/dist/chunk-FTEZNCRI.js +29 -0
- package/dist/chunk-FTEZNCRI.js.map +1 -0
- package/dist/{chunk-YVPC65ZJ.cjs → chunk-GF2BE4FB.cjs} +91 -32
- package/dist/chunk-GF2BE4FB.cjs.map +1 -0
- package/dist/{chunk-JEIW7BSV.cjs → chunk-GKDHMNUA.cjs} +2 -52
- package/dist/chunk-GKDHMNUA.cjs.map +1 -0
- package/dist/{chunk-URAQIF67.cjs → chunk-GM32IDVL.cjs} +6 -6
- package/dist/{chunk-URAQIF67.cjs.map → chunk-GM32IDVL.cjs.map} +1 -1
- package/dist/chunk-GVM6DTR5.js +90 -0
- package/dist/chunk-GVM6DTR5.js.map +1 -0
- package/dist/{chunk-SQHMGT4W.js → chunk-GW4RFJZ5.js} +7 -7
- package/dist/chunk-GW4RFJZ5.js.map +1 -0
- package/dist/chunk-GY5SP4ST.js +3 -0
- package/dist/chunk-GY5SP4ST.js.map +1 -0
- package/dist/{chunk-OCSCBB52.cjs → chunk-GYXSF6BJ.cjs} +10 -10
- package/dist/{chunk-OCSCBB52.cjs.map → chunk-GYXSF6BJ.cjs.map} +1 -1
- package/dist/chunk-H2Y7HZV5.js +3 -0
- package/dist/chunk-H2Y7HZV5.js.map +1 -0
- package/dist/chunk-H3P7POFC.cjs +337 -0
- package/dist/chunk-H3P7POFC.cjs.map +1 -0
- package/dist/{chunk-JID7AZTO.cjs → chunk-H3ROMJYI.cjs} +4 -4
- package/dist/{chunk-JID7AZTO.cjs.map → chunk-H3ROMJYI.cjs.map} +1 -1
- package/dist/{chunk-462XSCP3.cjs → chunk-HCIXGFWR.cjs} +4 -4
- package/dist/{chunk-462XSCP3.cjs.map → chunk-HCIXGFWR.cjs.map} +1 -1
- package/dist/{chunk-H4ZXMQQW.js → chunk-HDY7YQFX.js} +3 -3
- package/dist/{chunk-H4ZXMQQW.js.map → chunk-HDY7YQFX.js.map} +1 -1
- package/dist/chunk-HNFFFFYH.cjs +114 -0
- package/dist/chunk-HNFFFFYH.cjs.map +1 -0
- package/dist/chunk-HNXLLDPN.js +25 -0
- package/dist/chunk-HNXLLDPN.js.map +1 -0
- package/dist/{chunk-NV2CWBI2.cjs → chunk-IEY3ZJIT.cjs} +12 -3
- package/dist/chunk-IEY3ZJIT.cjs.map +1 -0
- package/dist/chunk-IEZXJWHJ.cjs +306 -0
- package/dist/chunk-IEZXJWHJ.cjs.map +1 -0
- package/dist/{chunk-3QEVGSFG.cjs → chunk-IGDO62KR.cjs} +5 -5
- package/dist/{chunk-3QEVGSFG.cjs.map → chunk-IGDO62KR.cjs.map} +1 -1
- package/dist/{chunk-N5O47VGS.cjs → chunk-IVGI353O.cjs} +2 -2
- package/dist/{chunk-N5O47VGS.cjs.map → chunk-IVGI353O.cjs.map} +1 -1
- package/dist/chunk-IWRBJHO3.cjs +51 -0
- package/dist/chunk-IWRBJHO3.cjs.map +1 -0
- package/dist/{chunk-2IZLKPUW.js → chunk-J2CKXXOW.js} +27 -6
- package/dist/chunk-J2CKXXOW.js.map +1 -0
- package/dist/{chunk-VILW53UZ.js → chunk-JMAZ2GKT.js} +3 -3
- package/dist/{chunk-VILW53UZ.js.map → chunk-JMAZ2GKT.js.map} +1 -1
- package/dist/{chunk-WWJIW2IH.cjs → chunk-JSXIB6EJ.cjs} +4 -4
- package/dist/{chunk-WWJIW2IH.cjs.map → chunk-JSXIB6EJ.cjs.map} +1 -1
- package/dist/{chunk-KRU6IGV7.js → chunk-JUJGWUAN.js} +28 -6
- package/dist/chunk-JUJGWUAN.js.map +1 -0
- package/dist/{chunk-FXO5ARBB.cjs → chunk-KDW6BD4O.cjs} +4 -4
- package/dist/{chunk-FXO5ARBB.cjs.map → chunk-KDW6BD4O.cjs.map} +1 -1
- package/dist/{chunk-Z5V7SAZ4.js → chunk-KFEN2SRZ.js} +3 -3
- package/dist/{chunk-Z5V7SAZ4.js.map → chunk-KFEN2SRZ.js.map} +1 -1
- package/dist/chunk-KIVEYQGA.cjs +319 -0
- package/dist/chunk-KIVEYQGA.cjs.map +1 -0
- package/dist/{chunk-XEAT7XJG.cjs → chunk-KQ6GLYFZ.cjs} +29 -13
- package/dist/chunk-KQ6GLYFZ.cjs.map +1 -0
- package/dist/{chunk-4A3W4TQF.js → chunk-KVTKSPX5.js} +254 -4
- package/dist/chunk-KVTKSPX5.js.map +1 -0
- package/dist/{chunk-6EN3IQQI.cjs → chunk-L5Y52F2E.cjs} +9 -9
- package/dist/chunk-L5Y52F2E.cjs.map +1 -0
- package/dist/chunk-L6K4PRZK.cjs +4 -0
- package/dist/chunk-L6K4PRZK.cjs.map +1 -0
- package/dist/chunk-LAN5VWGC.js +2540 -0
- package/dist/chunk-LAN5VWGC.js.map +1 -0
- package/dist/{chunk-7ZDPD5ZX.cjs → chunk-LC3JL2HB.cjs} +11 -7
- package/dist/chunk-LC3JL2HB.cjs.map +1 -0
- package/dist/chunk-LRAAJRE7.cjs +2707 -0
- package/dist/chunk-LRAAJRE7.cjs.map +1 -0
- package/dist/{chunk-OE5CKRUC.js → chunk-LX323IMT.js} +34 -4
- package/dist/chunk-LX323IMT.js.map +1 -0
- package/dist/chunk-M3VPGJMV.js +283 -0
- package/dist/chunk-M3VPGJMV.js.map +1 -0
- package/dist/{chunk-DVOQ3JNO.js → chunk-ME7EVT6F.js} +23 -9
- package/dist/chunk-ME7EVT6F.js.map +1 -0
- package/dist/{chunk-SQJFBZ42.js → chunk-MUYUFOGL.js} +8 -7
- package/dist/chunk-MUYUFOGL.js.map +1 -0
- package/dist/{chunk-VKELAMAZ.js → chunk-N54FYWG6.js} +27 -11
- package/dist/chunk-N54FYWG6.js.map +1 -0
- package/dist/chunk-N5JDL4VE.js +3 -0
- package/dist/chunk-N5JDL4VE.js.map +1 -0
- package/dist/{chunk-ZPSJ2UV6.cjs → chunk-NAH65KPK.cjs} +8 -8
- package/dist/{chunk-ZPSJ2UV6.cjs.map → chunk-NAH65KPK.cjs.map} +1 -1
- package/dist/{chunk-PYJDVWXM.js → chunk-NUB5HRKS.js} +3 -3
- package/dist/{chunk-PYJDVWXM.js.map → chunk-NUB5HRKS.js.map} +1 -1
- package/dist/{chunk-WNZAYBVB.cjs → chunk-O6BJMVGT.cjs} +48 -48
- package/dist/{chunk-WNZAYBVB.cjs.map → chunk-O6BJMVGT.cjs.map} +1 -1
- package/dist/{chunk-SVSHA7XV.js → chunk-O6XDA3SI.js} +31 -33
- package/dist/chunk-O6XDA3SI.js.map +1 -0
- package/dist/chunk-OIF34LEN.cjs +425 -0
- package/dist/chunk-OIF34LEN.cjs.map +1 -0
- package/dist/{chunk-J5CSLNCN.cjs → chunk-OODVC2UD.cjs} +2 -2
- package/dist/{chunk-J5CSLNCN.cjs.map → chunk-OODVC2UD.cjs.map} +1 -1
- package/dist/{chunk-LL6IWKI3.js → chunk-OW3SQJ7P.js} +3 -3
- package/dist/{chunk-LL6IWKI3.js.map → chunk-OW3SQJ7P.js.map} +1 -1
- package/dist/{chunk-ZGRCSNPK.js → chunk-OYUIEJPN.js} +17 -8
- package/dist/chunk-OYUIEJPN.js.map +1 -0
- package/dist/chunk-P22YCUVM.cjs +4 -0
- package/dist/chunk-P22YCUVM.cjs.map +1 -0
- package/dist/{chunk-CEQJGUAS.js → chunk-P4E3K3ND.js} +12 -5
- package/dist/chunk-P4E3K3ND.js.map +1 -0
- package/dist/{chunk-TMMVIUUN.js → chunk-P7D7BYFE.js} +4 -4
- package/dist/{chunk-TMMVIUUN.js.map → chunk-P7D7BYFE.js.map} +1 -1
- package/dist/{chunk-SGFYA22I.cjs → chunk-PINIBEIU.cjs} +21 -12
- package/dist/chunk-PINIBEIU.cjs.map +1 -0
- package/dist/{chunk-3T7QGLNB.js → chunk-PJEL5ZZV.js} +4 -2
- package/dist/chunk-PJEL5ZZV.js.map +1 -0
- package/dist/chunk-PWXDRFJL.cjs +218 -0
- package/dist/chunk-PWXDRFJL.cjs.map +1 -0
- package/dist/{chunk-XZNN3S3S.cjs → chunk-PYI2IWNX.cjs} +4 -4
- package/dist/{chunk-XZNN3S3S.cjs.map → chunk-PYI2IWNX.cjs.map} +1 -1
- package/dist/chunk-Q3YVLO52.cjs +174 -0
- package/dist/chunk-Q3YVLO52.cjs.map +1 -0
- package/dist/{chunk-MNILXWVY.js → chunk-QJ2L5RU6.js} +7 -7
- package/dist/{chunk-MNILXWVY.js.map → chunk-QJ2L5RU6.js.map} +1 -1
- package/dist/{chunk-X4LBUPJO.cjs → chunk-QX6AAVDE.cjs} +31 -33
- package/dist/chunk-QX6AAVDE.cjs.map +1 -0
- package/dist/{chunk-UV2FVNWT.cjs → chunk-RIUQP2QS.cjs} +5 -5
- package/dist/{chunk-UV2FVNWT.cjs.map → chunk-RIUQP2QS.cjs.map} +1 -1
- package/dist/chunk-RLVYWUXG.js +115 -0
- package/dist/chunk-RLVYWUXG.js.map +1 -0
- package/dist/{chunk-HACNIFO3.js → chunk-RM2HPQIC.js} +77 -14
- package/dist/chunk-RM2HPQIC.js.map +1 -0
- package/dist/{chunk-DEDN5HAG.js → chunk-RSJGTWLM.js} +3 -3
- package/dist/{chunk-DEDN5HAG.js.map → chunk-RSJGTWLM.js.map} +1 -1
- package/dist/{chunk-G4D6CLBT.js → chunk-RZSSQ7AT.js} +3 -3
- package/dist/{chunk-G4D6CLBT.js.map → chunk-RZSSQ7AT.js.map} +1 -1
- package/dist/{chunk-ENKFJJZX.js → chunk-S2JZL4JC.js} +6 -6
- package/dist/{chunk-ENKFJJZX.js.map → chunk-S2JZL4JC.js.map} +1 -1
- package/dist/{chunk-P7UMS4E6.cjs → chunk-S7AMZ4RD.cjs} +23 -9
- package/dist/chunk-S7AMZ4RD.cjs.map +1 -0
- package/dist/{chunk-VROIMIHB.cjs → chunk-SHBCUXFS.cjs} +28 -6
- package/dist/chunk-SHBCUXFS.cjs.map +1 -0
- package/dist/{chunk-RJ6NTJHC.js → chunk-SRMTRD7F.js} +3 -3
- package/dist/{chunk-RJ6NTJHC.js.map → chunk-SRMTRD7F.js.map} +1 -1
- package/dist/{chunk-IX6KFB3K.cjs → chunk-SW2E7XKY.cjs} +9 -9
- package/dist/{chunk-IX6KFB3K.cjs.map → chunk-SW2E7XKY.cjs.map} +1 -1
- package/dist/chunk-SZSRGUVO.js +402 -0
- package/dist/chunk-SZSRGUVO.js.map +1 -0
- package/dist/{chunk-NJ6MY6V5.js → chunk-T5BBZQ66.js} +3 -3
- package/dist/{chunk-NJ6MY6V5.js.map → chunk-T5BBZQ66.js.map} +1 -1
- package/dist/{chunk-HZ4MBUC3.js → chunk-TI3TQQ7F.js} +4 -53
- package/dist/chunk-TI3TQQ7F.js.map +1 -0
- package/dist/{chunk-ACCAXVOG.js → chunk-TJ4GWQPM.js} +137 -57
- package/dist/chunk-TJ4GWQPM.js.map +1 -0
- package/dist/{chunk-5JJ2DAE4.js → chunk-TWQSMUE6.js} +7 -3
- package/dist/chunk-TWQSMUE6.js.map +1 -0
- package/dist/{chunk-X4XPNTCZ.cjs → chunk-U2RS574O.cjs} +139 -59
- package/dist/chunk-U2RS574O.cjs.map +1 -0
- package/dist/{chunk-TAXD5ADA.cjs → chunk-UEDTZYGI.cjs} +3 -3
- package/dist/{chunk-TAXD5ADA.cjs.map → chunk-UEDTZYGI.cjs.map} +1 -1
- package/dist/{chunk-3QGS6CXD.js → chunk-UJDWFDKE.js} +3 -3
- package/dist/{chunk-3QGS6CXD.js.map → chunk-UJDWFDKE.js.map} +1 -1
- package/dist/{chunk-DZ5HFLRC.js → chunk-UNFDIBKJ.js} +3 -3
- package/dist/{chunk-DZ5HFLRC.js.map → chunk-UNFDIBKJ.js.map} +1 -1
- package/dist/{chunk-UQ3VVR6A.cjs → chunk-UPWIJC6I.cjs} +3 -3
- package/dist/{chunk-UQ3VVR6A.cjs.map → chunk-UPWIJC6I.cjs.map} +1 -1
- package/dist/chunk-UTIPENPW.cjs +286 -0
- package/dist/chunk-UTIPENPW.cjs.map +1 -0
- package/dist/{chunk-S7WCHDBO.js → chunk-VCI2Y7ST.js} +3 -3
- package/dist/{chunk-S7WCHDBO.js.map → chunk-VCI2Y7ST.js.map} +1 -1
- package/dist/{chunk-Y5HFM7LO.js → chunk-VOEXGDL5.js} +6 -6
- package/dist/chunk-VOEXGDL5.js.map +1 -0
- package/dist/{chunk-P2CA3XGI.js → chunk-VSRO4PAI.js} +23 -5
- package/dist/chunk-VSRO4PAI.js.map +1 -0
- package/dist/{chunk-L6MDULYB.js → chunk-VU3ZMJBN.js} +2 -2
- package/dist/{chunk-L6MDULYB.js.map → chunk-VU3ZMJBN.js.map} +1 -1
- package/dist/{chunk-XI34EGK5.cjs → chunk-VV2U36T6.cjs} +9 -9
- package/dist/{chunk-XI34EGK5.cjs.map → chunk-VV2U36T6.cjs.map} +1 -1
- package/dist/{chunk-VPWJCJCX.cjs → chunk-VXW7D5LR.cjs} +26 -8
- package/dist/chunk-VXW7D5LR.cjs.map +1 -0
- package/dist/{chunk-GOALNQZ2.js → chunk-WFBUBT54.js} +4 -83
- package/dist/chunk-WFBUBT54.js.map +1 -0
- package/dist/chunk-WQHBMZSC.js +295 -0
- package/dist/chunk-WQHBMZSC.js.map +1 -0
- package/dist/chunk-WSMBIXPU.cjs +2573 -0
- package/dist/chunk-WSMBIXPU.cjs.map +1 -0
- package/dist/chunk-X5JOEZVR.js +525 -0
- package/dist/chunk-X5JOEZVR.js.map +1 -0
- package/dist/chunk-XBAAHOCP.js +3 -0
- package/dist/chunk-XBAAHOCP.js.map +1 -0
- package/dist/chunk-XDU65GLW.js +21 -0
- package/dist/chunk-XDU65GLW.js.map +1 -0
- package/dist/{chunk-5GUOOLPR.cjs → chunk-XHK5VZ4L.cjs} +29 -8
- package/dist/chunk-XHK5VZ4L.cjs.map +1 -0
- package/dist/chunk-XI74P5F2.cjs +424 -0
- package/dist/chunk-XI74P5F2.cjs.map +1 -0
- package/dist/chunk-XNPDZANN.cjs +238 -0
- package/dist/chunk-XNPDZANN.cjs.map +1 -0
- package/dist/{chunk-XDIMTPZU.cjs → chunk-XPWFIDZM.cjs} +4 -3
- package/dist/chunk-XPWFIDZM.cjs.map +1 -0
- package/dist/{chunk-FS4VZUFV.cjs → chunk-XRVMYT5G.cjs} +77 -13
- package/dist/chunk-XRVMYT5G.cjs.map +1 -0
- package/dist/chunk-XXA4NZUC.js +3 -0
- package/dist/chunk-XXA4NZUC.js.map +1 -0
- package/dist/chunk-Y424YL55.js +59 -0
- package/dist/chunk-Y424YL55.js.map +1 -0
- package/dist/chunk-Y7ZJZLJY.js +2657 -0
- package/dist/chunk-Y7ZJZLJY.js.map +1 -0
- package/dist/chunk-YG7BR76Y.js +281 -0
- package/dist/chunk-YG7BR76Y.js.map +1 -0
- package/dist/chunk-YGS2TRMP.js +38 -0
- package/dist/chunk-YGS2TRMP.js.map +1 -0
- package/dist/chunk-YUMOM3KE.js +167 -0
- package/dist/chunk-YUMOM3KE.js.map +1 -0
- package/dist/chunk-YVKBXNPK.js +41 -0
- package/dist/chunk-YVKBXNPK.js.map +1 -0
- package/dist/chunk-YW2AKBLS.cjs +23 -0
- package/dist/chunk-YW2AKBLS.cjs.map +1 -0
- package/dist/{chunk-3M7TAXNR.js → chunk-YZCM7CXK.js} +3 -3
- package/dist/{chunk-3M7TAXNR.js.map → chunk-YZCM7CXK.js.map} +1 -1
- package/dist/chunk-Z3WMDVMR.cjs +46 -0
- package/dist/chunk-Z3WMDVMR.cjs.map +1 -0
- package/dist/chunk-ZNUMOJOI.cjs +4 -0
- package/dist/chunk-ZNUMOJOI.cjs.map +1 -0
- package/dist/components/Accordion/index.cjs +2 -2
- package/dist/components/Accordion/index.d.cts +6 -0
- package/dist/components/Accordion/index.d.ts +6 -0
- package/dist/components/Accordion/index.js +1 -1
- package/dist/components/ActionPlan/index.cjs +34 -0
- package/dist/components/ActionPlan/index.cjs.map +1 -0
- package/dist/components/ActionPlan/index.d.cts +65 -0
- package/dist/components/ActionPlan/index.d.ts +65 -0
- package/dist/components/ActionPlan/index.js +21 -0
- package/dist/components/ActionPlan/index.js.map +1 -0
- package/dist/components/ActivityFeed/index.cjs +31 -0
- package/dist/components/ActivityFeed/index.cjs.map +1 -0
- package/dist/components/ActivityFeed/index.d.cts +99 -0
- package/dist/components/ActivityFeed/index.d.ts +99 -0
- package/dist/components/ActivityFeed/index.js +18 -0
- package/dist/components/ActivityFeed/index.js.map +1 -0
- package/dist/components/Alert/index.d.cts +1 -1
- package/dist/components/Alert/index.d.ts +1 -1
- package/dist/components/AlertDialog/index.cjs +19 -5
- package/dist/components/AlertDialog/index.d.cts +94 -16
- package/dist/components/AlertDialog/index.d.ts +94 -16
- package/dist/components/AlertDialog/index.js +6 -4
- package/dist/components/AssociationList/index.cjs +29 -0
- package/dist/components/AssociationList/index.cjs.map +1 -0
- package/dist/components/AssociationList/index.d.cts +50 -0
- package/dist/components/AssociationList/index.d.ts +50 -0
- package/dist/components/AssociationList/index.js +16 -0
- package/dist/components/AssociationList/index.js.map +1 -0
- package/dist/components/AudioRecorder/index.d.cts +2 -2
- package/dist/components/AudioRecorder/index.d.ts +2 -2
- package/dist/components/Autocomplete/index.d.cts +8 -2
- package/dist/components/Autocomplete/index.d.ts +8 -2
- package/dist/components/Avatar/index.cjs +9 -7
- package/dist/components/Avatar/index.d.cts +46 -15
- package/dist/components/Avatar/index.d.ts +46 -15
- package/dist/components/Avatar/index.js +3 -1
- package/dist/components/AvatarGroup/index.cjs +20 -0
- package/dist/components/AvatarGroup/index.cjs.map +1 -0
- package/dist/components/AvatarGroup/index.d.cts +57 -0
- package/dist/components/AvatarGroup/index.d.ts +57 -0
- package/dist/components/AvatarGroup/index.js +7 -0
- package/dist/components/AvatarGroup/index.js.map +1 -0
- package/dist/components/Badge/index.cjs +3 -3
- package/dist/components/Badge/index.d.cts +16 -2
- package/dist/components/Badge/index.d.ts +16 -2
- package/dist/components/Badge/index.js +1 -1
- package/dist/components/BoardView/index.cjs +5 -4
- package/dist/components/BoardView/index.d.cts +2 -3
- package/dist/components/BoardView/index.d.ts +2 -3
- package/dist/components/BoardView/index.js +2 -1
- package/dist/components/Button/index.cjs +5 -3
- package/dist/components/Button/index.d.cts +2 -1
- package/dist/components/Button/index.d.ts +2 -1
- package/dist/components/Button/index.js +3 -1
- package/dist/components/CalendarHeatmap/index.cjs +18 -0
- package/dist/components/CalendarHeatmap/index.cjs.map +1 -0
- package/dist/components/CalendarHeatmap/index.d.cts +47 -0
- package/dist/components/CalendarHeatmap/index.d.ts +47 -0
- package/dist/components/CalendarHeatmap/index.js +5 -0
- package/dist/components/CalendarHeatmap/index.js.map +1 -0
- package/dist/components/CalendarView/index.cjs +6 -4
- package/dist/components/CalendarView/index.d.cts +1 -2
- package/dist/components/CalendarView/index.d.ts +1 -2
- package/dist/components/CalendarView/index.js +4 -2
- package/dist/components/Card/index.d.cts +3 -3
- package/dist/components/Card/index.d.ts +3 -3
- package/dist/components/ClampedText/index.cjs +3 -2
- package/dist/components/ClampedText/index.js +2 -1
- package/dist/components/CollabStatus/index.cjs +6 -4
- package/dist/components/CollabStatus/index.d.cts +11 -0
- package/dist/components/CollabStatus/index.d.ts +11 -0
- package/dist/components/CollabStatus/index.js +3 -1
- package/dist/components/Collapsible/index.cjs +6 -6
- package/dist/components/Collapsible/index.d.cts +6 -0
- package/dist/components/Collapsible/index.d.ts +6 -0
- package/dist/components/Collapsible/index.js +3 -3
- package/dist/components/CompletenessMeter/index.cjs +23 -0
- package/dist/components/CompletenessMeter/index.cjs.map +1 -0
- package/dist/components/CompletenessMeter/index.d.cts +52 -0
- package/dist/components/CompletenessMeter/index.d.ts +52 -0
- package/dist/components/CompletenessMeter/index.js +6 -0
- package/dist/components/CompletenessMeter/index.js.map +1 -0
- package/dist/components/CountryCodeDropdown/index.cjs +5 -5
- package/dist/components/CountryCodeDropdown/index.js +2 -2
- package/dist/components/CustomizableDashboard/index.cjs +12 -10
- package/dist/components/CustomizableDashboard/index.js +5 -3
- package/dist/components/DateInput/index.d.cts +36 -4
- package/dist/components/DateInput/index.d.ts +36 -4
- package/dist/components/Dropdown/index.cjs +12 -10
- package/dist/components/Dropdown/index.d.cts +6 -4
- package/dist/components/Dropdown/index.d.ts +6 -4
- package/dist/components/Dropdown/index.js +5 -3
- package/dist/components/EmailEditor/index.cjs +68 -0
- package/dist/components/EmailEditor/index.cjs.map +1 -0
- package/dist/components/EmailEditor/index.d.cts +347 -0
- package/dist/components/EmailEditor/index.d.ts +347 -0
- package/dist/components/EmailEditor/index.js +27 -0
- package/dist/components/EmailEditor/index.js.map +1 -0
- package/dist/components/FieldHistory/index.cjs +34 -0
- package/dist/components/FieldHistory/index.cjs.map +1 -0
- package/dist/components/FieldHistory/index.d.cts +66 -0
- package/dist/components/FieldHistory/index.d.ts +66 -0
- package/dist/components/FieldHistory/index.js +21 -0
- package/dist/components/FieldHistory/index.js.map +1 -0
- package/dist/components/FloatingWindow/index.cjs +6 -4
- package/dist/components/FloatingWindow/index.js +4 -2
- package/dist/components/GanttView/index.d.cts +1 -2
- package/dist/components/GanttView/index.d.ts +1 -2
- package/dist/components/GlossaryTooltip/index.cjs +3 -3
- package/dist/components/GlossaryTooltip/index.js +2 -2
- package/dist/components/InlineEdit/index.cjs +20 -0
- package/dist/components/InlineEdit/index.cjs.map +1 -0
- package/dist/components/InlineEdit/index.d.cts +56 -0
- package/dist/components/InlineEdit/index.d.ts +56 -0
- package/dist/components/InlineEdit/index.js +7 -0
- package/dist/components/InlineEdit/index.js.map +1 -0
- package/dist/components/KeyboardShortcutsOverlay/index.cjs +5 -5
- package/dist/components/KeyboardShortcutsOverlay/index.js +3 -3
- package/dist/components/ListView/index.cjs +6 -4
- package/dist/components/ListView/index.d.cts +91 -4
- package/dist/components/ListView/index.d.ts +91 -4
- package/dist/components/ListView/index.js +4 -2
- package/dist/components/LogoUploader/index.cjs +18 -0
- package/dist/components/LogoUploader/index.cjs.map +1 -0
- package/dist/components/LogoUploader/index.d.cts +49 -0
- package/dist/components/LogoUploader/index.d.ts +49 -0
- package/dist/components/LogoUploader/index.js +5 -0
- package/dist/components/LogoUploader/index.js.map +1 -0
- package/dist/components/Markdown/index.cjs +21 -19
- package/dist/components/Markdown/index.js +9 -7
- package/dist/components/MediaEditor/index.cjs +16 -14
- package/dist/components/MediaEditor/index.d.cts +91 -2
- package/dist/components/MediaEditor/index.d.ts +91 -2
- package/dist/components/MediaEditor/index.js +11 -9
- package/dist/components/MediaFeed/index.cjs +29 -0
- package/dist/components/MediaFeed/index.cjs.map +1 -0
- package/dist/components/MediaFeed/index.d.cts +104 -0
- package/dist/components/MediaFeed/index.d.ts +104 -0
- package/dist/components/MediaFeed/index.js +20 -0
- package/dist/components/MediaFeed/index.js.map +1 -0
- package/dist/components/MediaPlayer/index.cjs +8 -6
- package/dist/components/MediaPlayer/index.d.cts +19 -1
- package/dist/components/MediaPlayer/index.d.ts +19 -1
- package/dist/components/MediaPlayer/index.js +5 -3
- package/dist/components/MegaMenu/index.cjs +7 -5
- package/dist/components/MegaMenu/index.js +4 -2
- package/dist/components/Modal/index.cjs +10 -10
- package/dist/components/Modal/index.js +2 -2
- package/dist/components/Pagination/index.d.cts +1 -1
- package/dist/components/Pagination/index.d.ts +1 -1
- package/dist/components/PhiMask/index.cjs +18 -0
- package/dist/components/PhiMask/index.cjs.map +1 -0
- package/dist/components/PhiMask/index.d.cts +45 -0
- package/dist/components/PhiMask/index.d.ts +45 -0
- package/dist/components/PhiMask/index.js +5 -0
- package/dist/components/PhiMask/index.js.map +1 -0
- package/dist/components/Progress/index.cjs +6 -6
- package/dist/components/Progress/index.d.cts +8 -2
- package/dist/components/Progress/index.d.ts +8 -2
- package/dist/components/Progress/index.js +1 -1
- package/dist/components/PropertyList/index.cjs +25 -0
- package/dist/components/PropertyList/index.cjs.map +1 -0
- package/dist/components/PropertyList/index.d.cts +87 -0
- package/dist/components/PropertyList/index.d.ts +87 -0
- package/dist/components/PropertyList/index.js +12 -0
- package/dist/components/PropertyList/index.js.map +1 -0
- package/dist/components/Q/index.d.cts +2 -2
- package/dist/components/Q/index.d.ts +2 -2
- package/dist/components/QuickAction/index.d.cts +1 -1
- package/dist/components/QuickAction/index.d.ts +1 -1
- package/dist/components/RadialExplorer/index.cjs +7 -5
- package/dist/components/RadialExplorer/index.js +6 -4
- package/dist/components/Rating/index.cjs +28 -0
- package/dist/components/Rating/index.cjs.map +1 -0
- package/dist/components/Rating/index.d.cts +85 -0
- package/dist/components/Rating/index.d.ts +85 -0
- package/dist/components/Rating/index.js +7 -0
- package/dist/components/Rating/index.js.map +1 -0
- package/dist/components/RecordButton/index.d.cts +1 -1
- package/dist/components/RecordButton/index.d.ts +1 -1
- package/dist/components/RecordHeader/index.cjs +30 -0
- package/dist/components/RecordHeader/index.cjs.map +1 -0
- package/dist/components/RecordHeader/index.d.cts +96 -0
- package/dist/components/RecordHeader/index.d.ts +96 -0
- package/dist/components/RecordHeader/index.js +17 -0
- package/dist/components/RecordHeader/index.js.map +1 -0
- package/dist/components/RecordLayout/index.cjs +22 -0
- package/dist/components/RecordLayout/index.cjs.map +1 -0
- package/dist/components/RecordLayout/index.d.cts +40 -0
- package/dist/components/RecordLayout/index.d.ts +40 -0
- package/dist/components/RecordLayout/index.js +9 -0
- package/dist/components/RecordLayout/index.js.map +1 -0
- package/dist/components/RichTextEditor/index.cjs +12 -8
- package/dist/components/RichTextEditor/index.d.cts +12 -2
- package/dist/components/RichTextEditor/index.d.ts +12 -2
- package/dist/components/RichTextEditor/index.js +9 -5
- package/dist/components/ScrollArea/index.d.cts +1 -1
- package/dist/components/ScrollArea/index.d.ts +1 -1
- package/dist/components/SectionSpyNav/index.cjs +5 -3
- package/dist/components/SectionSpyNav/index.js +4 -2
- package/dist/components/Select/index.cjs +4 -4
- package/dist/components/Select/index.d.cts +2 -2
- package/dist/components/Select/index.d.ts +2 -2
- package/dist/components/Select/index.js +2 -2
- package/dist/components/Skeleton/index.d.cts +1 -1
- package/dist/components/Skeleton/index.d.ts +1 -1
- package/dist/components/Slider/index.d.cts +2 -2
- package/dist/components/Slider/index.d.ts +2 -2
- package/dist/components/SliderCalculator/index.cjs +4 -4
- package/dist/components/SliderCalculator/index.js +2 -2
- package/dist/components/SourceTip/index.cjs +3 -3
- package/dist/components/SourceTip/index.js +2 -2
- package/dist/components/Spinner/index.d.cts +2 -2
- package/dist/components/Spinner/index.d.ts +2 -2
- package/dist/components/SuperChat/index.cjs +735 -322
- package/dist/components/SuperChat/index.cjs.map +1 -1
- package/dist/components/SuperChat/index.d.cts +126 -8
- package/dist/components/SuperChat/index.d.ts +126 -8
- package/dist/components/SuperChat/index.js +721 -308
- package/dist/components/SuperChat/index.js.map +1 -1
- package/dist/components/SuperChat/plugins/index.cjs +8 -6
- package/dist/components/SuperChat/plugins/index.cjs.map +1 -1
- package/dist/components/SuperChat/plugins/index.d.cts +2 -3
- package/dist/components/SuperChat/plugins/index.d.ts +2 -3
- package/dist/components/SuperChat/plugins/index.js +7 -5
- package/dist/components/SuperChat/plugins/index.js.map +1 -1
- package/dist/components/Tabs/index.cjs +10 -7
- package/dist/components/Tabs/index.d.cts +12 -1
- package/dist/components/Tabs/index.d.ts +12 -1
- package/dist/components/Tabs/index.js +4 -1
- package/dist/components/TagEditor/index.cjs +22 -0
- package/dist/components/TagEditor/index.cjs.map +1 -0
- package/dist/components/TagEditor/index.d.cts +46 -0
- package/dist/components/TagEditor/index.d.ts +46 -0
- package/dist/components/TagEditor/index.js +9 -0
- package/dist/components/TagEditor/index.js.map +1 -0
- package/dist/components/Text/index.d.cts +3 -3
- package/dist/components/Text/index.d.ts +3 -3
- package/dist/components/Textarea/index.d.cts +2 -2
- package/dist/components/Textarea/index.d.ts +2 -2
- package/dist/components/ThemeProvider/index.cjs +9 -9
- package/dist/components/ThemeProvider/index.d.cts +3 -1
- package/dist/components/ThemeProvider/index.d.ts +3 -1
- 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/TranscriptView/index.d.cts +85 -4
- package/dist/components/TranscriptView/index.d.ts +85 -4
- package/dist/components/UserPicker/index.cjs +24 -0
- package/dist/components/UserPicker/index.cjs.map +1 -0
- package/dist/components/UserPicker/index.d.cts +60 -0
- package/dist/components/UserPicker/index.d.ts +60 -0
- package/dist/components/UserPicker/index.js +11 -0
- package/dist/components/UserPicker/index.js.map +1 -0
- package/dist/components/VideoCard/index.cjs +4 -4
- package/dist/components/VideoCard/index.js +2 -2
- package/dist/components/ViewSet/index.cjs +10 -7
- package/dist/components/ViewSet/index.d.cts +120 -8
- package/dist/components/ViewSet/index.d.ts +120 -8
- package/dist/components/ViewSet/index.js +9 -6
- package/dist/components/ViewSwitcher/index.cjs +4 -3
- package/dist/components/ViewSwitcher/index.d.cts +1 -2
- package/dist/components/ViewSwitcher/index.d.ts +1 -2
- package/dist/components/ViewSwitcher/index.js +2 -1
- package/dist/components/YearTimeline/index.cjs +5 -5
- package/dist/components/YearTimeline/index.js +1 -1
- package/dist/datavis.cjs +6 -4
- package/dist/datavis.cjs.map +1 -1
- package/dist/datavis.d.cts +167 -13
- package/dist/datavis.d.ts +167 -13
- package/dist/datavis.js +4 -2
- package/dist/datavis.js.map +1 -1
- package/dist/deck.cjs +3374 -0
- package/dist/deck.cjs.map +1 -0
- package/dist/deck.d.cts +712 -0
- package/dist/deck.d.ts +712 -0
- package/dist/deck.js +3330 -0
- package/dist/deck.js.map +1 -0
- package/dist/esheet.cjs +20 -16
- package/dist/esheet.cjs.map +1 -1
- package/dist/esheet.d.cts +183 -1
- package/dist/esheet.d.ts +183 -1
- package/dist/esheet.js +17 -13
- package/dist/esheet.js.map +1 -1
- package/dist/globe.cjs +2 -2
- package/dist/globe.js +1 -1
- package/dist/{hey-buddy-INNUFFJJ.cjs → hey-buddy-5WOBYZRJ.cjs} +22 -11
- package/dist/hey-buddy-5WOBYZRJ.cjs.map +1 -0
- package/dist/{hey-buddy-V6FC5UKB.js → hey-buddy-AHUHCDBC.js} +22 -11
- package/dist/hey-buddy-AHUHCDBC.js.map +1 -0
- package/dist/hooks/index.cjs +88 -33
- package/dist/hooks/index.d.cts +592 -36
- package/dist/hooks/index.d.ts +592 -36
- package/dist/hooks/index.js +9 -6
- package/dist/icons-wBacj6BW.d.cts +142 -0
- package/dist/icons-wBacj6BW.d.ts +142 -0
- package/dist/index.cjs +2056 -1349
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10401 -637
- package/dist/index.d.ts +10401 -637
- package/dist/index.js +674 -352
- package/dist/index.js.map +1 -1
- package/dist/kerebron.css +115 -0
- package/dist/maps.cjs +160 -0
- package/dist/maps.cjs.map +1 -0
- package/dist/maps.d.cts +42 -0
- package/dist/maps.d.ts +42 -0
- package/dist/maps.js +138 -0
- package/dist/maps.js.map +1 -0
- package/dist/motion.cjs +7 -7
- package/dist/motion.d.cts +186 -2
- package/dist/motion.d.ts +186 -2
- package/dist/motion.js +2 -2
- package/dist/org-chart.cjs +1303 -0
- package/dist/org-chart.cjs.map +1 -0
- package/dist/org-chart.d.cts +164 -0
- package/dist/org-chart.d.ts +164 -0
- package/dist/org-chart.js +1278 -0
- package/dist/org-chart.js.map +1 -0
- package/dist/q.d.cts +25 -3
- package/dist/q.d.ts +25 -3
- package/dist/styles/effects.css +133 -0
- package/dist/styles/init.css +22 -3
- package/dist/styles.css +1 -1
- package/dist/tailwind-preset.cjs +4 -4
- package/dist/tailwind-preset.js +1 -1
- package/dist/templates.cjs +156 -0
- package/dist/templates.cjs.map +1 -0
- package/dist/templates.d.cts +734 -0
- package/dist/templates.d.ts +734 -0
- package/dist/templates.js +11 -0
- package/dist/templates.js.map +1 -0
- package/dist/{types-CbWXIKbe.d.cts → types-CDeBNZiE.d.cts} +1 -28
- package/dist/{types-CbWXIKbe.d.ts → types-CDeBNZiE.d.ts} +1 -28
- package/dist/types-Cx1FHLq2.d.cts +548 -0
- package/dist/types-Cx1FHLq2.d.ts +548 -0
- package/dist/types-DsdZvEI1.d.cts +92 -0
- package/dist/types-DsdZvEI1.d.ts +92 -0
- package/dist/utils/index.cjs +9 -9
- package/dist/utils/index.d.cts +13 -2
- package/dist/utils/index.d.ts +13 -2
- package/dist/utils/index.js +1 -1
- package/package.json +79 -15
- package/dist/Animated-XmH6k8pZ.d.cts +0 -188
- package/dist/Animated-XmH6k8pZ.d.ts +0 -188
- package/dist/CsvBlock-ROJCKJDP.cjs +0 -16
- package/dist/CsvBlock-UWPMTLE2.js +0 -7
- package/dist/HtmlPreviewBlock-DWFN6EUB.cjs +0 -16
- package/dist/HtmlPreviewBlock-ME5U3XNS.js +0 -7
- package/dist/MedicationEditor-Bp4NLy7y.d.cts +0 -352
- package/dist/MedicationEditor-Bp4NLy7y.d.ts +0 -352
- package/dist/MermaidBlock-2B6CPD6Y.js +0 -7
- package/dist/MermaidBlock-D2UC5M55.cjs +0 -16
- package/dist/SurveyBlock-4CD4AYMJ.cjs +0 -16
- package/dist/SurveyBlock-4DO62RBT.js +0 -7
- package/dist/chunk-2IZLKPUW.js.map +0 -1
- package/dist/chunk-3T7QGLNB.js.map +0 -1
- package/dist/chunk-4A3W4TQF.js.map +0 -1
- package/dist/chunk-4IS3QCOQ.cjs.map +0 -1
- package/dist/chunk-5GUOOLPR.cjs.map +0 -1
- package/dist/chunk-5JJ2DAE4.js.map +0 -1
- package/dist/chunk-6EN3IQQI.cjs.map +0 -1
- package/dist/chunk-6HFFWEM3.cjs +0 -22
- package/dist/chunk-6HFFWEM3.cjs.map +0 -1
- package/dist/chunk-7ZDPD5ZX.cjs.map +0 -1
- package/dist/chunk-7ZVTLTJF.js +0 -109
- package/dist/chunk-7ZVTLTJF.js.map +0 -1
- package/dist/chunk-ACCAXVOG.js.map +0 -1
- package/dist/chunk-AR7AKDM2.cjs +0 -143
- package/dist/chunk-AR7AKDM2.cjs.map +0 -1
- package/dist/chunk-ASSDGS4F.cjs.map +0 -1
- package/dist/chunk-AWJBOND5.js +0 -130
- package/dist/chunk-AWJBOND5.js.map +0 -1
- package/dist/chunk-BMSG4NBH.js +0 -56
- package/dist/chunk-BMSG4NBH.js.map +0 -1
- package/dist/chunk-CEQJGUAS.js.map +0 -1
- package/dist/chunk-CR2SDI23.cjs.map +0 -1
- package/dist/chunk-DVOQ3JNO.js.map +0 -1
- package/dist/chunk-E4IBHYJ7.cjs +0 -80
- package/dist/chunk-E4IBHYJ7.cjs.map +0 -1
- package/dist/chunk-FS4VZUFV.cjs.map +0 -1
- package/dist/chunk-GD7EBGC4.cjs.map +0 -1
- package/dist/chunk-GOALNQZ2.js.map +0 -1
- package/dist/chunk-HACNIFO3.js.map +0 -1
- package/dist/chunk-HB7C7NB5.js +0 -20
- package/dist/chunk-HB7C7NB5.js.map +0 -1
- package/dist/chunk-HZ4MBUC3.js.map +0 -1
- package/dist/chunk-IT775BYG.js.map +0 -1
- package/dist/chunk-JEIW7BSV.cjs.map +0 -1
- package/dist/chunk-JYZW2PZS.cjs.map +0 -1
- package/dist/chunk-KQUI4BGS.cjs.map +0 -1
- package/dist/chunk-KRU6IGV7.js.map +0 -1
- package/dist/chunk-NV2CWBI2.cjs.map +0 -1
- package/dist/chunk-OE5CKRUC.js.map +0 -1
- package/dist/chunk-P2CA3XGI.js.map +0 -1
- package/dist/chunk-P7UMS4E6.cjs.map +0 -1
- package/dist/chunk-SGFYA22I.cjs.map +0 -1
- package/dist/chunk-SQHMGT4W.js.map +0 -1
- package/dist/chunk-SQJFBZ42.js.map +0 -1
- package/dist/chunk-SVSHA7XV.js.map +0 -1
- package/dist/chunk-TVTIGV7Q.js.map +0 -1
- package/dist/chunk-VKELAMAZ.js.map +0 -1
- package/dist/chunk-VNYW4C4J.cjs.map +0 -1
- package/dist/chunk-VOKVG3ER.js +0 -78
- package/dist/chunk-VOKVG3ER.js.map +0 -1
- package/dist/chunk-VPIYTQCV.cjs.map +0 -1
- package/dist/chunk-VPWJCJCX.cjs.map +0 -1
- package/dist/chunk-VROIMIHB.cjs.map +0 -1
- package/dist/chunk-WNJRS7Y7.cjs.map +0 -1
- package/dist/chunk-X4LBUPJO.cjs.map +0 -1
- package/dist/chunk-X4XPNTCZ.cjs.map +0 -1
- package/dist/chunk-XCP454Q6.js.map +0 -1
- package/dist/chunk-XDIMTPZU.cjs.map +0 -1
- package/dist/chunk-XEAT7XJG.cjs.map +0 -1
- package/dist/chunk-XVW5DPPP.js.map +0 -1
- package/dist/chunk-Y5HFM7LO.js.map +0 -1
- package/dist/chunk-YVL3XATO.cjs +0 -79
- package/dist/chunk-YVL3XATO.cjs.map +0 -1
- package/dist/chunk-YVPC65ZJ.cjs.map +0 -1
- package/dist/chunk-ZGRCSNPK.js.map +0 -1
- package/dist/hey-buddy-INNUFFJJ.cjs.map +0 -1
- package/dist/hey-buddy-V6FC5UKB.js.map +0 -1
- package/dist/html-MdxqSzjD.d.cts +0 -13
- package/dist/html-MdxqSzjD.d.ts +0 -13
- package/dist/orderRows-BUJYgSc7.d.cts +0 -221
- package/dist/orderRows-BUJYgSc7.d.ts +0 -221
- package/dist/transcript-Cg7uSW-C.d.cts +0 -84
- package/dist/transcript-Cg7uSW-C.d.ts +0 -84
- package/dist/types-B97JNRNQ.d.cts +0 -251
- package/dist/types-CnPEwzlp.d.cts +0 -254
- package/dist/types-CnPEwzlp.d.ts +0 -254
- package/dist/types-gZXrfLj6.d.ts +0 -251
- package/dist/useAnchoredPosition-CKwLSQW8.d.cts +0 -76
- package/dist/useAnchoredPosition-CKwLSQW8.d.ts +0 -76
- package/dist/useTheme-B9SWu6ui.d.cts +0 -24
- package/dist/useTheme-B9SWu6ui.d.ts +0 -24
- package/dist/useTranscriptEdits-CGzlemHT.d.cts +0 -182
- package/dist/useTranscriptEdits-D32bLs0l.d.ts +0 -182
|
@@ -92,59 +92,9 @@ var Avatar = React__namespace.forwardRef(
|
|
|
92
92
|
}
|
|
93
93
|
);
|
|
94
94
|
Avatar.displayName = "Avatar";
|
|
95
|
-
var AvatarGroup = React__namespace.forwardRef(
|
|
96
|
-
({ className, max, size = "md", children, ...props }, ref) => {
|
|
97
|
-
const childrenArray = React__namespace.Children.toArray(children);
|
|
98
|
-
const visibleChildren = max ? childrenArray.slice(0, max) : childrenArray;
|
|
99
|
-
const remainingCount = max ? Math.max(0, childrenArray.length - max) : 0;
|
|
100
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
101
|
-
"div",
|
|
102
|
-
{
|
|
103
|
-
ref,
|
|
104
|
-
"data-slot": "avatar-group",
|
|
105
|
-
className: chunkS5RVSXDV_cjs.cn("flex -space-x-2 rtl:space-x-reverse", className),
|
|
106
|
-
...props,
|
|
107
|
-
children: [
|
|
108
|
-
visibleChildren.map((child, index) => {
|
|
109
|
-
if (React__namespace.isValidElement(child)) {
|
|
110
|
-
return React__namespace.cloneElement(
|
|
111
|
-
child,
|
|
112
|
-
{
|
|
113
|
-
key: index,
|
|
114
|
-
size,
|
|
115
|
-
className: chunkS5RVSXDV_cjs.cn(
|
|
116
|
-
"ring-2 ring-white dark:ring-neutral-900",
|
|
117
|
-
child.props.className
|
|
118
|
-
)
|
|
119
|
-
}
|
|
120
|
-
);
|
|
121
|
-
}
|
|
122
|
-
return child;
|
|
123
|
-
}),
|
|
124
|
-
remainingCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
125
|
-
"div",
|
|
126
|
-
{
|
|
127
|
-
className: chunkS5RVSXDV_cjs.cn(
|
|
128
|
-
avatarVariants({ size }),
|
|
129
|
-
"bg-neutral-200 text-neutral-600 dark:bg-neutral-700 dark:text-neutral-300",
|
|
130
|
-
"ring-2 ring-white dark:ring-neutral-900"
|
|
131
|
-
),
|
|
132
|
-
children: [
|
|
133
|
-
"+",
|
|
134
|
-
remainingCount
|
|
135
|
-
]
|
|
136
|
-
}
|
|
137
|
-
)
|
|
138
|
-
]
|
|
139
|
-
}
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
);
|
|
143
|
-
AvatarGroup.displayName = "AvatarGroup";
|
|
144
95
|
|
|
145
96
|
exports.Avatar = Avatar;
|
|
146
|
-
exports.AvatarGroup = AvatarGroup;
|
|
147
97
|
exports.avatarVariants = avatarVariants;
|
|
148
98
|
exports.getInitials = getInitials;
|
|
149
|
-
//# sourceMappingURL=chunk-
|
|
150
|
-
//# sourceMappingURL=chunk-
|
|
99
|
+
//# sourceMappingURL=chunk-GKDHMNUA.cjs.map
|
|
100
|
+
//# sourceMappingURL=chunk-GKDHMNUA.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Avatar/Avatar.tsx"],"names":["cva","React","jsx","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAM,cAAA,GAAiBA,0BAAA;AAAA,EACrB;AAAA,IACE,kDAAA;AAAA,IACA,8BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,iBAAA;AAAA,QACJ,EAAA,EAAI,iBAAA;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI,qBAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,IAAA,EAAM,4BAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,IAAA,EAAM;AAAA;AACR;AAEJ;AAmBA,SAAS,YAAY,IAAA,EAAsB;AACzC,EAAA,OAAO,KACJ,KAAA,CAAM,GAAG,EACT,GAAA,CAAI,CAAC,SAAS,IAAA,CAAK,CAAC,CAAC,CAAA,CACrB,KAAK,EAAE,CAAA,CACP,aAAY,CACZ,KAAA,CAAM,GAAG,CAAC,CAAA;AACf;AAiBA,IAAM,MAAA,GAAeC,gBAAA,CAAA,UAAA;AAAA,EACnB,CAAC,EAAE,SAAA,EAAW,GAAA,EAAK,GAAA,EAAK,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,IAAA,EAAM,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACtE,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAUA,0BAAS,KAAK,CAAA;AAGxD,IAAMA,2BAAU,MAAM;AACpB,MAAA,aAAA,CAAc,KAAK,CAAA;AAAA,IACrB,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA;AAER,IAAA,MAAM,SAAA,GAAY,OAAO,CAAC,UAAA;AAC1B,IAAA,MAAM,QAAA,GAAW,IAAA,GAAO,WAAA,CAAY,IAAI,CAAA,GAAI,IAAA;AAE5C,IAAA,uBACEC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,QAAA;AAAA,QACV,SAAA,EAAWC,qBAAG,cAAA,CAAe,EAAE,MAAM,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,QACtD,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA,SAAA,mBACCD,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,GAAA;AAAA,YACA,GAAA,EAAK,GAAA,KAAQ,MAAA,GAAY,GAAA,GAAM,IAAA,IAAQ,QAAA;AAAA,YACvC,SAAA,EAAU,4BAAA;AAAA,YACV,OAAA,EAAS,MAAM,aAAA,CAAc,IAAI;AAAA;AAAA,YAE3BD,gBAAA,CAAA,cAAA,CAAe,QAAQ,CAAA,GAC/B,QAAA,GACE,WACF,QAAA,mBAEAC,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAU,+BAAA;AAAA,YACV,IAAA,EAAK,cAAA;AAAA,YACL,OAAA,EAAQ,WAAA;AAAA,YAER,QAAA,kBAAAA,cAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,+GAAA,EAAgH;AAAA;AAAA;AAC1H;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA","file":"chunk-GKDHMNUA.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Avatar Component\n// ============================================================================\n\nconst avatarVariants = cva(\n [\n 'relative inline-flex items-center justify-center',\n 'rounded-full overflow-hidden',\n 'bg-primary-800 text-white font-semibold',\n ],\n {\n variants: {\n size: {\n xs: 'h-6 w-6 text-xs',\n sm: 'h-8 w-8 text-sm',\n md: 'h-10 w-10 text-sm',\n lg: 'h-12 w-12 text-base',\n xl: 'h-16 w-16 text-lg',\n },\n ring: {\n true: 'ring-2 ring-primary-400/30',\n false: '',\n },\n },\n defaultVariants: {\n size: 'md',\n ring: false,\n },\n }\n);\n\nexport interface AvatarProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof avatarVariants> {\n /** Image URL for the avatar */\n src?: string | null;\n /** Alt text for the avatar image */\n alt?: string;\n /** Name to generate initials from (used as fallback when no src) */\n name?: string;\n /** Custom fallback content (overrides name initials) */\n fallback?: React.ReactElement | null;\n}\n\n/**\n * Get initials from a name string.\n */\nfunction getInitials(name: string): string {\n return name\n .split(' ')\n .map((part) => part[0])\n .join('')\n .toUpperCase()\n .slice(0, 2);\n}\n\n/**\n * An avatar component for displaying user profile images with fallback to initials.\n *\n * @example\n * ```tsx\n * // With image\n * <Avatar src=\"/user.jpg\" alt=\"John Doe\" />\n *\n * // With initials fallback\n * <Avatar name=\"John Doe\" />\n *\n * // With custom fallback\n * <Avatar fallback={<UserIcon />} />\n * ```\n */\nconst Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(\n ({ className, src, alt, name, fallback, size, ring, ...props }, ref) => {\n const [imageError, setImageError] = React.useState(false);\n\n // Reset error state when src changes\n React.useEffect(() => {\n setImageError(false);\n }, [src]);\n\n const showImage = src && !imageError;\n const initials = name ? getInitials(name) : null;\n\n return (\n <div\n ref={ref}\n data-slot=\"avatar\"\n className={cn(avatarVariants({ size, ring }), className)}\n {...props}\n >\n {showImage ? (\n <img\n src={src}\n alt={alt !== undefined ? alt : name || 'Avatar'}\n className=\"h-full w-full object-cover\"\n onError={() => setImageError(true)}\n />\n ) : React.isValidElement(fallback) ? (\n fallback\n ) : initials ? (\n initials\n ) : (\n <svg\n aria-hidden=\"true\"\n className=\"h-[60%] w-[60%] text-white/80\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\" />\n </svg>\n )}\n </div>\n );\n }\n);\n\nAvatar.displayName = 'Avatar';\n\nexport { Avatar, avatarVariants, getInitials };\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var chunk4NCDU5IG_cjs = require('./chunk-4NCDU5IG.cjs');
|
|
4
4
|
var chunkXXVUHLQN_cjs = require('./chunk-XXVUHLQN.cjs');
|
|
5
5
|
var chunkL7L5S2HO_cjs = require('./chunk-L7L5S2HO.cjs');
|
|
6
|
-
var
|
|
6
|
+
var chunkANMX7YDL_cjs = require('./chunk-ANMX7YDL.cjs');
|
|
7
7
|
var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
|
|
8
8
|
var React = require('react');
|
|
9
9
|
var luxon = require('luxon');
|
|
@@ -177,7 +177,7 @@ function CalendarView({
|
|
|
177
177
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { "aria-live": "polite", className: "text-sm font-semibold", children: monthLabel }),
|
|
178
178
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ms-auto flex items-center gap-1", children: [
|
|
179
179
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
180
|
-
|
|
180
|
+
chunkANMX7YDL_cjs.Button,
|
|
181
181
|
{
|
|
182
182
|
variant: "ghost",
|
|
183
183
|
size: "sm",
|
|
@@ -187,7 +187,7 @@ function CalendarView({
|
|
|
187
187
|
}
|
|
188
188
|
),
|
|
189
189
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
190
|
-
|
|
190
|
+
chunkANMX7YDL_cjs.Button,
|
|
191
191
|
{
|
|
192
192
|
variant: "ghost",
|
|
193
193
|
size: "sm",
|
|
@@ -196,7 +196,7 @@ function CalendarView({
|
|
|
196
196
|
}
|
|
197
197
|
),
|
|
198
198
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
199
|
-
|
|
199
|
+
chunkANMX7YDL_cjs.Button,
|
|
200
200
|
{
|
|
201
201
|
variant: "ghost",
|
|
202
202
|
size: "sm",
|
|
@@ -352,5 +352,5 @@ function CalendarView({
|
|
|
352
352
|
|
|
353
353
|
exports.CalendarView = CalendarView;
|
|
354
354
|
exports.defaultCalendarLabels = defaultCalendarLabels;
|
|
355
|
-
//# sourceMappingURL=chunk-
|
|
356
|
-
//# sourceMappingURL=chunk-
|
|
355
|
+
//# sourceMappingURL=chunk-GM32IDVL.cjs.map
|
|
356
|
+
//# sourceMappingURL=chunk-GM32IDVL.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/CalendarView/CalendarView.tsx"],"names":["defaultViewLabels","DateTime","React","toDateTime","Info","jsx","cn","jsxs","Spinner","Button","ChevronLeft","ChevronRight","accentClasses"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCO,IAAM,qBAAA,GAAwC;AAAA,EACnD,GAAGA,mCAAA;AAAA,EACH,KAAA,EAAO,oBAAA;AAAA,EACP,aAAA,EAAe,gBAAA;AAAA,EACf,SAAA,EAAW,YAAA;AAAA,EACX,KAAA,EAAO,OAAA;AAAA,EACP,IAAA,EAAM;AACR;AAqCO,SAAS,YAAA,CAAgB;AAAA,EAC9B,KAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,KAAA,GAAQ,IAAA;AAAA,EACR,UAAA,GAAa,IAAA;AAAA,EACb,MAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA,GAAe,CAAA;AAAA,EACf,MAAA;AAAA,EACA,SAAA,GAAY,CAAA;AAAA,EACZ,GAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA,GAAc;AAChB,CAAA,EAAyB;AACvB,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,qBAAA,EAAuB,GAAG,MAAA,EAAO;AACnD,EAAA,MAAM,IAAA,GAAO,QAAA,IAAYC,cAAA,CAAS,KAAA,EAAM,CAAE,QAAA;AAC1C,EAAA,MAAM,KAAA,GAAcC,gBAAA,CAAA,OAAA;AAAA,IAClB,MAAMD,cAAA,CAAS,UAAA,CAAW,GAAA,oBAAO,IAAI,IAAA,EAAK,EAAG,EAAE,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,KAAK,CAAA;AAAA,IACpE,CAAC,KAAK,IAAI;AAAA,GACZ;AAEA,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUC,gBAAA,CAAA,QAAA;AAAA,IAAS,MACvD,YAAA,GACID,cAAA,CAAS,UAAA,CAAW,cAAc,EAAE,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,OAAO,CAAA,GAC3D,KAAA,CAAM,QAAQ,OAAO;AAAA,GAC3B;AAGA,EAAA,MAAM,OAAA,GAAgBC,yBAAQ,MAAM;AAClC,IAAA,MAAM,MAAA,GAAS,QAAQD,cAAA,CAAS,UAAA,CAAW,OAAO,EAAE,IAAA,EAAM,CAAA,GAAI,aAAA;AAC9D,IAAA,OAAOA,cAAA,CAAS,UAAA;AAAA,MACd,EAAE,MAAM,MAAA,CAAO,IAAA,EAAM,OAAO,MAAA,CAAO,KAAA,EAAO,KAAK,CAAA,EAAE;AAAA,MACjD,EAAE,IAAA;AAAK,KACT;AAAA,EACF,CAAA,EAAG,CAAC,KAAA,EAAO,aAAA,EAAe,IAAI,CAAC,CAAA;AAE/B,EAAA,MAAM,SAAA,GAAY,CAAC,IAAA,KAAmB;AACpC,IAAA,IAAI,CAAC,KAAA,EAAO,gBAAA,CAAiB,IAAI,CAAA;AACjC,IAAA,aAAA,GAAgB,IAAA,CAAK,UAAU,CAAA;AAAA,EACjC,CAAA;AAGA,EAAA,MAAM,SAAA,GAAkBC,yBAAQ,MAAM;AACpC,IAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,OAAA,CAAQ,OAAO,CAAA;AACrC,IAAA,MAAM,MAAA,GAAA,CAAU,KAAA,CAAM,OAAA,GAAU,YAAA,GAAe,CAAA,IAAK,CAAA;AACpD,IAAA,OAAO,KAAA,CAAM,KAAA,CAAM,EAAE,IAAA,EAAM,QAAQ,CAAA;AAAA,EACrC,CAAA,EAAG,CAAC,OAAA,EAAS,YAAY,CAAC,CAAA;AAE1B,EAAA,MAAM,IAAA,GAAaA,gBAAA,CAAA,OAAA;AAAA,IACjB,MAAM,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,IAAG,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,UAAU,IAAA,CAAK,EAAE,IAAA,EAAM,CAAA,EAAG,CAAC,CAAA;AAAA,IACtE,CAAC,SAAS;AAAA,GACZ;AAEA,EAAA,MAAM,KAAA,GAAcA,gBAAA,CAAA,OAAA;AAAA,IAClB,MAAM,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,GAAE,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,KAAK,KAAA,CAAM,CAAA,GAAI,GAAG,CAAA,GAAI,CAAA,GAAI,CAAC,CAAC,CAAA;AAAA,IACtE,CAAC,IAAI;AAAA,GACP;AAEA,EAAA,MAAM,MAAA,GAAeA,yBAAqB,MAAM;AAC9C,IAAA,MAAM,MAAmB,EAAC;AAC1B,IAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,MAAA,MAAM,QAAQC,4BAAA,CAAW,SAAA,CAAU,WAAW,IAAI,CAAA,EAAG,IAAI,CAAA,EAAG,OAAA;AAAA,QAC1D;AAAA,OACF;AACA,MAAA,IAAI,CAAC,KAAA,EAAO;AACZ,MAAA,MAAM,MAAA,GAASA,6BAAW,SAAA,CAAU,MAAA,GAAS,IAAI,CAAA,EAAG,IAAI,CAAA,EAAG,OAAA,CAAQ,KAAK,CAAA;AACxE,MAAA,MAAM,MAAM,MAAA,IAAU,KAAA;AACtB,MAAA,GAAA,CAAI,IAAA,CAAK;AAAA,QACP,EAAA,EAAI,SAAA,CAAU,KAAA,CAAM,IAAI,CAAA;AAAA,QACxB,IAAA;AAAA,QACA,KAAA;AAAA;AAAA,QAEA,GAAA,EAAK,GAAA,GAAM,KAAA,GAAQ,KAAA,GAAQ;AAAA,OAC5B,CAAA;AAAA,IACH;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,CAAC,KAAA,EAAO,SAAA,EAAW,IAAI,CAAC,CAAA;AAE3B,EAAA,MAAM,KAAA,GAAcD,yBAAQ,MAAM;AAChC,IAAA,MAAM,GAAA,uBAAU,GAAA,EAAyB;AACzC,IAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,MAAA,MAAM,GAAA,GAAM,GAAA,CAAI,SAAA,EAAU,IAAK,EAAA;AAC/B,MAAA,GAAA,CAAI,GAAA;AAAA,QACF,GAAA;AAAA,QACA,MAAA,CAAO,OAAO,CAAC,CAAA,KAAM,EAAE,KAAA,IAAS,GAAA,IAAO,GAAA,IAAO,CAAA,CAAE,GAAG;AAAA,OACrD;AAAA,IACF;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,CAAC,IAAA,EAAM,MAAM,CAAC,CAAA;AAEjB,EAAA,MAAM,YAAA,GAAqBA,yBAAQ,MAAM;AACvC,IAAA,MAAM,QAAQE,UAAA,CAAK,QAAA,CAAS,OAAA,EAAS,EAAE,QAAQ,CAAA;AAC/C,IAAA,OAAO,KAAA,CAAM,IAAA;AAAA,MACX,EAAE,QAAQ,CAAA,EAAE;AAAA,MACZ,CAAC,CAAA,EAAG,CAAA,KAAM,OAAO,YAAA,GAAe,CAAA,GAAI,KAAK,CAAC;AAAA,KAC5C;AAAA,EACF,CAAA,EAAG,CAAC,MAAA,EAAQ,YAAY,CAAC,CAAA;AAEzB,EAAA,MAAM,KAAA,GAAQ,CAAC,OAAA,qBACbC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAWC,oBAAA;AAAA,QACT,8IAAA;AAAA,QACA,UAAA,EAAY;AAAA,OACd;AAAA,MAEC,QAAA,EAAA;AAAA;AAAA,GACH;AAGF,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,OAAO,KAAA;AAAA,qCACJ,GAAA,EAAA,EAAE,IAAA,EAAK,SAAQ,SAAA,EAAU,kBAAA,EACvB,eAAK,KAAA,EACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAO,KAAA;AAAA,sBACLC,eAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yBAAA,EACd,QAAA,EAAA;AAAA,wBAAAF,cAAA,CAACG,yBAAA,EAAA,EAAQ,IAAA,EAAK,IAAA,EAAK,KAAA,EAAO,KAAK,OAAA,EAAS,CAAA;AAAA,wBACxCH,cAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAW,IAAA,EAAE,eAAK,OAAA,EAAQ;AAAA,OAAA,EAClC;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,UAAA,GAAa,QAChB,SAAA,CAAU,MAAA,IAAU,QAAQ,MAAA,IAAU,IAAI,CAAA,CAC1C,QAAA,CAAS,WAAW,CAAA;AACvB,EAAA,MAAM,aAAA,GAAgB,OAAO,MAAA,KAAW,CAAA;AAExC,EAAA,uBACEE,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,eAAA;AAAA,MACV,SAAA,EAAWD,oBAAA;AAAA,QACT,yDAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,CAAC,WAAA,oBACAC,eAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,uBAAA;AAAA,YACV,SAAA,EAAWD,oBAAA;AAAA,cACT,0DAAA;AAAA,cACA,UAAA,EAAY;AAAA,aACd;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAD,cAAA,CAAC,IAAA,EAAA,EAAG,WAAA,EAAU,QAAA,EAAS,SAAA,EAAU,yBAC9B,QAAA,EAAA,UAAA,EACH,CAAA;AAAA,8BACAE,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EACb,QAAA,EAAA;AAAA,gCAAAF,cAAA;AAAA,kBAACI,wBAAA;AAAA,kBAAA;AAAA,oBACC,OAAA,EAAQ,OAAA;AAAA,oBACR,IAAA,EAAK,IAAA;AAAA,oBACL,cAAY,IAAA,CAAK,aAAA;AAAA,oBACjB,OAAA,EAAS,MAAM,SAAA,CAAU,OAAA,CAAQ,MAAM,EAAE,MAAA,EAAQ,CAAA,EAAG,CAAC,CAAA;AAAA,oBAErD,QAAA,kBAAAJ,cAAA,CAACK,6BAAA,EAAA,EAAgB,SAAA,EAAU,uBAAA,EAAwB,eAAW,IAAA,EAAC;AAAA;AAAA,iBACjE;AAAA,gCACAL,cAAA;AAAA,kBAACI,wBAAA;AAAA,kBAAA;AAAA,oBACC,OAAA,EAAQ,OAAA;AAAA,oBACR,IAAA,EAAK,IAAA;AAAA,oBACL,SAAS,MAAM,SAAA,CAAU,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAC,CAAA;AAAA,oBAE9C,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,iBACR;AAAA,gCACAJ,cAAA;AAAA,kBAACI,wBAAA;AAAA,kBAAA;AAAA,oBACC,OAAA,EAAQ,OAAA;AAAA,oBACR,IAAA,EAAK,IAAA;AAAA,oBACL,cAAY,IAAA,CAAK,SAAA;AAAA,oBACjB,OAAA,EAAS,MAAM,SAAA,CAAU,OAAA,CAAQ,KAAK,EAAE,MAAA,EAAQ,CAAA,EAAG,CAAC,CAAA;AAAA,oBAEpD,QAAA,kBAAAJ,cAAA,CAACM,8BAAA,EAAA,EAAiB,SAAA,EAAU,uBAAA,EAAwB,eAAW,IAAA,EAAC;AAAA;AAAA;AAClE,eAAA,EACF;AAAA;AAAA;AAAA,SACF;AAAA,QAGD,iBAAiB,UAAA,GAChB,UAAA;AAAA;AAAA;AAAA;AAAA,0BAKAJ,eAAA,CAAC,KAAA,EAAA,EAAI,IAAA,EAAK,OAAA,EAAQ,cAAY,UAAA,EAC5B,QAAA,EAAA;AAAA,4BAAAF,cAAA,CAAC,KAAA,EAAA,EAAI,IAAA,EAAK,UAAA,EACR,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,IAAA,EAAK,KAAA,EAAM,SAAA,EAAU,yCAAA,EACvB,QAAA,EAAA,YAAA,CAAa,GAAA,CAAI,CAAC,IAAA,qBACjBA,cAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBAEC,IAAA,EAAK,cAAA;AAAA,gBACL,WAAA,EAAU,uBAAA;AAAA,gBACV,SAAA,EAAWC,oBAAA;AAAA,kBACT,2FAAA;AAAA,kBACA,UAAA,EAAY;AAAA,iBACd;AAAA,gBAEC,QAAA,EAAA;AAAA,eAAA;AAAA,cARI;AAAA,aAUR,GACH,CAAA,EACF,CAAA;AAAA,2CACC,KAAA,EAAA,EAAI,IAAA,EAAK,YACP,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,qBACVD,cAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBAEC,IAAA,EAAK,KAAA;AAAA,gBACL,SAAA,EAAU,kBAAA;AAAA,gBAET,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,GAAA,KAAQ;AACjB,kBAAA,MAAM,GAAA,GAAM,GAAA,CAAI,SAAA,EAAU,IAAK,EAAA;AAC/B,kBAAA,MAAM,OAAA,GAAU,KAAA,CAAM,GAAA,CAAI,GAAG,KAAK,EAAC;AACnC,kBAAA,MAAM,OAAA,GAAU,GAAA,CAAI,KAAA,KAAU,OAAA,CAAQ,KAAA;AACtC,kBAAA,MAAM,OAAA,GAAU,GAAA,CAAI,OAAA,CAAQ,KAAA,EAAO,KAAK,CAAA;AACxC,kBAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,SAAS,CAAA;AAC1C,kBAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,MAAA,GAAS,OAAA,CAAQ,MAAA;AAC1C,kBAAA,uBACEE,eAAA;AAAA,oBAAC,KAAA;AAAA,oBAAA;AAAA,sBAEC,IAAA,EAAK,MAAA;AAAA,sBACL,WAAA,EAAU,mBAAA;AAAA,sBACV,gBAAc,OAAA,IAAW,MAAA;AAAA,sBACzB,cAAY,OAAA,IAAW,MAAA;AAAA,sBACvB,SAAA,EAAWD,oBAAA;AAAA,wBACT,8DAAA;AAAA,wBACA,OAAA,IAAWA,oBAAA,CAAG,aAAA,EAAe,UAAA,EAAY,UAAU,CAAA;AAAA,wBACnD,WAAW,UAAA,EAAY,KAAA;AAAA,wBACvB,UAAA,EAAY;AAAA,uBACd;AAAA,sBAEA,QAAA,EAAA;AAAA,wCAAAC,eAAA;AAAA,0BAAC,KAAA;AAAA,0BAAA;AAAA,4BACC,SAAA,EAAWD,oBAAA;AAAA,8BACT,iFAAA;AAAA,8BACA,UAAU,uBAAA,GAA0B,iBAAA;AAAA;AAAA;AAAA,8BAGpC,OAAA,IAAW;AAAA,6BACb;AAAA,4BAEA,QAAA,EAAA;AAAA,8CAAAD,cAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAU,GAAA,EAAM,QAAA,EAAA,GAAA,CAAI,GAAA,EAAI,CAAA;AAAA,8BAC7B,2BACCA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAW,eAAK,KAAA,EAAM;AAAA;AAAA;AAAA,yBAE1C;AAAA,wCACAE,eAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,aAAA,EACX,QAAA,EAAA;AAAA,0BAAA,OAAA,CAAQ,IAAI,CAAC,EAAE,IAAI,IAAA,EAAM,KAAA,EAAO,KAAI,KAAM;AACzC,4BAAA,MAAM,MAAA,GACJ,SAAA,CAAU,SAAA,GAAY,IAAI,CAAA,IAAK,SAAA;AACjC,4BAAA,MAAM,WAAW,EAAA,KAAO,UAAA;AACxB,4BAAA,MAAM,IAAA,GAAO,aAAa,IAAA,EAAM;AAAA,8BAC9B,IAAA,EAAM;AAAA,6BACP,qBACCF,cAAA,CAAC,MAAA,EAAA,EAAK,WAAU,gBAAA,EACb,QAAA,EAAA,SAAA,CAAU,QAAA,CAAS,IAAI,CAAA,EAC1B,CAAA;AAEF,4BAAA,MAAM,OAAA,GAAUC,oBAAA;AAAA,8BACd,qEAAA;AAAA,8BACAM,+BAAA,CAAc,MAAM,CAAA,CAAE,IAAA;AAAA,8BACtB,yEAAA;AAAA,8BACA,UAAA,EAAY,KAAA;AAAA,8BACZ,QAAA,IACEN,oBAAA;AAAA,gCACE,QAAA;AAAA,gCACAM,+BAAA,CAAc,MAAM,CAAA,CAAE,MAAA;AAAA,gCACtB,UAAA,EAAY;AAAA;AACd,6BACJ;AAGA,4BAAA,MAAM,YAAY,KAAA,CAAM,OAAA,CAAQ,KAAK,KAAK,CAAA,GACtC,SACA,CAAA,EAAG,SAAA,CAAU,SAAS,IAAI,CAAC,KAAK,KAAA,CAAM,SAAA,EAAW,CAAA,IAAA,EAAO,GAAA,CAAI,WAAW,CAAA,CAAA;AAC3E,4BAAA,MAAM,IAAA,GAAO,OAAA,GAAU,EAAA,EAAI,IAAI,CAAA;AAC/B,4BAAA,uBACEP,cAAA,CAAC,QACE,QAAA,EAAA,IAAA,mBACCA,cAAA;AAAA,8BAAC,GAAA;AAAA,8BAAA;AAAA,gCACC,IAAA;AAAA,gCACA,YAAA,EAAY,SAAA;AAAA,gCACZ,cAAA,EAAc,WAAW,MAAA,GAAS,MAAA;AAAA,gCAClC,WAAA,EAAU,qBAAA;AAAA,gCACV,SAAA,EAAW,OAAA;AAAA,gCACX,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,kCAAA,IACE,CAAC,MAAA,IACD,KAAA,CAAM,gBAAA,IACN,KAAA,CAAM,OAAA,IACN,KAAA,CAAM,OAAA,IACN,KAAA,CAAM,QAAA,IACN,KAAA,CAAM,MAAA,KAAW,CAAA;AAEjB,oCAAA;AACF,kCAAA,KAAA,CAAM,cAAA,EAAe;AACrB,kCAAA,MAAA,CAAO,IAAI,IAAI,CAAA;AAAA,gCACjB,CAAA;AAAA,gCAEC,QAAA,EAAA;AAAA;AAAA,gCAED,MAAA,mBACFA,cAAA;AAAA,8BAAC,QAAA;AAAA,8BAAA;AAAA,gCACC,IAAA,EAAK,QAAA;AAAA,gCACL,YAAA,EAAY,SAAA;AAAA,gCACZ,cAAA,EAAc,WAAW,MAAA,GAAS,MAAA;AAAA,gCAClC,WAAA,EAAU,qBAAA;AAAA,gCACV,SAAA,EAAW,OAAA;AAAA,gCACX,OAAA,EAAS,MAAM,MAAA,CAAO,EAAA,EAAI,IAAI,CAAA;AAAA,gCAE7B,QAAA,EAAA;AAAA;AAAA,6BACH;AAAA;AAAA;AAAA,8CAIAE,eAAA;AAAA,gCAAC,MAAA;AAAA,gCAAA;AAAA,kCACC,WAAA,EAAU,qBAAA;AAAA,kCACV,SAAA,EAAW,OAAA;AAAA,kCAEV,QAAA,EAAA;AAAA,oCAAA,IAAA;AAAA,oCACA,SAAA,oBACCF,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EACb,QAAA,EAAA,CAAA,EAAA,EAAK,KAAA,CAAM,SAAA,EAAW,CAAA,IAAA,EAAO,GAAA,CAAI,SAAA,EAAW,CAAA,CAAA,EAC/C;AAAA;AAAA;AAAA;AAEJ,6BAAA,EAAA,EAhDK,EAkDT,CAAA;AAAA,0BAEJ,CAAC,CAAA;AAAA,0BACA,QAAA,GAAW,CAAA,oBACVA,cAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,oCAAA,EACX,QAAA,EAAA,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,SAAA,EAAW,MAAA,CAAO,QAAQ,CAAC,CAAA,EAChD;AAAA,yBAAA,EAEJ;AAAA;AAAA,qBAAA;AAAA,oBAnHK;AAAA,mBAoHP;AAAA,gBAEJ,CAAC;AAAA,eAAA;AAAA,cAnII,IAAA,CAAK,CAAC,CAAA,CAAE,SAAA;AAAU,aAqI1B,CAAA,EACH,CAAA;AAAA,YACC,iCACCA,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qDAAA,EACV,eAAK,KAAA,EACR;AAAA,WAAA,EAEJ;AAAA;AAAA;AAAA;AAAA,GAEJ;AAEJ","file":"chunk-URAQIF67.cjs","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { DateTime, Info } from 'luxon';\nimport { cn } from '../../utils/cn';\nimport { Spinner } from '../Spinner';\nimport { Button } from '../Button';\nimport { ChevronLeftIcon, ChevronRightIcon } from '../Icons';\nimport {\n accentClasses,\n defaultViewLabels,\n toDateTime,\n type ViewBaseProps,\n type ViewLabels,\n} from '../../views/types';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport type CalendarViewSlot =\n | 'toolbar'\n | 'weekday'\n | 'day'\n | 'outsideDay'\n | 'today'\n | 'entry'\n | 'selectedEntry'\n | 'state';\n\nexport interface CalendarLabels extends ViewLabels {\n previousMonth: string;\n nextMonth: string;\n today: string;\n /** Overflow affordance. `{count}` is substituted. */\n more: string;\n}\n\nexport const defaultCalendarLabels: CalendarLabels = {\n ...defaultViewLabels,\n empty: 'Nothing this month',\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n today: 'Today',\n more: '{count} more',\n};\n\nexport interface CalendarViewProps<T> extends ViewBaseProps<T> {\n /** Controlled month. Any date inside the month works. */\n month?: Date;\n /** Starting month when uncontrolled. Defaults to the month containing `now`. */\n defaultMonth?: Date;\n onMonthChange?: (month: Date) => void;\n /**\n * IANA zone the grid is drawn in, e.g. `America/New_York`. Defaults to the\n * runtime's. A day boundary is a business fact, so state it explicitly when\n * the collection belongs to somewhere other than the viewer.\n */\n timeZone?: string;\n /** 1 = Monday … 7 = Sunday. Defaults to Monday. */\n weekStartsOn?: number;\n /** Locale for month, weekday and day-number formatting. */\n locale?: string;\n /** Entries to show per day before collapsing into \"{count} more\". */\n maxPerDay?: number;\n labels?: Partial<CalendarLabels>;\n classNames?: Partial<Record<CalendarViewSlot, string>>;\n /** Hide the month toolbar when the host renders its own. */\n hideToolbar?: boolean;\n}\n\ninterface Placed<T> {\n id: string;\n item: T;\n start: DateTime;\n end: DateTime;\n}\n\n// =============================================================================\n// Component\n// =============================================================================\n\nexport function CalendarView<T>({\n items,\n accessors,\n loading = false,\n error = null,\n selectedId = null,\n onOpen,\n getHref,\n renderItem,\n emptyState,\n labels,\n month,\n defaultMonth,\n onMonthChange,\n timeZone,\n weekStartsOn = 1,\n locale,\n maxPerDay = 3,\n now,\n className,\n classNames,\n hideToolbar = false,\n}: CalendarViewProps<T>) {\n const text = { ...defaultCalendarLabels, ...labels };\n const zone = timeZone ?? DateTime.local().zoneName;\n const today = React.useMemo(\n () => DateTime.fromJSDate(now ?? new Date(), { zone }).startOf('day'),\n [now, zone]\n );\n\n const [internalMonth, setInternalMonth] = React.useState(() =>\n defaultMonth\n ? DateTime.fromJSDate(defaultMonth, { zone }).startOf('month')\n : today.startOf('month')\n );\n // Re-anchor from the calendar year and month rather than the instant: an\n // instant on the 1st shifted into a behind-UTC zone lands in the month before.\n const current = React.useMemo(() => {\n const source = month ? DateTime.fromJSDate(month, { zone }) : internalMonth;\n return DateTime.fromObject(\n { year: source.year, month: source.month, day: 1 },\n { zone }\n );\n }, [month, internalMonth, zone]);\n\n const goToMonth = (next: DateTime) => {\n if (!month) setInternalMonth(next);\n onMonthChange?.(next.toJSDate());\n };\n\n // Six weeks always, so the grid does not change height between months.\n const gridStart = React.useMemo(() => {\n const first = current.startOf('month');\n const offset = (first.weekday - weekStartsOn + 7) % 7;\n return first.minus({ days: offset });\n }, [current, weekStartsOn]);\n\n const days = React.useMemo(\n () => Array.from({ length: 42 }, (_, i) => gridStart.plus({ days: i })),\n [gridStart]\n );\n\n const weeks = React.useMemo(\n () => Array.from({ length: 6 }, (_, i) => days.slice(i * 7, i * 7 + 7)),\n [days]\n );\n\n const placed = React.useMemo<Placed<T>[]>(() => {\n const out: Placed<T>[] = [];\n for (const item of items) {\n const start = toDateTime(accessors.getStart?.(item), zone)?.startOf(\n 'day'\n );\n if (!start) continue;\n const rawEnd = toDateTime(accessors.getEnd?.(item), zone)?.startOf('day');\n const end = rawEnd ?? start;\n out.push({\n id: accessors.getId(item),\n item,\n start,\n // A backwards range is data, not a crash: clamp it to one day.\n end: end < start ? start : end,\n });\n }\n return out;\n }, [items, accessors, zone]);\n\n const byDay = React.useMemo(() => {\n const map = new Map<string, Placed<T>[]>();\n for (const day of days) {\n const key = day.toISODate() ?? '';\n map.set(\n key,\n placed.filter((p) => p.start <= day && day <= p.end)\n );\n }\n return map;\n }, [days, placed]);\n\n const weekdayNames = React.useMemo(() => {\n const names = Info.weekdays('short', { locale });\n return Array.from(\n { length: 7 },\n (_, i) => names[(weekStartsOn - 1 + i) % 7]\n );\n }, [locale, weekStartsOn]);\n\n const state = (content: React.ReactNode) => (\n <div\n data-slot=\"calendar-view-state\"\n className={cn(\n 'border-border bg-card text-muted-foreground flex flex-col items-center justify-center gap-2 rounded-lg border px-4 py-10 text-center text-sm',\n classNames?.state\n )}\n >\n {content}\n </div>\n );\n\n if (error) {\n return state(\n <p role=\"alert\" className=\"text-destructive\">\n {text.error}\n </p>\n );\n }\n if (loading) {\n return state(\n <span className=\"flex items-center gap-2\">\n <Spinner size=\"sm\" label={text.loading} />\n <span aria-hidden>{text.loading}</span>\n </span>\n );\n }\n\n const monthLabel = current\n .setLocale(locale ?? current.locale ?? 'en')\n .toFormat('LLLL yyyy');\n const nothingPlaced = placed.length === 0;\n\n return (\n <div\n data-slot=\"calendar-view\"\n className={cn(\n 'border-border bg-card overflow-hidden rounded-lg border',\n className\n )}\n >\n {!hideToolbar && (\n <div\n data-slot=\"calendar-view-toolbar\"\n className={cn(\n 'border-border flex items-center gap-2 border-b px-3 py-2',\n classNames?.toolbar\n )}\n >\n <h3 aria-live=\"polite\" className=\"text-sm font-semibold\">\n {monthLabel}\n </h3>\n <div className=\"ms-auto flex items-center gap-1\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n aria-label={text.previousMonth}\n onClick={() => goToMonth(current.minus({ months: 1 }))}\n >\n <ChevronLeftIcon className=\"size-4 rtl:rotate-180\" aria-hidden />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => goToMonth(today.startOf('month'))}\n >\n {text.today}\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n aria-label={text.nextMonth}\n onClick={() => goToMonth(current.plus({ months: 1 }))}\n >\n <ChevronRightIcon className=\"size-4 rtl:rotate-180\" aria-hidden />\n </Button>\n </div>\n </div>\n )}\n\n {nothingPlaced && emptyState ? (\n emptyState\n ) : (\n // `table`, not `grid`: a grid promises arrow-key navigation between\n // cells, which this does not implement. Rows are explicit because a\n // columnheader or cell outside one is invalid ARIA, not just untidy.\n <div role=\"table\" aria-label={monthLabel}>\n <div role=\"rowgroup\">\n <div role=\"row\" className=\"border-border grid grid-cols-7 border-b\">\n {weekdayNames.map((name) => (\n <div\n key={name}\n role=\"columnheader\"\n data-slot=\"calendar-view-weekday\"\n className={cn(\n 'text-muted-foreground px-2 py-1.5 text-center text-xs font-medium tracking-wide uppercase',\n classNames?.weekday\n )}\n >\n {name}\n </div>\n ))}\n </div>\n </div>\n <div role=\"rowgroup\">\n {weeks.map((week) => (\n <div\n key={week[0].toISODate()}\n role=\"row\"\n className=\"grid grid-cols-7\"\n >\n {week.map((day) => {\n const key = day.toISODate() ?? '';\n const entries = byDay.get(key) ?? [];\n const outside = day.month !== current.month;\n const isToday = day.hasSame(today, 'day');\n const visible = entries.slice(0, maxPerDay);\n const overflow = entries.length - visible.length;\n return (\n <div\n key={key}\n role=\"cell\"\n data-slot=\"calendar-view-day\"\n data-outside={outside || undefined}\n data-today={isToday || undefined}\n className={cn(\n 'border-border min-h-24 border-e border-b p-1 last:border-e-0',\n outside && cn('bg-muted/30', classNames?.outsideDay),\n isToday && classNames?.today,\n classNames?.day\n )}\n >\n <div\n className={cn(\n 'mb-1 flex h-5 w-5 items-center justify-center rounded-full text-xs tabular-nums',\n outside ? 'text-muted-foreground' : 'text-foreground',\n // primary-800, not 500: white on the mid scale is\n // about 2:1 and fails AA. Same pair Button uses.\n isToday && 'bg-primary-800 font-semibold text-white'\n )}\n >\n <time dateTime={key}>{day.day}</time>\n {isToday && (\n <span className=\"sr-only\">{text.today}</span>\n )}\n </div>\n <ul className=\"space-y-0.5\">\n {visible.map(({ id, item, start, end }) => {\n const accent =\n accessors.getAccent?.(item) ?? 'primary';\n const selected = id === selectedId;\n const body = renderItem?.(item, {\n view: 'calendar',\n }) ?? (\n <span className=\"block truncate\">\n {accessors.getTitle(item)}\n </span>\n );\n const classes = cn(\n 'block w-full rounded px-1 py-0.5 text-start text-xs text-foreground',\n accentClasses[accent].tint,\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n classNames?.entry,\n selected &&\n cn(\n 'ring-1',\n accentClasses[accent].border,\n classNames?.selectedEntry\n )\n );\n // A multi-day item repeats on each day it covers; the\n // range is in the accessible name, not in the geometry.\n const spanLabel = start.hasSame(end, 'day')\n ? undefined\n : `${accessors.getTitle(item)}, ${start.toISODate()} to ${end.toISODate()}`;\n const href = getHref?.(id, item);\n return (\n <li key={id}>\n {href ? (\n <a\n href={href}\n aria-label={spanLabel}\n aria-current={selected ? 'true' : undefined}\n data-slot=\"calendar-view-entry\"\n className={classes}\n onClick={(event) => {\n if (\n !onOpen ||\n event.defaultPrevented ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.button !== 0\n )\n return;\n event.preventDefault();\n onOpen(id, item);\n }}\n >\n {body}\n </a>\n ) : onOpen ? (\n <button\n type=\"button\"\n aria-label={spanLabel}\n aria-current={selected ? 'true' : undefined}\n data-slot=\"calendar-view-entry\"\n className={classes}\n onClick={() => onOpen(id, item)}\n >\n {body}\n </button>\n ) : (\n // `aria-label` is prohibited on role `generic`,\n // so the range rides along as hidden text here.\n <span\n data-slot=\"calendar-view-entry\"\n className={classes}\n >\n {body}\n {spanLabel && (\n <span className=\"sr-only\">\n {`, ${start.toISODate()} to ${end.toISODate()}`}\n </span>\n )}\n </span>\n )}\n </li>\n );\n })}\n {overflow > 0 && (\n <li className=\"text-muted-foreground px-1 text-xs\">\n {text.more.replace('{count}', String(overflow))}\n </li>\n )}\n </ul>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n {nothingPlaced && (\n <p className=\"text-muted-foreground px-3 py-2 text-center text-sm\">\n {text.empty}\n </p>\n )}\n </div>\n )}\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/CalendarView/CalendarView.tsx"],"names":["defaultViewLabels","DateTime","React","toDateTime","Info","jsx","cn","jsxs","Spinner","Button","ChevronLeft","ChevronRight","accentClasses"],"mappings":"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","file":"chunk-GM32IDVL.cjs","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { DateTime, Info } from 'luxon';\nimport { cn } from '../../utils/cn';\nimport { Spinner } from '../Spinner';\nimport { Button } from '../Button';\nimport { ChevronLeftIcon, ChevronRightIcon } from '../Icons';\nimport {\n accentClasses,\n defaultViewLabels,\n toDateTime,\n type ViewBaseProps,\n type ViewLabels,\n} from '../../views/types';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport type CalendarViewSlot =\n | 'toolbar'\n | 'weekday'\n | 'day'\n | 'outsideDay'\n | 'today'\n | 'entry'\n | 'selectedEntry'\n | 'state';\n\nexport interface CalendarLabels extends ViewLabels {\n previousMonth: string;\n nextMonth: string;\n today: string;\n /** Overflow affordance. `{count}` is substituted. */\n more: string;\n}\n\nexport const defaultCalendarLabels: CalendarLabels = {\n ...defaultViewLabels,\n empty: 'Nothing this month',\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n today: 'Today',\n more: '{count} more',\n};\n\nexport interface CalendarViewProps<T> extends ViewBaseProps<T> {\n /** Controlled month. Any date inside the month works. */\n month?: Date;\n /** Starting month when uncontrolled. Defaults to the month containing `now`. */\n defaultMonth?: Date;\n onMonthChange?: (month: Date) => void;\n /**\n * IANA zone the grid is drawn in, e.g. `America/New_York`. Defaults to the\n * runtime's. A day boundary is a business fact, so state it explicitly when\n * the collection belongs to somewhere other than the viewer.\n */\n timeZone?: string;\n /** 1 = Monday … 7 = Sunday. Defaults to Monday. */\n weekStartsOn?: number;\n /** Locale for month, weekday and day-number formatting. */\n locale?: string;\n /** Entries to show per day before collapsing into \"{count} more\". */\n maxPerDay?: number;\n labels?: Partial<CalendarLabels>;\n classNames?: Partial<Record<CalendarViewSlot, string>>;\n /** Hide the month toolbar when the host renders its own. */\n hideToolbar?: boolean;\n}\n\ninterface Placed<T> {\n id: string;\n item: T;\n start: DateTime;\n end: DateTime;\n}\n\n// =============================================================================\n// Component\n// =============================================================================\n\nexport function CalendarView<T>({\n items,\n accessors,\n loading = false,\n error = null,\n selectedId = null,\n onOpen,\n getHref,\n renderItem,\n emptyState,\n labels,\n month,\n defaultMonth,\n onMonthChange,\n timeZone,\n weekStartsOn = 1,\n locale,\n maxPerDay = 3,\n now,\n className,\n classNames,\n hideToolbar = false,\n}: CalendarViewProps<T>) {\n const text = { ...defaultCalendarLabels, ...labels };\n const zone = timeZone ?? DateTime.local().zoneName;\n const today = React.useMemo(\n () => DateTime.fromJSDate(now ?? new Date(), { zone }).startOf('day'),\n [now, zone]\n );\n\n const [internalMonth, setInternalMonth] = React.useState(() =>\n defaultMonth\n ? DateTime.fromJSDate(defaultMonth, { zone }).startOf('month')\n : today.startOf('month')\n );\n // Re-anchor from the calendar year and month rather than the instant: an\n // instant on the 1st shifted into a behind-UTC zone lands in the month before.\n const current = React.useMemo(() => {\n const source = month ? DateTime.fromJSDate(month, { zone }) : internalMonth;\n return DateTime.fromObject(\n { year: source.year, month: source.month, day: 1 },\n { zone }\n );\n }, [month, internalMonth, zone]);\n\n const goToMonth = (next: DateTime) => {\n if (!month) setInternalMonth(next);\n onMonthChange?.(next.toJSDate());\n };\n\n // Six weeks always, so the grid does not change height between months.\n const gridStart = React.useMemo(() => {\n const first = current.startOf('month');\n const offset = (first.weekday - weekStartsOn + 7) % 7;\n return first.minus({ days: offset });\n }, [current, weekStartsOn]);\n\n const days = React.useMemo(\n () => Array.from({ length: 42 }, (_, i) => gridStart.plus({ days: i })),\n [gridStart]\n );\n\n const weeks = React.useMemo(\n () => Array.from({ length: 6 }, (_, i) => days.slice(i * 7, i * 7 + 7)),\n [days]\n );\n\n const placed = React.useMemo<Placed<T>[]>(() => {\n const out: Placed<T>[] = [];\n for (const item of items) {\n const start = toDateTime(accessors.getStart?.(item), zone)?.startOf(\n 'day'\n );\n if (!start) continue;\n const rawEnd = toDateTime(accessors.getEnd?.(item), zone)?.startOf('day');\n const end = rawEnd ?? start;\n out.push({\n id: accessors.getId(item),\n item,\n start,\n // A backwards range is data, not a crash: clamp it to one day.\n end: end < start ? start : end,\n });\n }\n return out;\n }, [items, accessors, zone]);\n\n const byDay = React.useMemo(() => {\n const map = new Map<string, Placed<T>[]>();\n for (const day of days) {\n const key = day.toISODate() ?? '';\n map.set(\n key,\n placed.filter((p) => p.start <= day && day <= p.end)\n );\n }\n return map;\n }, [days, placed]);\n\n const weekdayNames = React.useMemo(() => {\n const names = Info.weekdays('short', { locale });\n return Array.from(\n { length: 7 },\n (_, i) => names[(weekStartsOn - 1 + i) % 7]\n );\n }, [locale, weekStartsOn]);\n\n const state = (content: React.ReactNode) => (\n <div\n data-slot=\"calendar-view-state\"\n className={cn(\n 'border-border bg-card text-muted-foreground flex flex-col items-center justify-center gap-2 rounded-lg border px-4 py-10 text-center text-sm',\n classNames?.state\n )}\n >\n {content}\n </div>\n );\n\n if (error) {\n return state(\n <p role=\"alert\" className=\"text-destructive\">\n {text.error}\n </p>\n );\n }\n if (loading) {\n return state(\n <span className=\"flex items-center gap-2\">\n <Spinner size=\"sm\" label={text.loading} />\n <span aria-hidden>{text.loading}</span>\n </span>\n );\n }\n\n const monthLabel = current\n .setLocale(locale ?? current.locale ?? 'en')\n .toFormat('LLLL yyyy');\n const nothingPlaced = placed.length === 0;\n\n return (\n <div\n data-slot=\"calendar-view\"\n className={cn(\n 'border-border bg-card overflow-hidden rounded-lg border',\n className\n )}\n >\n {!hideToolbar && (\n <div\n data-slot=\"calendar-view-toolbar\"\n className={cn(\n 'border-border flex items-center gap-2 border-b px-3 py-2',\n classNames?.toolbar\n )}\n >\n <h3 aria-live=\"polite\" className=\"text-sm font-semibold\">\n {monthLabel}\n </h3>\n <div className=\"ms-auto flex items-center gap-1\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n aria-label={text.previousMonth}\n onClick={() => goToMonth(current.minus({ months: 1 }))}\n >\n <ChevronLeftIcon className=\"size-4 rtl:rotate-180\" aria-hidden />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => goToMonth(today.startOf('month'))}\n >\n {text.today}\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n aria-label={text.nextMonth}\n onClick={() => goToMonth(current.plus({ months: 1 }))}\n >\n <ChevronRightIcon className=\"size-4 rtl:rotate-180\" aria-hidden />\n </Button>\n </div>\n </div>\n )}\n\n {nothingPlaced && emptyState ? (\n emptyState\n ) : (\n // `table`, not `grid`: a grid promises arrow-key navigation between\n // cells, which this does not implement. Rows are explicit because a\n // columnheader or cell outside one is invalid ARIA, not just untidy.\n <div role=\"table\" aria-label={monthLabel}>\n <div role=\"rowgroup\">\n <div role=\"row\" className=\"border-border grid grid-cols-7 border-b\">\n {weekdayNames.map((name) => (\n <div\n key={name}\n role=\"columnheader\"\n data-slot=\"calendar-view-weekday\"\n className={cn(\n 'text-muted-foreground px-2 py-1.5 text-center text-xs font-medium tracking-wide uppercase',\n classNames?.weekday\n )}\n >\n {name}\n </div>\n ))}\n </div>\n </div>\n <div role=\"rowgroup\">\n {weeks.map((week) => (\n <div\n key={week[0].toISODate()}\n role=\"row\"\n className=\"grid grid-cols-7\"\n >\n {week.map((day) => {\n const key = day.toISODate() ?? '';\n const entries = byDay.get(key) ?? [];\n const outside = day.month !== current.month;\n const isToday = day.hasSame(today, 'day');\n const visible = entries.slice(0, maxPerDay);\n const overflow = entries.length - visible.length;\n return (\n <div\n key={key}\n role=\"cell\"\n data-slot=\"calendar-view-day\"\n data-outside={outside || undefined}\n data-today={isToday || undefined}\n className={cn(\n 'border-border min-h-24 border-e border-b p-1 last:border-e-0',\n outside && cn('bg-muted/30', classNames?.outsideDay),\n isToday && classNames?.today,\n classNames?.day\n )}\n >\n <div\n className={cn(\n 'mb-1 flex h-5 w-5 items-center justify-center rounded-full text-xs tabular-nums',\n outside ? 'text-muted-foreground' : 'text-foreground',\n // primary-800, not 500: white on the mid scale is\n // about 2:1 and fails AA. Same pair Button uses.\n isToday && 'bg-primary-800 font-semibold text-white'\n )}\n >\n <time dateTime={key}>{day.day}</time>\n {isToday && (\n <span className=\"sr-only\">{text.today}</span>\n )}\n </div>\n <ul className=\"space-y-0.5\">\n {visible.map(({ id, item, start, end }) => {\n const accent =\n accessors.getAccent?.(item) ?? 'primary';\n const selected = id === selectedId;\n const body = renderItem?.(item, {\n view: 'calendar',\n }) ?? (\n <span className=\"block truncate\">\n {accessors.getTitle(item)}\n </span>\n );\n const classes = cn(\n 'block w-full rounded px-1 py-0.5 text-start text-xs text-foreground',\n accentClasses[accent].tint,\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n classNames?.entry,\n selected &&\n cn(\n 'ring-1',\n accentClasses[accent].border,\n classNames?.selectedEntry\n )\n );\n // A multi-day item repeats on each day it covers; the\n // range is in the accessible name, not in the geometry.\n const spanLabel = start.hasSame(end, 'day')\n ? undefined\n : `${accessors.getTitle(item)}, ${start.toISODate()} to ${end.toISODate()}`;\n const href = getHref?.(id, item);\n return (\n <li key={id}>\n {href ? (\n <a\n href={href}\n aria-label={spanLabel}\n aria-current={selected ? 'true' : undefined}\n data-slot=\"calendar-view-entry\"\n className={classes}\n onClick={(event) => {\n if (\n !onOpen ||\n event.defaultPrevented ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.button !== 0\n )\n return;\n event.preventDefault();\n onOpen(id, item);\n }}\n >\n {body}\n </a>\n ) : onOpen ? (\n <button\n type=\"button\"\n aria-label={spanLabel}\n aria-current={selected ? 'true' : undefined}\n data-slot=\"calendar-view-entry\"\n className={classes}\n onClick={() => onOpen(id, item)}\n >\n {body}\n </button>\n ) : (\n // `aria-label` is prohibited on role `generic`,\n // so the range rides along as hidden text here.\n <span\n data-slot=\"calendar-view-entry\"\n className={classes}\n >\n {body}\n {spanLabel && (\n <span className=\"sr-only\">\n {`, ${start.toISODate()} to ${end.toISODate()}`}\n </span>\n )}\n </span>\n )}\n </li>\n );\n })}\n {overflow > 0 && (\n <li className=\"text-muted-foreground px-1 text-xs\">\n {text.more.replace('{count}', String(overflow))}\n </li>\n )}\n </ul>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n {nothingPlaced && (\n <p className=\"text-muted-foreground px-3 py-2 text-center text-sm\">\n {text.empty}\n </p>\n )}\n </div>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { cva } from 'class-variance-authority';
|
|
2
|
+
|
|
3
|
+
// src/components/Button/button-variants.ts
|
|
4
|
+
var buttonVariants = cva(
|
|
5
|
+
// Base styles
|
|
6
|
+
[
|
|
7
|
+
"inline-flex items-center justify-center gap-2",
|
|
8
|
+
"min-w-0 whitespace-nowrap",
|
|
9
|
+
"font-semibold transition-all duration-200",
|
|
10
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
11
|
+
"disabled:pointer-events-none disabled:opacity-50",
|
|
12
|
+
"active:scale-[0.98]"
|
|
13
|
+
],
|
|
14
|
+
{
|
|
15
|
+
variants: {
|
|
16
|
+
variant: {
|
|
17
|
+
primary: [
|
|
18
|
+
"bg-primary-800 text-white",
|
|
19
|
+
"hover:bg-primary-900",
|
|
20
|
+
"active:bg-primary-950"
|
|
21
|
+
],
|
|
22
|
+
secondary: [
|
|
23
|
+
"bg-neutral-200 text-neutral-900",
|
|
24
|
+
"hover:bg-neutral-300",
|
|
25
|
+
"active:bg-neutral-400",
|
|
26
|
+
"dark:bg-neutral-700 dark:text-neutral-100",
|
|
27
|
+
"dark:hover:bg-neutral-600",
|
|
28
|
+
"dark:active:bg-neutral-500"
|
|
29
|
+
],
|
|
30
|
+
ghost: [
|
|
31
|
+
"bg-transparent text-neutral-600",
|
|
32
|
+
"hover:bg-neutral-100",
|
|
33
|
+
"active:bg-neutral-200",
|
|
34
|
+
"dark:text-neutral-400",
|
|
35
|
+
"dark:hover:bg-neutral-800",
|
|
36
|
+
"dark:active:bg-neutral-700"
|
|
37
|
+
],
|
|
38
|
+
outline: [
|
|
39
|
+
"border-2 border-primary-800 text-primary-800 bg-transparent",
|
|
40
|
+
"hover:bg-primary-50 hover:text-primary-900",
|
|
41
|
+
"active:bg-primary-100",
|
|
42
|
+
"dark:border-primary-400 dark:text-primary-400",
|
|
43
|
+
// Lighten the label as the hover/active fill darkens: primary-400
|
|
44
|
+
// on primary-950 is only ~3.3:1 in the BlueHive palette (WCAG AA
|
|
45
|
+
// needs 4.5:1); primary-200/950 and primary-100/900 clear it in
|
|
46
|
+
// every brand palette. See issue #511.
|
|
47
|
+
"dark:hover:bg-primary-950 dark:hover:text-primary-200",
|
|
48
|
+
"dark:active:bg-primary-900 dark:active:text-primary-100"
|
|
49
|
+
],
|
|
50
|
+
danger: [
|
|
51
|
+
"bg-red-600 text-white",
|
|
52
|
+
"hover:bg-red-700",
|
|
53
|
+
"active:bg-red-800"
|
|
54
|
+
],
|
|
55
|
+
link: [
|
|
56
|
+
"text-primary-800 underline-offset-4",
|
|
57
|
+
"hover:underline hover:text-primary-900",
|
|
58
|
+
"active:text-primary-950",
|
|
59
|
+
"dark:text-primary-400"
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
size: {
|
|
63
|
+
sm: "h-8 px-3 text-sm rounded-md",
|
|
64
|
+
md: "h-10 px-4 text-base rounded-lg",
|
|
65
|
+
lg: "h-12 px-6 text-lg rounded-xl",
|
|
66
|
+
icon: "h-10 w-10 rounded-lg"
|
|
67
|
+
},
|
|
68
|
+
fullWidth: {
|
|
69
|
+
true: "w-full",
|
|
70
|
+
false: ""
|
|
71
|
+
},
|
|
72
|
+
/** Opt-in hover motion (see src/styles/effects.css). */
|
|
73
|
+
effect: {
|
|
74
|
+
none: "",
|
|
75
|
+
sheen: "mie-fx-sheen hover:-translate-y-0.5",
|
|
76
|
+
orbit: "mie-fx-orbit hover:-translate-y-0.5"
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
defaultVariants: {
|
|
80
|
+
variant: "primary",
|
|
81
|
+
size: "md",
|
|
82
|
+
fullWidth: false,
|
|
83
|
+
effect: "none"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
export { buttonVariants };
|
|
89
|
+
//# sourceMappingURL=chunk-GVM6DTR5.js.map
|
|
90
|
+
//# sourceMappingURL=chunk-GVM6DTR5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Button/button-variants.ts"],"names":[],"mappings":";;;AAIO,IAAM,cAAA,GAAiB,GAAA;AAAA;AAAA,EAE5B;AAAA,IACE,+CAAA;AAAA,IACA,2BAAA;AAAA,IACA,2CAAA;AAAA,IACA,qGAAA;AAAA,IACA,kDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS;AAAA,UACP,2BAAA;AAAA,UACA,sBAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,SAAA,EAAW;AAAA,UACT,iCAAA;AAAA,UACA,sBAAA;AAAA,UACA,uBAAA;AAAA,UACA,2CAAA;AAAA,UACA,2BAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,iCAAA;AAAA,UACA,sBAAA;AAAA,UACA,uBAAA;AAAA,UACA,uBAAA;AAAA,UACA,2BAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,OAAA,EAAS;AAAA,UACP,6DAAA;AAAA,UACA,4CAAA;AAAA,UACA,uBAAA;AAAA,UACA,+CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAKA,uDAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,uBAAA;AAAA,UACA,kBAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,qCAAA;AAAA,UACA,wCAAA;AAAA,UACA,yBAAA;AAAA,UACA;AAAA;AACF,OACF;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,6BAAA;AAAA,QACJ,EAAA,EAAI,gCAAA;AAAA,QACJ,EAAA,EAAI,8BAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACR;AAAA,MACA,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,QAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACT;AAAA;AAAA,MAEA,MAAA,EAAQ;AAAA,QACN,IAAA,EAAM,EAAA;AAAA,QACN,KAAA,EAAO,qCAAA;AAAA,QACP,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM,IAAA;AAAA,MACN,SAAA,EAAW,KAAA;AAAA,MACX,MAAA,EAAQ;AAAA;AACV;AAEJ","file":"chunk-GVM6DTR5.js","sourcesContent":["import { cva } from 'class-variance-authority';\n\n// Kept apart from Button.tsx so hook-free consumers (the Templates tier) can\n// style anchors without importing the Button component module.\nexport const buttonVariants = cva(\n // Base styles\n [\n 'inline-flex items-center justify-center gap-2',\n 'min-w-0 whitespace-nowrap',\n 'font-semibold transition-all duration-200',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:pointer-events-none disabled:opacity-50',\n 'active:scale-[0.98]',\n ],\n {\n variants: {\n variant: {\n primary: [\n 'bg-primary-800 text-white',\n 'hover:bg-primary-900',\n 'active:bg-primary-950',\n ],\n secondary: [\n 'bg-neutral-200 text-neutral-900',\n 'hover:bg-neutral-300',\n 'active:bg-neutral-400',\n 'dark:bg-neutral-700 dark:text-neutral-100',\n 'dark:hover:bg-neutral-600',\n 'dark:active:bg-neutral-500',\n ],\n ghost: [\n 'bg-transparent text-neutral-600',\n 'hover:bg-neutral-100',\n 'active:bg-neutral-200',\n 'dark:text-neutral-400',\n 'dark:hover:bg-neutral-800',\n 'dark:active:bg-neutral-700',\n ],\n outline: [\n 'border-2 border-primary-800 text-primary-800 bg-transparent',\n 'hover:bg-primary-50 hover:text-primary-900',\n 'active:bg-primary-100',\n 'dark:border-primary-400 dark:text-primary-400',\n // Lighten the label as the hover/active fill darkens: primary-400\n // on primary-950 is only ~3.3:1 in the BlueHive palette (WCAG AA\n // needs 4.5:1); primary-200/950 and primary-100/900 clear it in\n // every brand palette. See issue #511.\n 'dark:hover:bg-primary-950 dark:hover:text-primary-200',\n 'dark:active:bg-primary-900 dark:active:text-primary-100',\n ],\n danger: [\n 'bg-red-600 text-white',\n 'hover:bg-red-700',\n 'active:bg-red-800',\n ],\n link: [\n 'text-primary-800 underline-offset-4',\n 'hover:underline hover:text-primary-900',\n 'active:text-primary-950',\n 'dark:text-primary-400',\n ],\n },\n size: {\n sm: 'h-8 px-3 text-sm rounded-md',\n md: 'h-10 px-4 text-base rounded-lg',\n lg: 'h-12 px-6 text-lg rounded-xl',\n icon: 'h-10 w-10 rounded-lg',\n },\n fullWidth: {\n true: 'w-full',\n false: '',\n },\n /** Opt-in hover motion (see src/styles/effects.css). */\n effect: {\n none: '',\n sheen: 'mie-fx-sheen hover:-translate-y-0.5',\n orbit: 'mie-fx-orbit hover:-translate-y-0.5',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n fullWidth: false,\n effect: 'none',\n },\n }\n);\n"]}
|
|
@@ -15,6 +15,7 @@ function useMediaTransport(options = {}) {
|
|
|
15
15
|
} = options;
|
|
16
16
|
const [element, setElementState] = useState(null);
|
|
17
17
|
const [state, setStateRaw] = useState("idle");
|
|
18
|
+
const stateRef = useRef("idle");
|
|
18
19
|
const [currentTimeMs, setCurrentTimeMs] = useState(0);
|
|
19
20
|
const [durationMs, setDurationMs] = useState(0);
|
|
20
21
|
const [playbackRate, setPlaybackRateState] = useState(initialRate);
|
|
@@ -38,11 +39,10 @@ function useMediaTransport(options = {}) {
|
|
|
38
39
|
errorLabel
|
|
39
40
|
};
|
|
40
41
|
const setState = useCallback((next) => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
});
|
|
42
|
+
if (stateRef.current === next) return;
|
|
43
|
+
stateRef.current = next;
|
|
44
|
+
setStateRaw(next);
|
|
45
|
+
handlers.current.onStateChange?.(next);
|
|
46
46
|
}, []);
|
|
47
47
|
const setMediaElement = useCallback((el) => {
|
|
48
48
|
elementRef.current = el;
|
|
@@ -160,5 +160,5 @@ function useMediaTransport(options = {}) {
|
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
export { useMediaTransport };
|
|
163
|
-
//# sourceMappingURL=chunk-
|
|
164
|
-
//# sourceMappingURL=chunk-
|
|
163
|
+
//# sourceMappingURL=chunk-GW4RFJZ5.js.map
|
|
164
|
+
//# sourceMappingURL=chunk-GW4RFJZ5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/useMediaTransport.ts"],"names":[],"mappings":"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","file":"chunk-GW4RFJZ5.js","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport type MediaTransportState =\n | 'idle'\n | 'loading'\n | 'playing'\n | 'paused'\n | 'error';\n\nexport interface UseMediaTransportOptions {\n /** Fired on every native `timeupdate` and on metadata load, in milliseconds. */\n onTimeUpdate?: (currentTimeMs: number, durationMs: number) => void;\n /** Fired whenever the derived transport state changes. */\n onStateChange?: (state: MediaTransportState) => void;\n /** Fired when playback reaches the end. */\n onEnded?: () => void;\n /** Fired on a media error, with a descriptive Error. */\n onError?: (error: Error) => void;\n /** Initial playback rate (default `1`). Kept in sync with the element. */\n initialRate?: number;\n /** Transport state to enter when playback ends (default `'paused'`). */\n endedState?: Extract<MediaTransportState, 'idle' | 'paused'>;\n /** Reset the position to `0` when playback ends (default `false`). */\n resetTimeOnEnd?: boolean;\n /** Human-readable label used in the error message (default `'media'`). */\n errorLabel?: string;\n}\n\nexport interface UseMediaTransportReturn {\n /**\n * Callback ref for the `<audio>`/`<video>` element to control. Pass this to\n * the element's `ref` (or call it imperatively). Transport listeners attach\n * when an element mounts and detach when it unmounts.\n */\n setMediaElement: (element: HTMLMediaElement | null) => void;\n /** The currently attached media element, or `null`. */\n mediaElement: HTMLMediaElement | null;\n\n /** Derived transport state. */\n state: MediaTransportState;\n /** Current playback position in milliseconds. */\n currentTimeMs: number;\n /** Media duration in milliseconds (`0` until known / non-finite). */\n durationMs: number;\n /** Current playback rate. */\n playbackRate: number;\n /** `true` while `state === 'playing'`. */\n isPlaying: boolean;\n /** `true` while `state === 'loading'`. */\n isLoading: boolean;\n\n /** Start playback. */\n play: () => void;\n /** Pause playback. */\n pause: () => void;\n /** Toggle between play and pause. */\n togglePlay: () => void;\n /** Seek to a position in milliseconds. */\n seekToMs: (timeMs: number) => void;\n /** Set the playback rate multiplier. */\n setPlaybackRate: (rate: number) => void;\n /** Read the current position in milliseconds. */\n getCurrentTimeMs: () => number;\n /** Read the duration in milliseconds (`0` when unknown). */\n getDurationMs: () => number;\n /** Whether playback is currently paused (reads the element directly). */\n isPaused: () => boolean;\n}\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\nconst toMs = (seconds: number): number =>\n Number.isFinite(seconds) ? seconds * 1000 : 0;\n\n// =============================================================================\n// Hook\n// =============================================================================\n\n/**\n * Headless playback transport for a native `HTMLMediaElement`.\n *\n * Owns the derived transport state (idle/loading/playing/paused/error),\n * position, duration and playback rate, and exposes imperative controls — all\n * in **milliseconds**. It never creates or renders an element: pass the\n * returned {@link UseMediaTransportReturn.setMediaElement} callback to an\n * `<audio>`/`<video>` `ref` and the hook wires the native listeners.\n *\n * Shared by `MediaPlayer` (ms API) and, at the boundary, `AudioPlayer`\n * (seconds API — convert with `ms / 1000`). The WaveSurfer waveform variant is\n * out of scope; this hook targets native media transport only.\n *\n * @example\n * ```tsx\n * function Player({ src }: { src: string }) {\n * const t = useMediaTransport({ onEnded: () => console.log('done') });\n * return (\n * <div>\n * <video ref={t.setMediaElement} src={src} controls />\n * <button onClick={t.togglePlay}>{t.isPlaying ? 'Pause' : 'Play'}</button>\n * </div>\n * );\n * }\n * ```\n */\nexport function useMediaTransport(\n options: UseMediaTransportOptions = {}\n): UseMediaTransportReturn {\n const {\n onTimeUpdate,\n onStateChange,\n onEnded,\n onError,\n initialRate = 1,\n endedState = 'paused',\n resetTimeOnEnd = false,\n errorLabel = 'media',\n } = options;\n\n const [element, setElementState] = useState<HTMLMediaElement | null>(null);\n const [state, setStateRaw] = useState<MediaTransportState>('idle');\n const stateRef = useRef<MediaTransportState>('idle');\n const [currentTimeMs, setCurrentTimeMs] = useState(0);\n const [durationMs, setDurationMs] = useState(0);\n const [playbackRate, setPlaybackRateState] = useState(initialRate);\n\n const elementRef = useRef<HTMLMediaElement | null>(null);\n\n // Keep the latest callbacks/options in a ref so the listener effect does not\n // re-subscribe on every render when callers pass inline functions.\n const handlers = useRef({\n onTimeUpdate,\n onStateChange,\n onEnded,\n onError,\n endedState,\n resetTimeOnEnd,\n errorLabel,\n });\n handlers.current = {\n onTimeUpdate,\n onStateChange,\n onEnded,\n onError,\n endedState,\n resetTimeOnEnd,\n errorLabel,\n };\n\n const setState = useCallback((next: MediaTransportState) => {\n if (stateRef.current === next) return;\n stateRef.current = next;\n setStateRaw(next);\n // Consumers often update parent state here. Keep that notification outside\n // React's state updater, which may run during render or twice in StrictMode.\n handlers.current.onStateChange?.(next);\n }, []);\n\n const setMediaElement = useCallback((el: HTMLMediaElement | null) => {\n elementRef.current = el;\n setElementState(el);\n }, []);\n\n // Attach native transport listeners whenever an element mounts.\n useEffect(() => {\n if (!element) return;\n\n const emitTime = () => {\n const ms = toMs(element.currentTime);\n const dur = toMs(element.duration);\n setCurrentTimeMs(ms);\n handlers.current.onTimeUpdate?.(ms, dur);\n };\n\n const onLoadStart = () => setState('loading');\n const onCanPlay = () => setState('idle');\n const onLoadedMetadata = () => {\n setDurationMs(toMs(element.duration));\n emitTime();\n };\n const onTimeUpdateEvt = () => emitTime();\n const onPlay = () => setState('playing');\n const onPlaying = () => setState('playing');\n const onPause = () => setState('paused');\n const onEndedEvt = () => {\n setState(handlers.current.endedState);\n if (handlers.current.resetTimeOnEnd) {\n element.currentTime = 0;\n setCurrentTimeMs(0);\n }\n handlers.current.onEnded?.();\n };\n const onErrorEvt = () => {\n setState('error');\n handlers.current.onError?.(\n new Error(`Failed to load ${handlers.current.errorLabel}`)\n );\n };\n\n element.addEventListener('loadstart', onLoadStart);\n element.addEventListener('canplay', onCanPlay);\n element.addEventListener('loadedmetadata', onLoadedMetadata);\n element.addEventListener('timeupdate', onTimeUpdateEvt);\n element.addEventListener('play', onPlay);\n element.addEventListener('playing', onPlaying);\n element.addEventListener('pause', onPause);\n element.addEventListener('ended', onEndedEvt);\n element.addEventListener('error', onErrorEvt);\n\n // Sync duration if metadata is already available on attach.\n if (Number.isFinite(element.duration)) {\n setDurationMs(toMs(element.duration));\n }\n\n return () => {\n element.removeEventListener('loadstart', onLoadStart);\n element.removeEventListener('canplay', onCanPlay);\n element.removeEventListener('loadedmetadata', onLoadedMetadata);\n element.removeEventListener('timeupdate', onTimeUpdateEvt);\n element.removeEventListener('play', onPlay);\n element.removeEventListener('playing', onPlaying);\n element.removeEventListener('pause', onPause);\n element.removeEventListener('ended', onEndedEvt);\n element.removeEventListener('error', onErrorEvt);\n };\n }, [element, setState]);\n\n // Keep the element's playback rate in sync with hook state.\n useEffect(() => {\n if (element) element.playbackRate = playbackRate;\n }, [element, playbackRate]);\n\n const play = useCallback(() => {\n void elementRef.current?.play();\n }, []);\n\n const pause = useCallback(() => {\n elementRef.current?.pause();\n }, []);\n\n const togglePlay = useCallback(() => {\n const el = elementRef.current;\n if (!el) return;\n if (el.paused) void el.play();\n else el.pause();\n }, []);\n\n const seekToMs = useCallback((timeMs: number) => {\n const el = elementRef.current;\n if (el) {\n el.currentTime = timeMs / 1000;\n setCurrentTimeMs(timeMs);\n }\n }, []);\n\n const setPlaybackRate = useCallback((rate: number) => {\n setPlaybackRateState(rate);\n if (elementRef.current) elementRef.current.playbackRate = rate;\n }, []);\n\n const getCurrentTimeMs = useCallback(\n () => toMs(elementRef.current?.currentTime ?? 0),\n []\n );\n\n const getDurationMs = useCallback(\n () => toMs(elementRef.current?.duration ?? 0),\n []\n );\n\n const isPaused = useCallback(() => elementRef.current?.paused ?? true, []);\n\n return {\n setMediaElement,\n mediaElement: element,\n state,\n currentTimeMs,\n durationMs,\n playbackRate,\n isPlaying: state === 'playing',\n isLoading: state === 'loading',\n play,\n pause,\n togglePlay,\n seekToMs,\n setPlaybackRate,\n getCurrentTimeMs,\n getDurationMs,\n isPaused,\n };\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-GY5SP4ST.js"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var chunkXZNN3S3S_cjs = require('./chunk-XZNN3S3S.cjs');
|
|
3
|
+
var chunkXPWFIDZM_cjs = require('./chunk-XPWFIDZM.cjs');
|
|
5
4
|
var chunkVINZZQBD_cjs = require('./chunk-VINZZQBD.cjs');
|
|
6
|
-
var
|
|
7
|
-
var
|
|
5
|
+
var chunkPYI2IWNX_cjs = require('./chunk-PYI2IWNX.cjs');
|
|
6
|
+
var chunkGM32IDVL_cjs = require('./chunk-GM32IDVL.cjs');
|
|
7
|
+
var chunk2FZYZ4HT_cjs = require('./chunk-2FZYZ4HT.cjs');
|
|
8
8
|
var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
|
|
9
9
|
var React = require('react');
|
|
10
10
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -102,7 +102,7 @@ function ViewSet({
|
|
|
102
102
|
return table ?? null;
|
|
103
103
|
case "board":
|
|
104
104
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
105
|
-
|
|
105
|
+
chunk2FZYZ4HT_cjs.BoardView,
|
|
106
106
|
{
|
|
107
107
|
...shared,
|
|
108
108
|
stages: stages ?? [],
|
|
@@ -111,7 +111,7 @@ function ViewSet({
|
|
|
111
111
|
}
|
|
112
112
|
);
|
|
113
113
|
case "calendar":
|
|
114
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
114
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkGM32IDVL_cjs.CalendarView, { ...shared, ...calendarProps });
|
|
115
115
|
case "gantt":
|
|
116
116
|
return /* @__PURE__ */ jsxRuntime.jsx(chunkVINZZQBD_cjs.GanttView, { ...shared, ...ganttProps });
|
|
117
117
|
case "roadmap":
|
|
@@ -126,7 +126,7 @@ function ViewSet({
|
|
|
126
126
|
);
|
|
127
127
|
case "list":
|
|
128
128
|
default:
|
|
129
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
129
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkPYI2IWNX_cjs.ListView, { ...shared, stages, ...listProps });
|
|
130
130
|
}
|
|
131
131
|
})();
|
|
132
132
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "view-set", className: chunkS5RVSXDV_cjs.cn("flex flex-col gap-3", className), children: [
|
|
@@ -143,7 +143,7 @@ function ViewSet({
|
|
|
143
143
|
"data-slot": "view-set-switcher",
|
|
144
144
|
className: chunkS5RVSXDV_cjs.cn("ms-auto", classNames?.switcher),
|
|
145
145
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
146
|
-
|
|
146
|
+
chunkXPWFIDZM_cjs.ViewSwitcher,
|
|
147
147
|
{
|
|
148
148
|
views: offered,
|
|
149
149
|
value: active,
|
|
@@ -184,5 +184,5 @@ function ViewSet({
|
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
exports.ViewSet = ViewSet;
|
|
187
|
-
//# sourceMappingURL=chunk-
|
|
188
|
-
//# sourceMappingURL=chunk-
|
|
187
|
+
//# sourceMappingURL=chunk-GYXSF6BJ.cjs.map
|
|
188
|
+
//# sourceMappingURL=chunk-GYXSF6BJ.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ViewSet/ViewSet.tsx"],"names":["React","jsx","BoardView","CalendarView","GanttView","ListView","jsxs","cn","ViewSwitcher"],"mappings":"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","file":"chunk-OCSCBB52.cjs","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../utils/cn';\nimport { ViewSwitcher, type ViewOption } from '../ViewSwitcher';\nimport { ListView, type ListViewProps } from '../ListView';\nimport { BoardView, type BoardLabels, type BoardViewProps } from '../BoardView';\nimport {\n CalendarView,\n type CalendarLabels,\n type CalendarViewProps,\n} from '../CalendarView';\nimport { GanttView, type GanttLabels, type GanttViewProps } from '../GanttView';\nimport type { Stage, ViewBaseProps, ViewId } from '../../views/types';\n\n// =============================================================================\n// Types\n// =============================================================================\n\n/**\n * Every string any layout in the set can render.\n *\n * Each view extends `ViewLabels` with its own — the calendar's month arrows and\n * \"+n more\", the board's move announcements, the Gantt's undated footnote. They\n * are all shared props, so the per-view escape hatches below exclude `labels`;\n * without widening here a non-English host could translate the common strings\n * and nothing else, which would break the contract that every user-facing\n * string is overridable. A view ignores the keys it does not know.\n */\nexport type ViewSetLabels = Partial<CalendarLabels & BoardLabels & GanttLabels>;\n\n/**\n * Props `ViewSet` passes to every layout itself, beyond `ViewBaseProps`. Named\n * here so the per-view escape hatches below can exclude them by key rather than\n * by a hand-kept list that would drift the moment a shared prop is added.\n */\ntype ViewSetOwned = 'stages' | 'onMove' | 'timeZone' | 'locale';\n\ntype ViewOverrides<P, T> = Omit<\n Partial<P>,\n keyof ViewBaseProps<T> | ViewSetOwned\n>;\n\nexport interface ViewSetProps<T> extends ViewBaseProps<T> {\n /** Every string any offered layout can render, not just the shared ones. */\n labels?: ViewSetLabels;\n /** Views to offer, in order. The first is the default when uncontrolled. */\n views: readonly (ViewId | ViewOption)[];\n view?: ViewId;\n defaultView?: ViewId;\n onViewChange?: (view: ViewId) => void;\n /**\n * Remembers the chosen view under this key. Ignored when `view` is\n * controlled — a page with its own URL state should own it there instead.\n */\n storageKey?: string;\n /** Stages for the board and for list grouping. */\n stages?: readonly Stage[];\n onMove?: BoardViewProps<T>['onMove'];\n /**\n * IANA zone the date views read day boundaries in. Shared, because a page\n * showing one collection as a calendar and as a Gantt must place it on the\n * same days in both.\n */\n timeZone?: string;\n /** Locale for date formatting in the calendar and Gantt. */\n locale?: string;\n\n /** Rendered above the switcher row. */\n toolbar?: React.ReactNode;\n /** Rendered under the switcher row, above the view. */\n filters?: React.ReactNode;\n /** The `overview` view. Domain content — the library has no opinion on it. */\n overview?: React.ReactNode;\n /** The `table` view. A tabular collection is a grid, not a view component. */\n table?: React.ReactNode;\n /** Rendered beside the view, for a list-plus-detail layout. */\n detail?: React.ReactNode;\n\n /**\n * Per-view escape hatches for props this shell does not surface. Shared props\n * are excluded: one collection rendered several ways means switching view can\n * never change the records, the selection or the load state.\n *\n * `ViewSetOwned` covers the props the shell passes itself but that are not on\n * `ViewBaseProps`. They are spread after the shared ones, so leaving them open\n * would let one layout carry different stages, a different mutation callback\n * or a different time zone from its neighbours — the same collection quietly\n * disagreeing with itself as you switch tabs.\n */\n listProps?: ViewOverrides<ListViewProps<T>, T>;\n boardProps?: ViewOverrides<BoardViewProps<T>, T>;\n calendarProps?: ViewOverrides<CalendarViewProps<T>, T>;\n ganttProps?: ViewOverrides<GanttViewProps<T>, T>;\n\n classNames?: Partial<\n Record<'toolbar' | 'switcher' | 'body' | 'detail', string>\n >;\n}\n\nconst FIRST_ID = (views: ViewSetProps<unknown>['views']) => {\n const first = views[0];\n return (typeof first === 'string' ? first : first?.id) ?? 'list';\n};\n\n// Remembering the view is an enhancement, never a requirement. `localStorage`\n// can exist and still throw — Safari private browsing and a blocked third-party\n// storage policy both raise on access — so optional chaining is not enough; an\n// unguarded read would take the whole page down to save a preference.\nconst readStored = (key: string): ViewId | null => {\n try {\n return (globalThis.localStorage?.getItem(key) as ViewId | null) ?? null;\n } catch {\n return null;\n }\n};\n\nconst writeStored = (key: string, value: ViewId) => {\n try {\n globalThis.localStorage?.setItem(key, value);\n } catch {\n // Fall back to in-memory state for the session.\n }\n};\n\n// =============================================================================\n// Component\n// =============================================================================\n\n/**\n * The page-level composition: switcher, the enabled views, and the slots a page\n * needs around them. It owns which view is showing and nothing else — items,\n * selection and every mutation stay with the caller.\n */\nexport function ViewSet<T>({\n views,\n view,\n defaultView,\n onViewChange,\n storageKey,\n stages,\n onMove,\n toolbar,\n filters,\n overview,\n table,\n detail,\n listProps,\n boardProps,\n calendarProps,\n ganttProps,\n className,\n classNames,\n ...shared\n}: ViewSetProps<T>) {\n const [internalView, setInternalView] = React.useState<ViewId>(\n () => defaultView ?? FIRST_ID(views)\n );\n\n // `overview` and `table` are the caller's content. Offering either without\n // its slot would put a dead option in the switcher that renders a blank page.\n const offered = React.useMemo(\n () =>\n views.filter((v) => {\n const id = typeof v === 'string' ? v : v.id;\n if (id === 'overview') return overview != null;\n if (id === 'table') return table != null;\n return true;\n }),\n [views, overview, table]\n );\n\n // Read storage after mount: a server render and the first client render must\n // agree, and localStorage is not available to the former.\n React.useEffect(() => {\n if (!storageKey || view) return;\n const stored = readStored(storageKey);\n if (\n stored &&\n offered.some((v) => (typeof v === 'string' ? v : v.id) === stored)\n )\n setInternalView(stored);\n }, [storageKey, view, offered]);\n\n const requested = view ?? internalView;\n const active = offered.some(\n (v) => (typeof v === 'string' ? v : v.id) === requested\n )\n ? requested\n : FIRST_ID(offered);\n\n const changeView = (next: ViewId) => {\n if (!view) setInternalView(next);\n if (storageKey && !view) writeStored(storageKey, next);\n onViewChange?.(next);\n };\n\n const body = (() => {\n switch (active) {\n case 'overview':\n return overview ?? null;\n case 'table':\n return table ?? null;\n case 'board':\n return (\n <BoardView\n {...shared}\n stages={stages ?? []}\n onMove={onMove}\n {...boardProps}\n />\n );\n case 'calendar':\n return <CalendarView {...shared} {...calendarProps} />;\n case 'gantt':\n return <GanttView {...shared} {...ganttProps} />;\n case 'roadmap':\n // A roadmap is the Gantt at a coarse cadence; see Views.mdx. The two\n // props that make it one come last: `ganttProps` is shared with the\n // plain `gantt` case, so a `cadence: 'day'` meant for that view must\n // not quietly turn the Roadmap option into a daily chart.\n return (\n <GanttView\n {...shared}\n {...ganttProps}\n cadence=\"quarter\"\n groupByLane\n />\n );\n case 'list':\n default:\n return <ListView {...shared} stages={stages} {...listProps} />;\n }\n })();\n\n return (\n <div data-slot=\"view-set\" className={cn('flex flex-col gap-3', className)}>\n <div\n data-slot=\"view-set-toolbar\"\n className={cn('flex flex-wrap items-center gap-2', classNames?.toolbar)}\n >\n {toolbar}\n <div\n data-slot=\"view-set-switcher\"\n className={cn('ms-auto', classNames?.switcher)}\n >\n <ViewSwitcher\n views={offered}\n value={active}\n onValueChange={changeView}\n label={shared.labels?.viewSwitcher}\n />\n </div>\n </div>\n {filters}\n <div\n data-slot=\"view-set-body\"\n className={cn(\n // Plain column spans rather than an arbitrary grid template, so a\n // Tailwind 3 consumer needs no extra safelist entry.\n detail && 'gap-3 lg:grid lg:grid-cols-3',\n classNames?.body\n )}\n >\n <div className={cn('min-w-0', detail && 'lg:col-span-2')}>{body}</div>\n {detail && (\n <aside\n data-slot=\"view-set-detail\"\n className={cn('min-w-0', classNames?.detail)}\n >\n {detail}\n </aside>\n )}\n </div>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/ViewSet/ViewSet.tsx"],"names":["React","jsx","BoardView","CalendarView","GanttView","ListView","jsxs","cn","ViewSwitcher"],"mappings":"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","file":"chunk-GYXSF6BJ.cjs","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../utils/cn';\nimport { ViewSwitcher, type ViewOption } from '../ViewSwitcher';\nimport { ListView, type ListViewProps } from '../ListView';\nimport { BoardView, type BoardLabels, type BoardViewProps } from '../BoardView';\nimport {\n CalendarView,\n type CalendarLabels,\n type CalendarViewProps,\n} from '../CalendarView';\nimport { GanttView, type GanttLabels, type GanttViewProps } from '../GanttView';\nimport type { Stage, ViewBaseProps, ViewId } from '../../views/types';\n\n// =============================================================================\n// Types\n// =============================================================================\n\n/**\n * Every string any layout in the set can render.\n *\n * Each view extends `ViewLabels` with its own — the calendar's month arrows and\n * \"+n more\", the board's move announcements, the Gantt's undated footnote. They\n * are all shared props, so the per-view escape hatches below exclude `labels`;\n * without widening here a non-English host could translate the common strings\n * and nothing else, which would break the contract that every user-facing\n * string is overridable. A view ignores the keys it does not know.\n */\nexport type ViewSetLabels = Partial<CalendarLabels & BoardLabels & GanttLabels>;\n\n/**\n * Props `ViewSet` passes to every layout itself, beyond `ViewBaseProps`. Named\n * here so the per-view escape hatches below can exclude them by key rather than\n * by a hand-kept list that would drift the moment a shared prop is added.\n */\ntype ViewSetOwned = 'stages' | 'onMove' | 'timeZone' | 'locale';\n\ntype ViewOverrides<P, T> = Omit<\n Partial<P>,\n keyof ViewBaseProps<T> | ViewSetOwned\n>;\n\nexport interface ViewSetProps<T> extends ViewBaseProps<T> {\n /** Every string any offered layout can render, not just the shared ones. */\n labels?: ViewSetLabels;\n /** Views to offer, in order. The first is the default when uncontrolled. */\n views: readonly (ViewId | ViewOption)[];\n view?: ViewId;\n defaultView?: ViewId;\n onViewChange?: (view: ViewId) => void;\n /**\n * Remembers the chosen view under this key. Ignored when `view` is\n * controlled — a page with its own URL state should own it there instead.\n */\n storageKey?: string;\n /** Stages for the board and for list grouping. */\n stages?: readonly Stage[];\n onMove?: BoardViewProps<T>['onMove'];\n /**\n * IANA zone the date views read day boundaries in. Shared, because a page\n * showing one collection as a calendar and as a Gantt must place it on the\n * same days in both.\n */\n timeZone?: string;\n /** Locale for date formatting in the calendar and Gantt. */\n locale?: string;\n\n /** Rendered above the switcher row. */\n toolbar?: React.ReactNode;\n /** Rendered under the switcher row, above the view. */\n filters?: React.ReactNode;\n /** The `overview` view. Domain content — the library has no opinion on it. */\n overview?: React.ReactNode;\n /** The `table` view. A tabular collection is a grid, not a view component. */\n table?: React.ReactNode;\n /** Rendered beside the view, for a list-plus-detail layout. */\n detail?: React.ReactNode;\n\n /**\n * Per-view escape hatches for props this shell does not surface. Shared props\n * are excluded: one collection rendered several ways means switching view can\n * never change the records, the selection or the load state.\n *\n * `ViewSetOwned` covers the props the shell passes itself but that are not on\n * `ViewBaseProps`. They are spread after the shared ones, so leaving them open\n * would let one layout carry different stages, a different mutation callback\n * or a different time zone from its neighbours — the same collection quietly\n * disagreeing with itself as you switch tabs.\n */\n listProps?: ViewOverrides<ListViewProps<T>, T>;\n boardProps?: ViewOverrides<BoardViewProps<T>, T>;\n calendarProps?: ViewOverrides<CalendarViewProps<T>, T>;\n ganttProps?: ViewOverrides<GanttViewProps<T>, T>;\n\n classNames?: Partial<\n Record<'toolbar' | 'switcher' | 'body' | 'detail', string>\n >;\n}\n\nconst FIRST_ID = (views: ViewSetProps<unknown>['views']) => {\n const first = views[0];\n return (typeof first === 'string' ? first : first?.id) ?? 'list';\n};\n\n// Remembering the view is an enhancement, never a requirement. `localStorage`\n// can exist and still throw — Safari private browsing and a blocked third-party\n// storage policy both raise on access — so optional chaining is not enough; an\n// unguarded read would take the whole page down to save a preference.\nconst readStored = (key: string): ViewId | null => {\n try {\n return (globalThis.localStorage?.getItem(key) as ViewId | null) ?? null;\n } catch {\n return null;\n }\n};\n\nconst writeStored = (key: string, value: ViewId) => {\n try {\n globalThis.localStorage?.setItem(key, value);\n } catch {\n // Fall back to in-memory state for the session.\n }\n};\n\n// =============================================================================\n// Component\n// =============================================================================\n\n/**\n * The page-level composition: switcher, the enabled views, and the slots a page\n * needs around them. It owns which view is showing and nothing else — items,\n * selection and every mutation stay with the caller.\n */\nexport function ViewSet<T>({\n views,\n view,\n defaultView,\n onViewChange,\n storageKey,\n stages,\n onMove,\n toolbar,\n filters,\n overview,\n table,\n detail,\n listProps,\n boardProps,\n calendarProps,\n ganttProps,\n className,\n classNames,\n ...shared\n}: ViewSetProps<T>) {\n const [internalView, setInternalView] = React.useState<ViewId>(\n () => defaultView ?? FIRST_ID(views)\n );\n\n // `overview` and `table` are the caller's content. Offering either without\n // its slot would put a dead option in the switcher that renders a blank page.\n const offered = React.useMemo(\n () =>\n views.filter((v) => {\n const id = typeof v === 'string' ? v : v.id;\n if (id === 'overview') return overview != null;\n if (id === 'table') return table != null;\n return true;\n }),\n [views, overview, table]\n );\n\n // Read storage after mount: a server render and the first client render must\n // agree, and localStorage is not available to the former.\n React.useEffect(() => {\n if (!storageKey || view) return;\n const stored = readStored(storageKey);\n if (\n stored &&\n offered.some((v) => (typeof v === 'string' ? v : v.id) === stored)\n )\n setInternalView(stored);\n }, [storageKey, view, offered]);\n\n const requested = view ?? internalView;\n const active = offered.some(\n (v) => (typeof v === 'string' ? v : v.id) === requested\n )\n ? requested\n : FIRST_ID(offered);\n\n const changeView = (next: ViewId) => {\n if (!view) setInternalView(next);\n if (storageKey && !view) writeStored(storageKey, next);\n onViewChange?.(next);\n };\n\n const body = (() => {\n switch (active) {\n case 'overview':\n return overview ?? null;\n case 'table':\n return table ?? null;\n case 'board':\n return (\n <BoardView\n {...shared}\n stages={stages ?? []}\n onMove={onMove}\n {...boardProps}\n />\n );\n case 'calendar':\n return <CalendarView {...shared} {...calendarProps} />;\n case 'gantt':\n return <GanttView {...shared} {...ganttProps} />;\n case 'roadmap':\n // A roadmap is the Gantt at a coarse cadence; see Views.mdx. The two\n // props that make it one come last: `ganttProps` is shared with the\n // plain `gantt` case, so a `cadence: 'day'` meant for that view must\n // not quietly turn the Roadmap option into a daily chart.\n return (\n <GanttView\n {...shared}\n {...ganttProps}\n cadence=\"quarter\"\n groupByLane\n />\n );\n case 'list':\n default:\n return <ListView {...shared} stages={stages} {...listProps} />;\n }\n })();\n\n return (\n <div data-slot=\"view-set\" className={cn('flex flex-col gap-3', className)}>\n <div\n data-slot=\"view-set-toolbar\"\n className={cn('flex flex-wrap items-center gap-2', classNames?.toolbar)}\n >\n {toolbar}\n <div\n data-slot=\"view-set-switcher\"\n className={cn('ms-auto', classNames?.switcher)}\n >\n <ViewSwitcher\n views={offered}\n value={active}\n onValueChange={changeView}\n label={shared.labels?.viewSwitcher}\n />\n </div>\n </div>\n {filters}\n <div\n data-slot=\"view-set-body\"\n className={cn(\n // Plain column spans rather than an arbitrary grid template, so a\n // Tailwind 3 consumer needs no extra safelist entry.\n detail && 'gap-3 lg:grid lg:grid-cols-3',\n classNames?.body\n )}\n >\n <div className={cn('min-w-0', detail && 'lg:col-span-2')}>{body}</div>\n {detail && (\n <aside\n data-slot=\"view-set-detail\"\n className={cn('min-w-0', classNames?.detail)}\n >\n {detail}\n </aside>\n )}\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-H2Y7HZV5.js"}
|