@7365admin1/layer-common 3.2.2-staging.151 → 3.2.2-staging.153

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.
@@ -58,12 +58,19 @@ const chatSkeletons = ref([
58
58
  overflow-y: auto;
59
59
  }
60
60
 
61
+ /*
62
+ * `background-color: white` used to sit here and never applied: the footer
63
+ * carries `color="background"`, and Vuetify's `.bg-background` sets the
64
+ * background with `!important`. It is deleted rather than out-specified - the
65
+ * theme colour is the one that should win, and a literal white would have been
66
+ * wrong in the dark theme anyway. The border was a literal `#ddd` for the same
67
+ * reason and is now the shared rule colour.
68
+ */
61
69
  .chat-footer {
62
70
  position: sticky;
63
71
  bottom: 0;
64
72
  width: 100%;
65
- background-color: white;
66
- border-top: 1px solid #ddd;
73
+ border-top: 1px solid var(--border);
67
74
  display: flex;
68
75
  justify-content: center;
69
76
  align-items: center;
@@ -855,20 +855,18 @@ onUnmounted(() => {
855
855
  /* ===== TABLE ===== */
856
856
  .table-scroll { overflow-x: auto; }
857
857
  table { width: 100%; border-collapse: collapse; font-size: 13px; }
858
+ /* `.table-card thead th` / `tbody td` in screens.css state the design's table
859
+ header and cell with `!important`; the padding, font, colour and background
860
+ this block used to set never applied. Only what still applies is kept. */
858
861
  thead th {
859
- padding: 10px 16px;
860
862
  text-align: left;
861
- font-weight: 600;
862
- font-size: 13px;
863
- color: var(--text2);
864
863
  border-bottom: 1px solid var(--border);
865
864
  white-space: nowrap;
866
- background: var(--card);
867
865
  }
868
866
  tbody tr { border-bottom: 1px solid var(--hover); transition: background 0.1s; }
869
867
  tbody tr:last-child { border-bottom: none; }
870
868
  tbody tr:hover { background: var(--thead); }
871
- tbody td { padding: 14px 16px; vertical-align: middle; }
869
+ tbody td { vertical-align: middle; }
872
870
 
873
871
  .empty { text-align: center; color: var(--muted); padding: 48px 0 !important; }
874
872
  .td-name { font-weight: 500; color: var(--text); }
@@ -106,6 +106,5 @@ defineExpose({
106
106
  .hidden-input {
107
107
  opacity: 0;
108
108
  height: 0;
109
- width: 1px;
110
109
  }
111
110
  </style>
@@ -197,6 +197,5 @@ defineExpose({
197
197
  .hidden-input {
198
198
  opacity: 0;
199
199
  height: 0;
200
- width: 1px;
201
200
  }
202
201
  </style>
@@ -1,12 +1,11 @@
1
1
  <template>
2
- <v-chip
3
- :color="isActive ? 'success' : 'grey'"
4
- size="small"
5
- variant="tonal"
6
- class="font-weight-medium"
7
- >
8
- {{ isActive ? 'Active' : 'Deactive' }}
9
- </v-chip>
2
+ <!--
3
+ The design's status pill, not Vuetify's tonal chip. The word is passed
4
+ through so `utils/status.ts` picks the tone: "Active" -> ok, and "Deactive"
5
+ is not a word the map names, so it comes out neutral - the same two colours
6
+ the old `success` / `grey` chip drew, now from the shared tokens.
7
+ -->
8
+ <StatusChip :status="isActive ? 'Active' : 'Deactive'" />
10
9
  </template>
11
10
 
12
11
  <script setup lang="ts">
@@ -4,13 +4,16 @@
4
4
  {{ formatted }}
5
5
  </span>
6
6
 
7
- <v-chip
7
+ <!--
8
+ The overflow count is a tag, not a status, so it takes the design's
9
+ dotless neutral chip rather than Vuetify's default grey one.
10
+ -->
11
+ <StatusChip
8
12
  v-if="extraCount > 0 && !showAll"
9
- density="comfortable"
10
- size="small"
11
- >
12
- + {{ extraCount }}
13
- </v-chip>
13
+ tone="neutral"
14
+ :dot="false"
15
+ :label="`+ ${extraCount}`"
16
+ />
14
17
  </div>
15
18
  </template>
16
19
 
@@ -162,10 +162,6 @@ watch(
162
162
  * same tokenised header, cell and hover treatment as every other table in the
163
163
  * product, which measures 4.77:1 light / 4.71:1 dark.
164
164
  */
165
- .table-v3 :deep(tbody td) {
166
- height: 54px;
167
- }
168
-
169
165
  .table-v3__footer {
170
166
  border-top: 1px solid var(--border);
171
167
  border-bottom: 0;
@@ -1,8 +1,10 @@
1
1
  <template>
2
2
  <div>
3
- <VCard class="">
3
+ <!-- AppCard, not VCard: the design's 14px radius and 1px rule, without
4
+ Vuetify's own elevation and 4px corner fighting the class for it. -->
5
+ <AppCard>
4
6
  <VuetifyTiptap v-model="content" />
5
- </VCard>
7
+ </AppCard>
6
8
  </div>
7
9
  </template>
8
10
 
@@ -39,35 +41,37 @@ const updateContent = () => {
39
41
  </script>
40
42
 
41
43
  <style scoped>
42
- /deep/ .vuetify-pro-tiptap-editor__content {
44
+ /*
45
+ * The rich-text tables. Every colour here used to be a literal - #333 borders,
46
+ * #fff and #f8f8f8 cells, #f0f0f0 headers, #000 header text, #e6f3ff hover -
47
+ * so an editor opened in the dark theme drew a white table with black text on
48
+ * a dark page. They are the same tokens every other table in the product uses,
49
+ * so the editor content now follows the theme it is opened in.
50
+ *
51
+ * The selectors were also written twice, once with :deep() and again with the
52
+ * deprecated /deep/, matching the same two roots. One copy is enough.
53
+ */
54
+ :deep(.vuetify-pro-tiptap-editor__content) {
43
55
  padding: 15px;
44
56
  }
45
57
 
46
- /* Table styles with strong visible borders */
47
58
  :deep(.vuetify-pro-tiptap-editor__content table),
48
- :deep(.ProseMirror table),
49
- /deep/ .vuetify-pro-tiptap-editor__content table,
50
- /deep/ .ProseMirror table {
59
+ :deep(.ProseMirror table) {
51
60
  border-collapse: collapse;
52
61
  border-spacing: 0;
53
- border: 2px solid #333333 !important;
62
+ border: 2px solid var(--border) !important;
54
63
  width: 100%;
55
64
  margin: 16px 0;
56
- background-color: #ffffff;
65
+ background-color: var(--card);
57
66
  display: table !important;
58
- font-size: 14px;
67
+ font-size: var(--fs-cell);
59
68
  }
60
69
 
61
- /* Cell borders - very visible */
62
70
  :deep(.vuetify-pro-tiptap-editor__content table th),
63
71
  :deep(.vuetify-pro-tiptap-editor__content table td),
64
72
  :deep(.ProseMirror table th),
65
- :deep(.ProseMirror table td),
66
- /deep/ .vuetify-pro-tiptap-editor__content table th,
67
- /deep/ .vuetify-pro-tiptap-editor__content table td,
68
- /deep/ .ProseMirror table th,
69
- /deep/ .ProseMirror table td {
70
- border: 1px solid #333333 !important;
73
+ :deep(.ProseMirror table td) {
74
+ border: 1px solid var(--border) !important;
71
75
  padding: 8px 12px;
72
76
  text-align: left;
73
77
  vertical-align: top;
@@ -75,38 +79,27 @@ const updateContent = () => {
75
79
  box-sizing: border-box;
76
80
  }
77
81
 
78
- /* Header styling */
79
82
  :deep(.vuetify-pro-tiptap-editor__content table th),
80
- :deep(.ProseMirror table th),
81
- /deep/ .vuetify-pro-tiptap-editor__content table th,
82
- /deep/ .ProseMirror table th {
83
- font-weight: 600;
84
- background-color: #f0f0f0;
85
- color: #000000;
86
- border-bottom: 2px solid #333333 !important;
83
+ :deep(.ProseMirror table th) {
84
+ font-weight: var(--fw-table-head);
85
+ background-color: var(--thead);
86
+ color: var(--text);
87
+ border-bottom: 2px solid var(--border) !important;
87
88
  }
88
89
 
89
- /* Regular cells */
90
90
  :deep(.vuetify-pro-tiptap-editor__content table td),
91
- :deep(.ProseMirror table td),
92
- /deep/ .vuetify-pro-tiptap-editor__content table td,
93
- /deep/ .ProseMirror table td {
94
- background-color: #ffffff;
91
+ :deep(.ProseMirror table td) {
92
+ background-color: var(--card);
93
+ color: var(--text);
95
94
  }
96
95
 
97
- /* Alternating row colors */
98
96
  :deep(.vuetify-pro-tiptap-editor__content table tr:nth-child(2n) td),
99
- :deep(.ProseMirror table tr:nth-child(2n) td),
100
- /deep/ .vuetify-pro-tiptap-editor__content table tr:nth-child(2n) td,
101
- /deep/ .ProseMirror table tr:nth-child(2n) td {
102
- background-color: #f8f8f8;
97
+ :deep(.ProseMirror table tr:nth-child(2n) td) {
98
+ background-color: var(--thead);
103
99
  }
104
100
 
105
- /* Hover effects */
106
101
  :deep(.vuetify-pro-tiptap-editor__content table tr:hover td),
107
- :deep(.ProseMirror table tr:hover td),
108
- /deep/ .vuetify-pro-tiptap-editor__content table tr:hover td,
109
- /deep/ .ProseMirror table tr:hover td {
110
- background-color: #e6f3ff !important;
102
+ :deep(.ProseMirror table tr:hover td) {
103
+ background-color: var(--hover) !important;
111
104
  }
112
105
  </style>
@@ -1,6 +1,9 @@
1
1
  <template>
2
2
  <div>
3
- <VCard class="mx-auto">
3
+ <!-- AppCard, not VCard: the design's 14px radius and 1px rule, without
4
+ Vuetify's own elevation and 4px corner fighting the class for it.
5
+ Same swap as TiptapEditor, which wraps the same editor. -->
6
+ <AppCard class="mx-auto">
4
7
  <VuetifyTiptap
5
8
  v-model="content"
6
9
  markdown-theme="github"
@@ -9,7 +12,7 @@
9
12
  :maxWidth="maxWidth"
10
13
  :disabled="isViewMode"
11
14
  />
12
- </VCard>
15
+ </AppCard>
13
16
  </div>
14
17
  </template>
15
18
 
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.151",
5
+ "version": "3.2.2-staging.153",
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.",