ocean-brain 0.3.4 → 0.4.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.
- package/package.json +5 -5
- package/scripts/postinstall-prisma.mjs +3 -2
- package/server/client/dist/assets/Calendar-CSXEuWmQ.js +25 -0
- package/server/client/dist/assets/Callout-Ap1OcxWN.js +1 -0
- package/server/client/dist/assets/Graph-C0Ax9qjI.js +1 -0
- package/server/client/dist/assets/{Image-ZxF459sC.js → Image-CSbcG-5a.js} +1 -1
- package/server/client/dist/assets/{Image.es-BQfyKc2-.js → Image.es-Fbe7aDDo.js} +1 -1
- package/server/client/dist/assets/{ModalActionRow-DyOb58KJ.js → ModalActionRow-DjI5b4bl.js} +1 -1
- package/server/client/dist/assets/Note-BY6WgYLq.js +1 -0
- package/server/client/dist/assets/Note-W4f6H9K0.css +1 -0
- package/server/client/dist/assets/Reminders-vRksvSQE.js +1 -0
- package/server/client/dist/assets/Search-Cq4tuiJO.js +1 -0
- package/server/client/dist/assets/{SurfaceCard-nZNf9lyE.js → SurfaceCard-Br6TjX5W.js} +1 -1
- package/server/client/dist/assets/Tag-ARDLA-Pb.js +1 -0
- package/server/client/dist/assets/TagNotes-CDGVrCJU.js +1 -0
- package/server/client/dist/assets/{Trash.es-BGoN5q9L.js → Trash.es-BfCEiL3-.js} +1 -1
- package/server/client/dist/assets/ViewNotes-ZBOQ1adH.js +1 -0
- package/server/client/dist/assets/Views-DQHPfdwM.js +1 -0
- package/server/client/dist/assets/{image.api-0mMkElZk.js → image.api-DGXlQ_Ca.js} +1 -1
- package/server/client/dist/assets/index-B28TO4FC.js +1 -0
- package/server/client/dist/assets/{index-DL7pUwq2.css → index-Bm9l_L20.css} +1 -1
- package/server/client/dist/assets/index-Bsx4P7EA.js +210 -0
- package/server/client/dist/assets/manage-image-Dg297A_h.js +1 -0
- package/server/client/dist/assets/manage-image-detail-hk6jWyiB.js +1 -0
- package/server/client/dist/assets/mcp-CSjmBjFR.js +1 -0
- package/server/client/dist/assets/{note-core-BCgMq5QA.js → note-core-GgFcksAF.js} +1 -1
- package/server/client/dist/assets/{note-vendor-BofYbzmZ.js → note-vendor-5N5mRkIT.js} +3 -3
- package/server/client/dist/assets/{placeholder-i-uNe71U.js → placeholder-Bmiowo28.js} +4 -4
- package/server/client/dist/assets/trash-CM7SbVtW.js +1 -0
- package/server/client/dist/assets/{useReminderMutate-tNMwwRnx.js → useReminderMutate-DsIvVpCQ.js} +2 -2
- package/server/client/dist/assets/view-dashboard-CP8nhfxQ.js +90 -0
- package/server/client/dist/index.html +4 -4
- package/server/dist/app.js +8 -84
- package/server/dist/app.js.map +1 -1
- package/server/dist/features/auth/http/api.js +43 -0
- package/server/dist/features/auth/http/api.js.map +1 -0
- package/server/dist/features/auth/http/login-page.js +28 -0
- package/server/dist/features/auth/http/login-page.js.map +1 -0
- package/server/dist/features/auth/http/pages.js +50 -0
- package/server/dist/features/auth/http/pages.js.map +1 -0
- package/server/dist/features/auth/service.js +94 -0
- package/server/dist/features/auth/service.js.map +1 -0
- package/server/dist/features/cache/graphql/cache.field.resolver.js +5 -0
- package/server/dist/features/cache/graphql/cache.field.resolver.js.map +1 -0
- package/server/dist/features/cache/graphql/cache.mutation.resolver.js +49 -0
- package/server/dist/features/cache/graphql/cache.mutation.resolver.js.map +1 -0
- package/server/dist/features/cache/graphql/cache.query.resolver.js +21 -0
- package/server/dist/features/cache/graphql/cache.query.resolver.js.map +1 -0
- package/server/dist/features/cache/graphql/cache.resolver.js +12 -0
- package/server/dist/features/cache/graphql/cache.resolver.js.map +1 -0
- package/server/dist/features/cache/graphql/cache.type-defs.js +32 -0
- package/server/dist/features/cache/graphql/cache.type-defs.js.map +1 -0
- package/server/dist/features/cache/graphql/index.js +21 -0
- package/server/dist/features/cache/graphql/index.js.map +1 -0
- package/server/dist/features/image/graphql/image.field.resolver.js +14 -0
- package/server/dist/features/image/graphql/image.field.resolver.js.map +1 -0
- package/server/dist/features/image/graphql/image.mutation.resolver.js +21 -0
- package/server/dist/features/image/graphql/image.mutation.resolver.js.map +1 -0
- package/server/dist/features/image/graphql/image.query.resolver.js +40 -0
- package/server/dist/features/image/graphql/image.query.resolver.js.map +1 -0
- package/server/dist/features/image/graphql/image.resolver.js +12 -0
- package/server/dist/features/image/graphql/image.resolver.js.map +1 -0
- package/server/dist/features/image/graphql/image.type-defs.js +31 -0
- package/server/dist/features/image/graphql/image.type-defs.js.map +1 -0
- package/server/dist/features/image/graphql/index.js +16 -0
- package/server/dist/features/image/graphql/index.js.map +1 -0
- package/server/dist/features/image/http/upload.js +48 -0
- package/server/dist/features/image/http/upload.js.map +1 -0
- package/server/dist/features/image/services/delete.js +52 -0
- package/server/dist/features/image/services/delete.js.map +1 -0
- package/server/dist/{modules/remote-image.js → features/image/services/remote-fetch.js} +1 -1
- package/server/dist/features/image/services/remote-fetch.js.map +1 -0
- package/server/dist/{modules/image-upload.js → features/image/services/upload.js} +4 -8
- package/server/dist/features/image/services/upload.js.map +1 -0
- package/server/dist/{views/mcp-admin.js → features/mcp-admin/http/handlers.js} +3 -3
- package/server/dist/features/mcp-admin/http/handlers.js.map +1 -0
- package/server/dist/{modules/mcp-admin.js → features/mcp-admin/service.js} +3 -3
- package/server/dist/features/mcp-admin/service.js.map +1 -0
- package/server/dist/features/note/graphql/index.js +8 -0
- package/server/dist/features/note/graphql/index.js.map +1 -0
- package/server/dist/features/note/graphql/note.field.resolver.js +12 -0
- package/server/dist/features/note/graphql/note.field.resolver.js.map +1 -0
- package/server/dist/features/note/graphql/note.graphql.shared.js +23 -0
- package/server/dist/features/note/graphql/note.graphql.shared.js.map +1 -0
- package/server/dist/features/note/graphql/note.mutation.resolver.js +140 -0
- package/server/dist/features/note/graphql/note.mutation.resolver.js.map +1 -0
- package/server/dist/features/note/graphql/note.query.resolver.js +382 -0
- package/server/dist/features/note/graphql/note.query.resolver.js.map +1 -0
- package/server/dist/features/note/graphql/note.resolver.js +14 -0
- package/server/dist/features/note/graphql/note.resolver.js.map +1 -0
- package/server/dist/features/note/graphql/note.type-defs.js +184 -0
- package/server/dist/features/note/graphql/note.type-defs.js.map +1 -0
- package/server/dist/{views/note.js → features/note/http/mcp.js} +27 -15
- package/server/dist/features/note/http/mcp.js.map +1 -0
- package/server/dist/{modules/note-authoring.js → features/note/services/authoring.js} +25 -7
- package/server/dist/features/note/services/authoring.js.map +1 -0
- package/server/dist/{modules/note-cleanup.js → features/note/services/cleanup.js} +14 -23
- package/server/dist/features/note/services/cleanup.js.map +1 -0
- package/server/dist/features/note/services/search-backfill.js +84 -0
- package/server/dist/features/note/services/search-backfill.js.map +1 -0
- package/server/dist/features/note/services/search.js +197 -0
- package/server/dist/features/note/services/search.js.map +1 -0
- package/server/dist/{modules/note-snapshot.js → features/note/services/snapshot.js} +51 -49
- package/server/dist/features/note/services/snapshot.js.map +1 -0
- package/server/dist/{modules/note-tag-filter.js → features/note/services/tag-filter.js} +2 -6
- package/server/dist/features/note/services/tag-filter.js.map +1 -0
- package/server/dist/{modules/note-trash.js → features/note/services/trash.js} +28 -23
- package/server/dist/features/note/services/trash.js.map +1 -0
- package/server/dist/features/placeholder/graphql/index.js +27 -0
- package/server/dist/features/placeholder/graphql/index.js.map +1 -0
- package/server/dist/features/placeholder/graphql/placeholder.field.resolver.js +5 -0
- package/server/dist/features/placeholder/graphql/placeholder.field.resolver.js.map +1 -0
- package/server/dist/features/placeholder/graphql/placeholder.mutation.resolver.js +72 -0
- package/server/dist/features/placeholder/graphql/placeholder.mutation.resolver.js.map +1 -0
- package/server/dist/features/placeholder/graphql/placeholder.query.resolver.js +36 -0
- package/server/dist/features/placeholder/graphql/placeholder.query.resolver.js.map +1 -0
- package/server/dist/features/placeholder/graphql/placeholder.resolver.js +12 -0
- package/server/dist/features/placeholder/graphql/placeholder.resolver.js.map +1 -0
- package/server/dist/features/placeholder/graphql/placeholder.type-defs.js +50 -0
- package/server/dist/features/placeholder/graphql/placeholder.type-defs.js.map +1 -0
- package/server/dist/features/reminder/graphql/index.js +27 -0
- package/server/dist/features/reminder/graphql/index.js.map +1 -0
- package/server/dist/features/reminder/graphql/reminder.field.resolver.js +10 -0
- package/server/dist/features/reminder/graphql/reminder.field.resolver.js.map +1 -0
- package/server/dist/features/reminder/graphql/reminder.mutation.resolver.js +59 -0
- package/server/dist/features/reminder/graphql/reminder.mutation.resolver.js.map +1 -0
- package/server/dist/features/reminder/graphql/reminder.query.resolver.js +79 -0
- package/server/dist/features/reminder/graphql/reminder.query.resolver.js.map +1 -0
- package/server/dist/features/reminder/graphql/reminder.resolver.js +12 -0
- package/server/dist/features/reminder/graphql/reminder.resolver.js.map +1 -0
- package/server/dist/features/reminder/graphql/reminder.type-defs.js +51 -0
- package/server/dist/features/reminder/graphql/reminder.type-defs.js.map +1 -0
- package/server/dist/features/tag/graphql/index.js +14 -0
- package/server/dist/features/tag/graphql/index.js.map +1 -0
- package/server/dist/features/tag/graphql/tag.field.resolver.js +10 -0
- package/server/dist/features/tag/graphql/tag.field.resolver.js.map +1 -0
- package/server/dist/features/tag/graphql/tag.mutation.resolver.js +15 -0
- package/server/dist/features/tag/graphql/tag.mutation.resolver.js.map +1 -0
- package/server/dist/features/tag/graphql/tag.query.resolver.js +26 -0
- package/server/dist/features/tag/graphql/tag.query.resolver.js.map +1 -0
- package/server/dist/features/tag/graphql/tag.resolver.js +12 -0
- package/server/dist/features/tag/graphql/tag.resolver.js.map +1 -0
- package/server/dist/features/tag/graphql/tag.type-defs.js +46 -0
- package/server/dist/features/tag/graphql/tag.type-defs.js.map +1 -0
- package/server/dist/{views/tag.js → features/tag/http/mcp.js} +3 -3
- package/server/dist/features/tag/http/mcp.js.map +1 -0
- package/server/dist/{modules/tag-organization.js → features/tag/services/organization.js} +38 -8
- package/server/dist/features/tag/services/organization.js.map +1 -0
- package/server/dist/features/view/graphql/index.js +11 -0
- package/server/dist/features/view/graphql/index.js.map +1 -0
- package/server/dist/features/view/graphql/view.mutation.resolver.js +53 -0
- package/server/dist/features/view/graphql/view.mutation.resolver.js.map +1 -0
- package/server/dist/features/view/graphql/view.query.resolver.js +29 -0
- package/server/dist/features/view/graphql/view.query.resolver.js.map +1 -0
- package/server/dist/features/view/graphql/view.resolver.js +10 -0
- package/server/dist/features/view/graphql/view.resolver.js.map +1 -0
- package/server/dist/features/view/graphql/view.type-defs.js +63 -0
- package/server/dist/features/view/graphql/view.type-defs.js.map +1 -0
- package/server/dist/features/view/services/workspace.js +432 -0
- package/server/dist/features/view/services/workspace.js.map +1 -0
- package/server/dist/main.js +14 -0
- package/server/dist/main.js.map +1 -1
- package/server/dist/modules/auth-guard.js +10 -9
- package/server/dist/modules/auth-guard.js.map +1 -1
- package/server/dist/modules/auth-mode.js +1 -3
- package/server/dist/modules/auth-mode.js.map +1 -1
- package/server/dist/modules/blocknote.js +8 -17
- package/server/dist/modules/blocknote.js.map +1 -1
- package/server/dist/modules/data-maintenance.js +75 -0
- package/server/dist/modules/data-maintenance.js.map +1 -0
- package/server/dist/modules/error-handler.js.map +1 -1
- package/server/dist/modules/logger.js +5 -23
- package/server/dist/modules/logger.js.map +1 -1
- package/server/dist/modules/mcp-auth.js +4 -5
- package/server/dist/modules/mcp-auth.js.map +1 -1
- package/server/dist/modules/mcp-token.js.map +1 -1
- package/server/dist/modules/prisma-runtime.js +2 -7
- package/server/dist/modules/prisma-runtime.js.map +1 -1
- package/server/dist/modules/recovery-retention.js +1 -1
- package/server/dist/modules/recovery-retention.js.map +1 -1
- package/server/dist/modules/server-events-handler.js +34 -0
- package/server/dist/modules/server-events-handler.js.map +1 -0
- package/server/dist/modules/server-events.js +32 -0
- package/server/dist/modules/server-events.js.map +1 -0
- package/server/dist/modules/use-async.js.map +1 -1
- package/server/dist/paths.js.map +1 -1
- package/server/dist/routes/api.js +34 -0
- package/server/dist/routes/api.js.map +1 -0
- package/server/dist/routes/auth-pages.js +11 -0
- package/server/dist/routes/auth-pages.js.map +1 -0
- package/server/dist/routes/client.js +27 -0
- package/server/dist/routes/client.js.map +1 -0
- package/server/dist/routes/graphql.js +33 -0
- package/server/dist/routes/graphql.js.map +1 -0
- package/server/dist/routes/index.js +11 -0
- package/server/dist/routes/index.js.map +1 -0
- package/server/dist/routes/mcp.js +30 -0
- package/server/dist/routes/mcp.js.map +1 -0
- package/server/dist/schema/index.js +11 -8
- package/server/dist/schema/index.js.map +1 -1
- package/server/dist/types/index.js.map +1 -1
- package/server/prisma/migrations/20260413143000_0014_tag_name_unique/migration.sql +32 -0
- package/server/prisma/migrations/20260414143000_0015_note_searchable_text/migration.sql +5 -0
- package/server/prisma/migrations/20260416090000_0016_view_workspace/migration.sql +50 -0
- package/server/prisma/schema.prisma +66 -12
- package/server/client/dist/assets/Calendar-Kjy1PX6L.js +0 -25
- package/server/client/dist/assets/Graph-Bl5K2qUw.js +0 -1
- package/server/client/dist/assets/Note-BfGma2Qc.css +0 -1
- package/server/client/dist/assets/Note-DN_ko2M3.js +0 -1
- package/server/client/dist/assets/Reminders-BK-Uv9Ps.js +0 -1
- package/server/client/dist/assets/Search-ClHeWvmI.js +0 -1
- package/server/client/dist/assets/Tag-Dph4V_kl.js +0 -1
- package/server/client/dist/assets/TagNotes-CxP5qHZj.js +0 -1
- package/server/client/dist/assets/index-6lIw6jYW.js +0 -1
- package/server/client/dist/assets/index-Ba2XPRI8.js +0 -205
- package/server/client/dist/assets/manage-image-Br_kKxbb.js +0 -1
- package/server/client/dist/assets/manage-image-detail-9DzqbiqI.js +0 -1
- package/server/client/dist/assets/mcp-C_So91eX.js +0 -1
- package/server/client/dist/assets/trash-Cg3nJ1m5.js +0 -1
- package/server/dist/modules/auth.js +0 -25
- package/server/dist/modules/auth.js.map +0 -1
- package/server/dist/modules/image-upload.js.map +0 -1
- package/server/dist/modules/mcp-admin.js.map +0 -1
- package/server/dist/modules/note-authoring.js.map +0 -1
- package/server/dist/modules/note-cleanup.js.map +0 -1
- package/server/dist/modules/note-snapshot.js.map +0 -1
- package/server/dist/modules/note-tag-filter.js.map +0 -1
- package/server/dist/modules/note-trash.js.map +0 -1
- package/server/dist/modules/remote-image.js.map +0 -1
- package/server/dist/modules/tag-organization.js.map +0 -1
- package/server/dist/schema/cache/index.js +0 -58
- package/server/dist/schema/cache/index.js.map +0 -1
- package/server/dist/schema/image/index.js +0 -88
- package/server/dist/schema/image/index.js.map +0 -1
- package/server/dist/schema/note/index.js +0 -582
- package/server/dist/schema/note/index.js.map +0 -1
- package/server/dist/schema/placeholder/index.js +0 -105
- package/server/dist/schema/placeholder/index.js.map +0 -1
- package/server/dist/schema/reminder/index.js +0 -161
- package/server/dist/schema/reminder/index.js.map +0 -1
- package/server/dist/schema/tag/index.js +0 -81
- package/server/dist/schema/tag/index.js.map +0 -1
- package/server/dist/urls.js +0 -9
- package/server/dist/urls.js.map +0 -1
- package/server/dist/views/auth.js +0 -305
- package/server/dist/views/auth.js.map +0 -1
- package/server/dist/views/image.js +0 -44
- package/server/dist/views/image.js.map +0 -1
- package/server/dist/views/index.js +0 -6
- package/server/dist/views/index.js.map +0 -1
- package/server/dist/views/mcp-admin.js.map +0 -1
- package/server/dist/views/note.js.map +0 -1
- package/server/dist/views/tag.js.map +0 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Router } from "express";
|
|
2
|
+
import { createHandler } from "graphql-http/lib/use/express";
|
|
3
|
+
import { isAuthenticatedRequest, requireSessionForGraphql } from "../modules/auth-guard.js";
|
|
4
|
+
import { createMcpAuthMiddleware, createReadOnlyMcpValidationRule } from "../modules/mcp-auth.js";
|
|
5
|
+
import schema from "../schema/index.js";
|
|
6
|
+
const createGraphqlContext = (authConfig) => (req) => ({
|
|
7
|
+
authMode: authConfig.mode,
|
|
8
|
+
isAuthenticated: isAuthenticatedRequest(req.raw),
|
|
9
|
+
req: req.raw,
|
|
10
|
+
res: req.context.res
|
|
11
|
+
});
|
|
12
|
+
const createGraphqlRouter = (authConfig, mcpAdminService) => Router().use(
|
|
13
|
+
"/mcp",
|
|
14
|
+
createMcpAuthMiddleware(authConfig, mcpAdminService),
|
|
15
|
+
createHandler({
|
|
16
|
+
schema,
|
|
17
|
+
context: createGraphqlContext(authConfig),
|
|
18
|
+
validationRules: (_req, _args, specifiedRules) => {
|
|
19
|
+
return [...specifiedRules, createReadOnlyMcpValidationRule()];
|
|
20
|
+
}
|
|
21
|
+
})
|
|
22
|
+
).use(
|
|
23
|
+
"/",
|
|
24
|
+
requireSessionForGraphql(authConfig),
|
|
25
|
+
createHandler({
|
|
26
|
+
schema,
|
|
27
|
+
context: createGraphqlContext(authConfig)
|
|
28
|
+
})
|
|
29
|
+
);
|
|
30
|
+
export {
|
|
31
|
+
createGraphqlRouter
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=graphql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/routes/graphql.ts"],"sourcesContent":["import { type Request, type Response, Router } from 'express';\nimport { createHandler } from 'graphql-http/lib/use/express';\nimport type { McpAdminService } from '../features/mcp-admin/service.js';\nimport { isAuthenticatedRequest, requireSessionForGraphql } from '../modules/auth-guard.js';\nimport type { AuthConfig } from '../modules/auth-mode.js';\nimport { createMcpAuthMiddleware, createReadOnlyMcpValidationRule } from '../modules/mcp-auth.js';\nimport schema from '../schema/index.js';\n\ntype McpGraphqlService = Pick<McpAdminService, 'getStatus' | 'validatePresentedToken'>;\ntype GraphqlRequestContext = { raw: Request; context: { res: Response } };\n\nconst createGraphqlContext = (authConfig: AuthConfig) => (req: GraphqlRequestContext) => ({\n authMode: authConfig.mode,\n isAuthenticated: isAuthenticatedRequest(req.raw),\n req: req.raw,\n res: req.context.res,\n});\n\nexport const createGraphqlRouter = (authConfig: AuthConfig, mcpAdminService: McpGraphqlService) =>\n Router()\n .use(\n '/mcp',\n createMcpAuthMiddleware(authConfig, mcpAdminService),\n createHandler({\n schema,\n context: createGraphqlContext(authConfig),\n validationRules: (_req, _args, specifiedRules) => {\n return [...specifiedRules, createReadOnlyMcpValidationRule()];\n },\n }),\n )\n .use(\n '/',\n requireSessionForGraphql(authConfig),\n createHandler({\n schema,\n context: createGraphqlContext(authConfig),\n }),\n );\n"],"mappings":"AAAA,SAAsC,cAAc;AACpD,SAAS,qBAAqB;AAE9B,SAAS,wBAAwB,gCAAgC;AAEjE,SAAS,yBAAyB,uCAAuC;AACzE,OAAO,YAAY;AAKnB,MAAM,uBAAuB,CAAC,eAA2B,CAAC,SAAgC;AAAA,EACtF,UAAU,WAAW;AAAA,EACrB,iBAAiB,uBAAuB,IAAI,GAAG;AAAA,EAC/C,KAAK,IAAI;AAAA,EACT,KAAK,IAAI,QAAQ;AACrB;AAEO,MAAM,sBAAsB,CAAC,YAAwB,oBACxD,OAAO,EACF;AAAA,EACG;AAAA,EACA,wBAAwB,YAAY,eAAe;AAAA,EACnD,cAAc;AAAA,IACV;AAAA,IACA,SAAS,qBAAqB,UAAU;AAAA,IACxC,iBAAiB,CAAC,MAAM,OAAO,mBAAmB;AAC9C,aAAO,CAAC,GAAG,gBAAgB,gCAAgC,CAAC;AAAA,IAChE;AAAA,EACJ,CAAC;AACL,EACC;AAAA,EACG;AAAA,EACA,yBAAyB,UAAU;AAAA,EACnC,cAAc;AAAA,IACV;AAAA,IACA,SAAS,qBAAqB,UAAU;AAAA,EAC5C,CAAC;AACL;","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createApiRouter } from "./api.js";
|
|
2
|
+
import { createAuthPagesRouter } from "./auth-pages.js";
|
|
3
|
+
import { createClientRouter } from "./client.js";
|
|
4
|
+
import { createGraphqlRouter } from "./graphql.js";
|
|
5
|
+
export {
|
|
6
|
+
createApiRouter,
|
|
7
|
+
createAuthPagesRouter,
|
|
8
|
+
createClientRouter,
|
|
9
|
+
createGraphqlRouter
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/routes/index.ts"],"sourcesContent":["export { createApiRouter } from './api.js';\nexport { createAuthPagesRouter } from './auth-pages.js';\nexport { createClientRouter } from './client.js';\nexport { createGraphqlRouter } from './graphql.js';\n"],"mappings":"AAAA,SAAS,uBAAuB;AAChC,SAAS,6BAA6B;AACtC,SAAS,0BAA0B;AACnC,SAAS,2BAA2B;","names":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Router } from "express";
|
|
2
|
+
import {
|
|
3
|
+
createMcpCreateNoteHandler,
|
|
4
|
+
createMcpDeleteNoteHandler,
|
|
5
|
+
createMcpUpdateNoteHandler
|
|
6
|
+
} from "../features/note/http/mcp.js";
|
|
7
|
+
import { createMcpCreateTagHandler } from "../features/tag/http/mcp.js";
|
|
8
|
+
import { createMcpAuthMiddleware } from "../modules/mcp-auth.js";
|
|
9
|
+
import useAsync from "../modules/use-async.js";
|
|
10
|
+
const createMcpRouter = (authConfig, mcpAdminService) => Router().post(
|
|
11
|
+
"/notes/create",
|
|
12
|
+
createMcpAuthMiddleware(authConfig, mcpAdminService),
|
|
13
|
+
useAsync(createMcpCreateNoteHandler())
|
|
14
|
+
).post(
|
|
15
|
+
"/notes/update",
|
|
16
|
+
createMcpAuthMiddleware(authConfig, mcpAdminService),
|
|
17
|
+
useAsync(createMcpUpdateNoteHandler())
|
|
18
|
+
).post(
|
|
19
|
+
"/notes/delete",
|
|
20
|
+
createMcpAuthMiddleware(authConfig, mcpAdminService),
|
|
21
|
+
useAsync(createMcpDeleteNoteHandler())
|
|
22
|
+
).post(
|
|
23
|
+
"/tags/create",
|
|
24
|
+
createMcpAuthMiddleware(authConfig, mcpAdminService),
|
|
25
|
+
useAsync(createMcpCreateTagHandler())
|
|
26
|
+
);
|
|
27
|
+
export {
|
|
28
|
+
createMcpRouter
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/routes/mcp.ts"],"sourcesContent":["import { Router } from 'express';\nimport type { McpAdminService } from '../features/mcp-admin/service.js';\nimport {\n createMcpCreateNoteHandler,\n createMcpDeleteNoteHandler,\n createMcpUpdateNoteHandler,\n} from '../features/note/http/mcp.js';\nimport { createMcpCreateTagHandler } from '../features/tag/http/mcp.js';\nimport type { AuthConfig } from '../modules/auth-mode.js';\nimport { createMcpAuthMiddleware } from '../modules/mcp-auth.js';\nimport useAsync from '../modules/use-async.js';\n\ntype McpRouteService = Pick<McpAdminService, 'getStatus' | 'validatePresentedToken'>;\n\nexport const createMcpRouter = (authConfig: AuthConfig, mcpAdminService: McpRouteService) =>\n Router()\n .post(\n '/notes/create',\n createMcpAuthMiddleware(authConfig, mcpAdminService),\n useAsync(createMcpCreateNoteHandler()),\n )\n .post(\n '/notes/update',\n createMcpAuthMiddleware(authConfig, mcpAdminService),\n useAsync(createMcpUpdateNoteHandler()),\n )\n .post(\n '/notes/delete',\n createMcpAuthMiddleware(authConfig, mcpAdminService),\n useAsync(createMcpDeleteNoteHandler()),\n )\n .post(\n '/tags/create',\n createMcpAuthMiddleware(authConfig, mcpAdminService),\n useAsync(createMcpCreateTagHandler()),\n );\n"],"mappings":"AAAA,SAAS,cAAc;AAEvB;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,iCAAiC;AAE1C,SAAS,+BAA+B;AACxC,OAAO,cAAc;AAId,MAAM,kBAAkB,CAAC,YAAwB,oBACpD,OAAO,EACF;AAAA,EACG;AAAA,EACA,wBAAwB,YAAY,eAAe;AAAA,EACnD,SAAS,2BAA2B,CAAC;AACzC,EACC;AAAA,EACG;AAAA,EACA,wBAAwB,YAAY,eAAe;AAAA,EACnD,SAAS,2BAA2B,CAAC;AACzC,EACC;AAAA,EACG;AAAA,EACA,wBAAwB,YAAY,eAAe;AAAA,EACnD,SAAS,2BAA2B,CAAC;AACzC,EACC;AAAA,EACG;AAAA,EACA,wBAAwB,YAAY,eAAe;AAAA,EACnD,SAAS,0BAA0B,CAAC;AACxC;","names":[]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { makeExecutableSchema } from "@graphql-tools/schema";
|
|
2
|
-
import {
|
|
3
|
-
import { imageResolvers, imageTypeDefs } from "
|
|
4
|
-
import {
|
|
5
|
-
import { placeholderResolvers, placeholderTypeDefs } from "
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
2
|
+
import { cacheResolvers, cacheTypeDefs } from "../features/cache/graphql/index.js";
|
|
3
|
+
import { imageResolvers, imageTypeDefs } from "../features/image/graphql/index.js";
|
|
4
|
+
import { noteResolvers, noteTypeDefs } from "../features/note/graphql/index.js";
|
|
5
|
+
import { placeholderResolvers, placeholderTypeDefs } from "../features/placeholder/graphql/index.js";
|
|
6
|
+
import { reminderResolvers, reminderTypeDefs } from "../features/reminder/graphql/index.js";
|
|
7
|
+
import { tagResolvers, tagTypeDefs } from "../features/tag/graphql/index.js";
|
|
8
|
+
import { viewResolvers, viewTypeDefs } from "../features/view/graphql/index.js";
|
|
8
9
|
const schema = makeExecutableSchema({
|
|
9
10
|
typeDefs: [
|
|
10
11
|
cacheTypeDefs,
|
|
@@ -12,7 +13,8 @@ const schema = makeExecutableSchema({
|
|
|
12
13
|
imageTypeDefs,
|
|
13
14
|
tagTypeDefs,
|
|
14
15
|
placeholderTypeDefs,
|
|
15
|
-
reminderTypeDefs
|
|
16
|
+
reminderTypeDefs,
|
|
17
|
+
viewTypeDefs
|
|
16
18
|
],
|
|
17
19
|
resolvers: [
|
|
18
20
|
cacheResolvers,
|
|
@@ -20,7 +22,8 @@ const schema = makeExecutableSchema({
|
|
|
20
22
|
imageResolvers,
|
|
21
23
|
tagResolvers,
|
|
22
24
|
placeholderResolvers,
|
|
23
|
-
reminderResolvers
|
|
25
|
+
reminderResolvers,
|
|
26
|
+
viewResolvers
|
|
24
27
|
]
|
|
25
28
|
});
|
|
26
29
|
var schema_default = schema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/schema/index.ts"],"sourcesContent":["import { makeExecutableSchema } from '@graphql-tools/schema';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/schema/index.ts"],"sourcesContent":["import { makeExecutableSchema } from '@graphql-tools/schema';\nimport { cacheResolvers, cacheTypeDefs } from '../features/cache/graphql/index.js';\nimport { imageResolvers, imageTypeDefs } from '../features/image/graphql/index.js';\nimport { noteResolvers, noteTypeDefs } from '../features/note/graphql/index.js';\nimport { placeholderResolvers, placeholderTypeDefs } from '../features/placeholder/graphql/index.js';\nimport { reminderResolvers, reminderTypeDefs } from '../features/reminder/graphql/index.js';\nimport { tagResolvers, tagTypeDefs } from '../features/tag/graphql/index.js';\nimport { viewResolvers, viewTypeDefs } from '../features/view/graphql/index.js';\n\nconst schema = makeExecutableSchema({\n typeDefs: [\n cacheTypeDefs,\n noteTypeDefs,\n imageTypeDefs,\n tagTypeDefs,\n placeholderTypeDefs,\n reminderTypeDefs,\n viewTypeDefs,\n ],\n resolvers: [\n cacheResolvers,\n noteResolvers,\n imageResolvers,\n tagResolvers,\n placeholderResolvers,\n reminderResolvers,\n viewResolvers,\n ],\n});\n\nexport default schema;\n"],"mappings":"AAAA,SAAS,4BAA4B;AACrC,SAAS,gBAAgB,qBAAqB;AAC9C,SAAS,gBAAgB,qBAAqB;AAC9C,SAAS,eAAe,oBAAoB;AAC5C,SAAS,sBAAsB,2BAA2B;AAC1D,SAAS,mBAAmB,wBAAwB;AACpD,SAAS,cAAc,mBAAmB;AAC1C,SAAS,eAAe,oBAAoB;AAE5C,MAAM,SAAS,qBAAqB;AAAA,EAChC,UAAU;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,WAAW;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ,CAAC;AAED,IAAO,iBAAQ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/types/index.ts"],"sourcesContent":["import type { Request, Response
|
|
1
|
+
{"version":3,"sources":["../../src/types/index.ts"],"sourcesContent":["import type { NextFunction, Request, Response } from 'express';\n\ndeclare module 'express-session' {\n interface SessionData {\n authenticated?: boolean;\n }\n}\n\nexport type Controller = (req: Request, res: Response, next?: NextFunction) => Promise<void>;\n\nexport * from './input.js';\n"],"mappings":"AAUA,cAAc;","names":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
CREATE TEMP TABLE "_TagDuplicateMap" AS
|
|
2
|
+
SELECT
|
|
3
|
+
duplicate."id" AS "duplicateId",
|
|
4
|
+
grouped."canonicalId" AS "canonicalId"
|
|
5
|
+
FROM "Tag" AS duplicate
|
|
6
|
+
JOIN (
|
|
7
|
+
SELECT
|
|
8
|
+
"name",
|
|
9
|
+
MIN("id") AS "canonicalId"
|
|
10
|
+
FROM "Tag"
|
|
11
|
+
GROUP BY "name"
|
|
12
|
+
) AS grouped
|
|
13
|
+
ON grouped."name" = duplicate."name"
|
|
14
|
+
WHERE duplicate."id" <> grouped."canonicalId";
|
|
15
|
+
|
|
16
|
+
INSERT OR IGNORE INTO "_NoteToTag" ("A", "B")
|
|
17
|
+
SELECT
|
|
18
|
+
relation."A",
|
|
19
|
+
duplicateMap."canonicalId"
|
|
20
|
+
FROM "_NoteToTag" AS relation
|
|
21
|
+
JOIN "_TagDuplicateMap" AS duplicateMap
|
|
22
|
+
ON duplicateMap."duplicateId" = relation."B";
|
|
23
|
+
|
|
24
|
+
DELETE FROM "Tag"
|
|
25
|
+
WHERE "id" IN (
|
|
26
|
+
SELECT "duplicateId"
|
|
27
|
+
FROM "_TagDuplicateMap"
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
CREATE UNIQUE INDEX "Tag_name_key" ON "Tag"("name");
|
|
31
|
+
|
|
32
|
+
DROP TABLE "_TagDuplicateMap";
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "ViewTab" (
|
|
3
|
+
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
4
|
+
"title" TEXT NOT NULL,
|
|
5
|
+
"order" INTEGER NOT NULL DEFAULT 0,
|
|
6
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
7
|
+
"updatedAt" DATETIME NOT NULL
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
-- CreateTable
|
|
11
|
+
CREATE TABLE "ViewWorkspace" (
|
|
12
|
+
"id" INTEGER NOT NULL PRIMARY KEY,
|
|
13
|
+
"activeTabId" INTEGER,
|
|
14
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
15
|
+
"updatedAt" DATETIME NOT NULL,
|
|
16
|
+
CONSTRAINT "ViewWorkspace_activeTabId_fkey" FOREIGN KEY ("activeTabId") REFERENCES "ViewTab" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
-- CreateTable
|
|
20
|
+
CREATE TABLE "ViewSection" (
|
|
21
|
+
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
22
|
+
"tabId" INTEGER NOT NULL,
|
|
23
|
+
"title" TEXT NOT NULL,
|
|
24
|
+
"mode" TEXT NOT NULL DEFAULT 'and',
|
|
25
|
+
"limit" INTEGER NOT NULL DEFAULT 5,
|
|
26
|
+
"order" INTEGER NOT NULL DEFAULT 0,
|
|
27
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
28
|
+
"updatedAt" DATETIME NOT NULL,
|
|
29
|
+
CONSTRAINT "ViewSection_tabId_fkey" FOREIGN KEY ("tabId") REFERENCES "ViewTab" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
-- CreateTable
|
|
33
|
+
CREATE TABLE "ViewSectionTag" (
|
|
34
|
+
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
35
|
+
"sectionId" INTEGER NOT NULL,
|
|
36
|
+
"name" TEXT NOT NULL,
|
|
37
|
+
"order" INTEGER NOT NULL DEFAULT 0,
|
|
38
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
39
|
+
"updatedAt" DATETIME NOT NULL,
|
|
40
|
+
CONSTRAINT "ViewSectionTag_sectionId_fkey" FOREIGN KEY ("sectionId") REFERENCES "ViewSection" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
-- CreateIndex
|
|
44
|
+
CREATE INDEX "ViewTab_order_createdAt_idx" ON "ViewTab"("order", "createdAt");
|
|
45
|
+
|
|
46
|
+
-- CreateIndex
|
|
47
|
+
CREATE INDEX "ViewSection_tabId_order_createdAt_idx" ON "ViewSection"("tabId", "order", "createdAt");
|
|
48
|
+
|
|
49
|
+
-- CreateIndex
|
|
50
|
+
CREATE INDEX "ViewSectionTag_sectionId_order_createdAt_idx" ON "ViewSectionTag"("sectionId", "order", "createdAt");
|
|
@@ -26,17 +26,19 @@ model McpToken {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
model Note {
|
|
29
|
-
id
|
|
30
|
-
title
|
|
31
|
-
content
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
29
|
+
id Int @id @default(autoincrement())
|
|
30
|
+
title String
|
|
31
|
+
content String
|
|
32
|
+
searchableText String @default("")
|
|
33
|
+
searchableTextVersion Int @default(0)
|
|
34
|
+
createdAt DateTime @default(now())
|
|
35
|
+
updatedAt DateTime @updatedAt
|
|
36
|
+
pinned Boolean @default(false)
|
|
37
|
+
order Int @default(0)
|
|
38
|
+
layout NoteLayout @default(wide)
|
|
39
|
+
tags Tag[] @relation("NoteToTag")
|
|
40
|
+
reminders Reminder[] @relation("NoteToReminder")
|
|
41
|
+
snapshots NoteSnapshot[]
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
model NoteSnapshot {
|
|
@@ -103,7 +105,7 @@ model Image {
|
|
|
103
105
|
|
|
104
106
|
model Tag {
|
|
105
107
|
id Int @id @default(autoincrement())
|
|
106
|
-
name String
|
|
108
|
+
name String @unique
|
|
107
109
|
createdAt DateTime @default(now())
|
|
108
110
|
updatedAt DateTime @updatedAt
|
|
109
111
|
notes Note[] @relation("NoteToTag")
|
|
@@ -141,3 +143,55 @@ model Placeholder {
|
|
|
141
143
|
createdAt DateTime @default(now())
|
|
142
144
|
updatedAt DateTime @updatedAt
|
|
143
145
|
}
|
|
146
|
+
|
|
147
|
+
model ViewWorkspace {
|
|
148
|
+
id Int @id
|
|
149
|
+
activeTabId Int?
|
|
150
|
+
activeTab ViewTab? @relation("ActiveViewTab", fields: [activeTabId], references: [id], onDelete: SetNull)
|
|
151
|
+
createdAt DateTime @default(now())
|
|
152
|
+
updatedAt DateTime @updatedAt
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
model ViewTab {
|
|
156
|
+
id Int @id @default(autoincrement())
|
|
157
|
+
title String
|
|
158
|
+
order Int @default(0)
|
|
159
|
+
createdAt DateTime @default(now())
|
|
160
|
+
updatedAt DateTime @updatedAt
|
|
161
|
+
sections ViewSection[]
|
|
162
|
+
activeWorkspaces ViewWorkspace[] @relation("ActiveViewTab")
|
|
163
|
+
|
|
164
|
+
@@index([order, createdAt])
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
model ViewSection {
|
|
168
|
+
id Int @id @default(autoincrement())
|
|
169
|
+
tabId Int
|
|
170
|
+
tab ViewTab @relation(fields: [tabId], references: [id], onDelete: Cascade)
|
|
171
|
+
title String
|
|
172
|
+
mode ViewTagMatchMode @default(and)
|
|
173
|
+
limit Int @default(5)
|
|
174
|
+
order Int @default(0)
|
|
175
|
+
createdAt DateTime @default(now())
|
|
176
|
+
updatedAt DateTime @updatedAt
|
|
177
|
+
tags ViewSectionTag[]
|
|
178
|
+
|
|
179
|
+
@@index([tabId, order, createdAt])
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
model ViewSectionTag {
|
|
183
|
+
id Int @id @default(autoincrement())
|
|
184
|
+
sectionId Int
|
|
185
|
+
section ViewSection @relation(fields: [sectionId], references: [id], onDelete: Cascade)
|
|
186
|
+
name String
|
|
187
|
+
order Int @default(0)
|
|
188
|
+
createdAt DateTime @default(now())
|
|
189
|
+
updatedAt DateTime @updatedAt
|
|
190
|
+
|
|
191
|
+
@@index([sectionId, order, createdAt])
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
enum ViewTagMatchMode {
|
|
195
|
+
and
|
|
196
|
+
or
|
|
197
|
+
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import{j as e}from"./note-vendor-BofYbzmZ.js";import{p as ae,T as b,L as se,N as re,c as Y,d as f,s as ne,a as oe,M as R,b as ie,S as le,e as U,B as Z,f as ce,g as de,u as P,q,h as Q,P as me,i as ue,j as he,C as ge}from"./index-Ba2XPRI8.js";import{a as n}from"./graph-vendor-CUxe67Lr.js";import"./note-core-BCgMq5QA.js";const pe=new Map([["bold",n.createElement(n.Fragment,null,n.createElement("path",{d:"M108,84a16,16,0,1,1,16,16A16,16,0,0,1,108,84Zm128,44A108,108,0,1,1,128,20,108.12,108.12,0,0,1,236,128Zm-24,0a84,84,0,1,0-84,84A84.09,84.09,0,0,0,212,128Zm-72,36.68V132a20,20,0,0,0-20-20,12,12,0,0,0-4,23.32V168a20,20,0,0,0,20,20,12,12,0,0,0,4-23.32Z"}))],["duotone",n.createElement(n.Fragment,null,n.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),n.createElement("path",{d:"M144,176a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176Zm88-48A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128ZM124,96a12,12,0,1,0-12-12A12,12,0,0,0,124,96Z"}))],["fill",n.createElement(n.Fragment,null,n.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm-4,48a12,12,0,1,1-12,12A12,12,0,0,1,124,72Zm12,112a16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40a8,8,0,0,1,0,16Z"}))],["light",n.createElement(n.Fragment,null,n.createElement("path",{d:"M142,176a6,6,0,0,1-6,6,14,14,0,0,1-14-14V128a2,2,0,0,0-2-2,6,6,0,0,1,0-12,14,14,0,0,1,14,14v40a2,2,0,0,0,2,2A6,6,0,0,1,142,176ZM124,94a10,10,0,1,0-10-10A10,10,0,0,0,124,94Zm106,34A102,102,0,1,1,128,26,102.12,102.12,0,0,1,230,128Zm-12,0a90,90,0,1,0-90,90A90.1,90.1,0,0,0,218,128Z"}))],["regular",n.createElement(n.Fragment,null,n.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm16-40a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176ZM112,84a12,12,0,1,1,12,12A12,12,0,0,1,112,84Z"}))],["thin",n.createElement(n.Fragment,null,n.createElement("path",{d:"M140,176a4,4,0,0,1-4,4,12,12,0,0,1-12-12V128a4,4,0,0,0-4-4,4,4,0,0,1,0-8,12,12,0,0,1,12,12v40a4,4,0,0,0,4,4A4,4,0,0,1,140,176ZM124,92a8,8,0,1,0-8-8A8,8,0,0,0,124,92Zm104,36A100,100,0,1,1,128,28,100.11,100.11,0,0,1,228,128Zm-8,0a92,92,0,1,0-92,92A92.1,92.1,0,0,0,220,128Z"}))]]),B=n.forwardRef((a,t)=>n.createElement(ae,{ref:t,...a,weights:pe}));B.displayName="InfoIcon";const xe=B,ye=({children:a,className:t=""})=>e.jsxs("div",{className:`flex items-start gap-2.5 rounded-[12px] border border-border-subtle bg-hover-subtle/50 px-4 py-3 ${t}`,children:[e.jsx(xe,{className:"mt-0.5 h-4 w-4 shrink-0 text-fg-tertiary"}),e.jsx(b,{as:"div",variant:"meta",weight:"medium",tone:"secondary",children:a})]}),fe=({day:a,cellClassName:t,dayNumberClassName:s,isCurrentMonth:l,items:i,overflowCount:c,onOpenOverflow:u})=>e.jsxs("div",{className:`min-h-[196px] rounded-[16px] border p-2.5 ${t}`.trim(),children:[e.jsx("div",{className:"mb-2.5 flex justify-end",children:e.jsx(b,{as:"span",variant:"label",className:`flex h-7 w-7 items-center justify-center rounded-[10px] ${s}`.trim(),children:a})}),l&&i.length>0?e.jsxs("div",{className:"flex flex-col gap-1.5",children:[i,c>0?e.jsxs("button",{type:"button",onClick:u,className:"focus-ring-soft w-full rounded-[10px] border border-dashed border-border-subtle/70 bg-subtle/70 py-1 text-center text-micro font-semibold text-fg-tertiary outline-none transition-colors hover:border-border-secondary/70 hover:bg-hover-subtle hover:text-fg-secondary",children:["+",c," more"]}):null]}):null]}),K=({params:a,toneClassName:t="",header:s,title:l,meta:i,titleClassName:c=""})=>e.jsx(se,{to:re,params:a,className:"focus-ring-soft group block rounded-[8px] outline-none",children:e.jsxs("div",{className:Y("flex items-start gap-1.5 rounded-[8px] px-1.5 py-1 transition-colors group-hover:bg-hover-subtle",t),children:[s?e.jsx("span",{className:"mt-[2px] flex h-4 w-4 shrink-0 items-center justify-center text-fg-tertiary",children:s}):e.jsx("span",{"aria-hidden":"true",className:"mt-[6px] h-1.5 w-1.5 shrink-0 rounded-full bg-fg-placeholder"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx(b,{as:"div",variant:"label",weight:"medium",tone:"secondary",className:Y("line-clamp-1",c),children:l}),i?e.jsx(b,{as:"div",variant:"micro",weight:"medium",tone:"tertiary",className:"mt-0.5",children:i}):null]})]})}),be=({note:a,type:t})=>e.jsx(K,{params:{id:a.id},header:e.jsx(ne,{size:12}),title:a.title,meta:f(Number(t==="create"?a.createdAt:a.updatedAt)).format("HH:mm")}),je=({reminder:a})=>e.jsx(K,{params:{id:String(a.note?.id??a.noteId)},header:e.jsx(oe,{size:12}),title:a.content||a.note?.title||"No title",titleClassName:a.completed?"line-through":"",meta:f(Number(a.reminderDate)).format("HH:mm")}),T=3,H=(a,t)=>a.map(s=>s.type==="note"?e.jsx(be,{note:s.item,type:t},`note-${s.item.id}`):e.jsx(je,{reminder:s.item},`reminder-${s.item.id}`)),ve=({year:a,month:t,day:s,isCurrentMonth:l,isSunday:i,isToday:c,isPast:u,notes:h,reminders:g,type:v})=>{const[M,N]=n.useState(!1),x=n.useMemo(()=>{const r=h.map(m=>({type:"note",item:m})),d=g.map(m=>({type:"reminder",item:m}));return u?[...r,...d]:[...d,...r]},[u,h,g]),D=x.length>T,C=n.useMemo(()=>H(x.slice(0,T),v),[x,v]),S=n.useMemo(()=>H(x,v),[x,v]),A=n.useCallback(()=>N(!0),[]),w=n.useCallback(()=>N(!1),[]),$=()=>l?c?"border-border-secondary/70 bg-[color:color-mix(in_srgb,var(--surface)_88%,var(--accent-soft-primary)_12%)]":"bg-surface border-border-subtle":"bg-muted/18 border-border-subtle/70",k=()=>c?"bg-cta text-fg-on-filled font-semibold":l?i?"text-fg-weekend font-bold":"text-fg-secondary font-bold":"text-fg-disabled opacity-55";return e.jsxs(e.Fragment,{children:[e.jsx(fe,{day:s,cellClassName:$(),dayNumberClassName:k(),isCurrentMonth:l,items:C,overflowCount:D?x.length-T:0,onOpenOverflow:A}),D&&e.jsxs(R,{isOpen:M,onClose:w,variant:"inspect",children:[e.jsx(R.Header,{title:`${a}/${String(t).padStart(2,"0")}/${String(s).padStart(2,"0")}`,onClose:w}),e.jsxs(R.Body,{children:[e.jsxs(R.Description,{className:"sr-only",children:["View all notes and reminders scheduled for day ",s,"."]}),e.jsx("div",{className:"flex max-h-[60vh] flex-col gap-2 overflow-y-auto",children:S})]})]})]})},Ne=n.memo(ve),Me=["January","February","March","April","May","June","July","August","September","October","November","December"],De=({month:a,year:t,type:s,onPrevMonth:l,onNextMonth:i,onToday:c,onTypeChange:u})=>e.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-end lg:justify-between",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:"flex flex-wrap items-end gap-x-2.5 gap-y-1",children:[e.jsx(b,{as:"h1",variant:"display",weight:"bold",tracking:"tighter",className:"text-2xl leading-none sm:text-[2.15rem]",children:Me[a-1]}),e.jsx(b,{as:"span",variant:"subheading",weight:"medium",tone:"secondary",tracking:"tight",className:"pb-0.5",children:t})]}),e.jsx(b,{as:"p",variant:"meta",weight:"medium",tone:"secondary",children:"Track note activity and reminders across the month"})]}),e.jsx("div",{className:"flex lg:justify-end",children:e.jsxs("div",{className:"surface-base inline-flex flex-wrap items-center gap-3 rounded-[16px] px-3.5 py-2.5",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ie,{className:"h-4 w-4 shrink-0 text-fg-tertiary"}),e.jsx(b,{as:"span",variant:"label",weight:"medium",tone:"tertiary",children:"Note date"}),e.jsxs(le,{value:s,onValueChange:g=>u(g),variant:"ghost",size:"sm",children:[e.jsx(U,{value:"create",children:"Created"}),e.jsx(U,{value:"update",children:"Updated"})]})]}),e.jsx("div",{className:"h-5 w-px bg-divider"}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(Z,{variant:"ghost",size:"sm",onClick:c,children:"Today"}),e.jsx(Z,{variant:"ghost",size:"icon-sm",onClick:l,children:e.jsx(ce,{width:18,height:18})}),e.jsx(Z,{variant:"ghost",size:"icon-sm",onClick:i,children:e.jsx(de,{width:18,height:18})})]})]})})]}),we=`
|
|
2
|
-
query NotesInDateRange($dateRange: DateRangeInput) {
|
|
3
|
-
notesInDateRange(dateRange: $dateRange) {
|
|
4
|
-
id
|
|
5
|
-
title
|
|
6
|
-
createdAt
|
|
7
|
-
updatedAt
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
`,Ee=`
|
|
11
|
-
query RemindersInDateRange($dateRange: DateRangeInput) {
|
|
12
|
-
remindersInDateRange(dateRange: $dateRange) {
|
|
13
|
-
id
|
|
14
|
-
noteId
|
|
15
|
-
reminderDate
|
|
16
|
-
completed
|
|
17
|
-
priority
|
|
18
|
-
content
|
|
19
|
-
note {
|
|
20
|
-
id
|
|
21
|
-
title
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
`,Re=async a=>{const t=await Q(we,{dateRange:a});if(t.type==="error")throw t;return t.notesInDateRange},Ce=async a=>{const t=await Q(Ee,{dateRange:a});if(t.type==="error")throw t;return t.remindersInDateRange},Se=({year:a,month:t})=>{const s=`${a}-${String(t).padStart(2,"0")}-01`,l=t===12?1:t+1,c=`${t===12?a+1:a}-${String(l).padStart(2,"0")}-01`,u={start:s,end:c},h=P({queryKey:q.calendar.notesInDateRange(a,t),queryFn:()=>Re(u)}),g=P({queryKey:q.reminders.inDateRange(a,t),queryFn:()=>Ce(u)});return{notes:h.data??[],reminders:g.data??[],isLoading:h.isLoading||g.isLoading,isError:h.isError||g.isError}},Ae=["SUN","MON","TUE","WED","THU","FRI","SAT"],$e=[],ke=[],z=he(ge);function Le(){const a=z.useNavigate(),{year:t,month:s,type:l}=z.useSearch(),i=n.useRef(null),c=n.useRef(!1),u=n.useRef(0),h=n.useRef(0),g=n.useCallback(r=>{c.current=!0,u.current=r.pageX-(i.current?.offsetLeft??0),h.current=i.current?.scrollLeft??0,i.current&&(i.current.style.cursor="grabbing",i.current.style.userSelect="none")},[]),v=n.useCallback(r=>{if(!c.current||!i.current)return;r.preventDefault();const m=(r.pageX-i.current.offsetLeft-u.current)*1.2;i.current.scrollLeft=h.current-m},[]),M=n.useCallback(()=>{c.current=!1,i.current&&(i.current.style.cursor="grab",i.current.style.userSelect="")},[]),{notes:N,reminders:x,isLoading:D,isError:C}=Se({year:t,month:s}),S=n.useMemo(()=>{const r=f(),d=`${r.year()}-${r.month()+1}-${r.date()}`,m=new Map;for(const o of N){const y=l==="create"?f(Number(o.createdAt)):f(Number(o.updatedAt)),p=`${y.year()}-${y.month()+1}-${y.date()}`,j=m.get(p)||[];j.push(o),m.set(p,j)}const I=new Map;for(const o of x){const y=f(Number(o.reminderDate)),p=`${y.year()}-${y.month()+1}-${y.date()}`,j=I.get(p)||[];j.push(o),I.set(p,j)}const W=new Date(t,s-1,1),X=new Date(t,s,0),O=W.getDay(),L=X.getDate(),E=[],F=s===1?12:s-1,_=s===1?t-1:t,J=new Date(_,F,0).getDate();for(let o=O-1;o>=0;o--)E.push({day:J-o,isCurrentMonth:!1,year:_,month:F});for(let o=1;o<=L;o++)E.push({day:o,isCurrentMonth:!0,year:t,month:s});const V=(O+L)%7,G=V===0?0:7-V,ee=s===12?1:s+1,te=s===12?t+1:t;for(let o=1;o<=G;o++)E.push({day:o,isCurrentMonth:!1,year:te,month:ee});return E.map((o,y)=>{const p=`${o.year}-${o.month}-${o.day}`,j=f(`${o.year}-${String(o.month).padStart(2,"0")}-${String(o.day).padStart(2,"0")}`);return{key:p,year:o.year,month:o.month,day:o.day,isCurrentMonth:o.isCurrentMonth,isSunday:y%7===0,isToday:p===d,isPast:j.isBefore(r,"day"),notes:m.get(p)||$e,reminders:I.get(p)||ke}})},[t,s,N,x,l]),A=()=>{const r=s===1?12:s-1,d=s===1?t-1:t;a({search:m=>({...m,month:r,year:d})})},w=()=>{const r=s===12?1:s+1,d=s===12?t+1:t;a({search:m=>({...m,month:r,year:d})})},$=()=>{a({search:r=>({...r,month:f().month()+1,year:f().year()})})},k=r=>{r&&a({search:d=>({...d,type:r})})};return e.jsx(me,{title:"Calendar",variant:"none",children:C?e.jsx(ye,{children:"Failed to load calendar data. Please try again later."}):e.jsxs("div",{className:"surface-base",children:[e.jsx("div",{className:"border-b border-border-subtle/80 px-4 py-4 sm:px-5",children:e.jsx(De,{month:s,year:t,type:l,onPrevMonth:A,onNextMonth:w,onToday:$,onTypeChange:k})}),e.jsx("div",{ref:i,className:"cursor-grab overflow-x-auto px-4 pb-4 pt-3 sm:px-5",onMouseDown:g,onMouseMove:v,onMouseUp:M,onMouseLeave:M,children:e.jsxs("div",{className:"min-w-[1260px]",children:[e.jsx("div",{className:"mb-2.5 grid grid-cols-7 gap-1.5",children:Ae.map((r,d)=>e.jsx(b,{as:"div",variant:"label",weight:"semibold",tracking:"wider",transform:"uppercase",className:`py-2 text-center ${d===0?"text-fg-weekend":"text-fg-tertiary"}`,children:r},r))}),D?e.jsx("div",{className:"grid grid-cols-7 gap-1.5",children:Array.from({length:35}).map((r,d)=>e.jsx(ue,{height:180},d))}):e.jsx("div",{className:"grid grid-cols-7 gap-1.5",children:S.map(r=>e.jsx(Ne,{year:r.year,month:r.month,day:r.day,isCurrentMonth:r.isCurrentMonth,isSunday:r.isSunday,isToday:r.isToday,isPast:r.isPast,notes:r.notes,reminders:r.reminders,type:l},r.key))})]})})]})})}export{Le as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as t}from"./note-vendor-BofYbzmZ.js";import{a as i,F as _}from"./graph-vendor-CUxe67Lr.js";import{Q as U,P as C,n as Y,i as G,o as J,r as X,t as ee,v as ne,q as te,N as re,E as oe,T as N,w as se}from"./index-Ba2XPRI8.js";import"./note-core-BCgMq5QA.js";const ae=s=>{let a=0;for(let r=0;r<s.length;r++)a+=s.charCodeAt(r);return a},ie={background:"#f4f6f8",nodeHub:"#2c2f36",nodeSelected:"#111318",nodeConnected:"#636b76",nodeDefault:["#d6dbe1","#c8ced6","#b7bec7","#a7afb9"],nodeDimmed:["rgba(214,219,225,0.28)","rgba(200,206,214,0.24)","rgba(183,190,199,0.24)","rgba(167,175,185,0.2)"],nodeHubDimmed:"rgba(44,47,54,0.16)",nodeStroke:"#eef1f4",nodeSelectedStroke:"#a6b0bc",labelBackground:"rgba(246,248,250,0.92)",labelText:"#222831",labelFontFamily:"Pretendard Variable, Pretendard, system-ui, sans-serif",linkIdle:"rgba(99, 107, 117, 0.34)",linkConnected:"#68717c",linkDimmed:"rgba(127, 136, 146, 0.12)",legendHub:"#2c2f36"},le={background:"#121316",nodeHub:"#d6dce3",nodeSelected:"#eef1f5",nodeConnected:"#9099a4",nodeDefault:["#343a43","#2d333c","#262c35","#20262f"],nodeDimmed:["rgba(52,58,67,0.28)","rgba(45,51,60,0.24)","rgba(38,44,53,0.22)","rgba(32,38,47,0.2)"],nodeHubDimmed:"rgba(214,220,227,0.16)",nodeStroke:"#171c23",nodeSelectedStroke:"#7f8a97",labelBackground:"rgba(16,18,22,0.9)",labelText:"#eef2f6",labelFontFamily:"Pretendard Variable, Pretendard, system-ui, sans-serif",linkIdle:"rgba(118, 127, 138, 0.42)",linkConnected:"#a2abb6",linkDimmed:"rgba(118, 127, 138, 0.1)",legendHub:"#d6dce3"};function D(s){return s==="dark"?le:ie}function de(s,a){const r=D(s),{connections:g,colorIndex:y,selectedNodeId:d,nodeId:b,isConnected:c}=a,h=d===b;return d!==null&&!h&&!c?g>3?r.nodeHubDimmed:r.nodeDimmed[y%r.nodeDimmed.length]:h?r.nodeSelected:c?r.nodeConnected:g>3?r.nodeHub:r.nodeDefault[y%r.nodeDefault.length]}function ce(s,a){const r=D(s);return a.selectedNodeId!==null&&!a.isConnected?r.linkDimmed:a.isConnected?r.linkConnected:r.linkIdle}function ue(s,a){const r=D(s);return`${a.emphasize?"700":"400"} ${a.fontSize}px ${r.labelFontFamily}`}function z(s){return s<=1?3.5:s<=3?4.5:s<=6?5.5:Math.min(7,5.5+Math.sqrt(s)*.5)}const fe=t.jsx(C,{title:"Knowledge Graph",description:t.jsx(G,{width:184,height:16,className:"rounded-full"}),children:t.jsx("div",{className:"flex h-[600px] items-center justify-center",children:t.jsx(G,{width:"100%",height:"100%"})})});function he(){const s=J(),a=i.useRef(null),r=i.useRef(null),[g,y]=i.useState({width:800,height:600}),[d,b]=i.useState(null),{theme:c}=X(e=>e),h=D(c),v=i.useRef(h);v.current=h;const{data:w}=ee({queryKey:te.notes.graph(),queryFn:async()=>{const e=await ne();if(e.type==="error")throw e;return e.noteGraph}}),l=i.useMemo(()=>{if(w.nodes.length===0)return null;const e=w.nodes.filter(o=>o.connections>0);if(e.length===0)return null;const n=new Set(e.map(o=>o.id));return{nodes:e,links:w.links.filter(o=>n.has(o.source)&&n.has(o.target))}},[w]);i.useEffect(()=>{if(!l)return;const e=()=>{if(!a.current)return;const n=a.current.getBoundingClientRect();y({width:n.width,height:Math.max(600,window.innerHeight-150)})};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[l]),i.useEffect(()=>{if(!l||!r.current)return;const e=window.setTimeout(()=>{r.current?.zoomToFit(400,50)},500);return()=>window.clearTimeout(e)},[l]);const R=i.useRef(d);R.current=d;const B=i.useCallback(e=>{if(R.current===e.id){s({to:re,params:{id:e.id}});return}b(e.id)},[s]),L=i.useCallback(()=>{b(null)},[]),K=i.useCallback(e=>{a.current&&(a.current.style.cursor=e?"pointer":"default")},[]),I=i.useRef(!1),q=i.useCallback(()=>{I.current||(I.current=!0,r.current?.enableZoomInteraction(!1))},[]),A=i.useCallback(()=>{I.current=!1,r.current?.enableZoomInteraction(!0)},[]),E=i.useRef(new Map),O=i.useMemo(()=>{const e=new Map;if(l)for(const n of l.links)e.has(n.source)||e.set(n.source,new Set),e.has(n.target)||e.set(n.target,new Set),e.get(n.source)?.add(n.target),e.get(n.target)?.add(n.source);return e},[l]);E.current=O;const Z=i.useCallback((e,n,o)=>{const u=v.current,f=d,p=E.current,m=z(e.connections),x=e.x||0,S=e.y||0,k=f===e.id,T=f?p.get(f)?.has(e.id)??!1:!1,Q=f!==null&&!k&&!T,V=ae(e.id);if(n.beginPath(),n.arc(x,S,m,0,Math.PI*2),n.fillStyle=de(c,{connections:e.connections,colorIndex:V,selectedNodeId:f,nodeId:e.id,isConnected:T}),n.fill(),Q)return;n.strokeStyle=u.nodeStroke,n.lineWidth=(k?2:1)/o,n.stroke(),k&&(n.beginPath(),n.arc(x,S,m+2/o,0,Math.PI*2),n.strokeStyle=u.nodeSelectedStroke,n.lineWidth=1.5/o,n.stroke());const W=T&&e.connections>=4;if(k||W||o>2.5){const H=e.title||"Untitled",P=Math.max(10/o,2.5);n.font=ue(c,{fontSize:P,emphasize:k}),n.textAlign="center",n.textBaseline="top";const M=n.measureText(H).width,j=2/o,F=S+m+3/o;n.fillStyle=u.labelBackground,n.fillRect(x-M/2-j,F,M+j*2,P+j*2),n.fillStyle=u.labelText,n.fillText(H,x,F+j)}},[d,c]),$=i.useCallback((e,n,o)=>{const u=d,f=e.source,p=e.target,m=u?f.id===u||p.id===u:!1;n.beginPath(),n.moveTo(f.x||0,f.y||0),n.lineTo(p.x||0,p.y||0),n.strokeStyle=ce(c,{selectedNodeId:u,isConnected:m}),n.lineWidth=m?2/o:.5/o,n.stroke()},[d,c]);return l?t.jsx(C,{title:"Knowledge Graph",description:`${l.nodes.length} linked notes, ${l.links.length} connections`,children:t.jsxs("div",{ref:a,className:"surface-base graph-canvas relative overflow-hidden",style:{"--graph-bg":h.background},children:[d&&(()=>{const e=l.nodes.find(n=>n.id===d);return e?t.jsxs("div",{className:"surface-floating absolute top-3 left-3 z-10 flex items-center gap-2 px-3 py-2",children:[t.jsx(N,{as:"span",variant:"meta",weight:"semibold",truncate:!0,className:"max-w-48",children:e.title}),t.jsxs(N,{as:"span",variant:"label",tone:"tertiary",children:[e.connections," links"]}),t.jsx("button",{type:"button",onClick:()=>b(null),className:"focus-ring-soft ml-1 flex h-6 w-6 cursor-pointer items-center justify-center rounded-[8px] text-fg-tertiary transition-colors hover:bg-hover-subtle hover:text-fg-default","aria-label":"Deselect node",children:t.jsx(se,{className:"h-3.5 w-3.5"})})]}):null})(),t.jsxs("div",{className:"surface-floating absolute top-3 right-3 z-10 flex flex-col gap-1.5 px-3 py-2.5",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("span",{className:"legend-dot h-2.5 w-2.5 shrink-0 rounded-full",style:{"--legend-color":h.legendHub}}),t.jsx(N,{as:"span",variant:"label",weight:"medium",tone:"secondary",children:"Hub notes (4+ connections)"})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("span",{className:"legend-dot h-2.5 w-2.5 shrink-0 rounded-full",style:{"--legend-color":h.nodeConnected}}),t.jsx(N,{as:"span",variant:"label",weight:"medium",tone:"secondary",children:"Connected notes"})]})]}),t.jsx(_,{ref:r,graphData:l,width:g.width,height:g.height,nodeId:"id",nodeLabel:"",nodeCanvasObject:Z,nodePointerAreaPaint:(e,n,o)=>{o.beginPath(),o.arc(e.x||0,e.y||0,Math.max(z(e.connections)+4,10),0,2*Math.PI),o.fillStyle=n,o.fill()},linkCanvasObject:$,linkCanvasObjectMode:()=>"replace",linkDirectionalParticles:0,onNodeClick:B,onNodeHover:K,onBackgroundClick:L,onNodeDrag:q,onNodeDragEnd:A,warmupTicks:30,cooldownTicks:80,d3AlphaDecay:.05,d3VelocityDecay:.3,enableZoomInteraction:!0,enablePanInteraction:!0,minZoom:.3,maxZoom:5})]})}):t.jsx(C,{title:"Knowledge Graph",description:"0 linked notes, 0 connections",children:t.jsx(oe,{title:"No constellations yet",description:"Link your notes together and watch your own starry sky unfold"})})}function ke(){return t.jsx(U,{fallback:fe,errorTitle:"Failed to load graph",errorDescription:"Retry loading your linked note constellation",renderError:({error:s,retry:a})=>t.jsx(C,{title:"Knowledge Graph",children:t.jsx(Y,{title:"Failed to load graph",description:"Retry loading your linked note constellation",error:s,onRetry:a})}),children:t.jsx(he,{})})}export{ke as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
._Reference_bpj91_1{display:inline-flex;align-items:center;cursor:pointer;font-size:.75rem;font-weight:600;padding:2px 10px;border-radius:9999px;background:color-mix(in srgb,var(--elevated) 72%,var(--hover-subtle));border:1px solid var(--border-subtle);color:var(--fg-secondary);transition:background-color .15s ease,border-color .15s ease,color .15s ease}._Reference_bpj91_1:hover{background:var(--elevated);border-color:var(--border-secondary);color:var(--fg-default)}._Reference_bpj91_1:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}html.dark ._Reference_bpj91_1{background:color-mix(in srgb,var(--elevated) 82%,var(--hover-subtle))}._Tag_8xu23_1{display:inline-flex;align-items:center;cursor:pointer;font-size:.75rem;font-weight:600;padding:2px 10px;border-radius:9999px;background:var(--emphasis);border:1px solid var(--border-secondary);color:var(--fg-secondary);transition:background-color .15s ease,border-color .15s ease,color .15s ease}._Tag_8xu23_1:hover{background:var(--hover-subtle);border-color:var(--border-secondary);color:var(--fg-default)}._Tag_8xu23_1:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}html.dark ._Tag_8xu23_1{background:var(--emphasis)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e,U as Q,y as me,v as ue,i as $,k as he,X as pe,F as fe}from"./note-vendor-BofYbzmZ.js";import{p as G,T as u,c as R,t as W,I as xe,q as M,M as j,B as E,J,K as ge,u as ye,O as be,U as ve,V as je,d as w,W as X,o as ee,N as Y,G as Ne,X as te,Y as we,z as Ce,Z as Me,r as ke,_ as Z,$ as Re,a0 as Ae,a1 as Ee,a2 as I,g as Se,a3 as Te,k as He,D as ae,m as se,Q as O,P as z,n as P,j as De,i as H,a4 as Le,a5 as Ve,a6 as Ze,a7 as Ie,a8 as Fe,L as Oe,a9 as _}from"./index-Ba2XPRI8.js";import{a}from"./graph-vendor-CUxe67Lr.js";import{u as Pe}from"./image.api-0mMkElZk.js";import{V as $e,a2 as Ye,a3 as ze,A as Ue}from"./note-core-BCgMq5QA.js";import{M as ne,n as Be}from"./ModalActionRow-DyOb58KJ.js";import{u as _e,R as qe}from"./useReminderMutate-tNMwwRnx.js";const Ke=new Map([["bold",a.createElement(a.Fragment,null,a.createElement("path",{d:"M216.49,79.52l-56-56A12,12,0,0,0,152,20H56A20,20,0,0,0,36,40V216a20,20,0,0,0,20,20H200a20,20,0,0,0,20-20V88A12,12,0,0,0,216.49,79.52ZM160,57l23,23H160ZM60,212V44h76V92a12,12,0,0,0,12,12h48V212Z"}))],["duotone",a.createElement(a.Fragment,null,a.createElement("path",{d:"M208,88H152V32Z",opacity:"0.2"}),a.createElement("path",{d:"M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216Z"}))],["fill",a.createElement(a.Fragment,null,a.createElement("path",{d:"M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM152,88V44l44,44Z"}))],["light",a.createElement(a.Fragment,null,a.createElement("path",{d:"M212.24,83.76l-56-56A6,6,0,0,0,152,26H56A14,14,0,0,0,42,40V216a14,14,0,0,0,14,14H200a14,14,0,0,0,14-14V88A6,6,0,0,0,212.24,83.76ZM158,46.48,193.52,82H158ZM200,218H56a2,2,0,0,1-2-2V40a2,2,0,0,1,2-2h90V88a6,6,0,0,0,6,6h50V216A2,2,0,0,1,200,218Z"}))],["regular",a.createElement(a.Fragment,null,a.createElement("path",{d:"M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216Z"}))],["thin",a.createElement(a.Fragment,null,a.createElement("path",{d:"M210.83,85.17l-56-56A4,4,0,0,0,152,28H56A12,12,0,0,0,44,40V216a12,12,0,0,0,12,12H200a12,12,0,0,0,12-12V88A4,4,0,0,0,210.83,85.17ZM156,41.65,198.34,84H156ZM200,220H56a4,4,0,0,1-4-4V40a4,4,0,0,1,4-4h92V88a4,4,0,0,0,4,4h52V216A4,4,0,0,1,200,220Z"}))]]),Qe=new Map([["bold",a.createElement(a.Fragment,null,a.createElement("path",{d:"M87.5,151.52l64-64a12,12,0,0,1,17,17l-64,64a12,12,0,0,1-17-17Zm131-114a60.08,60.08,0,0,0-84.87,0L103.51,67.61a12,12,0,0,0,17,17l30.07-30.06a36,36,0,0,1,50.93,50.92L171.4,135.52a12,12,0,1,0,17,17l30.08-30.06A60.09,60.09,0,0,0,218.45,37.55ZM135.52,171.4l-30.07,30.08a36,36,0,0,1-50.92-50.93l30.06-30.07a12,12,0,0,0-17-17L37.55,133.58a60,60,0,0,0,84.88,84.87l30.06-30.07a12,12,0,0,0-17-17Z"}))],["duotone",a.createElement(a.Fragment,null,a.createElement("path",{d:"M209.94,113.94l-96,96a48,48,0,0,1-67.88-67.88l96-96a48,48,0,0,1,67.88,67.88Z",opacity:"0.2"}),a.createElement("path",{d:"M165.66,90.34a8,8,0,0,1,0,11.32l-64,64a8,8,0,0,1-11.32-11.32l64-64A8,8,0,0,1,165.66,90.34ZM215.6,40.4a56,56,0,0,0-79.2,0L106.34,70.45a8,8,0,0,0,11.32,11.32l30.06-30a40,40,0,0,1,56.57,56.56l-30.07,30.06a8,8,0,0,0,11.31,11.32L215.6,119.6a56,56,0,0,0,0-79.2ZM138.34,174.22l-30.06,30.06a40,40,0,1,1-56.56-56.57l30.05-30.05a8,8,0,0,0-11.32-11.32L40.4,136.4a56,56,0,0,0,79.2,79.2l30.06-30.07a8,8,0,0,0-11.32-11.31Z"}))],["fill",a.createElement(a.Fragment,null,a.createElement("path",{d:"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM144.56,173.66l-21.45,21.45a44,44,0,0,1-62.22-62.22l21.45-21.46a8,8,0,0,1,11.32,11.31L72.2,144.2a28,28,0,0,0,39.6,39.6l21.45-21.46a8,8,0,0,1,11.31,11.32Zm-34.9-16a8,8,0,0,1-11.32-11.32l48-48a8,8,0,0,1,11.32,11.32Zm85.45-34.55-21.45,21.45a8,8,0,0,1-11.32-11.31L183.8,111.8a28,28,0,0,0-39.6-39.6L122.74,93.66a8,8,0,0,1-11.31-11.32l21.46-21.45a44,44,0,0,1,62.22,62.22Z"}))],["light",a.createElement(a.Fragment,null,a.createElement("path",{d:"M164.25,91.75a6,6,0,0,1,0,8.49l-64,64a6,6,0,0,1-8.49-8.48l64-64A6,6,0,0,1,164.25,91.75ZM214.2,41.8a54.07,54.07,0,0,0-76.38,0L107.75,71.85a6,6,0,0,0,8.49,8.49l30.07-30.06a42,42,0,0,1,59.41,59.41l-30.08,30.07a6,6,0,1,0,8.49,8.49l30.07-30.07A54,54,0,0,0,214.2,41.8ZM139.76,175.64l-30.07,30.08a42,42,0,0,1-59.41-59.41l30.06-30.07a6,6,0,0,0-8.49-8.49l-30,30.07a54,54,0,0,0,76.38,76.39l30.07-30.08a6,6,0,0,0-8.49-8.49Z"}))],["regular",a.createElement(a.Fragment,null,a.createElement("path",{d:"M165.66,90.34a8,8,0,0,1,0,11.32l-64,64a8,8,0,0,1-11.32-11.32l64-64A8,8,0,0,1,165.66,90.34ZM215.6,40.4a56,56,0,0,0-79.2,0L106.34,70.45a8,8,0,0,0,11.32,11.32l30.06-30a40,40,0,0,1,56.57,56.56l-30.07,30.06a8,8,0,0,0,11.31,11.32L215.6,119.6a56,56,0,0,0,0-79.2ZM138.34,174.22l-30.06,30.06a40,40,0,1,1-56.56-56.57l30.05-30.05a8,8,0,0,0-11.32-11.32L40.4,136.4a56,56,0,0,0,79.2,79.2l30.06-30.07a8,8,0,0,0-11.32-11.31Z"}))],["thin",a.createElement(a.Fragment,null,a.createElement("path",{d:"M162.84,93.16a4,4,0,0,1,0,5.66l-64,64a4,4,0,0,1-5.66-5.66l64-64A4,4,0,0,1,162.84,93.16Zm49.95-49.95a52.07,52.07,0,0,0-73.56,0L109.17,73.27a4,4,0,0,0,5.65,5.66l30.07-30.06a44,44,0,0,1,62.24,62.24l-30.07,30.06a4,4,0,0,0,5.66,5.66l30.07-30.06A52.07,52.07,0,0,0,212.79,43.21ZM141.17,177.06l-30.06,30.07a44,44,0,0,1-62.24-62.24l30.06-30.06a4,4,0,0,0-5.66-5.66L43.21,139.23a52,52,0,0,0,73.56,73.56l30.06-30.07a4,4,0,1,0-5.66-5.66Z"}))]]),re=a.forwardRef((t,n)=>a.createElement(G,{ref:n,...t,weights:Ke}));re.displayName="FileIcon";const Ge=re,oe=a.forwardRef((t,n)=>a.createElement(G,{ref:n,...t,weights:Qe}));oe.displayName="LinkSimpleIcon";const We=oe;function U({icon:t,title:n,className:o}){return e.jsxs("div",{className:R("flex items-center gap-2",o),children:[e.jsx("div",{className:"flex h-3.5 w-3.5 shrink-0 items-center justify-center text-current",children:t}),e.jsx(u,{as:"span",variant:"label",weight:"semibold",className:"text-current",children:n})]})}function Je({title:t,description:n,selected:o=!1,onClick:i,children:r}){return e.jsxs("button",{type:"button","aria-pressed":o,className:`focus-ring-soft flex w-full items-start justify-between gap-3 p-3 text-left transition-colors sm:p-4 ${o?"surface-floating bg-elevated":"rounded-[14px] border border-border-subtle bg-transparent hover:border-border-secondary hover:bg-hover-subtle"}`,onClick:i,children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx(u,{as:"div",variant:"body",weight:"semibold",tone:o?"default":"secondary",children:t}),e.jsx(u,{as:"div",variant:"meta",weight:"medium",tone:o?"secondary":"tertiary",className:"mt-1",children:n})]}),r?e.jsx("div",{className:"shrink-0",children:r}):null]})}const Xe=t=>{const{data:n}=W({queryKey:M.notes.backReferences(t.noteId),async queryFn(){const o=await xe(t.noteId);if(o.type==="error")throw o;return o.backReferences}});return t.render(n)},et=[{value:"narrow",label:"Narrow",description:"Optimized for reading long-form content"},{value:"wide",label:"Wide",description:"Balanced width suitable for most content"},{value:"full",label:"Full Width",description:"Maximize screen space utilization"}];function tt({isOpen:t,onClose:n,onSave:o,currentLayout:i="wide"}){const[r,l]=a.useState(i);a.useEffect(()=>{t&&l(i)},[t,i]);const s=()=>{o(r),n()};return e.jsxs(j,{isOpen:t,onClose:n,variant:"compact",children:[e.jsx(j.Header,{title:"Layout Settings",onClose:n}),e.jsx(j.Body,{children:e.jsx("div",{className:"flex flex-col gap-3 sm:gap-4",children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(u,{as:"div",variant:"body",weight:"semibold",tone:"secondary",children:"Note layout"}),e.jsx("div",{className:"flex flex-col gap-2",children:et.map(c=>e.jsx(Je,{title:c.label,description:c.description,selected:r===c.value,onClick:()=>l(c.value)},c.value))})]})})}),e.jsx(j.Footer,{children:e.jsxs(ne,{children:[e.jsx(E,{variant:"ghost",size:"sm",onClick:n,children:"Cancel"}),e.jsx(E,{variant:"primary",size:"sm",onClick:s,children:"Apply"})]})})]})}const at=(t,n)=>t||(n==="mobile"?"Mobile browser":n==="mcp"?"MCP":"Web browser");function st({isOpen:t,noteId:n,onClose:o,onRestored:i}){const r=J(),l=ge(),s=ye({queryKey:M.notes.snapshots(n),queryFn:async()=>{const m=await be(n);if(m.type==="error")throw m;return m.noteSnapshots},enabled:t}),c=ve({mutationFn:je,onSuccess:async m=>{if(m.type==="error"){r(m.errors[0].message);return}await Promise.all([l.invalidateQueries({queryKey:M.notes.detail(n),exact:!0}),l.invalidateQueries({queryKey:M.notes.listAll(),exact:!1}),l.invalidateQueries({queryKey:M.notes.tagListAll(),exact:!1}),l.invalidateQueries({queryKey:M.notes.pinned(),exact:!0}),l.invalidateQueries({queryKey:M.notes.backReferences(n),exact:!0}),l.invalidateQueries({queryKey:M.notes.snapshots(n),exact:!1})]),r("Previous version restored."),i?.(m.restoreNoteSnapshot),o()}});return e.jsxs(j,{isOpen:t,onClose:o,variant:"inspect",children:[e.jsx(j.Header,{title:"Restore Previous Version",onClose:o}),e.jsx(j.Body,{children:e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx(u,{as:"p",variant:"meta",tone:"secondary",children:"Choose a previous snapshot to restore this note back to that state."}),s.isLoading&&e.jsx(u,{as:"div",variant:"meta",tone:"secondary",children:"Loading previous versions..."}),!s.isLoading&&s.data?.length===0&&e.jsx(u,{as:"div",variant:"meta",tone:"secondary",className:"rounded-[14px] border border-border-subtle bg-hover-subtle/50 px-4 py-3",children:"A recovery snapshot will appear after the first edit in a session and older ones are cleaned up automatically."}),!s.isLoading&&s.data&&s.data.length>0&&e.jsx("div",{className:"flex flex-col gap-2",children:s.data.map(m=>e.jsx("div",{className:"surface-base p-3",children:e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs(u,{as:"p",variant:"body",weight:"semibold",children:["Before ",at(m.meta.label,m.meta.entrypoint)," edit"]}),e.jsx(u,{as:"p",variant:"meta",truncate:!0,tone:"secondary",children:m.title}),e.jsx(u,{as:"p",variant:"label",tone:"tertiary",children:w(m.createdAt).format("YYYY-MM-DD HH:mm:ss")})]}),e.jsx(E,{size:"sm",isLoading:c.isPending,onClick:()=>c.mutate(m.id),children:"Restore"})]})},m.id))})]})})]})}const nt="_Reference_bpj91_1",rt={Reference:nt},ot=X.bind(rt),it={type:"reference",propSchema:{id:{default:""},title:{default:"Unknown"}},content:"none"};function lt(t){const n=ee(),o=()=>{t.editor.blur(),n({to:Y,params:{id:t.inlineContent.props.id}})},i=r=>{r.preventDefault(),r.stopPropagation()};return e.jsx("span",{role:"link",tabIndex:0,contentEditable:!1,className:ot("Reference"),onMouseDown:i,onClick:r=>{i(r),o()},onKeyDown:r=>{r.key!=="Enter"&&r.key!==" "||(i(r),o())},children:e.jsxs("span",{children:["[",t.inlineContent.props.title,"]"]})})}const ct=Q(it,{render:t=>e.jsx(lt,{...t})}),dt="_Tag_8xu23_1",mt={Tag:dt},ut=X.bind(mt),ht={type:"tag",propSchema:{id:{default:""},tag:{default:"@Unknown"}},content:"none"};function pt(t){const n=ee(),o=()=>{t.editor.blur(),n({to:Ne,params:{id:t.inlineContent.props.id},search:{page:1}})},i=r=>{r.preventDefault(),r.stopPropagation()};return e.jsx("span",{role:"link",tabIndex:0,contentEditable:!1,className:ut("Tag"),onMouseDown:i,onClick:r=>{i(r),o()},onKeyDown:r=>{r.key!=="Enter"&&r.key!==" "||(i(r),o())},children:e.jsx("span",{children:t.inlineContent.props.tag})})}const ft=Q(ht,{render:t=>e.jsx(pt,{...t})}),xt=()=>{const t=ue(),[n,o]=a.useState([]),i={1:"pl-3",2:"pl-[26px]",3:"pl-[40px]",4:"pl-[54px]",5:"pl-[68px]",6:"pl-[82px]"};a.useEffect(()=>{const s=()=>{const m=t.document,C=[],y=N=>{for(const g of N){if(g.type==="heading"){const p=g,S=p.props.level||1,T=p.content?.map(A=>A.text||"").join("")||"";T.trim()&&C.push({id:g.id,level:S,text:T})}g.children&&Array.isArray(g.children)&&y(g.children)}};y(m),o(C)};s();const c=t.onChange?.(s);return()=>{c&&c()}},[t]);const r=s=>{t.setTextCursorPosition(s);const c=document.querySelector(`[data-id="${s}"]`);c&&c.scrollIntoView({behavior:"smooth",block:"center"})},l=e.jsx(U,{icon:e.jsx(te,{className:"h-3.5 w-3.5"}),title:"Table of Contents",className:"text-fg-tertiary"});return n.length===0?e.jsxs("div",{className:"surface-base w-full p-4",children:[l,e.jsx(u,{as:"p",variant:"meta",tone:"secondary",className:"mt-2",children:"Add headings to your document to generate a table of contents"})]}):e.jsxs("div",{className:"surface-base w-full p-4",children:[e.jsx("div",{className:"mb-2",children:l}),e.jsx("nav",{className:"space-y-0.5",children:n.map(s=>{const c=s.level===1;return e.jsxs("button",{type:"button",onClick:()=>r(s.id),className:R("focus-ring-soft","flex","w-full","items-center","gap-2","rounded-[10px]","px-2.5","py-1.5",i[s.level]??"pl-2.5","text-left","transition-colors","hover:bg-hover-subtle",c?"text-fg-default":"text-fg-secondary"),children:[e.jsxs(u,{as:"span",variant:"label",weight:"medium",tone:"tertiary",className:"min-w-[1.5rem]",children:["H",s.level]}),e.jsx(u,{as:"span",variant:"body",weight:c?"semibold":"medium",className:"line-clamp-2 text-current",children:s.text})]},s.id)})})]})},gt=me({type:"tableOfContents",propSchema:{},content:"none"},{render:()=>e.jsx(xt,{})})(),yt=$e.create({inlineContentSpecs:{...ze,tag:ft,reference:ct},blockSpecs:{...Ye,tableOfContents:gt}}),bt=({editor:t})=>e.jsx($,{triggerCharacter:"/",getItems:async n=>Ue([...he(t).filter(o=>o.title!=="Audio"&&o.title!=="Video"&&o.title!=="File"),{title:"Table of Contents",subtext:"Insert a table of contents based on headings",onItemClick:()=>{t.insertBlocks([{type:"tableOfContents"}],t.getTextCursorPosition().block,"after")},aliases:["toc","table of contents","contents","outline","index"],group:"Other",icon:e.jsx(te,{})}],n)}),vt=({onClick:t})=>e.jsx($,{triggerCharacter:"[",getItems:async n=>{const o=await we({query:n,limit:5});if(o.type==="error")return[];const{notes:i}=o.allNotes;return i.map(r=>({title:r.title,onItemClick:()=>t({type:"reference",props:{id:r.id,title:r.title}})}))}}),jt=({onClick:t})=>e.jsx($,{triggerCharacter:"@",getItems:async n=>{const o=await Ce({query:n,limit:5});if(o.type==="error")return[];const{tags:i}=o.allTags,r=i.some(s=>s.name!==`@${n}`),l=[{title:"Add a new tag",onItemClick:async()=>{const s=await Me({name:"@"+n});if(s.type==="error")return;const{id:c,name:m}=s.createTag;t({type:"tag",props:{id:c,tag:m}})}}];return i.length===0?l:i.map(s=>({title:s.name,onItemClick:()=>t({type:"tag",props:{id:s.id,tag:s.name}})})).concat(n&&r?l:[])}});async function Nt(t){return new Promise((n,o)=>{const i=new FileReader;i.readAsDataURL(t),i.onload=()=>n(i.result),i.onerror=r=>o(r)})}const wt=a.forwardRef(({content:t,editable:n,onChange:o},i)=>{const{theme:r}=ke(s=>s),l=pe({schema:yt,initialContent:t&&JSON.parse(t)||void 0,uploadFile:async s=>Pe({base64:await Nt(s)})},[]);return a.useImperativeHandle(i,()=>({getContent:()=>JSON.stringify(l.document)})),e.jsxs(fe,{slashMenu:!1,theme:r,editor:l,editable:n,onChange:o,children:[e.jsx(bt,{editor:l}),e.jsx(vt,{onClick:s=>{l.insertInlineContent([s," "])}}),e.jsx(jt,{onClick:s=>{l.insertInlineContent([s," "])}})]})}),q={low:{active:"border-border-secondary bg-elevated text-fg-default",inactive:"border-transparent bg-transparent text-fg-muted hover:bg-hover-subtle"},medium:{active:"border-border-secondary bg-elevated text-fg-default",inactive:"border-transparent bg-transparent text-fg-muted hover:bg-hover-subtle"},high:{active:"border-border-secondary bg-elevated text-fg-default",inactive:"border-transparent bg-transparent text-fg-muted hover:bg-hover-subtle"}};function Ct({isOpen:t,onClose:n,onSave:o,reminder:i,mode:r}){const[l,s]=a.useState(new Date),[c,m]=a.useState("medium"),[C,y]=a.useState("");a.useEffect(()=>{t&&r==="edit"&&i?(s(new Date(Number(i.reminderDate))),m(i.priority||"medium"),y(i.content||"")):t&&r==="create"&&(s(new Date),m("medium"),y(""))},[t,r,i]);const N=()=>{o(l,c,C||void 0),n()},g=p=>c===p?q[p].active:q[p].inactive;return e.jsxs(j,{isOpen:t,onClose:n,variant:"form",children:[e.jsx(j.Header,{title:r==="create"?"Create Reminder":"Edit Reminder",onClose:n}),e.jsx(j.Body,{children:e.jsxs("div",{className:"flex flex-col gap-3 sm:gap-4",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(Z,{children:"Date & Time"}),e.jsx(Re,{type:"datetime-local",size:"sm",value:w(l).format("YYYY-MM-DDTHH:mm"),onChange:p=>s(new Date(p.target.value))})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(Z,{children:"Content"}),e.jsx(Ae,{size:"sm",placeholder:"Enter reminder content (optional)",value:C,onChange:p=>y(p.target.value)})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(Z,{children:"Priority"}),e.jsxs(Ee,{type:"single",value:c,onValueChange:p=>p&&m(p),className:"gap-1.5 border-none rounded-[14px] bg-muted/70 p-1 sm:gap-2",children:[e.jsx(I,{value:"low",className:`flex-1 rounded-[10px] border ${g("low")}`,children:e.jsx(u,{as:"span",weight:"medium",className:"text-current",children:"Low"})}),e.jsx(I,{value:"medium",className:`flex-1 rounded-[10px] border ${g("medium")}`,children:e.jsx(u,{as:"span",weight:"medium",className:"text-current",children:"Medium"})}),e.jsx(I,{value:"high",className:`flex-1 rounded-[10px] border ${g("high")}`,children:e.jsx(u,{as:"span",weight:"medium",className:"text-current",children:"High"})})]})]})]})}),e.jsx(j.Footer,{children:e.jsxs(ne,{children:[e.jsx(E,{variant:"ghost",size:"sm",onClick:n,children:"Cancel"}),e.jsx(E,{variant:"primary",size:"sm",onClick:N,children:r==="create"?"Create":"Save"})]})})]})}function Mt({noteId:t}){const[n,o]=a.useState(!1),[i,r]=a.useState(!1),[l,s]=a.useState("create"),[c,m]=a.useState(void 0),{onCreate:C,onUpdate:y,onDelete:N}=_e(),g=()=>{s("create"),m(void 0),r(!0)},p=f=>{s("edit"),m(f),r(!0)},S=(f,x,d)=>{l==="create"?C(t,f,x,()=>{r(!1)},d):l==="edit"&&c&&y(c.id,t,{reminderDate:f,priority:x,content:d},()=>{r(!1)})},T=f=>{y(f.id,t,{completed:!f.completed})},A=f=>{const x=w(Number(f)),d=w();return x.isSame(d,"day")?`Today at ${x.format("HH:mm")}`:x.isSame(d.add(1,"day"),"day")?`Tomorrow at ${x.format("HH:mm")}`:x.format("YYYY-MM-DD HH:mm")},L=f=>{const x=w(Number(f)),d=w(),v=x.diff(d,"hour");return v<=6?"high":v<=24?"medium":"low"},D=f=>{const x=w(Number(f)),d=w(),v=x.diff(d,"hour"),k=x.diff(d,"minute")%60;return v<0||k<0?"Overdue":v===0?`${k}m remaining`:`${v}h ${k}m remaining`};return e.jsxs("div",{className:"surface-base mb-5 p-4",children:[e.jsxs("div",{className:R("flex items-center justify-between",!n&&"mb-3"),children:[e.jsx("button",{type:"button",onClick:()=>o(!n),className:"focus-ring-soft flex items-center gap-2 rounded-[10px] px-2 py-1.5 text-fg-tertiary transition-colors hover:bg-hover-subtle hover:text-fg-default",children:e.jsx(U,{icon:n?e.jsx(Se,{size:12}):e.jsx(Te,{size:12}),title:"Reminders"})}),!n&&e.jsxs(E,{size:"sm",variant:"ghost",onClick:g,children:[e.jsx(Be,{className:"w-3 h-3"}),e.jsx(u,{as:"span",variant:"label",className:"hidden sm:inline",children:"Add"})]})]}),!n&&e.jsx(qe,{noteId:t,searchParams:{offset:0,limit:9999},render:({reminders:f,totalCount:x})=>e.jsx("div",{className:"flex flex-col gap-2",children:f.length===0?e.jsx(u,{as:"p",variant:"meta",tone:"secondary",className:"py-3 text-center",children:x===0?"No reminders yet":"All reminders complete"}):e.jsx("div",{className:"flex flex-col",children:f.map(d=>{const v=d.priority||L(d.reminderDate),k=D(d.reminderDate),V=k==="Overdue";return e.jsxs("div",{className:R("flex items-center gap-2.5 px-2 py-1.5"),children:[e.jsx(He,{checked:d.completed,onChange:()=>T(d),size:"sm"}),e.jsx(u,{as:"div",variant:"body",weight:"medium",className:R("truncate flex-1 min-w-0",d.completed&&"line-through opacity-40"),children:d.content||A(d.reminderDate)}),e.jsxs("div",{className:R("shrink-0 flex items-center gap-1",d.completed&&"opacity-40"),children:[d.content&&e.jsx(u,{as:"span",variant:"meta",tone:"secondary",children:A(d.reminderDate)}),!d.completed&&e.jsx(u,{as:"span",variant:"label",weight:"medium",tone:V||v==="high"?"error":"tertiary",className:R(d.content&&'before:content-["·"] before:mr-1'),children:k})]}),e.jsx(ae,{button:e.jsxs("button",{type:"button",className:"focus-ring-soft inline-flex h-8 w-8 items-center justify-center rounded-[10px] text-fg-secondary outline-none transition-colors hover:bg-hover-subtle hover:text-fg-default",children:[e.jsx(se,{size:16,className:"text-current"}),e.jsx("span",{className:"sr-only",children:"Reminder actions"})]}),items:[{name:"Edit",onClick:()=>p(d)},{name:"Delete",onClick:()=>N(d.id,t)}]})]},d.id)})})})}),e.jsx(Ct,{isOpen:i,onClose:()=>r(!1),onSave:S,reminder:c,mode:l})]})}const ie=De(Y),K=t=>w(Number(t)).format("YYYY-MM-DD HH:mm:ss"),F=()=>typeof globalThis.crypto?.randomUUID=="function"?globalThis.crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`,kt={narrow:"max-w-[640px]",wide:"max-w-[896px]",full:"max-w-full px-4"},Rt=e.jsx(z,{title:"Loading note",variant:"none",children:e.jsxs("main",{className:"mx-auto max-w-[896px]",children:[e.jsx(H,{className:"mb-8",height:"66px"}),e.jsx(H,{className:"ml-12 mb-8",height:"150px"}),e.jsx(H,{className:"mb-5",height:"80px"}),e.jsx(H,{height:"80px"})]})});function At({id:t}){const n=J(),o=ie.useNavigate(),i=a.useRef(null),r=a.useRef(null),l=a.useRef(F()),{data:s}=W({queryKey:M.notes.detail(t),queryFn:async()=>{const h=await Le(t);if(h.type==="error")throw h;return h.note},gcTime:0}),[c,m]=a.useState(s.title),[C,y]=a.useState(()=>K(s.updatedAt)),[N,g]=a.useState(s.pinned),[p,S]=a.useState(s.layout||"wide"),[T,A]=a.useState(!1),[L,D]=a.useState(!1),[f,x]=Ve(1e3);a.useEffect(()=>{m(s.title),g(s.pinned),S(s.layout||"wide"),y(K(s.updatedAt))},[s.layout,s.pinned,s.title,s.updatedAt]),a.useEffect(()=>{l.current=F()},[t]);const d=async({title:h="",content:b=""})=>{x(async()=>{const B=await _({id:t,title:h,content:b,editSessionId:l.current});if(B.type==="error"){n(B.errors[0].message);return}m(h),y(w().format("YYYY-MM-DD HH:mm:ss"))})},v=()=>{d({title:c,content:i.current?.getContent()})},k=h=>{m(h),d({title:h,content:i.current?.getContent()})},V=async h=>{const b=await _({id:t,layout:h,editSessionId:l.current});if(b.type==="error"){n(b.errors[0].message);return}S(h),n("Layout has been updated.")},{onCreate:le,onDelete:ce,onPinned:de}=Ze();return e.jsx(z,{title:c,variant:"none",children:e.jsxs("main",{className:R("mx-auto",kt[p]),children:[e.jsx("div",{className:"surface-floating sticky top-20 z-[1001] mb-7 px-5 pt-4 pb-3.5",children:e.jsxs("div",{className:"flex flex-col gap-3.5",children:[e.jsxs("div",{className:"flex items-start justify-between gap-5",children:[e.jsxs("div",{className:"min-w-0 flex-1 pt-0.5",children:[e.jsx(u,{as:"div",variant:"micro",weight:"semibold",tracking:"widest",transform:"uppercase",tone:"tertiary",className:"mb-1.5",children:"Thought in progress"}),e.jsx("input",{ref:r,placeholder:"Title",className:"text-heading sm:text-display w-full bg-transparent font-semibold leading-[1.25] tracking-[-0.02em] outline-none",type:"text",value:c,onChange:h=>k(h.target.value)})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[e.jsx(ae,{button:e.jsxs("button",{type:"button",className:"focus-ring-soft inline-flex h-9 w-9 items-center justify-center rounded-[12px] border border-transparent bg-transparent text-fg-tertiary outline-none transition-colors hover:border-border-subtle hover:bg-hover-subtle hover:text-fg-default",children:[e.jsx(se,{className:"h-5 w-5"}),e.jsx("span",{className:"sr-only",children:"Note actions"})]}),items:[{name:N?"Unpin":"Pin",onClick:()=>de(t,N,()=>{g(h=>!h)})},{name:"Change layout",onClick:()=>A(!0)},{type:"separator"},{name:"Clone this note",onClick:()=>le(r.current?.value||"untitled",i.current?.getContent()||"",p)},{name:"Restore previous version",onClick:()=>D(!0)},{type:"separator"},{name:"Delete",onClick:()=>ce(t,()=>{o({to:Ie,search:{page:1}})})}]}),e.jsx(E,{size:"sm",variant:"subtle",isLoading:f,onClick:v,children:"Save"})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-2.5 gap-y-1.5 border-t border-border-subtle/80 pt-3",children:[N&&e.jsxs(u,{as:"span",variant:"label",weight:"medium",tone:"secondary",className:"inline-flex items-center gap-1.5",children:[e.jsx(Fe,{className:"h-3 w-3",weight:"fill"}),"Pinned"]}),N&&e.jsx("span",{className:"h-1 w-1 rounded-full bg-border-secondary"}),e.jsxs(u,{as:"span",variant:"label",weight:"medium",tone:"secondary",children:["Last saved ",C]})]})]})}),e.jsx(wt,{ref:i,content:s.content,onChange:v},`${t}:${s.updatedAt}`),e.jsx(O,{fallback:e.jsx(H,{className:"mb-5",height:"80px"}),errorTitle:"Failed to load reminders",errorDescription:"Retry loading reminder details for this note.",renderError:({error:h,retry:b})=>e.jsx(P,{title:"Failed to load reminders",description:"Retry loading reminder details for this note.",error:h,onRetry:b,showBackAction:!1,showHomeAction:!1}),children:e.jsx(Mt,{noteId:t})}),e.jsx(O,{fallback:e.jsx(H,{height:"80px"}),errorTitle:"Failed to load back references",errorDescription:"Retry loading notes that link back here.",renderError:({error:h,retry:b})=>e.jsx(P,{title:"Failed to load back references",description:"Retry loading notes that link back here.",error:h,onRetry:b,showBackAction:!1,showHomeAction:!1}),children:e.jsx(Xe,{noteId:t,render:h=>h&&h.length>0&&e.jsxs("div",{className:"surface-base p-4",children:[e.jsx(U,{icon:e.jsx(We,{className:"h-3.5 w-3.5"}),title:"Back References",className:"mb-3 text-fg-tertiary"}),e.jsx("ul",{className:"flex flex-col",children:h.map(b=>e.jsx("li",{children:e.jsxs(Oe,{to:Y,params:{id:b.id},className:"flex items-center gap-2 rounded-[10px] px-2.5 py-1.5 text-fg-secondary transition-colors hover:bg-hover-subtle hover:text-fg-default",children:[e.jsx(Ge,{className:"h-3.5 w-3.5 shrink-0 text-fg-tertiary"}),e.jsx(u,{as:"span",variant:"body",weight:"medium",className:"text-current",children:b.title})]})},b.id))})]})})}),e.jsx(tt,{isOpen:T,onClose:()=>A(!1),onSave:V,currentLayout:p}),e.jsx(st,{isOpen:L,noteId:t,onClose:()=>D(!1),onRestored:()=>{l.current=F()}})]})})}function Zt(){const{id:t}=ie.useParams();if(!t)throw new Error("Note id is required.");return e.jsx(O,{fallback:Rt,errorTitle:"Failed to load note",errorDescription:"Retry loading the note editor.",resetKeys:[t],renderError:({error:n,retry:o})=>e.jsx(z,{title:"Note",variant:"none",children:e.jsx(P,{title:"Failed to load note",description:"Retry loading the note editor.",error:n,onRetry:o})}),children:e.jsx(At,{id:t},t)})}export{Zt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e}from"./note-vendor-BofYbzmZ.js";import{k as $,T as h,L as H,N as E,D as M,m as L,d as x,Q as S,P as v,E as O,l as U,i as o,j as C,R as I}from"./index-Ba2XPRI8.js";import"./graph-vendor-CUxe67Lr.js";import{u as P,R as Y}from"./useReminderMutate-tNMwwRnx.js";import"./note-core-BCgMq5QA.js";const u={high:"bg-priority-high",medium:"bg-priority-medium",low:"bg-priority-low"};function A({reminder:t,onUpdate:l,onDelete:g}){const f=y=>{const r=x(Number(y)),m=x();return r.isSame(m,"day")?`Today at ${r.format("HH:mm")}`:r.isSame(m.add(1,"day"),"day")?`Tomorrow at ${r.format("HH:mm")}`:r.format("YYYY-MM-DD HH:mm")},a=y=>{const r=x(Number(y)),m=x(),b=r.diff(m,"hour"),N=r.diff(m,"minute")%60;return b<0||N<0?"Overdue":b===0?`${N}m remaining`:`${b}h ${N}m remaining`},d=a(t.reminderDate)==="Overdue",i=t.priority||"low",s=i==="high"?"High":i==="medium"?"Medium":"Low",p=u[i],c=t.noteId.toString(),n=d?"text-fg-error":"text-fg-tertiary",j=t.content?.trim()||t.note?.title||"Untitled reminder",R=t.note?.title||"Untitled note",T=!!(t.content?.trim()&&t.note?.title),D=a(t.reminderDate),k=f(t.reminderDate);return e.jsxs("div",{className:"surface-base flex flex-col gap-2.5 px-4 py-3 sm:flex-row sm:items-center sm:gap-4",children:[e.jsxs("div",{className:"flex min-w-0 flex-1 items-start gap-2.5 sm:items-center",children:[e.jsx($,{checked:t.completed,onChange:()=>l(t.id,c,{completed:!t.completed}),size:"sm"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx(h,{as:"p",variant:"body",weight:"semibold",className:t.completed?"truncate line-through opacity-45":"truncate",children:j}),T&&e.jsx(h,{as:"div",variant:"meta",tone:"secondary",className:t.completed?"mt-0.5 truncate opacity-45":"mt-0.5 truncate",children:e.jsx(H,{to:E,params:{id:String(t.note?.id??t.noteId)},className:"transition-colors hover:text-fg-default hover:underline",children:R})})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1 sm:shrink-0",children:[e.jsx("span",{className:`h-3 w-3 shrink-0 rounded-full border border-border-subtle ${p}`,"aria-label":`${s} priority`,title:`${s} priority`}),e.jsx(h,{as:"span",variant:"meta",weight:"medium",tone:"secondary",className:t.completed?"opacity-45":void 0,children:k}),e.jsx("span",{className:"h-1 w-1 rounded-full bg-border-secondary"}),e.jsx(h,{as:"span",variant:"label",weight:"medium",className:t.completed?"opacity-45":n,children:D})]}),e.jsx("div",{className:"flex items-center justify-end gap-1.5 sm:shrink-0",children:e.jsx(M,{button:e.jsxs("button",{type:"button",className:"focus-ring-soft inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-[10px] border border-transparent bg-transparent text-fg-tertiary outline-none transition-colors hover:border-border-subtle hover:bg-hover-subtle hover:text-fg-default",children:[e.jsx(L,{className:"h-5 w-5 text-current"}),e.jsx("span",{className:"sr-only",children:"Reminder actions"})]}),items:[{name:"Delete",onClick:()=>g(t.id,c)}]})})]})}const w=C(I),B=[{label:"High",className:u.high},{label:"Medium",className:u.medium},{label:"Low",className:u.low}];function q(){const t=w.useNavigate(),{page:l}=w.useSearch(),{onUpdate:g,onDelete:f}=P(),a=25,d=e.jsx("div",{className:"flex flex-wrap items-center gap-3",children:B.map(({label:i,className:s})=>e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`h-2.5 w-2.5 rounded-full border border-border-subtle ${s}`,"aria-hidden":"true"}),e.jsx(h,{as:"span",variant:"label",weight:"medium",tone:"tertiary",children:i})]},i))});return e.jsx(S,{fallback:e.jsx(v,{title:"Reminders",heading:e.jsx(o,{width:164,height:24,className:"rounded-full"}),description:e.jsx(o,{width:224,height:16,className:"rounded-full"}),headerRight:d,children:e.jsxs("div",{className:"flex flex-col gap-2.5",children:[e.jsx(o,{height:"60px"}),e.jsx(o,{height:"60px"}),e.jsx(o,{height:"60px"}),e.jsx(o,{height:"60px"})]})}),errorTitle:"Failed to load reminders",errorDescription:"Retry loading the upcoming reminder list",resetKeys:[l,a],children:e.jsx(Y,{searchParams:{offset:(l-1)*a,limit:a},render:({reminders:i,totalCount:s})=>{const p=s>0?`Reminders (${s})`:void 0,c="Review reminders created from notes and mark them complete here";return i.length===0?e.jsx(v,{title:"Reminders",heading:p,description:c,headerRight:d,children:e.jsx(O,{title:"No upcoming reminders",description:"Add a reminder inside any note to see it here"})}):e.jsx(v,{title:"Reminders",heading:p,description:c,headerRight:d,children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx("div",{className:"flex flex-col gap-2.5",children:i.map(n=>e.jsx(A,{reminder:n,onUpdate:g,onDelete:f},n.id))}),s&&a<s&&e.jsx(U,{page:l,last:Math.ceil(s/a),onChange:n=>{t({search:j=>({...j,page:n})})}})]})})}})})}export{q as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e}from"./note-vendor-BofYbzmZ.js";import{P as m,E as f,Q as N,x as b,T as h,L as w,N as S,l as E,j as k,y as $,i as d}from"./index-Ba2XPRI8.js";import{a as R}from"./graph-vendor-CUxe67Lr.js";import"./note-core-BCgMq5QA.js";const L=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),g=({children:t,match:s})=>{const r=s.trim();if(!r)return e.jsx("span",{children:t});const a=L(r),n=new RegExp(`(${a})`,"gi"),l=new RegExp(`^${a}$`,"i"),c=t.split(n);return e.jsx("span",{children:c.map((i,o)=>l.test(i)?e.jsx("mark",{children:i},o):e.jsx(R.Fragment,{children:i},o))})},j=k($),y=180,x=t=>t.replace(/\s+/g," ").trim(),T=(t,s)=>{const r=x(t),a=x(s).toLowerCase();if(!a)return r;const n=r.toLowerCase().indexOf(a);if(n===-1)return r.length>y?`${r.slice(0,y-1).trimEnd()}…`:r;const l=Math.max(0,n-56),c=Math.min(r.length,n+a.length+84);let i=r.slice(l,c).trim();return l>0&&(i=`…${i}`),c<r.length&&(i=`${i}…`),i},A=t=>Array.isArray(t)?t.map(s=>{if(!s||typeof s!="object")return"";const r=s.text;return typeof r=="string"?r:""}).join(""):"",B=(t,s)=>t==="heading"?`Heading ${typeof s?.level=="number"?s.level:1}`:t==="bulletListItem"?"Bullet":t==="numberedListItem"?"Numbered":t==="checkListItem"?"Checklist":t==="quote"?"Quote":t==="codeBlock"?"Code":"Content",v=(t,s)=>{Array.isArray(t)&&t.forEach(r=>{if(!r||typeof r!="object")return;const a=typeof r.type=="string"?r.type:void 0,n=typeof r.props=="object"&&r.props?r.props:void 0,l=x(A(r.content));l&&s.push({label:B(a,n),text:l});const c=r.children;Array.isArray(c)&&v(c,s)})},C=(t,s)=>{try{const r=JSON.parse(t),a=[];if(v(r,a),a.length===0)return[];const n=x(s).toLowerCase(),l=n?a.filter(i=>i.text.toLowerCase().includes(n)):a;return(l.length>0?l:a).slice(0,2).map(i=>({...i,text:T(i.text,s)}))}catch{return[]}},P=t=>t===1?"1 result":`${t} results`,M=()=>"Open the note to inspect matching content.",z=(t,s)=>`${P(s)} for "${t}"`,I=()=>e.jsx(m,{title:"Search",variant:"default",description:e.jsx(d,{width:208,height:16,className:"rounded-full"}),children:e.jsx("main",{className:"flex flex-col gap-3",children:Array.from({length:2},(t,s)=>e.jsxs("div",{className:"surface-base flex flex-col gap-3 p-4",children:[e.jsx(d,{width:"34%",height:18,className:"rounded-full"}),e.jsx("div",{className:"rounded-[14px] bg-muted px-3 py-3",children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{children:[e.jsx(d,{width:84,height:12,className:"rounded-full"}),e.jsx(d,{width:"100%",height:14,className:"mt-2 rounded-full"}),e.jsx(d,{width:"82%",height:14,className:"mt-1.5 rounded-full"})]}),e.jsxs("div",{className:"border-t border-border-subtle pt-2",children:[e.jsx(d,{width:72,height:12,className:"rounded-full"}),e.jsx(d,{width:"94%",height:14,className:"mt-2 rounded-full"})]})]})})]},s))})});function F(){const t=j.useNavigate(),{page:s,query:r}=j.useSearch(),a=r.trim(),n=10;return a?e.jsx(N,{fallback:e.jsx(I,{}),errorTitle:"Failed to load search results",errorDescription:`Retry loading results for "${a}".`,resetKeys:[a,s],children:e.jsx(b,{searchParams:{query:a,limit:n,offset:(s-1)*n,fields:["content"]},render:({notes:l,totalCount:c})=>e.jsx(m,{title:"Search",description:z(a,c),variant:"default",children:e.jsxs("main",{className:"flex flex-col gap-4",children:[l.length>0?e.jsx("div",{className:"flex flex-col gap-3",children:l.map(i=>{const o=C(i.content,a);return e.jsxs("article",{className:"surface-base flex flex-col gap-3 p-4",children:[e.jsx(h,{as:"h2",variant:"body",weight:"semibold",tracking:"tight",children:e.jsx(w,{to:S,params:{id:i.id},className:"transition-colors hover:text-fg-default/85",children:e.jsx(g,{match:a,children:i.title||"Untitled"})})}),o.length>0?e.jsx("div",{className:"rounded-[14px] bg-muted px-3 py-3",children:e.jsx("div",{className:"flex flex-col gap-2",children:o.map((u,p)=>e.jsxs("div",{className:p>0?"border-t border-border-subtle pt-2":void 0,children:[e.jsx(h,{as:"div",variant:"micro",weight:"semibold",tracking:"wider",transform:"uppercase",tone:"tertiary",children:u.label}),e.jsx(h,{as:"p",variant:"meta",tone:"secondary",className:"mt-1 leading-[1.65]",children:e.jsx(g,{match:a,children:u.text})})]},`${i.id}:${u.label}:${p}`))})}):e.jsx(h,{as:"p",variant:"meta",tone:"secondary",className:"leading-[1.65]",children:M()})]},i.id)})}):e.jsx(f,{title:"No results found",description:"Try searching for a different word or phrase"}),c>n&&e.jsx(E,{page:s,last:Math.ceil(c/n),onChange:i=>{t({search:o=>({...o,page:i})})}})]})})})}):e.jsx(m,{title:"Search",description:"Search note titles and matching sections across your workspace",variant:"default",children:e.jsx("main",{children:e.jsx(f,{title:"Start searching",description:"Enter a keyword to look through note titles and matching content"})})})}export{F as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e}from"./note-vendor-BofYbzmZ.js";import{t as p,z as m,q as u,A as f,Q as j,P as h,F as o,L as y,G as T,T as c,l as w,E as b,i as s,j as v,H as N}from"./index-Ba2XPRI8.js";import"./graph-vendor-CUxe67Lr.js";import"./note-core-BCgMq5QA.js";const A=a=>{const{data:t}=p({queryKey:u.tags.list(a.searchParams),async queryFn(){const i=await m({offset:a.searchParams.offset,limit:a.searchParams.limit});if(i.type==="error")throw i;return i.allTags}});return a.render(t)},R=100,G=8,P=12,x=v(N);function q(){const a=x.useNavigate(),{page:t}=x.useSearch(),{containerRef:i,limit:n}=f({minItemWidth:R,gap:G,rows:P});return e.jsx("div",{ref:i,children:e.jsx(j,{fallback:e.jsx(h,{title:"Tags",heading:e.jsx(s,{width:120,height:24,className:"rounded-full"}),description:e.jsx(s,{width:188,height:16,className:"rounded-full"}),children:e.jsxs("div",{className:"flex flex-wrap gap-2.5",children:[e.jsx(s,{width:"90px",height:"36px"}),e.jsx(s,{width:"120px",height:"36px"}),e.jsx(s,{width:"80px",height:"36px"}),e.jsx(s,{width:"100px",height:"36px"}),e.jsx(s,{width:"110px",height:"36px"}),e.jsx(s,{width:"70px",height:"36px"})]})}),errorTitle:"Failed to load tags",errorDescription:"Retry loading the tag catalog",resetKeys:[t,n],children:e.jsx(A,{searchParams:{offset:(t-1)*n,limit:n},render:({tags:d,totalCount:l})=>e.jsx(h,{title:"Tags",heading:l>0?`Tags (${l})`:void 0,description:"Browse the tags you added with @ across your notes",children:e.jsx(o,{fallback:e.jsx(b,{title:"No tags yet",description:"Add @tags inside notes and they will appear here"}),children:d.length>0&&e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx("div",{className:"flex flex-wrap gap-2.5",children:d.map(r=>e.jsxs(y,{to:T,params:{id:r.id},search:{page:1},className:"inline-flex items-center gap-1.5 rounded-full border border-border-subtle bg-hover-subtle px-3 py-1.5 text-fg-secondary transition-colors hover:border-border-secondary hover:bg-hover hover:text-fg-default",children:[e.jsx(c,{as:"span",variant:"meta",weight:"medium",className:"text-current",children:r.name}),e.jsx(c,{as:"span",variant:"label",weight:"medium",tone:"tertiary",className:"text-current/70",children:r.referenceCount})]},r.id))}),e.jsx(o,{fallback:null,children:l&&n<l&&e.jsx(w,{page:t,last:Math.ceil(l/n),onChange:r=>{a({search:g=>({...g,page:r})})}})})]})})})})})})}export{q as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e}from"./note-vendor-BofYbzmZ.js";import{t as f,aa as j,q as p,a6 as y,Q as N,P as g,F as h,ab as P,l as T,E as v,i as d,j as q,G as w}from"./index-Ba2XPRI8.js";import"./graph-vendor-CUxe67Lr.js";import"./note-core-BCgMq5QA.js";const b=s=>{const{data:r}=f({queryKey:p.notes.tagList(s.searchParams),async queryFn(){const t=await j({query:s.searchParams.query,offset:s.searchParams.offset,limit:s.searchParams.limit});if(t.type==="error")throw t;return t.tagNotes}});return s.render(r)},c=q(w);function S(){const s=c.useNavigate(),{id:r}=c.useParams(),{page:t}=c.useSearch(),i=25,{onDelete:u,onPinned:m}=y();return e.jsx(N,{fallback:e.jsx(g,{title:"Tagged Notes",heading:e.jsx(d,{width:148,height:24,className:"rounded-full"}),description:e.jsx(d,{width:196,height:16,className:"rounded-full"}),variant:"default",children:e.jsxs("div",{className:"grid-auto-cards grid gap-5",children:[e.jsx(d,{height:"112px"}),e.jsx(d,{height:"112px"}),e.jsx(d,{height:"112px"})]})}),errorTitle:"Failed to load tagged notes",errorDescription:"Retry loading notes for this tag",resetKeys:[r,t,i],children:e.jsx(b,{searchParams:{query:r,offset:(t-1)*i,limit:i},render:({notes:o,totalCount:n})=>{const l=o.flatMap(a=>a.tags).find(a=>a.id===r)?.name;return e.jsx(g,{title:l??"Tagged Notes",heading:l?n>0?`${l} (${n})`:l:"Tagged Notes",description:"Browse every note linked to this tag",variant:"default",children:e.jsx(h,{fallback:e.jsx(v,{title:"No tagged notes yet",description:"Notes tagged with this label will appear here"}),children:o.length>0&&e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx("div",{className:"grid-auto-cards grid gap-5",children:o.map(a=>e.jsx(P,{...a,onPinned:()=>m(a.id,a.pinned),onDelete:()=>u(a.id)},a.id))}),e.jsx(h,{fallback:null,children:n&&i<n&&e.jsx(T,{page:t,last:Math.ceil(n/i),onChange:a=>{s({search:x=>({...x,page:a})})}})})]})})})}})})}export{S as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e}from"./note-vendor-BofYbzmZ.js";import{p as h,r as p,P as f,T as t,L as i,ac as M,g as o,a7 as u,ad as j,ae as v,af as E}from"./index-Ba2XPRI8.js";import{a}from"./graph-vendor-CUxe67Lr.js";import{c as N,n as w}from"./Trash.es-BGoN5q9L.js";import{I as y}from"./Image.es-BQfyKc2-.js";import"./note-core-BCgMq5QA.js";const H=new Map([["bold",a.createElement(a.Fragment,null,a.createElement("path",{d:"M236.37,139.4a12,12,0,0,0-12-3A84.07,84.07,0,0,1,119.6,31.59a12,12,0,0,0-15-15A108.86,108.86,0,0,0,49.69,55.07,108,108,0,0,0,136,228a107.09,107.09,0,0,0,64.93-21.69,108.86,108.86,0,0,0,38.44-54.94A12,12,0,0,0,236.37,139.4Zm-49.88,47.74A84,84,0,0,1,68.86,69.51,84.93,84.93,0,0,1,92.27,48.29Q92,52.13,92,56A108.12,108.12,0,0,0,200,164q3.87,0,7.71-.27A84.79,84.79,0,0,1,186.49,187.14Z"}))],["duotone",a.createElement(a.Fragment,null,a.createElement("path",{d:"M227.89,147.89A96,96,0,1,1,108.11,28.11,96.09,96.09,0,0,0,227.89,147.89Z",opacity:"0.2"}),a.createElement("path",{d:"M233.54,142.23a8,8,0,0,0-8-2,88.08,88.08,0,0,1-109.8-109.8,8,8,0,0,0-10-10,104.84,104.84,0,0,0-52.91,37A104,104,0,0,0,136,224a103.09,103.09,0,0,0,62.52-20.88,104.84,104.84,0,0,0,37-52.91A8,8,0,0,0,233.54,142.23ZM188.9,190.34A88,88,0,0,1,65.66,67.11a89,89,0,0,1,31.4-26A106,106,0,0,0,96,56,104.11,104.11,0,0,0,200,160a106,106,0,0,0,14.92-1.06A89,89,0,0,1,188.9,190.34Z"}))],["fill",a.createElement(a.Fragment,null,a.createElement("path",{d:"M235.54,150.21a104.84,104.84,0,0,1-37,52.91A104,104,0,0,1,32,120,103.09,103.09,0,0,1,52.88,57.48a104.84,104.84,0,0,1,52.91-37,8,8,0,0,1,10,10,88.08,88.08,0,0,0,109.8,109.8,8,8,0,0,1,10,10Z"}))],["light",a.createElement(a.Fragment,null,a.createElement("path",{d:"M232.13,143.64a6,6,0,0,0-6-1.49A90.07,90.07,0,0,1,113.86,29.85a6,6,0,0,0-7.49-7.48A102.88,102.88,0,0,0,54.48,58.68,102,102,0,0,0,197.32,201.52a102.88,102.88,0,0,0,36.31-51.89A6,6,0,0,0,232.13,143.64Zm-42,48.29a90,90,0,0,1-126-126A90.9,90.9,0,0,1,99.65,37.66,102.06,102.06,0,0,0,218.34,156.35,90.9,90.9,0,0,1,190.1,191.93Z"}))],["regular",a.createElement(a.Fragment,null,a.createElement("path",{d:"M233.54,142.23a8,8,0,0,0-8-2,88.08,88.08,0,0,1-109.8-109.8,8,8,0,0,0-10-10,104.84,104.84,0,0,0-52.91,37A104,104,0,0,0,136,224a103.09,103.09,0,0,0,62.52-20.88,104.84,104.84,0,0,0,37-52.91A8,8,0,0,0,233.54,142.23ZM188.9,190.34A88,88,0,0,1,65.66,67.11a89,89,0,0,1,31.4-26A106,106,0,0,0,96,56,104.11,104.11,0,0,0,200,160a106,106,0,0,0,14.92-1.06A89,89,0,0,1,188.9,190.34Z"}))],["thin",a.createElement(a.Fragment,null,a.createElement("path",{d:"M230.72,145.06a4,4,0,0,0-4-1A92.08,92.08,0,0,1,111.94,29.27a4,4,0,0,0-5-5A100.78,100.78,0,0,0,56.08,59.88a100,100,0,0,0,140,140,100.78,100.78,0,0,0,35.59-50.87A4,4,0,0,0,230.72,145.06ZM191.3,193.53A92,92,0,0,1,62.47,64.7a93,93,0,0,1,39.88-30.35,100.09,100.09,0,0,0,119.3,119.3A93,93,0,0,1,191.3,193.53Z"}))]]),b=new Map([["bold",a.createElement(a.Fragment,null,a.createElement("path",{d:"M203.57,51A107.9,107.9,0,0,0,20,128c0,44.72,27.6,82.25,72,97.94A36,36,0,0,0,140,192a12,12,0,0,1,12-12h46.21a35.79,35.79,0,0,0,35.1-28A108.6,108.6,0,0,0,236,127.09,107.23,107.23,0,0,0,203.57,51Zm6.34,95.67a11.91,11.91,0,0,1-11.7,9.3H152a36,36,0,0,0-36,36,12,12,0,0,1-16,11.3c-16.65-5.88-30.65-15.76-40.48-28.56A76,76,0,0,1,44,128a84,84,0,0,1,83.13-84H128a84.35,84.35,0,0,1,84,83.29A84.72,84.72,0,0,1,209.91,146.71ZM144,76a16,16,0,1,1-16-16A16,16,0,0,1,144,76Zm-44,24A16,16,0,1,1,84,84,16,16,0,0,1,100,100Zm0,56a16,16,0,1,1-16-16A16,16,0,0,1,100,156Zm88-56a16,16,0,1,1-16-16A16,16,0,0,1,188,100Z"}))],["duotone",a.createElement(a.Fragment,null,a.createElement("path",{d:"M224,127.17a96.48,96.48,0,0,1-2.39,22.18A24,24,0,0,1,198.21,168H152a24,24,0,0,0-24,24,24,24,0,0,1-32,22.61C58.73,201.44,32,169.81,32,128a96,96,0,0,1,95-96C179.84,31.47,223.55,74.35,224,127.17Z",opacity:"0.2"}),a.createElement("path",{d:"M200.77,53.89A103.27,103.27,0,0,0,128,24h-1.07A104,104,0,0,0,24,128c0,43,26.58,79.06,69.36,94.17A32,32,0,0,0,136,192a16,16,0,0,1,16-16h46.21a31.81,31.81,0,0,0,31.2-24.88,104.43,104.43,0,0,0,2.59-24A103.28,103.28,0,0,0,200.77,53.89Zm13,93.71A15.89,15.89,0,0,1,198.21,160H152a32,32,0,0,0-32,32,16,16,0,0,1-21.31,15.07C62.49,194.3,40,164,40,128a88,88,0,0,1,87.09-88h.9a88.35,88.35,0,0,1,88,87.25A88.86,88.86,0,0,1,213.81,147.6ZM140,76a12,12,0,1,1-12-12A12,12,0,0,1,140,76ZM96,100A12,12,0,1,1,84,88,12,12,0,0,1,96,100Zm0,56a12,12,0,1,1-12-12A12,12,0,0,1,96,156Zm88-56a12,12,0,1,1-12-12A12,12,0,0,1,184,100Z"}))],["fill",a.createElement(a.Fragment,null,a.createElement("path",{d:"M200.77,53.89A103.27,103.27,0,0,0,128,24h-1.07A104,104,0,0,0,24,128c0,43,26.58,79.06,69.36,94.17A32,32,0,0,0,136,192a16,16,0,0,1,16-16h46.21a31.81,31.81,0,0,0,31.2-24.88,104.43,104.43,0,0,0,2.59-24A103.28,103.28,0,0,0,200.77,53.89ZM84,168a12,12,0,1,1,12-12A12,12,0,0,1,84,168Zm0-56a12,12,0,1,1,12-12A12,12,0,0,1,84,112Zm44-24a12,12,0,1,1,12-12A12,12,0,0,1,128,88Zm44,24a12,12,0,1,1,12-12A12,12,0,0,1,172,112Z"}))],["light",a.createElement(a.Fragment,null,a.createElement("path",{d:"M199.37,55.31A101.32,101.32,0,0,0,128,26h-1A102,102,0,0,0,26,128c0,42.09,26.07,77.44,68,92.26A30.21,30.21,0,0,0,104.11,222,30.06,30.06,0,0,0,134,192a18,18,0,0,1,18-18h46.21a29.82,29.82,0,0,0,29.25-23.31A102.71,102.71,0,0,0,230,127.11,101.25,101.25,0,0,0,199.37,55.31ZM215.76,148a17.89,17.89,0,0,1-17.55,14H152a30,30,0,0,0-30,30,18,18,0,0,1-24,17C61,195.86,38,164.85,38,128a90,90,0,0,1,89.07-90H128a90.34,90.34,0,0,1,90,89.22A90.46,90.46,0,0,1,215.76,148ZM138,76a10,10,0,1,1-10-10A10,10,0,0,1,138,76ZM94,100A10,10,0,1,1,84,90,10,10,0,0,1,94,100Zm0,56a10,10,0,1,1-10-10A10,10,0,0,1,94,156Zm88-56a10,10,0,1,1-10-10A10,10,0,0,1,182,100Z"}))],["regular",a.createElement(a.Fragment,null,a.createElement("path",{d:"M200.77,53.89A103.27,103.27,0,0,0,128,24h-1.07A104,104,0,0,0,24,128c0,43,26.58,79.06,69.36,94.17A32,32,0,0,0,136,192a16,16,0,0,1,16-16h46.21a31.81,31.81,0,0,0,31.2-24.88,104.43,104.43,0,0,0,2.59-24A103.28,103.28,0,0,0,200.77,53.89Zm13,93.71A15.89,15.89,0,0,1,198.21,160H152a32,32,0,0,0-32,32,16,16,0,0,1-21.31,15.07C62.49,194.3,40,164,40,128a88,88,0,0,1,87.09-88h.9a88.35,88.35,0,0,1,88,87.25A88.86,88.86,0,0,1,213.81,147.6ZM140,76a12,12,0,1,1-12-12A12,12,0,0,1,140,76ZM96,100A12,12,0,1,1,84,88,12,12,0,0,1,96,100Zm0,56a12,12,0,1,1-12-12A12,12,0,0,1,96,156Zm88-56a12,12,0,1,1-12-12A12,12,0,0,1,184,100Z"}))],["thin",a.createElement(a.Fragment,null,a.createElement("path",{d:"M198,56.74A99.31,99.31,0,0,0,128,28h-1A100,100,0,0,0,28,128c0,41.22,25.55,75.85,66.69,90.38a28.34,28.34,0,0,0,9.42,1.63A28,28,0,0,0,132,192a20,20,0,0,1,20-20h46.21a27.84,27.84,0,0,0,27.3-21.76,100.37,100.37,0,0,0,2.49-23.1A99.26,99.26,0,0,0,198,56.74Zm19.74,91.72A19.89,19.89,0,0,1,198.21,164H152a28,28,0,0,0-28,28,20,20,0,0,1-26.64,18.83C59.51,197.46,36,165.72,36,128a92,92,0,0,1,91.05-92H128a92,92,0,0,1,89.72,112.46ZM136,76a8,8,0,1,1-8-8A8,8,0,0,1,136,76ZM92,100a8,8,0,1,1-8-8A8,8,0,0,1,92,100Zm0,56a8,8,0,1,1-8-8A8,8,0,0,1,92,156Zm88-56a8,8,0,1,1-8-8A8,8,0,0,1,180,100Z"}))]]),T=new Map([["bold",a.createElement(a.Fragment,null,a.createElement("path",{d:"M116,36V20a12,12,0,0,1,24,0V36a12,12,0,0,1-24,0Zm80,92a68,68,0,1,1-68-68A68.07,68.07,0,0,1,196,128Zm-24,0a44,44,0,1,0-44,44A44.05,44.05,0,0,0,172,128ZM51.51,68.49a12,12,0,1,0,17-17l-12-12a12,12,0,0,0-17,17Zm0,119-12,12a12,12,0,0,0,17,17l12-12a12,12,0,1,0-17-17ZM196,72a12,12,0,0,0,8.49-3.51l12-12a12,12,0,0,0-17-17l-12,12A12,12,0,0,0,196,72Zm8.49,115.51a12,12,0,0,0-17,17l12,12a12,12,0,0,0,17-17ZM48,128a12,12,0,0,0-12-12H20a12,12,0,0,0,0,24H36A12,12,0,0,0,48,128Zm80,80a12,12,0,0,0-12,12v16a12,12,0,0,0,24,0V220A12,12,0,0,0,128,208Zm108-92H220a12,12,0,0,0,0,24h16a12,12,0,0,0,0-24Z"}))],["duotone",a.createElement(a.Fragment,null,a.createElement("path",{d:"M184,128a56,56,0,1,1-56-56A56,56,0,0,1,184,128Z",opacity:"0.2"}),a.createElement("path",{d:"M120,40V16a8,8,0,0,1,16,0V40a8,8,0,0,1-16,0Zm72,88a64,64,0,1,1-64-64A64.07,64.07,0,0,1,192,128Zm-16,0a48,48,0,1,0-48,48A48.05,48.05,0,0,0,176,128ZM58.34,69.66A8,8,0,0,0,69.66,58.34l-16-16A8,8,0,0,0,42.34,53.66Zm0,116.68-16,16a8,8,0,0,0,11.32,11.32l16-16a8,8,0,0,0-11.32-11.32ZM192,72a8,8,0,0,0,5.66-2.34l16-16a8,8,0,0,0-11.32-11.32l-16,16A8,8,0,0,0,192,72Zm5.66,114.34a8,8,0,0,0-11.32,11.32l16,16a8,8,0,0,0,11.32-11.32ZM48,128a8,8,0,0,0-8-8H16a8,8,0,0,0,0,16H40A8,8,0,0,0,48,128Zm80,80a8,8,0,0,0-8,8v24a8,8,0,0,0,16,0V216A8,8,0,0,0,128,208Zm112-88H216a8,8,0,0,0,0,16h24a8,8,0,0,0,0-16Z"}))],["fill",a.createElement(a.Fragment,null,a.createElement("path",{d:"M120,40V16a8,8,0,0,1,16,0V40a8,8,0,0,1-16,0Zm8,24a64,64,0,1,0,64,64A64.07,64.07,0,0,0,128,64ZM58.34,69.66A8,8,0,0,0,69.66,58.34l-16-16A8,8,0,0,0,42.34,53.66Zm0,116.68-16,16a8,8,0,0,0,11.32,11.32l16-16a8,8,0,0,0-11.32-11.32ZM192,72a8,8,0,0,0,5.66-2.34l16-16a8,8,0,0,0-11.32-11.32l-16,16A8,8,0,0,0,192,72Zm5.66,114.34a8,8,0,0,0-11.32,11.32l16,16a8,8,0,0,0,11.32-11.32ZM48,128a8,8,0,0,0-8-8H16a8,8,0,0,0,0,16H40A8,8,0,0,0,48,128Zm80,80a8,8,0,0,0-8,8v24a8,8,0,0,0,16,0V216A8,8,0,0,0,128,208Zm112-88H216a8,8,0,0,0,0,16h24a8,8,0,0,0,0-16Z"}))],["light",a.createElement(a.Fragment,null,a.createElement("path",{d:"M122,40V16a6,6,0,0,1,12,0V40a6,6,0,0,1-12,0Zm68,88a62,62,0,1,1-62-62A62.07,62.07,0,0,1,190,128Zm-12,0a50,50,0,1,0-50,50A50.06,50.06,0,0,0,178,128ZM59.76,68.24a6,6,0,1,0,8.48-8.48l-16-16a6,6,0,0,0-8.48,8.48Zm0,119.52-16,16a6,6,0,1,0,8.48,8.48l16-16a6,6,0,1,0-8.48-8.48ZM192,70a6,6,0,0,0,4.24-1.76l16-16a6,6,0,0,0-8.48-8.48l-16,16A6,6,0,0,0,192,70Zm4.24,117.76a6,6,0,0,0-8.48,8.48l16,16a6,6,0,0,0,8.48-8.48ZM46,128a6,6,0,0,0-6-6H16a6,6,0,0,0,0,12H40A6,6,0,0,0,46,128Zm82,82a6,6,0,0,0-6,6v24a6,6,0,0,0,12,0V216A6,6,0,0,0,128,210Zm112-88H216a6,6,0,0,0,0,12h24a6,6,0,0,0,0-12Z"}))],["regular",a.createElement(a.Fragment,null,a.createElement("path",{d:"M120,40V16a8,8,0,0,1,16,0V40a8,8,0,0,1-16,0Zm72,88a64,64,0,1,1-64-64A64.07,64.07,0,0,1,192,128Zm-16,0a48,48,0,1,0-48,48A48.05,48.05,0,0,0,176,128ZM58.34,69.66A8,8,0,0,0,69.66,58.34l-16-16A8,8,0,0,0,42.34,53.66Zm0,116.68-16,16a8,8,0,0,0,11.32,11.32l16-16a8,8,0,0,0-11.32-11.32ZM192,72a8,8,0,0,0,5.66-2.34l16-16a8,8,0,0,0-11.32-11.32l-16,16A8,8,0,0,0,192,72Zm5.66,114.34a8,8,0,0,0-11.32,11.32l16,16a8,8,0,0,0,11.32-11.32ZM48,128a8,8,0,0,0-8-8H16a8,8,0,0,0,0,16H40A8,8,0,0,0,48,128Zm80,80a8,8,0,0,0-8,8v24a8,8,0,0,0,16,0V216A8,8,0,0,0,128,208Zm112-88H216a8,8,0,0,0,0,16h24a8,8,0,0,0,0-16Z"}))],["thin",a.createElement(a.Fragment,null,a.createElement("path",{d:"M124,40V16a4,4,0,0,1,8,0V40a4,4,0,0,1-8,0Zm64,88a60,60,0,1,1-60-60A60.07,60.07,0,0,1,188,128Zm-8,0a52,52,0,1,0-52,52A52.06,52.06,0,0,0,180,128ZM61.17,66.83a4,4,0,0,0,5.66-5.66l-16-16a4,4,0,0,0-5.66,5.66Zm0,122.34-16,16a4,4,0,0,0,5.66,5.66l16-16a4,4,0,0,0-5.66-5.66ZM192,68a4,4,0,0,0,2.83-1.17l16-16a4,4,0,1,0-5.66-5.66l-16,16A4,4,0,0,0,192,68Zm2.83,121.17a4,4,0,0,0-5.66,5.66l16,16a4,4,0,0,0,5.66-5.66ZM40,124H16a4,4,0,0,0,0,8H40a4,4,0,0,0,0-8Zm88,88a4,4,0,0,0-4,4v24a4,4,0,0,0,8,0V216A4,4,0,0,0,128,212Zm112-88H216a4,4,0,0,0,0,8h24a4,4,0,0,0,0-8Z"}))]]),A=a.forwardRef((s,l)=>a.createElement(h,{ref:l,...s,weights:H}));A.displayName="MoonIcon";const F=A,Z=a.forwardRef((s,l)=>a.createElement(h,{ref:l,...s,weights:b}));Z.displayName="PaletteIcon";const V=Z,g=a.forwardRef((s,l)=>a.createElement(h,{ref:l,...s,weights:T}));g.displayName="SunIcon";const C=g,P=()=>{const{theme:s,toggleTheme:l}=p(x=>x),n="focus-ring-soft surface-base group flex items-start justify-between gap-3.5 px-4 py-3.5 text-left text-fg-default outline-none transition-colors hover:bg-hover-subtle",r="inline-flex h-12 w-12 shrink-0 items-center justify-center rounded-[15px] border border-border-subtle bg-muted text-fg-secondary transition-colors group-hover:border-border-secondary/70 group-hover:text-fg-default",m="h-6 w-6",d="text-fg-tertiary",c="min-w-0 flex flex-col gap-0.5 pt-0.5";return e.jsx(f,{title:"Settings",description:"Manage appearance, integrations, and workspace tools",children:e.jsxs("div",{className:"flex flex-col gap-6",children:[e.jsxs("section",{className:"flex flex-col gap-3",children:[e.jsx(t,{as:"p",variant:"label",weight:"medium",className:d,children:"Appearance"}),e.jsxs("button",{type:"button",className:n,onClick:l,children:[e.jsxs("div",{className:"flex min-w-0 items-start gap-3",children:[e.jsx("span",{className:r,children:e.jsx(V,{className:m})}),e.jsxs("div",{className:c,children:[e.jsx(t,{as:"div",variant:"body",weight:"medium",children:"Theme"}),e.jsx(t,{as:"div",variant:"meta",tone:"secondary",children:"Switch between light and dark mode."})]})]}),e.jsxs("div",{className:"mt-0.5 flex shrink-0 items-center gap-2 text-fg-tertiary",children:[e.jsx(t,{as:"span",variant:"meta",weight:"medium",tone:"secondary",children:s==="dark"?"Dark":"Light"}),s==="dark"?e.jsx(F,{className:"h-4 w-4",weight:"fill"}):e.jsx(C,{className:"h-4 w-4",weight:"fill"})]})]})]}),e.jsxs("section",{className:"flex flex-col gap-3",children:[e.jsx(t,{as:"p",variant:"label",weight:"medium",className:d,children:"Integrations"}),e.jsxs(i,{to:M,className:n,children:[e.jsxs("div",{className:"flex min-w-0 items-start gap-3",children:[e.jsx("span",{className:r,children:e.jsx(N,{className:m})}),e.jsxs("div",{className:c,children:[e.jsx(t,{as:"div",variant:"body",weight:"medium",children:"MCP"}),e.jsx(t,{as:"div",variant:"meta",tone:"secondary",children:"Manage AI integration access."})]})]}),e.jsx(o,{className:"mt-0.5 h-4 w-4 shrink-0 text-fg-tertiary transition-transform group-hover:translate-x-0.5 group-hover:text-fg-secondary"})]})]}),e.jsxs("section",{className:"flex flex-col gap-3",children:[e.jsx(t,{as:"p",variant:"label",weight:"medium",className:d,children:"Workspace"}),e.jsxs("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2",children:[e.jsxs(i,{to:u,search:{page:1},className:n,children:[e.jsxs("div",{className:"flex min-w-0 items-start gap-3",children:[e.jsx("span",{className:r,children:e.jsx(w,{className:m})}),e.jsxs("div",{className:c,children:[e.jsx(t,{as:"div",variant:"body",weight:"medium",children:"Trash"}),e.jsx(t,{as:"div",variant:"meta",tone:"secondary",children:"Restore deleted notes."})]})]}),e.jsx(o,{className:"mt-0.5 h-4 w-4 shrink-0 text-fg-tertiary transition-transform group-hover:translate-x-0.5 group-hover:text-fg-secondary"})]}),e.jsxs(i,{to:j,search:{page:1},className:n,children:[e.jsxs("div",{className:"flex min-w-0 items-start gap-3",children:[e.jsx("span",{className:r,children:e.jsx(y,{className:m})}),e.jsxs("div",{className:c,children:[e.jsx(t,{as:"div",variant:"body",weight:"medium",children:"Images"}),e.jsx(t,{as:"div",variant:"meta",tone:"secondary",children:"Upload and organize images."})]})]}),e.jsx(o,{className:"mt-0.5 h-4 w-4 shrink-0 text-fg-tertiary transition-transform group-hover:translate-x-0.5 group-hover:text-fg-secondary"})]}),e.jsxs(i,{to:v,search:{page:1},className:n,children:[e.jsxs("div",{className:"flex min-w-0 items-start gap-3",children:[e.jsx("span",{className:r,children:e.jsx(E,{className:m})}),e.jsxs("div",{className:c,children:[e.jsx(t,{as:"div",variant:"body",weight:"medium",children:"Placeholders"}),e.jsx(t,{as:"div",variant:"meta",tone:"secondary",children:"Manage template variables."})]})]}),e.jsx(o,{className:"mt-0.5 h-4 w-4 shrink-0 text-fg-tertiary transition-transform group-hover:translate-x-0.5 group-hover:text-fg-secondary"})]})]})]})]})})};export{P as default};
|