@nexdom/uimed-vue 2.0.0-beta.8 → 2.0.0
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/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 +93 -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 +99 -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 +104 -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 +207 -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 -940
- package/dist/components.js +23 -1254
- 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-rail.js +163 -0
- package/dist/composables/navigation/use-navigation-search-shortcut.js +96 -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 +1 -13
- package/dist/index.js +39 -14
- package/dist/plugins.d.ts +15 -4
- 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.js +11 -7
- package/package.json +11 -11
- package/skills/uimed-vue/SKILL.md +113 -0
- package/skills/uimed-vue/references/api/components/autocomplete-field.md +45 -0
- package/skills/uimed-vue/references/api/components/button.md +48 -0
- package/skills/uimed-vue/references/api/components/checkbox.md +36 -0
- package/skills/uimed-vue/references/api/components/data-sets/data-set-item.md +61 -0
- package/skills/uimed-vue/references/api/components/data-sets/data-set.md +67 -0
- package/skills/uimed-vue/references/api/components/date-time-field.md +44 -0
- package/skills/uimed-vue/references/api/components/details.md +33 -0
- package/skills/uimed-vue/references/api/components/dialog.md +70 -0
- package/skills/uimed-vue/references/api/components/form.md +43 -0
- package/skills/uimed-vue/references/api/components/grid/column.md +41 -0
- package/skills/uimed-vue/references/api/components/grid/container.md +32 -0
- package/skills/uimed-vue/references/api/components/grid/row.md +37 -0
- package/skills/uimed-vue/references/api/components/icon-button.md +37 -0
- package/skills/uimed-vue/references/api/components/img.md +34 -0
- package/skills/uimed-vue/references/api/components/link.md +31 -0
- package/skills/uimed-vue/references/api/components/main.md +174 -0
- package/skills/uimed-vue/references/api/components/mask-field.md +60 -0
- package/skills/uimed-vue/references/api/components/page-transition.md +37 -0
- package/skills/uimed-vue/references/api/components/sections/section-content.md +23 -0
- package/skills/uimed-vue/references/api/components/sections/section.md +61 -0
- package/skills/uimed-vue/references/api/components/table.md +35 -0
- package/skills/uimed-vue/references/api/components/text-field.md +42 -0
- package/skills/uimed-vue/references/api/composables/use-confirm.md +96 -0
- package/skills/uimed-vue/references/api/composables/use-dialog.md +95 -0
- package/skills/uimed-vue/references/api/composables/use-run-or-toast.md +58 -0
- package/skills/uimed-vue/references/api/composables/use-toast.md +48 -0
- package/skills/uimed-vue/references/api/composables/use-unsaved-changes.md +106 -0
- package/skills/uimed-vue/references/api/index.md +1 -0
- package/skills/uimed-vue/references/guide/components/autocomplete-field.md +256 -0
- package/skills/uimed-vue/references/guide/components/button.md +155 -0
- package/skills/uimed-vue/references/guide/components/checkbox.md +113 -0
- package/skills/uimed-vue/references/guide/components/data-set.md +370 -0
- package/skills/uimed-vue/references/guide/components/date-time-field.md +202 -0
- package/skills/uimed-vue/references/guide/components/details.md +76 -0
- package/skills/uimed-vue/references/guide/components/dialog.md +269 -0
- package/skills/uimed-vue/references/guide/components/form.md +96 -0
- package/skills/uimed-vue/references/guide/components/icon-button.md +76 -0
- package/skills/uimed-vue/references/guide/components/img.md +128 -0
- package/skills/uimed-vue/references/guide/components/layout.md +323 -0
- package/skills/uimed-vue/references/guide/components/link.md +47 -0
- package/skills/uimed-vue/references/guide/components/main.md +435 -0
- package/skills/uimed-vue/references/guide/components/mask-field.md +256 -0
- package/skills/uimed-vue/references/guide/components/page-transition.md +111 -0
- package/skills/uimed-vue/references/guide/components/section.md +232 -0
- package/skills/uimed-vue/references/guide/components/table.md +102 -0
- package/skills/uimed-vue/references/guide/components/text-field.md +172 -0
- package/skills/uimed-vue/references/guide/composables/use-confirm.md +123 -0
- package/skills/uimed-vue/references/guide/composables/use-dialog.md +102 -0
- package/skills/uimed-vue/references/guide/composables/use-run-or-toast.md +55 -0
- package/skills/uimed-vue/references/guide/composables/use-toast.md +57 -0
- package/skills/uimed-vue/references/guide/composables/use-unsaved-changes.md +129 -0
- package/skills/uimed-vue/references/guide/getting-started.md +135 -0
- package/skills/uimed-vue/references/guide/icons.md +71 -0
- package/skills/uimed-vue/references/guide/index.md +51 -0
- package/skills/uimed-vue/references/guide/migration-v1-to-v2.md +191 -0
- package/skills/uimed-vue/references/guide/unit-testing.md +85 -0
- package/AGENTS.md +0 -160
- package/CLAUDE.md +0 -1
- package/dist/types-BPXXtbmW.d.ts +0 -5
- package/dist/use-toast-CACuYhK_.js +0 -53
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import app_bar_default from "../app-bar/app-bar.js";
|
|
2
|
+
import { useMobileNavigation } from "../../composables/navigation/use-navigation-rail.js";
|
|
3
|
+
import navigation_menu_default from "../navigation-menu/navigation-menu.js";
|
|
4
|
+
import footer_default from "../footer/footer.js";
|
|
5
|
+
import container_default from "../grid/container/container.js";
|
|
6
|
+
import toast_default from "../dialogs/toast.js";
|
|
7
|
+
import dialog_host_default from "../dialogs/dialog-host.js";
|
|
8
|
+
import useVuetifyBackgroundColor from "../../composables/colors/use-vuetify-background-color.js";
|
|
9
|
+
import { computed, createBlock, createCommentVNode, createSlots, createVNode, defineComponent, mergeModels, mergeProps, normalizeClass, normalizeProps, openBlock, ref, renderSlot, unref, useModel, useSlots, withCtx } from "vue";
|
|
10
|
+
import { VApp, VMain } from "vuetify/components";
|
|
11
|
+
var main_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
12
|
+
inheritAttrs: false,
|
|
13
|
+
__name: "main",
|
|
14
|
+
props: /*@__PURE__*/ mergeModels({
|
|
15
|
+
dataTestid: {
|
|
16
|
+
type: String,
|
|
17
|
+
required: false
|
|
18
|
+
},
|
|
19
|
+
logo: {
|
|
20
|
+
type: String,
|
|
21
|
+
required: false
|
|
22
|
+
},
|
|
23
|
+
appBar: {
|
|
24
|
+
type: Object,
|
|
25
|
+
required: false
|
|
26
|
+
},
|
|
27
|
+
navigationMenu: {
|
|
28
|
+
type: Object,
|
|
29
|
+
required: false
|
|
30
|
+
},
|
|
31
|
+
footer: {
|
|
32
|
+
type: Object,
|
|
33
|
+
required: false
|
|
34
|
+
},
|
|
35
|
+
loading: {
|
|
36
|
+
type: Boolean,
|
|
37
|
+
required: false
|
|
38
|
+
},
|
|
39
|
+
background: {
|
|
40
|
+
type: String,
|
|
41
|
+
required: false
|
|
42
|
+
}
|
|
43
|
+
}, {
|
|
44
|
+
"notificationsOpen": {
|
|
45
|
+
type: Boolean,
|
|
46
|
+
default: false
|
|
47
|
+
},
|
|
48
|
+
"notificationsOpenModifiers": {}
|
|
49
|
+
}),
|
|
50
|
+
emits: ["update:notificationsOpen"],
|
|
51
|
+
setup(__props) {
|
|
52
|
+
const props = __props;
|
|
53
|
+
const slots = useSlots();
|
|
54
|
+
const mobile = useMobileNavigation();
|
|
55
|
+
const appBarProps = computed(() => props.appBar ? {
|
|
56
|
+
...props.appBar,
|
|
57
|
+
logo: props.logo,
|
|
58
|
+
navigation: props.navigationMenu !== void 0 && mobile.value,
|
|
59
|
+
loading: props.loading
|
|
60
|
+
} : void 0);
|
|
61
|
+
const backgroundClass = useVuetifyBackgroundColor(() => props.background);
|
|
62
|
+
const notificationsOpen = useModel(__props, "notificationsOpen");
|
|
63
|
+
const navigationMenuOpen = ref(false);
|
|
64
|
+
return (_ctx, _cache) => {
|
|
65
|
+
return openBlock(), createBlock(unref(VApp), {
|
|
66
|
+
class: normalizeClass(unref(backgroundClass)),
|
|
67
|
+
"data-testid": props.dataTestid
|
|
68
|
+
}, {
|
|
69
|
+
default: withCtx(() => [
|
|
70
|
+
appBarProps.value ? (openBlock(), createBlock(app_bar_default, mergeProps({ key: 0 }, appBarProps.value, {
|
|
71
|
+
"notifications-open": notificationsOpen.value,
|
|
72
|
+
"onUpdate:notificationsOpen": _cache[0] || (_cache[0] = ($event) => notificationsOpen.value = $event),
|
|
73
|
+
"navigation-open": navigationMenuOpen.value,
|
|
74
|
+
"onUpdate:navigationOpen": _cache[1] || (_cache[1] = ($event) => navigationMenuOpen.value = $event)
|
|
75
|
+
}), createSlots({ _: 2 }, [slots["user-section-details"] ? {
|
|
76
|
+
name: "user-section-details",
|
|
77
|
+
fn: withCtx(() => [renderSlot(_ctx.$slots, "user-section-details")]),
|
|
78
|
+
key: "0"
|
|
79
|
+
} : void 0]), 1040, ["notifications-open", "navigation-open"])) : createCommentVNode("v-if", true),
|
|
80
|
+
props.navigationMenu ? (openBlock(), createBlock(navigation_menu_default, mergeProps({ key: 1 }, props.navigationMenu, {
|
|
81
|
+
modelValue: navigationMenuOpen.value,
|
|
82
|
+
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => navigationMenuOpen.value = $event),
|
|
83
|
+
loading: props.loading
|
|
84
|
+
}), null, 16, ["modelValue", "loading"])) : createCommentVNode("v-if", true),
|
|
85
|
+
createVNode(unref(VMain), null, {
|
|
86
|
+
default: withCtx(() => [createCommentVNode(" Full height, so the page's rows and containers with `fullHeight` have a height to fill "), createVNode(container_default, { "full-height": "" }, {
|
|
87
|
+
default: withCtx(() => [
|
|
88
|
+
renderSlot(_ctx.$slots, "default"),
|
|
89
|
+
createVNode(toast_default),
|
|
90
|
+
createVNode(dialog_host_default)
|
|
91
|
+
]),
|
|
92
|
+
_: 3
|
|
93
|
+
})]),
|
|
94
|
+
_: 3
|
|
95
|
+
}),
|
|
96
|
+
props.footer?.description ? (openBlock(), createBlock(footer_default, normalizeProps(mergeProps({ key: 2 }, props.footer)), null, 16)) : createCommentVNode("v-if", true)
|
|
97
|
+
]),
|
|
98
|
+
_: 3
|
|
99
|
+
}, 8, ["class", "data-testid"]);
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
//#endregion
|
|
104
|
+
export { main_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { AppBarProps } from "../app-bar/types.js";
|
|
2
|
+
import { NavigationMenuProps } from "../navigation-menu/types.js";
|
|
3
|
+
import { FooterProps } from "../footer/types.js";
|
|
4
|
+
import { ColorVariant } from "../../composables/colors/types.js";
|
|
5
|
+
//#region src/components/main/types.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Props exposed by the {@link Main} component.
|
|
8
|
+
*/
|
|
9
|
+
export type MainProps = {
|
|
10
|
+
/**
|
|
11
|
+
* Component id to use on automated tests.
|
|
12
|
+
*/
|
|
13
|
+
dataTestid?: string;
|
|
14
|
+
/**
|
|
15
|
+
* URL to logo image.
|
|
16
|
+
*
|
|
17
|
+
* The logo is decorative (`alt=""`): screen readers identify the app by
|
|
18
|
+
* the app bar title (`appBar.title`).
|
|
19
|
+
*/
|
|
20
|
+
logo?: string;
|
|
21
|
+
/**
|
|
22
|
+
* App bar properties.
|
|
23
|
+
*/
|
|
24
|
+
appBar?: AppBarProps;
|
|
25
|
+
/**
|
|
26
|
+
* Navigation menu properties.
|
|
27
|
+
*/
|
|
28
|
+
navigationMenu?: NavigationMenuProps;
|
|
29
|
+
/**
|
|
30
|
+
* Footer properties. The footer is fixed at the bottom of the screen and
|
|
31
|
+
* is hidden when it's omitted or its `description` is empty.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```vue
|
|
35
|
+
* <u-main :footer="{ description: `Versão ${version}` }" />
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
footer?: FooterProps;
|
|
39
|
+
/**
|
|
40
|
+
* Shows skeleton loaders in place of the user-related parts of the app bar
|
|
41
|
+
* and of the navigation menu items while their data is being loaded.
|
|
42
|
+
* The main content (default slot) isn't affected.
|
|
43
|
+
* @default false
|
|
44
|
+
*/
|
|
45
|
+
loading?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Applies a color to the background of the whole app, e.g. on landing pages. Text placed
|
|
48
|
+
* directly on the background takes the color the theme pairs with it (white or black), while
|
|
49
|
+
* the app bar, the footer, sections and dialogs keep their own backgrounds. When omitted, the
|
|
50
|
+
* app uses the theme's default background.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```vue
|
|
54
|
+
* <u-main background="primary" />
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
background?: ColorVariant;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Slots exposed by the {@link Main} component.
|
|
61
|
+
*/
|
|
62
|
+
export type MainSlots = {
|
|
63
|
+
/**
|
|
64
|
+
* Content of the page, below the app bar (and above the footer, when shown).
|
|
65
|
+
*/
|
|
66
|
+
default?: () => unknown;
|
|
67
|
+
/**
|
|
68
|
+
* Details of the user shown in the user menu of the app bar, below the
|
|
69
|
+
* name and subtitle and above the options, with the text centered like
|
|
70
|
+
* them (e.g. the user's organization and profile, and an action to manage
|
|
71
|
+
* the profile). Only shown when `appBar.user` is given.
|
|
72
|
+
*/
|
|
73
|
+
"user-section-details"?: () => unknown;
|
|
74
|
+
};
|
|
75
|
+
//#endregion
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import navigation_menu_vue_vue_type_script_setup_true_lang_default from "./navigation-menu.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/components/navigation-menu/navigation-menu.vue
|
|
3
|
+
var navigation_menu_default = navigation_menu_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { navigation_menu_default as default };
|
package/dist/components/navigation-menu/navigation-menu.vue_vue_type_script_setup_true_lang.js
ADDED
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { icons } from "../../consts/icons.js";
|
|
2
|
+
import { routeToListItemProps } from "../../composables/navigation/use-route-props.js";
|
|
3
|
+
import { useNavigationSearchShortcut } from "../../composables/navigation/use-navigation-search-shortcut.js";
|
|
4
|
+
import skeleton_loader_default from "../skeleton-loader/skeleton-loader.js";
|
|
5
|
+
import text_field_default from "../inputs/text-field/text-field.js";
|
|
6
|
+
import { isParentItem, useNavigationRail } from "../../composables/navigation/use-navigation-rail.js";
|
|
7
|
+
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, isRef, mergeModels, mergeProps, openBlock, ref, renderList, unref, useModel, useTemplateRef, vShow, withCtx, withDirectives, withKeys } from "vue";
|
|
8
|
+
import { VDivider, VList, VListGroup, VListItem, VNavigationDrawer } from "vuetify/components";
|
|
9
|
+
//#region src/components/navigation-menu/navigation-menu.vue?vue&type=script&setup=true&lang.ts
|
|
10
|
+
const _hoisted_1 = { class: "px-4 pt-2" };
|
|
11
|
+
var navigation_menu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
12
|
+
inheritAttrs: false,
|
|
13
|
+
__name: "navigation-menu",
|
|
14
|
+
props: /*@__PURE__*/ mergeModels({
|
|
15
|
+
dataTestid: {
|
|
16
|
+
type: String,
|
|
17
|
+
required: false
|
|
18
|
+
},
|
|
19
|
+
items: {
|
|
20
|
+
type: Array,
|
|
21
|
+
required: false
|
|
22
|
+
},
|
|
23
|
+
loading: {
|
|
24
|
+
type: Boolean,
|
|
25
|
+
required: false
|
|
26
|
+
}
|
|
27
|
+
}, {
|
|
28
|
+
"modelValue": {
|
|
29
|
+
type: Boolean,
|
|
30
|
+
default: false
|
|
31
|
+
},
|
|
32
|
+
"modelModifiers": {}
|
|
33
|
+
}),
|
|
34
|
+
emits: ["update:modelValue"],
|
|
35
|
+
setup(__props) {
|
|
36
|
+
const props = __props;
|
|
37
|
+
const open = useModel(__props, "modelValue");
|
|
38
|
+
const search = ref("");
|
|
39
|
+
const field = useTemplateRef("searchField");
|
|
40
|
+
const { mobile, collapsed, drawerOpen, menuOpen, opened, isActiveGroup, dismiss, isRestoringFocus, onFocusin, onFocusout, onMouseenter, onMouseleave } = useNavigationRail({
|
|
41
|
+
open,
|
|
42
|
+
field,
|
|
43
|
+
searchItem: useTemplateRef("searchItem"),
|
|
44
|
+
items: () => props.items,
|
|
45
|
+
search
|
|
46
|
+
});
|
|
47
|
+
const { label: shortcutLabel, ariaKeyshortcuts, openSearch } = useNavigationSearchShortcut({
|
|
48
|
+
open: menuOpen,
|
|
49
|
+
field
|
|
50
|
+
});
|
|
51
|
+
const filteredItems = computed(() => filterItems());
|
|
52
|
+
function onSearchItemFocus(event) {
|
|
53
|
+
if (!isRestoringFocus()) openSearch(event.relatedTarget);
|
|
54
|
+
}
|
|
55
|
+
const searchDataTestid = computed(() => `${props.dataTestid}-search`);
|
|
56
|
+
const query = computed(() => search.value.toLowerCase());
|
|
57
|
+
function filterItems() {
|
|
58
|
+
return (props.items ?? []).reduce((filtered, item) => {
|
|
59
|
+
if (matches(item)) filtered.push(item);
|
|
60
|
+
else if (isParentItem(item)) {
|
|
61
|
+
const matchingChildren = item.items.filter((child) => matches(child));
|
|
62
|
+
if (matchingChildren.length) filtered.push({
|
|
63
|
+
...item,
|
|
64
|
+
items: matchingChildren
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
return filtered;
|
|
68
|
+
}, []);
|
|
69
|
+
}
|
|
70
|
+
function matches(item) {
|
|
71
|
+
return item.description.toLowerCase().includes(query.value);
|
|
72
|
+
}
|
|
73
|
+
return (_ctx, _cache) => {
|
|
74
|
+
return openBlock(), createBlock(unref(VNavigationDrawer), {
|
|
75
|
+
modelValue: unref(drawerOpen),
|
|
76
|
+
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => isRef(drawerOpen) ? drawerOpen.value = $event : null),
|
|
77
|
+
color: "primary",
|
|
78
|
+
"data-testid": props.dataTestid,
|
|
79
|
+
"aria-busy": props.loading || void 0,
|
|
80
|
+
mobile: unref(mobile),
|
|
81
|
+
permanent: !unref(mobile),
|
|
82
|
+
rail: !unref(mobile),
|
|
83
|
+
"expand-on-hover": "",
|
|
84
|
+
absolute: "",
|
|
85
|
+
temporary: "",
|
|
86
|
+
onFocusin: unref(onFocusin),
|
|
87
|
+
onFocusout: unref(onFocusout),
|
|
88
|
+
onMouseenter: unref(onMouseenter),
|
|
89
|
+
onMouseleave: unref(onMouseleave),
|
|
90
|
+
onKeydown: withKeys(unref(dismiss), ["esc"])
|
|
91
|
+
}, {
|
|
92
|
+
prepend: withCtx(() => [
|
|
93
|
+
withDirectives(createElementVNode("div", _hoisted_1, [createVNode(text_field_default, {
|
|
94
|
+
ref: "searchField",
|
|
95
|
+
modelValue: search.value,
|
|
96
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => search.value = $event),
|
|
97
|
+
type: "search",
|
|
98
|
+
placeholder: `Buscar (${unref(shortcutLabel)})`,
|
|
99
|
+
"data-testid": searchDataTestid.value,
|
|
100
|
+
disabled: props.loading
|
|
101
|
+
}, null, 8, [
|
|
102
|
+
"modelValue",
|
|
103
|
+
"placeholder",
|
|
104
|
+
"data-testid",
|
|
105
|
+
"disabled"
|
|
106
|
+
])], 512), [[vShow, !unref(collapsed)]]),
|
|
107
|
+
createCommentVNode(" Vuetify's list is focusable and passes the focus on to its first item: out of the tab\n order, the item gets the focus straight from the page, which then gets it back on `Esc` "),
|
|
108
|
+
withDirectives(createVNode(unref(VList), {
|
|
109
|
+
nav: "",
|
|
110
|
+
role: "group",
|
|
111
|
+
tabindex: "-1"
|
|
112
|
+
}, {
|
|
113
|
+
default: withCtx(() => [createCommentVNode(" Rendered as a native button, as the groups' headers (see below). Vuetify only styles\n a disabled item, and its button would still take the focus "), createVNode(unref(VListItem), {
|
|
114
|
+
ref: "searchItem",
|
|
115
|
+
title: "Buscar",
|
|
116
|
+
"prepend-icon": unref(icons).search,
|
|
117
|
+
disabled: props.loading,
|
|
118
|
+
tabindex: props.loading ? -1 : void 0,
|
|
119
|
+
"aria-disabled": props.loading || void 0,
|
|
120
|
+
"aria-keyshortcuts": unref(ariaKeyshortcuts),
|
|
121
|
+
role: void 0,
|
|
122
|
+
tag: "button",
|
|
123
|
+
type: "button",
|
|
124
|
+
class: "w-100 text-start",
|
|
125
|
+
onFocus: onSearchItemFocus
|
|
126
|
+
}, null, 8, [
|
|
127
|
+
"prepend-icon",
|
|
128
|
+
"disabled",
|
|
129
|
+
"tabindex",
|
|
130
|
+
"aria-disabled",
|
|
131
|
+
"aria-keyshortcuts"
|
|
132
|
+
])]),
|
|
133
|
+
_: 1
|
|
134
|
+
}, 512), [[vShow, unref(collapsed)]])
|
|
135
|
+
]),
|
|
136
|
+
default: withCtx(() => [createVNode(unref(VDivider)), createVNode(skeleton_loader_default, {
|
|
137
|
+
loading: props.loading,
|
|
138
|
+
type: "list-item@6",
|
|
139
|
+
color: "primary"
|
|
140
|
+
}, {
|
|
141
|
+
default: withCtx(() => [createCommentVNode(" Vuetify's `list` role only allows list items, but the items are links "), createVNode(unref(VList), {
|
|
142
|
+
opened: unref(opened),
|
|
143
|
+
"onUpdate:opened": _cache[1] || (_cache[1] = ($event) => isRef(opened) ? opened.value = $event : null),
|
|
144
|
+
nav: "",
|
|
145
|
+
role: "group"
|
|
146
|
+
}, {
|
|
147
|
+
default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(filteredItems.value, (item, index) => {
|
|
148
|
+
return openBlock(), createElementBlock(Fragment, { key: index }, [unref(isParentItem)(item) ? (openBlock(), createBlock(unref(VListGroup), {
|
|
149
|
+
key: 0,
|
|
150
|
+
value: item.description
|
|
151
|
+
}, {
|
|
152
|
+
activator: withCtx(({ props: activatorProps, isOpen }) => [createVNode(unref(VListItem), mergeProps({ ref_for: true }, activatorProps, {
|
|
153
|
+
title: item.description,
|
|
154
|
+
"prepend-icon": unref(icons)[item.icon],
|
|
155
|
+
active: unref(isActiveGroup)(item),
|
|
156
|
+
"aria-expanded": isOpen,
|
|
157
|
+
"aria-selected": void 0,
|
|
158
|
+
role: void 0,
|
|
159
|
+
tag: "button",
|
|
160
|
+
type: "button",
|
|
161
|
+
class: "w-100 text-start"
|
|
162
|
+
}), null, 16, [
|
|
163
|
+
"title",
|
|
164
|
+
"prepend-icon",
|
|
165
|
+
"active",
|
|
166
|
+
"aria-expanded"
|
|
167
|
+
])]),
|
|
168
|
+
default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(item.items, (childItem, childIndex) => {
|
|
169
|
+
return openBlock(), createBlock(unref(VListItem), mergeProps({ key: childIndex }, { ref_for: true }, unref(routeToListItemProps)(childItem.route), {
|
|
170
|
+
title: childItem.description,
|
|
171
|
+
onClick: childItem.action
|
|
172
|
+
}), null, 16, ["title", "onClick"]);
|
|
173
|
+
}), 128))]),
|
|
174
|
+
_: 2
|
|
175
|
+
}, 1032, ["value"])) : (openBlock(), createBlock(unref(VListItem), mergeProps({
|
|
176
|
+
key: 1,
|
|
177
|
+
title: item.description,
|
|
178
|
+
"prepend-icon": unref(icons)[item.icon]
|
|
179
|
+
}, { ref_for: true }, unref(routeToListItemProps)(item.route), { onClick: item.action }), null, 16, [
|
|
180
|
+
"title",
|
|
181
|
+
"prepend-icon",
|
|
182
|
+
"onClick"
|
|
183
|
+
]))], 64);
|
|
184
|
+
}), 128))]),
|
|
185
|
+
_: 1
|
|
186
|
+
}, 8, ["opened"])]),
|
|
187
|
+
_: 1
|
|
188
|
+
}, 8, ["loading"])]),
|
|
189
|
+
_: 1
|
|
190
|
+
}, 8, [
|
|
191
|
+
"modelValue",
|
|
192
|
+
"data-testid",
|
|
193
|
+
"aria-busy",
|
|
194
|
+
"mobile",
|
|
195
|
+
"permanent",
|
|
196
|
+
"rail",
|
|
197
|
+
"onFocusin",
|
|
198
|
+
"onFocusout",
|
|
199
|
+
"onMouseenter",
|
|
200
|
+
"onMouseleave",
|
|
201
|
+
"onKeydown"
|
|
202
|
+
]);
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
//#endregion
|
|
207
|
+
export { navigation_menu_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Icon } from "../../consts/types.js";
|
|
2
|
+
import { RouteLocationRaw } from "vue-router";
|
|
3
|
+
//#region src/components/navigation-menu/types.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Props exposed by the {@link NavigationMenu} component.
|
|
6
|
+
*/
|
|
7
|
+
export type NavigationMenuProps = {
|
|
8
|
+
/**
|
|
9
|
+
* Component id to use on automated tests.
|
|
10
|
+
*/
|
|
11
|
+
dataTestid?: string;
|
|
12
|
+
/**
|
|
13
|
+
* List of items to show in the {@link NavigationMenu}.
|
|
14
|
+
* Can be plain items, grouped or both.
|
|
15
|
+
*/
|
|
16
|
+
items?: Array<NavigationMenuParentItemOrItem>;
|
|
17
|
+
};
|
|
18
|
+
export type NavigationMenuParentItemOrItem = NavigationMenuParentItem | NavigationMenuItem;
|
|
19
|
+
export type NavigationMenuParentItem = {
|
|
20
|
+
/**
|
|
21
|
+
* Text to present for the group.
|
|
22
|
+
*/
|
|
23
|
+
description: string;
|
|
24
|
+
/**
|
|
25
|
+
* Icon shown before the group's description, and alone while the menu is collapsed to a rail.
|
|
26
|
+
* One of the names listed on the "Ícones" guide page.
|
|
27
|
+
*
|
|
28
|
+
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/icons | Icons Guide}
|
|
29
|
+
*/
|
|
30
|
+
icon: Icon;
|
|
31
|
+
/**
|
|
32
|
+
* Child {@link NavigationMenuChildItem} list. Unlike the first level items, they show no icon.
|
|
33
|
+
*/
|
|
34
|
+
items: Array<NavigationMenuChildItem>;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Item inside a {@link NavigationMenuParentItem}. Only the first level items and groups show an
|
|
38
|
+
* icon, so every menu follows the same visual pattern.
|
|
39
|
+
*/
|
|
40
|
+
export type NavigationMenuChildItem = Omit<NavigationMenuItem, "icon">;
|
|
41
|
+
export interface NavigationMenuItem {
|
|
42
|
+
/**
|
|
43
|
+
* Text to present for the item.
|
|
44
|
+
*/
|
|
45
|
+
description: string;
|
|
46
|
+
/**
|
|
47
|
+
* Icon shown before the item's description, and alone while the menu is collapsed to a rail.
|
|
48
|
+
* One of the names listed on the "Ícones" guide page.
|
|
49
|
+
*
|
|
50
|
+
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/icons | Icons Guide}
|
|
51
|
+
*/
|
|
52
|
+
icon: Icon;
|
|
53
|
+
/**
|
|
54
|
+
* Route to navigate when item is clicked.
|
|
55
|
+
*/
|
|
56
|
+
route?: RouteLocationRaw;
|
|
57
|
+
/**
|
|
58
|
+
* Callback to be triggered when the item is clicked.
|
|
59
|
+
*/
|
|
60
|
+
action?: () => void;
|
|
61
|
+
}
|
|
62
|
+
//#endregion
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import page_transition_vue_vue_type_script_setup_true_lang_default from "./page-transition.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/components/page-transition/page-transition.vue
|
|
3
|
+
var page_transition_default = page_transition_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { page_transition_default as default };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { PageTransitionProps } from "./types.js";
|
|
2
|
+
//#region src/components/page-transition/page-transition.vue.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Animates the change between the pages rendered by the app's router: the
|
|
5
|
+
* current page fades out before the next one fades in. When the operating
|
|
6
|
+
* system asks for reduced motion, the pages change without animation.
|
|
7
|
+
*
|
|
8
|
+
* The page is rendered inside a `div` that takes the whole height of its
|
|
9
|
+
* parent, so any page is animated, whatever it renders at its root. The
|
|
10
|
+
* change is animated whenever `transitionKey` changes, which defaults to the
|
|
11
|
+
* current route's `fullPath`: every navigation is animated, including the
|
|
12
|
+
* ones that only change the route's params, query or hash. Attributes
|
|
13
|
+
* (`class`, `style`...) aren't passed on.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```vue
|
|
17
|
+
* <template>
|
|
18
|
+
* <u-main>
|
|
19
|
+
* <router-view v-slot="{ Component }">
|
|
20
|
+
* <u-page-transition>
|
|
21
|
+
* <component :is="Component" />
|
|
22
|
+
* </u-page-transition>
|
|
23
|
+
* </router-view>
|
|
24
|
+
* </u-main>
|
|
25
|
+
* </template>
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/page-transition | Page Transition Guide}
|
|
29
|
+
*/
|
|
30
|
+
declare const _default: typeof __VLS_export;
|
|
31
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<PageTransitionProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<PageTransitionProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
32
|
+
default?: (props: {}) => any;
|
|
33
|
+
}>;
|
|
34
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
35
|
+
new (): {
|
|
36
|
+
$slots: S;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
//#endregion
|
|
40
|
+
export { _default as default };
|
package/dist/components/page-transition/page-transition.vue_vue_type_script_setup_true_lang.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Fragment, computed, createCommentVNode, createElementBlock, createVNode, defineComponent, openBlock, renderSlot, unref, withCtx } from "vue";
|
|
2
|
+
import { VFadeTransition } from "vuetify/components";
|
|
3
|
+
import { useRoute } from "vue-router";
|
|
4
|
+
var page_transition_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
5
|
+
inheritAttrs: false,
|
|
6
|
+
__name: "page-transition",
|
|
7
|
+
props: { transitionKey: {
|
|
8
|
+
type: String,
|
|
9
|
+
required: false
|
|
10
|
+
} },
|
|
11
|
+
setup(__props) {
|
|
12
|
+
const props = __props;
|
|
13
|
+
const route = useRoute();
|
|
14
|
+
const pageKey = computed(() => props.transitionKey ?? route.fullPath);
|
|
15
|
+
return (_ctx, _cache) => {
|
|
16
|
+
return openBlock(), createElementBlock(Fragment, null, [createCommentVNode(" The page is wrapped so any page can be animated, whatever it renders at its root. The\n wrapper takes the parent's height, so pages with `fullHeight` still have a height to fill "), createVNode(unref(VFadeTransition), { mode: "out-in" }, {
|
|
17
|
+
default: withCtx(() => [(openBlock(), createElementBlock("div", {
|
|
18
|
+
key: pageKey.value,
|
|
19
|
+
class: "h-100"
|
|
20
|
+
}, [renderSlot(_ctx.$slots, "default")]))]),
|
|
21
|
+
_: 3
|
|
22
|
+
})], 2112);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
//#endregion
|
|
27
|
+
export { page_transition_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/components/page-transition/types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Props exposed by the {@link PageTransition} component.
|
|
4
|
+
*/
|
|
5
|
+
export type PageTransitionProps = {
|
|
6
|
+
/**
|
|
7
|
+
* Identifies the page on display: the change is animated whenever it
|
|
8
|
+
* changes. Defaults to the current route's `fullPath`, so every navigation
|
|
9
|
+
* is animated, including the ones that only change the route's params,
|
|
10
|
+
* query or hash. Pass another value to choose which navigations are
|
|
11
|
+
* animated, e.g. `route.path` to not animate when only the query or the
|
|
12
|
+
* hash changes.
|
|
13
|
+
*
|
|
14
|
+
* @default route.fullPath
|
|
15
|
+
*/
|
|
16
|
+
transitionKey?: string;
|
|
17
|
+
};
|
|
18
|
+
//#endregion
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import section_vue_vue_type_script_setup_true_lang_default from "./section.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/components/sections/section/section.vue
|
|
3
|
+
var section_default = section_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { section_default as default };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { SectionProps } from "./types.js";
|
|
2
|
+
//#region src/components/sections/section/section.vue.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Section component to group related content and actions, to be used
|
|
5
|
+
* throughout the application.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```vue
|
|
9
|
+
* <template>
|
|
10
|
+
* <u-section title="Title" subtitle="Subtitle">
|
|
11
|
+
* Content
|
|
12
|
+
* </u-section>
|
|
13
|
+
* <template>
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/section | Section Guide}
|
|
17
|
+
*/
|
|
18
|
+
declare const _default: typeof __VLS_export;
|
|
19
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<SectionProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<SectionProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
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 };
|