@nexdom/uimed-vue 2.0.0-beta.5 → 2.0.0-beta.50

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.
@@ -1,4 +1,4 @@
1
- import { t as ColorVariant } from "./types-BPXXtbmW.js";
1
+ import { r as ColorVariant, t as ButtonProps } from "./types-BbWo6RIy.js";
2
2
  import { RouteLocationRaw } from "vue-router";
3
3
  //#region src/components/app-bar/types.d.ts
4
4
  /**
@@ -43,13 +43,15 @@ interface AppBarNotification {
43
43
  */
44
44
  read?: boolean;
45
45
  /**
46
- * Date the notification was generated.
46
+ * Free text telling when the notification was generated, shown as is (e.g.
47
+ * `"10:30"`, `"Ontem"` or `"28/09/2026"`). Hidden when omitted or empty.
47
48
  */
48
- date?: Date;
49
+ when?: string;
49
50
  }
50
51
  interface AppBarUserProps {
51
52
  /**
52
- * Major identifier, like the user full name.
53
+ * Major identifier, like the user full name. Without an `img`, the
54
+ * avatar shows its initials (e.g. `"RP"` for `"Rafael Perini"`).
53
55
  */
54
56
  title?: string;
55
57
  /**
@@ -57,7 +59,8 @@ interface AppBarUserProps {
57
59
  */
58
60
  subtitle?: string;
59
61
  /**
60
- * URL leading to a user picture.
62
+ * URL leading to a user picture. When omitted, the avatar shows the initials
63
+ * of the `title`, or a generic icon when there's no title either.
61
64
  */
62
65
  img?: string;
63
66
  /**
@@ -92,6 +95,53 @@ interface Option {
92
95
  action?: () => void;
93
96
  }
94
97
  //#endregion
98
+ //#region src/consts/icons.d.ts
99
+ /**
100
+ * Icon font class of each icon available to the components that accept one (e.g. `UIconButton`
101
+ * and the items of the navigation menu), by its name, in the order the "Ícones" guide page lists
102
+ * them. A name ending in `-alternative` is an alternative version of the same drawing (currently,
103
+ * outlined).
104
+ *
105
+ * To add an icon, add it here and to the list on the "Ícones" guide page (`docs/guide/icons.md`).
106
+ */
107
+ declare const icons: {
108
+ home: string;
109
+ "home-alternative": string;
110
+ account: string;
111
+ "account-alternative": string;
112
+ "account-group": string;
113
+ "account-group-alternative": string;
114
+ calendar: string;
115
+ "calendar-alternative": string;
116
+ "clipboard-text": string;
117
+ "clipboard-text-alternative": string;
118
+ "file-document": string;
119
+ "file-document-alternative": string;
120
+ flask: string;
121
+ "flask-alternative": string;
122
+ folder: string;
123
+ "folder-alternative": string;
124
+ "chart-box": string;
125
+ "chart-box-alternative": string;
126
+ wallet: string;
127
+ "wallet-alternative": string;
128
+ cog: string;
129
+ "cog-alternative": string;
130
+ stethoscope: string;
131
+ pill: string;
132
+ hospital: string;
133
+ };
134
+ //#endregion
135
+ //#region src/consts/types.d.ts
136
+ /**
137
+ * Name of an icon available to the components that accept one (e.g. `UIconButton` and the items
138
+ * of the navigation menu). The full list, with a preview of each icon, is on the "Ícones" guide
139
+ * page.
140
+ *
141
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/icons | Icons Guide}
142
+ */
143
+ type Icon = keyof typeof icons;
144
+ //#endregion
95
145
  //#region src/components/navigation-menu/types.d.ts
96
146
  /**
97
147
  * Props exposed by the {@link NavigationMenu} component.
@@ -113,6 +163,13 @@ type NavigationMenuParentItem = {
113
163
  * Text to present for the group.
114
164
  */
115
165
  description: string;
166
+ /**
167
+ * Icon shown before the group's description. One of the names listed on the "Ícones" guide
168
+ * page.
169
+ *
170
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/icons | Icons Guide}
171
+ */
172
+ icon?: Icon;
116
173
  /**
117
174
  * Child {@link NavigationMenuItem} list.
118
175
  */
@@ -123,6 +180,13 @@ interface NavigationMenuItem {
123
180
  * Text to present for the item.
124
181
  */
125
182
  description: string;
183
+ /**
184
+ * Icon shown before the item's description. One of the names listed on the "Ícones" guide
185
+ * page.
186
+ *
187
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/icons | Icons Guide}
188
+ */
189
+ icon?: Icon;
126
190
  /**
127
191
  * Route to navigate when item is clicked.
128
192
  */
@@ -133,6 +197,22 @@ interface NavigationMenuItem {
133
197
  action?: () => void;
134
198
  }
135
199
  //#endregion
200
+ //#region src/components/footer/types.d.ts
201
+ /**
202
+ * Props of the footer shown by the {@link Main} component.
203
+ */
204
+ type FooterProps = {
205
+ /**
206
+ * Text shown in the footer, e.g. the application version ("Versão 1.4.2").
207
+ * The footer is hidden when it's empty or omitted.
208
+ */
209
+ description?: string;
210
+ /**
211
+ * Component id to use on automated tests.
212
+ */
213
+ dataTestid?: string;
214
+ };
215
+ //#endregion
136
216
  //#region src/components/main/types.d.ts
137
217
  /**
138
218
  * Props exposed by the {@link Main} component.
@@ -144,6 +224,9 @@ type MainProps = {
144
224
  dataTestid?: string;
145
225
  /**
146
226
  * URL to logo image.
227
+ *
228
+ * The logo is decorative (`alt=""`): screen readers identify the app by
229
+ * the app bar title (`appBar.title`).
147
230
  */
148
231
  logo?: string;
149
232
  /**
@@ -154,6 +237,35 @@ type MainProps = {
154
237
  * Navigation menu properties.
155
238
  */
156
239
  navigationMenu?: NavigationMenuProps;
240
+ /**
241
+ * Footer properties. The footer is fixed at the bottom of the screen and
242
+ * is hidden when it's omitted or its `description` is empty.
243
+ *
244
+ * @example
245
+ * ```vue
246
+ * <u-main :footer="{ description: `Versão ${version}` }" />
247
+ * ```
248
+ */
249
+ footer?: FooterProps;
250
+ /**
251
+ * Shows skeleton loaders in place of the user-related parts of the app bar
252
+ * and of the navigation menu items while their data is being loaded.
253
+ * The main content (default slot) isn't affected.
254
+ * @default false
255
+ */
256
+ loading?: boolean;
257
+ /**
258
+ * Applies a color to the background of the whole app, e.g. on landing pages. Text placed
259
+ * directly on the background takes the color the theme pairs with it (white or black), while
260
+ * the app bar, the footer, sections and dialogs keep their own backgrounds. When omitted, the
261
+ * app uses the theme's default background.
262
+ *
263
+ * @example
264
+ * ```vue
265
+ * <u-main background="primary" />
266
+ * ```
267
+ */
268
+ background?: ColorVariant;
157
269
  };
158
270
  //#endregion
159
271
  //#region src/components/main/main.vue.d.ts
@@ -171,8 +283,8 @@ type MainProps = {
171
283
  *
172
284
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/main | Main Guide}
173
285
  */
174
- declare const _default$5: typeof __VLS_export$10;
175
- declare const __VLS_export$10: __VLS_WithSlots$7<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<MainProps & {
286
+ declare const _default$14: typeof __VLS_export$20;
287
+ declare const __VLS_export$20: __VLS_WithSlots$11<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<MainProps & {
176
288
  notificationsOpen?: boolean;
177
289
  }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
178
290
  "update:notificationsOpen": (value: boolean) => any;
@@ -183,84 +295,91 @@ declare const __VLS_export$10: __VLS_WithSlots$7<import("vue", { with: { "resolu
183
295
  }>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
184
296
  default?: (props: {}) => any;
185
297
  }>;
186
- type __VLS_WithSlots$7<T, S> = T & {
298
+ type __VLS_WithSlots$11<T, S> = T & {
299
+ new (): {
300
+ $slots: S;
301
+ };
302
+ };
303
+ //#endregion
304
+ //#region src/components/button/button.vue.d.ts
305
+ /**
306
+ * Button component to be used throughout the application.
307
+ *
308
+ * @example
309
+ * ```vue
310
+ * <template>
311
+ * <u-button color="danger" @click="onClick">
312
+ * Confirmar
313
+ * </u-button>
314
+ * </template>
315
+ * ```
316
+ *
317
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/button | Button Guide}
318
+ */
319
+ declare const _default$1: typeof __VLS_export$19;
320
+ declare const __VLS_export$19: __VLS_WithSlots$10<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ButtonProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
321
+ click: (event: MouseEvent) => any;
322
+ }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ButtonProps> & Readonly<{
323
+ onClick?: ((event: MouseEvent) => any) | undefined;
324
+ }>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
325
+ default?: (props: {}) => any;
326
+ }>;
327
+ type __VLS_WithSlots$10<T, S> = T & {
187
328
  new (): {
188
329
  $slots: S;
189
330
  };
190
331
  };
191
332
  //#endregion
192
- //#region src/components/button/types.d.ts
193
- type ButtonVariant = "primary" | "secondary" | "ghost";
333
+ //#region src/components/icon-button/types.d.ts
194
334
  /**
195
- * Props exposed by the {@link Button} component.
335
+ * Props exposed by the {@link IconButton} component.
196
336
  */
197
- type ButtonProps = {
337
+ type IconButtonProps = {
198
338
  /**
199
- * Applies a distinct style variation to the button.
200
- * One of `primary`, `secondary`, or `ghost`.
201
- * @default "primary"
339
+ * Icon drawn on the button. One of the names listed on the "Ícones" guide page. Assistive
340
+ * technologies ignore it and read `label` instead.
341
+ *
342
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/icons | Icons Guide}
202
343
  */
203
- variant?: ButtonVariant;
344
+ icon: Icon;
204
345
  /**
205
- * Applies a distinct behavior to the button.
206
- * One of `button` or `submit`.
207
- * @default "button"
346
+ * Accessible name of the button, read by assistive technologies instead of the icon. Describe
347
+ * the action the button performs (e.g. "Editar paciente"), not the icon's drawing (e.g.
348
+ * "Lápis").
208
349
  */
209
- type?: "submit" | "button";
350
+ label: string;
210
351
  /**
211
352
  * Applies a color to the button.
212
353
  * One of `primary`, `secondary`, `positive`, `informative`, `caution`, or `danger`.
213
354
  * @default "primary"
214
355
  */
215
356
  color?: ColorVariant;
216
- /**
217
- * Removes the ability to click or target the button.
218
- * @default false
219
- */
220
- disabled?: boolean;
221
- /**
222
- * Displays a loading indicator on the button, disabling interaction.
223
- * @default false
224
- */
225
- loading?: boolean;
226
- /**
227
- * Associated [form](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/form) id.
228
- */
229
- form?: string;
230
357
  /**
231
358
  * Component id to use on automated tests.
232
359
  */
233
360
  dataTestid?: string;
234
361
  };
235
362
  //#endregion
236
- //#region src/components/button/button.vue.d.ts
363
+ //#region src/components/icon-button/icon-button.vue.d.ts
237
364
  /**
238
- * Button component to be used throughout the application.
365
+ * Button that shows only an icon, for actions whose icon is enough to identify them, such as
366
+ * editing a record of a list. Its `label` is the name assistive technologies read.
239
367
  *
240
368
  * @example
241
369
  * ```vue
242
370
  * <template>
243
- * <u-button color="danger" @click="onClick">
244
- * Confirmar
245
- * </u-button>
371
+ * <u-icon-button icon="cog" label="Configurações" @click="onClick" />
246
372
  * </template>
247
373
  * ```
248
374
  *
249
- * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/button | Button Guide}
375
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/icon-button | IconButton Guide}
250
376
  */
251
- declare const _default: typeof __VLS_export$9;
252
- declare const __VLS_export$9: __VLS_WithSlots$6<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ButtonProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
377
+ declare const _default$11: typeof __VLS_export$18;
378
+ declare const __VLS_export$18: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<IconButtonProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
253
379
  click: (event: MouseEvent) => any;
254
- }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ButtonProps> & Readonly<{
380
+ }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<IconButtonProps> & Readonly<{
255
381
  onClick?: ((event: MouseEvent) => any) | undefined;
256
- }>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
257
- default?: (props: {}) => any;
258
- }>;
259
- type __VLS_WithSlots$6<T, S> = T & {
260
- new (): {
261
- $slots: S;
262
- };
263
- };
382
+ }>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
264
383
  //#endregion
265
384
  //#region src/components/inputs/text-field/types.d.ts
266
385
  type TextFieldVariant = "primary" | "secondary";
@@ -278,6 +397,10 @@ type TextFieldProps = {
278
397
  /**
279
398
  * Applies a distinct behavior to the field.
280
399
  * One of `text`, `phone`, `email`, `url`, `password` or `search`.
400
+ *
401
+ * With `password`, the field hides its value and shows a "Mostrar senha"
402
+ * button that toggles between showing and hiding it. The value hides again
403
+ * when the button is pressed again or the type changes.
281
404
  * @default "text"
282
405
  */
283
406
  type?: TextFieldType;
@@ -287,7 +410,9 @@ type TextFieldProps = {
287
410
  */
288
411
  disabled?: boolean;
289
412
  /**
290
- * Displays a loading indicator on the input.
413
+ * Displays a loading indicator on the input. The field keeps its label as
414
+ * accessible name and is marked as busy, and assistive technologies ignore
415
+ * the indicator.
291
416
  * @default false
292
417
  */
293
418
  loading?: boolean;
@@ -326,6 +451,120 @@ type TextFieldProps = {
326
451
  dataTestid?: string;
327
452
  };
328
453
  //#endregion
454
+ //#region src/components/inputs/autocomplete-field/types.d.ts
455
+ /**
456
+ * Autocomplete/Combobox item type that can be either a string or an object with label and value.
457
+ */
458
+ type AutocompleteItem<T = string> = string | {
459
+ label: string;
460
+ value: T;
461
+ };
462
+ /**
463
+ * Props exposed by the {@link AutocompleteField} component.
464
+ */
465
+ type AutocompleteFieldProps<T = string, Multiple extends boolean = false> = {
466
+ /**
467
+ * Applies a distinct style variation to the field.
468
+ * One of `primary` or `secondary`.
469
+ * @default "primary"
470
+ */
471
+ variant?: TextFieldVariant;
472
+ /**
473
+ * Removes the ability to click or target the field.
474
+ * @default false
475
+ */
476
+ disabled?: boolean;
477
+ /**
478
+ * Displays a loading indicator on the input. The field keeps its label as
479
+ * accessible name and is marked as busy, and assistive technologies ignore
480
+ * the indicator.
481
+ * @default false
482
+ */
483
+ loading?: boolean;
484
+ /**
485
+ * Displays clear action.
486
+ * @default false
487
+ */
488
+ clearable?: boolean;
489
+ /**
490
+ * Prevent value changes.
491
+ * @default false
492
+ */
493
+ readonly?: boolean;
494
+ /**
495
+ * Add rules to require field to be filled before form submission.
496
+ * @default false
497
+ */
498
+ required?: boolean;
499
+ /**
500
+ * Field label.
501
+ */
502
+ label?: string;
503
+ /**
504
+ * Field placeholder.
505
+ */
506
+ placeholder?: string;
507
+ /**
508
+ * Field message to show and direct user to fill field correctly.
509
+ *
510
+ * This message will be replaced when there's an error message to be shown.
511
+ */
512
+ hint?: string;
513
+ /**
514
+ * Component id to use on automated tests.
515
+ */
516
+ dataTestid?: string;
517
+ /**
518
+ * Used to prevent user from adding new values to the list.
519
+ * @default false
520
+ */
521
+ strict?: boolean;
522
+ /**
523
+ * Allow selecting/typing more than one value.
524
+ *
525
+ * Passing the literal `true` narrows `modelValue` and `update:modelValue`
526
+ * to `T[]` instead of `T`.
527
+ * @default false
528
+ */
529
+ multiple?: Multiple;
530
+ /**
531
+ * List of autocomplete items. Can be strings or objects with label and value.
532
+ * @default []
533
+ */
534
+ items?: AutocompleteItem<T>[];
535
+ };
536
+ //#endregion
537
+ //#region src/components/inputs/autocomplete-field/autocomplete-field.vue.d.ts
538
+ /**
539
+ * Select field component to be used throughout the application.
540
+ *
541
+ * @example
542
+ * ```vue
543
+ * <template>
544
+ * <u-autocomplete-field label="Country" :items="['Brazil', 'Argentina']" />
545
+ * </template>
546
+ * ```
547
+ *
548
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/autocomplete-field | AutocompleteField Guide}
549
+ */
550
+ declare const _default: typeof __VLS_export$17;
551
+ declare const __VLS_export$17: <T = string, Multiple extends boolean = false>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal$2<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
552
+ props: import("vue").PublicProps & __VLS_PrettifyLocal$2<(AutocompleteFieldProps<T, Multiple> & {
553
+ modelValue?: Multiple extends true ? T[] : T;
554
+ }) & {
555
+ "onUpdate:modelValue"?: ((value: Multiple extends true ? T[] : T | undefined) => any) | undefined;
556
+ }> & (typeof globalThis extends {
557
+ __VLS_PROPS_FALLBACK: infer P;
558
+ } ? P : {});
559
+ expose: (exposed: {}) => void;
560
+ attrs: any;
561
+ slots: {};
562
+ emit: (event: "update:modelValue", value: Multiple extends true ? T[] : T | undefined) => void;
563
+ }>) => import("vue").VNode & {
564
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
565
+ };
566
+ type __VLS_PrettifyLocal$2<T> = (T extends any ? { [K in keyof T]: T[K]; } : { [K in keyof T as K]: T[K]; }) & {};
567
+ //#endregion
329
568
  //#region src/components/inputs/text-field/text-field.vue.d.ts
330
569
  /**
331
570
  * Text field component to be used throughout the application.
@@ -339,8 +578,8 @@ type TextFieldProps = {
339
578
  *
340
579
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/text-field | TextField Guide}
341
580
  */
342
- declare const _default$10: typeof __VLS_export$8;
343
- declare const __VLS_export$8: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<TextFieldProps & {
581
+ declare const _default$20: typeof __VLS_export$16;
582
+ declare const __VLS_export$16: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<TextFieldProps & {
344
583
  modelValue?: string;
345
584
  }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
346
585
  "update:modelValue": (value: string) => any;
@@ -350,8 +589,8 @@ declare const __VLS_export$8: import("vue", { with: { "resolution-mode": "import
350
589
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
351
590
  }>, {
352
591
  variant: TextFieldVariant;
353
- type: TextFieldType;
354
592
  clearable: boolean;
593
+ type: TextFieldType;
355
594
  }, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
356
595
  //#endregion
357
596
  //#region src/components/inputs/checkbox/types.d.ts
@@ -402,9 +641,9 @@ type CheckboxProps<T = boolean> = {
402
641
  *
403
642
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/checkbox | Checkbox Guide}
404
643
  */
405
- declare const _default$1: typeof __VLS_export$7;
406
- declare const __VLS_export$7: <T = any>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
407
- props: import("vue").PublicProps & __VLS_PrettifyLocal<(CheckboxProps<boolean | T> & {
644
+ declare const _default$2: typeof __VLS_export$15;
645
+ declare const __VLS_export$15: <T = any>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal$1<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
646
+ props: import("vue").PublicProps & __VLS_PrettifyLocal$1<(CheckboxProps<boolean | T> & {
408
647
  modelValue?: T;
409
648
  }) & {
410
649
  "onUpdate:modelValue"?: ((value: T) => any) | undefined;
@@ -418,49 +657,378 @@ declare const __VLS_export$7: <T = any>(__VLS_props: NonNullable<Awaited<typeof
418
657
  }>) => import("vue").VNode & {
419
658
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
420
659
  };
421
- type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K]; } : { [K in keyof T as K]: T[K]; }) & {};
660
+ type __VLS_PrettifyLocal$1<T> = (T extends any ? { [K in keyof T]: T[K]; } : { [K in keyof T as K]: T[K]; }) & {};
422
661
  //#endregion
423
- //#region src/components/grid/container/types.d.ts
662
+ //#region src/components/inputs/date-time-field/types.d.ts
663
+ type DateTimeFieldVariant = TextFieldVariant;
664
+ type DateTimeFieldType = "date" | "time" | "datetime";
424
665
  /**
425
- * Props exposed by the {@link Container} component.
666
+ * Props exposed by the {@link DateTimeField} component.
426
667
  */
427
- type ContainerProps = {
668
+ type DateTimeFieldProps = {
669
+ /**
670
+ * Applies a distinct style variation to the field.
671
+ * One of `primary` or `secondary`.
672
+ * @default "primary"
673
+ */
674
+ variant?: DateTimeFieldVariant;
675
+ /**
676
+ * Defines which pickers are available and the format of the value.
677
+ *
678
+ * - `date`: value formatted as `YYYY-MM-DD` (e.g. `2026-09-24`);
679
+ * - `time`: value formatted as `HH:mm`, 24h (e.g. `14:30`);
680
+ * - `datetime`: value formatted as `YYYY-MM-DDTHH:mm` (e.g. `2026-09-24T14:30`).
681
+ * @default "datetime"
682
+ */
683
+ type?: DateTimeFieldType;
684
+ /**
685
+ * Minimum allowed value, in the same format as the value for the current `type`.
686
+ *
687
+ * Earlier options can't be picked, and an earlier value shows an error message.
688
+ * For `datetime`, the time limit only applies to the minimum's own date.
689
+ */
690
+ min?: string;
691
+ /**
692
+ * Maximum allowed value, in the same format as the value for the current `type`.
693
+ *
694
+ * Later options can't be picked, and a later value shows an error message.
695
+ * For `datetime`, the time limit only applies to the maximum's own date.
696
+ */
697
+ max?: string;
698
+ /**
699
+ * Removes the ability to click or target the field.
700
+ * @default false
701
+ */
702
+ disabled?: boolean;
703
+ /**
704
+ * Displays a loading indicator on the input. The field keeps its label as
705
+ * accessible name and is marked as busy, and assistive technologies ignore
706
+ * the indicator.
707
+ * @default false
708
+ */
709
+ loading?: boolean;
710
+ /**
711
+ * Displays clear action, which is hidden while the field is `readonly`.
712
+ * @default false
713
+ */
714
+ clearable?: boolean;
715
+ /**
716
+ * Prevent value changes. The pickers won't open.
717
+ * @default false
718
+ */
719
+ readonly?: boolean;
720
+ /**
721
+ * Add `rules` to require field to be filled before form submission.
722
+ * @default false
723
+ */
724
+ required?: boolean;
725
+ /**
726
+ * Field label.
727
+ */
728
+ label?: string;
729
+ /**
730
+ * Field placeholder.
731
+ */
732
+ placeholder?: string;
733
+ /**
734
+ * Field message to show and direct user to fill field correctly.
735
+ *
736
+ * This message will be replaced when there's an error message to be shown.
737
+ */
738
+ hint?: string;
428
739
  /**
429
740
  * Component id to use on automated tests.
430
741
  */
431
742
  dataTestid?: string;
432
743
  };
433
744
  //#endregion
434
- //#region src/components/grid/container/container.vue.d.ts
745
+ //#region src/components/inputs/date-time-field/date-time-field.vue.d.ts
435
746
  /**
436
- * Container component to be placed at the top of the component tree.
747
+ * Date and/or time field component to be used throughout the application.
748
+ *
749
+ * Its value uses the native input formats: `YYYY-MM-DD` for `date`, `HH:mm`
750
+ * for `time` and `YYYY-MM-DDTHH:mm` for `datetime`.
437
751
  *
438
752
  * @example
439
753
  * ```vue
440
754
  * <template>
441
- * <u-container>
442
- * <!-- uimed-components -->
443
- * </u-container>
755
+ * <u-date-time-field v-model="birthDate" label="Data de nascimento" type="date" />
444
756
  * <template>
445
757
  * ```
446
758
  *
447
- * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Container Guide}
759
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/date-time-field | DateTimeField Guide}
448
760
  */
449
- declare const _default$3: typeof __VLS_export$6;
450
- declare const __VLS_export$6: __VLS_WithSlots$5<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ContainerProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ContainerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
451
- default?: (props: {}) => any;
452
- }>;
453
- type __VLS_WithSlots$5<T, S> = T & {
454
- new (): {
455
- $slots: S;
456
- };
457
- };
761
+ declare const _default$7: typeof __VLS_export$14;
762
+ declare const __VLS_export$14: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<DateTimeFieldProps & {
763
+ modelValue?: string;
764
+ }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
765
+ "update:modelValue": (value: string) => any;
766
+ }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<DateTimeFieldProps & {
767
+ modelValue?: string;
768
+ }> & Readonly<{
769
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
770
+ }>, {
771
+ variant: DateTimeFieldVariant;
772
+ type: DateTimeFieldType;
773
+ }, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
458
774
  //#endregion
459
- //#region src/components/grid/row/types.d.ts
775
+ //#region src/components/inputs/mask-field/types.d.ts
776
+ type MaskFieldVariant = TextFieldVariant;
460
777
  /**
461
- * Props exposed by the {@link Row} component.
778
+ * Masks the library provides:
779
+ *
780
+ * - `cpf`: `###.###.###-##` (e.g. `123.456.789-09`);
781
+ * - `cnpj`: `##.###.###/####-##`, where the first 12 positions also accept
782
+ * letters, typed in uppercase or lowercase and kept in uppercase (e.g.
783
+ * `12.345.678/0001-95` or the alphanumeric `12.ABC.345/01DE-35`);
784
+ * - `cep`: `#####-###` (e.g. `01310-100`);
785
+ * - `phone`: `(##) #####-####` (e.g. `(11) 91234-5678`);
786
+ * - `date`: `##/##/####` (e.g. `31/12/2026`), formatting only.
787
+ */
788
+ type MaskFieldPreset = "cpf" | "cnpj" | "cep" | "phone" | "date";
789
+ /**
790
+ * A preset name, or the mask itself, where `#` is a digit (0–9) and any other
791
+ * character, letters included, is a literal inserted automatically (e.g.
792
+ * `####-##/####` or `Nº ####`).
793
+ *
794
+ * A custom mask must contain at least one `#`, so a misspelled preset (e.g.
795
+ * `"cpff"`) is a type error.
796
+ *
797
+ * @example
798
+ * ```ts
799
+ * const preset: MaskFieldMask = "cpf";
800
+ * const custom: MaskFieldMask = "####-##/####";
801
+ * const withLetters: MaskFieldMask = "Nº ####";
802
+ * ```
803
+ */
804
+ type MaskFieldMask = MaskFieldPreset | `${string}#${string}`;
805
+ /**
806
+ * Props exposed by the {@link MaskField} component.
807
+ */
808
+ type MaskFieldProps = {
809
+ /**
810
+ * Applies a distinct style variation to the field.
811
+ * One of `primary` or `secondary`.
812
+ * @default "primary"
813
+ */
814
+ variant?: MaskFieldVariant;
815
+ /**
816
+ * Mask applied to the value while the user types. One of the presets
817
+ * (`cpf`, `cnpj`, `cep`, `phone` or `date`), or the mask itself, where `#`
818
+ * is a digit (0–9) and any other character, letters included, is a literal
819
+ * inserted automatically (e.g. `####-##/####` or `Nº ####`). A custom mask
820
+ * must contain at least one `#`.
821
+ *
822
+ * Only digits are accepted, up to the number of `#` in the mask, except in
823
+ * the first 12 positions of `cnpj`, which also accept letters (A–Z, without
824
+ * accents, typed in uppercase or lowercase) for the alphanumeric CNPJ (only
825
+ * with `cnpj`: the custom mask `##.###.###/####-##` accepts only digits). The
826
+ * `v-model` holds only these characters, with letters in uppercase (e.g.
827
+ * `12345678909` for `cpf`, and `12345678000195` or `12ABC34501DE35` for
828
+ * `cnpj`). A literal the user could also type, such as a fixed digit
829
+ * (`0800 ###-####`), isn't supported: where the literal is expected, the
830
+ * same character is read as the literal.
831
+ *
832
+ * Editing in the middle of the value shifts the characters after it, and one
833
+ * that doesn't fit its new position (e.g. a letter of `cnpj` shifted into
834
+ * the last 2 positions) is discarded.
835
+ *
836
+ * The `cpf` and `cnpj` masks don't validate check digits.
837
+ *
838
+ * Changing it keeps the `v-model`: a value that doesn't fit the new mask
839
+ * (e.g. longer than it) is displayed cut and fails validation with "Valor
840
+ * inválido".
841
+ */
842
+ mask: MaskFieldMask;
843
+ /**
844
+ * Removes the ability to click or target the field.
845
+ * @default false
846
+ */
847
+ disabled?: boolean;
848
+ /**
849
+ * Displays a loading indicator on the input. The field keeps its label as
850
+ * accessible name and is marked as busy, and assistive technologies ignore
851
+ * the indicator.
852
+ * @default false
853
+ */
854
+ loading?: boolean;
855
+ /**
856
+ * Displays clear action.
857
+ * @default false
858
+ */
859
+ clearable?: boolean;
860
+ /**
861
+ * Prevent value changes.
862
+ * @default false
863
+ */
864
+ readonly?: boolean;
865
+ /**
866
+ * Add `rules` to require field to be filled before form submission.
867
+ * @default false
868
+ */
869
+ required?: boolean;
870
+ /**
871
+ * Field label.
872
+ */
873
+ label?: string;
874
+ /**
875
+ * Field placeholder. Defaults to the mask, with `0` in place of each `#`,
876
+ * e.g. `000.000.000-00` for `cpf`, `00.000.000/0000-00` for `cnpj` and
877
+ * `Nº 0000` for `Nº ####`.
878
+ */
879
+ placeholder?: string;
880
+ /**
881
+ * Field message to show and direct user to fill field correctly.
882
+ *
883
+ * This message will be replaced when there's an error message to be shown.
884
+ */
885
+ hint?: string;
886
+ /**
887
+ * Component id to use on automated tests.
888
+ */
889
+ dataTestid?: string;
890
+ };
891
+ //#endregion
892
+ //#region src/components/inputs/mask-field/mask-field.vue.d.ts
893
+ /**
894
+ * Text field that masks the value while the user types, such as CPF, CNPJ
895
+ * (numeric or alphanumeric), CEP, phone or a custom mask. Its value holds only
896
+ * the typed characters, without the mask's literals and with letters in
897
+ * uppercase.
898
+ *
899
+ * @example
900
+ * ```vue
901
+ * <template>
902
+ * <u-mask-field v-model="cpf" label="CPF" mask="cpf" />
903
+ * <u-mask-field v-model="protocol" label="Protocolo" mask="####-##/####" />
904
+ * </template>
905
+ * ```
906
+ *
907
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/mask-field | MaskField Guide}
908
+ */
909
+ declare const _default$15: typeof __VLS_export$13;
910
+ declare const __VLS_export$13: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<MaskFieldProps & {
911
+ modelValue?: string;
912
+ }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
913
+ "update:modelValue": (value: string) => any;
914
+ }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<MaskFieldProps & {
915
+ modelValue?: string;
916
+ }> & Readonly<{
917
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
918
+ }>, {
919
+ variant: MaskFieldVariant;
920
+ }, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
921
+ //#endregion
922
+ //#region src/components/grid/container/types.d.ts
923
+ /**
924
+ * Props exposed by the {@link Container} component.
925
+ */
926
+ type ContainerProps = {
927
+ /**
928
+ * Stretches the container to the whole height of its parent, which must have a height of its
929
+ * own, e.g. the content area of `UMain`.
930
+ * @default false
931
+ */
932
+ fullHeight?: boolean;
933
+ /**
934
+ * Component id to use on automated tests.
935
+ */
936
+ dataTestid?: string;
937
+ };
938
+ //#endregion
939
+ //#region src/components/grid/container/container.vue.d.ts
940
+ /**
941
+ * Container component to be placed at the top of the component tree.
942
+ *
943
+ * @example
944
+ * ```vue
945
+ * <template>
946
+ * <u-container>
947
+ * <!-- uimed-components -->
948
+ * </u-container>
949
+ * <template>
950
+ * ```
951
+ *
952
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Container Guide}
953
+ */
954
+ declare const _default$4: typeof __VLS_export$12;
955
+ declare const __VLS_export$12: __VLS_WithSlots$9<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ContainerProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ContainerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
956
+ default?: (props: {}) => any;
957
+ }>;
958
+ type __VLS_WithSlots$9<T, S> = T & {
959
+ new (): {
960
+ $slots: S;
961
+ };
962
+ };
963
+ //#endregion
964
+ //#region src/composables/alignment/types.d.ts
965
+ /**
966
+ * Horizontal alignment of a component's items: to the start, to the center or to the end,
967
+ * following the text direction.
968
+ */
969
+ type AlignX = "start" | "center" | "end";
970
+ /**
971
+ * Vertical alignment of a component's items: to the top, to the center, to the bottom, or
972
+ * stretched to the whole height available.
973
+ */
974
+ type AlignY = "start" | "center" | "end" | "stretch";
975
+ //#endregion
976
+ //#region src/components/grid/row/types.d.ts
977
+ /**
978
+ * Props exposed by the {@link Row} component.
462
979
  */
463
980
  type RowProps = {
981
+ /**
982
+ * Horizontal alignment of the row's columns on each line.
983
+ * Available options are:
984
+ * - `"start"`: aligns the columns to the start of the line;
985
+ * - `"center"`: centers the columns horizontally;
986
+ * - `"end"`: aligns the columns to the end of the line.
987
+ *
988
+ * `"start"` and `"end"` follow the text direction. It only has a visible effect when the
989
+ * columns of a line don't fill it, e.g. with `cols="auto"` or sizes adding up to less than 12.
990
+ * When the columns wrap into several lines, each line is aligned on its own.
991
+ *
992
+ * Columns sit side by side only from the `sm` breakpoint up. Below it, each column takes a
993
+ * whole line, so the alignment has no visible effect.
994
+ * @default "start"
995
+ */
996
+ alignX?: AlignX;
997
+ /**
998
+ * Vertical alignment of the row's columns, relative to the tallest column on the same line.
999
+ * Available options are:
1000
+ * - `"start"`: aligns the columns to the top;
1001
+ * - `"center"`: centers the columns vertically;
1002
+ * - `"end"`: aligns the columns to the bottom;
1003
+ * - `"stretch"`: stretches every column to the height of the tallest one.
1004
+ *
1005
+ * Use `"stretch"` to keep side by side columns at the same height, e.g. cards made of
1006
+ * `USection`s with `fullHeight`.
1007
+ *
1008
+ * Columns sit side by side only from the `sm` breakpoint up. Below it, each column takes a
1009
+ * whole line, so the alignment has no visible effect, unless the row has `fullHeight`: then
1010
+ * the columns, as a group, are aligned within the row's height.
1011
+ * @default "start"
1012
+ */
1013
+ alignY?: AlignY;
1014
+ /**
1015
+ * Stretches the row to the whole height of its parent: the visible content area of `UMain`
1016
+ * (below its app bar) or a `UContainer` with `fullHeight`.
1017
+ *
1018
+ * Combine it with `alignY` to place the columns within that height, e.g. `alignY="center"`
1019
+ * and `alignX="center"` to center a login form on the screen. A row with `fullHeight` takes
1020
+ * the whole height by itself, so other rows next to it are pushed below the visible area.
1021
+ * @default false
1022
+ */
1023
+ fullHeight?: boolean;
1024
+ /**
1025
+ * Renders the row as a list (`<ul>`), without the list's default indentation
1026
+ * and bullets, so assistive technologies announce its columns as the items
1027
+ * of a list. Use it for a grid of records that is, semantically, a list,
1028
+ * like cards of patients, and set `listItem` on each of its `UColumn`s.
1029
+ * @default false
1030
+ */
1031
+ list?: boolean;
464
1032
  /**
465
1033
  * Component id to use on automated tests.
466
1034
  */
@@ -475,7 +1043,7 @@ type RowProps = {
475
1043
  * ```vue
476
1044
  * <template>
477
1045
  * <u-container>
478
- * <u-row>
1046
+ * <u-row align-x="center" align-y="center">
479
1047
  * <!-- uimed-column -->
480
1048
  * </u-row>
481
1049
  * </u-container>
@@ -484,11 +1052,11 @@ type RowProps = {
484
1052
  *
485
1053
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Row Guide}
486
1054
  */
487
- declare const _default$6: typeof __VLS_export$5;
488
- declare const __VLS_export$5: __VLS_WithSlots$4<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<RowProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<RowProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
1055
+ declare const _default$16: typeof __VLS_export$11;
1056
+ declare const __VLS_export$11: __VLS_WithSlots$8<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<RowProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<RowProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
489
1057
  default?: (props: {}) => any;
490
1058
  }>;
491
- type __VLS_WithSlots$4<T, S> = T & {
1059
+ type __VLS_WithSlots$8<T, S> = T & {
492
1060
  new (): {
493
1061
  $slots: S;
494
1062
  };
@@ -507,6 +1075,13 @@ type ColumnProps = {
507
1075
  * @default "12"
508
1076
  */
509
1077
  cols?: Cols;
1078
+ /**
1079
+ * Renders the column as an item of a list (`<li>`), without its bullet.
1080
+ * Use it on every column of a `URow` with `list`, whose records are,
1081
+ * semantically, the items of a list.
1082
+ * @default false
1083
+ */
1084
+ listItem?: boolean;
510
1085
  /**
511
1086
  * Component id to use on automated tests.
512
1087
  */
@@ -533,13 +1108,13 @@ type Cols = "auto" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10"
533
1108
  *
534
1109
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Column Guide}
535
1110
  */
536
- declare const _default$2: typeof __VLS_export$4;
537
- declare const __VLS_export$4: __VLS_WithSlots$3<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ColumnProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ColumnProps> & Readonly<{}>, {
1111
+ declare const _default$3: typeof __VLS_export$10;
1112
+ declare const __VLS_export$10: __VLS_WithSlots$7<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ColumnProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ColumnProps> & Readonly<{}>, {
538
1113
  cols: "12" | "auto" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11";
539
1114
  }, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
540
1115
  default?: (props: {}) => any;
541
1116
  }>;
542
- type __VLS_WithSlots$3<T, S> = T & {
1117
+ type __VLS_WithSlots$7<T, S> = T & {
543
1118
  new (): {
544
1119
  $slots: S;
545
1120
  };
@@ -576,15 +1151,15 @@ type FormProps = {
576
1151
  *
577
1152
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/form | Form Guide}
578
1153
  */
579
- declare const _default$4: typeof __VLS_export$3;
580
- declare const __VLS_export$3: __VLS_WithSlots$2<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<FormProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
1154
+ declare const _default$10: typeof __VLS_export$9;
1155
+ declare const __VLS_export$9: __VLS_WithSlots$6<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<FormProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
581
1156
  submit: (event: SubmitEvent) => any;
582
1157
  }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<FormProps> & Readonly<{
583
1158
  onSubmit?: ((event: SubmitEvent) => any) | undefined;
584
1159
  }>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
585
1160
  default?: (props: {}) => any;
586
1161
  }>;
587
- type __VLS_WithSlots$2<T, S> = T & {
1162
+ type __VLS_WithSlots$6<T, S> = T & {
588
1163
  new (): {
589
1164
  $slots: S;
590
1165
  };
@@ -606,11 +1181,11 @@ type __VLS_WithSlots$2<T, S> = T & {
606
1181
  *
607
1182
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/section | Section Guide}
608
1183
  */
609
- declare const _default$8: typeof __VLS_export$2;
610
- declare const __VLS_export$2: __VLS_WithSlots$1<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<{}, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, true, {}, any>, {
1184
+ declare const _default$18: typeof __VLS_export$8;
1185
+ declare const __VLS_export$8: __VLS_WithSlots$5<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<{}, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, true, {}, any>, {
611
1186
  default?: (props: {}) => any;
612
1187
  }>;
613
- type __VLS_WithSlots$1<T, S> = T & {
1188
+ type __VLS_WithSlots$5<T, S> = T & {
614
1189
  new (): {
615
1190
  $slots: S;
616
1191
  };
@@ -618,6 +1193,7 @@ type __VLS_WithSlots$1<T, S> = T & {
618
1193
  //#endregion
619
1194
  //#region src/components/sections/section/types.d.ts
620
1195
  type SectionVariant = "primary" | "secondary";
1196
+ type SectionTextAlign = "start" | "center" | "end";
621
1197
  /**
622
1198
  * Props exposed by the {@link Section} component.
623
1199
  */
@@ -636,6 +1212,20 @@ type SectionProps = {
636
1212
  * Subtitle displayed below the title.
637
1213
  */
638
1214
  subtitle?: string;
1215
+ /**
1216
+ * Horizontal alignment of the section's title, subtitle, content and actions.
1217
+ * Available options are:
1218
+ * - `"start"`: aligns the text to the start (left in left-to-right languages)
1219
+ * and keeps the actions at the end;
1220
+ * - `"center"`: centers the text and the actions;
1221
+ * - `"end"`: aligns the text and the actions to the end.
1222
+ *
1223
+ * Uses `start`/`end` instead of `left`/`right`, so it follows the text
1224
+ * direction in right-to-left languages. Nested components inherit the
1225
+ * alignment, unless they define their own.
1226
+ * @default "start"
1227
+ */
1228
+ textAlign?: SectionTextAlign;
639
1229
  /**
640
1230
  * List of actions displayed at the bottom of the section, inside
641
1231
  * `v-card-actions`. When undefined or empty, no actions area is rendered.
@@ -648,6 +1238,9 @@ type SectionProps = {
648
1238
  fullWidth?: boolean;
649
1239
  /**
650
1240
  * Makes the section occupy 100% of its parent's height.
1241
+ *
1242
+ * Inside a `URow`, set its `alignY` to `"stretch"` so the section takes the height of the
1243
+ * tallest column on the same line.
651
1244
  * @default false
652
1245
  */
653
1246
  fullHeight?: boolean;
@@ -671,7 +1264,8 @@ interface SectionAction extends ButtonProps {
671
1264
  */
672
1265
  label: string;
673
1266
  /**
674
- * Called when the action button is clicked.
1267
+ * Called when the action button is clicked. Not called while the action is `disabled` or
1268
+ * `loading`.
675
1269
  */
676
1270
  onClick?: (event: MouseEvent) => void;
677
1271
  }
@@ -692,11 +1286,11 @@ interface SectionAction extends ButtonProps {
692
1286
  *
693
1287
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/section | Section Guide}
694
1288
  */
695
- declare const _default$7: typeof __VLS_export$1;
696
- declare const __VLS_export$1: __VLS_WithSlots<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<SectionProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<SectionProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
1289
+ declare const _default$17: typeof __VLS_export$7;
1290
+ declare const __VLS_export$7: __VLS_WithSlots$4<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<SectionProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<SectionProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
697
1291
  default?: (props: {}) => any;
698
1292
  }>;
699
- type __VLS_WithSlots<T, S> = T & {
1293
+ type __VLS_WithSlots$4<T, S> = T & {
700
1294
  new (): {
701
1295
  $slots: S;
702
1296
  };
@@ -767,7 +1361,437 @@ type TableProps = {
767
1361
  *
768
1362
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/table | Table Guide}
769
1363
  */
1364
+ declare const _default$19: typeof __VLS_export$6;
1365
+ declare const __VLS_export$6: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<TableProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<TableProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
1366
+ //#endregion
1367
+ //#region src/components/details/types.d.ts
1368
+ type DetailsVariant = "primary" | "secondary";
1369
+ /**
1370
+ * Props exposed by the {@link Details} component.
1371
+ */
1372
+ type DetailsProps = {
1373
+ /**
1374
+ * Applies a distinct style variation to the details.
1375
+ * One of `primary` or `secondary`.
1376
+ * @default "primary"
1377
+ */
1378
+ variant?: DetailsVariant;
1379
+ /**
1380
+ * Title displayed on the header, which expands or collapses the content
1381
+ * when clicked. The header stays clickable even without a title.
1382
+ */
1383
+ title?: string;
1384
+ /**
1385
+ * Shows a skeleton loader in place of the details while data is being
1386
+ * loaded.
1387
+ * @default false
1388
+ */
1389
+ loading?: boolean;
1390
+ /**
1391
+ * Component id to use on automated tests.
1392
+ */
1393
+ dataTestid?: string;
1394
+ };
1395
+ //#endregion
1396
+ //#region src/components/details/details.vue.d.ts
1397
+ /**
1398
+ * Details component to show content that can be expanded or collapsed by
1399
+ * clicking on its title. Starts collapsed.
1400
+ *
1401
+ * @example
1402
+ * ```vue
1403
+ * <template>
1404
+ * <u-details title="Title">
1405
+ * Content
1406
+ * </u-details>
1407
+ * </template>
1408
+ * ```
1409
+ *
1410
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/details | Details Guide}
1411
+ */
1412
+ declare const _default$8: typeof __VLS_export$5;
1413
+ declare const __VLS_export$5: __VLS_WithSlots$3<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<DetailsProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<DetailsProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
1414
+ default?: (props: {}) => any;
1415
+ }>;
1416
+ type __VLS_WithSlots$3<T, S> = T & {
1417
+ new (): {
1418
+ $slots: S;
1419
+ };
1420
+ };
1421
+ //#endregion
1422
+ //#region src/components/img/types.d.ts
1423
+ /**
1424
+ * Props exposed by the {@link Img} component.
1425
+ */
1426
+ type ImgProps = {
1427
+ /**
1428
+ * Path or URL of the image.
1429
+ */
1430
+ src: string;
1431
+ /**
1432
+ * Width of the image. A number sets it in pixels, and a string sets it in
1433
+ * any CSS unit (e.g. `"100%"`). Shrinks to fit the available width when
1434
+ * it's larger (e.g. inside a narrow `UColumn`).
1435
+ */
1436
+ width?: number | string;
1437
+ /**
1438
+ * Height of the image. A number sets it in pixels, and a string sets it in
1439
+ * any CSS unit (e.g. `"10rem"`).
1440
+ */
1441
+ height?: number | string;
1442
+ /**
1443
+ * Proportion between width and height (e.g. `16 / 9`), used to reserve the
1444
+ * image's space before it loads. Ignored when `height` is set.
1445
+ */
1446
+ aspectRatio?: number;
1447
+ /**
1448
+ * Fills the image's area, cropping the image when its proportion differs
1449
+ * from the area's. By default, the whole image is shown inside the area.
1450
+ * @default false
1451
+ */
1452
+ cover?: boolean;
1453
+ /**
1454
+ * Loads the image right away, instead of when it's about to become
1455
+ * visible. Use it for images visible when the page opens, such as a logo.
1456
+ * @default false
1457
+ */
1458
+ eager?: boolean;
1459
+ /**
1460
+ * Component id to use on automated tests.
1461
+ */
1462
+ dataTestid?: string;
1463
+ };
1464
+ //#endregion
1465
+ //#region src/components/img/img.vue.d.ts
1466
+ /**
1467
+ * Decorative image, ignored by assistive technologies, loaded when it's about
1468
+ * to become visible. Set its dimensions to reserve its space before it loads.
1469
+ *
1470
+ * @example
1471
+ * ```vue
1472
+ * <template>
1473
+ * <u-row>
1474
+ * <u-column cols="12">
1475
+ * <u-img src="/logo.svg" :width="380" :height="88" eager />
1476
+ * </u-column>
1477
+ * </u-row>
1478
+ * </template>
1479
+ * ```
1480
+ *
1481
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/img | Img Guide}
1482
+ */
1483
+ declare const _default$12: typeof __VLS_export$4;
1484
+ declare const __VLS_export$4: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ImgProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ImgProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
1485
+ //#endregion
1486
+ //#region src/components/link/types.d.ts
1487
+ /**
1488
+ * Props exposed by the {@link Link} component.
1489
+ */
1490
+ type LinkProps = {
1491
+ /**
1492
+ * Where the link goes. A route inside the app (`"/login"`,
1493
+ * `{ name: "forgot-password" }`) navigates through the app's router; a URL
1494
+ * starting with `http` navigates through the browser, in the same tab.
1495
+ */
1496
+ route: RouteLocationRaw;
1497
+ /**
1498
+ * Component id to use on automated tests.
1499
+ */
1500
+ dataTestid?: string;
1501
+ };
1502
+ //#endregion
1503
+ //#region src/components/link/link.vue.d.ts
1504
+ /**
1505
+ * Standalone text link, such as "Forgot your password?" below a login form.
1506
+ * Routes inside the app navigate through the app's router, and URLs starting
1507
+ * with `http` navigate through the browser, in the same tab.
1508
+ *
1509
+ * @example
1510
+ * ```vue
1511
+ * <template>
1512
+ * <u-link route="/forgot-password">Forgot your password?</u-link>
1513
+ * </template>
1514
+ * ```
1515
+ *
1516
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/link | Link Guide}
1517
+ */
1518
+ declare const _default$13: typeof __VLS_export$3;
1519
+ declare const __VLS_export$3: __VLS_WithSlots$2<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<LinkProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<LinkProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
1520
+ default?: (props: {}) => any;
1521
+ }>;
1522
+ type __VLS_WithSlots$2<T, S> = T & {
1523
+ new (): {
1524
+ $slots: S;
1525
+ };
1526
+ };
1527
+ //#endregion
1528
+ //#region src/components/data-sets/data-set/types.d.ts
1529
+ /**
1530
+ * Number of records shown side by side on each row of a {@link DataSet}.
1531
+ */
1532
+ type DataSetColumns = 1 | 2 | 3 | 4 | 6;
1533
+ /**
1534
+ * Props exposed by the {@link DataSet} component.
1535
+ */
1536
+ type DataSetProps<T extends object> = {
1537
+ /**
1538
+ * Records to be listed. Each record of the current page is passed, as is,
1539
+ * to the default slot.
1540
+ * @default []
1541
+ */
1542
+ items?: T[];
1543
+ /**
1544
+ * Maximum number of records shown side by side on each row of the grid.
1545
+ * One of `1`, `2`, `3`, `4` or `6`.
1546
+ *
1547
+ * It's reduced to the largest of these values that keeps each record's card
1548
+ * at least 240px wide within the data set's own width, so narrow
1549
+ * containers, like dialogs or side panels, show fewer records per row, down
1550
+ * to a single one. On extra small screens, each record always takes the
1551
+ * full width.
1552
+ * @default 3
1553
+ */
1554
+ columns?: DataSetColumns;
1555
+ /**
1556
+ * Maximum number of records shown per page. Page controls are only shown
1557
+ * when there's more than one page.
1558
+ * @default 10
1559
+ */
1560
+ itemsPerPage?: number;
1561
+ /**
1562
+ * Shows a search field above the records, bound to `v-model:search`.
1563
+ * @default false
1564
+ */
1565
+ searchable?: boolean;
1566
+ /**
1567
+ * Record properties considered by the search. When undefined or empty,
1568
+ * every property of the record is considered.
1569
+ */
1570
+ searchKeys?: Array<Extract<keyof T, string>>;
1571
+ /**
1572
+ * Message shown when there are no records to list, either because `items`
1573
+ * is empty or because no record matches the search.
1574
+ * @default "Nenhum registro encontrado."
1575
+ */
1576
+ noDataText?: string;
1577
+ /**
1578
+ * Shows a skeleton loader in place of the records while data is being
1579
+ * loaded.
1580
+ * @default false
1581
+ */
1582
+ loading?: boolean;
1583
+ /**
1584
+ * Component id to use on automated tests.
1585
+ */
1586
+ dataTestid?: string;
1587
+ };
1588
+ /**
1589
+ * Slots exposed by the {@link DataSet} component.
1590
+ */
1591
+ type DataSetSlots<T extends object> = {
1592
+ /**
1593
+ * Renders each record of the current page in its own grid column, usually
1594
+ * with `UDataSetItem`.
1595
+ * @param props.item The original record, from `items`.
1596
+ * @param props.index Position of the record inside the current page.
1597
+ */
1598
+ default?: (props: {
1599
+ item: T;
1600
+ index: number;
1601
+ }) => unknown;
1602
+ };
1603
+ //#endregion
1604
+ //#region src/components/data-sets/data-set/data-set.vue.d.ts
1605
+ /**
1606
+ * Data set component to list records as a responsive grid of cards, with
1607
+ * client-side pagination and an optional search field. Each record of the
1608
+ * current page is rendered by the default slot, usually with `UDataSetItem`.
1609
+ *
1610
+ * @example
1611
+ * ```vue
1612
+ * <template>
1613
+ * <u-data-set :items="patients" :columns="4" searchable>
1614
+ * <template #default="{ item }">
1615
+ * <u-data-set-item :title="item.name" :subtitle="item.plan" />
1616
+ * </template>
1617
+ * </u-data-set>
1618
+ * </template>
1619
+ * ```
1620
+ *
1621
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/data-set | DataSet Guide}
1622
+ */
1623
+ declare const _default$5: typeof __VLS_export$2;
1624
+ declare const __VLS_export$2: <T extends object>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
1625
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<(DataSetProps<T> & {
1626
+ page?: number;
1627
+ search?: string;
1628
+ }) & {
1629
+ "onUpdate:page"?: ((value: number) => any) | undefined;
1630
+ "onUpdate:search"?: ((value: string) => any) | undefined;
1631
+ }> & (typeof globalThis extends {
1632
+ __VLS_PROPS_FALLBACK: infer P;
1633
+ } ? P : {});
1634
+ expose: (exposed: {}) => void;
1635
+ attrs: any;
1636
+ slots: DataSetSlots<T>;
1637
+ emit: ((event: "update:page", value: number) => void) & ((event: "update:search", value: string) => void);
1638
+ }>) => import("vue").VNode & {
1639
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
1640
+ };
1641
+ type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K]; } : { [K in keyof T as K]: T[K]; }) & {};
1642
+ //#endregion
1643
+ //#region src/components/data-sets/data-set-item/types.d.ts
1644
+ /**
1645
+ * Props exposed by the {@link DataSetItem} component.
1646
+ */
1647
+ type DataSetItemProps = {
1648
+ /**
1649
+ * Title displayed at the top of the record's card.
1650
+ */
1651
+ title?: string;
1652
+ /**
1653
+ * Short description displayed below the title.
1654
+ */
1655
+ subtitle?: string;
1656
+ /**
1657
+ * Applies a distinct style variation to the record's card, just like on
1658
+ * `USection`. One of `primary` or `secondary`.
1659
+ * @default "primary"
1660
+ */
1661
+ variant?: SectionVariant;
1662
+ /**
1663
+ * Actions of the record, like "Editar" and "Excluir", displayed at the
1664
+ * bottom of its card, just like on `USection`. When undefined or empty, no
1665
+ * actions area is rendered.
1666
+ */
1667
+ actions?: SectionAction[];
1668
+ /**
1669
+ * Component id to use on automated tests.
1670
+ */
1671
+ dataTestid?: string;
1672
+ };
1673
+ /**
1674
+ * Slots exposed by the {@link DataSetItem} component.
1675
+ */
1676
+ type DataSetItemSlots = {
1677
+ /**
1678
+ * Details of the record, displayed below the title and subtitle, like a
1679
+ * vertical `UTable` with some of its fields.
1680
+ */
1681
+ default?: () => unknown;
1682
+ };
1683
+ //#endregion
1684
+ //#region src/components/data-sets/data-set-item/data-set-item.vue.d.ts
1685
+ /**
1686
+ * Card of a single record listed by a {@link DataSet}, built on `USection`.
1687
+ * It fills the height of its grid column, so the cards of a row line up. Its
1688
+ * details, like a vertical `UTable`, go in the default slot.
1689
+ *
1690
+ * @example
1691
+ * ```vue
1692
+ * <template>
1693
+ * <u-data-set :items="patients">
1694
+ * <template #default="{ item }">
1695
+ * <u-data-set-item
1696
+ * :title="item.name"
1697
+ * subtitle="Beneficiário"
1698
+ * :actions="[{ label: 'Editar', variant: 'secondary', onClick: () => edit(item) }]"
1699
+ * >
1700
+ * <u-table :headers="['Plano', 'Idade']" :items="[[item.plan, item.age]]" vertical />
1701
+ * </u-data-set-item>
1702
+ * </template>
1703
+ * </u-data-set>
1704
+ * </template>
1705
+ * ```
1706
+ *
1707
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/data-set | DataSet Guide}
1708
+ */
1709
+ declare const _default$6: typeof __VLS_export$1;
1710
+ declare const __VLS_export$1: __VLS_WithSlots$1<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<DataSetItemProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<DataSetItemProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, DataSetItemSlots>;
1711
+ type __VLS_WithSlots$1<T, S> = T & {
1712
+ new (): {
1713
+ $slots: S;
1714
+ };
1715
+ };
1716
+ //#endregion
1717
+ //#region src/components/dialogs/dialog/types.d.ts
1718
+ type DialogSize = "small" | "medium" | "large";
1719
+ /**
1720
+ * Props exposed by the {@link Dialog} component.
1721
+ */
1722
+ type DialogProps = {
1723
+ /**
1724
+ * Plain text displayed as the dialog's title, in a single line. HTML isn't interpreted.
1725
+ * Also used as the dialog's accessible name. Without it, the content is the accessible name.
1726
+ */
1727
+ title?: string;
1728
+ /**
1729
+ * Buttons displayed at the bottom of the dialog, right-aligned, in the given order.
1730
+ * Place the main action last. When undefined or empty, no actions area is rendered.
1731
+ * Clicking an action doesn't close the dialog: set `v-model` to `false` in `onClick`.
1732
+ * While any action is `loading`, the user can't close the dialog with `Esc`, a click outside or
1733
+ * the browser's back button, but setting `v-model` to `false` still closes it.
1734
+ */
1735
+ actions?: DialogButtonAction[];
1736
+ /**
1737
+ * Maximum width of the dialog.
1738
+ * One of `small` (400px), `medium` (560px), or `large` (800px).
1739
+ * @default "medium"
1740
+ */
1741
+ size?: DialogSize;
1742
+ /**
1743
+ * Component id to use on automated tests.
1744
+ */
1745
+ dataTestid?: string;
1746
+ };
1747
+ /**
1748
+ * A single action rendered inside {@link Dialog}'s actions area. Same shape as `USection`'s
1749
+ * actions. While it's `loading`, the user can't close the dialog, but setting `v-model` to `false` still does.
1750
+ */
1751
+ interface DialogButtonAction extends ButtonProps {
1752
+ /**
1753
+ * Text displayed on the action button.
1754
+ */
1755
+ label: string;
1756
+ /**
1757
+ * Called when the action button is clicked. Not called while the action is `disabled` or
1758
+ * `loading`. The dialog stays open.
1759
+ */
1760
+ onClick?: (event: MouseEvent) => void;
1761
+ }
1762
+ //#endregion
1763
+ //#region src/components/dialogs/dialog/dialog.vue.d.ts
1764
+ /**
1765
+ * Dialog component to display content in a modal window, over the page, until it's closed.
1766
+ * Its title and actions stay in place while the content scrolls.
1767
+ *
1768
+ * @example
1769
+ * ```vue
1770
+ * <template>
1771
+ * <u-dialog v-model="open" title="Title" :actions="[{ label: 'Close', onClick: () => (open = false) }]">
1772
+ * Content
1773
+ * </u-dialog>
1774
+ * </template>
1775
+ * ```
1776
+ *
1777
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/dialog | Dialog Guide}
1778
+ */
770
1779
  declare const _default$9: typeof __VLS_export;
771
- declare const __VLS_export: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<TableProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<TableProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
1780
+ declare const __VLS_export: __VLS_WithSlots<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<DialogProps & {
1781
+ modelValue?: boolean;
1782
+ }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
1783
+ "update:modelValue": (value: boolean) => any;
1784
+ }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<DialogProps & {
1785
+ modelValue?: boolean;
1786
+ }> & Readonly<{
1787
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1788
+ }>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
1789
+ default?: (props: {}) => any;
1790
+ }>;
1791
+ type __VLS_WithSlots<T, S> = T & {
1792
+ new (): {
1793
+ $slots: S;
1794
+ };
1795
+ };
772
1796
  //#endregion
773
- export { _default as UButton, _default$1 as UCheckbox, _default$2 as UColumn, _default$3 as UContainer, _default$4 as UForm, _default$5 as UMain, _default$6 as URow, _default$7 as USection, _default$8 as USectionContent, _default$9 as UTable, _default$10 as UTextField };
1797
+ export { _default as UAutocompleteField, _default$1 as UButton, _default$2 as UCheckbox, _default$3 as UColumn, _default$4 as UContainer, _default$5 as UDataSet, _default$6 as UDataSetItem, _default$7 as UDateTimeField, _default$8 as UDetails, _default$9 as UDialog, _default$10 as UForm, _default$11 as UIconButton, _default$12 as UImg, _default$13 as ULink, _default$14 as UMain, _default$15 as UMaskField, _default$16 as URow, _default$17 as USection, _default$18 as USectionContent, _default$19 as UTable, _default$20 as UTextField };