@ampless/admin 0.2.0-alpha.8 → 1.0.0-alpha.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.ja.md +73 -0
  2. package/README.md +3 -0
  3. package/dist/api/index.d.ts +1 -1
  4. package/dist/chunk-2ITWLRYF.js +38 -0
  5. package/dist/chunk-2U3POKAZ.js +198 -0
  6. package/dist/{chunk-VXEVLHGL.js → chunk-6LQGVDCW.js} +2 -2
  7. package/dist/chunk-6NPYUTV6.js +250 -0
  8. package/dist/chunk-6SB7YICQ.js +48 -0
  9. package/dist/chunk-6W3JIOOR.js +37 -0
  10. package/dist/chunk-CTGFMK2J.js +335 -0
  11. package/dist/chunk-G4CF5ZWV.js +1319 -0
  12. package/dist/chunk-KQOE5CT6.js +21 -0
  13. package/dist/chunk-MWSCSCCU.js +67 -0
  14. package/dist/chunk-Q66BLMNJ.js +33 -0
  15. package/dist/chunk-TZ5F24BG.js +149 -0
  16. package/dist/chunk-VL6MMF2P.js +21 -0
  17. package/dist/chunk-VSS5FWSR.js +334 -0
  18. package/dist/{chunk-KKM2MCM4.js → chunk-WL4IBW2D.js} +121 -43
  19. package/dist/chunk-YFWHKIVH.js +1187 -0
  20. package/dist/components/admin-dashboard.d.ts +10 -0
  21. package/dist/components/admin-dashboard.js +9 -0
  22. package/dist/components/edit-post-view.d.ts +9 -0
  23. package/dist/components/edit-post-view.js +12 -0
  24. package/dist/components/index.d.ts +14 -42
  25. package/dist/components/index.js +22 -33
  26. package/dist/components/login-view.d.ts +5 -0
  27. package/dist/components/login-view.js +9 -0
  28. package/dist/components/mcp-tokens-view.d.ts +16 -0
  29. package/dist/components/mcp-tokens-view.js +9 -0
  30. package/dist/components/media-view.d.ts +5 -0
  31. package/dist/components/media-view.js +12 -0
  32. package/dist/components/new-post-view.d.ts +5 -0
  33. package/dist/components/new-post-view.js +12 -0
  34. package/dist/components/posts-list-view.d.ts +5 -0
  35. package/dist/components/posts-list-view.js +9 -0
  36. package/dist/components/users-list-view.d.ts +7 -0
  37. package/dist/components/users-list-view.js +9 -0
  38. package/dist/{i18n-DzXXcIQQ.d.ts → i18n-BhMBRfio.d.ts} +179 -1
  39. package/dist/index.d.ts +18 -18
  40. package/dist/index.js +17 -38
  41. package/dist/lib/theme-actions.d.ts +3 -3
  42. package/dist/lib/theme-actions.js +1 -1
  43. package/dist/metafile-esm.json +1 -1
  44. package/dist/pages/index.d.ts +35 -16
  45. package/dist/pages/index.js +90 -257
  46. package/package.json +19 -8
  47. package/dist/chunk-QDPB5W35.js +0 -3251
  48. package/dist/login-view-BKrSZLJu.d.ts +0 -24
@@ -0,0 +1,10 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ /**
4
+ * Admin home / dashboard. Lists post counts. Marked client-side because
5
+ * it reads from the AppSync client directly (no server-rendered query
6
+ * yet — listed posts come from Amplify SDK at mount time).
7
+ */
8
+ declare function AdminDashboard(): react_jsx_runtime.JSX.Element;
9
+
10
+ export { AdminDashboard };
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import {
3
+ AdminDashboard
4
+ } from "../chunk-6SB7YICQ.js";
5
+ import "../chunk-Q66BLMNJ.js";
6
+ import "../chunk-WL4IBW2D.js";
7
+ export {
8
+ AdminDashboard
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function EditPostPage({ params }: {
4
+ params: Promise<{
5
+ postId: string;
6
+ }>;
7
+ }): react_jsx_runtime.JSX.Element;
8
+
9
+ export { EditPostPage };
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import {
3
+ EditPostPage
4
+ } from "../chunk-6W3JIOOR.js";
5
+ import "../chunk-G4CF5ZWV.js";
6
+ import "../chunk-CTGFMK2J.js";
7
+ import "../chunk-2ITWLRYF.js";
8
+ import "../chunk-Q66BLMNJ.js";
9
+ import "../chunk-WL4IBW2D.js";
10
+ export {
11
+ EditPostPage
12
+ };
@@ -1,8 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { L as Locale, D as Dictionary } from '../i18n-DzXXcIQQ.js';
2
+ import { L as Locale, D as Dictionary } from '../i18n-BhMBRfio.js';
3
3
  import { Config, Post, ThemeManifest, LocalizedString, MediaProcessingDefaults } from 'ampless';
4
- import { AmplessOutputs } from '@ampless/runtime';
5
- export { A as AdminDashboard, E as EditPostPage, L as LoginPage, M as MediaPage, N as NewPostPage, P as PostsList } from '../login-view-BKrSZLJu.js';
4
+ import { AmplessOutputs, ColorScheme } from '@ampless/runtime';
6
5
  import { ProcessOptions } from 'ampless/media';
7
6
  export { invalidateSiteSettingsCache } from '../lib/theme-actions.js';
8
7
 
@@ -25,7 +24,7 @@ declare function useT(): (key: string, vars?: Record<string, string | number>) =
25
24
  /** Read the active locale from context (e.g. for `<html lang>` parity). */
26
25
  declare function useLocale(): Locale;
27
26
 
28
- interface Props$3 {
27
+ interface Props$2 {
29
28
  outputs: AmplessOutputs;
30
29
  cmsConfig: Config;
31
30
  children: React.ReactNode;
@@ -48,26 +47,7 @@ interface Props$3 {
48
47
  * `installed` flag) — mounting this multiple times (e.g. during HMR or
49
48
  * remount) is safe.
50
49
  */
51
- declare function AdminProviders({ outputs, cmsConfig, children }: Props$3): react_jsx_runtime.JSX.Element;
52
-
53
- declare const ADMIN_SITE_COOKIE = "admin-site-id";
54
-
55
- /**
56
- * Register the cms.config for client-side multi-site lookups. Called
57
- * once from the admin layout factory.
58
- */
59
- declare function setAdminCmsConfig(config: Config): void;
60
- /**
61
- * Read the active siteId from the cookie set by `<SiteSelector>`.
62
- *
63
- * - Single-site mode: always `DEFAULT_SITE_ID`.
64
- * - Multi-site mode: the cookie value if it points to a declared site;
65
- * otherwise the first site in `cms.config.sites` declaration order.
66
- *
67
- * The fallback matches `lib/admin-site.ts:currentAdminSiteId` (server
68
- * side) so the two never disagree on first load.
69
- */
70
- declare function readAdminSiteIdFromCookie(): string;
50
+ declare function AdminProviders({ outputs, cmsConfig, children }: Props$2): react_jsx_runtime.JSX.Element;
71
51
 
72
52
  /**
73
53
  * Register the project's outputs + cms.config for client-side media
@@ -108,24 +88,12 @@ declare function uploadProcessedImage(file: File, options: ProcessOptions): Prom
108
88
  url: string;
109
89
  }>;
110
90
 
111
- declare function Sidebar({ email, siteSelector, isAdmin, }: {
91
+ declare function Sidebar({ email, isAdmin, }: {
112
92
  email: string;
113
- /** Rendered above the main nav in multi-site mode. */
114
- siteSelector?: React.ReactNode;
115
93
  /** Gates `adminOnly` nav entries (user management). */
116
94
  isAdmin: boolean;
117
95
  }): react_jsx_runtime.JSX.Element;
118
96
 
119
- interface SiteOption {
120
- id: string;
121
- name: string;
122
- }
123
- interface Props$2 {
124
- current: string;
125
- sites: SiteOption[];
126
- }
127
- declare function SiteSelector({ current, sites }: Props$2): react_jsx_runtime.JSX.Element;
128
-
129
97
  interface PostFormProps {
130
98
  post?: Post;
131
99
  }
@@ -141,12 +109,11 @@ interface SiteSettingsFormValues {
141
109
  timezone?: string;
142
110
  }
143
111
  interface Props$1 {
144
- siteId: string;
145
112
  initial: SiteSettingsFormValues;
146
113
  /** Defaults from cms.config.ts shown as placeholders. */
147
114
  fallback: SiteSettingsFormValues;
148
115
  }
149
- declare function SiteSettingsForm({ siteId, initial, fallback }: Props$1): react_jsx_runtime.JSX.Element;
116
+ declare function SiteSettingsForm({ initial, fallback }: Props$1): react_jsx_runtime.JSX.Element;
150
117
 
151
118
  interface ThemeOption {
152
119
  value: string;
@@ -154,14 +121,19 @@ interface ThemeOption {
154
121
  description?: LocalizedString;
155
122
  }
156
123
  interface Props {
157
- siteId: string;
158
124
  manifest: ThemeManifest;
159
125
  activeTheme: string;
160
126
  themeOptions: ThemeOption[];
161
127
  /** Resolved values currently shown to the user (overrides ?? defaults). */
162
128
  initial: Record<string, string>;
129
+ /**
130
+ * Site-wide color-scheme override loaded from the runtime. Independent
131
+ * of the manifest (it's a site-wide concern, not theme-specific).
132
+ * Defaults to `'auto'` when not provided.
133
+ */
134
+ initialColorScheme?: ColorScheme;
163
135
  }
164
- declare function ThemeSettingsForm({ siteId, manifest, activeTheme, themeOptions, initial, }: Props): react_jsx_runtime.JSX.Element;
136
+ declare function ThemeSettingsForm({ manifest, activeTheme, themeOptions, initial, initialColorScheme, }: Props): react_jsx_runtime.JSX.Element;
165
137
 
166
138
  declare function MediaUploader(): react_jsx_runtime.JSX.Element;
167
139
 
@@ -184,4 +156,4 @@ interface ImageUploadDialogProps {
184
156
  }
185
157
  declare function ImageUploadDialog({ file, remaining, busy, defaults, onConfirm, onSkip, onCancel, }: ImageUploadDialogProps): react_jsx_runtime.JSX.Element | null;
186
158
 
187
- export { ADMIN_SITE_COOKIE, AdminProviders, I18nProvider, ImageUploadDialog, type ImageUploadDialogProps, MediaPicker, MediaUploader, PostForm, Sidebar, SiteSelector, SiteSettingsForm, type SiteSettingsFormValues, ThemeSettingsForm, publicMediaUrl, readAdminSiteIdFromCookie, sanitizeName, setAdminCmsConfig, setAdminMediaContext, uploadProcessedImage, useLocale, useT };
159
+ export { AdminProviders, I18nProvider, ImageUploadDialog, type ImageUploadDialogProps, MediaPicker, MediaUploader, PostForm, Sidebar, SiteSettingsForm, type SiteSettingsFormValues, ThemeSettingsForm, publicMediaUrl, sanitizeName, setAdminMediaContext, uploadProcessedImage, useLocale, useT };
@@ -1,59 +1,48 @@
1
1
  'use client';
2
2
  import {
3
- AdminDashboard,
4
3
  AdminProviders,
5
- EditPostPage,
6
- I18nProvider,
7
- ImageUploadDialog,
8
- LoginPage,
9
- MediaPage,
10
- MediaPicker,
11
- MediaUploader,
12
- NewPostPage,
13
- PostForm,
14
- PostsList,
15
4
  Sidebar,
16
- SiteSelector,
17
5
  SiteSettingsForm,
18
- ThemeSettingsForm,
19
- readAdminSiteIdFromCookie,
6
+ ThemeSettingsForm
7
+ } from "../chunk-YFWHKIVH.js";
8
+ import {
9
+ invalidateSiteSettingsCache
10
+ } from "../chunk-6LQGVDCW.js";
11
+ import {
12
+ MediaPicker,
13
+ PostForm,
20
14
  sanitizeName,
21
- setAdminCmsConfig,
22
- uploadProcessedImage,
23
- useLocale,
24
- useT
25
- } from "../chunk-QDPB5W35.js";
15
+ uploadProcessedImage
16
+ } from "../chunk-G4CF5ZWV.js";
17
+ import {
18
+ MediaUploader
19
+ } from "../chunk-6NPYUTV6.js";
20
+ import {
21
+ ImageUploadDialog
22
+ } from "../chunk-CTGFMK2J.js";
26
23
  import {
27
- ADMIN_SITE_COOKIE,
28
24
  publicMediaUrl,
29
25
  setAdminMediaContext
30
- } from "../chunk-KKM2MCM4.js";
26
+ } from "../chunk-2ITWLRYF.js";
31
27
  import {
32
- invalidateSiteSettingsCache
33
- } from "../chunk-VXEVLHGL.js";
28
+ I18nProvider,
29
+ useLocale,
30
+ useT
31
+ } from "../chunk-Q66BLMNJ.js";
32
+ import "../chunk-WL4IBW2D.js";
34
33
  export {
35
- ADMIN_SITE_COOKIE,
36
- AdminDashboard,
37
34
  AdminProviders,
38
- EditPostPage,
39
35
  I18nProvider,
40
36
  ImageUploadDialog,
41
- LoginPage,
42
- MediaPage,
43
37
  MediaPicker,
44
38
  MediaUploader,
45
- NewPostPage,
46
39
  PostForm,
47
- PostsList,
48
40
  Sidebar,
49
- SiteSelector,
50
41
  SiteSettingsForm,
51
42
  ThemeSettingsForm,
52
43
  invalidateSiteSettingsCache,
53
44
  publicMediaUrl,
54
- readAdminSiteIdFromCookie,
55
45
  sanitizeName,
56
- setAdminCmsConfig,
57
46
  setAdminMediaContext,
58
47
  uploadProcessedImage,
59
48
  useLocale,
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function LoginPage(): react_jsx_runtime.JSX.Element;
4
+
5
+ export { LoginPage };
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import {
3
+ LoginPage
4
+ } from "../chunk-2U3POKAZ.js";
5
+ import "../chunk-Q66BLMNJ.js";
6
+ import "../chunk-WL4IBW2D.js";
7
+ export {
8
+ LoginPage
9
+ };
@@ -0,0 +1,16 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ interface Props {
4
+ /** Cognito sub of the currently logged-in admin. */
5
+ currentUserId: string;
6
+ currentUserEmail: string;
7
+ /**
8
+ * MCP HTTP endpoint URL (the `mcp-handler` Lambda Function URL).
9
+ * `null` when the project hasn't been deployed yet, so
10
+ * `amplify_outputs.json` doesn't have `custom.mcp.endpoint` populated.
11
+ */
12
+ mcpEndpoint: string | null;
13
+ }
14
+ declare function McpTokensView({ currentUserId, currentUserEmail, mcpEndpoint }: Props): react_jsx_runtime.JSX.Element;
15
+
16
+ export { McpTokensView };
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import {
3
+ McpTokensView
4
+ } from "../chunk-VSS5FWSR.js";
5
+ import "../chunk-Q66BLMNJ.js";
6
+ import "../chunk-WL4IBW2D.js";
7
+ export {
8
+ McpTokensView
9
+ };
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function MediaPage(): react_jsx_runtime.JSX.Element;
4
+
5
+ export { MediaPage };
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import {
3
+ MediaPage
4
+ } from "../chunk-KQOE5CT6.js";
5
+ import "../chunk-6NPYUTV6.js";
6
+ import "../chunk-CTGFMK2J.js";
7
+ import "../chunk-2ITWLRYF.js";
8
+ import "../chunk-Q66BLMNJ.js";
9
+ import "../chunk-WL4IBW2D.js";
10
+ export {
11
+ MediaPage
12
+ };
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function NewPostPage(): react_jsx_runtime.JSX.Element;
4
+
5
+ export { NewPostPage };
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import {
3
+ NewPostPage
4
+ } from "../chunk-VL6MMF2P.js";
5
+ import "../chunk-G4CF5ZWV.js";
6
+ import "../chunk-CTGFMK2J.js";
7
+ import "../chunk-2ITWLRYF.js";
8
+ import "../chunk-Q66BLMNJ.js";
9
+ import "../chunk-WL4IBW2D.js";
10
+ export {
11
+ NewPostPage
12
+ };
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function PostsList(): react_jsx_runtime.JSX.Element;
4
+
5
+ export { PostsList };
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import {
3
+ PostsList
4
+ } from "../chunk-MWSCSCCU.js";
5
+ import "../chunk-Q66BLMNJ.js";
6
+ import "../chunk-WL4IBW2D.js";
7
+ export {
8
+ PostsList
9
+ };
@@ -0,0 +1,7 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function UsersListView({ currentUserId }: {
4
+ currentUserId: string;
5
+ }): react_jsx_runtime.JSX.Element;
6
+
7
+ export { UsersListView };
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import {
3
+ UsersListView
4
+ } from "../chunk-TZ5F24BG.js";
5
+ import "../chunk-Q66BLMNJ.js";
6
+ import "../chunk-WL4IBW2D.js";
7
+ export {
8
+ UsersListView
9
+ };
@@ -33,6 +33,7 @@ var sidebar = {
33
33
  media: "Media",
34
34
  sites: "Sites",
35
35
  users: "Users",
36
+ mcpTokens: "MCP tokens",
36
37
  viewSite: "View site",
37
38
  signOut: "Sign out",
38
39
  site: "Site",
@@ -198,7 +199,14 @@ var theme = {
198
199
  customizationHeading: "{theme} customization",
199
200
  customizationHint: "Empty input resets to the manifest default.",
200
201
  lengthHelp: "CSS length, e.g. 0.5rem, 4px.",
201
- imagePlaceholder: "https://… or /media/…"
202
+ imagePlaceholder: "https://… or /media/…",
203
+ colorScheme: {
204
+ label: "Color scheme",
205
+ hint: "How the public site picks between the theme's light and dark token palettes.",
206
+ auto: "Auto (follow visitor's system)",
207
+ light: "Light only",
208
+ dark: "Dark only"
209
+ }
202
210
  };
203
211
  var editor = {
204
212
  linkPrompt: "URL",
@@ -210,6 +218,18 @@ var editor = {
210
218
  lightboxTitle: "Force click-to-enlarge",
211
219
  alt: "Alt",
212
220
  "delete": "Delete"
221
+ },
222
+ table: {
223
+ title: "Table",
224
+ insert: "Insert table (3×3)",
225
+ addRowBefore: "Add row above",
226
+ addRowAfter: "Add row below",
227
+ addColumnBefore: "Add column before",
228
+ addColumnAfter: "Add column after",
229
+ deleteRow: "Delete row",
230
+ deleteColumn: "Delete column",
231
+ toggleHeaderRow: "Toggle header row",
232
+ deleteTable: "Delete table"
213
233
  }
214
234
  };
215
235
  var auth = {
@@ -259,6 +279,45 @@ var auth = {
259
279
  userExists: "An account with this email already exists."
260
280
  }
261
281
  };
282
+ var mcpTokens = {
283
+ title: "MCP tokens",
284
+ description: "Access tokens for the HTTP MCP endpoint. Use them in Claude Desktop / Cursor / any MCP-aware client to read and write this CMS over the wire.",
285
+ endpointTitle: "MCP endpoint",
286
+ endpointCopy: "Copy",
287
+ endpointCopied: "Copied",
288
+ endpointMissing: "Not deployed yet. Run `npm run sandbox` or push to Amplify Hosting to provision the endpoint URL.",
289
+ inertBanner: "Heads up: the endpoint validates tokens, but tool dispatch (list_posts / create_post / etc.) lands in v0.2 Phase 4. Valid tokens currently get a stub 200 response.",
290
+ createButton: "Create token",
291
+ createModalTitle: "Create token",
292
+ scopeLabel: "Scope",
293
+ scopeAll: "All sites",
294
+ expirationLabel: "Expiration",
295
+ expirationNever: "Never",
296
+ expiration30days: "30 days",
297
+ expiration90days: "90 days",
298
+ expirationCustom: "Custom date",
299
+ issueButton: "Issue token",
300
+ issuing: "Issuing...",
301
+ revealTitle: "Token issued",
302
+ revealHint: "This is the only time you will see this token. Copy it now — closing this dialog discards it permanently.",
303
+ copy: "Copy",
304
+ copied: "Copied!",
305
+ done: "Done",
306
+ loading: "Loading tokens...",
307
+ error: "Failed to load tokens",
308
+ listEmpty: "No tokens yet. Click 'Create token' to issue your first one.",
309
+ columnPrefix: "Prefix",
310
+ columnScope: "Scope",
311
+ columnCreated: "Created",
312
+ columnLastUsed: "Last used",
313
+ columnStatus: "Status",
314
+ lastUsedNever: "Never used",
315
+ statusActive: "Active",
316
+ statusRevoked: "Revoked",
317
+ statusExpired: "Expired",
318
+ revoke: "Revoke",
319
+ revokeConfirm: "Revoke this token? This cannot be undone."
320
+ };
262
321
  var en = {
263
322
  common: common,
264
323
  sidebar: sidebar,
@@ -271,6 +330,7 @@ var en = {
271
330
  theme: theme,
272
331
  editor: editor,
273
332
  auth: auth,
333
+ mcpTokens: mcpTokens,
274
334
  "public": {
275
335
  back: "← Back",
276
336
  home: "← Home",
@@ -316,6 +376,7 @@ declare const dictionaries: {
316
376
  media: string;
317
377
  sites: string;
318
378
  users: string;
379
+ mcpTokens: string;
319
380
  viewSite: string;
320
381
  signOut: string;
321
382
  site: string;
@@ -482,6 +543,13 @@ declare const dictionaries: {
482
543
  customizationHint: string;
483
544
  lengthHelp: string;
484
545
  imagePlaceholder: string;
546
+ colorScheme: {
547
+ label: string;
548
+ hint: string;
549
+ auto: string;
550
+ light: string;
551
+ dark: string;
552
+ };
485
553
  };
486
554
  editor: {
487
555
  linkPrompt: string;
@@ -494,6 +562,18 @@ declare const dictionaries: {
494
562
  alt: string;
495
563
  delete: string;
496
564
  };
565
+ table: {
566
+ title: string;
567
+ insert: string;
568
+ addRowBefore: string;
569
+ addRowAfter: string;
570
+ addColumnBefore: string;
571
+ addColumnAfter: string;
572
+ deleteRow: string;
573
+ deleteColumn: string;
574
+ toggleHeaderRow: string;
575
+ deleteTable: string;
576
+ };
497
577
  };
498
578
  auth: {
499
579
  common: {
@@ -542,6 +622,45 @@ declare const dictionaries: {
542
622
  userExists: string;
543
623
  };
544
624
  };
625
+ mcpTokens: {
626
+ title: string;
627
+ description: string;
628
+ endpointTitle: string;
629
+ endpointCopy: string;
630
+ endpointCopied: string;
631
+ endpointMissing: string;
632
+ inertBanner: string;
633
+ createButton: string;
634
+ createModalTitle: string;
635
+ scopeLabel: string;
636
+ scopeAll: string;
637
+ expirationLabel: string;
638
+ expirationNever: string;
639
+ expiration30days: string;
640
+ expiration90days: string;
641
+ expirationCustom: string;
642
+ issueButton: string;
643
+ issuing: string;
644
+ revealTitle: string;
645
+ revealHint: string;
646
+ copy: string;
647
+ copied: string;
648
+ done: string;
649
+ loading: string;
650
+ error: string;
651
+ listEmpty: string;
652
+ columnPrefix: string;
653
+ columnScope: string;
654
+ columnCreated: string;
655
+ columnLastUsed: string;
656
+ columnStatus: string;
657
+ lastUsedNever: string;
658
+ statusActive: string;
659
+ statusRevoked: string;
660
+ statusExpired: string;
661
+ revoke: string;
662
+ revokeConfirm: string;
663
+ };
545
664
  public: {
546
665
  back: string;
547
666
  home: string;
@@ -585,6 +704,7 @@ declare const dictionaries: {
585
704
  media: string;
586
705
  sites: string;
587
706
  users: string;
707
+ mcpTokens: string;
588
708
  viewSite: string;
589
709
  signOut: string;
590
710
  site: string;
@@ -751,6 +871,13 @@ declare const dictionaries: {
751
871
  customizationHint: string;
752
872
  lengthHelp: string;
753
873
  imagePlaceholder: string;
874
+ colorScheme: {
875
+ label: string;
876
+ hint: string;
877
+ auto: string;
878
+ light: string;
879
+ dark: string;
880
+ };
754
881
  };
755
882
  editor: {
756
883
  linkPrompt: string;
@@ -763,6 +890,18 @@ declare const dictionaries: {
763
890
  alt: string;
764
891
  delete: string;
765
892
  };
893
+ table: {
894
+ title: string;
895
+ insert: string;
896
+ addRowBefore: string;
897
+ addRowAfter: string;
898
+ addColumnBefore: string;
899
+ addColumnAfter: string;
900
+ deleteRow: string;
901
+ deleteColumn: string;
902
+ toggleHeaderRow: string;
903
+ deleteTable: string;
904
+ };
766
905
  };
767
906
  auth: {
768
907
  common: {
@@ -811,6 +950,45 @@ declare const dictionaries: {
811
950
  userExists: string;
812
951
  };
813
952
  };
953
+ mcpTokens: {
954
+ title: string;
955
+ description: string;
956
+ endpointTitle: string;
957
+ endpointCopy: string;
958
+ endpointCopied: string;
959
+ endpointMissing: string;
960
+ inertBanner: string;
961
+ createButton: string;
962
+ createModalTitle: string;
963
+ scopeLabel: string;
964
+ scopeAll: string;
965
+ expirationLabel: string;
966
+ expirationNever: string;
967
+ expiration30days: string;
968
+ expiration90days: string;
969
+ expirationCustom: string;
970
+ issueButton: string;
971
+ issuing: string;
972
+ revealTitle: string;
973
+ revealHint: string;
974
+ copy: string;
975
+ copied: string;
976
+ done: string;
977
+ loading: string;
978
+ error: string;
979
+ listEmpty: string;
980
+ columnPrefix: string;
981
+ columnScope: string;
982
+ columnCreated: string;
983
+ columnLastUsed: string;
984
+ columnStatus: string;
985
+ lastUsedNever: string;
986
+ statusActive: string;
987
+ statusRevoked: string;
988
+ statusExpired: string;
989
+ revoke: string;
990
+ revokeConfirm: string;
991
+ };
814
992
  public: {
815
993
  back: string;
816
994
  home: string;