@nexdom/uimed-vue 2.0.0-beta.6 → 2.0.0-beta.60
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 +131 -17
- package/README.md +1 -1
- package/dist/_virtual/_rolldown/runtime.js +7 -0
- package/dist/components/app-bar/app-bar.js +5 -0
- package/dist/components/app-bar/app-bar.vue_vue_type_script_setup_true_lang.js +286 -0
- package/dist/components/app-bar/types.d.ts +96 -0
- package/dist/components/button/button.js +5 -0
- package/dist/components/button/button.vue.d.ts +31 -0
- package/dist/components/button/button.vue_vue_type_script_setup_true_lang.js +97 -0
- package/dist/components/button/types.d.ts +65 -0
- package/dist/components/data-sets/data-set/data-set.js +5 -0
- package/dist/components/data-sets/data-set/data-set.vue.d.ts +47 -0
- package/dist/components/data-sets/data-set/data-set.vue_vue_type_script_setup_true_lang.js +157 -0
- package/dist/components/data-sets/data-set/types.d.ts +91 -0
- package/dist/components/data-sets/data-set-bar.js +5 -0
- package/dist/components/data-sets/data-set-bar.vue_vue_type_script_setup_true_lang.js +92 -0
- package/dist/components/data-sets/data-set-item/data-set-item.js +5 -0
- package/dist/components/data-sets/data-set-item/data-set-item.vue.d.ts +35 -0
- package/dist/components/data-sets/data-set-item/data-set-item.vue_vue_type_script_setup_true_lang.js +57 -0
- package/dist/components/data-sets/data-set-item/types.d.ts +42 -0
- package/dist/components/details/details.js +5 -0
- package/dist/components/details/details.vue.d.ts +28 -0
- package/dist/components/details/details.vue_vue_type_script_setup_true_lang.js +56 -0
- package/dist/components/details/types.d.ts +29 -0
- package/dist/components/dialogs/dialog/dialog-host-key.js +10 -0
- package/dist/components/dialogs/dialog/dialog.js +5 -0
- package/dist/components/dialogs/dialog/dialog.vue.d.ts +36 -0
- package/dist/components/dialogs/dialog/dialog.vue_vue_type_script_setup_true_lang.js +112 -0
- package/dist/components/dialogs/dialog/types.d.ts +47 -0
- package/dist/components/dialogs/dialog-host.js +5 -0
- package/dist/components/dialogs/dialog-host.vue_vue_type_script_setup_true_lang.js +81 -0
- package/dist/components/dialogs/toast.js +5 -0
- package/dist/components/dialogs/toast.vue_vue_type_script_setup_true_lang.js +35 -0
- package/dist/components/footer/footer.js +5 -0
- package/dist/components/footer/footer.vue_vue_type_script_setup_true_lang.js +31 -0
- package/dist/components/footer/types.d.ts +16 -0
- package/dist/components/form/form.js +5 -0
- package/dist/components/form/form.vue.d.ts +32 -0
- package/dist/components/form/form.vue_vue_type_script_setup_true_lang.js +37 -0
- package/dist/components/form/types.d.ts +15 -0
- package/dist/components/grid/column/column.js +5 -0
- package/dist/components/grid/column/column.vue.d.ts +33 -0
- package/dist/components/grid/column/column.vue_vue_type_script_setup_true_lang.js +45 -0
- package/dist/components/grid/column/types.d.ts +27 -0
- package/dist/components/grid/container/container.js +5 -0
- package/dist/components/grid/container/container.vue.d.ts +27 -0
- package/dist/components/grid/container/container.vue_vue_type_script_setup_true_lang.js +33 -0
- package/dist/components/grid/container/types.d.ts +17 -0
- package/dist/components/grid/row/row.js +5 -0
- package/dist/components/grid/row/row.vue.d.ts +29 -0
- package/dist/components/grid/row/row.vue_vue_type_script_setup_true_lang.js +61 -0
- package/dist/components/grid/row/types.d.ts +63 -0
- package/dist/components/icon-button/icon-button.js +5 -0
- package/dist/components/icon-button/icon-button.vue.d.ts +23 -0
- package/dist/components/icon-button/icon-button.vue_vue_type_script_setup_true_lang.js +51 -0
- package/dist/components/icon-button/types.d.ts +32 -0
- package/dist/components/img/img.js +5 -0
- package/dist/components/img/img.vue.d.ts +23 -0
- package/dist/components/img/img.vue_vue_type_script_setup_true_lang.js +61 -0
- package/dist/components/img/types.d.ts +43 -0
- package/dist/components/inputs/autocomplete-field/autocomplete-field.js +5 -0
- package/dist/components/inputs/autocomplete-field/autocomplete-field.vue.d.ts +33 -0
- package/dist/components/inputs/autocomplete-field/autocomplete-field.vue_vue_type_script_setup_true_lang.js +161 -0
- package/dist/components/inputs/autocomplete-field/types.d.ts +84 -0
- package/dist/components/inputs/checkbox/checkbox.js +5 -0
- package/dist/components/inputs/checkbox/checkbox.vue.d.ts +33 -0
- package/dist/components/inputs/checkbox/checkbox.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/components/inputs/checkbox/types.d.ts +35 -0
- package/dist/components/inputs/date-time-field/date-time-field.js +5 -0
- package/dist/components/inputs/date-time-field/date-time-field.vue.d.ts +32 -0
- package/dist/components/inputs/date-time-field/date-time-field.vue_vue_type_script_setup_true_lang.js +205 -0
- package/dist/components/inputs/date-time-field/types.d.ts +84 -0
- package/dist/components/inputs/field-loader.js +5 -0
- package/dist/components/inputs/field-loader.vue_vue_type_script_setup_true_lang.js +30 -0
- package/dist/components/inputs/mask-field/mask-field.js +5 -0
- package/dist/components/inputs/mask-field/mask-field.vue.d.ts +32 -0
- package/dist/components/inputs/mask-field/mask-field.vue_vue_type_script_setup_true_lang.js +120 -0
- package/dist/components/inputs/mask-field/types.d.ts +118 -0
- package/dist/components/inputs/text-field/text-field.js +5 -0
- package/dist/components/inputs/text-field/text-field.vue.d.ts +30 -0
- package/dist/components/inputs/text-field/text-field.vue_vue_type_script_setup_true_lang.js +119 -0
- package/dist/components/inputs/text-field/types.d.ts +70 -0
- package/dist/components/link/link.js +5 -0
- package/dist/components/link/link.vue.d.ts +27 -0
- package/dist/components/link/link.vue_vue_type_script_setup_true_lang.js +32 -0
- package/dist/components/link/types.d.ts +18 -0
- package/dist/components/main/main.js +5 -0
- package/dist/components/main/main.vue.d.ts +33 -0
- package/dist/components/main/main.vue_vue_type_script_setup_true_lang.js +102 -0
- package/dist/components/main/types.d.ts +75 -0
- package/dist/components/navigation-menu/navigation-menu.js +5 -0
- package/dist/components/navigation-menu/navigation-menu.vue_vue_type_script_setup_true_lang.js +145 -0
- package/dist/components/navigation-menu/types.d.ts +62 -0
- package/dist/components/page-transition/page-transition.js +5 -0
- package/dist/components/page-transition/page-transition.vue.d.ts +40 -0
- package/dist/components/page-transition/page-transition.vue_vue_type_script_setup_true_lang.js +27 -0
- package/dist/components/page-transition/types.d.ts +18 -0
- package/dist/components/sections/section/section.js +5 -0
- package/dist/components/sections/section/section.vue.d.ts +28 -0
- package/dist/components/sections/section/section.vue_vue_type_script_setup_true_lang.js +108 -0
- package/dist/components/sections/section/types.d.ts +80 -0
- package/dist/components/sections/section-content/section-content.js +5 -0
- package/dist/components/sections/section-content/section-content.vue.d.ts +27 -0
- package/dist/components/sections/section-content/section-content.vue_vue_type_script_setup_true_lang.js +16 -0
- package/dist/components/skeleton-loader/skeleton-loader.js +5 -0
- package/dist/components/skeleton-loader/skeleton-loader.vue_vue_type_script_setup_true_lang.js +65 -0
- package/dist/components/table/table.js +5 -0
- package/dist/components/table/table.vue.d.ts +19 -0
- package/dist/components/table/table.vue_vue_type_script_setup_true_lang.js +84 -0
- package/dist/components/table/types.d.ts +51 -0
- package/dist/components.d.ts +23 -828
- package/dist/components.js +23 -1112
- package/dist/composables/alignment/alignment.js +41 -0
- package/dist/composables/alignment/types.d.ts +12 -0
- package/dist/composables/button/button.js +54 -0
- package/dist/composables/colors/constants.js +27 -0
- package/dist/composables/colors/types.d.ts +4 -0
- package/dist/composables/colors/use-vuetify-background-color.js +16 -0
- package/dist/composables/colors/use-vuetify-color.js +11 -0
- package/dist/composables/colors/use-vuetify-text-color.js +12 -0
- package/dist/composables/data-set/data-set.js +128 -0
- package/dist/composables/dialogs/types.d.ts +88 -0
- package/dist/composables/dialogs/use-confirm.d.ts +21 -0
- package/dist/composables/dialogs/use-confirm.js +55 -0
- package/dist/composables/dialogs/use-decorative-timer.js +25 -0
- package/dist/composables/dialogs/use-dialog-focus.js +64 -0
- package/dist/composables/dialogs/use-dialog-loading.js +13 -0
- package/dist/composables/dialogs/use-dialog.d.ts +36 -0
- package/dist/composables/dialogs/use-dialog.js +73 -0
- package/dist/composables/dialogs/use-run-or-toast.d.ts +27 -0
- package/dist/composables/dialogs/use-run-or-toast.js +65 -0
- package/dist/composables/dialogs/use-toast.d.ts +25 -0
- package/dist/composables/dialogs/use-toast.js +39 -0
- package/dist/composables/dimensions/dimensions.js +18 -0
- package/dist/composables/inputs/autocomplete-field.js +39 -0
- package/dist/composables/inputs/date-time-field.js +109 -0
- package/dist/composables/inputs/fields.js +28 -0
- package/dist/composables/inputs/mask-field.js +133 -0
- package/dist/composables/inputs/rules.js +16 -0
- package/dist/composables/inputs/text-field.js +81 -0
- package/dist/composables/navigation/types.d.ts +54 -0
- package/dist/composables/navigation/use-navigation-search-shortcut.js +97 -0
- package/dist/composables/navigation/use-route-props.js +21 -0
- package/dist/composables/navigation/use-unsaved-changes.d.ts +35 -0
- package/dist/composables/navigation/use-unsaved-changes.js +88 -0
- package/dist/composables/section/section.js +34 -0
- package/dist/composables.d.ts +6 -67
- package/dist/composables.js +6 -65
- package/dist/consts/icons.d.ts +67 -0
- package/dist/consts/icons.js +69 -0
- package/dist/consts/locale.js +12 -0
- package/dist/consts/types.d.ts +12 -0
- package/dist/index.d.ts +3 -16
- package/dist/index.js +38 -14
- package/dist/plugins.d.ts +17 -7
- package/dist/plugins.js +54 -3
- package/dist/styles/fonts/UnimedSlab-Regular.woff2 +0 -0
- package/dist/styles/fonts/fonts.css +5 -0
- package/dist/styles/settings.scss +155 -0
- package/dist/unit-test.d.ts +2 -3
- package/dist/unit-test.js +11 -7
- package/package.json +14 -12
- package/dist/types-BPXXtbmW.d.ts +0 -5
- package/dist/use-toast-CACuYhK_.js +0 -53
package/dist/components/data-sets/data-set-item/data-set-item.vue_vue_type_script_setup_true_lang.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import section_content_default from "../../sections/section-content/section-content.js";
|
|
2
|
+
import section_default from "../../sections/section/section.js";
|
|
3
|
+
import { createBlock, createCommentVNode, defineComponent, openBlock, renderSlot, useSlots, withCtx } from "vue";
|
|
4
|
+
var data_set_item_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
5
|
+
inheritAttrs: false,
|
|
6
|
+
__name: "data-set-item",
|
|
7
|
+
props: {
|
|
8
|
+
title: {
|
|
9
|
+
type: String,
|
|
10
|
+
required: false
|
|
11
|
+
},
|
|
12
|
+
subtitle: {
|
|
13
|
+
type: String,
|
|
14
|
+
required: false
|
|
15
|
+
},
|
|
16
|
+
variant: {
|
|
17
|
+
type: String,
|
|
18
|
+
required: false
|
|
19
|
+
},
|
|
20
|
+
actions: {
|
|
21
|
+
type: Array,
|
|
22
|
+
required: false
|
|
23
|
+
},
|
|
24
|
+
dataTestid: {
|
|
25
|
+
type: String,
|
|
26
|
+
required: false
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
setup(__props) {
|
|
30
|
+
const props = __props;
|
|
31
|
+
const slots = useSlots();
|
|
32
|
+
return (_ctx, _cache) => {
|
|
33
|
+
return openBlock(), createBlock(section_default, {
|
|
34
|
+
title: props.title,
|
|
35
|
+
subtitle: props.subtitle,
|
|
36
|
+
variant: props.variant,
|
|
37
|
+
actions: props.actions,
|
|
38
|
+
"data-testid": props.dataTestid,
|
|
39
|
+
"full-height": ""
|
|
40
|
+
}, {
|
|
41
|
+
default: withCtx(() => [slots.default ? (openBlock(), createBlock(section_content_default, { key: 0 }, {
|
|
42
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
43
|
+
_: 3
|
|
44
|
+
})) : createCommentVNode("v-if", true)]),
|
|
45
|
+
_: 3
|
|
46
|
+
}, 8, [
|
|
47
|
+
"title",
|
|
48
|
+
"subtitle",
|
|
49
|
+
"variant",
|
|
50
|
+
"actions",
|
|
51
|
+
"data-testid"
|
|
52
|
+
]);
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
//#endregion
|
|
57
|
+
export { data_set_item_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { SectionAction, SectionVariant } from "../../sections/section/types.js";
|
|
2
|
+
//#region src/components/data-sets/data-set-item/types.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Props exposed by the {@link DataSetItem} component.
|
|
5
|
+
*/
|
|
6
|
+
export type DataSetItemProps = {
|
|
7
|
+
/**
|
|
8
|
+
* Title displayed at the top of the record's card.
|
|
9
|
+
*/
|
|
10
|
+
title?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Short description displayed below the title.
|
|
13
|
+
*/
|
|
14
|
+
subtitle?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Applies a distinct style variation to the record's card, just like on
|
|
17
|
+
* `USection`. One of `primary` or `secondary`.
|
|
18
|
+
* @default "primary"
|
|
19
|
+
*/
|
|
20
|
+
variant?: SectionVariant;
|
|
21
|
+
/**
|
|
22
|
+
* Actions of the record, like "Editar" and "Excluir", displayed at the
|
|
23
|
+
* bottom of its card, just like on `USection`. When undefined or empty, no
|
|
24
|
+
* actions area is rendered.
|
|
25
|
+
*/
|
|
26
|
+
actions?: SectionAction[];
|
|
27
|
+
/**
|
|
28
|
+
* Component id to use on automated tests.
|
|
29
|
+
*/
|
|
30
|
+
dataTestid?: string;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Slots exposed by the {@link DataSetItem} component.
|
|
34
|
+
*/
|
|
35
|
+
export type DataSetItemSlots = {
|
|
36
|
+
/**
|
|
37
|
+
* Details of the record, displayed below the title and subtitle, like a
|
|
38
|
+
* vertical `UTable` with some of its fields.
|
|
39
|
+
*/
|
|
40
|
+
default?: () => unknown;
|
|
41
|
+
};
|
|
42
|
+
//#endregion
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import details_vue_vue_type_script_setup_true_lang_default from "./details.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/components/details/details.vue
|
|
3
|
+
var details_default = details_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { details_default as default };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { DetailsProps } from "./types.js";
|
|
2
|
+
//#region src/components/details/details.vue.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Details component to show content that can be expanded or collapsed by
|
|
5
|
+
* clicking on its title. Starts collapsed.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```vue
|
|
9
|
+
* <template>
|
|
10
|
+
* <u-details title="Title">
|
|
11
|
+
* Content
|
|
12
|
+
* </u-details>
|
|
13
|
+
* </template>
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/details | Details Guide}
|
|
17
|
+
*/
|
|
18
|
+
declare const _default: typeof __VLS_export;
|
|
19
|
+
declare const __VLS_export: __VLS_WithSlots<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>, {
|
|
20
|
+
default?: (props: {}) => any;
|
|
21
|
+
}>;
|
|
22
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
23
|
+
new (): {
|
|
24
|
+
$slots: S;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
//#endregion
|
|
28
|
+
export { _default as default };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import skeleton_loader_default from "../skeleton-loader/skeleton-loader.js";
|
|
2
|
+
import { computed, createBlock, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, renderSlot, toDisplayString, unref, withCtx } from "vue";
|
|
3
|
+
import { VExpansionPanel, VExpansionPanelText, VExpansionPanelTitle, VExpansionPanels } from "vuetify/components";
|
|
4
|
+
var details_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
5
|
+
inheritAttrs: false,
|
|
6
|
+
__name: "details",
|
|
7
|
+
props: {
|
|
8
|
+
variant: {
|
|
9
|
+
type: String,
|
|
10
|
+
required: false
|
|
11
|
+
},
|
|
12
|
+
title: {
|
|
13
|
+
type: String,
|
|
14
|
+
required: false
|
|
15
|
+
},
|
|
16
|
+
loading: {
|
|
17
|
+
type: Boolean,
|
|
18
|
+
required: false
|
|
19
|
+
},
|
|
20
|
+
dataTestid: {
|
|
21
|
+
type: String,
|
|
22
|
+
required: false
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
setup(__props) {
|
|
26
|
+
const props = __props;
|
|
27
|
+
const outlined = computed(() => props.variant === "secondary");
|
|
28
|
+
return (_ctx, _cache) => {
|
|
29
|
+
return openBlock(), createBlock(skeleton_loader_default, {
|
|
30
|
+
loading: props.loading,
|
|
31
|
+
type: "heading",
|
|
32
|
+
"full-width": ""
|
|
33
|
+
}, {
|
|
34
|
+
default: withCtx(() => [createVNode(unref(VExpansionPanels), {
|
|
35
|
+
flat: outlined.value,
|
|
36
|
+
"data-testid": props.dataTestid
|
|
37
|
+
}, {
|
|
38
|
+
default: withCtx(() => [createVNode(unref(VExpansionPanel), { class: normalizeClass({ border: outlined.value }) }, {
|
|
39
|
+
default: withCtx(() => [createVNode(unref(VExpansionPanelTitle), null, {
|
|
40
|
+
default: withCtx(() => [createTextVNode(toDisplayString(props.title), 1)]),
|
|
41
|
+
_: 1
|
|
42
|
+
}), createVNode(unref(VExpansionPanelText), null, {
|
|
43
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
44
|
+
_: 3
|
|
45
|
+
})]),
|
|
46
|
+
_: 3
|
|
47
|
+
}, 8, ["class"])]),
|
|
48
|
+
_: 3
|
|
49
|
+
}, 8, ["flat", "data-testid"])]),
|
|
50
|
+
_: 3
|
|
51
|
+
}, 8, ["loading"]);
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
//#endregion
|
|
56
|
+
export { details_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
//#region src/components/details/types.d.ts
|
|
2
|
+
export type DetailsVariant = "primary" | "secondary";
|
|
3
|
+
/**
|
|
4
|
+
* Props exposed by the {@link Details} component.
|
|
5
|
+
*/
|
|
6
|
+
export type DetailsProps = {
|
|
7
|
+
/**
|
|
8
|
+
* Applies a distinct style variation to the details.
|
|
9
|
+
* One of `primary` or `secondary`.
|
|
10
|
+
* @default "primary"
|
|
11
|
+
*/
|
|
12
|
+
variant?: DetailsVariant;
|
|
13
|
+
/**
|
|
14
|
+
* Title displayed on the header, which expands or collapses the content
|
|
15
|
+
* when clicked. The header stays clickable even without a title.
|
|
16
|
+
*/
|
|
17
|
+
title?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Shows a skeleton loader in place of the details while data is being
|
|
20
|
+
* loaded.
|
|
21
|
+
* @default false
|
|
22
|
+
*/
|
|
23
|
+
loading?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Component id to use on automated tests.
|
|
26
|
+
*/
|
|
27
|
+
dataTestid?: string;
|
|
28
|
+
};
|
|
29
|
+
//#endregion
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/components/dialogs/dialog/dialog-host-key.ts
|
|
2
|
+
/**
|
|
3
|
+
* Injection key of {@link DialogHostContext}, provided by the internal `DialogHost`. Besides the
|
|
4
|
+
* role, the blocking while an action runs and the end of the leave transitions, it makes the
|
|
5
|
+
* dialog's content describe the dialog (`aria-describedby`), since `DialogHost` only displays text
|
|
6
|
+
* messages. Not part of the public API.
|
|
7
|
+
*/
|
|
8
|
+
const dialogHostKey = Symbol("dialog-host");
|
|
9
|
+
//#endregion
|
|
10
|
+
export { dialogHostKey };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import dialog_vue_vue_type_script_setup_true_lang_default from "./dialog.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/components/dialogs/dialog/dialog.vue
|
|
3
|
+
var dialog_default = dialog_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { dialog_default as default };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { DialogProps } from "./types.js";
|
|
2
|
+
//#region src/components/dialogs/dialog/dialog.vue.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Dialog component to display content in a modal window, over the page, until it's closed.
|
|
5
|
+
* Its title and actions stay in place while the content scrolls.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```vue
|
|
9
|
+
* <template>
|
|
10
|
+
* <u-dialog v-model="open" title="Title" :actions="[{ label: 'Close', onClick: () => (open = false) }]">
|
|
11
|
+
* Content
|
|
12
|
+
* </u-dialog>
|
|
13
|
+
* </template>
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/dialog | Dialog Guide}
|
|
17
|
+
*/
|
|
18
|
+
declare const _default: typeof __VLS_export;
|
|
19
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<DialogProps & {
|
|
20
|
+
modelValue?: boolean;
|
|
21
|
+
}, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
|
|
22
|
+
"update:modelValue": (value: boolean) => any;
|
|
23
|
+
}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<DialogProps & {
|
|
24
|
+
modelValue?: boolean;
|
|
25
|
+
}> & Readonly<{
|
|
26
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
27
|
+
}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
28
|
+
default?: (props: {}) => any;
|
|
29
|
+
}>;
|
|
30
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
31
|
+
new (): {
|
|
32
|
+
$slots: S;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
//#endregion
|
|
36
|
+
export { _default as default };
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import button_default from "../../button/button.js";
|
|
2
|
+
import { dialogHostKey } from "./dialog-host-key.js";
|
|
3
|
+
import { useDialogFocus } from "../../../composables/dialogs/use-dialog-focus.js";
|
|
4
|
+
import { useDialogLoading } from "../../../composables/dialogs/use-dialog-loading.js";
|
|
5
|
+
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, inject, mergeModels, mergeProps, openBlock, ref, renderList, renderSlot, toDisplayString, unref, useId, useModel, useTemplateRef, watch, withCtx } from "vue";
|
|
6
|
+
import { VCard, VDialog } from "vuetify/components";
|
|
7
|
+
//#region src/components/dialogs/dialog/dialog.vue?vue&type=script&setup=true&lang.ts
|
|
8
|
+
const _hoisted_1 = ["id"];
|
|
9
|
+
var dialog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
10
|
+
inheritAttrs: false,
|
|
11
|
+
__name: "dialog",
|
|
12
|
+
props: /*@__PURE__*/ mergeModels({
|
|
13
|
+
title: {
|
|
14
|
+
type: String,
|
|
15
|
+
required: false
|
|
16
|
+
},
|
|
17
|
+
actions: {
|
|
18
|
+
type: Array,
|
|
19
|
+
required: false
|
|
20
|
+
},
|
|
21
|
+
size: {
|
|
22
|
+
type: String,
|
|
23
|
+
required: false
|
|
24
|
+
},
|
|
25
|
+
dataTestid: {
|
|
26
|
+
type: String,
|
|
27
|
+
required: false
|
|
28
|
+
}
|
|
29
|
+
}, {
|
|
30
|
+
"modelValue": {
|
|
31
|
+
type: Boolean,
|
|
32
|
+
default: false
|
|
33
|
+
},
|
|
34
|
+
"modelModifiers": {}
|
|
35
|
+
}),
|
|
36
|
+
emits: ["update:modelValue"],
|
|
37
|
+
setup(__props) {
|
|
38
|
+
const props = __props;
|
|
39
|
+
const model = useModel(__props, "modelValue");
|
|
40
|
+
const maxWidths = {
|
|
41
|
+
small: 400,
|
|
42
|
+
medium: 560,
|
|
43
|
+
large: 800
|
|
44
|
+
};
|
|
45
|
+
const host = inject(dialogHostKey, null);
|
|
46
|
+
const contentId = useId();
|
|
47
|
+
const card = useTemplateRef("card");
|
|
48
|
+
const title = computed(() => props.title || void 0);
|
|
49
|
+
const maxWidth = computed(() => maxWidths[props.size ?? "medium"]);
|
|
50
|
+
const role = computed(() => host?.role() ?? "dialog");
|
|
51
|
+
/**
|
|
52
|
+
* Whether the dialog is displayed. It follows `v-model`, but turns `false` as soon as the user
|
|
53
|
+
* closes the dialog, while `v-model` only does once the leave transition ends.
|
|
54
|
+
*/
|
|
55
|
+
const isActive = ref(model.value);
|
|
56
|
+
watch(model, (value) => isActive.value = value);
|
|
57
|
+
const { isLoading } = useDialogLoading(() => props.actions);
|
|
58
|
+
const { focusFirstElement } = useDialogFocus(() => isActive.value, () => card.value?.$el);
|
|
59
|
+
function onAfterLeave() {
|
|
60
|
+
model.value = false;
|
|
61
|
+
host?.afterLeave();
|
|
62
|
+
}
|
|
63
|
+
return (_ctx, _cache) => {
|
|
64
|
+
return openBlock(), createBlock(unref(VDialog), {
|
|
65
|
+
modelValue: isActive.value,
|
|
66
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isActive.value = $event),
|
|
67
|
+
persistent: unref(isLoading),
|
|
68
|
+
"max-width": maxWidth.value,
|
|
69
|
+
role: role.value,
|
|
70
|
+
"aria-label": title.value,
|
|
71
|
+
"aria-labelledby": title.value ? void 0 : unref(contentId),
|
|
72
|
+
"aria-describedby": unref(host) ? unref(contentId) : void 0,
|
|
73
|
+
"data-testid": props.dataTestid,
|
|
74
|
+
scrollable: "",
|
|
75
|
+
onAfterEnter: unref(focusFirstElement),
|
|
76
|
+
onAfterLeave
|
|
77
|
+
}, {
|
|
78
|
+
default: withCtx(() => [createCommentVNode(" `data-u-dialog` identifies the card to the dialogs opened from this one "), createVNode(unref(VCard), {
|
|
79
|
+
ref_key: "card",
|
|
80
|
+
ref: card,
|
|
81
|
+
title: title.value,
|
|
82
|
+
"data-u-dialog": ""
|
|
83
|
+
}, createSlots({
|
|
84
|
+
text: withCtx(() => [createElementVNode("div", { id: unref(contentId) }, [renderSlot(_ctx.$slots, "default")], 8, _hoisted_1)]),
|
|
85
|
+
_: 2
|
|
86
|
+
}, [props.actions?.length ? {
|
|
87
|
+
name: "actions",
|
|
88
|
+
fn: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(props.actions, ({ label, onClick, ...action }, index) => {
|
|
89
|
+
return openBlock(), createBlock(button_default, mergeProps({ key: index }, { ref_for: true }, action, { onClick }), {
|
|
90
|
+
default: withCtx(() => [createTextVNode(toDisplayString(label), 1)]),
|
|
91
|
+
_: 2
|
|
92
|
+
}, 1040, ["onClick"]);
|
|
93
|
+
}), 128))]),
|
|
94
|
+
key: "0"
|
|
95
|
+
} : void 0]), 1032, ["title"])]),
|
|
96
|
+
_: 3
|
|
97
|
+
}, 8, [
|
|
98
|
+
"modelValue",
|
|
99
|
+
"persistent",
|
|
100
|
+
"max-width",
|
|
101
|
+
"role",
|
|
102
|
+
"aria-label",
|
|
103
|
+
"aria-labelledby",
|
|
104
|
+
"aria-describedby",
|
|
105
|
+
"data-testid",
|
|
106
|
+
"onAfterEnter"
|
|
107
|
+
]);
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
//#endregion
|
|
112
|
+
export { dialog_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ButtonProps } from "../../button/types.js";
|
|
2
|
+
//#region src/components/dialogs/dialog/types.d.ts
|
|
3
|
+
export type DialogSize = "small" | "medium" | "large";
|
|
4
|
+
/**
|
|
5
|
+
* Props exposed by the {@link Dialog} component.
|
|
6
|
+
*/
|
|
7
|
+
export type DialogProps = {
|
|
8
|
+
/**
|
|
9
|
+
* Plain text displayed as the dialog's title, in a single line. HTML isn't interpreted.
|
|
10
|
+
* Also used as the dialog's accessible name. Without it, the content is the accessible name.
|
|
11
|
+
*/
|
|
12
|
+
title?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Buttons displayed at the bottom of the dialog, right-aligned, in the given order.
|
|
15
|
+
* Place the main action last. When undefined or empty, no actions area is rendered.
|
|
16
|
+
* Clicking an action doesn't close the dialog: set `v-model` to `false` in `onClick`.
|
|
17
|
+
* While any action is `loading`, the user can't close the dialog with `Esc`, a click outside or
|
|
18
|
+
* the browser's back button, but setting `v-model` to `false` still closes it.
|
|
19
|
+
*/
|
|
20
|
+
actions?: DialogButtonAction[];
|
|
21
|
+
/**
|
|
22
|
+
* Maximum width of the dialog.
|
|
23
|
+
* One of `small` (400px), `medium` (560px), or `large` (800px).
|
|
24
|
+
* @default "medium"
|
|
25
|
+
*/
|
|
26
|
+
size?: DialogSize;
|
|
27
|
+
/**
|
|
28
|
+
* Component id to use on automated tests.
|
|
29
|
+
*/
|
|
30
|
+
dataTestid?: string;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* A single action rendered inside {@link Dialog}'s actions area. Same shape as `USection`'s
|
|
34
|
+
* actions. While it's `loading`, the user can't close the dialog, but setting `v-model` to `false` still does.
|
|
35
|
+
*/
|
|
36
|
+
export interface DialogButtonAction extends ButtonProps {
|
|
37
|
+
/**
|
|
38
|
+
* Text displayed on the action button.
|
|
39
|
+
*/
|
|
40
|
+
label: string;
|
|
41
|
+
/**
|
|
42
|
+
* Called when the action button is clicked. Not called while the action is `disabled` or
|
|
43
|
+
* `loading`. The dialog stays open.
|
|
44
|
+
*/
|
|
45
|
+
onClick?: (event: MouseEvent) => void;
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import dialog_host_vue_vue_type_script_setup_true_lang_default from "./dialog-host.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/components/dialogs/dialog-host.vue
|
|
3
|
+
var dialog_host_default = dialog_host_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { dialog_host_default as default };
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { dialogHostKey } from "./dialog/dialog-host-key.js";
|
|
2
|
+
import dialog_default from "./dialog/dialog.js";
|
|
3
|
+
import { owners, requests } from "../../composables/dialogs/use-dialog.js";
|
|
4
|
+
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, defineComponent, onMounted, onUnmounted, openBlock, provide, ref, shallowRef, toDisplayString, watch, withCtx } from "vue";
|
|
5
|
+
var dialog_host_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
6
|
+
inheritAttrs: false,
|
|
7
|
+
__name: "dialog-host",
|
|
8
|
+
setup(__props) {
|
|
9
|
+
const owner = Symbol("dialog");
|
|
10
|
+
const isOwner = computed(() => owners.value[0] === owner);
|
|
11
|
+
const next = computed(() => isOwner.value ? requests.value[0] : void 0);
|
|
12
|
+
/** Dialog on display, kept until its leave transition ends. */
|
|
13
|
+
const request = shallowRef();
|
|
14
|
+
/**
|
|
15
|
+
* Changes for every dialog on display, so each one gets its own `Dialog`, open from the start.
|
|
16
|
+
* The next dialog can then open right after a dismissed one, whose `v-model` stays `true`.
|
|
17
|
+
*/
|
|
18
|
+
const key = shallowRef();
|
|
19
|
+
const isOpen = ref(false);
|
|
20
|
+
const selected = shallowRef();
|
|
21
|
+
const isRunning = computed(() => selected.value !== void 0);
|
|
22
|
+
const actions = computed(() => {
|
|
23
|
+
const current = request.value;
|
|
24
|
+
if (!current) return void 0;
|
|
25
|
+
return current.actions.map((action) => ({
|
|
26
|
+
label: action.text,
|
|
27
|
+
variant: action.variant,
|
|
28
|
+
color: action.color,
|
|
29
|
+
loading: selected.value === action,
|
|
30
|
+
disabled: isRunning.value && selected.value !== action,
|
|
31
|
+
onClick: () => void select(current, action)
|
|
32
|
+
}));
|
|
33
|
+
});
|
|
34
|
+
provide(dialogHostKey, {
|
|
35
|
+
role: () => request.value?.role,
|
|
36
|
+
afterLeave: showNext
|
|
37
|
+
});
|
|
38
|
+
onMounted(() => owners.value.push(owner));
|
|
39
|
+
onUnmounted(() => owners.value = owners.value.filter((item) => item !== owner));
|
|
40
|
+
watch(next, show);
|
|
41
|
+
function show() {
|
|
42
|
+
if (request.value) return;
|
|
43
|
+
request.value = next.value;
|
|
44
|
+
key.value = Symbol();
|
|
45
|
+
isOpen.value = next.value !== void 0;
|
|
46
|
+
}
|
|
47
|
+
function showNext() {
|
|
48
|
+
request.value = void 0;
|
|
49
|
+
show();
|
|
50
|
+
}
|
|
51
|
+
async function select(current, action) {
|
|
52
|
+
requests.value.shift();
|
|
53
|
+
selected.value = action;
|
|
54
|
+
await current.select(action?.value);
|
|
55
|
+
selected.value = void 0;
|
|
56
|
+
if (action) isOpen.value = false;
|
|
57
|
+
}
|
|
58
|
+
/** Called once a dialog closed by the user leaves, right before the next one is displayed. */
|
|
59
|
+
function dismiss() {
|
|
60
|
+
if (request.value) select(request.value);
|
|
61
|
+
}
|
|
62
|
+
return (_ctx, _cache) => {
|
|
63
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" PascalCase, since `<dialog>` in the template would render the native HTML element instead "), (openBlock(), createBlock(dialog_default, {
|
|
64
|
+
key: key.value,
|
|
65
|
+
"model-value": isOpen.value,
|
|
66
|
+
title: request.value?.title,
|
|
67
|
+
actions: actions.value,
|
|
68
|
+
"onUpdate:modelValue": dismiss
|
|
69
|
+
}, {
|
|
70
|
+
default: withCtx(() => [createTextVNode(toDisplayString(request.value?.message), 1)]),
|
|
71
|
+
_: 1
|
|
72
|
+
}, 8, [
|
|
73
|
+
"model-value",
|
|
74
|
+
"title",
|
|
75
|
+
"actions"
|
|
76
|
+
]))], 2112);
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
//#endregion
|
|
81
|
+
export { dialog_host_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import toast_vue_vue_type_script_setup_true_lang_default from "./toast.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/components/dialogs/toast.vue
|
|
3
|
+
var toast_default = toast_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { toast_default as default };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { icons } from "../../consts/icons.js";
|
|
2
|
+
import useDecorativeTimer from "../../composables/dialogs/use-decorative-timer.js";
|
|
3
|
+
import { messages } from "../../composables/dialogs/use-toast.js";
|
|
4
|
+
import { createBlock, createVNode, defineComponent, isRef, mergeProps, openBlock, unref, withCtx } from "vue";
|
|
5
|
+
import { VIconBtn, VSnackbarQueue } from "vuetify/components";
|
|
6
|
+
var toast_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
7
|
+
inheritAttrs: false,
|
|
8
|
+
__name: "toast",
|
|
9
|
+
setup(__props) {
|
|
10
|
+
const decorativeTimer = useDecorativeTimer();
|
|
11
|
+
return (_ctx, _cache) => {
|
|
12
|
+
return openBlock(), createBlock(unref(VSnackbarQueue), {
|
|
13
|
+
modelValue: unref(messages),
|
|
14
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(messages) ? messages.value = $event : null),
|
|
15
|
+
"content-props": unref(decorativeTimer),
|
|
16
|
+
"display-strategy": "overflow",
|
|
17
|
+
location: "top end",
|
|
18
|
+
"total-visible": "3",
|
|
19
|
+
collapsed: "",
|
|
20
|
+
closable: "",
|
|
21
|
+
timer: ""
|
|
22
|
+
}, {
|
|
23
|
+
actions: withCtx(({ props }) => [createVNode(unref(VIconBtn), mergeProps(props, {
|
|
24
|
+
"aria-label": "Fechar",
|
|
25
|
+
icon: unref(icons).close,
|
|
26
|
+
size: "small",
|
|
27
|
+
variant: "text"
|
|
28
|
+
}), null, 16, ["icon"])]),
|
|
29
|
+
_: 1
|
|
30
|
+
}, 8, ["modelValue", "content-props"]);
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
//#endregion
|
|
35
|
+
export { toast_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import footer_vue_vue_type_script_setup_true_lang_default from "./footer.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/components/footer/footer.vue
|
|
3
|
+
var footer_default = footer_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { footer_default as default };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createBlock, createTextVNode, defineComponent, openBlock, toDisplayString, unref, withCtx } from "vue";
|
|
2
|
+
import { VFooter } from "vuetify/components";
|
|
3
|
+
var footer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
4
|
+
inheritAttrs: false,
|
|
5
|
+
__name: "footer",
|
|
6
|
+
props: {
|
|
7
|
+
description: {
|
|
8
|
+
type: String,
|
|
9
|
+
required: false
|
|
10
|
+
},
|
|
11
|
+
dataTestid: {
|
|
12
|
+
type: String,
|
|
13
|
+
required: false
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
setup(__props) {
|
|
17
|
+
const props = __props;
|
|
18
|
+
return (_ctx, _cache) => {
|
|
19
|
+
return openBlock(), createBlock(unref(VFooter), {
|
|
20
|
+
"data-testid": props.dataTestid,
|
|
21
|
+
class: "justify-center text-center",
|
|
22
|
+
app: ""
|
|
23
|
+
}, {
|
|
24
|
+
default: withCtx(() => [createTextVNode(toDisplayString(props.description), 1)]),
|
|
25
|
+
_: 1
|
|
26
|
+
}, 8, ["data-testid"]);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
//#endregion
|
|
31
|
+
export { footer_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/components/footer/types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Props of the footer shown by the {@link Main} component.
|
|
4
|
+
*/
|
|
5
|
+
export type FooterProps = {
|
|
6
|
+
/**
|
|
7
|
+
* Text shown in the footer, e.g. the application version ("Versão 1.4.2").
|
|
8
|
+
* The footer is hidden when it's empty or omitted.
|
|
9
|
+
*/
|
|
10
|
+
description?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Component id to use on automated tests.
|
|
13
|
+
*/
|
|
14
|
+
dataTestid?: string;
|
|
15
|
+
};
|
|
16
|
+
//#endregion
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import form_vue_vue_type_script_setup_true_lang_default from "./form.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/components/form/form.vue
|
|
3
|
+
var form_default = form_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { form_default as default };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { FormProps } from "./types.js";
|
|
2
|
+
//#region src/components/form/form.vue.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Form component to be used throughout the application.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```vue
|
|
8
|
+
* <template>
|
|
9
|
+
* <u-form @submit="onSubmit">
|
|
10
|
+
* <!-- uimed-field-components -->
|
|
11
|
+
* <!-- uimed-submit-btn-component -->
|
|
12
|
+
* </u-form>
|
|
13
|
+
* </template>
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/form | Form Guide}
|
|
17
|
+
*/
|
|
18
|
+
declare const _default: typeof __VLS_export;
|
|
19
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<FormProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
|
|
20
|
+
submit: (event: SubmitEvent) => any;
|
|
21
|
+
}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<FormProps> & Readonly<{
|
|
22
|
+
onSubmit?: ((event: SubmitEvent) => any) | undefined;
|
|
23
|
+
}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
24
|
+
default?: (props: {}) => any;
|
|
25
|
+
}>;
|
|
26
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
27
|
+
new (): {
|
|
28
|
+
$slots: S;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
//#endregion
|
|
32
|
+
export { _default as default };
|