@wssto2/vue-core 0.4.15 → 0.4.17

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 (97) hide show
  1. package/dist/{ActionRow.vue_vue_type_script_setup_true_lang-CkvS5W6K.js → ActionRow.vue_vue_type_script_setup_true_lang-DOjn7fqy.js} +1 -1
  2. package/dist/{Activity-4q26REYj.js → Activity-DnFB6WXf.js} +5 -5
  3. package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-B7qSUiee.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-Bm0sxqNz.js} +64 -63
  4. package/dist/{Changes-CKIuGF8O.js → Changes-DMrQYv2e.js} +4 -4
  5. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-B17cUOzj.js → CollectionPage.vue_vue_type_script_setup_true_lang-CVnZzaBm.js} +5 -5
  6. package/dist/{DataTable.vue_vue_type_script_setup_true_lang-ChS9ULwk.js → DataTable.vue_vue_type_script_setup_true_lang-Wuvo-l_z.js} +1 -1
  7. package/dist/DateField.vue_vue_type_script_setup_true_lang-BIXzNzYo.js +278 -0
  8. package/dist/{DeadLetters-DPGcQOz1.js → DeadLetters-BF9PS4mA.js} +3 -3
  9. package/dist/{FormGroup.vue_vue_type_script_setup_true_lang-noYI9QMk.js → FormGroup.vue_vue_type_script_setup_true_lang-BokxZ7LU.js} +1 -1
  10. package/dist/{FormView.vue_vue_type_script_setup_true_lang-BcIbTMHN.js → FormView.vue_vue_type_script_setup_true_lang-Dz5TZt92.js} +1 -1
  11. package/dist/{General-CUA9b3ML.js → General-yInbmj6I.js} +8 -8
  12. package/dist/{NewRolePage-DBfCvDWA.js → NewRolePage-09C3P6fE.js} +3 -3
  13. package/dist/NumberField.vue_vue_type_script_setup_true_lang-CC8bKyR_.js +150 -0
  14. package/dist/{ProfilePage-On-eAiJ-.js → ProfilePage-CvV44C0m.js} +8 -8
  15. package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-D87Hs75d.js → RecordHeader.vue_vue_type_script_setup_true_lang-DijFQnU6.js} +1 -1
  16. package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-Da0M-hen.js → ResourcePage.vue_vue_type_script_setup_true_lang-BpLnmA6n.js} +1 -1
  17. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-fvAf3rQm.js → RoleEditor.vue_vue_type_script_setup_true_lang-BqWoby16.js} +7 -7
  18. package/dist/{RolePage-B8oul55j.js → RolePage-DuIFjSKH.js} +8 -8
  19. package/dist/{RolesPage-DsXVivdj.js → RolesPage-BzqBqils.js} +5 -5
  20. package/dist/{SectionList.vue_vue_type_script_setup_true_lang-B0p_8xQG.js → SectionList.vue_vue_type_script_setup_true_lang-D5QWy-c1.js} +1 -1
  21. package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-D5Cnb4_O.js → SectionNavigator.vue_vue_type_script_setup_true_lang-CW81A_bn.js} +2 -2
  22. package/dist/SegmentedField.vue_vue_type_script_setup_true_lang-BMBkEmxr.js +81 -0
  23. package/dist/{SelectField.vue_vue_type_script_setup_true_lang-DedKLLQK.js → SelectField.vue_vue_type_script_setup_true_lang-C1Flb1hA.js} +161 -139
  24. package/dist/{SessionList.vue_vue_type_script_setup_true_lang-CirlMdHb.js → SessionList.vue_vue_type_script_setup_true_lang-C0XvavBw.js} +3 -3
  25. package/dist/{Sessions-BTyXDEuY.js → Sessions-_qmODKw2.js} +2 -2
  26. package/dist/{SettingsPage-DHTmMgif.js → SettingsPage-Bz48sO08.js} +9 -9
  27. package/dist/{SignIn-DU4DE2wj.js → SignIn-DJsTGQ79.js} +5 -5
  28. package/dist/{SignInPage-BA22kyOp.js → SignInPage-Bb78MIDk.js} +3 -3
  29. package/dist/{SignInTable.vue_vue_type_script_setup_true_lang-CIv34nRn.js → SignInTable.vue_vue_type_script_setup_true_lang-7Z9EmLs-.js} +1 -1
  30. package/dist/{SignIns-C8QAZBaL.js → SignIns-yRjJrf47.js} +2 -2
  31. package/dist/SwitchField.vue_vue_type_script_setup_true_lang-0weBvsJf.js +87 -0
  32. package/dist/TextField.vue_vue_type_script_setup_true_lang-D3-R5XXG.js +292 -0
  33. package/dist/TextareaField.vue_vue_type_script_setup_true_lang-4wC3c0BM.js +91 -0
  34. package/dist/TimeField.vue_vue_type_script_setup_true_lang-DrLtIexs.js +187 -0
  35. package/dist/{Timestamp.vue_vue_type_script_setup_true_lang-FVRUr-9y.js → Timestamp.vue_vue_type_script_setup_true_lang-CU2Y5oYl.js} +1 -1
  36. package/dist/{UserRecord-D1BNmYp9.js → UserRecord-4L0FrCty.js} +9 -9
  37. package/dist/{UsersList-ltx3G23-.js → UsersList-ww_-FoAq.js} +9 -9
  38. package/dist/access/index.js +1 -1
  39. package/dist/app/application.d.ts +1 -1
  40. package/dist/app/index.js +1 -1
  41. package/dist/collection/index.js +3 -3
  42. package/dist/content/index.js +1 -1
  43. package/dist/{control-CX9BG2UB.js → control-B_Nwtmag.js} +96 -82
  44. package/dist/{fieldMessages-DV6sESpn.js → fieldMessages-6HVzSDqG.js} +1 -1
  45. package/dist/form/CardSelectField.vue.d.ts +2 -2
  46. package/dist/form/ChoiceChips.vue.d.ts +2 -2
  47. package/dist/form/ComboField.vue.d.ts +2 -2
  48. package/dist/form/CommandDialog.vue.d.ts +3 -0
  49. package/dist/form/DateField.vue.d.ts +9 -2
  50. package/dist/form/DateTimeField.vue.d.ts +9 -2
  51. package/dist/form/Field.vue.d.ts +1 -1
  52. package/dist/form/FileField.vue.d.ts +9 -2
  53. package/dist/form/I18nField.vue.d.ts +9 -2
  54. package/dist/form/MoneyField.vue.d.ts +9 -2
  55. package/dist/form/MonthYearField.vue.d.ts +9 -2
  56. package/dist/form/MultiSelectField.vue.d.ts +2 -2
  57. package/dist/form/NumberField.vue.d.ts +20 -2
  58. package/dist/form/PhotoField.vue.d.ts +9 -2
  59. package/dist/form/SegmentedField.vue.d.ts +2 -2
  60. package/dist/form/SelectField.vue.d.ts +2 -2
  61. package/dist/form/SwitchField.vue.d.ts +2 -2
  62. package/dist/form/TextField.vue.d.ts +9 -2
  63. package/dist/form/TextareaField.vue.d.ts +9 -2
  64. package/dist/form/TimeField.vue.d.ts +9 -2
  65. package/dist/form/field.d.ts +9 -0
  66. package/dist/form/index.d.ts +1 -1
  67. package/dist/form/index.js +1176 -977
  68. package/dist/format/index.js +1 -1
  69. package/dist/format-D8X4zsx6.js +78 -0
  70. package/dist/i18n/index.d.ts +1 -0
  71. package/dist/i18n/index.js +31 -28
  72. package/dist/identity/index.js +1 -1
  73. package/dist/{index-BCw_Ki6z.js → index-C6vCe149.js} +3 -3
  74. package/dist/{index-Chh4z9xW.js → index-DW9gyWL1.js} +8 -8
  75. package/dist/{index-DwdVrW6q.js → index-JjALCpwi.js} +13 -13
  76. package/dist/index.d.ts +1 -1
  77. package/dist/index.js +1 -1
  78. package/dist/internal/intlLocale.d.ts +2 -0
  79. package/dist/intlLocale-CeRU44qJ.js +4 -0
  80. package/dist/notifications/index.js +1 -1
  81. package/dist/page/index.js +5 -5
  82. package/dist/phone/index.js +112 -111
  83. package/dist/resource/index.js +1 -1
  84. package/dist/{rowLayout-D1cYQghV.js → rowLayout-BFz4Kdoy.js} +2 -2
  85. package/dist/{status-cWCAMAmW.js → status-Cz54-7z7.js} +1 -1
  86. package/dist/testing/index.js +1 -1
  87. package/dist/{useCommand-B-N6HJOz.js → useCommand-YN9EMb7s.js} +41 -38
  88. package/dist/{useTypedEntry-aTfPBAhw.js → useTypedEntry-C7k7Dyl-.js} +237 -236
  89. package/package.json +1 -1
  90. package/dist/DateField.vue_vue_type_script_setup_true_lang-DehwWm78.js +0 -256
  91. package/dist/NumberField.vue_vue_type_script_setup_true_lang-Dm6FfJ2T.js +0 -126
  92. package/dist/SegmentedField.vue_vue_type_script_setup_true_lang-B2d55hrh.js +0 -59
  93. package/dist/SwitchField.vue_vue_type_script_setup_true_lang-B2Z2hy_h.js +0 -65
  94. package/dist/TextField.vue_vue_type_script_setup_true_lang-nqnGG7Zc.js +0 -270
  95. package/dist/TextareaField.vue_vue_type_script_setup_true_lang-BgIQyYtf.js +0 -69
  96. package/dist/TimeField.vue_vue_type_script_setup_true_lang-Dr0h-V_8.js +0 -165
  97. package/dist/format-B8mJm946.js +0 -77
@@ -1,5 +1,5 @@
1
1
  import { type ControlWidth } from "../controls";
2
- import { type FieldProps } from "./field";
2
+ import { type FieldProps, type FieldSlots } from "./field";
3
3
  /**
4
4
  * A number. Empty is `null`; the text is read as the user's locale writes numbers (and forgives the
5
5
  * other decimal mark), rounded to `decimals`, shown with grouping when the field is not being edited.
@@ -7,6 +7,10 @@ import { type FieldProps } from "./field";
7
7
  * <NumberField v-bind="form.bind('quantity')" :label="t('quantity')" suffix="pcs" />
8
8
  * <NumberField v-bind="form.bind('weight')" :decimals="2" suffix="kg" />
9
9
  *
10
+ * `decimals` is the most fraction digits the field takes and keeps; `minDecimals` is how many are always shown (default: `decimals`, so an
11
+ * amount reads `1.50`). A coordinate is `:decimals="7" :min-decimals="0" mono` and reads `43.566139`, not `43.5661390`. `mono` sets the
12
+ * number in the monospaced face of `TextField mono`, when it is read character by character.
13
+ *
10
14
  * `:grouping="false"` writes no thousands separator, shown or typed (a year 2024, a coordinate 45.815123), and then a "."
11
15
  * is always a decimal mark, never a group mark.
12
16
  *
@@ -15,23 +19,29 @@ import { type FieldProps } from "./field";
15
19
  * Limits (`min`, `max`) are the validator's job; the field only keeps what cannot be a number out.
16
20
  */
17
21
  type __VLS_Props = FieldProps & {
22
+ /** The most fraction digits the field takes and keeps. */
18
23
  decimals?: number;
24
+ /** The fraction digits always shown, at most `decimals`: `1.50` for `decimals: 2`. Default: `decimals`; `0` shows only the digits the number has. */
25
+ minDecimals?: number;
19
26
  /** Allows a leading minus sign. */
20
27
  negative?: boolean;
21
28
  /** Separates thousands ("1.234.567"); off for years, coordinates and codes. */
22
29
  grouping?: boolean;
23
30
  /** The most digits the field takes, fraction digits included (the sign, separators and decimal mark are not counted): a postal code is `:max-digits="5"`. Further digits are not accepted, as `maxlength` does for text; a pasted longer number keeps its first digits. */
24
31
  maxDigits?: number;
32
+ /** The monospaced face of `TextField mono` (coordinates, codes). */
33
+ mono?: boolean;
25
34
  placeholder?: string;
26
35
  prefix?: string;
27
36
  suffix?: string;
28
37
  /** sm 10rem (the default for numbers) · md · lg · full. */
29
38
  width?: Exclude<ControlWidth, "content">;
30
39
  };
40
+ type __VLS_Slots = FieldSlots;
31
41
  type __VLS_PublicProps = __VLS_Props & {
32
42
  modelValue?: number | null;
33
43
  };
34
- declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
44
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps, {
35
45
  focus: () => void | undefined;
36
46
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
37
47
  "update:modelValue": (value: number | null) => any;
@@ -51,10 +61,18 @@ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
51
61
  hint: string;
52
62
  editable: boolean;
53
63
  lockedReason: string;
64
+ mono: boolean;
54
65
  suffix: string;
55
66
  decimals: number;
67
+ minDecimals: number;
56
68
  negative: boolean;
57
69
  grouping: boolean;
58
70
  maxDigits: number;
59
71
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
72
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
60
73
  export default _default;
74
+ type __VLS_WithSlots<T, S> = T & {
75
+ new (): {
76
+ $slots: S;
77
+ };
78
+ };
@@ -1,4 +1,4 @@
1
- import { type FieldProps } from "./field";
1
+ import { type FieldProps, type FieldSlots } from "./field";
2
2
  /**
3
3
  * One picture. The value is the chosen `File`, or a `string` for a picture the record already has (its URL); `null` is none.
4
4
  * The preview is made here and released when it is replaced or the field goes away; tapping it opens the picture in the `PhotoViewer`
@@ -10,10 +10,11 @@ type __VLS_Props = FieldProps & {
10
10
  accept?: readonly string[];
11
11
  maxSize?: number;
12
12
  };
13
+ type __VLS_Slots = Pick<FieldSlots, "trailing" | "labelTrailing">;
13
14
  type __VLS_PublicProps = __VLS_Props & {
14
15
  modelValue?: File | string | null;
15
16
  };
16
- declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
18
  "update:modelValue": (value: string | File | null) => any;
18
19
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
19
20
  "onUpdate:modelValue"?: ((value: string | File | null) => any) | undefined;
@@ -31,4 +32,10 @@ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {},
31
32
  accept: readonly string[];
32
33
  maxSize: number;
33
34
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
35
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
34
36
  export default _default;
37
+ type __VLS_WithSlots<T, S> = T & {
38
+ new (): {
39
+ $slots: S;
40
+ };
41
+ };
@@ -1,4 +1,4 @@
1
- import { type FieldProps } from "./field";
1
+ import { type FieldProps, type FieldSlots } from "./field";
2
2
  import type { SelectOption } from "./options";
3
3
  declare const _default: <Value extends string | number>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
4
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
@@ -13,7 +13,7 @@ declare const _default: <Value extends string | number>(__VLS_props: NonNullable
13
13
  }) & Partial<{}>> & import("vue").PublicProps;
14
14
  expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
15
15
  attrs: any;
16
- slots: {};
16
+ slots: FieldSlots;
17
17
  emit: (evt: "update:modelValue", value: Value) => void;
18
18
  }>) => import("vue").VNode & {
19
19
  __ctx?: Awaited<typeof __VLS_setup>;
@@ -1,4 +1,4 @@
1
- import { type FieldProps } from "./field";
1
+ import { type FieldProps, type FieldSlots } from "./field";
2
2
  import type { SelectOption } from "./options";
3
3
  import { type OptionsSource } from "./useOptions";
4
4
  declare const _default: <Value extends string | number, Clearable extends boolean = false>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
@@ -16,7 +16,7 @@ declare const _default: <Value extends string | number, Clearable extends boolea
16
16
  }) & Partial<{}>> & import("vue").PublicProps;
17
17
  expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
18
18
  attrs: any;
19
- slots: {};
19
+ slots: FieldSlots;
20
20
  emit: (evt: "update:modelValue", value: Clearable extends true ? Value | null : Value) => void;
21
21
  }>) => import("vue").VNode & {
22
22
  __ctx?: Awaited<typeof __VLS_setup>;
@@ -1,4 +1,4 @@
1
- import { type FieldProps } from "./field";
1
+ import { type FieldProps, type FieldSlots } from "./field";
2
2
  /**
3
3
  * An on/off setting, iOS style: the label with a switch at the row's end. The value is a boolean: a column that
4
4
  * holds 0 and 1, or "0" and "1", is mapped where the record is (`toValues`, the payload), so the switch never has
@@ -11,7 +11,7 @@ import { type FieldProps } from "./field";
11
11
  type __VLS_Props = FieldProps & {
12
12
  size?: "sm" | "md" | "lg";
13
13
  };
14
- type __VLS_Slots = {
14
+ type __VLS_Slots = FieldSlots & {
15
15
  before?: () => unknown;
16
16
  };
17
17
  type __VLS_PublicProps = __VLS_Props & {
@@ -1,5 +1,5 @@
1
1
  import { type ControlWidth } from "../controls";
2
- import { type FieldProps } from "./field";
2
+ import { type FieldProps, type FieldSlots } from "./field";
3
3
  import { type TextSuggestion } from "./suggestions";
4
4
  /**
5
5
  * A line of text: a name, an e-mail address, a code. The value is always a string ("" is empty); a nullable
@@ -40,10 +40,11 @@ type __VLS_Props = FieldProps & {
40
40
  /** The id the last picks are kept under (see `recentChoicesKey`); setting it shows them under "Recent" before typing. */
41
41
  recents?: string;
42
42
  };
43
+ type __VLS_Slots = FieldSlots;
43
44
  type __VLS_PublicProps = __VLS_Props & {
44
45
  modelValue?: string;
45
46
  };
46
- declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
47
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps, {
47
48
  focus: () => void | undefined;
48
49
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
49
50
  "update:modelValue": (value: string) => any;
@@ -84,4 +85,10 @@ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
84
85
  suggestionsDebounce: number;
85
86
  suggestionsLimit: number;
86
87
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
88
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
87
89
  export default _default;
90
+ type __VLS_WithSlots<T, S> = T & {
91
+ new (): {
92
+ $slots: S;
93
+ };
94
+ };
@@ -1,4 +1,4 @@
1
- import { type FieldProps } from "./field";
1
+ import { type FieldProps, type FieldSlots } from "./field";
2
2
  /**
3
3
  * Longer text. On wide screens a labelled textarea is an entry row like the others (the label in the label
4
4
  * column, top-aligned, with "n / max" under it when there is a `maxLength`); on phones, and when `stacked`,
@@ -14,10 +14,11 @@ type __VLS_Props = FieldProps & {
14
14
  /** The label above the field even on wide screens: for a group too narrow for a label column. */
15
15
  stacked?: boolean;
16
16
  };
17
+ type __VLS_Slots = FieldSlots;
17
18
  type __VLS_PublicProps = __VLS_Props & {
18
19
  modelValue?: string;
19
20
  };
20
- declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
21
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps, {
21
22
  focus: () => void | undefined;
22
23
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
23
24
  "update:modelValue": (value: string) => any;
@@ -40,4 +41,10 @@ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
40
41
  maxLength: number;
41
42
  autocomplete: string;
42
43
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
44
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
43
45
  export default _default;
46
+ type __VLS_WithSlots<T, S> = T & {
47
+ new (): {
48
+ $slots: S;
49
+ };
50
+ };
@@ -1,5 +1,5 @@
1
1
  import type { QuickTime } from "./date/quickPicks";
2
- import { type FieldProps } from "./field";
2
+ import { type FieldProps, type FieldSlots } from "./field";
3
3
  /**
4
4
  * A time of day on the clock of the user, without a date or a zone: `"14:35"`, or `null`. Typing is forgiving (`1435`,
5
5
  * `14.35`, `14:35`, `9`, the word for now); the popover (a drum sheet on a phone) has an hour list 00 to 23 and a minute
@@ -15,10 +15,11 @@ type __VLS_Props = FieldProps & {
15
15
  /** Shortcuts: `"now"`, a time such as `"08:00"`, or `{ label, time }`. */
16
16
  quickTimes?: readonly QuickTime[];
17
17
  };
18
+ type __VLS_Slots = FieldSlots;
18
19
  type __VLS_PublicProps = __VLS_Props & {
19
20
  modelValue?: string | null;
20
21
  };
21
- declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
22
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps, {
22
23
  focus: () => void | undefined;
23
24
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
24
25
  "update:modelValue": (value: string | null) => any;
@@ -38,4 +39,10 @@ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
38
39
  minuteStep: number;
39
40
  quickTimes: readonly QuickTime[];
40
41
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
42
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
41
43
  export default _default;
44
+ type __VLS_WithSlots<T, S> = T & {
45
+ new (): {
46
+ $slots: S;
47
+ };
48
+ };
@@ -34,6 +34,15 @@ export declare const fieldDefaults: {
34
34
  presentation: "control";
35
35
  name: undefined;
36
36
  };
37
+ /** The slots every field passes through to its `Field` row (see `Field`). */
38
+ export interface FieldSlots {
39
+ /** A custom read-only presentation (a picked record's card) when the value is not enough. */
40
+ readonly?: () => unknown;
41
+ /** A row action after the control (a per-row Save). */
42
+ trailing?: () => unknown;
43
+ /** At the end of the label's line while editing. */
44
+ labelTrailing?: () => unknown;
45
+ }
37
46
  /** How a row lays out: a label column with a control, a label with a trailing control, a label over a full-width control, or a value. */
38
47
  export type FormRowLayout = "entry" | "setting" | "stacked" | "value";
39
48
  /** The state a `FormGroup` shares with the rows in it. */
@@ -20,7 +20,7 @@ export { default as DateField } from "./DateField.vue";
20
20
  export { default as DateTimeField } from "./DateTimeField.vue";
21
21
  export { default as Field } from "./Field.vue";
22
22
  export { fieldDefaults, fieldProps, formEditableKey, useFieldMode } from "./field";
23
- export type { FieldProps, FormRowLayout } from "./field";
23
+ export type { FieldProps, FieldSlots, FormRowLayout } from "./field";
24
24
  export { default as FileField } from "./FileField.vue";
25
25
  export { checkFile, formatBytes } from "./file";
26
26
  export type { FileProblem } from "./file";