paperclip-plugin-navigator 0.1.3 → 0.1.8
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/manifest.d.ts.map +1 -1
- package/dist/manifest.js +9 -1
- package/dist/manifest.js.map +1 -1
- package/dist/ui/index.d.ts +2 -1
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +71 -24
- package/dist/ui/index.js.map +2 -2
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +44 -0
- package/dist/worker.js.map +1 -1
- package/package.json +1 -1
package/dist/manifest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAazE,QAAA,MAAM,QAAQ,EAAE,yBAsDf,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
package/dist/manifest.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
const PLUGIN_ID = "paperclip-plugin-navigator";
|
|
2
|
-
const PLUGIN_VERSION = "0.1.
|
|
2
|
+
const PLUGIN_VERSION = "0.1.6";
|
|
3
3
|
const NAV_PAGE_SLOT_ID = "navigator-page";
|
|
4
4
|
const NAV_SIDEBAR_SLOT_ID = "navigator-sidebar";
|
|
5
|
+
const NAV_PROJECT_SLOT_ID = "navigator-project-sidebar";
|
|
5
6
|
const NAV_EXPORT_NAME = "NavigatorPage";
|
|
6
7
|
const NAV_SIDEBAR_EXPORT_NAME = "NavigatorSidebarEntry";
|
|
8
|
+
const NAV_PROJECT_EXPORT_NAME = "NavigatorProjectSidebarItem";
|
|
7
9
|
const manifest = {
|
|
8
10
|
id: PLUGIN_ID,
|
|
9
11
|
apiVersion: 1,
|
|
@@ -48,6 +50,12 @@ const manifest = {
|
|
|
48
50
|
displayName: "Files",
|
|
49
51
|
exportName: NAV_EXPORT_NAME,
|
|
50
52
|
},
|
|
53
|
+
{
|
|
54
|
+
type: "projectSidebarItem",
|
|
55
|
+
id: NAV_PROJECT_SLOT_ID,
|
|
56
|
+
displayName: "Files",
|
|
57
|
+
exportName: NAV_PROJECT_EXPORT_NAME,
|
|
58
|
+
},
|
|
51
59
|
],
|
|
52
60
|
},
|
|
53
61
|
};
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAG,4BAA4B,CAAC;AAE/C,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAC1C,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAChD,MAAM,eAAe,GAAG,eAAe,CAAC;AACxC,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAG,4BAA4B,CAAC;AAE/C,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAC1C,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAChD,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AACxD,MAAM,eAAe,GAAG,eAAe,CAAC;AACxC,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;AACxD,MAAM,uBAAuB,GAAG,6BAA6B,CAAC;AAE9D,MAAM,QAAQ,GAA8B;IAC1C,EAAE,EAAE,SAAS;IACb,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,cAAc;IACvB,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EACT,sFAAsF;IACxF,MAAM,EAAE,4BAA4B;IACpC,UAAU,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;IAC/B,YAAY,EAAE;QACZ,eAAe;QACf,yBAAyB;QACzB,gBAAgB;QAChB,kBAAkB;QAClB,qBAAqB;KACtB;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,kBAAkB,EAAE;gBAClB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EACT,8EAA8E;aACjF;SACF;QACD,QAAQ,EAAE,CAAC,oBAAoB,CAAC;KACjC;IACD,WAAW,EAAE;QACX,MAAM,EAAE,kBAAkB;QAC1B,EAAE,EAAE,WAAW;KAChB;IACD,EAAE,EAAE;QACF,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,mBAAmB;gBACvB,WAAW,EAAE,OAAO;gBACpB,UAAU,EAAE,uBAAuB;aACpC;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,EAAE,EAAE,gBAAgB;gBACpB,WAAW,EAAE,OAAO;gBACpB,UAAU,EAAE,eAAe;aAC5B;YACD;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,EAAE,EAAE,mBAAmB;gBACvB,WAAW,EAAE,OAAO;gBACpB,UAAU,EAAE,uBAAuB;aACpC;SACF;KACF;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { PluginPageProps, PluginSidebarProps } from "@paperclipai/plugin-sdk/ui";
|
|
1
|
+
import type { PluginPageProps, PluginSidebarProps, PluginProjectSidebarItemProps } from "@paperclipai/plugin-sdk/ui";
|
|
2
2
|
export declare function NavigatorSidebarEntry({ context }: PluginSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare function NavigatorProjectSidebarItem({ context }: PluginProjectSidebarItemProps): import("react/jsx-runtime").JSX.Element | null;
|
|
3
4
|
export declare function NavigatorPage({ context }: PluginPageProps): import("react/jsx-runtime").JSX.Element;
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/ui/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AA0KrH,wBAAgB,qBAAqB,CAAC,EAAE,OAAO,EAAE,EAAE,kBAAkB,2CA8EpE;AAED,wBAAgB,2BAA2B,CAAC,EAAE,OAAO,EAAE,EAAE,6BAA6B,kDA+BrF;AAED,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,eAAe,2CA4HzD"}
|
package/dist/ui/index.js
CHANGED
|
@@ -161,38 +161,84 @@ var styles = {
|
|
|
161
161
|
}
|
|
162
162
|
};
|
|
163
163
|
function NavigatorSidebarEntry({ context }) {
|
|
164
|
-
const
|
|
164
|
+
const [open, setOpen] = useState(false);
|
|
165
|
+
const { data, loading, error } = usePluginData("projects", {
|
|
166
|
+
companyId: context.companyId ?? void 0
|
|
167
|
+
});
|
|
168
|
+
const projects = data ?? [];
|
|
169
|
+
return /* @__PURE__ */ jsxs("div", { style: { width: "100%" }, children: [
|
|
170
|
+
/* @__PURE__ */ jsxs(
|
|
171
|
+
"button",
|
|
172
|
+
{
|
|
173
|
+
onClick: () => setOpen((v) => !v),
|
|
174
|
+
style: {
|
|
175
|
+
display: "flex",
|
|
176
|
+
alignItems: "center",
|
|
177
|
+
gap: "8px",
|
|
178
|
+
width: "100%",
|
|
179
|
+
padding: "6px 8px",
|
|
180
|
+
borderRadius: "6px",
|
|
181
|
+
fontSize: "14px",
|
|
182
|
+
fontWeight: 500,
|
|
183
|
+
color: "inherit",
|
|
184
|
+
background: "none",
|
|
185
|
+
border: "none",
|
|
186
|
+
cursor: "pointer",
|
|
187
|
+
textAlign: "left"
|
|
188
|
+
},
|
|
189
|
+
children: [
|
|
190
|
+
/* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z" }) }),
|
|
191
|
+
/* @__PURE__ */ jsx("span", { style: { flex: 1 }, children: "Files" }),
|
|
192
|
+
/* @__PURE__ */ jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", style: { transform: open ? "rotate(180deg)" : "rotate(0deg)", transition: "transform 0.15s" }, "aria-hidden": "true", children: /* @__PURE__ */ jsx("polyline", { points: "6 9 12 15 18 9" }) })
|
|
193
|
+
]
|
|
194
|
+
}
|
|
195
|
+
),
|
|
196
|
+
open && /* @__PURE__ */ jsxs("div", { style: { paddingLeft: "8px", marginTop: "4px" }, children: [
|
|
197
|
+
loading && /* @__PURE__ */ jsx("p", { style: { fontSize: "12px", color: "#9ca3af", padding: "4px 8px", margin: 0 }, children: "A carregar..." }),
|
|
198
|
+
!loading && error && /* @__PURE__ */ jsx("p", { style: { fontSize: "12px", color: "#ef4444", padding: "4px 8px", margin: 0 }, children: "Erro ao carregar." }),
|
|
199
|
+
!loading && !error && projects.length === 0 && /* @__PURE__ */ jsx("p", { style: { fontSize: "12px", color: "#9ca3af", padding: "4px 8px", margin: 0 }, children: "Sem projectos." }),
|
|
200
|
+
!loading && !error && projects.map((project) => /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", padding: "4px 8px", borderRadius: "4px", gap: "8px" }, children: [
|
|
201
|
+
/* @__PURE__ */ jsx("span", { style: { fontSize: "13px", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", flex: 1 }, title: project.name, children: project.name }),
|
|
202
|
+
project.fileBrowserUrl ? /* @__PURE__ */ jsx(
|
|
203
|
+
"a",
|
|
204
|
+
{
|
|
205
|
+
href: project.fileBrowserUrl,
|
|
206
|
+
target: "_blank",
|
|
207
|
+
rel: "noopener noreferrer",
|
|
208
|
+
style: { fontSize: "11px", color: "#2563eb", textDecoration: "none", flexShrink: 0 },
|
|
209
|
+
"aria-label": `Abrir ${project.name}`,
|
|
210
|
+
children: "Abrir \u2192"
|
|
211
|
+
}
|
|
212
|
+
) : /* @__PURE__ */ jsx("span", { style: { fontSize: "11px", color: "#9ca3af", flexShrink: 0 }, children: "\u2014" })
|
|
213
|
+
] }, project.id))
|
|
214
|
+
] })
|
|
215
|
+
] });
|
|
216
|
+
}
|
|
217
|
+
function NavigatorProjectSidebarItem({ context }) {
|
|
218
|
+
const { data, loading } = usePluginData("project-files", {
|
|
219
|
+
projectId: context.entityId,
|
|
220
|
+
companyId: context.companyId ?? void 0
|
|
221
|
+
});
|
|
222
|
+
if (loading || !data?.fileBrowserUrl) return null;
|
|
165
223
|
return /* @__PURE__ */ jsxs(
|
|
166
224
|
"a",
|
|
167
225
|
{
|
|
168
|
-
href,
|
|
226
|
+
href: data.fileBrowserUrl,
|
|
227
|
+
target: "_blank",
|
|
228
|
+
rel: "noopener noreferrer",
|
|
169
229
|
style: {
|
|
170
230
|
display: "flex",
|
|
171
231
|
alignItems: "center",
|
|
172
|
-
gap: "
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
textDecoration: "none"
|
|
232
|
+
gap: "6px",
|
|
233
|
+
fontSize: "12px",
|
|
234
|
+
color: "#2563eb",
|
|
235
|
+
textDecoration: "none",
|
|
236
|
+
padding: "2px 4px",
|
|
237
|
+
borderRadius: "4px"
|
|
179
238
|
},
|
|
239
|
+
"aria-label": `Abrir ficheiros de ${data.name}`,
|
|
180
240
|
children: [
|
|
181
|
-
/* @__PURE__ */ jsx(
|
|
182
|
-
"svg",
|
|
183
|
-
{
|
|
184
|
-
width: "16",
|
|
185
|
-
height: "16",
|
|
186
|
-
viewBox: "0 0 24 24",
|
|
187
|
-
fill: "none",
|
|
188
|
-
stroke: "currentColor",
|
|
189
|
-
strokeWidth: "2",
|
|
190
|
-
strokeLinecap: "round",
|
|
191
|
-
strokeLinejoin: "round",
|
|
192
|
-
"aria-hidden": "true",
|
|
193
|
-
children: /* @__PURE__ */ jsx("path", { d: "M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z" })
|
|
194
|
-
}
|
|
195
|
-
),
|
|
241
|
+
/* @__PURE__ */ jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z" }) }),
|
|
196
242
|
"Files"
|
|
197
243
|
]
|
|
198
244
|
}
|
|
@@ -292,6 +338,7 @@ function NavigatorPage({ context }) {
|
|
|
292
338
|
}
|
|
293
339
|
export {
|
|
294
340
|
NavigatorPage,
|
|
341
|
+
NavigatorProjectSidebarItem,
|
|
295
342
|
NavigatorSidebarEntry
|
|
296
343
|
};
|
|
297
344
|
//# sourceMappingURL=index.js.map
|
package/dist/ui/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ui/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import { useState, useMemo } from \"react\";\nimport type { PluginPageProps, PluginSidebarProps } from \"@paperclipai/plugin-sdk/ui\";\nimport { usePluginData } from \"@paperclipai/plugin-sdk/ui\";\n\ninterface ProjectEntry {\n id: string;\n name: string;\n path: string | null;\n fileBrowserUrl: string | null;\n}\n\nconst COLORS = {\n border: \"#e5e7eb\",\n bg: \"#f9fafb\",\n bgCard: \"#ffffff\",\n textPrimary: \"#111827\",\n textSecondary: \"#6b7280\",\n textMuted: \"#9ca3af\",\n primary: \"#2563eb\",\n primaryHover: \"#1d4ed8\",\n danger: \"#ef4444\",\n warningBg: \"#fffbeb\",\n warningBorder: \"#fcd34d\",\n warningText: \"#92400e\",\n};\n\nconst styles = {\n container: {\n fontFamily: 'Inter, system-ui, -apple-system, sans-serif',\n padding: \"32px\",\n maxWidth: \"1000px\",\n margin: \"0 auto\",\n color: COLORS.textPrimary,\n },\n header: {\n marginBottom: \"32px\",\n },\n title: {\n fontSize: \"24px\",\n fontWeight: 600,\n letterSpacing: \"-0.025em\",\n margin: \"0 0 8px 0\",\n },\n description: {\n fontSize: \"14px\",\n color: COLORS.textSecondary,\n margin: 0,\n },\n toolbar: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginBottom: \"20px\",\n gap: \"16px\",\n },\n searchWrapper: {\n position: \"relative\" as const,\n flex: 1,\n },\n searchInput: {\n width: \"100%\",\n padding: \"10px 12px 10px 36px\",\n fontSize: \"14px\",\n borderRadius: \"8px\",\n border: `1px solid ${COLORS.border}`,\n outline: \"none\",\n transition: \"border-color 0.2s\",\n },\n searchIcon: {\n position: \"absolute\" as const,\n left: \"12px\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n color: COLORS.textMuted,\n pointerEvents: \"none\" as const,\n },\n configWarning: {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"12px\",\n padding: \"12px 16px\",\n backgroundColor: COLORS.warningBg,\n border: `1px solid ${COLORS.warningBorder}`,\n borderRadius: \"8px\",\n marginBottom: \"24px\",\n fontSize: \"14px\",\n color: COLORS.warningText,\n },\n tableCard: {\n backgroundColor: COLORS.bgCard,\n border: `1px solid ${COLORS.border}`,\n borderRadius: \"12px\",\n overflow: \"hidden\",\n boxShadow: \"0 1px 3px rgba(0,0,0,0.1)\",\n },\n tableHeader: {\n display: \"grid\",\n gridTemplateColumns: \"1fr 140px\",\n padding: \"12px 20px\",\n backgroundColor: COLORS.bg,\n borderBottom: `1px solid ${COLORS.border}`,\n fontSize: \"12px\",\n fontWeight: 600,\n textTransform: \"uppercase\" as const,\n letterSpacing: \"0.05em\",\n color: COLORS.textSecondary,\n },\n row: {\n display: \"grid\",\n gridTemplateColumns: \"1fr 140px\",\n padding: \"16px 20px\",\n borderBottom: `1px solid ${COLORS.border}`,\n alignItems: \"center\",\n transition: \"background-color 0.15s\",\n \":last-child\": {\n borderBottom: \"none\",\n },\n },\n projectMain: {\n display: \"flex\",\n flexDirection: \"column\" as const,\n gap: \"4px\",\n minWidth: 0,\n },\n projectName: {\n fontSize: \"15px\",\n fontWeight: 500,\n color: COLORS.textPrimary,\n },\n projectPath: {\n fontSize: \"12px\",\n color: COLORS.textMuted,\n fontFamily: \"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace\",\n whiteSpace: \"nowrap\" as const,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n actionCell: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n },\n button: {\n padding: \"8px 16px\",\n borderRadius: \"6px\",\n fontSize: \"13px\",\n fontWeight: 500,\n cursor: \"pointer\",\n textDecoration: \"none\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transition: \"all 0.2s\",\n border: \"none\",\n },\n primaryButton: {\n backgroundColor: COLORS.primary,\n color: \"#fff\",\n },\n disabledButton: {\n backgroundColor: COLORS.bg,\n color: COLORS.textMuted,\n cursor: \"not-allowed\",\n border: `1px solid ${COLORS.border}`,\n },\n emptyState: {\n padding: \"60px 20px\",\n textAlign: \"center\" as const,\n color: COLORS.textSecondary,\n },\n};\n\nexport function NavigatorSidebarEntry({ context }: PluginSidebarProps) {\n const href = context.companyPrefix\n ? `/${context.companyPrefix}/plugins/paperclip-plugin-navigator`\n : `/plugins/paperclip-plugin-navigator`;\n\n return (\n <a\n href={href}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n padding: \"6px 8px\",\n borderRadius: \"6px\",\n fontSize: \"14px\",\n fontWeight: 500,\n color: \"inherit\",\n textDecoration: \"none\",\n }}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\" />\n </svg>\n Files\n </a>\n );\n}\n\nexport function NavigatorPage({ context }: PluginPageProps) {\n const [searchTerm, setSearchTerm] = useState(\"\");\n const { data, loading, error, refresh } = usePluginData<ProjectEntry[]>(\"projects\", {\n companyId: context.companyId ?? undefined,\n });\n\n const projects = data ?? [];\n \n const filteredProjects = useMemo(() => {\n if (!searchTerm) return projects;\n const lower = searchTerm.toLowerCase();\n return projects.filter(p => \n p.name.toLowerCase().includes(lower) || \n (p.path && p.path.toLowerCase().includes(lower))\n );\n }, [projects, searchTerm]);\n\n // Infer if config is missing (if we have projects but NO fileBrowserUrls)\n const isConfigMissing = useMemo(() => {\n return projects.length > 0 && projects.every(p => p.fileBrowserUrl === null && p.path !== null);\n }, [projects]);\n\n return (\n <div style={styles.container}>\n <header style={styles.header}>\n <h1 style={styles.title}>Project Navigator</h1>\n <p style={styles.description}>\n Browse and access your project files via the external file manager.\n </p>\n </header>\n\n {isConfigMissing && (\n <div style={styles.configWarning}>\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"/>\n </svg>\n <span>\n <strong>Configuration needed:</strong> The File Browser Base URL is not set. Please contact your administrator.\n </span>\n </div>\n )}\n\n <div style={styles.toolbar}>\n <div style={styles.searchWrapper}>\n <div style={styles.searchIcon}>\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/>\n </svg>\n </div>\n <input\n type=\"text\"\n placeholder=\"Search projects...\"\n style={styles.searchInput}\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n />\n </div>\n <button \n onClick={() => refresh()} \n style={{...styles.button, ...styles.disabledButton, cursor: 'pointer'}}\n title=\"Refresh list\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" style={{marginRight: '8px'}}>\n <path d=\"M23 4v6h-6M1 20v-6h6M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"/>\n </svg>\n Refresh\n </button>\n </div>\n\n <div style={styles.tableCard}>\n <div style={styles.tableHeader}>\n <span>Project</span>\n <span style={{textAlign: 'right'}}>Action</span>\n </div>\n\n {loading && (\n <div style={styles.emptyState}>\n <p>Loading projects...</p>\n </div>\n )}\n\n {!loading && error && (\n <div style={{...styles.emptyState, color: COLORS.danger}}>\n <p>Error loading projects: {error.message}</p>\n </div>\n )}\n\n {!loading && !error && filteredProjects.length === 0 && (\n <div style={styles.emptyState}>\n <p>{searchTerm ? 'No projects match your search.' : 'No projects found.'}</p>\n </div>\n )}\n\n {!loading && !error && filteredProjects.map((project) => (\n <div key={project.id} style={styles.row}>\n <div style={styles.projectMain}>\n <span style={styles.projectName}>{project.name}</span>\n {project.path && (\n <span style={styles.projectPath} title={project.path}>\n {project.path}\n </span>\n )}\n </div>\n <div style={styles.actionCell}>\n {project.fileBrowserUrl ? (\n <a\n href={project.fileBrowserUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{...styles.button, ...styles.primaryButton}}\n >\n Open Files\n </a>\n ) : (\n <span style={{...styles.button, ...styles.disabledButton}} title=\"No workspace available\">\n Unavailable\n </span>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\n"],
|
|
5
|
-
"mappings": ";AAAA,SAAS,UAAU,eAAe;AAElC,SAAS,qBAAqB;
|
|
4
|
+
"sourcesContent": ["import { useState, useMemo } from \"react\";\nimport type { PluginPageProps, PluginSidebarProps, PluginProjectSidebarItemProps } from \"@paperclipai/plugin-sdk/ui\";\nimport { usePluginData } from \"@paperclipai/plugin-sdk/ui\";\n\ninterface ProjectEntry {\n id: string;\n name: string;\n path: string | null;\n fileBrowserUrl: string | null;\n}\n\nconst COLORS = {\n border: \"#e5e7eb\",\n bg: \"#f9fafb\",\n bgCard: \"#ffffff\",\n textPrimary: \"#111827\",\n textSecondary: \"#6b7280\",\n textMuted: \"#9ca3af\",\n primary: \"#2563eb\",\n primaryHover: \"#1d4ed8\",\n danger: \"#ef4444\",\n warningBg: \"#fffbeb\",\n warningBorder: \"#fcd34d\",\n warningText: \"#92400e\",\n};\n\nconst styles = {\n container: {\n fontFamily: 'Inter, system-ui, -apple-system, sans-serif',\n padding: \"32px\",\n maxWidth: \"1000px\",\n margin: \"0 auto\",\n color: COLORS.textPrimary,\n },\n header: {\n marginBottom: \"32px\",\n },\n title: {\n fontSize: \"24px\",\n fontWeight: 600,\n letterSpacing: \"-0.025em\",\n margin: \"0 0 8px 0\",\n },\n description: {\n fontSize: \"14px\",\n color: COLORS.textSecondary,\n margin: 0,\n },\n toolbar: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginBottom: \"20px\",\n gap: \"16px\",\n },\n searchWrapper: {\n position: \"relative\" as const,\n flex: 1,\n },\n searchInput: {\n width: \"100%\",\n padding: \"10px 12px 10px 36px\",\n fontSize: \"14px\",\n borderRadius: \"8px\",\n border: `1px solid ${COLORS.border}`,\n outline: \"none\",\n transition: \"border-color 0.2s\",\n },\n searchIcon: {\n position: \"absolute\" as const,\n left: \"12px\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n color: COLORS.textMuted,\n pointerEvents: \"none\" as const,\n },\n configWarning: {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"12px\",\n padding: \"12px 16px\",\n backgroundColor: COLORS.warningBg,\n border: `1px solid ${COLORS.warningBorder}`,\n borderRadius: \"8px\",\n marginBottom: \"24px\",\n fontSize: \"14px\",\n color: COLORS.warningText,\n },\n tableCard: {\n backgroundColor: COLORS.bgCard,\n border: `1px solid ${COLORS.border}`,\n borderRadius: \"12px\",\n overflow: \"hidden\",\n boxShadow: \"0 1px 3px rgba(0,0,0,0.1)\",\n },\n tableHeader: {\n display: \"grid\",\n gridTemplateColumns: \"1fr 140px\",\n padding: \"12px 20px\",\n backgroundColor: COLORS.bg,\n borderBottom: `1px solid ${COLORS.border}`,\n fontSize: \"12px\",\n fontWeight: 600,\n textTransform: \"uppercase\" as const,\n letterSpacing: \"0.05em\",\n color: COLORS.textSecondary,\n },\n row: {\n display: \"grid\",\n gridTemplateColumns: \"1fr 140px\",\n padding: \"16px 20px\",\n borderBottom: `1px solid ${COLORS.border}`,\n alignItems: \"center\",\n transition: \"background-color 0.15s\",\n \":last-child\": {\n borderBottom: \"none\",\n },\n },\n projectMain: {\n display: \"flex\",\n flexDirection: \"column\" as const,\n gap: \"4px\",\n minWidth: 0,\n },\n projectName: {\n fontSize: \"15px\",\n fontWeight: 500,\n color: COLORS.textPrimary,\n },\n projectPath: {\n fontSize: \"12px\",\n color: COLORS.textMuted,\n fontFamily: \"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace\",\n whiteSpace: \"nowrap\" as const,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n actionCell: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n },\n button: {\n padding: \"8px 16px\",\n borderRadius: \"6px\",\n fontSize: \"13px\",\n fontWeight: 500,\n cursor: \"pointer\",\n textDecoration: \"none\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transition: \"all 0.2s\",\n border: \"none\",\n },\n primaryButton: {\n backgroundColor: COLORS.primary,\n color: \"#fff\",\n },\n disabledButton: {\n backgroundColor: COLORS.bg,\n color: COLORS.textMuted,\n cursor: \"not-allowed\",\n border: `1px solid ${COLORS.border}`,\n },\n emptyState: {\n padding: \"60px 20px\",\n textAlign: \"center\" as const,\n color: COLORS.textSecondary,\n },\n};\n\nexport function NavigatorSidebarEntry({ context }: PluginSidebarProps) {\n const [open, setOpen] = useState(false);\n const { data, loading, error } = usePluginData<ProjectEntry[]>(\"projects\", {\n companyId: context.companyId ?? undefined,\n });\n\n const projects = data ?? [];\n\n return (\n <div style={{ width: \"100%\" }}>\n <button\n onClick={() => setOpen((v) => !v)}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n width: \"100%\",\n padding: \"6px 8px\",\n borderRadius: \"6px\",\n fontSize: \"14px\",\n fontWeight: 500,\n color: \"inherit\",\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n textAlign: \"left\",\n }}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\" />\n </svg>\n <span style={{ flex: 1 }}>Files</span>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" style={{ transform: open ? \"rotate(180deg)\" : \"rotate(0deg)\", transition: \"transform 0.15s\" }} aria-hidden=\"true\">\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n </button>\n\n {open && (\n <div style={{ paddingLeft: \"8px\", marginTop: \"4px\" }}>\n {loading && (\n <p style={{ fontSize: \"12px\", color: \"#9ca3af\", padding: \"4px 8px\", margin: 0 }}>\n A carregar...\n </p>\n )}\n {!loading && error && (\n <p style={{ fontSize: \"12px\", color: \"#ef4444\", padding: \"4px 8px\", margin: 0 }}>\n Erro ao carregar.\n </p>\n )}\n {!loading && !error && projects.length === 0 && (\n <p style={{ fontSize: \"12px\", color: \"#9ca3af\", padding: \"4px 8px\", margin: 0 }}>\n Sem projectos.\n </p>\n )}\n {!loading && !error && projects.map((project) => (\n <div key={project.id} style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", padding: \"4px 8px\", borderRadius: \"4px\", gap: \"8px\" }}>\n <span style={{ fontSize: \"13px\", overflow: \"hidden\", textOverflow: \"ellipsis\", whiteSpace: \"nowrap\", flex: 1 }} title={project.name}>\n {project.name}\n </span>\n {project.fileBrowserUrl ? (\n <a\n href={project.fileBrowserUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{ fontSize: \"11px\", color: \"#2563eb\", textDecoration: \"none\", flexShrink: 0 }}\n aria-label={`Abrir ${project.name}`}\n >\n Abrir \u2192\n </a>\n ) : (\n <span style={{ fontSize: \"11px\", color: \"#9ca3af\", flexShrink: 0 }}>\u2014</span>\n )}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n}\n\nexport function NavigatorProjectSidebarItem({ context }: PluginProjectSidebarItemProps) {\n const { data, loading } = usePluginData<ProjectEntry>(\"project-files\", {\n projectId: context.entityId,\n companyId: context.companyId ?? undefined,\n });\n\n if (loading || !data?.fileBrowserUrl) return null;\n\n return (\n <a\n href={data.fileBrowserUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"6px\",\n fontSize: \"12px\",\n color: \"#2563eb\",\n textDecoration: \"none\",\n padding: \"2px 4px\",\n borderRadius: \"4px\",\n }}\n aria-label={`Abrir ficheiros de ${data.name}`}\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\" />\n </svg>\n Files\n </a>\n );\n}\n\nexport function NavigatorPage({ context }: PluginPageProps) {\n const [searchTerm, setSearchTerm] = useState(\"\");\n const { data, loading, error, refresh } = usePluginData<ProjectEntry[]>(\"projects\", {\n companyId: context.companyId ?? undefined,\n });\n\n const projects = data ?? [];\n \n const filteredProjects = useMemo(() => {\n if (!searchTerm) return projects;\n const lower = searchTerm.toLowerCase();\n return projects.filter(p => \n p.name.toLowerCase().includes(lower) || \n (p.path && p.path.toLowerCase().includes(lower))\n );\n }, [projects, searchTerm]);\n\n // Infer if config is missing (if we have projects but NO fileBrowserUrls)\n const isConfigMissing = useMemo(() => {\n return projects.length > 0 && projects.every(p => p.fileBrowserUrl === null && p.path !== null);\n }, [projects]);\n\n return (\n <div style={styles.container}>\n <header style={styles.header}>\n <h1 style={styles.title}>Project Navigator</h1>\n <p style={styles.description}>\n Browse and access your project files via the external file manager.\n </p>\n </header>\n\n {isConfigMissing && (\n <div style={styles.configWarning}>\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"/>\n </svg>\n <span>\n <strong>Configuration needed:</strong> The File Browser Base URL is not set. Please contact your administrator.\n </span>\n </div>\n )}\n\n <div style={styles.toolbar}>\n <div style={styles.searchWrapper}>\n <div style={styles.searchIcon}>\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/>\n </svg>\n </div>\n <input\n type=\"text\"\n placeholder=\"Search projects...\"\n style={styles.searchInput}\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n />\n </div>\n <button \n onClick={() => refresh()} \n style={{...styles.button, ...styles.disabledButton, cursor: 'pointer'}}\n title=\"Refresh list\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" style={{marginRight: '8px'}}>\n <path d=\"M23 4v6h-6M1 20v-6h6M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"/>\n </svg>\n Refresh\n </button>\n </div>\n\n <div style={styles.tableCard}>\n <div style={styles.tableHeader}>\n <span>Project</span>\n <span style={{textAlign: 'right'}}>Action</span>\n </div>\n\n {loading && (\n <div style={styles.emptyState}>\n <p>Loading projects...</p>\n </div>\n )}\n\n {!loading && error && (\n <div style={{...styles.emptyState, color: COLORS.danger}}>\n <p>Error loading projects: {error.message}</p>\n </div>\n )}\n\n {!loading && !error && filteredProjects.length === 0 && (\n <div style={styles.emptyState}>\n <p>{searchTerm ? 'No projects match your search.' : 'No projects found.'}</p>\n </div>\n )}\n\n {!loading && !error && filteredProjects.map((project) => (\n <div key={project.id} style={styles.row}>\n <div style={styles.projectMain}>\n <span style={styles.projectName}>{project.name}</span>\n {project.path && (\n <span style={styles.projectPath} title={project.path}>\n {project.path}\n </span>\n )}\n </div>\n <div style={styles.actionCell}>\n {project.fileBrowserUrl ? (\n <a\n href={project.fileBrowserUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{...styles.button, ...styles.primaryButton}}\n >\n Open Files\n </a>\n ) : (\n <span style={{...styles.button, ...styles.disabledButton}} title=\"No workspace available\">\n Unavailable\n </span>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,UAAU,eAAe;AAElC,SAAS,qBAAqB;AAmLxB,SAmBI,KAnBJ;AA1KN,IAAM,SAAS;AAAA,EACb,QAAQ;AAAA,EACR,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,eAAe;AAAA,EACf,WAAW;AAAA,EACX,SAAS;AAAA,EACT,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,eAAe;AAAA,EACf,aAAa;AACf;AAEA,IAAM,SAAS;AAAA,EACb,WAAW;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,OAAO,OAAO;AAAA,EAChB;AAAA,EACA,QAAQ;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA,OAAO;AAAA,IACL,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,QAAQ;AAAA,EACV;AAAA,EACA,aAAa;AAAA,IACX,UAAU;AAAA,IACV,OAAO,OAAO;AAAA,IACd,QAAQ;AAAA,EACV;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,eAAe;AAAA,IACb,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AAAA,EACA,aAAa;AAAA,IACX,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,cAAc;AAAA,IACd,QAAQ,aAAa,OAAO,MAAM;AAAA,IAClC,SAAS;AAAA,IACT,YAAY;AAAA,EACd;AAAA,EACA,YAAY;AAAA,IACV,UAAU;AAAA,IACV,MAAM;AAAA,IACN,KAAK;AAAA,IACL,WAAW;AAAA,IACX,OAAO,OAAO;AAAA,IACd,eAAe;AAAA,EACjB;AAAA,EACA,eAAe;AAAA,IACb,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,SAAS;AAAA,IACT,iBAAiB,OAAO;AAAA,IACxB,QAAQ,aAAa,OAAO,aAAa;AAAA,IACzC,cAAc;AAAA,IACd,cAAc;AAAA,IACd,UAAU;AAAA,IACV,OAAO,OAAO;AAAA,EAChB;AAAA,EACA,WAAW;AAAA,IACT,iBAAiB,OAAO;AAAA,IACxB,QAAQ,aAAa,OAAO,MAAM;AAAA,IAClC,cAAc;AAAA,IACd,UAAU;AAAA,IACV,WAAW;AAAA,EACb;AAAA,EACA,aAAa;AAAA,IACX,SAAS;AAAA,IACT,qBAAqB;AAAA,IACrB,SAAS;AAAA,IACT,iBAAiB,OAAO;AAAA,IACxB,cAAc,aAAa,OAAO,MAAM;AAAA,IACxC,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,eAAe;AAAA,IACf,OAAO,OAAO;AAAA,EAChB;AAAA,EACA,KAAK;AAAA,IACH,SAAS;AAAA,IACT,qBAAqB;AAAA,IACrB,SAAS;AAAA,IACT,cAAc,aAAa,OAAO,MAAM;AAAA,IACxC,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,eAAe;AAAA,MACb,cAAc;AAAA,IAChB;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,SAAS;AAAA,IACT,eAAe;AAAA,IACf,KAAK;AAAA,IACL,UAAU;AAAA,EACZ;AAAA,EACA,aAAa;AAAA,IACX,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO,OAAO;AAAA,EAChB;AAAA,EACA,aAAa;AAAA,IACX,UAAU;AAAA,IACV,OAAO,OAAO;AAAA,IACd,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,cAAc;AAAA,EAChB;AAAA,EACA,YAAY;AAAA,IACV,SAAS;AAAA,IACT,gBAAgB;AAAA,EAClB;AAAA,EACA,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,cAAc;AAAA,IACd,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,QAAQ;AAAA,EACV;AAAA,EACA,eAAe;AAAA,IACb,iBAAiB,OAAO;AAAA,IACxB,OAAO;AAAA,EACT;AAAA,EACA,gBAAgB;AAAA,IACd,iBAAiB,OAAO;AAAA,IACxB,OAAO,OAAO;AAAA,IACd,QAAQ;AAAA,IACR,QAAQ,aAAa,OAAO,MAAM;AAAA,EACpC;AAAA,EACA,YAAY;AAAA,IACV,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO,OAAO;AAAA,EAChB;AACF;AAEO,SAAS,sBAAsB,EAAE,QAAQ,GAAuB;AACrE,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AACtC,QAAM,EAAE,MAAM,SAAS,MAAM,IAAI,cAA8B,YAAY;AAAA,IACzE,WAAW,QAAQ,aAAa;AAAA,EAClC,CAAC;AAED,QAAM,WAAW,QAAQ,CAAC;AAE1B,SACE,qBAAC,SAAI,OAAO,EAAE,OAAO,OAAO,GAC1B;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;AAAA,QAChC,OAAO;AAAA,UACL,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,KAAK;AAAA,UACL,OAAO;AAAA,UACP,SAAS;AAAA,UACT,cAAc;AAAA,UACd,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,WAAW;AAAA,QACb;AAAA,QAEA;AAAA,8BAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,gBAAe,SAAQ,eAAY,QACzJ,8BAAC,UAAK,GAAE,+EAA8E,GACxF;AAAA,UACA,oBAAC,UAAK,OAAO,EAAE,MAAM,EAAE,GAAG,mBAAK;AAAA,UAC/B,oBAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,gBAAe,SAAQ,OAAO,EAAE,WAAW,OAAO,mBAAmB,gBAAgB,YAAY,kBAAkB,GAAG,eAAY,QACxP,8BAAC,cAAS,QAAO,kBAAiB,GACpC;AAAA;AAAA;AAAA,IACF;AAAA,IAEC,QACC,qBAAC,SAAI,OAAO,EAAE,aAAa,OAAO,WAAW,MAAM,GAChD;AAAA,iBACC,oBAAC,OAAE,OAAO,EAAE,UAAU,QAAQ,OAAO,WAAW,SAAS,WAAW,QAAQ,EAAE,GAAG,2BAEjF;AAAA,MAED,CAAC,WAAW,SACX,oBAAC,OAAE,OAAO,EAAE,UAAU,QAAQ,OAAO,WAAW,SAAS,WAAW,QAAQ,EAAE,GAAG,+BAEjF;AAAA,MAED,CAAC,WAAW,CAAC,SAAS,SAAS,WAAW,KACzC,oBAAC,OAAE,OAAO,EAAE,UAAU,QAAQ,OAAO,WAAW,SAAS,WAAW,QAAQ,EAAE,GAAG,4BAEjF;AAAA,MAED,CAAC,WAAW,CAAC,SAAS,SAAS,IAAI,CAAC,YACnC,qBAAC,SAAqB,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,gBAAgB,iBAAiB,SAAS,WAAW,cAAc,OAAO,KAAK,MAAM,GACzJ;AAAA,4BAAC,UAAK,OAAO,EAAE,UAAU,QAAQ,UAAU,UAAU,cAAc,YAAY,YAAY,UAAU,MAAM,EAAE,GAAG,OAAO,QAAQ,MAC5H,kBAAQ,MACX;AAAA,QACC,QAAQ,iBACP;AAAA,UAAC;AAAA;AAAA,YACC,MAAM,QAAQ;AAAA,YACd,QAAO;AAAA,YACP,KAAI;AAAA,YACJ,OAAO,EAAE,UAAU,QAAQ,OAAO,WAAW,gBAAgB,QAAQ,YAAY,EAAE;AAAA,YACnF,cAAY,SAAS,QAAQ,IAAI;AAAA,YAClC;AAAA;AAAA,QAED,IAEA,oBAAC,UAAK,OAAO,EAAE,UAAU,QAAQ,OAAO,WAAW,YAAY,EAAE,GAAG,oBAAC;AAAA,WAf/D,QAAQ,EAiBlB,CACD;AAAA,OACH;AAAA,KAEJ;AAEJ;AAEO,SAAS,4BAA4B,EAAE,QAAQ,GAAkC;AACtF,QAAM,EAAE,MAAM,QAAQ,IAAI,cAA4B,iBAAiB;AAAA,IACrE,WAAW,QAAQ;AAAA,IACnB,WAAW,QAAQ,aAAa;AAAA,EAClC,CAAC;AAED,MAAI,WAAW,CAAC,MAAM,eAAgB,QAAO;AAE7C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM,KAAK;AAAA,MACX,QAAO;AAAA,MACP,KAAI;AAAA,MACJ,OAAO;AAAA,QACL,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,KAAK;AAAA,QACL,UAAU;AAAA,QACV,OAAO;AAAA,QACP,gBAAgB;AAAA,QAChB,SAAS;AAAA,QACT,cAAc;AAAA,MAChB;AAAA,MACA,cAAY,sBAAsB,KAAK,IAAI;AAAA,MAE3C;AAAA,4BAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,gBAAe,SAAQ,eAAY,QACzJ,8BAAC,UAAK,GAAE,+EAA8E,GACxF;AAAA,QAAM;AAAA;AAAA;AAAA,EAER;AAEJ;AAEO,SAAS,cAAc,EAAE,QAAQ,GAAoB;AAC1D,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,EAAE;AAC/C,QAAM,EAAE,MAAM,SAAS,OAAO,QAAQ,IAAI,cAA8B,YAAY;AAAA,IAClF,WAAW,QAAQ,aAAa;AAAA,EAClC,CAAC;AAED,QAAM,WAAW,QAAQ,CAAC;AAE1B,QAAM,mBAAmB,QAAQ,MAAM;AACrC,QAAI,CAAC,WAAY,QAAO;AACxB,UAAM,QAAQ,WAAW,YAAY;AACrC,WAAO,SAAS;AAAA,MAAO,OACrB,EAAE,KAAK,YAAY,EAAE,SAAS,KAAK,KAClC,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,SAAS,KAAK;AAAA,IAChD;AAAA,EACF,GAAG,CAAC,UAAU,UAAU,CAAC;AAGzB,QAAM,kBAAkB,QAAQ,MAAM;AACpC,WAAO,SAAS,SAAS,KAAK,SAAS,MAAM,OAAK,EAAE,mBAAmB,QAAQ,EAAE,SAAS,IAAI;AAAA,EAChG,GAAG,CAAC,QAAQ,CAAC;AAEb,SACE,qBAAC,SAAI,OAAO,OAAO,WACjB;AAAA,yBAAC,YAAO,OAAO,OAAO,QACpB;AAAA,0BAAC,QAAG,OAAO,OAAO,OAAO,+BAAiB;AAAA,MAC1C,oBAAC,OAAE,OAAO,OAAO,aAAa,iFAE9B;AAAA,OACF;AAAA,IAEC,mBACC,qBAAC,SAAI,OAAO,OAAO,eACjB;AAAA,2BAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,gBAAe,SACrI;AAAA,4BAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAI;AAAA,QAAE,oBAAC,UAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAI;AAAA,QAAE,oBAAC,UAAK,IAAG,MAAK,IAAG,MAAK,IAAG,SAAQ,IAAG,MAAI;AAAA,SAChH;AAAA,MACA,qBAAC,UACC;AAAA,4BAAC,YAAO,mCAAqB;AAAA,QAAS;AAAA,SACxC;AAAA,OACF;AAAA,IAGF,qBAAC,SAAI,OAAO,OAAO,SACjB;AAAA,2BAAC,SAAI,OAAO,OAAO,eACjB;AAAA,4BAAC,SAAI,OAAO,OAAO,YACjB,+BAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,gBAAe,SACrI;AAAA,8BAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,KAAG;AAAA,UAAE,oBAAC,UAAK,IAAG,MAAK,IAAG,MAAK,IAAG,SAAQ,IAAG,SAAO;AAAA,WAC5E,GACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,aAAY;AAAA,YACZ,OAAO,OAAO;AAAA,YACd,OAAO;AAAA,YACP,UAAU,CAAC,MAAM,cAAc,EAAE,OAAO,KAAK;AAAA;AAAA,QAC/C;AAAA,SACF;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,SAAS,MAAM,QAAQ;AAAA,UACvB,OAAO,EAAC,GAAG,OAAO,QAAQ,GAAG,OAAO,gBAAgB,QAAQ,UAAS;AAAA,UACrE,OAAM;AAAA,UAEN;AAAA,gCAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,gBAAe,SAAQ,OAAO,EAAC,aAAa,MAAK,GACvK,8BAAC,UAAK,GAAE,4FAA0F,GACpG;AAAA,YAAM;AAAA;AAAA;AAAA,MAER;AAAA,OACF;AAAA,IAEA,qBAAC,SAAI,OAAO,OAAO,WACjB;AAAA,2BAAC,SAAI,OAAO,OAAO,aACjB;AAAA,4BAAC,UAAK,qBAAO;AAAA,QACb,oBAAC,UAAK,OAAO,EAAC,WAAW,QAAO,GAAG,oBAAM;AAAA,SAC3C;AAAA,MAEC,WACC,oBAAC,SAAI,OAAO,OAAO,YACjB,8BAAC,OAAE,iCAAmB,GACxB;AAAA,MAGD,CAAC,WAAW,SACX,oBAAC,SAAI,OAAO,EAAC,GAAG,OAAO,YAAY,OAAO,OAAO,OAAM,GACrD,+BAAC,OAAE;AAAA;AAAA,QAAyB,MAAM;AAAA,SAAQ,GAC5C;AAAA,MAGD,CAAC,WAAW,CAAC,SAAS,iBAAiB,WAAW,KACjD,oBAAC,SAAI,OAAO,OAAO,YACjB,8BAAC,OAAG,uBAAa,mCAAmC,sBAAqB,GAC3E;AAAA,MAGD,CAAC,WAAW,CAAC,SAAS,iBAAiB,IAAI,CAAC,YAC3C,qBAAC,SAAqB,OAAO,OAAO,KAClC;AAAA,6BAAC,SAAI,OAAO,OAAO,aACjB;AAAA,8BAAC,UAAK,OAAO,OAAO,aAAc,kBAAQ,MAAK;AAAA,UAC9C,QAAQ,QACP,oBAAC,UAAK,OAAO,OAAO,aAAa,OAAO,QAAQ,MAC7C,kBAAQ,MACX;AAAA,WAEJ;AAAA,QACA,oBAAC,SAAI,OAAO,OAAO,YAChB,kBAAQ,iBACP;AAAA,UAAC;AAAA;AAAA,YACC,MAAM,QAAQ;AAAA,YACd,QAAO;AAAA,YACP,KAAI;AAAA,YACJ,OAAO,EAAC,GAAG,OAAO,QAAQ,GAAG,OAAO,cAAa;AAAA,YAClD;AAAA;AAAA,QAED,IAEA,oBAAC,UAAK,OAAO,EAAC,GAAG,OAAO,QAAQ,GAAG,OAAO,eAAc,GAAG,OAAM,0BAAyB,yBAE1F,GAEJ;AAAA,WAxBQ,QAAQ,EAyBlB,CACD;AAAA,OACH;AAAA,KACF;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/worker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,kBAAkB,EAAE,MAAM,EAC1B,aAAa,EAAE,MAAM,GACpB,MAAM,CAMR;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,QAAA,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,kBAAkB,EAAE,MAAM,EAC1B,aAAa,EAAE,MAAM,GACpB,MAAM,CAMR;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,QAAA,MAAM,MAAM,mDAgKV,CAAC;AAEH,eAAe,MAAM,CAAC"}
|
package/dist/worker.js
CHANGED
|
@@ -100,6 +100,50 @@ const plugin = definePlugin({
|
|
|
100
100
|
}
|
|
101
101
|
return entries;
|
|
102
102
|
});
|
|
103
|
+
/**
|
|
104
|
+
* "project-files" data handler — called by NavigatorProjectSidebarItem.
|
|
105
|
+
*
|
|
106
|
+
* Accepts { projectId, companyId } and returns a single ProjectEntry
|
|
107
|
+
* for the primary workspace of that project, or null if not found.
|
|
108
|
+
*/
|
|
109
|
+
ctx.data.register("project-files", async (params) => {
|
|
110
|
+
const projectId = typeof params?.projectId === "string" ? params.projectId : null;
|
|
111
|
+
const paramCompanyId = typeof params?.companyId === "string" ? params.companyId : null;
|
|
112
|
+
if (!projectId)
|
|
113
|
+
return null;
|
|
114
|
+
const config = await ctx.config.get();
|
|
115
|
+
const fileBrowserBaseUrl = typeof config?.fileBrowserBaseUrl === "string" &&
|
|
116
|
+
config.fileBrowserBaseUrl.trim() !== ""
|
|
117
|
+
? config.fileBrowserBaseUrl.trim()
|
|
118
|
+
: null;
|
|
119
|
+
let companyId = paramCompanyId;
|
|
120
|
+
if (!companyId) {
|
|
121
|
+
const companies = await ctx.companies.list({ limit: 1 });
|
|
122
|
+
if (companies.length === 0)
|
|
123
|
+
return null;
|
|
124
|
+
companyId = companies[0].id;
|
|
125
|
+
}
|
|
126
|
+
const [project, workspace] = await Promise.all([
|
|
127
|
+
ctx.projects.get(projectId, companyId),
|
|
128
|
+
ctx.projects.getPrimaryWorkspace(projectId, companyId),
|
|
129
|
+
]);
|
|
130
|
+
if (!workspace) {
|
|
131
|
+
return {
|
|
132
|
+
id: projectId,
|
|
133
|
+
name: project?.name ?? projectId,
|
|
134
|
+
path: null,
|
|
135
|
+
fileBrowserUrl: null,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
id: projectId,
|
|
140
|
+
name: project?.name ?? projectId,
|
|
141
|
+
path: workspace.path,
|
|
142
|
+
fileBrowserUrl: fileBrowserBaseUrl
|
|
143
|
+
? buildFileBrowserUrl(fileBrowserBaseUrl, workspace.path)
|
|
144
|
+
: null,
|
|
145
|
+
};
|
|
146
|
+
});
|
|
103
147
|
},
|
|
104
148
|
async onHealth() {
|
|
105
149
|
return { status: "ok", message: `${PLUGIN_NAME} ready` };
|
package/dist/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED