@arbidocs/blocks 0.5.107 → 0.5.108
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/{ConnectedCallDock-TDYRHPAK.js → ConnectedCallDock-DV4FU376.js} +8 -8
- package/dist/{ConnectedCallDock-TDYRHPAK.js.map → ConnectedCallDock-DV4FU376.js.map} +1 -1
- package/dist/{ConnectedCallDock-H3WWFGXF.cjs → ConnectedCallDock-EM2VVGZK.cjs} +10 -10
- package/dist/{ConnectedCallDock-H3WWFGXF.cjs.map → ConnectedCallDock-EM2VVGZK.cjs.map} +1 -1
- package/dist/{ConnectedCallRoom-55O5OUN7.cjs → ConnectedCallRoom-7WEPEWUJ.cjs} +9 -9
- package/dist/{ConnectedCallRoom-55O5OUN7.cjs.map → ConnectedCallRoom-7WEPEWUJ.cjs.map} +1 -1
- package/dist/{ConnectedCallRoom-Z6F6WCLH.js → ConnectedCallRoom-RYTZP34O.js} +8 -8
- package/dist/{ConnectedCallRoom-Z6F6WCLH.js.map → ConnectedCallRoom-RYTZP34O.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-NVZRVNOS.js → ConnectedNativeDocxComparison-2NDXXZLQ.js} +15 -15
- package/dist/{ConnectedNativeDocxComparison-NVZRVNOS.js.map → ConnectedNativeDocxComparison-2NDXXZLQ.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-DGBZJ4XA.cjs → ConnectedNativeDocxComparison-7HOY3AVI.cjs} +16 -16
- package/dist/{ConnectedNativeDocxComparison-DGBZJ4XA.cjs.map → ConnectedNativeDocxComparison-7HOY3AVI.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-R4WINUUB.cjs → ConnectedNativeDocxEditor-CUWDPHXN.cjs} +16 -16
- package/dist/{ConnectedNativeDocxEditor-R4WINUUB.cjs.map → ConnectedNativeDocxEditor-CUWDPHXN.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-RSVBN7DY.js → ConnectedNativeDocxEditor-SPZB6Y27.js} +14 -14
- package/dist/{ConnectedNativeDocxEditor-RSVBN7DY.js.map → ConnectedNativeDocxEditor-SPZB6Y27.js.map} +1 -1
- package/dist/{ConnectedProductionSetDialog-2DFBXE2X.js → ConnectedProductionSetDialog-N3EDG3SU.js} +4 -4
- package/dist/{ConnectedProductionSetDialog-2DFBXE2X.js.map → ConnectedProductionSetDialog-N3EDG3SU.js.map} +1 -1
- package/dist/{ConnectedProductionSetDialog-KYDPQ7SG.cjs → ConnectedProductionSetDialog-XAEFEN3N.cjs} +4 -4
- package/dist/{ConnectedProductionSetDialog-KYDPQ7SG.cjs.map → ConnectedProductionSetDialog-XAEFEN3N.cjs.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-HLJ5IIOU.js → ConnectedStreamedWordArtifact-6LTGEAJO.js} +15 -15
- package/dist/ConnectedStreamedWordArtifact-6LTGEAJO.js.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-JQ34AOUU.cjs → ConnectedStreamedWordArtifact-HNCRKZTV.cjs} +16 -16
- package/dist/ConnectedStreamedWordArtifact-HNCRKZTV.cjs.map +1 -0
- package/dist/{DocumentReviewCard-7JSXRJZ2.js → DocumentReviewCard-RJD3CO32.js} +8 -8
- package/dist/{DocumentReviewCard-7JSXRJZ2.js.map → DocumentReviewCard-RJD3CO32.js.map} +1 -1
- package/dist/{DocumentReviewCard-C4HVT3WM.cjs → DocumentReviewCard-VON7LOOY.cjs} +8 -8
- package/dist/{DocumentReviewCard-C4HVT3WM.cjs.map → DocumentReviewCard-VON7LOOY.cjs.map} +1 -1
- package/dist/{FilesViewerDialog-IMQTZWKD.js → FilesViewerDialog-7SJGY72Q.js} +21 -21
- package/dist/{FilesViewerDialog-IMQTZWKD.js.map → FilesViewerDialog-7SJGY72Q.js.map} +1 -1
- package/dist/{FilesViewerDialog-UP7GFHYN.cjs → FilesViewerDialog-VIPTC6OT.cjs} +27 -27
- package/dist/{FilesViewerDialog-UP7GFHYN.cjs.map → FilesViewerDialog-VIPTC6OT.cjs.map} +1 -1
- package/dist/{RechartsRenderer-GIRCW7DB.cjs → RechartsRenderer-THES2SE5.cjs} +6 -5
- package/dist/RechartsRenderer-THES2SE5.cjs.map +1 -0
- package/dist/{RechartsRenderer-23OF4H6X.js → RechartsRenderer-XIZLV6GH.js} +6 -5
- package/dist/RechartsRenderer-XIZLV6GH.js.map +1 -0
- package/dist/{WorkspaceTableView-PJM47B5F.cjs → WorkspaceTableView-FNME7TL6.cjs} +9 -9
- package/dist/{WorkspaceTableView-PJM47B5F.cjs.map → WorkspaceTableView-FNME7TL6.cjs.map} +1 -1
- package/dist/{WorkspaceTableView-YDA7A4UJ.js → WorkspaceTableView-XQ6J2JKI.js} +7 -7
- package/dist/{WorkspaceTableView-YDA7A4UJ.js.map → WorkspaceTableView-XQ6J2JKI.js.map} +1 -1
- package/dist/agents/index.cjs +202 -202
- package/dist/agents/index.js +8 -8
- package/dist/{ai-ADS6YSS2.cjs → ai-3SAMEYBB.cjs} +20 -20
- package/dist/ai-3SAMEYBB.cjs.map +1 -0
- package/dist/{ai-KHWTGBT5.js → ai-OTQWSYVK.js} +12 -12
- package/dist/ai-OTQWSYVK.js.map +1 -0
- package/dist/calls/index.cjs +57 -57
- package/dist/calls/index.js +9 -9
- package/dist/chat/index.cjs +3 -3
- package/dist/chat/index.js +3 -3
- package/dist/{chunk-O27K7KTZ.cjs → chunk-2TBQBF4Y.cjs} +5 -5
- package/dist/{chunk-O27K7KTZ.cjs.map → chunk-2TBQBF4Y.cjs.map} +1 -1
- package/dist/{chunk-YJWAGXYM.js → chunk-4ZA2RSQH.js} +3 -3
- package/dist/{chunk-YJWAGXYM.js.map → chunk-4ZA2RSQH.js.map} +1 -1
- package/dist/{chunk-6A4GNM4T.cjs → chunk-5D2ZINOJ.cjs} +16 -16
- package/dist/{chunk-6A4GNM4T.cjs.map → chunk-5D2ZINOJ.cjs.map} +1 -1
- package/dist/{chunk-BFVCYBND.cjs → chunk-5HXQOM3I.cjs} +5 -5
- package/dist/{chunk-BFVCYBND.cjs.map → chunk-5HXQOM3I.cjs.map} +1 -1
- package/dist/{chunk-GSD5U553.cjs → chunk-5KKT65WU.cjs} +3 -3
- package/dist/{chunk-GSD5U553.cjs.map → chunk-5KKT65WU.cjs.map} +1 -1
- package/dist/{chunk-AVGHTUPE.js → chunk-5PWLXLHY.js} +5 -5
- package/dist/chunk-5PWLXLHY.js.map +1 -0
- package/dist/{chunk-BBWLFK3C.js → chunk-5XIMUQ63.js} +3 -3
- package/dist/{chunk-BBWLFK3C.js.map → chunk-5XIMUQ63.js.map} +1 -1
- package/dist/{chunk-AHMRYY7J.cjs → chunk-6DAJXQZZ.cjs} +13 -13
- package/dist/{chunk-AHMRYY7J.cjs.map → chunk-6DAJXQZZ.cjs.map} +1 -1
- package/dist/{chunk-3PV25ICC.js → chunk-6KKVJ2V6.js} +3 -3
- package/dist/{chunk-3PV25ICC.js.map → chunk-6KKVJ2V6.js.map} +1 -1
- package/dist/{chunk-OLAYDOPC.js → chunk-6LUHNFEE.js} +6 -6
- package/dist/{chunk-OLAYDOPC.js.map → chunk-6LUHNFEE.js.map} +1 -1
- package/dist/{chunk-FSXQHEFQ.cjs → chunk-7CDV7Y4U.cjs} +25 -25
- package/dist/{chunk-FSXQHEFQ.cjs.map → chunk-7CDV7Y4U.cjs.map} +1 -1
- package/dist/{chunk-OAIOOVFN.cjs → chunk-7SJXYEZI.cjs} +36 -36
- package/dist/chunk-7SJXYEZI.cjs.map +1 -0
- package/dist/{chunk-LFYKB7KF.cjs → chunk-7V6APLF7.cjs} +19 -19
- package/dist/{chunk-LFYKB7KF.cjs.map → chunk-7V6APLF7.cjs.map} +1 -1
- package/dist/{chunk-4WMGFGYP.cjs → chunk-AJZ66VJC.cjs} +4 -4
- package/dist/{chunk-4WMGFGYP.cjs.map → chunk-AJZ66VJC.cjs.map} +1 -1
- package/dist/{chunk-KCP42W67.cjs → chunk-ARGQ5YZ5.cjs} +3 -3
- package/dist/{chunk-KCP42W67.cjs.map → chunk-ARGQ5YZ5.cjs.map} +1 -1
- package/dist/{chunk-BH6IKGZ3.js → chunk-AUAHGQY6.js} +5 -5
- package/dist/{chunk-BH6IKGZ3.js.map → chunk-AUAHGQY6.js.map} +1 -1
- package/dist/{chunk-KIXFXCHL.js → chunk-CEOCA7ID.js} +3 -3
- package/dist/{chunk-KIXFXCHL.js.map → chunk-CEOCA7ID.js.map} +1 -1
- package/dist/{chunk-TNKPQ3EF.js → chunk-CIRSOYGK.js} +12 -12
- package/dist/{chunk-TNKPQ3EF.js.map → chunk-CIRSOYGK.js.map} +1 -1
- package/dist/{chunk-BAUZUIHB.js → chunk-COL2TJGO.js} +83 -83
- package/dist/chunk-COL2TJGO.js.map +1 -0
- package/dist/{chunk-XHN5KOI2.cjs → chunk-DRLD4P2C.cjs} +8 -8
- package/dist/{chunk-XHN5KOI2.cjs.map → chunk-DRLD4P2C.cjs.map} +1 -1
- package/dist/{chunk-5AC52BHL.cjs → chunk-DYPFNQTQ.cjs} +140 -140
- package/dist/chunk-DYPFNQTQ.cjs.map +1 -0
- package/dist/{chunk-SCLGUHLU.cjs → chunk-E7TGSOPR.cjs} +4 -4
- package/dist/{chunk-SCLGUHLU.cjs.map → chunk-E7TGSOPR.cjs.map} +1 -1
- package/dist/{chunk-CRLFLMTK.cjs → chunk-EOXA4VJH.cjs} +3 -3
- package/dist/{chunk-CRLFLMTK.cjs.map → chunk-EOXA4VJH.cjs.map} +1 -1
- package/dist/{chunk-DBKZANTC.js → chunk-GA47YVW5.js} +3 -3
- package/dist/{chunk-DBKZANTC.js.map → chunk-GA47YVW5.js.map} +1 -1
- package/dist/{chunk-RCZRI72J.cjs → chunk-GMODJT4N.cjs} +4 -4
- package/dist/{chunk-RCZRI72J.cjs.map → chunk-GMODJT4N.cjs.map} +1 -1
- package/dist/{chunk-22KAKJ3W.cjs → chunk-GS5MFUPC.cjs} +4 -4
- package/dist/{chunk-22KAKJ3W.cjs.map → chunk-GS5MFUPC.cjs.map} +1 -1
- package/dist/{chunk-62OMGQHS.js → chunk-H6W3VXHU.js} +3 -3
- package/dist/{chunk-62OMGQHS.js.map → chunk-H6W3VXHU.js.map} +1 -1
- package/dist/{chunk-DX3Z2COD.cjs → chunk-HUYKO2ES.cjs} +3 -3
- package/dist/{chunk-DX3Z2COD.cjs.map → chunk-HUYKO2ES.cjs.map} +1 -1
- package/dist/{chunk-U5F5P4YU.js → chunk-IK234EFX.js} +12 -12
- package/dist/{chunk-U5F5P4YU.js.map → chunk-IK234EFX.js.map} +1 -1
- package/dist/{chunk-UQ2OBHMV.js → chunk-JUGEFTRC.js} +1010 -1010
- package/dist/chunk-JUGEFTRC.js.map +1 -0
- package/dist/{chunk-CHQMVIHR.js → chunk-LPGBRMYS.js} +36 -36
- package/dist/chunk-LPGBRMYS.js.map +1 -0
- package/dist/{chunk-D35EHOK5.cjs → chunk-M23W7IID.cjs} +12 -12
- package/dist/chunk-M23W7IID.cjs.map +1 -0
- package/dist/{chunk-FPOKWML2.js → chunk-MIVNNQO3.js} +21 -4
- package/dist/chunk-MIVNNQO3.js.map +1 -0
- package/dist/{chunk-WI3BVKEC.cjs → chunk-MNFI66H5.cjs} +5 -5
- package/dist/{chunk-WI3BVKEC.cjs.map → chunk-MNFI66H5.cjs.map} +1 -1
- package/dist/{chunk-T5ZMG6MC.js → chunk-NF4M7PUB.js} +3 -3
- package/dist/{chunk-T5ZMG6MC.js.map → chunk-NF4M7PUB.js.map} +1 -1
- package/dist/{chunk-ZNY5W3VX.js → chunk-NPSFPBIB.js} +3 -3
- package/dist/{chunk-ZNY5W3VX.js.map → chunk-NPSFPBIB.js.map} +1 -1
- package/dist/{chunk-LYW5A35J.js → chunk-OMIYTUVR.js} +12 -12
- package/dist/{chunk-LYW5A35J.js.map → chunk-OMIYTUVR.js.map} +1 -1
- package/dist/{chunk-ZMVF7EYJ.cjs → chunk-PBPO54KZ.cjs} +21 -3
- package/dist/chunk-PBPO54KZ.cjs.map +1 -0
- package/dist/{chunk-7V4OCZS6.cjs → chunk-RA3EGF6K.cjs} +6 -6
- package/dist/{chunk-7V4OCZS6.cjs.map → chunk-RA3EGF6K.cjs.map} +1 -1
- package/dist/{chunk-PL7O3RJJ.cjs → chunk-RKBAY7GZ.cjs} +3 -3
- package/dist/{chunk-PL7O3RJJ.cjs.map → chunk-RKBAY7GZ.cjs.map} +1 -1
- package/dist/{chunk-J3E5CSSC.js → chunk-RKFWBIKS.js} +3 -3
- package/dist/{chunk-J3E5CSSC.js.map → chunk-RKFWBIKS.js.map} +1 -1
- package/dist/{chunk-YLKHTBYA.js → chunk-RRP7MQAO.js} +3 -3
- package/dist/{chunk-YLKHTBYA.js.map → chunk-RRP7MQAO.js.map} +1 -1
- package/dist/{chunk-U6LQ6Z3P.cjs → chunk-SP3IKIPA.cjs} +6 -6
- package/dist/{chunk-U6LQ6Z3P.cjs.map → chunk-SP3IKIPA.cjs.map} +1 -1
- package/dist/{chunk-GX75YCWJ.cjs → chunk-SQUOXOY3.cjs} +560 -560
- package/dist/chunk-SQUOXOY3.cjs.map +1 -0
- package/dist/{chunk-6ZYOUT73.js → chunk-T5LORFHL.js} +7 -7
- package/dist/{chunk-6ZYOUT73.js.map → chunk-T5LORFHL.js.map} +1 -1
- package/dist/{chunk-45OU2UAA.cjs → chunk-TEMTKBBL.cjs} +10 -10
- package/dist/{chunk-45OU2UAA.cjs.map → chunk-TEMTKBBL.cjs.map} +1 -1
- package/dist/{chunk-PHDUN4SG.cjs → chunk-THCMGAFX.cjs} +41 -41
- package/dist/{chunk-PHDUN4SG.cjs.map → chunk-THCMGAFX.cjs.map} +1 -1
- package/dist/{chunk-HTGEAQOA.js → chunk-TOMDMKOD.js} +7 -7
- package/dist/{chunk-HTGEAQOA.js.map → chunk-TOMDMKOD.js.map} +1 -1
- package/dist/{chunk-WJHRWXWJ.js → chunk-TXIAF4PX.js} +3 -3
- package/dist/{chunk-WJHRWXWJ.js.map → chunk-TXIAF4PX.js.map} +1 -1
- package/dist/{chunk-6M5NAAWX.js → chunk-UCSEE52D.js} +3 -3
- package/dist/{chunk-6M5NAAWX.js.map → chunk-UCSEE52D.js.map} +1 -1
- package/dist/{chunk-I7CJDF3V.cjs → chunk-UHMP6S7M.cjs} +104 -103
- package/dist/chunk-UHMP6S7M.cjs.map +1 -0
- package/dist/{chunk-PGCKTXYH.js → chunk-UHUI6A36.js} +3 -3
- package/dist/{chunk-PGCKTXYH.js.map → chunk-UHUI6A36.js.map} +1 -1
- package/dist/{chunk-6KQVTMRL.cjs → chunk-UOGXKHTJ.cjs} +3 -3
- package/dist/{chunk-6KQVTMRL.cjs.map → chunk-UOGXKHTJ.cjs.map} +1 -1
- package/dist/{chunk-7S7YVBFK.js → chunk-VDSDG4FR.js} +3 -3
- package/dist/{chunk-7S7YVBFK.js.map → chunk-VDSDG4FR.js.map} +1 -1
- package/dist/{chunk-3GFQNJYE.js → chunk-VGWCHX6G.js} +104 -103
- package/dist/chunk-VGWCHX6G.js.map +1 -0
- package/dist/{chunk-VY3HTT37.js → chunk-VUH547VQ.js} +3 -3
- package/dist/{chunk-VY3HTT37.js.map → chunk-VUH547VQ.js.map} +1 -1
- package/dist/{chunk-AZCMKGDG.js → chunk-W37PFYFL.js} +4 -4
- package/dist/{chunk-AZCMKGDG.js.map → chunk-W37PFYFL.js.map} +1 -1
- package/dist/{chunk-JGUM4EXE.cjs → chunk-W3IX3GZS.cjs} +8 -8
- package/dist/{chunk-JGUM4EXE.cjs.map → chunk-W3IX3GZS.cjs.map} +1 -1
- package/dist/{chunk-UCA4JLLJ.cjs → chunk-X7GT57KW.cjs} +3 -3
- package/dist/{chunk-UCA4JLLJ.cjs.map → chunk-X7GT57KW.cjs.map} +1 -1
- package/dist/{chunk-IXL2KJOZ.cjs → chunk-XBEGD33U.cjs} +40 -40
- package/dist/{chunk-IXL2KJOZ.cjs.map → chunk-XBEGD33U.cjs.map} +1 -1
- package/dist/{chunk-FDNIK5YS.cjs → chunk-XBKIFGBB.cjs} +8 -8
- package/dist/{chunk-FDNIK5YS.cjs.map → chunk-XBKIFGBB.cjs.map} +1 -1
- package/dist/{chunk-HZE5MHQO.js → chunk-XT7HKQ4H.js} +3 -3
- package/dist/{chunk-HZE5MHQO.js.map → chunk-XT7HKQ4H.js.map} +1 -1
- package/dist/{chunk-M3OK6KGR.js → chunk-ZGQKED5T.js} +3 -3
- package/dist/{chunk-M3OK6KGR.js.map → chunk-ZGQKED5T.js.map} +1 -1
- package/dist/{chunk-NWBCZ4PA.js → chunk-ZKBYG6MN.js} +4 -4
- package/dist/{chunk-NWBCZ4PA.js.map → chunk-ZKBYG6MN.js.map} +1 -1
- package/dist/collaboration/index.cjs +1 -1
- package/dist/collaboration/index.js +1 -1
- package/dist/connect/docx.cjs +19 -19
- package/dist/connect/docx.js +15 -15
- package/dist/connect/index.cjs +762 -762
- package/dist/connect/index.js +63 -63
- package/dist/connect/viewer.cjs +14 -14
- package/dist/connect/viewer.js +13 -13
- package/dist/connection/dashboards/ConnectedDashboardsPage.d.ts +6 -0
- package/dist/dashboards/chartModel.d.ts +12 -0
- package/dist/dashboards/index.cjs +113 -42
- package/dist/dashboards/index.cjs.map +1 -1
- package/dist/dashboards/index.js +95 -24
- package/dist/dashboards/index.js.map +1 -1
- package/dist/embed/index.cjs +29 -29
- package/dist/embed/index.js +23 -23
- package/dist/facts/index.cjs +43 -43
- package/dist/facts/index.js +2 -2
- package/dist/files/index.cjs +1 -1
- package/dist/files/index.js +1 -1
- package/dist/home/index.cjs +31 -31
- package/dist/home/index.js +3 -3
- package/dist/index.cjs +383 -383
- package/dist/index.js +21 -21
- package/dist/settings/index.cjs +153 -153
- package/dist/settings/index.js +4 -4
- package/dist/shell/index.cjs +36 -36
- package/dist/shell/index.js +4 -4
- package/dist/site/index.cjs +5 -5
- package/dist/site/index.js +1 -1
- package/dist/studio/index.cjs +19 -19
- package/dist/studio/index.js +14 -14
- package/dist/styles.css +1 -1
- package/dist/workflow-canvas/index.cjs +33 -33
- package/dist/workflow-canvas/index.js +22 -22
- package/node_modules/@arbidocs/coedit/package.json +2 -2
- package/node_modules/@docx-editor.dev/core/dist/automation.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/automation.d.ts +60 -13
- package/node_modules/@docx-editor.dev/core/dist/automation.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/binding.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/binding.d.ts +21 -13
- package/node_modules/@docx-editor.dev/core/dist/binding.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{index-Bsg7oIKP.d.ts → chrome-print-CAs51cpq.d.ts} +31 -21
- package/node_modules/@docx-editor.dev/core/dist/{chunk-VDNNLG6X.js → chunk-236O4YQW.js} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-4HENIAFG.js +1 -0
- package/node_modules/@docx-editor.dev/core/dist/{chunk-SRPILEWV.cjs → chunk-6JPL6ZAS.cjs} +5 -5
- package/node_modules/@docx-editor.dev/core/dist/{chunk-2RC2EPND.js → chunk-6ZQP4HQ7.js} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{chunk-ZUHOMK52.cjs → chunk-7WQ7AAHW.cjs} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{chunk-Z6WBFXJU.js → chunk-BCXH4BXB.js} +3 -3
- package/node_modules/@docx-editor.dev/core/dist/{chunk-QMLCVPCD.cjs → chunk-BY2ACZZ6.cjs} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-CAJEXXVG.cjs +4 -0
- package/node_modules/@docx-editor.dev/core/dist/chunk-CPWLFPWC.js +30 -0
- package/node_modules/@docx-editor.dev/core/dist/{chunk-6APGXLBB.cjs → chunk-D7ZMDMPX.cjs} +2 -2
- package/node_modules/@docx-editor.dev/core/dist/chunk-DOHF6FA7.cjs +30 -0
- package/node_modules/@docx-editor.dev/core/dist/chunk-DVX32P2P.js +27 -0
- package/node_modules/@docx-editor.dev/core/dist/{chunk-6EYYL7FL.js → chunk-E4LOMDNL.js} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-EKLM7NWB.cjs +7 -0
- package/node_modules/@docx-editor.dev/core/dist/chunk-G3K63G7P.cjs +27 -0
- package/node_modules/@docx-editor.dev/core/dist/{chunk-5CSUYANV.js → chunk-G4HOFIKJ.js} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{chunk-K5U2PLDP.cjs → chunk-JLVBDYVQ.cjs} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-LQX36Z5P.js +7 -0
- package/node_modules/@docx-editor.dev/core/dist/{chunk-TSLBZ26X.js → chunk-LSZ6KPKK.js} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{chunk-O2AL2HSJ.cjs → chunk-MM5QBMTE.cjs} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{chunk-ETTO6GK3.js → chunk-OMCG63ZF.js} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-OSFOJTHU.cjs +18 -0
- package/node_modules/@docx-editor.dev/core/dist/{chunk-E7BQA6UP.js → chunk-RCLZXP3B.js} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-T6K2QYNZ.cjs +2 -0
- package/node_modules/@docx-editor.dev/core/dist/chunk-TRGAVV2Y.js +4 -0
- package/node_modules/@docx-editor.dev/core/dist/chunk-U4JZVSOE.js +2 -0
- package/node_modules/@docx-editor.dev/core/dist/{chunk-2GO5T2JU.cjs → chunk-UHHYFIDT.cjs} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-V3N4SOAK.cjs +1 -0
- package/node_modules/@docx-editor.dev/core/dist/{chunk-6AWEKBLB.cjs → chunk-W35WTWAO.cjs} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-YQ5G6LC7.js +18 -0
- package/node_modules/@docx-editor.dev/core/dist/collaboration/replication.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/collaboration/replication.d.ts +5 -5
- package/node_modules/@docx-editor.dev/core/dist/collaboration/replication.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/collaboration.d.ts +4 -4
- package/node_modules/@docx-editor.dev/core/dist/contracts/document.d.ts +3 -3
- package/node_modules/@docx-editor.dev/core/dist/contracts/editor.d.ts +9 -10
- package/node_modules/@docx-editor.dev/core/dist/contracts/interaction.d.ts +2 -2
- package/node_modules/@docx-editor.dev/core/dist/contracts/modules.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/contracts/modules.d.ts +33 -9
- package/node_modules/@docx-editor.dev/core/dist/contracts/modules.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/contracts/types.d.ts +2 -2
- package/node_modules/@docx-editor.dev/core/dist/{custom-node-writes-cvL5rhcD.d.ts → custom-node-writes-Bn6uciLb.d.ts} +2 -2
- package/node_modules/@docx-editor.dev/core/dist/diagnostic-context-B8M79cfK.d.ts +30 -0
- package/node_modules/@docx-editor.dev/core/dist/diagnostic-hints-BeVjfNOv.d.ts +113 -0
- package/node_modules/@docx-editor.dev/core/dist/{document-protection-BAGVGqaP.d.ts → document-protection-CUb55pl_.d.ts} +2 -2
- package/node_modules/@docx-editor.dev/core/dist/{editor-Ci7IZGmG.d.ts → editor-CZQZmTIU.d.ts} +386 -9
- package/node_modules/@docx-editor.dev/core/dist/{editor-scope-OHPwVQ5l.d.ts → editor-scope-7o9xweiJ.d.ts} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/editor.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/editor.d.ts +54 -33
- package/node_modules/@docx-editor.dev/core/dist/editor.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/export.cjs +2 -2
- package/node_modules/@docx-editor.dev/core/dist/export.d.ts +13 -14
- package/node_modules/@docx-editor.dev/core/dist/export.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{font-resolver-BVQB14qT.d.ts → font-resolver-lSBLirLR.d.ts} +3 -3
- package/node_modules/@docx-editor.dev/core/dist/{headless-document-view-qH331moE.d.ts → headless-document-view-pp3q7wIh.d.ts} +2 -2
- package/node_modules/@docx-editor.dev/core/dist/{image-resources-BN-hUgCn.d.ts → image-resources-tXLQShoC.d.ts} +2 -2
- package/node_modules/@docx-editor.dev/core/dist/index.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/index.d.ts +65 -20
- package/node_modules/@docx-editor.dev/core/dist/index.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{layout-shaping-BEyuiQOk.d.ts → layout-shaping-BD-dF_rn.d.ts} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/layout.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/layout.d.ts +17 -20
- package/node_modules/@docx-editor.dev/core/dist/layout.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{note-properties-4Y9o6Gyk.d.ts → note-properties-qQUjO1GQ.d.ts} +3 -3
- package/node_modules/@docx-editor.dev/core/dist/{omml-equation-CuzBL5DD.d.ts → omml-equation-BUbU0utM.d.ts} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/output.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/output.d.ts +8 -9
- package/node_modules/@docx-editor.dev/core/dist/output.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{protocol-Bqk4Izjc.d.ts → protocol-DYzzz2ej.d.ts} +2 -2
- package/node_modules/@docx-editor.dev/core/dist/{review-paragraph-order-DT-n6ouC.d.ts → review-paragraph-order-CN_0l2Cb.d.ts} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{semantic-cell-selection-D9D1KSXq.d.ts → semantic-cell-selection-eYag3P47.d.ts} +4 -211
- package/node_modules/@docx-editor.dev/core/dist/{semantic-interaction-CIC-PooQ.d.ts → semantic-interaction-kR_QB845.d.ts} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{semantic-paint-BME37OMv.d.ts → semantic-paint-ZayFF3tD.d.ts} +17 -5
- package/node_modules/@docx-editor.dev/core/dist/{semantic-record-queries-CBlZqZNa.d.ts → semantic-record-queries-Bsgth6lv.d.ts} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{semantic-records-4B3WwFAi.d.ts → semantic-records-DQmumPgL.d.ts} +1279 -828
- package/node_modules/@docx-editor.dev/core/dist/store.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/store.d.ts +1466 -1464
- package/node_modules/@docx-editor.dev/core/dist/store.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{tree-package-fragment-BeeKxDw8.d.ts → tree-package-store-CovjNARF.d.ts} +83 -83
- package/node_modules/@docx-editor.dev/core/dist/{tree-session-contract-CVbmlMlq.d.ts → tree-session-contract-CZVAGl51.d.ts} +6 -6
- package/node_modules/@docx-editor.dev/core/dist/{types-barrel-D3xCgQX6.d.ts → types-barrel-DuC5QBNC.d.ts} +548 -527
- package/node_modules/@docx-editor.dev/core/package.json +3 -3
- package/node_modules/@docx-editor.dev/react/dist/index.js +3 -3
- package/node_modules/@docx-editor.dev/react/dist/index.mjs +3 -3
- package/node_modules/@docx-editor.dev/react/package.json +4 -4
- package/package.json +8 -8
- package/dist/ConnectedStreamedWordArtifact-HLJ5IIOU.js.map +0 -1
- package/dist/ConnectedStreamedWordArtifact-JQ34AOUU.cjs.map +0 -1
- package/dist/RechartsRenderer-23OF4H6X.js.map +0 -1
- package/dist/RechartsRenderer-GIRCW7DB.cjs.map +0 -1
- package/dist/ai-ADS6YSS2.cjs.map +0 -1
- package/dist/ai-KHWTGBT5.js.map +0 -1
- package/dist/chunk-3GFQNJYE.js.map +0 -1
- package/dist/chunk-5AC52BHL.cjs.map +0 -1
- package/dist/chunk-AVGHTUPE.js.map +0 -1
- package/dist/chunk-BAUZUIHB.js.map +0 -1
- package/dist/chunk-CHQMVIHR.js.map +0 -1
- package/dist/chunk-D35EHOK5.cjs.map +0 -1
- package/dist/chunk-FPOKWML2.js.map +0 -1
- package/dist/chunk-GX75YCWJ.cjs.map +0 -1
- package/dist/chunk-I7CJDF3V.cjs.map +0 -1
- package/dist/chunk-OAIOOVFN.cjs.map +0 -1
- package/dist/chunk-UQ2OBHMV.js.map +0 -1
- package/dist/chunk-ZMVF7EYJ.cjs.map +0 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-4GBTELJV.cjs +0 -28
- package/node_modules/@docx-editor.dev/core/dist/chunk-4R3TEXMN.js +0 -18
- package/node_modules/@docx-editor.dev/core/dist/chunk-EO4C5QJW.cjs +0 -2
- package/node_modules/@docx-editor.dev/core/dist/chunk-FIJZIQXA.cjs +0 -18
- package/node_modules/@docx-editor.dev/core/dist/chunk-FRXAOVTB.js +0 -28
- package/node_modules/@docx-editor.dev/core/dist/chunk-J6BVWIDB.js +0 -2
- package/node_modules/@docx-editor.dev/core/dist/chunk-JGNVNT2A.cjs +0 -2
- package/node_modules/@docx-editor.dev/core/dist/chunk-KKIJG3C6.js +0 -2
- package/node_modules/@docx-editor.dev/core/dist/chunk-LWDSDCMO.js +0 -27
- package/node_modules/@docx-editor.dev/core/dist/chunk-NBCVVZOM.cjs +0 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-O5INAWZQ.js +0 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-RCHS4ZEH.cjs +0 -27
- package/node_modules/@docx-editor.dev/core/dist/chunk-VHAVHCQY.js +0 -7
- package/node_modules/@docx-editor.dev/core/dist/chunk-VX43VBAX.cjs +0 -7
- package/node_modules/@docx-editor.dev/core/dist/review-pane-D9jm8DcY.d.ts +0 -128
- package/node_modules/@docx-editor.dev/core/dist/revision-projection-DZ4kKVev.d.ts +0 -242
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { DEFAULT_UNIT_FORMATTERS, sliceColors, formatterOf, metricValueOf, chartModelOf } from './chunk-
|
|
2
|
+
import { DEFAULT_UNIT_FORMATTERS, sliceColors, formatterOf, metricValueOf, chartModelOf } from './chunk-MIVNNQO3.js';
|
|
3
3
|
import { formatBytes } from './chunk-653XMGF4.js';
|
|
4
4
|
import { MetricCard, DataTable } from './chunk-I46XTM3W.js';
|
|
5
5
|
import { fmtDate } from './chunk-X5YMI6A7.js';
|
|
@@ -52,7 +52,7 @@ function DashboardCell({
|
|
|
52
52
|
}
|
|
53
53
|
);
|
|
54
54
|
}
|
|
55
|
-
var RechartsRenderer = lazy(() => import('./RechartsRenderer-
|
|
55
|
+
var RechartsRenderer = lazy(() => import('./RechartsRenderer-XIZLV6GH.js'));
|
|
56
56
|
var DEFAULT_CHART_RENDERER_LABELS = {
|
|
57
57
|
showTable: "Show table",
|
|
58
58
|
showChart: "Show chart",
|
|
@@ -261,7 +261,7 @@ function PanelView({
|
|
|
261
261
|
hint,
|
|
262
262
|
isLoading: state === "loading",
|
|
263
263
|
accent: metricAccent,
|
|
264
|
-
className: "h-full",
|
|
264
|
+
className: cn("h-full", actions && "pt-11"),
|
|
265
265
|
testId
|
|
266
266
|
}
|
|
267
267
|
),
|
|
@@ -942,5 +942,5 @@ function PanelEditor({
|
|
|
942
942
|
}
|
|
943
943
|
|
|
944
944
|
export { ChartRenderer, ChartTable, DEFAULT_CHART_RENDERER_LABELS, DEFAULT_DASHBOARD_PANEL_LABELS, DEFAULT_PANEL_EDITOR_LABELS, DEFAULT_PANEL_VIEW_LABELS, DashboardCell, DashboardGrid, DashboardPanel, PANEL_FORMATTERS, PanelEditor, PanelView, clampPanelWidth };
|
|
945
|
-
//# sourceMappingURL=chunk-
|
|
946
|
-
//# sourceMappingURL=chunk-
|
|
945
|
+
//# sourceMappingURL=chunk-5PWLXLHY.js.map
|
|
946
|
+
//# sourceMappingURL=chunk-5PWLXLHY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/dashboards/DashboardGrid.tsx","../src/dashboards/ChartRenderer.tsx","../src/dashboards/PanelView.tsx","../src/connection/dashboards/DashboardPanel.tsx","../src/connection/dashboards/PanelEditor.tsx"],"names":["jsx","cn","jsxs","useId","useMemo","x","Button","useDataSources"],"mappings":";;;;;;;;;;;AAQA,IAAM,KAAA,GAAQ;AAAA,EACZ,eAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAA;AAGO,SAAS,gBAAgB,KAAA,EAAmC;AACjE,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,EAAA,EAAI,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,KAAA,IAAS,CAAC,CAAC,CAAC,CAAA;AACzD;AASO,SAAS,aAAA,CAAc,EAAE,QAAA,EAAU,SAAA,EAAW,QAAO,EAAuB;AACjF,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,wCAAA,EAA0C,SAAS,CAAA;AAAA,MACjE,WAAA,EAAU,WAAA;AAAA,MACV,aAAA,EAAa,MAAA;AAAA,MAEZ;AAAA;AAAA,GACH;AAEJ;AAGO,SAAS,aAAA,CAAc;AAAA,EAC5B,KAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,oBAAA,EAAsB,KAAA,CAAM,gBAAgB,KAAK,CAAA,GAAI,CAAC,CAAA,EAAG,SAAS,CAAA;AAAA,MAChF,WAAA,EAAU,gBAAA;AAAA,MAET;AAAA;AAAA,GACH;AAEJ;ACvDA,IAAM,gBAAA,GAAmB,IAAA,CAAK,MAAM,OAAO,gCAAoB,CAAC,CAAA;AAQzD,IAAM,6BAAA,GAAqD;AAAA,EAChE,SAAA,EAAW,YAAA;AAAA,EACX,SAAA,EAAW,YAAA;AAAA,EACX,KAAA,EAAO;AACT;AAeO,SAAS,UAAA,CAAW;AAAA,EACzB,KAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACb,QAAA,kBAAA,IAAA,CAAC,OAAA,EAAA,EAAM,EAAA,EAAQ,SAAA,EAAU,0BAAA,EAA2B,WAAA,EAAU,aAAA,EAC5D,QAAA,EAAA;AAAA,oBAAAA,GAAAA,CAAC,SAAA,EAAA,EAAQ,SAAA,EAAU,SAAA,EAAW,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,oBACtCA,GAAAA,CAAC,OAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,IAAA,EAAA,EAAG,WAAU,8CAAA,EACZ,QAAA,EAAA;AAAA,sBAAAA,IAAC,IAAA,EAAA,EAAG,KAAA,EAAM,OAAM,SAAA,EAAU,yBAAA,EACvB,gBAAM,MAAA,EACT,CAAA;AAAA,MACC,MAAM,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,qBACjBA,GAAAA,CAAC,IAAA,EAAA,EAAc,KAAA,EAAM,KAAA,EAAM,WAAU,oCAAA,EAClC,QAAA,EAAA,CAAA,CAAE,KAAA,EAAA,EADI,CAAA,CAAE,EAEX,CACD;AAAA,KAAA,EACH,CAAA,EACF,CAAA;AAAA,oBACAA,GAAAA,CAAC,OAAA,EAAA,EACE,QAAA,EAAA,KAAA,CAAM,UAAA,CAAW,GAAA,CAAI,CAAC,QAAA,EAAU,CAAA,qBAC/B,IAAA,CAAC,IAAA,EAAA,EAA4B,SAAA,EAAU,yCAAA,EACrC,QAAA,EAAA;AAAA,sBAAAA,IAAC,IAAA,EAAA,EAAG,KAAA,EAAM,KAAA,EAAM,SAAA,EAAU,2CACvB,QAAA,EAAA,QAAA,EACH,CAAA;AAAA,MACC,KAAA,CAAM,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,qBACjBA,GAAAA,CAAC,IAAA,EAAA,EAAc,SAAA,EAAU,qDAAA,EACtB,QAAA,EAAA,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,KAAM,IAAA,GAAO,QAAA,GAAM,KAAA,CAAM,MAAA,CAAO,CAAA,CAAE,MAAA,CAAO,CAAC,CAAW,CAAA,EAAA,EADzD,CAAA,CAAE,EAEX,CACD;AAAA,KAAA,EAAA,EARM,GAAG,QAAQ,CAAA,CAAA,EAAI,CAAC,CAAA,CASzB,CACD,CAAA,EACH;AAAA,GAAA,EACF,CAAA,EACF,CAAA;AAEJ;AAEA,SAAS,MAAA,CAAO,EAAE,KAAA,EAAO,KAAA,EAAM,EAAyC;AACtE,EAAA,MAAM,GAAA,GAAM,KAAA,CAAM,IAAA,KAAS,KAAA,IAAS,MAAM,IAAA,KAAS,OAAA;AACnD,EAAA,MAAM,KAAA,GAAQ,GAAA,GACV,KAAA,CAAM,UAAA,CAAW,GAAA,CAAI,CAAC,KAAA,EAAO,CAAA,MAAO,EAAE,KAAA,EAAO,KAAA,EAAO,WAAA,CAAY,OAAO,KAAK,CAAA,CAAE,CAAC,CAAA,EAAE,CAAE,CAAA,GACnF,KAAA,CAAM,MAAA,CAAO,IAAI,CAAC,CAAA,MAAO,EAAE,KAAA,EAAO,CAAA,CAAE,KAAA,EAAO,KAAA,EAAO,CAAA,CAAE,OAAM,CAAE,CAAA;AAChE,EAAA,IAAI,CAAC,GAAA,IAAO,KAAA,CAAM,MAAA,GAAS,GAAG,OAAO,IAAA;AACrC,EAAA,uBACEA,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,6EAAA,EACX,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,qBAChB,IAAA,CAAC,IAAA,EAAA,EAA8B,WAAU,kCAAA,EACvC,QAAA,EAAA;AAAA,oBAAAA,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAY,MAAA;AAAA,QACZ,SAAA,EAAU,kCAAA;AAAA,QACV,KAAA,EAAO,EAAE,UAAA,EAAY,IAAA,CAAK,KAAA;AAAM;AAAA,KAClC;AAAA,IACC,IAAA,CAAK;AAAA,GAAA,EAAA,EANC,GAAG,IAAA,CAAK,KAAK,IAAI,CAAC,CAAA,CAO3B,CACD,CAAA,EACH,CAAA;AAEJ;AAEO,SAAS,aAAA,CAAc;AAAA,EAC5B,KAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA,GAAS,GAAA;AAAA,EACT,WAAA,GAAc,OAAA;AAAA,EACd,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAAuB;AACrB,EAAA,MAAM,CAAA,GAAI,EAAE,GAAG,6BAAA,EAA+B,GAAG,MAAA,EAAO;AACxD,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAAS,WAAW,CAAA;AAC5C,EAAA,MAAM,UAAU,KAAA,EAAM;AACtB,EAAA,uBACE,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,EAAAA,CAAG,wCAAA,EAA0C,SAAS,CAAA;AAAA,MACjE,WAAA,EAAU,iBAAA;AAAA,MACV,aAAW,KAAA,CAAM,IAAA;AAAA,MACjB,aAAA,EAAa,MAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,QAAA,IAAA,KAAS,OAAA,mBACRD,GAAAA,CAAC,UAAA,EAAA,EAAW,OAAc,OAAA,EAAS,SAAA,EAAW,EAAA,EAAI,OAAA,EAAS,CAAA,mBAE3DA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EAAU,KAAA,EAAO,EAAE,MAAA,IAAU,IAAA,EAAK,QAAA,EAAS,YAAA,EAAY,SAAA,EACpE,QAAA,kBAAAA,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,0BACEA,GAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,6CAAA;AAAA,gBACV,WAAA,EAAU;AAAA;AAAA,aACZ;AAAA,YAGF,QAAA,kBAAAA,GAAAA;AAAA,cAAC,gBAAA;AAAA,cAAA;AAAA,gBACC,KAAA;AAAA,gBACA,SAAA;AAAA,gBACA,MAAA;AAAA,gBACA,YAAY,CAAA,CAAE;AAAA;AAAA;AAChB;AAAA,SACF,EACF,CAAA;AAAA,wBAEF,IAAA,CAAC,YAAA,EAAA,EAAW,SAAA,EAAU,mDAAA,EACpB,QAAA,EAAA;AAAA,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAO,KAAA,EAAc,KAAA,EAAO,EAAE,KAAA,EAAO,CAAA;AAAA,0BACtCA,GAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,SAAA,EAAU,gMAAA;AAAA,cACV,eAAA,EAAe,IAAA,KAAS,OAAA,GAAU,OAAA,GAAU,MAAA;AAAA,cAC5C,gBAAc,IAAA,KAAS,OAAA;AAAA,cACvB,SAAS,MAAM,OAAA,CAAQ,IAAA,KAAS,OAAA,GAAU,UAAU,OAAO,CAAA;AAAA,cAE1D,QAAA,EAAA,IAAA,KAAS,OAAA,GAAU,CAAA,CAAE,SAAA,GAAY,CAAA,CAAE;AAAA;AAAA;AACtC,SAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;ACnIO,IAAM,yBAAA,GAA6C;AAAA,EACxD,SAAA,EAAW,YAAA;AAAA,EACX,SAAA,EAAW,YAAA;AAAA,EACX,KAAA,EAAO,OAAA;AAAA,EACP,KAAA,EAAO,sBAAA;AAAA,EACP,KAAA,EAAO,iCAAA;AAAA,EACP,WAAA,EAAa,CAAC,KAAA,EAAO,KAAA,KACnB,CAAA,QAAA,EAAW,KAAA,CAAM,cAAA,CAAe,OAAO,CAAC,CAAA,IAAA,EAAO,KAAA,CAAM,cAAA,CAAe,OAAO,CAAC,CAAA,KAAA,CAAA;AAAA,EAC9E,GAAA,EAAK,KAAA;AAAA,EACL,EAAA,EAAI;AACN;AAoCA,SAAS,QAAA,CACP,KAAA,EACA,KAAA,EACA,CAAA,EACA,UAAA,EACQ;AACR,EAAA,IAAI,UAAU,IAAA,IAAQ,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAI,OAAO,QAAA;AAClE,EAAA,IAAI,MAAM,OAAA,CAAQ,KAAK,GAAG,OAAO,KAAA,CAAM,KAAK,IAAI,CAAA;AAChD,EAAA,IAAI,OAAO,KAAA,KAAU,SAAA,SAAkB,KAAA,GAAQ,CAAA,CAAE,MAAM,CAAA,CAAE,EAAA;AACzD,EAAA,IAAI,KAAA,CAAM,IAAA,KAAS,QAAA,IAAY,OAAO,KAAA,KAAU,QAAA;AAC9C,IAAA,OAAO,WAAA,CAAY,KAAA,EAAO,UAAU,CAAA,CAAE,KAAK,CAAA;AAC7C,EAAA,IAAI,KAAA,CAAM,SAAS,MAAA,IAAU,OAAO,UAAU,QAAA,EAAU,OAAO,QAAQ,KAAK,CAAA;AAC5E,EAAA,OAAO,OAAO,KAAK,CAAA;AACrB;AAEA,SAAS,YAAA,CAAa;AAAA,EACpB,MAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,CAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAOG;AACD,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,OAAO,CAAA,CAAE,GAAA,CAAI,CAAC,GAAA,EAAK,CAAA,MAAO,EAAE,GAAA,EAAK,GAAE,CAAE,CAAA;AACjE,EAAA,MAAM,OAAA,GAAoD,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,MAAW;AAAA,IAC/E,KAAK,KAAA,CAAM,EAAA;AAAA,IACX,QAAQ,KAAA,CAAM,KAAA;AAAA,IACd,KAAA,EAAO,KAAA,CAAM,IAAA,KAAS,QAAA,GAAW,OAAA,GAAU,MAAA;AAAA,IAC3C,MAAA,EAAQ,CAAC,EAAE,GAAA,EAAI,KAAM,QAAA,CAAS,GAAA,CAAI,KAAA,CAAM,EAAE,CAAA,EAAG,KAAA,EAAO,CAAA,EAAG,UAAU,CAAA;AAAA,IACjE,SAAA,EAAW,KAAA,CAAM,IAAA,KAAS,QAAA,GAAW,cAAA,GAAiB;AAAA,GACxD,CAAE,CAAA;AACF,EAAA,uBACEE,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,oBAAAF,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACb,QAAA,kBAAAA,GAAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,OAAA;AAAA,QACA,IAAA,EAAM,KAAA;AAAA,QACN,UAAU,CAAC,EAAE,CAAA,EAAE,KAAM,OAAO,CAAC,CAAA;AAAA,QAC7B,MAAM,MAAA,IAAU,iBAAA;AAAA,QAChB,YAAY,CAAA,CAAE,KAAA;AAAA,QACd,SAAA,EAAU;AAAA;AAAA,KACZ,EACF,CAAA;AAAA,IACC,IAAA,CAAK,MAAA,GAAS,OAAA,oBACbA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,+BAAA,EAAiC,QAAA,EAAA,CAAA,CAAE,WAAA,CAAY,OAAA,EAAS,IAAA,CAAK,MAAM,CAAA,EAAE;AAAA,GAAA,EAEtF,CAAA;AAEJ;AAEA,SAAS,OAAA,CAAQ;AAAA,EACf,IAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAMG;AACD,EAAA,MAAM,IAAA,GAAO,IAAA,KAAS,OAAA,GAAU,aAAA,GAAgB,iBAAA;AAChD,EAAA,uBACEE,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,2EAAA;AAAA,MACV,IAAA,EAAM,IAAA,KAAS,OAAA,GAAU,OAAA,GAAU,MAAA;AAAA,MACnC,aAAA,EAAa,MAAA;AAAA,MAEb,QAAA,EAAA;AAAA,wBAAAF,GAAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,WAAWC,EAAAA,CAAG,QAAA,EAAU,IAAA,KAAS,OAAA,GAAU,qBAAqB,0BAA0B;AAAA;AAAA,SAC5F;AAAA,wBACAD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAWC,EAAAA,CAAG,SAAA,EAAW,IAAA,KAAS,OAAA,GAAU,kBAAA,GAAqB,uBAAuB,CAAA,EACxF,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,QACC,0BAAUD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0CAA0C,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,QACxE;AAAA;AAAA;AAAA,GACH;AAEJ;AAEO,SAAS,SAAA,CAAU;AAAA,EACxB,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA,GAAU,MAAA;AAAA,EACV,OAAA,GAAU,EAAA;AAAA,EACV,UAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAAmB;AACjB,EAAA,MAAM,CAAA,GAAI,EAAE,GAAG,yBAAA,EAA2B,GAAG,MAAA,EAAO;AAGpD,EAAA,IAAI,SAAS,QAAA,EAAU;AACrB,IAAA,MAAM,MAAA,GAAS,IAAA,EAAM,IAAA,KAAS,QAAA,GAAW,IAAA,GAAO,MAAA;AAChD,IAAA,MAAM,OACJ,KAAA,KAAU,OAAA,mBACRE,IAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,kBAAA,EACb,QAAA,EAAA;AAAA,MAAA,CAAA,CAAE,KAAA;AAAA,MACF,WAAA,IAAe,IAAI,WAAW,CAAA;AAAA,KAAA,EACjC,CAAA,GACE,KAAA,KAAU,OAAA,GACZ,CAAA,CAAE,KAAA,GAEF,WAAA;AAEJ,IAAA,uBACEA,KAAC,KAAA,EAAA,EAAI,SAAA,EAAWD,GAAG,iBAAA,EAAmB,SAAS,CAAA,EAAG,WAAA,EAAU,iBAAA,EAC1D,QAAA,EAAA;AAAA,sBAAAD,GAAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO,KAAA;AAAA,UACP,KAAA,EACE,MAAA,IAAU,MAAA,CAAO,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,OAAA,GAAU,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,KAAK,CAAA,GAAI,QAAA;AAAA,UAEvF,IAAA;AAAA,UACA,WAAW,KAAA,KAAU,SAAA;AAAA,UACrB,MAAA,EAAQ,YAAA;AAAA,UAER,SAAA,EAAWC,EAAAA,CAAG,QAAA,EAAU,OAAA,IAAW,OAAO,CAAA;AAAA,UAC1C;AAAA;AAAA,OACF;AAAA,MACC,2BAAWD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qCAAqC,QAAA,EAAA,OAAA,EAAQ;AAAA,KAAA,EAC1E,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,OAAA;AACJ,EAAA,IAAI,UAAU,SAAA,EAAW;AACvB,IAAA,OAAA,mBACEA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0CAAyC,WAAA,EAAU,eAAA,EAAgB,aAAS,IAAA,EAAC,CAAA;AAAA,EAEhG,CAAA,MAAA,IAAW,UAAU,OAAA,EAAS;AAC5B,IAAA,OAAA,mBACEA,GAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,OAAA;AAAA,QACL,MAAM,CAAA,CAAE,KAAA;AAAA,QACR,MAAA,EAAQ,WAAA;AAAA,QACR,MAAA,EAAQ,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,MAAA;AAAA;AAAA,KAC7B;AAAA,EAEJ,WAAW,KAAA,KAAU,OAAA,IAAW,CAAC,IAAA,IAAQ,IAAA,CAAK,SAAS,QAAA,EAAU;AAC/D,IAAA,OAAA,mBACEA,GAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,OAAA;AAAA,QACL,MAAM,CAAA,CAAE,KAAA;AAAA,QACR,MAAA,EAAQ,WAAA;AAAA,QACR,MAAA,EAAQ,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,MAAA;AAAA;AAAA,KAC7B;AAAA,EAEJ,CAAA,MAAA,IAAW,IAAA,CAAK,IAAA,KAAS,OAAA,EAAS;AAChC,IAAA,OAAA,mBACEA,GAAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,OAAO,IAAA,CAAK,KAAA;AAAA,QACZ,SAAA,EAAW,KAAA;AAAA,QACX,MAAA,EAAQ,CAAA;AAAA,QACR,MAAA,EAAQ,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,MAAA;AAAA;AAAA,KAC7B;AAAA,EAEJ,CAAA,MAAA,IAAW,IAAA,CAAK,IAAA,KAAS,QAAA,EAAU;AACjC,IAAA,OAAA,mBAAUA,GAAAA,CAAC,UAAA,EAAA,EAAW,OAAO,IAAA,CAAK,KAAA,EAAO,SAAS,KAAA,EAAO,CAAA;AAAA,EAC3D,CAAA,MAAO;AACL,IAAA,OAAA,mBACEA,GAAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,QAAQ,IAAA,CAAK,MAAA;AAAA,QACb,MAAM,IAAA,CAAK,IAAA;AAAA,QACX,OAAA;AAAA,QACA,CAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA;AAAA,KACF;AAAA,EAEJ;AAEA,EAAA,MAAM,MAAA,mBACJE,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,wCAAA,EACb,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EACb,QAAA,EAAA;AAAA,sBAAAF,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gDAAA,EAAkD,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,MACrE,+BAAeA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,wCAAwC,QAAA,EAAA,WAAA,EAAY;AAAA,KAAA,EACnF,CAAA;AAAA,IACC,2BAAWA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAuB,QAAA,EAAA,OAAA,EAAQ;AAAA,GAAA,EAC5D,CAAA;AAEF,EAAA,IAAI,YAAY,OAAA,EAAS;AACvB,IAAA,uBACEE,IAAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWD,EAAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA;AAAA,QACtD,WAAA,EAAU,iBAAA;AAAA,QACV,aAAA,EAAa,MAAA;AAAA,QACb,WAAA,EAAW,UAAU,SAAA,IAAa,MAAA;AAAA,QAEjC,QAAA,EAAA;AAAA,UAAA,MAAA;AAAA,0BACDD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAW,QAAA,EAAA,OAAA,EAAQ;AAAA;AAAA;AAAA,KACpC;AAAA,EAEJ;AACA,EAAA,uBACEE,IAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,UAAA;AAAA,MACR,SAAA,EAAWD,EAAAA,CAAG,mDAAA,EAAqD,SAAS,CAAA;AAAA,MAC5E,WAAA,EAAU,iBAAA;AAAA,MACV,aAAA,EAAa,MAAA;AAAA,MACb,WAAA,EAAW,UAAU,SAAA,IAAa,MAAA;AAAA,MAEjC,QAAA,EAAA;AAAA,QAAA,MAAA;AAAA,wBACDD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAkB,QAAA,EAAA,OAAA,EAAQ;AAAA;AAAA;AAAA,GAC3C;AAEJ;AC3QO,IAAM,gBAAA,GAAmC;AAAA,EAC9C,GAAG,uBAAA;AAAA,EACH,GAAA,EAAK,CAAC,CAAA,KAAM,SAAA,CAAU,CAAC,CAAA;AAAA,EACvB,KAAA,EAAO,CAAC,CAAA,KAAM,WAAA,CAAY,CAAC;AAC7B;AASO,IAAM,8BAAA,GAAgE;AAAA,EAC3E,aAAA,EAAe,CAAC,EAAA,KAAO,CAAA,uBAAA,EAAqB,EAAE,CAAA,oCAAA,CAAA;AAAA,EAC9C,aAAA,EAAe;AACjB;AAgBA,IAAM,KAAA,uBAAY,GAAA,CAAI,CAAC,OAAO,MAAA,EAAQ,MAAA,EAAQ,KAAA,EAAO,OAAO,CAAC,CAAA;AAE7D,SAAS,OAAO,KAAA,EAAgD;AAC9D,EAAA,OAAO,KAAA,CAAM,MAAM,IAAA,KAAS,QAAA,GAAW,WAAW,KAAA,CAAM,KAAA,CAAM,IAAA,KAAS,OAAA,GAAU,OAAA,GAAU,OAAA;AAC7F;AAEA,SAAS,WAAA,CAAY;AAAA,EACnB,MAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAAwF;AACtF,EAAA,MAAM,cAAc,oBAAA,EAAqB;AACzC,EAAA,MAAM,EAAE,OAAM,GAAI,KAAA;AAClB,EAAA,MAAM,EAAE,OAAA,EAAS,MAAA,EAAQ,SAAA,EAAW,OAAM,GAAI,eAAA;AAAA,IAC5C,MAAA;AAAA,IACA,MAAM,MAAA,CAAO,MAAA;AAAA,IACb,KAAA;AAAA,IACA,EAAE,OAAA;AAAQ,GACZ;AACA,EAAA,MAAM,IAAA,GAAO,QAAQ,MAA6B;AAChD,IAAA,IAAI,CAAC,SAAS,OAAO,MAAA;AACrB,IAAA,MAAM,QAAQ,MAAA,CAAO,KAAA;AACrB,IAAA,IAAI,KAAA,CAAM,SAAS,QAAA,EAAU;AAC3B,MAAA,MAAM,UAAA,GAAa,QAAQ,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,OAAO,CAAA;AAE9D,MAAA,MAAM,EAAA,GAAK,MAAM,SAAA,IAAa,OAAA;AAC9B,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,QAAA;AAAA,QACN,KAAA,EAAO,cAAc,OAAO,CAAA,KAAM,OAAO,OAAA,IAAW,EAAA,KAAO,QAAQ,CAAA,GAAI,IAAA,CAAA;AAAA,QACvE,MAAA,EAAQ,WAAA,CAAY,UAAA,EAAY,UAAU;AAAA,OAC5C;AAAA,IACF;AACA,IAAA,IAAI,KAAA,CAAM,GAAA,CAAI,KAAA,CAAM,IAAI,CAAA,EAAG;AACzB,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,OAAA;AAAA,QACN,KAAA,EAAO,aAAa,EAAE,GAAG,OAAO,IAAA,EAAM,KAAA,CAAM,IAAA,EAAuB,EAAG,OAAA,EAAS;AAAA,UAC7E,MAAA;AAAA,UACA,UAAA;AAAA,UACA,UAAA,EAAY;AAAA,SACb;AAAA,OACH;AAAA,IACF;AACA,IAAA,IAAI,MAAM,CAAA,EAAG;AACX,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,QAAA;AAAA,QACN,KAAA,EAAO,aAAa,EAAE,GAAG,OAAO,IAAA,EAAM,KAAA,IAAS,OAAA,EAAS;AAAA,UACtD,MAAA;AAAA,UACA,UAAA;AAAA,UACA,UAAA,EAAY;AAAA,SACb;AAAA,OACH;AAAA,IACF;AACA,IAAA,MAAM,QAAQ,KAAA,CAAM,OAAA,EAAS,SACzB,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAC,EAAA,KAAO,QAAQ,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAC,IACvE,OAAA,CAAQ,MAAA;AACZ,IAAA,OAAO,EAAE,IAAA,EAAM,SAAA,EAAW,QAAQ,KAAA,EAAO,IAAA,EAAM,QAAQ,IAAA,EAAK;AAAA,EAC9D,CAAA,EAAG,CAAC,OAAA,EAAS,KAAA,EAAO,QAAQ,UAAA,EAAY,MAAA,CAAO,KAAK,CAAC,CAAA;AAErD,EAAA,MAAM,KAAA,GAAQ,KAAA,GACV,OAAA,GACA,CAAC,UACC,SAAA,GACE,SAAA,GACA,OAAA,GACF,KAAA,CAAM,SAAS,QAAA,IAAY,OAAA,CAAQ,IAAA,CAAK,MAAA,KAAW,IACjD,OAAA,GACA,OAAA;AAER,EAAA,MAAM,WAAA,GACJ,OAAO,EAAA,KAAO,UAAA,IAAc,YAAY,aAAA,mBACtCA,IAAC,MAAA,EAAA,EAAO,OAAA,EAAQ,WAAU,IAAA,EAAK,IAAA,EAAK,SAAS,MAAM,WAAA,CAAY,iBAAgB,EAC5E,QAAA,EAAA,MAAA,CAAO,eACV,CAAA,GACE,MAAA;AAEN,EAAA,uBACEA,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,OAAO,KAAK,CAAA;AAAA,MAClB,OAAO,KAAA,CAAM,KAAA;AAAA,MACb,aAAa,KAAA,CAAM,WAAA;AAAA,MACnB,KAAA;AAAA,MACA,IAAA;AAAA,MACA,WAAA,EAAa,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,MAAA;AAAA,MACtD,WAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA;AAAA;AAAA,GACF;AAEJ;AAEO,SAAS,cAAA,CAAe;AAAA,EAC7B,UAAA,GAAa,gBAAA;AAAA,EACb,MAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,MAAM,WAAW,cAAA,EAAe;AAChC,EAAA,MAAM,CAAA,GAAI,EAAE,GAAG,8BAAA,EAAgC,GAAG,MAAA,EAAO;AACzD,EAAA,MAAM,SAAS,QAAA,CAAS,GAAA,CAAI,KAAA,CAAM,KAAA,CAAM,OAAO,EAAE,CAAA;AACjD,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,uBACEA,GAAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAM,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA;AAAA,QACxB,KAAA,EAAO,MAAM,KAAA,CAAM,KAAA;AAAA,QACnB,KAAA,EAAM,OAAA;AAAA,QACN,aAAa,CAAA,CAAE,aAAA,GAAgB,KAAA,CAAM,KAAA,CAAM,OAAO,EAAE,CAAA;AAAA,QACpD,SAAS,KAAA,CAAM,OAAA;AAAA,QACf,MAAA,EAAQ,CAAA;AAAA,QACR,WAAW,KAAA,CAAM,SAAA;AAAA,QACjB,QAAQ,KAAA,CAAM;AAAA;AAAA,KAChB;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA,CAAC,WAAA,EAAA,EAA4B,MAAA,EAAgB,UAAA,EAAwB,QAAQ,CAAA,EAAI,GAAG,KAAA,EAAA,EAAlE,MAAA,CAAO,EAAkE,CAAA;AAE/F;AC7GO,IAAM,2BAAA,GAAiD;AAAA,EAC5D,KAAA,EAAO,OAAA;AAAA,EACP,WAAA,EAAa,aAAA;AAAA,EACb,MAAA,EAAQ,MAAA;AAAA,EACR,MAAA,EAAQ,SAAA;AAAA,EACR,KAAA,EAAO;AAAA,IACL,MAAA,EAAQ,QAAA;AAAA,IACR,GAAA,EAAK,WAAA;AAAA,IACL,IAAA,EAAM,YAAA;AAAA,IACN,IAAA,EAAM,YAAA;AAAA,IACN,GAAA,EAAK,WAAA;AAAA,IACL,KAAA,EAAO,aAAA;AAAA,IACP,KAAA,EAAO;AAAA,GACT;AAAA,EACA,OAAA,EAAS,UAAA;AAAA,EACT,WAAA,EAAa,gBAAA;AAAA,EACb,cAAA,EAAgB,2BAAA;AAAA,EAChB,MAAA,EAAQ,KAAA;AAAA,EACR,OAAA,EAAS,EAAE,GAAA,EAAK,KAAA,EAAO,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,OAAA,EAAS,OAAA,EAAS,SAAA,EAAW,IAAA,EAAM,MAAA,EAAO;AAAA,EACtF,OAAA,EAAS,UAAA;AAAA,EACT,WAAA,EAAa,SAAA;AAAA,EACb,OAAA,EAAS,SAAA;AAAA,EACT,UAAA,EAAY,EAAE,KAAA,EAAO,OAAA,EAAS,GAAA,EAAK,KAAA,EAAO,GAAA,EAAK,SAAA,EAAW,GAAA,EAAK,SAAA,EAAW,GAAA,EAAK,SAAA,EAAU;AAAA,EACzF,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,kBAAA;AAAA,EACT,IAAA,EAAM,OAAA;AAAA,EACN,OAAO,EAAE,KAAA,EAAO,mBAAmB,YAAA,EAAc,eAAA,EAAiB,aAAa,gBAAA,EAAiB;AAAA,EAChG,KAAA,EAAO,SAAA;AAAA,EACP,OAAA,EAAS,SAAA;AAAA,EACT,OAAA,EAAS,UAAA;AAAA,EACT,SAAA,EAAW,SAAA;AAAA,EACX,UAAA,EAAY,EAAE,GAAA,EAAK,WAAA,EAAa,MAAM,YAAA,EAAa;AAAA,EACnD,KAAA,EAAO,OAAA;AAAA,EACP,MAAA,EAAQ,EAAE,GAAA,EAAK,SAAA,EAAW,GAAA,EAAK,OAAA,EAAS,GAAA,EAAK,MAAA,EAAQ,GAAA,EAAK,YAAA,EAAc,IAAA,EAAM,YAAA,EAAa;AAAA,EAC3F,OAAA,EAAS,YAAA;AAAA,EACT,SAAA,EAAW,iBAAA;AAAA,EACX,YAAA,EAAc,sBAAA;AAAA,EACd,SAAA,EAAW;AAAA,IACT,EAAA,EAAI,IAAA;AAAA,IACJ,GAAA,EAAK,QAAA;AAAA,IACL,QAAA,EAAU,UAAA;AAAA,IACV,EAAA,EAAI,UAAA;AAAA,IACJ,GAAA,EAAK,aAAA;AAAA,IACL,EAAA,EAAI,UAAA;AAAA,IACJ,GAAA,EAAK,YAAA;AAAA,IACL,KAAA,EAAO,UAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb;AAAA,EACA,WAAA,EAAa,OAAA;AAAA,EACb,QAAA,EAAU,WAAA;AAAA,EACV,WAAA,EAAa,OAAA;AAAA,EACb,QAAA,EAAU,wBAAA;AAAA,EACV,OAAA,EAAS;AACX;AAcA,IAAM,IAAA,GAAO,QAAA;AAEb,SAAS,KAAA,CAAM;AAAA,EACb,KAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,uBACEE,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+BAAA,EACb,QAAA,EAAA;AAAA,oBAAAF,GAAAA,CAAC,KAAA,EAAA,EAAM,OAAA,EAAkB,SAAA,EAAU,6CAChC,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,IACC;AAAA,GAAA,EACH,CAAA;AAEJ;AAEA,SAAS,YAAA,CAAa;AAAA,EACpB,KAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,EASG;AACD,EAAA,MAAM,KAAKG,KAAAA,EAAM;AACjB,EAAA,uBACEH,GAAAA,CAAC,KAAA,EAAA,EAAM,KAAA,EAAc,OAAA,EAAS,EAAA,EAC5B,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,aAAA,EAAa,MAAA,EAChB,QAAA,kBAAAE,IAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,KAAA,KAAU,IAAA,GAAO,IAAA,GAAO,EAAA,CAAA;AAAA,MAC/B,eAAe,CAAC,CAAA,KAAM,SAAS,CAAA,KAAM,IAAA,GAAO,SAAY,CAAC,CAAA;AAAA,MAEzD,QAAA,EAAA;AAAA,wBAAAF,GAAAA,CAAC,aAAA,EAAA,EAAc,EAAA,EAAQ,SAAA,EAAU,iBAAA,EAAkB,YAAA,EAAY,KAAA,EAC7D,QAAA,kBAAAA,GAAAA,CAAC,WAAA,EAAA,EAAY,WAAA,EAA0B,CAAA,EACzC,CAAA;AAAA,wBACAE,KAAC,aAAA,EAAA,EACE,QAAA,EAAA;AAAA,UAAA,IAAA,oBAAQF,GAAAA,CAAC,UAAA,EAAA,EAAW,KAAA,EAAO,MAAO,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,UACvC,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,qBACZA,GAAAA,CAAC,UAAA,EAAA,EAAyB,KAAA,EAAO,CAAA,CAAE,KAAA,EAChC,QAAA,EAAA,CAAA,CAAE,KAAA,EAAA,EADY,CAAA,CAAE,KAEnB,CACD;AAAA,SAAA,EACH;AAAA;AAAA;AAAA,KAEJ,CAAA,EACF,CAAA;AAEJ;AAEA,SAAS,UAAA,CAAW;AAAA,EAClB,KAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAKG;AACD,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,KAAA,CAAM,WAAW,MAAM,CAAA;AAC3C,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,KAAA,CAAM,EAAE,CAAA;AAC7B,EAAA,uBACEA,GAAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,OAAO,KAAA,CAAM,KAAA;AAAA,MACb,KAAA,EAAO,OAAO,KAAA,KAAU,QAAA,IAAY,QAAQ,KAAA,GAAQ,MAAA;AAAA,MACpD,QAAA;AAAA,MACA,OAAA;AAAA,MACA,aAAa,KAAA,CAAM,WAAA;AAAA,MACnB,IAAA,EAAM,KAAA,CAAM,QAAA,GAAW,MAAA,GAAa,MAAM,WAAA,IAAe,QAAA;AAAA,MACzD;AAAA;AAAA,GACF;AAEJ;AAEA,IAAM,SAAS,CAAC,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,KAAK,IAAI,CAAA;AACxC,IAAM,WAAA,GAAc,CAAC,EAAA,KAAiB,EAAA,KAAO,WAAW,EAAA,KAAO,WAAA;AAE/D,SAAS,WAAA,CAAY;AAAA,EACnB,MAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,CAAA;AAAA,EACA;AACF,CAAA,EAOG;AACD,EAAA,MAAM,MAAA,GAAS,KAAA,CAAM,MAAA,CAAO,MAAA,IAAU,EAAC;AACvC,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,MAAA,CAAO,UAAU,MAAM,CAAA;AAC1C,EAAA,MAAM,QAAQ,KAAA,CAAM,KAAA;AACpB,EAAA,MAAM,QAAA,GAAW,CAAC,KAAA,KAChB,QAAA,CAAS,EAAE,GAAG,KAAA,EAAO,KAAA,EAAO,EAAE,GAAG,KAAA,EAAO,GAAG,KAAA,IAAS,CAAA;AACtD,EAAA,MAAM,OAAOI,OAAAA,CAAQ,MAAM,IAAI,GAAA,CAAI,MAAA,CAAO,IAAI,CAAC,CAAA,KAAM,CAAC,CAAA,CAAE,IAAI,CAAC,CAAC,CAAC,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAC1E,EAAA,MAAM,YAAY,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,SAAS,QAAQ,CAAA;AAC1D,EAAA,MAAM,UAAU,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,SAAS,QAAQ,CAAA;AACxD,EAAA,MAAM,IAAA,GAAO,CAAC,IAAA,KAAkC,IAAA,CAAK,IAAI,CAAC,CAAA,MAAO,EAAE,KAAA,EAAO,CAAA,CAAE,EAAA,EAAI,KAAA,EAAO,CAAA,CAAE,OAAM,CAAE,CAAA;AACjG,EAAA,MAAM,IAAI,KAAA,CAAM,CAAA,GAAI,KAAK,GAAA,CAAI,KAAA,CAAM,CAAC,CAAA,GAAI,MAAA;AACxC,EAAA,MAAM,SAAA,GAAY,MAAM,SAAA,IAAa,OAAA;AACrC,EAAA,MAAM,QAAA,GAAW,MAAM,IAAA,KAAS,QAAA;AAChC,EAAA,MAAM,SAAA,GAAY,KAAA,CAAM,IAAA,KAAS,OAAA,IAAW,CAAC,KAAA,CAAM,CAAA;AACnD,EAAA,MAAM,QAAA,GAAW,MAAM,IAAA,KAAS,KAAA,IAAS,MAAM,IAAA,KAAS,MAAA,IAAU,MAAM,IAAA,KAAS,MAAA;AACjF,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,OAAA,IAAW,EAAC;AAClC,EAAA,MAAM,SAAA,GAAY,CAAC,CAAA,EAAW,KAAA,KAC5B,SAAS,EAAE,OAAA,EAAS,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,EAAG,MAAO,CAAA,KAAM,CAAA,GAAI,EAAE,GAAG,CAAA,EAAG,GAAG,KAAA,EAAM,GAAI,CAAE,CAAA,EAAG,CAAA;AAEjF,EAAA,uBACEF,KAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAF,GAAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,OAAO,CAAA,CAAE,MAAA;AAAA,QACT,OAAO,KAAA,CAAM,IAAA;AAAA,QACb,QAAA,EAAU,CAAC,IAAA,KAAS,QAAA,CAAS,EAAE,IAAA,EAAO,IAAA,IAAQ,OAAqB,CAAA;AAAA,QACnE,OAAA,EAAU,OAAO,IAAA,CAAK,CAAA,CAAE,KAAK,CAAA,CAAkB,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,UACzD,KAAA,EAAO,CAAA;AAAA,UACP,KAAA,EAAO,CAAA,CAAE,KAAA,CAAM,CAAC;AAAA,SAClB,CAAE,CAAA;AAAA,QACF,MAAA,EAAQ,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,KAAA;AAAA;AAAA,KAC7B;AAAA,IACC,CAAC,4BACAA,GAAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,OAAO,CAAA,CAAE,OAAA;AAAA,QACT,OAAO,KAAA,CAAM,CAAA;AAAA,QACb,UAAU,CAACK,EAAAA,KAAM,SAAS,EAAE,CAAA,EAAAA,IAAG,CAAA;AAAA,QAC/B,OAAA,EAAS,KAAK,SAAS,CAAA;AAAA,QACvB,aAAa,CAAA,CAAE,WAAA;AAAA,QACf,IAAA,EAAM,KAAA,CAAM,IAAA,KAAS,OAAA,GAAU,EAAE,cAAA,GAAiB,MAAA;AAAA,QAClD,MAAA,EAAQ,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,EAAA;AAAA;AAAA,KAC7B;AAAA,IAED,CAAC,QAAA,IAAY,CAAA,EAAG,IAAA,KAAS,0BACxBL,GAAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,OAAO,CAAA,CAAE,MAAA;AAAA,QACT,KAAA,EAAO,MAAM,MAAA,IAAU,OAAA;AAAA,QACvB,QAAA,EAAU,CAAC,MAAA,KAAW,QAAA,CAAS,EAAE,MAAA,EAAS,MAAA,IAAU,SAAwB,CAAA;AAAA,QAC5E,OAAA,EAAU,OAAO,IAAA,CAAK,CAAA,CAAE,OAAO,CAAA,CAAmB,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,UAC5D,KAAA,EAAO,CAAA;AAAA,UACP,KAAA,EAAO,CAAA,CAAE,OAAA,CAAQ,CAAC;AAAA,SACpB,CAAE,CAAA;AAAA,QACF,MAAA,EAAQ,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,OAAA;AAAA;AAAA,KAC7B;AAAA,IAED,4BACCA,GAAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,OAAO,CAAA,CAAE,OAAA;AAAA,QACT,OAAO,KAAA,CAAM,MAAA;AAAA,QACb,UAAU,CAAC,MAAA,KAAW,QAAA,CAAS,EAAE,QAAQ,CAAA;AAAA,QACzC,OAAA,EAAS,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,CAAC,MAAM,CAAA,CAAE,EAAA,KAAO,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,QACvD,MAAM,CAAA,CAAE,WAAA;AAAA,QACR,MAAA,EAAQ,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,OAAA;AAAA;AAAA,KAC7B;AAAA,IAED,CAAC,SAAA,oBACAE,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,wBAAA,EACb,QAAA,EAAA;AAAA,sBAAAF,GAAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,OAAO,CAAA,CAAE,OAAA;AAAA,UACT,KAAA,EAAO,SAAA;AAAA,UACP,QAAA,EAAU,CAAC,EAAA,KAAO;AAChB,YAAA,MAAM,OAAQ,EAAA,IAAM,OAAA;AACpB,YAAA,QAAA,CAAS;AAAA,cACP,SAAA,EAAW,IAAA;AAAA,cACX,CAAA,EAAG,SAAS,OAAA,GAAU,MAAA,GAAa,MAAM,CAAA,IAAK,OAAA,CAAQ,CAAC,CAAA,EAAG;AAAA,aAC3D,CAAA;AAAA,UACH,CAAA;AAAA,UACA,OAAA,EAAU,MAAA,CAAO,IAAA,CAAK,CAAA,CAAE,UAAU,CAAA,CAC/B,MAAA,CAAO,CAAC,EAAA,KAAO,EAAA,KAAO,OAAA,IAAW,OAAA,CAAQ,MAAA,GAAS,CAAC,CAAA,CACnD,GAAA,CAAI,CAAC,EAAA,MAAQ,EAAE,KAAA,EAAO,EAAA,EAAI,KAAA,EAAO,CAAA,CAAE,UAAA,CAAW,EAAE,CAAA,EAAE,CAAE,CAAA;AAAA,UACvD,MAAA,EAAQ,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,UAAA;AAAA;AAAA,OAC7B;AAAA,MACC,SAAA,KAAc,2BACbA,GAAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,OAAO,CAAA,CAAE,OAAA;AAAA,UACT,OAAO,KAAA,CAAM,CAAA;AAAA,UACb,UAAU,CAAC,CAAA,KAAM,QAAA,CAAS,EAAE,GAAG,CAAA;AAAA,UAC/B,OAAA,EAAS,KAAK,OAAO,CAAA;AAAA,UACrB,MAAA,EAAQ,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,EAAA;AAAA;AAAA;AAC7B,KAAA,EAEJ,CAAA;AAAA,IAED,QAAA,IAAY,KAAA,CAAM,MAAA,IAAU,KAAA,CAAM,IAAA,KAAS,0BAC1CE,IAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,iCAAA,EACf,QAAA,EAAA;AAAA,sBAAAF,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,OAAA,CAAQ,KAAA,CAAM,OAAO,CAAA;AAAA,UAC9B,iBAAiB,CAAC,OAAA,KAAY,QAAA,CAAS,EAAE,SAAS,CAAA;AAAA,UAClD,aAAA,EAAa,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,QAAA;AAAA;AAAA,OAClC;AAAA,MACC,CAAA,CAAE;AAAA,KAAA,EACL,CAAA;AAAA,IAED,CAAC,YAAY,CAAC,SAAA,oBACbE,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,wBAAA,EACb,QAAA,EAAA;AAAA,sBAAAF,GAAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,OAAO,CAAA,CAAE,IAAA;AAAA,UACT,OAAO,KAAA,CAAM,IAAA,KAAS,CAAA,EAAG,IAAA,KAAS,SAAS,OAAA,GAAU,YAAA,CAAA;AAAA,UACrD,UAAU,CAAC,IAAA,KAAS,QAAA,CAAS,EAAE,MAA2B,CAAA;AAAA,UAC1D,OAAA,EAAU,OAAO,IAAA,CAAK,CAAA,CAAE,KAAK,CAAA,CAAoB,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,YAC3D,KAAA,EAAO,CAAA;AAAA,YACP,KAAA,EAAO,CAAA,CAAE,KAAA,CAAM,CAAC;AAAA,WAClB,CAAE,CAAA;AAAA,UACF,MAAA,EAAQ,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,KAAA;AAAA;AAAA,OAC7B;AAAA,sBACAA,GAAAA,CAAC,KAAA,EAAA,EAAM,KAAA,EAAO,CAAA,CAAE,OACd,QAAA,kBAAAA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,GAAA,EAAK,CAAA;AAAA,UACL,GAAA,EAAK,GAAA;AAAA,UACL,KAAA,EAAO,MAAM,KAAA,IAAS,EAAA;AAAA,UACtB,WAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAU,CAAC,CAAA,KACT,QAAA,CAAS;AAAA,YACP,KAAA,EAAO,CAAA,CAAE,MAAA,CAAO,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,MAAA,CAAO,CAAA,CAAE,MAAA,CAAO,KAAK,CAAC,CAAA,GAAI;AAAA,WAC/D,CAAA;AAAA,UAEH,aAAA,EAAa,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,MAAA;AAAA;AAAA,OAClC,EACF;AAAA,KAAA,EACF,CAAA;AAAA,IAED,SAAA,oBACCE,IAAAA,CAAC,UAAA,EAAA,EAAS,SAAA,EAAU,yBAAwB,aAAA,EAAa,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,QAAA,CAAA,EAC1E,QAAA,EAAA;AAAA,sBAAAF,GAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,kDAAA,EAAoD,YAAE,OAAA,EAAQ,CAAA;AAAA,MAC/E,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU;AACrB,QAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,IAAW,MAAA,CAAO,IAAI,CAAC,CAAA,KAAM,EAAE,EAAE,CAAA;AACrD,QAAA,MAAM,OAAA,GAAU,KAAA,CAAM,QAAA,CAAS,KAAA,CAAM,EAAE,CAAA;AACvC,QAAA,uBACEE,IAAAA,CAAC,OAAA,EAAA,EAAqB,SAAA,EAAU,iCAAA,EAC9B,QAAA,EAAA;AAAA,0BAAAF,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,UAAA;AAAA,cACL,OAAA;AAAA,cACA,QAAA,EAAU,MACR,QAAA,CAAS;AAAA,gBACP,OAAA,EAAS,OAAA,GACL,KAAA,CAAM,MAAA,CAAO,CAAC,EAAA,KAAO,EAAA,KAAO,KAAA,CAAM,EAAE,CAAA,GACpC,MAAA,CACG,GAAA,CAAI,CAAC,MAAM,CAAA,CAAE,EAAE,CAAA,CACf,MAAA,CAAO,CAAC,EAAA,KAAO,EAAA,KAAO,KAAA,CAAM,EAAA,IAAM,KAAA,CAAM,QAAA,CAAS,EAAE,CAAC;AAAA,eAC5D;AAAA;AAAA,WAEL;AAAA,UACC,KAAA,CAAM;AAAA,SAAA,EAAA,EAdG,MAAM,EAelB,CAAA;AAAA,MAEJ,CAAC;AAAA,KAAA,EACH,CAAA;AAAA,IAED,SAAA,oBACCE,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,wBAAA,EACb,QAAA,EAAA;AAAA,sBAAAF,GAAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,OAAO,CAAA,CAAE,OAAA;AAAA,UACT,KAAA,EAAO,MAAM,OAAA,EAAS,KAAA;AAAA,UACtB,QAAA,EAAU,CAAC,KAAA,KACT,QAAA,CAAS;AAAA,YACP,OAAA,EAAS,QACL,EAAE,KAAA,EAAO,WAAW,KAAA,CAAM,OAAA,EAAS,SAAA,IAAa,KAAA,EAAM,GACtD;AAAA,WACL,CAAA;AAAA,UAEH,OAAA,EAAS,KAAK,MAAM,CAAA;AAAA,UACpB,MAAM,CAAA,CAAE,SAAA;AAAA,UACR,MAAA,EAAQ,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,MAAA;AAAA;AAAA,OAC7B;AAAA,MACC,KAAA,CAAM,2BACLA,GAAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,OAAO,CAAA,CAAE,OAAA;AAAA,UACT,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,SAAA,IAAa,KAAA;AAAA,UAClC,QAAA,EAAU,CAAC,SAAA,KACT,QAAA,CAAS;AAAA,YACP,OAAA,EAAS;AAAA,cACP,KAAA,EAAO,KAAA,CAAM,OAAA,EAAS,KAAA,IAAS,EAAA;AAAA,cAC/B,SAAA,EAAW,SAAA,KAAc,MAAA,GAAS,MAAA,GAAS;AAAA;AAC7C,WACD,CAAA;AAAA,UAEH,OAAA,EAAS;AAAA,YACP,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,CAAA,CAAE,WAAW,GAAA,EAAI;AAAA,YACxC,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,CAAA,CAAE,WAAW,IAAA;AAAK,WAC5C;AAAA,UACA,MAAA,EAAQ,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,UAAA;AAAA;AAAA;AAC7B,KAAA,EAEJ,CAAA;AAAA,oBAEFE,KAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAsB,aAAA,EAAa,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,QAAA,CAAA,EACnE,QAAA,EAAA;AAAA,sBAAAF,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2CAAA,EAA6C,YAAE,OAAA,EAAQ,CAAA;AAAA,MACtE,OAAA,CAAQ,IAAI,CAAC,MAAA,EAAQ,sBACpBE,IAAAA,CAAC,KAAA,EAAA,EAAY,SAAA,EAAU,mDAAA,EACrB,QAAA,EAAA;AAAA,wBAAAF,GAAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,OAAO,CAAA,CAAE,WAAA;AAAA,YACT,OAAO,MAAA,CAAO,KAAA;AAAA,YACd,QAAA,EAAU,CAAC,KAAA,KAAU,SAAA,CAAU,GAAG,EAAE,KAAA,EAAO,KAAA,IAAS,EAAA,EAAI,CAAA;AAAA,YACxD,OAAA,EAAS,KAAK,MAAM;AAAA;AAAA,SACtB;AAAA,wBACAA,GAAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,OAAO,CAAA,CAAE,QAAA;AAAA,YACT,OAAO,MAAA,CAAO,EAAA;AAAA,YACd,QAAA,EAAU,CAAC,EAAA,KAAO,SAAA,CAAU,GAAG,EAAE,EAAA,EAAK,EAAA,IAAM,IAAA,EAAmB,CAAA;AAAA,YAC/D,OAAA,EAAU,OAAO,IAAA,CAAK,CAAA,CAAE,SAAS,CAAA,CAAiB,GAAA,CAAI,CAAC,EAAA,MAAQ;AAAA,cAC7D,KAAA,EAAO,EAAA;AAAA,cACP,KAAA,EAAO,CAAA,CAAE,SAAA,CAAU,EAAE;AAAA,aACvB,CAAE;AAAA;AAAA,SACJ;AAAA,QACC,WAAA,CAAY,MAAA,CAAO,EAAE,CAAA,mBACpBA,IAAC,KAAA,EAAA,EAAM,KAAA,EAAO,CAAA,CAAE,WAAA,EACd,QAAA,kBAAAA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EACE,MAAA,CAAO,KAAA,KAAU,IAAA,IAAQ,MAAA,CAAO,UAAU,MAAA,GAAY,EAAA,GAAK,MAAA,CAAO,MAAA,CAAO,KAAK,CAAA;AAAA,YAEhF,IAAA,EAAM,KAAK,GAAA,CAAI,MAAA,CAAO,KAAK,CAAA,EAAG,IAAA,KAAS,WAAW,QAAA,GAAW,MAAA;AAAA,YAC7D,QAAA,EAAU,CAAC,CAAA,KACT,SAAA,CAAU,CAAA,EAAG;AAAA,cACX,OACE,IAAA,CAAK,GAAA,CAAI,OAAO,KAAK,CAAA,EAAG,SAAS,QAAA,IAAY,CAAA,CAAE,MAAA,CAAO,KAAA,KAAU,KAC5D,MAAA,CAAO,CAAA,CAAE,OAAO,KAAK,CAAA,GACrB,EAAE,MAAA,CAAO;AAAA,aAChB;AAAA;AAAA,SAEL,EACF,CAAA,mBAEAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA;AAAA,wBAERA,GAAAA;AAAA,UAACM,MAAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,cAAY,CAAA,CAAE,YAAA;AAAA,YACd,OAAA,EAAS,MAAM,QAAA,CAAS,EAAE,OAAA,EAAS,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,KAAM,CAAC,GAAG,CAAA;AAAA,YAEtE,QAAA,kBAAAN,GAAAA,CAAC,CAAA,EAAA,EAAE,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA;AACxB,OAAA,EAAA,EA3CQ,CA4CV,CACD,CAAA;AAAA,sBACDE,IAAAA;AAAA,QAACI,MAAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAK,IAAA;AAAA,UACL,SAAA,EAAU,YAAA;AAAA,UACV,QAAA,EAAU,CAAC,MAAA,CAAO,MAAA;AAAA,UAClB,OAAA,EAAS,MACP,QAAA,CAAS,EAAE,SAAS,CAAC,GAAG,SAAS,EAAE,KAAA,EAAO,OAAO,CAAC,CAAA,EAAG,MAAM,EAAA,EAAI,EAAA,EAAI,MAAM,KAAA,EAAO,EAAA,EAAI,CAAA,EAAG,CAAA;AAAA,UAGzF,QAAA,EAAA;AAAA,4BAAAN,GAAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,UAAA,EAAW,CAAA;AAAA,YAAE,GAAA;AAAA,YAAE,CAAA,CAAE;AAAA;AAAA;AAAA;AACnC,KAAA,EACF,CAAA;AAAA,IACC,6BACCA,GAAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,OAAO,CAAA,CAAE,KAAA;AAAA,QACT,KAAA,EAAO,MAAA,CAAO,eAAA,CAAgB,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,QAC1C,QAAA,EAAU,CAAC,CAAA,KAAM,QAAA,CAAS,EAAE,GAAG,KAAA,EAAO,KAAA,EAAO,MAAA,CAAO,CAAA,IAAK,CAAC,CAAA,EAAG,CAAA;AAAA,QAC7D,OAAA,EAAS,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,MAAO,EAAE,KAAA,EAAO,CAAA,EAAG,KAAA,EAAO,CAAA,CAAE,MAAA,CAAO,CAAC,GAAE,CAAE,CAAA;AAAA,QAC7D,MAAA,EAAQ,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,MAAA;AAAA;AAAA,KAC7B;AAAA,IAED,CAAC,OAAO,MAAA,oBAAUA,IAAC,GAAA,EAAA,EAAE,SAAA,EAAU,+BAAA,EAAiC,QAAA,EAAA,CAAA,CAAE,QAAA,EAAS;AAAA,GAAA,EAC9E,CAAA;AAEJ;AAEO,SAAS,WAAA,CAAY;AAAA,EAC1B,KAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA,GAAU,IAAA;AAAA,EACV,SAAA,GAAY,IAAA;AAAA,EACZ,MAAA;AAAA,EACA;AACF,CAAA,EAAqB;AACnB,EAAA,MAAM,CAAA,GAAI,EAAE,GAAG,2BAAA,EAA6B,GAAG,MAAA,EAAO;AACtD,EAAA,MAAM,WAAWO,cAAAA,EAAe;AAChC,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,GAAA,CAAI,KAAA,CAAM,OAAO,EAAE,CAAA;AAC3C,EAAA,MAAM,MAAA,GAAS,KAAA,CAAM,MAAA,CAAO,MAAA,IAAU,EAAC;AACvC,EAAA,MAAM,UAAUJ,KAAAA,EAAM;AACtB,EAAA,MAAM,gBAAgBA,KAAAA,EAAM;AAE5B,EAAA,uBACED,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWD,EAAAA;AAAA,QACT,oBAAA;AAAA,QACA,OAAA,IAAW;AAAA,OACb;AAAA,MACA,aAAA,EAAa,MAAA;AAAA,MAEb,QAAA,EAAA;AAAA,wBAAAC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACb,QAAA,EAAA;AAAA,0BAAAF,IAAC,KAAA,EAAA,EAAM,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA,EAAS,SAC9B,QAAA,kBAAAA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,OAAA;AAAA,cACJ,OAAO,KAAA,CAAM,KAAA;AAAA,cACb,QAAA,EAAU,CAAC,CAAA,KAAM,QAAA,CAAS,EAAE,GAAG,KAAA,EAAO,KAAA,EAAO,CAAA,CAAE,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,cAC7D,aAAA,EAAa,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,MAAA;AAAA;AAAA,WAClC,EACF,CAAA;AAAA,0BACAA,IAAC,KAAA,EAAA,EAAM,KAAA,EAAO,EAAE,WAAA,EAAa,OAAA,EAAS,eACpC,QAAA,kBAAAA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,aAAA;AAAA,cACJ,KAAA,EAAO,MAAM,WAAA,IAAe,EAAA;AAAA,cAC5B,QAAA,EAAU,CAAC,CAAA,KAAM,QAAA,CAAS,EAAE,GAAG,KAAA,EAAO,WAAA,EAAa,CAAA,CAAE,MAAA,CAAO,KAAA,IAAS,MAAA,EAAW;AAAA;AAAA,WAClF,EACF,CAAA;AAAA,0BACAA,GAAAA;AAAA,YAAC,YAAA;AAAA,YAAA;AAAA,cACC,OAAO,CAAA,CAAE,MAAA;AAAA,cACT,KAAA,EAAO,MAAM,MAAA,CAAO,EAAA;AAAA,cACpB,QAAA,EAAU,CAAC,EAAA,KACT,QAAA,CAAS;AAAA,gBACP,GAAG,KAAA;AAAA,gBACH,QAAQ,EAAE,EAAA,EAAI,EAAA,IAAM,KAAA,CAAM,OAAO,EAAA,EAAG;AAAA;AAAA,gBAEpC,KAAA,EAAO,EAAE,IAAA,EAAM,KAAA,CAAM,MAAM,IAAA;AAAK,eACjC,CAAA;AAAA,cAEH,OAAA,EAAS,QAAA,CAAS,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,MAAO,EAAE,KAAA,EAAO,CAAA,CAAE,EAAA,EAAI,KAAA,EAAO,CAAA,CAAE,OAAM,CAAE,CAAA;AAAA,cACnE,MAAA,EAAQ,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,OAAA;AAAA;AAAA,WAC7B;AAAA,UACC,MAAA,EAAQ,+BACPA,GAAAA,CAAC,OAAE,SAAA,EAAU,qCAAA,EAAuC,iBAAO,WAAA,EAAY,CAAA;AAAA,UAExE,MAAA,EAAQ,MAAA,EAAQ,GAAA,CAAI,CAAC,0BACpBA,GAAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cAEC,KAAA;AAAA,cACA,MAAA;AAAA,cACA,QAAQ,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,OAAA,EAAU,MAAM,EAAE,CAAA,CAAA;AAAA,cAC7C,QAAA,EAAU,CAAC,CAAA,KACT,QAAA,CAAS;AAAA,gBACP,GAAG,KAAA;AAAA,gBACH,MAAA,EAAQ,EAAE,GAAG,KAAA,CAAM,QAAQ,MAAA,EAAQ,EAAE,GAAG,MAAA,EAAQ,CAAC,KAAA,CAAM,EAAE,GAAG,CAAA,IAAK,MAAK,EAAE;AAAA;AAAA,gBAExE,GAAI,KAAA,CAAM,EAAA,KAAO,YAAA,IAAgB,KAAA,CAAM,OAAO,MAAA,GAC1C,EAAE,KAAA,EAAO,EAAE,MAAM,KAAA,CAAM,KAAA,CAAM,IAAA,EAAK,KAClC;AAAC,eACN;AAAA,aAAA;AAAA,YAZE,CAAA,EAAG,MAAA,CAAO,EAAE,CAAA,CAAA,EAAI,MAAM,EAAE,CAAA;AAAA,WAehC,CAAA;AAAA,UACA,0BACCA,GAAAA;AAAA,YAAC,WAAA;AAAA,YAAA;AAAA,cAEC,MAAA;AAAA,cACA,KAAA;AAAA,cACA,QAAA;AAAA,cACA,SAAA;AAAA,cACA,CAAA;AAAA,cACA;AAAA,aAAA;AAAA,YANK,MAAA,CAAO;AAAA;AAOd,SAAA,EAEJ,CAAA;AAAA,QACC,OAAA,oBACCE,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,2DAAA,EACb,QAAA,EAAA;AAAA,0BAAAF,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2CAAA,EAA6C,YAAE,OAAA,EAAQ,CAAA;AAAA,0BACvEA,IAAC,cAAA,EAAA,EAAe,KAAA,EAAO,OAAO,MAAA,EAAQ,MAAA,IAAU,CAAA,EAAG,MAAM,CAAA,QAAA,CAAA,EAAY;AAAA,SAAA,EACvE;AAAA;AAAA;AAAA,GAEJ;AAEJ","file":"chunk-5PWLXLHY.js","sourcesContent":["/**\n * `DashboardGrid`: a responsive 12-column grid of panels. Each child spans `width` columns on a wide\n * screen and the full width on a phone, where panels stack in order.\n */\nimport type { ReactNode } from 'react'\nimport { cn } from '@arbidocs/react/ui'\n\n/** Literal classes (the stylesheet is generated from the source): `md:col-span-1…12`. */\nconst SPANS = [\n 'md:col-span-1',\n 'md:col-span-2',\n 'md:col-span-3',\n 'md:col-span-4',\n 'md:col-span-5',\n 'md:col-span-6',\n 'md:col-span-7',\n 'md:col-span-8',\n 'md:col-span-9',\n 'md:col-span-10',\n 'md:col-span-11',\n 'md:col-span-12',\n] as const\n\n/** A width in grid columns, kept within 1…12 (default 6, half the row). */\nexport function clampPanelWidth(width: number | undefined): number {\n return Math.min(12, Math.max(1, Math.round(width ?? 6)))\n}\n\nexport interface DashboardGridProps {\n children?: ReactNode\n className?: string\n testId?: string\n}\n\n/** The grid. Wrap each panel in a `DashboardCell`. */\nexport function DashboardGrid({ children, className, testId }: DashboardGridProps) {\n return (\n <div\n className={cn('grid grid-cols-1 gap-4 md:grid-cols-12', className)}\n data-slot=\"dashboard\"\n data-testid={testId}\n >\n {children}\n </div>\n )\n}\n\n/** One cell of the grid, `width` columns wide on a wide screen. */\nexport function DashboardCell({\n width,\n children,\n className,\n}: {\n width?: number\n children?: ReactNode\n className?: string\n}) {\n return (\n <div\n className={cn('col-span-1 min-w-0', SPANS[clampPanelWidth(width) - 1], className)}\n data-slot=\"dashboard-cell\"\n >\n {children}\n </div>\n )\n}\n","/**\n * `ChartRenderer`: draws a `ChartModel`. The drawing library is loaded on demand (a skeleton shows\n * meanwhile), so a page fetches it only when a chart is on screen. Beside the drawing: a legend in\n * the theme's text colours, and a table of the same values one click away (for screen readers,\n * copying, or when colours are hard to tell apart).\n */\nimport { lazy, Suspense, useId, useState } from 'react'\nimport { cn } from '@arbidocs/react/ui'\nimport { sliceColors, type ChartModel } from './chartModel'\n\nconst RechartsRenderer = lazy(() => import('./RechartsRenderer'))\n\nexport interface ChartRendererLabels {\n showTable: string\n showChart: string\n other: string\n}\n\nexport const DEFAULT_CHART_RENDERER_LABELS: ChartRendererLabels = {\n showTable: 'Show table',\n showChart: 'Show chart',\n other: 'Other',\n}\n\nexport interface ChartRendererProps {\n model: ChartModel\n ariaLabel: string\n /** The plot's height in px. Default 240. */\n height?: number\n /** Start on the table. */\n defaultView?: 'chart' | 'table'\n labels?: Partial<ChartRendererLabels>\n className?: string\n testId?: string\n}\n\n/** The values as a table: a row per category, a column per series. */\nexport function ChartTable({\n model,\n caption,\n id,\n}: {\n model: ChartModel\n caption: string\n id?: string\n}) {\n return (\n <div className=\"max-h-72 overflow-auto\">\n <table id={id} className=\"w-full text-left text-xs\" data-slot=\"chart-table\">\n <caption className=\"sr-only\">{caption}</caption>\n <thead>\n <tr className=\"border-b border-border text-muted-foreground\">\n <th scope=\"col\" className=\"py-1.5 pr-3 font-medium\">\n {model.xLabel}\n </th>\n {model.series.map((s) => (\n <th key={s.id} scope=\"col\" className=\"py-1.5 pr-3 text-right font-medium\">\n {s.label}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {model.categories.map((category, i) => (\n <tr key={`${category}-${i}`} className=\"border-b border-border/60 last:border-0\">\n <th scope=\"row\" className=\"py-1.5 pr-3 font-normal text-foreground\">\n {category}\n </th>\n {model.series.map((s) => (\n <td key={s.id} className=\"py-1.5 pr-3 text-right tabular-nums text-foreground\">\n {s.values[i] === null ? '–' : model.format(s.values[i] as number)}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )\n}\n\nfunction Legend({ model, other }: { model: ChartModel; other: string }) {\n const pie = model.type === 'pie' || model.type === 'donut'\n const items = pie\n ? model.categories.map((label, i) => ({ label, color: sliceColors(model, other)[i] }))\n : model.series.map((s) => ({ label: s.label, color: s.color }))\n if (!pie && items.length < 2) return null\n return (\n <ul className=\"flex flex-wrap justify-center gap-x-4 gap-y-1 text-xs text-muted-foreground\">\n {items.map((item, i) => (\n <li key={`${item.label}-${i}`} className=\"inline-flex items-center gap-1.5\">\n <span\n aria-hidden=\"true\"\n className=\"inline-block size-2 rounded-full\"\n style={{ background: item.color }}\n />\n {item.label}\n </li>\n ))}\n </ul>\n )\n}\n\nexport function ChartRenderer({\n model,\n ariaLabel,\n height = 240,\n defaultView = 'chart',\n labels,\n className,\n testId,\n}: ChartRendererProps) {\n const l = { ...DEFAULT_CHART_RENDERER_LABELS, ...labels }\n const [view, setView] = useState(defaultView)\n const tableId = useId()\n return (\n <figure\n className={cn('flex min-w-0 max-w-full flex-col gap-2', className)}\n data-slot=\"dashboard-chart\"\n data-type={model.type}\n data-testid={testId}\n >\n {view === 'table' ? (\n <ChartTable model={model} caption={ariaLabel} id={tableId} />\n ) : (\n <div className=\"min-w-0\" style={{ height }} role=\"figure\" aria-label={ariaLabel}>\n <Suspense\n fallback={\n <div\n className=\"size-full animate-pulse rounded-md bg-muted\"\n data-slot=\"chart-loading\"\n />\n }\n >\n <RechartsRenderer\n model={model}\n ariaLabel={ariaLabel}\n height={height}\n otherLabel={l.other}\n />\n </Suspense>\n </div>\n )}\n <figcaption className=\"flex flex-wrap items-center justify-between gap-2\">\n <Legend model={model} other={l.other} />\n <button\n type=\"button\"\n className=\"ml-auto rounded-sm text-xs text-muted-foreground underline-offset-2 hover:text-foreground hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring print:hidden\"\n aria-controls={view === 'table' ? tableId : undefined}\n aria-pressed={view === 'table'}\n onClick={() => setView(view === 'table' ? 'chart' : 'table')}\n >\n {view === 'table' ? l.showChart : l.showTable}\n </button>\n </figcaption>\n </figure>\n )\n}\n","/**\n * `PanelView`: one dashboard panel as it looks, from data already in hand: a metric tile, a chart\n * or a table, each with its loading, empty and error state. Presentational: `DashboardPanel` reads\n * the data and renders this.\n */\nimport type { ReactNode } from 'react'\nimport { AlertTriangle, ChartNoAxesColumn } from 'lucide-react'\nimport type { DatasetField, DatasetRow, DatasetValue } from '@arbidocs/react'\nimport { Card, cn } from '@arbidocs/react/ui'\nimport { DataTable, type Column } from '../components/DataTable'\nimport { MetricCard } from '../components/MetricCard'\nimport { fmtDate } from '../lib/format'\nimport { ChartRenderer, ChartTable, type ChartRendererLabels } from './ChartRenderer'\nimport { formatterOf, type ChartModel, type UnitFormatters } from './chartModel'\n\nexport type PanelState = 'loading' | 'empty' | 'error' | 'ready'\n\nexport interface PanelViewLabels extends ChartRendererLabels {\n empty: string\n error: string\n /** Under a table cut short: \"Showing 50 of 1,200 rows\". */\n showingRows: (shown: number, total: number) => string\n yes: string\n no: string\n}\n\nexport const DEFAULT_PANEL_VIEW_LABELS: PanelViewLabels = {\n showTable: 'Show table',\n showChart: 'Show chart',\n other: 'Other',\n empty: 'Nothing to show yet.',\n error: 'This panel could not be loaded.',\n showingRows: (shown, total) =>\n `Showing ${shown.toLocaleString('en-GB')} of ${total.toLocaleString('en-GB')} rows`,\n yes: 'Yes',\n no: 'No',\n}\n\n/** What a panel shows when ready. */\nexport type PanelBody =\n | { kind: 'metric'; value: number | null; format: (value: number) => string }\n | { kind: 'chart'; model: ChartModel }\n /** A table of groups (a chart model shown as a table). */\n | { kind: 'groups'; model: ChartModel }\n /** A table of records. */\n | { kind: 'records'; fields: readonly DatasetField[]; rows: readonly DatasetRow[] }\n\nexport interface PanelViewProps {\n /** What the panel is (it shows as one before its data is in). */\n kind: 'metric' | 'chart' | 'table'\n title: string\n description?: string\n state: PanelState\n body?: PanelBody\n /** The error's own words, shown under the panel's. */\n errorDetail?: string\n /** Shown in the empty state (a link to where data comes from). */\n emptyAction?: ReactNode\n /** Buttons in the panel's corner (edit, remove), for a dashboard being edited. */\n actions?: ReactNode\n /** A metric's tile, with the theme accent token of its icon. */\n metricAccent?: string\n /** `card` (default): a card with the title; `plain`: no card (a chart placed in a page). */\n variant?: 'card' | 'plain'\n /** Most records a table shows. Default 50. */\n maxRows?: number\n formatters?: UnitFormatters\n labels?: Partial<PanelViewLabels>\n className?: string\n testId?: string\n}\n\nfunction cellText(\n value: DatasetValue | undefined,\n field: DatasetField,\n l: PanelViewLabels,\n formatters?: UnitFormatters\n): string {\n if (value === null || value === undefined || value === '') return '–'\n if (Array.isArray(value)) return value.join(', ')\n if (typeof value === 'boolean') return value ? l.yes : l.no\n if (field.type === 'number' && typeof value === 'number')\n return formatterOf(field, formatters)(value)\n if (field.type === 'date' && typeof value === 'string') return fmtDate(value)\n return String(value)\n}\n\nfunction RecordsTable({\n fields,\n rows,\n maxRows,\n l,\n formatters,\n testId,\n}: {\n fields: readonly DatasetField[]\n rows: readonly DatasetRow[]\n maxRows: number\n l: PanelViewLabels\n formatters?: UnitFormatters\n testId?: string\n}) {\n const shown = rows.slice(0, maxRows).map((row, i) => ({ row, i }))\n const columns: Column<{ row: DatasetRow; i: number }>[] = fields.map((field) => ({\n key: field.id,\n header: field.label,\n align: field.type === 'number' ? 'right' : 'left',\n render: ({ row }) => cellText(row[field.id], field, l, formatters),\n className: field.type === 'number' ? 'tabular-nums' : undefined,\n }))\n return (\n <div className=\"space-y-1\">\n <div className=\"max-h-80 overflow-auto\">\n <DataTable\n columns={columns}\n rows={shown}\n getRowId={({ i }) => String(i)}\n area={testId ?? 'dashboard-panel'}\n emptyTitle={l.empty}\n className=\"border-0\"\n />\n </div>\n {rows.length > maxRows && (\n <p className=\"text-xs text-muted-foreground\">{l.showingRows(maxRows, rows.length)}</p>\n )}\n </div>\n )\n}\n\nfunction Message({\n tone,\n text,\n detail,\n action,\n testId,\n}: {\n tone: 'empty' | 'error'\n text: string\n detail?: string\n action?: ReactNode\n testId?: string\n}) {\n const Icon = tone === 'error' ? AlertTriangle : ChartNoAxesColumn\n return (\n <div\n className=\"flex min-h-40 flex-col items-center justify-center gap-2 py-6 text-center\"\n role={tone === 'error' ? 'alert' : undefined}\n data-testid={testId}\n >\n <Icon\n className={cn('size-6', tone === 'error' ? 'text-destructive' : 'text-muted-foreground/50')}\n />\n <p className={cn('text-sm', tone === 'error' ? 'text-destructive' : 'text-muted-foreground')}>\n {text}\n </p>\n {detail && <p className=\"max-w-sm text-xs text-muted-foreground\">{detail}</p>}\n {action}\n </div>\n )\n}\n\nexport function PanelView({\n kind,\n title,\n description,\n state,\n body,\n errorDetail,\n emptyAction,\n actions,\n metricAccent,\n variant = 'card',\n maxRows = 50,\n formatters,\n labels,\n className,\n testId,\n}: PanelViewProps) {\n const l = { ...DEFAULT_PANEL_VIEW_LABELS, ...labels }\n\n // A metric is the KPI tile itself.\n if (kind === 'metric') {\n const metric = body?.kind === 'metric' ? body : undefined\n const hint =\n state === 'error' ? (\n <span className=\"text-destructive\">\n {l.error}\n {errorDetail && ` ${errorDetail}`}\n </span>\n ) : state === 'empty' ? (\n l.empty\n ) : (\n description\n )\n return (\n <div className={cn('relative h-full', className)} data-slot=\"dashboard-panel\">\n <MetricCard\n label={title}\n value={\n metric && metric.value !== null && state === 'ready' ? metric.format(metric.value) : '—'\n }\n hint={hint}\n isLoading={state === 'loading'}\n accent={metricAccent}\n // The edit buttons sit in the corner: the label starts below them.\n className={cn('h-full', actions && 'pt-11')}\n testId={testId}\n />\n {actions && <div className=\"absolute right-2 top-2 flex gap-1\">{actions}</div>}\n </div>\n )\n }\n\n let content: ReactNode\n if (state === 'loading') {\n content = (\n <div className=\"h-60 animate-pulse rounded-md bg-muted\" data-slot=\"panel-loading\" aria-busy />\n )\n } else if (state === 'error') {\n content = (\n <Message\n tone=\"error\"\n text={l.error}\n detail={errorDetail}\n testId={testId && `${testId}-error`}\n />\n )\n } else if (state === 'empty' || !body || body.kind === 'metric') {\n content = (\n <Message\n tone=\"empty\"\n text={l.empty}\n action={emptyAction}\n testId={testId && `${testId}-empty`}\n />\n )\n } else if (body.kind === 'chart') {\n content = (\n <ChartRenderer\n model={body.model}\n ariaLabel={title}\n labels={l}\n testId={testId && `${testId}-chart`}\n />\n )\n } else if (body.kind === 'groups') {\n content = <ChartTable model={body.model} caption={title} />\n } else {\n content = (\n <RecordsTable\n fields={body.fields}\n rows={body.rows}\n maxRows={maxRows}\n l={l}\n formatters={formatters}\n testId={testId}\n />\n )\n }\n\n const header = (\n <div className=\"flex items-start justify-between gap-3\">\n <div className=\"min-w-0\">\n <h3 className=\"truncate text-sm font-semibold text-foreground\">{title}</h3>\n {description && <p className=\"mt-0.5 text-xs text-muted-foreground\">{description}</p>}\n </div>\n {actions && <div className=\"flex shrink-0 gap-1\">{actions}</div>}\n </div>\n )\n if (variant === 'plain') {\n return (\n <section\n className={cn('flex min-w-0 flex-col gap-3', className)}\n data-slot=\"dashboard-panel\"\n data-testid={testId}\n aria-busy={state === 'loading' || undefined}\n >\n {header}\n <div className=\"min-w-0\">{content}</div>\n </section>\n )\n }\n return (\n <Card\n variant=\"elevated\"\n className={cn('flex h-full min-w-0 flex-col gap-3 rounded-xl p-5', className)}\n data-slot=\"dashboard-panel\"\n data-testid={testId}\n aria-busy={state === 'loading' || undefined}\n >\n {header}\n <div className=\"min-w-0 flex-1\">{content}</div>\n </Card>\n )\n}\n","/**\n * `DashboardPanel`: one panel of a dashboard, from its `PanelSpec`. It looks its source up in the\n * host's registry (`useDataSources`), reads the dataset the spec asks for (`usePanelDataset`:\n * grouped and measured by the source) and shows it through `PanelView`.\n */\nimport { useMemo, type ReactNode } from 'react'\nimport {\n formatGbp,\n useDataSources,\n usePanelDataset,\n type DataSource,\n type PanelSpec,\n} from '@arbidocs/react'\nimport { Button } from '@arbidocs/react/ui'\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { formatBytes } from '../storage/storage-labels'\nimport {\n chartModelOf,\n DEFAULT_UNIT_FORMATTERS,\n formatterOf,\n metricValueOf,\n type DrawnChartType,\n type UnitFormatters,\n} from '../../dashboards/chartModel'\nimport { PanelView, type PanelBody, type PanelViewLabels } from '../../dashboards/PanelView'\n\n/** The package's formatters: the one £ formatter for AI usage, and file sizes. */\nexport const PANEL_FORMATTERS: UnitFormatters = {\n ...DEFAULT_UNIT_FORMATTERS,\n gbp: (v) => formatGbp(v),\n bytes: (v) => formatBytes(v),\n}\n\nexport interface DashboardPanelLabels extends PanelViewLabels {\n /** A panel whose source the host does not offer. */\n unknownSource: (id: string) => string\n /** The empty state's link to the databases (where data is created or imported). */\n openDatabases: string\n}\n\nexport const DEFAULT_DASHBOARD_PANEL_LABELS: Partial<DashboardPanelLabels> = {\n unknownSource: (id) => `This panel reads “${id}”, which is not available here.`,\n openDatabases: 'Open databases',\n}\n\nexport interface DashboardPanelProps {\n panel: PanelSpec\n /** Buttons in the panel's corner (a dashboard being edited). */\n actions?: ReactNode\n /** Don't read data (an editor showing the panel's frame only). */\n enabled?: boolean\n /** `plain`: no card around it (a chart placed in a page). */\n variant?: 'card' | 'plain'\n formatters?: UnitFormatters\n labels?: Partial<DashboardPanelLabels>\n className?: string\n testId?: string\n}\n\nconst DRAWN = new Set(['bar', 'line', 'area', 'pie', 'donut'])\n\nfunction kindOf(panel: PanelSpec): 'metric' | 'chart' | 'table' {\n return panel.chart.type === 'metric' ? 'metric' : panel.chart.type === 'table' ? 'table' : 'chart'\n}\n\nfunction SourcePanel({\n source,\n panel,\n actions,\n enabled,\n variant,\n formatters,\n labels,\n className,\n testId,\n}: DashboardPanelProps & { source: DataSource; labels: Partial<DashboardPanelLabels> }) {\n const environment = useBlocksEnvironment()\n const { chart } = panel\n const { dataset, fields, isLoading, error } = usePanelDataset(\n source,\n panel.source.params,\n chart,\n { enabled }\n )\n const body = useMemo((): PanelBody | undefined => {\n if (!dataset) return undefined\n const other = labels.other\n if (chart.type === 'metric') {\n const valueField = dataset.fields.find((f) => f.id === 'value')\n // Nothing matched: a count or a sum of nothing is 0; an average of nothing has no value.\n const op = chart.aggregate ?? 'count'\n return {\n kind: 'metric',\n value: metricValueOf(dataset) ?? (op === 'count' || op === 'sum' ? 0 : null),\n format: formatterOf(valueField, formatters),\n }\n }\n if (DRAWN.has(chart.type)) {\n return {\n kind: 'chart',\n model: chartModelOf({ ...chart, type: chart.type as DrawnChartType }, dataset, {\n fields,\n formatters,\n otherLabel: other,\n }),\n }\n }\n if (chart.x) {\n return {\n kind: 'groups',\n model: chartModelOf({ ...chart, type: 'bar' }, dataset, {\n fields,\n formatters,\n otherLabel: other,\n }),\n }\n }\n const shown = chart.columns?.length\n ? chart.columns.flatMap((id) => dataset.fields.filter((f) => f.id === id))\n : dataset.fields\n return { kind: 'records', fields: shown, rows: dataset.rows }\n }, [dataset, chart, fields, formatters, labels.other])\n\n const state = error\n ? 'error'\n : !dataset\n ? isLoading\n ? 'loading'\n : 'empty'\n : chart.type !== 'metric' && dataset.rows.length === 0\n ? 'empty'\n : 'ready'\n\n const emptyAction =\n source.id === 'database' && environment.openDatabases ? (\n <Button variant=\"outline\" size=\"sm\" onClick={() => environment.openDatabases?.()}>\n {labels.openDatabases}\n </Button>\n ) : undefined\n\n return (\n <PanelView\n kind={kindOf(panel)}\n title={panel.title}\n description={panel.description}\n state={state}\n body={body}\n errorDetail={error instanceof Error ? error.message : undefined}\n emptyAction={emptyAction}\n actions={actions}\n variant={variant}\n formatters={formatters}\n labels={labels}\n className={className}\n testId={testId}\n />\n )\n}\n\nexport function DashboardPanel({\n formatters = PANEL_FORMATTERS,\n labels,\n ...props\n}: DashboardPanelProps) {\n const registry = useDataSources()\n const l = { ...DEFAULT_DASHBOARD_PANEL_LABELS, ...labels }\n const source = registry.get(props.panel.source.id)\n if (!source) {\n return (\n <PanelView\n kind={kindOf(props.panel)}\n title={props.panel.title}\n state=\"error\"\n errorDetail={l.unknownSource?.(props.panel.source.id)}\n actions={props.actions}\n labels={l}\n className={props.className}\n testId={props.testId}\n />\n )\n }\n // Keyed by source: a source's hooks differ from another's, so a new source mounts afresh.\n return (\n <SourcePanel key={source.id} source={source} formatters={formatters} labels={l} {...props} />\n )\n}\n","/**\n * `PanelEditor`: build a panel without code. Pick a source (and its parameters: a database, one of\n * its saved views), how to show it, then what to group by, split by and measure, from the source's\n * own fields. Every choice is a field of the `PanelSpec`, previewed live underneath.\n */\nimport { useId, useMemo, type ReactNode } from 'react'\nimport { Plus, X } from 'lucide-react'\nimport {\n useDataSources,\n type AggregateOp,\n type ChartSpec,\n type ChartType,\n type DataSource,\n type DataSourceParam,\n type DataSourceParams,\n type DatasetField,\n type DatasetFilter,\n type DatasetSort,\n type FilterOp,\n type PanelSpec,\n type TimeBucket,\n} from '@arbidocs/react'\nimport {\n Button,\n cn,\n Input,\n Label,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n Switch,\n} from '@arbidocs/react/ui'\nimport { clampPanelWidth } from '../../dashboards/DashboardGrid'\nimport { DashboardPanel } from './DashboardPanel'\n\nexport interface PanelEditorLabels {\n title: string\n description: string\n source: string\n showAs: string\n types: Record<ChartType, string>\n groupBy: string\n groupByNone: string\n /** A table without \"group by\" lists the records. */\n groupByRecords: string\n bucket: string\n buckets: Record<TimeBucket, string>\n splitBy: string\n splitByNone: string\n measure: string\n aggregates: Record<AggregateOp, string>\n ofField: string\n stacked: string\n sort: string\n sorts: Record<DatasetSort, string>\n limit: string\n /** A table of records: the fields shown. */\n columns: string\n orderBy: string\n orderNone: string\n directions: { asc: string; desc: string }\n width: string\n widths: Record<'3' | '4' | '6' | '8' | '12', string>\n filters: string\n addFilter: string\n removeFilter: string\n filterOps: Record<FilterOp, string>\n filterField: string\n filterOp: string\n filterValue: string\n noFields: string\n preview: string\n}\n\nexport const DEFAULT_PANEL_EDITOR_LABELS: PanelEditorLabels = {\n title: 'Title',\n description: 'Description',\n source: 'Data',\n showAs: 'Show as',\n types: {\n metric: 'Number',\n bar: 'Bar chart',\n line: 'Line chart',\n area: 'Area chart',\n pie: 'Pie chart',\n donut: 'Donut chart',\n table: 'Table',\n },\n groupBy: 'Group by',\n groupByNone: 'Choose a field',\n groupByRecords: 'Nothing: list the records',\n bucket: 'Per',\n buckets: { day: 'Day', week: 'Week', month: 'Month', quarter: 'Quarter', year: 'Year' },\n splitBy: 'Split by',\n splitByNone: 'Nothing',\n measure: 'Measure',\n aggregates: { count: 'Count', sum: 'Sum', avg: 'Average', min: 'Minimum', max: 'Maximum' },\n ofField: 'Of',\n stacked: 'Stack the series',\n sort: 'Order',\n sorts: { label: 'By name or date', 'value-desc': 'Largest first', 'value-asc': 'Smallest first' },\n limit: 'At most',\n columns: 'Columns',\n orderBy: 'Order by',\n orderNone: 'As read',\n directions: { asc: 'Ascending', desc: 'Descending' },\n width: 'Width',\n widths: { '3': 'Quarter', '4': 'Third', '6': 'Half', '8': 'Two thirds', '12': 'Full width' },\n filters: 'Only where',\n addFilter: 'Add a condition',\n removeFilter: 'Remove the condition',\n filterOps: {\n eq: 'is',\n neq: 'is not',\n contains: 'contains',\n gt: 'is above',\n gte: 'is at least',\n lt: 'is below',\n lte: 'is at most',\n empty: 'is empty',\n not_empty: 'is not empty',\n },\n filterField: 'Field',\n filterOp: 'Condition',\n filterValue: 'Value',\n noFields: 'Choose the data first.',\n preview: 'Preview',\n}\n\nexport interface PanelEditorProps {\n value: PanelSpec\n onChange: (panel: PanelSpec) => void\n /** Show the panel live under the form. Default true. */\n preview?: boolean\n /** Offer the width (a dashboard's grid). Default true. */\n showWidth?: boolean\n labels?: Partial<PanelEditorLabels>\n testId?: string\n}\n\n/** A select of the editor; `''` is \"nothing chosen\" (Radix items cannot take an empty value). */\nconst NONE = '__none'\n\nfunction Field({\n label,\n htmlFor,\n children,\n}: {\n label: string\n htmlFor?: string\n children: ReactNode\n}) {\n return (\n <div className=\"flex min-w-0 flex-col gap-1.5\">\n <Label htmlFor={htmlFor} className=\"text-xs font-medium text-muted-foreground\">\n {label}\n </Label>\n {children}\n </div>\n )\n}\n\nfunction EditorSelect({\n label,\n value,\n onChange,\n options,\n placeholder,\n none,\n testId,\n}: {\n label: string\n value: string | undefined\n onChange: (value: string | undefined) => void\n options: readonly { value: string; label: string }[]\n placeholder?: string\n /** Offer \"nothing\" with these words. */\n none?: string\n testId?: string\n}) {\n const id = useId()\n return (\n <Field label={label} htmlFor={id}>\n <div data-testid={testId}>\n <Select\n value={value ?? (none ? NONE : '')}\n onValueChange={(v) => onChange(v === NONE ? undefined : v)}\n >\n <SelectTrigger id={id} className=\"bg-card text-sm\" aria-label={label}>\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent>\n {none && <SelectItem value={NONE}>{none}</SelectItem>}\n {options.map((o) => (\n <SelectItem key={o.value} value={o.value}>\n {o.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </Field>\n )\n}\n\nfunction ParamField({\n param,\n params,\n onChange,\n testId,\n}: {\n param: DataSourceParam\n params: DataSourceParams\n onChange: (value: string | undefined) => void\n testId?: string\n}) {\n const { options } = param.useOptions(params)\n const value = params[param.id]\n return (\n <EditorSelect\n label={param.label}\n value={typeof value === 'string' && value ? value : undefined}\n onChange={onChange}\n options={options}\n placeholder={param.placeholder}\n none={param.required ? undefined : (param.placeholder ?? '—')}\n testId={testId}\n />\n )\n}\n\nconst WIDTHS = ['3', '4', '6', '8', '12'] as const\nconst NEEDS_VALUE = (op: FilterOp) => op !== 'empty' && op !== 'not_empty'\n\nfunction ChartFields({\n source,\n value,\n onChange,\n showWidth,\n l,\n testId,\n}: {\n source: DataSource\n value: PanelSpec\n onChange: (panel: PanelSpec) => void\n showWidth: boolean\n l: PanelEditorLabels\n testId?: string\n}) {\n const params = value.source.params ?? {}\n const { fields } = source.useFields(params)\n const chart = value.chart\n const setChart = (patch: Partial<ChartSpec>) =>\n onChange({ ...value, chart: { ...chart, ...patch } })\n const byId = useMemo(() => new Map(fields.map((f) => [f.id, f])), [fields])\n const groupable = fields.filter((f) => f.type !== 'number')\n const numbers = fields.filter((f) => f.type === 'number')\n const opts = (list: readonly DatasetField[]) => list.map((f) => ({ value: f.id, label: f.label }))\n const x = chart.x ? byId.get(chart.x) : undefined\n const aggregate = chart.aggregate ?? 'count'\n const isMetric = chart.type === 'metric'\n const isRecords = chart.type === 'table' && !chart.x\n const canSplit = chart.type === 'bar' || chart.type === 'line' || chart.type === 'area'\n const filters = chart.filters ?? []\n const setFilter = (i: number, patch: Partial<DatasetFilter>) =>\n setChart({ filters: filters.map((f, j) => (j === i ? { ...f, ...patch } : f)) })\n\n return (\n <>\n <EditorSelect\n label={l.showAs}\n value={chart.type}\n onChange={(type) => setChart({ type: (type ?? 'bar') as ChartType })}\n options={(Object.keys(l.types) as ChartType[]).map((t) => ({\n value: t,\n label: l.types[t],\n }))}\n testId={testId && `${testId}-type`}\n />\n {!isMetric && (\n <EditorSelect\n label={l.groupBy}\n value={chart.x}\n onChange={(x) => setChart({ x })}\n options={opts(groupable)}\n placeholder={l.groupByNone}\n none={chart.type === 'table' ? l.groupByRecords : undefined}\n testId={testId && `${testId}-x`}\n />\n )}\n {!isMetric && x?.type === 'date' && (\n <EditorSelect\n label={l.bucket}\n value={chart.bucket ?? 'month'}\n onChange={(bucket) => setChart({ bucket: (bucket ?? 'month') as TimeBucket })}\n options={(Object.keys(l.buckets) as TimeBucket[]).map((b) => ({\n value: b,\n label: l.buckets[b],\n }))}\n testId={testId && `${testId}-bucket`}\n />\n )}\n {canSplit && (\n <EditorSelect\n label={l.splitBy}\n value={chart.series}\n onChange={(series) => setChart({ series })}\n options={opts(groupable.filter((f) => f.id !== chart.x))}\n none={l.splitByNone}\n testId={testId && `${testId}-series`}\n />\n )}\n {!isRecords && (\n <div className=\"grid grid-cols-2 gap-3\">\n <EditorSelect\n label={l.measure}\n value={aggregate}\n onChange={(op) => {\n const next = (op ?? 'count') as AggregateOp\n setChart({\n aggregate: next,\n y: next === 'count' ? undefined : (chart.y ?? numbers[0]?.id),\n })\n }}\n options={(Object.keys(l.aggregates) as AggregateOp[])\n .filter((op) => op === 'count' || numbers.length > 0)\n .map((op) => ({ value: op, label: l.aggregates[op] }))}\n testId={testId && `${testId}-aggregate`}\n />\n {aggregate !== 'count' && (\n <EditorSelect\n label={l.ofField}\n value={chart.y}\n onChange={(y) => setChart({ y })}\n options={opts(numbers)}\n testId={testId && `${testId}-y`}\n />\n )}\n </div>\n )}\n {canSplit && chart.series && chart.type !== 'line' && (\n <label className=\"flex items-center gap-2 text-sm\">\n <Switch\n checked={Boolean(chart.stacked)}\n onCheckedChange={(stacked) => setChart({ stacked })}\n data-testid={testId && `${testId}-stacked`}\n />\n {l.stacked}\n </label>\n )}\n {!isMetric && !isRecords && (\n <div className=\"grid grid-cols-2 gap-3\">\n <EditorSelect\n label={l.sort}\n value={chart.sort ?? (x?.type === 'date' ? 'label' : 'value-desc')}\n onChange={(sort) => setChart({ sort: sort as DatasetSort })}\n options={(Object.keys(l.sorts) as DatasetSort[]).map((s) => ({\n value: s,\n label: l.sorts[s],\n }))}\n testId={testId && `${testId}-sort`}\n />\n <Field label={l.limit}>\n <Input\n type=\"number\"\n min={1}\n max={500}\n value={chart.limit ?? ''}\n placeholder=\"50\"\n onChange={(e) =>\n setChart({\n limit: e.target.value ? Math.max(1, Number(e.target.value)) : undefined,\n })\n }\n data-testid={testId && `${testId}-limit`}\n />\n </Field>\n </div>\n )}\n {isRecords && (\n <fieldset className=\"flex flex-col gap-1.5\" data-testid={testId && `${testId}-columns`}>\n <legend className=\"mb-1.5 text-xs font-medium text-muted-foreground\">{l.columns}</legend>\n {fields.map((field) => {\n const shown = chart.columns ?? fields.map((f) => f.id)\n const checked = shown.includes(field.id)\n return (\n <label key={field.id} className=\"flex items-center gap-2 text-sm\">\n <input\n type=\"checkbox\"\n checked={checked}\n onChange={() =>\n setChart({\n columns: checked\n ? shown.filter((id) => id !== field.id)\n : fields\n .map((f) => f.id)\n .filter((id) => id === field.id || shown.includes(id)),\n })\n }\n />\n {field.label}\n </label>\n )\n })}\n </fieldset>\n )}\n {isRecords && (\n <div className=\"grid grid-cols-2 gap-3\">\n <EditorSelect\n label={l.orderBy}\n value={chart.orderBy?.field}\n onChange={(field) =>\n setChart({\n orderBy: field\n ? { field, direction: chart.orderBy?.direction ?? 'asc' }\n : undefined,\n })\n }\n options={opts(fields)}\n none={l.orderNone}\n testId={testId && `${testId}-order`}\n />\n {chart.orderBy && (\n <EditorSelect\n label={l.orderBy}\n value={chart.orderBy.direction ?? 'asc'}\n onChange={(direction) =>\n setChart({\n orderBy: {\n field: chart.orderBy?.field ?? '',\n direction: direction === 'desc' ? 'desc' : 'asc',\n },\n })\n }\n options={[\n { value: 'asc', label: l.directions.asc },\n { value: 'desc', label: l.directions.desc },\n ]}\n testId={testId && `${testId}-direction`}\n />\n )}\n </div>\n )}\n <div className=\"flex flex-col gap-2\" data-testid={testId && `${testId}-filters`}>\n <span className=\"text-xs font-medium text-muted-foreground\">{l.filters}</span>\n {filters.map((filter, i) => (\n <div key={i} className=\"grid grid-cols-[1fr_1fr_1fr_auto] items-end gap-2\">\n <EditorSelect\n label={l.filterField}\n value={filter.field}\n onChange={(field) => setFilter(i, { field: field ?? '' })}\n options={opts(fields)}\n />\n <EditorSelect\n label={l.filterOp}\n value={filter.op}\n onChange={(op) => setFilter(i, { op: (op ?? 'eq') as FilterOp })}\n options={(Object.keys(l.filterOps) as FilterOp[]).map((op) => ({\n value: op,\n label: l.filterOps[op],\n }))}\n />\n {NEEDS_VALUE(filter.op) ? (\n <Field label={l.filterValue}>\n <Input\n value={\n filter.value === null || filter.value === undefined ? '' : String(filter.value)\n }\n type={byId.get(filter.field)?.type === 'number' ? 'number' : 'text'}\n onChange={(e) =>\n setFilter(i, {\n value:\n byId.get(filter.field)?.type === 'number' && e.target.value !== ''\n ? Number(e.target.value)\n : e.target.value,\n })\n }\n />\n </Field>\n ) : (\n <span />\n )}\n <Button\n variant=\"ghost\"\n size=\"icon\"\n aria-label={l.removeFilter}\n onClick={() => setChart({ filters: filters.filter((_, j) => j !== i) })}\n >\n <X className=\"size-4\" />\n </Button>\n </div>\n ))}\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"self-start\"\n disabled={!fields.length}\n onClick={() =>\n setChart({ filters: [...filters, { field: fields[0]?.id ?? '', op: 'eq', value: '' }] })\n }\n >\n <Plus className=\"size-3.5\" /> {l.addFilter}\n </Button>\n </div>\n {showWidth && (\n <EditorSelect\n label={l.width}\n value={String(clampPanelWidth(value.width))}\n onChange={(w) => onChange({ ...value, width: Number(w ?? 6) })}\n options={WIDTHS.map((w) => ({ value: w, label: l.widths[w] }))}\n testId={testId && `${testId}-width`}\n />\n )}\n {!fields.length && <p className=\"text-sm text-muted-foreground\">{l.noFields}</p>}\n </>\n )\n}\n\nexport function PanelEditor({\n value,\n onChange,\n preview = true,\n showWidth = true,\n labels,\n testId,\n}: PanelEditorProps) {\n const l = { ...DEFAULT_PANEL_EDITOR_LABELS, ...labels }\n const registry = useDataSources()\n const source = registry.get(value.source.id)\n const params = value.source.params ?? {}\n const titleId = useId()\n const descriptionId = useId()\n\n return (\n <div\n className={cn(\n 'grid min-w-0 gap-6',\n preview && 'lg:grid-cols-[minmax(0,22rem)_minmax(0,1fr)]'\n )}\n data-testid={testId}\n >\n <div className=\"flex min-w-0 flex-col gap-4\">\n <Field label={l.title} htmlFor={titleId}>\n <Input\n id={titleId}\n value={value.title}\n onChange={(e) => onChange({ ...value, title: e.target.value })}\n data-testid={testId && `${testId}-title`}\n />\n </Field>\n <Field label={l.description} htmlFor={descriptionId}>\n <Input\n id={descriptionId}\n value={value.description ?? ''}\n onChange={(e) => onChange({ ...value, description: e.target.value || undefined })}\n />\n </Field>\n <EditorSelect\n label={l.source}\n value={value.source.id}\n onChange={(id) =>\n onChange({\n ...value,\n source: { id: id ?? value.source.id },\n // Another source has other fields: what was grouped and measured no longer applies.\n chart: { type: value.chart.type },\n })\n }\n options={registry.list.map((s) => ({ value: s.id, label: s.label }))}\n testId={testId && `${testId}-source`}\n />\n {source?.description && (\n <p className=\"-mt-2 text-xs text-muted-foreground\">{source.description}</p>\n )}\n {source?.params?.map((param) => (\n <ParamField\n key={`${source.id}-${param.id}`}\n param={param}\n params={params}\n testId={testId && `${testId}-param-${param.id}`}\n onChange={(v) =>\n onChange({\n ...value,\n source: { ...value.source, params: { ...params, [param.id]: v ?? null } },\n // A different database has other columns.\n ...(param.id === 'databaseId' || param.id === 'view'\n ? { chart: { type: value.chart.type } }\n : {}),\n })\n }\n />\n ))}\n {source && (\n <ChartFields\n key={source.id}\n source={source}\n value={value}\n onChange={onChange}\n showWidth={showWidth}\n l={l}\n testId={testId}\n />\n )}\n </div>\n {preview && (\n <div className=\"flex min-w-0 flex-col gap-2 self-start lg:sticky lg:top-0\">\n <span className=\"text-xs font-medium text-muted-foreground\">{l.preview}</span>\n <DashboardPanel panel={value} testId={testId && `${testId}-preview`} />\n </div>\n )}\n </div>\n )\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { NativeDocxComparison } from './chunk-2CBB34K3.js';
|
|
3
|
-
import { useConnectedNativeDocxAdapter } from './chunk-
|
|
3
|
+
import { useConnectedNativeDocxAdapter } from './chunk-T5LORFHL.js';
|
|
4
4
|
import { useDocuments, useDocumentsLoading } from '@arbidocs/react';
|
|
5
5
|
import { jsx } from 'react/jsx-runtime';
|
|
6
6
|
|
|
@@ -25,5 +25,5 @@ function ConnectedNativeDocxComparison({
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
export { ConnectedNativeDocxComparison };
|
|
28
|
-
//# sourceMappingURL=chunk-
|
|
29
|
-
//# sourceMappingURL=chunk-
|
|
28
|
+
//# sourceMappingURL=chunk-5XIMUQ63.js.map
|
|
29
|
+
//# sourceMappingURL=chunk-5XIMUQ63.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/connection/docx/ConnectedNativeDocxComparison.tsx"],"names":[],"mappings":";;;;;AAYO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAEG;AACD,EAAA,MAAM,OAAA,GAAU,8BAA8B,WAAW,CAAA;AACzD,EAAA,MAAM,EAAE,IAAA,EAAM,SAAA,EAAW,SAAA,KAAc,YAAA,EAAa;AAEpD,EAAA,MAAM,YAAY,mBAAA,EAAoB;AAEtC,EAAA,IAAI,SAAA,IAAa,SAAA;AACf,IAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAoB,IAAA,EAAK,UAAS,QAAA,EAAA,gCAAA,EAEjD,CAAA;AAEJ,EAAA,uBACE,GAAA;AAAA,IAAC,oBAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,OAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAY,OAAA,CAAQ;AAAA;AAAA,GACtB;AAEJ","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/connection/docx/ConnectedNativeDocxComparison.tsx"],"names":[],"mappings":";;;;;AAYO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAEG;AACD,EAAA,MAAM,OAAA,GAAU,8BAA8B,WAAW,CAAA;AACzD,EAAA,MAAM,EAAE,IAAA,EAAM,SAAA,EAAW,SAAA,KAAc,YAAA,EAAa;AAEpD,EAAA,MAAM,YAAY,mBAAA,EAAoB;AAEtC,EAAA,IAAI,SAAA,IAAa,SAAA;AACf,IAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAoB,IAAA,EAAK,UAAS,QAAA,EAAA,gCAAA,EAEjD,CAAA;AAEJ,EAAA,uBACE,GAAA;AAAA,IAAC,oBAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,OAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAY,OAAA,CAAQ;AAAA;AAAA,GACtB;AAEJ","file":"chunk-5XIMUQ63.js","sourcesContent":["import { useDocuments, useDocumentsLoading } from '@arbidocs/react'\nimport {\n NativeDocxComparison,\n type NativeDocxComparisonProps,\n} from '../../docx/NativeDocxComparison'\nimport { useConnectedNativeDocxAdapter } from './ConnectedNativeDocxEditor'\n\n/**\n * The Word redline of two documents or versions, on the signed-in session. The unedited redline\n * saved earlier from the same versions is opened again (found in the workspace's documents, once\n * all their pages are read), so opening a comparison saves at most one.\n */\nexport function ConnectedNativeDocxComparison({\n fontBaseUrl,\n ...props\n}: Omit<NativeDocxComparisonProps, 'adapter' | 'onCompared' | 'documents'> & {\n fontBaseUrl?: string\n}) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n const { data: documents, isLoading } = useDocuments()\n // Every page: the first holds only the oldest documents, and a redline is often newer.\n const morePages = useDocumentsLoading()\n // Until the documents are read, a saved redline can't be found: wait rather than save another.\n if (isLoading || morePages)\n return (\n <div className=\"native-docx-error\" role=\"status\">\n Comparing Word documents…\n </div>\n )\n return (\n <NativeDocxComparison\n {...props}\n adapter={adapter}\n documents={documents}\n onCompared={adapter.onVersionSaved}\n />\n )\n}\n"]}
|
|
@@ -4,25 +4,25 @@
|
|
|
4
4
|
var chunk4CIVQWAX_cjs = require('./chunk-4CIVQWAX.cjs');
|
|
5
5
|
var chunkC42WBPH4_cjs = require('./chunk-C42WBPH4.cjs');
|
|
6
6
|
var chunk6NSKIS35_cjs = require('./chunk-6NSKIS35.cjs');
|
|
7
|
-
var
|
|
7
|
+
var chunkUOGXKHTJ_cjs = require('./chunk-UOGXKHTJ.cjs');
|
|
8
8
|
var chunkIWLNDDPN_cjs = require('./chunk-IWLNDDPN.cjs');
|
|
9
9
|
var chunkOKUXM2N4_cjs = require('./chunk-OKUXM2N4.cjs');
|
|
10
|
+
var chunkEKSHUNJI_cjs = require('./chunk-EKSHUNJI.cjs');
|
|
11
|
+
var chunkNNBL3HPG_cjs = require('./chunk-NNBL3HPG.cjs');
|
|
10
12
|
var chunkYYPZOEED_cjs = require('./chunk-YYPZOEED.cjs');
|
|
11
13
|
var chunkCMXJUCTH_cjs = require('./chunk-CMXJUCTH.cjs');
|
|
12
14
|
var chunkJH6JTI76_cjs = require('./chunk-JH6JTI76.cjs');
|
|
13
15
|
var chunkDTMBAFIL_cjs = require('./chunk-DTMBAFIL.cjs');
|
|
14
16
|
var chunkMZZ3SBQL_cjs = require('./chunk-MZZ3SBQL.cjs');
|
|
15
|
-
var chunkMNIQDXM6_cjs = require('./chunk-MNIQDXM6.cjs');
|
|
16
|
-
var chunkBZFCD6A6_cjs = require('./chunk-BZFCD6A6.cjs');
|
|
17
17
|
var chunkVLCY46K6_cjs = require('./chunk-VLCY46K6.cjs');
|
|
18
|
-
var chunkCYKHYFI3_cjs = require('./chunk-CYKHYFI3.cjs');
|
|
19
|
-
var chunkEKSHUNJI_cjs = require('./chunk-EKSHUNJI.cjs');
|
|
20
|
-
var chunkNNBL3HPG_cjs = require('./chunk-NNBL3HPG.cjs');
|
|
21
18
|
var chunkSJSGSHIT_cjs = require('./chunk-SJSGSHIT.cjs');
|
|
19
|
+
var chunkCYKHYFI3_cjs = require('./chunk-CYKHYFI3.cjs');
|
|
22
20
|
var chunkIPSHAMO2_cjs = require('./chunk-IPSHAMO2.cjs');
|
|
23
21
|
var chunkFX3K6LNZ_cjs = require('./chunk-FX3K6LNZ.cjs');
|
|
24
|
-
var chunkWGWP4ATS_cjs = require('./chunk-WGWP4ATS.cjs');
|
|
25
22
|
var chunkLJJJ6CYH_cjs = require('./chunk-LJJJ6CYH.cjs');
|
|
23
|
+
var chunkMNIQDXM6_cjs = require('./chunk-MNIQDXM6.cjs');
|
|
24
|
+
var chunkBZFCD6A6_cjs = require('./chunk-BZFCD6A6.cjs');
|
|
25
|
+
var chunkWGWP4ATS_cjs = require('./chunk-WGWP4ATS.cjs');
|
|
26
26
|
var React = require('react');
|
|
27
27
|
var lucideReact = require('lucide-react');
|
|
28
28
|
var react = require('@arbidocs/react');
|
|
@@ -996,7 +996,7 @@ var ParsedPassage = React.memo(function ParsedPassage2({
|
|
|
996
996
|
items: passageItems
|
|
997
997
|
}
|
|
998
998
|
) : void 0,
|
|
999
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
999
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkUOGXKHTJ_cjs.ConnectedMarkdown, { children: chunk.content })
|
|
1000
1000
|
}
|
|
1001
1001
|
);
|
|
1002
1002
|
});
|
|
@@ -1878,17 +1878,17 @@ function ViewerPdfPane({
|
|
|
1878
1878
|
return /* @__PURE__ */ jsxRuntime.jsx(SessionPdfViewer, { ...viewerProps, file: pdfBlob });
|
|
1879
1879
|
}
|
|
1880
1880
|
var NativeDocxEditor = React.lazy(
|
|
1881
|
-
() => import('./ConnectedNativeDocxEditor-
|
|
1881
|
+
() => import('./ConnectedNativeDocxEditor-CUWDPHXN.cjs').then((m) => ({
|
|
1882
1882
|
default: m.ConnectedNativeDocxEditor
|
|
1883
1883
|
}))
|
|
1884
1884
|
);
|
|
1885
1885
|
var StreamedWordArtifact = React.lazy(
|
|
1886
|
-
() => import('./ConnectedStreamedWordArtifact-
|
|
1886
|
+
() => import('./ConnectedStreamedWordArtifact-HNCRKZTV.cjs').then((m) => ({
|
|
1887
1887
|
default: m.ConnectedStreamedWordArtifact
|
|
1888
1888
|
}))
|
|
1889
1889
|
);
|
|
1890
1890
|
var NativeDocxComparison = React.lazy(
|
|
1891
|
-
() => import('./ConnectedNativeDocxComparison-
|
|
1891
|
+
() => import('./ConnectedNativeDocxComparison-7HOY3AVI.cjs').then((m) => ({
|
|
1892
1892
|
default: m.ConnectedNativeDocxComparison
|
|
1893
1893
|
}))
|
|
1894
1894
|
);
|
|
@@ -2573,5 +2573,5 @@ function DocumentViewerContent({
|
|
|
2573
2573
|
}
|
|
2574
2574
|
|
|
2575
2575
|
exports.ConnectedDocumentViewer = ConnectedDocumentViewer;
|
|
2576
|
-
//# sourceMappingURL=chunk-
|
|
2577
|
-
//# sourceMappingURL=chunk-
|
|
2576
|
+
//# sourceMappingURL=chunk-6DAJXQZZ.cjs.map
|
|
2577
|
+
//# sourceMappingURL=chunk-6DAJXQZZ.cjs.map
|