@nexdom/uimed-vue 2.0.0-beta.23 → 2.0.0-beta.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -151,7 +151,7 @@ Use an existing component (e.g. `button`) as the reference, and deliver all of t
151
151
 
152
152
  1. `src/components/<name>/<name>.vue` (following the pattern in [Code conventions](#code-conventions)), `types.ts` and `__tests__/<name>.test.ts`.
153
153
  2. The `U`-prefixed export in `src/components/index.ts`.
154
- 3. A usage guide at `docs/guide/components/<name>.md`, with `<demo>` examples (and a `<playground>` section when the component has configurable props), and an API reference at `docs/api/components/<name>.md` (props, events and slots tables). Both in Portuguese.
154
+ 3. A usage guide at `docs/guide/components/<name>.md`, with `<demo>` examples (and a `<playground>` section when the component has configurable props), and an API reference at `docs/api/components/<name>.md` (props, events and slots tables). Both in Portuguese. In a demo's template inside a `.md` file, don't put an attribute with a template literal after one with an arrow function in the same tag: the Markdown type-check (`vue-tsc`) reads the `>` of `=>` as the end of the tag and fails with `TS1003`. Order the attributes so the template literal comes first.
155
155
  4. Both pages registered in the sidebar at `docs/.vitepress/config.ts`.
156
156
  5. `e2e/components/<name>.spec.ts` covering the guide's interactive examples and a "UI consistency" screenshot check (plus accessible snapshots where relevant). Commit the generated files under `__snapshots__`/`__screenshot__`.
157
157
  6. The full CI sequence passing locally.
@@ -173,7 +173,7 @@ Use an existing composable (e.g. `use-toast`) as the reference, and deliver in t
173
173
  - A new component/composable must be listed in its guide page (`docs/guide/…`), its API page (`docs/api/…`), both sidebars in `docs/.vitepress/config.ts`, the guide index table (`docs/guide/index.md`) and the API index list (`docs/api/index.md`).
174
174
  - Never write CSS or `<style>` blocks, and expose styling to consumers only through props.
175
175
  - Adjustments that Vuetify exposes as Sass variables (e.g. a font family or a line height) go in `src/styles/settings.scss`, which `vitePluginUimed()` compiles into Vuetify's stylesheets in the apps. That file only configures variables: still no CSS rules.
176
- - Don't add spacing to Vuetify components: no padding or margin utility classes (`pa-*`, `pt-6`, `px-4`, `ma-2`, ...) and no spacing props overriding the defaults. Vuetify already applies Material Design 3 spacing, and overriding it breaks what it handles on its own, such as button paddings and the scrollbar of scrollable content. If the default spacing looks wrong, stop and ask instead of adjusting it.
176
+ - Don't add spacing to Vuetify components: no padding or margin utility classes (`pa-*`, `pt-6`, `px-4`, `ma-2`, ...) and no spacing props overriding the defaults. Vuetify already applies Material Design 3 spacing, and overriding it breaks what it handles on its own, such as button paddings and the scrollbar of scrollable content. If the default spacing looks wrong, stop and ask instead of adjusting it. The one accepted layout margin is `mt-auto` on `v-card-actions` (as in `USection`), which pushes the actions to the bottom of a full-height card without setting any spacing value.
177
177
  - Prefer a Vuetify component's own props to building its parts by hand (e.g. `title`/`text` on `v-card` instead of `v-card-item` > `v-card-title` > `v-card-text`). A non-spacing utility class is acceptable only when no prop covers the need (e.g. `text-wrap` on a card title), with a comment saying why.
178
178
  - Keep components thin: a component wires props, slots and events to Vuetify. Logic beyond that (focus management, queues, DOM lookups, comparisons) goes into an internal composable with its own unit tests.
179
179
  - Path aliases: `@/*` → `src/*`, `@e2e/*` → `e2e/*`.
@@ -182,8 +182,8 @@ type MainProps = {
182
182
  *
183
183
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/main | Main Guide}
184
184
  */
185
- declare const _default$11: typeof __VLS_export$16;
186
- declare const __VLS_export$16: __VLS_WithSlots$10<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<MainProps & {
185
+ declare const _default$12: typeof __VLS_export$17;
186
+ declare const __VLS_export$17: __VLS_WithSlots$10<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<MainProps & {
187
187
  notificationsOpen?: boolean;
188
188
  }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
189
189
  "update:notificationsOpen": (value: boolean) => any;
@@ -215,8 +215,8 @@ type __VLS_WithSlots$10<T, S> = T & {
215
215
  *
216
216
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/button | Button Guide}
217
217
  */
218
- declare const _default$1: typeof __VLS_export$15;
219
- declare const __VLS_export$15: __VLS_WithSlots$9<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ButtonProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
218
+ declare const _default$1: typeof __VLS_export$16;
219
+ declare const __VLS_export$16: __VLS_WithSlots$9<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ButtonProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
220
220
  click: (event: MouseEvent) => any;
221
221
  }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ButtonProps> & Readonly<{
222
222
  onClick?: ((event: MouseEvent) => any) | undefined;
@@ -391,8 +391,8 @@ type AutocompleteFieldProps<T = string, Multiple extends boolean = false> = {
391
391
  *
392
392
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/autocomplete-field | AutocompleteField Guide}
393
393
  */
394
- declare const _default: typeof __VLS_export$14;
395
- declare const __VLS_export$14: <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<{
394
+ declare const _default: typeof __VLS_export$15;
395
+ declare const __VLS_export$15: <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<{
396
396
  props: import("vue").PublicProps & __VLS_PrettifyLocal$2<(AutocompleteFieldProps<T, Multiple> & {
397
397
  modelValue?: Multiple extends true ? T[] : T;
398
398
  }) & {
@@ -422,8 +422,8 @@ type __VLS_PrettifyLocal$2<T> = (T extends any ? { [K in keyof T]: T[K]; } : { [
422
422
  *
423
423
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/text-field | TextField Guide}
424
424
  */
425
- declare const _default$16: typeof __VLS_export$13;
426
- declare const __VLS_export$13: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<TextFieldProps & {
425
+ declare const _default$17: typeof __VLS_export$14;
426
+ declare const __VLS_export$14: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<TextFieldProps & {
427
427
  modelValue?: string;
428
428
  }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
429
429
  "update:modelValue": (value: string) => any;
@@ -433,8 +433,8 @@ declare const __VLS_export$13: import("vue", { with: { "resolution-mode": "impor
433
433
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
434
434
  }>, {
435
435
  variant: TextFieldVariant;
436
- type: TextFieldType;
437
436
  clearable: boolean;
437
+ type: TextFieldType;
438
438
  }, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
439
439
  //#endregion
440
440
  //#region src/components/inputs/checkbox/types.d.ts
@@ -485,8 +485,8 @@ type CheckboxProps<T = boolean> = {
485
485
  *
486
486
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/checkbox | Checkbox Guide}
487
487
  */
488
- declare const _default$2: typeof __VLS_export$12;
489
- declare const __VLS_export$12: <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<{
488
+ declare const _default$2: typeof __VLS_export$13;
489
+ declare const __VLS_export$13: <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<{
490
490
  props: import("vue").PublicProps & __VLS_PrettifyLocal$1<(CheckboxProps<boolean | T> & {
491
491
  modelValue?: T;
492
492
  }) & {
@@ -602,8 +602,8 @@ type DateTimeFieldProps = {
602
602
  *
603
603
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/date-time-field | DateTimeField Guide}
604
604
  */
605
- declare const _default$7: typeof __VLS_export$11;
606
- declare const __VLS_export$11: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<DateTimeFieldProps & {
605
+ declare const _default$7: typeof __VLS_export$12;
606
+ declare const __VLS_export$12: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<DateTimeFieldProps & {
607
607
  modelValue?: string;
608
608
  }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
609
609
  "update:modelValue": (value: string) => any;
@@ -642,8 +642,8 @@ type ContainerProps = {
642
642
  *
643
643
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Container Guide}
644
644
  */
645
- declare const _default$4: typeof __VLS_export$10;
646
- declare const __VLS_export$10: __VLS_WithSlots$8<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>, {
645
+ declare const _default$4: typeof __VLS_export$11;
646
+ declare const __VLS_export$11: __VLS_WithSlots$8<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>, {
647
647
  default?: (props: {}) => any;
648
648
  }>;
649
649
  type __VLS_WithSlots$8<T, S> = T & {
@@ -722,8 +722,8 @@ type RowAlignY = "start" | "center" | "end" | "stretch";
722
722
  *
723
723
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Row Guide}
724
724
  */
725
- declare const _default$12: typeof __VLS_export$9;
726
- declare const __VLS_export$9: __VLS_WithSlots$7<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<{}>, {
725
+ declare const _default$13: typeof __VLS_export$10;
726
+ declare const __VLS_export$10: __VLS_WithSlots$7<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<{}>, {
727
727
  alignX: RowAlignX;
728
728
  alignY: RowAlignY;
729
729
  }, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
@@ -781,8 +781,8 @@ type Cols = "auto" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10"
781
781
  *
782
782
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Column Guide}
783
783
  */
784
- declare const _default$3: typeof __VLS_export$8;
785
- declare const __VLS_export$8: __VLS_WithSlots$6<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<{}>, {
784
+ declare const _default$3: typeof __VLS_export$9;
785
+ declare const __VLS_export$9: __VLS_WithSlots$6<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<{}>, {
786
786
  cols: "12" | "auto" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11";
787
787
  }, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
788
788
  default?: (props: {}) => any;
@@ -824,8 +824,8 @@ type FormProps = {
824
824
  *
825
825
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/form | Form Guide}
826
826
  */
827
- declare const _default$10: typeof __VLS_export$7;
828
- declare const __VLS_export$7: __VLS_WithSlots$5<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<FormProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
827
+ declare const _default$10: typeof __VLS_export$8;
828
+ declare const __VLS_export$8: __VLS_WithSlots$5<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<FormProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
829
829
  submit: (event: SubmitEvent) => any;
830
830
  }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<FormProps> & Readonly<{
831
831
  onSubmit?: ((event: SubmitEvent) => any) | undefined;
@@ -854,8 +854,8 @@ type __VLS_WithSlots$5<T, S> = T & {
854
854
  *
855
855
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/section | Section Guide}
856
856
  */
857
- declare const _default$14: typeof __VLS_export$6;
858
- declare const __VLS_export$6: __VLS_WithSlots$4<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>, {
857
+ declare const _default$15: typeof __VLS_export$7;
858
+ declare const __VLS_export$7: __VLS_WithSlots$4<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>, {
859
859
  default?: (props: {}) => any;
860
860
  }>;
861
861
  type __VLS_WithSlots$4<T, S> = T & {
@@ -958,8 +958,8 @@ interface SectionAction extends ButtonProps {
958
958
  *
959
959
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/section | Section Guide}
960
960
  */
961
- declare const _default$13: typeof __VLS_export$5;
962
- declare const __VLS_export$5: __VLS_WithSlots$3<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>, {
961
+ declare const _default$14: typeof __VLS_export$6;
962
+ declare const __VLS_export$6: __VLS_WithSlots$3<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>, {
963
963
  default?: (props: {}) => any;
964
964
  }>;
965
965
  type __VLS_WithSlots$3<T, S> = T & {
@@ -1033,8 +1033,8 @@ type TableProps = {
1033
1033
  *
1034
1034
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/table | Table Guide}
1035
1035
  */
1036
- declare const _default$15: typeof __VLS_export$4;
1037
- declare const __VLS_export$4: 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>;
1036
+ declare const _default$16: typeof __VLS_export$5;
1037
+ declare const __VLS_export$5: 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>;
1038
1038
  //#endregion
1039
1039
  //#region src/components/details/types.d.ts
1040
1040
  type DetailsVariant = "primary" | "secondary";
@@ -1081,8 +1081,8 @@ type DetailsProps = {
1081
1081
  *
1082
1082
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/details | Details Guide}
1083
1083
  */
1084
- declare const _default$8: typeof __VLS_export$3;
1085
- declare const __VLS_export$3: __VLS_WithSlots$2<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>, {
1084
+ declare const _default$8: typeof __VLS_export$4;
1085
+ declare const __VLS_export$4: __VLS_WithSlots$2<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>, {
1086
1086
  default?: (props: {}) => any;
1087
1087
  }>;
1088
1088
  type __VLS_WithSlots$2<T, S> = T & {
@@ -1091,6 +1091,70 @@ type __VLS_WithSlots$2<T, S> = T & {
1091
1091
  };
1092
1092
  };
1093
1093
  //#endregion
1094
+ //#region src/components/img/types.d.ts
1095
+ /**
1096
+ * Props exposed by the {@link Img} component.
1097
+ */
1098
+ type ImgProps = {
1099
+ /**
1100
+ * Path or URL of the image.
1101
+ */
1102
+ src: string;
1103
+ /**
1104
+ * Width of the image. A number sets it in pixels, and a string sets it in
1105
+ * any CSS unit (e.g. `"100%"`). Shrinks to fit the available width when
1106
+ * it's larger (e.g. inside a narrow `UColumn`).
1107
+ */
1108
+ width?: number | string;
1109
+ /**
1110
+ * Height of the image. A number sets it in pixels, and a string sets it in
1111
+ * any CSS unit (e.g. `"10rem"`).
1112
+ */
1113
+ height?: number | string;
1114
+ /**
1115
+ * Proportion between width and height (e.g. `16 / 9`), used to reserve the
1116
+ * image's space before it loads. Ignored when `height` is set.
1117
+ */
1118
+ aspectRatio?: number;
1119
+ /**
1120
+ * Fills the image's area, cropping the image when its proportion differs
1121
+ * from the area's. By default, the whole image is shown inside the area.
1122
+ * @default false
1123
+ */
1124
+ cover?: boolean;
1125
+ /**
1126
+ * Loads the image right away, instead of when it's about to become
1127
+ * visible. Use it for images visible when the page opens, such as a logo.
1128
+ * @default false
1129
+ */
1130
+ eager?: boolean;
1131
+ /**
1132
+ * Component id to use on automated tests.
1133
+ */
1134
+ dataTestid?: string;
1135
+ };
1136
+ //#endregion
1137
+ //#region src/components/img/img.vue.d.ts
1138
+ /**
1139
+ * Decorative image, ignored by assistive technologies, loaded when it's about
1140
+ * to become visible. Set its dimensions to reserve its space before it loads.
1141
+ *
1142
+ * @example
1143
+ * ```vue
1144
+ * <template>
1145
+ * <u-row>
1146
+ * <u-column cols="12">
1147
+ * <u-img src="/logo.svg" :width="380" :height="88" eager />
1148
+ * </u-column>
1149
+ * </u-row>
1150
+ * </template>
1151
+ * ```
1152
+ *
1153
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/img | Img Guide}
1154
+ */
1155
+ declare const _default$11: typeof __VLS_export$3;
1156
+ declare const __VLS_export$3: 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>;
1157
+ //#endregion
1094
1158
  //#region src/components/data-sets/data-set/types.d.ts
1095
1159
  /**
1096
1160
  * Number of records shown side by side on each row of a {@link DataSet}.
@@ -1225,6 +1289,12 @@ type DataSetItemProps = {
1225
1289
  * @default "primary"
1226
1290
  */
1227
1291
  variant?: SectionVariant;
1292
+ /**
1293
+ * Actions of the record, like "Editar" and "Excluir", displayed at the
1294
+ * bottom of its card, just like on `USection`. When undefined or empty, no
1295
+ * actions area is rendered.
1296
+ */
1297
+ actions?: SectionAction[];
1228
1298
  /**
1229
1299
  * Component id to use on automated tests.
1230
1300
  */
@@ -1252,7 +1322,11 @@ type DataSetItemSlots = {
1252
1322
  * <template>
1253
1323
  * <u-data-set :items="patients">
1254
1324
  * <template #default="{ item }">
1255
- * <u-data-set-item :title="item.name" subtitle="Beneficiário">
1325
+ * <u-data-set-item
1326
+ * :title="item.name"
1327
+ * subtitle="Beneficiário"
1328
+ * :actions="[{ label: 'Editar', variant: 'secondary', onClick: () => edit(item) }]"
1329
+ * >
1256
1330
  * <u-table :headers="['Plano', 'Idade']" :items="[[item.plan, item.age]]" vertical />
1257
1331
  * </u-data-set-item>
1258
1332
  * </template>
@@ -1347,4 +1421,4 @@ type __VLS_WithSlots<T, S> = T & {
1347
1421
  };
1348
1422
  };
1349
1423
  //#endregion
1350
- 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 UMain, _default$12 as URow, _default$13 as USection, _default$14 as USectionContent, _default$15 as UTable, _default$16 as UTextField };
1424
+ 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 UMain, _default$13 as URow, _default$14 as USection, _default$15 as USectionContent, _default$16 as UTable, _default$17 as UTextField };
@@ -1928,6 +1928,65 @@ var details_default = /* @__PURE__ */ defineComponent({
1928
1928
  }
1929
1929
  });
1930
1930
  //#endregion
1931
+ //#region src/components/img/img.vue
1932
+ var img_default = /* @__PURE__ */ defineComponent({
1933
+ inheritAttrs: false,
1934
+ __name: "img",
1935
+ props: {
1936
+ src: {
1937
+ type: String,
1938
+ required: true
1939
+ },
1940
+ width: {
1941
+ type: [Number, String],
1942
+ required: false
1943
+ },
1944
+ height: {
1945
+ type: [Number, String],
1946
+ required: false
1947
+ },
1948
+ aspectRatio: {
1949
+ type: Number,
1950
+ required: false
1951
+ },
1952
+ cover: {
1953
+ type: Boolean,
1954
+ required: false
1955
+ },
1956
+ eager: {
1957
+ type: Boolean,
1958
+ required: false
1959
+ },
1960
+ dataTestid: {
1961
+ type: String,
1962
+ required: false
1963
+ }
1964
+ },
1965
+ setup(__props) {
1966
+ const props = __props;
1967
+ return (_ctx, _cache) => {
1968
+ return openBlock(), createBlock(unref(VImg), {
1969
+ src: props.src,
1970
+ alt: "",
1971
+ width: props.width,
1972
+ height: props.height,
1973
+ "aspect-ratio": props.aspectRatio,
1974
+ cover: props.cover,
1975
+ eager: props.eager,
1976
+ "data-testid": props.dataTestid
1977
+ }, null, 8, [
1978
+ "src",
1979
+ "width",
1980
+ "height",
1981
+ "aspect-ratio",
1982
+ "cover",
1983
+ "eager",
1984
+ "data-testid"
1985
+ ]);
1986
+ };
1987
+ }
1988
+ });
1989
+ //#endregion
1931
1990
  //#region src/composables/data-set/data-set.ts
1932
1991
  /**
1933
1992
  * Width, out of the grid's 12 columns, taken by each record so that
@@ -2194,6 +2253,10 @@ var data_set_item_default = /* @__PURE__ */ defineComponent({
2194
2253
  type: String,
2195
2254
  required: false
2196
2255
  },
2256
+ actions: {
2257
+ type: Array,
2258
+ required: false
2259
+ },
2197
2260
  dataTestid: {
2198
2261
  type: String,
2199
2262
  required: false
@@ -2207,6 +2270,7 @@ var data_set_item_default = /* @__PURE__ */ defineComponent({
2207
2270
  title: props.title,
2208
2271
  subtitle: props.subtitle,
2209
2272
  variant: props.variant,
2273
+ actions: props.actions,
2210
2274
  "data-testid": props.dataTestid,
2211
2275
  "full-height": ""
2212
2276
  }, {
@@ -2219,10 +2283,11 @@ var data_set_item_default = /* @__PURE__ */ defineComponent({
2219
2283
  "title",
2220
2284
  "subtitle",
2221
2285
  "variant",
2286
+ "actions",
2222
2287
  "data-testid"
2223
2288
  ]);
2224
2289
  };
2225
2290
  }
2226
2291
  });
2227
2292
  //#endregion
2228
- export { autocomplete_field_default as UAutocompleteField, button_default as UButton, checkbox_default as UCheckbox, column_default as UColumn, container_default as UContainer, data_set_default as UDataSet, data_set_item_default as UDataSetItem, date_time_field_default as UDateTimeField, details_default as UDetails, dialog_default as UDialog, form_default as UForm, main_default as UMain, row_default as URow, section_default as USection, section_content_default as USectionContent, table_default as UTable, text_field_default as UTextField };
2293
+ export { autocomplete_field_default as UAutocompleteField, button_default as UButton, checkbox_default as UCheckbox, column_default as UColumn, container_default as UContainer, data_set_default as UDataSet, data_set_item_default as UDataSetItem, date_time_field_default as UDateTimeField, details_default as UDetails, dialog_default as UDialog, form_default as UForm, img_default as UImg, main_default as UMain, row_default as URow, section_default as USection, section_content_default as USectionContent, table_default as UTable, text_field_default as UTextField };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexdom/uimed-vue",
3
- "version": "2.0.0-beta.23",
3
+ "version": "2.0.0-beta.25",
4
4
  "description": "A ui framework for NEXDOM applications.",
5
5
  "keywords": [
6
6
  "lib",