@powerhousedao/connect 6.2.2-dev.9 → 6.2.2
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/assets/document-icon-192x192.png +0 -0
- package/assets/document-icon-512x512.png +0 -0
- package/assets/pwa-192x192.png +0 -0
- package/assets/pwa-512x512-maskable.png +0 -0
- package/assets/pwa-512x512.png +0 -0
- package/dist/{AddDriveModal-MMHlkJBJ.js → AddDriveModal-Q-Ffh5XA.js} +5 -5
- package/dist/AddDriveModal-Q-Ffh5XA.js.map +1 -0
- package/dist/{ClearStorageModal-BrqS8I-J.js → ClearStorageModal-Fmh5kOVI.js} +4 -4
- package/dist/{ClearStorageModal-BrqS8I-J.js.map → ClearStorageModal-Fmh5kOVI.js.map} +1 -1
- package/dist/ConfirmDocumentUpgradeModal-FUOhZsk7.js +114 -0
- package/dist/ConfirmDocumentUpgradeModal-FUOhZsk7.js.map +1 -0
- package/dist/{CookiesPolicyModal-CkcUKPLb.js → CookiesPolicyModal-BpyPPyxS.js} +3 -3
- package/dist/{CookiesPolicyModal-CkcUKPLb.js.map → CookiesPolicyModal-BpyPPyxS.js.map} +1 -1
- package/dist/{CreateDocumentModal-CvsTh0HM.js → CreateDocumentModal-C45W8J0V.js} +7 -5
- package/dist/CreateDocumentModal-C45W8J0V.js.map +1 -0
- package/dist/{DebugSettingsModal-CCZi5Gmx.js → DebugSettingsModal-CpGjPPjw.js} +6 -6
- package/dist/{DebugSettingsModal-CCZi5Gmx.js.map → DebugSettingsModal-CpGjPPjw.js.map} +1 -1
- package/dist/{DeleteDriveModal-DSTK8FYk.js → DeleteDriveModal-Dug84t1j.js} +4 -4
- package/dist/{DeleteDriveModal-DSTK8FYk.js.map → DeleteDriveModal-Dug84t1j.js.map} +1 -1
- package/dist/{DeleteItemModal-B2nJmjsP.js → DeleteItemModal-mMzy3V8o.js} +4 -4
- package/dist/{DeleteItemModal-B2nJmjsP.js.map → DeleteItemModal-mMzy3V8o.js.map} +1 -1
- package/dist/{DisclaimerModal-D5FO34u9.js → DisclaimerModal-DvpD5dPM.js} +3 -3
- package/dist/{DisclaimerModal-D5FO34u9.js.map → DisclaimerModal-DvpD5dPM.js.map} +1 -1
- package/dist/DocumentVersionUnsupportedModal-C3Q0V75l.js +32 -0
- package/dist/DocumentVersionUnsupportedModal-C3Q0V75l.js.map +1 -0
- package/dist/{DownloadDocumentWithErrorsModal-tEr3bbtN.js → DownloadDocumentWithErrorsModal-IKl0ljQb.js} +3 -3
- package/dist/{DownloadDocumentWithErrorsModal-tEr3bbtN.js.map → DownloadDocumentWithErrorsModal-IKl0ljQb.js.map} +1 -1
- package/dist/DriveAuthRequiredModal-Cw9eCAQ_.js +36 -0
- package/dist/DriveAuthRequiredModal-Cw9eCAQ_.js.map +1 -0
- package/dist/{DriveSettingsModal-kR3hQnh4.js → DriveSettingsModal-C6-mRQiv.js} +3 -3
- package/dist/{DriveSettingsModal-kR3hQnh4.js.map → DriveSettingsModal-C6-mRQiv.js.map} +1 -1
- package/dist/{InspectorModal-BfwRytsl.js → InspectorModal-CiFokzb8.js} +6 -6
- package/dist/{InspectorModal-BfwRytsl.js.map → InspectorModal-CiFokzb8.js.map} +1 -1
- package/dist/LoginModal-CybbOm3N.js +75 -0
- package/dist/LoginModal-CybbOm3N.js.map +1 -0
- package/dist/{MissingPackageModal-BQcCQbOn.js → MissingPackageModal-C7usWVHQ.js} +18 -6
- package/dist/MissingPackageModal-C7usWVHQ.js.map +1 -0
- package/dist/OpenFileDocumentsModal-TskJgkzl.js +311 -0
- package/dist/OpenFileDocumentsModal-TskJgkzl.js.map +1 -0
- package/dist/SettingsModal-Chptr_NH.js +568 -0
- package/dist/SettingsModal-Chptr_NH.js.map +1 -0
- package/dist/{UpgradeDriveModal-BZGSE9_r.js → UpgradeDriveModal-_8t9slxQ.js} +3 -3
- package/dist/{UpgradeDriveModal-BZGSE9_r.js.map → UpgradeDriveModal-_8t9slxQ.js.map} +1 -1
- package/dist/{app-loader-BqH5S4gP.js → app-loader-CoxjGoau.js} +839 -560
- package/dist/app-loader-CoxjGoau.js.map +1 -0
- package/dist/app-loader-D7RV-yqv.js +4 -0
- package/dist/build-info-D8VekPcJ.js +28 -0
- package/dist/build-info-D8VekPcJ.js.map +1 -0
- package/dist/components-qFeURFYe.js +4 -0
- package/dist/{connect.config-vgUeFoNp.js → connect.config-DaHDEUrw.js} +13 -7
- package/dist/connect.config-DaHDEUrw.js.map +1 -0
- package/dist/{connection-state-DO_2lAEJ.js → connection-state-3w4liC1X.js} +4 -4
- package/dist/{connection-state-DO_2lAEJ.js.map → connection-state-3w4liC1X.js.map} +1 -1
- package/dist/cookie-banner-BH6bIq24.js +70 -0
- package/dist/cookie-banner-BH6bIq24.js.map +1 -0
- package/dist/{reload-connect-toast-D1Iqw9E_.js → i18n-CWO0vYVd.js} +23 -30
- package/dist/i18n-CWO0vYVd.js.map +1 -0
- package/dist/load-D_BC1JxM.js +131 -0
- package/dist/load-D_BC1JxM.js.map +1 -0
- package/dist/main.js +1 -1
- package/dist/{pglite-seed-z3B1JA38.js → pglite-seed-BqAUvNFw.js} +4 -4
- package/dist/{pglite-seed-z3B1JA38.js.map → pglite-seed-BqAUvNFw.js.map} +1 -1
- package/dist/preferences-store-_5Cw4_YV.js +104 -0
- package/dist/preferences-store-_5Cw4_YV.js.map +1 -0
- package/dist/pwa-manifest-link-DIgOSo2Q.js +34 -0
- package/dist/pwa-manifest-link-DIgOSo2Q.js.map +1 -0
- package/dist/{reactor-ynguOpe7.js → reactor-DBCWJdBA.js} +240 -67
- package/dist/reactor-DBCWJdBA.js.map +1 -0
- package/dist/reactor.worker.js +11 -6
- package/dist/reactor.worker.js.map +1 -1
- package/dist/{registerServiceWorker-nJIc0yEY.js → registerServiceWorker-BSzbNfvz.js} +6 -4
- package/dist/registerServiceWorker-BSzbNfvz.js.map +1 -0
- package/dist/sentry-QXKgQmr2.js +15 -0
- package/dist/sentry-QXKgQmr2.js.map +1 -0
- package/dist/start-connect.js +1 -1
- package/dist/style.css +243 -7
- package/dist/{toast-4t-VimvD.js → toast-BXIGd4Eb.js} +8 -5
- package/dist/toast-BXIGd4Eb.js.map +1 -0
- package/dist/use-renown-login-Cf3va6u_.js +52 -0
- package/dist/use-renown-login-Cf3va6u_.js.map +1 -0
- package/dist/useRegistryPackages-DMhCvTWq.js +314 -0
- package/dist/useRegistryPackages-DMhCvTWq.js.map +1 -0
- package/package.json +19 -13
- package/public/powerhouse.config.json +3 -0
- package/style.css +1 -0
- package/dist/AddDriveModal-MMHlkJBJ.js.map +0 -1
- package/dist/CreateDocumentModal-CvsTh0HM.js.map +0 -1
- package/dist/DriveAuthRequiredModal-BA2vS3oF.js +0 -40
- package/dist/DriveAuthRequiredModal-BA2vS3oF.js.map +0 -1
- package/dist/MissingPackageModal-BQcCQbOn.js.map +0 -1
- package/dist/SettingsModal-CdoFxyJJ.js +0 -289
- package/dist/SettingsModal-CdoFxyJJ.js.map +0 -1
- package/dist/app-loader-BqH5S4gP.js.map +0 -1
- package/dist/app-loader-J8Z4QAD5.js +0 -4
- package/dist/build-info-AUWI7jOw.js +0 -18
- package/dist/build-info-AUWI7jOw.js.map +0 -1
- package/dist/components-B6-PFL8z.js +0 -5
- package/dist/connect.config-vgUeFoNp.js.map +0 -1
- package/dist/load-BucYuvxH.js +0 -100
- package/dist/load-BucYuvxH.js.map +0 -1
- package/dist/package-BcKQ9BGX.js +0 -127
- package/dist/package-BcKQ9BGX.js.map +0 -1
- package/dist/reactor-ynguOpe7.js.map +0 -1
- package/dist/registerServiceWorker-nJIc0yEY.js.map +0 -1
- package/dist/reload-connect-toast-D1Iqw9E_.js.map +0 -1
- package/dist/toast-4t-VimvD.js.map +0 -1
- package/dist/useRegistryPackages-BaYtekjQ.js +0 -179
- package/dist/useRegistryPackages-BaYtekjQ.js.map +0 -1
|
@@ -1,289 +0,0 @@
|
|
|
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]="f1296641-877b-5809-8a83-3492148dcfbd")}catch(e){}}();
|
|
3
|
-
import { t as package_default } from "./package-BcKQ9BGX.js";
|
|
4
|
-
import { i as shortGitSha, n as getGitUrl, t as getGitSha } from "./build-info-AUWI7jOw.js";
|
|
5
|
-
import { r as connectConfig } from "./connect.config-vgUeFoNp.js";
|
|
6
|
-
import { n as toast } from "./toast-4t-VimvD.js";
|
|
7
|
-
import { t as useRegistryPackages } from "./useRegistryPackages-BaYtekjQ.js";
|
|
8
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
-
import { t } from "i18next";
|
|
10
|
-
import { useCallback, useMemo, useState } from "react";
|
|
11
|
-
import { DriveCollectionId, closePHModal, deleteDrive, setSelectedDrive, showPHModal, useDriveSystemInfo, useDrives, usePHModal, useSyncList, useVetraPackageManager } from "@powerhousedao/reactor-browser";
|
|
12
|
-
import { About, DangerZone, DefaultEditor, PackageManager, SettingsModal as SettingsModal$1, ThemeSwitch } from "@powerhousedao/design-system/connect";
|
|
13
|
-
import { Icon } from "@powerhousedao/design-system";
|
|
14
|
-
import { CircleHelp, Package, PenLine, TriangleAlert } from "lucide-react";
|
|
15
|
-
//#region src/components/modal/modals/settings/about.tsx
|
|
16
|
-
const About$1 = () => {
|
|
17
|
-
const onOpenInspector = () => {
|
|
18
|
-
closePHModal();
|
|
19
|
-
showPHModal({ type: "inspector" });
|
|
20
|
-
};
|
|
21
|
-
return /* @__PURE__ */ jsxs("div", { children: [
|
|
22
|
-
/* @__PURE__ */ jsx(About, {
|
|
23
|
-
packageJson: package_default,
|
|
24
|
-
phCliVersion: typeof connectConfig.phCliVersion === "string" ? connectConfig.phCliVersion : void 0
|
|
25
|
-
}),
|
|
26
|
-
/* @__PURE__ */ jsx(AppGitHash, {}),
|
|
27
|
-
/* @__PURE__ */ jsx(ConnectedDrives, {}),
|
|
28
|
-
/* @__PURE__ */ jsxs("div", {
|
|
29
|
-
className: "bg-background p-3",
|
|
30
|
-
children: [
|
|
31
|
-
/* @__PURE__ */ jsx("h2", {
|
|
32
|
-
className: "mb-2 font-semibold text-foreground",
|
|
33
|
-
children: "Inspector"
|
|
34
|
-
}),
|
|
35
|
-
/* @__PURE__ */ jsx("p", {
|
|
36
|
-
className: "mb-3 text-sm font-normal text-foreground",
|
|
37
|
-
children: "Explore the local database and sync state for debugging."
|
|
38
|
-
}),
|
|
39
|
-
/* @__PURE__ */ jsxs("button", {
|
|
40
|
-
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",
|
|
41
|
-
onClick: onOpenInspector,
|
|
42
|
-
type: "button",
|
|
43
|
-
children: ["Open Inspector ", /* @__PURE__ */ jsx(Icon, {
|
|
44
|
-
name: "CircleInfo",
|
|
45
|
-
size: 16
|
|
46
|
-
})]
|
|
47
|
-
})
|
|
48
|
-
]
|
|
49
|
-
})
|
|
50
|
-
] });
|
|
51
|
-
};
|
|
52
|
-
function AppGitHash() {
|
|
53
|
-
const sha = getGitSha();
|
|
54
|
-
if (sha === "unknown") return null;
|
|
55
|
-
const url = getGitUrl();
|
|
56
|
-
const label = shortGitSha(sha);
|
|
57
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
58
|
-
className: "bg-background p-3 text-sm",
|
|
59
|
-
children: [/* @__PURE__ */ jsx("span", {
|
|
60
|
-
className: "font-semibold",
|
|
61
|
-
children: "Git hash: "
|
|
62
|
-
}), url ? /* @__PURE__ */ jsx("a", {
|
|
63
|
-
className: "font-mono underline",
|
|
64
|
-
href: url,
|
|
65
|
-
target: "_blank",
|
|
66
|
-
rel: "noreferrer noopener",
|
|
67
|
-
title: sha,
|
|
68
|
-
children: label
|
|
69
|
-
}) : /* @__PURE__ */ jsx("span", {
|
|
70
|
-
className: "font-mono",
|
|
71
|
-
title: sha,
|
|
72
|
-
children: label
|
|
73
|
-
})]
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
function ConnectedDrives() {
|
|
77
|
-
const drives = useDrives() ?? [];
|
|
78
|
-
const remotes = useSyncList();
|
|
79
|
-
const remoteDrives = useMemo(() => drives.filter((d) => remotes.some((r) => r.meta.collectionId.equals(DriveCollectionId.forDrive(d.header.id)))), [drives, remotes]);
|
|
80
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
81
|
-
className: "my-4 bg-background p-3",
|
|
82
|
-
children: [/* @__PURE__ */ jsx("h2", {
|
|
83
|
-
className: "mb-2 font-semibold text-foreground",
|
|
84
|
-
children: "Connected drives"
|
|
85
|
-
}), remoteDrives.length === 0 ? /* @__PURE__ */ jsx("p", {
|
|
86
|
-
className: "text-sm font-normal text-foreground",
|
|
87
|
-
children: "No connected remote drives."
|
|
88
|
-
}) : /* @__PURE__ */ jsx("ul", {
|
|
89
|
-
className: "flex flex-col gap-3",
|
|
90
|
-
children: remoteDrives.map((drive) => /* @__PURE__ */ jsx(DriveAboutEntry, { drive }, drive.header.id))
|
|
91
|
-
})]
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
function DriveAboutEntry({ drive }) {
|
|
95
|
-
const info = useDriveSystemInfo(drive);
|
|
96
|
-
return /* @__PURE__ */ jsxs("li", {
|
|
97
|
-
className: "text-sm text-foreground",
|
|
98
|
-
children: [
|
|
99
|
-
/* @__PURE__ */ jsxs("div", {
|
|
100
|
-
className: "flex items-baseline gap-2",
|
|
101
|
-
children: [/* @__PURE__ */ jsx("span", {
|
|
102
|
-
className: "font-medium",
|
|
103
|
-
children: drive.state.global.name || drive.header.name
|
|
104
|
-
}), info.status === "ready" && /* @__PURE__ */ jsx("span", {
|
|
105
|
-
className: "text-xs text-muted-foreground",
|
|
106
|
-
children: info.host
|
|
107
|
-
})]
|
|
108
|
-
}),
|
|
109
|
-
info.status === "loading" && /* @__PURE__ */ jsx("div", {
|
|
110
|
-
className: "mt-1 text-xs text-muted-foreground",
|
|
111
|
-
children: "Loading…"
|
|
112
|
-
}),
|
|
113
|
-
info.status === "error" && /* @__PURE__ */ jsx("div", {
|
|
114
|
-
className: "mt-1 text-xs text-destructive",
|
|
115
|
-
children: "Could not load system info"
|
|
116
|
-
}),
|
|
117
|
-
info.status === "ready" && /* @__PURE__ */ jsxs("div", {
|
|
118
|
-
className: "mt-1 text-xs text-foreground",
|
|
119
|
-
children: [/* @__PURE__ */ jsxs("div", { children: [
|
|
120
|
-
/* @__PURE__ */ jsx("span", {
|
|
121
|
-
className: "font-medium",
|
|
122
|
-
children: "Version:"
|
|
123
|
-
}),
|
|
124
|
-
" ",
|
|
125
|
-
info.version
|
|
126
|
-
] }), /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("span", {
|
|
127
|
-
className: "font-medium",
|
|
128
|
-
children: "Git hash: "
|
|
129
|
-
}), info.gitUrl ? /* @__PURE__ */ jsx("a", {
|
|
130
|
-
className: "font-mono hover:underline",
|
|
131
|
-
href: info.gitUrl,
|
|
132
|
-
target: "_blank",
|
|
133
|
-
rel: "noreferrer noopener",
|
|
134
|
-
title: info.gitHash,
|
|
135
|
-
children: shortGitSha(info.gitHash)
|
|
136
|
-
}) : /* @__PURE__ */ jsx("span", {
|
|
137
|
-
className: "font-mono",
|
|
138
|
-
title: info.gitHash,
|
|
139
|
-
children: shortGitSha(info.gitHash)
|
|
140
|
-
})] })]
|
|
141
|
-
}),
|
|
142
|
-
info.status === "local" && /* @__PURE__ */ jsx("div", {
|
|
143
|
-
className: "mt-1 text-xs text-muted-foreground",
|
|
144
|
-
children: "Local drive — N/A"
|
|
145
|
-
})
|
|
146
|
-
]
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
//#endregion
|
|
150
|
-
//#region src/components/modal/modals/settings/danger-zone.tsx
|
|
151
|
-
const DangerZone$1 = () => {
|
|
152
|
-
const drives = useDrives();
|
|
153
|
-
const handleDeleteDrive = async (drive) => {
|
|
154
|
-
await deleteDrive(drive.header.id);
|
|
155
|
-
setSelectedDrive(void 0);
|
|
156
|
-
};
|
|
157
|
-
const handleClearStorage = () => {
|
|
158
|
-
showPHModal({ type: "clearStorage" });
|
|
159
|
-
};
|
|
160
|
-
return /* @__PURE__ */ jsx(DangerZone, {
|
|
161
|
-
drives: drives ?? [],
|
|
162
|
-
onDeleteDrive: (drive) => {
|
|
163
|
-
handleDeleteDrive(drive);
|
|
164
|
-
},
|
|
165
|
-
onClearStorage: handleClearStorage
|
|
166
|
-
});
|
|
167
|
-
};
|
|
168
|
-
//#endregion
|
|
169
|
-
//#region src/components/modal/modals/settings/default-editor.tsx
|
|
170
|
-
const documentModelEditorOptions = [{
|
|
171
|
-
label: "V1",
|
|
172
|
-
value: "document-model-editor"
|
|
173
|
-
}, {
|
|
174
|
-
label: "V2",
|
|
175
|
-
value: "document-model-editor-v2"
|
|
176
|
-
}];
|
|
177
|
-
const DefaultEditor$1 = () => {
|
|
178
|
-
const [documentModelEditor, setDocumentModelEditor] = useState(documentModelEditorOptions[1]);
|
|
179
|
-
const handleSetDocumentEditor = useCallback((value) => {
|
|
180
|
-
const option = documentModelEditorOptions.find((dm) => dm.value == value);
|
|
181
|
-
if (option) setDocumentModelEditor(option);
|
|
182
|
-
}, []);
|
|
183
|
-
return /* @__PURE__ */ jsx(DefaultEditor, {
|
|
184
|
-
documentModelEditor: documentModelEditor.value,
|
|
185
|
-
setDocumentModelEditor: handleSetDocumentEditor,
|
|
186
|
-
documentModelEditorOptions
|
|
187
|
-
});
|
|
188
|
-
};
|
|
189
|
-
//#endregion
|
|
190
|
-
//#region src/components/modal/modals/settings/package-manager.tsx
|
|
191
|
-
/**
|
|
192
|
-
* Split a `name@tag` spec into its bare package name. Mirrors the design-system's
|
|
193
|
-
* `parsePackageSpec` — duplicated here to avoid reaching into a deep subpath
|
|
194
|
-
* export. Scoped names split on the LAST `@`, unscoped on the first.
|
|
195
|
-
*/
|
|
196
|
-
function parseBareName(spec) {
|
|
197
|
-
const trimmed = spec.trim();
|
|
198
|
-
const at = trimmed.startsWith("@") ? trimmed.lastIndexOf("@") : trimmed.indexOf("@");
|
|
199
|
-
return at > 0 ? trimmed.slice(0, at) : trimmed;
|
|
200
|
-
}
|
|
201
|
-
const ConnectPackageManager = () => {
|
|
202
|
-
const packageManager = useVetraPackageManager();
|
|
203
|
-
const { registryPackageList, updateRegistryPackageStatus, registerFallbackRegistryPackage } = useRegistryPackages();
|
|
204
|
-
async function handleInstall(packageSpec) {
|
|
205
|
-
if (!packageManager) return;
|
|
206
|
-
const bareName = parseBareName(packageSpec);
|
|
207
|
-
const wasKnownToRegistry = registryPackageList.some((p) => p.name === bareName);
|
|
208
|
-
const result = await packageManager.addPackage(packageSpec);
|
|
209
|
-
if (result.type === "success") {
|
|
210
|
-
if (wasKnownToRegistry) updateRegistryPackageStatus(bareName, "registry-install");
|
|
211
|
-
else registerFallbackRegistryPackage(bareName, result.package, packageManager.getPackageVersion(bareName) ?? packageManager.getPackageVersion(packageSpec), "registry-install");
|
|
212
|
-
toast(`Package "${packageSpec}" installed successfully`, { type: "connect-success" });
|
|
213
|
-
} else {
|
|
214
|
-
const message = result.error.message;
|
|
215
|
-
toast(/failed to fetch|404|not found/i.test(message) ? `Could not install "${packageSpec}". The package isn't available on this registry, and the npmjs.org fallback could not resolve it either.` : `Failed to install "${packageSpec}": ${message}`, { type: "error" });
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
function handleUninstall(packageName) {
|
|
219
|
-
if (!packageManager) return;
|
|
220
|
-
try {
|
|
221
|
-
packageManager.removePackage(packageName);
|
|
222
|
-
updateRegistryPackageStatus(packageName, "available");
|
|
223
|
-
toast(`Package "${packageName}" uninstalled successfully`, { type: "connect-success" });
|
|
224
|
-
} catch (error) {
|
|
225
|
-
toast(`Failed to uninstall "${packageName}": ${error instanceof Error ? error.message : "Unknown error"}`, { type: "error" });
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
return /* @__PURE__ */ jsx("div", {
|
|
229
|
-
className: "flex h-full flex-1 flex-col",
|
|
230
|
-
children: /* @__PURE__ */ jsx(PackageManager, {
|
|
231
|
-
mutable: true,
|
|
232
|
-
registryPackageList,
|
|
233
|
-
onInstall: handleInstall,
|
|
234
|
-
onUninstall: handleUninstall
|
|
235
|
-
})
|
|
236
|
-
});
|
|
237
|
-
};
|
|
238
|
-
//#endregion
|
|
239
|
-
//#region src/components/modal/modals/SettingsModal.tsx
|
|
240
|
-
const iconProps = { size: 16 };
|
|
241
|
-
const SettingsModal = () => {
|
|
242
|
-
const open = usePHModal()?.type === "settings";
|
|
243
|
-
const tabs = useMemo(() => [
|
|
244
|
-
{
|
|
245
|
-
id: "package-manager",
|
|
246
|
-
icon: /* @__PURE__ */ jsx(Package, { ...iconProps }),
|
|
247
|
-
label: "Package Manager",
|
|
248
|
-
content: ConnectPackageManager
|
|
249
|
-
},
|
|
250
|
-
{
|
|
251
|
-
id: "default-editors",
|
|
252
|
-
icon: /* @__PURE__ */ jsx(PenLine, { ...iconProps }),
|
|
253
|
-
label: "Default Editors",
|
|
254
|
-
content: DefaultEditor$1
|
|
255
|
-
},
|
|
256
|
-
{
|
|
257
|
-
id: "danger-zone",
|
|
258
|
-
icon: /* @__PURE__ */ jsx(TriangleAlert, {
|
|
259
|
-
...iconProps,
|
|
260
|
-
className: "text-destructive"
|
|
261
|
-
}),
|
|
262
|
-
label: /* @__PURE__ */ jsx("span", {
|
|
263
|
-
className: "text-destructive",
|
|
264
|
-
children: "Danger Zone"
|
|
265
|
-
}),
|
|
266
|
-
content: () => /* @__PURE__ */ jsx(DangerZone$1, {})
|
|
267
|
-
},
|
|
268
|
-
{
|
|
269
|
-
id: "about",
|
|
270
|
-
icon: /* @__PURE__ */ jsx(CircleHelp, { ...iconProps }),
|
|
271
|
-
label: "About",
|
|
272
|
-
content: About$1
|
|
273
|
-
}
|
|
274
|
-
], []);
|
|
275
|
-
return /* @__PURE__ */ jsx(SettingsModal$1, {
|
|
276
|
-
open,
|
|
277
|
-
title: t("modals.connectSettings.title"),
|
|
278
|
-
onOpenChange: (status) => {
|
|
279
|
-
if (!status) return closePHModal();
|
|
280
|
-
},
|
|
281
|
-
tabs,
|
|
282
|
-
navFooter: /* @__PURE__ */ jsx(ThemeSwitch, { horizontal: true })
|
|
283
|
-
});
|
|
284
|
-
};
|
|
285
|
-
//#endregion
|
|
286
|
-
export { SettingsModal };
|
|
287
|
-
|
|
288
|
-
//# sourceMappingURL=SettingsModal-CdoFxyJJ.js.map
|
|
289
|
-
//# debugId=f1296641-877b-5809-8a83-3492148dcfbd
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsModal-CdoFxyJJ.js","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-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 { 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 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 {\n SettingsModal as SettingsModalV2,\n ThemeSwitch,\n} from \"@powerhousedao/design-system/connect\";\nimport { closePHModal, usePHModal } from \"@powerhousedao/reactor-browser\";\nimport { t } from \"i18next\";\nimport { CircleHelp, Package, PenLine, TriangleAlert } from \"lucide-react\";\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\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 {\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":"f1296641-877b-5809-8a83-3492148dcfbd"}
|