@nexdom/uimed-vue 2.0.0-beta.35 → 2.0.0-beta.37

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
@@ -184,6 +184,7 @@ Use an existing composable (e.g. `use-toast`) as the reference, and deliver in t
184
184
 
185
185
  - 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.
186
186
  - Path aliases: `@/*` → `src/*`, `@e2e/*` → `e2e/*`.
187
+ - A prop or option that points to a navigation destination is typed `RouteLocationRaw` (from `vue-router`) and named `route` (e.g. the items of `UNavigationMenu`), unless the name says which destination it is (e.g. `help` in `UAppBar`). Don't split it into `to`/`href` props: convert it with `useRouteProps`/`routeToProps` (`src/composables/navigation/use-route-props.ts`), which binds strings starting with `http` as `href` and anything else as the router's `to`.
187
188
  - Every public component follows this pattern to block access to internals and give it an editor-hover description:
188
189
 
189
190
  ```vue
@@ -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$12: typeof __VLS_export$17;
186
- declare const __VLS_export$17: __VLS_WithSlots$10<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<MainProps & {
185
+ declare const _default$13: typeof __VLS_export$18;
186
+ declare const __VLS_export$18: __VLS_WithSlots$11<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;
@@ -194,7 +194,7 @@ declare const __VLS_export$17: __VLS_WithSlots$10<import("vue", { with: { "resol
194
194
  }>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
195
195
  default?: (props: {}) => any;
196
196
  }>;
197
- type __VLS_WithSlots$10<T, S> = T & {
197
+ type __VLS_WithSlots$11<T, S> = T & {
198
198
  new (): {
199
199
  $slots: S;
200
200
  };
@@ -215,15 +215,15 @@ 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$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, {} & {
218
+ declare const _default$1: typeof __VLS_export$17;
219
+ declare const __VLS_export$17: __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, {} & {
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;
223
223
  }>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
224
224
  default?: (props: {}) => any;
225
225
  }>;
226
- type __VLS_WithSlots$9<T, S> = T & {
226
+ type __VLS_WithSlots$10<T, S> = T & {
227
227
  new (): {
228
228
  $slots: S;
229
229
  };
@@ -395,8 +395,8 @@ type AutocompleteFieldProps<T = string, Multiple extends boolean = false> = {
395
395
  *
396
396
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/autocomplete-field | AutocompleteField Guide}
397
397
  */
398
- declare const _default: typeof __VLS_export$15;
399
- 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<{
398
+ declare const _default: typeof __VLS_export$16;
399
+ declare const __VLS_export$16: <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<{
400
400
  props: import("vue").PublicProps & __VLS_PrettifyLocal$2<(AutocompleteFieldProps<T, Multiple> & {
401
401
  modelValue?: Multiple extends true ? T[] : T;
402
402
  }) & {
@@ -426,8 +426,8 @@ type __VLS_PrettifyLocal$2<T> = (T extends any ? { [K in keyof T]: T[K]; } : { [
426
426
  *
427
427
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/text-field | TextField Guide}
428
428
  */
429
- declare const _default$17: typeof __VLS_export$14;
430
- declare const __VLS_export$14: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<TextFieldProps & {
429
+ declare const _default$18: typeof __VLS_export$15;
430
+ declare const __VLS_export$15: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<TextFieldProps & {
431
431
  modelValue?: string;
432
432
  }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
433
433
  "update:modelValue": (value: string) => any;
@@ -489,8 +489,8 @@ type CheckboxProps<T = boolean> = {
489
489
  *
490
490
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/checkbox | Checkbox Guide}
491
491
  */
492
- declare const _default$2: typeof __VLS_export$13;
493
- 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<{
492
+ declare const _default$2: typeof __VLS_export$14;
493
+ declare const __VLS_export$14: <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<{
494
494
  props: import("vue").PublicProps & __VLS_PrettifyLocal$1<(CheckboxProps<boolean | T> & {
495
495
  modelValue?: T;
496
496
  }) & {
@@ -606,8 +606,8 @@ type DateTimeFieldProps = {
606
606
  *
607
607
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/date-time-field | DateTimeField Guide}
608
608
  */
609
- declare const _default$7: typeof __VLS_export$12;
610
- declare const __VLS_export$12: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<DateTimeFieldProps & {
609
+ declare const _default$7: typeof __VLS_export$13;
610
+ declare const __VLS_export$13: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<DateTimeFieldProps & {
611
611
  modelValue?: string;
612
612
  }, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
613
613
  "update:modelValue": (value: string) => any;
@@ -652,11 +652,11 @@ type ContainerProps = {
652
652
  *
653
653
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Container Guide}
654
654
  */
655
- declare const _default$4: typeof __VLS_export$11;
656
- 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>, {
655
+ declare const _default$4: typeof __VLS_export$12;
656
+ 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>, {
657
657
  default?: (props: {}) => any;
658
658
  }>;
659
- type __VLS_WithSlots$8<T, S> = T & {
659
+ type __VLS_WithSlots$9<T, S> = T & {
660
660
  new (): {
661
661
  $slots: S;
662
662
  };
@@ -753,11 +753,11 @@ type RowProps = {
753
753
  *
754
754
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Row Guide}
755
755
  */
756
- declare const _default$13: typeof __VLS_export$10;
757
- 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<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
756
+ declare const _default$14: typeof __VLS_export$11;
757
+ 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>, {
758
758
  default?: (props: {}) => any;
759
759
  }>;
760
- type __VLS_WithSlots$7<T, S> = T & {
760
+ type __VLS_WithSlots$8<T, S> = T & {
761
761
  new (): {
762
762
  $slots: S;
763
763
  };
@@ -809,13 +809,13 @@ type Cols = "auto" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10"
809
809
  *
810
810
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Column Guide}
811
811
  */
812
- declare const _default$3: typeof __VLS_export$9;
813
- 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<{}>, {
812
+ declare const _default$3: typeof __VLS_export$10;
813
+ 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<{}>, {
814
814
  cols: "12" | "auto" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11";
815
815
  }, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
816
816
  default?: (props: {}) => any;
817
817
  }>;
818
- type __VLS_WithSlots$6<T, S> = T & {
818
+ type __VLS_WithSlots$7<T, S> = T & {
819
819
  new (): {
820
820
  $slots: S;
821
821
  };
@@ -852,15 +852,15 @@ type FormProps = {
852
852
  *
853
853
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/form | Form Guide}
854
854
  */
855
- declare const _default$10: typeof __VLS_export$8;
856
- 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, {} & {
855
+ declare const _default$10: typeof __VLS_export$9;
856
+ 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, {} & {
857
857
  submit: (event: SubmitEvent) => any;
858
858
  }, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<FormProps> & Readonly<{
859
859
  onSubmit?: ((event: SubmitEvent) => any) | undefined;
860
860
  }>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
861
861
  default?: (props: {}) => any;
862
862
  }>;
863
- type __VLS_WithSlots$5<T, S> = T & {
863
+ type __VLS_WithSlots$6<T, S> = T & {
864
864
  new (): {
865
865
  $slots: S;
866
866
  };
@@ -882,11 +882,11 @@ type __VLS_WithSlots$5<T, S> = T & {
882
882
  *
883
883
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/section | Section Guide}
884
884
  */
885
- declare const _default$15: typeof __VLS_export$7;
886
- 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>, {
885
+ declare const _default$16: typeof __VLS_export$8;
886
+ 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>, {
887
887
  default?: (props: {}) => any;
888
888
  }>;
889
- type __VLS_WithSlots$4<T, S> = T & {
889
+ type __VLS_WithSlots$5<T, S> = T & {
890
890
  new (): {
891
891
  $slots: S;
892
892
  };
@@ -987,11 +987,11 @@ interface SectionAction extends ButtonProps {
987
987
  *
988
988
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/section | Section Guide}
989
989
  */
990
- declare const _default$14: typeof __VLS_export$6;
991
- 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>, {
990
+ declare const _default$15: typeof __VLS_export$7;
991
+ 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>, {
992
992
  default?: (props: {}) => any;
993
993
  }>;
994
- type __VLS_WithSlots$3<T, S> = T & {
994
+ type __VLS_WithSlots$4<T, S> = T & {
995
995
  new (): {
996
996
  $slots: S;
997
997
  };
@@ -1062,8 +1062,8 @@ type TableProps = {
1062
1062
  *
1063
1063
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/table | Table Guide}
1064
1064
  */
1065
- declare const _default$16: typeof __VLS_export$5;
1066
- 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>;
1065
+ declare const _default$17: typeof __VLS_export$6;
1066
+ 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>;
1067
1067
  //#endregion
1068
1068
  //#region src/components/details/types.d.ts
1069
1069
  type DetailsVariant = "primary" | "secondary";
@@ -1110,11 +1110,11 @@ type DetailsProps = {
1110
1110
  *
1111
1111
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/details | Details Guide}
1112
1112
  */
1113
- declare const _default$8: typeof __VLS_export$4;
1114
- 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>, {
1113
+ declare const _default$8: typeof __VLS_export$5;
1114
+ 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>, {
1115
1115
  default?: (props: {}) => any;
1116
1116
  }>;
1117
- type __VLS_WithSlots$2<T, S> = T & {
1117
+ type __VLS_WithSlots$3<T, S> = T & {
1118
1118
  new (): {
1119
1119
  $slots: S;
1120
1120
  };
@@ -1181,8 +1181,50 @@ type ImgProps = {
1181
1181
  *
1182
1182
  * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/img | Img Guide}
1183
1183
  */
1184
- declare const _default$11: typeof __VLS_export$3;
1185
- 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>;
1184
+ declare const _default$11: typeof __VLS_export$4;
1185
+ 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>;
1186
+ //#endregion
1187
+ //#region src/components/link/types.d.ts
1188
+ /**
1189
+ * Props exposed by the {@link Link} component.
1190
+ */
1191
+ type LinkProps = {
1192
+ /**
1193
+ * Where the link goes. A route inside the app (`"/login"`,
1194
+ * `{ name: "forgot-password" }`) navigates through the app's router; a URL
1195
+ * starting with `http` navigates through the browser, in the same tab.
1196
+ */
1197
+ route: RouteLocationRaw;
1198
+ /**
1199
+ * Component id to use on automated tests.
1200
+ */
1201
+ dataTestid?: string;
1202
+ };
1203
+ //#endregion
1204
+ //#region src/components/link/link.vue.d.ts
1205
+ /**
1206
+ * Standalone text link, such as "Forgot your password?" below a login form.
1207
+ * Routes inside the app navigate through the app's router, and URLs starting
1208
+ * with `http` navigate through the browser, in the same tab.
1209
+ *
1210
+ * @example
1211
+ * ```vue
1212
+ * <template>
1213
+ * <u-link route="/forgot-password">Forgot your password?</u-link>
1214
+ * </template>
1215
+ * ```
1216
+ *
1217
+ * @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/link | Link Guide}
1218
+ */
1219
+ declare const _default$12: typeof __VLS_export$3;
1220
+ 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>, {
1221
+ default?: (props: {}) => any;
1222
+ }>;
1223
+ type __VLS_WithSlots$2<T, S> = T & {
1224
+ new (): {
1225
+ $slots: S;
1226
+ };
1227
+ };
1186
1228
  //#endregion
1187
1229
  //#region src/components/data-sets/data-set/types.d.ts
1188
1230
  /**
@@ -1451,4 +1493,4 @@ type __VLS_WithSlots<T, S> = T & {
1451
1493
  };
1452
1494
  };
1453
1495
  //#endregion
1454
- 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 };
1496
+ 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 URow, _default$15 as USection, _default$16 as USectionContent, _default$17 as UTable, _default$18 as UTextField };
@@ -3,6 +3,8 @@ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock
3
3
  import { pt } from "vuetify/locale";
4
4
  import { VApp, VAppBar, VAppBarNavIcon, VAppBarTitle, VAutocomplete, VAvatar, VBadge, VBtn, VCard, VCardActions, VCardText, VCheckboxBtn, VCol, VCombobox, VContainer, VDataIterator, VDatePicker, VDialog, VDivider, VEmptyState, VExpansionPanel, VExpansionPanelText, VExpansionPanelTitle, VExpansionPanels, VForm, VIcon, VIconBtn, VImg, VList, VListGroup, VListItem, VListItemAction, VListSubheader, VLocaleProvider, VMain, VMenu, VNavigationDrawer, VPagination, VProgressCircular, VProgressLinear, VRow, VSkeletonLoader, VSnackbarQueue, VTable, VTextField, VTimePicker } from "vuetify/components";
5
5
  import { formatDateTime, isEmail, isEmpty, isPhone, isUrl } from "@nexdom/shared/utils";
6
+ import { VHighlight } from "vuetify/labs/VHighlight";
7
+ import { RouterLink } from "vue-router";
6
8
  //#region src/composables/navigation/use-route-props.ts
7
9
  function useRouteProps(route) {
8
10
  return computed(() => routeToProps(route));
@@ -1343,6 +1345,8 @@ var autocomplete_field_default = /* @__PURE__ */ defineComponent({
1343
1345
  multiple: isMultiple.value
1344
1346
  }));
1345
1347
  const vuetifyComponent = computed(() => props.strict ? VAutocomplete : VCombobox);
1348
+ const search = ref("");
1349
+ const maskClass = computed(() => props.strict ? "v-autocomplete__mask" : "v-combobox__mask");
1346
1350
  const normalizedItems = computed(() => {
1347
1351
  return props.items.map((item) => {
1348
1352
  if (typeof item === "string") return {
@@ -1356,6 +1360,8 @@ var autocomplete_field_default = /* @__PURE__ */ defineComponent({
1356
1360
  return openBlock(), createBlock(resolveDynamicComponent(vuetifyComponent.value), {
1357
1361
  modelValue: modelValue.value,
1358
1362
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
1363
+ search: search.value,
1364
+ "onUpdate:search": _cache[1] || (_cache[1] = ($event) => search.value = $event),
1359
1365
  variant: unref(vuetifyVariant),
1360
1366
  items: normalizedItems.value,
1361
1367
  "data-testid": props.dataTestid,
@@ -1372,11 +1378,35 @@ var autocomplete_field_default = /* @__PURE__ */ defineComponent({
1372
1378
  rules: unref(rules),
1373
1379
  "menu-props": unref(autocompleteFieldMenuProps),
1374
1380
  chips: ""
1375
- }, {
1381
+ }, createSlots({
1376
1382
  loader: withCtx((loader) => [createVNode(field_loader_default, normalizeProps(guardReactiveProps(loader)), null, 16)]),
1377
- _: 1
1378
- }, 8, [
1383
+ _: 2
1384
+ }, [isMultiple.value ? {
1385
+ name: "item",
1386
+ fn: withCtx(({ props: itemProps }) => [createVNode(unref(VListItem), normalizeProps(guardReactiveProps(itemProps)), {
1387
+ prepend: withCtx(({ isSelected }) => [createVNode(unref(VCheckboxBtn), {
1388
+ "model-value": isSelected,
1389
+ ripple: false,
1390
+ inert: "",
1391
+ "aria-hidden": "true"
1392
+ }, null, 8, ["model-value"])]),
1393
+ title: withCtx(() => [createVNode(unref(VHighlight), {
1394
+ text: itemProps.title,
1395
+ query: search.value,
1396
+ "match-all": "",
1397
+ "ignore-case": "",
1398
+ "mark-class": maskClass.value
1399
+ }, null, 8, [
1400
+ "text",
1401
+ "query",
1402
+ "mark-class"
1403
+ ])]),
1404
+ _: 2
1405
+ }, 1040)]),
1406
+ key: "0"
1407
+ } : void 0]), 1064, [
1379
1408
  "modelValue",
1409
+ "search",
1380
1410
  "variant",
1381
1411
  "items",
1382
1412
  "data-testid",
@@ -2283,6 +2313,35 @@ var img_default = /* @__PURE__ */ defineComponent({
2283
2313
  }
2284
2314
  });
2285
2315
  //#endregion
2316
+ //#region src/components/link/link.vue
2317
+ var link_default = /* @__PURE__ */ defineComponent({
2318
+ inheritAttrs: false,
2319
+ __name: "link",
2320
+ props: {
2321
+ route: {
2322
+ type: null,
2323
+ required: true
2324
+ },
2325
+ dataTestid: {
2326
+ type: String,
2327
+ required: false
2328
+ }
2329
+ },
2330
+ setup(__props) {
2331
+ const props = __props;
2332
+ const routeProps = useRouteProps(() => props.route);
2333
+ return (_ctx, _cache) => {
2334
+ return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" No Vuetify component renders an inline text link, so the class removes the browser's underline "), (openBlock(), createBlock(resolveDynamicComponent(unref(isExternalRoute)(props.route) ? "a" : unref(RouterLink)), mergeProps(unref(routeProps), {
2335
+ class: "text-decoration-none",
2336
+ "data-testid": props.dataTestid
2337
+ }), {
2338
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
2339
+ _: 3
2340
+ }, 16, ["data-testid"]))], 2112);
2341
+ };
2342
+ }
2343
+ });
2344
+ //#endregion
2286
2345
  //#region src/composables/data-set/data-set.ts
2287
2346
  /**
2288
2347
  * Width, out of the grid's 12 columns, taken by each record so that
@@ -2586,4 +2645,4 @@ var data_set_item_default = /* @__PURE__ */ defineComponent({
2586
2645
  }
2587
2646
  });
2588
2647
  //#endregion
2589
- 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 };
2648
+ 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, link_default as ULink, 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.35",
3
+ "version": "2.0.0-beta.37",
4
4
  "description": "A ui framework for NEXDOM applications.",
5
5
  "keywords": [
6
6
  "lib",