@dynamicforms/vuetify-inputs 0.11.7 → 0.13.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.
package/dist/index.d.ts CHANGED
@@ -2,8 +2,6 @@ import { Action as Action_2 } from '@dynamicforms/vue-forms';
2
2
  import { ActionValue } from '@dynamicforms/vue-forms';
3
3
  import { AllowedComponentProps } from 'vue';
4
4
  import { App } from 'vue';
5
- import { ClassTypes } from '@dynamicforms/vue-forms';
6
- import { ClassValue } from '../../node_modules/vuetify/lib/composables/component';
7
5
  import { ComponentCustomProps } from 'vue';
8
6
  import { ComponentOptionsBase } from 'vue';
9
7
  import { ComponentOptionsMixin } from 'vue';
@@ -12,10 +10,10 @@ import { ComputedRef } from 'vue';
12
10
  import { CreateComponentPublicInstanceWithMixins } from 'vue';
13
11
  import { Day } from 'date-fns';
14
12
  import { default as default_2 } from '@dynamicforms/vue-forms';
15
- import { DefaultInputSlot } from 'vuetify/lib/components/VField/VField';
16
13
  import { DefineComponent } from 'vue';
17
- import { Editor } from '../node_modules/@tiptap/vue-3/dist';
18
14
  import { Era } from 'date-fns';
15
+ import { ErrorDescription } from '@dynamicforms/vue-forms';
16
+ import { FieldBase } from '@dynamicforms/vue-forms';
19
17
  import { FirstWeekContainsDate } from 'date-fns';
20
18
  import { FormatDistanceFn } from 'date-fns';
21
19
  import { FormatLongFn } from 'date-fns';
@@ -30,16 +28,20 @@ import { LocaleUnit } from 'date-fns';
30
28
  import { LocalizeFn } from 'date-fns';
31
29
  import { MatchFn } from 'date-fns';
32
30
  import { MaybeRef } from 'vue';
33
- import { MdString } from '@dynamicforms/vue-forms';
31
+ import { MaybeRefOrGetter } from 'vue';
34
32
  import { Month } from 'date-fns';
35
33
  import { PublicProps } from 'vue';
36
34
  import { Quarter } from 'date-fns';
37
35
  import { Ref } from 'vue';
38
- import { TranslateStringsCallback } from '@dynamicforms/translatable';
36
+ import { TranslateFunction } from '@dynamicforms/translatable';
39
37
  import { useDisplay } from 'vuetify';
40
38
  import { ValidationError } from '@dynamicforms/vue-forms';
41
39
  import { VAutocomplete } from 'vuetify/components/VAutocomplete';
42
40
  import { VBtn } from 'vuetify/components/VBtn';
41
+ import { VBtnGroup } from 'vuetify/components/VBtnGroup';
42
+ import { VBtnToggle } from 'vuetify/components/VBtnToggle';
43
+ import { VCard } from 'vuetify/components/VCard';
44
+ import { VCardActions } from 'vuetify/components/VCard';
43
45
  import { VCheckbox } from 'vuetify/components/VCheckbox';
44
46
  import { VChip } from 'vuetify/components/VChip';
45
47
  import { VCol } from 'vuetify/components/VGrid';
@@ -47,12 +49,15 @@ import { VColorPicker } from 'vuetify/components/VColorPicker';
47
49
  import { VCombobox } from 'vuetify/components/VCombobox';
48
50
  import { VConfirmEdit } from 'vuetify/components/VConfirmEdit';
49
51
  import { VDatePicker } from 'vuetify/components/VDatePicker';
52
+ import { VDivider } from 'vuetify/components/VDivider';
50
53
  import { VField } from 'vuetify/components/VField';
51
54
  import { VFileInput } from 'vuetify/components/VFileInput';
52
55
  import { VIcon } from 'vuetify/components/VIcon';
53
56
  import { VImg } from 'vuetify/components/VImg';
54
57
  import { VInput } from 'vuetify/components/VInput';
58
+ import { VList } from 'vuetify/components/VList';
55
59
  import { VListItem } from 'vuetify/components/VList';
60
+ import { VListItemTitle } from 'vuetify/components/VList';
56
61
  import { VMenu } from 'vuetify/components/VMenu';
57
62
  import { VNodeProps } from 'vue';
58
63
  import { VNumberInput } from 'vuetify/components/VNumberInput';
@@ -86,13 +91,13 @@ dfSelectRef: unknown;
86
91
  }, any>;
87
92
 
88
93
  declare const __VLS_component_2: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
89
- blur: () => any;
90
94
  "update:modelValue": (value: any) => any;
91
95
  "click:clear": () => any;
96
+ blur: () => any;
92
97
  }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
93
- onBlur?: (() => any) | undefined;
94
98
  "onUpdate:modelValue"?: ((value: any) => any) | undefined;
95
99
  "onClick:clear"?: (() => any) | undefined;
100
+ onBlur?: (() => any) | undefined;
96
101
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
97
102
 
98
103
  declare type __VLS_Props = BaseProps & {
@@ -116,44 +121,16 @@ declare function __VLS_template(): {
116
121
 
117
122
  declare function __VLS_template_2(): {
118
123
  attrs: Partial<{}>;
119
- slots: {
120
- default?(_: {
121
- props: Record<string, unknown> & {
122
- class?: ClassValue;
123
- };
124
- isActive: Ref<boolean>;
125
- isFocused: Ref<boolean>;
126
- iconColor: ComputedRef<string | undefined>;
127
- controlRef: Ref<HTMLElement | undefined>;
128
- focus: () => void;
129
- blur: () => void;
130
- }): any;
131
- loader?(_: {
132
- color: string | undefined;
133
- isActive: boolean;
134
- }): any;
135
- 'prepend-inner'?(_: {
136
- isActive: Ref<boolean>;
137
- isFocused: Ref<boolean>;
138
- iconColor: ComputedRef<string | undefined>;
139
- controlRef: Ref<HTMLElement | undefined>;
140
- focus: () => void;
141
- blur: () => void;
142
- }): any;
143
- prepend?(_: {
144
- id: ComputedRef<string>;
145
- messagesId: ComputedRef<string | undefined>;
146
- isDirty: ComputedRef<boolean>;
147
- isDisabled: ComputedRef<boolean>;
148
- isReadonly: ComputedRef<boolean>;
149
- isPristine: Ref<boolean>;
150
- isValid: ComputedRef<boolean | null>;
151
- isValidating: Ref<boolean>;
152
- hasDetails: Ref<boolean>;
153
- reset: () => void;
154
- resetValidation: () => void;
155
- validate: () => void;
156
- }): any;
124
+ slots: Readonly<{
125
+ default?(props: InputBaseSlotProps): any;
126
+ 'prepend-inner'?(props: Omit<InputBaseSlotProps, "props">): any;
127
+ loader?(props: Record<string, unknown>): any;
128
+ prepend?(props: Record<string, unknown>): any;
129
+ }> & {
130
+ default?(props: InputBaseSlotProps): any;
131
+ 'prepend-inner'?(props: Omit<InputBaseSlotProps, "props">): any;
132
+ loader?(props: Record<string, unknown>): any;
133
+ prepend?(props: Record<string, unknown>): any;
157
134
  };
158
135
  refs: {};
159
136
  rootEl: any;
@@ -177,7 +154,10 @@ declare type __VLS_WithTemplateSlots_2<T, S> = T & {
177
154
 
178
155
  export declare class Action extends Action_2<ActionBreakpointOptions> {
179
156
  /** @see getRenderOptionsForBreakpoint, which answers the same for the value of any `Action` */
180
- getBreakpointValue(breakpoint: Ref<BreakpointNames>): ComputedRef<ActionRenderOptions>;
157
+ getBreakpointValue(breakpoint: Ref<BreakpointNames>): ComputedRef<ResolvedActionRenderOptions>;
158
+ /** The label read: where the value holds a ref or a function, the string it gives now. */
159
+ get label(): string | undefined;
160
+ set label(newValue: ActionBreakpointOptions['label']);
181
161
  /** @see ActionRenderOptions.name */
182
162
  get name(): string | undefined;
183
163
  /**
@@ -196,10 +176,6 @@ export declare class Action extends Action_2<ActionBreakpointOptions> {
196
176
  get showIcon(): boolean | undefined;
197
177
  /** @see ActionRenderOptions.renderAs */
198
178
  get renderAs(): ActionDisplayStyle | undefined;
199
- /** @see ActionRenderOptions.defaultConfirm */
200
- get defaultConfirm(): boolean | undefined;
201
- /** @see ActionRenderOptions.defaultReject */
202
- get defaultReject(): boolean | undefined;
203
179
  /** @see ActionRenderOptions.passthroughAttrs */
204
180
  get passthroughAttrs(): Record<string, any> | undefined;
205
181
  static closeAction(data?: Partial<IFieldConstructorParams<ActionBreakpointOptions>>): Action;
@@ -217,23 +193,19 @@ export declare type ActionBreakpointOptions = BreakpointsJSON<ActionRenderOption
217
193
  export declare type ActionBreakpointRenderOptions = Omit<ActionRenderOptions, 'name' | 'defaultConfirm' | 'defaultReject'>;
218
194
 
219
195
  /**
220
- * DisplayMode enum provides an enumeration for supported ways of rendering a particular object in the DOM
196
+ * How an action is rendered: `'button'` as a tonal `<v-btn>`, `'text'` as a text-variant `<v-btn>`.
221
197
  */
222
- export declare enum ActionDisplayStyle {
223
- BUTTON = 0,// action should render as a button
224
- TEXT = 1
225
- }
198
+ export declare type ActionDisplayStyle = 'button' | 'text';
226
199
 
227
- export declare namespace ActionDisplayStyle {
228
- export function fromString(mode: string): ActionDisplayStyle;
229
- export function fromAny(mode: any): ActionDisplayStyle;
230
- export function isDefined(mode: number | string): boolean;
231
- }
200
+ /** every display style */
201
+ export declare const actionDisplayStyles: readonly ActionDisplayStyle[];
232
202
 
233
203
  export declare interface ActionRenderOptions extends ActionValue {
234
204
  /** The text of the action, rendered when {@link showLabel} is set and the text is not empty. `ActionValue`
235
- * types this `unknown`, leaving what a label is to the rendering library; here it is a string. */
236
- label?: string;
205
+ * types this `unknown`, leaving what a label is to the rendering library; here it is a string, a ref to one or a
206
+ * function returning one. A ref or a function is read while the action renders, so a label that follows the
207
+ * locale is `() => t('Save')`. */
208
+ label?: MaybeRefOrGetter<string>;
237
209
  /** The icon of the action, a name `vue-cached-icon` resolves, rendered when {@link showIcon} is set and the
238
210
  * name is not empty. Typed here for the same reason `label` is. */
239
211
  icon?: string;
@@ -244,8 +216,7 @@ export declare interface ActionRenderOptions extends ActionValue {
244
216
  * `Form.Group`) - not this `name` field - is what the modal's promise actually resolves with; keeping them
245
217
  * in sync is what lets callers do e.g. `if (await modal.yesNo(...) === 'yes')`. */
246
218
  name?: string;
247
- /** How the action is rendered: {@link ActionDisplayStyle.BUTTON} for a tonal `<v-btn>`, or
248
- * {@link ActionDisplayStyle.TEXT} for a text-variant `<v-btn>`. */
219
+ /** How the action is rendered: `'button'` for a tonal `<v-btn>`, or `'text'` for a text-variant `<v-btn>`. */
249
220
  renderAs?: ActionDisplayStyle;
250
221
  /** Whether the label is shown. If `label` is empty, the label is never shown regardless of this flag. */
251
222
  showLabel?: boolean;
@@ -278,13 +249,13 @@ export declare interface BaseEmits<T = any> {
278
249
  export declare interface BaseProps<T = any> {
279
250
  control?: default_2.FieldBase<T>;
280
251
  modelValue?: T;
281
- label?: string | Label | MdString;
282
- errors?: string[];
252
+ label?: RenderContentNonCallable | Label;
253
+ errors?: ErrorInput[];
283
254
  placeholder?: string;
284
255
  helpText?: string;
285
256
  hint?: string;
286
257
  enabled?: boolean;
287
- visibility?: default_2.DisplayMode | string;
258
+ visibility?: default_2.Visibility;
288
259
  cssClass?: string;
289
260
  clearable?: boolean;
290
261
  passthroughAttrs?: Record<string, any>;
@@ -301,6 +272,10 @@ export declare type BreakpointNames = (typeof responsiveBreakpoints)[number];
301
272
  */
302
273
  export declare type BreakpointsJSON<T extends Record<string, any>, B extends Record<string, any> = T> = T & Partial<Record<BreakpointNames, B>>;
303
274
 
275
+ export declare type ClassType = string | string[] | Record<string, boolean>;
276
+
277
+ export declare type ClassTypes = ClassType | ClassType[];
278
+
304
279
  export declare const DateTimeLocaleConfig: {
305
280
  dateTimeLocale: Ref<{
306
281
  code: string;
@@ -375,7 +350,74 @@ export declare const defaultBaseProps: {
375
350
  clearable: boolean;
376
351
  };
377
352
 
378
- export declare const defaultDisplayStyle = ActionDisplayStyle.BUTTON;
353
+ /** What an action renders as where nothing states otherwise. */
354
+ export declare const defaultDisplayStyle: ActionDisplayStyle;
355
+
356
+ declare const defaults: {
357
+ Yes: string;
358
+ No: string;
359
+ Close: string;
360
+ Cancel: string;
361
+ Ok: string;
362
+ Paragraph: string;
363
+ Heading1: string;
364
+ Heading2: string;
365
+ Heading3: string;
366
+ Heading4: string;
367
+ Heading5: string;
368
+ Heading6: string;
369
+ Downloadable: string;
370
+ ArticleCategory: string;
371
+ Title: string;
372
+ Subtitle: string;
373
+ InfoBox: string;
374
+ SideQuote: string;
375
+ Marker: string;
376
+ Spoiler: string;
377
+ CodeDark: string;
378
+ CodeBright: string;
379
+ Undo: string;
380
+ Redo: string;
381
+ SelectAll: string;
382
+ Bold: string;
383
+ Italic: string;
384
+ HorizontalLine: string;
385
+ Blockquote: string;
386
+ BulletedList: string;
387
+ NumberedList: string;
388
+ Outdent: string;
389
+ Indent: string;
390
+ AlignLeft: string;
391
+ AlignCenter: string;
392
+ AlignRight: string;
393
+ AlignJustify: string;
394
+ Link: string;
395
+ LinkUrl: string;
396
+ LinkApply: string;
397
+ LinkRemove: string;
398
+ Image: string;
399
+ ImageUrl: string;
400
+ ImageUpload: string;
401
+ ImageInsert: string;
402
+ ImageDropHint: string;
403
+ ImageReplace: string;
404
+ ImageDownload: string;
405
+ FileDownload: string;
406
+ Table: string;
407
+ TableInsert: string;
408
+ TableAddRowAbove: string;
409
+ TableAddRowBelow: string;
410
+ TableDeleteRow: string;
411
+ TableAddColumnBefore: string;
412
+ TableAddColumnAfter: string;
413
+ TableDeleteColumn: string;
414
+ TableToggleHeaderRow: string;
415
+ TableDeleteTable: string;
416
+ Style: string;
417
+ MediaEmbed: string;
418
+ MediaEmbedUrl: string;
419
+ MediaEmbedInsert: string;
420
+ };
379
421
 
380
422
  export declare const DfActions: DefineComponent<DfActionsProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<DfActionsProps> & Readonly<{}>, {
381
423
  buttonSize: VuetifyButtonSize;
@@ -514,6 +556,7 @@ export declare namespace DfInputComponentProps {
514
556
  DfFileProps,
515
557
  DfImageProps,
516
558
  DfInputProps,
559
+ MessagesWidgetProps,
517
560
  DfInputHintProps,
518
561
  DfLabelProps,
519
562
  DfRtfEditorProps,
@@ -543,8 +586,7 @@ export declare namespace DfInputComponents {
543
586
  * Every component this library draws with, keyed by the tag a layout names it by.
544
587
  *
545
588
  * A rendering layer that resolves a component by name out of a map - `@dynamicforms/vuetify-modal-form-kit`'s
546
- * `<component-render>` is one - is handed this instead of keeping a list of its own, which would have to be
547
- * extended whenever this package gains a component and would silently render nothing until it was.
589
+ * `<component-render>` is one - takes it from here, so a component this package adds is in the map.
548
590
  *
549
591
  * The keys are the kebab-case of the export names, so a tag names the same component whether it is looked up
550
592
  * here or left to Vue's own resolver after `DynamicFormsInputs` has registered the components globally.
@@ -628,8 +670,8 @@ export declare const dfInputComponentsByTag: {
628
670
  max: number;
629
671
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
630
672
  readonly 'df-input-hint': DefineComponent<DfInputHintProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<DfInputHintProps> & Readonly<{}>, {
631
- errors: string | ValidationError[];
632
- message: string | ValidationError[];
673
+ errors: string | readonly (RenderableValue | ErrorInput)[];
674
+ message: RenderContentRef | readonly RenderableValue[];
633
675
  errorClasses: ClassTypes;
634
676
  messageClasses: ClassTypes;
635
677
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
@@ -644,69 +686,7 @@ export declare const dfInputComponentsByTag: {
644
686
  minHeight: string;
645
687
  enabled: boolean;
646
688
  clearable: boolean;
647
- }, {}, {}, {}, string, ComponentProvideOptions, false, {
648
- $editor: CreateComponentPublicInstanceWithMixins<Readonly<{
649
- modelValue?: string;
650
- minHeight?: string;
651
- disabled?: boolean;
652
- toolbarButtonSize?: VuetifyButtonSize;
653
- fontFamily?: string;
654
- }> & Readonly<{
655
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
656
- }>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
657
- "update:modelValue": (value: string) => any;
658
- }, PublicProps, {
659
- minHeight: string;
660
- modelValue: string;
661
- disabled: boolean;
662
- toolbarButtonSize: VuetifyButtonSize;
663
- fontFamily: string;
664
- }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
665
- toolbarRef: CreateComponentPublicInstanceWithMixins<Readonly<{
666
- editor?: Editor;
667
- buttonSize?: VuetifyButtonSize;
668
- }> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
669
- buttonSize: VuetifyButtonSize;
670
- editor: Editor;
671
- }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
672
- imageInput: HTMLInputElement;
673
- }, HTMLDivElement, ComponentProvideOptions, {
674
- P: {};
675
- B: {};
676
- D: {};
677
- C: {};
678
- M: {};
679
- Defaults: {};
680
- }, Readonly<{
681
- editor?: Editor;
682
- buttonSize?: VuetifyButtonSize;
683
- }> & Readonly<{}>, {}, {}, {}, {}, {
684
- buttonSize: VuetifyButtonSize;
685
- editor: Editor;
686
- }> | null;
687
- }, HTMLDivElement, ComponentProvideOptions, {
688
- P: {};
689
- B: {};
690
- D: {};
691
- C: {};
692
- M: {};
693
- Defaults: {};
694
- }, Readonly<{
695
- modelValue?: string;
696
- minHeight?: string;
697
- disabled?: boolean;
698
- toolbarButtonSize?: VuetifyButtonSize;
699
- fontFamily?: string;
700
- }> & Readonly<{
701
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
702
- }>, {}, {}, {}, {}, {
703
- minHeight: string;
704
- modelValue: string;
705
- disabled: boolean;
706
- toolbarButtonSize: VuetifyButtonSize;
707
- fontFamily: string;
708
- }> | null;
709
- }, any>;
689
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
710
690
  readonly 'df-select': {
711
691
  new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<DfSelectProps> & Readonly<{
712
692
  "onUpdate:modelValue"?: ((value: any) => any) | undefined;
@@ -792,17 +772,18 @@ export declare const dfInputComponentsByTag: {
792
772
  export declare type DfInputComponentTag = keyof typeof dfInputComponentsByTag;
793
773
 
794
774
  export declare const DfInputHint: DefineComponent<DfInputHintProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<DfInputHintProps> & Readonly<{}>, {
795
- errors: string | ValidationError[];
796
- message: string | ValidationError[];
775
+ errors: string | readonly (RenderableValue | ErrorInput)[];
776
+ message: RenderContentRef | readonly RenderableValue[];
797
777
  errorClasses: ClassTypes;
798
778
  messageClasses: ClassTypes;
799
779
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
800
780
 
801
781
  declare interface DfInputHintProps {
802
- /** The errors to render. Rendered in place of {@link message} whenever there is one. */
803
- errors?: string | ValidationError[];
804
- /** The message to render, shown while there is no error. */
805
- message?: string | ValidationError[];
782
+ /** The errors to render, in place of {@link message} whenever there is one. A string is text in the user's
783
+ * language; an error description may lack any member. */
784
+ errors?: string | readonly (RenderableValue | ErrorInput)[];
785
+ /** The message to render, shown while there is no error: content in any of its forms, or the items to render. */
786
+ message?: RenderContentRef | readonly RenderableValue[];
806
787
  /** Classes for the rendered errors. Defaults to `text-error`. */
807
788
  errorClasses?: ClassTypes;
808
789
  /** Classes for the rendered message. Defaults to no class. */
@@ -820,11 +801,13 @@ declare interface DfInputProps extends BaseProps {
820
801
  export declare const DfLabel: DefineComponent<DfLabelProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<DfLabelProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
821
802
 
822
803
  declare interface DfLabelProps {
823
- /** The slot data Vuetify hands a `#label` slot. Where it is given, its `label` is what is rendered. */
824
- data?: DefaultInputSlot & {
825
- label?: string | MdString;
804
+ /** The slot data Vuetify hands a `#label` slot. Its `label`, the label's text, is rendered where {@link label} has
805
+ * no content. */
806
+ data?: {
807
+ label?: string;
808
+ props?: Record<string, unknown>;
826
809
  };
827
- /** The label to render where no {@link data} is given: its text, and the icon it carries. */
810
+ /** The label to render: its content in any of the four forms, and the icon it carries. */
828
811
  label: Label;
829
812
  /** Whether the label wraps over several lines. It is rendered on one line by default. */
830
813
  allowWrap?: boolean;
@@ -840,69 +823,7 @@ export declare const DfRtfEditor: DefineComponent<DfRtfEditorProps, {}, {}, {},
840
823
  minHeight: string;
841
824
  enabled: boolean;
842
825
  clearable: boolean;
843
- }, {}, {}, {}, string, ComponentProvideOptions, false, {
844
- $editor: CreateComponentPublicInstanceWithMixins<Readonly<{
845
- modelValue?: string;
846
- minHeight?: string;
847
- disabled?: boolean;
848
- toolbarButtonSize?: VuetifyButtonSize;
849
- fontFamily?: string;
850
- }> & Readonly<{
851
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
852
- }>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
853
- "update:modelValue": (value: string) => any;
854
- }, PublicProps, {
855
- minHeight: string;
856
- modelValue: string;
857
- disabled: boolean;
858
- toolbarButtonSize: VuetifyButtonSize;
859
- fontFamily: string;
860
- }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
861
- toolbarRef: CreateComponentPublicInstanceWithMixins<Readonly<{
862
- editor?: Editor;
863
- buttonSize?: VuetifyButtonSize;
864
- }> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
865
- buttonSize: VuetifyButtonSize;
866
- editor: Editor;
867
- }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
868
- imageInput: HTMLInputElement;
869
- }, HTMLDivElement, ComponentProvideOptions, {
870
- P: {};
871
- B: {};
872
- D: {};
873
- C: {};
874
- M: {};
875
- Defaults: {};
876
- }, Readonly<{
877
- editor?: Editor;
878
- buttonSize?: VuetifyButtonSize;
879
- }> & Readonly<{}>, {}, {}, {}, {}, {
880
- buttonSize: VuetifyButtonSize;
881
- editor: Editor;
882
- }> | null;
883
- }, HTMLDivElement, ComponentProvideOptions, {
884
- P: {};
885
- B: {};
886
- D: {};
887
- C: {};
888
- M: {};
889
- Defaults: {};
890
- }, Readonly<{
891
- modelValue?: string;
892
- minHeight?: string;
893
- disabled?: boolean;
894
- toolbarButtonSize?: VuetifyButtonSize;
895
- fontFamily?: string;
896
- }> & Readonly<{
897
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
898
- }>, {}, {}, {}, {}, {
899
- minHeight: string;
900
- modelValue: string;
901
- disabled: boolean;
902
- toolbarButtonSize: VuetifyButtonSize;
903
- fontFamily: string;
904
- }> | null;
905
- }, any>;
826
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
906
827
 
907
828
  declare interface DfRtfEditorProps extends BaseProps {
908
829
  minHeight?: string;
@@ -953,6 +874,27 @@ export declare interface DynamicFormsInputsOptions extends VuetifyInputsSettings
953
874
  registerVuetifyComponents: boolean;
954
875
  }
955
876
 
877
+ /**
878
+ * An error as a component accepts it for rendering: content in one of the four forms (a string, an `MdString`, an
879
+ * `HtmlString` or a `SimpleComponentDef`), which renders as it is, or an error description of which any member may
880
+ * be missing.
881
+ */
882
+ export declare type ErrorInput = RenderContentNonCallable | Partial<ErrorDescription>;
883
+
884
+ /**
885
+ * Converts an error to the content it renders as: plain text, an `MdString` for markdown, an `HtmlString` for HTML
886
+ * or a `SimpleComponentDef` for a component. `undefined` renders the error's `detail`. It is called for an error with
887
+ * a code. It runs while the errors are rendered, so the reactive state it reads, such as the locale, is tracked.
888
+ */
889
+ export declare type ErrorText = (error: ErrorDescription) => RenderContentNonCallable | undefined;
890
+
891
+ /**
892
+ * What a component renders for `error`. Content renders as it is. An error without a code renders as its
893
+ * `detail`: it is text in the user's language. An error with a code renders as the `errorText` setting's answer, and
894
+ * as its `detail` where the setting is not given or answers `undefined`.
895
+ */
896
+ export declare function errorText(error: ErrorInput, settings: VuetifyInputsSettings): RenderContentNonCallable;
897
+
956
898
  export declare type FieldDensity = 'default' | 'comfortable' | 'compact' | 'inline';
957
899
 
958
900
  export declare type FieldVariant = 'outlined' | 'plain' | 'underlined' | 'filled' | 'solo' | 'solo-inverted' | 'solo-filled';
@@ -1025,17 +967,123 @@ export declare function getBreakpointName(dp: ReturnType<typeof useDisplay>): Br
1025
967
  * `label` and `icon` come back only where the matching flag says they are shown, and the flags come back false
1026
968
  * where there is no text or name to show, so a caller renders each member on its own flag and never on emptiness.
1027
969
  */
1028
- export declare function getRenderOptionsForBreakpoint(value: ActionValue, breakpoint: BreakpointNames): ActionRenderOptions;
970
+ export declare function getRenderOptionsForBreakpoint(value: ActionValue, breakpoint: BreakpointNames): ResolvedActionRenderOptions;
971
+
972
+ /**
973
+ * A string rendered as HTML: it is set as the `innerHTML` of a `div`. It is not sanitized, so a string holding text
974
+ * from a user or a server is escaped or sanitized before it is wrapped.
975
+ */
976
+ export declare class HtmlString extends String {
977
+ }
1029
978
 
1030
979
  export declare const InputBase: __VLS_WithTemplateSlots_2<typeof __VLS_component_2, __VLS_TemplateResult_2["slots"]>;
1031
980
 
981
+ /** What `InputBase`'s `default` slot receives: Vuetify's `v-field` slot props. `prepend-inner` receives them without
982
+ * `props`. */
983
+ export declare interface InputBaseSlotProps {
984
+ /** Attributes for the control: its `id`, `class` and ARIA attributes. */
985
+ props: Record<string, unknown>;
986
+ isActive: Ref<boolean>;
987
+ isFocused: Ref<boolean>;
988
+ iconColor: ComputedRef<string | undefined>;
989
+ controlRef: Ref<HTMLElement | undefined>;
990
+ /** Sets the field's focused state. */
991
+ focus: () => void;
992
+ /** Clears the field's focused state. */
993
+ blur: () => void;
994
+ }
995
+
996
+ /** Answers whether `value` is one of the display styles. */
997
+ export declare function isActionDisplayStyle(value: unknown): value is ActionDisplayStyle;
998
+
999
+ /** True where `content` is a function answering the content. */
1000
+ export declare function isCallableFunction(content?: RenderContentRef): content is RenderContentCallable;
1001
+
1002
+ /** True where `value` is content in one of the four forms: a string, an `MdString`, an `HtmlString` or a component. */
1003
+ export declare function isRenderContent(value: unknown): value is RenderContentNonCallable;
1004
+
1005
+ /** True where `content` names a component to render it with. */
1006
+ export declare function isSimpleComponentDef(content?: RenderContentRef): content is SimpleComponentDef;
1007
+
1008
+ declare type Key = keyof typeof defaults;
1009
+
1010
+ /** A field's label: its content, and an icon shown before it. */
1032
1011
  export declare class Label {
1033
- text: string;
1012
+ text: RenderContentNonCallable;
1034
1013
  icon?: string | undefined;
1035
1014
  iconComponent: string;
1036
- constructor(text: string, icon?: string | undefined, iconComponent?: string);
1015
+ constructor(text: RenderContentNonCallable, icon?: string | undefined, iconComponent?: string);
1037
1016
  }
1038
1017
 
1018
+ /** A string rendered as markdown by `vue-markdown-render`, with its `options` and `plugins`. */
1019
+ export declare class MdString extends String {
1020
+ plugins?: any[];
1021
+ options?: any;
1022
+ constructor(value: string, options?: any, plugins?: any[]);
1023
+ }
1024
+
1025
+ export declare const MessagesWidget: DefineComponent<MessagesWidgetProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<MessagesWidgetProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
1026
+
1027
+ declare interface MessagesWidgetProps {
1028
+ /** A plain text, or the items to render, each in its own element: a `RenderableValue` as its content, an error
1029
+ * as `errorText()` gives it. */
1030
+ message: string | readonly (RenderableValue | ErrorInput)[];
1031
+ /** Classes for every rendered item, beside the item's own `extraClasses`. */
1032
+ classes?: ClassTypes;
1033
+ }
1034
+
1035
+ /**
1036
+ * Content with the CSS classes it is rendered with, described as what renders it: `componentName`, its
1037
+ * `componentBindings`, its `componentChildren`, its `componentBody` and its `extraClasses`. `componentName` is
1038
+ * `'template'` for plain text, `'vue-markdown'` for markdown, `'html'` for an `HtmlString` and the component's name
1039
+ * for a `SimpleComponentDef`; `componentBody` is the text of plain text and the HTML of an `HtmlString`.
1040
+ *
1041
+ * `MessagesWidget` renders it, and so does any component that reads those five members. A reference or a function as
1042
+ * the content is read on every render, so what it answers reaches the screen without the value being built again.
1043
+ */
1044
+ export declare class RenderableValue {
1045
+ private readonly content;
1046
+ classes: ClassTypes;
1047
+ private readonly kindRef;
1048
+ constructor(content?: RenderContentRef, classes?: ClassTypes);
1049
+ /** The content as it reads now: a reference unwrapped and a function called. */
1050
+ get resolvedText(): RenderContentNonCallable;
1051
+ /** Which of the four forms the content takes now. */
1052
+ get kind(): RenderContentKind;
1053
+ get componentName(): string;
1054
+ get componentBindings(): Record<string, any>;
1055
+ /** The children of a component; empty for the other forms. */
1056
+ get componentChildren(): readonly RenderContentNonCallable[];
1057
+ get componentBody(): string;
1058
+ get extraClasses(): ClassTypes;
1059
+ }
1060
+
1061
+ /** Content in one of four forms - plain text, markdown, HTML or a component - or a function answering one. */
1062
+ export declare type RenderContent = RenderContentNonCallable | RenderContentCallable;
1063
+
1064
+ export declare type RenderContentCallable = () => RenderContentNonCallable;
1065
+
1066
+ /** Which of the four forms content takes. */
1067
+ export declare type RenderContentKind = 'string' | 'md' | 'html' | 'component';
1068
+
1069
+ export declare type RenderContentNonCallable = string | MdString | HtmlString | SimpleComponentDef;
1070
+
1071
+ /** `RenderContent`, or a reference to it. */
1072
+ export declare type RenderContentRef = RenderContent | Ref<RenderContent>;
1073
+
1074
+ /**
1075
+ * The text of `content` where only text is taken, such as an `aria-label`: a string and an `MdString` as written, an
1076
+ * `HtmlString` without its tags, its blocks separated by a space, whitespace collapsed and trimmed, and with `&amp;`,
1077
+ * `&lt;`, `&gt;`, `&quot;`, `&#39;` and `&nbsp;` read, and a component as the text of its children joined, whitespace
1078
+ * collapsed and trimmed. An `&nbsp;` reads as a space that is neither collapsed nor trimmed.
1079
+ */
1080
+ export declare function renderContentText(content: RenderContentNonCallable): string;
1081
+
1082
+ /** `ActionRenderOptions` with the label read: a string. */
1083
+ export declare type ResolvedActionRenderOptions = Omit<ActionRenderOptions, 'label'> & {
1084
+ label?: string;
1085
+ };
1086
+
1039
1087
  export declare class ResponsiveActionRenderOptions extends ResponsiveRenderOptions<ActionRenderOptions> {
1040
1088
  protected cleanBreakpoint(bp?: ActionRenderOptions, defaultIfEmpty?: boolean): ActionRenderOptions | null;
1041
1089
  }
@@ -1063,6 +1111,16 @@ export declare interface SelectChoice {
1063
1111
 
1064
1112
  export declare type SelectFetchChoices<T1 = any, T2 = any> = (queryValue?: T1, idValue?: T2) => Promise<SelectChoice[]>;
1065
1113
 
1114
+ /**
1115
+ * The errors of `errors` a component shows now.
1116
+ *
1117
+ * By default an error is shown where `control` is sent - its `effectiveAccess` is not `'disabled'` - and either its
1118
+ * `origin` is `'server'` or the element is `touched`.
1119
+ * Without a control, `touched` is the component's own. The `shownErrors` setting replaces the rule with a condition
1120
+ * of the application's own, asked for each error with the default answer.
1121
+ */
1122
+ export declare function selectShownErrors(errors: readonly ValidationError[], control: FieldBase | undefined, touched: boolean, settings: VuetifyInputsSettings): ValidationError[];
1123
+
1066
1124
  /**
1067
1125
  * Reports a {@link FileGoneError}'s message on `control`, where one is bound. Kept outside the component's own
1068
1126
  * script so the write to `control.errors` isn't seen as a `.vue` component mutating its own prop — the write
@@ -1072,137 +1130,42 @@ export declare function setFileGoneError(control: default_2.FieldBase | undefine
1072
1130
 
1073
1131
  declare type ShowAsGroup = 'no' | 'grouped' | 'grouped-no-borders';
1074
1132
 
1075
- export declare const translatableStrings: {
1076
- Yes: string;
1077
- No: string;
1078
- Close: string;
1079
- Paragraph: string;
1080
- Heading1: string;
1081
- Heading2: string;
1082
- Heading3: string;
1083
- Heading4: string;
1084
- Heading5: string;
1085
- Heading6: string;
1086
- Downloadable: string;
1087
- ArticleCategory: string;
1088
- Title: string;
1089
- Subtitle: string;
1090
- InfoBox: string;
1091
- SideQuote: string;
1092
- Marker: string;
1093
- Spoiler: string;
1094
- CodeDark: string;
1095
- CodeBright: string;
1096
- Undo: string;
1097
- Redo: string;
1098
- SelectAll: string;
1099
- Bold: string;
1100
- Italic: string;
1101
- HorizontalLine: string;
1102
- Blockquote: string;
1103
- BulletedList: string;
1104
- NumberedList: string;
1105
- Outdent: string;
1106
- Indent: string;
1107
- AlignLeft: string;
1108
- AlignCenter: string;
1109
- AlignRight: string;
1110
- AlignJustify: string;
1111
- Link: string;
1112
- LinkUrl: string;
1113
- LinkApply: string;
1114
- LinkRemove: string;
1115
- Image: string;
1116
- ImageUrl: string;
1117
- ImageUpload: string;
1118
- ImageInsert: string;
1119
- ImageDropHint: string;
1120
- ImageReplace: string;
1121
- ImageDownload: string;
1122
- FileDownload: string;
1123
- Table: string;
1124
- TableInsert: string;
1125
- TableAddRowAbove: string;
1126
- TableAddRowBelow: string;
1127
- TableDeleteRow: string;
1128
- TableAddColumnBefore: string;
1129
- TableAddColumnAfter: string;
1130
- TableDeleteColumn: string;
1131
- TableToggleHeaderRow: string;
1132
- TableDeleteTable: string;
1133
- Style: string;
1134
- MediaEmbed: string;
1135
- MediaEmbedUrl: string;
1136
- MediaEmbedInsert: string;
1137
- InvalidHexColor: string;
1138
- };
1133
+ /**
1134
+ * A component to render content with: an HTML element or a registered component by its name, with its props and its
1135
+ * children. It has no HTML content of its own; HTML is an `HtmlString`.
1136
+ */
1137
+ export declare interface SimpleComponentDef {
1138
+ componentName: string;
1139
+ /** The props of the component. A listener is a prop named `on` and the event, e.g. `onClick`. `innerHTML` is not
1140
+ * one: the component drops it. */
1141
+ componentProps?: Record<string, unknown> & {
1142
+ innerHTML?: never;
1143
+ };
1144
+ /** The children of an HTML element, or the default slot of a component. A string renders as text. */
1145
+ children?: RenderContentNonCallable | readonly RenderContentNonCallable[];
1146
+ }
1139
1147
 
1140
- export declare const translateStrings: (cb: TranslateStringsCallback< {
1141
- Yes: string;
1142
- No: string;
1143
- Close: string;
1144
- Paragraph: string;
1145
- Heading1: string;
1146
- Heading2: string;
1147
- Heading3: string;
1148
- Heading4: string;
1149
- Heading5: string;
1150
- Heading6: string;
1151
- Downloadable: string;
1152
- ArticleCategory: string;
1153
- Title: string;
1154
- Subtitle: string;
1155
- InfoBox: string;
1156
- SideQuote: string;
1157
- Marker: string;
1158
- Spoiler: string;
1159
- CodeDark: string;
1160
- CodeBright: string;
1161
- Undo: string;
1162
- Redo: string;
1163
- SelectAll: string;
1164
- Bold: string;
1165
- Italic: string;
1166
- HorizontalLine: string;
1167
- Blockquote: string;
1168
- BulletedList: string;
1169
- NumberedList: string;
1170
- Outdent: string;
1171
- Indent: string;
1172
- AlignLeft: string;
1173
- AlignCenter: string;
1174
- AlignRight: string;
1175
- AlignJustify: string;
1176
- Link: string;
1177
- LinkUrl: string;
1178
- LinkApply: string;
1179
- LinkRemove: string;
1180
- Image: string;
1181
- ImageUrl: string;
1182
- ImageUpload: string;
1183
- ImageInsert: string;
1184
- ImageDropHint: string;
1185
- ImageReplace: string;
1186
- ImageDownload: string;
1187
- FileDownload: string;
1188
- Table: string;
1189
- TableInsert: string;
1190
- TableAddRowAbove: string;
1191
- TableAddRowBelow: string;
1192
- TableDeleteRow: string;
1193
- TableAddColumnBefore: string;
1194
- TableAddColumnAfter: string;
1195
- TableDeleteColumn: string;
1196
- TableToggleHeaderRow: string;
1197
- TableDeleteTable: string;
1198
- Style: string;
1199
- MediaEmbed: string;
1200
- MediaEmbedUrl: string;
1201
- MediaEmbedInsert: string;
1202
- InvalidHexColor: string;
1203
- }>) => void;
1204
-
1205
- export declare function useBreakpoint(): ComputedRef<"xs" | "sm" | "md" | "lg" | "xl">;
1148
+ /**
1149
+ * `error` with every missing member set: `code` to `''`, `params` to `{}`, `detail` to `''` and `origin` to
1150
+ * `'application'`. Content becomes an error without a code, its text (`renderContentText`) as the `detail`.
1151
+ */
1152
+ export declare function toErrorDescription(error: ErrorInput): ErrorDescription;
1153
+
1154
+ /**
1155
+ * The current translation of one of the library's strings. Called while a component sets up or renders, it
1156
+ * translates with the `translate` setting the component reads, as it reads every other setting, where one is given,
1157
+ * and with the function `translateStrings` set otherwise. Under server-side rendering each request's app states its
1158
+ * own `translate`. An event handler or a timer reads no setting; it uses `useTranslate()`.
1159
+ */
1160
+ export declare function translate(key: Key, params?: Record<string, unknown>): string;
1161
+
1162
+ /**
1163
+ * Sets the translation function of the library's strings for the whole process; see `@dynamicforms/translatable`.
1164
+ * An app installed with the `translate` setting translates with that one instead.
1165
+ */
1166
+ export declare const translateStrings: (t: TranslateFunction, namespace?: string) => void;
1167
+
1168
+ export declare function useBreakpoint(): ComputedRef<"md" | "xs" | "sm" | "lg" | "xl">;
1206
1169
 
1207
1170
  /**
1208
1171
  * Runs the `comms.touch` keep-alive interval for `<df-file>`/`<df-image>` while `value` holds a file
@@ -1215,40 +1178,58 @@ export declare function useFileTouchKeepAlive(value: Ref<string | null>, comms:
1215
1178
  clearTouchInterval: () => void;
1216
1179
  };
1217
1180
 
1218
- export declare function useInputBase<T = any>(props: BaseProps<T>, emit: BaseEmits<T>): {
1181
+ /**
1182
+ * The state and Vuetify bindings an input shares with every other input. `componentErrors` are the errors the
1183
+ * component finds in the value itself, reported where no `control` is bound; a bound control reports through its
1184
+ * own validators.
1185
+ */
1186
+ export declare function useInputBase<T = any>(props: BaseProps<T>, emit: BaseEmits<T>, componentErrors?: () => ValidationError[]): {
1219
1187
  value: WritableComputedRef<T, T>;
1220
1188
  valid: ComputedRef<boolean>;
1221
1189
  enabled: ComputedRef<boolean>;
1222
1190
  errors: ComputedRef<default_2.ValidationError[]>;
1223
- showErrors: ComputedRef<default_2.ValidationError[] | undefined>;
1224
- visibility: ComputedRef<default_2.DisplayMode>;
1191
+ shownErrors: ComputedRef<ErrorInput[]>;
1192
+ visibility: ComputedRef<default_2.Visibility>;
1225
1193
  isRendered: ComputedRef<boolean>;
1226
- visibilityClass: ComputedRef< {
1227
- 'd-none': boolean;
1228
- invisible: boolean;
1194
+ visibilityClass: ComputedRef<{
1195
+ 'd-none': boolean;
1196
+ invisible: boolean;
1229
1197
  }>;
1230
1198
  label: ComputedRef<Label>;
1231
1199
  touched: Ref<boolean, boolean>;
1232
1200
  density: ComputedRef<FieldDensity>;
1233
1201
  densityClass: ComputedRef<string>;
1234
- vuetifyBindings: ComputedRef< {
1235
- name: string | undefined;
1236
- class: string;
1237
- density: VuetifyDensity;
1238
- variant: FieldVariant;
1239
- label: string;
1240
- errorMessages: string | undefined;
1241
- readonly: boolean;
1242
- disabled: boolean;
1243
- placeholder: string;
1244
- 'persistent-placeholder': boolean;
1245
- hint: string;
1246
- persistentHint: boolean;
1247
- hideDetails: boolean | "auto" | undefined;
1248
- helpText: string;
1202
+ vuetifyBindings: ComputedRef<{
1203
+ name: string | undefined;
1204
+ class: string;
1205
+ density: VuetifyDensity;
1206
+ variant: FieldVariant;
1207
+ label: string;
1208
+ errorMessages: string | undefined;
1209
+ readonly: boolean;
1210
+ disabled: boolean;
1211
+ placeholder: string;
1212
+ 'persistent-placeholder': boolean;
1213
+ hint: string;
1214
+ persistentHint: boolean;
1215
+ hideDetails: boolean | "auto" | undefined;
1216
+ helpText: string;
1249
1217
  }>;
1250
1218
  };
1251
1219
 
1220
+ /**
1221
+ * The errors of `element` to show now, by the rule `selectShownErrors` states and the `shownErrors` setting the
1222
+ * application provided. It is what a template rendering errors of its own - a group's, say - binds, so that they
1223
+ * appear when the inputs' errors do. Call it in a component's setup, where the settings are injected.
1224
+ */
1225
+ export declare function useShownErrors(element: MaybeRefOrGetter<FieldBase | undefined>): ComputedRef<ValidationError[]>;
1226
+
1227
+ /**
1228
+ * `translate` bound to the settings the calling component reads, for use outside its setup and render: in an event
1229
+ * handler or a timer. Called in a component's setup.
1230
+ */
1231
+ export declare function useTranslate(): (key: Key, params?: Record<string, unknown>) => string;
1232
+
1252
1233
  /** Vuetify's own `size` prop (`v-btn`, `v-icon`, ...) also accepts an arbitrary CSS length or number, so this
1253
1234
  * keeps that but still offers the named sizes for autocomplete: `(string & {})` is a plain `string` to the type
1254
1235
  * checker (any string is still assignable) but not to a union with string literals, which is what makes an IDE
@@ -1259,12 +1240,17 @@ export declare namespace VuetifyComponents {
1259
1240
  export {
1260
1241
  VAutocomplete,
1261
1242
  VBtn,
1243
+ VBtnGroup,
1244
+ VBtnToggle,
1245
+ VCard,
1246
+ VCardActions,
1262
1247
  VCheckbox,
1263
1248
  VChip,
1264
1249
  VCombobox,
1265
1250
  VColorPicker,
1266
1251
  VConfirmEdit,
1267
1252
  VDatePicker,
1253
+ VDivider,
1268
1254
  VField,
1269
1255
  VFileInput,
1270
1256
  VRow,
@@ -1272,7 +1258,9 @@ export declare namespace VuetifyComponents {
1272
1258
  VIcon,
1273
1259
  VImg,
1274
1260
  VInput,
1261
+ VList,
1275
1262
  VListItem,
1263
+ VListItemTitle,
1276
1264
  VMenu,
1277
1265
  VNumberInput,
1278
1266
  VProgressLinear,
@@ -1292,6 +1280,31 @@ export declare interface VuetifyInputsSettings {
1292
1280
  /** Milliseconds between `<df-file>`/`<df-image>` keep-alive touches; overridable per field by their
1293
1281
  * `touchInterval` prop. Defaults to 60000 when neither is set. */
1294
1282
  defaultTouchInterval?: number;
1283
+ /**
1284
+ * The condition that decides whether an error is shown, asked for each error a component would show, with the
1285
+ * answer the default rule gives (see `useShownErrors`); its answer stands. `control` is the element the component
1286
+ * is bound to, absent where the errors come from the `errors` prop. It runs while the errors are rendered, so it
1287
+ * is synchronous and changes nothing.
1288
+ */
1289
+ shownErrors?: (error: ValidationError, control: FieldBase | undefined, shownByDefault: boolean) => boolean;
1290
+ /**
1291
+ * The content an error renders as; see `ErrorText`. Without it, an error renders as its `detail`.
1292
+ */
1293
+ errorText?: ErrorText;
1294
+ /**
1295
+ * The translation function of the library's strings, shaped like vue-i18n's `t`. Where it is given, `translate()`
1296
+ * called while a component that reads these settings sets up or renders uses it in place of the one
1297
+ * `translateStrings` set for the process. Under server-side rendering, an app per request gives each request its
1298
+ * own.
1299
+ */
1300
+ translate?: TranslateFunction;
1301
+ /** The namespace `translate` looks the library's keys up under: `${translateNamespace}.${key}`. */
1302
+ translateNamespace?: string;
1303
+ /**
1304
+ * The date-fns locale `<df-date-time>` formats and parses with in this app, in place of
1305
+ * `DateTimeLocaleConfig.dateTimeLocale`. A component's `locale` prop takes precedence.
1306
+ */
1307
+ dateTimeLocale?: MaybeRef<Locale>;
1295
1308
  }
1296
1309
 
1297
1310
  export declare const vuetifyInputsSettingsKey: unique symbol;
@@ -1312,7 +1325,7 @@ export { }
1312
1325
  */
1313
1326
  declare module '@dynamicforms/vue-forms' {
1314
1327
  interface Extras {
1315
- label?: string | Label | MdString;
1328
+ label?: RenderContentNonCallable | Label;
1316
1329
  placeholder?: string;
1317
1330
  helpText?: string;
1318
1331
  hint?: string;