@powerhousedao/connect 6.0.0-dev.234 → 6.0.0-dev.236

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.
Files changed (25) hide show
  1. package/dist/{DebugSettingsModal-CJTP979m.js → DebugSettingsModal-CCZMEuQy.js} +2 -2
  2. package/dist/{DebugSettingsModal-CJTP979m.js.map → DebugSettingsModal-CCZMEuQy.js.map} +1 -1
  3. package/dist/{ExportDocumentWithErrorsModal-DNRr3cjI.js → DownloadDocumentWithErrorsModal-B8ZKi2Xy.js} +8 -8
  4. package/dist/DownloadDocumentWithErrorsModal-B8ZKi2Xy.js.map +1 -0
  5. package/dist/{DriveSettingsModal-BdcjrRh9.js → DriveSettingsModal-Bnug5LXo.js} +1 -1
  6. package/dist/{DriveSettingsModal-BdcjrRh9.js.map → DriveSettingsModal-Bnug5LXo.js.map} +1 -1
  7. package/dist/{SettingsModal-BfosAg13.js → SettingsModal-CIHgaDF-.js} +3 -3
  8. package/dist/{SettingsModal-BfosAg13.js.map → SettingsModal-CIHgaDF-.js.map} +1 -1
  9. package/dist/{build-info-xpar6E5v.js → build-info-CE6ALCxe.js} +2 -2
  10. package/dist/{build-info-xpar6E5v.js.map → build-info-CE6ALCxe.js.map} +1 -1
  11. package/dist/{i18n-Ch408v5-.js → i18n-DLmohU39.js} +3 -3
  12. package/dist/{i18n-Ch408v5-.js.map → i18n-DLmohU39.js.map} +1 -1
  13. package/dist/{load-DEHOaW3M.js → load-Eq98YbRy.js} +2 -2
  14. package/dist/{load-DEHOaW3M.js.map → load-Eq98YbRy.js.map} +1 -1
  15. package/dist/main.js +1 -1
  16. package/dist/{package-DAZ96aLc.js → package-Chgb95IV.js} +2 -2
  17. package/dist/package-Chgb95IV.js.map +1 -0
  18. package/dist/{sidebar-CSUoRHiJ.js → sidebar-3okt6Rlv.js} +20 -35
  19. package/dist/sidebar-3okt6Rlv.js.map +1 -0
  20. package/dist/start-connect.js +1 -1
  21. package/dist/style.css +3 -147
  22. package/package.json +9 -9
  23. package/dist/ExportDocumentWithErrorsModal-DNRr3cjI.js.map +0 -1
  24. package/dist/package-DAZ96aLc.js.map +0 -1
  25. package/dist/sidebar-CSUoRHiJ.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { t as connectConfig } from "./connect.config-Cuh0hj_Q.js";
2
- import { n as getGitUrl, r as shortGitSha, t as getGitSha } from "./build-info-xpar6E5v.js";
2
+ import { n as getGitUrl, r as shortGitSha, t as getGitSha } from "./build-info-CE6ALCxe.js";
3
3
  import { t as serviceWorkerManager } from "./registerServiceWorker-LI8_JXt3.js";
4
4
  import { closePHModal, usePHModal } from "@powerhousedao/reactor-browser";
5
5
  import { useEffect, useState } from "react";
@@ -166,4 +166,4 @@ const DebugSettingsModal = () => {
166
166
  //#endregion
167
167
  export { DebugSettingsModal };
168
168
 
169
- //# sourceMappingURL=DebugSettingsModal-CJTP979m.js.map
169
+ //# sourceMappingURL=DebugSettingsModal-CCZMEuQy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DebugSettingsModal-CJTP979m.js","names":[],"sources":["../src/components/modal/modals/DebugSettingsModal.tsx"],"sourcesContent":["import { connectConfig } from \"@powerhousedao/connect/config\";\nimport {\n getGitSha,\n getGitUrl,\n serviceWorkerManager,\n shortGitSha,\n} from \"@powerhousedao/connect/utils\";\nimport { Icon, Modal, PowerhouseButton } from \"@powerhousedao/design-system\";\nimport { Combobox, FormInput } from \"@powerhousedao/design-system/connect\";\nimport { closePHModal, usePHModal } from \"@powerhousedao/reactor-browser\";\nimport { useEffect, useState } from \"react\";\n\nexport const DebugSettingsModal: React.FC = () => {\n const phModal = usePHModal();\n const open = phModal?.type === \"debugSettings\";\n\n const [appVersion, setAppVersion] = useState(connectConfig.appVersion);\n const [serviceWorkerDebugMode, setServiceWorkerDebugMode] = useState({\n label: serviceWorkerManager.debug ? \"Enabled\" : \"Disabled\",\n value: serviceWorkerManager.debug,\n });\n\n useEffect(() => {\n serviceWorkerManager.setDebug(serviceWorkerDebugMode.value);\n }, [serviceWorkerDebugMode]);\n\n return (\n <Modal\n open={open}\n onOpenChange={(status) => {\n if (!status) return closePHModal();\n }}\n contentProps={{\n className: \"rounded-2xl\",\n }}\n >\n <div className=\"w-[700px] rounded-2xl p-6\">\n <div className=\"mb-6 flex justify-between\">\n <div className=\"text-xl font-bold\">Debug Tools</div>\n <button id=\"close-modal\" onClick={() => closePHModal()}>\n <Icon name=\"Xmark\" size={28} />\n </button>\n </div>\n <div className=\"flex text-sm font-bold\">\n <Icon name=\"Ring\" size={22} />\n <span className=\"ml-2\">App Version: {connectConfig.appVersion}</span>\n {(() => {\n const sha = getGitSha();\n if (sha === \"unknown\") return null;\n const url = getGitUrl();\n const label = shortGitSha(sha);\n return url ? (\n <a\n className=\"ml-2 font-mono text-xs font-normal text-blue-600 hover:underline\"\n href={url}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n title={sha}\n >\n ({label})\n </a>\n ) : (\n <span\n className=\"ml-2 font-mono text-xs font-normal text-gray-500\"\n title={sha}\n >\n ({label})\n </span>\n );\n })()}\n </div>\n <div className=\"mt-4 flex text-sm font-bold\">\n <Icon name=\"Hdd\" size={22} />\n <span className=\"ml-2\">Drive Tools:</span>\n </div>\n\n <div className=\"mt-4 flex text-sm font-bold\">\n <Icon name=\"Gear\" size={22} />\n <span className=\"ml-2\">Service Worker Tools:</span>\n </div>\n <div className=\"mt-2 flex items-end justify-between pl-4\">\n <div className=\"w-[400px]\">\n <label htmlFor=\"serviceWorkerDebugMode\" className=\"text-xs\">\n Service Worker Debug Mode:\n </label>\n <Combobox\n id=\"serviceWorkerDebugMode\"\n onChange={(value) => {\n setServiceWorkerDebugMode(\n value as typeof serviceWorkerDebugMode,\n );\n }}\n value={serviceWorkerDebugMode}\n options={[\n { label: \"Enabled\", value: true },\n { label: \"Disabled\", value: false },\n ]}\n />\n </div>\n </div>\n <div className=\"mt-2 flex items-end justify-between pl-4\">\n <div className=\"w-[400px]\">\n <label htmlFor=\"appVersion\" className=\"text-xs\">\n Set invalid app version:\n </label>\n <FormInput\n containerClassName=\"p-1 bg-white border border-gray-200 rounded-md text-sm\"\n inputClassName=\"text-xs font-normal\"\n id=\"appVersion\"\n icon={\n <div className=\"flex h-full items-center text-xs\">Version:</div>\n }\n value={appVersion}\n onChange={(element) => setAppVersion(element.target.value)}\n />\n </div>\n <div className=\"mb-1 flex items-center justify-center\">\n <PowerhouseButton\n color={appVersion === \"\" ? \"light\" : \"red\"}\n size=\"small\"\n disabled={appVersion === \"\"}\n onClick={() => {\n // @ts-expect-error todo add send message method to service worker manager class\n serviceWorkerManager.sendMessage({\n type: \"SET_APP_VERSION\",\n version: appVersion,\n });\n setAppVersion(\"\");\n }}\n >\n Add Invalid App Version\n </PowerhouseButton>\n </div>\n </div>\n </div>\n </Modal>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"DebugSettingsModal-CCZMEuQy.js","names":[],"sources":["../src/components/modal/modals/DebugSettingsModal.tsx"],"sourcesContent":["import { connectConfig } from \"@powerhousedao/connect/config\";\nimport {\n getGitSha,\n getGitUrl,\n serviceWorkerManager,\n shortGitSha,\n} from \"@powerhousedao/connect/utils\";\nimport { Icon, Modal, PowerhouseButton } from \"@powerhousedao/design-system\";\nimport { Combobox, FormInput } from \"@powerhousedao/design-system/connect\";\nimport { closePHModal, usePHModal } from \"@powerhousedao/reactor-browser\";\nimport { useEffect, useState } from \"react\";\n\nexport const DebugSettingsModal: React.FC = () => {\n const phModal = usePHModal();\n const open = phModal?.type === \"debugSettings\";\n\n const [appVersion, setAppVersion] = useState(connectConfig.appVersion);\n const [serviceWorkerDebugMode, setServiceWorkerDebugMode] = useState({\n label: serviceWorkerManager.debug ? \"Enabled\" : \"Disabled\",\n value: serviceWorkerManager.debug,\n });\n\n useEffect(() => {\n serviceWorkerManager.setDebug(serviceWorkerDebugMode.value);\n }, [serviceWorkerDebugMode]);\n\n return (\n <Modal\n open={open}\n onOpenChange={(status) => {\n if (!status) return closePHModal();\n }}\n contentProps={{\n className: \"rounded-2xl\",\n }}\n >\n <div className=\"w-[700px] rounded-2xl p-6\">\n <div className=\"mb-6 flex justify-between\">\n <div className=\"text-xl font-bold\">Debug Tools</div>\n <button id=\"close-modal\" onClick={() => closePHModal()}>\n <Icon name=\"Xmark\" size={28} />\n </button>\n </div>\n <div className=\"flex text-sm font-bold\">\n <Icon name=\"Ring\" size={22} />\n <span className=\"ml-2\">App Version: {connectConfig.appVersion}</span>\n {(() => {\n const sha = getGitSha();\n if (sha === \"unknown\") return null;\n const url = getGitUrl();\n const label = shortGitSha(sha);\n return url ? (\n <a\n className=\"ml-2 font-mono text-xs font-normal text-blue-600 hover:underline\"\n href={url}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n title={sha}\n >\n ({label})\n </a>\n ) : (\n <span\n className=\"ml-2 font-mono text-xs font-normal text-gray-500\"\n title={sha}\n >\n ({label})\n </span>\n );\n })()}\n </div>\n <div className=\"mt-4 flex text-sm font-bold\">\n <Icon name=\"Hdd\" size={22} />\n <span className=\"ml-2\">Drive Tools:</span>\n </div>\n\n <div className=\"mt-4 flex text-sm font-bold\">\n <Icon name=\"Gear\" size={22} />\n <span className=\"ml-2\">Service Worker Tools:</span>\n </div>\n <div className=\"mt-2 flex items-end justify-between pl-4\">\n <div className=\"w-[400px]\">\n <label htmlFor=\"serviceWorkerDebugMode\" className=\"text-xs\">\n Service Worker Debug Mode:\n </label>\n <Combobox\n id=\"serviceWorkerDebugMode\"\n onChange={(value) => {\n setServiceWorkerDebugMode(\n value as typeof serviceWorkerDebugMode,\n );\n }}\n value={serviceWorkerDebugMode}\n options={[\n { label: \"Enabled\", value: true },\n { label: \"Disabled\", value: false },\n ]}\n />\n </div>\n </div>\n <div className=\"mt-2 flex items-end justify-between pl-4\">\n <div className=\"w-[400px]\">\n <label htmlFor=\"appVersion\" className=\"text-xs\">\n Set invalid app version:\n </label>\n <FormInput\n containerClassName=\"p-1 bg-white border border-gray-200 rounded-md text-sm\"\n inputClassName=\"text-xs font-normal\"\n id=\"appVersion\"\n icon={\n <div className=\"flex h-full items-center text-xs\">Version:</div>\n }\n value={appVersion}\n onChange={(element) => setAppVersion(element.target.value)}\n />\n </div>\n <div className=\"mb-1 flex items-center justify-center\">\n <PowerhouseButton\n color={appVersion === \"\" ? \"light\" : \"red\"}\n size=\"small\"\n disabled={appVersion === \"\"}\n onClick={() => {\n // @ts-expect-error todo add send message method to service worker manager class\n serviceWorkerManager.sendMessage({\n type: \"SET_APP_VERSION\",\n version: appVersion,\n });\n setAppVersion(\"\");\n }}\n >\n Add Invalid App Version\n </PowerhouseButton>\n </div>\n </div>\n </div>\n </Modal>\n );\n};\n"],"mappings":"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"}
@@ -2,18 +2,18 @@ import { closePHModal, exportFile, useDocumentById, usePHModal, validateDocument
2
2
  import { useTranslation } from "react-i18next";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { ConnectConfirmationModal } from "@powerhousedao/design-system/connect";
5
- //#region src/components/modal/modals/ExportDocumentWithErrorsModal.tsx
6
- function ExportDocumentWithErrorsModal() {
5
+ //#region src/components/modal/modals/DownloadDocumentWithErrorsModal.tsx
6
+ function DownloadDocumentWithErrorsModal() {
7
7
  const phModal = usePHModal();
8
- const open = phModal?.type === "exportDocumentWithErrors";
8
+ const open = phModal?.type === "downloadDocumentWithErrors";
9
9
  const [document] = useDocumentById(open ? phModal.documentId : void 0);
10
10
  const { t } = useTranslation();
11
11
  if (!document) return null;
12
12
  const validationErrors = validateDocument(document);
13
13
  return /* @__PURE__ */ jsx(ConnectConfirmationModal, {
14
- header: t("modals.exportDocumentWithErrors.title"),
15
- title: t("modals.exportDocumentWithErrors.title"),
16
- body: /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", { children: t("modals.exportDocumentWithErrors.body") }), /* @__PURE__ */ jsx("ul", {
14
+ header: t("modals.downloadDocumentWithErrors.title"),
15
+ title: t("modals.downloadDocumentWithErrors.title"),
16
+ body: /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", { children: t("modals.downloadDocumentWithErrors.body") }), /* @__PURE__ */ jsx("ul", {
17
17
  className: "mt-4 flex list-disc flex-col items-start px-4 text-xs",
18
18
  children: validationErrors.map((error, index) => /* @__PURE__ */ jsx("li", { children: error.message }, index))
19
19
  })] }),
@@ -36,6 +36,6 @@ function ExportDocumentWithErrorsModal() {
36
36
  });
37
37
  }
38
38
  //#endregion
39
- export { ExportDocumentWithErrorsModal };
39
+ export { DownloadDocumentWithErrorsModal };
40
40
 
41
- //# sourceMappingURL=ExportDocumentWithErrorsModal-DNRr3cjI.js.map
41
+ //# sourceMappingURL=DownloadDocumentWithErrorsModal-B8ZKi2Xy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DownloadDocumentWithErrorsModal-B8ZKi2Xy.js","names":[],"sources":["../src/components/modal/modals/DownloadDocumentWithErrorsModal.tsx"],"sourcesContent":["import { ConnectConfirmationModal } from \"@powerhousedao/design-system/connect\";\nimport {\n closePHModal,\n exportFile,\n useDocumentById,\n usePHModal,\n validateDocument,\n} from \"@powerhousedao/reactor-browser\";\nimport { useTranslation } from \"react-i18next\";\nexport function DownloadDocumentWithErrorsModal() {\n const phModal = usePHModal();\n const open = phModal?.type === \"downloadDocumentWithErrors\";\n const documentId = open ? phModal.documentId : undefined;\n const [document] = useDocumentById(documentId);\n const { t } = useTranslation();\n\n if (!document) {\n return null;\n }\n\n const validationErrors = validateDocument(document);\n return (\n <ConnectConfirmationModal\n header={t(\"modals.downloadDocumentWithErrors.title\")}\n title={t(\"modals.downloadDocumentWithErrors.title\")}\n body={\n <div>\n <p>{t(\"modals.downloadDocumentWithErrors.body\")}</p>\n <ul className=\"mt-4 flex list-disc flex-col items-start px-4 text-xs\">\n {validationErrors.map((error, index) => (\n <li key={index}>{error.message}</li>\n ))}\n </ul>\n </div>\n }\n cancelLabel={t(\"common.cancel\")}\n continueLabel={t(\"common.export\")}\n onCancel={() => closePHModal()}\n onContinue={async () => {\n try {\n await exportFile(document);\n } catch (error) {\n console.error(error);\n } finally {\n closePHModal();\n }\n }}\n open={open}\n onOpenChange={(status: boolean) => {\n if (!status) return closePHModal();\n }}\n />\n );\n}\n"],"mappings":";;;;;AASA,SAAgB,kCAAkC;CAChD,MAAM,UAAU,YAAY;CAC5B,MAAM,OAAO,SAAS,SAAS;CAE/B,MAAM,CAAC,YAAY,gBADA,OAAO,QAAQ,aAAa,KAAA,EACD;CAC9C,MAAM,EAAE,MAAM,gBAAgB;AAE9B,KAAI,CAAC,SACH,QAAO;CAGT,MAAM,mBAAmB,iBAAiB,SAAS;AACnD,QACE,oBAAC,0BAAD;EACE,QAAQ,EAAE,0CAA0C;EACpD,OAAO,EAAE,0CAA0C;EACnD,MACE,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,KAAD,EAAA,UAAI,EAAE,yCAAyC,EAAK,CAAA,EACpD,oBAAC,MAAD;GAAI,WAAU;aACX,iBAAiB,KAAK,OAAO,UAC5B,oBAAC,MAAD,EAAA,UAAiB,MAAM,SAAa,EAA3B,MAA2B,CACpC;GACC,CAAA,CACD,EAAA,CAAA;EAER,aAAa,EAAE,gBAAgB;EAC/B,eAAe,EAAE,gBAAgB;EACjC,gBAAgB,cAAc;EAC9B,YAAY,YAAY;AACtB,OAAI;AACF,UAAM,WAAW,SAAS;YACnB,OAAO;AACd,YAAQ,MAAM,MAAM;aACZ;AACR,kBAAc;;;EAGZ;EACN,eAAe,WAAoB;AACjC,OAAI,CAAC,OAAQ,QAAO,cAAc;;EAEpC,CAAA"}
@@ -45,4 +45,4 @@ function DriveSettingsModal() {
45
45
  //#endregion
46
46
  export { DriveSettingsModal };
47
47
 
48
- //# sourceMappingURL=DriveSettingsModal-BdcjrRh9.js.map
48
+ //# sourceMappingURL=DriveSettingsModal-Bnug5LXo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DriveSettingsModal-BdcjrRh9.js","names":["ConnectDriveSettingsModal"],"sources":["../src/components/modal/modals/DriveSettingsModal.tsx"],"sourcesContent":["import { DriveSettingsModal as ConnectDriveSettingsModal } from \"@powerhousedao/design-system/connect\";\nimport {\n closePHModal,\n driveCollectionId,\n renameDrive,\n setDriveAvailableOffline,\n setDriveSharingType,\n showPHModal,\n useDriveById,\n useDriveSystemInfo,\n usePHModal,\n useSyncList,\n} from \"@powerhousedao/reactor-browser\";\nimport type { DocumentDriveDocument } from \"@powerhousedao/shared/document-drive\";\nimport type { SharingType } from \"@powerhousedao/shared/document-drive\";\nimport { useMemo } from \"react\";\n\nexport function DriveSettingsModal() {\n const phModal = usePHModal();\n const open = phModal?.type === \"driveSettings\";\n const driveId = open ? phModal.driveId : undefined;\n const [drive] = useDriveById(driveId);\n const remotes = useSyncList();\n\n const isRemoteDrive = useMemo(() => {\n if (!drive) return false;\n return remotes.some(\n (remote) =>\n remote.collectionId === driveCollectionId(\"main\", drive.header.id),\n );\n }, [remotes, drive]);\n\n const systemInfo = useDriveSystemInfo(drive);\n\n if (!driveId || !drive) {\n return null;\n }\n\n async function onRenameDrive(drive: DocumentDriveDocument, newName: string) {\n await renameDrive(drive.header.id, newName);\n }\n\n async function onChangeSharingType(\n drive: DocumentDriveDocument,\n newSharingType: SharingType,\n ) {\n await setDriveSharingType(drive.header.id, newSharingType);\n }\n\n async function onChangeAvailableOffline(\n drive: DocumentDriveDocument,\n newAvailableOffline: boolean,\n ) {\n await setDriveAvailableOffline(drive.header.id, newAvailableOffline);\n }\n\n return (\n <ConnectDriveSettingsModal\n drive={drive}\n sharingType={isRemoteDrive ? \"PUBLIC\" : \"LOCAL\"}\n availableOffline={!isRemoteDrive}\n systemInfo={systemInfo}\n open={open}\n onRenameDrive={onRenameDrive}\n onDeleteDrive={() => showPHModal({ type: \"deleteDrive\", driveId })}\n onChangeAvailableOffline={onChangeAvailableOffline}\n onChangeSharingType={onChangeSharingType}\n onOpenChange={(status) => {\n if (!status) return closePHModal();\n }}\n />\n );\n}\n"],"mappings":";;;;;AAiBA,SAAgB,qBAAqB;CACnC,MAAM,UAAU,YAAY;CAC5B,MAAM,OAAO,SAAS,SAAS;CAC/B,MAAM,UAAU,OAAO,QAAQ,UAAU,KAAA;CACzC,MAAM,CAAC,SAAS,aAAa,QAAQ;CACrC,MAAM,UAAU,aAAa;CAE7B,MAAM,gBAAgB,cAAc;AAClC,MAAI,CAAC,MAAO,QAAO;AACnB,SAAO,QAAQ,MACZ,WACC,OAAO,iBAAiB,kBAAkB,QAAQ,MAAM,OAAO,GAAG,CACrE;IACA,CAAC,SAAS,MAAM,CAAC;CAEpB,MAAM,aAAa,mBAAmB,MAAM;AAE5C,KAAI,CAAC,WAAW,CAAC,MACf,QAAO;CAGT,eAAe,cAAc,OAA8B,SAAiB;AAC1E,QAAM,YAAY,MAAM,OAAO,IAAI,QAAQ;;CAG7C,eAAe,oBACb,OACA,gBACA;AACA,QAAM,oBAAoB,MAAM,OAAO,IAAI,eAAe;;CAG5D,eAAe,yBACb,OACA,qBACA;AACA,QAAM,yBAAyB,MAAM,OAAO,IAAI,oBAAoB;;AAGtE,QACE,oBAACA,sBAAD;EACS;EACP,aAAa,gBAAgB,WAAW;EACxC,kBAAkB,CAAC;EACP;EACN;EACS;EACf,qBAAqB,YAAY;GAAE,MAAM;GAAe;GAAS,CAAC;EACxC;EACL;EACrB,eAAe,WAAW;AACxB,OAAI,CAAC,OAAQ,QAAO,cAAc;;EAEpC,CAAA"}
1
+ {"version":3,"file":"DriveSettingsModal-Bnug5LXo.js","names":["ConnectDriveSettingsModal"],"sources":["../src/components/modal/modals/DriveSettingsModal.tsx"],"sourcesContent":["import { DriveSettingsModal as ConnectDriveSettingsModal } from \"@powerhousedao/design-system/connect\";\nimport {\n closePHModal,\n driveCollectionId,\n renameDrive,\n setDriveAvailableOffline,\n setDriveSharingType,\n showPHModal,\n useDriveById,\n useDriveSystemInfo,\n usePHModal,\n useSyncList,\n} from \"@powerhousedao/reactor-browser\";\nimport type { DocumentDriveDocument } from \"@powerhousedao/shared/document-drive\";\nimport type { SharingType } from \"@powerhousedao/shared/document-drive\";\nimport { useMemo } from \"react\";\n\nexport function DriveSettingsModal() {\n const phModal = usePHModal();\n const open = phModal?.type === \"driveSettings\";\n const driveId = open ? phModal.driveId : undefined;\n const [drive] = useDriveById(driveId);\n const remotes = useSyncList();\n\n const isRemoteDrive = useMemo(() => {\n if (!drive) return false;\n return remotes.some(\n (remote) =>\n remote.collectionId === driveCollectionId(\"main\", drive.header.id),\n );\n }, [remotes, drive]);\n\n const systemInfo = useDriveSystemInfo(drive);\n\n if (!driveId || !drive) {\n return null;\n }\n\n async function onRenameDrive(drive: DocumentDriveDocument, newName: string) {\n await renameDrive(drive.header.id, newName);\n }\n\n async function onChangeSharingType(\n drive: DocumentDriveDocument,\n newSharingType: SharingType,\n ) {\n await setDriveSharingType(drive.header.id, newSharingType);\n }\n\n async function onChangeAvailableOffline(\n drive: DocumentDriveDocument,\n newAvailableOffline: boolean,\n ) {\n await setDriveAvailableOffline(drive.header.id, newAvailableOffline);\n }\n\n return (\n <ConnectDriveSettingsModal\n drive={drive}\n sharingType={isRemoteDrive ? \"PUBLIC\" : \"LOCAL\"}\n availableOffline={!isRemoteDrive}\n systemInfo={systemInfo}\n open={open}\n onRenameDrive={onRenameDrive}\n onDeleteDrive={() => showPHModal({ type: \"deleteDrive\", driveId })}\n onChangeAvailableOffline={onChangeAvailableOffline}\n onChangeSharingType={onChangeSharingType}\n onOpenChange={(status) => {\n if (!status) return closePHModal();\n }}\n />\n );\n}\n"],"mappings":";;;;;AAiBA,SAAgB,qBAAqB;CACnC,MAAM,UAAU,YAAY;CAC5B,MAAM,OAAO,SAAS,SAAS;CAC/B,MAAM,UAAU,OAAO,QAAQ,UAAU,KAAA;CACzC,MAAM,CAAC,SAAS,aAAa,QAAQ;CACrC,MAAM,UAAU,aAAa;CAE7B,MAAM,gBAAgB,cAAc;AAClC,MAAI,CAAC,MAAO,QAAO;AACnB,SAAO,QAAQ,MACZ,WACC,OAAO,iBAAiB,kBAAkB,QAAQ,MAAM,OAAO,GAAG,CACrE;IACA,CAAC,SAAS,MAAM,CAAC;CAEpB,MAAM,aAAa,mBAAmB,MAAM;AAE5C,KAAI,CAAC,WAAW,CAAC,MACf,QAAO;CAGT,eAAe,cAAc,OAA8B,SAAiB;AAC1E,QAAM,YAAY,MAAM,OAAO,IAAI,QAAQ;;CAG7C,eAAe,oBACb,OACA,gBACA;AACA,QAAM,oBAAoB,MAAM,OAAO,IAAI,eAAe;;CAG5D,eAAe,yBACb,OACA,qBACA;AACA,QAAM,yBAAyB,MAAM,OAAO,IAAI,oBAAoB;;AAGtE,QACE,oBAACA,sBAAD;EACS;EACP,aAAa,gBAAgB,WAAW;EACxC,kBAAkB,CAAC;EACP;EACN;EACS;EACf,qBAAqB,YAAY;GAAE,MAAM;GAAe;GAAS,CAAC;EACxC;EACL;EACrB,eAAe,WAAW;AACxB,OAAI,CAAC,OAAQ,QAAO,cAAc;;EAEpC,CAAA"}
@@ -1,8 +1,8 @@
1
1
  import { t as connectConfig } from "./connect.config-Cuh0hj_Q.js";
2
2
  import { n as toast } from "./toast-DnODOv28.js";
3
3
  import { t as useRegistryPackages } from "./useRegistryPackages-BOX4NMAb.js";
4
- import { t as package_default } from "./package-DAZ96aLc.js";
5
- import { n as getGitUrl, r as shortGitSha, t as getGitSha } from "./build-info-xpar6E5v.js";
4
+ import { t as package_default } from "./package-Chgb95IV.js";
5
+ import { n as getGitUrl, r as shortGitSha, t as getGitSha } from "./build-info-CE6ALCxe.js";
6
6
  import { closePHModal, deleteDrive, driveCollectionId, setSelectedDrive, showPHModal, useDriveSystemInfo, useDrives, usePHModal, useSyncList, useVetraPackageManager } from "@powerhousedao/reactor-browser";
7
7
  import { useCallback, useMemo, useState } from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -291,4 +291,4 @@ const SettingsModal = () => {
291
291
  //#endregion
292
292
  export { SettingsModal };
293
293
 
294
- //# sourceMappingURL=SettingsModal-BfosAg13.js.map
294
+ //# sourceMappingURL=SettingsModal-CIHgaDF-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsModal-BfosAg13.js","names":["About","BaseAbout","packageJson","DangerZone","BaseDangerZone","DefaultEditor","BaseDefaultEditor","DefaultEditor","DangerZone","About","SettingsModalV2"],"sources":["../src/components/modal/modals/settings/about.tsx","../src/components/modal/modals/settings/danger-zone.tsx","../src/components/modal/modals/settings/default-editor.tsx","../src/components/modal/modals/settings/package-manager.tsx","../src/components/modal/modals/SettingsModal.tsx"],"sourcesContent":["import { connectConfig } from \"@powerhousedao/connect/config\";\nimport {\n getGitSha,\n getGitUrl,\n packageJson,\n shortGitSha,\n} from \"@powerhousedao/connect/utils\";\nimport { Icon } from \"@powerhousedao/design-system\";\nimport { About as BaseAbout } from \"@powerhousedao/design-system/connect\";\nimport {\n closePHModal,\n driveCollectionId,\n showPHModal,\n useDrives,\n useDriveSystemInfo,\n useSyncList,\n} from \"@powerhousedao/reactor-browser\";\nimport type { DocumentDriveDocument } from \"@powerhousedao/shared/document-drive\";\nimport { useMemo } from \"react\";\n\nexport const About: React.FC = () => {\n const onOpenInspector = () => {\n closePHModal();\n showPHModal({ type: \"inspector\" });\n };\n\n return (\n <div>\n <BaseAbout\n packageJson={packageJson}\n phCliVersion={\n typeof connectConfig.phCliVersion === \"string\"\n ? connectConfig.phCliVersion\n : undefined\n }\n />\n <AppGitHash />\n <ConnectedDrives />\n <div className=\"bg-white p-3\">\n <h2 className=\"mb-2 font-semibold\">Inspector</h2>\n <p className=\"mb-3 text-sm font-normal text-gray-600\">\n Explore the local database and sync state for debugging.\n </p>\n <button\n className=\"flex items-center gap-x-2 rounded-md border border-gray-300 bg-transparent px-3 py-1 text-sm font-medium text-gray-900 transition-colors hover:bg-gray-100\"\n onClick={onOpenInspector}\n type=\"button\"\n >\n Open Inspector <Icon name=\"CircleInfo\" size={16} />\n </button>\n </div>\n </div>\n );\n};\n\nfunction AppGitHash() {\n const sha = getGitSha();\n if (sha === \"unknown\") return null;\n const url = getGitUrl();\n const label = shortGitSha(sha);\n return (\n <div className=\"bg-white p-3 text-sm\">\n <span className=\"font-semibold\">Git hash: </span>\n {url ? (\n <a\n className=\"font-mono underline\"\n href={url}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n title={sha}\n >\n {label}\n </a>\n ) : (\n <span className=\"font-mono\" title={sha}>\n {label}\n </span>\n )}\n </div>\n );\n}\n\nfunction ConnectedDrives() {\n const drives = useDrives() ?? [];\n const remotes = useSyncList();\n\n const remoteDrives = useMemo(\n () =>\n drives.filter((d) =>\n remotes.some(\n (r) => r.collectionId === driveCollectionId(\"main\", d.header.id),\n ),\n ),\n [drives, remotes],\n );\n\n return (\n <div className=\"my-4 bg-white p-3\">\n <h2 className=\"mb-2 font-semibold\">Connected drives</h2>\n {remoteDrives.length === 0 ? (\n <p className=\"text-sm font-normal text-gray-600\">\n No connected remote drives.\n </p>\n ) : (\n <ul className=\"flex flex-col gap-3\">\n {remoteDrives.map((drive) => (\n <DriveAboutEntry key={drive.header.id} drive={drive} />\n ))}\n </ul>\n )}\n </div>\n );\n}\n\nfunction DriveAboutEntry({ drive }: { drive: DocumentDriveDocument }) {\n const info = useDriveSystemInfo(drive);\n const name = drive.state.global.name || drive.header.name;\n\n return (\n <li className=\"text-sm text-gray-700\">\n <div className=\"flex items-baseline gap-2\">\n <span className=\"font-medium\">{name}</span>\n {info.status === \"ready\" && (\n <span className=\"text-xs text-gray-500\">{info.host}</span>\n )}\n </div>\n {info.status === \"loading\" && (\n <div className=\"mt-1 text-xs text-gray-400\">Loading…</div>\n )}\n {info.status === \"error\" && (\n <div className=\"mt-1 text-xs text-red-600\">\n Could not load system info\n </div>\n )}\n {info.status === \"ready\" && (\n <div className=\"mt-1 text-xs text-gray-600\">\n <div>\n <span className=\"font-medium\">Version:</span> {info.version}\n </div>\n <div>\n <span className=\"font-medium\">Git hash: </span>\n {info.gitUrl ? (\n <a\n className=\"font-mono hover:underline\"\n href={info.gitUrl}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n title={info.gitHash}\n >\n {shortGitSha(info.gitHash)}\n </a>\n ) : (\n <span className=\"font-mono\" title={info.gitHash}>\n {shortGitSha(info.gitHash)}\n </span>\n )}\n </div>\n </div>\n )}\n {info.status === \"local\" && (\n <div className=\"mt-1 text-xs text-gray-400\">Local drive — N/A</div>\n )}\n </li>\n );\n}\n","import { DangerZone as BaseDangerZone } from \"@powerhousedao/design-system/connect\";\nimport {\n deleteDrive,\n setSelectedDrive,\n showPHModal,\n useDrives,\n} from \"@powerhousedao/reactor-browser\";\nimport type { DocumentDriveDocument } from \"@powerhousedao/shared/document-drive\";\n\nexport const DangerZone: React.FC = () => {\n const drives = useDrives();\n\n const handleDeleteDrive = async (drive: DocumentDriveDocument) => {\n await deleteDrive(drive.header.id);\n setSelectedDrive(undefined);\n };\n\n const handleClearStorage = () => {\n showPHModal({ type: \"clearStorage\" });\n };\n\n return (\n <BaseDangerZone\n drives={drives ?? []}\n onDeleteDrive={handleDeleteDrive}\n onClearStorage={handleClearStorage}\n />\n );\n};\n","import { DefaultEditor as BaseDefaultEditor } from \"@powerhousedao/design-system/connect\";\nimport { useCallback, useState } from \"react\";\n\nconst documentModelEditorOptions = [\n { label: \"V1\", value: \"document-model-editor\" },\n { label: \"V2\", value: \"document-model-editor-v2\" },\n] as const;\n\nexport const DefaultEditor: React.FC = () => {\n const [documentModelEditor, setDocumentModelEditor] = useState<\n (typeof documentModelEditorOptions)[number]\n >(documentModelEditorOptions[1]);\n\n const handleSetDocumentEditor = useCallback((value: string) => {\n const option = documentModelEditorOptions.find((dm) => dm.value == value);\n if (option) {\n setDocumentModelEditor(option);\n }\n }, []);\n\n return (\n <BaseDefaultEditor\n documentModelEditor={documentModelEditor.value}\n setDocumentModelEditor={handleSetDocumentEditor}\n documentModelEditorOptions={\n documentModelEditorOptions as unknown as {\n value: string;\n label: string;\n }[]\n }\n />\n );\n};\n","import { useRegistryPackages } from \"@powerhousedao/connect/hooks\";\nimport { toast } from \"@powerhousedao/connect/services\";\nimport { PackageManager } from \"@powerhousedao/design-system/connect\";\nimport { useVetraPackageManager } from \"@powerhousedao/reactor-browser\";\nimport React from \"react\";\n\n/**\n * Split a `name@tag` spec into its bare package name. Mirrors the design-system's\n * `parsePackageSpec` — duplicated here to avoid reaching into a deep subpath\n * export. Scoped names split on the LAST `@`, unscoped on the first.\n */\nfunction parseBareName(spec: string): string {\n const trimmed = spec.trim();\n const at = trimmed.startsWith(\"@\")\n ? trimmed.lastIndexOf(\"@\")\n : trimmed.indexOf(\"@\");\n return at > 0 ? trimmed.slice(0, at) : trimmed;\n}\n\nexport const ConnectPackageManager: React.FC = () => {\n const packageManager = useVetraPackageManager();\n const {\n registryPackageList,\n updateRegistryPackageStatus,\n registerFallbackRegistryPackage,\n } = useRegistryPackages();\n\n async function handleInstall(packageSpec: string) {\n if (!packageManager) return;\n\n // The spec may include an explicit `@tag` / `@version` suffix from the\n // search input. Pass it through to the package manager as-is (the CDN\n // route already handles `name@tag` specs), but track status under the\n // bare name so the Settings list doesn't fragment.\n const bareName = parseBareName(packageSpec);\n // Packages that were in `/packages` when the user clicked Install go\n // through `updateRegistryPackageStatus` and hit an existing entry.\n // Packages that landed via the npm-uplink fallback weren't in the list,\n // so we register them explicitly rather than silently upserting a\n // placeholder — keeping the \"does not exist\" error as a signal for any\n // other code path that reaches update without a matching entry.\n const wasKnownToRegistry = registryPackageList.some(\n (p) => p.name === bareName,\n );\n const result = await packageManager.addPackage(packageSpec);\n if (result.type === \"success\") {\n if (wasKnownToRegistry) {\n updateRegistryPackageStatus(bareName, \"registry-install\");\n } else {\n registerFallbackRegistryPackage(\n bareName,\n result.package,\n packageManager.getPackageVersion(bareName) ??\n packageManager.getPackageVersion(packageSpec),\n \"registry-install\",\n );\n }\n toast(`Package \"${packageSpec}\" installed successfully`, {\n type: \"connect-success\",\n });\n } else {\n const message = result.error.message;\n // `BrowserPackageManager` raises a generic \"Failed to fetch dynamically\n // imported module\" when the registry CDN returns an error. That covers\n // both \"the name exists nowhere (not on this registry AND not on the\n // npmjs uplink)\" and \"the tarball is there but doesn't look like a\n // Powerhouse package\". Tell the user in plain terms before dumping the\n // raw error so the \"install from npm\" fallback case is self-explanatory.\n const isLikelyNotFound = /failed to fetch|404|not found/i.test(message);\n const userMessage = isLikelyNotFound\n ? `Could not install \"${packageSpec}\". The package isn't available on this registry, and the npmjs.org fallback could not resolve it either.`\n : `Failed to install \"${packageSpec}\": ${message}`;\n toast(userMessage, { type: \"error\" });\n }\n }\n\n function handleUninstall(packageName: string) {\n if (!packageManager) return;\n try {\n packageManager.removePackage(packageName);\n updateRegistryPackageStatus(packageName, \"available\");\n\n toast(`Package \"${packageName}\" uninstalled successfully`, {\n type: \"connect-success\",\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Unknown error\";\n toast(`Failed to uninstall \"${packageName}\": ${message}`, {\n type: \"error\",\n });\n }\n }\n\n return (\n <div className=\"flex h-full flex-1 flex-col\">\n <PackageManager\n mutable={true}\n registryPackageList={registryPackageList}\n onInstall={handleInstall}\n onUninstall={handleUninstall}\n />\n </div>\n );\n};\n","import { Icon } from \"@powerhousedao/design-system\";\nimport { SettingsModal as SettingsModalV2 } from \"@powerhousedao/design-system/connect\";\nimport { closePHModal, usePHModal } from \"@powerhousedao/reactor-browser\";\nimport { t } from \"i18next\";\nimport React, { useMemo } from \"react\";\nimport { About } from \"./settings/about.js\";\nimport { DangerZone } from \"./settings/danger-zone.js\";\nimport { DefaultEditor } from \"./settings/default-editor.js\";\nimport { ConnectPackageManager } from \"./settings/package-manager.js\";\n\nexport const SettingsModal: React.FC = () => {\n const phModal = usePHModal();\n const open = phModal?.type === \"settings\";\n function onRefresh() {\n window.location.reload();\n }\n\n const tabs = useMemo(\n () => [\n {\n id: \"package-manager\",\n icon: <Icon name=\"PackageManager\" size={12} />,\n label: \"Package Manager\",\n content: ConnectPackageManager,\n },\n {\n id: \"default-editors\",\n icon: <Icon name=\"Edit\" size={12} />,\n label: \"Default Editors\",\n content: DefaultEditor,\n },\n {\n id: \"danger-zone\",\n icon: <Icon name=\"Danger\" size={12} className=\"text-red-900\" />,\n label: <span className=\"text-red-900\">Danger Zone</span>,\n content: () => <DangerZone />,\n },\n {\n id: \"about\",\n icon: <Icon name=\"QuestionSquare\" size={12} />,\n label: \"About\",\n content: About,\n },\n ],\n [onRefresh],\n );\n\n return (\n <SettingsModalV2\n open={open}\n title={t(\"modals.connectSettings.title\")}\n onOpenChange={(status: boolean) => {\n if (!status) return closePHModal();\n }}\n tabs={tabs}\n />\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"SettingsModal-CIHgaDF-.js","names":["About","BaseAbout","packageJson","DangerZone","BaseDangerZone","DefaultEditor","BaseDefaultEditor","DefaultEditor","DangerZone","About","SettingsModalV2"],"sources":["../src/components/modal/modals/settings/about.tsx","../src/components/modal/modals/settings/danger-zone.tsx","../src/components/modal/modals/settings/default-editor.tsx","../src/components/modal/modals/settings/package-manager.tsx","../src/components/modal/modals/SettingsModal.tsx"],"sourcesContent":["import { connectConfig } from \"@powerhousedao/connect/config\";\nimport {\n getGitSha,\n getGitUrl,\n packageJson,\n shortGitSha,\n} from \"@powerhousedao/connect/utils\";\nimport { Icon } from \"@powerhousedao/design-system\";\nimport { About as BaseAbout } from \"@powerhousedao/design-system/connect\";\nimport {\n closePHModal,\n driveCollectionId,\n showPHModal,\n useDrives,\n useDriveSystemInfo,\n useSyncList,\n} from \"@powerhousedao/reactor-browser\";\nimport type { DocumentDriveDocument } from \"@powerhousedao/shared/document-drive\";\nimport { useMemo } from \"react\";\n\nexport const About: React.FC = () => {\n const onOpenInspector = () => {\n closePHModal();\n showPHModal({ type: \"inspector\" });\n };\n\n return (\n <div>\n <BaseAbout\n packageJson={packageJson}\n phCliVersion={\n typeof connectConfig.phCliVersion === \"string\"\n ? connectConfig.phCliVersion\n : undefined\n }\n />\n <AppGitHash />\n <ConnectedDrives />\n <div className=\"bg-white p-3\">\n <h2 className=\"mb-2 font-semibold\">Inspector</h2>\n <p className=\"mb-3 text-sm font-normal text-gray-600\">\n Explore the local database and sync state for debugging.\n </p>\n <button\n className=\"flex items-center gap-x-2 rounded-md border border-gray-300 bg-transparent px-3 py-1 text-sm font-medium text-gray-900 transition-colors hover:bg-gray-100\"\n onClick={onOpenInspector}\n type=\"button\"\n >\n Open Inspector <Icon name=\"CircleInfo\" size={16} />\n </button>\n </div>\n </div>\n );\n};\n\nfunction AppGitHash() {\n const sha = getGitSha();\n if (sha === \"unknown\") return null;\n const url = getGitUrl();\n const label = shortGitSha(sha);\n return (\n <div className=\"bg-white p-3 text-sm\">\n <span className=\"font-semibold\">Git hash: </span>\n {url ? (\n <a\n className=\"font-mono underline\"\n href={url}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n title={sha}\n >\n {label}\n </a>\n ) : (\n <span className=\"font-mono\" title={sha}>\n {label}\n </span>\n )}\n </div>\n );\n}\n\nfunction ConnectedDrives() {\n const drives = useDrives() ?? [];\n const remotes = useSyncList();\n\n const remoteDrives = useMemo(\n () =>\n drives.filter((d) =>\n remotes.some(\n (r) => r.collectionId === driveCollectionId(\"main\", d.header.id),\n ),\n ),\n [drives, remotes],\n );\n\n return (\n <div className=\"my-4 bg-white p-3\">\n <h2 className=\"mb-2 font-semibold\">Connected drives</h2>\n {remoteDrives.length === 0 ? (\n <p className=\"text-sm font-normal text-gray-600\">\n No connected remote drives.\n </p>\n ) : (\n <ul className=\"flex flex-col gap-3\">\n {remoteDrives.map((drive) => (\n <DriveAboutEntry key={drive.header.id} drive={drive} />\n ))}\n </ul>\n )}\n </div>\n );\n}\n\nfunction DriveAboutEntry({ drive }: { drive: DocumentDriveDocument }) {\n const info = useDriveSystemInfo(drive);\n const name = drive.state.global.name || drive.header.name;\n\n return (\n <li className=\"text-sm text-gray-700\">\n <div className=\"flex items-baseline gap-2\">\n <span className=\"font-medium\">{name}</span>\n {info.status === \"ready\" && (\n <span className=\"text-xs text-gray-500\">{info.host}</span>\n )}\n </div>\n {info.status === \"loading\" && (\n <div className=\"mt-1 text-xs text-gray-400\">Loading…</div>\n )}\n {info.status === \"error\" && (\n <div className=\"mt-1 text-xs text-red-600\">\n Could not load system info\n </div>\n )}\n {info.status === \"ready\" && (\n <div className=\"mt-1 text-xs text-gray-600\">\n <div>\n <span className=\"font-medium\">Version:</span> {info.version}\n </div>\n <div>\n <span className=\"font-medium\">Git hash: </span>\n {info.gitUrl ? (\n <a\n className=\"font-mono hover:underline\"\n href={info.gitUrl}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n title={info.gitHash}\n >\n {shortGitSha(info.gitHash)}\n </a>\n ) : (\n <span className=\"font-mono\" title={info.gitHash}>\n {shortGitSha(info.gitHash)}\n </span>\n )}\n </div>\n </div>\n )}\n {info.status === \"local\" && (\n <div className=\"mt-1 text-xs text-gray-400\">Local drive — N/A</div>\n )}\n </li>\n );\n}\n","import { DangerZone as BaseDangerZone } from \"@powerhousedao/design-system/connect\";\nimport {\n deleteDrive,\n setSelectedDrive,\n showPHModal,\n useDrives,\n} from \"@powerhousedao/reactor-browser\";\nimport type { DocumentDriveDocument } from \"@powerhousedao/shared/document-drive\";\n\nexport const DangerZone: React.FC = () => {\n const drives = useDrives();\n\n const handleDeleteDrive = async (drive: DocumentDriveDocument) => {\n await deleteDrive(drive.header.id);\n setSelectedDrive(undefined);\n };\n\n const handleClearStorage = () => {\n showPHModal({ type: \"clearStorage\" });\n };\n\n return (\n <BaseDangerZone\n drives={drives ?? []}\n onDeleteDrive={handleDeleteDrive}\n onClearStorage={handleClearStorage}\n />\n );\n};\n","import { DefaultEditor as BaseDefaultEditor } from \"@powerhousedao/design-system/connect\";\nimport { useCallback, useState } from \"react\";\n\nconst documentModelEditorOptions = [\n { label: \"V1\", value: \"document-model-editor\" },\n { label: \"V2\", value: \"document-model-editor-v2\" },\n] as const;\n\nexport const DefaultEditor: React.FC = () => {\n const [documentModelEditor, setDocumentModelEditor] = useState<\n (typeof documentModelEditorOptions)[number]\n >(documentModelEditorOptions[1]);\n\n const handleSetDocumentEditor = useCallback((value: string) => {\n const option = documentModelEditorOptions.find((dm) => dm.value == value);\n if (option) {\n setDocumentModelEditor(option);\n }\n }, []);\n\n return (\n <BaseDefaultEditor\n documentModelEditor={documentModelEditor.value}\n setDocumentModelEditor={handleSetDocumentEditor}\n documentModelEditorOptions={\n documentModelEditorOptions as unknown as {\n value: string;\n label: string;\n }[]\n }\n />\n );\n};\n","import { useRegistryPackages } from \"@powerhousedao/connect/hooks\";\nimport { toast } from \"@powerhousedao/connect/services\";\nimport { PackageManager } from \"@powerhousedao/design-system/connect\";\nimport { useVetraPackageManager } from \"@powerhousedao/reactor-browser\";\nimport React from \"react\";\n\n/**\n * Split a `name@tag` spec into its bare package name. Mirrors the design-system's\n * `parsePackageSpec` — duplicated here to avoid reaching into a deep subpath\n * export. Scoped names split on the LAST `@`, unscoped on the first.\n */\nfunction parseBareName(spec: string): string {\n const trimmed = spec.trim();\n const at = trimmed.startsWith(\"@\")\n ? trimmed.lastIndexOf(\"@\")\n : trimmed.indexOf(\"@\");\n return at > 0 ? trimmed.slice(0, at) : trimmed;\n}\n\nexport const ConnectPackageManager: React.FC = () => {\n const packageManager = useVetraPackageManager();\n const {\n registryPackageList,\n updateRegistryPackageStatus,\n registerFallbackRegistryPackage,\n } = useRegistryPackages();\n\n async function handleInstall(packageSpec: string) {\n if (!packageManager) return;\n\n // The spec may include an explicit `@tag` / `@version` suffix from the\n // search input. Pass it through to the package manager as-is (the CDN\n // route already handles `name@tag` specs), but track status under the\n // bare name so the Settings list doesn't fragment.\n const bareName = parseBareName(packageSpec);\n // Packages that were in `/packages` when the user clicked Install go\n // through `updateRegistryPackageStatus` and hit an existing entry.\n // Packages that landed via the npm-uplink fallback weren't in the list,\n // so we register them explicitly rather than silently upserting a\n // placeholder — keeping the \"does not exist\" error as a signal for any\n // other code path that reaches update without a matching entry.\n const wasKnownToRegistry = registryPackageList.some(\n (p) => p.name === bareName,\n );\n const result = await packageManager.addPackage(packageSpec);\n if (result.type === \"success\") {\n if (wasKnownToRegistry) {\n updateRegistryPackageStatus(bareName, \"registry-install\");\n } else {\n registerFallbackRegistryPackage(\n bareName,\n result.package,\n packageManager.getPackageVersion(bareName) ??\n packageManager.getPackageVersion(packageSpec),\n \"registry-install\",\n );\n }\n toast(`Package \"${packageSpec}\" installed successfully`, {\n type: \"connect-success\",\n });\n } else {\n const message = result.error.message;\n // `BrowserPackageManager` raises a generic \"Failed to fetch dynamically\n // imported module\" when the registry CDN returns an error. That covers\n // both \"the name exists nowhere (not on this registry AND not on the\n // npmjs uplink)\" and \"the tarball is there but doesn't look like a\n // Powerhouse package\". Tell the user in plain terms before dumping the\n // raw error so the \"install from npm\" fallback case is self-explanatory.\n const isLikelyNotFound = /failed to fetch|404|not found/i.test(message);\n const userMessage = isLikelyNotFound\n ? `Could not install \"${packageSpec}\". The package isn't available on this registry, and the npmjs.org fallback could not resolve it either.`\n : `Failed to install \"${packageSpec}\": ${message}`;\n toast(userMessage, { type: \"error\" });\n }\n }\n\n function handleUninstall(packageName: string) {\n if (!packageManager) return;\n try {\n packageManager.removePackage(packageName);\n updateRegistryPackageStatus(packageName, \"available\");\n\n toast(`Package \"${packageName}\" uninstalled successfully`, {\n type: \"connect-success\",\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Unknown error\";\n toast(`Failed to uninstall \"${packageName}\": ${message}`, {\n type: \"error\",\n });\n }\n }\n\n return (\n <div className=\"flex h-full flex-1 flex-col\">\n <PackageManager\n mutable={true}\n registryPackageList={registryPackageList}\n onInstall={handleInstall}\n onUninstall={handleUninstall}\n />\n </div>\n );\n};\n","import { Icon } from \"@powerhousedao/design-system\";\nimport { SettingsModal as SettingsModalV2 } from \"@powerhousedao/design-system/connect\";\nimport { closePHModal, usePHModal } from \"@powerhousedao/reactor-browser\";\nimport { t } from \"i18next\";\nimport React, { useMemo } from \"react\";\nimport { About } from \"./settings/about.js\";\nimport { DangerZone } from \"./settings/danger-zone.js\";\nimport { DefaultEditor } from \"./settings/default-editor.js\";\nimport { ConnectPackageManager } from \"./settings/package-manager.js\";\n\nexport const SettingsModal: React.FC = () => {\n const phModal = usePHModal();\n const open = phModal?.type === \"settings\";\n function onRefresh() {\n window.location.reload();\n }\n\n const tabs = useMemo(\n () => [\n {\n id: \"package-manager\",\n icon: <Icon name=\"PackageManager\" size={12} />,\n label: \"Package Manager\",\n content: ConnectPackageManager,\n },\n {\n id: \"default-editors\",\n icon: <Icon name=\"Edit\" size={12} />,\n label: \"Default Editors\",\n content: DefaultEditor,\n },\n {\n id: \"danger-zone\",\n icon: <Icon name=\"Danger\" size={12} className=\"text-red-900\" />,\n label: <span className=\"text-red-900\">Danger Zone</span>,\n content: () => <DangerZone />,\n },\n {\n id: \"about\",\n icon: <Icon name=\"QuestionSquare\" size={12} />,\n label: \"About\",\n content: About,\n },\n ],\n [onRefresh],\n );\n\n return (\n <SettingsModalV2\n open={open}\n title={t(\"modals.connectSettings.title\")}\n onOpenChange={(status: boolean) => {\n if (!status) return closePHModal();\n }}\n tabs={tabs}\n />\n );\n};\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { buildTreeUrl, shortGitSha } from "@powerhousedao/shared";
2
2
  //#region src/utils/build-info.ts
3
3
  function getGitSha() {
4
- return "b6c05fb23b8a413902fa62c62fe2a5e1e0c20829";
4
+ return "839d5949da4a0211c001b057c9cc1012ea149d7b";
5
5
  }
6
6
  function getGitUrl() {
7
7
  return buildTreeUrl(getGitSha());
@@ -9,4 +9,4 @@ function getGitUrl() {
9
9
  //#endregion
10
10
  export { getGitUrl as n, shortGitSha as r, getGitSha as t };
11
11
 
12
- //# sourceMappingURL=build-info-xpar6E5v.js.map
12
+ //# sourceMappingURL=build-info-CE6ALCxe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-info-xpar6E5v.js","names":[],"sources":["../src/utils/build-info.ts"],"sourcesContent":["import { buildTreeUrl, shortGitSha } from \"@powerhousedao/shared\";\nimport { packageJson } from \"./package-json.js\";\n\nexport { shortGitSha };\n\ndeclare const CONNECT_VERSION: string | undefined;\ndeclare const CONNECT_GIT_SHA: string | undefined;\n\nexport function getVersion(): string {\n if (typeof CONNECT_VERSION !== \"undefined\") return CONNECT_VERSION;\n return (\n process.env.WORKSPACE_VERSION ??\n process.env.npm_package_version ??\n packageJson.version\n );\n}\n\nexport function getGitSha(): string {\n if (typeof CONNECT_GIT_SHA !== \"undefined\") return CONNECT_GIT_SHA;\n return process.env.WORKSPACE_GIT_SHA ?? \"unknown\";\n}\n\nexport function getGitUrl(): string | null {\n return buildTreeUrl(getGitSha());\n}\n"],"mappings":";;AAiBA,SAAgB,YAAoB;AACU,QAAA;;AAI9C,SAAgB,YAA2B;AACzC,QAAO,aAAa,WAAW,CAAC"}
1
+ {"version":3,"file":"build-info-CE6ALCxe.js","names":[],"sources":["../src/utils/build-info.ts"],"sourcesContent":["import { buildTreeUrl, shortGitSha } from \"@powerhousedao/shared\";\nimport { packageJson } from \"./package-json.js\";\n\nexport { shortGitSha };\n\ndeclare const CONNECT_VERSION: string | undefined;\ndeclare const CONNECT_GIT_SHA: string | undefined;\n\nexport function getVersion(): string {\n if (typeof CONNECT_VERSION !== \"undefined\") return CONNECT_VERSION;\n return (\n process.env.WORKSPACE_VERSION ??\n process.env.npm_package_version ??\n packageJson.version\n );\n}\n\nexport function getGitSha(): string {\n if (typeof CONNECT_GIT_SHA !== \"undefined\") return CONNECT_GIT_SHA;\n return process.env.WORKSPACE_GIT_SHA ?? \"unknown\";\n}\n\nexport function getGitUrl(): string | null {\n return buildTreeUrl(getGitSha());\n}\n"],"mappings":";;AAiBA,SAAgB,YAAoB;AACU,QAAA;;AAI9C,SAAgB,YAA2B;AACzC,QAAO,aAAa,WAAW,CAAC"}
@@ -12,7 +12,7 @@ i18n.use(initReactI18next).init({
12
12
  "empty": "Empty",
13
13
  "create": "Create",
14
14
  "save": "Save",
15
- "export": "Export",
15
+ "download": "Download",
16
16
  "reload": "Reload",
17
17
  "reloadConnect": "Click here to reload Connect"
18
18
  },
@@ -73,7 +73,7 @@ i18n.use(initReactI18next).init({
73
73
  "allSelected": "All documents are selected"
74
74
  }
75
75
  },
76
- "exportDocumentWithErrors": {
76
+ "downloadDocumentWithErrors": {
77
77
  "title": "Your document contains errors",
78
78
  "body": "Your document contains structure errors. Do you want to export it anyway?"
79
79
  },
@@ -122,4 +122,4 @@ i18n.use(initReactI18next).init({
122
122
  //#endregion
123
123
  export { i18n as t };
124
124
 
125
- //# sourceMappingURL=i18n-Ch408v5-.js.map
125
+ //# sourceMappingURL=i18n-DLmohU39.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n-Ch408v5-.js","names":["translationEN"],"sources":["../src/i18n/locales/en.json","../src/i18n/index.ts"],"sourcesContent":["","import type { Resource } from \"i18next\";\nimport i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\n\nimport translationEN from \"./locales/en.json\" with { type: \"json\" };\n\nconst resources: Resource = {\n en: {\n code: \"en\",\n name: \"English\",\n translation: translationEN,\n },\n};\n\ni18n\n .use(initReactI18next)\n .init({\n resources,\n fallbackLng: \"en\",\n debug: false,\n interpolation: {\n escapeValue: false,\n },\n })\n .catch((e: unknown) => {\n console.error(e);\n });\n\nexport { i18n };\nexport default i18n;\n"],"mappings":";;ACcA,KACG,IAAI,iBAAiB,CACrB,KAAK;CACJ,WAXwB,EAC1B,IAAI;EACF,MAAM;EACN,MAAM;EACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EACD,EACF;CAMG,aAAa;CACb,OAAO;CACP,eAAe,EACb,aAAa,OACd;CACF,CAAC,CACD,OAAO,MAAe;AACrB,SAAQ,MAAM,EAAE;EAChB"}
1
+ {"version":3,"file":"i18n-DLmohU39.js","names":["translationEN"],"sources":["../src/i18n/locales/en.json","../src/i18n/index.ts"],"sourcesContent":["","import type { Resource } from \"i18next\";\nimport i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\n\nimport translationEN from \"./locales/en.json\" with { type: \"json\" };\n\nconst resources: Resource = {\n en: {\n code: \"en\",\n name: \"English\",\n translation: translationEN,\n },\n};\n\ni18n\n .use(initReactI18next)\n .init({\n resources,\n fallbackLng: \"en\",\n debug: false,\n interpolation: {\n escapeValue: false,\n },\n })\n .catch((e: unknown) => {\n console.error(e);\n });\n\nexport { i18n };\nexport default i18n;\n"],"mappings":";;ACcA,KACG,IAAI,iBAAiB,CACrB,KAAK;CACJ,WAXwB,EAC1B,IAAI;EACF,MAAM;EACN,MAAM;EACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EACD,EACF;CAMG,aAAa;CACb,OAAO;CACP,eAAe,EACb,aAAa,OACd;CACF,CAAC,CACD,OAAO,MAAe;AACrB,SAAQ,MAAM,EAAE;EAChB"}
@@ -1,6 +1,6 @@
1
1
  import { t as connectConfig } from "./connect.config-Cuh0hj_Q.js";
2
2
  import { n as toast } from "./toast-DnODOv28.js";
3
- import { t as package_default } from "./package-DAZ96aLc.js";
3
+ import { t as package_default } from "./package-Chgb95IV.js";
4
4
  import { t as detectReactorPgMajor } from "./pglite-runtime-C1g-4Jxl.js";
5
5
  import { n as seedPendingPgVersion } from "./pglite-seed-BtXWFpHf.js";
6
6
  import { n as createReactor } from "./reactor-Nm3jOev1.js";
@@ -106,4 +106,4 @@ async function loadComponent(localPackage) {
106
106
  //#endregion
107
107
  export { loadComponent };
108
108
 
109
- //# sourceMappingURL=load-DEHOaW3M.js.map
109
+ //# sourceMappingURL=load-Eq98YbRy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-DEHOaW3M.js","names":["packageJson"],"sources":["../src/components/reload-connect-toast.tsx","../src/hooks/useCheckLatestVersion.ts","../src/hooks/utils.ts","../src/store/user.ts","../src/components/load.tsx"],"sourcesContent":["import { useTranslation } from \"react-i18next\";\n\nexport const ReloadConnectToast = () => {\n const { t } = useTranslation();\n\n return (\n <div>\n <p className=\"font-medium\">{t(\"notifications.reloadApp\")}</p>\n <button\n onClick={() => location.reload()}\n className=\"underline decoration-solid underline-offset-2\"\n >\n {t(\"common.reloadConnect\")} 🔄\n </button>\n </div>\n );\n};\n","import { connectConfig } from \"@powerhousedao/connect/config\";\nimport { isLatestVersion } from \"@powerhousedao/connect/hooks\";\nimport { toast } from \"@powerhousedao/connect/services\";\nimport { logger } from \"document-model\";\nimport { createElement, useEffect } from \"react\";\nimport { ReloadConnectToast } from \"../components/reload-connect-toast.js\";\n\nexport const useCheckLatestVersion = () => {\n async function checkLatestVersion() {\n const result = await isLatestVersion();\n if (result === null) return;\n // ignore dev/staging versions\n if (result.isLatest || result.currentVersion.includes(\"-\")) {\n return true;\n }\n\n if (\n import.meta.env.MODE === \"development\" ||\n connectConfig.studioMode ||\n !connectConfig.warnOutdatedApp\n ) {\n logger.warn(\n \"Connect is outdated: \\nCurrent: @currentVersion\\nLatest: @latestVersion\",\n result.currentVersion,\n result.latestVersion,\n );\n } else {\n toast(createElement(ReloadConnectToast), {\n type: \"connect-warning\",\n toastId: \"outdated-app\",\n autoClose: false,\n });\n }\n }\n\n useEffect(() => {\n checkLatestVersion().catch(console.error);\n }, []);\n};\n","import { packageJson } from \"../utils/package-json.js\";\n\nexport const isMac = window.navigator.appVersion.includes(\"Mac\");\n\nconst urlBranchMap: Record<string, string> = {\n \"staging/makerdao\": \"deployments/staging/makerdao\",\n \"staging/arbitrum\": \"arb-ltip\",\n \"staging/powerhouse\": \"staging\",\n makerdao: \"deployments/makerdao\",\n arbitrum: \"deployments/arbitrum\",\n arbgrants: \"deployments/arbitrum\",\n localhost: \"develop\",\n};\n\nconst getGithubLinkFromUrl = () => {\n const githubLink = \"https://raw.githubusercontent.com/powerhouse-inc/connect\";\n const url = window.location.href;\n\n const env = Object.keys(urlBranchMap).find((env) => url.includes(env));\n const value = env ? urlBranchMap[env] : undefined;\n if (!value) {\n return undefined;\n } else {\n return `${githubLink}/${value}/package.json`;\n }\n};\n\nconst fetchLatestVersion = async () => {\n const link = getGithubLinkFromUrl();\n if (!link) {\n return undefined;\n }\n const result = await fetch(link);\n const data = (await result.json()) as { version: string };\n const { version } = data;\n return version;\n};\n\nexport const isLatestVersion = async () => {\n const currentVersion = packageJson.version;\n const deployed = await fetchLatestVersion();\n\n if (deployed) {\n return {\n isLatest: deployed === currentVersion,\n currentVersion,\n latestVersion: deployed,\n };\n }\n\n return null;\n};\n","import { useUser } from \"@powerhousedao/reactor-browser\";\nimport type { User as SentryUser } from \"@sentry/react\";\nimport { setUser as setSentryUser } from \"@sentry/react\";\nimport { useEffect } from \"react\";\n\nexport function useSetSentryUser() {\n const user = useUser();\n useEffect(() => {\n let sentryUser: SentryUser | null = null;\n if (user) {\n // saves the user info except the credential\n const { credential, ...rest } = user;\n sentryUser = { id: rest.did, username: rest.ens?.name, ...rest };\n }\n setSentryUser(sentryUser);\n }, [user]);\n}\n","import { useCheckLatestVersion } from \"@powerhousedao/connect/hooks\";\nimport \"@powerhousedao/connect/i18n\";\nimport { createReactor, useSetSentryUser } from \"@powerhousedao/connect/store\";\nimport {\n detectReactorPgMajor,\n seedPendingPgVersion,\n} from \"@powerhousedao/connect/utils\";\nimport type { DocumentModelLib } from \"document-model\";\nimport { type ReactNode } from \"react\";\n\nexport async function loadComponent(localPackage?: DocumentModelLib) {\n await seedPendingPgVersion();\n await detectReactorPgMajor();\n await createReactor(localPackage);\n return {\n default: ({ children }: { children?: ReactNode }) => {\n useSetSentryUser();\n useCheckLatestVersion();\n return children;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;AAEA,MAAa,2BAA2B;CACtC,MAAM,EAAE,MAAM,gBAAgB;AAE9B,QACE,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,KAAD;EAAG,WAAU;YAAe,EAAE,0BAA0B;EAAK,CAAA,EAC7D,qBAAC,UAAD;EACE,eAAe,SAAS,QAAQ;EAChC,WAAU;YAFZ,CAIG,EAAE,uBAAuB,EAAC,MACpB;IACL,EAAA,CAAA;;;;ACPV,MAAa,8BAA8B;CACzC,eAAe,qBAAqB;EAClC,MAAM,SAAS,MAAM,iBAAiB;AACtC,MAAI,WAAW,KAAM;AAErB,MAAI,OAAO,YAAY,OAAO,eAAe,SAAS,IAAI,CACxD,QAAO;AAGT,MACE,OAAO,KAAK,IAAI,SAAS,iBACzB,cAAc,cACd,CAAC,cAAc,gBAEf,QAAO,KACL,2EACA,OAAO,gBACP,OAAO,cACR;MAED,OAAM,cAAc,mBAAmB,EAAE;GACvC,MAAM;GACN,SAAS;GACT,WAAW;GACZ,CAAC;;AAIN,iBAAgB;AACd,sBAAoB,CAAC,MAAM,QAAQ,MAAM;IACxC,EAAE,CAAC;;ACnCa,OAAO,UAAU,WAAW,SAAS,MAAM;AAEhE,MAAM,eAAuC;CAC3C,oBAAoB;CACpB,oBAAoB;CACpB,sBAAsB;CACtB,UAAU;CACV,UAAU;CACV,WAAW;CACX,WAAW;CACZ;AAED,MAAM,6BAA6B;CACjC,MAAM,aAAa;CACnB,MAAM,MAAM,OAAO,SAAS;CAE5B,MAAM,MAAM,OAAO,KAAK,aAAa,CAAC,MAAM,QAAQ,IAAI,SAAS,IAAI,CAAC;CACtE,MAAM,QAAQ,MAAM,aAAa,OAAO,KAAA;AACxC,KAAI,CAAC,MACH;KAEA,QAAO,GAAG,WAAW,GAAG,MAAM;;AAIlC,MAAM,qBAAqB,YAAY;CACrC,MAAM,OAAO,sBAAsB;AACnC,KAAI,CAAC,KACH;CAIF,MAAM,EAAE,YADM,OADC,MAAM,MAAM,KAAK,EACL,MAAM;AAEjC,QAAO;;AAGT,MAAa,kBAAkB,YAAY;CACzC,MAAM,iBAAiBA,gBAAY;CACnC,MAAM,WAAW,MAAM,oBAAoB;AAE3C,KAAI,SACF,QAAO;EACL,UAAU,aAAa;EACvB;EACA,eAAe;EAChB;AAGH,QAAO;;;;AC7CT,SAAgB,mBAAmB;CACjC,MAAM,OAAO,SAAS;AACtB,iBAAgB;EACd,IAAI,aAAgC;AACpC,MAAI,MAAM;GAER,MAAM,EAAE,YAAY,GAAG,SAAS;AAChC,gBAAa;IAAE,IAAI,KAAK;IAAK,UAAU,KAAK,KAAK;IAAM,GAAG;IAAM;;AAElE,UAAc,WAAW;IACxB,CAAC,KAAK,CAAC;;;;ACLZ,eAAsB,cAAc,cAAiC;AACnE,OAAM,sBAAsB;AAC5B,OAAM,sBAAsB;AAC5B,OAAM,cAAc,aAAa;AACjC,QAAO,EACL,UAAU,EAAE,eAAyC;AACnD,oBAAkB;AAClB,yBAAuB;AACvB,SAAO;IAEV"}
1
+ {"version":3,"file":"load-Eq98YbRy.js","names":["packageJson"],"sources":["../src/components/reload-connect-toast.tsx","../src/hooks/useCheckLatestVersion.ts","../src/hooks/utils.ts","../src/store/user.ts","../src/components/load.tsx"],"sourcesContent":["import { useTranslation } from \"react-i18next\";\n\nexport const ReloadConnectToast = () => {\n const { t } = useTranslation();\n\n return (\n <div>\n <p className=\"font-medium\">{t(\"notifications.reloadApp\")}</p>\n <button\n onClick={() => location.reload()}\n className=\"underline decoration-solid underline-offset-2\"\n >\n {t(\"common.reloadConnect\")} 🔄\n </button>\n </div>\n );\n};\n","import { connectConfig } from \"@powerhousedao/connect/config\";\nimport { isLatestVersion } from \"@powerhousedao/connect/hooks\";\nimport { toast } from \"@powerhousedao/connect/services\";\nimport { logger } from \"document-model\";\nimport { createElement, useEffect } from \"react\";\nimport { ReloadConnectToast } from \"../components/reload-connect-toast.js\";\n\nexport const useCheckLatestVersion = () => {\n async function checkLatestVersion() {\n const result = await isLatestVersion();\n if (result === null) return;\n // ignore dev/staging versions\n if (result.isLatest || result.currentVersion.includes(\"-\")) {\n return true;\n }\n\n if (\n import.meta.env.MODE === \"development\" ||\n connectConfig.studioMode ||\n !connectConfig.warnOutdatedApp\n ) {\n logger.warn(\n \"Connect is outdated: \\nCurrent: @currentVersion\\nLatest: @latestVersion\",\n result.currentVersion,\n result.latestVersion,\n );\n } else {\n toast(createElement(ReloadConnectToast), {\n type: \"connect-warning\",\n toastId: \"outdated-app\",\n autoClose: false,\n });\n }\n }\n\n useEffect(() => {\n checkLatestVersion().catch(console.error);\n }, []);\n};\n","import { packageJson } from \"../utils/package-json.js\";\n\nexport const isMac = window.navigator.appVersion.includes(\"Mac\");\n\nconst urlBranchMap: Record<string, string> = {\n \"staging/makerdao\": \"deployments/staging/makerdao\",\n \"staging/arbitrum\": \"arb-ltip\",\n \"staging/powerhouse\": \"staging\",\n makerdao: \"deployments/makerdao\",\n arbitrum: \"deployments/arbitrum\",\n arbgrants: \"deployments/arbitrum\",\n localhost: \"develop\",\n};\n\nconst getGithubLinkFromUrl = () => {\n const githubLink = \"https://raw.githubusercontent.com/powerhouse-inc/connect\";\n const url = window.location.href;\n\n const env = Object.keys(urlBranchMap).find((env) => url.includes(env));\n const value = env ? urlBranchMap[env] : undefined;\n if (!value) {\n return undefined;\n } else {\n return `${githubLink}/${value}/package.json`;\n }\n};\n\nconst fetchLatestVersion = async () => {\n const link = getGithubLinkFromUrl();\n if (!link) {\n return undefined;\n }\n const result = await fetch(link);\n const data = (await result.json()) as { version: string };\n const { version } = data;\n return version;\n};\n\nexport const isLatestVersion = async () => {\n const currentVersion = packageJson.version;\n const deployed = await fetchLatestVersion();\n\n if (deployed) {\n return {\n isLatest: deployed === currentVersion,\n currentVersion,\n latestVersion: deployed,\n };\n }\n\n return null;\n};\n","import { useUser } from \"@powerhousedao/reactor-browser\";\nimport type { User as SentryUser } from \"@sentry/react\";\nimport { setUser as setSentryUser } from \"@sentry/react\";\nimport { useEffect } from \"react\";\n\nexport function useSetSentryUser() {\n const user = useUser();\n useEffect(() => {\n let sentryUser: SentryUser | null = null;\n if (user) {\n // saves the user info except the credential\n const { credential, ...rest } = user;\n sentryUser = { id: rest.did, username: rest.ens?.name, ...rest };\n }\n setSentryUser(sentryUser);\n }, [user]);\n}\n","import { useCheckLatestVersion } from \"@powerhousedao/connect/hooks\";\nimport \"@powerhousedao/connect/i18n\";\nimport { createReactor, useSetSentryUser } from \"@powerhousedao/connect/store\";\nimport {\n detectReactorPgMajor,\n seedPendingPgVersion,\n} from \"@powerhousedao/connect/utils\";\nimport type { DocumentModelLib } from \"document-model\";\nimport { type ReactNode } from \"react\";\n\nexport async function loadComponent(localPackage?: DocumentModelLib) {\n await seedPendingPgVersion();\n await detectReactorPgMajor();\n await createReactor(localPackage);\n return {\n default: ({ children }: { children?: ReactNode }) => {\n useSetSentryUser();\n useCheckLatestVersion();\n return children;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;AAEA,MAAa,2BAA2B;CACtC,MAAM,EAAE,MAAM,gBAAgB;AAE9B,QACE,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,KAAD;EAAG,WAAU;YAAe,EAAE,0BAA0B;EAAK,CAAA,EAC7D,qBAAC,UAAD;EACE,eAAe,SAAS,QAAQ;EAChC,WAAU;YAFZ,CAIG,EAAE,uBAAuB,EAAC,MACpB;IACL,EAAA,CAAA;;;;ACPV,MAAa,8BAA8B;CACzC,eAAe,qBAAqB;EAClC,MAAM,SAAS,MAAM,iBAAiB;AACtC,MAAI,WAAW,KAAM;AAErB,MAAI,OAAO,YAAY,OAAO,eAAe,SAAS,IAAI,CACxD,QAAO;AAGT,MACE,OAAO,KAAK,IAAI,SAAS,iBACzB,cAAc,cACd,CAAC,cAAc,gBAEf,QAAO,KACL,2EACA,OAAO,gBACP,OAAO,cACR;MAED,OAAM,cAAc,mBAAmB,EAAE;GACvC,MAAM;GACN,SAAS;GACT,WAAW;GACZ,CAAC;;AAIN,iBAAgB;AACd,sBAAoB,CAAC,MAAM,QAAQ,MAAM;IACxC,EAAE,CAAC;;ACnCa,OAAO,UAAU,WAAW,SAAS,MAAM;AAEhE,MAAM,eAAuC;CAC3C,oBAAoB;CACpB,oBAAoB;CACpB,sBAAsB;CACtB,UAAU;CACV,UAAU;CACV,WAAW;CACX,WAAW;CACZ;AAED,MAAM,6BAA6B;CACjC,MAAM,aAAa;CACnB,MAAM,MAAM,OAAO,SAAS;CAE5B,MAAM,MAAM,OAAO,KAAK,aAAa,CAAC,MAAM,QAAQ,IAAI,SAAS,IAAI,CAAC;CACtE,MAAM,QAAQ,MAAM,aAAa,OAAO,KAAA;AACxC,KAAI,CAAC,MACH;KAEA,QAAO,GAAG,WAAW,GAAG,MAAM;;AAIlC,MAAM,qBAAqB,YAAY;CACrC,MAAM,OAAO,sBAAsB;AACnC,KAAI,CAAC,KACH;CAIF,MAAM,EAAE,YADM,OADC,MAAM,MAAM,KAAK,EACL,MAAM;AAEjC,QAAO;;AAGT,MAAa,kBAAkB,YAAY;CACzC,MAAM,iBAAiBA,gBAAY;CACnC,MAAM,WAAW,MAAM,oBAAoB;AAE3C,KAAI,SACF,QAAO;EACL,UAAU,aAAa;EACvB;EACA,eAAe;EAChB;AAGH,QAAO;;;;AC7CT,SAAgB,mBAAmB;CACjC,MAAM,OAAO,SAAS;AACtB,iBAAgB;EACd,IAAI,aAAgC;AACpC,MAAI,MAAM;GAER,MAAM,EAAE,YAAY,GAAG,SAAS;AAChC,gBAAa;IAAE,IAAI,KAAK;IAAK,UAAU,KAAK,KAAK;IAAM,GAAG;IAAM;;AAElE,UAAc,WAAW;IACxB,CAAC,KAAK,CAAC;;;;ACLZ,eAAsB,cAAc,cAAiC;AACnE,OAAM,sBAAsB;AAC5B,OAAM,sBAAsB;AAC5B,OAAM,cAAc,aAAa;AACjC,QAAO,EACL,UAAU,EAAE,eAAyC;AACnD,oBAAkB;AAClB,yBAAuB;AACvB,SAAO;IAEV"}
package/dist/main.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as AppLoader } from "./sidebar-CSUoRHiJ.js";
1
+ import { t as AppLoader } from "./sidebar-3okt6Rlv.js";
2
2
  import { createRoot } from "react-dom/client";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region main.tsx
@@ -2,7 +2,7 @@
2
2
  var package_default = {
3
3
  name: "@powerhousedao/connect",
4
4
  productName: "Powerhouse-Connect",
5
- version: "6.0.0-dev.234",
5
+ version: "6.0.0-dev.236",
6
6
  description: "Powerhouse Connect",
7
7
  main: "dist/index.html",
8
8
  type: "module",
@@ -111,4 +111,4 @@ var package_default = {
111
111
  //#endregion
112
112
  export { package_default as t };
113
113
 
114
- //# sourceMappingURL=package-DAZ96aLc.js.map
114
+ //# sourceMappingURL=package-Chgb95IV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-Chgb95IV.js","names":[],"sources":["../package.json"],"sourcesContent":[""],"mappings":""}
@@ -1,9 +1,9 @@
1
1
  import { n as defaultPHAppConfig, r as defaultPHDocumentEditorConfig, t as connectConfig } from "./connect.config-Cuh0hj_Q.js";
2
2
  import { n as toast, t as ToastContainer } from "./toast-DnODOv28.js";
3
- import { t as i18n } from "./i18n-Ch408v5-.js";
3
+ import { t as i18n } from "./i18n-DLmohU39.js";
4
4
  import { c as subscribeReactorPgMajor, d as createFileDataStore, f as idbError, l as IDB_STORE_NAME, m as readPgVersionFile, p as openIdb, r as getCachedReactorPgMajor, u as PRIMARY_IDB_NAMES } from "./pglite-runtime-C1g-4Jxl.js";
5
5
  import { t as serviceWorkerManager } from "./registerServiceWorker-LI8_JXt3.js";
6
- import { addRemoteDrive, driveCollectionId, exportFile, getRevisionFromDate, logout, openRenown, setPHAppConfig, setPHDocumentEditorConfig, setRevisionHistoryVisible, setSelectedDrive, setSelectedNode, showPHModal, useAppModuleById, useDefaultAppModule, useDocumentById, useDocumentModelModuleById, useDocumentOperations, useDrives, useEditorModuleById, useFallbackEditorModule, useNodeParentFolderById, usePHModal, usePackageDiscoveryService, useReactorClient, useRevisionHistoryVisible, useSelectedDocument, useSelectedDocumentId, useSelectedDrive, useSelectedDriveSafe, useSelectedFolder, useSelectedTimelineItem, useSyncList, useUser, validateDocument } from "@powerhousedao/reactor-browser";
6
+ import { addRemoteDrive, driveCollectionId, getRevisionFromDate, logout, openRenown, setPHAppConfig, setPHDocumentEditorConfig, setRevisionHistoryVisible, setSelectedDrive, setSelectedNode, showPHModal, useAppModuleById, useDefaultAppModule, useDocumentById, useDocumentModelModuleById, useDocumentOperations, useDrives, useEditorModuleById, useFallbackEditorModule, useNodeParentFolderById, usePHModal, usePackageDiscoveryService, useReactorClient, useRevisionHistoryVisible, useSelectedDocument, useSelectedDocumentId, useSelectedDrive, useSelectedDriveSafe, useSelectedFolder, useSelectedTimelineItem, useSyncList, useUser } from "@powerhousedao/reactor-browser";
7
7
  import { childLogger } from "document-model";
8
8
  import React, { StrictMode, Suspense, lazy, useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
9
9
  import { Trans, useTranslation } from "react-i18next";
@@ -53,13 +53,6 @@ function subscribe$1(fn) {
53
53
  const useAcceptedCookies = () => {
54
54
  return [useSyncExternalStore(subscribe$1, getCookies, getCookies), setCookies];
55
55
  };
56
- //#endregion
57
- //#region src/hooks/usePendingInstallations.ts
58
- const emptyArray = [];
59
- function usePendingInstallations() {
60
- const discoveryService = usePackageDiscoveryService();
61
- return useSyncExternalStore((cb) => discoveryService?.subscribePending(cb) ?? (() => {}), () => discoveryService?.getPendingInstallations() ?? emptyArray);
62
- }
63
56
  const COOKIE_BANNER_KEY_STORAGE = `${connectConfig.routerBasename}:display-cookie-banner`;
64
57
  const listeners$2 = /* @__PURE__ */ new Set();
65
58
  let bannerShown = getInitial();
@@ -147,6 +140,13 @@ function useInitSentry() {
147
140
  }, [analytics]);
148
141
  }
149
142
  //#endregion
143
+ //#region src/hooks/usePendingInstallations.ts
144
+ const emptyArray = [];
145
+ function usePendingInstallations() {
146
+ const discoveryService = usePackageDiscoveryService();
147
+ return useSyncExternalStore((cb) => discoveryService?.subscribePending(cb) ?? (() => {}), () => discoveryService?.getPendingInstallations() ?? emptyArray);
148
+ }
149
+ //#endregion
150
150
  //#region src/hooks/useUndoRedoShortcuts.ts
151
151
  const useUndoRedoShortcuts = (props) => {
152
152
  const { undo, redo, canRedo, canUndo } = props;
@@ -196,32 +196,17 @@ const Analytics = () => {
196
196
  function DocumentEditorContainer() {
197
197
  const [selectedDocument] = useSelectedDocument();
198
198
  const parentFolder = useNodeParentFolderById(selectedDocument.header.id);
199
- const onExport = useCallback(() => {
200
- if (validateDocument(selectedDocument).length) showPHModal({
201
- type: "exportDocumentWithErrors",
202
- documentId: selectedDocument.header.id
203
- });
204
- else exportFile(selectedDocument).catch((error) => {
205
- console.error(error);
206
- toast(`Failed to export document: ${error instanceof Error ? error.message : JSON.stringify(error, null, 1)}`);
207
- });
208
- }, [selectedDocument]);
209
- const onOpenSwitchboardLink = useMemo(() => {
199
+ useMemo(() => {
210
200
  return async () => {};
211
201
  }, []);
212
- const onClose = useCallback(() => {
202
+ useCallback(() => {
213
203
  setSelectedNode(parentFolder);
214
204
  }, [parentFolder, setSelectedNode]);
215
205
  return /* @__PURE__ */ jsx("div", {
216
206
  id: "document-editor-container",
217
207
  className: "flex-1",
218
208
  "data-document-type": selectedDocument.header.documentType,
219
- children: /* @__PURE__ */ jsx(DocumentEditor, {
220
- document: selectedDocument,
221
- onClose,
222
- onExport,
223
- onOpenSwitchboardLink
224
- })
209
+ children: /* @__PURE__ */ jsx(DocumentEditor, { document: selectedDocument })
225
210
  });
226
211
  }
227
212
  //#endregion
@@ -870,13 +855,13 @@ const AddDriveModal$1 = lazy(() => import("./AddDriveModal-B9BPORvo.js").then((m
870
855
  const ClearStorageModal = lazy(() => import("./ClearStorageModal-K1H6NgT6.js").then((m) => ({ default: m.ClearStorageModal })));
871
856
  const CookiesPolicyModal = lazy(() => import("./CookiesPolicyModal-CnVx2R_8.js").then((m) => ({ default: m.CookiesPolicyModal })));
872
857
  const CreateDocumentModal$1 = lazy(() => import("./CreateDocumentModal-TtG7E62x.js").then((m) => ({ default: m.CreateDocumentModal })));
873
- const DebugSettingsModal = lazy(() => import("./DebugSettingsModal-CJTP979m.js").then((m) => ({ default: m.DebugSettingsModal })));
858
+ const DebugSettingsModal = lazy(() => import("./DebugSettingsModal-CCZMEuQy.js").then((m) => ({ default: m.DebugSettingsModal })));
874
859
  const DeleteDriveModal = lazy(() => import("./DeleteDriveModal-Cb43NeNu.js").then((m) => ({ default: m.DeleteDriveModal })));
875
860
  const DeleteItemModal = lazy(() => import("./DeleteItemModal-Brq4QKdd.js").then((m) => ({ default: m.DeleteItemModal })));
876
861
  const DisclaimerModal = lazy(() => import("./DisclaimerModal-Dk6PpkZU.js").then((m) => ({ default: m.DisclaimerModal })));
877
- const DriveSettingsModal$1 = lazy(() => import("./DriveSettingsModal-BdcjrRh9.js").then((m) => ({ default: m.DriveSettingsModal })));
878
- const ExportDocumentWithErrorsModal = lazy(() => import("./ExportDocumentWithErrorsModal-DNRr3cjI.js").then((m) => ({ default: m.ExportDocumentWithErrorsModal })));
879
- const SettingsModal$1 = lazy(() => import("./SettingsModal-BfosAg13.js").then((m) => ({ default: m.SettingsModal })));
862
+ const DriveSettingsModal$1 = lazy(() => import("./DriveSettingsModal-Bnug5LXo.js").then((m) => ({ default: m.DriveSettingsModal })));
863
+ const DownloadDocumentWithErrorsModal = lazy(() => import("./DownloadDocumentWithErrorsModal-B8ZKi2Xy.js").then((m) => ({ default: m.DownloadDocumentWithErrorsModal })));
864
+ const SettingsModal$1 = lazy(() => import("./SettingsModal-CIHgaDF-.js").then((m) => ({ default: m.SettingsModal })));
880
865
  const UpgradeDriveModal = lazy(() => import("./UpgradeDriveModal-CBLALaaQ.js").then((m) => ({ default: m.UpgradeDriveModal })));
881
866
  const modalComponents = {
882
867
  addDrive: AddDriveModal$1,
@@ -888,7 +873,7 @@ const modalComponents = {
888
873
  deleteItem: DeleteItemModal,
889
874
  disclaimer: DisclaimerModal,
890
875
  driveSettings: DriveSettingsModal$1,
891
- exportDocumentWithErrors: ExportDocumentWithErrorsModal,
876
+ downloadDocumentWithErrors: DownloadDocumentWithErrorsModal,
892
877
  inspector: lazy(() => import("./InspectorModal-EDrjiXPs.js").then((m) => ({ default: m.InspectorModal }))),
893
878
  settings: SettingsModal$1,
894
879
  upgradeDrive: UpgradeDriveModal,
@@ -912,7 +897,7 @@ const ModalsContainer = lazy(async () => {
912
897
  //#endregion
913
898
  //#region src/components/app-loader.tsx
914
899
  const AppLoader = (props) => {
915
- const Load = lazy(() => import("./load-DEHOaW3M.js").then((m) => m.loadComponent(props.localPackage)));
900
+ const Load = lazy(() => import("./load-Eq98YbRy.js").then((m) => m.loadComponent(props.localPackage)));
916
901
  return /* @__PURE__ */ jsx(StrictMode, { children: /* @__PURE__ */ jsxs(ErrorBoundary$1, {
917
902
  fallbackRender: (props) => /* @__PURE__ */ jsx(AppSkeleton, { children: /* @__PURE__ */ jsx(DetailedFallback, { ...props }) }),
918
903
  resetKeys: [props.localPackage],
@@ -1083,7 +1068,7 @@ function EditorError({ message }) {
1083
1068
  });
1084
1069
  }
1085
1070
  const DocumentEditor = (props) => {
1086
- const { document: initialDocument, onClose, onExport, onOpenSwitchboardLink } = props;
1071
+ const { document: initialDocument } = props;
1087
1072
  const selectedTimelineItem = useSelectedTimelineItem();
1088
1073
  const revisionHistoryVisible = useRevisionHistoryVisible();
1089
1074
  const [document, dispatch] = useDocumentById(initialDocument.header.id);
@@ -1563,4 +1548,4 @@ function Sidebar() {
1563
1548
  //#endregion
1564
1549
  export { AppLoader as t };
1565
1550
 
1566
- //# sourceMappingURL=sidebar-CSUoRHiJ.js.map
1551
+ //# sourceMappingURL=sidebar-3okt6Rlv.js.map