@nexdom/uimed-vue 2.0.0-beta.4 → 2.0.0-beta.40

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 { t as ButtonProps } from "./types-CjaJ2WAC.js";
2
2
  import { RouteLocationRaw } from "vue-router";
3
3
  //#region src/components/app-bar/types.d.ts
4
4
  /**
@@ -43,9 +43,10 @@ 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
  /**
@@ -133,6 +134,22 @@ interface NavigationMenuItem {
133
134
  action?: () => void;
134
135
  }
135
136
  //#endregion
137
+ //#region src/components/footer/types.d.ts
138
+ /**
139
+ * Props of the footer shown by the {@link Main} component.
140
+ */
141
+ type FooterProps = {
142
+ /**
143
+ * Text shown in the footer, e.g. the application version ("Versão 1.4.2").
144
+ * The footer is hidden when it's empty or omitted.
145
+ */
146
+ description?: string;
147
+ /**
148
+ * Component id to use on automated tests.
149
+ */
150
+ dataTestid?: string;
151
+ };
152
+ //#endregion
136
153
  //#region src/components/main/types.d.ts
137
154
  /**
138
155
  * Props exposed by the {@link Main} component.
@@ -144,6 +161,9 @@ type MainProps = {
144
161
  dataTestid?: string;
145
162
  /**
146
163
  * URL to logo image.
164
+ *
165
+ * The logo is decorative (`alt=""`): screen readers identify the app by
166
+ * the app bar title (`appBar.title`).
147
167
  */
148
168
  logo?: string;
149
169
  /**
@@ -154,6 +174,23 @@ type MainProps = {
154
174
  * Navigation menu properties.
155
175
  */
156
176
  navigationMenu?: NavigationMenuProps;
177
+ /**
178
+ * Footer properties. The footer is fixed at the bottom of the screen and
179
+ * is hidden when it's omitted or its `description` is empty.
180
+ *
181
+ * @example
182
+ * ```vue
183
+ * <u-main :footer="{ description: `Versão ${version}` }" />
184
+ * ```
185
+ */
186
+ footer?: FooterProps;
187
+ /**
188
+ * Shows skeleton loaders in place of the user-related parts of the app bar
189
+ * and of the navigation menu items while their data is being loaded.
190
+ * The main content (default slot) isn't affected.
191
+ * @default false
192
+ */
193
+ loading?: boolean;
157
194
  };
158
195
  //#endregion
159
196
  //#region src/components/main/main.vue.d.ts
@@ -171,8 +208,8 @@ type MainProps = {
171
208
  *
172
209
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/main | Main Guide}
173
210
  */
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 & {
211
+ declare const _default$13: typeof __VLS_export$19;
212
+ declare const __VLS_export$19: __VLS_WithSlots$11<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<MainProps & {
176
213
  notificationsOpen?: boolean;
177
214
  }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
178
215
  "update:notificationsOpen": (value: boolean) => any;
@@ -183,56 +220,12 @@ declare const __VLS_export$10: __VLS_WithSlots$7<import("vue", { with: { "resolu
183
220
  }>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
184
221
  default?: (props: {}) => any;
185
222
  }>;
186
- type __VLS_WithSlots$7<T, S> = T & {
223
+ type __VLS_WithSlots$11<T, S> = T & {
187
224
  new (): {
188
225
  $slots: S;
189
226
  };
190
227
  };
191
228
  //#endregion
192
- //#region src/components/button/types.d.ts
193
- type ButtonVariant = "primary" | "secondary" | "ghost";
194
- /**
195
- * Props exposed by the {@link Button} component.
196
- */
197
- type ButtonProps = {
198
- /**
199
- * Applies a distinct style variation to the button.
200
- * One of `primary`, `secondary`, or `ghost`.
201
- * @default "primary"
202
- */
203
- variant?: ButtonVariant;
204
- /**
205
- * Applies a distinct behavior to the button.
206
- * One of `button` or `submit`.
207
- * @default "button"
208
- */
209
- type?: "submit" | "button";
210
- /**
211
- * Applies a color to the button.
212
- * One of `primary`, `secondary`, `positive`, `informative`, `caution`, or `danger`.
213
- * @default "primary"
214
- */
215
- 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
- /**
231
- * Component id to use on automated tests.
232
- */
233
- dataTestid?: string;
234
- };
235
- //#endregion
236
229
  //#region src/components/button/button.vue.d.ts
237
230
  /**
238
231
  * Button component to be used throughout the application.
@@ -248,15 +241,15 @@ type ButtonProps = {
248
241
  *
249
242
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/button | Button Guide}
250
243
  */
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, {} & {
244
+ declare const _default$1: typeof __VLS_export$18;
245
+ declare const __VLS_export$18: __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, {} & {
253
246
  click: (event: MouseEvent) => any;
254
247
  }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ButtonProps> & Readonly<{
255
248
  onClick?: ((event: MouseEvent) => any) | undefined;
256
249
  }>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
257
250
  default?: (props: {}) => any;
258
251
  }>;
259
- type __VLS_WithSlots$6<T, S> = T & {
252
+ type __VLS_WithSlots$10<T, S> = T & {
260
253
  new (): {
261
254
  $slots: S;
262
255
  };
@@ -278,6 +271,10 @@ type TextFieldProps = {
278
271
  /**
279
272
  * Applies a distinct behavior to the field.
280
273
  * One of `text`, `phone`, `email`, `url`, `password` or `search`.
274
+ *
275
+ * With `password`, the field hides its value and shows a "Mostrar senha"
276
+ * button that toggles between showing and hiding it. The value hides again
277
+ * when the button is pressed again or the type changes.
281
278
  * @default "text"
282
279
  */
283
280
  type?: TextFieldType;
@@ -287,7 +284,9 @@ type TextFieldProps = {
287
284
  */
288
285
  disabled?: boolean;
289
286
  /**
290
- * Displays a loading indicator on the input.
287
+ * Displays a loading indicator on the input. The field keeps its label as
288
+ * accessible name and is marked as busy, and assistive technologies ignore
289
+ * the indicator.
291
290
  * @default false
292
291
  */
293
292
  loading?: boolean;
@@ -326,6 +325,120 @@ type TextFieldProps = {
326
325
  dataTestid?: string;
327
326
  };
328
327
  //#endregion
328
+ //#region src/components/inputs/autocomplete-field/types.d.ts
329
+ /**
330
+ * Autocomplete/Combobox item type that can be either a string or an object with label and value.
331
+ */
332
+ type AutocompleteItem<T = string> = string | {
333
+ label: string;
334
+ value: T;
335
+ };
336
+ /**
337
+ * Props exposed by the {@link AutocompleteField} component.
338
+ */
339
+ type AutocompleteFieldProps<T = string, Multiple extends boolean = false> = {
340
+ /**
341
+ * Applies a distinct style variation to the field.
342
+ * One of `primary` or `secondary`.
343
+ * @default "primary"
344
+ */
345
+ variant?: TextFieldVariant;
346
+ /**
347
+ * Removes the ability to click or target the field.
348
+ * @default false
349
+ */
350
+ disabled?: boolean;
351
+ /**
352
+ * Displays a loading indicator on the input. The field keeps its label as
353
+ * accessible name and is marked as busy, and assistive technologies ignore
354
+ * the indicator.
355
+ * @default false
356
+ */
357
+ loading?: boolean;
358
+ /**
359
+ * Displays clear action.
360
+ * @default false
361
+ */
362
+ clearable?: boolean;
363
+ /**
364
+ * Prevent value changes.
365
+ * @default false
366
+ */
367
+ readonly?: boolean;
368
+ /**
369
+ * Add rules to require field to be filled before form submission.
370
+ * @default false
371
+ */
372
+ required?: boolean;
373
+ /**
374
+ * Field label.
375
+ */
376
+ label?: string;
377
+ /**
378
+ * Field placeholder.
379
+ */
380
+ placeholder?: string;
381
+ /**
382
+ * Field message to show and direct user to fill field correctly.
383
+ *
384
+ * This message will be replaced when there's an error message to be shown.
385
+ */
386
+ hint?: string;
387
+ /**
388
+ * Component id to use on automated tests.
389
+ */
390
+ dataTestid?: string;
391
+ /**
392
+ * Used to prevent user from adding new values to the list.
393
+ * @default false
394
+ */
395
+ strict?: boolean;
396
+ /**
397
+ * Allow selecting/typing more than one value.
398
+ *
399
+ * Passing the literal `true` narrows `modelValue` and `update:modelValue`
400
+ * to `T[]` instead of `T`.
401
+ * @default false
402
+ */
403
+ multiple?: Multiple;
404
+ /**
405
+ * List of autocomplete items. Can be strings or objects with label and value.
406
+ * @default []
407
+ */
408
+ items?: AutocompleteItem<T>[];
409
+ };
410
+ //#endregion
411
+ //#region src/components/inputs/autocomplete-field/autocomplete-field.vue.d.ts
412
+ /**
413
+ * Select field component to be used throughout the application.
414
+ *
415
+ * @example
416
+ * ```vue
417
+ * <template>
418
+ * <u-autocomplete-field label="Country" :items="['Brazil', 'Argentina']" />
419
+ * </template>
420
+ * ```
421
+ *
422
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/autocomplete-field | AutocompleteField Guide}
423
+ */
424
+ declare const _default: typeof __VLS_export$17;
425
+ 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<{
426
+ props: import("vue").PublicProps & __VLS_PrettifyLocal$2<(AutocompleteFieldProps<T, Multiple> & {
427
+ modelValue?: Multiple extends true ? T[] : T;
428
+ }) & {
429
+ "onUpdate:modelValue"?: ((value: Multiple extends true ? T[] : T | undefined) => any) | undefined;
430
+ }> & (typeof globalThis extends {
431
+ __VLS_PROPS_FALLBACK: infer P;
432
+ } ? P : {});
433
+ expose: (exposed: {}) => void;
434
+ attrs: any;
435
+ slots: {};
436
+ emit: (event: "update:modelValue", value: Multiple extends true ? T[] : T | undefined) => void;
437
+ }>) => import("vue").VNode & {
438
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
439
+ };
440
+ type __VLS_PrettifyLocal$2<T> = (T extends any ? { [K in keyof T]: T[K]; } : { [K in keyof T as K]: T[K]; }) & {};
441
+ //#endregion
329
442
  //#region src/components/inputs/text-field/text-field.vue.d.ts
330
443
  /**
331
444
  * Text field component to be used throughout the application.
@@ -339,8 +452,8 @@ type TextFieldProps = {
339
452
  *
340
453
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/text-field | TextField Guide}
341
454
  */
342
- declare const _default$10: typeof __VLS_export$8;
343
- declare const __VLS_export$8: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<TextFieldProps & {
455
+ declare const _default$19: typeof __VLS_export$16;
456
+ declare const __VLS_export$16: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<TextFieldProps & {
344
457
  modelValue?: string;
345
458
  }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
346
459
  "update:modelValue": (value: string) => any;
@@ -402,9 +515,9 @@ type CheckboxProps<T = boolean> = {
402
515
  *
403
516
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/checkbox | Checkbox Guide}
404
517
  */
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> & {
518
+ declare const _default$2: typeof __VLS_export$15;
519
+ 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<{
520
+ props: import("vue").PublicProps & __VLS_PrettifyLocal$1<(CheckboxProps<boolean | T> & {
408
521
  modelValue?: T;
409
522
  }) & {
410
523
  "onUpdate:modelValue"?: ((value: T) => any) | undefined;
@@ -418,13 +531,268 @@ declare const __VLS_export$7: <T = any>(__VLS_props: NonNullable<Awaited<typeof
418
531
  }>) => import("vue").VNode & {
419
532
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
420
533
  };
421
- type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K]; } : { [K in keyof T as K]: T[K]; }) & {};
534
+ type __VLS_PrettifyLocal$1<T> = (T extends any ? { [K in keyof T]: T[K]; } : { [K in keyof T as K]: T[K]; }) & {};
535
+ //#endregion
536
+ //#region src/components/inputs/date-time-field/types.d.ts
537
+ type DateTimeFieldVariant = TextFieldVariant;
538
+ type DateTimeFieldType = "date" | "time" | "datetime";
539
+ /**
540
+ * Props exposed by the {@link DateTimeField} component.
541
+ */
542
+ type DateTimeFieldProps = {
543
+ /**
544
+ * Applies a distinct style variation to the field.
545
+ * One of `primary` or `secondary`.
546
+ * @default "primary"
547
+ */
548
+ variant?: DateTimeFieldVariant;
549
+ /**
550
+ * Defines which pickers are available and the format of the value.
551
+ *
552
+ * - `date`: value formatted as `YYYY-MM-DD` (e.g. `2026-09-24`);
553
+ * - `time`: value formatted as `HH:mm`, 24h (e.g. `14:30`);
554
+ * - `datetime`: value formatted as `YYYY-MM-DDTHH:mm` (e.g. `2026-09-24T14:30`).
555
+ * @default "datetime"
556
+ */
557
+ type?: DateTimeFieldType;
558
+ /**
559
+ * Minimum allowed value, in the same format as the value for the current `type`.
560
+ *
561
+ * Earlier options can't be picked, and an earlier value shows an error message.
562
+ * For `datetime`, the time limit only applies to the minimum's own date.
563
+ */
564
+ min?: string;
565
+ /**
566
+ * Maximum allowed value, in the same format as the value for the current `type`.
567
+ *
568
+ * Later options can't be picked, and a later value shows an error message.
569
+ * For `datetime`, the time limit only applies to the maximum's own date.
570
+ */
571
+ max?: string;
572
+ /**
573
+ * Removes the ability to click or target the field.
574
+ * @default false
575
+ */
576
+ disabled?: boolean;
577
+ /**
578
+ * Displays a loading indicator on the input. The field keeps its label as
579
+ * accessible name and is marked as busy, and assistive technologies ignore
580
+ * the indicator.
581
+ * @default false
582
+ */
583
+ loading?: boolean;
584
+ /**
585
+ * Displays clear action, which is hidden while the field is `readonly`.
586
+ * @default false
587
+ */
588
+ clearable?: boolean;
589
+ /**
590
+ * Prevent value changes. The pickers won't open.
591
+ * @default false
592
+ */
593
+ readonly?: boolean;
594
+ /**
595
+ * Add `rules` to require field to be filled before form submission.
596
+ * @default false
597
+ */
598
+ required?: boolean;
599
+ /**
600
+ * Field label.
601
+ */
602
+ label?: string;
603
+ /**
604
+ * Field placeholder.
605
+ */
606
+ placeholder?: string;
607
+ /**
608
+ * Field message to show and direct user to fill field correctly.
609
+ *
610
+ * This message will be replaced when there's an error message to be shown.
611
+ */
612
+ hint?: string;
613
+ /**
614
+ * Component id to use on automated tests.
615
+ */
616
+ dataTestid?: string;
617
+ };
618
+ //#endregion
619
+ //#region src/components/inputs/date-time-field/date-time-field.vue.d.ts
620
+ /**
621
+ * Date and/or time field component to be used throughout the application.
622
+ *
623
+ * Its value uses the native input formats: `YYYY-MM-DD` for `date`, `HH:mm`
624
+ * for `time` and `YYYY-MM-DDTHH:mm` for `datetime`.
625
+ *
626
+ * @example
627
+ * ```vue
628
+ * <template>
629
+ * <u-date-time-field v-model="birthDate" label="Data de nascimento" type="date" />
630
+ * <template>
631
+ * ```
632
+ *
633
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/date-time-field | DateTimeField Guide}
634
+ */
635
+ declare const _default$7: typeof __VLS_export$14;
636
+ declare const __VLS_export$14: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<DateTimeFieldProps & {
637
+ modelValue?: string;
638
+ }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
639
+ "update:modelValue": (value: string) => any;
640
+ }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<DateTimeFieldProps & {
641
+ modelValue?: string;
642
+ }> & Readonly<{
643
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
644
+ }>, {
645
+ variant: DateTimeFieldVariant;
646
+ type: DateTimeFieldType;
647
+ }, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
648
+ //#endregion
649
+ //#region src/components/inputs/mask-field/types.d.ts
650
+ type MaskFieldVariant = TextFieldVariant;
651
+ /**
652
+ * Masks the library provides:
653
+ *
654
+ * - `cpf`: `###.###.###-##` (e.g. `123.456.789-09`);
655
+ * - `cnpj`: `##.###.###/####-##` (e.g. `12.345.678/0001-95`);
656
+ * - `cep`: `#####-###` (e.g. `01310-100`);
657
+ * - `phone`: `(##) #####-####` (e.g. `(11) 91234-5678`);
658
+ * - `date`: `##/##/####` (e.g. `31/12/2026`), formatting only.
659
+ */
660
+ type MaskFieldPreset = "cpf" | "cnpj" | "cep" | "phone" | "date";
661
+ /**
662
+ * A preset name, or the mask itself, where `#` is a digit (0–9) and any other
663
+ * character, letters included, is a literal inserted automatically (e.g.
664
+ * `####-##/####` or `Nº ####`).
665
+ *
666
+ * A custom mask must contain at least one `#`, so a misspelled preset (e.g.
667
+ * `"cpff"`) is a type error.
668
+ *
669
+ * @example
670
+ * ```ts
671
+ * const preset: MaskFieldMask = "cpf";
672
+ * const custom: MaskFieldMask = "####-##/####";
673
+ * const withLetters: MaskFieldMask = "Nº ####";
674
+ * ```
675
+ */
676
+ type MaskFieldMask = MaskFieldPreset | `${string}#${string}`;
677
+ /**
678
+ * Props exposed by the {@link MaskField} component.
679
+ */
680
+ type MaskFieldProps = {
681
+ /**
682
+ * Applies a distinct style variation to the field.
683
+ * One of `primary` or `secondary`.
684
+ * @default "primary"
685
+ */
686
+ variant?: MaskFieldVariant;
687
+ /**
688
+ * Mask applied to the value while the user types. One of the presets
689
+ * (`cpf`, `cnpj`, `cep`, `phone` or `date`), or the mask itself, where `#`
690
+ * is a digit (0–9) and any other character, letters included, is a literal
691
+ * inserted automatically (e.g. `####-##/####` or `Nº ####`). A custom mask
692
+ * must contain at least one `#`.
693
+ *
694
+ * Only digits are accepted, up to the number of `#` in the mask, and the
695
+ * `v-model` holds only the digits (e.g. `12345678909` for `cpf`). A literal
696
+ * the user could also type, such as a fixed digit (`0800 ###-####`), isn't
697
+ * supported: where the literal is expected, the same character is read as
698
+ * the literal.
699
+ *
700
+ * The `cpf` and `cnpj` masks don't validate check digits, and `cnpj` only
701
+ * accepts digits (not the alphanumeric CNPJ).
702
+ *
703
+ * Changing it keeps the `v-model`: a value that doesn't fit the new mask
704
+ * (e.g. longer than it) is displayed cut and fails validation with "Valor
705
+ * inválido".
706
+ */
707
+ mask: MaskFieldMask;
708
+ /**
709
+ * Removes the ability to click or target the field.
710
+ * @default false
711
+ */
712
+ disabled?: boolean;
713
+ /**
714
+ * Displays a loading indicator on the input. The field keeps its label as
715
+ * accessible name and is marked as busy, and assistive technologies ignore
716
+ * the indicator.
717
+ * @default false
718
+ */
719
+ loading?: boolean;
720
+ /**
721
+ * Displays clear action.
722
+ * @default false
723
+ */
724
+ clearable?: boolean;
725
+ /**
726
+ * Prevent value changes.
727
+ * @default false
728
+ */
729
+ readonly?: boolean;
730
+ /**
731
+ * Add `rules` to require field to be filled before form submission.
732
+ * @default false
733
+ */
734
+ required?: boolean;
735
+ /**
736
+ * Field label.
737
+ */
738
+ label?: string;
739
+ /**
740
+ * Field placeholder. Defaults to the mask, with `0` in place of each `#`,
741
+ * e.g. `000.000.000-00` for `cpf` and `Nº 0000` for `Nº ####`.
742
+ */
743
+ placeholder?: string;
744
+ /**
745
+ * Field message to show and direct user to fill field correctly.
746
+ *
747
+ * This message will be replaced when there's an error message to be shown.
748
+ */
749
+ hint?: string;
750
+ /**
751
+ * Component id to use on automated tests.
752
+ */
753
+ dataTestid?: string;
754
+ };
755
+ //#endregion
756
+ //#region src/components/inputs/mask-field/mask-field.vue.d.ts
757
+ /**
758
+ * Text field that masks the value while the user types, such as CPF, CNPJ,
759
+ * CEP, phone or a custom mask. Its value holds only the digits, without the
760
+ * mask's literals.
761
+ *
762
+ * @example
763
+ * ```vue
764
+ * <template>
765
+ * <u-mask-field v-model="cpf" label="CPF" mask="cpf" />
766
+ * <u-mask-field v-model="protocol" label="Protocolo" mask="####-##/####" />
767
+ * </template>
768
+ * ```
769
+ *
770
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/mask-field | MaskField Guide}
771
+ */
772
+ declare const _default$14: typeof __VLS_export$13;
773
+ declare const __VLS_export$13: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<MaskFieldProps & {
774
+ modelValue?: string;
775
+ }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
776
+ "update:modelValue": (value: string) => any;
777
+ }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<MaskFieldProps & {
778
+ modelValue?: string;
779
+ }> & Readonly<{
780
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
781
+ }>, {
782
+ variant: MaskFieldVariant;
783
+ }, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
422
784
  //#endregion
423
785
  //#region src/components/grid/container/types.d.ts
424
786
  /**
425
787
  * Props exposed by the {@link Container} component.
426
788
  */
427
789
  type ContainerProps = {
790
+ /**
791
+ * Stretches the container to the whole height of its parent, which must have a height of its
792
+ * own, e.g. the content area of `UMain`.
793
+ * @default false
794
+ */
795
+ fullHeight?: boolean;
428
796
  /**
429
797
  * Component id to use on automated tests.
430
798
  */
@@ -446,21 +814,84 @@ type ContainerProps = {
446
814
  *
447
815
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Container Guide}
448
816
  */
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>, {
817
+ declare const _default$4: typeof __VLS_export$12;
818
+ 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>, {
451
819
  default?: (props: {}) => any;
452
820
  }>;
453
- type __VLS_WithSlots$5<T, S> = T & {
821
+ type __VLS_WithSlots$9<T, S> = T & {
454
822
  new (): {
455
823
  $slots: S;
456
824
  };
457
825
  };
458
826
  //#endregion
827
+ //#region src/composables/alignment/types.d.ts
828
+ /**
829
+ * Horizontal alignment of a component's items: to the start, to the center or to the end,
830
+ * following the text direction.
831
+ */
832
+ type AlignX = "start" | "center" | "end";
833
+ /**
834
+ * Vertical alignment of a component's items: to the top, to the center, to the bottom, or
835
+ * stretched to the whole height available.
836
+ */
837
+ type AlignY = "start" | "center" | "end" | "stretch";
838
+ //#endregion
459
839
  //#region src/components/grid/row/types.d.ts
460
840
  /**
461
841
  * Props exposed by the {@link Row} component.
462
842
  */
463
843
  type RowProps = {
844
+ /**
845
+ * Horizontal alignment of the row's columns on each line.
846
+ * Available options are:
847
+ * - `"start"`: aligns the columns to the start of the line;
848
+ * - `"center"`: centers the columns horizontally;
849
+ * - `"end"`: aligns the columns to the end of the line.
850
+ *
851
+ * `"start"` and `"end"` follow the text direction. It only has a visible effect when the
852
+ * columns of a line don't fill it, e.g. with `cols="auto"` or sizes adding up to less than 12.
853
+ * When the columns wrap into several lines, each line is aligned on its own.
854
+ *
855
+ * Columns sit side by side only from the `sm` breakpoint up. Below it, each column takes a
856
+ * whole line, so the alignment has no visible effect.
857
+ * @default "start"
858
+ */
859
+ alignX?: AlignX;
860
+ /**
861
+ * Vertical alignment of the row's columns, relative to the tallest column on the same line.
862
+ * Available options are:
863
+ * - `"start"`: aligns the columns to the top;
864
+ * - `"center"`: centers the columns vertically;
865
+ * - `"end"`: aligns the columns to the bottom;
866
+ * - `"stretch"`: stretches every column to the height of the tallest one.
867
+ *
868
+ * Use `"stretch"` to keep side by side columns at the same height, e.g. cards made of
869
+ * `USection`s with `fullHeight`.
870
+ *
871
+ * Columns sit side by side only from the `sm` breakpoint up. Below it, each column takes a
872
+ * whole line, so the alignment has no visible effect, unless the row has `fullHeight`: then
873
+ * the columns, as a group, are aligned within the row's height.
874
+ * @default "start"
875
+ */
876
+ alignY?: AlignY;
877
+ /**
878
+ * Stretches the row to the whole height of its parent: the visible content area of `UMain`
879
+ * (below its app bar) or a `UContainer` with `fullHeight`.
880
+ *
881
+ * Combine it with `alignY` to place the columns within that height, e.g. `alignY="center"`
882
+ * and `alignX="center"` to center a login form on the screen. A row with `fullHeight` takes
883
+ * the whole height by itself, so other rows next to it are pushed below the visible area.
884
+ * @default false
885
+ */
886
+ fullHeight?: boolean;
887
+ /**
888
+ * Renders the row as a list (`<ul>`), without the list's default indentation
889
+ * and bullets, so assistive technologies announce its columns as the items
890
+ * of a list. Use it for a grid of records that is, semantically, a list,
891
+ * like cards of patients, and set `listItem` on each of its `UColumn`s.
892
+ * @default false
893
+ */
894
+ list?: boolean;
464
895
  /**
465
896
  * Component id to use on automated tests.
466
897
  */
@@ -475,7 +906,7 @@ type RowProps = {
475
906
  * ```vue
476
907
  * <template>
477
908
  * <u-container>
478
- * <u-row>
909
+ * <u-row align-x="center" align-y="center">
479
910
  * <!-- uimed-column -->
480
911
  * </u-row>
481
912
  * </u-container>
@@ -484,11 +915,11 @@ type RowProps = {
484
915
  *
485
916
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Row Guide}
486
917
  */
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>, {
918
+ declare const _default$15: typeof __VLS_export$11;
919
+ 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
920
  default?: (props: {}) => any;
490
921
  }>;
491
- type __VLS_WithSlots$4<T, S> = T & {
922
+ type __VLS_WithSlots$8<T, S> = T & {
492
923
  new (): {
493
924
  $slots: S;
494
925
  };
@@ -507,6 +938,13 @@ type ColumnProps = {
507
938
  * @default "12"
508
939
  */
509
940
  cols?: Cols;
941
+ /**
942
+ * Renders the column as an item of a list (`<li>`), without its bullet.
943
+ * Use it on every column of a `URow` with `list`, whose records are,
944
+ * semantically, the items of a list.
945
+ * @default false
946
+ */
947
+ listItem?: boolean;
510
948
  /**
511
949
  * Component id to use on automated tests.
512
950
  */
@@ -533,13 +971,13 @@ type Cols = "auto" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10"
533
971
  *
534
972
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Column Guide}
535
973
  */
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<{}>, {
974
+ declare const _default$3: typeof __VLS_export$10;
975
+ 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
976
  cols: "12" | "auto" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11";
539
977
  }, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
540
978
  default?: (props: {}) => any;
541
979
  }>;
542
- type __VLS_WithSlots$3<T, S> = T & {
980
+ type __VLS_WithSlots$7<T, S> = T & {
543
981
  new (): {
544
982
  $slots: S;
545
983
  };
@@ -576,15 +1014,15 @@ type FormProps = {
576
1014
  *
577
1015
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/form | Form Guide}
578
1016
  */
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, {} & {
1017
+ declare const _default$10: typeof __VLS_export$9;
1018
+ 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
1019
  submit: (event: SubmitEvent) => any;
582
1020
  }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<FormProps> & Readonly<{
583
1021
  onSubmit?: ((event: SubmitEvent) => any) | undefined;
584
1022
  }>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
585
1023
  default?: (props: {}) => any;
586
1024
  }>;
587
- type __VLS_WithSlots$2<T, S> = T & {
1025
+ type __VLS_WithSlots$6<T, S> = T & {
588
1026
  new (): {
589
1027
  $slots: S;
590
1028
  };
@@ -606,11 +1044,11 @@ type __VLS_WithSlots$2<T, S> = T & {
606
1044
  *
607
1045
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/section | Section Guide}
608
1046
  */
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>, {
1047
+ declare const _default$17: typeof __VLS_export$8;
1048
+ 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
1049
  default?: (props: {}) => any;
612
1050
  }>;
613
- type __VLS_WithSlots$1<T, S> = T & {
1051
+ type __VLS_WithSlots$5<T, S> = T & {
614
1052
  new (): {
615
1053
  $slots: S;
616
1054
  };
@@ -618,6 +1056,7 @@ type __VLS_WithSlots$1<T, S> = T & {
618
1056
  //#endregion
619
1057
  //#region src/components/sections/section/types.d.ts
620
1058
  type SectionVariant = "primary" | "secondary";
1059
+ type SectionTextAlign = "start" | "center" | "end";
621
1060
  /**
622
1061
  * Props exposed by the {@link Section} component.
623
1062
  */
@@ -636,6 +1075,20 @@ type SectionProps = {
636
1075
  * Subtitle displayed below the title.
637
1076
  */
638
1077
  subtitle?: string;
1078
+ /**
1079
+ * Horizontal alignment of the section's title, subtitle, content and actions.
1080
+ * Available options are:
1081
+ * - `"start"`: aligns the text to the start (left in left-to-right languages)
1082
+ * and keeps the actions at the end;
1083
+ * - `"center"`: centers the text and the actions;
1084
+ * - `"end"`: aligns the text and the actions to the end.
1085
+ *
1086
+ * Uses `start`/`end` instead of `left`/`right`, so it follows the text
1087
+ * direction in right-to-left languages. Nested components inherit the
1088
+ * alignment, unless they define their own.
1089
+ * @default "start"
1090
+ */
1091
+ textAlign?: SectionTextAlign;
639
1092
  /**
640
1093
  * List of actions displayed at the bottom of the section, inside
641
1094
  * `v-card-actions`. When undefined or empty, no actions area is rendered.
@@ -648,6 +1101,9 @@ type SectionProps = {
648
1101
  fullWidth?: boolean;
649
1102
  /**
650
1103
  * Makes the section occupy 100% of its parent's height.
1104
+ *
1105
+ * Inside a `URow`, set its `alignY` to `"stretch"` so the section takes the height of the
1106
+ * tallest column on the same line.
651
1107
  * @default false
652
1108
  */
653
1109
  fullHeight?: boolean;
@@ -671,7 +1127,8 @@ interface SectionAction extends ButtonProps {
671
1127
  */
672
1128
  label: string;
673
1129
  /**
674
- * Called when the action button is clicked.
1130
+ * Called when the action button is clicked. Not called while the action is `disabled` or
1131
+ * `loading`.
675
1132
  */
676
1133
  onClick?: (event: MouseEvent) => void;
677
1134
  }
@@ -692,11 +1149,11 @@ interface SectionAction extends ButtonProps {
692
1149
  *
693
1150
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/section | Section Guide}
694
1151
  */
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>, {
1152
+ declare const _default$16: typeof __VLS_export$7;
1153
+ 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
1154
  default?: (props: {}) => any;
698
1155
  }>;
699
- type __VLS_WithSlots<T, S> = T & {
1156
+ type __VLS_WithSlots$4<T, S> = T & {
700
1157
  new (): {
701
1158
  $slots: S;
702
1159
  };
@@ -767,7 +1224,435 @@ type TableProps = {
767
1224
  *
768
1225
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/table | Table Guide}
769
1226
  */
1227
+ declare const _default$18: typeof __VLS_export$6;
1228
+ 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>;
1229
+ //#endregion
1230
+ //#region src/components/details/types.d.ts
1231
+ type DetailsVariant = "primary" | "secondary";
1232
+ /**
1233
+ * Props exposed by the {@link Details} component.
1234
+ */
1235
+ type DetailsProps = {
1236
+ /**
1237
+ * Applies a distinct style variation to the details.
1238
+ * One of `primary` or `secondary`.
1239
+ * @default "primary"
1240
+ */
1241
+ variant?: DetailsVariant;
1242
+ /**
1243
+ * Title displayed on the header, which expands or collapses the content
1244
+ * when clicked. The header stays clickable even without a title.
1245
+ */
1246
+ title?: string;
1247
+ /**
1248
+ * Shows a skeleton loader in place of the details while data is being
1249
+ * loaded.
1250
+ * @default false
1251
+ */
1252
+ loading?: boolean;
1253
+ /**
1254
+ * Component id to use on automated tests.
1255
+ */
1256
+ dataTestid?: string;
1257
+ };
1258
+ //#endregion
1259
+ //#region src/components/details/details.vue.d.ts
1260
+ /**
1261
+ * Details component to show content that can be expanded or collapsed by
1262
+ * clicking on its title. Starts collapsed.
1263
+ *
1264
+ * @example
1265
+ * ```vue
1266
+ * <template>
1267
+ * <u-details title="Title">
1268
+ * Content
1269
+ * </u-details>
1270
+ * </template>
1271
+ * ```
1272
+ *
1273
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/details | Details Guide}
1274
+ */
1275
+ declare const _default$8: typeof __VLS_export$5;
1276
+ 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>, {
1277
+ default?: (props: {}) => any;
1278
+ }>;
1279
+ type __VLS_WithSlots$3<T, S> = T & {
1280
+ new (): {
1281
+ $slots: S;
1282
+ };
1283
+ };
1284
+ //#endregion
1285
+ //#region src/components/img/types.d.ts
1286
+ /**
1287
+ * Props exposed by the {@link Img} component.
1288
+ */
1289
+ type ImgProps = {
1290
+ /**
1291
+ * Path or URL of the image.
1292
+ */
1293
+ src: string;
1294
+ /**
1295
+ * Width of the image. A number sets it in pixels, and a string sets it in
1296
+ * any CSS unit (e.g. `"100%"`). Shrinks to fit the available width when
1297
+ * it's larger (e.g. inside a narrow `UColumn`).
1298
+ */
1299
+ width?: number | string;
1300
+ /**
1301
+ * Height of the image. A number sets it in pixels, and a string sets it in
1302
+ * any CSS unit (e.g. `"10rem"`).
1303
+ */
1304
+ height?: number | string;
1305
+ /**
1306
+ * Proportion between width and height (e.g. `16 / 9`), used to reserve the
1307
+ * image's space before it loads. Ignored when `height` is set.
1308
+ */
1309
+ aspectRatio?: number;
1310
+ /**
1311
+ * Fills the image's area, cropping the image when its proportion differs
1312
+ * from the area's. By default, the whole image is shown inside the area.
1313
+ * @default false
1314
+ */
1315
+ cover?: boolean;
1316
+ /**
1317
+ * Loads the image right away, instead of when it's about to become
1318
+ * visible. Use it for images visible when the page opens, such as a logo.
1319
+ * @default false
1320
+ */
1321
+ eager?: boolean;
1322
+ /**
1323
+ * Component id to use on automated tests.
1324
+ */
1325
+ dataTestid?: string;
1326
+ };
1327
+ //#endregion
1328
+ //#region src/components/img/img.vue.d.ts
1329
+ /**
1330
+ * Decorative image, ignored by assistive technologies, loaded when it's about
1331
+ * to become visible. Set its dimensions to reserve its space before it loads.
1332
+ *
1333
+ * @example
1334
+ * ```vue
1335
+ * <template>
1336
+ * <u-row>
1337
+ * <u-column cols="12">
1338
+ * <u-img src="/logo.svg" :width="380" :height="88" eager />
1339
+ * </u-column>
1340
+ * </u-row>
1341
+ * </template>
1342
+ * ```
1343
+ *
1344
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/img | Img Guide}
1345
+ */
1346
+ declare const _default$11: typeof __VLS_export$4;
1347
+ 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>;
1348
+ //#endregion
1349
+ //#region src/components/link/types.d.ts
1350
+ /**
1351
+ * Props exposed by the {@link Link} component.
1352
+ */
1353
+ type LinkProps = {
1354
+ /**
1355
+ * Where the link goes. A route inside the app (`"/login"`,
1356
+ * `{ name: "forgot-password" }`) navigates through the app's router; a URL
1357
+ * starting with `http` navigates through the browser, in the same tab.
1358
+ */
1359
+ route: RouteLocationRaw;
1360
+ /**
1361
+ * Component id to use on automated tests.
1362
+ */
1363
+ dataTestid?: string;
1364
+ };
1365
+ //#endregion
1366
+ //#region src/components/link/link.vue.d.ts
1367
+ /**
1368
+ * Standalone text link, such as "Forgot your password?" below a login form.
1369
+ * Routes inside the app navigate through the app's router, and URLs starting
1370
+ * with `http` navigate through the browser, in the same tab.
1371
+ *
1372
+ * @example
1373
+ * ```vue
1374
+ * <template>
1375
+ * <u-link route="/forgot-password">Forgot your password?</u-link>
1376
+ * </template>
1377
+ * ```
1378
+ *
1379
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/link | Link Guide}
1380
+ */
1381
+ declare const _default$12: typeof __VLS_export$3;
1382
+ 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>, {
1383
+ default?: (props: {}) => any;
1384
+ }>;
1385
+ type __VLS_WithSlots$2<T, S> = T & {
1386
+ new (): {
1387
+ $slots: S;
1388
+ };
1389
+ };
1390
+ //#endregion
1391
+ //#region src/components/data-sets/data-set/types.d.ts
1392
+ /**
1393
+ * Number of records shown side by side on each row of a {@link DataSet}.
1394
+ */
1395
+ type DataSetColumns = 1 | 2 | 3 | 4 | 6;
1396
+ /**
1397
+ * Props exposed by the {@link DataSet} component.
1398
+ */
1399
+ type DataSetProps<T extends object> = {
1400
+ /**
1401
+ * Records to be listed. Each record of the current page is passed, as is,
1402
+ * to the default slot.
1403
+ * @default []
1404
+ */
1405
+ items?: T[];
1406
+ /**
1407
+ * Maximum number of records shown side by side on each row of the grid.
1408
+ * One of `1`, `2`, `3`, `4` or `6`.
1409
+ *
1410
+ * It's reduced to the largest of these values that keeps each record's card
1411
+ * at least 240px wide within the data set's own width, so narrow
1412
+ * containers, like dialogs or side panels, show fewer records per row, down
1413
+ * to a single one. On extra small screens, each record always takes the
1414
+ * full width.
1415
+ * @default 3
1416
+ */
1417
+ columns?: DataSetColumns;
1418
+ /**
1419
+ * Maximum number of records shown per page. Page controls are only shown
1420
+ * when there's more than one page.
1421
+ * @default 10
1422
+ */
1423
+ itemsPerPage?: number;
1424
+ /**
1425
+ * Shows a search field above the records, bound to `v-model:search`.
1426
+ * @default false
1427
+ */
1428
+ searchable?: boolean;
1429
+ /**
1430
+ * Record properties considered by the search. When undefined or empty,
1431
+ * every property of the record is considered.
1432
+ */
1433
+ searchKeys?: Array<Extract<keyof T, string>>;
1434
+ /**
1435
+ * Message shown when there are no records to list, either because `items`
1436
+ * is empty or because no record matches the search.
1437
+ * @default "Nenhum registro encontrado."
1438
+ */
1439
+ noDataText?: string;
1440
+ /**
1441
+ * Shows a skeleton loader in place of the records while data is being
1442
+ * loaded.
1443
+ * @default false
1444
+ */
1445
+ loading?: boolean;
1446
+ /**
1447
+ * Component id to use on automated tests.
1448
+ */
1449
+ dataTestid?: string;
1450
+ };
1451
+ /**
1452
+ * Slots exposed by the {@link DataSet} component.
1453
+ */
1454
+ type DataSetSlots<T extends object> = {
1455
+ /**
1456
+ * Renders each record of the current page in its own grid column, usually
1457
+ * with `UDataSetItem`.
1458
+ * @param props.item The original record, from `items`.
1459
+ * @param props.index Position of the record inside the current page.
1460
+ */
1461
+ default?: (props: {
1462
+ item: T;
1463
+ index: number;
1464
+ }) => unknown;
1465
+ };
1466
+ //#endregion
1467
+ //#region src/components/data-sets/data-set/data-set.vue.d.ts
1468
+ /**
1469
+ * Data set component to list records as a responsive grid of cards, with
1470
+ * client-side pagination and an optional search field. Each record of the
1471
+ * current page is rendered by the default slot, usually with `UDataSetItem`.
1472
+ *
1473
+ * @example
1474
+ * ```vue
1475
+ * <template>
1476
+ * <u-data-set :items="patients" :columns="4" searchable>
1477
+ * <template #default="{ item }">
1478
+ * <u-data-set-item :title="item.name" :subtitle="item.plan" />
1479
+ * </template>
1480
+ * </u-data-set>
1481
+ * </template>
1482
+ * ```
1483
+ *
1484
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/data-set | DataSet Guide}
1485
+ */
1486
+ declare const _default$5: typeof __VLS_export$2;
1487
+ 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<{
1488
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<(DataSetProps<T> & {
1489
+ page?: number;
1490
+ search?: string;
1491
+ }) & {
1492
+ "onUpdate:page"?: ((value: number) => any) | undefined;
1493
+ "onUpdate:search"?: ((value: string) => any) | undefined;
1494
+ }> & (typeof globalThis extends {
1495
+ __VLS_PROPS_FALLBACK: infer P;
1496
+ } ? P : {});
1497
+ expose: (exposed: {}) => void;
1498
+ attrs: any;
1499
+ slots: DataSetSlots<T>;
1500
+ emit: ((event: "update:page", value: number) => void) & ((event: "update:search", value: string) => void);
1501
+ }>) => import("vue").VNode & {
1502
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
1503
+ };
1504
+ type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K]; } : { [K in keyof T as K]: T[K]; }) & {};
1505
+ //#endregion
1506
+ //#region src/components/data-sets/data-set-item/types.d.ts
1507
+ /**
1508
+ * Props exposed by the {@link DataSetItem} component.
1509
+ */
1510
+ type DataSetItemProps = {
1511
+ /**
1512
+ * Title displayed at the top of the record's card.
1513
+ */
1514
+ title?: string;
1515
+ /**
1516
+ * Short description displayed below the title.
1517
+ */
1518
+ subtitle?: string;
1519
+ /**
1520
+ * Applies a distinct style variation to the record's card, just like on
1521
+ * `USection`. One of `primary` or `secondary`.
1522
+ * @default "primary"
1523
+ */
1524
+ variant?: SectionVariant;
1525
+ /**
1526
+ * Actions of the record, like "Editar" and "Excluir", displayed at the
1527
+ * bottom of its card, just like on `USection`. When undefined or empty, no
1528
+ * actions area is rendered.
1529
+ */
1530
+ actions?: SectionAction[];
1531
+ /**
1532
+ * Component id to use on automated tests.
1533
+ */
1534
+ dataTestid?: string;
1535
+ };
1536
+ /**
1537
+ * Slots exposed by the {@link DataSetItem} component.
1538
+ */
1539
+ type DataSetItemSlots = {
1540
+ /**
1541
+ * Details of the record, displayed below the title and subtitle, like a
1542
+ * vertical `UTable` with some of its fields.
1543
+ */
1544
+ default?: () => unknown;
1545
+ };
1546
+ //#endregion
1547
+ //#region src/components/data-sets/data-set-item/data-set-item.vue.d.ts
1548
+ /**
1549
+ * Card of a single record listed by a {@link DataSet}, built on `USection`.
1550
+ * It fills the height of its grid column, so the cards of a row line up. Its
1551
+ * details, like a vertical `UTable`, go in the default slot.
1552
+ *
1553
+ * @example
1554
+ * ```vue
1555
+ * <template>
1556
+ * <u-data-set :items="patients">
1557
+ * <template #default="{ item }">
1558
+ * <u-data-set-item
1559
+ * :title="item.name"
1560
+ * subtitle="Beneficiário"
1561
+ * :actions="[{ label: 'Editar', variant: 'secondary', onClick: () => edit(item) }]"
1562
+ * >
1563
+ * <u-table :headers="['Plano', 'Idade']" :items="[[item.plan, item.age]]" vertical />
1564
+ * </u-data-set-item>
1565
+ * </template>
1566
+ * </u-data-set>
1567
+ * </template>
1568
+ * ```
1569
+ *
1570
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/data-set | DataSet Guide}
1571
+ */
1572
+ declare const _default$6: typeof __VLS_export$1;
1573
+ 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>;
1574
+ type __VLS_WithSlots$1<T, S> = T & {
1575
+ new (): {
1576
+ $slots: S;
1577
+ };
1578
+ };
1579
+ //#endregion
1580
+ //#region src/components/dialogs/dialog/types.d.ts
1581
+ type DialogSize = "small" | "medium" | "large";
1582
+ /**
1583
+ * Props exposed by the {@link Dialog} component.
1584
+ */
1585
+ type DialogProps = {
1586
+ /**
1587
+ * Plain text displayed as the dialog's title, in a single line. HTML isn't interpreted.
1588
+ * Also used as the dialog's accessible name. Without it, the content is the accessible name.
1589
+ */
1590
+ title?: string;
1591
+ /**
1592
+ * Buttons displayed at the bottom of the dialog, right-aligned, in the given order.
1593
+ * Place the main action last. When undefined or empty, no actions area is rendered.
1594
+ * Clicking an action doesn't close the dialog: set `v-model` to `false` in `onClick`.
1595
+ */
1596
+ actions?: DialogButtonAction[];
1597
+ /**
1598
+ * Maximum width of the dialog.
1599
+ * One of `small` (400px), `medium` (560px), or `large` (800px).
1600
+ * @default "medium"
1601
+ */
1602
+ size?: DialogSize;
1603
+ /**
1604
+ * Component id to use on automated tests.
1605
+ */
1606
+ dataTestid?: string;
1607
+ };
1608
+ /**
1609
+ * A single action rendered inside {@link Dialog}'s actions area. Same shape as `USection`'s
1610
+ * actions.
1611
+ */
1612
+ interface DialogButtonAction extends ButtonProps {
1613
+ /**
1614
+ * Text displayed on the action button.
1615
+ */
1616
+ label: string;
1617
+ /**
1618
+ * Called when the action button is clicked. Not called while the action is `disabled` or
1619
+ * `loading`. The dialog stays open.
1620
+ */
1621
+ onClick?: (event: MouseEvent) => void;
1622
+ }
1623
+ //#endregion
1624
+ //#region src/components/dialogs/dialog/dialog.vue.d.ts
1625
+ /**
1626
+ * Dialog component to display content in a modal window, over the page, until it's closed.
1627
+ * Its title and actions stay in place while the content scrolls.
1628
+ *
1629
+ * @example
1630
+ * ```vue
1631
+ * <template>
1632
+ * <u-dialog v-model="open" title="Title" :actions="[{ label: 'Close', onClick: () => (open = false) }]">
1633
+ * Content
1634
+ * </u-dialog>
1635
+ * </template>
1636
+ * ```
1637
+ *
1638
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/dialog | Dialog Guide}
1639
+ */
770
1640
  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>;
1641
+ declare const __VLS_export: __VLS_WithSlots<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<DialogProps & {
1642
+ modelValue?: boolean;
1643
+ }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
1644
+ "update:modelValue": (value: boolean) => any;
1645
+ }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<DialogProps & {
1646
+ modelValue?: boolean;
1647
+ }> & Readonly<{
1648
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1649
+ }>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
1650
+ default?: (props: {}) => any;
1651
+ }>;
1652
+ type __VLS_WithSlots<T, S> = T & {
1653
+ new (): {
1654
+ $slots: S;
1655
+ };
1656
+ };
772
1657
  //#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 };
1658
+ 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 UImg, _default$12 as ULink, _default$13 as UMain, _default$14 as UMaskField, _default$15 as URow, _default$16 as USection, _default$17 as USectionContent, _default$18 as UTable, _default$19 as UTextField };