@nexdom/uimed-vue 2.0.0-beta.57 → 2.0.0-beta.59
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 -1
- package/dist/components.d.ts +17 -3
- package/dist/components.js +19 -5
- package/dist/index.js +3 -3
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -179,7 +179,7 @@ Use an existing composable (e.g. `use-toast`) as the reference, and deliver in t
|
|
|
179
179
|
- Reuse the shared internal composables for props that recur across components, so every component maps them to Vuetify the same way, instead of mapping them again:
|
|
180
180
|
- `fullWidth`/`fullHeight`: `useFullWidth`/`useFullHeight` (`src/composables/dimensions/dimensions.ts`), applying Vuetify's `w-100`/`h-100` classes even where the component has `width`/`height` props.
|
|
181
181
|
- `alignX`/`alignY`: `useAlignX`/`useAlignY` (`src/composables/alignment/alignment.ts`), with the `AlignX`/`AlignY` types from the group's `types.ts`.
|
|
182
|
-
- `color`: `useVuetifyColor` (`src/composables/colors/use-vuetify-color.ts`), with the `ColorVariant` type from the group's `types.ts`. Where the color is the text's instead of a fill (e.g. `UButton`'s `ghost` variant), use `useVuetifyTextColor` (`use-vuetify-text-color.ts`) instead:
|
|
182
|
+
- `color`: `useVuetifyColor` (`src/composables/colors/use-vuetify-color.ts`), with the `ColorVariant` type from the group's `types.ts`. Where the color is the text's instead of a fill (e.g. `UButton`'s `ghost` variant), use `useVuetifyTextColor` (`use-vuetify-text-color.ts`) instead: most fills are too light to reach WCAG AA's contrast as text, so each color has a text shade in the theme, darker than its fill (primary's fill is dark enough to be its own shade).
|
|
183
183
|
|
|
184
184
|
A new prop that does the same as one of these takes its name and type. When a second component needs a mapping that only one component has, move it into a shared composable first.
|
|
185
185
|
|
package/dist/components.d.ts
CHANGED
|
@@ -303,6 +303,22 @@ type MainProps = {
|
|
|
303
303
|
*/
|
|
304
304
|
background?: ColorVariant;
|
|
305
305
|
};
|
|
306
|
+
/**
|
|
307
|
+
* Slots exposed by the {@link Main} component.
|
|
308
|
+
*/
|
|
309
|
+
type MainSlots = {
|
|
310
|
+
/**
|
|
311
|
+
* Content of the page, below the app bar (and above the footer, when shown).
|
|
312
|
+
*/
|
|
313
|
+
default?: () => unknown;
|
|
314
|
+
/**
|
|
315
|
+
* Details of the user shown in the user menu of the app bar, below the
|
|
316
|
+
* name and subtitle and above the options, with the text centered like
|
|
317
|
+
* them (e.g. the user's organization and profile, and an action to manage
|
|
318
|
+
* the profile). Only shown when `appBar.user` is given.
|
|
319
|
+
*/
|
|
320
|
+
"user-section-details"?: () => unknown;
|
|
321
|
+
};
|
|
306
322
|
//#endregion
|
|
307
323
|
//#region src/components/main/main.vue.d.ts
|
|
308
324
|
/**
|
|
@@ -328,9 +344,7 @@ declare const __VLS_export$21: __VLS_WithSlots$12<import("vue", { with: { "resol
|
|
|
328
344
|
notificationsOpen?: boolean;
|
|
329
345
|
}> & Readonly<{
|
|
330
346
|
"onUpdate:notificationsOpen"?: ((value: boolean) => any) | undefined;
|
|
331
|
-
}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>,
|
|
332
|
-
default?: (props: {}) => any;
|
|
333
|
-
}>;
|
|
347
|
+
}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, MainSlots>;
|
|
334
348
|
type __VLS_WithSlots$12<T, S> = T & {
|
|
335
349
|
new (): {
|
|
336
350
|
$slots: S;
|
package/dist/components.js
CHANGED
|
@@ -251,6 +251,7 @@ var app_bar_default = /* @__PURE__ */ defineComponent({
|
|
|
251
251
|
emits: ["update:notificationsOpen", "update:navigationOpen"],
|
|
252
252
|
setup(__props) {
|
|
253
253
|
const props = __props;
|
|
254
|
+
const slots = useSlots();
|
|
254
255
|
const notificationsOpen = useModel(__props, "notificationsOpen");
|
|
255
256
|
const navigationOpen = useModel(__props, "navigationOpen");
|
|
256
257
|
const { ariaKeyshortcuts: navigationKeyshortcuts } = useNavigationShortcutKeys();
|
|
@@ -391,6 +392,14 @@ var app_bar_default = /* @__PURE__ */ defineComponent({
|
|
|
391
392
|
subtitle: __props.user?.subtitle,
|
|
392
393
|
class: "text-center"
|
|
393
394
|
}, null, 8, ["title", "subtitle"])) : createCommentVNode("v-if", true),
|
|
395
|
+
createCommentVNode(" The app's details of the user continue the header, so their text is centered too "),
|
|
396
|
+
slots["user-section-details"] ? (openBlock(), createBlock(unref(VCardText), {
|
|
397
|
+
key: 1,
|
|
398
|
+
class: "text-center"
|
|
399
|
+
}, {
|
|
400
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "user-section-details")]),
|
|
401
|
+
_: 3
|
|
402
|
+
})) : createCommentVNode("v-if", true),
|
|
394
403
|
createVNode(unref(VDivider)),
|
|
395
404
|
createCommentVNode(" Vuetify's `list` role only allows list items, but the options are links and\n separators "),
|
|
396
405
|
createVNode(unref(VList), {
|
|
@@ -425,12 +434,12 @@ var app_bar_default = /* @__PURE__ */ defineComponent({
|
|
|
425
434
|
_: 1
|
|
426
435
|
})
|
|
427
436
|
]),
|
|
428
|
-
_:
|
|
437
|
+
_: 3
|
|
429
438
|
}, 8, ["data-testid"])]),
|
|
430
|
-
_:
|
|
439
|
+
_: 3
|
|
431
440
|
})) : createCommentVNode("v-if", true)
|
|
432
441
|
]),
|
|
433
|
-
_:
|
|
442
|
+
_: 3
|
|
434
443
|
}, 8, ["loading"])]),
|
|
435
444
|
default: withCtx(() => [
|
|
436
445
|
__props.navigation ? (openBlock(), createBlock(unref(VAppBarNavIcon), {
|
|
@@ -463,7 +472,7 @@ var app_bar_default = /* @__PURE__ */ defineComponent({
|
|
|
463
472
|
_: 1
|
|
464
473
|
})) : createCommentVNode("v-if", true)
|
|
465
474
|
]),
|
|
466
|
-
_:
|
|
475
|
+
_: 3
|
|
467
476
|
}, 8, ["data-testid", "aria-busy"]);
|
|
468
477
|
};
|
|
469
478
|
}
|
|
@@ -1458,6 +1467,7 @@ var main_default = /* @__PURE__ */ defineComponent({
|
|
|
1458
1467
|
emits: ["update:notificationsOpen"],
|
|
1459
1468
|
setup(__props) {
|
|
1460
1469
|
const props = __props;
|
|
1470
|
+
const slots = useSlots();
|
|
1461
1471
|
const appBarProps = computed(() => props.appBar ? {
|
|
1462
1472
|
...props.appBar,
|
|
1463
1473
|
logo: props.logo,
|
|
@@ -1478,7 +1488,11 @@ var main_default = /* @__PURE__ */ defineComponent({
|
|
|
1478
1488
|
"onUpdate:notificationsOpen": _cache[0] || (_cache[0] = ($event) => notificationsOpen.value = $event),
|
|
1479
1489
|
"navigation-open": navigationMenuOpen.value,
|
|
1480
1490
|
"onUpdate:navigationOpen": _cache[1] || (_cache[1] = ($event) => navigationMenuOpen.value = $event)
|
|
1481
|
-
}),
|
|
1491
|
+
}), createSlots({ _: 2 }, [slots["user-section-details"] ? {
|
|
1492
|
+
name: "user-section-details",
|
|
1493
|
+
fn: withCtx(() => [renderSlot(_ctx.$slots, "user-section-details")]),
|
|
1494
|
+
key: "0"
|
|
1495
|
+
} : void 0]), 1040, ["notifications-open", "navigation-open"])) : createCommentVNode("v-if", true),
|
|
1482
1496
|
props.navigationMenu ? (openBlock(), createBlock(navigation_menu_default, mergeProps({ key: 1 }, props.navigationMenu, {
|
|
1483
1497
|
modelValue: navigationMenuOpen.value,
|
|
1484
1498
|
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => navigationMenuOpen.value = $event),
|
package/dist/index.js
CHANGED
|
@@ -25,14 +25,14 @@ function createUimed() {
|
|
|
25
25
|
colors: {
|
|
26
26
|
background: "#EAEDF0",
|
|
27
27
|
surface: "#FCFCFD",
|
|
28
|
-
primary: "#
|
|
28
|
+
primary: "#074D31",
|
|
29
29
|
secondary: "#FCFCFD",
|
|
30
30
|
success: "#A9EFC5",
|
|
31
31
|
warning: "#FFE596",
|
|
32
32
|
error: "#D92D20",
|
|
33
33
|
info: "#9ACBE5",
|
|
34
|
-
"on-primary": "#
|
|
35
|
-
"primary-text": "#
|
|
34
|
+
"on-primary": "#FCFCFD",
|
|
35
|
+
"primary-text": "#074D31",
|
|
36
36
|
"success-text": "#16783E",
|
|
37
37
|
"info-text": "#277096",
|
|
38
38
|
"warning-text": "#846300",
|