@7365admin1/layer-common 3.2.2-staging.130 → 3.2.2-staging.132
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.
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
[class*="text-overline"],
|
|
78
78
|
.v-badge__badge,
|
|
79
79
|
.v-kbd
|
|
80
|
-
),
|
|
80
|
+
):not(.material-symbols-outlined),
|
|
81
81
|
.v-overlay-container
|
|
82
82
|
:is(
|
|
83
83
|
[class*="text-h"],
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
[class*="text-overline"],
|
|
89
89
|
.v-badge__badge,
|
|
90
90
|
.v-kbd
|
|
91
|
-
) {
|
|
91
|
+
):not(.material-symbols-outlined) {
|
|
92
92
|
font-family: var(--font-sans, Roboto, sans-serif);
|
|
93
93
|
}
|
|
94
94
|
|
|
@@ -124,6 +124,23 @@
|
|
|
124
124
|
-webkit-font-smoothing: antialiased;
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
+
/**
|
|
128
|
+
* The icon face, re-asserted at (0,3,0).
|
|
129
|
+
*
|
|
130
|
+
* A `<v-icon class="text-h6">` carries BOTH the icon class and a typography
|
|
131
|
+
* utility, so the re-point above (a descendant of `.v-application`, (0,2,0))
|
|
132
|
+
* would otherwise beat the single-class rule (0,1,0) and the ligature would
|
|
133
|
+
* fall back to Manrope - drawing the literal word "local_shipping" instead of
|
|
134
|
+
* a truck. The `:not()` guard above stops that here; this block stops it
|
|
135
|
+
* anywhere an app ships its own copy of the re-point, whatever the stylesheet
|
|
136
|
+
* order. Repeating the class is how the weight is raised - no `!important`,
|
|
137
|
+
* same precedent as the re-point itself, so a screen can still override.
|
|
138
|
+
*/
|
|
139
|
+
.v-application .material-symbols-outlined.material-symbols-outlined,
|
|
140
|
+
.v-overlay-container .material-symbols-outlined.material-symbols-outlined {
|
|
141
|
+
font-family: "Material Symbols Outlined";
|
|
142
|
+
}
|
|
143
|
+
|
|
127
144
|
/* mdi's spin modifier, kept working now the glyph is not a `:before`.
|
|
128
145
|
`@keyframes mdi-spin` still comes from `@mdi/font`, which stays loaded so
|
|
129
146
|
that any icon name without a mapping keeps drawing its old glyph. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<v-btn v-if="!prop.iconOnly" text="Close" class="
|
|
3
|
-
<v-btn v-else icon="mdi-close" size="small" class="
|
|
2
|
+
<v-btn v-if="!prop.iconOnly" text="Close" variant="flat" class="screen-btn-ghost" :height="prop.height" @click="emit('click')" />
|
|
3
|
+
<v-btn v-else icon="mdi-close" variant="flat" size="small" class="screen-modal__close" :height="prop.height" @click="emit('click')" />
|
|
4
4
|
</template>
|
|
5
5
|
|
|
6
6
|
<script setup lang="ts">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<v-card flat
|
|
2
|
+
<v-card flat class="w-100 member-summary">
|
|
3
3
|
<v-card-text>
|
|
4
4
|
<v-row no-gutters>
|
|
5
5
|
<v-col cols="10" no-gutters>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
</v-row>
|
|
14
14
|
</v-col>
|
|
15
15
|
<v-col cols="2" class="d-flex align-center justify-center">
|
|
16
|
-
<v-btn icon="mdi-trash-outline"
|
|
16
|
+
<v-btn class="member-summary__remove" icon="mdi-trash-outline" variant="text" size="small" @click="emit('remove')" />
|
|
17
17
|
</v-col>
|
|
18
18
|
</v-row>
|
|
19
19
|
</v-card-text>
|
|
@@ -45,4 +45,29 @@ const displayFields: Record<keyof TMemberInfo, string> = {
|
|
|
45
45
|
|
|
46
46
|
</script>
|
|
47
47
|
|
|
48
|
-
<style scoped
|
|
48
|
+
<style scoped>
|
|
49
|
+
/*
|
|
50
|
+
* Was `border="sm grey-lighten-2" color="grey-lighten-3"` - two LITERAL light
|
|
51
|
+
* greys, i.e. a pale slab with a pale frame drawn straight across the dark
|
|
52
|
+
* theme. The design draws an added-member row as an inset on the card it sits
|
|
53
|
+
* in, so it takes `--hover` (the neutral wash the chips and avatars use) on
|
|
54
|
+
* `--border`, at the inner radius.
|
|
55
|
+
*
|
|
56
|
+
* The remove action was `color="red"` - not a token, and a solid red circle the
|
|
57
|
+
* design never draws. It is the `--err` glyph the rest of the layer uses.
|
|
58
|
+
*/
|
|
59
|
+
.member-summary {
|
|
60
|
+
background: var(--hover);
|
|
61
|
+
border: 1px solid var(--border);
|
|
62
|
+
border-radius: var(--r-inner);
|
|
63
|
+
color: var(--text);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.member-summary :deep(.v-card-text) {
|
|
67
|
+
font-size: var(--fs-cell);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.member-summary__remove {
|
|
71
|
+
color: var(--err);
|
|
72
|
+
}
|
|
73
|
+
</style>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<v-card flat
|
|
2
|
+
<v-card flat class="screen-card toggle-card">
|
|
3
3
|
<v-card-text class="d-flex justify-space-between align-center py-0">
|
|
4
|
-
<p>{{ label }}</p>
|
|
4
|
+
<p class="toggle-card__label">{{ label }}</p>
|
|
5
5
|
<v-switch v-model="toggle" :color="toggleColor" hide-details />
|
|
6
6
|
</v-card-text>
|
|
7
7
|
</v-card>
|
|
@@ -22,4 +22,16 @@ defineProps({
|
|
|
22
22
|
const toggle = defineModel({default: false})
|
|
23
23
|
</script>
|
|
24
24
|
|
|
25
|
-
<style scoped
|
|
25
|
+
<style scoped>
|
|
26
|
+
/*
|
|
27
|
+
* Was `border="md black"` - a 2px LITERAL black frame, which is a black box
|
|
28
|
+
* drawn across the dark theme. The design draws a settings row as the ordinary
|
|
29
|
+
* 1px card, so this is `.screen-card` plus the design's cell type on the label
|
|
30
|
+
* (Vuetify's `<p>` inherits the body size, not the design's).
|
|
31
|
+
*/
|
|
32
|
+
.toggle-card__label {
|
|
33
|
+
font-size: var(--fs-cell);
|
|
34
|
+
color: var(--text);
|
|
35
|
+
margin: 0;
|
|
36
|
+
}
|
|
37
|
+
</style>
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"
|
|
11
11
|
:disabled="readOnly"
|
|
12
12
|
size="small"
|
|
13
|
-
class="me-2"
|
|
13
|
+
class="me-2 checklist-action"
|
|
14
14
|
icon
|
|
15
15
|
@click.stop="handleReject"
|
|
16
16
|
>
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"
|
|
28
28
|
:disabled="readOnly"
|
|
29
29
|
size="small"
|
|
30
|
+
class="checklist-action"
|
|
30
31
|
icon
|
|
31
32
|
@click.stop="handleApprove"
|
|
32
33
|
>
|
|
@@ -52,3 +53,26 @@ function handleApprove() {
|
|
|
52
53
|
emit("approve", props.item);
|
|
53
54
|
}
|
|
54
55
|
</script>
|
|
56
|
+
|
|
57
|
+
<style scoped>
|
|
58
|
+
/*
|
|
59
|
+
* The reject/approve pair is the design's bordered icon square (`.screen-icon-btn`
|
|
60
|
+
* geometry) rather than Vuetify's pill: 36px, `--r-inner`, `--border`.
|
|
61
|
+
*
|
|
62
|
+
* `color="error"` / `color="success"` are LEFT ALONE - unlike `--success`/`--error`,
|
|
63
|
+
* which are not CSS tokens, Vuetify's `success`/`error` theme names are mapped in
|
|
64
|
+
* `utils/theme.ts` to the design's `ok`/`err`, so the chosen state already paints
|
|
65
|
+
* the right tone. Only the un-chosen (outlined) state was factory Vuetify.
|
|
66
|
+
*/
|
|
67
|
+
.checklist-action.v-btn {
|
|
68
|
+
width: var(--icon-btn);
|
|
69
|
+
height: var(--icon-btn);
|
|
70
|
+
min-width: var(--icon-btn);
|
|
71
|
+
border-radius: var(--r-inner);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.checklist-action.v-btn--variant-outlined {
|
|
75
|
+
border: 1px solid var(--border);
|
|
76
|
+
color: var(--text2);
|
|
77
|
+
}
|
|
78
|
+
</style>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="arrow-navigation">
|
|
3
|
-
<v-btn icon="mdi-chevron-left" variant="text" density="comfortable" :disabled="page <= 1" @click="decrement" />
|
|
3
|
+
<v-btn class="pager-arrow" icon="mdi-chevron-left" variant="text" density="comfortable" :disabled="page <= 1" @click="decrement" />
|
|
4
4
|
<v-btn
|
|
5
|
-
icon="mdi-chevron-right" variant="text" density="comfortable" :disabled="page >= props.length"
|
|
5
|
+
class="pager-arrow" icon="mdi-chevron-right" variant="text" density="comfortable" :disabled="page >= props.length"
|
|
6
6
|
@click="increment" />
|
|
7
7
|
</div>
|
|
8
8
|
</template>
|
|
@@ -28,4 +28,28 @@ const props = defineProps({
|
|
|
28
28
|
default: 0
|
|
29
29
|
}
|
|
30
30
|
});
|
|
31
|
-
</script>
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
<style scoped>
|
|
34
|
+
/*
|
|
35
|
+
* The pager sits in EVERY converted table's toolbar (TableMain's `right`
|
|
36
|
+
* slot), so it was the last piece of factory Vuetify on an otherwise
|
|
37
|
+
* on-design card: Vuetify's own `on-surface` ink and its comfortable-density
|
|
38
|
+
* box. The design draws a toolbar arrow borderless - so this is ink, size and
|
|
39
|
+
* hover only, no border and no fill invented.
|
|
40
|
+
*/
|
|
41
|
+
.arrow-navigation :deep(.pager-arrow) {
|
|
42
|
+
width: var(--icon-btn);
|
|
43
|
+
height: var(--icon-btn);
|
|
44
|
+
border-radius: var(--r-inner);
|
|
45
|
+
color: var(--text2);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.arrow-navigation :deep(.pager-arrow:hover) {
|
|
49
|
+
background: var(--hover);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.arrow-navigation :deep(.pager-arrow.v-btn--disabled) {
|
|
53
|
+
color: var(--muted);
|
|
54
|
+
}
|
|
55
|
+
</style>
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@7365admin1/layer-common",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "3.2.2-staging.
|
|
5
|
+
"version": "3.2.2-staging.132",
|
|
6
6
|
"author": "7365admin1",
|
|
7
7
|
"main": "./nuxt.config.ts",
|
|
8
8
|
"//files": "What a consumer extending this layer actually loads. Without this npm ships the whole working tree - the changesets, the CI workflows, the render harness in tools/ and any scratch directory that happened to exist at publish time. Nuxt resolves a layer by directory, so every runtime directory below has to stay listed; adding a new top-level runtime directory means adding it here too.",
|