@nxgt/material 2.16.0 → 2.17.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.
Files changed (106) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/README.md +9 -4
  3. package/dist/{_Uint8Array-CjLUgWgf.js → _Uint8Array-C7apDrb7.js} +1 -1
  4. package/dist/{_overRest-HfSwfmH1.js → _overRest-CCAbV-eT.js} +1 -1
  5. package/dist/async-slice-Cuekts5f.js +459 -0
  6. package/dist/{blockDiagram-BEXU5L5S-DSNWJcbS.js → blockDiagram-BEXU5L5S-K2MjXCm9.js} +2 -2
  7. package/dist/{chunk-3FUC2YCW-CcZvlyvW.js → chunk-3FUC2YCW-6KyD6CAZ.js} +2 -2
  8. package/dist/{chunk-7M6MHVWA-21OdxoBq.js → chunk-7M6MHVWA-CNWcBB_6.js} +1 -1
  9. package/dist/{chunk-GNY47TPC-BZdgq2LF.js → chunk-GNY47TPC-DdqgSBxM.js} +4 -4
  10. package/dist/{chunk-NETBCI7D-CAgvlb0w.js → chunk-NETBCI7D-ZnunhYtw.js} +1 -1
  11. package/dist/{chunk-Z7XXMR3K-BSXPgLtN.js → chunk-Z7XXMR3K-C8MhuVIi.js} +1 -1
  12. package/dist/{classDiagram-v2-NBCMYWYE-D_BHO1iT.js → classDiagram-v2-NBCMYWYE-ByUAGkfa.js} +2 -2
  13. package/dist/components/components.css +1 -0
  14. package/dist/components/print-only.css +44 -0
  15. package/dist/{components-Bkdm6jn6.js → components-CIYQrI45.js} +59379 -58878
  16. package/dist/components.js +6 -6
  17. package/dist/{dagre-6A5THRUB-CsnftAPx.js → dagre-6A5THRUB-C2vz5UY9.js} +64 -64
  18. package/dist/{diagram-22UHCM2B-D0yPa8vo.js → diagram-22UHCM2B-DREk9ku4.js} +2 -2
  19. package/dist/{diagram-3UASUU5V-f8LIX2sj.js → diagram-3UASUU5V-CYkPaos5.js} +1 -1
  20. package/dist/dnd.js +1 -1
  21. package/dist/{elk-276RUBZZ-DI8bDQAL.js → elk-276RUBZZ-CK4KoCtK.js} +3 -3
  22. package/dist/{erDiagram-OPXOYQCR-BGHFtxmB.js → erDiagram-OPXOYQCR-CTfn8QUl.js} +2 -2
  23. package/dist/{field-blur-C-5K6U1F.js → field-blur-3RW0mJb2.js} +2 -2
  24. package/dist/{flowDiagram-KWPJA3E3-CnFLTW-3.js → flowDiagram-KWPJA3E3-CDzuzre6.js} +3 -3
  25. package/dist/{ganttDiagram-FUAMR5RP-B5uyVKE4.js → ganttDiagram-FUAMR5RP-Ci-9ZJz5.js} +1 -1
  26. package/dist/{graphlib-BqO9Go2u.js → graphlib-DxjKaXeR.js} +42 -42
  27. package/dist/hooks.js +38 -26
  28. package/dist/{i18n-provider-C3SlA4J0.js → i18n-provider-Dv9ZSmgO.js} +1 -1
  29. package/dist/i18n.js +6 -6
  30. package/dist/{isArrayLikeObject-83P1fvEs.js → isArrayLikeObject-H8k6W51O.js} +3 -3
  31. package/dist/{isEmpty-C2z3Hypl.js → isEmpty-B0Bavg-e.js} +9 -9
  32. package/dist/{journeyDiagram-ZHPQQLJL-CKtbGcVT.js → journeyDiagram-ZHPQQLJL-CwFYd51O.js} +1 -1
  33. package/dist/lib/components/ui/actions/copy-button/use-copy-status.d.ts +13 -0
  34. package/dist/lib/components/ui/display/enrolment-secret/enrolment-secret.d.ts +30 -0
  35. package/dist/lib/components/ui/display/enrolment-secret/index.d.ts +2 -0
  36. package/dist/lib/components/ui/display/enrolment-secret/use-enrolment-secret-labels.d.ts +11 -0
  37. package/dist/lib/components/ui/display/index.d.ts +2 -0
  38. package/dist/lib/components/ui/display/recovery-codes/index.d.ts +4 -0
  39. package/dist/lib/components/ui/display/recovery-codes/partials/recovery-codes-actions.d.ts +14 -0
  40. package/dist/lib/components/ui/display/recovery-codes/partials/recovery-codes-confirm.d.ts +13 -0
  41. package/dist/lib/components/ui/display/recovery-codes/partials/recovery-codes-list.d.ts +5 -0
  42. package/dist/lib/components/ui/display/recovery-codes/recovery-codes.d.ts +8 -0
  43. package/dist/lib/components/ui/display/recovery-codes/types.d.ts +64 -0
  44. package/dist/lib/components/ui/display/recovery-codes/use-recovery-codes-labels.d.ts +7 -0
  45. package/dist/lib/components/ui/fields/form-section/form-section-classes.d.ts +30 -0
  46. package/dist/lib/components/ui/fields/form-section/form-section.d.ts +25 -0
  47. package/dist/lib/components/ui/fields/form-section/index.d.ts +1 -0
  48. package/dist/lib/components/ui/fields/index.d.ts +1 -0
  49. package/dist/lib/components/ui/forms/index.d.ts +1 -0
  50. package/dist/lib/components/ui/forms/use-code-resolver.d.ts +42 -0
  51. package/dist/lib/components/ui/layout/auth-card/auth-card-notice.d.ts +18 -0
  52. package/dist/lib/components/ui/layout/auth-card/auth-card.d.ts +35 -0
  53. package/dist/lib/components/ui/layout/auth-card/index.d.ts +1 -0
  54. package/dist/lib/components/ui/layout/index.d.ts +1 -0
  55. package/dist/lib/hooks/index.d.ts +2 -0
  56. package/dist/lib/hooks/use-focus-on-mount.d.ts +24 -0
  57. package/dist/lib/hooks/use-submit-once.d.ts +32 -0
  58. package/dist/lib/i18n/resources/en/en.d.ts +21 -0
  59. package/dist/lib/i18n/resources/en/material.json.d.ts +21 -0
  60. package/dist/lib/i18n/resources/fr/fr.d.ts +21 -0
  61. package/dist/lib/i18n/resources/fr/material.json.d.ts +21 -0
  62. package/dist/lib/i18n/resources/resources.d.ts +42 -0
  63. package/dist/lib/i18n/translator.d.ts +1 -1
  64. package/dist/lib/lib/index.d.ts +1 -0
  65. package/dist/lib.js +58 -102
  66. package/dist/main.js +16 -16
  67. package/dist/map.js +22 -22
  68. package/dist/material.css +1 -1
  69. package/dist/{merge-CZIEHTTe.js → merge-Js8537dg.js} +4 -4
  70. package/dist/{mermaid.core-Cp75fWA9.js → mermaid.core-DW7UlwJu.js} +21 -21
  71. package/dist/{mindmap-definition-NLK3R4M7-CFYIlEfW.js → mindmap-definition-NLK3R4M7-CsLyIyEF.js} +2 -2
  72. package/dist/{pieDiagram-5QR66LMP-CjvtBYDr.js → pieDiagram-5QR66LMP-C-dfffj5.js} +1 -1
  73. package/dist/print.js +2 -2
  74. package/dist/{quadrantDiagram-O4NWA36T-DPj8ndqA.js → quadrantDiagram-O4NWA36T-DZ0TivLD.js} +1 -1
  75. package/dist/{requirementDiagram-PLB6GJNP-DjVFwRJg.js → requirementDiagram-PLB6GJNP-3brF-h1L.js} +2 -2
  76. package/dist/{sankeyDiagram-IPEJSGJF-63wsgHUY.js → sankeyDiagram-IPEJSGJF-BY-LLyiZ.js} +1 -1
  77. package/dist/{sortable-provider-Chbn1x1i.js → sortable-provider-CUT5Wfdl.js} +1 -1
  78. package/dist/{stateDiagram-v2-GCMORJYK-DNc8m371.js → stateDiagram-v2-GCMORJYK-BGavr7Nm.js} +2 -2
  79. package/dist/{stored-language-DPqzxRmf.js → stored-language-BKoohv2_.js} +42 -0
  80. package/dist/{swimlanes-2SLR337P-B7_gOJxx.js → swimlanes-2SLR337P-B6Fkr7-U.js} +3 -3
  81. package/dist/{swimlanesDiagram-TC7HE7FX-tqlBrGuu.js → swimlanesDiagram-TC7HE7FX-Dt6Tqj4h.js} +3 -3
  82. package/dist/{timeline-definition-EJHVYXUP-DIA9CBZK.js → timeline-definition-EJHVYXUP-CE-3KwYd.js} +1 -1
  83. package/dist/{translate-material-CqB-j9WD.js → translate-material-CCJg3yfc.js} +2 -2
  84. package/dist/{translator-DTl9h__E.js → translator-DEde7BKz.js} +1 -1
  85. package/dist/{use-heading-spy-C1KA3PrF.js → use-heading-spy-XkSExwoT.js} +67 -59
  86. package/dist/{use-material-translation-DMa4Xrnd.js → use-material-translation-Cndoq_iK.js} +2 -2
  87. package/dist/{usecaseDiagram-POWQR4AR-FMjCkoxs.js → usecaseDiagram-POWQR4AR-CPOCe5We.js} +2 -2
  88. package/dist/{xychartDiagram-PMCCYNJV-B76HOkCh.js → xychartDiagram-PMCCYNJV-Cleaihn8.js} +1 -1
  89. package/docs/components/README.md +3 -3
  90. package/docs/components/data-display.md +101 -0
  91. package/docs/components/form-fields.md +78 -0
  92. package/docs/components/navigation-and-layout.md +51 -0
  93. package/docs/guides/forms.md +111 -0
  94. package/docs/guides/helpers.md +81 -0
  95. package/docs/guides/i18n.md +17 -0
  96. package/docs/guides/printing.md +27 -0
  97. package/docs/previews/data-display-enrolmentsecret.webp +0 -0
  98. package/docs/previews/data-display-recoverycodes.webp +0 -0
  99. package/docs/previews/form-fields-formsection.webp +0 -0
  100. package/docs/previews/navigation-layout-authcard.webp +0 -0
  101. package/docs/roadmap.md +15 -0
  102. package/docs/troubleshooting.md +72 -0
  103. package/lib/components/components.css +1 -0
  104. package/lib/components/print-only.css +44 -0
  105. package/package.json +2 -2
  106. package/dist/async-slice-CsE3hkCD.js +0 -411
@@ -0,0 +1,30 @@
1
+ /** The heading elements a FormSection's title can render as. */
2
+ export type FormSectionTitleElement = 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
3
+ /**
4
+ * The section: a whole row of the form's grid (`.form-grid-layout`
5
+ * `[data-slot="form-fields"]`), and a container of its own, so its fields
6
+ * take columns by the section's width, inside a form or standalone.
7
+ */
8
+ export declare const formSectionRootClass = "@container col-span-full flex w-full min-w-0 flex-col gap-2";
9
+ /**
10
+ * The rule between two sections: a top border on a section that follows
11
+ * another one, never on the first.
12
+ */
13
+ export declare const formSectionSeparatedClass = "[[data-slot=form-section]+&]:mt-2 [[data-slot=form-section]+&]:border-t [[data-slot=form-section]+&]:pt-4";
14
+ /** The title and the actions, which wrap under the title on a phone. */
15
+ export declare const formSectionHeaderClass = "flex min-w-0 flex-wrap items-center justify-between gap-2";
16
+ /**
17
+ * Set apart from the fields' labels, which read as titles: small, semibold,
18
+ * uppercase and muted. `text-muted-foreground` reads 4.5:1 on the form's
19
+ * background in both themes.
20
+ */
21
+ export declare const formSectionTitleClass = "min-w-0 break-words font-semibold text-muted-foreground text-sm uppercase tracking-wide";
22
+ export declare const formSectionActionsClass = "flex flex-wrap items-center gap-2";
23
+ export declare const formSectionDescriptionClass = "break-words text-muted-foreground text-sm";
24
+ /**
25
+ * The fields: one column on a phone, then the form grid's own columns. The
26
+ * form grid's wide-field rules (a switch, a textarea, chips, files, rich
27
+ * text on a row of their own) are descendant selectors under
28
+ * `[data-slot="form-fields"]`, so they still reach the fields in here.
29
+ */
30
+ export declare const formSectionFieldsClass = "grid min-w-0 grid-cols-1 place-items-start gap-2 @2xl:grid-cols-2 @4xl:grid-cols-3 @6xl:grid-cols-4";
@@ -0,0 +1,25 @@
1
+ import { ComponentProps, ReactNode } from 'react';
2
+ import { FormSectionTitleElement } from './form-section-classes';
3
+ export type { FormSectionTitleElement } from './form-section-classes';
4
+ export type FormSectionProps = Omit<ComponentProps<'div'>, 'title'> & {
5
+ /** The section's heading. */
6
+ title: ReactNode;
7
+ /**
8
+ * The heading element; `'h2'` by default (a section under the page's
9
+ * `h1`). Pass `'h3'` when the form already sits under an `h2`.
10
+ */
11
+ titleAs?: FormSectionTitleElement;
12
+ /** A line under the title, tied to the group with `aria-describedby`. */
13
+ description?: ReactNode;
14
+ /** Controls beside the title (e.g. "Add"), wrapping under it on a phone. */
15
+ actions?: ReactNode;
16
+ /** A rule above the section when it follows another FormSection. Default `true`. */
17
+ separated?: boolean;
18
+ };
19
+ /**
20
+ * A titled section of a form: a heading, an optional description and
21
+ * actions, then its fields. Inside `.form-grid-layout`'s
22
+ * `[data-slot="form-fields"]` it takes a whole row and lays its fields out
23
+ * in the form's columns; one column on a phone.
24
+ */
25
+ export declare function FormSection({ title, titleAs: Title, description, actions, separated, className, children, ...props }: FormSectionProps): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './form-section';
@@ -5,6 +5,7 @@ export * from './country-field';
5
5
  export * from './currency-field';
6
6
  export * from './email-field';
7
7
  export * from './field';
8
+ export * from './form-section';
8
9
  export * from './inline-edit';
9
10
  export * from './input-group-field';
10
11
  export * from './number-field';
@@ -1 +1,2 @@
1
1
  export * from './form-field';
2
+ export * from './use-code-resolver';
@@ -0,0 +1,42 @@
1
+ import { CodeIssue } from '@nxgt/material-core/code-errors';
2
+ import { FieldValues, Resolver } from 'react-hook-form';
3
+ import { z } from 'zod';
4
+ import { Language, Translate } from '../../../i18n/types';
5
+ export { type CodeErrorMap, type CodeIssue, createCodeErrorMap, defaultCodeOf, isEmptyRequired, } from '@nxgt/material-core/code-errors';
6
+ export type CodeResolverOptions = {
7
+ /**
8
+ * The app's translator, `createTranslator(mergeResources(resources,
9
+ * appResources))`: it words the codes (`translate(code, params,
10
+ * language)`; a key it returns verbatim has no words) and is handed to
11
+ * `zodLocaleError`, so the app's `material.zod.*` overrides apply. Without
12
+ * it, every issue is worded by the package's own zod messages. Pass a
13
+ * stable function (module scope): a new one re-creates the resolver.
14
+ */
15
+ translate?: Translate<any>;
16
+ /**
17
+ * Which code an issue carries. Defaults to `defaultCodeOf`: a custom
18
+ * issue's `params.code`. Pass a stable function.
19
+ */
20
+ codeOf?: (issue: CodeIssue) => string | undefined;
21
+ /**
22
+ * The language to word the errors in. Defaults to `I18nProvider`'s, else
23
+ * what `zodLocaleError` reads by default (the stored language).
24
+ */
25
+ language?: Language;
26
+ };
27
+ /**
28
+ * A react-hook-form resolver for a zod 4 `schema` whose errors are worded in
29
+ * the page's language: a refinement carrying a code in `params.code`
30
+ * (`.refine(isFree, { params: { code: 'errors.taken' } })`) reads as the
31
+ * app's words for that code, and every other issue as the package's zod
32
+ * messages (`zodLocaleError`) — zod's own are English only. One resolver
33
+ * per schema and language, not one per render: switching the language
34
+ * re-words the errors on the next validation.
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * const resolver = useCodeResolver(schema, { translate });
39
+ * const form = useForm({ resolver, defaultValues });
40
+ * ```
41
+ */
42
+ export declare function useCodeResolver<Input extends FieldValues, Output>(schema: z.ZodType<Output, Input>, { translate, codeOf, language: languageOption }?: CodeResolverOptions): Resolver<Input, unknown, Output>;
@@ -0,0 +1,18 @@
1
+ import { ReactNode } from 'react';
2
+ import { AuthCardNoticeTone } from './auth-card';
3
+ type AuthCardNoticeProps = {
4
+ notice: ReactNode;
5
+ tone: AuthCardNoticeTone;
6
+ /** Whether there is a notice to show. */
7
+ shown: boolean;
8
+ };
9
+ /**
10
+ * The notice above the form. A polite status is announced when its text
11
+ * changes inside a live region that was already in the page, so that region
12
+ * is always rendered and a non-error notice goes into it. It takes no room
13
+ * while empty (`empty:-mb-4` cancels the card's gap; `display: none` would
14
+ * take it out of the accessibility tree). An error is an `alert`, inserted on
15
+ * demand: that is announced reliably.
16
+ */
17
+ export declare function AuthCardNotice({ notice, tone, shown }: AuthCardNoticeProps): import("react").JSX.Element;
18
+ export {};
@@ -0,0 +1,35 @@
1
+ import { ComponentProps, ReactNode } from 'react';
2
+ /** The notice's colour, and its role: `error` is an alert, the rest a status. */
3
+ export type AuthCardNoticeTone = 'info' | 'success' | 'warning' | 'error';
4
+ export type AuthCardProps = Omit<ComponentProps<'main'>, 'title'> & {
5
+ /** The page's `h1`, at the top of the card. */
6
+ title: ReactNode;
7
+ /** A line under the title. */
8
+ description?: ReactNode;
9
+ /** A notice above the content: an expired link, a signed-out message. */
10
+ notice?: ReactNode;
11
+ /** `'info'` by default; `'error'` makes the notice an alert, the others a status. */
12
+ noticeTone?: AuthCardNoticeTone;
13
+ /**
14
+ * Moves the focus to the title once shown: for an end state that replaced
15
+ * the form the user acted on ("Check your inbox"), so a screen reader reads
16
+ * it and the keyboard goes on from there.
17
+ */
18
+ focusTitle?: boolean;
19
+ /** The left of the row above the card: a logo, the product's name. */
20
+ brand?: ReactNode;
21
+ /** The right of that row: a language switcher, a theme toggle. */
22
+ toolbar?: ReactNode;
23
+ /** Above that row: an update notice, a maintenance banner. */
24
+ banner?: ReactNode;
25
+ /** Under the card: links to the terms, to help. */
26
+ footer?: ReactNode;
27
+ /** The form. */
28
+ children: ReactNode;
29
+ };
30
+ /**
31
+ * The frame of a signed-out page (sign in, sign up, a reset link): one
32
+ * `main`, a centred card whose title is the page's `h1`, a row above it for
33
+ * the brand and a toolbar, padded clear of a phone's notch and home bar.
34
+ */
35
+ export declare function AuthCard({ title, description, notice, noticeTone, focusTitle, brand, toolbar, banner, footer, className, children, ...props }: AuthCardProps): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './auth-card';
@@ -1,5 +1,6 @@
1
1
  export * from './app-bar';
2
2
  export * from './app-shell';
3
+ export * from './auth-card';
3
4
  export * from './background';
4
5
  export * from './breadcrumb';
5
6
  export * from './doc';
@@ -1,6 +1,7 @@
1
1
  export * from './resolve-theme';
2
2
  export * from './use-allowed-transitions';
3
3
  export { useCspNonce } from './use-csp-nonce';
4
+ export * from './use-focus-on-mount';
4
5
  export * from './use-formatters';
5
6
  export * from './use-heading-spy';
6
7
  export * from './use-is-client';
@@ -10,4 +11,5 @@ export * from './use-navigation';
10
11
  export * from './use-number-formatter';
11
12
  export * from './use-options';
12
13
  export * from './use-search-param';
14
+ export * from './use-submit-once';
13
15
  export * from './use-theme';
@@ -0,0 +1,24 @@
1
+ import { RefObject } from 'react';
2
+ /**
3
+ * A ref whose element takes focus once mounted, and again whenever `focus`
4
+ * turns true. Put it on the heading of what replaced the content the user
5
+ * acted on — a wizard's new step, an end state ("Message sent") — so a
6
+ * screen reader reads it and the keyboard goes on from there instead of from
7
+ * the top of the page.
8
+ *
9
+ * The element needs `tabIndex={-1}` unless it is natively focusable (a
10
+ * button, a link, a field): a heading is not.
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * function Done() {
15
+ * const title = useFocusOnMount<HTMLHeadingElement>();
16
+ * return (
17
+ * <h2 ref={title} tabIndex={-1}>
18
+ * Message sent
19
+ * </h2>
20
+ * );
21
+ * }
22
+ * ```
23
+ */
24
+ export declare function useFocusOnMount<T extends HTMLElement>(focus?: boolean): RefObject<T | null>;
@@ -0,0 +1,32 @@
1
+ import { SubmitGuard } from '@nxgt/material-core/submit-guard';
2
+ export { busySettler, createSubmitGuard, type SubmitGuard, type SubmitOnceOptions, } from '@nxgt/material-core/submit-guard';
3
+ /**
4
+ * One submit in flight for a form: wraps the submit handler so a second
5
+ * click, or Enter, before the first request ends is dropped. A disabled or
6
+ * `loading` button only stops clicks once it has rendered, and never Enter
7
+ * in a field.
8
+ *
9
+ * When the guard opens again:
10
+ * - **The handler returns the request's promise**: when it ends, fulfilled
11
+ * or rejected (the rejection still reaches the caller).
12
+ * - **`busy` is passed** (a router's navigation state): once it was true and
13
+ * is false again — for the run that was on its way when it rose, never a
14
+ * newer one. A handler that returns no promise then waits for `busy`.
15
+ * - **Neither**: a handler that returns no promise (it returned early, or
16
+ * did its work synchronously) opens it at once.
17
+ *
18
+ * So return the request's promise, or pass `busy`.
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * const submitOnce = useSubmitOnce();
23
+ * const { handleSubmit } = useForm<Values>();
24
+ * // react-hook-form's handleSubmit returns a promise: the guard opens again
25
+ * // when `save` ends.
26
+ * <form onSubmit={submitOnce(handleSubmit(save))}>…</form>
27
+ *
28
+ * // A request tracked by a flag instead (a router's navigation state):
29
+ * const submitOnce = useSubmitOnce(navigation.state !== 'idle');
30
+ * ```
31
+ */
32
+ export declare function useSubmitOnce(busy?: boolean): SubmitGuard['once'];
@@ -1272,5 +1272,26 @@ export declare const en: {
1272
1272
  truncated: string;
1273
1273
  content: string;
1274
1274
  };
1275
+ "enrolment-secret": {
1276
+ "qr-label": string;
1277
+ "open-app": string;
1278
+ manual: string;
1279
+ "secret-label": string;
1280
+ copy: string;
1281
+ copied: string;
1282
+ };
1283
+ "recovery-codes": {
1284
+ title: string;
1285
+ warning: string;
1286
+ list: string;
1287
+ copy: string;
1288
+ copied: string;
1289
+ "copy-failed": string;
1290
+ download: string;
1291
+ print: string;
1292
+ saved: string;
1293
+ "saved-required": string;
1294
+ done: string;
1295
+ };
1275
1296
  };
1276
1297
  };
@@ -1261,6 +1261,27 @@ declare const _default: {
1261
1261
  "download": "Download",
1262
1262
  "truncated": "Showing the first {size} of this file.",
1263
1263
  "content": "Contents of {name}"
1264
+ },
1265
+ "enrolment-secret": {
1266
+ "qr-label": "QR code to scan with your authenticator app",
1267
+ "open-app": "Open in your authenticator app",
1268
+ "manual": "Or type this key in the app:",
1269
+ "secret-label": "Setup key",
1270
+ "copy": "Copy the key",
1271
+ "copied": "Key copied"
1272
+ },
1273
+ "recovery-codes": {
1274
+ "title": "Recovery codes",
1275
+ "warning": "Each code works once. Keep them somewhere safe: they are shown only now.",
1276
+ "list": "Recovery codes",
1277
+ "copy": "Copy codes",
1278
+ "copied": "Codes copied",
1279
+ "copy-failed": "Copy failed",
1280
+ "download": "Download",
1281
+ "print": "Print",
1282
+ "saved": "I have saved these codes",
1283
+ "saved-required": "Tick the box once your codes are safe",
1284
+ "done": "Done"
1264
1285
  }
1265
1286
  }
1266
1287
  ;
@@ -1272,5 +1272,26 @@ export declare const fr: {
1272
1272
  truncated: string;
1273
1273
  content: string;
1274
1274
  };
1275
+ "enrolment-secret": {
1276
+ "qr-label": string;
1277
+ "open-app": string;
1278
+ manual: string;
1279
+ "secret-label": string;
1280
+ copy: string;
1281
+ copied: string;
1282
+ };
1283
+ "recovery-codes": {
1284
+ title: string;
1285
+ warning: string;
1286
+ list: string;
1287
+ copy: string;
1288
+ copied: string;
1289
+ "copy-failed": string;
1290
+ download: string;
1291
+ print: string;
1292
+ saved: string;
1293
+ "saved-required": string;
1294
+ done: string;
1295
+ };
1275
1296
  };
1276
1297
  };
@@ -1261,6 +1261,27 @@ declare const _default: {
1261
1261
  "download": "Télécharger",
1262
1262
  "truncated": "Seuls les premiers {size} de ce fichier sont affichés.",
1263
1263
  "content": "Contenu de {name}"
1264
+ },
1265
+ "enrolment-secret": {
1266
+ "qr-label": "Code QR à scanner avec votre application d'authentification",
1267
+ "open-app": "Ouvrir dans votre application d'authentification",
1268
+ "manual": "Ou saisissez cette clé dans l'application :",
1269
+ "secret-label": "Clé de configuration",
1270
+ "copy": "Copier la clé",
1271
+ "copied": "Clé copiée"
1272
+ },
1273
+ "recovery-codes": {
1274
+ "title": "Codes de récupération",
1275
+ "warning": "Chaque code ne sert qu'une fois. Gardez-les en lieu sûr : ils ne sont affichés que maintenant.",
1276
+ "list": "Codes de récupération",
1277
+ "copy": "Copier les codes",
1278
+ "copied": "Codes copiés",
1279
+ "copy-failed": "Échec de la copie",
1280
+ "download": "Télécharger",
1281
+ "print": "Imprimer",
1282
+ "saved": "J'ai enregistré ces codes",
1283
+ "saved-required": "Cochez la case une fois vos codes en lieu sûr",
1284
+ "done": "Terminé"
1264
1285
  }
1265
1286
  }
1266
1287
  ;
@@ -1270,6 +1270,27 @@ export declare const resources: {
1270
1270
  truncated: string;
1271
1271
  content: string;
1272
1272
  };
1273
+ "enrolment-secret": {
1274
+ "qr-label": string;
1275
+ "open-app": string;
1276
+ manual: string;
1277
+ "secret-label": string;
1278
+ copy: string;
1279
+ copied: string;
1280
+ };
1281
+ "recovery-codes": {
1282
+ title: string;
1283
+ warning: string;
1284
+ list: string;
1285
+ copy: string;
1286
+ copied: string;
1287
+ "copy-failed": string;
1288
+ download: string;
1289
+ print: string;
1290
+ saved: string;
1291
+ "saved-required": string;
1292
+ done: string;
1293
+ };
1273
1294
  };
1274
1295
  };
1275
1296
  fr: {
@@ -2537,6 +2558,27 @@ export declare const resources: {
2537
2558
  truncated: string;
2538
2559
  content: string;
2539
2560
  };
2561
+ "enrolment-secret": {
2562
+ "qr-label": string;
2563
+ "open-app": string;
2564
+ manual: string;
2565
+ "secret-label": string;
2566
+ copy: string;
2567
+ copied: string;
2568
+ };
2569
+ "recovery-codes": {
2570
+ title: string;
2571
+ warning: string;
2572
+ list: string;
2573
+ copy: string;
2574
+ copied: string;
2575
+ "copy-failed": string;
2576
+ download: string;
2577
+ print: string;
2578
+ saved: string;
2579
+ "saved-required": string;
2580
+ done: string;
2581
+ };
2540
2582
  };
2541
2583
  };
2542
2584
  };
@@ -25,4 +25,4 @@ export declare function getLanguage(): Language;
25
25
  */
26
26
  export declare function createTranslator<K extends string = MaterialLocaleKey>(bundle?: Record<string, any>, localeProvider?: LanguageProvider): Translate<K>;
27
27
  /** Translator bound to the base bundle owned by `@nxgt/material`. */
28
- export declare const translate: Translate<"material.scroll-progress" | "material.skip-link" | "material.see-also" | "material.code.copy" | "material.code.language" | "material.code.copied" | "material.code.word-wrap" | "material.map.you-are-here" | "material.map.zoom-in" | "material.map.zoom-out" | "material.map.my-position" | "material.map.preview" | "material.map.preview-named" | "material.pagination.label" | "material.pagination.next" | "material.pagination.previous" | "material.table.loading" | "material.table.pagination.label" | "material.table.pagination.next" | "material.table.pagination.previous" | "material.table.pagination.go-to-next-page" | "material.table.pagination.go-to-previous-page" | "material.table.pagination.go-to-first-page" | "material.table.pagination.go-to-last-page" | "material.table.pagination.rows-per-page" | "material.table.pagination.rows-selected" | "material.table.pagination.page-of" | "material.table.pagination.range" | "material.table.pagination.range-open" | "material.table.pagination.range-label" | "material.table.pagination.total" | "material.table.pagination.selected" | "material.table.labels.desc" | "material.table.labels.view" | "material.table.labels.hide" | "material.table.labels.asc" | "material.table.labels.actions" | "material.table.labels.delete-selected-rows" | "material.table.labels.toggle-columns" | "material.table.labels.no-data" | "material.table.labels.select-all" | "material.table.labels.select-row" | "material.table.labels.toggle-row" | "material.table.labels.scroll-region" | "material.table.delete-confirm.title" | "material.table.delete-confirm.cancel" | "material.table.delete-confirm.description" | "material.table.delete-confirm.confirm" | "material.filter.title" | "material.filter.reset" | "material.filter.max" | "material.filter.min" | "material.filter.trigger" | "material.filter.active-count" | "material.filter.apply" | "material.filter.clear-all" | "material.filter.empty" | "material.filter.more" | "material.filter.value.yes" | "material.filter.value.no" | "material.filter.value.from" | "material.filter.value.until" | "material.filter.value.up-to" | "material.filter.presets.cancel" | "material.filter.presets.load" | "material.filter.presets.submit" | "material.filter.presets.description" | "material.filter.presets.name" | "material.filter.presets.saved" | "material.filter.presets.manage" | "material.filter.presets.set-default" | "material.filter.presets.unset-default" | "material.filter.presets.delete" | "material.filter.presets.create" | "material.filter.presets.limit" | "material.filter.presets.dialog-title" | "material.filter.presets.dialog-description" | "material.filter.presets.name-placeholder" | "material.filter.presets.usage" | "material.filter.presets.description-placeholder" | "material.banner.dismiss" | "material.slider.value" | "material.slider.minimum" | "material.slider.maximum" | "material.tree.label" | "material.tree.expand" | "material.tree.collapse" | "material.command.title" | "material.command.description" | "material.copy.copy" | "material.copy.copied" | "material.copy.failed" | "material.emoji.search" | "material.emoji.empty" | "material.emoji.picker" | "material.emoji.pick" | "material.emoji.groups.all" | "material.emoji.groups.recent" | "material.emoji.groups.general" | "material.emoji.groups.people_body" | "material.emoji.groups.components" | "material.emoji.groups.animals_nature" | "material.emoji.groups.food_drink" | "material.emoji.groups.travel_places" | "material.emoji.groups.activities" | "material.emoji.groups.objects" | "material.emoji.groups.symbols" | "material.emoji.groups.flags" | "material.carousel.next" | "material.carousel.previous" | "material.carousel.slide" | "material.carousel.roledescription" | "material.pagination.page" | "material.pagination.more" | "material.pagination.first" | "material.pagination.last" | "material.breadcrumb.label" | "material.breadcrumb.more" | "material.empty-state.search.title" | "material.empty-state.search.description" | "material.empty-state.empty.title" | "material.empty-state.empty.description" | "material.empty-state.not-found.title" | "material.empty-state.not-found.description" | "material.empty-state.unauthorized.title" | "material.empty-state.unauthorized.description" | "material.empty-state.generic.title" | "material.empty-state.generic.description" | "material.empty-state.offline.title" | "material.empty-state.offline.description" | "material.empty-state.maintenance.title" | "material.empty-state.maintenance.description" | "material.confirm-dialog.cancel" | "material.confirm-dialog.confirm" | "material.confirm-dialog.failed" | "material.confirm-dialog.processing" | "material.confirm-dialog.form-failed" | "material.mentions.empty" | "material.cards.vs" | "material.cards.total" | "material.cards.per-month" | "material.cards.rating" | "material.cards.unread" | "material.metrics.of-target" | "material.metrics.of-limit" | "material.metrics.this-period" | "material.metrics.last-period" | "material.metrics.weekdays" | "material.pager.next" | "material.pager.previous" | "material.toc.on-this-page" | "material.upload.failed" | "material.upload.retry" | "material.upload.remove" | "material.upload.replace-named" | "material.upload.invalid-type" | "material.upload.too-large" | "material.upload.max-files" | "material.upload.dropzone.max-files" | "material.upload.dropzone.idle" | "material.upload.dropzone.at-capacity" | "material.upload.dropzone.max-size" | "material.upload.dropzone.files-selected" | "material.image-field.replace" | "material.image-field.retry" | "material.image-field.remove" | "material.image-field.choose" | "material.language.fr" | "material.language.en" | "material.buttons.close" | "material.buttons.delete" | "material.buttons.load-more" | "material.buttons.ok" | "material.buttons.add" | "material.buttons.save" | "material.json-viewer.invalid" | "material.json-viewer.items" | "material.json-viewer.empty" | "material.json-viewer.expand" | "material.json-viewer.collapse" | "material.chat.send" | "material.chat.copy" | "material.chat.empty" | "material.chat.retry" | "material.chat.attach" | "material.chat.remove-attachment" | "material.chat.scroll-to-latest" | "material.chat.add-reaction" | "material.chat.attachment-type" | "material.chat.attachment-max-files" | "material.chat.attachment-max-size" | "material.chat.placeholder" | "material.chat.message" | "material.chat.typing" | "material.chat.empty-description" | "material.chat.back" | "material.chat.pick-conversation" | "material.chat.pick-conversation-description" | "material.chat.send-failed" | "material.gallery.label" | "material.gallery.select" | "material.gallery.repeat" | "material.gallery.next" | "material.gallery.previous" | "material.gallery.close" | "material.gallery.play" | "material.gallery.open" | "material.gallery.zoom-in" | "material.gallery.zoom-out" | "material.gallery.selected" | "material.gallery.empty" | "material.gallery.more" | "material.gallery.delete" | "material.gallery.empty-description" | "material.gallery.of" | "material.gallery.repeat-off" | "material.gallery.download" | "material.gallery.clear-selection" | "material.notifications.label" | "material.notifications.search" | "material.notifications.empty" | "material.notifications.dismiss" | "material.notifications.empty-description" | "material.notifications.empty-unread" | "material.notifications.empty-unread-description" | "material.notifications.read-all" | "material.notifications.filter-all" | "material.notifications.filter-unread" | "material.notifications.filter-category-all" | "material.notifications.dismiss-item" | "material.education.progress" | "material.education.results" | "material.education.true" | "material.education.false" | "material.education.next" | "material.education.previous" | "material.education.submit" | "material.education.empty" | "material.education.retry" | "material.education.answer-placeholder" | "material.education.expected" | "material.education.answered" | "material.education.score" | "material.education.quiz" | "material.education.review" | "material.education.kind-choice" | "material.education.kind-multi" | "material.education.kind-boolean" | "material.education.kind-text" | "material.stx-player.audio" | "material.stx-player.label" | "material.stx-player.video" | "material.stx-player.repeat" | "material.stx-player.next" | "material.stx-player.previous" | "material.stx-player.error" | "material.stx-player.pause" | "material.stx-player.play" | "material.stx-player.loading" | "material.stx-player.retry" | "material.stx-player.empty-description" | "material.stx-player.repeat-off" | "material.stx-player.mute" | "material.stx-player.unmute" | "material.stx-player.volume" | "material.stx-player.fullscreen" | "material.stx-player.exit-fullscreen" | "material.stx-player.pip" | "material.stx-player.exit-pip" | "material.stx-player.captions" | "material.stx-player.captions-off" | "material.stx-player.playback-rate" | "material.stx-player.queue" | "material.stx-player.now-playing" | "material.stx-player.buffering" | "material.stx-player.empty-title" | "material.stx-player.normal" | "material.camera.stop" | "material.camera.capture" | "material.camera.captured" | "material.camera.start" | "material.attributes.buttons.add" | "material.attributes.buttons.save" | "material.attributes.form.label.label" | "material.attributes.form.label.placeholder" | "material.attributes.form.description.label" | "material.attributes.form.description.placeholder" | "material.attributes.form.name.label" | "material.attributes.form.name.placeholder" | "material.attributes.form.type.label" | "material.attributes.form.type.placeholder" | "material.attributes.form.default-value.label" | "material.attributes.form.default-value.placeholder" | "material.attributes.form.priority.label" | "material.attributes.form.priority.placeholder" | "material.attributes.form.options.label" | "material.attributes.form.options.placeholder" | "material.attributes.form.unit.label" | "material.attributes.form.unit.placeholder" | "material.attributes.buttons.details" | "material.attributes.buttons.cancel" | "material.attributes.buttons.remove" | "material.attributes.buttons.edit" | "material.attributes.buttons.add-option" | "material.attributes.labels.attributes" | "material.attributes.labels.new-attribute" | "material.attributes.messages.dialog" | "material.attributes.messages.empty" | "material.attributes.messages.create-succeeded" | "material.attributes.messages.update-succeeded" | "material.attributes.messages.delete-succeeded" | "material.attributes.messages.add-first" | "material.attributes.types.string" | "material.attributes.types.number" | "material.attributes.types.boolean" | "material.attributes.types.select" | "material.attributes.types.time" | "material.attributes.types.text" | "material.attributes.types.color" | "material.attributes.types.date" | "material.attributes.types.datetime" | "material.attributes.types.multi-select" | "material.attributes.types.rich-text" | "material.attributes.fields.label" | "material.attributes.fields.description" | "material.attributes.fields.name" | "material.attributes.fields.type" | "material.attributes.fields.default-value" | "material.attributes.fields.priority" | "material.attributes.fields.options" | "material.attributes.fields.unit" | "material.contacts.buttons.add" | "material.contacts.buttons.save" | "material.contacts.buttons.cancel" | "material.contacts.buttons.remove" | "material.contacts.buttons.edit" | "material.contacts.messages.dialog" | "material.contacts.messages.add-first" | "material.contacts.fields.label" | "material.contacts.fields.type" | "material.contacts.labels.contacts" | "material.contacts.messages.no-contacts" | "material.contacts.types.email" | "material.contacts.types.phone" | "material.contacts.types.fax" | "material.contacts.types.mobile" | "material.contacts.types.website" | "material.contacts.fields.value" | "material.contacts.placeholders.label" | "material.contacts.placeholders.email" | "material.contacts.placeholders.type" | "material.contacts.placeholders.value" | "material.contacts.placeholders.phone" | "material.contacts.placeholders.fax" | "material.contacts.placeholders.mobile" | "material.contacts.placeholders.website" | "material.opening-hours.buttons.add" | "material.opening-hours.buttons.save" | "material.opening-hours.buttons.cancel" | "material.opening-hours.buttons.remove" | "material.opening-hours.buttons.edit" | "material.opening-hours.messages.dialog" | "material.opening-hours.messages.add-first" | "material.opening-hours.buttons.add-all" | "material.opening-hours.labels.closed-all-day" | "material.opening-hours.labels.open-hours" | "material.opening-hours.messages.no-hours" | "material.opening-hours.fields.dayOfWeek" | "material.opening-hours.fields.openTime" | "material.opening-hours.fields.closeTime" | "material.opening-hours.fields.isClosed" | "material.opening-hours.placeholders.dayOfWeek" | "material.opening-hours.placeholders.openTime" | "material.opening-hours.placeholders.closeTime" | "material.opening-hours.days.0" | "material.opening-hours.days.1" | "material.opening-hours.days.2" | "material.opening-hours.days.3" | "material.opening-hours.days.4" | "material.opening-hours.days.5" | "material.opening-hours.days.6" | "material.opening-hours.daysShort.0" | "material.opening-hours.daysShort.1" | "material.opening-hours.daysShort.2" | "material.opening-hours.daysShort.3" | "material.opening-hours.daysShort.4" | "material.opening-hours.daysShort.5" | "material.opening-hours.daysShort.6" | "material.postal-address.buttons.add" | "material.postal-address.buttons.save" | "material.postal-address.buttons.cancel" | "material.postal-address.buttons.remove" | "material.postal-address.buttons.edit" | "material.postal-address.messages.dialog" | "material.postal-address.messages.empty" | "material.postal-address.messages.add-first" | "material.postal-address.labels.address" | "material.postal-address.fields.region" | "material.postal-address.fields.street" | "material.postal-address.fields.locality" | "material.postal-address.fields.postalCode" | "material.postal-address.fields.country" | "material.postal-address.placeholders.region" | "material.postal-address.placeholders.street" | "material.postal-address.placeholders.locality" | "material.postal-address.placeholders.postalCode" | "material.postal-address.placeholders.country" | "material.toast.buttons.close" | "material.toast.operations.error.title" | "material.toast.operations.loading.title" | "material.toast.operations.success.title" | "material.zod.required" | "material.zod.invalid_value_single" | "material.zod.invalid_value_multiple" | "material.zod.too_big_inclusive" | "material.zod.too_big_exclusive" | "material.zod.too_big_no_unit_inclusive" | "material.zod.too_big_no_unit_exclusive" | "material.zod.too_small_inclusive" | "material.zod.too_small_exclusive" | "material.zod.too_small_no_unit_inclusive" | "material.zod.too_small_no_unit_exclusive" | "material.zod.too_big_string_inclusive" | "material.zod.too_big_string_exclusive" | "material.zod.too_small_string_inclusive" | "material.zod.too_small_string_exclusive" | "material.zod.not_multiple_of" | "material.zod.unrecognized_keys_single" | "material.zod.unrecognized_keys_multiple" | "material.zod.invalid_key" | "material.zod.invalid_union" | "material.zod.invalid_element" | "material.zod.default" | "material.zod.invalid_type.string" | "material.zod.invalid_type.number" | "material.zod.invalid_type.bigint" | "material.zod.invalid_type.boolean" | "material.zod.invalid_type.symbol" | "material.zod.invalid_type.undefined" | "material.zod.invalid_type.object" | "material.zod.invalid_type.function" | "material.zod.invalid_type.date" | "material.zod.invalid_type.default" | "material.zod.invalid_type.array" | "material.zod.invalid_type.null" | "material.zod.invalid_type.enum" | "material.zod.invalid_format.includes" | "material.zod.invalid_format.default" | "material.zod.invalid_format.starts_with" | "material.zod.invalid_format.ends_with" | "material.zod.invalid_format.regex" | "material.zod.nouns.time" | "material.zod.nouns.url" | "material.zod.nouns.email" | "material.zod.nouns.date" | "material.zod.nouns.emoji" | "material.zod.nouns.nanoid" | "material.zod.nouns.cuid" | "material.zod.nouns.cuid2" | "material.zod.nouns.duration" | "material.zod.nouns.datetime" | "material.zod.nouns.regex" | "material.zod.nouns.uuid" | "material.zod.nouns.uuidv4" | "material.zod.nouns.uuidv6" | "material.zod.nouns.guid" | "material.zod.nouns.ulid" | "material.zod.nouns.xid" | "material.zod.nouns.ksuid" | "material.zod.nouns.ipv4" | "material.zod.nouns.ipv6" | "material.zod.nouns.mac" | "material.zod.nouns.cidrv4" | "material.zod.nouns.cidrv6" | "material.zod.nouns.base64" | "material.zod.nouns.base64url" | "material.zod.nouns.json_string" | "material.zod.nouns.e164" | "material.zod.nouns.jwt" | "material.zod.nouns.template_literal" | "material.zod.sizing.string.unit" | "material.zod.sizing.string.verb" | "material.zod.sizing.set.unit" | "material.zod.sizing.set.verb" | "material.zod.sizing.array.unit" | "material.zod.sizing.array.verb" | "material.zod.sizing.file.unit" | "material.zod.sizing.file.verb" | "material.pdf-reader.label" | "material.pdf-reader.search" | "material.pdf-reader.error" | "material.pdf-reader.rotate" | "material.pdf-reader.sidebar" | "material.pdf-reader.print" | "material.pdf-reader.zoom-in" | "material.pdf-reader.zoom-out" | "material.pdf-reader.loading" | "material.pdf-reader.empty" | "material.pdf-reader.download" | "material.pdf-reader.fullscreen" | "material.pdf-reader.exit-fullscreen" | "material.pdf-reader.password" | "material.pdf-reader.password-placeholder" | "material.pdf-reader.password-label" | "material.pdf-reader.unlock" | "material.pdf-reader.password-incorrect" | "material.pdf-reader.pages" | "material.pdf-reader.outline" | "material.pdf-reader.outline-empty" | "material.pdf-reader.fit-width" | "material.pdf-reader.fit-page" | "material.pdf-reader.fit-width-full" | "material.pdf-reader.fit-page-full" | "material.pdf-reader.sidebar-toggle" | "material.pdf-reader.previous-page" | "material.pdf-reader.next-page" | "material.pdf-reader.current-page" | "material.pdf-reader.search-shortcut" | "material.pdf-reader.search-next" | "material.pdf-reader.search-prev" | "material.pdf-reader.night" | "material.pdf-reader.day" | "material.pdf-reader.thumbnails" | "material.pdf-reader.go-to-page" | "material.pdf-reader.default-file-name" | "material.pdf-reader.zoom-menu" | "material.pdf-reader.untitled" | "material.tree-select-field.search" | "material.tree-select-field.selected" | "material.tree-select-field.empty" | "material.tree-select-field.placeholder" | "material.image-cropper.title" | "material.image-cropper.cancel" | "material.image-cropper.error" | "material.image-cropper.apply" | "material.image-cropper.zoom" | "material.image-cropper.rotate-left" | "material.image-cropper.rotate-right" | "material.image-cropper.free" | "material.timeline.label" | "material.timeline.empty" | "material.qrcode.label" | "material.barecode.label" | "material.avatar-group.more" | "material.search-field.placeholder" | "material.search-field.clear" | "material.password-field.strong" | "material.password-field.show" | "material.password-field.hide" | "material.password-field.too-weak" | "material.password-field.weak" | "material.password-field.fair" | "material.password-field.very-strong" | "material.stat-card.increase" | "material.stat-card.decrease" | "material.stat-card.unchanged" | "material.color-field.open" | "material.split-button.more" | "material.file-list.label" | "material.file-list.replace" | "material.file-list.empty" | "material.file-list.retry" | "material.file-list.remove" | "material.file-list.download" | "material.inline-edit.cancel" | "material.inline-edit.save" | "material.inline-edit.placeholder" | "material.inline-edit.edit" | "material.number-field.increase" | "material.number-field.decrease" | "material.textarea-field.count" | "material.skeleton.loading" | "material.chip.dismiss" | "material.chip.dismiss-label" | "material.phone-field.search" | "material.phone-field.empty" | "material.phone-field.placeholder" | "material.phone-field.country" | "material.rating-field.star" | "material.theme-toggle.light" | "material.theme-toggle.dark" | "material.theme-toggle.system" | "material.language-switcher.label" | "material.email-field.invalid" | "material.email-field.mailto" | "material.url-field.invalid" | "material.url-field.open" | "material.stepper.error" | "material.stepper.step" | "material.stepper.completed" | "material.location-field.confirm" | "material.location-field.dialog-title" | "material.location-field.placeholder" | "material.combobox-field.empty" | "material.combobox-field.placeholder" | "material.autocomplete.results" | "material.autocomplete.loading" | "material.autocomplete.empty" | "material.autocomplete.add" | "material.autocomplete.search-error" | "material.autocomplete.min-query" | "material.avatar.active" | "material.avatar.offline" | "material.avatar.online" | "material.avatar.away" | "material.avatar.busy" | "material.country-field.placeholder" | "material.duration-field.hours" | "material.duration-field.minutes" | "material.duration-field.hours-label" | "material.duration-field.minutes-label" | "material.count-badge.label" | "material.timezone-field.placeholder" | "material.app-shell.navigation" | "material.app-shell.home" | "material.app-shell.open-menu" | "material.transfer-list.search" | "material.transfer-list.drag" | "material.transfer-list.max" | "material.transfer-list.selected" | "material.transfer-list.select-all" | "material.transfer-list.count" | "material.transfer-list.available" | "material.transfer-list.move-to-selected" | "material.transfer-list.move-all-to-selected" | "material.transfer-list.move-to-available" | "material.transfer-list.move-all-to-available" | "material.transfer-list.move-up" | "material.transfer-list.move-down" | "material.transfer-list.empty-available" | "material.transfer-list.empty-selected" | "material.transfer-list.empty-filter" | "material.transfer-list.locked" | "material.sortable-list.search" | "material.sortable-list.drag" | "material.sortable-list.empty" | "material.sortable-list.move-up" | "material.sortable-list.move-down" | "material.sortable-list.empty-filter" | "material.event-calendar.search" | "material.event-calendar.title" | "material.event-calendar.color" | "material.event-calendar.next" | "material.event-calendar.previous" | "material.event-calendar.drag" | "material.event-calendar.resize" | "material.event-calendar.description" | "material.event-calendar.delete-confirm" | "material.event-calendar.empty" | "material.event-calendar.more" | "material.event-calendar.delete" | "material.event-calendar.add" | "material.event-calendar.day" | "material.event-calendar.today" | "material.event-calendar.month" | "material.event-calendar.week" | "material.event-calendar.workweek" | "material.event-calendar.agenda" | "material.event-calendar.all-day" | "material.event-calendar.events" | "material.event-calendar.new-event" | "material.event-calendar.new-all-day" | "material.event-calendar.pick-date" | "material.event-calendar.no-results" | "material.dnd.drag" | "material.rich-text-editor.blockquote" | "material.rich-text-editor.caption" | "material.rich-text-editor.header" | "material.rich-text-editor.label" | "material.rich-text-editor.link" | "material.rich-text-editor.table" | "material.rich-text-editor.title" | "material.rich-text-editor.content" | "material.rich-text-editor.bold" | "material.rich-text-editor.words" | "material.rich-text-editor.characters" | "material.rich-text-editor.heading" | "material.rich-text-editor.cancel" | "material.rich-text-editor.icon" | "material.rich-text-editor.description" | "material.rich-text-editor.type" | "material.rich-text-editor.orientation" | "material.rich-text-editor.size" | "material.rich-text-editor.emoji" | "material.rich-text-editor.gallery" | "material.rich-text-editor.apply" | "material.rich-text-editor.remove" | "material.rich-text-editor.placeholder" | "material.rich-text-editor.options" | "material.rich-text-editor.add-option" | "material.rich-text-editor.clear" | "material.rich-text-editor.italic" | "material.rich-text-editor.underline" | "material.rich-text-editor.strikethrough" | "material.rich-text-editor.subscript" | "material.rich-text-editor.superscript" | "material.rich-text-editor.code-block" | "material.rich-text-editor.heading-n" | "material.rich-text-editor.font-family" | "material.rich-text-editor.text-color" | "material.rich-text-editor.highlight" | "material.rich-text-editor.pick-color" | "material.rich-text-editor.align-left" | "material.rich-text-editor.align-center" | "material.rich-text-editor.align-right" | "material.rich-text-editor.justify" | "material.rich-text-editor.bullet-list" | "material.rich-text-editor.ordered-list" | "material.rich-text-editor.task-list" | "material.rich-text-editor.horizontal-rule" | "material.rich-text-editor.insert-image" | "material.rich-text-editor.image-url" | "material.rich-text-editor.remove-link" | "material.rich-text-editor.youtube-url" | "material.rich-text-editor.embed-youtube" | "material.rich-text-editor.emoji-picker" | "material.rich-text-editor.emoji-description" | "material.rich-text-editor.no-result" | "material.rich-text-editor.no-commands" | "material.rich-text-editor.insert-table" | "material.rich-text-editor.delete-table" | "material.rich-text-editor.table-properties" | "material.rich-text-editor.rows" | "material.rich-text-editor.columns" | "material.rich-text-editor.insert-before" | "material.rich-text-editor.insert-after" | "material.rich-text-editor.toggle-header-row" | "material.rich-text-editor.toggle-header-column" | "material.rich-text-editor.cell-background" | "material.rich-text-editor.merge-splitting" | "material.rich-text-editor.merge-cells" | "material.rich-text-editor.split-cell" | "material.rich-text-editor.caption-placeholder" | "material.rich-text-editor.caption-alignment" | "material.rich-text-editor.alignment" | "material.rich-text-editor.insert-callout" | "material.rich-text-editor.edit-callout" | "material.rich-text-editor.edit-callout-description" | "material.rich-text-editor.add-description" | "material.rich-text-editor.accordion" | "material.rich-text-editor.edit-item" | "material.rich-text-editor.edit-item-description" | "material.rich-text-editor.remove-item" | "material.rich-text-editor.add-item" | "material.rich-text-editor.action-card" | "material.rich-text-editor.action-card-settings" | "material.rich-text-editor.action-card-settings-description" | "material.rich-text-editor.edit-card" | "material.rich-text-editor.edit-card-description" | "material.rich-text-editor.remove-card" | "material.rich-text-editor.add-card" | "material.rich-text-editor.link-optional" | "material.rich-text-editor.edit-gallery" | "material.rich-text-editor.edit-gallery-description" | "material.rich-text-editor.images" | "material.rich-text-editor.add-image" | "material.rich-text-editor.add-images" | "material.rich-text-editor.alt-text" | "material.rich-text-editor.no-images" | "material.rich-text-editor.select-chips" | "material.rich-text-editor.select-cards" | "material.rich-text-editor.edit-selector" | "material.rich-text-editor.edit-selector-description" | "material.rich-text-editor.selector-settings" | "material.rich-text-editor.selector-settings-description" | "material.rich-text-editor.optional-heading" | "material.rich-text-editor.selection" | "material.rich-text-editor.add-options" | "material.rich-text-editor.edit-option" | "material.rich-text-editor.edit-option-description" | "material.rich-text-editor.remove-option" | "material.rich-text-editor.checkbox-group" | "material.rich-text-editor.edit-checkbox-group" | "material.rich-text-editor.edit-checkbox-group-description" | "material.rich-text-editor.radio-group" | "material.rich-text-editor.edit-radio-group" | "material.rich-text-editor.edit-radio-group-description" | "material.rich-text-editor.font-default" | "material.rich-text-editor.font-sans" | "material.rich-text-editor.font-serif" | "material.rich-text-editor.font-mono" | "material.rich-text-editor.table-align-left" | "material.rich-text-editor.table-align-center" | "material.rich-text-editor.table-align-right" | "material.rich-text-editor.insert-emoji" | "material.rich-text-editor.slash-menu.items.blockquote.title" | "material.rich-text-editor.slash-menu.items.blockquote.description" | "material.rich-text-editor.slash-menu.items.table.title" | "material.rich-text-editor.slash-menu.items.table.description" | "material.rich-text-editor.slash-menu.items.gallery.title" | "material.rich-text-editor.slash-menu.items.gallery.description" | "material.rich-text-editor.slash-menu.items.code-block.title" | "material.rich-text-editor.slash-menu.items.code-block.description" | "material.rich-text-editor.slash-menu.items.bullet-list.title" | "material.rich-text-editor.slash-menu.items.bullet-list.description" | "material.rich-text-editor.slash-menu.items.ordered-list.title" | "material.rich-text-editor.slash-menu.items.ordered-list.description" | "material.rich-text-editor.slash-menu.items.task-list.title" | "material.rich-text-editor.slash-menu.items.task-list.description" | "material.rich-text-editor.slash-menu.items.horizontal-rule.title" | "material.rich-text-editor.slash-menu.items.horizontal-rule.description" | "material.rich-text-editor.slash-menu.items.accordion.title" | "material.rich-text-editor.slash-menu.items.accordion.description" | "material.rich-text-editor.slash-menu.items.action-card.title" | "material.rich-text-editor.slash-menu.items.action-card.description" | "material.rich-text-editor.slash-menu.items.checkbox-group.title" | "material.rich-text-editor.slash-menu.items.checkbox-group.description" | "material.rich-text-editor.slash-menu.items.radio-group.title" | "material.rich-text-editor.slash-menu.items.radio-group.description" | "material.rich-text-editor.slash-menu.items.paragraph.title" | "material.rich-text-editor.slash-menu.items.paragraph.description" | "material.rich-text-editor.slash-menu.items.heading-1.title" | "material.rich-text-editor.slash-menu.items.heading-1.description" | "material.rich-text-editor.slash-menu.items.heading-2.title" | "material.rich-text-editor.slash-menu.items.heading-2.description" | "material.rich-text-editor.slash-menu.items.heading-3.title" | "material.rich-text-editor.slash-menu.items.heading-3.description" | "material.rich-text-editor.slash-menu.items.callout.title" | "material.rich-text-editor.slash-menu.items.callout.description" | "material.rich-text-editor.slash-menu.items.select-chip.title" | "material.rich-text-editor.slash-menu.items.select-chip.description" | "material.rich-text-editor.slash-menu.items.select-card.title" | "material.rich-text-editor.slash-menu.items.select-card.description" | "material.rich-text-editor.slash-menu.groups.basic" | "material.rich-text-editor.slash-menu.groups.insert" | "material.kanban.search" | "material.kanban.drag" | "material.kanban.card-title" | "material.kanban.empty" | "material.kanban.no-results" | "material.kanban.add-card" | "material.kanban.wip" | "material.kanban.drag-column" | "material.kanban.ungrouped" | "material.kanban.collapse-group" | "material.kanban.expand-group" | "material.kanban.collapse-column" | "material.kanban.expand-column" | "material.kanban.new-card" | "material.kanban.subtitle" | "material.kanban.wip-full" | "material.doc.menu" | "material.doc.search" | "material.doc.filter" | "material.doc.next" | "material.doc.previous" | "material.doc.breadcrumb" | "material.doc.see-also" | "material.doc.expand" | "material.doc.collapse" | "material.doc.on-this-page" | "material.doc.edit" | "material.doc.no-results" | "material.doc.search-placeholder" | "material.doc.filter-empty" | "material.doc.search-navigate" | "material.doc.search-select" | "material.doc.search-close" | "material.doc.skip-to-content" | "material.doc.reading-progress" | "material.doc.menu-description" | "material.doc.copy-link" | "material.doc.copied-link" | "material.doc.copy-page" | "material.doc.copy-markdown" | "material.doc.last-updated" | "material.doc.callout.note" | "material.doc.callout.success" | "material.doc.callout.tip" | "material.doc.callout.info" | "material.doc.callout.warning" | "material.doc.callout.danger" | "material.param-table.description" | "material.param-table.name" | "material.param-table.type" | "material.param-table.required" | "material.param-table.default" | "material.calendar.selected" | "material.calendar.today" | "material.calendar.previous-year" | "material.calendar.previous-month" | "material.calendar.next-month" | "material.calendar.next-year" | "material.calendar.previous-years" | "material.calendar.next-years" | "material.calendar.choose-year" | "material.calendar.back-to-days" | "material.spinner.loading" | "material.scroll-to-top.label" | "material.sidebar.toggle" | "material.print.page" | "material.print.page-of" | "material.print.table.total" | "material.print.table.empty" | "material.circular-progress.label" | "material.pane-layout.sheet-title" | "material.time-picker.hours" | "material.time-picker.minutes" | "material.time-picker.am" | "material.time-picker.pm" | "material.date-range-field.presets" | "material.date-range-field.start-time" | "material.date-range-field.end-time" | "material.date-range-field.preset.today" | "material.date-range-field.preset.yesterday" | "material.date-range-field.preset.last-7-days" | "material.date-range-field.preset.last-30-days" | "material.date-range-field.preset.this-month" | "material.date-range-field.preset.last-month" | "material.date-range-field.preset.this-year" | "material.file-preview.label" | "material.file-preview.content" | "material.file-preview.error" | "material.file-preview.loading" | "material.file-preview.download" | "material.file-preview.untitled" | "material.file-preview.truncated">;
28
+ export declare const translate: Translate<"material.scroll-progress" | "material.skip-link" | "material.see-also" | "material.code.copy" | "material.code.language" | "material.code.copied" | "material.code.word-wrap" | "material.map.you-are-here" | "material.map.zoom-in" | "material.map.zoom-out" | "material.map.my-position" | "material.map.preview" | "material.map.preview-named" | "material.pagination.label" | "material.pagination.next" | "material.pagination.previous" | "material.table.loading" | "material.table.pagination.label" | "material.table.pagination.next" | "material.table.pagination.previous" | "material.table.pagination.go-to-next-page" | "material.table.pagination.go-to-previous-page" | "material.table.pagination.go-to-first-page" | "material.table.pagination.go-to-last-page" | "material.table.pagination.rows-per-page" | "material.table.pagination.rows-selected" | "material.table.pagination.page-of" | "material.table.pagination.range" | "material.table.pagination.range-open" | "material.table.pagination.range-label" | "material.table.pagination.total" | "material.table.pagination.selected" | "material.table.labels.desc" | "material.table.labels.view" | "material.table.labels.hide" | "material.table.labels.asc" | "material.table.labels.actions" | "material.table.labels.delete-selected-rows" | "material.table.labels.toggle-columns" | "material.table.labels.no-data" | "material.table.labels.select-all" | "material.table.labels.select-row" | "material.table.labels.toggle-row" | "material.table.labels.scroll-region" | "material.table.delete-confirm.title" | "material.table.delete-confirm.cancel" | "material.table.delete-confirm.description" | "material.table.delete-confirm.confirm" | "material.filter.title" | "material.filter.reset" | "material.filter.max" | "material.filter.min" | "material.filter.trigger" | "material.filter.active-count" | "material.filter.apply" | "material.filter.clear-all" | "material.filter.empty" | "material.filter.more" | "material.filter.value.yes" | "material.filter.value.no" | "material.filter.value.from" | "material.filter.value.until" | "material.filter.value.up-to" | "material.filter.presets.cancel" | "material.filter.presets.load" | "material.filter.presets.submit" | "material.filter.presets.description" | "material.filter.presets.name" | "material.filter.presets.saved" | "material.filter.presets.manage" | "material.filter.presets.set-default" | "material.filter.presets.unset-default" | "material.filter.presets.delete" | "material.filter.presets.create" | "material.filter.presets.limit" | "material.filter.presets.dialog-title" | "material.filter.presets.dialog-description" | "material.filter.presets.name-placeholder" | "material.filter.presets.usage" | "material.filter.presets.description-placeholder" | "material.banner.dismiss" | "material.slider.value" | "material.slider.minimum" | "material.slider.maximum" | "material.tree.label" | "material.tree.expand" | "material.tree.collapse" | "material.command.title" | "material.command.description" | "material.copy.copy" | "material.copy.copied" | "material.copy.failed" | "material.emoji.search" | "material.emoji.empty" | "material.emoji.picker" | "material.emoji.pick" | "material.emoji.groups.all" | "material.emoji.groups.recent" | "material.emoji.groups.general" | "material.emoji.groups.people_body" | "material.emoji.groups.components" | "material.emoji.groups.animals_nature" | "material.emoji.groups.food_drink" | "material.emoji.groups.travel_places" | "material.emoji.groups.activities" | "material.emoji.groups.objects" | "material.emoji.groups.symbols" | "material.emoji.groups.flags" | "material.carousel.next" | "material.carousel.previous" | "material.carousel.slide" | "material.carousel.roledescription" | "material.pagination.page" | "material.pagination.more" | "material.pagination.first" | "material.pagination.last" | "material.breadcrumb.label" | "material.breadcrumb.more" | "material.empty-state.search.title" | "material.empty-state.search.description" | "material.empty-state.empty.title" | "material.empty-state.empty.description" | "material.empty-state.not-found.title" | "material.empty-state.not-found.description" | "material.empty-state.unauthorized.title" | "material.empty-state.unauthorized.description" | "material.empty-state.generic.title" | "material.empty-state.generic.description" | "material.empty-state.offline.title" | "material.empty-state.offline.description" | "material.empty-state.maintenance.title" | "material.empty-state.maintenance.description" | "material.confirm-dialog.cancel" | "material.confirm-dialog.confirm" | "material.confirm-dialog.failed" | "material.confirm-dialog.processing" | "material.confirm-dialog.form-failed" | "material.mentions.empty" | "material.cards.vs" | "material.cards.total" | "material.cards.per-month" | "material.cards.rating" | "material.cards.unread" | "material.metrics.of-target" | "material.metrics.of-limit" | "material.metrics.this-period" | "material.metrics.last-period" | "material.metrics.weekdays" | "material.pager.next" | "material.pager.previous" | "material.toc.on-this-page" | "material.upload.failed" | "material.upload.retry" | "material.upload.remove" | "material.upload.replace-named" | "material.upload.invalid-type" | "material.upload.too-large" | "material.upload.max-files" | "material.upload.dropzone.max-files" | "material.upload.dropzone.idle" | "material.upload.dropzone.at-capacity" | "material.upload.dropzone.max-size" | "material.upload.dropzone.files-selected" | "material.image-field.replace" | "material.image-field.retry" | "material.image-field.remove" | "material.image-field.choose" | "material.language.fr" | "material.language.en" | "material.buttons.close" | "material.buttons.delete" | "material.buttons.load-more" | "material.buttons.ok" | "material.buttons.add" | "material.buttons.save" | "material.json-viewer.invalid" | "material.json-viewer.items" | "material.json-viewer.empty" | "material.json-viewer.expand" | "material.json-viewer.collapse" | "material.chat.send" | "material.chat.copy" | "material.chat.empty" | "material.chat.retry" | "material.chat.attach" | "material.chat.remove-attachment" | "material.chat.scroll-to-latest" | "material.chat.add-reaction" | "material.chat.attachment-type" | "material.chat.attachment-max-files" | "material.chat.attachment-max-size" | "material.chat.placeholder" | "material.chat.message" | "material.chat.typing" | "material.chat.empty-description" | "material.chat.back" | "material.chat.pick-conversation" | "material.chat.pick-conversation-description" | "material.chat.send-failed" | "material.gallery.label" | "material.gallery.select" | "material.gallery.repeat" | "material.gallery.next" | "material.gallery.previous" | "material.gallery.close" | "material.gallery.play" | "material.gallery.open" | "material.gallery.zoom-in" | "material.gallery.zoom-out" | "material.gallery.selected" | "material.gallery.empty" | "material.gallery.more" | "material.gallery.delete" | "material.gallery.empty-description" | "material.gallery.of" | "material.gallery.repeat-off" | "material.gallery.download" | "material.gallery.clear-selection" | "material.notifications.label" | "material.notifications.search" | "material.notifications.empty" | "material.notifications.dismiss" | "material.notifications.empty-description" | "material.notifications.empty-unread" | "material.notifications.empty-unread-description" | "material.notifications.read-all" | "material.notifications.filter-all" | "material.notifications.filter-unread" | "material.notifications.filter-category-all" | "material.notifications.dismiss-item" | "material.education.progress" | "material.education.results" | "material.education.true" | "material.education.false" | "material.education.next" | "material.education.previous" | "material.education.submit" | "material.education.empty" | "material.education.retry" | "material.education.answer-placeholder" | "material.education.expected" | "material.education.answered" | "material.education.score" | "material.education.quiz" | "material.education.review" | "material.education.kind-choice" | "material.education.kind-multi" | "material.education.kind-boolean" | "material.education.kind-text" | "material.stx-player.audio" | "material.stx-player.label" | "material.stx-player.video" | "material.stx-player.repeat" | "material.stx-player.next" | "material.stx-player.previous" | "material.stx-player.error" | "material.stx-player.pause" | "material.stx-player.play" | "material.stx-player.loading" | "material.stx-player.retry" | "material.stx-player.empty-description" | "material.stx-player.repeat-off" | "material.stx-player.mute" | "material.stx-player.unmute" | "material.stx-player.volume" | "material.stx-player.fullscreen" | "material.stx-player.exit-fullscreen" | "material.stx-player.pip" | "material.stx-player.exit-pip" | "material.stx-player.captions" | "material.stx-player.captions-off" | "material.stx-player.playback-rate" | "material.stx-player.queue" | "material.stx-player.now-playing" | "material.stx-player.buffering" | "material.stx-player.empty-title" | "material.stx-player.normal" | "material.camera.stop" | "material.camera.capture" | "material.camera.captured" | "material.camera.start" | "material.attributes.buttons.add" | "material.attributes.buttons.save" | "material.attributes.form.label.label" | "material.attributes.form.label.placeholder" | "material.attributes.form.description.label" | "material.attributes.form.description.placeholder" | "material.attributes.form.name.label" | "material.attributes.form.name.placeholder" | "material.attributes.form.type.label" | "material.attributes.form.type.placeholder" | "material.attributes.form.default-value.label" | "material.attributes.form.default-value.placeholder" | "material.attributes.form.priority.label" | "material.attributes.form.priority.placeholder" | "material.attributes.form.options.label" | "material.attributes.form.options.placeholder" | "material.attributes.form.unit.label" | "material.attributes.form.unit.placeholder" | "material.attributes.buttons.details" | "material.attributes.buttons.cancel" | "material.attributes.buttons.remove" | "material.attributes.buttons.edit" | "material.attributes.buttons.add-option" | "material.attributes.labels.attributes" | "material.attributes.labels.new-attribute" | "material.attributes.messages.dialog" | "material.attributes.messages.empty" | "material.attributes.messages.create-succeeded" | "material.attributes.messages.update-succeeded" | "material.attributes.messages.delete-succeeded" | "material.attributes.messages.add-first" | "material.attributes.types.string" | "material.attributes.types.number" | "material.attributes.types.boolean" | "material.attributes.types.select" | "material.attributes.types.time" | "material.attributes.types.text" | "material.attributes.types.color" | "material.attributes.types.date" | "material.attributes.types.datetime" | "material.attributes.types.multi-select" | "material.attributes.types.rich-text" | "material.attributes.fields.label" | "material.attributes.fields.description" | "material.attributes.fields.name" | "material.attributes.fields.type" | "material.attributes.fields.default-value" | "material.attributes.fields.priority" | "material.attributes.fields.options" | "material.attributes.fields.unit" | "material.contacts.buttons.add" | "material.contacts.buttons.save" | "material.contacts.buttons.cancel" | "material.contacts.buttons.remove" | "material.contacts.buttons.edit" | "material.contacts.messages.dialog" | "material.contacts.messages.add-first" | "material.contacts.fields.label" | "material.contacts.fields.type" | "material.contacts.labels.contacts" | "material.contacts.messages.no-contacts" | "material.contacts.types.email" | "material.contacts.types.phone" | "material.contacts.types.fax" | "material.contacts.types.mobile" | "material.contacts.types.website" | "material.contacts.fields.value" | "material.contacts.placeholders.label" | "material.contacts.placeholders.email" | "material.contacts.placeholders.type" | "material.contacts.placeholders.value" | "material.contacts.placeholders.phone" | "material.contacts.placeholders.fax" | "material.contacts.placeholders.mobile" | "material.contacts.placeholders.website" | "material.opening-hours.buttons.add" | "material.opening-hours.buttons.save" | "material.opening-hours.buttons.cancel" | "material.opening-hours.buttons.remove" | "material.opening-hours.buttons.edit" | "material.opening-hours.messages.dialog" | "material.opening-hours.messages.add-first" | "material.opening-hours.buttons.add-all" | "material.opening-hours.labels.closed-all-day" | "material.opening-hours.labels.open-hours" | "material.opening-hours.messages.no-hours" | "material.opening-hours.fields.dayOfWeek" | "material.opening-hours.fields.openTime" | "material.opening-hours.fields.closeTime" | "material.opening-hours.fields.isClosed" | "material.opening-hours.placeholders.dayOfWeek" | "material.opening-hours.placeholders.openTime" | "material.opening-hours.placeholders.closeTime" | "material.opening-hours.days.0" | "material.opening-hours.days.1" | "material.opening-hours.days.2" | "material.opening-hours.days.3" | "material.opening-hours.days.4" | "material.opening-hours.days.5" | "material.opening-hours.days.6" | "material.opening-hours.daysShort.0" | "material.opening-hours.daysShort.1" | "material.opening-hours.daysShort.2" | "material.opening-hours.daysShort.3" | "material.opening-hours.daysShort.4" | "material.opening-hours.daysShort.5" | "material.opening-hours.daysShort.6" | "material.postal-address.buttons.add" | "material.postal-address.buttons.save" | "material.postal-address.buttons.cancel" | "material.postal-address.buttons.remove" | "material.postal-address.buttons.edit" | "material.postal-address.messages.dialog" | "material.postal-address.messages.empty" | "material.postal-address.messages.add-first" | "material.postal-address.labels.address" | "material.postal-address.fields.region" | "material.postal-address.fields.street" | "material.postal-address.fields.locality" | "material.postal-address.fields.postalCode" | "material.postal-address.fields.country" | "material.postal-address.placeholders.region" | "material.postal-address.placeholders.street" | "material.postal-address.placeholders.locality" | "material.postal-address.placeholders.postalCode" | "material.postal-address.placeholders.country" | "material.toast.buttons.close" | "material.toast.operations.error.title" | "material.toast.operations.loading.title" | "material.toast.operations.success.title" | "material.zod.required" | "material.zod.invalid_value_single" | "material.zod.invalid_value_multiple" | "material.zod.too_big_inclusive" | "material.zod.too_big_exclusive" | "material.zod.too_big_no_unit_inclusive" | "material.zod.too_big_no_unit_exclusive" | "material.zod.too_small_inclusive" | "material.zod.too_small_exclusive" | "material.zod.too_small_no_unit_inclusive" | "material.zod.too_small_no_unit_exclusive" | "material.zod.too_big_string_inclusive" | "material.zod.too_big_string_exclusive" | "material.zod.too_small_string_inclusive" | "material.zod.too_small_string_exclusive" | "material.zod.not_multiple_of" | "material.zod.unrecognized_keys_single" | "material.zod.unrecognized_keys_multiple" | "material.zod.invalid_key" | "material.zod.invalid_union" | "material.zod.invalid_element" | "material.zod.default" | "material.zod.invalid_type.string" | "material.zod.invalid_type.number" | "material.zod.invalid_type.bigint" | "material.zod.invalid_type.boolean" | "material.zod.invalid_type.symbol" | "material.zod.invalid_type.undefined" | "material.zod.invalid_type.object" | "material.zod.invalid_type.function" | "material.zod.invalid_type.date" | "material.zod.invalid_type.default" | "material.zod.invalid_type.array" | "material.zod.invalid_type.null" | "material.zod.invalid_type.enum" | "material.zod.invalid_format.includes" | "material.zod.invalid_format.default" | "material.zod.invalid_format.starts_with" | "material.zod.invalid_format.ends_with" | "material.zod.invalid_format.regex" | "material.zod.nouns.time" | "material.zod.nouns.url" | "material.zod.nouns.email" | "material.zod.nouns.date" | "material.zod.nouns.emoji" | "material.zod.nouns.nanoid" | "material.zod.nouns.cuid" | "material.zod.nouns.cuid2" | "material.zod.nouns.duration" | "material.zod.nouns.datetime" | "material.zod.nouns.regex" | "material.zod.nouns.uuid" | "material.zod.nouns.uuidv4" | "material.zod.nouns.uuidv6" | "material.zod.nouns.guid" | "material.zod.nouns.ulid" | "material.zod.nouns.xid" | "material.zod.nouns.ksuid" | "material.zod.nouns.ipv4" | "material.zod.nouns.ipv6" | "material.zod.nouns.mac" | "material.zod.nouns.cidrv4" | "material.zod.nouns.cidrv6" | "material.zod.nouns.base64" | "material.zod.nouns.base64url" | "material.zod.nouns.json_string" | "material.zod.nouns.e164" | "material.zod.nouns.jwt" | "material.zod.nouns.template_literal" | "material.zod.sizing.string.unit" | "material.zod.sizing.string.verb" | "material.zod.sizing.set.unit" | "material.zod.sizing.set.verb" | "material.zod.sizing.array.unit" | "material.zod.sizing.array.verb" | "material.zod.sizing.file.unit" | "material.zod.sizing.file.verb" | "material.pdf-reader.label" | "material.pdf-reader.search" | "material.pdf-reader.error" | "material.pdf-reader.rotate" | "material.pdf-reader.sidebar" | "material.pdf-reader.print" | "material.pdf-reader.zoom-in" | "material.pdf-reader.zoom-out" | "material.pdf-reader.loading" | "material.pdf-reader.empty" | "material.pdf-reader.download" | "material.pdf-reader.fullscreen" | "material.pdf-reader.exit-fullscreen" | "material.pdf-reader.password" | "material.pdf-reader.password-placeholder" | "material.pdf-reader.password-label" | "material.pdf-reader.unlock" | "material.pdf-reader.password-incorrect" | "material.pdf-reader.pages" | "material.pdf-reader.outline" | "material.pdf-reader.outline-empty" | "material.pdf-reader.fit-width" | "material.pdf-reader.fit-page" | "material.pdf-reader.fit-width-full" | "material.pdf-reader.fit-page-full" | "material.pdf-reader.sidebar-toggle" | "material.pdf-reader.previous-page" | "material.pdf-reader.next-page" | "material.pdf-reader.current-page" | "material.pdf-reader.search-shortcut" | "material.pdf-reader.search-next" | "material.pdf-reader.search-prev" | "material.pdf-reader.night" | "material.pdf-reader.day" | "material.pdf-reader.thumbnails" | "material.pdf-reader.go-to-page" | "material.pdf-reader.default-file-name" | "material.pdf-reader.zoom-menu" | "material.pdf-reader.untitled" | "material.tree-select-field.search" | "material.tree-select-field.selected" | "material.tree-select-field.empty" | "material.tree-select-field.placeholder" | "material.image-cropper.title" | "material.image-cropper.cancel" | "material.image-cropper.error" | "material.image-cropper.apply" | "material.image-cropper.zoom" | "material.image-cropper.rotate-left" | "material.image-cropper.rotate-right" | "material.image-cropper.free" | "material.timeline.label" | "material.timeline.empty" | "material.qrcode.label" | "material.barecode.label" | "material.avatar-group.more" | "material.search-field.placeholder" | "material.search-field.clear" | "material.password-field.strong" | "material.password-field.show" | "material.password-field.hide" | "material.password-field.too-weak" | "material.password-field.weak" | "material.password-field.fair" | "material.password-field.very-strong" | "material.stat-card.increase" | "material.stat-card.decrease" | "material.stat-card.unchanged" | "material.color-field.open" | "material.split-button.more" | "material.file-list.label" | "material.file-list.replace" | "material.file-list.empty" | "material.file-list.retry" | "material.file-list.remove" | "material.file-list.download" | "material.inline-edit.cancel" | "material.inline-edit.save" | "material.inline-edit.placeholder" | "material.inline-edit.edit" | "material.number-field.increase" | "material.number-field.decrease" | "material.textarea-field.count" | "material.skeleton.loading" | "material.chip.dismiss" | "material.chip.dismiss-label" | "material.phone-field.search" | "material.phone-field.empty" | "material.phone-field.placeholder" | "material.phone-field.country" | "material.rating-field.star" | "material.theme-toggle.light" | "material.theme-toggle.dark" | "material.theme-toggle.system" | "material.language-switcher.label" | "material.email-field.invalid" | "material.email-field.mailto" | "material.url-field.invalid" | "material.url-field.open" | "material.stepper.error" | "material.stepper.step" | "material.stepper.completed" | "material.location-field.confirm" | "material.location-field.dialog-title" | "material.location-field.placeholder" | "material.combobox-field.empty" | "material.combobox-field.placeholder" | "material.autocomplete.results" | "material.autocomplete.loading" | "material.autocomplete.empty" | "material.autocomplete.add" | "material.autocomplete.search-error" | "material.autocomplete.min-query" | "material.avatar.active" | "material.avatar.offline" | "material.avatar.online" | "material.avatar.away" | "material.avatar.busy" | "material.country-field.placeholder" | "material.duration-field.hours" | "material.duration-field.minutes" | "material.duration-field.hours-label" | "material.duration-field.minutes-label" | "material.count-badge.label" | "material.timezone-field.placeholder" | "material.app-shell.navigation" | "material.app-shell.home" | "material.app-shell.open-menu" | "material.transfer-list.search" | "material.transfer-list.drag" | "material.transfer-list.max" | "material.transfer-list.selected" | "material.transfer-list.select-all" | "material.transfer-list.count" | "material.transfer-list.available" | "material.transfer-list.move-to-selected" | "material.transfer-list.move-all-to-selected" | "material.transfer-list.move-to-available" | "material.transfer-list.move-all-to-available" | "material.transfer-list.move-up" | "material.transfer-list.move-down" | "material.transfer-list.empty-available" | "material.transfer-list.empty-selected" | "material.transfer-list.empty-filter" | "material.transfer-list.locked" | "material.sortable-list.search" | "material.sortable-list.drag" | "material.sortable-list.empty" | "material.sortable-list.move-up" | "material.sortable-list.move-down" | "material.sortable-list.empty-filter" | "material.event-calendar.search" | "material.event-calendar.title" | "material.event-calendar.color" | "material.event-calendar.next" | "material.event-calendar.previous" | "material.event-calendar.drag" | "material.event-calendar.resize" | "material.event-calendar.description" | "material.event-calendar.delete-confirm" | "material.event-calendar.empty" | "material.event-calendar.more" | "material.event-calendar.delete" | "material.event-calendar.add" | "material.event-calendar.day" | "material.event-calendar.today" | "material.event-calendar.month" | "material.event-calendar.week" | "material.event-calendar.workweek" | "material.event-calendar.agenda" | "material.event-calendar.all-day" | "material.event-calendar.events" | "material.event-calendar.new-event" | "material.event-calendar.new-all-day" | "material.event-calendar.pick-date" | "material.event-calendar.no-results" | "material.dnd.drag" | "material.rich-text-editor.blockquote" | "material.rich-text-editor.caption" | "material.rich-text-editor.header" | "material.rich-text-editor.label" | "material.rich-text-editor.link" | "material.rich-text-editor.table" | "material.rich-text-editor.title" | "material.rich-text-editor.content" | "material.rich-text-editor.bold" | "material.rich-text-editor.words" | "material.rich-text-editor.characters" | "material.rich-text-editor.heading" | "material.rich-text-editor.cancel" | "material.rich-text-editor.icon" | "material.rich-text-editor.description" | "material.rich-text-editor.type" | "material.rich-text-editor.orientation" | "material.rich-text-editor.size" | "material.rich-text-editor.emoji" | "material.rich-text-editor.gallery" | "material.rich-text-editor.apply" | "material.rich-text-editor.remove" | "material.rich-text-editor.placeholder" | "material.rich-text-editor.options" | "material.rich-text-editor.add-option" | "material.rich-text-editor.clear" | "material.rich-text-editor.italic" | "material.rich-text-editor.underline" | "material.rich-text-editor.strikethrough" | "material.rich-text-editor.subscript" | "material.rich-text-editor.superscript" | "material.rich-text-editor.code-block" | "material.rich-text-editor.heading-n" | "material.rich-text-editor.font-family" | "material.rich-text-editor.text-color" | "material.rich-text-editor.highlight" | "material.rich-text-editor.pick-color" | "material.rich-text-editor.align-left" | "material.rich-text-editor.align-center" | "material.rich-text-editor.align-right" | "material.rich-text-editor.justify" | "material.rich-text-editor.bullet-list" | "material.rich-text-editor.ordered-list" | "material.rich-text-editor.task-list" | "material.rich-text-editor.horizontal-rule" | "material.rich-text-editor.insert-image" | "material.rich-text-editor.image-url" | "material.rich-text-editor.remove-link" | "material.rich-text-editor.youtube-url" | "material.rich-text-editor.embed-youtube" | "material.rich-text-editor.emoji-picker" | "material.rich-text-editor.emoji-description" | "material.rich-text-editor.no-result" | "material.rich-text-editor.no-commands" | "material.rich-text-editor.insert-table" | "material.rich-text-editor.delete-table" | "material.rich-text-editor.table-properties" | "material.rich-text-editor.rows" | "material.rich-text-editor.columns" | "material.rich-text-editor.insert-before" | "material.rich-text-editor.insert-after" | "material.rich-text-editor.toggle-header-row" | "material.rich-text-editor.toggle-header-column" | "material.rich-text-editor.cell-background" | "material.rich-text-editor.merge-splitting" | "material.rich-text-editor.merge-cells" | "material.rich-text-editor.split-cell" | "material.rich-text-editor.caption-placeholder" | "material.rich-text-editor.caption-alignment" | "material.rich-text-editor.alignment" | "material.rich-text-editor.insert-callout" | "material.rich-text-editor.edit-callout" | "material.rich-text-editor.edit-callout-description" | "material.rich-text-editor.add-description" | "material.rich-text-editor.accordion" | "material.rich-text-editor.edit-item" | "material.rich-text-editor.edit-item-description" | "material.rich-text-editor.remove-item" | "material.rich-text-editor.add-item" | "material.rich-text-editor.action-card" | "material.rich-text-editor.action-card-settings" | "material.rich-text-editor.action-card-settings-description" | "material.rich-text-editor.edit-card" | "material.rich-text-editor.edit-card-description" | "material.rich-text-editor.remove-card" | "material.rich-text-editor.add-card" | "material.rich-text-editor.link-optional" | "material.rich-text-editor.edit-gallery" | "material.rich-text-editor.edit-gallery-description" | "material.rich-text-editor.images" | "material.rich-text-editor.add-image" | "material.rich-text-editor.add-images" | "material.rich-text-editor.alt-text" | "material.rich-text-editor.no-images" | "material.rich-text-editor.select-chips" | "material.rich-text-editor.select-cards" | "material.rich-text-editor.edit-selector" | "material.rich-text-editor.edit-selector-description" | "material.rich-text-editor.selector-settings" | "material.rich-text-editor.selector-settings-description" | "material.rich-text-editor.optional-heading" | "material.rich-text-editor.selection" | "material.rich-text-editor.add-options" | "material.rich-text-editor.edit-option" | "material.rich-text-editor.edit-option-description" | "material.rich-text-editor.remove-option" | "material.rich-text-editor.checkbox-group" | "material.rich-text-editor.edit-checkbox-group" | "material.rich-text-editor.edit-checkbox-group-description" | "material.rich-text-editor.radio-group" | "material.rich-text-editor.edit-radio-group" | "material.rich-text-editor.edit-radio-group-description" | "material.rich-text-editor.font-default" | "material.rich-text-editor.font-sans" | "material.rich-text-editor.font-serif" | "material.rich-text-editor.font-mono" | "material.rich-text-editor.table-align-left" | "material.rich-text-editor.table-align-center" | "material.rich-text-editor.table-align-right" | "material.rich-text-editor.insert-emoji" | "material.rich-text-editor.slash-menu.items.blockquote.title" | "material.rich-text-editor.slash-menu.items.blockquote.description" | "material.rich-text-editor.slash-menu.items.table.title" | "material.rich-text-editor.slash-menu.items.table.description" | "material.rich-text-editor.slash-menu.items.gallery.title" | "material.rich-text-editor.slash-menu.items.gallery.description" | "material.rich-text-editor.slash-menu.items.code-block.title" | "material.rich-text-editor.slash-menu.items.code-block.description" | "material.rich-text-editor.slash-menu.items.bullet-list.title" | "material.rich-text-editor.slash-menu.items.bullet-list.description" | "material.rich-text-editor.slash-menu.items.ordered-list.title" | "material.rich-text-editor.slash-menu.items.ordered-list.description" | "material.rich-text-editor.slash-menu.items.task-list.title" | "material.rich-text-editor.slash-menu.items.task-list.description" | "material.rich-text-editor.slash-menu.items.horizontal-rule.title" | "material.rich-text-editor.slash-menu.items.horizontal-rule.description" | "material.rich-text-editor.slash-menu.items.accordion.title" | "material.rich-text-editor.slash-menu.items.accordion.description" | "material.rich-text-editor.slash-menu.items.action-card.title" | "material.rich-text-editor.slash-menu.items.action-card.description" | "material.rich-text-editor.slash-menu.items.checkbox-group.title" | "material.rich-text-editor.slash-menu.items.checkbox-group.description" | "material.rich-text-editor.slash-menu.items.radio-group.title" | "material.rich-text-editor.slash-menu.items.radio-group.description" | "material.rich-text-editor.slash-menu.items.paragraph.title" | "material.rich-text-editor.slash-menu.items.paragraph.description" | "material.rich-text-editor.slash-menu.items.heading-1.title" | "material.rich-text-editor.slash-menu.items.heading-1.description" | "material.rich-text-editor.slash-menu.items.heading-2.title" | "material.rich-text-editor.slash-menu.items.heading-2.description" | "material.rich-text-editor.slash-menu.items.heading-3.title" | "material.rich-text-editor.slash-menu.items.heading-3.description" | "material.rich-text-editor.slash-menu.items.callout.title" | "material.rich-text-editor.slash-menu.items.callout.description" | "material.rich-text-editor.slash-menu.items.select-chip.title" | "material.rich-text-editor.slash-menu.items.select-chip.description" | "material.rich-text-editor.slash-menu.items.select-card.title" | "material.rich-text-editor.slash-menu.items.select-card.description" | "material.rich-text-editor.slash-menu.groups.basic" | "material.rich-text-editor.slash-menu.groups.insert" | "material.kanban.search" | "material.kanban.drag" | "material.kanban.card-title" | "material.kanban.empty" | "material.kanban.no-results" | "material.kanban.add-card" | "material.kanban.wip" | "material.kanban.drag-column" | "material.kanban.ungrouped" | "material.kanban.collapse-group" | "material.kanban.expand-group" | "material.kanban.collapse-column" | "material.kanban.expand-column" | "material.kanban.new-card" | "material.kanban.subtitle" | "material.kanban.wip-full" | "material.doc.menu" | "material.doc.search" | "material.doc.filter" | "material.doc.next" | "material.doc.previous" | "material.doc.breadcrumb" | "material.doc.see-also" | "material.doc.expand" | "material.doc.collapse" | "material.doc.on-this-page" | "material.doc.edit" | "material.doc.no-results" | "material.doc.search-placeholder" | "material.doc.filter-empty" | "material.doc.search-navigate" | "material.doc.search-select" | "material.doc.search-close" | "material.doc.skip-to-content" | "material.doc.reading-progress" | "material.doc.menu-description" | "material.doc.copy-link" | "material.doc.copied-link" | "material.doc.copy-page" | "material.doc.copy-markdown" | "material.doc.last-updated" | "material.doc.callout.note" | "material.doc.callout.success" | "material.doc.callout.tip" | "material.doc.callout.info" | "material.doc.callout.warning" | "material.doc.callout.danger" | "material.param-table.description" | "material.param-table.name" | "material.param-table.type" | "material.param-table.required" | "material.param-table.default" | "material.calendar.selected" | "material.calendar.today" | "material.calendar.previous-year" | "material.calendar.previous-month" | "material.calendar.next-month" | "material.calendar.next-year" | "material.calendar.previous-years" | "material.calendar.next-years" | "material.calendar.choose-year" | "material.calendar.back-to-days" | "material.spinner.loading" | "material.scroll-to-top.label" | "material.sidebar.toggle" | "material.print.page" | "material.print.page-of" | "material.print.table.total" | "material.print.table.empty" | "material.circular-progress.label" | "material.pane-layout.sheet-title" | "material.time-picker.hours" | "material.time-picker.minutes" | "material.time-picker.am" | "material.time-picker.pm" | "material.date-range-field.presets" | "material.date-range-field.start-time" | "material.date-range-field.end-time" | "material.date-range-field.preset.today" | "material.date-range-field.preset.yesterday" | "material.date-range-field.preset.last-7-days" | "material.date-range-field.preset.last-30-days" | "material.date-range-field.preset.this-month" | "material.date-range-field.preset.last-month" | "material.date-range-field.preset.this-year" | "material.file-preview.label" | "material.file-preview.content" | "material.file-preview.error" | "material.file-preview.loading" | "material.file-preview.download" | "material.file-preview.untitled" | "material.file-preview.truncated" | "material.enrolment-secret.manual" | "material.enrolment-secret.copy" | "material.enrolment-secret.copied" | "material.enrolment-secret.qr-label" | "material.enrolment-secret.open-app" | "material.enrolment-secret.secret-label" | "material.recovery-codes.title" | "material.recovery-codes.done" | "material.recovery-codes.list" | "material.recovery-codes.copy" | "material.recovery-codes.print" | "material.recovery-codes.copied" | "material.recovery-codes.saved" | "material.recovery-codes.download" | "material.recovery-codes.warning" | "material.recovery-codes.copy-failed" | "material.recovery-codes.saved-required">;