@7365admin1/layer-common 3.2.2-staging.171 → 3.2.2-staging.173
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/assets/css/primitives.css +56 -0
- package/components/AccessCardQrTagging.vue +1 -1
- package/components/BulletinBoardForm.vue +1 -1
- package/components/CameraForm.vue +1 -1
- package/components/DocumentManagement.vue +1 -1
- package/components/VehicleManagement.vue +6 -3
- package/components/VisitorSocketPopUp.vue +1 -1
- package/package.json +1 -1
|
@@ -387,6 +387,62 @@
|
|
|
387
387
|
filter: brightness(1.06);
|
|
388
388
|
}
|
|
389
389
|
|
|
390
|
+
/*
|
|
391
|
+
* THE `type="button"` TIE, AND WHY THIS BLOCK EXISTS.
|
|
392
|
+
*
|
|
393
|
+
* Vuetify ships `[type="button"] { color: inherit }`. That is an ATTRIBUTE
|
|
394
|
+
* selector at (0,1,0) - an exact tie with every `.app-btn` rule above, which is
|
|
395
|
+
* also (0,1,0). A tie is broken by INJECTION ORDER, so in a document where
|
|
396
|
+
* Vuetify's stylesheet lands after this one, the background from the rules above
|
|
397
|
+
* still applies and the `color` does not: the button keeps its accent fill and
|
|
398
|
+
* takes the page ink instead of its own.
|
|
399
|
+
*
|
|
400
|
+
* `AppButton` renders `<button :type="type">` with `type` defaulting to
|
|
401
|
+
* "button", so EVERY variant carries the attribute the tie needs.
|
|
402
|
+
*
|
|
403
|
+
* MEASURED, 2026-08-16. Injecting `[type="button"] { color: inherit }` last, on
|
|
404
|
+
* a real primary in the harness:
|
|
405
|
+
*
|
|
406
|
+
* before fill rgb(75,116,196) ink rgb(255,255,255) 4.57:1
|
|
407
|
+
* after fill rgb(75,116,196) ink rgb(25,27,31) 3.77:1
|
|
408
|
+
*
|
|
409
|
+
* `rgb(25,27,31)` is `--text` on the light theme - the button had stopped
|
|
410
|
+
* choosing its own ink at all.
|
|
411
|
+
*
|
|
412
|
+
* Naming the ELEMENT makes each of these (0,1,1), which beats an attribute
|
|
413
|
+
* selector WHATEVER the order. No `!important`: a screen that wants a different
|
|
414
|
+
* label colour must still be able to say so.
|
|
415
|
+
*
|
|
416
|
+
* This is an ADDITIONAL block rather than an edit to the rules above, and
|
|
417
|
+
* deliberately so: `AppButton` renders a `NuxtLink` when `to` is given, which is
|
|
418
|
+
* an `<a>` with no `type` attribute. Putting `button` on the original selectors
|
|
419
|
+
* would have taken the colour away from that path entirely. The values below are
|
|
420
|
+
* copied verbatim from the rules above; if one changes, change both.
|
|
421
|
+
*/
|
|
422
|
+
button.app-btn {
|
|
423
|
+
color: var(--on-accent-strong);
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
button.app-btn--ghost {
|
|
427
|
+
color: var(--text2);
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
button.app-btn--icon {
|
|
431
|
+
color: var(--text2);
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
button.app-btn--row {
|
|
435
|
+
color: var(--muted);
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
button.app-btn--ok {
|
|
439
|
+
color: var(--on-ok);
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
button.app-btn--err {
|
|
443
|
+
color: var(--err);
|
|
444
|
+
}
|
|
445
|
+
|
|
390
446
|
.app-btn:disabled {
|
|
391
447
|
opacity: 0.5;
|
|
392
448
|
cursor: default;
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
density="comfortable"
|
|
92
92
|
true-value="active"
|
|
93
93
|
false-value="inactive"
|
|
94
|
-
:color="camera.status === 'active' ? 'success' : '
|
|
94
|
+
:color="camera.status === 'active' ? 'success' : 'muted'"
|
|
95
95
|
:label="camera.status === 'active' ? 'Active' : 'Inactive'"
|
|
96
96
|
></v-switch>
|
|
97
97
|
</v-col>
|
|
@@ -81,7 +81,10 @@
|
|
|
81
81
|
<span class="d-flex ga-3 align-center"><strong>{{ label }}:</strong></span>
|
|
82
82
|
<!-- <PlateNumberDisplay :plate-numbers="selectedVehicleObject[key]" show-all :default-value="selectedVehicleObject.plateNumber" /> -->
|
|
83
83
|
<v-col cols="12">
|
|
84
|
-
|
|
84
|
+
<!-- `border="sm black"` pinned a hard black edge on BOTH themes. Dropping only
|
|
85
|
+
the colour word keeps the width and lets the edge fall back to
|
|
86
|
+
`--v-border-color`, which is the design's `--border` in each theme. -->
|
|
87
|
+
<v-card flat outlined class="pa-2" border="sm" :loading="loadingPlateNumberDetails">
|
|
85
88
|
<v-data-table :items="selectedVehicleObject[key]" :headers="plateHeaders" hide-default-footer>
|
|
86
89
|
<template #item.status="{ value }">
|
|
87
90
|
<v-chip :color="formatVehicleStatus(value).color" size="x-small" dark>
|
|
@@ -102,13 +105,13 @@
|
|
|
102
105
|
title="Approve" prepend-icon="mdi-check-circle" base-color="success"
|
|
103
106
|
@click="handleApproveVehicle(plateNumberItem as TPlateNumber)" />
|
|
104
107
|
<v-list-item v-if="(plateNumberItem as TPlateNumber)?.status == 'deleted'" title="Restore"
|
|
105
|
-
prepend-icon="mdi-restore" base-color="
|
|
108
|
+
prepend-icon="mdi-restore" base-color="warning"
|
|
106
109
|
@click="handleRestoreVehicle(plateNumberItem as TPlateNumber)" />
|
|
107
110
|
<v-list-item
|
|
108
111
|
v-if="((plateNumberItem as TPlateNumber)?.type === 'whitelist' || (plateNumberItem as TPlateNumber)?.type === 'blocklist') && plateNumberItem?.status == 'active'"
|
|
109
112
|
:title="(plateNumberItem as TPlateNumber)?.type === 'blocklist' ? 'Whitelist' : 'Blocklist'"
|
|
110
113
|
prepend-icon="mdi-swap-horizontal"
|
|
111
|
-
:base-color="(plateNumberItem as TPlateNumber)?.type === 'blocklist' ? 'primary' : '
|
|
114
|
+
:base-color="(plateNumberItem as TPlateNumber)?.type === 'blocklist' ? 'primary' : 'error'"
|
|
112
115
|
@click="handleUpdateType(plateNumberItem as TPlateNumber)" />
|
|
113
116
|
|
|
114
117
|
<v-list-item
|
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.173",
|
|
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.",
|