@nexdom/uimed-vue 2.0.0-beta.44 → 2.0.0-beta.45
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 +2 -1
- package/dist/components.d.ts +127 -15
- package/dist/components.js +102 -5
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -205,7 +205,8 @@ Use an existing composable (e.g. `use-toast`) as the reference, and deliver in t
|
|
|
205
205
|
|
|
206
206
|
- Component layout: `src/components/<name>/<name>.vue`, `types.ts` for prop/option types, `__tests__/<name>.test.ts` for unit tests. Components that belong to a group live in the group's folder (e.g. the internal `src/components/dialogs/toast.vue`).
|
|
207
207
|
- Composables live in a group folder: `src/composables/<group>/<name>.ts`, with `types.ts` and `__tests__/` in the group folder (e.g. `src/composables/dialogs/use-toast.ts`). A composable (`use-*.ts`) must depend on `vue` or `vue-router`, directly or through other modules (enforced by dependency-cruiser's `composables-use-vue` rule).
|
|
208
|
-
- Library-wide configuration constants that aren't components or composables live in `src/consts/<name>.ts` (e.g. `src/consts/locale.ts`, the language set by `createUimed()` and `vueTestUtilsPluginUimed()`).
|
|
208
|
+
- Library-wide configuration constants that aren't components or composables live in `src/consts/<name>.ts` (e.g. `src/consts/locale.ts`, the language set by `createUimed()` and `vueTestUtilsPluginUimed()`), with their types in `src/consts/types.ts`.
|
|
209
|
+
- Components accept icons by name (the `Icon` type in `src/consts/types.ts`), mapped to icon font classes by the internal `icons` object in `src/consts/icons.ts`. To add an icon, add it to that map and to the list on the "Ícones" guide page (`docs/guide/icons.md`), and check that its class exists in the installed icon font: the unit test of `src/consts/icons.ts` checks every class, and the page's E2E spec fails when the page and the map list different icons.
|
|
209
210
|
- Pure helpers that don't use Vue live in `src/utils/<name>.ts`, with tests in `src/utils/__tests__/`. Generic helpers that any TypeScript project could use (e.g. `isDeepEqual`) belong in `@nexdom/shared` instead.
|
|
210
211
|
- Public components/composables are re-exported from `src/components/index.ts` and `src/composables/index.ts`. Prop types stay internal (`types.ts` is not re-exported); consumers derive them with `ComponentProps` (see [Usage](#usage)).
|
|
211
212
|
- Every publicly exported component must use the `U` prefix on its export identifier (e.g., `UButton`, `UMain`), while internal file names and component names remain unprefixed.
|
package/dist/components.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as ButtonProps } from "./types-BbWo6RIy.js";
|
|
1
|
+
import { r as ColorVariant, t as ButtonProps } from "./types-BbWo6RIy.js";
|
|
2
2
|
import { RouteLocationRaw } from "vue-router";
|
|
3
3
|
//#region src/components/app-bar/types.d.ts
|
|
4
4
|
/**
|
|
@@ -93,6 +93,53 @@ interface Option {
|
|
|
93
93
|
action?: () => void;
|
|
94
94
|
}
|
|
95
95
|
//#endregion
|
|
96
|
+
//#region src/consts/icons.d.ts
|
|
97
|
+
/**
|
|
98
|
+
* Icon font class of each icon available to the components that accept one (e.g. `UIconButton`
|
|
99
|
+
* and the items of the navigation menu), by its name, in the order the "Ícones" guide page lists
|
|
100
|
+
* them. A name ending in `-alternative` is an alternative version of the same drawing (currently,
|
|
101
|
+
* outlined).
|
|
102
|
+
*
|
|
103
|
+
* To add an icon, add it here and to the list on the "Ícones" guide page (`docs/guide/icons.md`).
|
|
104
|
+
*/
|
|
105
|
+
declare const icons: {
|
|
106
|
+
home: string;
|
|
107
|
+
"home-alternative": string;
|
|
108
|
+
account: string;
|
|
109
|
+
"account-alternative": string;
|
|
110
|
+
"account-group": string;
|
|
111
|
+
"account-group-alternative": string;
|
|
112
|
+
calendar: string;
|
|
113
|
+
"calendar-alternative": string;
|
|
114
|
+
"clipboard-text": string;
|
|
115
|
+
"clipboard-text-alternative": string;
|
|
116
|
+
"file-document": string;
|
|
117
|
+
"file-document-alternative": string;
|
|
118
|
+
flask: string;
|
|
119
|
+
"flask-alternative": string;
|
|
120
|
+
folder: string;
|
|
121
|
+
"folder-alternative": string;
|
|
122
|
+
"chart-box": string;
|
|
123
|
+
"chart-box-alternative": string;
|
|
124
|
+
wallet: string;
|
|
125
|
+
"wallet-alternative": string;
|
|
126
|
+
cog: string;
|
|
127
|
+
"cog-alternative": string;
|
|
128
|
+
stethoscope: string;
|
|
129
|
+
pill: string;
|
|
130
|
+
hospital: string;
|
|
131
|
+
};
|
|
132
|
+
//#endregion
|
|
133
|
+
//#region src/consts/types.d.ts
|
|
134
|
+
/**
|
|
135
|
+
* Name of an icon available to the components that accept one (e.g. `UIconButton` and the items
|
|
136
|
+
* of the navigation menu). The full list, with a preview of each icon, is on the "Ícones" guide
|
|
137
|
+
* page.
|
|
138
|
+
*
|
|
139
|
+
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/icons | Icons Guide}
|
|
140
|
+
*/
|
|
141
|
+
type Icon = keyof typeof icons;
|
|
142
|
+
//#endregion
|
|
96
143
|
//#region src/components/navigation-menu/types.d.ts
|
|
97
144
|
/**
|
|
98
145
|
* Props exposed by the {@link NavigationMenu} component.
|
|
@@ -114,6 +161,13 @@ type NavigationMenuParentItem = {
|
|
|
114
161
|
* Text to present for the group.
|
|
115
162
|
*/
|
|
116
163
|
description: string;
|
|
164
|
+
/**
|
|
165
|
+
* Icon shown before the group's description. One of the names listed on the "Ícones" guide
|
|
166
|
+
* page.
|
|
167
|
+
*
|
|
168
|
+
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/icons | Icons Guide}
|
|
169
|
+
*/
|
|
170
|
+
icon?: Icon;
|
|
117
171
|
/**
|
|
118
172
|
* Child {@link NavigationMenuItem} list.
|
|
119
173
|
*/
|
|
@@ -124,6 +178,13 @@ interface NavigationMenuItem {
|
|
|
124
178
|
* Text to present for the item.
|
|
125
179
|
*/
|
|
126
180
|
description: string;
|
|
181
|
+
/**
|
|
182
|
+
* Icon shown before the item's description. One of the names listed on the "Ícones" guide
|
|
183
|
+
* page.
|
|
184
|
+
*
|
|
185
|
+
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/icons | Icons Guide}
|
|
186
|
+
*/
|
|
187
|
+
icon?: Icon;
|
|
127
188
|
/**
|
|
128
189
|
* Route to navigate when item is clicked.
|
|
129
190
|
*/
|
|
@@ -208,8 +269,8 @@ type MainProps = {
|
|
|
208
269
|
*
|
|
209
270
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/main | Main Guide}
|
|
210
271
|
*/
|
|
211
|
-
declare const _default$
|
|
212
|
-
declare const __VLS_export$
|
|
272
|
+
declare const _default$14: typeof __VLS_export$20;
|
|
273
|
+
declare const __VLS_export$20: __VLS_WithSlots$11<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<MainProps & {
|
|
213
274
|
notificationsOpen?: boolean;
|
|
214
275
|
}, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
|
|
215
276
|
"update:notificationsOpen": (value: boolean) => any;
|
|
@@ -241,8 +302,8 @@ type __VLS_WithSlots$11<T, S> = T & {
|
|
|
241
302
|
*
|
|
242
303
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/button | Button Guide}
|
|
243
304
|
*/
|
|
244
|
-
declare const _default$1: typeof __VLS_export$
|
|
245
|
-
declare const __VLS_export$
|
|
305
|
+
declare const _default$1: typeof __VLS_export$19;
|
|
306
|
+
declare const __VLS_export$19: __VLS_WithSlots$10<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ButtonProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
|
|
246
307
|
click: (event: MouseEvent) => any;
|
|
247
308
|
}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ButtonProps> & Readonly<{
|
|
248
309
|
onClick?: ((event: MouseEvent) => any) | undefined;
|
|
@@ -255,6 +316,57 @@ type __VLS_WithSlots$10<T, S> = T & {
|
|
|
255
316
|
};
|
|
256
317
|
};
|
|
257
318
|
//#endregion
|
|
319
|
+
//#region src/components/icon-button/types.d.ts
|
|
320
|
+
/**
|
|
321
|
+
* Props exposed by the {@link IconButton} component.
|
|
322
|
+
*/
|
|
323
|
+
type IconButtonProps = {
|
|
324
|
+
/**
|
|
325
|
+
* Icon drawn on the button. One of the names listed on the "Ícones" guide page. Assistive
|
|
326
|
+
* technologies ignore it and read `label` instead.
|
|
327
|
+
*
|
|
328
|
+
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/icons | Icons Guide}
|
|
329
|
+
*/
|
|
330
|
+
icon: Icon;
|
|
331
|
+
/**
|
|
332
|
+
* Accessible name of the button, read by assistive technologies instead of the icon. Describe
|
|
333
|
+
* the action the button performs (e.g. "Editar paciente"), not the icon's drawing (e.g.
|
|
334
|
+
* "Lápis").
|
|
335
|
+
*/
|
|
336
|
+
label: string;
|
|
337
|
+
/**
|
|
338
|
+
* Applies a color to the button.
|
|
339
|
+
* One of `primary`, `secondary`, `positive`, `informative`, `caution`, or `danger`.
|
|
340
|
+
* @default "primary"
|
|
341
|
+
*/
|
|
342
|
+
color?: ColorVariant;
|
|
343
|
+
/**
|
|
344
|
+
* Component id to use on automated tests.
|
|
345
|
+
*/
|
|
346
|
+
dataTestid?: string;
|
|
347
|
+
};
|
|
348
|
+
//#endregion
|
|
349
|
+
//#region src/components/icon-button/icon-button.vue.d.ts
|
|
350
|
+
/**
|
|
351
|
+
* Button that shows only an icon, for actions whose icon is enough to identify them, such as
|
|
352
|
+
* editing a record of a list. Its `label` is the name assistive technologies read.
|
|
353
|
+
*
|
|
354
|
+
* @example
|
|
355
|
+
* ```vue
|
|
356
|
+
* <template>
|
|
357
|
+
* <u-icon-button icon="cog" label="Configurações" @click="onClick" />
|
|
358
|
+
* </template>
|
|
359
|
+
* ```
|
|
360
|
+
*
|
|
361
|
+
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/icon-button | IconButton Guide}
|
|
362
|
+
*/
|
|
363
|
+
declare const _default$11: typeof __VLS_export$18;
|
|
364
|
+
declare const __VLS_export$18: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<IconButtonProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
|
|
365
|
+
click: (event: MouseEvent) => any;
|
|
366
|
+
}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<IconButtonProps> & Readonly<{
|
|
367
|
+
onClick?: ((event: MouseEvent) => any) | undefined;
|
|
368
|
+
}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
|
|
369
|
+
//#endregion
|
|
258
370
|
//#region src/components/inputs/text-field/types.d.ts
|
|
259
371
|
type TextFieldVariant = "primary" | "secondary";
|
|
260
372
|
type TextFieldType = "text" | "phone" | "email" | "url" | "password" | "search";
|
|
@@ -452,7 +564,7 @@ type __VLS_PrettifyLocal$2<T> = (T extends any ? { [K in keyof T]: T[K]; } : { [
|
|
|
452
564
|
*
|
|
453
565
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/text-field | TextField Guide}
|
|
454
566
|
*/
|
|
455
|
-
declare const _default$
|
|
567
|
+
declare const _default$20: typeof __VLS_export$16;
|
|
456
568
|
declare const __VLS_export$16: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<TextFieldProps & {
|
|
457
569
|
modelValue?: string;
|
|
458
570
|
}, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
|
|
@@ -463,8 +575,8 @@ declare const __VLS_export$16: import("vue", { with: { "resolution-mode": "impor
|
|
|
463
575
|
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
464
576
|
}>, {
|
|
465
577
|
variant: TextFieldVariant;
|
|
466
|
-
type: TextFieldType;
|
|
467
578
|
clearable: boolean;
|
|
579
|
+
type: TextFieldType;
|
|
468
580
|
}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
|
|
469
581
|
//#endregion
|
|
470
582
|
//#region src/components/inputs/checkbox/types.d.ts
|
|
@@ -780,7 +892,7 @@ type MaskFieldProps = {
|
|
|
780
892
|
*
|
|
781
893
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/mask-field | MaskField Guide}
|
|
782
894
|
*/
|
|
783
|
-
declare const _default$
|
|
895
|
+
declare const _default$15: typeof __VLS_export$13;
|
|
784
896
|
declare const __VLS_export$13: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<MaskFieldProps & {
|
|
785
897
|
modelValue?: string;
|
|
786
898
|
}, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
|
|
@@ -926,7 +1038,7 @@ type RowProps = {
|
|
|
926
1038
|
*
|
|
927
1039
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Row Guide}
|
|
928
1040
|
*/
|
|
929
|
-
declare const _default$
|
|
1041
|
+
declare const _default$16: typeof __VLS_export$11;
|
|
930
1042
|
declare const __VLS_export$11: __VLS_WithSlots$8<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<RowProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<RowProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
931
1043
|
default?: (props: {}) => any;
|
|
932
1044
|
}>;
|
|
@@ -1055,7 +1167,7 @@ type __VLS_WithSlots$6<T, S> = T & {
|
|
|
1055
1167
|
*
|
|
1056
1168
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/section | Section Guide}
|
|
1057
1169
|
*/
|
|
1058
|
-
declare const _default$
|
|
1170
|
+
declare const _default$18: typeof __VLS_export$8;
|
|
1059
1171
|
declare const __VLS_export$8: __VLS_WithSlots$5<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<{}, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, true, {}, any>, {
|
|
1060
1172
|
default?: (props: {}) => any;
|
|
1061
1173
|
}>;
|
|
@@ -1160,7 +1272,7 @@ interface SectionAction extends ButtonProps {
|
|
|
1160
1272
|
*
|
|
1161
1273
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/section | Section Guide}
|
|
1162
1274
|
*/
|
|
1163
|
-
declare const _default$
|
|
1275
|
+
declare const _default$17: typeof __VLS_export$7;
|
|
1164
1276
|
declare const __VLS_export$7: __VLS_WithSlots$4<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<SectionProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<SectionProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
1165
1277
|
default?: (props: {}) => any;
|
|
1166
1278
|
}>;
|
|
@@ -1235,7 +1347,7 @@ type TableProps = {
|
|
|
1235
1347
|
*
|
|
1236
1348
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/table | Table Guide}
|
|
1237
1349
|
*/
|
|
1238
|
-
declare const _default$
|
|
1350
|
+
declare const _default$19: typeof __VLS_export$6;
|
|
1239
1351
|
declare const __VLS_export$6: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<TableProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<TableProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
|
|
1240
1352
|
//#endregion
|
|
1241
1353
|
//#region src/components/details/types.d.ts
|
|
@@ -1354,7 +1466,7 @@ type ImgProps = {
|
|
|
1354
1466
|
*
|
|
1355
1467
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/img | Img Guide}
|
|
1356
1468
|
*/
|
|
1357
|
-
declare const _default$
|
|
1469
|
+
declare const _default$12: typeof __VLS_export$4;
|
|
1358
1470
|
declare const __VLS_export$4: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ImgProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ImgProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
|
|
1359
1471
|
//#endregion
|
|
1360
1472
|
//#region src/components/link/types.d.ts
|
|
@@ -1389,7 +1501,7 @@ type LinkProps = {
|
|
|
1389
1501
|
*
|
|
1390
1502
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/link | Link Guide}
|
|
1391
1503
|
*/
|
|
1392
|
-
declare const _default$
|
|
1504
|
+
declare const _default$13: typeof __VLS_export$3;
|
|
1393
1505
|
declare const __VLS_export$3: __VLS_WithSlots$2<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<LinkProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<LinkProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
1394
1506
|
default?: (props: {}) => any;
|
|
1395
1507
|
}>;
|
|
@@ -1666,4 +1778,4 @@ type __VLS_WithSlots<T, S> = T & {
|
|
|
1666
1778
|
};
|
|
1667
1779
|
};
|
|
1668
1780
|
//#endregion
|
|
1669
|
-
export { _default as UAutocompleteField, _default$1 as UButton, _default$2 as UCheckbox, _default$3 as UColumn, _default$4 as UContainer, _default$5 as UDataSet, _default$6 as UDataSetItem, _default$7 as UDateTimeField, _default$8 as UDetails, _default$9 as UDialog, _default$10 as UForm, _default$11 as
|
|
1781
|
+
export { _default as UAutocompleteField, _default$1 as UButton, _default$2 as UCheckbox, _default$3 as UColumn, _default$4 as UContainer, _default$5 as UDataSet, _default$6 as UDataSetItem, _default$7 as UDateTimeField, _default$8 as UDetails, _default$9 as UDialog, _default$10 as UForm, _default$11 as UIconButton, _default$12 as UImg, _default$13 as ULink, _default$14 as UMain, _default$15 as UMaskField, _default$16 as URow, _default$17 as USection, _default$18 as USectionContent, _default$19 as UTable, _default$20 as UTextField };
|
package/dist/components.js
CHANGED
|
@@ -423,6 +423,43 @@ var app_bar_default = /* @__PURE__ */ defineComponent({
|
|
|
423
423
|
}
|
|
424
424
|
});
|
|
425
425
|
//#endregion
|
|
426
|
+
//#region src/consts/icons.ts
|
|
427
|
+
/**
|
|
428
|
+
* Icon font class of each icon available to the components that accept one (e.g. `UIconButton`
|
|
429
|
+
* and the items of the navigation menu), by its name, in the order the "Ícones" guide page lists
|
|
430
|
+
* them. A name ending in `-alternative` is an alternative version of the same drawing (currently,
|
|
431
|
+
* outlined).
|
|
432
|
+
*
|
|
433
|
+
* To add an icon, add it here and to the list on the "Ícones" guide page (`docs/guide/icons.md`).
|
|
434
|
+
*/
|
|
435
|
+
const icons = {
|
|
436
|
+
home: "mdi-home",
|
|
437
|
+
"home-alternative": "mdi-home-outline",
|
|
438
|
+
account: "mdi-account",
|
|
439
|
+
"account-alternative": "mdi-account-outline",
|
|
440
|
+
"account-group": "mdi-account-group",
|
|
441
|
+
"account-group-alternative": "mdi-account-group-outline",
|
|
442
|
+
calendar: "mdi-calendar",
|
|
443
|
+
"calendar-alternative": "mdi-calendar-outline",
|
|
444
|
+
"clipboard-text": "mdi-clipboard-text",
|
|
445
|
+
"clipboard-text-alternative": "mdi-clipboard-text-outline",
|
|
446
|
+
"file-document": "mdi-file-document",
|
|
447
|
+
"file-document-alternative": "mdi-file-document-outline",
|
|
448
|
+
flask: "mdi-flask",
|
|
449
|
+
"flask-alternative": "mdi-flask-outline",
|
|
450
|
+
folder: "mdi-folder",
|
|
451
|
+
"folder-alternative": "mdi-folder-outline",
|
|
452
|
+
"chart-box": "mdi-chart-box",
|
|
453
|
+
"chart-box-alternative": "mdi-chart-box-outline",
|
|
454
|
+
wallet: "mdi-wallet",
|
|
455
|
+
"wallet-alternative": "mdi-wallet-outline",
|
|
456
|
+
cog: "mdi-cog",
|
|
457
|
+
"cog-alternative": "mdi-cog-outline",
|
|
458
|
+
stethoscope: "mdi-stethoscope",
|
|
459
|
+
pill: "mdi-pill",
|
|
460
|
+
hospital: "mdi-hospital-building"
|
|
461
|
+
};
|
|
462
|
+
//#endregion
|
|
426
463
|
//#region src/composables/inputs/rules.ts
|
|
427
464
|
function required(value) {
|
|
428
465
|
return !isEmpty(value) || "Campo obrigatório";
|
|
@@ -771,18 +808,31 @@ var navigation_menu_default = /* @__PURE__ */ defineComponent({
|
|
|
771
808
|
default: withCtx(() => [createVNode(unref(VList), { nav: "" }, {
|
|
772
809
|
default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(filteredItems.value, (item, index) => {
|
|
773
810
|
return openBlock(), createElementBlock(Fragment, { key: index }, [isParentItem(item) ? (openBlock(), createBlock(unref(VListGroup), { key: 0 }, {
|
|
774
|
-
activator: withCtx(({ props: activatorProps }) => [createVNode(unref(VListItem), mergeProps({ ref_for: true }, activatorProps, {
|
|
811
|
+
activator: withCtx(({ props: activatorProps }) => [createVNode(unref(VListItem), mergeProps({ ref_for: true }, activatorProps, {
|
|
812
|
+
title: item.description,
|
|
813
|
+
"prepend-icon": item.icon && unref(icons)[item.icon]
|
|
814
|
+
}), null, 16, ["title", "prepend-icon"])]),
|
|
775
815
|
default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(item.items, (childItem, childIndex) => {
|
|
776
816
|
return openBlock(), createBlock(unref(VListItem), mergeProps({ key: childIndex }, { ref_for: true }, unref(routeToProps)(childItem.route), {
|
|
777
817
|
title: childItem.description,
|
|
818
|
+
"prepend-icon": childItem.icon && unref(icons)[childItem.icon],
|
|
778
819
|
onClick: childItem.action
|
|
779
|
-
}), null, 16, [
|
|
820
|
+
}), null, 16, [
|
|
821
|
+
"title",
|
|
822
|
+
"prepend-icon",
|
|
823
|
+
"onClick"
|
|
824
|
+
]);
|
|
780
825
|
}), 128))]),
|
|
781
826
|
_: 2
|
|
782
827
|
}, 1024)) : (openBlock(), createBlock(unref(VListItem), mergeProps({
|
|
783
828
|
key: 1,
|
|
784
|
-
title: item.description
|
|
785
|
-
|
|
829
|
+
title: item.description,
|
|
830
|
+
"prepend-icon": item.icon && unref(icons)[item.icon]
|
|
831
|
+
}, { ref_for: true }, unref(routeToProps)(item.route), { onClick: item.action }), null, 16, [
|
|
832
|
+
"title",
|
|
833
|
+
"prepend-icon",
|
|
834
|
+
"onClick"
|
|
835
|
+
]))], 64);
|
|
786
836
|
}), 128))]),
|
|
787
837
|
_: 1
|
|
788
838
|
})]),
|
|
@@ -1377,6 +1427,53 @@ var main_default = /* @__PURE__ */ defineComponent({
|
|
|
1377
1427
|
}
|
|
1378
1428
|
});
|
|
1379
1429
|
//#endregion
|
|
1430
|
+
//#region src/components/icon-button/icon-button.vue
|
|
1431
|
+
var icon_button_default = /* @__PURE__ */ defineComponent({
|
|
1432
|
+
inheritAttrs: false,
|
|
1433
|
+
__name: "icon-button",
|
|
1434
|
+
props: {
|
|
1435
|
+
icon: {
|
|
1436
|
+
type: null,
|
|
1437
|
+
required: true
|
|
1438
|
+
},
|
|
1439
|
+
label: {
|
|
1440
|
+
type: String,
|
|
1441
|
+
required: true
|
|
1442
|
+
},
|
|
1443
|
+
color: {
|
|
1444
|
+
type: String,
|
|
1445
|
+
required: false
|
|
1446
|
+
},
|
|
1447
|
+
dataTestid: {
|
|
1448
|
+
type: String,
|
|
1449
|
+
required: false
|
|
1450
|
+
}
|
|
1451
|
+
},
|
|
1452
|
+
emits: ["click"],
|
|
1453
|
+
setup(__props, { emit: __emit }) {
|
|
1454
|
+
const props = __props;
|
|
1455
|
+
const emit = __emit;
|
|
1456
|
+
const color = useVuetifyColor(() => props.color);
|
|
1457
|
+
function onClick(event) {
|
|
1458
|
+
emit("click", event);
|
|
1459
|
+
}
|
|
1460
|
+
return (_ctx, _cache) => {
|
|
1461
|
+
return openBlock(), createBlock(unref(VIconBtn), {
|
|
1462
|
+
icon: unref(icons)[props.icon],
|
|
1463
|
+
"aria-label": props.label,
|
|
1464
|
+
color: unref(color),
|
|
1465
|
+
"data-testid": props.dataTestid,
|
|
1466
|
+
onClick
|
|
1467
|
+
}, null, 8, [
|
|
1468
|
+
"icon",
|
|
1469
|
+
"aria-label",
|
|
1470
|
+
"color",
|
|
1471
|
+
"data-testid"
|
|
1472
|
+
]);
|
|
1473
|
+
};
|
|
1474
|
+
}
|
|
1475
|
+
});
|
|
1476
|
+
//#endregion
|
|
1380
1477
|
//#region src/composables/inputs/autocomplete-field.ts
|
|
1381
1478
|
function createAutocompleteRequiredRule(options) {
|
|
1382
1479
|
return createRequiredRule(options.required, (value) => {
|
|
@@ -3032,4 +3129,4 @@ var data_set_item_default = /* @__PURE__ */ defineComponent({
|
|
|
3032
3129
|
}
|
|
3033
3130
|
});
|
|
3034
3131
|
//#endregion
|
|
3035
|
-
export { autocomplete_field_default as UAutocompleteField, button_default as UButton, checkbox_default as UCheckbox, column_default as UColumn, container_default as UContainer, data_set_default as UDataSet, data_set_item_default as UDataSetItem, date_time_field_default as UDateTimeField, details_default as UDetails, dialog_default as UDialog, form_default as UForm, img_default as UImg, link_default as ULink, main_default as UMain, mask_field_default as UMaskField, row_default as URow, section_default as USection, section_content_default as USectionContent, table_default as UTable, text_field_default as UTextField };
|
|
3132
|
+
export { autocomplete_field_default as UAutocompleteField, button_default as UButton, checkbox_default as UCheckbox, column_default as UColumn, container_default as UContainer, data_set_default as UDataSet, data_set_item_default as UDataSetItem, date_time_field_default as UDateTimeField, details_default as UDetails, dialog_default as UDialog, form_default as UForm, icon_button_default as UIconButton, img_default as UImg, link_default as ULink, main_default as UMain, mask_field_default as UMaskField, row_default as URow, section_default as USection, section_content_default as USectionContent, table_default as UTable, text_field_default as UTextField };
|