@ampless/admin 1.0.0-alpha.85 → 1.0.0-beta.101

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 (43) hide show
  1. package/README.ja.md +2 -2
  2. package/README.md +2 -2
  3. package/dist/api/index.d.ts +1 -1
  4. package/dist/api/index.js +4 -2
  5. package/dist/{chunk-SQ6LFPXH.js → chunk-2TBGPB5H.js} +2 -2
  6. package/dist/{chunk-K44QF3MV.js → chunk-4OFRX6QX.js} +1 -1
  7. package/dist/{chunk-HANIMWMN.js → chunk-4WYMEUYU.js} +301 -222
  8. package/dist/chunk-7HSWOQWV.js +172 -0
  9. package/dist/{chunk-J6R356H3.js → chunk-7OZ23MLD.js} +1 -1
  10. package/dist/{chunk-OFPNBZKP.js → chunk-7W7LAQXY.js} +76 -8
  11. package/dist/{chunk-HN3UFHP7.js → chunk-ANME5KDN.js} +1 -1
  12. package/dist/{chunk-GGHN2RKQ.js → chunk-E5VF3Y65.js} +69 -3
  13. package/dist/{chunk-7LT6YPIT.js → chunk-JLCTF5HY.js} +8 -2
  14. package/dist/{chunk-R3TEJ32M.js → chunk-LXY3BRKQ.js} +2 -2
  15. package/dist/{chunk-MKWYNK4J.js → chunk-NHMG2MRJ.js} +2 -2
  16. package/dist/{chunk-AYESATAM.js → chunk-OPVLQOOB.js} +44 -13
  17. package/dist/{chunk-SMI7Y77B.js → chunk-ORXOMW7M.js} +265 -190
  18. package/dist/{chunk-W4VHP2JW.js → chunk-SYAEM5DM.js} +1 -1
  19. package/dist/{chunk-7NQERXNY.js → chunk-TJZ4FTU6.js} +1 -1
  20. package/dist/{chunk-CFIOUXVE.js → chunk-V5XORHKX.js} +1 -1
  21. package/dist/chunk-ZDIDJCSU.js +40 -0
  22. package/dist/components/account-view.d.ts +8 -0
  23. package/dist/components/account-view.js +10 -0
  24. package/dist/components/admin-dashboard.js +3 -3
  25. package/dist/components/edit-post-view.js +5 -5
  26. package/dist/components/index.d.ts +4 -2
  27. package/dist/components/index.js +7 -7
  28. package/dist/components/login-view.d.ts +3 -1
  29. package/dist/components/login-view.js +4 -3
  30. package/dist/components/mcp-tokens-view.js +3 -3
  31. package/dist/components/media-view.js +5 -5
  32. package/dist/components/new-post-view.js +5 -5
  33. package/dist/components/plugin-settings-form.d.ts +2 -10
  34. package/dist/components/plugin-settings-form.js +5 -7
  35. package/dist/components/posts-list-view.js +3 -3
  36. package/dist/components/users-list-view.js +3 -3
  37. package/dist/{i18n-DA-aakRX.d.ts → i18n-Bd8q9aTl.d.ts} +108 -5
  38. package/dist/index.d.ts +2 -2
  39. package/dist/index.js +1 -1
  40. package/dist/metafile-esm.json +1 -1
  41. package/dist/pages/index.d.ts +21 -4
  42. package/dist/pages/index.js +54 -24
  43. package/package.json +5 -6
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-C7G5AQ3L.js";
5
5
  import {
6
6
  useT
7
- } from "./chunk-K44QF3MV.js";
7
+ } from "./chunk-4OFRX6QX.js";
8
8
 
9
9
  // src/components/mcp-tokens-view.tsx
10
10
  import { useEffect, useState } from "react";
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  useT
4
- } from "./chunk-K44QF3MV.js";
4
+ } from "./chunk-4OFRX6QX.js";
5
5
 
6
6
  // src/components/users-list-view.tsx
7
7
  import { useEffect, useState } from "react";
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  useT
4
- } from "./chunk-K44QF3MV.js";
4
+ } from "./chunk-4OFRX6QX.js";
5
5
 
6
6
  // src/components/admin-dashboard.tsx
7
7
  import { useEffect, useState } from "react";
@@ -0,0 +1,40 @@
1
+ // src/lib/passkey.ts
2
+ import { signIn } from "aws-amplify/auth";
3
+ var FIRST_FACTOR_SELECTION = "CONTINUE_SIGN_IN_WITH_FIRST_FACTOR_SELECTION";
4
+ function isWebAuthnSupported() {
5
+ return typeof window !== "undefined" && typeof window.PublicKeyCredential !== "undefined" && typeof navigator !== "undefined" && typeof navigator.credentials !== "undefined" && typeof navigator.credentials.get === "function";
6
+ }
7
+ function classifyPasskeyError(err) {
8
+ const name = typeof err === "object" && err !== null && "name" in err ? String(err.name) : "";
9
+ if (name === "NotAllowedError") return "cancelled";
10
+ if (name === "SecurityError") return "rpMismatch";
11
+ return "failed";
12
+ }
13
+ function interpretPasskeySignInResult(result) {
14
+ if (result.isSignedIn) return { status: "signedIn" };
15
+ if (result.nextStep.signInStep === FIRST_FACTOR_SELECTION) {
16
+ return { status: "noPasskey" };
17
+ }
18
+ return { status: "otherStep", step: result.nextStep.signInStep };
19
+ }
20
+ async function signInWithPasskey(username) {
21
+ const result = await signIn({
22
+ username,
23
+ options: {
24
+ authFlowType: "USER_AUTH",
25
+ preferredChallenge: "WEB_AUTHN"
26
+ }
27
+ });
28
+ return interpretPasskeySignInResult(result);
29
+ }
30
+ function isWebAuthnEnabled(outputs) {
31
+ const narrowed = outputs;
32
+ return narrowed.auth?.passwordless?.web_authn != null;
33
+ }
34
+
35
+ export {
36
+ isWebAuthnSupported,
37
+ classifyPasskeyError,
38
+ signInWithPasskey,
39
+ isWebAuthnEnabled
40
+ };
@@ -0,0 +1,8 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function AccountView({ currentUserEmail, passkeysEnabled }: {
4
+ currentUserEmail: string;
5
+ passkeysEnabled: boolean;
6
+ }): react_jsx_runtime.JSX.Element;
7
+
8
+ export { AccountView };
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import {
3
+ AccountView
4
+ } from "../chunk-7HSWOQWV.js";
5
+ import "../chunk-ZDIDJCSU.js";
6
+ import "../chunk-4OFRX6QX.js";
7
+ import "../chunk-7W7LAQXY.js";
8
+ export {
9
+ AccountView
10
+ };
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  AdminDashboard
4
- } from "../chunk-CFIOUXVE.js";
5
- import "../chunk-K44QF3MV.js";
6
- import "../chunk-OFPNBZKP.js";
4
+ } from "../chunk-V5XORHKX.js";
5
+ import "../chunk-4OFRX6QX.js";
6
+ import "../chunk-7W7LAQXY.js";
7
7
  export {
8
8
  AdminDashboard
9
9
  };
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  import {
3
3
  EditPostPage
4
- } from "../chunk-7LT6YPIT.js";
5
- import "../chunk-HANIMWMN.js";
6
- import "../chunk-HN3UFHP7.js";
4
+ } from "../chunk-JLCTF5HY.js";
5
+ import "../chunk-4WYMEUYU.js";
6
+ import "../chunk-ANME5KDN.js";
7
7
  import "../chunk-PCPXAEBG.js";
8
8
  import "../chunk-2ITWLRYF.js";
9
- import "../chunk-K44QF3MV.js";
10
- import "../chunk-OFPNBZKP.js";
9
+ import "../chunk-4OFRX6QX.js";
10
+ import "../chunk-7W7LAQXY.js";
11
11
  export {
12
12
  EditPostPage
13
13
  };
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { L as Locale, D as Dictionary } from '../i18n-DA-aakRX.js';
2
+ import { L as Locale, D as Dictionary } from '../i18n-Bd8q9aTl.js';
3
3
  import { Config, Post, ThemeManifest, LocalizedString, MediaProcessingDefaults } from 'ampless';
4
4
  import { AmplessOutputs, ColorScheme } from '@ampless/runtime';
5
5
  import { ProcessOptions } from 'ampless/media';
@@ -91,10 +91,12 @@ declare function uploadProcessedImage(file: File, options: ProcessOptions): Prom
91
91
  url: string;
92
92
  }>;
93
93
 
94
- declare function Sidebar({ email, isAdmin, }: {
94
+ declare function Sidebar({ email, isAdmin, siteName, }: {
95
95
  email: string;
96
96
  /** Gates `adminOnly` nav entries (user management). */
97
97
  isAdmin: boolean;
98
+ /** Site name from settings; shown as the primary brand line when present. */
99
+ siteName?: string;
98
100
  }): react_jsx_runtime.JSX.Element;
99
101
 
100
102
  interface PostFormProps {
@@ -4,34 +4,34 @@ import {
4
4
  Sidebar,
5
5
  SiteSettingsForm,
6
6
  ThemeSettingsForm
7
- } from "../chunk-AYESATAM.js";
7
+ } from "../chunk-OPVLQOOB.js";
8
+ import "../chunk-C7G5AQ3L.js";
8
9
  import {
9
10
  MediaUploader
10
- } from "../chunk-SQ6LFPXH.js";
11
+ } from "../chunk-2TBGPB5H.js";
11
12
  import {
12
13
  invalidateSiteSettingsCache
13
14
  } from "../chunk-D72XF3Q3.js";
14
15
  import {
15
16
  MediaPicker,
16
17
  PostForm
17
- } from "../chunk-HANIMWMN.js";
18
+ } from "../chunk-4WYMEUYU.js";
18
19
  import {
19
20
  ImageUploadDialog,
20
21
  sanitizeName,
21
22
  uploadProcessedImage
22
- } from "../chunk-HN3UFHP7.js";
23
+ } from "../chunk-ANME5KDN.js";
23
24
  import "../chunk-PCPXAEBG.js";
24
25
  import {
25
26
  publicMediaUrl,
26
27
  setAdminMediaContext
27
28
  } from "../chunk-2ITWLRYF.js";
28
- import "../chunk-C7G5AQ3L.js";
29
29
  import {
30
30
  I18nProvider,
31
31
  useLocale,
32
32
  useT
33
- } from "../chunk-K44QF3MV.js";
34
- import "../chunk-OFPNBZKP.js";
33
+ } from "../chunk-4OFRX6QX.js";
34
+ import "../chunk-7W7LAQXY.js";
35
35
  export {
36
36
  AdminProviders,
37
37
  I18nProvider,
@@ -1,5 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
 
3
- declare function LoginPage(): react_jsx_runtime.JSX.Element;
3
+ declare function LoginPage({ passkeysEnabled }: {
4
+ passkeysEnabled?: boolean;
5
+ }): react_jsx_runtime.JSX.Element;
4
6
 
5
7
  export { LoginPage };
@@ -1,9 +1,10 @@
1
1
  "use client";
2
2
  import {
3
3
  LoginPage
4
- } from "../chunk-GGHN2RKQ.js";
5
- import "../chunk-K44QF3MV.js";
6
- import "../chunk-OFPNBZKP.js";
4
+ } from "../chunk-E5VF3Y65.js";
5
+ import "../chunk-ZDIDJCSU.js";
6
+ import "../chunk-4OFRX6QX.js";
7
+ import "../chunk-7W7LAQXY.js";
7
8
  export {
8
9
  LoginPage
9
10
  };
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import {
3
3
  McpTokensView
4
- } from "../chunk-W4VHP2JW.js";
4
+ } from "../chunk-SYAEM5DM.js";
5
5
  import "../chunk-C7G5AQ3L.js";
6
- import "../chunk-K44QF3MV.js";
7
- import "../chunk-OFPNBZKP.js";
6
+ import "../chunk-4OFRX6QX.js";
7
+ import "../chunk-7W7LAQXY.js";
8
8
  export {
9
9
  McpTokensView
10
10
  };
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import {
3
3
  MediaPage
4
- } from "../chunk-MKWYNK4J.js";
5
- import "../chunk-SQ6LFPXH.js";
6
- import "../chunk-HN3UFHP7.js";
4
+ } from "../chunk-NHMG2MRJ.js";
5
+ import "../chunk-2TBGPB5H.js";
6
+ import "../chunk-ANME5KDN.js";
7
7
  import "../chunk-2ITWLRYF.js";
8
- import "../chunk-K44QF3MV.js";
9
- import "../chunk-OFPNBZKP.js";
8
+ import "../chunk-4OFRX6QX.js";
9
+ import "../chunk-7W7LAQXY.js";
10
10
  export {
11
11
  MediaPage
12
12
  };
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  import {
3
3
  NewPostPage
4
- } from "../chunk-R3TEJ32M.js";
5
- import "../chunk-HANIMWMN.js";
6
- import "../chunk-HN3UFHP7.js";
4
+ } from "../chunk-LXY3BRKQ.js";
5
+ import "../chunk-4WYMEUYU.js";
6
+ import "../chunk-ANME5KDN.js";
7
7
  import "../chunk-PCPXAEBG.js";
8
8
  import "../chunk-2ITWLRYF.js";
9
- import "../chunk-K44QF3MV.js";
10
- import "../chunk-OFPNBZKP.js";
9
+ import "../chunk-4OFRX6QX.js";
10
+ import "../chunk-7W7LAQXY.js";
11
11
  export {
12
12
  NewPostPage
13
13
  };
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { LocalizedString, PluginSettingField, PluginSecretField, PluginRepeatableField } from 'ampless';
2
+ import { LocalizedString, PluginSettingField, PluginSecretField } from 'ampless';
3
3
 
4
4
  interface Props {
5
5
  instanceId: string;
@@ -20,13 +20,5 @@ interface Props {
20
20
  secretFields?: ReadonlyArray<PluginSecretField>;
21
21
  }
22
22
  declare function PluginSettingsForm({ instanceId, displayName, fields, initialValues, secretFields, }: Props): react_jsx_runtime.JSX.Element;
23
- /**
24
- * Render a scalar (non-repeatable) plugin field input. Handles the 8
25
- * scalar variant types: text, url, textarea, code, boolean, number,
26
- * select, json. Factored out of `renderInput` so the repeatable case
27
- * can call back into it per sub-field cell without interleaving with
28
- * the repeatable branch.
29
- */
30
- declare function renderScalarInput(field: Exclude<PluginSettingField, PluginRepeatableField>, id: string, value: string, invalid: boolean, onChange: (v: string) => void): React.ReactNode;
31
23
 
32
- export { PluginSettingsForm, renderScalarInput };
24
+ export { PluginSettingsForm };
@@ -1,12 +1,10 @@
1
1
  "use client";
2
2
  import {
3
- PluginSettingsForm,
4
- renderScalarInput
5
- } from "../chunk-SMI7Y77B.js";
3
+ PluginSettingsForm
4
+ } from "../chunk-ORXOMW7M.js";
6
5
  import "../chunk-D72XF3Q3.js";
7
- import "../chunk-K44QF3MV.js";
8
- import "../chunk-OFPNBZKP.js";
6
+ import "../chunk-4OFRX6QX.js";
7
+ import "../chunk-7W7LAQXY.js";
9
8
  export {
10
- PluginSettingsForm,
11
- renderScalarInput
9
+ PluginSettingsForm
12
10
  };
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  PostsList
4
- } from "../chunk-J6R356H3.js";
5
- import "../chunk-K44QF3MV.js";
6
- import "../chunk-OFPNBZKP.js";
4
+ } from "../chunk-7OZ23MLD.js";
5
+ import "../chunk-4OFRX6QX.js";
6
+ import "../chunk-7W7LAQXY.js";
7
7
  export {
8
8
  PostsList
9
9
  };
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  UsersListView
4
- } from "../chunk-7NQERXNY.js";
5
- import "../chunk-K44QF3MV.js";
6
- import "../chunk-OFPNBZKP.js";
4
+ } from "../chunk-TJZ4FTU6.js";
5
+ import "../chunk-4OFRX6QX.js";
6
+ import "../chunk-7W7LAQXY.js";
7
7
  export {
8
8
  UsersListView
9
9
  };
@@ -6,6 +6,7 @@ var common = {
6
6
  edit: "Edit",
7
7
  back: "Back",
8
8
  loading: "Loading...",
9
+ loadError: "Failed to load.",
9
10
  "default": "Default",
10
11
  remove: "Remove",
11
12
  create: "Create",
@@ -39,7 +40,8 @@ var sidebar = {
39
40
  signOut: "Sign out",
40
41
  site: "Site",
41
42
  openMenu: "Open menu",
42
- closeMenu: "Close menu"
43
+ closeMenu: "Close menu",
44
+ account: "Account"
43
45
  };
44
46
  var dashboard = {
45
47
  title: "Dashboard",
@@ -86,7 +88,7 @@ var posts = {
86
88
  excerpt: "Excerpt",
87
89
  body: "Body",
88
90
  format: "Format",
89
- formatHint: "Tiptap is the rich editor. Markdown / HTML use a plain textarea. Tip: a slug ending in .html (e.g. promo.html) serves the post as a bare HTML response with no theme chrome.",
91
+ formatHint: "Tiptap is the rich editor. Markdown / HTML use a plain textarea.",
90
92
  insertMedia: "Insert media",
91
93
  tabEdit: "Edit",
92
94
  tabPreview: "Preview",
@@ -275,6 +277,10 @@ var editor = {
275
277
  deleteColumn: "Delete column",
276
278
  toggleHeaderRow: "Toggle header row",
277
279
  deleteTable: "Delete table"
280
+ },
281
+ codeBlock: {
282
+ languageLabel: "Language",
283
+ languagePlaceholder: "e.g. mermaid, ts"
278
284
  }
279
285
  };
280
286
  var auth = {
@@ -291,7 +297,8 @@ var auth = {
291
297
  description: "Sign in to manage your site.",
292
298
  submit: "Sign in",
293
299
  forgotPassword: "Forgot password?",
294
- createAccount: "Create admin account"
300
+ createAccount: "Create admin account",
301
+ passkeyButton: "Sign in with passkey"
295
302
  },
296
303
  signUp: {
297
304
  title: "Create admin account",
@@ -322,6 +329,14 @@ var auth = {
322
329
  invalidCredentials: "Invalid email or password.",
323
330
  passwordTooShort: "Password must be at least 8 characters.",
324
331
  userExists: "An account with this email already exists."
332
+ },
333
+ passkey: {
334
+ emailRequired: "Enter your email first, then sign in with your passkey.",
335
+ noneRegistered: "No passkey is registered for this account yet. Sign in with your password, then add one from the account page.",
336
+ cancelled: "Passkey sign-in was cancelled.",
337
+ unsupported: "This browser does not support passkeys.",
338
+ rpMismatch: "This site isn't configured for passkeys on this domain. Ask the site engineer to set the relyingPartyId in amplify/auth/resource.custom.ts.",
339
+ failed: "Passkey sign-in failed. Try again, or sign in with your password."
325
340
  }
326
341
  };
327
342
  var plugins = {
@@ -335,7 +350,8 @@ var plugins = {
335
350
  saveError: "Save failed",
336
351
  invalidValue: "One or more values are invalid — fix highlighted fields and try again.",
337
352
  resetToDefault: "Reset to default",
338
- resetDone: "Stored value cleared. Falling back to the manifest default."
353
+ resetDone: "Stored value cleared. Falling back to the manifest default.",
354
+ noChanges: "No changes to save."
339
355
  };
340
356
  var mcpTokens = {
341
357
  title: "MCP tokens",
@@ -375,6 +391,24 @@ var mcpTokens = {
375
391
  revoke: "Revoke",
376
392
  revokeConfirm: "Revoke this token? This cannot be undone."
377
393
  };
394
+ var account = {
395
+ title: "Account",
396
+ passkeys: {
397
+ title: "Passkeys",
398
+ add: "Add passkey",
399
+ adding: "Adding...",
400
+ added: "Passkey added.",
401
+ loading: "Loading passkeys...",
402
+ empty: "No passkeys yet. Add one to sign in with Face ID, Touch ID, or your security key.",
403
+ columnName: "Name",
404
+ columnCreated: "Created",
405
+ "delete": "Delete",
406
+ deleteConfirm: "Delete this passkey? You will no longer be able to sign in with it.",
407
+ loadError: "Failed to load passkeys",
408
+ unsupported: "This browser does not support passkeys.",
409
+ disabled: "Passkeys are disabled for this site."
410
+ }
411
+ };
378
412
  var en = {
379
413
  common: common,
380
414
  sidebar: sidebar,
@@ -396,7 +430,8 @@ var en = {
396
430
  tagLabel: "Tag",
397
431
  permalink: "Permalink",
398
432
  shareOnX: "Share on X"
399
- }
433
+ },
434
+ account: account
400
435
  };
401
436
 
402
437
  declare const dictionaries: {
@@ -409,6 +444,7 @@ declare const dictionaries: {
409
444
  edit: string;
410
445
  back: string;
411
446
  loading: string;
447
+ loadError: string;
412
448
  default: string;
413
449
  remove: string;
414
450
  create: string;
@@ -443,6 +479,7 @@ declare const dictionaries: {
443
479
  site: string;
444
480
  openMenu: string;
445
481
  closeMenu: string;
482
+ account: string;
446
483
  };
447
484
  dashboard: {
448
485
  title: string;
@@ -679,6 +716,10 @@ declare const dictionaries: {
679
716
  toggleHeaderRow: string;
680
717
  deleteTable: string;
681
718
  };
719
+ codeBlock: {
720
+ languageLabel: string;
721
+ languagePlaceholder: string;
722
+ };
682
723
  };
683
724
  auth: {
684
725
  common: {
@@ -695,6 +736,7 @@ declare const dictionaries: {
695
736
  submit: string;
696
737
  forgotPassword: string;
697
738
  createAccount: string;
739
+ passkeyButton: string;
698
740
  };
699
741
  signUp: {
700
742
  title: string;
@@ -726,6 +768,14 @@ declare const dictionaries: {
726
768
  passwordTooShort: string;
727
769
  userExists: string;
728
770
  };
771
+ passkey: {
772
+ emailRequired: string;
773
+ noneRegistered: string;
774
+ cancelled: string;
775
+ unsupported: string;
776
+ rpMismatch: string;
777
+ failed: string;
778
+ };
729
779
  };
730
780
  plugins: {
731
781
  title: string;
@@ -739,6 +789,7 @@ declare const dictionaries: {
739
789
  invalidValue: string;
740
790
  resetToDefault: string;
741
791
  resetDone: string;
792
+ noChanges: string;
742
793
  };
743
794
  mcpTokens: {
744
795
  title: string;
@@ -786,6 +837,24 @@ declare const dictionaries: {
786
837
  permalink: string;
787
838
  shareOnX: string;
788
839
  };
840
+ account: {
841
+ title: string;
842
+ passkeys: {
843
+ title: string;
844
+ add: string;
845
+ adding: string;
846
+ added: string;
847
+ loading: string;
848
+ empty: string;
849
+ columnName: string;
850
+ columnCreated: string;
851
+ delete: string;
852
+ deleteConfirm: string;
853
+ loadError: string;
854
+ unsupported: string;
855
+ disabled: string;
856
+ };
857
+ };
789
858
  };
790
859
  readonly ja: {
791
860
  common: {
@@ -796,6 +865,7 @@ declare const dictionaries: {
796
865
  edit: string;
797
866
  back: string;
798
867
  loading: string;
868
+ loadError: string;
799
869
  default: string;
800
870
  remove: string;
801
871
  create: string;
@@ -830,6 +900,7 @@ declare const dictionaries: {
830
900
  site: string;
831
901
  openMenu: string;
832
902
  closeMenu: string;
903
+ account: string;
833
904
  };
834
905
  dashboard: {
835
906
  title: string;
@@ -1066,6 +1137,10 @@ declare const dictionaries: {
1066
1137
  toggleHeaderRow: string;
1067
1138
  deleteTable: string;
1068
1139
  };
1140
+ codeBlock: {
1141
+ languageLabel: string;
1142
+ languagePlaceholder: string;
1143
+ };
1069
1144
  };
1070
1145
  auth: {
1071
1146
  common: {
@@ -1082,6 +1157,7 @@ declare const dictionaries: {
1082
1157
  submit: string;
1083
1158
  forgotPassword: string;
1084
1159
  createAccount: string;
1160
+ passkeyButton: string;
1085
1161
  };
1086
1162
  signUp: {
1087
1163
  title: string;
@@ -1113,6 +1189,14 @@ declare const dictionaries: {
1113
1189
  passwordTooShort: string;
1114
1190
  userExists: string;
1115
1191
  };
1192
+ passkey: {
1193
+ emailRequired: string;
1194
+ noneRegistered: string;
1195
+ cancelled: string;
1196
+ unsupported: string;
1197
+ rpMismatch: string;
1198
+ failed: string;
1199
+ };
1116
1200
  };
1117
1201
  plugins: {
1118
1202
  title: string;
@@ -1126,6 +1210,7 @@ declare const dictionaries: {
1126
1210
  invalidValue: string;
1127
1211
  resetToDefault: string;
1128
1212
  resetDone: string;
1213
+ noChanges: string;
1129
1214
  };
1130
1215
  mcpTokens: {
1131
1216
  title: string;
@@ -1173,6 +1258,24 @@ declare const dictionaries: {
1173
1258
  permalink: string;
1174
1259
  shareOnX: string;
1175
1260
  };
1261
+ account: {
1262
+ title: string;
1263
+ passkeys: {
1264
+ title: string;
1265
+ add: string;
1266
+ adding: string;
1267
+ added: string;
1268
+ loading: string;
1269
+ empty: string;
1270
+ columnName: string;
1271
+ columnCreated: string;
1272
+ delete: string;
1273
+ deleteConfirm: string;
1274
+ loadError: string;
1275
+ unsupported: string;
1276
+ disabled: string;
1277
+ };
1278
+ };
1176
1279
  };
1177
1280
  };
1178
1281
  type Locale = keyof typeof dictionaries;
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Config } from 'ampless';
2
2
  import { AmplessOutputs, EffectiveSiteSettings, EffectiveThemeConfig, ResolvedMedia, Ampless } from '@ampless/runtime';
3
- import { L as Locale, D as Dictionary } from './i18n-DA-aakRX.js';
4
- export { A as AdminLocaleStrings, g as getDictionary, r as resolveLocale, t as translate } from './i18n-DA-aakRX.js';
3
+ import { L as Locale, D as Dictionary } from './i18n-Bd8q9aTl.js';
4
+ export { A as AdminLocaleStrings, g as getDictionary, r as resolveLocale, t as translate } from './i18n-Bd8q9aTl.js';
5
5
  import * as _aws_amplify_adapter_nextjs from '@aws-amplify/adapter-nextjs';
6
6
 
7
7
  /**
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  getDictionary,
6
6
  resolveLocale,
7
7
  translate
8
- } from "./chunk-OFPNBZKP.js";
8
+ } from "./chunk-7W7LAQXY.js";
9
9
 
10
10
  // src/lib/amplify-server.ts
11
11
  import { createServerRunner } from "@aws-amplify/adapter-nextjs";