@mieweb/ui 0.10.0-dev.31 → 0.10.0-dev.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CsvBlock-CFXSDPBI.js +9 -0
- package/dist/{CsvBlock-VLMG7GUO.js.map → CsvBlock-CFXSDPBI.js.map} +1 -1
- package/dist/CsvBlock-RGO7JXHJ.cjs +18 -0
- package/dist/{CsvBlock-FX5YNGNE.cjs.map → CsvBlock-RGO7JXHJ.cjs.map} +1 -1
- package/dist/HtmlPreviewBlock-VBYXCXVT.cjs +18 -0
- package/dist/{HtmlPreviewBlock-UO37JQ3K.cjs.map → HtmlPreviewBlock-VBYXCXVT.cjs.map} +1 -1
- package/dist/HtmlPreviewBlock-Z2GCK325.js +9 -0
- package/dist/{HtmlPreviewBlock-5JE7L3GR.js.map → HtmlPreviewBlock-Z2GCK325.js.map} +1 -1
- package/dist/MermaidBlock-I2R2BQOX.cjs +18 -0
- package/dist/{MermaidBlock-RZ75RPZA.cjs.map → MermaidBlock-I2R2BQOX.cjs.map} +1 -1
- package/dist/MermaidBlock-XCAK7IA5.js +9 -0
- package/dist/{MermaidBlock-3XHFBAMV.js.map → MermaidBlock-XCAK7IA5.js.map} +1 -1
- package/dist/SurveyBlock-KI5JOWCL.js +9 -0
- package/dist/{SurveyBlock-MUVJ3JUI.js.map → SurveyBlock-KI5JOWCL.js.map} +1 -1
- package/dist/SurveyBlock-UKSGISRT.cjs +18 -0
- package/dist/{SurveyBlock-VH47YXZC.cjs.map → SurveyBlock-UKSGISRT.cjs.map} +1 -1
- package/dist/brands/index.cjs +7 -7
- package/dist/brands/index.js +2 -2
- package/dist/{chunk-6ZPTZTKN.js → chunk-24AFHH4J.js} +3 -3
- package/dist/{chunk-6ZPTZTKN.js.map → chunk-24AFHH4J.js.map} +1 -1
- package/dist/{chunk-BNH4SXJB.js → chunk-2X54ZLT6.js} +6 -6
- package/dist/{chunk-BNH4SXJB.js.map → chunk-2X54ZLT6.js.map} +1 -1
- package/dist/{chunk-TYE5K5WV.cjs → chunk-32ZCJOSR.cjs} +4 -4
- package/dist/{chunk-TYE5K5WV.cjs.map → chunk-32ZCJOSR.cjs.map} +1 -1
- package/dist/chunk-47P5QLX4.cjs +42 -0
- package/dist/chunk-47P5QLX4.cjs.map +1 -0
- package/dist/chunk-4ZB7RSMY.cjs +306 -0
- package/dist/chunk-4ZB7RSMY.cjs.map +1 -0
- package/dist/chunk-56VTM4OX.js +261 -0
- package/dist/chunk-56VTM4OX.js.map +1 -0
- package/dist/{chunk-D22GE27K.js → chunk-5A4SL436.js} +4 -4
- package/dist/{chunk-D22GE27K.js.map → chunk-5A4SL436.js.map} +1 -1
- package/dist/chunk-6BNZLN4B.cjs +548 -0
- package/dist/chunk-6BNZLN4B.cjs.map +1 -0
- package/dist/chunk-6JSFT2J5.js +130 -0
- package/dist/chunk-6JSFT2J5.js.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-TTSSUOEV.cjs → chunk-7C5W744U.cjs} +8 -8
- package/dist/{chunk-TTSSUOEV.cjs.map → chunk-7C5W744U.cjs.map} +1 -1
- 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-YU55JD35.js → chunk-7QW6TU4X.js} +3 -3
- package/dist/{chunk-YU55JD35.js.map → chunk-7QW6TU4X.js.map} +1 -1
- package/dist/chunk-7WJ6MBF5.cjs +47 -0
- package/dist/chunk-7WJ6MBF5.cjs.map +1 -0
- package/dist/chunk-A4W5CSK7.cjs +216 -0
- package/dist/chunk-A4W5CSK7.cjs.map +1 -0
- package/dist/{chunk-WXFGHDTV.cjs → chunk-AJPFQF3H.cjs} +18 -18
- package/dist/{chunk-WXFGHDTV.cjs.map → chunk-AJPFQF3H.cjs.map} +1 -1
- package/dist/chunk-AMYFRY7K.js +3 -0
- package/dist/chunk-AMYFRY7K.js.map +1 -0
- package/dist/{chunk-X6A27RGO.cjs → chunk-ANMX7YDL.cjs} +2 -2
- package/dist/{chunk-X6A27RGO.cjs.map → chunk-ANMX7YDL.cjs.map} +1 -1
- package/dist/{chunk-DVOQ3JNO.js → chunk-B4CKCNWD.js} +16 -8
- package/dist/chunk-B4CKCNWD.js.map +1 -0
- package/dist/chunk-BJ6ABRSQ.cjs +256 -0
- package/dist/chunk-BJ6ABRSQ.cjs.map +1 -0
- package/dist/chunk-BXRQ6HEP.cjs +4 -0
- package/dist/chunk-BXRQ6HEP.cjs.map +1 -0
- package/dist/{chunk-TJCX4OML.cjs → chunk-C77FAR3F.cjs} +2 -2
- package/dist/{chunk-TJCX4OML.cjs.map → chunk-C77FAR3F.cjs.map} +1 -1
- package/dist/chunk-CBBKWRLG.js +213 -0
- package/dist/chunk-CBBKWRLG.js.map +1 -0
- package/dist/{chunk-ZTMYKAVU.cjs → chunk-CCAVJSWL.cjs} +49 -48
- package/dist/chunk-CCAVJSWL.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-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-R5Z7AOVU.cjs → chunk-DZ3JTMKM.cjs} +9 -9
- package/dist/{chunk-R5Z7AOVU.cjs.map → chunk-DZ3JTMKM.cjs.map} +1 -1
- package/dist/chunk-EACNRR3C.cjs +4 -0
- package/dist/chunk-EACNRR3C.cjs.map +1 -0
- package/dist/{chunk-E2PBPQGS.js → chunk-EEOGIGIA.js} +2 -2
- package/dist/{chunk-E2PBPQGS.js.map → chunk-EEOGIGIA.js.map} +1 -1
- package/dist/chunk-EPCUPHEO.js +193 -0
- package/dist/chunk-EPCUPHEO.js.map +1 -0
- package/dist/chunk-EPTP3VKT.js +283 -0
- package/dist/chunk-EPTP3VKT.js.map +1 -0
- package/dist/{chunk-HIZWOAWY.cjs → chunk-ERACGSDY.cjs} +8 -8
- package/dist/{chunk-HIZWOAWY.cjs.map → chunk-ERACGSDY.cjs.map} +1 -1
- package/dist/{chunk-VOQJHSXN.cjs → chunk-F2FOG4EG.cjs} +9 -9
- package/dist/{chunk-VOQJHSXN.cjs.map → chunk-F2FOG4EG.cjs.map} +1 -1
- package/dist/{chunk-GBUVIGD5.js → chunk-F3EWRDIT.js} +99 -3
- package/dist/chunk-F3EWRDIT.js.map +1 -0
- package/dist/{chunk-GVLNXPJX.js → chunk-FGLIP6YR.js} +4 -4
- package/dist/{chunk-GVLNXPJX.js.map → chunk-FGLIP6YR.js.map} +1 -1
- package/dist/chunk-FKGFOBC2.js +314 -0
- package/dist/chunk-FKGFOBC2.js.map +1 -0
- package/dist/chunk-FSGJXCBG.cjs +318 -0
- package/dist/chunk-FSGJXCBG.cjs.map +1 -0
- package/dist/chunk-FTEZNCRI.js +29 -0
- package/dist/chunk-FTEZNCRI.js.map +1 -0
- package/dist/{chunk-COM7RNZU.cjs → chunk-FYQZWLAM.cjs} +2 -2
- package/dist/{chunk-COM7RNZU.cjs.map → chunk-FYQZWLAM.cjs.map} +1 -1
- 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-N7C4OEP7.cjs → chunk-GM32IDVL.cjs} +6 -6
- package/dist/{chunk-N7C4OEP7.cjs.map → chunk-GM32IDVL.cjs.map} +1 -1
- package/dist/chunk-GY5SP4ST.js +3 -0
- package/dist/chunk-GY5SP4ST.js.map +1 -0
- package/dist/chunk-H2Y7HZV5.js +3 -0
- package/dist/chunk-H2Y7HZV5.js.map +1 -0
- package/dist/chunk-H3QPREIJ.js +195 -0
- package/dist/chunk-H3QPREIJ.js.map +1 -0
- package/dist/{chunk-QOVJ6Z6R.js → chunk-HDY7YQFX.js} +3 -3
- package/dist/{chunk-QOVJ6Z6R.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-I2MMUFCN.cjs +154 -0
- package/dist/chunk-I2MMUFCN.cjs.map +1 -0
- package/dist/{chunk-GYXUS65N.cjs → chunk-IGDO62KR.cjs} +5 -5
- package/dist/{chunk-GYXUS65N.cjs.map → chunk-IGDO62KR.cjs.map} +1 -1
- package/dist/{chunk-HC3NAN55.cjs → chunk-IPL2O2OL.cjs} +19 -19
- package/dist/{chunk-HC3NAN55.cjs.map → chunk-IPL2O2OL.cjs.map} +1 -1
- package/dist/chunk-ISUIKUX7.cjs +337 -0
- package/dist/chunk-ISUIKUX7.cjs.map +1 -0
- 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-BIQ7GSO2.js → chunk-JMAZ2GKT.js} +3 -3
- package/dist/{chunk-BIQ7GSO2.js.map → chunk-JMAZ2GKT.js.map} +1 -1
- package/dist/{chunk-KRU6IGV7.js → chunk-JUJGWUAN.js} +28 -6
- package/dist/chunk-JUJGWUAN.js.map +1 -0
- package/dist/{chunk-BUT6MF5K.cjs → chunk-KQ6GLYFZ.cjs} +4 -4
- package/dist/{chunk-BUT6MF5K.cjs.map → chunk-KQ6GLYFZ.cjs.map} +1 -1
- package/dist/chunk-L6K4PRZK.cjs +4 -0
- package/dist/chunk-L6K4PRZK.cjs.map +1 -0
- package/dist/{chunk-T4L7Q5FA.cjs → chunk-LC3JL2HB.cjs} +6 -2
- package/dist/chunk-LC3JL2HB.cjs.map +1 -0
- package/dist/{chunk-P7UMS4E6.cjs → chunk-LC7PVBXH.cjs} +16 -8
- package/dist/chunk-LC7PVBXH.cjs.map +1 -0
- package/dist/chunk-LRRSD7LR.js +248 -0
- package/dist/chunk-LRRSD7LR.js.map +1 -0
- package/dist/chunk-LSMS6DY7.cjs +331 -0
- package/dist/chunk-LSMS6DY7.cjs.map +1 -0
- package/dist/chunk-M3VPGJMV.js +283 -0
- package/dist/chunk-M3VPGJMV.js.map +1 -0
- package/dist/{chunk-QURJVPRH.cjs → chunk-MJJJDQ5P.cjs} +46 -2
- package/dist/chunk-MJJJDQ5P.cjs.map +1 -0
- package/dist/{chunk-2JICT4A2.js → chunk-N54FYWG6.js} +3 -3
- package/dist/{chunk-2JICT4A2.js.map → chunk-N54FYWG6.js.map} +1 -1
- package/dist/chunk-N5JDL4VE.js +3 -0
- package/dist/chunk-N5JDL4VE.js.map +1 -0
- package/dist/{chunk-KGKBZN3T.cjs → chunk-NAH65KPK.cjs} +8 -8
- package/dist/{chunk-KGKBZN3T.cjs.map → chunk-NAH65KPK.cjs.map} +1 -1
- package/dist/{chunk-NKV76R65.cjs → chunk-O6BJMVGT.cjs} +45 -45
- package/dist/{chunk-NKV76R65.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-ORCCJ5VY.cjs +218 -0
- package/dist/chunk-ORCCJ5VY.cjs.map +1 -0
- package/dist/{chunk-CRS2CQWM.js → chunk-OSTSZDQC.js} +3 -3
- package/dist/{chunk-CRS2CQWM.js.map → chunk-OSTSZDQC.js.map} +1 -1
- package/dist/chunk-P22YCUVM.cjs +4 -0
- package/dist/chunk-P22YCUVM.cjs.map +1 -0
- package/dist/chunk-P55LNEDH.cjs +306 -0
- package/dist/chunk-P55LNEDH.cjs.map +1 -0
- package/dist/{chunk-R6KPWIGO.js → chunk-P7D7BYFE.js} +4 -4
- package/dist/{chunk-R6KPWIGO.js.map → chunk-P7D7BYFE.js.map} +1 -1
- package/dist/{chunk-GU5OS7JJ.cjs → chunk-PYI2IWNX.cjs} +4 -4
- package/dist/{chunk-GU5OS7JJ.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-K34DXMLZ.js → chunk-QJ2L5RU6.js} +7 -7
- package/dist/{chunk-K34DXMLZ.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-LFPJ3OUM.cjs → chunk-RIUQP2QS.cjs} +5 -5
- package/dist/{chunk-LFPJ3OUM.cjs.map → chunk-RIUQP2QS.cjs.map} +1 -1
- package/dist/{chunk-JHG3ELS2.js → chunk-RPFATYUI.js} +2 -2
- package/dist/{chunk-JHG3ELS2.js.map → chunk-RPFATYUI.js.map} +1 -1
- package/dist/{chunk-FZURBQJ2.js → chunk-RSJGTWLM.js} +3 -3
- package/dist/{chunk-FZURBQJ2.js.map → chunk-RSJGTWLM.js.map} +1 -1
- package/dist/{chunk-XBTKZCZF.js → chunk-RZSSQ7AT.js} +3 -3
- package/dist/{chunk-XBTKZCZF.js.map → chunk-RZSSQ7AT.js.map} +1 -1
- package/dist/{chunk-SD7ONW6S.js → chunk-S2JZL4JC.js} +5 -5
- package/dist/{chunk-SD7ONW6S.js.map → chunk-S2JZL4JC.js.map} +1 -1
- package/dist/{chunk-VROIMIHB.cjs → chunk-SHBCUXFS.cjs} +28 -6
- package/dist/chunk-SHBCUXFS.cjs.map +1 -0
- package/dist/{chunk-JELTRRR5.cjs → chunk-SW2E7XKY.cjs} +9 -9
- package/dist/{chunk-JELTRRR5.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-HZ4MBUC3.js → chunk-TI3TQQ7F.js} +4 -53
- package/dist/chunk-TI3TQQ7F.js.map +1 -0
- package/dist/{chunk-MLAWXPRY.js → chunk-TKWNXAFI.js} +46 -2
- package/dist/chunk-TKWNXAFI.js.map +1 -0
- package/dist/{chunk-H2IAMSHK.js → chunk-TVEJKKIM.js} +3 -3
- package/dist/{chunk-H2IAMSHK.js.map → chunk-TVEJKKIM.js.map} +1 -1
- package/dist/{chunk-LHBWRMNC.cjs → chunk-TVU4KB27.cjs} +130 -12
- package/dist/chunk-TVU4KB27.cjs.map +1 -0
- package/dist/{chunk-ENMXHZNE.js → chunk-TWQSMUE6.js} +6 -2
- package/dist/chunk-TWQSMUE6.js.map +1 -0
- package/dist/{chunk-ZYL4SNOR.js → chunk-UJDWFDKE.js} +3 -3
- package/dist/{chunk-ZYL4SNOR.js.map → chunk-UJDWFDKE.js.map} +1 -1
- package/dist/{chunk-4HC2IBOX.js → chunk-UNFDIBKJ.js} +3 -3
- package/dist/{chunk-4HC2IBOX.js.map → chunk-UNFDIBKJ.js.map} +1 -1
- package/dist/chunk-UTIPENPW.cjs +286 -0
- package/dist/chunk-UTIPENPW.cjs.map +1 -0
- package/dist/{chunk-IYWG72DM.js → chunk-VEE46VTX.js} +4 -4
- package/dist/{chunk-IYWG72DM.js.map → chunk-VEE46VTX.js.map} +1 -1
- package/dist/{chunk-Y4E2WRUR.cjs → chunk-VFFV7EMT.cjs} +6 -6
- package/dist/{chunk-Y4E2WRUR.cjs.map → chunk-VFFV7EMT.cjs.map} +1 -1
- package/dist/chunk-VNEAQCY2.js +308 -0
- package/dist/chunk-VNEAQCY2.js.map +1 -0
- package/dist/chunk-VOYLX32A.cjs +271 -0
- package/dist/chunk-VOYLX32A.cjs.map +1 -0
- package/dist/{chunk-7ZV67VZE.js → chunk-VSRO4PAI.js} +21 -3
- 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-CPPUT74P.cjs → chunk-VV2U36T6.cjs} +9 -9
- package/dist/{chunk-CPPUT74P.cjs.map → chunk-VV2U36T6.cjs.map} +1 -1
- package/dist/{chunk-35Y4ILCU.cjs → chunk-VXW7D5LR.cjs} +21 -3
- package/dist/chunk-VXW7D5LR.cjs.map +1 -0
- package/dist/{chunk-7YO7DNUV.js → chunk-WFBUBT54.js} +2 -2
- package/dist/{chunk-7YO7DNUV.js.map → chunk-WFBUBT54.js.map} +1 -1
- package/dist/chunk-WQHBMZSC.js +295 -0
- package/dist/chunk-WQHBMZSC.js.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-XNPDZANN.cjs +238 -0
- package/dist/chunk-XNPDZANN.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-YGS2TRMP.js +38 -0
- package/dist/chunk-YGS2TRMP.js.map +1 -0
- package/dist/{chunk-JBIGSP2T.js → chunk-YMILRSRO.js} +6 -5
- package/dist/chunk-YMILRSRO.js.map +1 -0
- package/dist/chunk-YUMOM3KE.js +167 -0
- package/dist/chunk-YUMOM3KE.js.map +1 -0
- package/dist/{chunk-3KPDQG5O.cjs → chunk-ZG6FXMDX.cjs} +5 -5
- package/dist/{chunk-3KPDQG5O.cjs.map → chunk-ZG6FXMDX.cjs.map} +1 -1
- 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/AlertDialog/index.cjs +17 -4
- package/dist/components/AlertDialog/index.d.cts +66 -13
- package/dist/components/AlertDialog/index.d.ts +66 -13
- package/dist/components/AlertDialog/index.js +4 -3
- 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/Avatar/index.cjs +9 -7
- package/dist/components/Avatar/index.d.cts +45 -14
- package/dist/components/Avatar/index.d.ts +45 -14
- 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/Button/index.cjs +3 -2
- package/dist/components/Button/index.js +2 -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 +5 -4
- package/dist/components/CalendarView/index.js +3 -2
- 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 +4 -4
- package/dist/components/Collapsible/index.d.cts +6 -0
- package/dist/components/Collapsible/index.d.ts +6 -0
- package/dist/components/Collapsible/index.js +1 -1
- package/dist/components/CompletenessMeter/index.cjs +22 -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 +5 -0
- package/dist/components/CompletenessMeter/index.js.map +1 -0
- package/dist/components/CustomizableDashboard/index.cjs +10 -9
- package/dist/components/CustomizableDashboard/index.js +3 -2
- package/dist/components/DateInput/index.d.cts +36 -4
- package/dist/components/DateInput/index.d.ts +36 -4
- package/dist/components/Dropdown/index.cjs +9 -8
- package/dist/components/Dropdown/index.js +2 -1
- 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 +5 -4
- package/dist/components/FloatingWindow/index.js +3 -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 +4 -4
- package/dist/components/KeyboardShortcutsOverlay/index.js +2 -2
- package/dist/components/ListView/index.cjs +5 -4
- package/dist/components/ListView/index.js +3 -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 +17 -16
- package/dist/components/Markdown/index.js +8 -7
- package/dist/components/MediaEditor/index.cjs +10 -9
- package/dist/components/MediaEditor/index.js +5 -4
- package/dist/components/MediaFeed/index.cjs +9 -6
- package/dist/components/MediaFeed/index.js +8 -5
- package/dist/components/MediaPlayer/index.cjs +6 -5
- package/dist/components/MediaPlayer/index.js +3 -2
- package/dist/components/MegaMenu/index.cjs +2 -1
- package/dist/components/MegaMenu/index.js +2 -1
- package/dist/components/Modal/index.cjs +9 -9
- package/dist/components/Modal/index.js +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/PhoneInput/index.d.cts +3 -36
- package/dist/components/PhoneInput/index.d.ts +3 -36
- package/dist/components/PropertyList/index.cjs +25 -0
- package/dist/components/PropertyList/index.cjs.map +1 -0
- package/dist/components/PropertyList/index.d.cts +71 -0
- package/dist/components/PropertyList/index.d.ts +71 -0
- package/dist/components/PropertyList/index.js +12 -0
- package/dist/components/PropertyList/index.js.map +1 -0
- package/dist/components/RadialExplorer/index.cjs +2 -1
- package/dist/components/RadialExplorer/index.js +2 -1
- 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/RecordHeader/index.cjs +29 -0
- package/dist/components/RecordHeader/index.cjs.map +1 -0
- package/dist/components/RecordHeader/index.d.cts +86 -0
- package/dist/components/RecordHeader/index.d.ts +86 -0
- package/dist/components/RecordHeader/index.js +16 -0
- package/dist/components/RecordHeader/index.js.map +1 -0
- package/dist/components/RecordLayout/index.cjs +21 -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 +8 -0
- package/dist/components/RecordLayout/index.js.map +1 -0
- package/dist/components/RichTextEditor/index.cjs +8 -6
- package/dist/components/RichTextEditor/index.js +5 -3
- package/dist/components/SectionSpyNav/index.cjs +2 -1
- package/dist/components/SectionSpyNav/index.js +2 -1
- package/dist/components/SuperChat/index.cjs +23 -19
- package/dist/components/SuperChat/index.cjs.map +1 -1
- package/dist/components/SuperChat/index.js +11 -7
- package/dist/components/SuperChat/index.js.map +1 -1
- package/dist/components/SuperChat/plugins/index.cjs +5 -4
- package/dist/components/SuperChat/plugins/index.cjs.map +1 -1
- package/dist/components/SuperChat/plugins/index.js +4 -3
- package/dist/components/SuperChat/plugins/index.js.map +1 -1
- package/dist/components/Tabs/index.cjs +9 -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 +3 -1
- package/dist/components/TagEditor/index.cjs +20 -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 +7 -0
- package/dist/components/TagEditor/index.js.map +1 -0
- 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/ViewSet/index.cjs +6 -5
- package/dist/components/ViewSet/index.d.cts +2 -1
- package/dist/components/ViewSet/index.d.ts +2 -1
- package/dist/components/ViewSet/index.js +5 -4
- package/dist/components/ViewSwitcher/index.d.cts +39 -4
- package/dist/components/ViewSwitcher/index.d.ts +39 -4
- package/dist/datavis.cjs +3 -2
- package/dist/datavis.cjs.map +1 -1
- package/dist/datavis.js +2 -1
- package/dist/datavis.js.map +1 -1
- package/dist/esheet.cjs +9 -7
- package/dist/esheet.cjs.map +1 -1
- package/dist/esheet.js +6 -4
- package/dist/esheet.js.map +1 -1
- package/dist/hooks/index.cjs +53 -27
- package/dist/hooks/index.d.cts +91 -6
- package/dist/hooks/index.d.ts +91 -6
- package/dist/hooks/index.js +5 -3
- package/dist/index.cjs +1391 -847
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1253 -168
- package/dist/index.d.ts +1253 -168
- package/dist/index.js +539 -171
- package/dist/index.js.map +1 -1
- package/dist/org-chart.cjs +1302 -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 +1277 -0
- package/dist/org-chart.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/tailwind-preset.cjs +4 -4
- package/dist/tailwind-preset.js +1 -1
- package/dist/{index-DoYYWsNc.d.cts → types-CDeBNZiE.d.cts} +1 -36
- package/dist/{index-DoYYWsNc.d.ts → types-CDeBNZiE.d.ts} +1 -36
- package/package.json +22 -2
- package/dist/CsvBlock-FX5YNGNE.cjs +0 -17
- package/dist/CsvBlock-VLMG7GUO.js +0 -8
- package/dist/HtmlPreviewBlock-5JE7L3GR.js +0 -8
- package/dist/HtmlPreviewBlock-UO37JQ3K.cjs +0 -17
- package/dist/MermaidBlock-3XHFBAMV.js +0 -8
- package/dist/MermaidBlock-RZ75RPZA.cjs +0 -17
- package/dist/SurveyBlock-MUVJ3JUI.js +0 -8
- package/dist/SurveyBlock-VH47YXZC.cjs +0 -17
- package/dist/chunk-35Y4ILCU.cjs.map +0 -1
- package/dist/chunk-6N6LIAUJ.cjs +0 -80
- package/dist/chunk-6N6LIAUJ.cjs.map +0 -1
- package/dist/chunk-7ZV67VZE.js.map +0 -1
- package/dist/chunk-7ZVTLTJF.js +0 -109
- package/dist/chunk-7ZVTLTJF.js.map +0 -1
- package/dist/chunk-DVOQ3JNO.js.map +0 -1
- package/dist/chunk-ENMXHZNE.js.map +0 -1
- package/dist/chunk-GBUVIGD5.js.map +0 -1
- package/dist/chunk-HZ4MBUC3.js.map +0 -1
- package/dist/chunk-JBIGSP2T.js.map +0 -1
- package/dist/chunk-JEIW7BSV.cjs.map +0 -1
- package/dist/chunk-KRU6IGV7.js.map +0 -1
- package/dist/chunk-LHBWRMNC.cjs.map +0 -1
- package/dist/chunk-MLAWXPRY.js.map +0 -1
- package/dist/chunk-P7UMS4E6.cjs.map +0 -1
- package/dist/chunk-QURJVPRH.cjs.map +0 -1
- package/dist/chunk-SVSHA7XV.js.map +0 -1
- package/dist/chunk-T4L7Q5FA.cjs.map +0 -1
- package/dist/chunk-UBSH27C2.js +0 -78
- package/dist/chunk-UBSH27C2.js.map +0 -1
- package/dist/chunk-VROIMIHB.cjs.map +0 -1
- package/dist/chunk-X4LBUPJO.cjs.map +0 -1
- package/dist/chunk-YVPC65ZJ.cjs.map +0 -1
- package/dist/chunk-ZTMYKAVU.cjs.map +0 -1
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { InlineEdit } from './chunk-M3VPGJMV.js';
|
|
2
|
+
import { CopyButton } from './chunk-5QZ73PZC.js';
|
|
3
|
+
import { Collapsible, CollapsibleTrigger, CollapsibleContent } from './chunk-VSRO4PAI.js';
|
|
4
|
+
import { cn } from './chunk-TQONQSJO.js';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import { cva } from 'class-variance-authority';
|
|
7
|
+
import { ChevronDown } from 'lucide-react';
|
|
8
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
9
|
+
|
|
10
|
+
var defaultPropertyListLabels = {
|
|
11
|
+
empty: "\u2014",
|
|
12
|
+
copy: (label) => `Copy ${label}`,
|
|
13
|
+
copied: "Copied",
|
|
14
|
+
showEmpty: (count) => `Show ${count} empty field${count === 1 ? "" : "s"}`,
|
|
15
|
+
hideEmpty: (count) => `Hide ${count} empty field${count === 1 ? "" : "s"}`
|
|
16
|
+
};
|
|
17
|
+
var listVariants = cva("m-0", {
|
|
18
|
+
variants: {
|
|
19
|
+
density: { comfortable: "space-y-3", compact: "space-y-1" }
|
|
20
|
+
},
|
|
21
|
+
defaultVariants: { density: "comfortable" }
|
|
22
|
+
});
|
|
23
|
+
var rowVariants = cva("min-w-0", {
|
|
24
|
+
variants: {
|
|
25
|
+
layout: {
|
|
26
|
+
stacked: "flex flex-col gap-0.5",
|
|
27
|
+
inline: "grid gap-0.5 sm:grid-cols-[minmax(7rem,40%)_minmax(0,1fr)] sm:items-baseline sm:gap-3"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
defaultVariants: { layout: "stacked" }
|
|
31
|
+
});
|
|
32
|
+
var toText = (value) => value == null ? "" : String(value);
|
|
33
|
+
function PropertyRows({
|
|
34
|
+
items,
|
|
35
|
+
layout,
|
|
36
|
+
density,
|
|
37
|
+
hideEmpty,
|
|
38
|
+
onSave,
|
|
39
|
+
labels,
|
|
40
|
+
inlineEditLabels
|
|
41
|
+
}) {
|
|
42
|
+
const [showEmpty, setShowEmpty] = React.useState(false);
|
|
43
|
+
const id = React.useId();
|
|
44
|
+
const isEmpty = (item) => toText(item.value).trim() === "";
|
|
45
|
+
const emptyCount = hideEmpty ? items.filter(isEmpty).length : 0;
|
|
46
|
+
const visible = hideEmpty && !showEmpty ? items.filter((i) => !isEmpty(i)) : items;
|
|
47
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
48
|
+
/* @__PURE__ */ jsx("dl", { "data-slot": "property-list-items", className: listVariants({ density }), children: visible.map((item, index) => {
|
|
49
|
+
const text = toText(item.value);
|
|
50
|
+
const editable = item.editable && !!onSave;
|
|
51
|
+
const hintId = `${id}-hint-${index}`;
|
|
52
|
+
return /* @__PURE__ */ jsxs(
|
|
53
|
+
"div",
|
|
54
|
+
{
|
|
55
|
+
"data-slot": "property-list-row",
|
|
56
|
+
className: rowVariants({ layout }),
|
|
57
|
+
children: [
|
|
58
|
+
/* @__PURE__ */ jsx("dt", { className: "text-muted-foreground px-2 text-xs font-medium sm:text-sm", children: item.label }),
|
|
59
|
+
/* @__PURE__ */ jsxs("dd", { className: "m-0 min-w-0", children: [
|
|
60
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-1", children: [
|
|
61
|
+
/* @__PURE__ */ jsx(
|
|
62
|
+
InlineEdit,
|
|
63
|
+
{
|
|
64
|
+
className: "min-w-0 flex-1",
|
|
65
|
+
size: "sm",
|
|
66
|
+
label: item.label,
|
|
67
|
+
value: text,
|
|
68
|
+
type: item.type,
|
|
69
|
+
options: item.options,
|
|
70
|
+
validate: item.validate,
|
|
71
|
+
formatDisplay: item.render,
|
|
72
|
+
placeholder: editable ? item.placeholder ?? labels.empty : labels.empty,
|
|
73
|
+
readOnly: !editable,
|
|
74
|
+
labels: inlineEditLabels,
|
|
75
|
+
"aria-describedby": item.hint ? hintId : void 0,
|
|
76
|
+
onSave: (next) => onSave?.(item.key, next)
|
|
77
|
+
}
|
|
78
|
+
),
|
|
79
|
+
item.copyable && text && /* @__PURE__ */ jsx(
|
|
80
|
+
CopyButton,
|
|
81
|
+
{
|
|
82
|
+
value: text,
|
|
83
|
+
label: labels.copy(item.label),
|
|
84
|
+
copiedLabel: labels.copied
|
|
85
|
+
}
|
|
86
|
+
)
|
|
87
|
+
] }),
|
|
88
|
+
item.hint && /* @__PURE__ */ jsx(
|
|
89
|
+
"p",
|
|
90
|
+
{
|
|
91
|
+
id: hintId,
|
|
92
|
+
className: "text-muted-foreground mt-0.5 px-2 text-xs",
|
|
93
|
+
children: item.hint
|
|
94
|
+
}
|
|
95
|
+
)
|
|
96
|
+
] })
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
item.key
|
|
100
|
+
);
|
|
101
|
+
}) }),
|
|
102
|
+
emptyCount > 0 && /* @__PURE__ */ jsx(
|
|
103
|
+
"button",
|
|
104
|
+
{
|
|
105
|
+
type: "button",
|
|
106
|
+
"data-slot": "property-list-empty-toggle",
|
|
107
|
+
"aria-expanded": showEmpty,
|
|
108
|
+
onClick: () => setShowEmpty((v) => !v),
|
|
109
|
+
className: "text-muted-foreground hover:text-foreground focus-visible:ring-ring mt-1 rounded px-2 py-1 text-xs focus-visible:ring-2 focus-visible:outline-none",
|
|
110
|
+
children: showEmpty ? labels.hideEmpty(emptyCount) : labels.showEmpty(emptyCount)
|
|
111
|
+
}
|
|
112
|
+
)
|
|
113
|
+
] });
|
|
114
|
+
}
|
|
115
|
+
var PropertyList = React.forwardRef(
|
|
116
|
+
function PropertyList2({
|
|
117
|
+
items,
|
|
118
|
+
groups,
|
|
119
|
+
onSave,
|
|
120
|
+
hideEmpty,
|
|
121
|
+
layout,
|
|
122
|
+
density,
|
|
123
|
+
headingLevel = 3,
|
|
124
|
+
storageKey,
|
|
125
|
+
labels: labelOverrides,
|
|
126
|
+
inlineEditLabels,
|
|
127
|
+
className,
|
|
128
|
+
...props
|
|
129
|
+
}, ref) {
|
|
130
|
+
const labels = { ...defaultPropertyListLabels, ...labelOverrides };
|
|
131
|
+
const rowProps = {
|
|
132
|
+
layout: layout ?? "stacked",
|
|
133
|
+
density: density ?? "comfortable",
|
|
134
|
+
hideEmpty,
|
|
135
|
+
onSave,
|
|
136
|
+
labels,
|
|
137
|
+
inlineEditLabels
|
|
138
|
+
};
|
|
139
|
+
const Heading = `h${headingLevel}`;
|
|
140
|
+
return /* @__PURE__ */ jsx(
|
|
141
|
+
"div",
|
|
142
|
+
{
|
|
143
|
+
ref,
|
|
144
|
+
"data-slot": "property-list",
|
|
145
|
+
className: cn("min-w-0", className),
|
|
146
|
+
...props,
|
|
147
|
+
children: groups ? groups.map((group) => /* @__PURE__ */ jsxs(
|
|
148
|
+
Collapsible,
|
|
149
|
+
{
|
|
150
|
+
defaultOpen: group.defaultOpen ?? true,
|
|
151
|
+
storageKey: storageKey && `${storageKey}:${group.id}`,
|
|
152
|
+
"data-slot": "property-list-group",
|
|
153
|
+
className: "border-border border-b py-1 last:border-b-0",
|
|
154
|
+
children: [
|
|
155
|
+
/* @__PURE__ */ jsx(Heading, { className: "m-0", children: /* @__PURE__ */ jsxs(CollapsibleTrigger, { className: "group text-foreground hover:bg-muted focus-visible:ring-ring flex w-full items-center gap-2 rounded-md px-2 py-2 text-start text-sm font-semibold focus-visible:ring-2 focus-visible:outline-none", children: [
|
|
156
|
+
/* @__PURE__ */ jsx(
|
|
157
|
+
ChevronDown,
|
|
158
|
+
{
|
|
159
|
+
"aria-hidden": "true",
|
|
160
|
+
className: "text-muted-foreground h-4 w-4 shrink-0 transition-transform group-data-[state=closed]:-rotate-90 motion-reduce:transition-none rtl:group-data-[state=closed]:rotate-90"
|
|
161
|
+
}
|
|
162
|
+
),
|
|
163
|
+
group.title
|
|
164
|
+
] }) }),
|
|
165
|
+
/* @__PURE__ */ jsx(CollapsibleContent, { children: /* @__PURE__ */ jsx("div", { className: "pb-2", children: /* @__PURE__ */ jsx(PropertyRows, { items: group.items, ...rowProps }) }) })
|
|
166
|
+
]
|
|
167
|
+
},
|
|
168
|
+
group.id
|
|
169
|
+
)) : /* @__PURE__ */ jsx(PropertyRows, { items: items ?? [], ...rowProps })
|
|
170
|
+
}
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
);
|
|
174
|
+
PropertyList.displayName = "PropertyList";
|
|
175
|
+
|
|
176
|
+
export { PropertyList, defaultPropertyListLabels };
|
|
177
|
+
//# sourceMappingURL=chunk-7HUTR6RX.js.map
|
|
178
|
+
//# sourceMappingURL=chunk-7HUTR6RX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/PropertyList/PropertyList.tsx"],"names":["PropertyList"],"mappings":"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","file":"chunk-7HUTR6RX.js","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ChevronDown } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '../Collapsible';\nimport { CopyButton } from '../CopyButton';\nimport {\n InlineEdit,\n type InlineEditLabels,\n type InlineEditOption,\n type InlineEditType,\n} from '../InlineEdit';\n\nexport interface PropertyListItem {\n key: string;\n label: string;\n value: string | number | null | undefined;\n /** Control used when editing; also drives display formatting. */\n type?: InlineEditType;\n options?: InlineEditOption[];\n /** Edit in place with `InlineEdit` (requires `onSave`). */\n editable?: boolean;\n /** Helper text under the value. */\n hint?: string;\n /** Show a copy-to-clipboard button for non-empty values. */\n copyable?: boolean;\n /** Custom display of a non-empty value. */\n render?: (value: string) => React.ReactNode;\n validate?: (value: string) => string | undefined;\n /** Shown for an empty editable value instead of `labels.empty`. */\n placeholder?: string;\n}\n\nexport interface PropertyListGroup {\n id: string;\n title: string;\n items: PropertyListItem[];\n /** Defaults to true. */\n defaultOpen?: boolean;\n}\n\nexport interface PropertyListLabels {\n /** Shown for empty values. */\n empty: string;\n copy: (label: string) => string;\n copied: string;\n showEmpty: (count: number) => string;\n hideEmpty: (count: number) => string;\n}\n\nexport const defaultPropertyListLabels: PropertyListLabels = {\n empty: '—',\n copy: (label) => `Copy ${label}`,\n copied: 'Copied',\n showEmpty: (count) => `Show ${count} empty field${count === 1 ? '' : 's'}`,\n hideEmpty: (count) => `Hide ${count} empty field${count === 1 ? '' : 's'}`,\n};\n\nconst listVariants = cva('m-0', {\n variants: {\n density: { comfortable: 'space-y-3', compact: 'space-y-1' },\n },\n defaultVariants: { density: 'comfortable' },\n});\n\nconst rowVariants = cva('min-w-0', {\n variants: {\n layout: {\n stacked: 'flex flex-col gap-0.5',\n inline:\n 'grid gap-0.5 sm:grid-cols-[minmax(7rem,40%)_minmax(0,1fr)] sm:items-baseline sm:gap-3',\n },\n },\n defaultVariants: { layout: 'stacked' },\n});\n\ntype Layout = NonNullable<VariantProps<typeof rowVariants>['layout']>;\ntype Density = NonNullable<VariantProps<typeof listVariants>['density']>;\n\nexport interface PropertyListProps\n extends\n Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>,\n VariantProps<typeof listVariants>,\n VariantProps<typeof rowVariants> {\n /** Flat list of properties. Ignored when `groups` is set. */\n items?: PropertyListItem[];\n /** Collapsible sections of properties. */\n groups?: PropertyListGroup[];\n /** Persist an edited value. Rejecting restores the previous value. */\n onSave?: (key: string, value: string) => void | Promise<void>;\n /** Hide empty values behind a \"Show N empty fields\" toggle. */\n hideEmpty?: boolean;\n /** Heading level for group titles. */\n headingLevel?: 2 | 3 | 4 | 5 | 6;\n /** Remember each group's open state in localStorage under `${storageKey}:${group.id}`. */\n storageKey?: string;\n /** Translatable strings. */\n labels?: Partial<PropertyListLabels>;\n /** Strings forwarded to each `InlineEdit`. */\n inlineEditLabels?: Partial<InlineEditLabels>;\n}\n\nconst toText = (value: PropertyListItem['value']) =>\n value == null ? '' : String(value);\n\ninterface RowsProps {\n items: PropertyListItem[];\n layout: Layout;\n density: Density;\n hideEmpty?: boolean;\n onSave?: PropertyListProps['onSave'];\n labels: PropertyListLabels;\n inlineEditLabels?: Partial<InlineEditLabels>;\n}\n\nfunction PropertyRows({\n items,\n layout,\n density,\n hideEmpty,\n onSave,\n labels,\n inlineEditLabels,\n}: RowsProps) {\n const [showEmpty, setShowEmpty] = React.useState(false);\n const id = React.useId();\n const isEmpty = (item: PropertyListItem) => toText(item.value).trim() === '';\n const emptyCount = hideEmpty ? items.filter(isEmpty).length : 0;\n const visible =\n hideEmpty && !showEmpty ? items.filter((i) => !isEmpty(i)) : items;\n\n return (\n <>\n <dl data-slot=\"property-list-items\" className={listVariants({ density })}>\n {visible.map((item, index) => {\n const text = toText(item.value);\n const editable = item.editable && !!onSave;\n const hintId = `${id}-hint-${index}`;\n return (\n <div\n key={item.key}\n data-slot=\"property-list-row\"\n className={rowVariants({ layout })}\n >\n <dt className=\"text-muted-foreground px-2 text-xs font-medium sm:text-sm\">\n {item.label}\n </dt>\n <dd className=\"m-0 min-w-0\">\n <div className=\"flex min-w-0 items-center gap-1\">\n <InlineEdit\n className=\"min-w-0 flex-1\"\n size=\"sm\"\n label={item.label}\n value={text}\n type={item.type}\n options={item.options}\n validate={item.validate}\n formatDisplay={item.render}\n placeholder={\n editable\n ? (item.placeholder ?? labels.empty)\n : labels.empty\n }\n readOnly={!editable}\n labels={inlineEditLabels}\n aria-describedby={item.hint ? hintId : undefined}\n onSave={(next) => onSave?.(item.key, next)}\n />\n {item.copyable && text && (\n <CopyButton\n value={text}\n label={labels.copy(item.label)}\n copiedLabel={labels.copied}\n />\n )}\n </div>\n {item.hint && (\n <p\n id={hintId}\n className=\"text-muted-foreground mt-0.5 px-2 text-xs\"\n >\n {item.hint}\n </p>\n )}\n </dd>\n </div>\n );\n })}\n </dl>\n {emptyCount > 0 && (\n <button\n type=\"button\"\n data-slot=\"property-list-empty-toggle\"\n aria-expanded={showEmpty}\n onClick={() => setShowEmpty((v) => !v)}\n className=\"text-muted-foreground hover:text-foreground focus-visible:ring-ring mt-1 rounded px-2 py-1 text-xs focus-visible:ring-2 focus-visible:outline-none\"\n >\n {showEmpty\n ? labels.hideEmpty(emptyCount)\n : labels.showEmpty(emptyCount)}\n </button>\n )}\n </>\n );\n}\n\n/**\n * Label/value pairs as a description list, with optional in-place editing,\n * copy buttons and collapsible groups.\n */\nexport const PropertyList = React.forwardRef<HTMLDivElement, PropertyListProps>(\n function PropertyList(\n {\n items,\n groups,\n onSave,\n hideEmpty,\n layout,\n density,\n headingLevel = 3,\n storageKey,\n labels: labelOverrides,\n inlineEditLabels,\n className,\n ...props\n },\n ref\n ) {\n const labels = { ...defaultPropertyListLabels, ...labelOverrides };\n const rowProps = {\n layout: layout ?? 'stacked',\n density: density ?? 'comfortable',\n hideEmpty,\n onSave,\n labels,\n inlineEditLabels,\n };\n const Heading = `h${headingLevel}` as 'h3';\n\n return (\n <div\n ref={ref}\n data-slot=\"property-list\"\n className={cn('min-w-0', className)}\n {...props}\n >\n {groups ? (\n groups.map((group) => (\n <Collapsible\n key={group.id}\n defaultOpen={group.defaultOpen ?? true}\n storageKey={storageKey && `${storageKey}:${group.id}`}\n data-slot=\"property-list-group\"\n className=\"border-border border-b py-1 last:border-b-0\"\n >\n <Heading className=\"m-0\">\n <CollapsibleTrigger className=\"group text-foreground hover:bg-muted focus-visible:ring-ring flex w-full items-center gap-2 rounded-md px-2 py-2 text-start text-sm font-semibold focus-visible:ring-2 focus-visible:outline-none\">\n <ChevronDown\n aria-hidden=\"true\"\n className=\"text-muted-foreground h-4 w-4 shrink-0 transition-transform group-data-[state=closed]:-rotate-90 motion-reduce:transition-none rtl:group-data-[state=closed]:rotate-90\"\n />\n {group.title}\n </CollapsibleTrigger>\n </Heading>\n <CollapsibleContent>\n <div className=\"pb-2\">\n <PropertyRows items={group.items} {...rowProps} />\n </div>\n </CollapsibleContent>\n </Collapsible>\n ))\n ) : (\n <PropertyRows items={items ?? []} {...rowProps} />\n )}\n </div>\n );\n }\n);\n\nPropertyList.displayName = 'PropertyList';\n"]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkYGA35Z2P_cjs = require('./chunk-YGA35Z2P.cjs');
|
|
4
|
+
var chunkANMX7YDL_cjs = require('./chunk-ANMX7YDL.cjs');
|
|
5
|
+
var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
|
|
6
|
+
var lucideReact = require('lucide-react');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
|
|
9
|
+
function RecordState({
|
|
10
|
+
kind,
|
|
11
|
+
slot,
|
|
12
|
+
message,
|
|
13
|
+
retryLabel,
|
|
14
|
+
onRetry,
|
|
15
|
+
rows = 3,
|
|
16
|
+
className,
|
|
17
|
+
children
|
|
18
|
+
}) {
|
|
19
|
+
if (kind === "loading") {
|
|
20
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
21
|
+
"div",
|
|
22
|
+
{
|
|
23
|
+
role: "status",
|
|
24
|
+
"data-slot": slot,
|
|
25
|
+
className: chunkS5RVSXDV_cjs.cn("space-y-4 p-4", className),
|
|
26
|
+
children: [
|
|
27
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: message }),
|
|
28
|
+
Array.from({ length: rows }, (_, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
29
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkYGA35Z2P_cjs.Skeleton, { circle: true, width: 28, height: 28, className: "shrink-0" }),
|
|
30
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 space-y-2", children: [
|
|
31
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkYGA35Z2P_cjs.Skeleton, { variant: "text", width: "60%" }),
|
|
32
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkYGA35Z2P_cjs.Skeleton, { variant: "text", width: "35%" })
|
|
33
|
+
] })
|
|
34
|
+
] }, i))
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
40
|
+
"div",
|
|
41
|
+
{
|
|
42
|
+
"data-slot": slot,
|
|
43
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
44
|
+
"text-muted-foreground flex flex-col items-center justify-center gap-2 px-4 py-10 text-center text-sm",
|
|
45
|
+
className
|
|
46
|
+
),
|
|
47
|
+
children: [
|
|
48
|
+
kind === "error" ? /* @__PURE__ */ jsxRuntime.jsxs("p", { role: "alert", className: "text-foreground flex items-center gap-2", children: [
|
|
49
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.TriangleAlert, { className: "text-destructive size-4", "aria-hidden": true }),
|
|
50
|
+
message
|
|
51
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsx("p", { children: message }),
|
|
52
|
+
onRetry && retryLabel && /* @__PURE__ */ jsxRuntime.jsx(chunkANMX7YDL_cjs.Button, { variant: "ghost", size: "sm", onClick: onRetry, children: retryLabel }),
|
|
53
|
+
children
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
exports.RecordState = RecordState;
|
|
60
|
+
//# sourceMappingURL=chunk-7IRTD4JT.cjs.map
|
|
61
|
+
//# sourceMappingURL=chunk-7IRTD4JT.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ActivityFeed/RecordState.tsx"],"names":["jsxs","cn","jsx","Skeleton","TriangleAlert","Button"],"mappings":";;;;;;;;AAuBO,SAAS,WAAA,CAAY;AAAA,EAC1B,IAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA,GAAO,CAAA;AAAA,EACP,SAAA;AAAA,EACA;AACF,CAAA,EAAqB;AACnB,EAAA,IAAI,SAAS,SAAA,EAAW;AACtB,IAAA,uBACEA,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,WAAA,EAAW,IAAA;AAAA,QACX,SAAA,EAAWC,oBAAA,CAAG,eAAA,EAAiB,SAAS,CAAA;AAAA,QAExC,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAW,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,UAClC,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,IAAA,EAAK,EAAG,CAAC,CAAA,EAAG,CAAA,qBAChCF,eAAA,CAAC,KAAA,EAAA,EAAY,SAAA,EAAU,yBAAA,EACrB,QAAA,EAAA;AAAA,4BAAAE,cAAA,CAACC,0BAAA,EAAA,EAAS,QAAM,IAAA,EAAC,KAAA,EAAO,IAAI,MAAA,EAAQ,EAAA,EAAI,WAAU,UAAA,EAAW,CAAA;AAAA,4BAC7DH,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EACb,QAAA,EAAA;AAAA,8BAAAE,cAAA,CAACC,0BAAA,EAAA,EAAS,OAAA,EAAQ,MAAA,EAAO,KAAA,EAAM,KAAA,EAAM,CAAA;AAAA,8BACrCD,cAAA,CAACC,0BAAA,EAAA,EAAS,OAAA,EAAQ,MAAA,EAAO,OAAM,KAAA,EAAM;AAAA,aAAA,EACvC;AAAA,WAAA,EAAA,EALQ,CAMV,CACD;AAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACA,EAAA,uBACEH,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAWC,oBAAA;AAAA,QACT,sGAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,IAAA,KAAS,0BACRD,eAAA,CAAC,GAAA,EAAA,EAAE,IAAA,EAAK,OAAA,EAAQ,WAAU,yCAAA,EACxB,QAAA,EAAA;AAAA,0BAAAE,cAAA,CAACE,yBAAA,EAAA,EAAc,SAAA,EAAU,yBAAA,EAA0B,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,UAC9D;AAAA,SAAA,EACH,CAAA,mBAEAF,cAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,QAEb,OAAA,IAAW,UAAA,oBACVA,cAAA,CAACG,wBAAA,EAAA,EAAO,OAAA,EAAQ,SAAQ,IAAA,EAAK,IAAA,EAAK,OAAA,EAAS,OAAA,EACxC,QAAA,EAAA,UAAA,EACH,CAAA;AAAA,QAED;AAAA;AAAA;AAAA,GACH;AAEJ","file":"chunk-7IRTD4JT.cjs","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { TriangleAlert } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { Button } from '../Button';\nimport { Skeleton } from '../Skeleton';\n\nexport interface RecordStateProps {\n kind: 'loading' | 'error' | 'empty';\n /** `data-slot` value, so each module keeps its own slot name. */\n slot: string;\n message: string;\n retryLabel?: string;\n onRetry?: () => void;\n /** Skeleton rows while loading. */\n rows?: number;\n className?: string;\n /** Extra actions under an empty or error message. */\n children?: React.ReactNode;\n}\n\n/** The loading, error and empty states shared by the Records modules. */\nexport function RecordState({\n kind,\n slot,\n message,\n retryLabel,\n onRetry,\n rows = 3,\n className,\n children,\n}: RecordStateProps) {\n if (kind === 'loading') {\n return (\n <div\n role=\"status\"\n data-slot={slot}\n className={cn('space-y-4 p-4', className)}\n >\n <span className=\"sr-only\">{message}</span>\n {Array.from({ length: rows }, (_, i) => (\n <div key={i} className=\"flex items-center gap-3\">\n <Skeleton circle width={28} height={28} className=\"shrink-0\" />\n <div className=\"flex-1 space-y-2\">\n <Skeleton variant=\"text\" width=\"60%\" />\n <Skeleton variant=\"text\" width=\"35%\" />\n </div>\n </div>\n ))}\n </div>\n );\n }\n return (\n <div\n data-slot={slot}\n className={cn(\n 'text-muted-foreground flex flex-col items-center justify-center gap-2 px-4 py-10 text-center text-sm',\n className\n )}\n >\n {kind === 'error' ? (\n <p role=\"alert\" className=\"text-foreground flex items-center gap-2\">\n <TriangleAlert className=\"text-destructive size-4\" aria-hidden />\n {message}\n </p>\n ) : (\n <p>{message}</p>\n )}\n {onRetry && retryLabel && (\n <Button variant=\"ghost\" size=\"sm\" onClick={onRetry}>\n {retryLabel}\n </Button>\n )}\n {children}\n </div>\n );\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FenceBlock } from './chunk-
|
|
1
|
+
import { FenceBlock } from './chunk-HDY7YQFX.js';
|
|
2
2
|
import DOMPurify from 'dompurify';
|
|
3
3
|
import { useState, useMemo, useCallback, useEffect } from 'react';
|
|
4
4
|
import { jsx } from 'react/jsx-runtime';
|
|
@@ -144,5 +144,5 @@ var MermaidBlock = ({ code, id }) => {
|
|
|
144
144
|
};
|
|
145
145
|
|
|
146
146
|
export { MermaidBlock };
|
|
147
|
-
//# sourceMappingURL=chunk-
|
|
148
|
-
//# sourceMappingURL=chunk-
|
|
147
|
+
//# sourceMappingURL=chunk-7QW6TU4X.js.map
|
|
148
|
+
//# sourceMappingURL=chunk-7QW6TU4X.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Markdown/MermaidBlock.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/Markdown/MermaidBlock.tsx"],"names":[],"mappings":"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","file":"chunk-7QW6TU4X.js","sourcesContent":["/**\n * MermaidBlock — Renders Mermaid diagrams.\n * Requires `mermaid` to be installed by the consumer (optional peer dependency).\n */\nimport DOMPurify from 'dompurify';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { FenceBlock } from './FenceBlock';\n\ninterface MermaidBlockProps {\n code: string;\n id: string;\n}\n\ntype MermaidApi = {\n initialize: (config: Record<string, unknown>) => void;\n parse: (text: string) => Promise<unknown>;\n render: (id: string, text: string) => Promise<{ svg: string }>;\n};\n\nlet mermaidInstance: MermaidApi | null = null;\nlet mermaidReady: Promise<MermaidApi> | null = null;\nlet mermaidTheme: 'dark' | 'default' = 'default';\n\nfunction currentTheme(): 'dark' | 'default' {\n return document.documentElement.classList.contains('dark') ||\n document.documentElement.getAttribute('data-theme') === 'dark'\n ? 'dark'\n : 'default';\n}\n\nfunction buildConfig(theme: 'dark' | 'default'): Record<string, unknown> {\n const base: Record<string, unknown> = {\n startOnLoad: false,\n theme,\n securityLevel: 'strict',\n };\n if (theme === 'dark') {\n base.themeVariables = {\n nodeBorder: '#6b7280',\n mainBkg: '#4a4a4a',\n nodeTextColor: '#ffffff',\n clusterBkg: '#374151',\n titleColor: '#ffffff',\n edgeLabelBackground: '#374151',\n lineColor: '#9ca3af',\n };\n }\n return base;\n}\n\nasync function getMermaid(): Promise<MermaidApi> {\n const theme = currentTheme();\n if (mermaidInstance) {\n if (theme !== mermaidTheme) {\n mermaidTheme = theme;\n mermaidInstance.initialize(buildConfig(theme));\n }\n return mermaidInstance;\n }\n if (!mermaidReady) {\n mermaidReady = import(/* @vite-ignore */ 'mermaid').then((mod) => {\n const m = (mod as { default: MermaidApi }).default;\n mermaidTheme = currentTheme();\n m.initialize(buildConfig(mermaidTheme));\n mermaidInstance = m;\n return m;\n });\n }\n return mermaidReady;\n}\n\nfunction sanitiseSvg(svg: string): string {\n return DOMPurify.sanitize(svg, {\n USE_PROFILES: { svg: true, svgFilters: true },\n // Allow <style> so mermaid's embedded CSS applies, and <foreignObject>\n // so node label text renders (mermaid escapes its content in strict mode).\n ADD_TAGS: ['style', 'foreignObject'],\n ADD_ATTR: [\n 'style',\n 'class',\n 'dominant-baseline',\n 'text-anchor',\n 'font-size',\n 'font-family',\n 'marker-end',\n 'marker-start',\n 'marker-mid',\n 'stroke-dasharray',\n 'stroke-width',\n ],\n FORBID_TAGS: ['script'],\n FORBID_ATTR: ['onload', 'onerror', 'onclick', 'onmouseover'],\n }) as string;\n}\n\nexport const MermaidBlock: React.FC<MermaidBlockProps> = ({ code, id }) => {\n const [svg, setSvg] = useState<string>('');\n const [error, setError] = useState<string>('');\n const [loading, setLoading] = useState(true);\n\n // Derive an accessible label from the diagram's declared type (first keyword).\n const diagramLabel = useMemo(() => {\n const firstWord =\n code\n .trim()\n .split(/[\\s\\n]/)[0]\n ?.toLowerCase() ?? '';\n const typeMap: Record<string, string> = {\n graph: 'Flowchart',\n flowchart: 'Flowchart',\n sequencediagram: 'Sequence diagram',\n classdiagram: 'Class diagram',\n statediagram: 'State diagram',\n 'statediagram-v2': 'State diagram',\n erdiagram: 'Entity relationship diagram',\n gantt: 'Gantt chart',\n pie: 'Pie chart',\n journey: 'User journey diagram',\n gitgraph: 'Git graph',\n mindmap: 'Mind map',\n timeline: 'Timeline',\n quadrantchart: 'Quadrant chart',\n };\n return `${typeMap[firstWord] ?? 'Mermaid'} diagram`;\n }, [code]);\n\n const render = useCallback(async () => {\n setLoading(true);\n setError('');\n try {\n const mermaid = await getMermaid();\n await mermaid.parse(code);\n const { svg: rendered } = await mermaid.render(`mermaid-${id}`, code);\n setSvg(sanitiseSvg(rendered));\n } catch (err) {\n setError((err as Error).message ?? 'Failed to render diagram');\n } finally {\n setLoading(false);\n }\n }, [code, id]);\n\n useEffect(() => {\n void render();\n }, [render]);\n\n // Re-render when the page theme changes (dark ↔ light)\n useEffect(() => {\n const observer = new MutationObserver(() => void render());\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['class', 'data-theme'],\n });\n return () => observer.disconnect();\n }, [render]);\n\n return (\n <FenceBlock\n code={code}\n language=\"mermaid\"\n supportsRawView\n error={error || undefined}\n >\n {loading ? (\n <div className=\"flex items-center justify-center p-8\">\n <div className=\"border-primary-500 h-6 w-6 animate-spin rounded-full border-2 border-t-transparent\" />\n </div>\n ) : (\n <div\n className=\"mermaid-svg flex justify-center p-4\"\n role=\"img\"\n aria-label={diagramLabel}\n dangerouslySetInnerHTML={{ __html: svg }}\n />\n )}\n </FenceBlock>\n );\n};\n"]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
|
|
5
|
+
// src/hooks/useUrlTab.ts
|
|
6
|
+
var URL_PARAM_EVENT = "mieweb:urlparamchange";
|
|
7
|
+
function subscribe(onChange) {
|
|
8
|
+
window.addEventListener("popstate", onChange);
|
|
9
|
+
window.addEventListener(URL_PARAM_EVENT, onChange);
|
|
10
|
+
return () => {
|
|
11
|
+
window.removeEventListener("popstate", onChange);
|
|
12
|
+
window.removeEventListener(URL_PARAM_EVENT, onChange);
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function useUrlSearchParam(param, defaultValue, isAllowed) {
|
|
16
|
+
const raw = react.useSyncExternalStore(
|
|
17
|
+
subscribe,
|
|
18
|
+
() => param ? new globalThis.URLSearchParams(window.location.search).get(param) : null,
|
|
19
|
+
() => null
|
|
20
|
+
);
|
|
21
|
+
const value = raw !== null && isAllowed(raw) ? raw : defaultValue;
|
|
22
|
+
const setValue = react.useCallback(
|
|
23
|
+
(next) => {
|
|
24
|
+
if (!param || typeof window === "undefined") return;
|
|
25
|
+
const url = new URL(window.location.href);
|
|
26
|
+
if (next === defaultValue) url.searchParams.delete(param);
|
|
27
|
+
else url.searchParams.set(param, next);
|
|
28
|
+
window.history.replaceState(window.history.state, "", url);
|
|
29
|
+
window.dispatchEvent(new Event(URL_PARAM_EVENT));
|
|
30
|
+
},
|
|
31
|
+
[param, defaultValue]
|
|
32
|
+
);
|
|
33
|
+
return [value, setValue];
|
|
34
|
+
}
|
|
35
|
+
function useUrlTab(param, defaultValue, allowed) {
|
|
36
|
+
const [value, setValue] = useUrlSearchParam(
|
|
37
|
+
param,
|
|
38
|
+
defaultValue,
|
|
39
|
+
(v) => allowed.includes(v)
|
|
40
|
+
);
|
|
41
|
+
return [value, setValue];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
exports.useUrlSearchParam = useUrlSearchParam;
|
|
45
|
+
exports.useUrlTab = useUrlTab;
|
|
46
|
+
//# sourceMappingURL=chunk-7WJ6MBF5.cjs.map
|
|
47
|
+
//# sourceMappingURL=chunk-7WJ6MBF5.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/useUrlTab.ts"],"names":["useSyncExternalStore","useCallback"],"mappings":";;;;;AAGA,IAAM,eAAA,GAAkB,uBAAA;AAExB,SAAS,UAAU,QAAA,EAAsB;AACvC,EAAA,MAAA,CAAO,gBAAA,CAAiB,YAAY,QAAQ,CAAA;AAC5C,EAAA,MAAA,CAAO,gBAAA,CAAiB,iBAAiB,QAAQ,CAAA;AACjD,EAAA,OAAO,MAAM;AACX,IAAA,MAAA,CAAO,mBAAA,CAAoB,YAAY,QAAQ,CAAA;AAC/C,IAAA,MAAA,CAAO,mBAAA,CAAoB,iBAAiB,QAAQ,CAAA;AAAA,EACtD,CAAA;AACF;AAOO,SAAS,iBAAA,CACd,KAAA,EACA,YAAA,EACA,SAAA,EACmC;AACnC,EAAA,MAAM,GAAA,GAAMA,0BAAA;AAAA,IACV,SAAA;AAAA,IACA,MACE,KAAA,GACI,IAAI,UAAA,CAAW,eAAA,CAAgB,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA,CAAE,GAAA,CAAI,KAAK,CAAA,GAChE,IAAA;AAAA,IACN,MAAM;AAAA,GACR;AACA,EAAA,MAAM,QAAQ,GAAA,KAAQ,IAAA,IAAQ,SAAA,CAAU,GAAG,IAAI,GAAA,GAAM,YAAA;AAErD,EAAA,MAAM,QAAA,GAAWC,iBAAA;AAAA,IACf,CAAC,IAAA,KAAiB;AAChB,MAAA,IAAI,CAAC,KAAA,IAAS,OAAO,MAAA,KAAW,WAAA,EAAa;AAC7C,MAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,MAAA,CAAO,SAAS,IAAI,CAAA;AACxC,MAAA,IAAI,IAAA,KAAS,YAAA,EAAc,GAAA,CAAI,YAAA,CAAa,OAAO,KAAK,CAAA;AAAA,WACnD,GAAA,CAAI,YAAA,CAAa,GAAA,CAAI,KAAA,EAAO,IAAI,CAAA;AACrC,MAAA,MAAA,CAAO,QAAQ,YAAA,CAAa,MAAA,CAAO,OAAA,CAAQ,KAAA,EAAO,IAAI,GAAG,CAAA;AACzD,MAAA,MAAA,CAAO,aAAA,CAAc,IAAI,KAAA,CAAM,eAAe,CAAC,CAAA;AAAA,IACjD,CAAA;AAAA,IACA,CAAC,OAAO,YAAY;AAAA,GACtB;AAEA,EAAA,OAAO,CAAC,OAAO,QAAQ,CAAA;AACzB;AAgBO,SAAS,SAAA,CACd,KAAA,EACA,YAAA,EACA,OAAA,EACyB;AACzB,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,iBAAA;AAAA,IAAkB,KAAA;AAAA,IAAO,YAAA;AAAA,IAAc,CAAC,CAAA,KAC/D,OAAA,CAA8B,QAAA,CAAS,CAAC;AAAA,GAC3C;AACA,EAAA,OAAO,CAAC,OAAY,QAA8B,CAAA;AACpD","file":"chunk-7WJ6MBF5.cjs","sourcesContent":["import { useCallback, useSyncExternalStore } from 'react';\n\n// history.replaceState fires no event, so writers announce changes themselves.\nconst URL_PARAM_EVENT = 'mieweb:urlparamchange';\n\nfunction subscribe(onChange: () => void) {\n window.addEventListener('popstate', onChange);\n window.addEventListener(URL_PARAM_EVENT, onChange);\n return () => {\n window.removeEventListener('popstate', onChange);\n window.removeEventListener(URL_PARAM_EVENT, onChange);\n };\n}\n\n/**\n * Syncs one URL query parameter with a string value. `param: undefined`\n * disables the sync, so callers can toggle it without breaking hook order.\n * Not exported from the package; use {@link useUrlTab}.\n */\nexport function useUrlSearchParam(\n param: string | undefined,\n defaultValue: string,\n isAllowed: (value: string) => boolean\n): [string, (value: string) => void] {\n const raw = useSyncExternalStore(\n subscribe,\n () =>\n param\n ? new globalThis.URLSearchParams(window.location.search).get(param)\n : null,\n () => null\n );\n const value = raw !== null && isAllowed(raw) ? raw : defaultValue;\n\n const setValue = useCallback(\n (next: string) => {\n if (!param || typeof window === 'undefined') return;\n const url = new URL(window.location.href);\n if (next === defaultValue) url.searchParams.delete(param);\n else url.searchParams.set(param, next);\n window.history.replaceState(window.history.state, '', url);\n window.dispatchEvent(new Event(URL_PARAM_EVENT));\n },\n [param, defaultValue]\n );\n\n return [value, setValue];\n}\n\n/**\n * Keeps a tab (or any one-of-N view) selection in a URL query parameter so it\n * survives reloads and can be shared. Writes with `history.replaceState` (no\n * router, no history entry), drops the parameter when the value equals\n * `defaultValue`, follows back/forward via `popstate`, and ignores values not\n * in `allowed`. SSR-safe: renders `defaultValue` on the server and during\n * hydration.\n *\n * @example\n * ```tsx\n * const [tab, setTab] = useUrlTab('tab', 'summary', ['summary', 'history'] as const);\n * <Tabs value={tab} onValueChange={(v) => setTab(v as typeof tab)}>…</Tabs>\n * ```\n */\nexport function useUrlTab<T extends string>(\n param: string,\n defaultValue: T,\n allowed: readonly T[]\n): [T, (value: T) => void] {\n const [value, setValue] = useUrlSearchParam(param, defaultValue, (v) =>\n (allowed as readonly string[]).includes(v)\n );\n return [value as T, setValue as (value: T) => void];\n}\n"]}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var luxon = require('luxon');
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
|
|
8
|
+
function _interopNamespace(e) {
|
|
9
|
+
if (e && e.__esModule) return e;
|
|
10
|
+
var n = Object.create(null);
|
|
11
|
+
if (e) {
|
|
12
|
+
Object.keys(e).forEach(function (k) {
|
|
13
|
+
if (k !== 'default') {
|
|
14
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return e[k]; }
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
n.default = e;
|
|
23
|
+
return Object.freeze(n);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
27
|
+
|
|
28
|
+
var defaultCalendarHeatmapLabels = {
|
|
29
|
+
title: "Activity calendar",
|
|
30
|
+
cellLabel: (date, value) => `${date}: ${value}`,
|
|
31
|
+
summary: (total, activeDays) => `${total} total across ${activeDays} active ${activeDays === 1 ? "day" : "days"}`,
|
|
32
|
+
less: "Less",
|
|
33
|
+
more: "More"
|
|
34
|
+
};
|
|
35
|
+
var LEVELS = [
|
|
36
|
+
"bg-muted ring-1 ring-inset ring-border",
|
|
37
|
+
"bg-primary-500/25",
|
|
38
|
+
"bg-primary-500/50",
|
|
39
|
+
"bg-primary-500/75",
|
|
40
|
+
"bg-primary-500"
|
|
41
|
+
];
|
|
42
|
+
function level(value, max) {
|
|
43
|
+
if (value <= 0 || max <= 0) return 0;
|
|
44
|
+
return Math.min(4, Math.max(1, Math.ceil(value / max * 4)));
|
|
45
|
+
}
|
|
46
|
+
var CELL = "block h-3 w-3 rounded-sm";
|
|
47
|
+
var CalendarHeatmap = React__namespace.forwardRef(function CalendarHeatmap2({
|
|
48
|
+
data,
|
|
49
|
+
start,
|
|
50
|
+
end,
|
|
51
|
+
weekStartsOn = 0,
|
|
52
|
+
locale,
|
|
53
|
+
onDayClick,
|
|
54
|
+
labels: labelOverrides,
|
|
55
|
+
className,
|
|
56
|
+
...props
|
|
57
|
+
}, ref) {
|
|
58
|
+
const labels = { ...defaultCalendarHeatmapLabels, ...labelOverrides };
|
|
59
|
+
const loc = (d) => locale ? d.setLocale(locale) : d;
|
|
60
|
+
const cells = React__namespace.useRef(/* @__PURE__ */ new Map());
|
|
61
|
+
const [active, setActive] = React__namespace.useState(null);
|
|
62
|
+
const grid = React__namespace.useMemo(() => {
|
|
63
|
+
const parse = (iso) => {
|
|
64
|
+
const d = iso ? luxon.DateTime.fromISO(iso) : null;
|
|
65
|
+
return d?.isValid ? d.startOf("day") : null;
|
|
66
|
+
};
|
|
67
|
+
const end_ = parse(end) ?? luxon.DateTime.now().startOf("day");
|
|
68
|
+
const start_ = parse(start) ?? end_.minus({ weeks: 12 }).plus({ days: 1 });
|
|
69
|
+
const [first, last] = start_ <= end_ ? [start_, end_] : [end_, start_];
|
|
70
|
+
const origin = first.minus({
|
|
71
|
+
days: (first.weekday % 7 - weekStartsOn + 7) % 7
|
|
72
|
+
});
|
|
73
|
+
const weeks = Math.ceil(
|
|
74
|
+
(Math.round(last.diff(origin, "days").days) + 1) / 7
|
|
75
|
+
);
|
|
76
|
+
const values = /* @__PURE__ */ new Map();
|
|
77
|
+
for (const d of data) {
|
|
78
|
+
const key = luxon.DateTime.fromISO(d.date).toISODate();
|
|
79
|
+
if (key) values.set(key, (values.get(key) ?? 0) + d.value);
|
|
80
|
+
}
|
|
81
|
+
const days = Array.from(
|
|
82
|
+
{ length: weeks },
|
|
83
|
+
(_, w) => Array.from({ length: 7 }, (_2, r) => {
|
|
84
|
+
const date = origin.plus({ days: w * 7 + r });
|
|
85
|
+
const iso = date.toISODate();
|
|
86
|
+
const inRange2 = date >= first && date <= last;
|
|
87
|
+
return {
|
|
88
|
+
date,
|
|
89
|
+
iso,
|
|
90
|
+
inRange: inRange2,
|
|
91
|
+
value: inRange2 ? values.get(iso) ?? 0 : 0
|
|
92
|
+
};
|
|
93
|
+
})
|
|
94
|
+
);
|
|
95
|
+
const inRange = days.flat().filter((d) => d.inRange);
|
|
96
|
+
const max = Math.max(0, ...inRange.map((d) => d.value));
|
|
97
|
+
const total = inRange.reduce((sum, d) => sum + d.value, 0);
|
|
98
|
+
const activeDays = inRange.filter((d) => d.value > 0).length;
|
|
99
|
+
const months = [];
|
|
100
|
+
for (const week of days) {
|
|
101
|
+
const date = (week.find((d) => d.inRange) ?? week[0]).date;
|
|
102
|
+
const key = date.toFormat("yyyy-MM");
|
|
103
|
+
const prev = months[months.length - 1];
|
|
104
|
+
if (prev?.key === key) prev.span += 1;
|
|
105
|
+
else months.push({ key, date, span: 1 });
|
|
106
|
+
}
|
|
107
|
+
return { days, first, last, max, total, activeDays, months };
|
|
108
|
+
}, [data, start, end, weekStartsOn]);
|
|
109
|
+
const activeDate = active ? luxon.DateTime.fromISO(active) : null;
|
|
110
|
+
const focusable = activeDate && activeDate >= grid.first && activeDate <= grid.last ? active : grid.last.toISODate();
|
|
111
|
+
const onKeyDown = (e) => {
|
|
112
|
+
if (!focusable) return;
|
|
113
|
+
const rtl = getComputedStyle(e.currentTarget).direction === "rtl";
|
|
114
|
+
const delta = {
|
|
115
|
+
ArrowUp: -1,
|
|
116
|
+
ArrowDown: 1,
|
|
117
|
+
ArrowLeft: rtl ? 7 : -7,
|
|
118
|
+
ArrowRight: rtl ? -7 : 7
|
|
119
|
+
};
|
|
120
|
+
if (!delta[e.key]) return;
|
|
121
|
+
e.preventDefault();
|
|
122
|
+
const next = luxon.DateTime.fromISO(focusable).plus({ days: delta[e.key] });
|
|
123
|
+
if (next < grid.first || next > grid.last) return;
|
|
124
|
+
const iso = next.toISODate();
|
|
125
|
+
setActive(iso);
|
|
126
|
+
cells.current.get(iso)?.focus();
|
|
127
|
+
};
|
|
128
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
129
|
+
"div",
|
|
130
|
+
{
|
|
131
|
+
ref,
|
|
132
|
+
"data-slot": "calendar-heatmap",
|
|
133
|
+
className: chunkS5RVSXDV_cjs.cn("inline-flex max-w-full flex-col gap-2", className),
|
|
134
|
+
...props,
|
|
135
|
+
children: [
|
|
136
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
137
|
+
"table",
|
|
138
|
+
{
|
|
139
|
+
role: onDayClick ? "grid" : void 0,
|
|
140
|
+
"aria-label": labels.title,
|
|
141
|
+
className: "text-muted-foreground border-separate border-spacing-[3px] text-[10px] leading-none",
|
|
142
|
+
children: [
|
|
143
|
+
/* @__PURE__ */ jsxRuntime.jsx("caption", { className: "sr-only", children: labels.summary(grid.total, grid.activeDays) }),
|
|
144
|
+
/* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
|
|
145
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", {}),
|
|
146
|
+
grid.months.map((m) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
147
|
+
"th",
|
|
148
|
+
{
|
|
149
|
+
scope: "colgroup",
|
|
150
|
+
colSpan: m.span,
|
|
151
|
+
className: "pb-1 text-start font-normal whitespace-nowrap",
|
|
152
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: m.span < 2 ? "sr-only" : void 0, children: loc(m.date).toFormat("LLL") })
|
|
153
|
+
},
|
|
154
|
+
m.key
|
|
155
|
+
))
|
|
156
|
+
] }) }),
|
|
157
|
+
/* @__PURE__ */ jsxRuntime.jsx("tbody", { children: Array.from({ length: 7 }, (_, r) => /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
|
|
158
|
+
/* @__PURE__ */ jsxRuntime.jsx("th", { scope: "row", className: "pe-1 text-start font-normal", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: r % 2 === 1 ? void 0 : "sr-only", children: loc(grid.days[0][r].date).toFormat("ccc") }) }),
|
|
159
|
+
grid.days.map((week) => {
|
|
160
|
+
const day = week[r];
|
|
161
|
+
if (!day.inRange) return /* @__PURE__ */ jsxRuntime.jsx("td", {}, day.iso);
|
|
162
|
+
const label = labels.cellLabel(
|
|
163
|
+
loc(day.date).toLocaleString(
|
|
164
|
+
luxon.DateTime.DATE_MED_WITH_WEEKDAY
|
|
165
|
+
),
|
|
166
|
+
day.value,
|
|
167
|
+
day.iso
|
|
168
|
+
);
|
|
169
|
+
const swatch = chunkS5RVSXDV_cjs.cn(CELL, LEVELS[level(day.value, grid.max)]);
|
|
170
|
+
return /* @__PURE__ */ jsxRuntime.jsx("td", { className: "p-0", children: onDayClick ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
171
|
+
"button",
|
|
172
|
+
{
|
|
173
|
+
type: "button",
|
|
174
|
+
ref: (el) => {
|
|
175
|
+
if (el) cells.current.set(day.iso, el);
|
|
176
|
+
else cells.current.delete(day.iso);
|
|
177
|
+
},
|
|
178
|
+
title: label,
|
|
179
|
+
tabIndex: day.iso === focusable ? 0 : -1,
|
|
180
|
+
onFocus: () => setActive(day.iso),
|
|
181
|
+
onClick: () => onDayClick(day.iso),
|
|
182
|
+
onKeyDown,
|
|
183
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
184
|
+
swatch,
|
|
185
|
+
"focus-visible:outline-ring focus-visible:outline-2 focus-visible:outline-offset-1"
|
|
186
|
+
),
|
|
187
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: label })
|
|
188
|
+
}
|
|
189
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: swatch, title: label, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: label }) }) }, day.iso);
|
|
190
|
+
})
|
|
191
|
+
] }, r)) })
|
|
192
|
+
]
|
|
193
|
+
}
|
|
194
|
+
) }),
|
|
195
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
196
|
+
"div",
|
|
197
|
+
{
|
|
198
|
+
"aria-hidden": "true",
|
|
199
|
+
"data-slot": "calendar-heatmap-legend",
|
|
200
|
+
className: "text-muted-foreground flex items-center gap-1 self-end text-[10px]",
|
|
201
|
+
children: [
|
|
202
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "me-1", children: labels.less }),
|
|
203
|
+
LEVELS.map((cls) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkS5RVSXDV_cjs.cn(CELL, cls) }, cls)),
|
|
204
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ms-1", children: labels.more })
|
|
205
|
+
]
|
|
206
|
+
}
|
|
207
|
+
)
|
|
208
|
+
]
|
|
209
|
+
}
|
|
210
|
+
);
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
exports.CalendarHeatmap = CalendarHeatmap;
|
|
214
|
+
exports.defaultCalendarHeatmapLabels = defaultCalendarHeatmapLabels;
|
|
215
|
+
//# sourceMappingURL=chunk-A4W5CSK7.cjs.map
|
|
216
|
+
//# sourceMappingURL=chunk-A4W5CSK7.cjs.map
|