@nexdom/uimed-vue 1.3.0-beta.1 → 1.3.0-beta.3
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 +1 -0
- package/dist/components.d.ts +132 -20
- package/dist/components.js +154 -13
- package/package.json +1 -2
package/AGENTS.md
CHANGED
|
@@ -105,6 +105,7 @@ CI (`.github/workflows/ci.yml`) runs, in order: commitlint on PR commits, `vp pa
|
|
|
105
105
|
## Code conventions
|
|
106
106
|
|
|
107
107
|
- All `src` code is written in English. `docs` content is written in Portuguese (aimed at Brazilian users), even though file/dir names stay in English.
|
|
108
|
+
- `docs` must not mention Vuetify
|
|
108
109
|
- Never write CSS, classes or any kind of styling. Always use component props.
|
|
109
110
|
- Path aliases: `@/*` → `src/*`, `@e2e/*` → `e2e/*`.
|
|
110
111
|
- Every public component follows this pattern to block access to internals and give it an editor-hover description:
|
package/dist/components.d.ts
CHANGED
|
@@ -142,6 +142,10 @@ type RootProps = {
|
|
|
142
142
|
* Component id to use on automated tests.
|
|
143
143
|
*/
|
|
144
144
|
dataTestid?: string;
|
|
145
|
+
/**
|
|
146
|
+
* URL to logo image.
|
|
147
|
+
*/
|
|
148
|
+
logo?: string;
|
|
145
149
|
/**
|
|
146
150
|
* App bar properties.
|
|
147
151
|
*/
|
|
@@ -165,8 +169,8 @@ type RootProps = {
|
|
|
165
169
|
*
|
|
166
170
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/root | Root Guide}
|
|
167
171
|
*/
|
|
168
|
-
declare const _default$
|
|
169
|
-
declare const __VLS_export$
|
|
172
|
+
declare const _default$6: typeof __VLS_export$8;
|
|
173
|
+
declare const __VLS_export$8: __VLS_WithSlots$7<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<RootProps & {
|
|
170
174
|
notificationsOpen?: boolean;
|
|
171
175
|
}, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
|
|
172
176
|
"update:notificationsOpen": (value: boolean) => any;
|
|
@@ -177,7 +181,7 @@ declare const __VLS_export$6: __VLS_WithSlots$5<import("vue", { with: { "resolut
|
|
|
177
181
|
}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
178
182
|
default?: (props: {}) => any;
|
|
179
183
|
}>;
|
|
180
|
-
type __VLS_WithSlots$
|
|
184
|
+
type __VLS_WithSlots$7<T, S> = T & {
|
|
181
185
|
new (): {
|
|
182
186
|
$slots: S;
|
|
183
187
|
};
|
|
@@ -240,15 +244,15 @@ type BtnProps = {
|
|
|
240
244
|
*
|
|
241
245
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/btn | Btn Guide}
|
|
242
246
|
*/
|
|
243
|
-
declare const _default: typeof __VLS_export$
|
|
244
|
-
declare const __VLS_export$
|
|
247
|
+
declare const _default: typeof __VLS_export$7;
|
|
248
|
+
declare const __VLS_export$7: __VLS_WithSlots$6<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<BtnProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
|
|
245
249
|
click: (event: MouseEvent) => any;
|
|
246
250
|
}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<BtnProps> & Readonly<{
|
|
247
251
|
onClick?: ((event: MouseEvent) => any) | undefined;
|
|
248
252
|
}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
249
253
|
default?: (props: {}) => any;
|
|
250
254
|
}>;
|
|
251
|
-
type __VLS_WithSlots$
|
|
255
|
+
type __VLS_WithSlots$6<T, S> = T & {
|
|
252
256
|
new (): {
|
|
253
257
|
$slots: S;
|
|
254
258
|
};
|
|
@@ -329,8 +333,8 @@ type TextFieldProps = {
|
|
|
329
333
|
*
|
|
330
334
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/text-field | TextField Guide}
|
|
331
335
|
*/
|
|
332
|
-
declare const _default$
|
|
333
|
-
declare const __VLS_export$
|
|
336
|
+
declare const _default$8: typeof __VLS_export$6;
|
|
337
|
+
declare const __VLS_export$6: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<TextFieldProps & {
|
|
334
338
|
modelValue?: string;
|
|
335
339
|
}, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
|
|
336
340
|
"update:modelValue": (value: string) => any;
|
|
@@ -368,11 +372,11 @@ type ContainerProps = {
|
|
|
368
372
|
*
|
|
369
373
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Container Guide}
|
|
370
374
|
*/
|
|
371
|
-
declare const _default$2: typeof __VLS_export$
|
|
372
|
-
declare const __VLS_export$
|
|
375
|
+
declare const _default$2: typeof __VLS_export$5;
|
|
376
|
+
declare const __VLS_export$5: __VLS_WithSlots$5<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ContainerProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ContainerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
373
377
|
default?: (props: {}) => any;
|
|
374
378
|
}>;
|
|
375
|
-
type __VLS_WithSlots$
|
|
379
|
+
type __VLS_WithSlots$5<T, S> = T & {
|
|
376
380
|
new (): {
|
|
377
381
|
$slots: S;
|
|
378
382
|
};
|
|
@@ -404,11 +408,11 @@ type RowProps = {
|
|
|
404
408
|
*
|
|
405
409
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Row Guide}
|
|
406
410
|
*/
|
|
407
|
-
declare const _default$
|
|
408
|
-
declare const __VLS_export$
|
|
411
|
+
declare const _default$7: typeof __VLS_export$4;
|
|
412
|
+
declare const __VLS_export$4: __VLS_WithSlots$4<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<RowProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<RowProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
409
413
|
default?: (props: {}) => any;
|
|
410
414
|
}>;
|
|
411
|
-
type __VLS_WithSlots$
|
|
415
|
+
type __VLS_WithSlots$4<T, S> = T & {
|
|
412
416
|
new (): {
|
|
413
417
|
$slots: S;
|
|
414
418
|
};
|
|
@@ -451,13 +455,13 @@ type Cols = "auto" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10"
|
|
|
451
455
|
*
|
|
452
456
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Column Guide}
|
|
453
457
|
*/
|
|
454
|
-
declare const _default$1: typeof __VLS_export$
|
|
455
|
-
declare const __VLS_export$
|
|
458
|
+
declare const _default$1: typeof __VLS_export$3;
|
|
459
|
+
declare const __VLS_export$3: __VLS_WithSlots$3<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ColumnProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ColumnProps> & Readonly<{}>, {
|
|
456
460
|
cols: "12" | "auto" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11";
|
|
457
461
|
}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
458
462
|
default?: (props: {}) => any;
|
|
459
463
|
}>;
|
|
460
|
-
type __VLS_WithSlots$
|
|
464
|
+
type __VLS_WithSlots$3<T, S> = T & {
|
|
461
465
|
new (): {
|
|
462
466
|
$slots: S;
|
|
463
467
|
};
|
|
@@ -492,18 +496,126 @@ type FrmProps = {
|
|
|
492
496
|
*
|
|
493
497
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/frm | Form Guide}
|
|
494
498
|
*/
|
|
495
|
-
declare const _default$
|
|
496
|
-
declare const __VLS_export: __VLS_WithSlots<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<FrmProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
|
|
499
|
+
declare const _default$5: typeof __VLS_export$2;
|
|
500
|
+
declare const __VLS_export$2: __VLS_WithSlots$2<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<FrmProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
|
|
497
501
|
submit: (event: SubmitEvent) => any;
|
|
498
502
|
}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<FrmProps> & Readonly<{
|
|
499
503
|
onSubmit?: ((event: SubmitEvent) => any) | undefined;
|
|
500
504
|
}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
501
505
|
default?: (props: {}) => any;
|
|
502
506
|
}>;
|
|
507
|
+
type __VLS_WithSlots$2<T, S> = T & {
|
|
508
|
+
new (): {
|
|
509
|
+
$slots: S;
|
|
510
|
+
};
|
|
511
|
+
};
|
|
512
|
+
//#endregion
|
|
513
|
+
//#region src/components/content/content.vue.d.ts
|
|
514
|
+
/**
|
|
515
|
+
* Proxy component for Vuetify's `v-card-text`, used to structure content
|
|
516
|
+
* displayed inside a {@link ContentSet}.
|
|
517
|
+
*
|
|
518
|
+
* @example
|
|
519
|
+
* ```vue
|
|
520
|
+
* <content-set title="Title">
|
|
521
|
+
* <content>Content</content>
|
|
522
|
+
* </content-set>
|
|
523
|
+
* ```
|
|
524
|
+
*
|
|
525
|
+
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/content-set | ContentSet Guide}
|
|
526
|
+
*/
|
|
527
|
+
declare const _default$3: typeof __VLS_export$1;
|
|
528
|
+
declare const __VLS_export$1: __VLS_WithSlots$1<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<{}, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, true, {}, any>, {
|
|
529
|
+
default?: (props: {}) => any;
|
|
530
|
+
}>;
|
|
531
|
+
type __VLS_WithSlots$1<T, S> = T & {
|
|
532
|
+
new (): {
|
|
533
|
+
$slots: S;
|
|
534
|
+
};
|
|
535
|
+
};
|
|
536
|
+
//#endregion
|
|
537
|
+
//#region src/components/content/types.d.ts
|
|
538
|
+
type ContentSetVariant = "primary" | "secondary";
|
|
539
|
+
/**
|
|
540
|
+
* Props exposed by the {@link ContentSet} component.
|
|
541
|
+
*/
|
|
542
|
+
type ContentSetProps = {
|
|
543
|
+
/**
|
|
544
|
+
* Applies a distinct style variation to the content set.
|
|
545
|
+
* One of `primary` or `secondary`.
|
|
546
|
+
* @default "primary"
|
|
547
|
+
*/
|
|
548
|
+
variant?: ContentSetVariant;
|
|
549
|
+
/**
|
|
550
|
+
* Title displayed at the top of the content set.
|
|
551
|
+
*/
|
|
552
|
+
title?: string;
|
|
553
|
+
/**
|
|
554
|
+
* Subtitle displayed below the title.
|
|
555
|
+
*/
|
|
556
|
+
subtitle?: string;
|
|
557
|
+
/**
|
|
558
|
+
* List of actions displayed at the bottom of the content set, inside
|
|
559
|
+
* `v-card-actions`. When undefined or empty, no actions area is rendered.
|
|
560
|
+
*/
|
|
561
|
+
actions?: ContentSetAction[];
|
|
562
|
+
/**
|
|
563
|
+
* Makes the content set occupy 100% of its parent's width.
|
|
564
|
+
* @default false
|
|
565
|
+
*/
|
|
566
|
+
fullWidth?: boolean;
|
|
567
|
+
/**
|
|
568
|
+
* Makes the content set occupy 100% of its parent's height.
|
|
569
|
+
* @default false
|
|
570
|
+
*/
|
|
571
|
+
fullHeight?: boolean;
|
|
572
|
+
/**
|
|
573
|
+
* Shows a skeleton loader in place of the content while data is being
|
|
574
|
+
* loaded.
|
|
575
|
+
* @default false
|
|
576
|
+
*/
|
|
577
|
+
loading?: boolean;
|
|
578
|
+
/**
|
|
579
|
+
* Component id to use on automated tests.
|
|
580
|
+
*/
|
|
581
|
+
dataTestid?: string;
|
|
582
|
+
};
|
|
583
|
+
/**
|
|
584
|
+
* A single action rendered inside {@link ContentSet}'s actions area.
|
|
585
|
+
*/
|
|
586
|
+
interface ContentSetAction extends BtnProps {
|
|
587
|
+
/**
|
|
588
|
+
* Text displayed on the action button.
|
|
589
|
+
*/
|
|
590
|
+
label: string;
|
|
591
|
+
/**
|
|
592
|
+
* Called when the action button is clicked.
|
|
593
|
+
*/
|
|
594
|
+
onClick?: (event: MouseEvent) => void;
|
|
595
|
+
}
|
|
596
|
+
//#endregion
|
|
597
|
+
//#region src/components/content/content-set.vue.d.ts
|
|
598
|
+
/**
|
|
599
|
+
* Content set component to group related content and actions, to be used
|
|
600
|
+
* throughout the application.
|
|
601
|
+
*
|
|
602
|
+
* @example
|
|
603
|
+
* ```vue
|
|
604
|
+
* <content-set title="Title" subtitle="Subtitle">
|
|
605
|
+
* Content
|
|
606
|
+
* </content-set>
|
|
607
|
+
* ```
|
|
608
|
+
*
|
|
609
|
+
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/content-set | ContentSet Guide}
|
|
610
|
+
*/
|
|
611
|
+
declare const _default$4: typeof __VLS_export;
|
|
612
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ContentSetProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ContentSetProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
613
|
+
default?: (props: {}) => any;
|
|
614
|
+
}>;
|
|
503
615
|
type __VLS_WithSlots<T, S> = T & {
|
|
504
616
|
new (): {
|
|
505
617
|
$slots: S;
|
|
506
618
|
};
|
|
507
619
|
};
|
|
508
620
|
//#endregion
|
|
509
|
-
export { type AppBarProps as AppBarConfig, type AppBarUserProps as AppBarUserConfig, _default as Btn, _default$1 as Column, _default$2 as Container, _default$3 as Frm, type NavigationMenuProps as NavigationMenuConfig, _default$
|
|
621
|
+
export { type AppBarProps as AppBarConfig, type AppBarUserProps as AppBarUserConfig, _default as Btn, _default$1 as Column, _default$2 as Container, _default$3 as Content, _default$4 as ContentSet, type ContentSetAction, _default$5 as Frm, type NavigationMenuProps as NavigationMenuConfig, _default$6 as Root, _default$7 as Row, _default$8 as TextField };
|
package/dist/components.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as useVuetifyColor, t as messages } from "./use-toast-CACuYhK_.js";
|
|
2
2
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, isRef, mergeModels, mergeProps, openBlock, ref, renderList, renderSlot, toDisplayString, toValue, unref, useModel, withCtx, withModifiers } from "vue";
|
|
3
|
-
import { VApp, VAppBar, VAppBarNavIcon, VAvatar, VBadge, VBtn, VCard, VCardText, VCol, VContainer, VDivider, VForm, VIcon, VIconBtn, VList, VListGroup, VListItem, VListItemAction, VListSubheader, VMain, VMenu, VNavigationDrawer, VRow, VSnackbarQueue, VTextField } from "vuetify/components";
|
|
3
|
+
import { VApp, VAppBar, VAppBarNavIcon, VAppBarTitle, VAvatar, VBadge, VBtn, VCard, VCardActions, VCardText, VCol, VContainer, VDivider, VForm, VIcon, VIconBtn, VImg, VList, VListGroup, VListItem, VListItemAction, VListSubheader, VMain, VMenu, VNavigationDrawer, VRow, VSkeletonLoader, VSnackbarQueue, VTextField } from "vuetify/components";
|
|
4
4
|
import { formatDateTime, isEmail, isEmpty, isPhone, isUrl, toPeriodInterval } from "@nexdom/shared/utils";
|
|
5
5
|
//#region src/composables/navigation/use-route-props.ts
|
|
6
6
|
function useRouteProps(route) {
|
|
@@ -44,7 +44,11 @@ var app_bar_default = /* @__PURE__ */ defineComponent({
|
|
|
44
44
|
},
|
|
45
45
|
navigation: {
|
|
46
46
|
type: Boolean,
|
|
47
|
-
required:
|
|
47
|
+
required: false
|
|
48
|
+
},
|
|
49
|
+
logo: {
|
|
50
|
+
type: String,
|
|
51
|
+
required: false
|
|
48
52
|
}
|
|
49
53
|
}, {
|
|
50
54
|
"notificationsOpen": {
|
|
@@ -94,15 +98,7 @@ var app_bar_default = /* @__PURE__ */ defineComponent({
|
|
|
94
98
|
return interval.days === 1;
|
|
95
99
|
}
|
|
96
100
|
return (_ctx, _cache) => {
|
|
97
|
-
return openBlock(), createBlock(unref(VAppBar), {
|
|
98
|
-
title: props.title,
|
|
99
|
-
"data-testid": props.dataTestid
|
|
100
|
-
}, {
|
|
101
|
-
prepend: withCtx(() => [__props.navigation ? (openBlock(), createBlock(unref(VAppBarNavIcon), {
|
|
102
|
-
key: 0,
|
|
103
|
-
"data-testid": navigationBtnDataTestid.value,
|
|
104
|
-
onClick: _cache[0] || (_cache[0] = ($event) => navigationOpen.value = !navigationOpen.value)
|
|
105
|
-
}, null, 8, ["data-testid"])) : createCommentVNode("v-if", true)]),
|
|
101
|
+
return openBlock(), createBlock(unref(VAppBar), { "data-testid": props.dataTestid }, {
|
|
106
102
|
append: withCtx(() => [
|
|
107
103
|
showHelp.value ? (openBlock(), createBlock(unref(VBtn), mergeProps({ key: 0 }, unref(routeProps), {
|
|
108
104
|
"data-testid": helpBtnDataTestid.value,
|
|
@@ -209,8 +205,27 @@ var app_bar_default = /* @__PURE__ */ defineComponent({
|
|
|
209
205
|
_: 1
|
|
210
206
|
})) : createCommentVNode("v-if", true)
|
|
211
207
|
]),
|
|
208
|
+
default: withCtx(() => [
|
|
209
|
+
__props.navigation ? (openBlock(), createBlock(unref(VAppBarNavIcon), {
|
|
210
|
+
key: 0,
|
|
211
|
+
"data-testid": navigationBtnDataTestid.value,
|
|
212
|
+
onClick: _cache[0] || (_cache[0] = ($event) => navigationOpen.value = !navigationOpen.value)
|
|
213
|
+
}, null, 8, ["data-testid"])) : createCommentVNode("v-if", true),
|
|
214
|
+
__props.logo ? (openBlock(), createBlock(unref(VImg), {
|
|
215
|
+
key: 1,
|
|
216
|
+
src: props.logo,
|
|
217
|
+
height: "100%",
|
|
218
|
+
width: "fit-content",
|
|
219
|
+
class: "py-2 ml-5 mr-n3",
|
|
220
|
+
cover: ""
|
|
221
|
+
}, null, 8, ["src"])) : createCommentVNode("v-if", true),
|
|
222
|
+
props.title ? (openBlock(), createBlock(unref(VAppBarTitle), { key: 2 }, {
|
|
223
|
+
default: withCtx(() => [createTextVNode(toDisplayString(props.title), 1)]),
|
|
224
|
+
_: 1
|
|
225
|
+
})) : createCommentVNode("v-if", true)
|
|
226
|
+
]),
|
|
212
227
|
_: 1
|
|
213
|
-
}, 8, ["
|
|
228
|
+
}, 8, ["data-testid"]);
|
|
214
229
|
};
|
|
215
230
|
}
|
|
216
231
|
});
|
|
@@ -537,6 +552,10 @@ var root_default = /* @__PURE__ */ defineComponent({
|
|
|
537
552
|
type: String,
|
|
538
553
|
required: false
|
|
539
554
|
},
|
|
555
|
+
logo: {
|
|
556
|
+
type: String,
|
|
557
|
+
required: false
|
|
558
|
+
},
|
|
540
559
|
appBar: {
|
|
541
560
|
type: Object,
|
|
542
561
|
required: false
|
|
@@ -557,6 +576,7 @@ var root_default = /* @__PURE__ */ defineComponent({
|
|
|
557
576
|
const props = __props;
|
|
558
577
|
const appBarProps = computed(() => props.appBar ? {
|
|
559
578
|
...props.appBar,
|
|
579
|
+
logo: props.logo,
|
|
560
580
|
navigation: props.navigationMenu !== void 0
|
|
561
581
|
} : void 0);
|
|
562
582
|
const notificationsOpen = useModel(__props, "notificationsOpen");
|
|
@@ -764,4 +784,125 @@ var frm_default = /* @__PURE__ */ defineComponent({
|
|
|
764
784
|
}
|
|
765
785
|
});
|
|
766
786
|
//#endregion
|
|
767
|
-
|
|
787
|
+
//#region src/components/content/content.vue
|
|
788
|
+
var content_default = /* @__PURE__ */ defineComponent({
|
|
789
|
+
inheritAttrs: false,
|
|
790
|
+
__name: "content",
|
|
791
|
+
setup(__props) {
|
|
792
|
+
return (_ctx, _cache) => {
|
|
793
|
+
return openBlock(), createBlock(unref(VCardText), null, {
|
|
794
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
795
|
+
_: 3
|
|
796
|
+
});
|
|
797
|
+
};
|
|
798
|
+
}
|
|
799
|
+
});
|
|
800
|
+
//#endregion
|
|
801
|
+
//#region src/composables/content-set.ts
|
|
802
|
+
const contentSetVariantToVuetifyVariant = {
|
|
803
|
+
primary: "elevated",
|
|
804
|
+
secondary: "outlined"
|
|
805
|
+
};
|
|
806
|
+
function useContentSetVariant(variant) {
|
|
807
|
+
return computed(() => {
|
|
808
|
+
const variantValue = toValue(variant);
|
|
809
|
+
return variantValue ? contentSetVariantToVuetifyVariant[variantValue] : contentSetVariantToVuetifyVariant.primary;
|
|
810
|
+
});
|
|
811
|
+
}
|
|
812
|
+
//#endregion
|
|
813
|
+
//#region src/components/content/content-set.vue
|
|
814
|
+
var content_set_default = /* @__PURE__ */ defineComponent({
|
|
815
|
+
inheritAttrs: false,
|
|
816
|
+
__name: "content-set",
|
|
817
|
+
props: {
|
|
818
|
+
variant: {
|
|
819
|
+
type: String,
|
|
820
|
+
required: false
|
|
821
|
+
},
|
|
822
|
+
title: {
|
|
823
|
+
type: String,
|
|
824
|
+
required: false
|
|
825
|
+
},
|
|
826
|
+
subtitle: {
|
|
827
|
+
type: String,
|
|
828
|
+
required: false
|
|
829
|
+
},
|
|
830
|
+
actions: {
|
|
831
|
+
type: Array,
|
|
832
|
+
required: false
|
|
833
|
+
},
|
|
834
|
+
fullWidth: {
|
|
835
|
+
type: Boolean,
|
|
836
|
+
required: false
|
|
837
|
+
},
|
|
838
|
+
fullHeight: {
|
|
839
|
+
type: Boolean,
|
|
840
|
+
required: false
|
|
841
|
+
},
|
|
842
|
+
loading: {
|
|
843
|
+
type: Boolean,
|
|
844
|
+
required: false
|
|
845
|
+
},
|
|
846
|
+
dataTestid: {
|
|
847
|
+
type: String,
|
|
848
|
+
required: false
|
|
849
|
+
}
|
|
850
|
+
},
|
|
851
|
+
setup(__props) {
|
|
852
|
+
const props = __props;
|
|
853
|
+
const variant = useContentSetVariant(() => props.variant);
|
|
854
|
+
const title = computed(() => props.title || void 0);
|
|
855
|
+
const subtitle = computed(() => props.subtitle || void 0);
|
|
856
|
+
const width = computed(() => props.fullWidth ? "100%" : void 0);
|
|
857
|
+
const height = computed(() => props.fullHeight ? "100%" : void 0);
|
|
858
|
+
const showActions = computed(() => !!props.actions?.length);
|
|
859
|
+
const skeletonType = computed(() => showActions.value ? "image, actions" : "image");
|
|
860
|
+
return (_ctx, _cache) => {
|
|
861
|
+
return openBlock(), createBlock(unref(VSkeletonLoader), {
|
|
862
|
+
loading: props.loading,
|
|
863
|
+
type: skeletonType.value,
|
|
864
|
+
width: width.value,
|
|
865
|
+
height: height.value
|
|
866
|
+
}, {
|
|
867
|
+
default: withCtx(() => [createVNode(unref(VCard), {
|
|
868
|
+
title: title.value,
|
|
869
|
+
subtitle: subtitle.value,
|
|
870
|
+
variant: unref(variant),
|
|
871
|
+
width: width.value,
|
|
872
|
+
height: height.value,
|
|
873
|
+
"data-testid": props.dataTestid,
|
|
874
|
+
class: "d-flex flex-column"
|
|
875
|
+
}, {
|
|
876
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default"), showActions.value ? (openBlock(), createBlock(unref(VCardActions), {
|
|
877
|
+
key: 0,
|
|
878
|
+
class: "mt-auto"
|
|
879
|
+
}, {
|
|
880
|
+
default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(props.actions, ({ label, onClick, ...action }, index) => {
|
|
881
|
+
return openBlock(), createBlock(btn_default, mergeProps({ key: index }, { ref_for: true }, action, { onClick }), {
|
|
882
|
+
default: withCtx(() => [createTextVNode(toDisplayString(label), 1)]),
|
|
883
|
+
_: 2
|
|
884
|
+
}, 1040, ["onClick"]);
|
|
885
|
+
}), 128))]),
|
|
886
|
+
_: 1
|
|
887
|
+
})) : createCommentVNode("v-if", true)]),
|
|
888
|
+
_: 3
|
|
889
|
+
}, 8, [
|
|
890
|
+
"title",
|
|
891
|
+
"subtitle",
|
|
892
|
+
"variant",
|
|
893
|
+
"width",
|
|
894
|
+
"height",
|
|
895
|
+
"data-testid"
|
|
896
|
+
])]),
|
|
897
|
+
_: 3
|
|
898
|
+
}, 8, [
|
|
899
|
+
"loading",
|
|
900
|
+
"type",
|
|
901
|
+
"width",
|
|
902
|
+
"height"
|
|
903
|
+
]);
|
|
904
|
+
};
|
|
905
|
+
}
|
|
906
|
+
});
|
|
907
|
+
//#endregion
|
|
908
|
+
export { btn_default as Btn, column_default as Column, container_default as Container, content_default as Content, content_set_default as ContentSet, frm_default as Frm, root_default as Root, row_default as Row, text_field_default as TextField };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nexdom/uimed-vue",
|
|
3
|
-
"version": "1.3.0-beta.
|
|
3
|
+
"version": "1.3.0-beta.3",
|
|
4
4
|
"description": "A ui framework for NEXDOM applications.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"lib",
|
|
@@ -43,7 +43,6 @@
|
|
|
43
43
|
"test": "vp test",
|
|
44
44
|
"test:mutations": "stryker run",
|
|
45
45
|
"test:e2e": "vpx playwright test",
|
|
46
|
-
"check": "vp check && vpx vue-tsc",
|
|
47
46
|
"prepublishOnly": "vpr build",
|
|
48
47
|
"prepare": "vp config",
|
|
49
48
|
"depcruise": "depcruise src --output-type err-long",
|