paperclip-plugin-navigator 0.1.2 → 0.1.4

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.
@@ -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;AAUzE,QAAA,MAAM,QAAQ,EAAE,yBAoCf,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAWzE,QAAA,MAAM,QAAQ,EAAE,yBAgDf,CAAC;AAEF,eAAe,QAAQ,CAAC"}
package/dist/manifest.js CHANGED
@@ -1,7 +1,9 @@
1
1
  const PLUGIN_ID = "paperclip-plugin-navigator";
2
- const PLUGIN_VERSION = "0.1.1";
3
- const NAV_SLOT_ID = "navigator-global-nav";
2
+ const PLUGIN_VERSION = "0.1.4";
3
+ const NAV_PAGE_SLOT_ID = "navigator-page";
4
+ const NAV_SIDEBAR_SLOT_ID = "navigator-sidebar";
4
5
  const NAV_EXPORT_NAME = "NavigatorPage";
6
+ const NAV_SIDEBAR_EXPORT_NAME = "NavigatorSidebarEntry";
5
7
  const manifest = {
6
8
  id: PLUGIN_ID,
7
9
  apiVersion: 1,
@@ -10,7 +12,13 @@ const manifest = {
10
12
  description: "Browse projects with real names and open them directly in your external filebrowser.",
11
13
  author: "paperclip-plugin-navigator",
12
14
  categories: ["workspace", "ui"],
13
- capabilities: ["projects.read", "project.workspaces.read", "companies.read", "ui.page.register"],
15
+ capabilities: [
16
+ "projects.read",
17
+ "project.workspaces.read",
18
+ "companies.read",
19
+ "ui.page.register",
20
+ "ui.sidebar.register",
21
+ ],
14
22
  instanceConfigSchema: {
15
23
  type: "object",
16
24
  properties: {
@@ -28,9 +36,15 @@ const manifest = {
28
36
  },
29
37
  ui: {
30
38
  slots: [
39
+ {
40
+ type: "sidebar",
41
+ id: NAV_SIDEBAR_SLOT_ID,
42
+ displayName: "Files",
43
+ exportName: NAV_SIDEBAR_EXPORT_NAME,
44
+ },
31
45
  {
32
46
  type: "page",
33
- id: NAV_SLOT_ID,
47
+ id: NAV_PAGE_SLOT_ID,
34
48
  displayName: "Files",
35
49
  exportName: NAV_EXPORT_NAME,
36
50
  },
@@ -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,WAAW,GAAG,sBAAsB,CAAC;AAE3C,MAAM,eAAe,GAAG,eAAe,CAAC;AAExC,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,CAAC,eAAe,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;IAChG,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,MAAM;gBACZ,EAAE,EAAE,WAAW;gBACf,WAAW,EAAE,OAAO;gBACpB,UAAU,EAAE,eAAe;aAC5B;SACF;KACF;CACF,CAAC;AAEF,eAAe,QAAQ,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,eAAe,GAAG,eAAe,CAAC;AACxC,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;AAExD,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;SACF;KACF;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1,3 +1,4 @@
1
- import type { PluginPageProps } from "@paperclipai/plugin-sdk/ui";
1
+ import type { PluginPageProps, PluginSidebarProps } from "@paperclipai/plugin-sdk/ui";
2
+ export declare function NavigatorSidebarEntry({ context }: PluginSidebarProps): import("react/jsx-runtime").JSX.Element;
2
3
  export declare function NavigatorPage({ context }: PluginPageProps): import("react/jsx-runtime").JSX.Element;
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AA0KlE,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,eAAe,2CA4HzD"}
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;AA0KtF,wBAAgB,qBAAqB,CAAC,EAAE,OAAO,EAAE,EAAE,kBAAkB,2CAoCpE;AAED,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,eAAe,2CA4HzD"}
package/dist/ui/index.js CHANGED
@@ -160,6 +160,44 @@ var styles = {
160
160
  color: COLORS.textSecondary
161
161
  }
162
162
  };
163
+ function NavigatorSidebarEntry({ context }) {
164
+ const href = context.companyPrefix ? `/${context.companyPrefix}/plugins/paperclip-plugin-navigator` : `/plugins/paperclip-plugin-navigator`;
165
+ return /* @__PURE__ */ jsxs(
166
+ "a",
167
+ {
168
+ href,
169
+ style: {
170
+ display: "flex",
171
+ alignItems: "center",
172
+ gap: "8px",
173
+ padding: "6px 8px",
174
+ borderRadius: "6px",
175
+ fontSize: "14px",
176
+ fontWeight: 500,
177
+ color: "inherit",
178
+ textDecoration: "none"
179
+ },
180
+ 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
+ ),
196
+ "Files"
197
+ ]
198
+ }
199
+ );
200
+ }
163
201
  function NavigatorPage({ context }) {
164
202
  const [searchTerm, setSearchTerm] = useState("");
165
203
  const { data, loading, error, refresh } = usePluginData("projects", {
@@ -253,6 +291,7 @@ function NavigatorPage({ context }) {
253
291
  ] });
254
292
  }
255
293
  export {
256
- NavigatorPage
294
+ NavigatorPage,
295
+ NavigatorSidebarEntry
257
296
  };
258
297
  //# sourceMappingURL=index.js.map
@@ -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 } 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 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": "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",
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": "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",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "paperclip-plugin-navigator",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Project-aware file navigator for Paperclip. Browse projects with real names and open them in your external filebrowser.",
5
5
  "type": "module",
6
6
  "private": false,