@powerhousedao/connect 1.0.0 → 1.0.3-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.env +11 -6
- package/dist/assets/app-BYkaiTES.js +79314 -0
- package/dist/assets/app-D9QJBr8i.css +5652 -0
- package/dist/assets/app-loader-Bkg_WUos.js +31437 -0
- package/dist/assets/app-loader-Bnp0H-wa.css +5497 -0
- package/dist/assets/ccip-Dn5Ob09y.js +170 -0
- package/dist/assets/connect-loader-CvOC68Ih.mp4 +0 -0
- package/dist/assets/content-DcF7YyCb.js +3937 -0
- package/dist/assets/home-bg-BEhF9NuW.png +0 -0
- package/dist/assets/index-B62Phyap.js +12 -0
- package/dist/assets/index-CBIcU4C0.js +46414 -0
- package/dist/assets/index-zVQzC6z2.js +2560 -0
- package/dist/assets/main.CgKmK6gL.js +105 -0
- package/dist/assets/powerhouse-rounded-CeKGGUG4.png +0 -0
- package/dist/assets/renown-short-hover-BiSLBV7L.png +0 -0
- package/dist/assets/rwa-report-Bb0W5-ac.png +0 -0
- package/dist/assets/style-D4JhTt_m.css +1663 -0
- package/dist/external-packages.js +5 -0
- package/dist/hmr.js +4 -0
- package/dist/icon.ico +0 -0
- package/dist/index.html +48 -10
- package/dist/modules/@powerhousedao/reactor-browser/chunk-2ESYSVXG.js +48 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-2X2M6BYG.js +2542 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-45DCPCA7.js +67 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-7OQWVUC5.js +43 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-A4GIWVYS.js +14031 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-DKDARAJS.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-F3RCGUF6.js +53 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-FQF4YAVC.js +11917 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-FW7N6EJH.js +786 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-G6LMXRY5.js +50 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-GDP7BUIH.js +45 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-IQTSFTNF.js +48 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-J5TYPY7U.js +36 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-LH2T6NLN.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-LRNZZ3SR.js +14 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-M2UUQ5LH.js +250 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-OVGOA2P5.js +11 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-P6NJ6IAQ.js +12 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-PQ4UODLR.js +113 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-QXHTR6KF.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-RGIB4DD4.js +162 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-U36SV333.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-UP4DC4D2.js +178 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-XBTEGV5M.js +17 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-XXFOSD4A.js +2513 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-Y7NTRTMT.js +25 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-YDERCA5J.js +82 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-YG67WAIS.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-YWKVPJNL.js +52 -0
- package/dist/modules/@powerhousedao/reactor-browser/chunk-ZL5IPB6D.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/context/index.js +16 -0
- package/dist/modules/@powerhousedao/reactor-browser/context/read-mode.js +15 -0
- package/dist/modules/@powerhousedao/reactor-browser/crypto/browser.js +7 -0
- package/dist/modules/@powerhousedao/reactor-browser/crypto/index.js +7 -0
- package/dist/modules/@powerhousedao/reactor-browser/document-model.js +10 -0
- package/dist/modules/@powerhousedao/reactor-browser/hooks/document-state.js +96 -0
- package/dist/modules/@powerhousedao/reactor-browser/hooks/index.js +98 -0
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useAddDebouncedOperations.js +11 -0
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useConnectCrypto.js +12 -0
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocument.js +7 -0
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentDispatch.js +7 -0
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentDrives.js +13 -0
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentEditor.js +20 -0
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveActions.js +9 -0
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveActionsWithUiNodes.js +14 -0
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveContext.js +9 -0
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useUiNodesContext.js +46 -0
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useUserPermissions.js +7 -0
- package/dist/modules/@powerhousedao/reactor-browser/index.js +125 -0
- package/dist/modules/@powerhousedao/reactor-browser/reactor.js +11 -0
- package/dist/modules/@powerhousedao/reactor-browser/renown/constants.js +53 -0
- package/dist/modules/@powerhousedao/reactor-browser/renown/types.js +1 -0
- package/dist/modules/@powerhousedao/reactor-browser/storage/index.js +1 -0
- package/dist/modules/@powerhousedao/reactor-browser/storage/types.js +1 -0
- package/dist/modules/@powerhousedao/reactor-browser/uiNodes/constants.js +37 -0
- package/dist/modules/@powerhousedao/reactor-browser/uiNodes/types.js +1 -0
- package/dist/modules/@powerhousedao/reactor-browser/utils/export-document.js +8 -0
- package/dist/modules/@powerhousedao/reactor-browser/utils/index.js +9 -0
- package/dist/modules/@powerhousedao/reactor-browser/utils/signature.js +10 -0
- package/dist/service-worker.js +46 -2
- package/dist/swEnv.js +9 -8
- package/dist/vite-envs.sh +56 -35
- package/nginx.conf +93 -0
- package/nginx.sh +10 -0
- package/package.json +35 -52
- package/dist/assets/ArrowFilledRight-BXP1j8Cl.js +0 -2
- package/dist/assets/ArrowFilledRight-BXP1j8Cl.js.map +0 -1
- package/dist/assets/ArrowFilledRight-blx8xu7X-D3d8PUWh.js +0 -2
- package/dist/assets/ArrowFilledRight-blx8xu7X-D3d8PUWh.js.map +0 -1
- package/dist/assets/ArrowLeft-7pYNK4eX-8ZR_YHAJ.js +0 -2
- package/dist/assets/ArrowLeft-7pYNK4eX-8ZR_YHAJ.js.map +0 -1
- package/dist/assets/ArrowLeft-8ZR_YHAJ.js +0 -2
- package/dist/assets/ArrowLeft-8ZR_YHAJ.js.map +0 -1
- package/dist/assets/ArrowUp-Bbr_dwo_-C5ppCQo4.js +0 -2
- package/dist/assets/ArrowUp-Bbr_dwo_-C5ppCQo4.js.map +0 -1
- package/dist/assets/ArrowUp-E2jS6Wzt.js +0 -2
- package/dist/assets/ArrowUp-E2jS6Wzt.js.map +0 -1
- package/dist/assets/BarChart-B0G05Nfd-CHDJ7OaJ.js +0 -2
- package/dist/assets/BarChart-B0G05Nfd-CHDJ7OaJ.js.map +0 -1
- package/dist/assets/BarChart-C-E6t7dt.js +0 -2
- package/dist/assets/BarChart-C-E6t7dt.js.map +0 -1
- package/dist/assets/BaseArrowLeft-DBzhFHMt-Dkbf2sWs.js +0 -2
- package/dist/assets/BaseArrowLeft-DBzhFHMt-Dkbf2sWs.js.map +0 -1
- package/dist/assets/BaseArrowLeft-DtHrkTW4.js +0 -2
- package/dist/assets/BaseArrowLeft-DtHrkTW4.js.map +0 -1
- package/dist/assets/BaseArrowRight-BIwzFHnh.js +0 -2
- package/dist/assets/BaseArrowRight-BIwzFHnh.js.map +0 -1
- package/dist/assets/BaseArrowRight-DYQTBWAs-CkkPllYm.js +0 -2
- package/dist/assets/BaseArrowRight-DYQTBWAs-CkkPllYm.js.map +0 -1
- package/dist/assets/Braces-3LcexUsR.js +0 -2
- package/dist/assets/Braces-3LcexUsR.js.map +0 -1
- package/dist/assets/Braces-N-sH2Zyc-3LcexUsR.js +0 -2
- package/dist/assets/Braces-N-sH2Zyc-3LcexUsR.js.map +0 -1
- package/dist/assets/Branch-CWdBw1_P-CmGdOXsI.js +0 -2
- package/dist/assets/Branch-CWdBw1_P-CmGdOXsI.js.map +0 -1
- package/dist/assets/Branch-D0CssEh3.js +0 -2
- package/dist/assets/Branch-D0CssEh3.js.map +0 -1
- package/dist/assets/BrickGlobe-67zaG6_H-DP0By6z_.js +0 -2
- package/dist/assets/BrickGlobe-67zaG6_H-DP0By6z_.js.map +0 -1
- package/dist/assets/BrickGlobe-CdHw7ZVP.js +0 -2
- package/dist/assets/BrickGlobe-CdHw7ZVP.js.map +0 -1
- package/dist/assets/Briefcase-CV2bgnSj.js +0 -2
- package/dist/assets/Briefcase-CV2bgnSj.js.map +0 -1
- package/dist/assets/Briefcase-CedW3KRR-DO5_k15F.js +0 -2
- package/dist/assets/Briefcase-CedW3KRR-DO5_k15F.js.map +0 -1
- package/dist/assets/Calendar-C-6HV96D-YetudWvP.js +0 -2
- package/dist/assets/Calendar-C-6HV96D-YetudWvP.js.map +0 -1
- package/dist/assets/Calendar-DuXN-sPt.js +0 -2
- package/dist/assets/Calendar-DuXN-sPt.js.map +0 -1
- package/dist/assets/CalendarTime-Bhjzlgn_-BVlYgNLL.js +0 -2
- package/dist/assets/CalendarTime-Bhjzlgn_-BVlYgNLL.js.map +0 -1
- package/dist/assets/CalendarTime-BowYBiVM.js +0 -2
- package/dist/assets/CalendarTime-BowYBiVM.js.map +0 -1
- package/dist/assets/Caret-Ep0j0fz2-By3ojfim.js +0 -2
- package/dist/assets/Caret-Ep0j0fz2-By3ojfim.js.map +0 -1
- package/dist/assets/Caret-r16V7Hcs.js +0 -2
- package/dist/assets/Caret-r16V7Hcs.js.map +0 -1
- package/dist/assets/CaretDown-3X7LFYBf-C43xdKg8.js +0 -2
- package/dist/assets/CaretDown-3X7LFYBf-C43xdKg8.js.map +0 -1
- package/dist/assets/CaretDown-DljrBfIz.js +0 -2
- package/dist/assets/CaretDown-DljrBfIz.js.map +0 -1
- package/dist/assets/CaretLeft-B_Lzd_Rn.js +0 -2
- package/dist/assets/CaretLeft-B_Lzd_Rn.js.map +0 -1
- package/dist/assets/CaretLeft-Df3E-68c-wke5zKLt.js +0 -2
- package/dist/assets/CaretLeft-Df3E-68c-wke5zKLt.js.map +0 -1
- package/dist/assets/CaretRight-Bbz5nCpg.js +0 -2
- package/dist/assets/CaretRight-Bbz5nCpg.js.map +0 -1
- package/dist/assets/CaretRight-DSVWUSka-Cx0Mkcqa.js +0 -2
- package/dist/assets/CaretRight-DSVWUSka-Cx0Mkcqa.js.map +0 -1
- package/dist/assets/CaretSort-BkGdLETT-DVOzEEqR.js +0 -2
- package/dist/assets/CaretSort-BkGdLETT-DVOzEEqR.js.map +0 -1
- package/dist/assets/CaretSort-DSgBum1h.js +0 -2
- package/dist/assets/CaretSort-DSgBum1h.js.map +0 -1
- package/dist/assets/Check-CbV9BYHY.js +0 -2
- package/dist/assets/Check-CbV9BYHY.js.map +0 -1
- package/dist/assets/Check-DV-U4AEq-B582NMZp.js +0 -2
- package/dist/assets/Check-DV-U4AEq-B582NMZp.js.map +0 -1
- package/dist/assets/CheckCircle-CX2jIKoF.js +0 -2
- package/dist/assets/CheckCircle-CX2jIKoF.js.map +0 -1
- package/dist/assets/CheckCircle-DI5fEgGd-CVF4LDhR.js +0 -2
- package/dist/assets/CheckCircle-DI5fEgGd-CVF4LDhR.js.map +0 -1
- package/dist/assets/CheckCircleFill-C-F0v5mB-BSW1YMqM.js +0 -2
- package/dist/assets/CheckCircleFill-C-F0v5mB-BSW1YMqM.js.map +0 -1
- package/dist/assets/CheckCircleFill-DLK12sW5.js +0 -2
- package/dist/assets/CheckCircleFill-DLK12sW5.js.map +0 -1
- package/dist/assets/Checkmark-BXnfChpo-CyQitGI2.js +0 -2
- package/dist/assets/Checkmark-BXnfChpo-CyQitGI2.js.map +0 -1
- package/dist/assets/Checkmark-DBvUEZAd.js +0 -2
- package/dist/assets/Checkmark-DBvUEZAd.js.map +0 -1
- package/dist/assets/ChevronDown-eUsCPXcB.js +0 -2
- package/dist/assets/ChevronDown-eUsCPXcB.js.map +0 -1
- package/dist/assets/ChevronDown-ouBxrU-k-eUsCPXcB.js +0 -2
- package/dist/assets/ChevronDown-ouBxrU-k-eUsCPXcB.js.map +0 -1
- package/dist/assets/Circle-8dOehHQf.js +0 -2
- package/dist/assets/Circle-8dOehHQf.js.map +0 -1
- package/dist/assets/Circle-n3-Wh4HS-8dOehHQf.js +0 -2
- package/dist/assets/Circle-n3-Wh4HS-8dOehHQf.js.map +0 -1
- package/dist/assets/CircleInfo-BhZY3C2Q-CZgYK1h2.js +0 -2
- package/dist/assets/CircleInfo-BhZY3C2Q-CZgYK1h2.js.map +0 -1
- package/dist/assets/CircleInfo-D0ktZDko.js +0 -2
- package/dist/assets/CircleInfo-D0ktZDko.js.map +0 -1
- package/dist/assets/Clock-CudavWaE.js +0 -2
- package/dist/assets/Clock-CudavWaE.js.map +0 -1
- package/dist/assets/Clock-DF-XMxha-CudavWaE.js +0 -2
- package/dist/assets/Clock-DF-XMxha-CudavWaE.js.map +0 -1
- package/dist/assets/ClockFill-Bd0t48q7-CcfHiJtH.js +0 -2
- package/dist/assets/ClockFill-Bd0t48q7-CcfHiJtH.js.map +0 -1
- package/dist/assets/ClockFill-yWs52y_e.js +0 -2
- package/dist/assets/ClockFill-yWs52y_e.js.map +0 -1
- package/dist/assets/CloudSlash-B-zJBjaD-CxVyp-Ac.js +0 -2
- package/dist/assets/CloudSlash-B-zJBjaD-CxVyp-Ac.js.map +0 -1
- package/dist/assets/CloudSlash-D18Hl3VW.js +0 -2
- package/dist/assets/CloudSlash-D18Hl3VW.js.map +0 -1
- package/dist/assets/Collapse-BOxZH5-e.js +0 -2
- package/dist/assets/Collapse-BOxZH5-e.js.map +0 -1
- package/dist/assets/Collapse-DRDB8Czs-CGcuZQgy.js +0 -2
- package/dist/assets/Collapse-DRDB8Czs-CGcuZQgy.js.map +0 -1
- package/dist/assets/Connect-Dme-qfKq-CgniLji8.js +0 -2
- package/dist/assets/Connect-Dme-qfKq-CgniLji8.js.map +0 -1
- package/dist/assets/Connect-laqJZT3s.js +0 -2
- package/dist/assets/Connect-laqJZT3s.js.map +0 -1
- package/dist/assets/Copy-CkOtWZ6m.js +0 -2
- package/dist/assets/Copy-CkOtWZ6m.js.map +0 -1
- package/dist/assets/Copy-ms9-7m7Y-CkOtWZ6m.js +0 -2
- package/dist/assets/Copy-ms9-7m7Y-CkOtWZ6m.js.map +0 -1
- package/dist/assets/CrossCircle-B6ZawoOx-z5-kkOo3.js +0 -2
- package/dist/assets/CrossCircle-B6ZawoOx-z5-kkOo3.js.map +0 -1
- package/dist/assets/CrossCircle-Bp9diEe9.js +0 -2
- package/dist/assets/CrossCircle-Bp9diEe9.js.map +0 -1
- package/dist/assets/Danger-CLu7nxgz.js +0 -2
- package/dist/assets/Danger-CLu7nxgz.js.map +0 -1
- package/dist/assets/Danger-KM8BZjue-CLu7nxgz.js +0 -2
- package/dist/assets/Danger-KM8BZjue-CLu7nxgz.js.map +0 -1
- package/dist/assets/Discord-CAS0Cj7s-CcsBWpnf.js +0 -2
- package/dist/assets/Discord-CAS0Cj7s-CcsBWpnf.js.map +0 -1
- package/dist/assets/Discord-CcPWRT8g.js +0 -2
- package/dist/assets/Discord-CcPWRT8g.js.map +0 -1
- package/dist/assets/Drive-CzahDx9j.js +0 -2
- package/dist/assets/Drive-CzahDx9j.js.map +0 -1
- package/dist/assets/Drive-GMcgBcIY-CzahDx9j.js +0 -2
- package/dist/assets/Drive-GMcgBcIY-CzahDx9j.js.map +0 -1
- package/dist/assets/Edit-D9GlgGu8.js +0 -2
- package/dist/assets/Edit-D9GlgGu8.js.map +0 -1
- package/dist/assets/Edit-Dr-ZiMSE-D9GlgGu8.js +0 -2
- package/dist/assets/Edit-Dr-ZiMSE-D9GlgGu8.js.map +0 -1
- package/dist/assets/Ellipsis-DWNUJYUI.js +0 -2
- package/dist/assets/Ellipsis-DWNUJYUI.js.map +0 -1
- package/dist/assets/Ellipsis-XK8AwMEC-BuVBeYhB.js +0 -2
- package/dist/assets/Ellipsis-XK8AwMEC-BuVBeYhB.js.map +0 -1
- package/dist/assets/Error-BmIZ2ZUy-CphzuMLn.js +0 -2
- package/dist/assets/Error-BmIZ2ZUy-CphzuMLn.js.map +0 -1
- package/dist/assets/Error-FBAhqFT5.js +0 -2
- package/dist/assets/Error-FBAhqFT5.js.map +0 -1
- package/dist/assets/Exclamation-BGFGsVRw.js +0 -2
- package/dist/assets/Exclamation-BGFGsVRw.js.map +0 -1
- package/dist/assets/Exclamation-CVsNS_QS-DLccamql.js +0 -2
- package/dist/assets/Exclamation-CVsNS_QS-DLccamql.js.map +0 -1
- package/dist/assets/File-Ba7ClyaL-BU1g1wjO.js +0 -2
- package/dist/assets/File-Ba7ClyaL-BU1g1wjO.js.map +0 -1
- package/dist/assets/File-DWKl25DR.js +0 -2
- package/dist/assets/File-DWKl25DR.js.map +0 -1
- package/dist/assets/FilesEarmark-BTL53WSf.js +0 -2
- package/dist/assets/FilesEarmark-BTL53WSf.js.map +0 -1
- package/dist/assets/FilesEarmark-CyrCQy8E-Bhut4E02.js +0 -2
- package/dist/assets/FilesEarmark-CyrCQy8E-Bhut4E02.js.map +0 -1
- package/dist/assets/FolderClose-BVMKeKvW.js +0 -2
- package/dist/assets/FolderClose-BVMKeKvW.js.map +0 -1
- package/dist/assets/FolderClose-DG_qHisc-CH6NoBuu.js +0 -2
- package/dist/assets/FolderClose-DG_qHisc-CH6NoBuu.js.map +0 -1
- package/dist/assets/FolderOpen-DT55_X9N.js +0 -2
- package/dist/assets/FolderOpen-DT55_X9N.js.map +0 -1
- package/dist/assets/FolderOpen-kDoWFkJO-Cciutkdg.js +0 -2
- package/dist/assets/FolderOpen-kDoWFkJO-Cciutkdg.js.map +0 -1
- package/dist/assets/FolderPlus-C2G5PVs-.js +0 -2
- package/dist/assets/FolderPlus-C2G5PVs-.js.map +0 -1
- package/dist/assets/FolderPlus-CSBSl9lZ-CifD0ek9.js +0 -2
- package/dist/assets/FolderPlus-CSBSl9lZ-CifD0ek9.js.map +0 -1
- package/dist/assets/Forum-Cfgyizyn.js +0 -2
- package/dist/assets/Forum-Cfgyizyn.js.map +0 -1
- package/dist/assets/Forum-DZ-CkLFh-BwabccAX.js +0 -2
- package/dist/assets/Forum-DZ-CkLFh-BwabccAX.js.map +0 -1
- package/dist/assets/Gear-CoQ9O06k.js +0 -2
- package/dist/assets/Gear-CoQ9O06k.js.map +0 -1
- package/dist/assets/Gear-cUlHJ4q6-B9R2l_9_.js +0 -2
- package/dist/assets/Gear-cUlHJ4q6-B9R2l_9_.js.map +0 -1
- package/dist/assets/Github-0PLiINY0-CjkZIHCO.js +0 -2
- package/dist/assets/Github-0PLiINY0-CjkZIHCO.js.map +0 -1
- package/dist/assets/Github-CjkZIHCO.js +0 -2
- package/dist/assets/Github-CjkZIHCO.js.map +0 -1
- package/dist/assets/Globe-CIYqVkpa-CL530H46.js +0 -2
- package/dist/assets/Globe-CIYqVkpa-CL530H46.js.map +0 -1
- package/dist/assets/Globe-Dy2otZRk.js +0 -2
- package/dist/assets/Globe-Dy2otZRk.js.map +0 -1
- package/dist/assets/GlobeWww-Ci7aa5CE.js +0 -2
- package/dist/assets/GlobeWww-Ci7aa5CE.js.map +0 -1
- package/dist/assets/GlobeWww-DN4yKujh-Ci7aa5CE.js +0 -2
- package/dist/assets/GlobeWww-DN4yKujh-Ci7aa5CE.js.map +0 -1
- package/dist/assets/Hdd-CP-hFB7d.js +0 -2
- package/dist/assets/Hdd-CP-hFB7d.js.map +0 -1
- package/dist/assets/Hdd-Dn_LdJIh-CJ6x9Bve.js +0 -2
- package/dist/assets/Hdd-Dn_LdJIh-CJ6x9Bve.js.map +0 -1
- package/dist/assets/History-BP4SmaS_-P4WBKyqX.js +0 -2
- package/dist/assets/History-BP4SmaS_-P4WBKyqX.js.map +0 -1
- package/dist/assets/History-CmOiP5qa.js +0 -2
- package/dist/assets/History-CmOiP5qa.js.map +0 -1
- package/dist/assets/InfoSquare-C98JaLiz-yPcGR71f.js +0 -2
- package/dist/assets/InfoSquare-C98JaLiz-yPcGR71f.js.map +0 -1
- package/dist/assets/InfoSquare-DbYZrwmg.js +0 -2
- package/dist/assets/InfoSquare-DbYZrwmg.js.map +0 -1
- package/dist/assets/Link-BF7aZjVu-CXIVQOz6.js +0 -2
- package/dist/assets/Link-BF7aZjVu-CXIVQOz6.js.map +0 -1
- package/dist/assets/Link-CXIVQOz6.js +0 -2
- package/dist/assets/Link-CXIVQOz6.js.map +0 -1
- package/dist/assets/Linkedin-DJwIkS6q-Dkb5Tp_Z.js +0 -2
- package/dist/assets/Linkedin-DJwIkS6q-Dkb5Tp_Z.js.map +0 -1
- package/dist/assets/Linkedin-exhl1yGN.js +0 -2
- package/dist/assets/Linkedin-exhl1yGN.js.map +0 -1
- package/dist/assets/Lock-DWdDRi_O.js +0 -2
- package/dist/assets/Lock-DWdDRi_O.js.map +0 -1
- package/dist/assets/Lock-PyaFHdNS-D_qxRTye.js +0 -2
- package/dist/assets/Lock-PyaFHdNS-D_qxRTye.js.map +0 -1
- package/dist/assets/M-ByQIo8bX.js +0 -2
- package/dist/assets/M-ByQIo8bX.js.map +0 -1
- package/dist/assets/M-DozhhPMY-DBQw97P_.js +0 -2
- package/dist/assets/M-DozhhPMY-DBQw97P_.js.map +0 -1
- package/dist/assets/PackageManager-B-MUWliB-bW01ZQSP.js +0 -2
- package/dist/assets/PackageManager-B-MUWliB-bW01ZQSP.js.map +0 -1
- package/dist/assets/PackageManager-D6Ia8zHs.js +0 -2
- package/dist/assets/PackageManager-D6Ia8zHs.js.map +0 -1
- package/dist/assets/Pencil-D7lvxXIP-D830iveq.js +0 -2
- package/dist/assets/Pencil-D7lvxXIP-D830iveq.js.map +0 -1
- package/dist/assets/Pencil-D830iveq.js +0 -2
- package/dist/assets/Pencil-D830iveq.js.map +0 -1
- package/dist/assets/People-B1tewG8c.js +0 -2
- package/dist/assets/People-B1tewG8c.js.map +0 -1
- package/dist/assets/People-CUB8LYKf-CyJmMqcw.js +0 -2
- package/dist/assets/People-CUB8LYKf-CyJmMqcw.js.map +0 -1
- package/dist/assets/Person-BPRmm67U.js +0 -2
- package/dist/assets/Person-BPRmm67U.js.map +0 -1
- package/dist/assets/Person-DuL4PQzm-ttQR0nPy.js +0 -2
- package/dist/assets/Person-DuL4PQzm-ttQR0nPy.js.map +0 -1
- package/dist/assets/Pin-D53eCMAz.js +0 -2
- package/dist/assets/Pin-D53eCMAz.js.map +0 -1
- package/dist/assets/Pin-DF70btCU-D53eCMAz.js +0 -2
- package/dist/assets/Pin-DF70btCU-D53eCMAz.js.map +0 -1
- package/dist/assets/PinFilled-CMXfFW67.js +0 -2
- package/dist/assets/PinFilled-CMXfFW67.js.map +0 -1
- package/dist/assets/PinFilled-vImzS0do-CMXfFW67.js +0 -2
- package/dist/assets/PinFilled-vImzS0do-CMXfFW67.js.map +0 -1
- package/dist/assets/Plus-DPFWGJM4-BztpK8li.js +0 -2
- package/dist/assets/Plus-DPFWGJM4-BztpK8li.js.map +0 -1
- package/dist/assets/Plus-XUIm1wNw.js +0 -2
- package/dist/assets/Plus-XUIm1wNw.js.map +0 -1
- package/dist/assets/PlusCircle-BEnWRjHa-w5zztKGx.js +0 -2
- package/dist/assets/PlusCircle-BEnWRjHa-w5zztKGx.js.map +0 -1
- package/dist/assets/PlusCircle-D1IRYULb.js +0 -2
- package/dist/assets/PlusCircle-D1IRYULb.js.map +0 -1
- package/dist/assets/PowerhouseLogoSmall-CmO95IAS-CDGLkst3.js +0 -2
- package/dist/assets/PowerhouseLogoSmall-CmO95IAS-CDGLkst3.js.map +0 -1
- package/dist/assets/PowerhouseLogoSmall-DF1uUwIC.js +0 -2
- package/dist/assets/PowerhouseLogoSmall-DF1uUwIC.js.map +0 -1
- package/dist/assets/Project-BlXuclr0-EsBam9d0.js +0 -2
- package/dist/assets/Project-BlXuclr0-EsBam9d0.js.map +0 -1
- package/dist/assets/Project-EsBam9d0.js +0 -2
- package/dist/assets/Project-EsBam9d0.js.map +0 -1
- package/dist/assets/QuestionSquare-B6O9Le7r-CDaw1i6L.js +0 -2
- package/dist/assets/QuestionSquare-B6O9Le7r-CDaw1i6L.js.map +0 -1
- package/dist/assets/QuestionSquare-CDaw1i6L.js +0 -2
- package/dist/assets/QuestionSquare-CDaw1i6L.js.map +0 -1
- package/dist/assets/RedoArrow-BJeEsiph-BbidqIFP.js +0 -2
- package/dist/assets/RedoArrow-BJeEsiph-BbidqIFP.js.map +0 -1
- package/dist/assets/RedoArrow-DM-fqhEP.js +0 -2
- package/dist/assets/RedoArrow-DM-fqhEP.js.map +0 -1
- package/dist/assets/Reload-6C2CYgrl-DPZbA7yl.js +0 -2
- package/dist/assets/Reload-6C2CYgrl-DPZbA7yl.js.map +0 -1
- package/dist/assets/Reload-DPZbA7yl.js +0 -2
- package/dist/assets/Reload-DPZbA7yl.js.map +0 -1
- package/dist/assets/Renown-6m7hx37h-CItksi2j.js +0 -2
- package/dist/assets/Renown-6m7hx37h-CItksi2j.js.map +0 -1
- package/dist/assets/Renown-CItksi2j.js +0 -2
- package/dist/assets/Renown-CItksi2j.js.map +0 -1
- package/dist/assets/RenownHover-CQ0TZHZv-cYQgnwQW.js +0 -2
- package/dist/assets/RenownHover-CQ0TZHZv-cYQgnwQW.js.map +0 -1
- package/dist/assets/RenownHover-cYQgnwQW.js +0 -2
- package/dist/assets/RenownHover-cYQgnwQW.js.map +0 -1
- package/dist/assets/Ring-BivnmVc5.js +0 -2
- package/dist/assets/Ring-BivnmVc5.js.map +0 -1
- package/dist/assets/Ring-DKv0gnwT-CDHLz87h.js +0 -2
- package/dist/assets/Ring-DKv0gnwT-CDHLz87h.js.map +0 -1
- package/dist/assets/Save-BBxj68pn-BkUvn89C.js +0 -2
- package/dist/assets/Save-BBxj68pn-BkUvn89C.js.map +0 -1
- package/dist/assets/Save-BWCZPY82.js +0 -2
- package/dist/assets/Save-BWCZPY82.js.map +0 -1
- package/dist/assets/Search-BiEcSbcf.js +0 -2
- package/dist/assets/Search-BiEcSbcf.js.map +0 -1
- package/dist/assets/Search-YUJuRBLe-CecGUkZA.js +0 -2
- package/dist/assets/Search-YUJuRBLe-CecGUkZA.js.map +0 -1
- package/dist/assets/Server-Bfkkjui1-lBan_3Dm.js +0 -2
- package/dist/assets/Server-Bfkkjui1-lBan_3Dm.js.map +0 -1
- package/dist/assets/Server-cAzmNxsS.js +0 -2
- package/dist/assets/Server-cAzmNxsS.js.map +0 -1
- package/dist/assets/Settings-Cca-sV-_.js +0 -2
- package/dist/assets/Settings-Cca-sV-_.js.map +0 -1
- package/dist/assets/Settings-mbbylBS5-Cca-sV-_.js +0 -2
- package/dist/assets/Settings-mbbylBS5-Cca-sV-_.js.map +0 -1
- package/dist/assets/Synced-CjieGKOk.js +0 -2
- package/dist/assets/Synced-CjieGKOk.js.map +0 -1
- package/dist/assets/Synced-DKJXzPiw-Cui8pDsS.js +0 -2
- package/dist/assets/Synced-DKJXzPiw-Cui8pDsS.js.map +0 -1
- package/dist/assets/Syncing-KnDBLSYe.js +0 -2
- package/dist/assets/Syncing-KnDBLSYe.js.map +0 -1
- package/dist/assets/Syncing-aT9WSMFf-2VhhyCcX.js +0 -2
- package/dist/assets/Syncing-aT9WSMFf-2VhhyCcX.js.map +0 -1
- package/dist/assets/Trash-CgSbHk-P-DIYkVMER.js +0 -2
- package/dist/assets/Trash-CgSbHk-P-DIYkVMER.js.map +0 -1
- package/dist/assets/Trash-DIHOD5wQ.js +0 -2
- package/dist/assets/Trash-DIHOD5wQ.js.map +0 -1
- package/dist/assets/TrashFill-CG3humXp.js +0 -2
- package/dist/assets/TrashFill-CG3humXp.js.map +0 -1
- package/dist/assets/TrashFill-DN50ercb-Oqx67xXN.js +0 -2
- package/dist/assets/TrashFill-DN50ercb-Oqx67xXN.js.map +0 -1
- package/dist/assets/TreeViewSlash-BywCsx5o-CUTTXZi-.js +0 -2
- package/dist/assets/TreeViewSlash-BywCsx5o-CUTTXZi-.js.map +0 -1
- package/dist/assets/TreeViewSlash-CKJADIpa.js +0 -2
- package/dist/assets/TreeViewSlash-CKJADIpa.js.map +0 -1
- package/dist/assets/TriangleDown-Boh-WZzH.js +0 -2
- package/dist/assets/TriangleDown-Boh-WZzH.js.map +0 -1
- package/dist/assets/TriangleDown-eCXwUfu8-F-V79AL3.js +0 -2
- package/dist/assets/TriangleDown-eCXwUfu8-F-V79AL3.js.map +0 -1
- package/dist/assets/VariantArrowLeft-CnuX59_e-6Zt_Q3tm.js +0 -2
- package/dist/assets/VariantArrowLeft-CnuX59_e-6Zt_Q3tm.js.map +0 -1
- package/dist/assets/VariantArrowLeft-Dl1-3L5q.js +0 -2
- package/dist/assets/VariantArrowLeft-Dl1-3L5q.js.map +0 -1
- package/dist/assets/VerticalDots-C8QYf7et-CCxZfvjq.js +0 -2
- package/dist/assets/VerticalDots-C8QYf7et-CCxZfvjq.js.map +0 -1
- package/dist/assets/VerticalDots-CCZxgZM8.js +0 -2
- package/dist/assets/VerticalDots-CCZxgZM8.js.map +0 -1
- package/dist/assets/WarningFill-CRRaW3Oz.js +0 -2
- package/dist/assets/WarningFill-CRRaW3Oz.js.map +0 -1
- package/dist/assets/WarningFill-WowAvi5P-D5XCckM6.js +0 -2
- package/dist/assets/WarningFill-WowAvi5P-D5XCckM6.js.map +0 -1
- package/dist/assets/XTwitter-CW6IaHUb.js +0 -2
- package/dist/assets/XTwitter-CW6IaHUb.js.map +0 -1
- package/dist/assets/XTwitter-k3Pt8itk-mvLk8TKx.js +0 -2
- package/dist/assets/XTwitter-k3Pt8itk-mvLk8TKx.js.map +0 -1
- package/dist/assets/Xmark-8qnJCs2Y-CZ3t0Fap.js +0 -2
- package/dist/assets/Xmark-8qnJCs2Y-CZ3t0Fap.js.map +0 -1
- package/dist/assets/Xmark-CZ3t0Fap.js +0 -2
- package/dist/assets/Xmark-CZ3t0Fap.js.map +0 -1
- package/dist/assets/XmarkLight-BkhBFy51.js +0 -2
- package/dist/assets/XmarkLight-BkhBFy51.js.map +0 -1
- package/dist/assets/XmarkLight-GHzDR5_F-CloMvuzt.js +0 -2
- package/dist/assets/XmarkLight-GHzDR5_F-CloMvuzt.js.map +0 -1
- package/dist/assets/Youtube-h-Dc9pri.js +0 -2
- package/dist/assets/Youtube-h-Dc9pri.js.map +0 -1
- package/dist/assets/Youtube-i8V0IXUU-Bkiwoayp.js +0 -2
- package/dist/assets/Youtube-i8V0IXUU-Bkiwoayp.js.map +0 -1
- package/dist/assets/app-DKrzRA2f.js +0 -449
- package/dist/assets/app-DKrzRA2f.js.map +0 -1
- package/dist/assets/app-loader-DH_VGIVv.css +0 -1
- package/dist/assets/app-loader-mj_poB3V.js +0 -3
- package/dist/assets/app-loader-mj_poB3V.js.map +0 -1
- package/dist/assets/browser-BbIPlSaA.js +0 -2
- package/dist/assets/browser-BbIPlSaA.js.map +0 -1
- package/dist/assets/browser-DtMtdCgJ.js +0 -7
- package/dist/assets/browser-DtMtdCgJ.js.map +0 -1
- package/dist/assets/ccip-DUUHdwDo.js +0 -2
- package/dist/assets/ccip-DUUHdwDo.js.map +0 -1
- package/dist/assets/content-DFQJzB7I.js +0 -7
- package/dist/assets/content-DFQJzB7I.js.map +0 -1
- package/dist/assets/editor-Dms2goxJ.js +0 -346
- package/dist/assets/editor-Dms2goxJ.js.map +0 -1
- package/dist/assets/getEnsName-DoyRgFOP.js +0 -35
- package/dist/assets/getEnsName-DoyRgFOP.js.map +0 -1
- package/dist/assets/index-Bg4jiu9P.js +0 -3
- package/dist/assets/index-Bg4jiu9P.js.map +0 -1
- package/dist/assets/index-CLu1C_is-jUM7ckQa.js +0 -12
- package/dist/assets/index-CLu1C_is-jUM7ckQa.js.map +0 -1
- package/dist/assets/index-q_KV5Ymp.js +0 -16
- package/dist/assets/index-q_KV5Ymp.js.map +0 -1
- package/dist/assets/isAddressEqual-H3jvLfD0.js +0 -2
- package/dist/assets/isAddressEqual-H3jvLfD0.js.map +0 -1
- package/dist/assets/json-m8fnOd5g.js +0 -3
- package/dist/assets/json-m8fnOd5g.js.map +0 -1
- package/dist/assets/main.Bp4zjrbL.js +0 -2
- package/dist/assets/main.Bp4zjrbL.js.map +0 -1
- package/dist/assets/root-R8rJ5_ai.js +0 -17
- package/dist/assets/root-R8rJ5_ai.js.map +0 -1
- package/dist/assets/router-DX6s3TD2.js +0 -12
- package/dist/assets/router-DX6s3TD2.js.map +0 -1
- package/dist/assets/useUiNodes-BqBkjrKn.js +0 -107
- package/dist/assets/useUiNodes-BqBkjrKn.js.map +0 -1
- package/dist/service-worker.js.map +0 -1
- package/dist/studio/cli.js +0 -6
- package/dist/studio/helpers.d.ts +0 -2
- package/dist/studio/hmr.js +0 -10
- package/dist/studio/index.d.ts +0 -19
- package/dist/studio/index.js +0 -624
- package/dist/studio/server.d.ts +0 -7
- package/dist/studio/vite-plugins/base.d.ts +0 -14
- package/dist/studio/vite-plugins/external-packages.d.ts +0 -5
- package/dist/studio/vite-plugins/hmr.d.ts +0 -2
- package/dist/studio/vite-plugins/studio.d.ts +0 -3
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useUiNodes-BqBkjrKn.js","sources":["../../../../packages/design-system/dist/connect/components/node-input/node-input.js","../../../../packages/design-system/dist/connect/hooks/drag-and-drop/use-drop.js","../../../../packages/design-system/dist/connect/constants/documents.js","../../../../packages/design-system/dist/connect/hooks/drag-and-drop/use-drag.js","../../../../packages/design-system/dist/assets/icons/budget.png.js","../../../../packages/design-system/dist/assets/icons/rwa-report.png.js","../../../../packages/design-system/dist/assets/icons/template.png.js","../../../../packages/design-system/dist/connect/constants/icons.js","../../../../packages/design-system/dist/connect/utils/get-document-icon-src.js","../../../../node_modules/.pnpm/@radix-ui+react-collection@1.1.1_@types+react-dom@18.3.5_@types+react@18.3.18__@types+react@1_du3umibpgknzrmwryvhzp3lgou/node_modules/@radix-ui/react-collection/dist/index.mjs","../../../../node_modules/.pnpm/@radix-ui+react-direction@1.1.0_@types+react@18.3.18_react@18.3.1/node_modules/@radix-ui/react-direction/dist/index.mjs","../../../../node_modules/.pnpm/@floating-ui+react-dom@2.1.2_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../../../../node_modules/.pnpm/@radix-ui+react-arrow@1.1.1_@types+react-dom@18.3.5_@types+react@18.3.18__@types+react@18.3.1_wfj52omijboqejc6zhpwkjvyjq/node_modules/@radix-ui/react-arrow/dist/index.mjs","../../../../node_modules/.pnpm/@radix-ui+react-use-size@1.1.0_@types+react@18.3.18_react@18.3.1/node_modules/@radix-ui/react-use-size/dist/index.mjs","../../../../node_modules/.pnpm/@radix-ui+react-popper@1.2.1_@types+react-dom@18.3.5_@types+react@18.3.18__@types+react@18.3._z2gu7tymhfvx6ebd6lqqykecmq/node_modules/@radix-ui/react-popper/dist/index.mjs","../../../../node_modules/.pnpm/@radix-ui+react-roving-focus@1.1.1_@types+react-dom@18.3.5_@types+react@18.3.18__@types+react_bkbd3syfptkiebtjifbhjosaba/node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../../../../node_modules/.pnpm/@radix-ui+react-menu@2.1.5_@types+react-dom@18.3.5_@types+react@18.3.18__@types+react@18.3.18_b444klobdwls3ekuhsbpbqlp7m/node_modules/@radix-ui/react-menu/dist/index.mjs","../../../../node_modules/.pnpm/@radix-ui+react-dropdown-menu@2.1.5_@types+react-dom@18.3.5_@types+react@18.3.18__@types+reac_vnnecc56v4war2mkqkiw4fgbtm/node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs","../../../../packages/design-system/dist/powerhouse/components/dropdown-menu/dropdown-menu.js","../../../../packages/design-system/dist/connect/components/dropdown-menu/dropdown-menu.js","../../../../packages/design-system/dist/assets/powerhouse-rounded.png.js","../../../../node_modules/.pnpm/@wagmi+core@2.16.3_@tanstack+query-core@5.65.0_@types+react@18.3.18_react@18.3.1_typescript@5_gqv2hnplujnrzd7mfuzvv3in6a/node_modules/@wagmi/core/dist/esm/utils/getAction.js","../../../../node_modules/.pnpm/@wagmi+core@2.16.3_@tanstack+query-core@5.65.0_@types+react@18.3.18_react@18.3.1_typescript@5_gqv2hnplujnrzd7mfuzvv3in6a/node_modules/@wagmi/core/dist/esm/actions/getChainId.js","../../../../node_modules/.pnpm/@wagmi+core@2.16.3_@tanstack+query-core@5.65.0_@types+react@18.3.18_react@18.3.1_typescript@5_gqv2hnplujnrzd7mfuzvv3in6a/node_modules/@wagmi/core/dist/esm/actions/getEnsAvatar.js","../../../../node_modules/.pnpm/@wagmi+core@2.16.3_@tanstack+query-core@5.65.0_@types+react@18.3.18_react@18.3.1_typescript@5_gqv2hnplujnrzd7mfuzvv3in6a/node_modules/@wagmi/core/dist/esm/actions/getEnsName.js","../../../../node_modules/.pnpm/@wagmi+core@2.16.3_@tanstack+query-core@5.65.0_@types+react@18.3.18_react@18.3.1_typescript@5_gqv2hnplujnrzd7mfuzvv3in6a/node_modules/@wagmi/core/dist/esm/actions/watchChainId.js","../../../../node_modules/.pnpm/wagmi@2.14.9_@tanstack+query-core@5.65.0_@tanstack+react-query@5.65.1_react@18.3.1__@types+re_2nhekjyo7kifybnohadwnpicee/node_modules/wagmi/dist/esm/version.js","../../../../node_modules/.pnpm/wagmi@2.14.9_@tanstack+query-core@5.65.0_@tanstack+react-query@5.65.1_react@18.3.1__@types+re_2nhekjyo7kifybnohadwnpicee/node_modules/wagmi/dist/esm/utils/getVersion.js","../../../../node_modules/.pnpm/wagmi@2.14.9_@tanstack+query-core@5.65.0_@tanstack+react-query@5.65.1_react@18.3.1__@types+re_2nhekjyo7kifybnohadwnpicee/node_modules/wagmi/dist/esm/errors/base.js","../../../../node_modules/.pnpm/wagmi@2.14.9_@tanstack+query-core@5.65.0_@tanstack+react-query@5.65.1_react@18.3.1__@types+re_2nhekjyo7kifybnohadwnpicee/node_modules/wagmi/dist/esm/errors/context.js","../../../../node_modules/.pnpm/wagmi@2.14.9_@tanstack+query-core@5.65.0_@tanstack+react-query@5.65.1_react@18.3.1__@types+re_2nhekjyo7kifybnohadwnpicee/node_modules/wagmi/dist/esm/hooks/useConfig.js","../../../../node_modules/.pnpm/@tanstack+query-core@5.65.0/node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../../../node_modules/.pnpm/@wagmi+core@2.16.3_@tanstack+query-core@5.65.0_@types+react@18.3.18_react@18.3.1_typescript@5_gqv2hnplujnrzd7mfuzvv3in6a/node_modules/@wagmi/core/dist/esm/query/utils.js","../../../../node_modules/.pnpm/@wagmi+core@2.16.3_@tanstack+query-core@5.65.0_@types+react@18.3.18_react@18.3.1_typescript@5_gqv2hnplujnrzd7mfuzvv3in6a/node_modules/@wagmi/core/dist/esm/query/getEnsAvatar.js","../../../../node_modules/.pnpm/@wagmi+core@2.16.3_@tanstack+query-core@5.65.0_@types+react@18.3.18_react@18.3.1_typescript@5_gqv2hnplujnrzd7mfuzvv3in6a/node_modules/@wagmi/core/dist/esm/query/getEnsName.js","../../../../node_modules/.pnpm/@tanstack+react-query@5.65.1_react@18.3.1/node_modules/@tanstack/react-query/build/modern/isRestoring.js","../../../../node_modules/.pnpm/@tanstack+react-query@5.65.1_react@18.3.1/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../../../../node_modules/.pnpm/@tanstack+react-query@5.65.1_react@18.3.1/node_modules/@tanstack/react-query/build/modern/utils.js","../../../../node_modules/.pnpm/@tanstack+react-query@5.65.1_react@18.3.1/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../../../../node_modules/.pnpm/@tanstack+react-query@5.65.1_react@18.3.1/node_modules/@tanstack/react-query/build/modern/suspense.js","../../../../node_modules/.pnpm/@tanstack+react-query@5.65.1_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../../../../node_modules/.pnpm/@tanstack+react-query@5.65.1_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useQuery.js","../../../../node_modules/.pnpm/wagmi@2.14.9_@tanstack+query-core@5.65.0_@tanstack+react-query@5.65.1_react@18.3.1__@types+re_2nhekjyo7kifybnohadwnpicee/node_modules/wagmi/dist/esm/utils/query.js","../../../../node_modules/.pnpm/wagmi@2.14.9_@tanstack+query-core@5.65.0_@tanstack+react-query@5.65.1_react@18.3.1__@types+re_2nhekjyo7kifybnohadwnpicee/node_modules/wagmi/dist/esm/hooks/useChainId.js","../../../../node_modules/.pnpm/wagmi@2.14.9_@tanstack+query-core@5.65.0_@tanstack+react-query@5.65.1_react@18.3.1__@types+re_2nhekjyo7kifybnohadwnpicee/node_modules/wagmi/dist/esm/hooks/useEnsAvatar.js","../../../../node_modules/.pnpm/wagmi@2.14.9_@tanstack+query-core@5.65.0_@tanstack+react-query@5.65.1_react@18.3.1__@types+re_2nhekjyo7kifybnohadwnpicee/node_modules/wagmi/dist/esm/hooks/useEnsName.js","../../../../packages/design-system/dist/connect/components/ens-avatar/ens-avatar.js","../../../../packages/design-system/dist/connect/utils/address.js","../../src/store/document-drive.ts","../../src/utils/drive-sections.ts","../../src/hooks/useDocumentDriveById.ts","../../../../node_modules/.pnpm/lz-string@1.5.0/node_modules/lz-string/libs/lz-string.js","../../src/utils/getSwitchboardUrl.ts","../../src/utils/openUrl.ts","../../src/hooks/useOpenSwitchboardLink.ts","../../src/hooks/useUiNodes.ts"],"sourcesContent":["import { jsx as g } from \"react/jsx-runtime\";\nimport { useState as h, useRef as d, useLayoutEffect as y } from \"react\";\nimport { twMerge as k } from \"tailwind-merge\";\nimport { useOnClickOutside as x, useEventListener as E } from \"usehooks-ts\";\nfunction N(s) {\n const {\n onSubmit: c,\n onCancel: l,\n defaultValue: a,\n className: f,\n minLength: u = 1,\n ...m\n } = s, [n, p] = h(a ?? \"\"), t = d(null);\n x(t, r), E(\"keyup\", (e) => {\n e.key === \"Enter\" && r(), e.key === \"Escape\" && l();\n }), y(() => {\n setTimeout(() => {\n var e, o, i;\n (e = t.current) == null || e.focus(), (o = t.current) == null || o.select(), (i = t.current) == null || i.scroll({ left: 9999 });\n }, 100);\n }, []);\n function r() {\n n.length >= u && c(n);\n }\n return /* @__PURE__ */ g(\n \"input\",\n {\n ...m,\n autoFocus: !0,\n className: k(\"bg-inherit text-inherit outline-none\", f),\n minLength: u,\n onChange: (e) => p(e.target.value),\n ref: t,\n required: !0,\n type: \"text\",\n value: n\n }\n );\n}\nexport {\n N as NodeInput\n};\n//# sourceMappingURL=node-input.js.map\n","import { useState as F, useCallback as s, useMemo as N } from \"react\";\nimport { FILE as O, UI_NODE as T } from \"../../constants/nodes.js\";\nfunction P(t) {\n const { uiNode: e, onAddFile: r, onCopyNode: d, onMoveNode: i } = t, [p, n] = F(!1), l = !!e && e.kind !== O, f = s((o) => {\n o.preventDefault(), n(!0);\n }, []), u = s(() => {\n n(!1);\n }, []), c = s(\n async (o) => {\n if (o.preventDefault(), o.stopPropagation(), !e) return;\n const D = w(o.dataTransfer.items).filter(\n Boolean\n );\n if (D.length)\n for (const a of D)\n await r(a, e);\n else {\n const a = o.getModifierState(\"Alt\"), m = o.dataTransfer.getData(T), g = JSON.parse(m);\n a ? await d(g, e) : await i(g, e);\n }\n n(!1);\n },\n [r, d, i, e]\n );\n return N(() => ({\n isDropTarget: p,\n dropProps: l ? { onDragOver: f, onDragLeave: u, onDrop: c } : {\n onDragOver: void 0,\n onDragLeave: void 0,\n onDrop: void 0\n }\n }), [l, p, u, f, c]);\n}\nfunction w(t) {\n return Array.from(t).map((r) => r.kind === \"file\" ? r.getAsFile() : null).filter(Boolean);\n}\nexport {\n P as useDrop\n};\n//# sourceMappingURL=use-drop.js.map\n","const o = \"powerhouse/budget-statement\", e = \"powerhouse/default\", t = \"makerdao/rwa-portfolio\", s = [o, e, t];\nexport {\n o as BUDGET,\n e as DEFAULT,\n t as MAKERDAO_RWA_PORTFOLIO,\n s as documentTypes\n};\n//# sourceMappingURL=documents.js.map\n","import { useState as i, useCallback as s, useMemo as u } from \"react\";\nimport { UI_NODE as D, DRIVE as f } from \"../../constants/nodes.js\";\nfunction m(g) {\n const { uiNode: r } = g, [a, d] = i(!1), e = s(\n (o) => {\n o.dataTransfer.setData(D, JSON.stringify(r));\n },\n [r]\n ), n = s(() => {\n d(!1);\n }, []), t = !!r && r.kind !== f;\n return u(() => ({\n isDragging: a,\n dragProps: t ? {\n draggable: !0,\n onDragStart: e,\n onDragEnd: n\n } : {\n draggable: !1,\n onDragStart: void 0,\n onDragEnd: void 0\n }\n }), [t, a, n, e]);\n}\nexport {\n m as useDrag\n};\n//# sourceMappingURL=use-drag.js.map\n","const A = \"data:image/png;base64,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\";\nexport {\n A as default\n};\n//# sourceMappingURL=budget.png.js.map\n","const A = \"data:image/png;base64,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\";\nexport {\n A as default\n};\n//# sourceMappingURL=rwa-report.png.js.map\n","const A = \"data:image/png;base64,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\";\nexport {\n A as default\n};\n//# sourceMappingURL=template.png.js.map\n","import o from \"../../assets/icons/budget.png.js\";\nimport m from \"../../assets/icons/rwa-report.png.js\";\nimport t from \"../../assets/icons/template.png.js\";\nimport { BUDGET as r, DEFAULT as e, MAKERDAO_RWA_PORTFOLIO as f } from \"./documents.js\";\nconst g = {\n [r]: o,\n [e]: t,\n [f]: m\n};\nexport {\n g as iconMap\n};\n//# sourceMappingURL=icons.js.map\n","import { documentTypes as t, DEFAULT as e } from \"../constants/documents.js\";\nimport { iconMap as n } from \"../constants/icons.js\";\nfunction p(r, i) {\n return i || (t.includes(r) ? n[r] : n[e]);\n}\nexport {\n p as getDocumentIconSrc\n};\n//# sourceMappingURL=get-document-icon-src.js.map\n","\"use client\";\n\n// packages/react/collection/src/Collection.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(Slot, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(Slot, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\nexport {\n createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/Direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","import { computePosition, arrow as arrow$2, offset as offset$1, shift as shift$1, limitShift as limitShift$1, flip as flip$1, size as size$1, autoPlacement as autoPlacement$1, hide as hide$1, inline as inline$1 } from '@floating-ui/dom';\nexport { autoUpdate, computePosition, detectOverflow, getOverflowAncestors, platform } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length;\n let i;\n let keys;\n if (a && b && typeof a === 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = React.useState(null);\n const [_floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (node !== referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const hasWhileElementsMounted = whileElementsMounted != null;\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const openRef = useLatestRef(open);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n // The floating element's position may be recomputed while it's closed\n // but still mounted (such as when transitioning out). To ensure\n // `isPositioned` will be `false` initially on the next open, avoid\n // setting it to `true` when `open === false` (must be specified).\n isPositioned: openRef.current !== false\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef, openRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n }\n update();\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = React.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow$1 = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return arrow$2({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n }\n if (element) {\n return arrow$2({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = (options, deps) => ({\n ...offset$1(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = (options, deps) => ({\n ...shift$1(options),\n options: [options, deps]\n});\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => ({\n ...limitShift$1(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = (options, deps) => ({\n ...flip$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = (options, deps) => ({\n ...size$1(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = (options, deps) => ({\n ...autoPlacement$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = (options, deps) => ({\n ...hide$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = (options, deps) => ({\n ...inline$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = (options, deps) => ({\n ...arrow$1(options),\n options: [options, deps]\n});\n\nexport { arrow, autoPlacement, flip, hide, inline, limitShift, offset, shift, size, useFloating };\n","// packages/react/arrow/src/Arrow.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Arrow\";\nvar Arrow = React.forwardRef((props, forwardedRef) => {\n const { children, width = 10, height = 5, ...arrowProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.svg,\n {\n ...arrowProps,\n ref: forwardedRef,\n width,\n height,\n viewBox: \"0 0 30 10\",\n preserveAspectRatio: \"none\",\n children: props.asChild ? children : /* @__PURE__ */ jsx(\"polygon\", { points: \"0,0 30,0 15,10\" })\n }\n );\n});\nArrow.displayName = NAME;\nvar Root = Arrow;\nexport {\n Arrow,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/popper/src/Popper.tsx\nimport * as React from \"react\";\nimport {\n useFloating,\n autoUpdate,\n offset,\n shift,\n limitShift,\n hide,\n arrow as floatingUIarrow,\n flip,\n size\n} from \"@floating-ui/react-dom\";\nimport * as ArrowPrimitive from \"@radix-ui/react-arrow\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SIDE_OPTIONS = [\"top\", \"right\", \"bottom\", \"left\"];\nvar ALIGN_OPTIONS = [\"start\", \"center\", \"end\"];\nvar POPPER_NAME = \"Popper\";\nvar [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);\nvar [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);\nvar Popper = (props) => {\n const { __scopePopper, children } = props;\n const [anchor, setAnchor] = React.useState(null);\n return /* @__PURE__ */ jsx(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });\n};\nPopper.displayName = POPPER_NAME;\nvar ANCHOR_NAME = \"PopperAnchor\";\nvar PopperAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopper, virtualRef, ...anchorProps } = props;\n const context = usePopperContext(ANCHOR_NAME, __scopePopper);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n context.onAnchorChange(virtualRef?.current || ref.current);\n });\n return virtualRef ? null : /* @__PURE__ */ jsx(Primitive.div, { ...anchorProps, ref: composedRefs });\n }\n);\nPopperAnchor.displayName = ANCHOR_NAME;\nvar CONTENT_NAME = \"PopperContent\";\nvar [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);\nvar PopperContent = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopper,\n side = \"bottom\",\n sideOffset = 0,\n align = \"center\",\n alignOffset = 0,\n arrowPadding = 0,\n avoidCollisions = true,\n collisionBoundary = [],\n collisionPadding: collisionPaddingProp = 0,\n sticky = \"partial\",\n hideWhenDetached = false,\n updatePositionStrategy = \"optimized\",\n onPlaced,\n ...contentProps\n } = props;\n const context = usePopperContext(CONTENT_NAME, __scopePopper);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [arrow, setArrow] = React.useState(null);\n const arrowSize = useSize(arrow);\n const arrowWidth = arrowSize?.width ?? 0;\n const arrowHeight = arrowSize?.height ?? 0;\n const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\n const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : { top: 0, right: 0, bottom: 0, left: 0, ...collisionPaddingProp };\n const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [collisionBoundary];\n const hasExplicitBoundaries = boundary.length > 0;\n const detectOverflowOptions = {\n padding: collisionPadding,\n boundary: boundary.filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: hasExplicitBoundaries\n };\n const { refs, floatingStyles, placement, isPositioned, middlewareData } = useFloating({\n // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n strategy: \"fixed\",\n placement: desiredPlacement,\n whileElementsMounted: (...args) => {\n const cleanup = autoUpdate(...args, {\n animationFrame: updatePositionStrategy === \"always\"\n });\n return cleanup;\n },\n elements: {\n reference: context.anchor\n },\n middleware: [\n offset({ mainAxis: sideOffset + arrowHeight, alignmentAxis: alignOffset }),\n avoidCollisions && shift({\n mainAxis: true,\n crossAxis: false,\n limiter: sticky === \"partial\" ? limitShift() : void 0,\n ...detectOverflowOptions\n }),\n avoidCollisions && flip({ ...detectOverflowOptions }),\n size({\n ...detectOverflowOptions,\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference;\n const contentStyle = elements.floating.style;\n contentStyle.setProperty(\"--radix-popper-available-width\", `${availableWidth}px`);\n contentStyle.setProperty(\"--radix-popper-available-height\", `${availableHeight}px`);\n contentStyle.setProperty(\"--radix-popper-anchor-width\", `${anchorWidth}px`);\n contentStyle.setProperty(\"--radix-popper-anchor-height\", `${anchorHeight}px`);\n }\n }),\n arrow && floatingUIarrow({ element: arrow, padding: arrowPadding }),\n transformOrigin({ arrowWidth, arrowHeight }),\n hideWhenDetached && hide({ strategy: \"referenceHidden\", ...detectOverflowOptions })\n ]\n });\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const handlePlaced = useCallbackRef(onPlaced);\n useLayoutEffect(() => {\n if (isPositioned) {\n handlePlaced?.();\n }\n }, [isPositioned, handlePlaced]);\n const arrowX = middlewareData.arrow?.x;\n const arrowY = middlewareData.arrow?.y;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: refs.setFloating,\n \"data-radix-popper-content-wrapper\": \"\",\n style: {\n ...floatingStyles,\n transform: isPositioned ? floatingStyles.transform : \"translate(0, -200%)\",\n // keep off the page when measuring\n minWidth: \"max-content\",\n zIndex: contentZIndex,\n [\"--radix-popper-transform-origin\"]: [\n middlewareData.transformOrigin?.x,\n middlewareData.transformOrigin?.y\n ].join(\" \"),\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...middlewareData.hide?.referenceHidden && {\n visibility: \"hidden\",\n pointerEvents: \"none\"\n }\n },\n dir: props.dir,\n children: /* @__PURE__ */ jsx(\n PopperContentProvider,\n {\n scope: __scopePopper,\n placedSide,\n onArrowChange: setArrow,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-side\": placedSide,\n \"data-align\": placedAlign,\n ...contentProps,\n ref: composedRefs,\n style: {\n ...contentProps.style,\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPositioned ? \"none\" : void 0\n }\n }\n )\n }\n )\n }\n );\n }\n);\nPopperContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"PopperArrow\";\nvar OPPOSITE_SIDE = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n};\nvar PopperArrow = React.forwardRef(function PopperArrow2(props, forwardedRef) {\n const { __scopePopper, ...arrowProps } = props;\n const contentContext = useContentContext(ARROW_NAME, __scopePopper);\n const baseSide = OPPOSITE_SIDE[contentContext.placedSide];\n return (\n // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)\n // doesn't report size as we'd expect on SVG elements.\n // it reports their bounding box which is effectively the largest path inside the SVG.\n /* @__PURE__ */ jsx(\n \"span\",\n {\n ref: contentContext.onArrowChange,\n style: {\n position: \"absolute\",\n left: contentContext.arrowX,\n top: contentContext.arrowY,\n [baseSide]: 0,\n transformOrigin: {\n top: \"\",\n right: \"0 0\",\n bottom: \"center 0\",\n left: \"100% 0\"\n }[contentContext.placedSide],\n transform: {\n top: \"translateY(100%)\",\n right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\n bottom: `rotate(180deg)`,\n left: \"translateY(50%) rotate(-90deg) translateX(50%)\"\n }[contentContext.placedSide],\n visibility: contentContext.shouldHideArrow ? \"hidden\" : void 0\n },\n children: /* @__PURE__ */ jsx(\n ArrowPrimitive.Root,\n {\n ...arrowProps,\n ref: forwardedRef,\n style: {\n ...arrowProps.style,\n // ensures the element can be measured correctly (mostly for if SVG)\n display: \"block\"\n }\n }\n )\n }\n )\n );\n});\nPopperArrow.displayName = ARROW_NAME;\nfunction isNotNull(value) {\n return value !== null;\n}\nvar transformOrigin = (options) => ({\n name: \"transformOrigin\",\n options,\n fn(data) {\n const { placement, rects, middlewareData } = data;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const noArrowAlign = { start: \"0%\", center: \"50%\", end: \"100%\" }[placedAlign];\n const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;\n const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;\n let x = \"\";\n let y = \"\";\n if (placedSide === \"bottom\") {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${-arrowHeight}px`;\n } else if (placedSide === \"top\") {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${rects.floating.height + arrowHeight}px`;\n } else if (placedSide === \"right\") {\n x = `${-arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n } else if (placedSide === \"left\") {\n x = `${rects.floating.width + arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return { data: { x, y } };\n }\n});\nfunction getSideAndAlignFromPlacement(placement) {\n const [side, align = \"center\"] = placement.split(\"-\");\n return [side, align];\n}\nvar Root2 = Popper;\nvar Anchor = PopperAnchor;\nvar Content = PopperContent;\nvar Arrow = PopperArrow;\nexport {\n ALIGN_OPTIONS,\n Anchor,\n Arrow,\n Content,\n Popper,\n PopperAnchor,\n PopperArrow,\n PopperContent,\n Root2 as Root,\n SIDE_OPTIONS,\n createPopperScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/roving-focus/src/RovingFocusGroup.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n })\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/menu/src/Menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs, composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SELECTION_KEYS = [\"Enter\", \" \"];\nvar FIRST_KEYS = [\"ArrowDown\", \"PageUp\", \"Home\"];\nvar LAST_KEYS = [\"ArrowUp\", \"PageDown\", \"End\"];\nvar FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nvar SUB_OPEN_KEYS = {\n ltr: [...SELECTION_KEYS, \"ArrowRight\"],\n rtl: [...SELECTION_KEYS, \"ArrowLeft\"]\n};\nvar SUB_CLOSE_KEYS = {\n ltr: [\"ArrowLeft\"],\n rtl: [\"ArrowRight\"]\n};\nvar MENU_NAME = \"Menu\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(MENU_NAME);\nvar [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [\n createCollectionScope,\n createPopperScope,\n createRovingFocusGroupScope\n]);\nvar usePopperScope = createPopperScope();\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);\nvar [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);\nvar Menu = (props) => {\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = usePopperScope(__scopeMenu);\n const [content, setContent] = React.useState(null);\n const isUsingKeyboardRef = React.useRef(false);\n const handleOpenChange = useCallbackRef(onOpenChange);\n const direction = useDirection(dir);\n React.useEffect(() => {\n const handleKeyDown = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, { capture: true, once: true });\n document.addEventListener(\"pointermove\", handlePointer, { capture: true, once: true });\n };\n const handlePointer = () => isUsingKeyboardRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n document.removeEventListener(\"pointerdown\", handlePointer, { capture: true });\n document.removeEventListener(\"pointermove\", handlePointer, { capture: true });\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuRootProvider,\n {\n scope: __scopeMenu,\n onClose: React.useCallback(() => handleOpenChange(false), [handleOpenChange]),\n isUsingKeyboardRef,\n dir: direction,\n modal,\n children\n }\n )\n }\n ) });\n};\nMenu.displayName = MENU_NAME;\nvar ANCHOR_NAME = \"MenuAnchor\";\nvar MenuAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nMenuAnchor.displayName = ANCHOR_NAME;\nvar PORTAL_NAME = \"MenuPortal\";\nvar [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar MenuPortal = (props) => {\n const { __scopeMenu, forceMount, children, container } = props;\n const context = useMenuContext(PORTAL_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeMenu, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"MenuContent\";\nvar [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);\nvar MenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: rootContext.modal ? /* @__PURE__ */ jsx(MenuRootContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(MenuRootContentNonModal, { ...contentProps, ref: forwardedRef }) }) }) });\n }\n);\nvar MenuRootContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const content = ref.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: true,\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n ),\n onDismiss: () => context.onOpenChange(false)\n }\n );\n }\n);\nvar MenuRootContentNonModal = React.forwardRef((props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: () => context.onOpenChange(false)\n }\n );\n});\nvar MenuContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeMenu,\n loop = false,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEntryFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n disableOutsideScroll,\n ...contentProps\n } = props;\n const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const getItems = useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = React.useState(null);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n const timerRef = React.useRef(0);\n const searchRef = React.useRef(\"\");\n const pointerGraceTimerRef = React.useRef(0);\n const pointerGraceIntentRef = React.useRef(null);\n const pointerDirRef = React.useRef(\"right\");\n const lastPointerXRef = React.useRef(0);\n const ScrollLockWrapper = disableOutsideScroll ? RemoveScroll : React.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll ? { as: Slot, allowPinchZoom: true } : void 0;\n const handleTypeaheadSearch = (key) => {\n const search = searchRef.current + key;\n const items = getItems().filter((item) => !item.disabled);\n const currentItem = document.activeElement;\n const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;\n const values = items.map((item) => item.textValue);\n const nextMatch = getNextMatch(values, search, currentMatch);\n const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n if (newItem) {\n setTimeout(() => newItem.focus());\n }\n };\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n useFocusGuards();\n const isPointerMovingToSubmenu = React.useCallback((event) => {\n const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;\n return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentProvider,\n {\n scope: __scopeMenu,\n searchRef,\n onItemEnter: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n onItemLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) return;\n contentRef.current?.focus();\n setCurrentItemId(null);\n },\n [isPointerMovingToSubmenu]\n ),\n onTriggerLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: React.useCallback((intent) => {\n pointerGraceIntentRef.current = intent;\n }, []),\n children: /* @__PURE__ */ jsx(ScrollLockWrapper, { ...scrollLockWrapperProps, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: trapFocus,\n onMountAutoFocus: composeEventHandlers(onOpenAutoFocus, (event) => {\n event.preventDefault();\n contentRef.current?.focus({ preventScroll: true });\n }),\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n children: /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: composeEventHandlers(onEntryFocus, (event) => {\n if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();\n }),\n preventScrollOnEntryFocus: true,\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n \"data-state\": getOpenState(context.open),\n \"data-radix-menu-content\": \"\",\n dir: rootContext.dir,\n ...popperScope,\n ...contentProps,\n ref: composedRefs,\n style: { outline: \"none\", ...contentProps.style },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const target = event.target;\n const isKeyDownInside = target.closest(\"[data-radix-menu-content]\") === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n const content = contentRef.current;\n if (event.target !== content) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n const items = getItems().filter((item) => !item.disabled);\n const candidateNodes = items.map((item) => item.ref.current);\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes);\n }),\n onBlur: composeEventHandlers(props.onBlur, (event) => {\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n const target = event.target;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n })\n )\n }\n )\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"MenuGroup\";\nvar MenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...groupProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", ...groupProps, ref: forwardedRef });\n }\n);\nMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"MenuLabel\";\nvar MenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...labelProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });\n }\n);\nMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"MenuItem\";\nvar ITEM_SELECT = \"menu.itemSelect\";\nvar MenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { disabled = false, onSelect, ...itemProps } = props;\n const ref = React.useRef(null);\n const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const isPointerDownRef = React.useRef(false);\n const handleSelect = () => {\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent(ITEM_SELECT, { bubbles: true, cancelable: true });\n menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n }\n };\n return /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n ...itemProps,\n ref: composedRefs,\n disabled,\n onClick: composeEventHandlers(props.onClick, handleSelect),\n onPointerDown: (event) => {\n props.onPointerDown?.(event);\n isPointerDownRef.current = true;\n },\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n if (!isPointerDownRef.current) event.currentTarget?.click();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n }\n );\n }\n);\nMenuItem.displayName = ITEM_NAME;\nvar MenuItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [isFocused, setIsFocused] = React.useState(false);\n const [textContent, setTextContent] = React.useState(\"\");\n React.useEffect(() => {\n const menuItem = ref.current;\n if (menuItem) {\n setTextContent((menuItem.textContent ?? \"\").trim());\n }\n }, [itemProps.children]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeMenu,\n disabled,\n textValue: textValue ?? textContent,\n children: /* @__PURE__ */ jsx(RovingFocusGroup.Item, { asChild: true, ...rovingFocusGroupScope, focusable: !disabled, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...itemProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus({ preventScroll: true });\n }\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => contentContext.onItemLeave(event))\n ),\n onFocus: composeEventHandlers(props.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(props.onBlur, () => setIsFocused(false))\n }\n ) })\n }\n );\n }\n);\nvar CHECKBOX_ITEM_NAME = \"MenuCheckboxItem\";\nvar MenuCheckboxItem = React.forwardRef(\n (props, forwardedRef) => {\n const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemcheckbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n checkboxItemProps.onSelect,\n () => onCheckedChange?.(isIndeterminate(checked) ? true : !checked),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n RADIO_GROUP_NAME,\n { value: void 0, onValueChange: () => {\n } }\n);\nvar MenuRadioGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { value, onValueChange, ...groupProps } = props;\n const handleValueChange = useCallbackRef(onValueChange);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { scope: props.__scopeMenu, value, onValueChange: handleValueChange, children: /* @__PURE__ */ jsx(MenuGroup, { ...groupProps, ref: forwardedRef }) });\n }\n);\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"MenuRadioItem\";\nvar MenuRadioItem = React.forwardRef(\n (props, forwardedRef) => {\n const { value, ...radioItemProps } = props;\n const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n const checked = value === context.value;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemradio\",\n \"aria-checked\": checked,\n ...radioItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n radioItemProps.onSelect,\n () => context.onValueChange?.(value),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(\n ITEM_INDICATOR_NAME,\n { checked: false }\n);\nvar MenuItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...itemIndicatorProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(indicatorContext.checked)\n }\n )\n }\n );\n }\n);\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SEPARATOR_NAME = \"MenuSeparator\";\nvar MenuSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"separator\",\n \"aria-orientation\": \"horizontal\",\n ...separatorProps,\n ref: forwardedRef\n }\n );\n }\n);\nMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"MenuArrow\";\nvar MenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nMenuArrow.displayName = ARROW_NAME;\nvar SUB_NAME = \"MenuSub\";\nvar [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\nvar MenuSub = (props) => {\n const { __scopeMenu, children, open = false, onOpenChange } = props;\n const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const [trigger, setTrigger] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const handleOpenChange = useCallbackRef(onOpenChange);\n React.useEffect(() => {\n if (parentMenuContext.open === false) handleOpenChange(false);\n return () => handleOpenChange(false);\n }, [parentMenuContext.open, handleOpenChange]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuSubProvider,\n {\n scope: __scopeMenu,\n contentId: useId(),\n triggerId: useId(),\n trigger,\n onTriggerChange: setTrigger,\n children\n }\n )\n }\n ) });\n};\nMenuSub.displayName = SUB_NAME;\nvar SUB_TRIGGER_NAME = \"MenuSubTrigger\";\nvar MenuSubTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const openTimerRef = React.useRef(null);\n const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n const scope = { __scopeMenu: props.__scopeMenu };\n const clearOpenTimer = React.useCallback(() => {\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }, []);\n React.useEffect(() => clearOpenTimer, [clearOpenTimer]);\n React.useEffect(() => {\n const pointerGraceTimer = pointerGraceTimerRef.current;\n return () => {\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n };\n }, [pointerGraceTimerRef, onPointerGraceIntentChange]);\n return /* @__PURE__ */ jsx(MenuAnchor, { asChild: true, ...scope, children: /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n id: subContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": subContext.contentId,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: composeRefs(forwardedRef, subContext.onTriggerChange),\n onClick: (event) => {\n props.onClick?.(event);\n if (props.disabled || event.defaultPrevented) return;\n event.currentTarget.focus();\n if (!context.open) context.onOpenChange(true);\n },\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(() => {\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => {\n clearOpenTimer();\n const contentRect = context.content?.getBoundingClientRect();\n if (contentRect) {\n const side = context.content?.dataset.side;\n const rightSide = side === \"right\";\n const bleed = rightSide ? -5 : 5;\n const contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"];\n const contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"];\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n { x: event.clientX + bleed, y: event.clientY },\n { x: contentNearEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.bottom },\n { x: contentNearEdge, y: contentRect.bottom }\n ],\n side\n });\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(\n () => contentContext.onPointerGraceIntentChange(null),\n 300\n );\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n contentContext.onPointerGraceIntentChange(null);\n }\n })\n ),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (props.disabled || isTypingAhead && event.key === \" \") return;\n if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {\n context.onOpenChange(true);\n context.content?.focus();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"MenuSubContent\";\nvar MenuSubContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...subContentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n id: subContext.contentId,\n \"aria-labelledby\": subContext.triggerId,\n ...subContentProps,\n ref: composedRefs,\n align: \"start\",\n side: rootContext.dir === \"rtl\" ? \"left\" : \"right\",\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n trapFocus: false,\n onOpenAutoFocus: (event) => {\n if (rootContext.isUsingKeyboardRef.current) ref.current?.focus();\n event.preventDefault();\n },\n onCloseAutoFocus: (event) => event.preventDefault(),\n onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => {\n if (event.target !== subContext.trigger) context.onOpenChange(false);\n }),\n onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, (event) => {\n rootContext.onClose();\n event.preventDefault();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isKeyDownInside = event.currentTarget.contains(event.target);\n const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n context.onOpenChange(false);\n subContext.trigger?.focus();\n event.preventDefault();\n }\n })\n }\n ) }) }) });\n }\n);\nMenuSubContent.displayName = SUB_CONTENT_NAME;\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nfunction focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nfunction getNextMatch(values, search, currentMatch) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n const nextMatch = wrappedValues.find(\n (value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x;\n const yi = polygon[i].y;\n const xj = polygon[j].x;\n const yj = polygon[j].y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n const cursorPos = { x: event.clientX, y: event.clientY };\n return isPointInPolygon(cursorPos, area);\n}\nfunction whenMouse(handler) {\n return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\nvar Root3 = Menu;\nvar Anchor2 = MenuAnchor;\nvar Portal = MenuPortal;\nvar Content2 = MenuContent;\nvar Group = MenuGroup;\nvar Label = MenuLabel;\nvar Item2 = MenuItem;\nvar CheckboxItem = MenuCheckboxItem;\nvar RadioGroup = MenuRadioGroup;\nvar RadioItem = MenuRadioItem;\nvar ItemIndicator = MenuItemIndicator;\nvar Separator = MenuSeparator;\nvar Arrow2 = MenuArrow;\nvar Sub = MenuSub;\nvar SubTrigger = MenuSubTrigger;\nvar SubContent = MenuSubContent;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n CheckboxItem,\n Content2 as Content,\n Group,\n Item2 as Item,\n ItemIndicator,\n Label,\n Menu,\n MenuAnchor,\n MenuArrow,\n MenuCheckboxItem,\n MenuContent,\n MenuGroup,\n MenuItem,\n MenuItemIndicator,\n MenuLabel,\n MenuPortal,\n MenuRadioGroup,\n MenuRadioItem,\n MenuSeparator,\n MenuSub,\n MenuSubContent,\n MenuSubTrigger,\n Portal,\n RadioGroup,\n RadioItem,\n Root3 as Root,\n Separator,\n Sub,\n SubContent,\n SubTrigger,\n createMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/dropdown-menu/src/DropdownMenu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as MenuPrimitive from \"@radix-ui/react-menu\";\nimport { createMenuScope } from \"@radix-ui/react-menu\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DROPDOWN_MENU_NAME = \"DropdownMenu\";\nvar [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(\n DROPDOWN_MENU_NAME,\n [createMenuScope]\n);\nvar useMenuScope = createMenuScope();\nvar [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);\nvar DropdownMenu = (props) => {\n const {\n __scopeDropdownMenu,\n children,\n dir,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const triggerRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(\n DropdownMenuProvider,\n {\n scope: __scopeDropdownMenu,\n triggerId: useId(),\n triggerRef,\n contentId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children: /* @__PURE__ */ jsx(MenuPrimitive.Root, { ...menuScope, open, onOpenChange: setOpen, dir, modal, children })\n }\n );\n};\nDropdownMenu.displayName = DROPDOWN_MENU_NAME;\nvar TRIGGER_NAME = \"DropdownMenuTrigger\";\nvar DropdownMenuTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Anchor, { asChild: true, ...menuScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n id: context.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"data-state\": context.open ? \"open\" : \"closed\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n ...triggerProps,\n ref: composeRefs(forwardedRef, context.triggerRef),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onOpenToggle();\n if (!context.open) event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (disabled) return;\n if ([\"Enter\", \" \"].includes(event.key)) context.onOpenToggle();\n if (event.key === \"ArrowDown\") context.onOpenChange(true);\n if ([\"Enter\", \" \", \"ArrowDown\"].includes(event.key)) event.preventDefault();\n })\n }\n ) });\n }\n);\nDropdownMenuTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DropdownMenuPortal\";\nvar DropdownMenuPortal = (props) => {\n const { __scopeDropdownMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Portal, { ...menuScope, ...portalProps });\n};\nDropdownMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"DropdownMenuContent\";\nvar DropdownMenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...contentProps } = props;\n const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.Content,\n {\n id: context.contentId,\n \"aria-labelledby\": context.triggerId,\n ...menuScope,\n ...contentProps,\n ref: forwardedRef,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n hasInteractedOutsideRef.current = false;\n event.preventDefault();\n }),\n onInteractOutside: composeEventHandlers(props.onInteractOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (!context.modal || isRightClick) hasInteractedOutsideRef.current = true;\n }),\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n }\n);\nDropdownMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"DropdownMenuGroup\";\nvar DropdownMenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Group, { ...menuScope, ...groupProps, ref: forwardedRef });\n }\n);\nDropdownMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"DropdownMenuLabel\";\nvar DropdownMenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Label, { ...menuScope, ...labelProps, ref: forwardedRef });\n }\n);\nDropdownMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"DropdownMenuItem\";\nvar DropdownMenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Item, { ...menuScope, ...itemProps, ref: forwardedRef });\n }\n);\nDropdownMenuItem.displayName = ITEM_NAME;\nvar CHECKBOX_ITEM_NAME = \"DropdownMenuCheckboxItem\";\nvar DropdownMenuCheckboxItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.CheckboxItem, { ...menuScope, ...checkboxItemProps, ref: forwardedRef });\n});\nDropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"DropdownMenuRadioGroup\";\nvar DropdownMenuRadioGroup = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioGroup, { ...menuScope, ...radioGroupProps, ref: forwardedRef });\n});\nDropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"DropdownMenuRadioItem\";\nvar DropdownMenuRadioItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioItem, { ...menuScope, ...radioItemProps, ref: forwardedRef });\n});\nDropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar INDICATOR_NAME = \"DropdownMenuItemIndicator\";\nvar DropdownMenuItemIndicator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.ItemIndicator, { ...menuScope, ...itemIndicatorProps, ref: forwardedRef });\n});\nDropdownMenuItemIndicator.displayName = INDICATOR_NAME;\nvar SEPARATOR_NAME = \"DropdownMenuSeparator\";\nvar DropdownMenuSeparator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Separator, { ...menuScope, ...separatorProps, ref: forwardedRef });\n});\nDropdownMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"DropdownMenuArrow\";\nvar DropdownMenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Arrow, { ...menuScope, ...arrowProps, ref: forwardedRef });\n }\n);\nDropdownMenuArrow.displayName = ARROW_NAME;\nvar DropdownMenuSub = (props) => {\n const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(MenuPrimitive.Sub, { ...menuScope, open, onOpenChange: setOpen, children });\n};\nvar SUB_TRIGGER_NAME = \"DropdownMenuSubTrigger\";\nvar DropdownMenuSubTrigger = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subTriggerProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.SubTrigger, { ...menuScope, ...subTriggerProps, ref: forwardedRef });\n});\nDropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"DropdownMenuSubContent\";\nvar DropdownMenuSubContent = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.SubContent,\n {\n ...menuScope,\n ...subContentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nDropdownMenuSubContent.displayName = SUB_CONTENT_NAME;\nvar Root2 = DropdownMenu;\nvar Trigger = DropdownMenuTrigger;\nvar Portal2 = DropdownMenuPortal;\nvar Content2 = DropdownMenuContent;\nvar Group2 = DropdownMenuGroup;\nvar Label2 = DropdownMenuLabel;\nvar Item2 = DropdownMenuItem;\nvar CheckboxItem2 = DropdownMenuCheckboxItem;\nvar RadioGroup2 = DropdownMenuRadioGroup;\nvar RadioItem2 = DropdownMenuRadioItem;\nvar ItemIndicator2 = DropdownMenuItemIndicator;\nvar Separator2 = DropdownMenuSeparator;\nvar Arrow2 = DropdownMenuArrow;\nvar Sub2 = DropdownMenuSub;\nvar SubTrigger2 = DropdownMenuSubTrigger;\nvar SubContent2 = DropdownMenuSubContent;\nexport {\n Arrow2 as Arrow,\n CheckboxItem2 as CheckboxItem,\n Content2 as Content,\n DropdownMenu,\n DropdownMenuArrow,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuItemIndicator,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n Group2 as Group,\n Item2 as Item,\n ItemIndicator2 as ItemIndicator,\n Label2 as Label,\n Portal2 as Portal,\n RadioGroup2 as RadioGroup,\n RadioItem2 as RadioItem,\n Root2 as Root,\n Separator2 as Separator,\n Sub2 as Sub,\n SubContent2 as SubContent,\n SubTrigger2 as SubTrigger,\n Trigger,\n createDropdownMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { jsx as o } from \"react/jsx-runtime\";\nimport { Root as e, Trigger as p, Portal as d, Content as m, Label as u, Item as c } from \"@radix-ui/react-dropdown-menu\";\nimport { forwardRef as f } from \"react\";\nconst M = e, a = p, g = f(function({ children: n, ...r }, t) {\n return /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o(m, { ...r, ref: t, children: n }) });\n}), l = u, C = c;\nexport {\n M as DropdownMenu,\n g as DropdownMenuContent,\n C as DropdownMenuItem,\n l as DropdownMenuLabel,\n a as DropdownMenuTrigger\n};\n//# sourceMappingURL=dropdown-menu.js.map\n","import { jsxs as t, jsx as e } from \"react/jsx-runtime\";\nimport { twMerge as u } from \"tailwind-merge\";\nimport { DropdownMenu as f, DropdownMenuTrigger as h, DropdownMenuContent as x, DropdownMenuItem as w } from \"../../../powerhouse/components/dropdown-menu/dropdown-menu.js\";\nfunction b(r) {\n const { children: l, items: s, open: p, onItemClick: i, onOpenChange: a } = r;\n return /* @__PURE__ */ t(f, { onOpenChange: a, open: p, children: [\n /* @__PURE__ */ e(h, { asChild: !0, className: \"outline-none\", children: l }),\n /* @__PURE__ */ e(x, { className: \"modal-shadow cursor-pointer rounded-2xl bg-white text-sm font-medium text-slate-200\", children: s.map(({ id: n, label: m, icon: o, className: d }) => /* @__PURE__ */ t(\n w,\n {\n className: u(\n \"flex items-center px-5 py-2 outline-none first-of-type:rounded-t-2xl first-of-type:pt-3 last-of-type:rounded-b-2xl last-of-type:pb-3 hover:bg-slate-50\",\n d\n ),\n onClick: (c) => c.stopPropagation(),\n onSelect: () => i(n),\n children: [\n o ? /* @__PURE__ */ e(\"span\", { className: \"mr-2 inline-block\", children: o }) : null,\n m\n ]\n },\n n\n )) })\n ] });\n}\nexport {\n b as ConnectDropdownMenu\n};\n//# sourceMappingURL=dropdown-menu.js.map\n","const A = \"data:image/png;base64,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\";\nexport {\n A as default\n};\n//# sourceMappingURL=powerhouse-rounded.png.js.map\n","/**\n * Retrieves and returns an action from the client (if exists), and falls\n * back to the tree-shakable action.\n *\n * Useful for extracting overridden actions from a client (ie. if a consumer\n * wants to override the `sendTransaction` implementation).\n */\nexport function getAction(client, actionFn, \n// Some minifiers drop `Function.prototype.name`, or replace it with short letters,\n// meaning that `actionFn.name` will not always work. For that case, the consumer\n// needs to pass the name explicitly.\nname) {\n const action_implicit = client[actionFn.name];\n if (typeof action_implicit === 'function')\n return action_implicit;\n const action_explicit = client[name];\n if (typeof action_explicit === 'function')\n return action_explicit;\n return (params) => actionFn(client, params);\n}\n//# sourceMappingURL=getAction.js.map","/** https://wagmi.sh/core/api/actions/getChainId */\nexport function getChainId(config) {\n return config.state.chainId;\n}\n//# sourceMappingURL=getChainId.js.map","import { getEnsAvatar as viem_getEnsAvatar, } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\n/** https://wagmi.sh/core/api/actions/getEnsAvatar */\nexport function getEnsAvatar(config, parameters) {\n const { chainId, ...rest } = parameters;\n const client = config.getClient({ chainId });\n const action = getAction(client, viem_getEnsAvatar, 'getEnsAvatar');\n return action(rest);\n}\n//# sourceMappingURL=getEnsAvatar.js.map","import { getEnsName as viem_getEnsName, } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\n/** https://wagmi.sh/core/api/actions/getEnsName */\nexport function getEnsName(config, parameters) {\n const { chainId, ...rest } = parameters;\n const client = config.getClient({ chainId });\n const action = getAction(client, viem_getEnsName, 'getEnsName');\n return action(rest);\n}\n//# sourceMappingURL=getEnsName.js.map","/** https://wagmi.sh/core/api/actions/watchChainId */\nexport function watchChainId(config, parameters) {\n const { onChange } = parameters;\n return config.subscribe((state) => state.chainId, onChange);\n}\n//# sourceMappingURL=watchChainId.js.map","export const version = '2.14.9';\n//# sourceMappingURL=version.js.map","import { version } from '../version.js';\nexport const getVersion = () => `wagmi@${version}`;\n//# sourceMappingURL=getVersion.js.map","import { BaseError as CoreError } from '@wagmi/core';\nimport { getVersion } from '../utils/getVersion.js';\nexport class BaseError extends CoreError {\n constructor() {\n super(...arguments);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'WagmiError'\n });\n }\n get docsBaseUrl() {\n return 'https://wagmi.sh/react';\n }\n get version() {\n return getVersion();\n }\n}\n//# sourceMappingURL=base.js.map","import { BaseError } from './base.js';\nexport class WagmiProviderNotFoundError extends BaseError {\n constructor() {\n super('`useConfig` must be used within `WagmiProvider`.', {\n docsPath: '/api/WagmiProvider',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'WagmiProviderNotFoundError'\n });\n }\n}\n//# sourceMappingURL=context.js.map","'use client';\nimport { useContext } from 'react';\nimport { WagmiContext } from '../context.js';\nimport { WagmiProviderNotFoundError } from '../errors/context.js';\n/** https://wagmi.sh/react/api/hooks/useConfig */\nexport function useConfig(parameters = {}) {\n const config = parameters.config ?? useContext(WagmiContext);\n if (!config)\n throw new WagmiProviderNotFoundError();\n return config;\n}\n//# sourceMappingURL=useConfig.js.map","// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n if (!this.options.experimental_prefetchInRender) {\n this.#currentThenable.reject(\n new Error(\"experimental_prefetchInRender feature flag is not enabled\")\n );\n }\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options, notifyOptions) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveEnabled(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult(notifyOptions);\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n const trackedResult = {};\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackProp(key);\n onPropTracked?.(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (isServer || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n if (options.select && newState.data !== void 0) {\n if (prevResult && newState.data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(newState.data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n } else {\n data = newState.data;\n }\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n if (options.select && placeholderData !== void 0) {\n try {\n placeholderData = options.select(placeholderData);\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const finalizeThenableIfPossible = (thenable) => {\n if (nextResult.status === \"error\") {\n thenable.reject(nextResult.error);\n } else if (nextResult.data !== void 0) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (nextResult.status === \"error\" || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (nextResult.status !== \"error\" || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult(notifyOptions) {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const defaultNotifyOptions = {};\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true;\n }\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && options.retryOnMount === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveEnabled(options.enabled, query) !== false) {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveEnabled(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","import { replaceEqualDeep } from '@tanstack/query-core';\nexport function structuralSharing(oldData, newData) {\n return replaceEqualDeep(oldData, newData);\n}\nexport function hashFn(queryKey) {\n return JSON.stringify(queryKey, (_, value) => {\n if (isPlainObject(value))\n return Object.keys(value)\n .sort()\n .reduce((result, key) => {\n result[key] = value[key];\n return result;\n }, {});\n if (typeof value === 'bigint')\n return value.toString();\n return value;\n });\n}\n// biome-ignore lint/complexity/noBannedTypes:\nfunction isPlainObject(value) {\n if (!hasObjectPrototype(value)) {\n return false;\n }\n // If has modified constructor\n const ctor = value.constructor;\n if (typeof ctor === 'undefined')\n return true;\n // If has modified prototype\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot))\n return false;\n // If constructor does not have an Object-specific method\n // biome-ignore lint/suspicious/noPrototypeBuiltins: <explanation>\n if (!prot.hasOwnProperty('isPrototypeOf'))\n return false;\n // Most likely a plain Object\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\nexport function filterQueryOptions(options) {\n // destructuring is super fast\n // biome-ignore format: no formatting\n const { \n // import('@tanstack/query-core').QueryOptions\n _defaulted, behavior, gcTime, initialData, initialDataUpdatedAt, maxPages, meta, networkMode, queryFn, queryHash, queryKey, queryKeyHashFn, retry, retryDelay, structuralSharing, \n // import('@tanstack/query-core').InfiniteQueryObserverOptions\n getPreviousPageParam, getNextPageParam, initialPageParam, \n // import('@tanstack/react-query').UseQueryOptions\n _optimisticResults, enabled, notifyOnChangeProps, placeholderData, refetchInterval, refetchIntervalInBackground, refetchOnMount, refetchOnReconnect, refetchOnWindowFocus, retryOnMount, select, staleTime, suspense, throwOnError, \n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n // wagmi\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n config, connector, query, ...rest } = options;\n return rest;\n}\n//# sourceMappingURL=utils.js.map","import { getEnsAvatar, } from '../actions/getEnsAvatar.js';\nimport { filterQueryOptions } from './utils.js';\nexport function getEnsAvatarQueryOptions(config, options = {}) {\n return {\n async queryFn({ queryKey }) {\n const { name, scopeKey: _, ...parameters } = queryKey[1];\n if (!name)\n throw new Error('name is required');\n return getEnsAvatar(config, { ...parameters, name });\n },\n queryKey: getEnsAvatarQueryKey(options),\n };\n}\nexport function getEnsAvatarQueryKey(options = {}) {\n return ['ensAvatar', filterQueryOptions(options)];\n}\n//# sourceMappingURL=getEnsAvatar.js.map","import { getEnsName, } from '../actions/getEnsName.js';\nimport { filterQueryOptions } from './utils.js';\nexport function getEnsNameQueryOptions(config, options = {}) {\n return {\n async queryFn({ queryKey }) {\n const { address, scopeKey: _, ...parameters } = queryKey[1];\n if (!address)\n throw new Error('address is required');\n return getEnsName(config, { ...parameters, address });\n },\n queryKey: getEnsNameQueryKey(options),\n };\n}\nexport function getEnsNameQueryKey(options = {}) {\n return ['ensName', filterQueryOptions(options)];\n}\n//# sourceMappingURL=getEnsName.js.map","\"use client\";\n\n// src/isRestoring.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=isRestoring.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","// src/utils.ts\nfunction shouldThrowError(throwError, params) {\n if (typeof throwError === \"function\") {\n return throwError(...params);\n }\n return !!throwError;\n}\nfunction noop() {\n}\nexport {\n noop,\n shouldThrowError\n};\n//# sourceMappingURL=utils.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"./utils.js\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary) => {\n if (options.suspense || options.throwOnError || options.experimental_prefetchInRender) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query,\n suspense\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && (suspense && result.data === void 0 || shouldThrowError(throwOnError, [result.error, query]));\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n const originalStaleTime = defaultedOptions.staleTime;\n if (defaultedOptions.suspense) {\n defaultedOptions.staleTime = typeof originalStaleTime === \"function\" ? (...args) => Math.max(originalStaleTime(...args), 1e3) : Math.max(originalStaleTime ?? 1e3, 1e3);\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(defaultedOptions.gcTime, 1e3);\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { isServer, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { useIsRestoring } from \"./isRestoring.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nimport { noop } from \"./utils.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;\n observer.updateResult();\n return unsubscribe;\n },\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions, { listeners: false });\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query: client.getQueryCache().get(defaultedOptions.queryHash),\n suspense: defaultedOptions.suspense\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !isServer && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n client.getQueryCache().get(defaultedOptions.queryHash)?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","import { useInfiniteQuery as tanstack_useInfiniteQuery, useQuery as tanstack_useQuery, useMutation, } from '@tanstack/react-query';\nimport { hashFn } from '@wagmi/core/query';\nexport { useMutation };\n// Adding some basic customization.\n// Ideally we don't have this function, but `import('@tanstack/react-query').useQuery` currently has some quirks where it is super hard to\n// pass down the inferred `initialData` type because of it's discriminated overload in the on `useQuery`.\nexport function useQuery(parameters) {\n const result = tanstack_useQuery({\n ...parameters,\n queryKeyHashFn: hashFn, // for bigint support\n });\n result.queryKey = parameters.queryKey;\n return result;\n}\n// Adding some basic customization.\nexport function useInfiniteQuery(parameters) {\n const result = tanstack_useInfiniteQuery({\n ...parameters,\n queryKeyHashFn: hashFn, // for bigint support\n });\n result.queryKey = parameters.queryKey;\n return result;\n}\n//# sourceMappingURL=query.js.map","'use client';\nimport { getChainId, watchChainId, } from '@wagmi/core';\nimport { useSyncExternalStore } from 'react';\nimport { useConfig } from './useConfig.js';\n/** https://wagmi.sh/react/api/hooks/useChainId */\nexport function useChainId(parameters = {}) {\n const config = useConfig(parameters);\n return useSyncExternalStore((onChange) => watchChainId(config, { onChange }), () => getChainId(config), () => getChainId(config));\n}\n//# sourceMappingURL=useChainId.js.map","'use client';\nimport { getEnsAvatarQueryOptions, } from '@wagmi/core/query';\nimport { useQuery } from '../utils/query.js';\nimport { useChainId } from './useChainId.js';\nimport { useConfig } from './useConfig.js';\n/** https://wagmi.sh/react/api/hooks/useEnsAvatar */\nexport function useEnsAvatar(parameters = {}) {\n const { name, query = {} } = parameters;\n const config = useConfig(parameters);\n const chainId = useChainId({ config });\n const options = getEnsAvatarQueryOptions(config, {\n ...parameters,\n chainId: parameters.chainId ?? chainId,\n });\n const enabled = Boolean(name && (query.enabled ?? true));\n return useQuery({ ...query, ...options, enabled });\n}\n//# sourceMappingURL=useEnsAvatar.js.map","'use client';\nimport { getEnsNameQueryOptions, } from '@wagmi/core/query';\nimport { useQuery } from '../utils/query.js';\nimport { useChainId } from './useChainId.js';\nimport { useConfig } from './useConfig.js';\n/** https://wagmi.sh/react/api/hooks/useEnsName */\nexport function useEnsName(parameters = {}) {\n const { address, query = {} } = parameters;\n const config = useConfig(parameters);\n const chainId = useChainId({ config });\n const options = getEnsNameQueryOptions(config, {\n ...parameters,\n chainId: parameters.chainId ?? chainId,\n });\n const enabled = Boolean(address && (query.enabled ?? true));\n return useQuery({ ...query, ...options, enabled });\n}\n//# sourceMappingURL=useEnsName.js.map","import { jsx as t } from \"react/jsx-runtime\";\nimport c from \"../../../assets/powerhouse-rounded.png.js\";\nimport { useEnsName as l, useEnsAvatar as m } from \"wagmi\";\nfunction N(o) {\n const { address: r, chainId: i = 1, size: a = \"14px\" } = o, e = {\n width: a,\n height: a\n }, n = l({ address: r, chainId: i }), d = n.data ?? void 0, s = m({ name: d }), u = s.data ?? c;\n return n.isLoading || s.isLoading ? /* @__PURE__ */ t(\n \"div\",\n {\n className: \"flex-none animate-pulse rounded-full bg-gray-400 fade-out\",\n style: e\n }\n ) : /* @__PURE__ */ t(\n \"img\",\n {\n alt: \"ENS Avatar\",\n className: \"flex-none rounded-full object-contain\",\n src: u,\n style: e\n }\n );\n}\nexport {\n N as ENSAvatar\n};\n//# sourceMappingURL=ens-avatar.js.map\n","function e(t) {\n return `${t.slice(0, 7)}...${t.slice(-5)}`;\n}\nexport {\n e as formatEthAddress\n};\n//# sourceMappingURL=address.js.map\n","import { FILE, TUiNodesContext } from '@powerhousedao/design-system';\nimport { Document, Operation } from 'document-model/document';\nimport { atom, useAtom } from 'jotai';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { IReadModeContext } from 'src/context/read-mode';\nimport { documentToHash } from 'src/hooks/useDocumentDrives';\nimport { TDocumentDriveServer } from 'src/hooks/useDocumentDriveServer';\nimport { logger } from 'src/services/logger';\n\nfunction debounceOperations(\n callback: (operations: Operation[]) => Promise<Document | undefined>,\n timeout = 50,\n) {\n let timer: number;\n const operations: Operation[] = [];\n return (operation: Operation) => {\n if (timer) {\n clearTimeout(timer);\n }\n const index = operations.findIndex(\n op => op.scope === operation.scope && op.index === operation.index,\n );\n if (index > -1) {\n const oldOperation = operations[index];\n if (\n !(\n oldOperation.type === operation.type &&\n JSON.stringify(operation.input) ===\n JSON.stringify(oldOperation.input)\n )\n ) {\n console.warn(\n 'Two conflicting operations were dispatched:',\n oldOperation,\n operation,\n );\n }\n operations[index] = operation;\n } else {\n operations.push(operation);\n }\n return new Promise<Document | undefined>((resolve, reject) => {\n timer = setTimeout(() => {\n callback(operations).then(resolve).catch(reject);\n }, timeout) as unknown as number;\n });\n };\n}\n\ntype FileNodeDocument =\n | {\n driveId: string;\n documentId: string;\n documentType: string;\n document: Document | undefined;\n status: 'LOADING' | 'ERROR';\n }\n | {\n driveId: string;\n documentId: string;\n documentType: string;\n document: Document;\n status: 'LOADED';\n }\n | undefined;\n\nconst documentCacheAtom = atom(new Map<string, Document>());\n\nconst singletonFileNodeDocumentAtom = atom<FileNodeDocument>(undefined);\nconst fileNodeDocumentAtom = atom(\n get => get(singletonFileNodeDocumentAtom),\n (get, set, newValue: FileNodeDocument) => {\n const currentValue = get(singletonFileNodeDocumentAtom);\n\n // if document will be loaded then sets\n // the cached version while it loads\n const documentCache = get(documentCacheAtom);\n if (!newValue?.document && newValue?.status === 'LOADING') {\n newValue.document = documentCache.get(\n `${newValue.driveId}:${newValue.documentId}`,\n );\n }\n\n // only change if the provided file node is different\n if (\n currentValue?.driveId !== newValue?.driveId ||\n currentValue?.documentId !== newValue?.documentId ||\n currentValue?.documentType !== newValue?.documentType ||\n currentValue?.status !== newValue?.status ||\n !!currentValue?.document !== !!newValue?.document ||\n (currentValue?.document &&\n newValue?.document &&\n documentToHash(currentValue.document) !==\n documentToHash(newValue.document))\n ) {\n // if document has been fetched then updates the cache\n if (newValue?.status === 'LOADED') {\n documentCache.set(\n `${newValue.driveId}:${newValue.documentId}`,\n newValue.document,\n );\n }\n\n set(singletonFileNodeDocumentAtom, newValue);\n return true;\n }\n\n return false;\n },\n);\n\nconst selectedDocumentAtom = atom(\n get => get(fileNodeDocumentAtom)?.document,\n (get, set, document: Document | undefined) => {\n const fileNodeDocument = get(fileNodeDocumentAtom);\n if (!fileNodeDocument) {\n throw new Error('fileNodeDocument is undefined');\n } else if (!document) {\n set(fileNodeDocumentAtom, undefined);\n } else {\n set(fileNodeDocumentAtom, { ...fileNodeDocument, document });\n }\n },\n);\n\nexport function useFileNodeDocument(\n props: TUiNodesContext & TDocumentDriveServer & IReadModeContext,\n) {\n const {\n selectedNode,\n selectedDriveNode,\n openFile,\n addOperations,\n onStrandUpdate,\n fetchDocument: fetchReadDocument,\n } = props;\n const [fileNodeDocument, setFileNodeDocument] =\n useAtom(fileNodeDocumentAtom);\n const isReadMode =\n selectedDriveNode?.sharingType !== 'LOCAL' &&\n selectedDriveNode?.syncStatus === undefined;\n const driveId = selectedNode?.driveId;\n const documentId = selectedNode?.id;\n const kind = selectedNode?.kind;\n const documentType =\n kind === 'FILE' ? selectedNode?.documentType : undefined;\n\n const [selectedDocument, setSelectedDocument] =\n useAtom(selectedDocumentAtom);\n\n const fetchDocument = useCallback(\n async (driveId: string, id: string, documentType: string) => {\n const document = await (isReadMode\n ? fetchReadDocument(driveId, id, documentType)\n : openFile(driveId, id));\n if (document instanceof Error) {\n throw document;\n }\n return document;\n },\n [fetchReadDocument, isReadMode, openFile],\n );\n\n useEffect(() => {\n // if selected node is undefine then clears fileNodeDocument\n if (!driveId || !documentId || !documentType) {\n if (fileNodeDocument) {\n setFileNodeDocument(undefined);\n }\n return;\n }\n\n // if selectedNode changes then fetches fileNodeDocument\n if (\n driveId !== fileNodeDocument?.driveId ||\n documentId !== fileNodeDocument.documentId ||\n documentType !== fileNodeDocument.documentType\n ) {\n const changed = setFileNodeDocument({\n driveId,\n documentId,\n documentType,\n document: undefined,\n status: 'LOADING',\n });\n\n // if the selected file node changed then fetches the new document\n if (changed) {\n fetchDocument(driveId, documentId, documentType)\n .then(document =>\n setFileNodeDocument(\n document\n ? {\n driveId,\n documentId,\n documentType,\n document,\n status: 'LOADED',\n }\n : {\n driveId,\n documentId,\n documentType,\n document,\n status: 'ERROR',\n },\n ),\n )\n .catch(error => {\n logger.error(error);\n setFileNodeDocument({\n driveId,\n documentId,\n documentType,\n document: undefined,\n status: 'ERROR',\n });\n });\n }\n }\n }, [\n selectedNode,\n documentId,\n documentType,\n driveId,\n fetchDocument,\n fileNodeDocument,\n setFileNodeDocument,\n ]);\n\n useEffect(() => {\n if (\n !fileNodeDocument?.driveId ||\n !fileNodeDocument.documentId ||\n !fileNodeDocument.documentType\n ) {\n return;\n }\n\n // watches for strand updates to update the document\n const removeListener = onStrandUpdate(strand => {\n if (\n strand.driveId === fileNodeDocument.driveId &&\n strand.documentId === fileNodeDocument.documentId\n ) {\n fetchDocument(\n fileNodeDocument.driveId,\n fileNodeDocument.documentId,\n fileNodeDocument.documentType,\n )\n .then(setSelectedDocument)\n .catch(logger.error);\n }\n });\n\n return removeListener;\n }, [\n fileNodeDocument?.driveId,\n fileNodeDocument?.documentId,\n fileNodeDocument?.documentType,\n onStrandUpdate,\n fetchDocument,\n setSelectedDocument,\n ]);\n\n const addOperationToSelectedDocument = useMemo(() => {\n if (driveId && documentId && kind === FILE) {\n return debounceOperations(operations =>\n addOperations(driveId, documentId, operations),\n );\n }\n }, [addOperations, driveId, documentId, kind]);\n\n const isSelectedDocument =\n kind === FILE &&\n fileNodeDocument?.driveId === driveId &&\n fileNodeDocument?.documentId === documentId;\n\n return useMemo(\n () => ({\n fileNodeDocument,\n selectedDocument: isSelectedDocument ? selectedDocument : undefined,\n setSelectedDocument,\n addOperationToSelectedDocument,\n }),\n [\n fileNodeDocument,\n isSelectedDocument,\n selectedDocument,\n setSelectedDocument,\n addOperationToSelectedDocument,\n ],\n );\n}\n","import {\n CLOUD,\n debugNodeOptions,\n defaultDriveOptions,\n defaultFileOptions,\n defaultFolderOptions,\n DELETE,\n DRIVE,\n FILE,\n FOLDER,\n LOCAL,\n PUBLIC,\n SharingType,\n} from '@powerhousedao/design-system';\nimport connectConfig from 'connect-config';\nimport { ReactNode } from 'react';\n\n// Enables debug options for the drive\nconst connectDebug = localStorage.getItem('CONNECT_DEBUG') === 'true';\n\nconst DriveSections: {\n sharingType: SharingType;\n label: ReactNode;\n}[] = [\n { sharingType: PUBLIC, label: 'Public Drives' },\n { sharingType: CLOUD, label: 'Secure Cloud Drives' },\n { sharingType: LOCAL, label: 'My Local Drives' },\n] as const;\n\nconst getSectionConfig = (sharingType: SharingType) => {\n return connectConfig.drives.sections[sharingType];\n};\n\nexport function getDriveNodeOptions(sharingType: SharingType) {\n const options = [...defaultDriveOptions];\n\n if (connectConfig.drives.sections[sharingType].allowDelete) {\n options.push(DELETE);\n }\n\n if (connectDebug) {\n options.push(...debugNodeOptions);\n }\n\n return options;\n}\n\nexport function getFileNodeOptions() {\n const options = [...defaultFileOptions];\n\n if (connectDebug) {\n options.push(...debugNodeOptions);\n }\n\n return options;\n}\n\nexport function getFolderNodeOptions() {\n const options = [...defaultFolderOptions];\n\n if (connectDebug) {\n options.push(...debugNodeOptions);\n }\n\n return options;\n}\n\nexport function getNodeOptions() {\n return {\n [LOCAL]: {\n [DRIVE]: getDriveNodeOptions(LOCAL),\n [FOLDER]: getFolderNodeOptions(),\n [FILE]: getFileNodeOptions(),\n },\n [CLOUD]: {\n [DRIVE]: getDriveNodeOptions(CLOUD),\n [FOLDER]: getFolderNodeOptions(),\n [FILE]: getFileNodeOptions(),\n },\n [PUBLIC]: {\n [DRIVE]: getDriveNodeOptions(PUBLIC),\n [FOLDER]: getFolderNodeOptions(),\n [FILE]: getFileNodeOptions(),\n },\n } as const;\n}\n\nexport const driveSections = DriveSections.filter(\n section => getSectionConfig(section.sharingType).enabled,\n).map(section => {\n const sectionConfig = getSectionConfig(section.sharingType);\n\n return {\n ...section,\n disableAddDrives: !sectionConfig.allowAdd,\n };\n});\n","import { DocumentDriveState } from 'document-model-libs/document-drive';\nimport { useDocumentDriveServer } from './useDocumentDriveServer';\n\ntype ExtendedDocumentDriveState = DocumentDriveState & { remoteUrl?: string };\n\nexport function useDocumentDriveById(driveId: string | undefined) {\n const { documentDrives } = useDocumentDriveServer();\n\n if (!driveId)\n return {\n drive: null,\n remoteUrl: null,\n isRemoteDrive: false,\n };\n\n const drive = documentDrives.find(\n drive => drive.state.global.id === driveId,\n );\n\n const pullResponder = drive?.state.local.triggers.find(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n trigger => trigger.type === 'PullResponder',\n );\n\n const { remoteUrl } = (drive?.state.global ||\n {}) as ExtendedDocumentDriveState;\n\n const isRemoteDrive = !!remoteUrl || !!pullResponder;\n\n return {\n drive,\n remoteUrl: remoteUrl || pullResponder?.data?.url,\n isRemoteDrive,\n };\n}\n","// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.5\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i<alphabet.length ; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n }\n }\n return baseReverseDic[alphabet][character];\n}\n\nvar LZString = {\n compressToBase64 : function (input) {\n if (input == null) return \"\";\n var res = LZString._compress(input, 6, function(a){return keyStrBase64.charAt(a);});\n switch (res.length % 4) { // To produce valid Base64\n default: // When could this happen ?\n case 0 : return res;\n case 1 : return res+\"===\";\n case 2 : return res+\"==\";\n case 3 : return res+\"=\";\n }\n },\n\n decompressFromBase64 : function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); });\n },\n\n compressToUTF16 : function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 15, function(a){return f(a+32);}) + \" \";\n },\n\n decompressFromUTF16: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; });\n },\n\n //compress into uint8array (UCS-2 big endian format)\n compressToUint8Array: function (uncompressed) {\n var compressed = LZString.compress(uncompressed);\n var buf=new Uint8Array(compressed.length*2); // 2 bytes per character\n\n for (var i=0, TotalLen=compressed.length; i<TotalLen; i++) {\n var current_value = compressed.charCodeAt(i);\n buf[i*2] = current_value >>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i<TotalLen; i++) {\n buf[i]=compressed[i*2]*256+compressed[i*2+1];\n }\n\n var result = [];\n buf.forEach(function (c) {\n result.push(f(c));\n });\n return LZString.decompress(result.join(''));\n\n }\n\n },\n\n\n //compress into a string that is already URI encoded\n compressToEncodedURIComponent: function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 6, function(a){return keyStrUriSafe.charAt(a);});\n },\n\n //decompress from an output of compressToEncodedURIComponent\n decompressFromEncodedURIComponent:function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n input = input.replace(/ /g, \"+\");\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });\n },\n\n compress: function (uncompressed) {\n return LZString._compress(uncompressed, 16, function(a){return f(a);});\n },\n _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n if (uncompressed == null) return \"\";\n var i, value,\n context_dictionary= {},\n context_dictionaryToCreate= {},\n context_c=\"\",\n context_wc=\"\",\n context_w=\"\",\n context_enlargeIn= 2, // Compensate for the first entry which should not count\n context_dictSize= 3,\n context_numBits= 2,\n context_data=[],\n context_data_val=0,\n context_data_position=0,\n ii;\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii);\n if (!Object.prototype.hasOwnProperty.call(context_dictionary,context_c)) {\n context_dictionary[context_c] = context_dictSize++;\n context_dictionaryToCreate[context_c] = true;\n }\n\n context_wc = context_w + context_c;\n if (Object.prototype.hasOwnProperty.call(context_dictionary,context_wc)) {\n context_w = context_wc;\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position ==bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n} else if( typeof angular !== 'undefined' && angular != null ) {\n angular.module('LZString', [])\n .factory('LZString', function () {\n return LZString;\n });\n}\n","import LZString from 'lz-string';\n\nconst rwaQuery = `... on RealWorldAssets {\n state {\n portfolio {\n __typename\n ... on FixedIncome {\n name\n CUSIP\n purchaseDate\n purchasePrice\n purchaseProceeds\n salesProceeds\n totalDiscount\n spvId\n }\n ... on Cash {\n id\n balance\n }\n }\n transactions {\n id\n type\n entryTime\n cashBalanceChange\n fees {\n id\n serviceProviderFeeTypeId\n amount\n }\n txRef\n cashTransaction {\n id\n assetId\n amount\n entryTime\n tradeTime\n settlementTime\n accountId\n counterPartyAccountId\n }\n fixedIncomeTransaction {\n id\n assetId\n amount\n entryTime\n tradeTime\n settlementTime\n accountId\n counterPartyAccountId\n }\n }\n }\n }`;\n\nconst accountSnapshot = `... on AccountSnapshot {\n state {\n id\n ownerId\n ownerType\n period\n start\n end\n actualsComparison {\n month\n reportedActuals\n currency\n netExpenses {\n offChainIncluded {amount difference}\n onChainOnly {amount difference}\n }\n }\n snapshotAccount {\n id\n accountLabel\n accountAddress\n accountType\n groupAccountId\n offChain\n upstreamAccountId\n }\n }\n }`;\n\nconst budgetStatement = `... on BudgetStatement {\n state {\n month\n quoteCurrency\n accounts {\n name\n address\n lineItems {\n actual\n payment\n budgetCap\n }\n }\n ftes {\n value\n }\n }\n }`;\n\nconst getQuery = (\n documentId: string,\n documentType: string,\n encodeQuery = true,\n) => {\n let query = ``;\n\n if (documentType === 'powerhouse/account-snapshot') {\n query = accountSnapshot;\n }\n\n if (documentType === 'powerhouse/budget-statement') {\n query = budgetStatement;\n }\n\n if (documentType === 'makerdao/rwa-portfolio') {\n query = rwaQuery;\n }\n\n const queryString = `query {\n document(id:\"${documentId}\") {\n name\n documentType\n revision\n created\n lastModified\n ${query}\n }\n}`;\n\n if (!encodeQuery) {\n return queryString;\n }\n\n return encodeURIComponent(queryString);\n};\n\nconst getLocalReactorUrl = (\n remoteUrl: string,\n documentType: string,\n documentId: string,\n) => {\n const query = getQuery(documentId, documentType, false);\n\n const explorerURLState = LZString.compressToEncodedURIComponent(\n JSON.stringify({\n document: query.trim(),\n }),\n );\n\n const url = remoteUrl + `?explorerURLState=${explorerURLState}`;\n return url.toString();\n};\n\nexport const getSwitchboardUrl = (\n remoteUrl: string,\n documentType: string,\n documentId: string,\n) => {\n if (remoteUrl.includes('localhost')) {\n return getLocalReactorUrl(remoteUrl, documentType, documentId);\n }\n\n const explorerUrl = remoteUrl.replace(/\\/d\\//, '/graphql/');\n const query = getQuery(documentId, documentType);\n const url = explorerUrl + `?query=${query}`;\n\n return url.toString();\n};\n","const openBrowserUrl = (url: string) => window.open(url, '_blank');\n\nexport const openUrl = window.electronAPI?.openURL ?? openBrowserUrl;\n","import { FILE, UiNode } from '@powerhousedao/design-system';\nimport { getSwitchboardUrl } from 'src/utils/getSwitchboardUrl';\nimport { openUrl } from 'src/utils/openUrl';\nimport { useDocumentDriveById } from './useDocumentDriveById';\n\nexport const useOpenSwitchboardLink = (driveId: string | undefined) => {\n const { isRemoteDrive, remoteUrl } = useDocumentDriveById(driveId);\n\n return async (uiNode?: UiNode | null) => {\n if (uiNode?.kind !== FILE || !remoteUrl || !isRemoteDrive) return;\n\n const url = new URL(remoteUrl);\n const baseUrl = url.origin;\n\n const switchboardUrl = getSwitchboardUrl(\n remoteUrl,\n uiNode.documentType,\n uiNode.id,\n );\n\n await openUrl(switchboardUrl);\n };\n};\n","import {\n AddLocalDriveInput,\n AddRemoteDriveInput,\n CLOUD,\n DRIVE,\n FILE,\n FOLDER,\n LOCAL,\n PUBLIC,\n SharingType,\n SUCCESS,\n toast,\n UiDriveNode,\n UiFileNode,\n UiFolderNode,\n UiNode,\n useUiNodesContext,\n} from '@powerhousedao/design-system';\nimport { ReadDrive } from 'document-drive';\nimport { DocumentDriveDocument } from 'document-model-libs/document-drive';\nimport { useCallback, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useModal } from 'src/components/modal';\nimport { useReadModeContext } from 'src/context/read-mode';\nimport { useFileNodeDocument } from 'src/store/document-drive';\nimport {\n useFilteredDocumentModels,\n useGetDocumentModel,\n} from 'src/store/document-model';\nimport { getNodeOptions } from 'src/utils/drive-sections';\nimport { makeNodeSlugFromNodeName } from 'src/utils/slug';\nimport { useDocumentDriveById } from './useDocumentDriveById';\nimport { useDocumentDriveServer } from './useDocumentDriveServer';\nimport { useOpenSwitchboardLink } from './useOpenSwitchboardLink';\nimport { useUserPermissions } from './useUserPermissions';\n\nexport function useUiNodes() {\n const { showModal } = useModal();\n const { t } = useTranslation();\n const uiNodesContext = useUiNodesContext();\n const {\n selectedDriveNode,\n driveNodes,\n selectedParentNode,\n setSelectedNode,\n getParentNode,\n } = uiNodesContext;\n const readModeContext = useReadModeContext();\n const documentDriveServer = useDocumentDriveServer();\n const {\n addFolder,\n addFile,\n renameNode,\n deleteNode,\n addDrive,\n addRemoteDrive,\n deleteDrive,\n renameDrive,\n setDriveAvailableOffline,\n setDriveSharingType,\n copyNode,\n moveNode,\n getSyncStatus,\n removeTrigger,\n addTrigger,\n registerNewPullResponderTrigger,\n } = documentDriveServer;\n const selectedDocumentDrive = useDocumentDriveById(selectedDriveNode?.id);\n const openSwitchboardLink = useOpenSwitchboardLink(selectedDriveNode?.id);\n const userPermissions = useUserPermissions();\n const nodeOptions = getNodeOptions();\n const documentModels = useFilteredDocumentModels();\n const getDocumentModel = useGetDocumentModel();\n const fileNodeDocument = useFileNodeDocument({\n ...uiNodesContext,\n ...documentDriveServer,\n ...readModeContext,\n });\n\n const makeUiDriveNode = useCallback(\n async (drive: DocumentDriveDocument | ReadDrive) => {\n const isReadDrive = 'readContext' in drive;\n const { id, name, icon, slug } = drive.state.global;\n const { sharingType: _sharingType, availableOffline } = !isReadDrive\n ? drive.state.local\n : { sharingType: PUBLIC, availableOffline: false };\n const __sharingType = _sharingType?.toUpperCase();\n const sharingType = (\n __sharingType === 'PRIVATE' ? LOCAL : __sharingType\n ) as SharingType;\n const driveSyncStatus = !isReadDrive\n ? await getSyncStatus(id, sharingType)\n : undefined;\n\n // TODO: rempve this after integration in design-system\n const normalizedDriveSyncStatus =\n driveSyncStatus === 'INITIAL_SYNC'\n ? 'SYNCING'\n : driveSyncStatus;\n\n const driveNode: UiDriveNode = {\n id,\n name,\n slug: slug || null,\n kind: DRIVE,\n children: [],\n nodeMap: {},\n sharingType,\n syncStatus: normalizedDriveSyncStatus,\n availableOffline,\n icon,\n parentFolder: null,\n driveId: id,\n };\n\n const nodes = drive.state.global.nodes.map(n => {\n const node = {\n ...n,\n slug: makeNodeSlugFromNodeName(n.name),\n driveId: id,\n parentFolder: n.parentFolder || id,\n kind: n.kind.toUpperCase(),\n syncStatus: normalizedDriveSyncStatus,\n sharingType,\n };\n\n if (node.kind === DRIVE) {\n throw new Error('Drive nodes should not be nested');\n }\n\n if (node.kind === FILE) {\n return node as UiFileNode;\n }\n\n return {\n ...node,\n children: [],\n } as UiFolderNode;\n });\n\n for (const node of nodes) {\n driveNode.nodeMap[node.id] = node;\n }\n\n // eslint-disable-next-line @typescript-eslint/await-thenable\n for await (const node of nodes) {\n if (node.kind === FILE) {\n const fileSyncStatus = !isReadDrive\n ? await getSyncStatus(\n node.synchronizationUnits[0].syncId,\n sharingType,\n )\n : undefined;\n\n // TODO: rempve this after integration in design-system\n const normalizedFileSyncStatus =\n fileSyncStatus === 'INITIAL_SYNC'\n ? 'SYNCING'\n : fileSyncStatus;\n\n node.syncStatus = normalizedFileSyncStatus;\n }\n\n if (node.parentFolder === id) {\n driveNode.children.push(node);\n continue;\n }\n const parent = driveNode.nodeMap[node.parentFolder];\n\n if (parent.kind === FILE) {\n throw new Error(\n `Parent node ${node.parentFolder} is a file, not a folder`,\n );\n }\n\n parent.children.push(node);\n\n if (node.syncStatus !== SUCCESS) {\n parent.syncStatus = node.syncStatus;\n }\n }\n\n return driveNode;\n },\n [getSyncStatus],\n );\n\n const makeUiDriveNodes = useCallback(\n async (documentDrives: DocumentDriveDocument[]) => {\n return Promise.all(documentDrives.map(makeUiDriveNode));\n },\n [makeUiDriveNode],\n );\n\n const onAddFolder = useCallback(\n async (name: string, parentNode: UiNode | null) => {\n if (!parentNode) {\n throw new Error('Parent node is required');\n }\n if (parentNode.kind === FILE) {\n throw new Error('Cannot add folder to a file');\n }\n return await addFolder(parentNode.driveId, name, parentNode.id);\n },\n [addFolder],\n );\n\n const onRenameNode = useCallback(\n async (name: string, uiNode: UiNode) => {\n if (uiNode.kind === DRIVE) {\n throw new Error(\n 'Drive can only be renamed from the drive settings modal',\n );\n }\n return await renameNode(uiNode.driveId, uiNode.id, name);\n },\n [renameNode],\n );\n\n const onCopyNode = useCallback(\n async (uiNode: UiNode, targetNode: UiNode) => {\n if (uiNode.kind === DRIVE) {\n throw new Error('Drive cannot be duplicated');\n }\n\n await copyNode(uiNode, targetNode);\n },\n [copyNode],\n );\n\n const onMoveNode = useCallback(\n async (uiNode: UiNode, targetNode: UiNode) => {\n if (uiNode.kind === DRIVE) {\n throw new Error('Drive cannot be moved');\n }\n\n await moveNode(uiNode, targetNode);\n },\n [moveNode],\n );\n\n const onAddFile = useCallback(\n async (file: File, parentNode: UiNode | null) => {\n if (!parentNode) {\n throw new Error('Parent node is required');\n }\n if (parentNode.kind === FILE) {\n throw new Error('Cannot add file to a file');\n }\n\n const fileName = file.name.replace(/\\.zip$/gim, '');\n\n return await addFile(\n file,\n parentNode.driveId,\n fileName,\n parentNode.id,\n );\n },\n [addFile],\n );\n\n const onDuplicateNode = useCallback(\n async (uiNode: UiNode) => {\n if (!selectedParentNode) return;\n\n if (uiNode.kind === DRIVE) {\n throw new Error('Drive cannot be duplicated');\n }\n\n await copyNode(uiNode, selectedParentNode);\n },\n [copyNode, selectedParentNode],\n );\n\n const onDeleteNode = useCallback(\n (uiNode: UiFileNode | UiFolderNode) => {\n showModal('deleteItem', {\n uiNode,\n onDelete: async closeModal => {\n closeModal();\n\n const i18nKey =\n uiNode.kind === FOLDER\n ? 'notifications.deleteFolderSuccess'\n : 'notifications.fileDeleteSuccess';\n\n const parentNode = getParentNode(uiNode);\n\n await deleteNode(uiNode.driveId, uiNode.id);\n\n setSelectedNode(parentNode);\n\n toast(t(i18nKey), { type: 'connect-deleted' });\n },\n });\n },\n [deleteNode, getParentNode, setSelectedNode, showModal, t],\n );\n\n const onDeleteDrive = useCallback(\n (uiDriveNode: UiDriveNode) => {\n showModal('deleteDriveModal', {\n uiDriveNode,\n onDelete: async closeModal => {\n closeModal();\n await deleteDrive(uiDriveNode.id);\n\n setSelectedNode(driveNodes[0]);\n\n toast(t('notifications.deleteDriveSuccess'), {\n type: 'connect-deleted',\n });\n },\n });\n },\n [deleteDrive, driveNodes, setSelectedNode, showModal, t],\n );\n\n const onAddLocalDrive = useCallback(\n async (data: AddLocalDriveInput) => {\n try {\n const newDrive = await addDrive({\n global: {\n name: data.name,\n id: undefined,\n icon: null,\n slug: null,\n },\n local: {\n availableOffline: data.availableOffline,\n sharingType: data.sharingType.toLowerCase(),\n listeners: [],\n triggers: [],\n },\n });\n\n toast(t('notifications.addDriveSuccess'), {\n type: 'connect-success',\n });\n\n const newDriveNode = await makeUiDriveNode(newDrive);\n\n setSelectedNode(newDriveNode);\n } catch (e) {\n console.error(e);\n }\n },\n [addDrive, makeUiDriveNode, setSelectedNode, t],\n );\n\n const onAddRemoteDrive = useCallback(\n async (data: AddRemoteDriveInput) => {\n try {\n const newDrive = await addRemoteDrive(data.url, {\n sharingType: data.sharingType,\n availableOffline: data.availableOffline,\n listeners: [\n {\n block: true,\n callInfo: {\n data: data.url,\n name: 'switchboard-push',\n transmitterType: 'SwitchboardPush',\n },\n filter: {\n branch: ['main'],\n documentId: ['*'],\n documentType: ['*'],\n scope: ['global'],\n },\n label: 'Switchboard Sync',\n listenerId: '1',\n system: true,\n },\n ],\n triggers: [],\n pullInterval: 3000,\n });\n\n toast(t('notifications.addDriveSuccess'), {\n type: 'connect-success',\n });\n\n const newDriveNode = await makeUiDriveNode(newDrive);\n\n setSelectedNode(newDriveNode);\n } catch (e) {\n console.error(e);\n }\n },\n [addRemoteDrive, makeUiDriveNode, setSelectedNode, t],\n );\n\n const showAddDriveModal = useCallback(\n (groupSharingType: SharingType) => {\n if (groupSharingType === LOCAL) {\n showModal('addLocalDrive', {\n onAddLocalDrive,\n });\n } else {\n showModal('addRemoteDrive', {\n onAddRemoteDrive,\n groupSharingType,\n });\n }\n },\n [onAddLocalDrive, onAddRemoteDrive, showModal],\n );\n\n const onRenameDrive = useCallback(\n async (uiDriveNode: UiDriveNode, newName: string) => {\n await renameDrive(uiDriveNode.id, newName);\n },\n [renameDrive],\n );\n\n const onChangeSharingType = useCallback(\n async (uiDriveNode: UiDriveNode, newSharingType: SharingType) => {\n await setDriveSharingType(uiDriveNode.id, newSharingType);\n },\n [setDriveSharingType],\n );\n\n const onChangeAvailableOffline = useCallback(\n async (uiDriveNode: UiDriveNode, newAvailableOffline: boolean) => {\n await setDriveAvailableOffline(uiDriveNode.id, newAvailableOffline);\n },\n [setDriveAvailableOffline],\n );\n\n const showDriveSettingsModal = useCallback(\n (uiDriveNode: UiDriveNode) => {\n showModal('driveSettings', {\n uiDriveNode,\n onRenameDrive,\n onDeleteDrive,\n onChangeSharingType,\n onChangeAvailableOffline,\n });\n },\n [\n onChangeAvailableOffline,\n onChangeSharingType,\n onDeleteDrive,\n onRenameDrive,\n showModal,\n ],\n );\n\n const onAddAndSelectNewFolder = useCallback(\n async (name: string) => {\n if (!name || !selectedParentNode) return;\n\n const newFolder = await onAddFolder(name, selectedParentNode);\n\n setSelectedNode({\n ...newFolder,\n kind: FOLDER,\n slug: makeNodeSlugFromNodeName(newFolder.name),\n parentFolder: selectedParentNode.id,\n syncStatus: selectedParentNode.syncStatus,\n driveId: selectedParentNode.driveId,\n sharingType: selectedParentNode.sharingType,\n children: [],\n });\n },\n [onAddFolder, selectedParentNode, setSelectedNode],\n );\n\n const onAddTrigger = useCallback(\n async (uiNodeDriveId: string) => {\n const url = window.prompt('url') || '';\n\n const pullResponderTrigger = await registerNewPullResponderTrigger(\n uiNodeDriveId,\n url,\n { pullInterval: 6000 },\n );\n await addTrigger(uiNodeDriveId, pullResponderTrigger);\n },\n [addTrigger, registerNewPullResponderTrigger],\n );\n\n const onRemoveTrigger = useCallback(\n async (uiNodeDriveId: string) => {\n const triggerId = window.prompt('triggerId:');\n\n if (triggerId) {\n await removeTrigger(uiNodeDriveId, triggerId);\n }\n },\n [removeTrigger],\n );\n\n const onAddInvalidTrigger = useCallback(\n async (uiNodeDriveId: string) => {\n const url = window.prompt('url') || '';\n\n await addTrigger(uiNodeDriveId, {\n id: 'some-invalid-id',\n type: 'PullResponder',\n data: {\n interval: '3000',\n listenerId: 'invalid-listener-id',\n url,\n },\n });\n },\n [addTrigger],\n );\n\n const driveNodesBySharingType = useMemo(\n () =>\n driveNodes.reduce<Record<SharingType, UiDriveNode[]>>(\n (acc, driveNode) => {\n acc[driveNode.sharingType].push(driveNode);\n return acc;\n },\n {\n [PUBLIC]: [],\n [CLOUD]: [],\n [LOCAL]: [],\n },\n ),\n [driveNodes],\n );\n\n return useMemo(\n () => ({\n ...documentDriveServer,\n ...uiNodesContext,\n ...userPermissions,\n ...selectedDocumentDrive,\n ...fileNodeDocument,\n nodeOptions,\n driveNodesBySharingType,\n documentModels,\n onAddFolder,\n onAddFile,\n onCopyNode,\n onMoveNode,\n onRenameNode,\n onDuplicateNode,\n onDeleteNode,\n onDeleteDrive,\n makeUiDriveNodes,\n onAddAndSelectNewFolder,\n showAddDriveModal,\n showDriveSettingsModal,\n openSwitchboardLink,\n onAddTrigger,\n onRemoveTrigger,\n onAddInvalidTrigger,\n getDocumentModel,\n }),\n [\n documentDriveServer,\n uiNodesContext,\n userPermissions,\n selectedDocumentDrive,\n fileNodeDocument,\n nodeOptions,\n driveNodesBySharingType,\n documentModels,\n onAddFolder,\n onAddFile,\n onCopyNode,\n onMoveNode,\n onRenameNode,\n onDuplicateNode,\n onDeleteNode,\n onDeleteDrive,\n makeUiDriveNodes,\n onAddAndSelectNewFolder,\n showAddDriveModal,\n showDriveSettingsModal,\n openSwitchboardLink,\n onAddTrigger,\n onRemoveTrigger,\n onAddInvalidTrigger,\n getDocumentModel,\n ],\n );\n}\n\nexport type TUiNodes = ReturnType<typeof useUiNodes>;\n"],"names":["N","s","c","l","a","f","u","m","n","p","h","t","d","x","r","E","e","y","o","i","g","k","P","F","O","D","w","T","A","createCollection","name","PROVIDER_NAME","createCollectionContext","createCollectionScope","createContextScope","CollectionProviderImpl","useCollectionContext","CollectionProvider","props","scope","children","ref","React","itemMap","jsx","COLLECTION_SLOT_NAME","CollectionSlot","forwardedRef","context","composedRefs","useComposedRefs","Slot","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","useCollection","collectionNode","orderedNodes","b","DirectionContext","useDirection","localDir","globalDir","index","useLayoutEffect","useEffect","deepEqual","length","keys","key","getDPR","element","roundByDPR","value","dpr","useLatestRef","useFloating","options","placement","strategy","middleware","platform","externalReference","externalFloating","transform","whileElementsMounted","open","data","setData","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","node","referenceRef","setFloating","floatingRef","referenceEl","floatingEl","dataRef","hasWhileElementsMounted","whileElementsMountedRef","platformRef","openRef","update","config","computePosition","fullData","isMountedRef","ReactDOM","refs","elements","floatingStyles","initialStyles","arrow$1","isRef","state","padding","arrow$2","offset","deps","offset$1","shift","shift$1","limitShift","limitShift$1","flip","flip$1","size","size$1","hide","hide$1","arrow","NAME","Arrow","width","height","arrowProps","Primitive","Root","useSize","setSize","resizeObserver","entries","entry","borderSizeEntry","borderSize","POPPER_NAME","createPopperContext","createPopperScope","PopperProvider","usePopperContext","Popper","__scopePopper","anchor","setAnchor","ANCHOR_NAME","PopperAnchor","virtualRef","anchorProps","CONTENT_NAME","PopperContentProvider","useContentContext","PopperContent","side","sideOffset","align","alignOffset","arrowPadding","avoidCollisions","collisionBoundary","collisionPaddingProp","sticky","hideWhenDetached","updatePositionStrategy","onPlaced","contentProps","content","setContent","setArrow","arrowSize","arrowWidth","arrowHeight","desiredPlacement","collisionPadding","boundary","hasExplicitBoundaries","detectOverflowOptions","isNotNull","isPositioned","middlewareData","args","autoUpdate","rects","availableWidth","availableHeight","anchorWidth","anchorHeight","contentStyle","floatingUIarrow","transformOrigin","placedSide","placedAlign","getSideAndAlignFromPlacement","handlePlaced","useCallbackRef","arrowX","_a","arrowY","_b","cannotCenterArrow","_c","contentZIndex","setContentZIndex","_d","_e","_f","ARROW_NAME","OPPOSITE_SIDE","PopperArrow","contentContext","baseSide","ArrowPrimitive.Root","isArrowHidden","noArrowAlign","arrowXCenter","arrowYCenter","Root2","Anchor","Content","ENTRY_FOCUS","EVENT_OPTIONS","GROUP_NAME","Collection","createRovingFocusGroupContext","createRovingFocusGroupScope","RovingFocusProvider","useRovingFocusContext","RovingFocusGroup","RovingFocusGroupImpl","__scopeRovingFocusGroup","orientation","loop","dir","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","preventScrollOnEntryFocus","groupProps","direction","currentTabStopId","setCurrentTabStopId","useControllableState","isTabbingBackOut","setIsTabbingBackOut","handleEntryFocus","getItems","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","tabStopId","prevCount","composeEventHandlers","event","isKeyboardFocus","entryFocusEvent","items","item","activeItem","currentItem","candidateNodes","focusFirst","ITEM_NAME","RovingFocusGroupItem","focusable","active","itemProps","autoId","useId","id","isCurrentTabStop","onFocusableItemAdd","onFocusableItemRemove","focusIntent","getFocusIntent","currentIndex","wrapArray","MAP_KEY_TO_FOCUS_INTENT","getDirectionAwareKey","candidates","preventScroll","PREVIOUSLY_FOCUSED_ELEMENT","candidate","array","startIndex","_","Item","SELECTION_KEYS","FIRST_KEYS","LAST_KEYS","FIRST_LAST_KEYS","SUB_OPEN_KEYS","SUB_CLOSE_KEYS","MENU_NAME","createMenuContext","createMenuScope","usePopperScope","useRovingFocusGroupScope","MenuProvider","useMenuContext","MenuRootProvider","useMenuRootContext","Menu","__scopeMenu","onOpenChange","modal","popperScope","isUsingKeyboardRef","handleOpenChange","handleKeyDown","handlePointer","PopperPrimitive.Root","MenuAnchor","PopperPrimitive.Anchor","PORTAL_NAME","PortalProvider","usePortalContext","MenuPortal","forceMount","container","Presence","PortalPrimitive","MenuContentProvider","useMenuContentContext","MenuContent","portalContext","rootContext","MenuRootContentModal","MenuRootContentNonModal","hideOthers","MenuContentImpl","trapFocus","onOpenAutoFocus","onCloseAutoFocus","disableOutsidePointerEvents","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","disableOutsideScroll","rovingFocusGroupScope","currentItemId","setCurrentItemId","contentRef","timerRef","searchRef","pointerGraceTimerRef","pointerGraceIntentRef","pointerDirRef","lastPointerXRef","ScrollLockWrapper","RemoveScroll","scrollLockWrapperProps","handleTypeaheadSearch","search","currentMatch","values","nextMatch","getNextMatch","newItem","updateSearch","useFocusGuards","isPointerMovingToSubmenu","isPointerInGraceArea","intent","FocusScope","DismissableLayer","RovingFocusGroup.Root","PopperPrimitive.Content","getOpenState","isKeyDownInside","isModifierKey","isCharacterKey","whenMouse","target","pointerXHasChanged","newDir","MenuGroup","LABEL_NAME","MenuLabel","labelProps","ITEM_SELECT","MenuItem","disabled","onSelect","isPointerDownRef","handleSelect","menuItem","itemSelectEvent","dispatchDiscreteCustomEvent","MenuItemImpl","isTypingAhead","textValue","isFocused","setIsFocused","textContent","setTextContent","RovingFocusGroup.Item","CHECKBOX_ITEM_NAME","MenuCheckboxItem","checked","onCheckedChange","checkboxItemProps","ItemIndicatorProvider","isIndeterminate","getCheckedState","RADIO_GROUP_NAME","RadioGroupProvider","useRadioGroupContext","MenuRadioGroup","onValueChange","handleValueChange","RADIO_ITEM_NAME","MenuRadioItem","radioItemProps","ITEM_INDICATOR_NAME","useItemIndicatorContext","MenuItemIndicator","itemIndicatorProps","indicatorContext","SEPARATOR_NAME","MenuSeparator","separatorProps","MenuArrow","PopperPrimitive.Arrow","SUB_NAME","MenuSubProvider","useMenuSubContext","SUB_TRIGGER_NAME","MenuSubTrigger","subContext","openTimerRef","onPointerGraceIntentChange","clearOpenTimer","pointerGraceTimer","composeRefs","contentRect","rightSide","bleed","contentNearEdge","contentFarEdge","SUB_CONTENT_NAME","MenuSubContent","subContentProps","isCloseKey","normalizedSearch","char","currentMatchIndex","wrappedValues","v","isPointInPolygon","point","polygon","inside","j","xi","yi","xj","yj","area","cursorPos","handler","Root3","Anchor2","Portal","Content2","Group","Label","Item2","CheckboxItem","RadioGroup","RadioItem","ItemIndicator","Separator","Arrow2","SubTrigger","SubContent","DROPDOWN_MENU_NAME","createDropdownMenuContext","createDropdownMenuScope","useMenuScope","DropdownMenuProvider","useDropdownMenuContext","DropdownMenu","__scopeDropdownMenu","openProp","defaultOpen","menuScope","triggerRef","setOpen","prevOpen","MenuPrimitive.Root","TRIGGER_NAME","DropdownMenuTrigger","triggerProps","MenuPrimitive.Anchor","DropdownMenuPortal","portalProps","MenuPrimitive.Portal","DropdownMenuContent","hasInteractedOutsideRef","MenuPrimitive.Content","originalEvent","ctrlLeftClick","isRightClick","DropdownMenuGroup","MenuPrimitive.Group","DropdownMenuLabel","MenuPrimitive.Label","DropdownMenuItem","MenuPrimitive.Item","DropdownMenuCheckboxItem","MenuPrimitive.CheckboxItem","DropdownMenuRadioGroup","radioGroupProps","MenuPrimitive.RadioGroup","DropdownMenuRadioItem","MenuPrimitive.RadioItem","INDICATOR_NAME","DropdownMenuItemIndicator","MenuPrimitive.ItemIndicator","DropdownMenuSeparator","MenuPrimitive.Separator","DropdownMenuArrow","MenuPrimitive.Arrow","DropdownMenuSubTrigger","subTriggerProps","MenuPrimitive.SubTrigger","DropdownMenuSubContent","MenuPrimitive.SubContent","Trigger","Portal2","M","C","getAction","client","actionFn","action_implicit","action_explicit","params","getChainId","getEnsAvatar","parameters","chainId","rest","viem_getEnsAvatar","getEnsName","viem_getEnsName","watchChainId","onChange","version","getVersion","BaseError","CoreError","WagmiProviderNotFoundError","useConfig","useContext","WagmiContext","QueryObserver","Subscribable","__privateAdd","_QueryObserver_instances","_client","_currentQuery","_currentQueryInitialState","_currentResult","_currentResultState","_currentResultOptions","_currentThenable","_selectError","_selectFn","_selectResult","_lastQueryWithDefinedData","_staleTimeoutId","_refetchIntervalId","_currentRefetchInterval","_trackedProps","__privateSet","pendingThenable","__privateGet","shouldFetchOnMount","__privateMethod","executeFetch_fn","updateTimers_fn","shouldFetchOn","clearStaleTimeout_fn","clearRefetchInterval_fn","notifyOptions","prevOptions","prevQuery","resolveEnabled","updateQuery_fn","shallowEqualObjects","mounted","shouldFetchOptionally","resolveStaleTime","updateStaleTimeout_fn","nextRefetchInterval","computeRefetchInterval_fn","updateRefetchInterval_fn","query","result","shouldAssignObserverCurrentProperties","onPropTracked","trackedResult","defaultedOptions","fetchOptions","prevResult","prevResultState","prevResultOptions","queryInitialState","newState","isPlaceholderData","fetchOnMount","fetchOptionally","fetchState","error","errorUpdatedAt","status","replaceData","selectError","placeholderData","isFetching","isPending","isError","isLoading","hasData","nextResult","isStale","finalizeThenableIfPossible","thenable","recreateThenable","pending","prevThenable","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","notify_fn","promise","noop","staleTime","isServer","isValidTimeout","timeout","timeUntilStale","nextInterval","focusManager","notifyManager","listener","shouldLoadOnMount","field","observer","optimisticResult","hashFn","queryKey","isPlainObject","hasObjectPrototype","ctor","prot","filterQueryOptions","_defaulted","behavior","gcTime","initialData","initialDataUpdatedAt","maxPages","meta","networkMode","queryFn","queryHash","queryKeyHashFn","retry","retryDelay","structuralSharing","getPreviousPageParam","getNextPageParam","initialPageParam","_optimisticResults","enabled","refetchInterval","refetchIntervalInBackground","refetchOnMount","refetchOnReconnect","refetchOnWindowFocus","retryOnMount","select","suspense","throwOnError","connector","getEnsAvatarQueryOptions","getEnsAvatarQueryKey","getEnsNameQueryOptions","address","getEnsNameQueryKey","IsRestoringContext","useIsRestoring","createValue","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","shouldThrowError","throwError","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","ensureSuspenseTimers","originalStaleTime","willFetch","isRestoring","shouldSuspend","fetchOptimistic","useBaseQuery","Observer","queryClient","useQueryClient","isNewCacheEntry","shouldSubscribe","onStoreChange","unsubscribe","useQuery","tanstack_useQuery","useChainId","useSyncExternalStore","useEnsAvatar","useEnsName","debounceOperations","callback","timer","operations","operation","op","oldOperation","resolve","reject","documentCacheAtom","atom","singletonFileNodeDocumentAtom","fileNodeDocumentAtom","get","set","newValue","currentValue","documentCache","documentToHash","selectedDocumentAtom","document","fileNodeDocument","useFileNodeDocument","selectedNode","selectedDriveNode","openFile","addOperations","onStrandUpdate","fetchReadDocument","setFileNodeDocument","useAtom","isReadMode","driveId","documentId","kind","documentType","selectedDocument","setSelectedDocument","fetchDocument","useCallback","logger","strand","addOperationToSelectedDocument","useMemo","FILE","isSelectedDocument","connectDebug","DriveSections","PUBLIC","CLOUD","LOCAL","getSectionConfig","sharingType","connectConfig","getDriveNodeOptions","defaultDriveOptions","DELETE","debugNodeOptions","getFileNodeOptions","defaultFileOptions","getFolderNodeOptions","defaultFolderOptions","getNodeOptions","DRIVE","FOLDER","driveSections","section","sectionConfig","useDocumentDriveById","documentDrives","useDocumentDriveServer","drive","pullResponder","trigger","remoteUrl","isRemoteDrive","LZString","keyStrBase64","keyStrUriSafe","baseReverseDic","getBaseValue","alphabet","character","input","res","compressed","uncompressed","buf","TotalLen","current_value","bitsPerChar","getCharFromInt","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data","context_data_val","context_data_position","ii","resetValue","getNextValue","dictionary","enlargeIn","dictSize","numBits","bits","resb","maxpower","power","module","rwaQuery","accountSnapshot","budgetStatement","getQuery","encodeQuery","queryString","getLocalReactorUrl","explorerURLState","getSwitchboardUrl","explorerUrl","openBrowserUrl","url","openUrl","useOpenSwitchboardLink","uiNode","switchboardUrl","useUiNodes","showModal","useModal","useTranslation","uiNodesContext","useUiNodesContext","driveNodes","selectedParentNode","setSelectedNode","getParentNode","readModeContext","useReadModeContext","documentDriveServer","addFolder","addFile","renameNode","deleteNode","addDrive","addRemoteDrive","deleteDrive","renameDrive","setDriveAvailableOffline","setDriveSharingType","copyNode","moveNode","getSyncStatus","removeTrigger","addTrigger","registerNewPullResponderTrigger","selectedDocumentDrive","openSwitchboardLink","userPermissions","useUserPermissions","nodeOptions","documentModels","useFilteredDocumentModels","getDocumentModel","useGetDocumentModel","makeUiDriveNode","isReadDrive","icon","slug","_sharingType","availableOffline","__sharingType","driveSyncStatus","normalizedDriveSyncStatus","driveNode","nodes","makeNodeSlugFromNodeName","fileSyncStatus","normalizedFileSyncStatus","parent","SUCCESS","makeUiDriveNodes","onAddFolder","parentNode","onRenameNode","onCopyNode","targetNode","onMoveNode","onAddFile","file","fileName","onDuplicateNode","onDeleteNode","closeModal","i18nKey","toast","onDeleteDrive","uiDriveNode","onAddLocalDrive","newDrive","newDriveNode","onAddRemoteDrive","showAddDriveModal","groupSharingType","onRenameDrive","newName","onChangeSharingType","newSharingType","onChangeAvailableOffline","newAvailableOffline","showDriveSettingsModal","onAddAndSelectNewFolder","newFolder","onAddTrigger","uiNodeDriveId","pullResponderTrigger","onRemoveTrigger","triggerId","onAddInvalidTrigger","driveNodesBySharingType","acc"],"mappings":"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","x_google_ignoreList":[9,10,11,12,13,14,15,16,17,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,51]}
|