@powerhousedao/connect 6.2.0-dev.9 → 6.2.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/{AddDriveModal-kzL41qdg.js → AddDriveModal-BoKLJyUY.js} +4 -7
  2. package/dist/{AddDriveModal-kzL41qdg.js.map → AddDriveModal-BoKLJyUY.js.map} +1 -1
  3. package/dist/{ClearStorageModal-9qqxbO1y.js → ClearStorageModal-kAd_wAOs.js} +4 -4
  4. package/dist/{ClearStorageModal-9qqxbO1y.js.map → ClearStorageModal-kAd_wAOs.js.map} +1 -1
  5. package/dist/{DebugSettingsModal-DL2byDNM.js → DebugSettingsModal-BMCpNo7G.js} +8 -8
  6. package/dist/DebugSettingsModal-BMCpNo7G.js.map +1 -0
  7. package/dist/DriveAuthRequiredModal-B3VdLwSH.js +36 -0
  8. package/dist/DriveAuthRequiredModal-B3VdLwSH.js.map +1 -0
  9. package/dist/{DriveSettingsModal-L5sM-rIh.js → DriveSettingsModal-CsNFEJ9E.js} +5 -5
  10. package/dist/DriveSettingsModal-CsNFEJ9E.js.map +1 -0
  11. package/dist/{InspectorModal-v4CyjztA.js → InspectorModal-so7krTny.js} +4 -4
  12. package/dist/{InspectorModal-v4CyjztA.js.map → InspectorModal-so7krTny.js.map} +1 -1
  13. package/dist/{MissingPackageModal-D_N96M6a.js → MissingPackageModal-Bn036mWQ.js} +4 -4
  14. package/dist/{MissingPackageModal-D_N96M6a.js.map → MissingPackageModal-Bn036mWQ.js.map} +1 -1
  15. package/dist/{SettingsModal-V2LEfVtr.js → SettingsModal-mslhNfDQ.js} +34 -41
  16. package/dist/SettingsModal-mslhNfDQ.js.map +1 -0
  17. package/dist/{UpgradeDriveModal-CyAUDCU7.js → UpgradeDriveModal-C7lV4rAX.js} +3 -3
  18. package/dist/{UpgradeDriveModal-CyAUDCU7.js.map → UpgradeDriveModal-C7lV4rAX.js.map} +1 -1
  19. package/dist/{app-loader-CI2xLPWx.js → app-loader-4hDsMW8y.js} +67 -47
  20. package/dist/app-loader-4hDsMW8y.js.map +1 -0
  21. package/dist/app-loader-C0eLtDmc.js +4 -0
  22. package/dist/{build-info-1USAKlmN.js → build-info-DOqVIoUe.js} +4 -4
  23. package/dist/{build-info-1USAKlmN.js.map → build-info-DOqVIoUe.js.map} +1 -1
  24. package/dist/{components-BrHWoVhT.js → components-CiKy5Y4Y.js} +3 -3
  25. package/dist/{load-8SeZZVg5.js → load-hFcxdWCu.js} +5 -5
  26. package/dist/{load-8SeZZVg5.js.map → load-hFcxdWCu.js.map} +1 -1
  27. package/dist/main.js +1 -1
  28. package/dist/{package-CLWzWyke.js → package-DPnL2ERr.js} +6 -5
  29. package/dist/package-DPnL2ERr.js.map +1 -0
  30. package/dist/{reactor-BAZd7zrS.js → reactor-BkaNhcsJ.js} +14 -23
  31. package/dist/reactor-BkaNhcsJ.js.map +1 -0
  32. package/dist/start-connect.js +1 -1
  33. package/dist/style.css +851 -2392
  34. package/dist/{useRegistryPackages-Bh0luCvV.js → useRegistryPackages-B-gFECmd.js} +44 -8
  35. package/dist/useRegistryPackages-B-gFECmd.js.map +1 -0
  36. package/package.json +12 -11
  37. package/dist/DebugSettingsModal-DL2byDNM.js.map +0 -1
  38. package/dist/DriveSettingsModal-L5sM-rIh.js.map +0 -1
  39. package/dist/SettingsModal-V2LEfVtr.js.map +0 -1
  40. package/dist/app-loader-CI2xLPWx.js.map +0 -1
  41. package/dist/app-loader-D_bqwNxD.js +0 -4
  42. package/dist/package-CLWzWyke.js.map +0 -1
  43. package/dist/reactor-BAZd7zrS.js.map +0 -1
  44. package/dist/useRegistryPackages-Bh0luCvV.js.map +0 -1
@@ -1,16 +1,17 @@
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]="dec95aad-f725-5e94-8435-dc8217d7c443")}catch(e){}}();
3
- import { t as package_default } from "./package-CLWzWyke.js";
4
- import { n as getGitUrl, r as shortGitSha, t as getGitSha } from "./build-info-1USAKlmN.js";
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]="0dd1146a-0b04-571c-9b74-3288b9da4b40")}catch(e){}}();
3
+ import { t as package_default } from "./package-DPnL2ERr.js";
4
+ import { n as getGitUrl, r as shortGitSha, t as getGitSha } from "./build-info-DOqVIoUe.js";
5
5
  import { r as connectConfig } from "./connect.config-Bt4pvvWV.js";
6
6
  import { n as toast } from "./toast-BEy42aYx.js";
7
- import { t as useRegistryPackages } from "./useRegistryPackages-Bh0luCvV.js";
7
+ import { t as useRegistryPackages } from "./useRegistryPackages-B-gFECmd.js";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import { t } from "i18next";
10
10
  import { useCallback, useMemo, useState } from "react";
11
- import { closePHModal, deleteDrive, driveCollectionId, setSelectedDrive, showPHModal, useDriveSystemInfo, useDrives, usePHModal, useSyncList, useVetraPackageManager } from "@powerhousedao/reactor-browser";
12
- import { About, DangerZone, DefaultEditor, PackageManager, SettingsModal as SettingsModal$1 } from "@powerhousedao/design-system/connect";
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
13
  import { Icon } from "@powerhousedao/design-system";
14
+ import { CircleHelp, Package, PenLine, TriangleAlert } from "lucide-react";
14
15
  //#region src/components/modal/modals/settings/about.tsx
15
16
  const About$1 = () => {
16
17
  const onOpenInspector = () => {
@@ -25,18 +26,18 @@ const About$1 = () => {
25
26
  /* @__PURE__ */ jsx(AppGitHash, {}),
26
27
  /* @__PURE__ */ jsx(ConnectedDrives, {}),
27
28
  /* @__PURE__ */ jsxs("div", {
28
- className: "bg-gray-50 p-3 dark:bg-slate-800",
29
+ className: "bg-background p-3",
29
30
  children: [
30
31
  /* @__PURE__ */ jsx("h2", {
31
- className: "mb-2 font-semibold text-gray-700 dark:text-slate-200",
32
+ className: "mb-2 font-semibold text-foreground",
32
33
  children: "Inspector"
33
34
  }),
34
35
  /* @__PURE__ */ jsx("p", {
35
- className: "mb-3 text-sm font-normal text-gray-700 dark:text-slate-200",
36
+ className: "mb-3 text-sm font-normal text-foreground",
36
37
  children: "Explore the local database and sync state for debugging."
37
38
  }),
38
39
  /* @__PURE__ */ jsxs("button", {
39
- 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 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
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",
40
41
  onClick: onOpenInspector,
41
42
  type: "button",
42
43
  children: ["Open Inspector ", /* @__PURE__ */ jsx(Icon, {
@@ -54,7 +55,7 @@ function AppGitHash() {
54
55
  const url = getGitUrl();
55
56
  const label = shortGitSha(sha);
56
57
  return /* @__PURE__ */ jsxs("div", {
57
- className: "bg-gray-50 p-3 text-sm dark:bg-slate-800",
58
+ className: "bg-background p-3 text-sm",
58
59
  children: [/* @__PURE__ */ jsx("span", {
59
60
  className: "font-semibold",
60
61
  children: "Git hash: "
@@ -75,14 +76,14 @@ function AppGitHash() {
75
76
  function ConnectedDrives() {
76
77
  const drives = useDrives() ?? [];
77
78
  const remotes = useSyncList();
78
- const remoteDrives = useMemo(() => drives.filter((d) => remotes.some((r) => r.collectionId === driveCollectionId("main", d.header.id))), [drives, remotes]);
79
+ const remoteDrives = useMemo(() => drives.filter((d) => remotes.some((r) => r.collectionId.equals(DriveCollectionId.forDrive(d.header.id)))), [drives, remotes]);
79
80
  return /* @__PURE__ */ jsxs("div", {
80
- className: "my-4 bg-gray-50 p-3 dark:bg-slate-800",
81
+ className: "my-4 bg-background p-3",
81
82
  children: [/* @__PURE__ */ jsx("h2", {
82
- className: "mb-2 font-semibold text-gray-700 dark:text-slate-200",
83
+ className: "mb-2 font-semibold text-foreground",
83
84
  children: "Connected drives"
84
85
  }), remoteDrives.length === 0 ? /* @__PURE__ */ jsx("p", {
85
- className: "text-sm font-normal text-gray-700 dark:text-slate-200",
86
+ className: "text-sm font-normal text-foreground",
86
87
  children: "No connected remote drives."
87
88
  }) : /* @__PURE__ */ jsx("ul", {
88
89
  className: "flex flex-col gap-3",
@@ -93,7 +94,7 @@ function ConnectedDrives() {
93
94
  function DriveAboutEntry({ drive }) {
94
95
  const info = useDriveSystemInfo(drive);
95
96
  return /* @__PURE__ */ jsxs("li", {
96
- className: "text-sm text-gray-700 dark:text-slate-200",
97
+ className: "text-sm text-foreground",
97
98
  children: [
98
99
  /* @__PURE__ */ jsxs("div", {
99
100
  className: "flex items-baseline gap-2",
@@ -101,20 +102,20 @@ function DriveAboutEntry({ drive }) {
101
102
  className: "font-medium",
102
103
  children: drive.state.global.name || drive.header.name
103
104
  }), info.status === "ready" && /* @__PURE__ */ jsx("span", {
104
- className: "text-xs text-gray-500 dark:text-slate-400",
105
+ className: "text-xs text-muted-foreground",
105
106
  children: info.host
106
107
  })]
107
108
  }),
108
109
  info.status === "loading" && /* @__PURE__ */ jsx("div", {
109
- className: "mt-1 text-xs text-gray-400 dark:text-slate-500",
110
+ className: "mt-1 text-xs text-muted-foreground",
110
111
  children: "Loading…"
111
112
  }),
112
113
  info.status === "error" && /* @__PURE__ */ jsx("div", {
113
- className: "mt-1 text-xs text-red-600 dark:text-red-100",
114
+ className: "mt-1 text-xs text-destructive",
114
115
  children: "Could not load system info"
115
116
  }),
116
117
  info.status === "ready" && /* @__PURE__ */ jsxs("div", {
117
- className: "mt-1 text-xs text-gray-700 dark:text-slate-200",
118
+ className: "mt-1 text-xs text-foreground",
118
119
  children: [/* @__PURE__ */ jsxs("div", { children: [
119
120
  /* @__PURE__ */ jsx("span", {
120
121
  className: "font-medium",
@@ -139,7 +140,7 @@ function DriveAboutEntry({ drive }) {
139
140
  })] })]
140
141
  }),
141
142
  info.status === "local" && /* @__PURE__ */ jsx("div", {
142
- className: "mt-1 text-xs text-gray-400 dark:text-slate-500",
143
+ className: "mt-1 text-xs text-muted-foreground",
143
144
  children: "Local drive — N/A"
144
145
  })
145
146
  ]
@@ -236,46 +237,37 @@ const ConnectPackageManager = () => {
236
237
  };
237
238
  //#endregion
238
239
  //#region src/components/modal/modals/SettingsModal.tsx
240
+ const iconProps = { size: 16 };
239
241
  const SettingsModal = () => {
240
242
  const open = usePHModal()?.type === "settings";
241
243
  const tabs = useMemo(() => [
242
244
  {
243
245
  id: "package-manager",
244
- icon: /* @__PURE__ */ jsx(Icon, {
245
- name: "PackageManager",
246
- size: 12
247
- }),
246
+ icon: /* @__PURE__ */ jsx(Package, { ...iconProps }),
248
247
  label: "Package Manager",
249
248
  content: ConnectPackageManager
250
249
  },
251
250
  {
252
251
  id: "default-editors",
253
- icon: /* @__PURE__ */ jsx(Icon, {
254
- name: "Edit",
255
- size: 12
256
- }),
252
+ icon: /* @__PURE__ */ jsx(PenLine, { ...iconProps }),
257
253
  label: "Default Editors",
258
254
  content: DefaultEditor$1
259
255
  },
260
256
  {
261
257
  id: "danger-zone",
262
- icon: /* @__PURE__ */ jsx(Icon, {
263
- name: "Danger",
264
- size: 12,
265
- className: "text-red-900 dark:text-red-400"
258
+ icon: /* @__PURE__ */ jsx(TriangleAlert, {
259
+ ...iconProps,
260
+ className: "text-destructive"
266
261
  }),
267
262
  label: /* @__PURE__ */ jsx("span", {
268
- className: "text-red-900 dark:text-red-400",
263
+ className: "text-destructive",
269
264
  children: "Danger Zone"
270
265
  }),
271
266
  content: () => /* @__PURE__ */ jsx(DangerZone$1, {})
272
267
  },
273
268
  {
274
269
  id: "about",
275
- icon: /* @__PURE__ */ jsx(Icon, {
276
- name: "QuestionSquare",
277
- size: 12
278
- }),
270
+ icon: /* @__PURE__ */ jsx(CircleHelp, { ...iconProps }),
279
271
  label: "About",
280
272
  content: About$1
281
273
  }
@@ -286,11 +278,12 @@ const SettingsModal = () => {
286
278
  onOpenChange: (status) => {
287
279
  if (!status) return closePHModal();
288
280
  },
289
- tabs
281
+ tabs,
282
+ navFooter: /* @__PURE__ */ jsx(ThemeSwitch, { horizontal: true })
290
283
  });
291
284
  };
292
285
  //#endregion
293
286
  export { SettingsModal };
294
287
 
295
- //# sourceMappingURL=SettingsModal-V2LEfVtr.js.map
296
- //# debugId=dec95aad-f725-5e94-8435-dc8217d7c443
288
+ //# sourceMappingURL=SettingsModal-mslhNfDQ.js.map
289
+ //# debugId=0dd1146a-0b04-571c-9b74-3288b9da4b40
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsModal-mslhNfDQ.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.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":"0dd1146a-0b04-571c-9b74-3288b9da4b40"}
@@ -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]="e2bb15c6-0657-58b8-a11a-db584d53a8fe")}catch(e){}}();
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]="c6e40a20-1073-5d21-ba94-170c9adec293")}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-CyAUDCU7.js.map
34
- //# debugId=e2bb15c6-0657-58b8-a11a-db584d53a8fe
33
+ //# sourceMappingURL=UpgradeDriveModal-C7lV4rAX.js.map
34
+ //# debugId=c6e40a20-1073-5d21-ba94-170c9adec293
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradeDriveModal-CyAUDCU7.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":"e2bb15c6-0657-58b8-a11a-db584d53a8fe"}
1
+ {"version":3,"file":"UpgradeDriveModal-C7lV4rAX.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":"c6e40a20-1073-5d21-ba94-170c9adec293"}
@@ -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]="767f30ff-57f4-51fb-bcab-05b37d838b90")}catch(e){}}();
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]="f6a73b34-e60d-575f-aa22-95bcb1f704e4")}catch(e){}}();
3
3
  import { n as getRuntimeConfig } from "./runtime-config-DL3QjcfM.js";
4
4
  import { n as i18n } from "./reload-connect-toast-CwvSc6F-.js";
5
5
  import { a as defaultPHDocumentEditorConfig, i as defaultPHAppConfig, r as connectConfig } from "./connect.config-Bt4pvvWV.js";
@@ -10,9 +10,9 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
10
  import { PGlite } from "@electric-sql/pglite";
11
11
  import { Trans, useTranslation } from "react-i18next";
12
12
  import React, { StrictMode, Suspense, lazy, useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
13
- import { driveCollectionId, getRevisionFromDate, initTheme, logout, openRenown, setPHAppConfig, setPHDocumentEditorConfig, setRevisionHistoryVisible, setSelectedDrive, setSelectedNode, showPHModal, useAppModuleById, useDefaultAppModule, useDocumentById, useDocumentModelModuleById, useDocumentOperations, useDrives, useEditorModuleById, useFallbackEditorModule, useIsAddDriveEnabled, useNodeParentFolderById, usePHModal, usePackageDiscoveryService, useReactorClientModule, useRevisionHistoryVisible, useSelectedDocument, useSelectedDocumentId, useSelectedDriveSafe, useSelectedFolder, useSelectedTimelineItem, useSyncList, useTheme, useUser, useVetraPackageManager, useVetraPackages } from "@powerhousedao/reactor-browser";
13
+ import { DriveCollectionId, getRevisionFromDate, initTheme, logout, openRenown, setPHAppConfig, setPHDocumentEditorConfig, setRevisionHistoryVisible, setSelectedDrive, setSelectedNode, showPHModal, useAppModuleById, useConnectionStates, useDefaultAppModule, useDocumentById, useDocumentModelModuleById, useDocumentOperations, useDrives, useEditorModuleById, useFallbackEditorModule, useIsAddDriveEnabled, useNodeParentFolderById, usePHModal, usePackageDiscoveryService, useReactorClientModule, useRevisionHistoryVisible, useSelectedDocument, useSelectedDocumentId, useSelectedDriveSafe, useSelectedFolder, useSelectedTimelineItem, useSyncList, useTheme, useUser, useVetraPackageManager, useVetraPackages } from "@powerhousedao/reactor-browser";
14
14
  import { childLogger } from "document-model";
15
- import { ConnectSidebar, ConnectTooltipProvider, CookieBanner, DefaultEditorLoader, DropZoneWrapper, HomeScreen, HomeScreenAddDriveItem, HomeScreenItem, LogoAnimation, PackageInstallModal, RevisionHistory, SidebarAddDriveItem, SidebarItem, useEns } from "@powerhousedao/design-system/connect";
15
+ import { ConnectSidebar, ConnectTooltipProvider, CookieBanner, DefaultEditorLoader, DriveAuthGate, DropZoneWrapper, HomeScreen, HomeScreenAddDriveItem, HomeScreenItem, LogoAnimation, PackageInstallModal, RevisionHistory, SidebarAddDriveItem, SidebarItem, useEns } from "@powerhousedao/design-system/connect";
16
16
  import { z } from "zod";
17
17
  import { Outlet, RouterProvider, createBrowserRouter, createRoutesFromChildren, matchRoutes, useLocation, useNavigationType } from "react-router-dom";
18
18
  import { useHotkeys } from "react-hotkeys-hook";
@@ -743,12 +743,12 @@ const MigrationOverlay = () => {
743
743
  return /* @__PURE__ */ jsx("div", {
744
744
  className: "absolute inset-0 z-20 flex items-center justify-center",
745
745
  children: /* @__PURE__ */ jsxs("div", {
746
- className: "rounded-lg bg-white/90 px-6 py-4 text-sm text-gray-900 shadow-lg dark:bg-slate-900/90 dark:text-slate-50",
746
+ className: "rounded-lg bg-card/90 px-6 py-4 text-sm text-foreground shadow-lg",
747
747
  children: [/* @__PURE__ */ jsx("div", {
748
748
  className: "font-medium",
749
749
  children: "Upgrading local database…"
750
750
  }), /* @__PURE__ */ jsx("div", {
751
- className: "text-gray-700 dark:text-slate-200",
751
+ className: "text-foreground",
752
752
  children: PHASE_LABEL[status.phase]
753
753
  })]
754
754
  })
@@ -780,7 +780,7 @@ const AppSkeleton = (props) => {
780
780
  const isSSR = typeof window === "undefined";
781
781
  const isHomeScreen = !isSSR && window.location.pathname === getBasePath();
782
782
  return /* @__PURE__ */ jsxs("div", {
783
- className: "flex h-screen overflow-hidden bg-gray-50 dark:bg-slate-700",
783
+ className: "flex h-screen overflow-hidden bg-background",
784
784
  children: [
785
785
  !(!isSSR && getIsEmbedded()) && /* @__PURE__ */ jsx(ConnectSidebar, {
786
786
  className: "animate-pulse",
@@ -790,7 +790,7 @@ const AppSkeleton = (props) => {
790
790
  address: void 0
791
791
  }),
792
792
  /* @__PURE__ */ jsx(HomeScreen, {
793
- containerClassName: isSSR || !isHomeScreen ? "hidden home-screen" : void 0,
793
+ containerClassName: isSSR || !isHomeScreen ? "home-screen hidden" : void 0,
794
794
  children: props.children ?? null
795
795
  }),
796
796
  isSSR ? /* @__PURE__ */ jsx("script", { dangerouslySetInnerHTML: { __html: `
@@ -835,7 +835,7 @@ function DetailedFallback({ error, resetErrorBoundary }) {
835
835
  return /* @__PURE__ */ jsx("div", {
836
836
  className: "z-10 mx-auto flex max-w-[80%] flex-1 items-center justify-center p-6",
837
837
  children: /* @__PURE__ */ jsxs("div", {
838
- className: "w-full max-w-lg rounded-lg border border-gray-500 bg-gray-50 p-6 shadow-sm dark:border-slate-400 dark:bg-slate-800",
838
+ className: "w-full max-w-lg rounded-lg border border-border bg-background p-6 shadow-sm",
839
839
  children: [
840
840
  /* @__PURE__ */ jsxs("div", {
841
841
  className: "mb-3 flex items-center gap-2",
@@ -848,16 +848,16 @@ function DetailedFallback({ error, resetErrorBoundary }) {
848
848
  })]
849
849
  }),
850
850
  /* @__PURE__ */ jsx("p", {
851
- className: "mb-4 text-sm text-gray-700 dark:text-slate-200",
851
+ className: "mb-4 text-sm text-foreground",
852
852
  children: errorMessage
853
853
  }),
854
854
  errorDetails !== "{}" && /* @__PURE__ */ jsxs("details", {
855
855
  className: "group",
856
856
  children: [/* @__PURE__ */ jsx("summary", {
857
- className: "cursor-pointer text-sm font-medium text-gray-700 underline select-none hover:text-gray-700 dark:text-slate-200 dark:hover:text-slate-200",
857
+ className: "cursor-pointer text-sm font-medium text-foreground underline select-none hover:hover-effect",
858
858
  children: "Show details"
859
859
  }), /* @__PURE__ */ jsx("pre", {
860
- className: "mt-2 max-h-48 overflow-auto rounded-sm bg-gray-100 p-3 text-xs dark:bg-slate-700",
860
+ className: "mt-2 max-h-48 overflow-auto rounded-sm bg-muted p-3 text-xs",
861
861
  children: errorDetails
862
862
  })]
863
863
  }),
@@ -1219,11 +1219,11 @@ function MissingModelBanner() {
1219
1219
  const [open, setOpen] = useState(false);
1220
1220
  if (failed.length === 0) return null;
1221
1221
  return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("div", {
1222
- className: "flex items-center justify-between gap-3 bg-amber-100 px-4 py-2 text-sm text-amber-900 dark:bg-amber-800 dark:text-amber-100",
1222
+ className: "flex items-center justify-between gap-3 bg-warning/10 px-4 py-2 text-sm text-warning",
1223
1223
  children: [/* @__PURE__ */ jsx("span", { children: failed.length === 1 ? "1 document type couldn't load (missing model)." : `${failed.length} document types couldn't load (missing models).` }), /* @__PURE__ */ jsx("button", {
1224
1224
  type: "button",
1225
1225
  onClick: () => setOpen(true),
1226
- className: "rounded-md border border-amber-300 bg-gray-50 px-3 py-1 text-amber-900 hover:bg-amber-50 dark:border-amber-600 dark:bg-slate-800 dark:text-amber-100 dark:hover:bg-amber-900",
1226
+ className: "rounded-md border border-warning bg-background px-3 py-1 text-warning hover:hover-effect",
1227
1227
  children: "View"
1228
1228
  })]
1229
1229
  }), /* @__PURE__ */ jsx(MissingModelDetailsModal, {
@@ -1256,18 +1256,18 @@ function MissingModelDetailsModal(props) {
1256
1256
  },
1257
1257
  contentProps: { className: "rounded-3xl" },
1258
1258
  children: /* @__PURE__ */ jsxs("div", {
1259
- className: "w-[520px] max-w-[90vw] bg-gray-50 p-6 dark:bg-slate-800",
1259
+ className: "w-[520px] max-w-[90vw] bg-background p-6",
1260
1260
  children: [
1261
1261
  /* @__PURE__ */ jsx("div", {
1262
- className: "border-b border-gray-100 pb-2 text-2xl font-bold text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
1262
+ className: "border-b border-border pb-2 text-2xl font-bold text-foreground",
1263
1263
  children: "Missing document models"
1264
1264
  }),
1265
1265
  /* @__PURE__ */ jsx("div", {
1266
- className: "my-4 text-sm text-gray-700 dark:text-slate-200",
1266
+ className: "my-4 text-sm text-foreground",
1267
1267
  children: "The following document types couldn't be loaded. Documents using them won't display until the underlying package is installed."
1268
1268
  }),
1269
1269
  failed.length === 0 ? /* @__PURE__ */ jsx("div", {
1270
- className: "rounded-xl bg-gray-50 p-4 text-sm text-gray-700 dark:bg-slate-800 dark:text-slate-200",
1270
+ className: "rounded-xl bg-background p-4 text-sm text-foreground",
1271
1271
  children: "No outstanding failures."
1272
1272
  }) : /* @__PURE__ */ jsx("div", {
1273
1273
  className: "flex max-h-[60vh] flex-col gap-3 overflow-y-auto",
@@ -1275,18 +1275,18 @@ function MissingModelDetailsModal(props) {
1275
1275
  const isRetrying = retrying.has(entry.documentType);
1276
1276
  const retryDisabled = !canRetry(entry.reason) || isRetrying;
1277
1277
  return /* @__PURE__ */ jsxs("div", {
1278
- className: "rounded-xl bg-gray-50 p-4 dark:bg-slate-800",
1278
+ className: "rounded-xl bg-background p-4",
1279
1279
  children: [
1280
1280
  /* @__PURE__ */ jsx("div", {
1281
- className: "mb-1 font-mono text-sm font-semibold text-gray-900 dark:text-slate-100",
1281
+ className: "mb-1 font-mono text-sm font-semibold text-foreground",
1282
1282
  children: entry.documentType
1283
1283
  }),
1284
1284
  /* @__PURE__ */ jsx("div", {
1285
- className: "mb-2 text-xs text-gray-700 dark:text-slate-200",
1285
+ className: "mb-2 text-xs text-foreground",
1286
1286
  children: reasonLabels[entry.reason]
1287
1287
  }),
1288
1288
  entry.packageNames.length > 0 ? /* @__PURE__ */ jsxs("div", {
1289
- className: "mb-2 text-xs text-gray-500 dark:text-slate-400",
1289
+ className: "mb-2 text-xs text-muted-foreground",
1290
1290
  children: [
1291
1291
  "Package",
1292
1292
  entry.packageNames.length > 1 ? "s" : "",
@@ -1296,7 +1296,7 @@ function MissingModelDetailsModal(props) {
1296
1296
  ]
1297
1297
  }) : null,
1298
1298
  entry.error ? /* @__PURE__ */ jsx("div", {
1299
- className: "mb-2 font-mono text-xs wrap-break-word text-red-700 dark:text-red-100",
1299
+ className: "mb-2 font-mono text-xs wrap-break-word text-destructive",
1300
1300
  children: entry.error.message
1301
1301
  }) : null,
1302
1302
  /* @__PURE__ */ jsx("div", {
@@ -1306,7 +1306,7 @@ function MissingModelDetailsModal(props) {
1306
1306
  onClick: () => void handleRetry(entry.documentType),
1307
1307
  disabled: retryDisabled,
1308
1308
  title: canRetry(entry.reason) ? void 0 : "No registry is configured; nothing to retry against.",
1309
- className: twMerge("min-h-[32px] rounded-xl px-3 py-1 text-sm font-semibold text-white transition-all hover:scale-105 dark:text-slate-900", retryDisabled ? "cursor-not-allowed bg-gray-300 hover:scale-100 dark:bg-slate-600 dark:text-slate-100" : "bg-gray-800 active:opacity-75 dark:bg-slate-100"),
1309
+ className: twMerge("min-h-[32px] rounded-xl px-3 py-1 text-sm font-semibold text-foreground transition-all hover:hover-effect", retryDisabled ? "cursor-not-allowed bg-secondary hover:hover-effect" : "bg-primary text-primary-foreground active:active-effect"),
1310
1310
  children: isRetrying ? "Retrying..." : "Try install again"
1311
1311
  })
1312
1312
  })
@@ -1319,7 +1319,7 @@ function MissingModelDetailsModal(props) {
1319
1319
  children: /* @__PURE__ */ jsx("button", {
1320
1320
  type: "button",
1321
1321
  onClick: onClose,
1322
- className: "min-h-[36px] rounded-xl border border-gray-200 bg-gray-50 px-4 py-2 text-sm font-semibold text-gray-800 hover:bg-gray-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-800",
1322
+ className: "min-h-[36px] rounded-xl border border-border bg-background px-4 py-2 text-sm font-semibold text-foreground hover:hover-effect",
1323
1323
  children: "Close"
1324
1324
  })
1325
1325
  })
@@ -1410,8 +1410,8 @@ const CookieBanner$1 = () => {
1410
1410
  if (!showBanner) return null;
1411
1411
  return /* @__PURE__ */ jsxs("div", {
1412
1412
  className: "absolute inset-0 z-10000 backdrop-blur-sm",
1413
- children: [/* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-gray-900 opacity-15 dark:bg-slate-50" }), /* @__PURE__ */ jsx("div", {
1414
- className: "absolute inset-x-0 bottom-0 flex justify-center bg-gray-50 px-10 pt-10 pb-16 shadow-lg dark:bg-slate-800",
1413
+ children: [/* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-primary opacity-15" }), /* @__PURE__ */ jsx("div", {
1414
+ className: "absolute inset-x-0 bottom-0 flex justify-center bg-background px-10 pt-10 pb-16 shadow-lg",
1415
1415
  children: /* @__PURE__ */ jsx(CookieBanner, {
1416
1416
  className: "max-w-[1024px]",
1417
1417
  cookies: cookiesInput,
@@ -1420,12 +1420,12 @@ const CookieBanner$1 = () => {
1420
1420
  submitLabel: t("cookieBanner.accept"),
1421
1421
  rejectLabel: t("cookieBanner.reject"),
1422
1422
  children: /* @__PURE__ */ jsx("p", {
1423
- className: "font-semibold text-gray-500 dark:text-slate-400",
1423
+ className: "font-semibold text-muted-foreground",
1424
1424
  children: /* @__PURE__ */ jsx(Trans, {
1425
1425
  i18nKey: "cookieBanner.message",
1426
1426
  components: { a: /* @__PURE__ */ jsx("a", {
1427
1427
  onClick: () => showPHModal({ type: "cookiesPolicy" }),
1428
- className: "cursor-pointer text-gray-900 hover:underline dark:text-slate-50"
1428
+ className: "cursor-pointer text-foreground hover:underline"
1429
1429
  }, "cookieBanner.message-link") }
1430
1430
  }, "cookieBanner.message")
1431
1431
  })
@@ -1439,7 +1439,7 @@ function DriveIcon({ drive }) {
1439
1439
  const remotes = useSyncList();
1440
1440
  const isRemoteDrive = useMemo(() => {
1441
1441
  if (!drive) return false;
1442
- return remotes.some((remote) => remote.collectionId === driveCollectionId("main", drive.header.id));
1442
+ return remotes.some((remote) => remote.collectionId.equals(DriveCollectionId.forDrive(drive.header.id)));
1443
1443
  }, [remotes, drive]);
1444
1444
  const driveIconSrc = drive?.state.global.icon;
1445
1445
  if (driveIconSrc) return /* @__PURE__ */ jsx("img", {
@@ -1604,7 +1604,7 @@ const DocumentEditor = (props) => {
1604
1604
  //#region src/components/root.tsx
1605
1605
  function Root() {
1606
1606
  return /* @__PURE__ */ jsx("div", {
1607
- className: "h-screen bg-gray-50 dark:bg-slate-800",
1607
+ className: "h-screen bg-background",
1608
1608
  children: /* @__PURE__ */ jsx("div", {
1609
1609
  className: `flex h-screen items-stretch overflow-auto`,
1610
1610
  role: "presentation",
@@ -1620,8 +1620,24 @@ function Root() {
1620
1620
  });
1621
1621
  }
1622
1622
  //#endregion
1623
+ //#region src/components/use-drive-auth-gate.ts
1624
+ /** Gate an anonymous user only when a remote failed with an auth rejection
1625
+ * (`requiresAuth`) — the switchboard refusing the caller for lack of login. */
1626
+ function computeNeedsLogin(isAuthenticated, connectionStates) {
1627
+ if (isAuthenticated) return false;
1628
+ for (const snap of connectionStates.values()) if (snap.state === "error" && snap.requiresAuth) return true;
1629
+ return false;
1630
+ }
1631
+ /** Live wrapper over {@link computeNeedsLogin}. */
1632
+ function useDriveAuthGate() {
1633
+ const user = useUser();
1634
+ const connectionStates = useConnectionStates();
1635
+ return { needsLogin: computeNeedsLogin(Boolean(user), connectionStates) };
1636
+ }
1637
+ //#endregion
1623
1638
  //#region src/pages/content.tsx
1624
1639
  function Content() {
1640
+ const { needsLogin } = useDriveAuthGate();
1625
1641
  const [selectedDrive] = useSelectedDriveSafe();
1626
1642
  const selectedFolder = useSelectedFolder();
1627
1643
  const selectedDocumentId = useSelectedDocumentId();
@@ -1631,7 +1647,10 @@ function Content() {
1631
1647
  useEffect(() => {
1632
1648
  if (!selectedDrive) setPHAppConfig(defaultPHAppConfig);
1633
1649
  }, [selectedDrive]);
1634
- return /* @__PURE__ */ jsx(ContentContainer, { children: !selectedDocumentId && !selectedDrive && !selectedFolder ? /* @__PURE__ */ jsx(HomeScreenContainer, {}) : /* @__PURE__ */ jsx(AppContainer, {}) });
1650
+ return /* @__PURE__ */ jsx(ContentContainer, { children: needsLogin ? /* @__PURE__ */ jsx("div", {
1651
+ className: "flex h-full items-center justify-center p-4",
1652
+ children: /* @__PURE__ */ jsx(DriveAuthGate, { onLogin: openRenown })
1653
+ }) : !selectedDocumentId && !selectedDrive && !selectedFolder ? /* @__PURE__ */ jsx(HomeScreenContainer, {}) : /* @__PURE__ */ jsx(AppContainer, {}) });
1635
1654
  }
1636
1655
  function ContentContainer({ children }) {
1637
1656
  return /* @__PURE__ */ jsx("div", {
@@ -1777,7 +1796,7 @@ const MigrationBanner = () => {
1777
1796
  return /* @__PURE__ */ jsx("div", {
1778
1797
  className: "absolute inset-x-0 top-0 z-30 flex justify-center p-3",
1779
1798
  children: /* @__PURE__ */ jsxs("div", {
1780
- className: "flex max-w-3xl items-center gap-3 rounded-lg border border-yellow-500 bg-yellow-400 px-4 py-3 text-sm text-gray-900 shadow-lg dark:border-yellow-400 dark:bg-yellow-500 dark:text-slate-50",
1799
+ className: "flex max-w-3xl items-center gap-3 rounded-lg border border-warning bg-warning px-4 py-3 text-sm text-warning-foreground shadow-lg",
1781
1800
  children: [
1782
1801
  /* @__PURE__ */ jsxs("div", {
1783
1802
  className: "flex-1",
@@ -1791,7 +1810,7 @@ const MigrationBanner = () => {
1791
1810
  ]
1792
1811
  }),
1793
1812
  /* @__PURE__ */ jsxs("div", {
1794
- className: "text-gray-900 dark:text-slate-100",
1813
+ className: "text-foreground",
1795
1814
  children: [
1796
1815
  "Migrate to Postgres ",
1797
1816
  17,
@@ -1799,7 +1818,7 @@ const MigrationBanner = () => {
1799
1818
  ]
1800
1819
  }),
1801
1820
  error && /* @__PURE__ */ jsxs("div", {
1802
- className: "mt-2 font-medium text-red-900 dark:text-red-400",
1821
+ className: "mt-2 font-medium text-destructive",
1803
1822
  children: ["Migration failed: ", error]
1804
1823
  })
1805
1824
  ]
@@ -1808,14 +1827,14 @@ const MigrationBanner = () => {
1808
1827
  type: "button",
1809
1828
  disabled: migrating,
1810
1829
  onClick: handleMigrate,
1811
- className: "rounded-sm bg-gray-900 px-3 py-1 text-sm font-medium text-white hover:bg-gray-800 disabled:opacity-50 dark:bg-slate-50 dark:text-slate-900 dark:hover:bg-slate-100",
1830
+ className: "rounded-sm bg-primary px-3 py-1 text-sm font-medium text-primary-foreground hover:hover-effect disabled:disabled-effect",
1812
1831
  children: migrating ? "Migrating…" : "Migrate now"
1813
1832
  }),
1814
1833
  /* @__PURE__ */ jsx("button", {
1815
1834
  type: "button",
1816
1835
  disabled: migrating,
1817
1836
  onClick: dismiss,
1818
- className: "rounded-sm border border-gray-900 bg-transparent px-3 py-1 text-sm font-medium text-gray-900 hover:bg-gray-900/10 disabled:opacity-50 dark:border-slate-50 dark:text-slate-50",
1837
+ className: "rounded-sm border border-foreground bg-transparent px-3 py-1 text-sm font-medium text-foreground hover:hover-effect disabled:disabled-effect",
1819
1838
  children: "Dismiss"
1820
1839
  })
1821
1840
  ]
@@ -1824,18 +1843,18 @@ const MigrationBanner = () => {
1824
1843
  };
1825
1844
  //#endregion
1826
1845
  //#region src/components/modal/modals-container.tsx
1827
- const AddDriveModal$1 = lazy(() => import("./AddDriveModal-kzL41qdg.js").then((m) => ({ default: m.AddDriveModal })));
1828
- const ClearStorageModal = lazy(() => import("./ClearStorageModal-9qqxbO1y.js").then((m) => ({ default: m.ClearStorageModal })));
1846
+ const AddDriveModal$1 = lazy(() => import("./AddDriveModal-BoKLJyUY.js").then((m) => ({ default: m.AddDriveModal })));
1847
+ const ClearStorageModal = lazy(() => import("./ClearStorageModal-kAd_wAOs.js").then((m) => ({ default: m.ClearStorageModal })));
1829
1848
  const CookiesPolicyModal = lazy(() => import("./CookiesPolicyModal-1nOh6oN3.js").then((m) => ({ default: m.CookiesPolicyModal })));
1830
1849
  const CreateDocumentModal$1 = lazy(() => import("./CreateDocumentModal-nQbLVDq3.js").then((m) => ({ default: m.CreateDocumentModal })));
1831
- const DebugSettingsModal = lazy(() => import("./DebugSettingsModal-DL2byDNM.js").then((m) => ({ default: m.DebugSettingsModal })));
1850
+ const DebugSettingsModal = lazy(() => import("./DebugSettingsModal-BMCpNo7G.js").then((m) => ({ default: m.DebugSettingsModal })));
1832
1851
  const DeleteDriveModal = lazy(() => import("./DeleteDriveModal-6P0T1QgD.js").then((m) => ({ default: m.DeleteDriveModal })));
1833
1852
  const DeleteItemModal = lazy(() => import("./DeleteItemModal-BmV1aQyZ.js").then((m) => ({ default: m.DeleteItemModal })));
1834
1853
  const DisclaimerModal = lazy(() => import("./DisclaimerModal-CVTFfN0_.js").then((m) => ({ default: m.DisclaimerModal })));
1835
- const DriveSettingsModal$1 = lazy(() => import("./DriveSettingsModal-L5sM-rIh.js").then((m) => ({ default: m.DriveSettingsModal })));
1854
+ const DriveSettingsModal$1 = lazy(() => import("./DriveSettingsModal-CsNFEJ9E.js").then((m) => ({ default: m.DriveSettingsModal })));
1836
1855
  const DownloadDocumentWithErrorsModal = lazy(() => import("./DownloadDocumentWithErrorsModal-CXeFUtaz.js").then((m) => ({ default: m.DownloadDocumentWithErrorsModal })));
1837
- const SettingsModal$1 = lazy(() => import("./SettingsModal-V2LEfVtr.js").then((m) => ({ default: m.SettingsModal })));
1838
- const UpgradeDriveModal = lazy(() => import("./UpgradeDriveModal-CyAUDCU7.js").then((m) => ({ default: m.UpgradeDriveModal })));
1856
+ const SettingsModal$1 = lazy(() => import("./SettingsModal-mslhNfDQ.js").then((m) => ({ default: m.SettingsModal })));
1857
+ const UpgradeDriveModal = lazy(() => import("./UpgradeDriveModal-C7lV4rAX.js").then((m) => ({ default: m.UpgradeDriveModal })));
1839
1858
  const modalComponents = {
1840
1859
  addDrive: AddDriveModal$1,
1841
1860
  clearStorage: ClearStorageModal,
@@ -1847,10 +1866,11 @@ const modalComponents = {
1847
1866
  disclaimer: DisclaimerModal,
1848
1867
  driveSettings: DriveSettingsModal$1,
1849
1868
  downloadDocumentWithErrors: DownloadDocumentWithErrorsModal,
1850
- inspector: lazy(() => import("./InspectorModal-v4CyjztA.js").then((m) => ({ default: m.InspectorModal }))),
1869
+ inspector: lazy(() => import("./InspectorModal-so7krTny.js").then((m) => ({ default: m.InspectorModal }))),
1851
1870
  settings: SettingsModal$1,
1852
1871
  upgradeDrive: UpgradeDriveModal,
1853
- missingPackage: lazy(() => import("./MissingPackageModal-D_N96M6a.js").then((m) => ({ default: m.ConnectMissingPackageModal })))
1872
+ missingPackage: lazy(() => import("./MissingPackageModal-Bn036mWQ.js").then((m) => ({ default: m.ConnectMissingPackageModal }))),
1873
+ driveAuthRequired: lazy(() => import("./DriveAuthRequiredModal-B3VdLwSH.js").then((m) => ({ default: m.DriveAuthRequiredModal })))
1854
1874
  };
1855
1875
  const ModalsContainer = lazy(() => {
1856
1876
  return Promise.resolve({ default: () => {
@@ -1870,7 +1890,7 @@ const ModalsContainer = lazy(() => {
1870
1890
  //#endregion
1871
1891
  //#region src/components/app-loader.tsx
1872
1892
  const AppLoader = (props) => {
1873
- const Load = lazy(() => import("./load-8SeZZVg5.js").then((m) => m.loadComponent(props.localPackage)));
1893
+ const Load = lazy(() => import("./load-hFcxdWCu.js").then((m) => m.loadComponent(props.localPackage)));
1874
1894
  return /* @__PURE__ */ jsx(StrictMode, { children: /* @__PURE__ */ jsxs(ErrorBoundary$1, {
1875
1895
  fallbackRender: (props) => /* @__PURE__ */ jsx(AppSkeleton, { children: /* @__PURE__ */ jsx(DetailedFallback, { ...props }) }),
1876
1896
  resetKeys: [props.localPackage],
@@ -1899,5 +1919,5 @@ const AppLoader = (props) => {
1899
1919
  //#endregion
1900
1920
  export { DocumentEditor as a, App as c, DocumentEditorContainer as d, OpenPanel as f, Root as i, AppContainer as l, AppSkeleton as m, Sidebar as n, DriveIcon as o, Analytics as p, Router as r, CookieBanner$1 as s, AppLoader as t, EditorLoader as u };
1901
1921
 
1902
- //# sourceMappingURL=app-loader-CI2xLPWx.js.map
1903
- //# debugId=767f30ff-57f4-51fb-bcab-05b37d838b90
1922
+ //# sourceMappingURL=app-loader-4hDsMW8y.js.map
1923
+ //# debugId=f6a73b34-e60d-575f-aa22-95bcb1f704e4