@7365admin1/layer-common 4.2.2-staging.265 → 4.2.2-staging.266
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/shell.css +33 -0
- package/package.json +1 -1
package/assets/css/shell.css
CHANGED
|
@@ -256,3 +256,36 @@
|
|
|
256
256
|
min-width: 44px;
|
|
257
257
|
}
|
|
258
258
|
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* A toast must never take a click that was meant for the screen behind it.
|
|
262
|
+
*
|
|
263
|
+
* Every snackbar in the product is drawn at `z-index: 100000000` - the shared
|
|
264
|
+
* `Snackbar.vue` and both of `VisitorSocketPopUp.vue`'s - which is far above
|
|
265
|
+
* Vuetify's dialog stack (2000+). So a snackbar sits ON TOP of any dialog that
|
|
266
|
+
* is open, and its wrapper is a solid, `pointer-events: auto` box.
|
|
267
|
+
*
|
|
268
|
+
* Measured on staging, 1 Sep 2026: the realtime "New plate detected" toast
|
|
269
|
+
* landed over the Add Vehicle dialog's Submit button and swallowed the click,
|
|
270
|
+
* so on a busy gate - where a plate read arrives every few seconds - a vehicle
|
|
271
|
+
* could not be added at all. The tester could only finish the create by setting
|
|
272
|
+
* `pointer-events: none` on the snackbar by hand. It is not a vehicle problem:
|
|
273
|
+
* the same shared `Snackbar.vue` is mounted by 57 screens, so any toast that
|
|
274
|
+
* fires while any dialog is open can do this.
|
|
275
|
+
*
|
|
276
|
+
* The z-index is deliberately left alone - a camera-fault warning still has to
|
|
277
|
+
* be SEEN over a dialog. What changes is that only the toast's own controls
|
|
278
|
+
* take clicks; everything else passes through to whatever is underneath, which
|
|
279
|
+
* is exactly the behaviour the tester proved by hand.
|
|
280
|
+
*/
|
|
281
|
+
/* Two class names deep on purpose: Vuetify puts `v-overlay__content`, which
|
|
282
|
+
carries `pointer-events: auto`, on this same element. */
|
|
283
|
+
.v-snackbar .v-snackbar__wrapper {
|
|
284
|
+
pointer-events: none;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.v-snackbar .v-snackbar__wrapper .v-btn,
|
|
288
|
+
.v-snackbar .v-snackbar__wrapper a,
|
|
289
|
+
.v-snackbar .v-snackbar__wrapper [role="button"] {
|
|
290
|
+
pointer-events: auto;
|
|
291
|
+
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@7365admin1/layer-common",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "4.2.2-staging.
|
|
5
|
+
"version": "4.2.2-staging.266",
|
|
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.",
|