@lijian-ui/dsh-file-manager 0.2.2 → 0.2.4

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.
Files changed (101) hide show
  1. package/LICENSE +38 -38
  2. package/README.i18n.yaml +6 -6
  3. package/README.md +66 -66
  4. package/README.zh.md +66 -66
  5. package/cordis.patch.yml +13 -13
  6. package/lib/client.js +27354 -355
  7. package/lib/client.js.map +1 -1
  8. package/lib/index.js +474 -42
  9. package/lib/tsconfig.client.tsbuildinfo +1 -1
  10. package/lib/tsconfig.host.tsbuildinfo +1 -1
  11. package/lib/types/client/file-source.d.ts +10 -0
  12. package/lib/types/client/file-source.d.ts.map +1 -1
  13. package/lib/types/client/fileType.d.ts +19 -4
  14. package/lib/types/client/fileType.d.ts.map +1 -1
  15. package/lib/types/client/index.d.ts +0 -1
  16. package/lib/types/client/index.d.ts.map +1 -1
  17. package/lib/types/client/locales.d.ts +3 -0
  18. package/lib/types/client/locales.d.ts.map +1 -1
  19. package/lib/types/client/mount.d.ts +1 -1
  20. package/lib/types/client/mount.d.ts.map +1 -1
  21. package/lib/types/client/picker/FilePickerModal.d.ts +8 -6
  22. package/lib/types/client/picker/FilePickerModal.d.ts.map +1 -1
  23. package/lib/types/client/preview/PreviewPanel.d.ts +2 -1
  24. package/lib/types/client/preview/PreviewPanel.d.ts.map +1 -1
  25. package/lib/types/client/preview/PreviewToolbar.d.ts +3 -1
  26. package/lib/types/client/preview/PreviewToolbar.d.ts.map +1 -1
  27. package/lib/types/client/preview/content.d.ts +3 -1
  28. package/lib/types/client/preview/content.d.ts.map +1 -1
  29. package/lib/types/client/preview/office.d.ts +23 -0
  30. package/lib/types/client/preview/office.d.ts.map +1 -0
  31. package/lib/types/client/reference.d.ts +23 -10
  32. package/lib/types/client/reference.d.ts.map +1 -1
  33. package/lib/types/client/store.d.ts.map +1 -1
  34. package/lib/types/host/fs-service.d.ts.map +1 -1
  35. package/lib/types/host/office-preview.d.ts +13 -0
  36. package/lib/types/host/office-preview.d.ts.map +1 -0
  37. package/lib/types/host/routes.d.ts.map +1 -1
  38. package/lib/types/index.d.ts.map +1 -1
  39. package/package.json +19 -4
  40. package/src/client/DockItem.tsx +1 -1
  41. package/src/client/FileManagerSettingsCard.tsx +117 -117
  42. package/src/client/PluginSettingsCard.tsx +337 -337
  43. package/src/client/chat/file-ref.ts +144 -144
  44. package/src/client/chat/mermaid-chat.tsx +102 -102
  45. package/src/client/chat/placeholder-hint.tsx +46 -46
  46. package/src/client/components/ExplorerPanel.tsx +534 -534
  47. package/src/client/components/FileIcon.tsx +46 -46
  48. package/src/client/components/ScmPanel.tsx +480 -480
  49. package/src/client/components/a11y.ts +20 -20
  50. package/src/client/components/icons.tsx +274 -274
  51. package/src/client/components/overlay.tsx +225 -225
  52. package/src/client/drag/DragFileInlay.tsx +89 -89
  53. package/src/client/drag/file-drag.ts +67 -67
  54. package/src/client/drag.ts +154 -154
  55. package/src/client/file-source.ts +34 -0
  56. package/src/client/fileType.ts +32 -5
  57. package/src/client/hooks/useResizableSplit.ts +91 -91
  58. package/src/client/hooks/useStore.ts +15 -15
  59. package/src/client/index.ts +45 -17
  60. package/src/client/layout.ts +523 -523
  61. package/src/client/locales.ts +6 -0
  62. package/src/client/maximize.ts +34 -34
  63. package/src/client/mount.tsx +2 -1
  64. package/src/client/persist.ts +194 -194
  65. package/src/client/picker/FilePickerModal.tsx +526 -507
  66. package/src/client/picker/file-picker.ts +86 -86
  67. package/src/client/preview/PreviewPanel.tsx +8 -1
  68. package/src/client/preview/PreviewTabs.tsx +159 -159
  69. package/src/client/preview/PreviewToolbar.tsx +3 -2
  70. package/src/client/preview/content.tsx +7 -2
  71. package/src/client/preview/markdown.ts +351 -351
  72. package/src/client/preview/mermaid.ts +274 -274
  73. package/src/client/preview/office.tsx +321 -0
  74. package/src/client/reference.ts +62 -8
  75. package/src/client/settings-card.module.css +316 -316
  76. package/src/client/settings-form.ts +451 -451
  77. package/src/client/store.ts +17 -12
  78. package/src/client/styles/drag.module.css +30 -30
  79. package/src/client/styles/explorer.module.css +371 -371
  80. package/src/client/styles/picker.module.css +344 -344
  81. package/src/client/styles/preview.module.css +18 -11
  82. package/src/client/styles/scm.module.css +380 -380
  83. package/src/client/styles/tokens.module.css +376 -367
  84. package/src/core/types.ts +162 -162
  85. package/src/host/fs-service.ts +7 -1
  86. package/src/host/gate.ts +73 -73
  87. package/src/host/git-runner.ts +116 -116
  88. package/src/host/git-service.ts +395 -395
  89. package/src/host/loopback.ts +63 -63
  90. package/src/host/office-preview.ts +399 -0
  91. package/src/host/poll-guard.ts +109 -109
  92. package/src/host/routes.ts +72 -1
  93. package/src/index.ts +3 -1
  94. package/src/mount-once.ts +48 -48
  95. package/lib/types/client/chat/AttachedFilesDock.d.ts +0 -51
  96. package/lib/types/client/chat/AttachedFilesDock.d.ts.map +0 -1
  97. package/lib/types/client/floating.d.ts +0 -27
  98. package/lib/types/client/floating.d.ts.map +0 -1
  99. package/lib/types/client/mention.d.ts +0 -44
  100. package/lib/types/client/mention.d.ts.map +0 -1
  101. package/src/client/styles/chip.module.css +0 -38
@@ -1,344 +1,344 @@
1
- /**
2
- * File-picker modal styles — a faithful adaptation of the pi-desktop
3
- * AtFilePicker look (520px modal, 30px rows, 16px checkboxes, chip row),
4
- * mapped onto the panel design-system tokens (--aion-*, dark-aware).
5
- * @module dsh-filemgr/client/styles/picker
6
- */
7
-
8
- .overlay {
9
- position: fixed;
10
- inset: 0;
11
- background: rgba(0, 0, 0, 0.45);
12
- display: flex;
13
- align-items: center;
14
- justify-content: center;
15
- z-index: 9000;
16
- }
17
-
18
- .modal {
19
- width: 520px;
20
- max-width: 92vw;
21
- max-height: 76vh;
22
- display: flex;
23
- flex-direction: column;
24
- background: var(--aion-bg-base);
25
- border: 1px solid var(--aion-border-base);
26
- border-radius: 10px;
27
- box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
28
- overflow: hidden;
29
- font-family: var(--aion-font-sans);
30
- color: var(--aion-text-primary);
31
- }
32
-
33
- .header {
34
- padding: 12px 14px;
35
- border-bottom: 1px solid var(--aion-border-base);
36
- display: flex;
37
- flex-direction: column;
38
- gap: 8px;
39
- flex: none;
40
- }
41
-
42
- .titleRow {
43
- display: flex;
44
- align-items: center;
45
- justify-content: space-between;
46
- }
47
-
48
- .title {
49
- font-size: 14px;
50
- font-weight: 600;
51
- }
52
-
53
- .closeBtn {
54
- display: inline-flex;
55
- align-items: center;
56
- justify-content: center;
57
- width: 26px;
58
- height: 26px;
59
- border: none;
60
- background: transparent;
61
- color: var(--aion-text-secondary);
62
- border-radius: 6px;
63
- cursor: pointer;
64
- }
65
-
66
- .closeBtn:hover {
67
- background: var(--aion-bg-hover);
68
- color: var(--aion-text-primary);
69
- }
70
-
71
- .searchWrap {
72
- display: flex;
73
- align-items: center;
74
- gap: 6px;
75
- background: var(--aion-bg-1);
76
- border: 1px solid var(--aion-border-base);
77
- border-radius: 8px;
78
- padding: 0 8px;
79
- height: 34px;
80
- }
81
-
82
- .searchWrap:focus-within {
83
- border-color: var(--aion-primary);
84
- }
85
-
86
- .searchIcon {
87
- color: var(--aion-text-secondary);
88
- flex-shrink: 0;
89
- display: inline-flex;
90
- }
91
-
92
- .searchInput {
93
- flex: 1;
94
- min-width: 0;
95
- border: none;
96
- background: transparent;
97
- outline: none;
98
- color: var(--aion-text-primary);
99
- font-size: 13px;
100
- font-family: var(--aion-font-sans);
101
- }
102
-
103
- .searchInput::placeholder {
104
- color: var(--aion-text-tertiary);
105
- }
106
-
107
- .searchClear {
108
- display: inline-flex;
109
- align-items: center;
110
- justify-content: center;
111
- width: 20px;
112
- height: 20px;
113
- border: none;
114
- background: transparent;
115
- color: var(--aion-text-secondary);
116
- cursor: pointer;
117
- border-radius: 4px;
118
- flex-shrink: 0;
119
- }
120
-
121
- .searchClear:hover {
122
- background: var(--aion-bg-hover);
123
- }
124
-
125
- .rootPath {
126
- font-size: 11px;
127
- color: var(--aion-text-tertiary);
128
- font-family: var(--aion-font-mono);
129
- white-space: nowrap;
130
- overflow: hidden;
131
- text-overflow: ellipsis;
132
- }
133
-
134
- .body {
135
- flex: 1;
136
- min-height: 0;
137
- overflow-y: auto;
138
- padding: 6px;
139
- display: flex;
140
- flex-direction: column;
141
- gap: 2px;
142
- }
143
-
144
- .row {
145
- display: flex;
146
- align-items: center;
147
- gap: 6px;
148
- height: 30px;
149
- padding-right: 8px;
150
- border-radius: 4px;
151
- cursor: pointer;
152
- user-select: none;
153
- color: var(--aion-text-primary);
154
- }
155
-
156
- .row:hover {
157
- background: var(--aion-bg-hover);
158
- }
159
-
160
- .rowSelected {
161
- background: rgba(22, 93, 255, 0.12);
162
- }
163
-
164
- .rowSelected:hover {
165
- background: rgba(22, 93, 255, 0.18);
166
- }
167
-
168
- .chev {
169
- display: inline-flex;
170
- align-items: center;
171
- justify-content: center;
172
- width: 18px;
173
- height: 18px;
174
- color: var(--aion-text-secondary);
175
- flex-shrink: 0;
176
- border-radius: 4px;
177
- }
178
-
179
- .chev:hover {
180
- color: var(--aion-text-primary);
181
- background: var(--aion-bg-active);
182
- }
183
-
184
- .chevSpacer {
185
- width: 18px;
186
- flex-shrink: 0;
187
- }
188
-
189
- .icon {
190
- display: inline-flex;
191
- align-items: center;
192
- justify-content: center;
193
- color: var(--aion-text-secondary);
194
- flex-shrink: 0;
195
- }
196
-
197
- .name {
198
- flex: 1;
199
- min-width: 0;
200
- font-size: 13px;
201
- white-space: nowrap;
202
- overflow: hidden;
203
- text-overflow: ellipsis;
204
- display: flex;
205
- flex-direction: column;
206
- gap: 1px;
207
- }
208
-
209
- .subpath {
210
- font-size: 10px;
211
- color: var(--aion-text-tertiary);
212
- font-family: var(--aion-font-mono);
213
- }
214
-
215
- .check {
216
- display: inline-flex;
217
- align-items: center;
218
- justify-content: center;
219
- width: 16px;
220
- height: 16px;
221
- border: 1px solid var(--aion-border-base);
222
- border-radius: 4px;
223
- color: #fff;
224
- flex-shrink: 0;
225
- background: transparent;
226
- }
227
-
228
- .checkOn {
229
- background: var(--aion-primary);
230
- border-color: var(--aion-primary);
231
- }
232
-
233
- .note {
234
- font-size: 12px;
235
- color: var(--aion-text-tertiary);
236
- padding: 4px 8px;
237
- }
238
-
239
- .footer {
240
- border-top: 1px solid var(--aion-border-base);
241
- padding: 10px 14px;
242
- display: flex;
243
- flex-direction: column;
244
- gap: 10px;
245
- flex: none;
246
- }
247
-
248
- .chips {
249
- display: flex;
250
- flex-wrap: wrap;
251
- gap: 6px;
252
- min-height: 24px;
253
- align-items: center;
254
- }
255
-
256
- .chipsEmpty {
257
- font-size: 12px;
258
- color: var(--aion-text-tertiary);
259
- }
260
-
261
- .chip {
262
- display: inline-flex;
263
- align-items: center;
264
- gap: 4px;
265
- max-width: 260px;
266
- height: 24px;
267
- padding: 0 4px 0 8px;
268
- background: var(--aion-bg-hover);
269
- border: 1px solid var(--aion-border-base);
270
- border-radius: 999px;
271
- font-size: 12px;
272
- color: var(--aion-text-primary);
273
- font-family: var(--aion-font-mono);
274
- }
275
-
276
- .chip span {
277
- overflow: hidden;
278
- text-overflow: ellipsis;
279
- white-space: nowrap;
280
- }
281
-
282
- .chipX {
283
- display: inline-flex;
284
- align-items: center;
285
- justify-content: center;
286
- width: 16px;
287
- height: 16px;
288
- border: none;
289
- background: transparent;
290
- color: var(--aion-text-secondary);
291
- cursor: pointer;
292
- border-radius: 4px;
293
- flex-shrink: 0;
294
- }
295
-
296
- .chipX:hover {
297
- background: rgba(0, 0, 0, 0.12);
298
- color: var(--aion-text-primary);
299
- }
300
-
301
- .footerActions {
302
- display: flex;
303
- justify-content: flex-end;
304
- gap: 8px;
305
- }
306
-
307
- .cancelBtn {
308
- height: 32px;
309
- padding: 0 16px;
310
- border: 1px solid var(--aion-border-base);
311
- background: transparent;
312
- color: var(--aion-text-secondary);
313
- border-radius: 6px;
314
- font-size: 13px;
315
- cursor: pointer;
316
- font-family: var(--aion-font-sans);
317
- }
318
-
319
- .cancelBtn:hover {
320
- background: var(--aion-bg-hover);
321
- color: var(--aion-text-primary);
322
- }
323
-
324
- .insertBtn {
325
- height: 32px;
326
- padding: 0 16px;
327
- border: none;
328
- background: var(--aion-primary);
329
- color: #fff;
330
- border-radius: 6px;
331
- font-size: 13px;
332
- font-weight: 500;
333
- cursor: pointer;
334
- font-family: var(--aion-font-sans);
335
- }
336
-
337
- .insertBtn:hover:not(:disabled) {
338
- filter: brightness(1.1);
339
- }
340
-
341
- .insertBtn:disabled {
342
- opacity: 0.4;
343
- cursor: default;
344
- }
1
+ /**
2
+ * File-picker modal styles — a faithful adaptation of the pi-desktop
3
+ * AtFilePicker look (520px modal, 30px rows, 16px checkboxes, chip row),
4
+ * mapped onto the panel design-system tokens (--aion-*, dark-aware).
5
+ * @module dsh-filemgr/client/styles/picker
6
+ */
7
+
8
+ .overlay {
9
+ position: fixed;
10
+ inset: 0;
11
+ background: var(--dsw-alias-bg-mask-1);
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ z-index: 9000;
16
+ }
17
+
18
+ .modal {
19
+ width: 520px;
20
+ max-width: 92vw;
21
+ max-height: 76vh;
22
+ display: flex;
23
+ flex-direction: column;
24
+ background: var(--aion-bg-base);
25
+ border: 1px solid var(--aion-border-base);
26
+ border-radius: 10px;
27
+ box-shadow: var(--dsw-shadow-lv3);
28
+ overflow: hidden;
29
+ font-family: var(--aion-font-sans);
30
+ color: var(--aion-text-primary);
31
+ }
32
+
33
+ .header {
34
+ padding: 12px 14px;
35
+ border-bottom: 1px solid var(--aion-border-base);
36
+ display: flex;
37
+ flex-direction: column;
38
+ gap: 8px;
39
+ flex: none;
40
+ }
41
+
42
+ .titleRow {
43
+ display: flex;
44
+ align-items: center;
45
+ justify-content: space-between;
46
+ }
47
+
48
+ .title {
49
+ font-size: 14px;
50
+ font-weight: 600;
51
+ }
52
+
53
+ .closeBtn {
54
+ display: inline-flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ width: 26px;
58
+ height: 26px;
59
+ border: none;
60
+ background: transparent;
61
+ color: var(--aion-text-secondary);
62
+ border-radius: 6px;
63
+ cursor: pointer;
64
+ }
65
+
66
+ .closeBtn:hover {
67
+ background: var(--aion-bg-hover);
68
+ color: var(--aion-text-primary);
69
+ }
70
+
71
+ .searchWrap {
72
+ display: flex;
73
+ align-items: center;
74
+ gap: 6px;
75
+ background: var(--aion-bg-1);
76
+ border: 1px solid var(--aion-border-base);
77
+ border-radius: 8px;
78
+ padding: 0 8px;
79
+ height: 34px;
80
+ }
81
+
82
+ .searchWrap:focus-within {
83
+ border-color: var(--aion-primary);
84
+ }
85
+
86
+ .searchIcon {
87
+ color: var(--aion-text-secondary);
88
+ flex-shrink: 0;
89
+ display: inline-flex;
90
+ }
91
+
92
+ .searchInput {
93
+ flex: 1;
94
+ min-width: 0;
95
+ border: none;
96
+ background: transparent;
97
+ outline: none;
98
+ color: var(--aion-text-primary);
99
+ font-size: 13px;
100
+ font-family: var(--aion-font-sans);
101
+ }
102
+
103
+ .searchInput::placeholder {
104
+ color: var(--aion-text-tertiary);
105
+ }
106
+
107
+ .searchClear {
108
+ display: inline-flex;
109
+ align-items: center;
110
+ justify-content: center;
111
+ width: 20px;
112
+ height: 20px;
113
+ border: none;
114
+ background: transparent;
115
+ color: var(--aion-text-secondary);
116
+ cursor: pointer;
117
+ border-radius: 4px;
118
+ flex-shrink: 0;
119
+ }
120
+
121
+ .searchClear:hover {
122
+ background: var(--aion-bg-hover);
123
+ }
124
+
125
+ .rootPath {
126
+ font-size: 11px;
127
+ color: var(--aion-text-tertiary);
128
+ font-family: var(--aion-font-mono);
129
+ white-space: nowrap;
130
+ overflow: hidden;
131
+ text-overflow: ellipsis;
132
+ }
133
+
134
+ .body {
135
+ flex: 1;
136
+ min-height: 0;
137
+ overflow-y: auto;
138
+ padding: 6px;
139
+ display: flex;
140
+ flex-direction: column;
141
+ gap: 2px;
142
+ }
143
+
144
+ .row {
145
+ display: flex;
146
+ align-items: center;
147
+ gap: 6px;
148
+ height: 30px;
149
+ padding-right: 8px;
150
+ border-radius: 4px;
151
+ cursor: pointer;
152
+ user-select: none;
153
+ color: var(--aion-text-primary);
154
+ }
155
+
156
+ .row:hover {
157
+ background: var(--aion-bg-hover);
158
+ }
159
+
160
+ .rowSelected {
161
+ background: color-mix(in srgb, var(--dsw-alias-state-business-primary) 12%, transparent);
162
+ }
163
+
164
+ .rowSelected:hover {
165
+ background: color-mix(in srgb, var(--dsw-alias-state-business-primary) 18%, transparent);
166
+ }
167
+
168
+ .chev {
169
+ display: inline-flex;
170
+ align-items: center;
171
+ justify-content: center;
172
+ width: 18px;
173
+ height: 18px;
174
+ color: var(--aion-text-secondary);
175
+ flex-shrink: 0;
176
+ border-radius: 4px;
177
+ }
178
+
179
+ .chev:hover {
180
+ color: var(--aion-text-primary);
181
+ background: var(--aion-bg-active);
182
+ }
183
+
184
+ .chevSpacer {
185
+ width: 18px;
186
+ flex-shrink: 0;
187
+ }
188
+
189
+ .icon {
190
+ display: inline-flex;
191
+ align-items: center;
192
+ justify-content: center;
193
+ color: var(--aion-text-secondary);
194
+ flex-shrink: 0;
195
+ }
196
+
197
+ .name {
198
+ flex: 1;
199
+ min-width: 0;
200
+ font-size: 13px;
201
+ white-space: nowrap;
202
+ overflow: hidden;
203
+ text-overflow: ellipsis;
204
+ display: flex;
205
+ flex-direction: column;
206
+ gap: 1px;
207
+ }
208
+
209
+ .subpath {
210
+ font-size: 10px;
211
+ color: var(--aion-text-tertiary);
212
+ font-family: var(--aion-font-mono);
213
+ }
214
+
215
+ .check {
216
+ display: inline-flex;
217
+ align-items: center;
218
+ justify-content: center;
219
+ width: 16px;
220
+ height: 16px;
221
+ border: 1px solid var(--aion-border-base);
222
+ border-radius: 4px;
223
+ color: var(--dsw-alias-label-primary-foreground);
224
+ flex-shrink: 0;
225
+ background: transparent;
226
+ }
227
+
228
+ .checkOn {
229
+ background: var(--aion-primary);
230
+ border-color: var(--aion-primary);
231
+ }
232
+
233
+ .note {
234
+ font-size: 12px;
235
+ color: var(--aion-text-tertiary);
236
+ padding: 4px 8px;
237
+ }
238
+
239
+ .footer {
240
+ border-top: 1px solid var(--aion-border-base);
241
+ padding: 10px 14px;
242
+ display: flex;
243
+ flex-direction: column;
244
+ gap: 10px;
245
+ flex: none;
246
+ }
247
+
248
+ .chips {
249
+ display: flex;
250
+ flex-wrap: wrap;
251
+ gap: 6px;
252
+ min-height: 24px;
253
+ align-items: center;
254
+ }
255
+
256
+ .chipsEmpty {
257
+ font-size: 12px;
258
+ color: var(--aion-text-tertiary);
259
+ }
260
+
261
+ .chip {
262
+ display: inline-flex;
263
+ align-items: center;
264
+ gap: 4px;
265
+ max-width: 260px;
266
+ height: 24px;
267
+ padding: 0 4px 0 8px;
268
+ background: var(--aion-bg-hover);
269
+ border: 1px solid var(--aion-border-base);
270
+ border-radius: 999px;
271
+ font-size: 12px;
272
+ color: var(--aion-text-primary);
273
+ font-family: var(--aion-font-mono);
274
+ }
275
+
276
+ .chip span {
277
+ overflow: hidden;
278
+ text-overflow: ellipsis;
279
+ white-space: nowrap;
280
+ }
281
+
282
+ .chipX {
283
+ display: inline-flex;
284
+ align-items: center;
285
+ justify-content: center;
286
+ width: 16px;
287
+ height: 16px;
288
+ border: none;
289
+ background: transparent;
290
+ color: var(--aion-text-secondary);
291
+ cursor: pointer;
292
+ border-radius: 4px;
293
+ flex-shrink: 0;
294
+ }
295
+
296
+ .chipX:hover {
297
+ background: var(--dsw-alias-interactive-bg-hover);
298
+ color: var(--aion-text-primary);
299
+ }
300
+
301
+ .footerActions {
302
+ display: flex;
303
+ justify-content: flex-end;
304
+ gap: 8px;
305
+ }
306
+
307
+ .cancelBtn {
308
+ height: 32px;
309
+ padding: 0 16px;
310
+ border: 1px solid var(--aion-border-base);
311
+ background: transparent;
312
+ color: var(--aion-text-secondary);
313
+ border-radius: 6px;
314
+ font-size: 13px;
315
+ cursor: pointer;
316
+ font-family: var(--aion-font-sans);
317
+ }
318
+
319
+ .cancelBtn:hover {
320
+ background: var(--aion-bg-hover);
321
+ color: var(--aion-text-primary);
322
+ }
323
+
324
+ .insertBtn {
325
+ height: 32px;
326
+ padding: 0 16px;
327
+ border: none;
328
+ background: var(--dsw-alias-button-primary-fill);
329
+ color: var(--dsw-alias-label-primary-foreground);
330
+ border-radius: 6px;
331
+ font-size: 13px;
332
+ font-weight: 500;
333
+ cursor: pointer;
334
+ font-family: var(--aion-font-sans);
335
+ }
336
+
337
+ .insertBtn:hover:not(:disabled) {
338
+ background: var(--dsw-alias-button-primary-hover);
339
+ }
340
+
341
+ .insertBtn:disabled {
342
+ opacity: 0.4;
343
+ cursor: default;
344
+ }