@powerhousedao/connect 6.2.2-dev.75 → 6.2.2-dev.77
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/{AddDriveModal-Bw0YuxZg.js → AddDriveModal-DIMewThf.js} +4 -4
- package/dist/{AddDriveModal-Bw0YuxZg.js.map → AddDriveModal-DIMewThf.js.map} +1 -1
- package/dist/{ClearStorageModal-BP2GVtGX.js → ClearStorageModal-DKy2tPYb.js} +4 -4
- package/dist/{ClearStorageModal-BP2GVtGX.js.map → ClearStorageModal-DKy2tPYb.js.map} +1 -1
- package/dist/{ConfirmDocumentUpgradeModal-9AaaQJTs.js → ConfirmDocumentUpgradeModal-CcpgpyOB.js} +4 -4
- package/dist/{ConfirmDocumentUpgradeModal-9AaaQJTs.js.map → ConfirmDocumentUpgradeModal-CcpgpyOB.js.map} +1 -1
- package/dist/{CookiesPolicyModal-CQ-zHJdw.js → CookiesPolicyModal-Bns4789o.js} +3 -3
- package/dist/{CookiesPolicyModal-CQ-zHJdw.js.map → CookiesPolicyModal-Bns4789o.js.map} +1 -1
- package/dist/{CreateDocumentModal-NNi4p6EI.js → CreateDocumentModal-MlA2YRaW.js} +3 -3
- package/dist/{CreateDocumentModal-NNi4p6EI.js.map → CreateDocumentModal-MlA2YRaW.js.map} +1 -1
- package/dist/{DebugSettingsModal-CZNdgk7M.js → DebugSettingsModal-890WlVp4.js} +6 -6
- package/dist/{DebugSettingsModal-CZNdgk7M.js.map → DebugSettingsModal-890WlVp4.js.map} +1 -1
- package/dist/{DeleteDriveModal-C7fnXMsR.js → DeleteDriveModal-gP7j8C0Y.js} +4 -4
- package/dist/{DeleteDriveModal-C7fnXMsR.js.map → DeleteDriveModal-gP7j8C0Y.js.map} +1 -1
- package/dist/{DeleteItemModal-BK_Y8Thj.js → DeleteItemModal-CMM-fPsz.js} +4 -4
- package/dist/{DeleteItemModal-BK_Y8Thj.js.map → DeleteItemModal-CMM-fPsz.js.map} +1 -1
- package/dist/{DisclaimerModal-DJPHCnFY.js → DisclaimerModal-meOyQCfU.js} +3 -3
- package/dist/{DisclaimerModal-DJPHCnFY.js.map → DisclaimerModal-meOyQCfU.js.map} +1 -1
- package/dist/{DocumentVersionUnsupportedModal-tBHLK6b1.js → DocumentVersionUnsupportedModal-TlDH1aP5.js} +3 -3
- package/dist/{DocumentVersionUnsupportedModal-tBHLK6b1.js.map → DocumentVersionUnsupportedModal-TlDH1aP5.js.map} +1 -1
- package/dist/{DownloadDocumentWithErrorsModal-sWu46HVB.js → DownloadDocumentWithErrorsModal-CCdbt2jJ.js} +3 -3
- package/dist/{DownloadDocumentWithErrorsModal-sWu46HVB.js.map → DownloadDocumentWithErrorsModal-CCdbt2jJ.js.map} +1 -1
- package/dist/{DriveAuthRequiredModal-D3IPAst0.js → DriveAuthRequiredModal-9GsPnOYi.js} +4 -4
- package/dist/{DriveAuthRequiredModal-D3IPAst0.js.map → DriveAuthRequiredModal-9GsPnOYi.js.map} +1 -1
- package/dist/{DriveSettingsModal-7OKx8foy.js → DriveSettingsModal-Bv0y1BEK.js} +3 -3
- package/dist/{DriveSettingsModal-7OKx8foy.js.map → DriveSettingsModal-Bv0y1BEK.js.map} +1 -1
- package/dist/{InspectorModal-iCN85ElA.js → InspectorModal-C3L5F4Ma.js} +6 -6
- package/dist/{InspectorModal-iCN85ElA.js.map → InspectorModal-C3L5F4Ma.js.map} +1 -1
- package/dist/{LoginModal-Cd2wGgG4.js → LoginModal-CxFHjxz8.js} +4 -4
- package/dist/{LoginModal-Cd2wGgG4.js.map → LoginModal-CxFHjxz8.js.map} +1 -1
- package/dist/{MissingPackageModal-DyP2-Ojb.js → MissingPackageModal-C6HO-a7E.js} +4 -4
- package/dist/{MissingPackageModal-DyP2-Ojb.js.map → MissingPackageModal-C6HO-a7E.js.map} +1 -1
- package/dist/{OpenFileDocumentsModal-BDVQgfks.js → OpenFileDocumentsModal-6MK7Ourm.js} +4 -4
- package/dist/{OpenFileDocumentsModal-BDVQgfks.js.map → OpenFileDocumentsModal-6MK7Ourm.js.map} +1 -1
- package/dist/{SettingsModal-BDGa08en.js → SettingsModal-DzW3OIrB.js} +149 -9
- package/dist/SettingsModal-DzW3OIrB.js.map +1 -0
- package/dist/{UpgradeDriveModal-wo5oO9mg.js → UpgradeDriveModal-077wPR2N.js} +3 -3
- package/dist/{UpgradeDriveModal-wo5oO9mg.js.map → UpgradeDriveModal-077wPR2N.js.map} +1 -1
- package/dist/app-loader-BLbUg8o4.js +4 -0
- package/dist/{app-loader-B_-UnYWW.js → app-loader-VArdOK2J.js} +77 -183
- package/dist/app-loader-VArdOK2J.js.map +1 -0
- package/dist/{build-info-ClZOS0KE.js → build-info-1EmBSRGA.js} +5 -5
- package/dist/{build-info-ClZOS0KE.js.map → build-info-1EmBSRGA.js.map} +1 -1
- package/dist/components-BmUSYnlz.js +5 -0
- package/dist/{connect.config-C-b_Yhd6.js → connect.config-XXdN7RFy.js} +4 -3
- package/dist/{connect.config-C-b_Yhd6.js.map → connect.config-XXdN7RFy.js.map} +1 -1
- package/dist/{connection-state-KCa1yljA.js → connection-state-DTSv8MDQ.js} +4 -4
- package/dist/{connection-state-KCa1yljA.js.map → connection-state-DTSv8MDQ.js.map} +1 -1
- package/dist/cookie-banner-BJrG_u38.js +70 -0
- package/dist/cookie-banner-BJrG_u38.js.map +1 -0
- package/dist/{reload-connect-toast-DDQEupCN.js → i18n-CWyz5j1Z.js} +5 -28
- package/dist/i18n-CWyz5j1Z.js.map +1 -0
- package/dist/{load-CD4j4th2.js → load-RSUO_fUw.js} +10 -10
- package/dist/{load-CD4j4th2.js.map → load-RSUO_fUw.js.map} +1 -1
- package/dist/main.js +1 -1
- package/dist/{package-D471jIWr.js → package-C3Jxu89p.js} +5 -4
- package/dist/package-C3Jxu89p.js.map +1 -0
- package/dist/{pglite-seed-DRXPe7p-.js → pglite-seed-DQgqjlQu.js} +4 -4
- package/dist/{pglite-seed-DRXPe7p-.js.map → pglite-seed-DQgqjlQu.js.map} +1 -1
- package/dist/preferences-store-C-u8PIwU.js +104 -0
- package/dist/preferences-store-C-u8PIwU.js.map +1 -0
- package/dist/{reactor-C8TtroCF.js → reactor-C8E2rx64.js} +7 -7
- package/dist/{reactor-C8TtroCF.js.map → reactor-C8E2rx64.js.map} +1 -1
- package/dist/{registerServiceWorker-Bn1KWmk0.js → registerServiceWorker-D98IrUws.js} +4 -4
- package/dist/{registerServiceWorker-Bn1KWmk0.js.map → registerServiceWorker-D98IrUws.js.map} +1 -1
- package/dist/reload-connect-toast-BzHqUfbu.js +30 -0
- package/dist/reload-connect-toast-BzHqUfbu.js.map +1 -0
- package/dist/start-connect.js +1 -1
- package/dist/style.css +143 -0
- package/dist/{toast-CO6ChlzE.js → toast-DtfTKZND.js} +3 -3
- package/dist/{toast-CO6ChlzE.js.map → toast-DtfTKZND.js.map} +1 -1
- package/dist/{use-renown-login-BtGljnB4.js → use-renown-login-DtCtMWCo.js} +3 -3
- package/dist/{use-renown-login-BtGljnB4.js.map → use-renown-login-DtCtMWCo.js.map} +1 -1
- package/dist/{useRegistryPackages-DMhCvTWq.js → useRegistryPackages-dCWW6oNq.js} +3 -3
- package/dist/{useRegistryPackages-DMhCvTWq.js.map → useRegistryPackages-dCWW6oNq.js.map} +1 -1
- package/package.json +12 -11
- package/public/powerhouse.config.json +9 -1
- package/style.css +1 -0
- package/dist/SettingsModal-BDGa08en.js.map +0 -1
- package/dist/app-loader-B_-UnYWW.js.map +0 -1
- package/dist/app-loader-D3ujlZ31.js +0 -4
- package/dist/components-DGiuBUIT.js +0 -5
- package/dist/package-D471jIWr.js.map +0 -1
- package/dist/reload-connect-toast-DDQEupCN.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsModal-DzW3OIrB.js","sources":["../src/components/modal/modals/settings/about.tsx","../src/components/modal/modals/settings/ai-assistant.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-background p-3\">\n <h2 className=\"mb-2 font-semibold text-foreground\">Inspector</h2>\n <p className=\"mb-3 text-sm font-normal text-foreground\">\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-border bg-transparent px-3 py-1 text-sm font-medium text-foreground transition-colors hover:hover-effect\"\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-background 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((r) =>\n r.meta.collectionId.equals(DriveCollectionId.forDrive(d.header.id)),\n ),\n ),\n [drives, remotes],\n );\n\n return (\n <div className=\"my-4 bg-background p-3\">\n <h2 className=\"mb-2 font-semibold text-foreground\">Connected drives</h2>\n {remoteDrives.length === 0 ? (\n <p className=\"text-sm font-normal text-foreground\">\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-foreground\">\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-muted-foreground\">{info.host}</span>\n )}\n </div>\n {info.status === \"loading\" && (\n <div className=\"mt-1 text-xs text-muted-foreground\">Loading…</div>\n )}\n {info.status === \"error\" && (\n <div className=\"mt-1 text-xs text-destructive\">\n Could not load system info\n </div>\n )}\n {info.status === \"ready\" && (\n <div className=\"mt-1 text-xs text-foreground\">\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-muted-foreground\">\n Local drive — N/A\n </div>\n )}\n </li>\n );\n}\n","import {\n getAiSettings,\n isAiConfigured,\n updateAiSettings,\n type AiSettings,\n} from \"@powerhousedao/reactor-browser/ai\";\nimport { Bot } from \"lucide-react\";\nimport { useState } from \"react\";\n\ntype TestState =\n | { status: \"idle\" }\n | { status: \"testing\" }\n | { status: \"ok\"; message: string }\n | { status: \"error\"; message: string };\n\nconst FIELD_CLASS =\n \"w-full rounded-md border border-border bg-background p-2.5 text-sm text-foreground outline-none placeholder:text-muted-foreground\";\n\n/**\n * Settings-modal section for the in-browser AI assistant: the user master\n * toggle, the OpenAI-compatible endpoint configuration, and a\n * save-and-test-connection action. Only mounted when the deployment\n * enables the feature (`connect.ai.assistantEnabled`).\n */\nexport const AiAssistant: React.FC = () => {\n const [draft, setDraft] = useState<AiSettings>(() => getAiSettings());\n const [test, setTest] = useState<TestState>({ status: \"idle\" });\n\n const patch = (value: Partial<AiSettings>) =>\n setDraft((d) => ({ ...d, ...value }));\n\n const saveAndTest = async () => {\n updateAiSettings(draft);\n if (!isAiConfigured(draft)) {\n setTest({\n status: \"error\",\n message: \"Base URL, API key and model are all required.\",\n });\n return;\n }\n setTest({ status: \"testing\" });\n try {\n const base = draft.baseUrl.trim().replace(/\\/+$/, \"\");\n const res = await fetch(`${base}/models`, {\n headers: draft.apiKey.trim()\n ? { Authorization: `Bearer ${draft.apiKey.trim()}` }\n : undefined,\n });\n if (!res.ok) {\n throw new Error(\n `HTTP ${res.status}${res.statusText ? ` ${res.statusText}` : \"\"}`,\n );\n }\n const data: unknown = await res.json();\n const list = (data as { data?: unknown[] } | null)?.data;\n const count = Array.isArray(list) ? list.length : 0;\n setTest({\n status: \"ok\",\n message: count\n ? `Connected — ${count} model(s) available.`\n : \"Connected.\",\n });\n } catch (error) {\n setTest({\n status: \"error\",\n message: `Connection failed: ${\n error instanceof Error ? error.message : String(error)\n }`,\n });\n }\n };\n\n return (\n <div className=\"space-y-4 p-1\">\n <div>\n <h3 className=\"flex items-center gap-2 text-sm font-semibold text-foreground\">\n <Bot size={16} /> AI Assistant\n </h3>\n <p className=\"mt-1 text-xs text-muted-foreground\">\n An in-page assistant that creates and changes documents, manages\n drives, and inspects read models through an OpenAI-compatible\n endpoint.\n </p>\n </div>\n\n <label className=\"flex items-center gap-2 text-sm text-foreground\">\n <input\n type=\"checkbox\"\n checked={draft.enabled}\n onChange={(event) => {\n patch({ enabled: event.target.checked });\n // The switch acts immediately: the FAB mounts/unmounts at once.\n updateAiSettings({ enabled: event.target.checked });\n }}\n />\n Enable AI assistant\n </label>\n\n {draft.enabled && (\n <div className=\"space-y-2 rounded-lg border border-border p-3\">\n <div className=\"mb-1 text-xs font-semibold tracking-wide text-muted-foreground uppercase\">\n Endpoint\n </div>\n <input\n type=\"url\"\n placeholder=\"Base URL (e.g. https://api.openai.com/v1)\"\n value={draft.baseUrl}\n onChange={(e) => patch({ baseUrl: e.target.value })}\n className={FIELD_CLASS}\n spellCheck={false}\n />\n <input\n type=\"password\"\n placeholder=\"API key\"\n value={draft.apiKey}\n onChange={(e) => patch({ apiKey: e.target.value })}\n className={FIELD_CLASS}\n autoComplete=\"off\"\n spellCheck={false}\n />\n <input\n type=\"text\"\n placeholder=\"Model (e.g. gpt-4o-mini)\"\n value={draft.model}\n onChange={(e) => patch({ model: e.target.value })}\n className={FIELD_CLASS}\n spellCheck={false}\n />\n <label className=\"flex items-center gap-2 pt-1 text-sm text-foreground\">\n <input\n type=\"checkbox\"\n checked={draft.autoApproveWrites}\n onChange={(event) =>\n patch({ autoApproveWrites: event.target.checked })\n }\n />\n Auto-approve write actions\n </label>\n <p className=\"text-xs text-muted-foreground\">\n Requests go directly from this browser to the endpoint; the API key\n is never sent to Powerhouse servers. The endpoint must allow\n cross-origin (CORS) requests from this site.\n </p>\n <div className=\"flex items-center gap-3 pt-1\">\n <button\n type=\"button\"\n onClick={() => void saveAndTest()}\n disabled={test.status === \"testing\"}\n className=\"rounded-md bg-primary px-3 py-1.5 text-sm font-semibold text-primary-foreground hover:bg-primary/90 disabled:disabled-effect\"\n >\n {test.status === \"testing\"\n ? \"Testing…\"\n : \"Save & test connection\"}\n </button>\n {test.status === \"ok\" && (\n <span className=\"text-xs text-foreground\">{test.message}</span>\n )}\n {test.status === \"error\" && (\n <span className=\"text-xs text-destructive\">{test.message}</span>\n )}\n </div>\n </div>\n )}\n </div>\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={(drive) => {\n void handleDeleteDrive(drive);\n }}\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 installedPackages,\n availablePackages,\n availableHasMore,\n isLoadingAvailable,\n isLoadingMoreAvailable,\n availableError,\n ensureAvailableLoaded,\n fetchAvailablePage,\n loadMoreAvailable,\n setAvailableSearch,\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 console.error(\n `[Connect][PackageManager] Install failed for \"${packageSpec}\":`,\n result.error,\n );\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\". Map to plain-language copy — never dump the raw\n // API / loader message into the toast.\n const isLikelyNotFound = /failed to fetch|404|not found/i.test(message);\n const userMessage = isLikelyNotFound\n ? `Couldn't install \"${packageSpec}\". It isn't available on this registry or via npm.`\n : `Couldn't install \"${packageSpec}\". Please try again.`;\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 console.error(\n `[Connect][PackageManager] Uninstall failed for \"${packageName}\":`,\n error,\n );\n toast(`Couldn't uninstall \"${packageName}\". Please try again.`, {\n type: \"error\",\n });\n }\n }\n\n return (\n <div className=\"flex min-h-0 flex-1 flex-col\">\n <PackageManager\n mutable={true}\n installedPackages={installedPackages}\n availablePackages={availablePackages}\n isAvailableLoading={isLoadingAvailable}\n isLoadingMoreAvailable={isLoadingMoreAvailable}\n hasMoreAvailable={availableHasMore}\n onLoadMoreAvailable={loadMoreAvailable}\n availableError={availableError}\n onAvailableRetry={() => {\n void fetchAvailablePage({ reset: true });\n }}\n onAvailableSearchChange={setAvailableSearch}\n onAvailableTabOpen={ensureAvailableLoaded}\n onInstall={handleInstall}\n onUninstall={handleUninstall}\n />\n </div>\n );\n};\n","import {\n SettingsModal as SettingsModalV2,\n ThemeSwitch,\n} from \"@powerhousedao/design-system/connect\";\nimport { connectConfig } from \"@powerhousedao/connect/config\";\nimport { closePHModal, usePHModal } from \"@powerhousedao/reactor-browser\";\nimport { t } from \"i18next\";\nimport { Bot, CircleHelp, Package, PenLine, TriangleAlert } from \"lucide-react\";\nimport React, { useMemo } from \"react\";\nimport { About } from \"./settings/about.js\";\nimport { AiAssistant } from \"./settings/ai-assistant.js\";\nimport { DangerZone } from \"./settings/danger-zone.js\";\nimport { DefaultEditor } from \"./settings/default-editor.js\";\nimport { ConnectPackageManager } from \"./settings/package-manager.js\";\n\nconst iconProps = { size: 16 } as const;\n\nexport const SettingsModal: React.FC = () => {\n const phModal = usePHModal();\n const open = phModal?.type === \"settings\";\n\n const tabs = useMemo(\n () => [\n ...(connectConfig.aiAssistantEnabled\n ? [\n {\n id: \"ai-assistant\",\n icon: <Bot {...iconProps} />,\n label: \"AI Assistant\",\n content: AiAssistant,\n },\n ]\n : []),\n {\n id: \"package-manager\",\n icon: <Package {...iconProps} />,\n label: \"Package Manager\",\n content: ConnectPackageManager,\n },\n {\n id: \"default-editors\",\n icon: <PenLine {...iconProps} />,\n label: \"Default Editors\",\n content: DefaultEditor,\n },\n {\n id: \"danger-zone\",\n icon: <TriangleAlert {...iconProps} className=\"text-destructive\" />,\n label: <span className=\"text-destructive\">Danger Zone</span>,\n content: () => <DangerZone />,\n },\n {\n id: \"about\",\n icon: <CircleHelp {...iconProps} />,\n label: \"About\",\n content: About,\n },\n ],\n [],\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 navFooter={<ThemeSwitch horizontal />}\n />\n );\n};\n"],"names":["About","BaseAbout","packageJson","DangerZone","BaseDangerZone","DefaultEditor","BaseDefaultEditor","DefaultEditor","DangerZone","About","SettingsModalV2"],"mappings":"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","debug_id":"36fff710-998d-58f0-992e-0c5dd15b7a89"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3cbd7ba7-1f85-5cd7-99a4-4e34304144a6")}catch(e){}}();
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
4
|
import { useTranslation } from "react-i18next";
|
|
5
5
|
import "react";
|
|
@@ -30,5 +30,5 @@ const UpgradeDriveModal = () => {
|
|
|
30
30
|
//#endregion
|
|
31
31
|
export { UpgradeDriveModal };
|
|
32
32
|
|
|
33
|
-
//# sourceMappingURL=UpgradeDriveModal-
|
|
34
|
-
//# debugId=
|
|
33
|
+
//# sourceMappingURL=UpgradeDriveModal-077wPR2N.js.map
|
|
34
|
+
//# debugId=3cbd7ba7-1f85-5cd7-99a4-4e34304144a6
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpgradeDriveModal-
|
|
1
|
+
{"version":3,"file":"UpgradeDriveModal-077wPR2N.js","sources":["../src/components/modal/modals/UpgradeDriveModal.tsx"],"sourcesContent":["import { ConnectUpgradeDriveModal } from \"@powerhousedao/design-system/connect\";\nimport { closePHModal, usePHModal } from \"@powerhousedao/reactor-browser\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nexport const UpgradeDriveModal: React.FC = () => {\n const phModal = usePHModal();\n const open = phModal?.type === \"upgradeDrive\";\n const driveId = open ? phModal.driveId : undefined;\n\n const { t } = useTranslation();\n\n const onContinue = () => {\n // TODO: Implement upgrade drive\n console.log(\"Upgrade drive: \", driveId);\n closePHModal();\n };\n\n return (\n <ConnectUpgradeDriveModal\n open={open}\n onContinue={onContinue}\n header={t(\"modals.upgradeDrive.header\")}\n body={t(\"modals.upgradeDrive.body\")}\n cancelLabel={t(\"common.cancel\")}\n continueLabel={t(\"common.continue\")}\n onOpenChange={(status: boolean) => {\n if (!status) return closePHModal();\n }}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAKA,MAAa,0BAAoC;CAC/C,MAAM,UAAU,YAAY;CAC5B,MAAM,OAAO,SAAS,SAAS;CAC/B,MAAM,UAAU,OAAO,QAAQ,UAAU,KAAA;CAEzC,MAAM,EAAE,MAAM,gBAAgB;CAE9B,MAAM,mBAAmB;AAEvB,UAAQ,IAAI,mBAAmB,QAAQ;AACvC,gBAAc;;AAGhB,QACE,oBAAC,0BAAD;EACQ;EACM;EACZ,QAAQ,EAAE,6BAA6B;EACvC,MAAM,EAAE,2BAA2B;EACnC,aAAa,EAAE,gBAAgB;EAC/B,eAAe,EAAE,kBAAkB;EACnC,eAAe,WAAoB;AACjC,OAAI,CAAC,OAAQ,QAAO,cAAc;;EAEpC,CAAA","debug_id":"3cbd7ba7-1f85-5cd7-99a4-4e34304144a6"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { t as AppLoader } from "./app-loader-VArdOK2J.js";
|
|
2
|
+
export { AppLoader };
|
|
3
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="41807de5-e417-52fa-8038-dfeeb449f8ba")}catch(e){}}();
|
|
4
|
+
//# debugId=41807de5-e417-52fa-8038-dfeeb449f8ba
|
|
@@ -1,26 +1,29 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9484dd22-70cf-5c70-a426-ecd0dd523afb")}catch(e){}}();
|
|
3
3
|
import { n as getRuntimeConfig } from "./runtime-config-DL3QjcfM.js";
|
|
4
4
|
import { c as idbError } from "./pglite-major-B39aOEiE.js";
|
|
5
5
|
import { n as cloneFileData, r as migrateIdb } from "./pglite-migrate-core-Boxqqx-c.js";
|
|
6
|
-
import { i as
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { n as
|
|
10
|
-
import { n as dismissToast, r as toast, t as ToastContainer } from "./toast-
|
|
11
|
-
import { t as
|
|
6
|
+
import { a as defaultPHDocumentEditorConfig, i as defaultPHAppConfig, r as connectConfig } from "./connect.config-XXdN7RFy.js";
|
|
7
|
+
import { f as PRIMARY_IDB_NAMES, r as subscribeWorkerConnection, s as getCachedMigrationMajor, t as getWorkerConnectionStatus, u as subscribeMigrationMajor } from "./connection-state-DTSv8MDQ.js";
|
|
8
|
+
import { n as serviceWorkerManager, r as subscribeServiceWorkerUpdate, t as getServiceWorkerUpdateAvailable } from "./registerServiceWorker-D98IrUws.js";
|
|
9
|
+
import { n as setSentryModule } from "./reload-connect-toast-BzHqUfbu.js";
|
|
10
|
+
import { n as dismissToast, r as toast, t as ToastContainer } from "./toast-DtfTKZND.js";
|
|
11
|
+
import { i as useIsEmbedded, r as getIsEmbedded, t as useAcceptedCookies } from "./preferences-store-C-u8PIwU.js";
|
|
12
|
+
import { t as useOpenRenownLogin } from "./use-renown-login-DtCtMWCo.js";
|
|
12
13
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
-
import {
|
|
14
|
+
import { useTranslation } from "react-i18next";
|
|
14
15
|
import React, { StrictMode, Suspense, createElement, lazy, useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
15
16
|
import { DriveCollectionId, RenownWalletProvider, addFileWithProgress, getRevisionFromDate, initTheme, logout, setPHAppConfig, setPHDocumentEditorConfig, setRevisionHistoryVisible, setSelectedDrive, setSelectedNode, showPHModal, useAppModuleById, useConnectionStates, useDefaultAppModule, useDocumentById, useDocumentModelModuleById, useDocumentOperations, useDocumentVersionStatus, useDrives, useEditorModuleById, useEditorPreloader, useFallbackEditorModule, useIsAddDriveEnabled, useNodeParentFolderById, usePHModal, usePackageDiscoveryService, useReactorClientModule, useRevisionHistoryVisible, useSelectedDocument, useSelectedDocumentId, useSelectedDriveSafe, useSelectedFolder, useSelectedTimelineItem, useSyncList, useTheme, useUser, useVetraPackageManager, useVetraPackages } from "@powerhousedao/reactor-browser";
|
|
16
17
|
import { childLogger } from "document-model";
|
|
17
|
-
import { ConnectSidebar, ConnectTooltipProvider,
|
|
18
|
+
import { ConnectSidebar, ConnectTooltipProvider, DefaultEditorLoader, DriveAuthGate, DropZoneWrapper, HomeScreen, HomeScreenAddDriveItem, HomeScreenItem, LogoAnimation, PackageInstallModal, RevisionHistory, SidebarAddDriveItem, SidebarItem, UploadFileListContainer, formatFileSize, mapProgressStageToStatus, useEns } from "@powerhousedao/design-system/connect";
|
|
18
19
|
import { z } from "zod";
|
|
19
20
|
import { Outlet, RouterProvider, createBrowserRouter, createRoutesFromChildren, matchRoutes, useLocation, useNavigationType } from "react-router-dom";
|
|
20
21
|
import { useHotkeys } from "react-hotkeys-hook";
|
|
21
22
|
import { Icon, Modal, PowerhouseButton } from "@powerhousedao/design-system";
|
|
22
23
|
import { ErrorBoundary } from "react-error-boundary";
|
|
23
24
|
import { GenericDriveExplorer } from "@powerhousedao/powerhouse-vetra-packages/editors";
|
|
25
|
+
import { createReactorMcpProvider } from "@powerhousedao/reactor-mcp/tools";
|
|
26
|
+
import { ReactorChatFab } from "@powerhousedao/reactor-browser/ai";
|
|
24
27
|
import { twMerge } from "tailwind-merge";
|
|
25
28
|
import { mockAdapter } from "@renown/sdk/wallet/mock";
|
|
26
29
|
import { privyAdapter } from "@renown/sdk/wallet/privy";
|
|
@@ -153,17 +156,17 @@ function initLaunchQueueFileHandling() {
|
|
|
153
156
|
//#endregion
|
|
154
157
|
//#region src/utils/open-file-uploads.ts
|
|
155
158
|
let uploads = [];
|
|
156
|
-
const listeners$
|
|
159
|
+
const listeners$1 = /* @__PURE__ */ new Set();
|
|
157
160
|
function notifyUploadListeners() {
|
|
158
|
-
for (const listener of listeners$
|
|
161
|
+
for (const listener of listeners$1) listener();
|
|
159
162
|
}
|
|
160
163
|
function getOpenFileUploads() {
|
|
161
164
|
return uploads;
|
|
162
165
|
}
|
|
163
166
|
function subscribeOpenFileUploads(cb) {
|
|
164
|
-
listeners$
|
|
167
|
+
listeners$1.add(cb);
|
|
165
168
|
return () => {
|
|
166
|
-
listeners$
|
|
169
|
+
listeners$1.delete(cb);
|
|
167
170
|
};
|
|
168
171
|
}
|
|
169
172
|
function removeOpenFileUpload(id) {
|
|
@@ -260,18 +263,18 @@ function runOpenFileImports(args) {
|
|
|
260
263
|
//#endregion
|
|
261
264
|
//#region src/components/migration-status.ts
|
|
262
265
|
let current = null;
|
|
263
|
-
const listeners
|
|
266
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
264
267
|
function setMigrationStatus(status) {
|
|
265
268
|
current = status;
|
|
266
|
-
for (const l of listeners
|
|
269
|
+
for (const l of listeners) l();
|
|
267
270
|
}
|
|
268
271
|
function getMigrationStatus() {
|
|
269
272
|
return current;
|
|
270
273
|
}
|
|
271
274
|
function subscribeMigrationStatus(cb) {
|
|
272
|
-
listeners
|
|
275
|
+
listeners.add(cb);
|
|
273
276
|
return () => {
|
|
274
|
-
listeners
|
|
277
|
+
listeners.delete(cb);
|
|
275
278
|
};
|
|
276
279
|
}
|
|
277
280
|
//#endregion
|
|
@@ -390,42 +393,6 @@ async function migrateAllIfNeeded() {
|
|
|
390
393
|
});
|
|
391
394
|
}
|
|
392
395
|
//#endregion
|
|
393
|
-
//#region src/hooks/useAcceptedCookies.ts
|
|
394
|
-
const ACCEPTED_COOKIES_KEY_STORAGE = `${connectConfig.routerBasename}:acceptedCookies`;
|
|
395
|
-
const listeners$1 = /* @__PURE__ */ new Set();
|
|
396
|
-
let cookies = getInitial$1();
|
|
397
|
-
function getInitial$1() {
|
|
398
|
-
try {
|
|
399
|
-
const value = localStorage.getItem(ACCEPTED_COOKIES_KEY_STORAGE);
|
|
400
|
-
return value ? JSON.parse(value) : {
|
|
401
|
-
analytics: false,
|
|
402
|
-
marketing: false,
|
|
403
|
-
functional: false
|
|
404
|
-
};
|
|
405
|
-
} catch {
|
|
406
|
-
return {
|
|
407
|
-
analytics: false,
|
|
408
|
-
marketing: false,
|
|
409
|
-
functional: false
|
|
410
|
-
};
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
function getCookies() {
|
|
414
|
-
return cookies;
|
|
415
|
-
}
|
|
416
|
-
function setCookies(setter) {
|
|
417
|
-
cookies = setter(cookies);
|
|
418
|
-
localStorage.setItem(ACCEPTED_COOKIES_KEY_STORAGE, JSON.stringify(cookies));
|
|
419
|
-
listeners$1.forEach((fn) => fn());
|
|
420
|
-
}
|
|
421
|
-
function subscribe$1(fn) {
|
|
422
|
-
listeners$1.add(fn);
|
|
423
|
-
return () => listeners$1.delete(fn);
|
|
424
|
-
}
|
|
425
|
-
const useAcceptedCookies = () => {
|
|
426
|
-
return [useSyncExternalStore(subscribe$1, getCookies, getCookies), setCookies];
|
|
427
|
-
};
|
|
428
|
-
//#endregion
|
|
429
396
|
//#region src/services/openpanel/buffer.ts
|
|
430
397
|
const buffer = [];
|
|
431
398
|
let errorHandler;
|
|
@@ -650,52 +617,6 @@ function createOpenPanelProcessorFactory(config) {
|
|
|
650
617
|
};
|
|
651
618
|
}
|
|
652
619
|
//#endregion
|
|
653
|
-
//#region src/hooks/useIsEmbedded.ts
|
|
654
|
-
/**
|
|
655
|
-
* Detects whether Connect is being rendered inside another app (e.g. inside
|
|
656
|
-
* an iframe in the vetra-cli drive editor). When `?embed=1` is present in the
|
|
657
|
-
* URL, chrome that doesn't make sense in the embedded context — the cookie
|
|
658
|
-
* banner, the outer sidebar — is suppressed.
|
|
659
|
-
*/
|
|
660
|
-
function getIsEmbedded() {
|
|
661
|
-
if (typeof window === "undefined") return false;
|
|
662
|
-
try {
|
|
663
|
-
const value = new URLSearchParams(window.location.search).get("embed");
|
|
664
|
-
return value !== null && value !== "0" && value !== "false";
|
|
665
|
-
} catch {
|
|
666
|
-
return false;
|
|
667
|
-
}
|
|
668
|
-
}
|
|
669
|
-
function useIsEmbedded() {
|
|
670
|
-
return getIsEmbedded();
|
|
671
|
-
}
|
|
672
|
-
const COOKIE_BANNER_KEY_STORAGE = `${connectConfig.routerBasename}:display-cookie-banner`;
|
|
673
|
-
const listeners = /* @__PURE__ */ new Set();
|
|
674
|
-
let bannerShown = getInitial();
|
|
675
|
-
function getInitial() {
|
|
676
|
-
if (getIsEmbedded()) return false;
|
|
677
|
-
try {
|
|
678
|
-
return localStorage.getItem(COOKIE_BANNER_KEY_STORAGE) !== "false";
|
|
679
|
-
} catch (error) {
|
|
680
|
-
console.error(error);
|
|
681
|
-
return true;
|
|
682
|
-
}
|
|
683
|
-
}
|
|
684
|
-
function getCookieBannerState() {
|
|
685
|
-
return bannerShown;
|
|
686
|
-
}
|
|
687
|
-
function setCookieBannerState(state) {
|
|
688
|
-
bannerShown = state;
|
|
689
|
-
localStorage.setItem(COOKIE_BANNER_KEY_STORAGE, JSON.stringify(state));
|
|
690
|
-
}
|
|
691
|
-
function subscribe(fn) {
|
|
692
|
-
listeners.add(fn);
|
|
693
|
-
return () => listeners.delete(fn);
|
|
694
|
-
}
|
|
695
|
-
const useCookieBanner = () => {
|
|
696
|
-
return [useSyncExternalStore(subscribe, getCookieBannerState, getCookieBannerState), setCookieBannerState];
|
|
697
|
-
};
|
|
698
|
-
//#endregion
|
|
699
620
|
//#region src/hooks/useFailedInstallations.ts
|
|
700
621
|
const emptyArray$1 = [];
|
|
701
622
|
function useFailedInstallations() {
|
|
@@ -1275,6 +1196,30 @@ const SentryProvider = ({ children }) => {
|
|
|
1275
1196
|
return children;
|
|
1276
1197
|
};
|
|
1277
1198
|
//#endregion
|
|
1199
|
+
//#region src/components/reactor-chat.tsx
|
|
1200
|
+
/**
|
|
1201
|
+
* Resolves the reactor tool descriptors for the chat agent from the
|
|
1202
|
+
* browser's live reactor client. Built lazily at send time so the reactor
|
|
1203
|
+
* (and its SharedWorker) do not need to be ready at render time.
|
|
1204
|
+
*/
|
|
1205
|
+
function getReactorTools() {
|
|
1206
|
+
const ph = window.ph;
|
|
1207
|
+
const client = ph?.reactorClient;
|
|
1208
|
+
if (!client) return Promise.reject(/* @__PURE__ */ new Error("The reactor client is not available yet. Try again shortly."));
|
|
1209
|
+
const syncManager = ph?.reactorClientModule?.reactorModule?.syncModule?.syncManager;
|
|
1210
|
+
return createReactorMcpProvider({
|
|
1211
|
+
client,
|
|
1212
|
+
syncManager
|
|
1213
|
+
}).then((provider) => Object.values(provider.tools).map((tool) => ({
|
|
1214
|
+
...tool,
|
|
1215
|
+
inputSchema: tool.inputSchema ?? {}
|
|
1216
|
+
})));
|
|
1217
|
+
}
|
|
1218
|
+
/** Connect's bottom-right AI chat FAB, bound to the browser reactor. */
|
|
1219
|
+
function ConnectReactorChatFab() {
|
|
1220
|
+
return /* @__PURE__ */ jsx(ReactorChatFab, { getTools: getReactorTools });
|
|
1221
|
+
}
|
|
1222
|
+
//#endregion
|
|
1278
1223
|
//#region src/components/missing-model-banner.tsx
|
|
1279
1224
|
const reasonLabels = {
|
|
1280
1225
|
"no-registry": "No package registry is configured.",
|
|
@@ -1562,6 +1507,7 @@ const App = () => {
|
|
|
1562
1507
|
}, []);
|
|
1563
1508
|
return /* @__PURE__ */ jsx(SentryProvider, { children: /* @__PURE__ */ jsxs(RenownWalletProviders, { children: [
|
|
1564
1509
|
/* @__PURE__ */ jsx(ToastContainer, { position: "bottom-right" }),
|
|
1510
|
+
connectConfig.aiAssistantEnabled && /* @__PURE__ */ jsx(ConnectReactorChatFab, {}),
|
|
1565
1511
|
/* @__PURE__ */ jsx(MissingModelBanner, {}),
|
|
1566
1512
|
/* @__PURE__ */ jsx(Router, {}),
|
|
1567
1513
|
/* @__PURE__ */ jsx(OpenFileUploadList, {}),
|
|
@@ -1571,64 +1517,6 @@ const App = () => {
|
|
|
1571
1517
|
] }) });
|
|
1572
1518
|
};
|
|
1573
1519
|
//#endregion
|
|
1574
|
-
//#region src/components/cookie-banner.tsx
|
|
1575
|
-
const isCookieAccepted = (cookies, id) => {
|
|
1576
|
-
return cookies.some((cookie) => cookie.id === id && cookie.value);
|
|
1577
|
-
};
|
|
1578
|
-
const CookieBanner$1 = () => {
|
|
1579
|
-
const { t } = useTranslation(void 0, {
|
|
1580
|
-
useSuspense: true,
|
|
1581
|
-
i18n
|
|
1582
|
-
});
|
|
1583
|
-
const [showBanner, setShowBanner] = useCookieBanner();
|
|
1584
|
-
const [, setAcceptedCookies] = useAcceptedCookies();
|
|
1585
|
-
const cookiesInput = [{
|
|
1586
|
-
id: "analytics-cookie",
|
|
1587
|
-
label: t("cookieBanner.cookies.analytics"),
|
|
1588
|
-
value: true
|
|
1589
|
-
}];
|
|
1590
|
-
const handleAccept = (cookies) => {
|
|
1591
|
-
setShowBanner(false);
|
|
1592
|
-
if (isCookieAccepted(cookies, "analytics-cookie")) setAcceptedCookies((acceptedCookies) => ({
|
|
1593
|
-
...acceptedCookies,
|
|
1594
|
-
analytics: true
|
|
1595
|
-
}));
|
|
1596
|
-
};
|
|
1597
|
-
const handleReject = () => {
|
|
1598
|
-
setShowBanner(false);
|
|
1599
|
-
setAcceptedCookies(() => ({
|
|
1600
|
-
analytics: false,
|
|
1601
|
-
functional: false,
|
|
1602
|
-
marketing: false
|
|
1603
|
-
}));
|
|
1604
|
-
};
|
|
1605
|
-
if (!showBanner) return null;
|
|
1606
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
1607
|
-
className: "absolute inset-0 z-10000 backdrop-blur-sm",
|
|
1608
|
-
children: [/* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-primary opacity-15" }), /* @__PURE__ */ jsx("div", {
|
|
1609
|
-
className: "absolute inset-x-0 bottom-0 flex justify-center bg-background px-10 pt-10 pb-16 shadow-lg",
|
|
1610
|
-
children: /* @__PURE__ */ jsx(CookieBanner, {
|
|
1611
|
-
className: "max-w-[1024px]",
|
|
1612
|
-
cookies: cookiesInput,
|
|
1613
|
-
onSubmit: handleAccept,
|
|
1614
|
-
onReject: handleReject,
|
|
1615
|
-
submitLabel: t("cookieBanner.accept"),
|
|
1616
|
-
rejectLabel: t("cookieBanner.reject"),
|
|
1617
|
-
children: /* @__PURE__ */ jsx("p", {
|
|
1618
|
-
className: "font-semibold text-muted-foreground",
|
|
1619
|
-
children: /* @__PURE__ */ jsx(Trans, {
|
|
1620
|
-
i18nKey: "cookieBanner.message",
|
|
1621
|
-
components: { a: /* @__PURE__ */ jsx("a", {
|
|
1622
|
-
onClick: () => showPHModal({ type: "cookiesPolicy" }),
|
|
1623
|
-
className: "cursor-pointer text-foreground hover:underline"
|
|
1624
|
-
}, "cookieBanner.message-link") }
|
|
1625
|
-
}, "cookieBanner.message")
|
|
1626
|
-
})
|
|
1627
|
-
})
|
|
1628
|
-
})]
|
|
1629
|
-
});
|
|
1630
|
-
};
|
|
1631
|
-
//#endregion
|
|
1632
1520
|
//#region src/components/drive-icon.tsx
|
|
1633
1521
|
function DriveIcon({ drive }) {
|
|
1634
1522
|
const remotes = useSyncList();
|
|
@@ -2152,20 +2040,20 @@ const MigrationBanner = () => {
|
|
|
2152
2040
|
};
|
|
2153
2041
|
//#endregion
|
|
2154
2042
|
//#region src/components/modal/modals-container.tsx
|
|
2155
|
-
const AddDriveModal$1 = lazy(() => import("./AddDriveModal-
|
|
2156
|
-
const ClearStorageModal = lazy(() => import("./ClearStorageModal-
|
|
2157
|
-
const CookiesPolicyModal = lazy(() => import("./CookiesPolicyModal-
|
|
2158
|
-
const CreateDocumentModal$1 = lazy(() => import("./CreateDocumentModal-
|
|
2159
|
-
const DebugSettingsModal = lazy(() => import("./DebugSettingsModal-
|
|
2160
|
-
const DeleteDriveModal = lazy(() => import("./DeleteDriveModal-
|
|
2161
|
-
const DeleteItemModal = lazy(() => import("./DeleteItemModal-
|
|
2162
|
-
const DisclaimerModal = lazy(() => import("./DisclaimerModal-
|
|
2163
|
-
const DriveSettingsModal$1 = lazy(() => import("./DriveSettingsModal-
|
|
2164
|
-
const DownloadDocumentWithErrorsModal = lazy(() => import("./DownloadDocumentWithErrorsModal-
|
|
2165
|
-
const DocumentVersionUnsupportedModal = lazy(() => import("./DocumentVersionUnsupportedModal-
|
|
2166
|
-
const ConfirmDocumentUpgradeModal = lazy(() => import("./ConfirmDocumentUpgradeModal-
|
|
2167
|
-
const SettingsModal$1 = lazy(() => import("./SettingsModal-
|
|
2168
|
-
const UpgradeDriveModal = lazy(() => import("./UpgradeDriveModal-
|
|
2043
|
+
const AddDriveModal$1 = lazy(() => import("./AddDriveModal-DIMewThf.js").then((m) => ({ default: m.AddDriveModal })));
|
|
2044
|
+
const ClearStorageModal = lazy(() => import("./ClearStorageModal-DKy2tPYb.js").then((m) => ({ default: m.ClearStorageModal })));
|
|
2045
|
+
const CookiesPolicyModal = lazy(() => import("./CookiesPolicyModal-Bns4789o.js").then((m) => ({ default: m.CookiesPolicyModal })));
|
|
2046
|
+
const CreateDocumentModal$1 = lazy(() => import("./CreateDocumentModal-MlA2YRaW.js").then((m) => ({ default: m.CreateDocumentModal })));
|
|
2047
|
+
const DebugSettingsModal = lazy(() => import("./DebugSettingsModal-890WlVp4.js").then((m) => ({ default: m.DebugSettingsModal })));
|
|
2048
|
+
const DeleteDriveModal = lazy(() => import("./DeleteDriveModal-gP7j8C0Y.js").then((m) => ({ default: m.DeleteDriveModal })));
|
|
2049
|
+
const DeleteItemModal = lazy(() => import("./DeleteItemModal-CMM-fPsz.js").then((m) => ({ default: m.DeleteItemModal })));
|
|
2050
|
+
const DisclaimerModal = lazy(() => import("./DisclaimerModal-meOyQCfU.js").then((m) => ({ default: m.DisclaimerModal })));
|
|
2051
|
+
const DriveSettingsModal$1 = lazy(() => import("./DriveSettingsModal-Bv0y1BEK.js").then((m) => ({ default: m.DriveSettingsModal })));
|
|
2052
|
+
const DownloadDocumentWithErrorsModal = lazy(() => import("./DownloadDocumentWithErrorsModal-CCdbt2jJ.js").then((m) => ({ default: m.DownloadDocumentWithErrorsModal })));
|
|
2053
|
+
const DocumentVersionUnsupportedModal = lazy(() => import("./DocumentVersionUnsupportedModal-TlDH1aP5.js").then((m) => ({ default: m.DocumentVersionUnsupportedModal })));
|
|
2054
|
+
const ConfirmDocumentUpgradeModal = lazy(() => import("./ConfirmDocumentUpgradeModal-CcpgpyOB.js").then((m) => ({ default: m.ConfirmDocumentUpgradeModal })));
|
|
2055
|
+
const SettingsModal$1 = lazy(() => import("./SettingsModal-DzW3OIrB.js").then((m) => ({ default: m.SettingsModal })));
|
|
2056
|
+
const UpgradeDriveModal = lazy(() => import("./UpgradeDriveModal-077wPR2N.js").then((m) => ({ default: m.UpgradeDriveModal })));
|
|
2169
2057
|
const modalComponents = {
|
|
2170
2058
|
addDrive: AddDriveModal$1,
|
|
2171
2059
|
clearStorage: ClearStorageModal,
|
|
@@ -2179,13 +2067,13 @@ const modalComponents = {
|
|
|
2179
2067
|
downloadDocumentWithErrors: DownloadDocumentWithErrorsModal,
|
|
2180
2068
|
documentVersionUnsupported: DocumentVersionUnsupportedModal,
|
|
2181
2069
|
confirmDocumentUpgrade: ConfirmDocumentUpgradeModal,
|
|
2182
|
-
inspector: lazy(() => import("./InspectorModal-
|
|
2070
|
+
inspector: lazy(() => import("./InspectorModal-C3L5F4Ma.js").then((m) => ({ default: m.InspectorModal }))),
|
|
2183
2071
|
settings: SettingsModal$1,
|
|
2184
2072
|
upgradeDrive: UpgradeDriveModal,
|
|
2185
|
-
missingPackage: lazy(() => import("./MissingPackageModal-
|
|
2186
|
-
driveAuthRequired: lazy(() => import("./DriveAuthRequiredModal-
|
|
2187
|
-
openFileDocuments: lazy(() => import("./OpenFileDocumentsModal-
|
|
2188
|
-
login: lazy(() => import("./LoginModal-
|
|
2073
|
+
missingPackage: lazy(() => import("./MissingPackageModal-C6HO-a7E.js").then((m) => ({ default: m.ConnectMissingPackageModal }))),
|
|
2074
|
+
driveAuthRequired: lazy(() => import("./DriveAuthRequiredModal-9GsPnOYi.js").then((m) => ({ default: m.DriveAuthRequiredModal }))),
|
|
2075
|
+
openFileDocuments: lazy(() => import("./OpenFileDocumentsModal-6MK7Ourm.js").then((m) => ({ default: m.OpenFileDocumentsModal }))),
|
|
2076
|
+
login: lazy(() => import("./LoginModal-CxFHjxz8.js").then((m) => ({ default: m.LoginModal })))
|
|
2189
2077
|
};
|
|
2190
2078
|
const ModalsContainer = lazy(() => {
|
|
2191
2079
|
return Promise.resolve({ default: () => {
|
|
@@ -2224,8 +2112,9 @@ const ServiceWorkerUpdatePrompt = () => {
|
|
|
2224
2112
|
};
|
|
2225
2113
|
//#endregion
|
|
2226
2114
|
//#region src/components/app-loader.tsx
|
|
2115
|
+
const CookieBanner$1 = lazy(() => import("./cookie-banner-BJrG_u38.js").then((m) => ({ default: m.CookieBanner })));
|
|
2227
2116
|
const AppLoader = (props) => {
|
|
2228
|
-
const Load = lazy(() => import("./load-
|
|
2117
|
+
const Load = lazy(() => import("./load-RSUO_fUw.js").then((m) => m.loadComponent(props.localPackage)));
|
|
2229
2118
|
return /* @__PURE__ */ jsx(StrictMode, { children: /* @__PURE__ */ jsxs(ErrorBoundary$1, {
|
|
2230
2119
|
fallbackRender: (props) => /* @__PURE__ */ jsx(AppSkeleton, { children: /* @__PURE__ */ jsx(DetailedFallback, { ...props }) }),
|
|
2231
2120
|
resetKeys: [props.localPackage],
|
|
@@ -2239,9 +2128,14 @@ const AppLoader = (props) => {
|
|
|
2239
2128
|
children: /* @__PURE__ */ jsx(App, {})
|
|
2240
2129
|
})
|
|
2241
2130
|
}),
|
|
2242
|
-
/* @__PURE__ */ jsx(
|
|
2243
|
-
|
|
2244
|
-
|
|
2131
|
+
/* @__PURE__ */ jsx(ErrorBoundary$1, {
|
|
2132
|
+
variant: "silent",
|
|
2133
|
+
loggerContext: ["Connect", "CookieBanner"],
|
|
2134
|
+
children: /* @__PURE__ */ jsx(Suspense, {
|
|
2135
|
+
fallback: null,
|
|
2136
|
+
name: "CookieBanner",
|
|
2137
|
+
children: /* @__PURE__ */ jsx(CookieBanner$1, {})
|
|
2138
|
+
})
|
|
2245
2139
|
}),
|
|
2246
2140
|
/* @__PURE__ */ jsx(Suspense, {
|
|
2247
2141
|
name: "ModalsContainer",
|
|
@@ -2254,7 +2148,7 @@ const AppLoader = (props) => {
|
|
|
2254
2148
|
}) });
|
|
2255
2149
|
};
|
|
2256
2150
|
//#endregion
|
|
2257
|
-
export {
|
|
2151
|
+
export { pendingFileKey as _, DocumentEditor as a, AppContainer as c, OpenPanel as d, Analytics as f, getPendingImportFiles as g, clearPendingImportFiles as h, Root as i, EditorLoader as l, runOpenFileImports as m, Sidebar as n, DriveIcon as o, AppSkeleton as p, Router as r, App as s, AppLoader as t, DocumentEditorContainer as u, subscribePendingImportFiles as v };
|
|
2258
2152
|
|
|
2259
|
-
//# sourceMappingURL=app-loader-
|
|
2260
|
-
//# debugId=
|
|
2153
|
+
//# sourceMappingURL=app-loader-VArdOK2J.js.map
|
|
2154
|
+
//# debugId=9484dd22-70cf-5c70-a426-ecd0dd523afb
|