@ampless/admin 0.2.0-alpha.7 → 1.0.0-alpha.26

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-L5NHN3MY.js → chunk-WL4IBW2D.js} +145 -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-Bc4SYgWx.d.ts → i18n-BhMBRfio.d.ts} +215 -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 +26 -14
  47. package/dist/chunk-GXPSAOES.js +0 -2823
  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-Bc4SYgWx.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-GXPSAOES.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-L5NHN3MY.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",
@@ -79,6 +80,18 @@ var posts = {
79
80
  status: "Status",
80
81
  noLayout: "No layout",
81
82
  noLayoutHint: "Serve this post as bare HTML — no theme header, footer, or root layout. The body is returned as the entire response. Best paired with format: HTML when the body contains a full <!DOCTYPE html>…</html> document.",
83
+ formatStaticLabel: "Static (zip / file bundle)",
84
+ "static": {
85
+ pick: "Pick a .zip or one or more files",
86
+ pickHint: "Bundle assets must reference each other with relative paths only (no leading /). The zip's contents are extracted into a directory under your post slug and served verbatim — no theme chrome.",
87
+ currentBundle: "Current bundle: {count} files (entry: {entrypoint})",
88
+ pendingBundle: "Pending upload: {count} files, {size}",
89
+ issuesTitle: "{count} validation issue(s)",
90
+ issuesHint: "Fix the listed paths and re-upload. Absolute (/foo) and protocol-relative (//cdn.example/foo) references break under the bundle's URL prefix.",
91
+ emptyBundle: "No usable files found in the selection.",
92
+ noBundle: "Pick a bundle before saving.",
93
+ previewHint: "Static bundles render as the served HTML at /<slug>/. Preview by saving and visiting the public URL."
94
+ },
82
95
  saveChanges: "Save changes",
83
96
  createPost: "Create post",
84
97
  "delete": "Delete",
@@ -186,7 +199,14 @@ var theme = {
186
199
  customizationHeading: "{theme} customization",
187
200
  customizationHint: "Empty input resets to the manifest default.",
188
201
  lengthHelp: "CSS length, e.g. 0.5rem, 4px.",
189
- 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
+ }
190
210
  };
191
211
  var editor = {
192
212
  linkPrompt: "URL",
@@ -198,6 +218,18 @@ var editor = {
198
218
  lightboxTitle: "Force click-to-enlarge",
199
219
  alt: "Alt",
200
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"
201
233
  }
202
234
  };
203
235
  var auth = {
@@ -247,6 +279,45 @@ var auth = {
247
279
  userExists: "An account with this email already exists."
248
280
  }
249
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
+ };
250
321
  var en = {
251
322
  common: common,
252
323
  sidebar: sidebar,
@@ -259,6 +330,7 @@ var en = {
259
330
  theme: theme,
260
331
  editor: editor,
261
332
  auth: auth,
333
+ mcpTokens: mcpTokens,
262
334
  "public": {
263
335
  back: "← Back",
264
336
  home: "← Home",
@@ -304,6 +376,7 @@ declare const dictionaries: {
304
376
  media: string;
305
377
  sites: string;
306
378
  users: string;
379
+ mcpTokens: string;
307
380
  viewSite: string;
308
381
  signOut: string;
309
382
  site: string;
@@ -350,6 +423,18 @@ declare const dictionaries: {
350
423
  status: string;
351
424
  noLayout: string;
352
425
  noLayoutHint: string;
426
+ formatStaticLabel: string;
427
+ static: {
428
+ pick: string;
429
+ pickHint: string;
430
+ currentBundle: string;
431
+ pendingBundle: string;
432
+ issuesTitle: string;
433
+ issuesHint: string;
434
+ emptyBundle: string;
435
+ noBundle: string;
436
+ previewHint: string;
437
+ };
353
438
  saveChanges: string;
354
439
  createPost: string;
355
440
  delete: string;
@@ -458,6 +543,13 @@ declare const dictionaries: {
458
543
  customizationHint: string;
459
544
  lengthHelp: string;
460
545
  imagePlaceholder: string;
546
+ colorScheme: {
547
+ label: string;
548
+ hint: string;
549
+ auto: string;
550
+ light: string;
551
+ dark: string;
552
+ };
461
553
  };
462
554
  editor: {
463
555
  linkPrompt: string;
@@ -470,6 +562,18 @@ declare const dictionaries: {
470
562
  alt: string;
471
563
  delete: string;
472
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
+ };
473
577
  };
474
578
  auth: {
475
579
  common: {
@@ -518,6 +622,45 @@ declare const dictionaries: {
518
622
  userExists: string;
519
623
  };
520
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
+ };
521
664
  public: {
522
665
  back: string;
523
666
  home: string;
@@ -561,6 +704,7 @@ declare const dictionaries: {
561
704
  media: string;
562
705
  sites: string;
563
706
  users: string;
707
+ mcpTokens: string;
564
708
  viewSite: string;
565
709
  signOut: string;
566
710
  site: string;
@@ -607,6 +751,18 @@ declare const dictionaries: {
607
751
  status: string;
608
752
  noLayout: string;
609
753
  noLayoutHint: string;
754
+ formatStaticLabel: string;
755
+ static: {
756
+ pick: string;
757
+ pickHint: string;
758
+ currentBundle: string;
759
+ pendingBundle: string;
760
+ issuesTitle: string;
761
+ issuesHint: string;
762
+ emptyBundle: string;
763
+ noBundle: string;
764
+ previewHint: string;
765
+ };
610
766
  saveChanges: string;
611
767
  createPost: string;
612
768
  delete: string;
@@ -715,6 +871,13 @@ declare const dictionaries: {
715
871
  customizationHint: string;
716
872
  lengthHelp: string;
717
873
  imagePlaceholder: string;
874
+ colorScheme: {
875
+ label: string;
876
+ hint: string;
877
+ auto: string;
878
+ light: string;
879
+ dark: string;
880
+ };
718
881
  };
719
882
  editor: {
720
883
  linkPrompt: string;
@@ -727,6 +890,18 @@ declare const dictionaries: {
727
890
  alt: string;
728
891
  delete: string;
729
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
+ };
730
905
  };
731
906
  auth: {
732
907
  common: {
@@ -775,6 +950,45 @@ declare const dictionaries: {
775
950
  userExists: string;
776
951
  };
777
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
+ };
778
992
  public: {
779
993
  back: string;
780
994
  home: string;