@nxgt/material-vue 0.34.0 → 0.36.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 (113) hide show
  1. package/CHANGELOG.md +102 -0
  2. package/README.md +11 -5
  3. package/dist/{Button-DEA5W6O3.js → Button-CurFF4Zt.js} +1 -1
  4. package/dist/{HoverCardTrigger-CjSteFgk.js → HoverCardTrigger-C3r0oc5d.js} +2 -2
  5. package/dist/{camera-C52IuvMH.js → camera-CaQlF4JJ.js} +4 -4
  6. package/dist/components/components.css +1 -0
  7. package/dist/components/print-only.css +44 -0
  8. package/dist/{components-DFEmacXJ.js → components-D56FEfTa.js} +23597 -23041
  9. package/dist/components.js +8 -8
  10. package/dist/composables.js +35 -25
  11. package/dist/dnd.js +1 -1
  12. package/dist/{form-scope-CaYs-o2w.js → form-scope-DOL9MJL3.js} +1 -1
  13. package/dist/{i18n-provider-CiVi05fs.js → i18n-provider-B2q6vp6H.js} +1 -1
  14. package/dist/i18n.js +4 -4
  15. package/dist/{icon-button-CWcOcNHr.js → icon-button-CIUc1bEp.js} +1 -1
  16. package/dist/lib/components/index.d.ts +1 -0
  17. package/dist/lib/components/ui/actions/button/Button.vue.d.ts +1 -1
  18. package/dist/lib/components/ui/actions/button/button.variants.d.ts +1 -1
  19. package/dist/lib/components/ui/actions/copy-button/copy-button.vue.d.ts +1 -1
  20. package/dist/lib/components/ui/actions/copy-button/use-copy-status.d.ts +14 -0
  21. package/dist/lib/components/ui/actions/icon-button/icon-button.variants.d.ts +1 -1
  22. package/dist/lib/components/ui/actions/icon-button/icon-button.vue.d.ts +1 -1
  23. package/dist/lib/components/ui/actions/scroll-to-top/scroll-to-top.vue.d.ts +1 -1
  24. package/dist/lib/components/ui/display/badge/index.d.ts +1 -1
  25. package/dist/lib/components/ui/display/cards/cards.gallery.d.ts +3 -3
  26. package/dist/lib/components/ui/display/chip/chip.utils.d.ts +9 -0
  27. package/dist/lib/components/ui/display/chip/chip.vue.d.ts +29 -16
  28. package/dist/lib/components/ui/display/chip/index.d.ts +1 -0
  29. package/dist/lib/components/ui/display/count-badge/count-badge.vue.d.ts +1 -1
  30. package/dist/lib/components/ui/display/enrolment-secret/enrolment-secret.vue.d.ts +30 -0
  31. package/dist/lib/components/ui/display/enrolment-secret/index.d.ts +3 -0
  32. package/dist/lib/components/ui/display/index.d.ts +2 -0
  33. package/dist/lib/components/ui/display/recovery-codes/index.d.ts +5 -0
  34. package/dist/lib/components/ui/display/recovery-codes/partials/recovery-codes-actions.vue.d.ts +11 -0
  35. package/dist/lib/components/ui/display/recovery-codes/partials/recovery-codes-confirm.vue.d.ts +15 -0
  36. package/dist/lib/components/ui/display/recovery-codes/partials/recovery-codes-list.vue.d.ts +7 -0
  37. package/dist/lib/components/ui/display/recovery-codes/recovery-codes.vue.d.ts +56 -0
  38. package/dist/lib/components/ui/display/recovery-codes/types.d.ts +23 -0
  39. package/dist/lib/components/ui/display/recovery-codes/use-recovery-codes-labels.d.ts +18 -0
  40. package/dist/lib/components/ui/feedback/alert/alert.vue.d.ts +1 -1
  41. package/dist/lib/components/ui/feedback/circular-progress/circular-progress.vue.d.ts +2 -2
  42. package/dist/lib/components/ui/feedback/spinner/spinner.variants.d.ts +1 -1
  43. package/dist/lib/components/ui/feedback/spinner/spinner.vue.d.ts +1 -1
  44. package/dist/lib/components/ui/fields/contacts/consts.d.ts +1 -1
  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.vue.d.ts +37 -0
  47. package/dist/lib/components/ui/fields/form-section/index.d.ts +3 -0
  48. package/dist/lib/components/ui/fields/index.d.ts +1 -0
  49. package/dist/lib/components/ui/fields/rating-field/rating-field.variants.d.ts +1 -1
  50. package/dist/lib/components/ui/fields/rating-field/rating-field.vue.d.ts +1 -1
  51. package/dist/lib/components/ui/forms/form-scope-schema.d.ts +8 -2
  52. package/dist/lib/components/ui/forms/index.d.ts +1 -0
  53. package/dist/lib/components/ui/forms/use-code-resolver.d.ts +45 -0
  54. package/dist/lib/components/ui/layout/app-shell/activity-content.vue.d.ts +1 -1
  55. package/dist/lib/components/ui/layout/auth-card/auth-card-notice.vue.d.ts +18 -0
  56. package/dist/lib/components/ui/layout/auth-card/auth-card.vue.d.ts +45 -0
  57. package/dist/lib/components/ui/layout/auth-card/index.d.ts +3 -0
  58. package/dist/lib/components/ui/layout/auth-card/types.d.ts +2 -0
  59. package/dist/lib/components/ui/layout/index.d.ts +1 -0
  60. package/dist/lib/components/ui/selection/select-field/select-field.vue.d.ts +2 -0
  61. package/dist/lib/composables/index.d.ts +2 -0
  62. package/dist/lib/composables/use-focus-on-mount.d.ts +23 -0
  63. package/dist/lib/composables/use-submit-once.d.ts +33 -0
  64. package/dist/lib/i18n/resources/en/en.d.ts +21 -0
  65. package/dist/lib/i18n/resources/en/material.json.d.ts +22 -1
  66. package/dist/lib/i18n/resources/fr/fr.d.ts +21 -0
  67. package/dist/lib/i18n/resources/fr/material.json.d.ts +22 -1
  68. package/dist/lib/i18n/resources/resources.d.ts +42 -0
  69. package/dist/lib/i18n/translator.d.ts +1 -1
  70. package/dist/lib/lib/index.d.ts +1 -0
  71. package/dist/lib/nuxt/auto-imports.d.ts +1 -1
  72. package/dist/lib/nuxt/component-names.d.ts +1 -1
  73. package/dist/lib.js +59 -104
  74. package/dist/main.js +17 -17
  75. package/dist/map.js +4 -4
  76. package/dist/material-vue.css +1 -1
  77. package/dist/{pdf-outline-sidebar-C_iJ8gqD.js → pdf-outline-sidebar-Gmdd3RNG.js} +2 -2
  78. package/dist/{pdf-page-DOiJlWQn.js → pdf-page-C3XhLcrp.js} +1 -1
  79. package/dist/{pdf-page-list-BTmUd7Ga.js → pdf-page-list-BTIb5Y-Y.js} +2 -2
  80. package/dist/{pdf-reader-CEMMLJnB.js → pdf-reader-CX2owreo.js} +8 -8
  81. package/dist/{pdf-sidebar-KLd76E5S.js → pdf-sidebar-BmAJ8Q_m.js} +3 -3
  82. package/dist/{pdf-thumbnail-sidebar-B4JkT_LV.js → pdf-thumbnail-sidebar-C04OeZ9M.js} +3 -3
  83. package/dist/{pdf-toolbar-Da6UMt1O.js → pdf-toolbar-zI0_eNXV.js} +4 -4
  84. package/dist/pdf.js +2 -2
  85. package/dist/print-format.utils-keJqahvw.js +187 -0
  86. package/dist/{sortable-provider-Cvpqk8tp.js → sortable-provider-DMu8DL2z.js} +2 -2
  87. package/dist/{stored-language-GDRdeYD8.js → stored-language-dtksFoGO.js} +44 -2
  88. package/dist/{stx-player-B6-PSgzP.js → stx-player-BUo2Vs0j.js} +5 -5
  89. package/dist/{translator-BDFEmlcL.js → translator-DqiGrSH_.js} +1 -1
  90. package/dist/{use-heading-spy-ClhUg50z.js → use-heading-spy-BZ7ctGZ5.js} +58 -48
  91. package/dist/{use-material-translation-CaHS6oZz.js → use-material-translation-DRB6oPdF.js} +3 -3
  92. package/docs/components/README.md +3 -3
  93. package/docs/components/data-display.md +126 -2
  94. package/docs/components/data-table-filter-and-lists.md +2 -1
  95. package/docs/components/form-fields.md +81 -0
  96. package/docs/components/navigation-and-layout.md +64 -0
  97. package/docs/components/selection-and-choice.md +2 -1
  98. package/docs/guides/forms.md +120 -0
  99. package/docs/guides/helpers.md +85 -0
  100. package/docs/guides/i18n.md +17 -0
  101. package/docs/guides/printing.md +27 -0
  102. package/docs/previews/data-display-enrolmentsecret.webp +0 -0
  103. package/docs/previews/data-display-recoverycodes.webp +0 -0
  104. package/docs/previews/form-fields-formsection.webp +0 -0
  105. package/docs/previews/navigation-layout-authcard.webp +0 -0
  106. package/docs/roadmap.md +48 -15
  107. package/docs/troubleshooting.md +92 -0
  108. package/lib/components/components.css +1 -0
  109. package/lib/components/print-only.css +44 -0
  110. package/lib/nuxt/auto-imports.ts +2 -0
  111. package/lib/nuxt/component-names.ts +4 -0
  112. package/package.json +2 -2
  113. package/dist/print-format.utils-DpBtUJvL.js +0 -138
@@ -10,6 +10,7 @@ export * from './chip';
10
10
  export * from './code';
11
11
  export * from './count-badge';
12
12
  export * from './description';
13
+ export * from './enrolment-secret';
13
14
  export * from './entity-header';
14
15
  export * from './event-chip';
15
16
  export * from './figure';
@@ -18,6 +19,7 @@ export * from './markdown';
18
19
  export * from './metrics';
19
20
  export * from './param-table';
20
21
  export * from './qrcode';
22
+ export * from './recovery-codes';
21
23
  export * from './stat-card';
22
24
  export * from './status-indicator';
23
25
  export * from './summary-data';
@@ -0,0 +1,5 @@
1
+ export type { DownloadTextOptions, RecoveryCodesTextOptions, } from '@nxgt/material-core/two-factor';
2
+ export { downloadText, recoveryCodesText, } from '@nxgt/material-core/two-factor';
3
+ export type { RecoveryCodesProps } from './recovery-codes.vue';
4
+ export { default as RecoveryCodes } from './recovery-codes.vue';
5
+ export type { RecoveryCodesLabels, RecoveryCodesTitleElement } from './types';
@@ -0,0 +1,11 @@
1
+ import { RecoveryCodesLabels } from '../types';
2
+ type __VLS_Props = {
3
+ codes: readonly string[];
4
+ labels: RecoveryCodesLabels;
5
+ fileName: string;
6
+ fileHeading: string;
7
+ fileNote?: string;
8
+ };
9
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -0,0 +1,15 @@
1
+ import { RecoveryCodesLabels } from '../types';
2
+ type __VLS_Props = {
3
+ labels: RecoveryCodesLabels;
4
+ saved?: boolean;
5
+ onDone?: () => void;
6
+ };
7
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
8
+ "update:saved": (saved: boolean) => any;
9
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
10
+ "onUpdate:saved"?: ((saved: boolean) => any) | undefined;
11
+ }>, {
12
+ saved: boolean;
13
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
14
+ declare const _default: typeof __VLS_export;
15
+ export default _default;
@@ -0,0 +1,7 @@
1
+ type __VLS_Props = {
2
+ codes: readonly string[];
3
+ label: string;
4
+ };
5
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -0,0 +1,56 @@
1
+ import { HTMLAttributes } from 'vue';
2
+ import { RecoveryCodesLabels, RecoveryCodesTitleElement } from './types';
3
+ export type RecoveryCodesProps = {
4
+ /** The one-time codes, in the order they are shown and saved. */
5
+ codes: readonly string[];
6
+ /** The card's heading ("Recovery codes"); the `title` slot replaces it. */
7
+ title?: string;
8
+ /** The heading element; `'h2'` by default. */
9
+ titleAs?: RecoveryCodesTitleElement;
10
+ /** A line under the title; the `description` slot replaces it. */
11
+ description?: string;
12
+ /** A warning above the codes, a built-in one by default; `false` hides it. Not printed. */
13
+ warning?: string | false;
14
+ /** Moves the focus to the title once shown. Default `true`. */
15
+ focusTitle?: boolean;
16
+ /** The downloaded file's name. Default `"recovery-codes.txt"`. */
17
+ fileName?: string;
18
+ /** The file's first line; the title, else "Recovery codes". */
19
+ fileHeading?: string;
20
+ /** The file's second line; the warning's text. */
21
+ fileNote?: string;
22
+ /**
23
+ * Called by the "Done" button (`@done` binds it), which is shown only when
24
+ * this is given and calls it only once the confirmation is ticked.
25
+ */
26
+ onDone?: () => void;
27
+ /** The confirmation (`v-model:saved`); uncontrolled when left out. */
28
+ saved?: boolean;
29
+ /** Overrides for the built-in strings. */
30
+ labels?: Partial<RecoveryCodesLabels>;
31
+ class?: HTMLAttributes['class'];
32
+ };
33
+ type __VLS_Slots = {
34
+ title?: () => unknown;
35
+ description?: () => unknown;
36
+ warning?: () => unknown;
37
+ };
38
+ declare const __VLS_base: import('vue').DefineComponent<RecoveryCodesProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
39
+ "update:saved": (saved: boolean) => any;
40
+ }, string, import('vue').PublicProps, Readonly<RecoveryCodesProps> & Readonly<{
41
+ "onUpdate:saved"?: ((saved: boolean) => any) | undefined;
42
+ }>, {
43
+ saved: boolean;
44
+ warning: string | false;
45
+ fileName: string;
46
+ titleAs: RecoveryCodesTitleElement;
47
+ focusTitle: boolean;
48
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
49
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
50
+ declare const _default: typeof __VLS_export;
51
+ export default _default;
52
+ type __VLS_WithSlots<T, S> = T & {
53
+ new (): {
54
+ $slots: S;
55
+ };
56
+ };
@@ -0,0 +1,23 @@
1
+ /** The heading levels the title may take. */
2
+ export type RecoveryCodesTitleElement = 'h2' | 'h3' | 'h4';
3
+ /** Every built-in string of `RecoveryCodes`, each overridable. */
4
+ export type RecoveryCodesLabels = {
5
+ /** Names the list of codes. "Recovery codes". */
6
+ list: string;
7
+ /** The copy button. "Copy codes". */
8
+ copy: string;
9
+ /** Announced once the codes are on the clipboard. "Codes copied". */
10
+ copied: string;
11
+ /** Announced when the clipboard refused them. "Copy failed". */
12
+ copyFailed: string;
13
+ /** The download button. "Download". */
14
+ download: string;
15
+ /** The print button. "Print". */
16
+ print: string;
17
+ /** The confirmation's label. "I have saved these codes". */
18
+ saved: string;
19
+ /** Under the confirmation once "Done" was pressed before it was ticked. */
20
+ savedRequired: string;
21
+ /** The button that calls `onDone`. "Done". */
22
+ done: string;
23
+ };
@@ -0,0 +1,18 @@
1
+ import { MaybeRefOrGetter } from 'vue';
2
+ import { RecoveryCodesLabels } from './types';
3
+ /** The built-in title and warning, and the labels with their overrides. */
4
+ export declare function useRecoveryCodesLabels(overrides: MaybeRefOrGetter<Partial<RecoveryCodesLabels> | undefined>): import('vue').ComputedRef<{
5
+ labels: {
6
+ list: string;
7
+ copy: string;
8
+ copied: string;
9
+ copyFailed: string;
10
+ download: string;
11
+ print: string;
12
+ saved: string;
13
+ savedRequired: string;
14
+ done: string;
15
+ };
16
+ title: string;
17
+ warning: string;
18
+ }>;
@@ -1,7 +1,7 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  import { HTMLAttributes } from 'vue';
3
3
  declare const variants: (props?: ({
4
- variant?: "error" | "success" | "primary" | "secondary" | "info" | "warning" | "foreground" | null | undefined;
4
+ variant?: "error" | "success" | "warning" | "primary" | "secondary" | "info" | "foreground" | null | undefined;
5
5
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
6
  export type AlertProps = {
7
7
  class?: HTMLAttributes['class'];
@@ -1,7 +1,7 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  import { HTMLAttributes } from 'vue';
3
3
  declare const variants: (props?: ({
4
- variant?: "default" | "error" | "success" | "primary" | "secondary" | "info" | "warning" | null | undefined;
4
+ variant?: "default" | "error" | "success" | "warning" | "primary" | "secondary" | "info" | null | undefined;
5
5
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
6
  export type CircularProgressProps = {
7
7
  value: number;
@@ -18,7 +18,7 @@ export type CircularProgressProps = {
18
18
  variant?: VariantProps<typeof variants>['variant'];
19
19
  };
20
20
  declare const __VLS_export: import('vue').DefineComponent<CircularProgressProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<CircularProgressProps> & Readonly<{}>, {
21
- variant: "default" | "error" | "success" | "primary" | "secondary" | "info" | "warning" | null;
21
+ variant: "default" | "error" | "success" | "warning" | "primary" | "secondary" | "info" | null;
22
22
  size: number;
23
23
  circleStrokeWidth: number;
24
24
  progressStrokeWidth: number;
@@ -1,6 +1,6 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  export declare const spinnerVariants: (props?: ({
3
3
  variant?: "1" | "2" | "3" | "4" | null | undefined;
4
- color?: "default" | "error" | "success" | "light" | "primary" | "secondary" | "info" | "warning" | null | undefined;
4
+ color?: "default" | "error" | "success" | "light" | "warning" | "primary" | "secondary" | "info" | null | undefined;
5
5
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
6
  export type SpinnerVariants = VariantProps<typeof spinnerVariants>;
@@ -7,7 +7,7 @@ export type SpinnerProps = {
7
7
  };
8
8
  declare const __VLS_export: import('vue').DefineComponent<SpinnerProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SpinnerProps> & Readonly<{}>, {
9
9
  variant: "1" | "2" | "3" | "4" | null;
10
- color: "default" | "error" | "success" | "light" | "primary" | "secondary" | "info" | "warning" | null;
10
+ color: "default" | "error" | "success" | "light" | "warning" | "primary" | "secondary" | "info" | null;
11
11
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
12
12
  declare const _default: typeof __VLS_export;
13
13
  export default _default;
@@ -5,4 +5,4 @@ export declare const EMPTY_CONTACT: Contact;
5
5
  export declare const CONTACT_TYPE_ICONS: Record<ContactType, IconName>;
6
6
  export declare const CONTACT_VALUE_PLACEHOLDERS: Record<string, readonly [MaterialLocaleKey, string]>;
7
7
  export declare const DEFAULT_CONTACT_VALUE_PLACEHOLDER: readonly ["material.contacts.placeholders.value", "Enter contact value"];
8
- export declare function contactValuePlaceholder(type: ContactType | string | null): readonly ["material.scroll-progress" | "material.skip-link" | "material.see-also" | "material.code.language" | "material.code.copy" | "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.previous" | "material.pagination.next" | "material.table.loading" | "material.table.pagination.label" | "material.table.pagination.previous" | "material.table.pagination.next" | "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.asc" | "material.table.labels.hide" | "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.description" | "material.table.delete-confirm.confirm" | "material.table.delete-confirm.cancel" | "material.filter.title" | "material.filter.max" | "material.filter.min" | "material.filter.trigger" | "material.filter.active-count" | "material.filter.apply" | "material.filter.reset" | "material.filter.clear-all" | "material.filter.empty" | "material.filter.more" | "material.filter.value.from" | "material.filter.value.yes" | "material.filter.value.no" | "material.filter.value.until" | "material.filter.value.up-to" | "material.filter.presets.description" | "material.filter.presets.name" | "material.filter.presets.cancel" | "material.filter.presets.load" | "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.filter.presets.submit" | "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.slide" | "material.carousel.previous" | "material.carousel.next" | "material.carousel.roledescription" | "material.pagination.more" | "material.pagination.page" | "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.command.title" | "material.command.description" | "material.confirm-dialog.confirm" | "material.confirm-dialog.cancel" | "material.confirm-dialog.processing" | "material.confirm-dialog.failed" | "material.confirm-dialog.form-failed" | "material.location-field.confirm" | "material.location-field.dialog-title" | "material.location-field.placeholder" | "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.previous" | "material.pager.next" | "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.en" | "material.language.fr" | "material.buttons.delete" | "material.buttons.load-more" | "material.buttons.ok" | "material.buttons.add" | "material.buttons.save" | "material.buttons.close" | "material.json-viewer.items" | "material.json-viewer.empty" | "material.json-viewer.expand" | "material.json-viewer.collapse" | "material.json-viewer.invalid" | "material.chat.copy" | "material.chat.empty" | "material.chat.placeholder" | "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.send" | "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.zoom-in" | "material.gallery.zoom-out" | "material.gallery.previous" | "material.gallery.next" | "material.gallery.selected" | "material.gallery.empty" | "material.gallery.more" | "material.gallery.delete" | "material.gallery.close" | "material.gallery.empty-description" | "material.gallery.of" | "material.gallery.open" | "material.gallery.repeat-off" | "material.gallery.play" | "material.gallery.download" | "material.gallery.clear-selection" | "material.notifications.label" | "material.notifications.search" | "material.notifications.empty" | "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" | "material.notifications.dismiss-item" | "material.education.progress" | "material.education.previous" | "material.education.next" | "material.education.empty" | "material.education.submit" | "material.education.retry" | "material.education.true" | "material.education.false" | "material.education.answer-placeholder" | "material.education.expected" | "material.education.answered" | "material.education.score" | "material.education.results" | "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.loading" | "material.stx-player.previous" | "material.stx-player.next" | "material.stx-player.retry" | "material.stx-player.empty-description" | "material.stx-player.repeat-off" | "material.stx-player.play" | "material.stx-player.pause" | "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.error" | "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.type.label" | "material.attributes.form.type.placeholder" | "material.attributes.form.description.label" | "material.attributes.form.description.placeholder" | "material.attributes.form.name.label" | "material.attributes.form.name.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.type" | "material.attributes.fields.description" | "material.attributes.fields.name" | "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.phone" | "material.contacts.types.email" | "material.contacts.types.fax" | "material.contacts.types.mobile" | "material.contacts.types.website" | "material.contacts.fields.value" | "material.contacts.placeholders.label" | "material.contacts.placeholders.type" | "material.contacts.placeholders.value" | "material.contacts.placeholders.phone" | "material.contacts.placeholders.email" | "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.street" | "material.postal-address.fields.locality" | "material.postal-address.fields.region" | "material.postal-address.fields.postalCode" | "material.postal-address.fields.country" | "material.postal-address.placeholders.street" | "material.postal-address.placeholders.locality" | "material.postal-address.placeholders.region" | "material.postal-address.placeholders.postalCode" | "material.postal-address.placeholders.country" | "material.toast.buttons.close" | "material.toast.operations.loading.title" | "material.toast.operations.error.title" | "material.toast.operations.success.title" | "material.zod.default" | "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.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.default" | "material.zod.invalid_type.date" | "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.emoji" | "material.zod.nouns.nanoid" | "material.zod.nouns.cuid" | "material.zod.nouns.cuid2" | "material.zod.nouns.date" | "material.zod.nouns.duration" | "material.zod.nouns.datetime" | "material.zod.nouns.email" | "material.zod.nouns.regex" | "material.zod.nouns.url" | "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.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.error" | "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.label" | "material.tree.expand" | "material.tree.collapse" | "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.apply" | "material.image-cropper.error" | "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.copy.copy" | "material.copy.copied" | "material.copy.failed" | "material.qrcode.label" | "material.barecode.label" | "material.banner.dismiss" | "material.avatar-group.more" | "material.search-field.placeholder" | "material.search-field.clear" | "material.password-field.strong" | "material.password-field.hide" | "material.password-field.show" | "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.placeholder" | "material.inline-edit.save" | "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.combobox-field.empty" | "material.combobox-field.placeholder" | "material.autocomplete.loading" | "material.autocomplete.empty" | "material.autocomplete.add" | "material.autocomplete.results" | "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.home" | "material.app-shell.open-menu" | "material.app-shell.navigation" | "material.transfer-list.search" | "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.transfer-list.drag" | "material.sortable-list.search" | "material.sortable-list.empty" | "material.sortable-list.move-up" | "material.sortable-list.move-down" | "material.sortable-list.empty-filter" | "material.sortable-list.drag" | "material.event-calendar.title" | "material.event-calendar.search" | "material.event-calendar.description" | "material.event-calendar.color" | "material.event-calendar.delete-confirm" | "material.event-calendar.previous" | "material.event-calendar.next" | "material.event-calendar.empty" | "material.event-calendar.more" | "material.event-calendar.delete" | "material.event-calendar.add" | "material.event-calendar.day" | "material.event-calendar.drag" | "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.resize" | "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.bold" | "material.rich-text-editor.type" | "material.rich-text-editor.description" | "material.rich-text-editor.icon" | "material.rich-text-editor.font-family" | "material.rich-text-editor.orientation" | "material.rich-text-editor.emoji" | "material.rich-text-editor.characters" | "material.rich-text-editor.words" | "material.rich-text-editor.gallery" | "material.rich-text-editor.cancel" | "material.rich-text-editor.apply" | "material.rich-text-editor.placeholder" | "material.rich-text-editor.remove" | "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" | "material.rich-text-editor.heading-n" | "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.content" | "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.size" | "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.card-title" | "material.kanban.empty" | "material.kanban.drag" | "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.filter" | "material.doc.search" | "material.doc.breadcrumb" | "material.doc.see-also" | "material.doc.previous" | "material.doc.next" | "material.doc.on-this-page" | "material.doc.expand" | "material.doc.collapse" | "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.param-table.default" | "material.param-table.type" | "material.param-table.description" | "material.param-table.name" | "material.param-table.required" | "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.slider.value" | "material.slider.minimum" | "material.slider.maximum" | "material.scroll-to-top.label" | "material.sidebar.toggle" | "material.print.page-of" | "material.print.page" | "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.loading" | "material.file-preview.download" | "material.file-preview.error" | "material.file-preview.untitled" | "material.file-preview.content" | "material.file-preview.truncated", string];
8
+ export declare function contactValuePlaceholder(type: ContactType | string | null): readonly ["material.scroll-progress" | "material.skip-link" | "material.see-also" | "material.code.language" | "material.code.copy" | "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.previous" | "material.pagination.next" | "material.table.loading" | "material.table.pagination.label" | "material.table.pagination.previous" | "material.table.pagination.next" | "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.asc" | "material.table.labels.hide" | "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.description" | "material.table.delete-confirm.confirm" | "material.table.delete-confirm.cancel" | "material.filter.title" | "material.filter.max" | "material.filter.min" | "material.filter.trigger" | "material.filter.active-count" | "material.filter.apply" | "material.filter.reset" | "material.filter.clear-all" | "material.filter.empty" | "material.filter.more" | "material.filter.value.from" | "material.filter.value.yes" | "material.filter.value.no" | "material.filter.value.until" | "material.filter.value.up-to" | "material.filter.presets.description" | "material.filter.presets.name" | "material.filter.presets.cancel" | "material.filter.presets.load" | "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.filter.presets.submit" | "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.slide" | "material.carousel.previous" | "material.carousel.next" | "material.carousel.roledescription" | "material.pagination.more" | "material.pagination.page" | "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.command.title" | "material.command.description" | "material.confirm-dialog.confirm" | "material.confirm-dialog.cancel" | "material.confirm-dialog.processing" | "material.confirm-dialog.failed" | "material.confirm-dialog.form-failed" | "material.location-field.confirm" | "material.location-field.dialog-title" | "material.location-field.placeholder" | "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.previous" | "material.pager.next" | "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.en" | "material.language.fr" | "material.buttons.delete" | "material.buttons.load-more" | "material.buttons.ok" | "material.buttons.add" | "material.buttons.save" | "material.buttons.close" | "material.json-viewer.items" | "material.json-viewer.empty" | "material.json-viewer.expand" | "material.json-viewer.collapse" | "material.json-viewer.invalid" | "material.chat.copy" | "material.chat.empty" | "material.chat.placeholder" | "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.send" | "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.zoom-in" | "material.gallery.zoom-out" | "material.gallery.previous" | "material.gallery.next" | "material.gallery.selected" | "material.gallery.empty" | "material.gallery.more" | "material.gallery.delete" | "material.gallery.close" | "material.gallery.empty-description" | "material.gallery.of" | "material.gallery.open" | "material.gallery.repeat-off" | "material.gallery.play" | "material.gallery.download" | "material.gallery.clear-selection" | "material.notifications.label" | "material.notifications.search" | "material.notifications.empty" | "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" | "material.notifications.dismiss-item" | "material.education.progress" | "material.education.previous" | "material.education.next" | "material.education.empty" | "material.education.submit" | "material.education.retry" | "material.education.true" | "material.education.false" | "material.education.answer-placeholder" | "material.education.expected" | "material.education.answered" | "material.education.score" | "material.education.results" | "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.loading" | "material.stx-player.previous" | "material.stx-player.next" | "material.stx-player.retry" | "material.stx-player.empty-description" | "material.stx-player.repeat-off" | "material.stx-player.play" | "material.stx-player.pause" | "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.error" | "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.type.label" | "material.attributes.form.type.placeholder" | "material.attributes.form.description.label" | "material.attributes.form.description.placeholder" | "material.attributes.form.name.label" | "material.attributes.form.name.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.type" | "material.attributes.fields.description" | "material.attributes.fields.name" | "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.phone" | "material.contacts.types.email" | "material.contacts.types.fax" | "material.contacts.types.mobile" | "material.contacts.types.website" | "material.contacts.fields.value" | "material.contacts.placeholders.label" | "material.contacts.placeholders.type" | "material.contacts.placeholders.value" | "material.contacts.placeholders.phone" | "material.contacts.placeholders.email" | "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.street" | "material.postal-address.fields.locality" | "material.postal-address.fields.region" | "material.postal-address.fields.postalCode" | "material.postal-address.fields.country" | "material.postal-address.placeholders.street" | "material.postal-address.placeholders.locality" | "material.postal-address.placeholders.region" | "material.postal-address.placeholders.postalCode" | "material.postal-address.placeholders.country" | "material.toast.buttons.close" | "material.toast.operations.loading.title" | "material.toast.operations.error.title" | "material.toast.operations.success.title" | "material.zod.default" | "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.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.default" | "material.zod.invalid_type.date" | "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.emoji" | "material.zod.nouns.nanoid" | "material.zod.nouns.cuid" | "material.zod.nouns.cuid2" | "material.zod.nouns.date" | "material.zod.nouns.duration" | "material.zod.nouns.datetime" | "material.zod.nouns.email" | "material.zod.nouns.regex" | "material.zod.nouns.url" | "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.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.error" | "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.label" | "material.tree.expand" | "material.tree.collapse" | "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.apply" | "material.image-cropper.error" | "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.copy.copy" | "material.copy.copied" | "material.copy.failed" | "material.qrcode.label" | "material.barecode.label" | "material.banner.dismiss" | "material.avatar-group.more" | "material.search-field.placeholder" | "material.search-field.clear" | "material.password-field.strong" | "material.password-field.hide" | "material.password-field.show" | "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.placeholder" | "material.inline-edit.save" | "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.combobox-field.empty" | "material.combobox-field.placeholder" | "material.autocomplete.loading" | "material.autocomplete.empty" | "material.autocomplete.add" | "material.autocomplete.results" | "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.home" | "material.app-shell.open-menu" | "material.app-shell.navigation" | "material.transfer-list.search" | "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.transfer-list.drag" | "material.sortable-list.search" | "material.sortable-list.empty" | "material.sortable-list.move-up" | "material.sortable-list.move-down" | "material.sortable-list.empty-filter" | "material.sortable-list.drag" | "material.event-calendar.title" | "material.event-calendar.search" | "material.event-calendar.description" | "material.event-calendar.color" | "material.event-calendar.delete-confirm" | "material.event-calendar.previous" | "material.event-calendar.next" | "material.event-calendar.empty" | "material.event-calendar.more" | "material.event-calendar.delete" | "material.event-calendar.add" | "material.event-calendar.day" | "material.event-calendar.drag" | "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.resize" | "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.bold" | "material.rich-text-editor.type" | "material.rich-text-editor.description" | "material.rich-text-editor.icon" | "material.rich-text-editor.font-family" | "material.rich-text-editor.orientation" | "material.rich-text-editor.emoji" | "material.rich-text-editor.characters" | "material.rich-text-editor.words" | "material.rich-text-editor.gallery" | "material.rich-text-editor.cancel" | "material.rich-text-editor.apply" | "material.rich-text-editor.placeholder" | "material.rich-text-editor.remove" | "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" | "material.rich-text-editor.heading-n" | "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.content" | "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.size" | "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.card-title" | "material.kanban.empty" | "material.kanban.drag" | "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.filter" | "material.doc.search" | "material.doc.breadcrumb" | "material.doc.see-also" | "material.doc.previous" | "material.doc.next" | "material.doc.on-this-page" | "material.doc.expand" | "material.doc.collapse" | "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.param-table.default" | "material.param-table.type" | "material.param-table.description" | "material.param-table.name" | "material.param-table.required" | "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.slider.value" | "material.slider.minimum" | "material.slider.maximum" | "material.scroll-to-top.label" | "material.sidebar.toggle" | "material.print.page-of" | "material.print.page" | "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.loading" | "material.file-preview.download" | "material.file-preview.error" | "material.file-preview.untitled" | "material.file-preview.content" | "material.file-preview.truncated" | "material.enrolment-secret.copy" | "material.enrolment-secret.copied" | "material.enrolment-secret.qr-label" | "material.enrolment-secret.open-app" | "material.enrolment-secret.manual" | "material.enrolment-secret.secret-label" | "material.recovery-codes.title" | "material.recovery-codes.done" | "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.list" | "material.recovery-codes.copy-failed" | "material.recovery-codes.saved-required", string];
@@ -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,37 @@
1
+ import { HTMLAttributes } from 'vue';
2
+ import { FormSectionTitleElement } from './form-section-classes';
3
+ export type FormSectionProps = {
4
+ /**
5
+ * The section's heading; the `title` slot replaces it. Give one or the
6
+ * other: the group is named by it.
7
+ */
8
+ title?: string;
9
+ /**
10
+ * The heading element; `'h2'` by default (a section under the page's
11
+ * `h1`). Pass `'h3'` when the form already sits under an `h2`.
12
+ */
13
+ titleAs?: FormSectionTitleElement;
14
+ /** A line under the title, tied to the group with `aria-describedby`; the `description` slot replaces it. */
15
+ description?: string;
16
+ /** A rule above the section when it follows another FormSection. Default `true`. */
17
+ separated?: boolean;
18
+ class?: HTMLAttributes['class'];
19
+ };
20
+ type __VLS_Slots = {
21
+ default?: () => unknown;
22
+ title?: () => unknown;
23
+ description?: () => unknown;
24
+ actions?: () => unknown;
25
+ };
26
+ declare const __VLS_base: import('vue').DefineComponent<FormSectionProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<FormSectionProps> & Readonly<{}>, {
27
+ titleAs: FormSectionTitleElement;
28
+ separated: boolean;
29
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
30
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
31
+ declare const _default: typeof __VLS_export;
32
+ export default _default;
33
+ type __VLS_WithSlots<T, S> = T & {
34
+ new (): {
35
+ $slots: S;
36
+ };
37
+ };
@@ -0,0 +1,3 @@
1
+ export type { FormSectionProps } from './form-section.vue';
2
+ export { default as FormSection } from './form-section.vue';
3
+ export type { FormSectionTitleElement } from './form-section-classes';
@@ -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,5 +1,5 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  export declare const ratingColor: (props?: ({
3
- color?: "default" | "error" | "success" | "primary" | "secondary" | "info" | "warning" | null | undefined;
3
+ color?: "default" | "error" | "success" | "warning" | "primary" | "secondary" | "info" | null | undefined;
4
4
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
5
5
  export type RatingColor = VariantProps<typeof ratingColor>;
@@ -20,7 +20,7 @@ declare const __VLS_export: import('vue').DefineComponent<RatingFieldProps, {},
20
20
  }, string, import('vue').PublicProps, Readonly<RatingFieldProps> & Readonly<{
21
21
  "onUpdate:modelValue"?: ((value: number) => any) | undefined;
22
22
  }>, {
23
- color: "default" | "error" | "success" | "primary" | "secondary" | "info" | "warning" | null;
23
+ color: "default" | "error" | "success" | "warning" | "primary" | "secondary" | "info" | null;
24
24
  max: number;
25
25
  allowClear: boolean;
26
26
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -1,5 +1,6 @@
1
- import { TypedSchema } from 'vee-validate';
2
- type StandardIssue = {
1
+ import { TypedSchema, TypedSchemaError } from 'vee-validate';
2
+ /** A Standard Schema issue: its message, and the path of the field it is about. */
3
+ export type StandardIssue = {
3
4
  readonly message: string;
4
5
  readonly path?: ReadonlyArray<PropertyKey | {
5
6
  readonly key: PropertyKey;
@@ -40,4 +41,9 @@ export type FormScopeSlotProps<Input> = {
40
41
  };
41
42
  /** A Standard Schema as vee-validate's typed schema; a typed schema as it is. */
42
43
  export declare function toFormScopeSchema<Input, Output>(schema: FormScopeSchema<Input, Output>): TypedSchema<Input, Output>;
44
+ /**
45
+ * Standard Schema issues (zod's included) as vee-validate's errors: one
46
+ * entry per field path, its messages in order.
47
+ */
48
+ export declare function toTypedSchemaErrors(issues: ReadonlyArray<StandardIssue>): TypedSchemaError[];
43
49
  export {};
@@ -0,0 +1 @@
1
+ export * from './use-code-resolver';
@@ -0,0 +1,45 @@
1
+ import { CodeIssue } from '@nxgt/material-core/code-errors';
2
+ import { TypedSchema } from 'vee-validate';
3
+ import { ComputedRef, MaybeRefOrGetter } from 'vue';
4
+ import { z } from 'zod';
5
+ import { Language, Translate } from '../../../i18n/types';
6
+ export { type CodeErrorMap, type CodeIssue, createCodeErrorMap, defaultCodeOf, isEmptyRequired, } from '@nxgt/material-core/code-errors';
7
+ export type CodeResolverOptions = {
8
+ /**
9
+ * The app's translator, `createTranslator(mergeResources(resources,
10
+ * appResources))`: it words the codes (`translate(code, params,
11
+ * language)`; a key it returns verbatim has no words) and is handed to
12
+ * `zodLocaleError`, so the app's `material.zod.*` overrides apply. Without
13
+ * it, every issue is worded by the package's own zod messages.
14
+ */
15
+ translate?: Translate<any>;
16
+ /**
17
+ * Which code an issue carries. Defaults to `defaultCodeOf`: a custom
18
+ * issue's `params.code`.
19
+ */
20
+ codeOf?: (issue: CodeIssue) => string | undefined;
21
+ /**
22
+ * The language to word the errors in (a ref or a getter follows it).
23
+ * Defaults to `provideI18n`'s, else what `zodLocaleError` reads by default
24
+ * (the stored language).
25
+ */
26
+ language?: MaybeRefOrGetter<Language | undefined>;
27
+ };
28
+ /**
29
+ * vee-validate's typed schema for a zod 4 `schema`, whose errors are worded
30
+ * in the page's language: a refinement carrying a code in `params.code`
31
+ * (`.refine(isFree, { params: { code: 'errors.taken' } })`) reads as the
32
+ * app's words for that code, and every other issue as the package's zod
33
+ * messages (`zodLocaleError`) — zod's own are English only.
34
+ *
35
+ * It is a computed: pass it as it is to `useForm({ validationSchema })`,
36
+ * which takes a ref and, when it changes, re-validates the fields already
37
+ * validated — so switching the language re-words the errors on screen.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * const validationSchema = useCodeResolver(schema, { translate });
42
+ * const { handleSubmit } = useForm({ validationSchema });
43
+ * ```
44
+ */
45
+ export declare function useCodeResolver<Input, Output>(schema: z.ZodType<Output, Input>, options?: CodeResolverOptions): ComputedRef<TypedSchema<Input, Output>>;
@@ -19,8 +19,8 @@ type __VLS_Slots = {} & {
19
19
  default?: (props: typeof __VLS_11) => any;
20
20
  };
21
21
  declare const __VLS_base: import('vue').DefineComponent<ActivityContentProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ActivityContentProps> & Readonly<{}>, {
22
- hideHeader: boolean;
23
22
  titleAs: ActivityContentTitleElement;
23
+ hideHeader: boolean;
24
24
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
25
25
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
26
26
  declare const _default: typeof __VLS_export;