@7365admin1/layer-common 3.2.2-staging.170 → 3.2.2-staging.172

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.
@@ -599,6 +599,26 @@ select.app-field__input {
599
599
  opacity: 0.55;
600
600
  }
601
601
 
602
+ /*
603
+ * The SAME step for the typed field, which never had one. `AppField` and
604
+ * `AppDateField` both take a `disabled` prop and pass it to the native
605
+ * `<input>` - and `AppField`'s prop doc says disabled "also greys the box" -
606
+ * but `.app-field` pins `background: var(--card)` and `.app-field__input` pins
607
+ * `color: var(--text)`, which overrides the greying a browser gives a disabled
608
+ * input for free. Measured 2026-08-16 on `AccessManagement`: enabled and
609
+ * disabled came back identical on background, colour, border, opacity and
610
+ * filter, on BOTH themes. The field was genuinely dead and read as live.
611
+ *
612
+ * Keyed off the input's own `:disabled` rather than a new modifier class, so
613
+ * it covers `AppField`, `AppDateField` and the native path of `AppSelect`
614
+ * without three templates having to remember to add it. 0.55 is
615
+ * `.app-select--disabled`'s number, not a second one.
616
+ */
617
+ .app-field:has(.app-field__input:disabled) {
618
+ cursor: default;
619
+ opacity: 0.55;
620
+ }
621
+
602
622
  .app-select__values {
603
623
  display: flex;
604
624
  align-items: center;
@@ -434,11 +434,26 @@
434
434
  * plain `<button>` carries, `.v-btn--disabled` is what Vuetify adds, and a
435
435
  * rule that matched only one of them would go quiet the moment the other path
436
436
  * was used.
437
+ *
438
+ * `.screen-icon-btn` was MISSED when this rule was written, and it has exactly
439
+ * the same shape: `.v-btn.screen-icon-btn` is (0,2,0) and sets `background:
440
+ * var(--card)` and `color: var(--text2)`, so it out-specifies Vuetify the same
441
+ * way. Measured 2026-08-16 on `AreaMain`: enabled and disabled came back
442
+ * identical on background, colour, border, opacity and filter, on BOTH themes.
443
+ * Its `:disabled` call sites are the promo-code tier rows in the admin app,
444
+ * where the last remaining tier's delete button is gated off and looked live.
445
+ *
446
+ * `.screen-modal__close` and `.screen-modal` were checked at the same time and
447
+ * are NOT affected - both already read as distinct when disabled, because the
448
+ * close button's background is `transparent` and a disabled `v-card` dims its
449
+ * children rather than itself. Neither is listed here.
437
450
  */
438
451
  .v-btn.screen-btn-primary:disabled,
439
452
  .v-btn.screen-btn-primary.v-btn--disabled,
440
453
  .v-btn.screen-btn-ghost:disabled,
441
- .v-btn.screen-btn-ghost.v-btn--disabled {
454
+ .v-btn.screen-btn-ghost.v-btn--disabled,
455
+ .v-btn.screen-icon-btn:disabled,
456
+ .v-btn.screen-icon-btn.v-btn--disabled {
442
457
  opacity: 0.5;
443
458
  }
444
459
 
@@ -120,7 +120,7 @@
120
120
 
121
121
  <template #item.qrTag="{ item }">
122
122
  <v-icon
123
- :color="item.qrTag ? 'success' : 'grey-lighten-1'"
123
+ :color="item.qrTag ? 'success' : 'muted'"
124
124
  size="22"
125
125
  >
126
126
  {{ item.qrTag ? "mdi-check-circle" : "mdi-circle-outline" }}
@@ -37,7 +37,7 @@
37
37
  <template v-slot:prepend>
38
38
  <v-checkbox-btn
39
39
  :color="
40
- selectedSomeRecipients ? 'indigo-darken-4' : undefined
40
+ selectedSomeRecipients ? 'primary-button' : undefined
41
41
  "
42
42
  :indeterminate="
43
43
  selectedSomeRecipients && !selectedAllRecipients
@@ -91,7 +91,7 @@
91
91
  density="comfortable"
92
92
  true-value="active"
93
93
  false-value="inactive"
94
- :color="camera.status === 'active' ? 'success' : 'grey'"
94
+ :color="camera.status === 'active' ? 'success' : 'muted'"
95
95
  :label="camera.status === 'active' ? 'Active' : 'Inactive'"
96
96
  ></v-switch>
97
97
  </v-col>
@@ -123,7 +123,7 @@
123
123
  <v-icon
124
124
  size="18"
125
125
  :color="
126
- isFolderItem(item._raw) ? 'amber-darken-2' : 'grey-darken-2'
126
+ isFolderItem(item._raw) ? 'warning' : 'muted'
127
127
  "
128
128
  >
129
129
  {{
@@ -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
- <v-card flat outlined class="pa-2" border="sm black" :loading="loadingPlateNumberDetails">
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="orange"
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' : 'red'"
114
+ :base-color="(plateNumberItem as TPlateNumber)?.type === 'blocklist' ? 'primary' : 'error'"
112
115
  @click="handleUpdateType(plateNumberItem as TPlateNumber)" />
113
116
 
114
117
  <v-list-item
@@ -49,7 +49,7 @@
49
49
  v-if="snackBarMessage.isUnregistered"
50
50
  rounded="md"
51
51
  variant="text"
52
- color="baseButton"
52
+ color="primary"
53
53
  class="text-truncate text-decoration-underline px-0"
54
54
  @click="goToUnregistered"
55
55
  >
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.170",
5
+ "version": "3.2.2-staging.172",
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.",