@goodandready/dsh-dsml-artifact-guard 0.2.0 → 0.2.1
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/README.md +6 -0
- package/README.ru.md +6 -0
- package/README.zh.md +6 -0
- package/lib/client.js +43 -43
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -183,3 +183,9 @@ MIT © [GooDAnDReaDY](https://github.com/GooDAnDReaDY)
|
|
|
183
183
|
- #19: Sanitized repository from internal AGENTS.md and updated .gitignore.
|
|
184
184
|
- #20: Optimized npm package allowlist, eliminating duplicate READMEs and reducing package size by ~40%.
|
|
185
185
|
- #21: Removed legacy build archives from source tree.
|
|
186
|
+
|
|
187
|
+
## Changed in v0.2.1
|
|
188
|
+
|
|
189
|
+
- #26: Theme tokenization for settings card in `lib/client.js`: eliminated all 42 hardcoded hex/rgba color literals, migrating to canonical `--dsw-alias-...` CSS custom properties and `color-mix()` for flawless Dark and Light mode rendering.
|
|
190
|
+
- #26: Added automated theme regression test guard (`test/theme.test.js`).
|
|
191
|
+
- #26: Fixed `.gitignore` rule for `AGENTS.md` and untracked `package-lock.json` for pure zero-dependency repository hygiene.
|
package/README.ru.md
CHANGED
|
@@ -183,3 +183,9 @@ MIT © [GooDAnDReaDY](https://github.com/GooDAnDReaDY)
|
|
|
183
183
|
- #19: Санитайзинг репозитория от внутреннего AGENTS.md и обновление .gitignore.
|
|
184
184
|
- #20: Оптимизация состава npm-пакета, удаление дубликатов README и сокращение размера пакета на ~40%.
|
|
185
185
|
- #21: Очистка дерева исходников от архивных пакетов .tgz.
|
|
186
|
+
|
|
187
|
+
## Изменения в v0.2.1
|
|
188
|
+
|
|
189
|
+
- #26: Полная токенизация темы для карточки настроек в `lib/client.js`: устранены все 42 вхождения захардкоженных hex/rgba цветов с переходом на канонические переменные ядра `--dsw-alias-...` и `color-mix()` для идеальной читаемости в тёмной и светлой темах.
|
|
190
|
+
- #26: Добавлен автоматический тест-страж соответствия теме (`test/theme.test.js`).
|
|
191
|
+
- #26: Исправлено правило игнорирования `AGENTS.md` в `.gitignore` и снято отслеживание с `package-lock.json` в рамках стандарта нулевых зависимостей.
|
package/README.zh.md
CHANGED
|
@@ -183,3 +183,9 @@ MIT © [GooDAnDReaDY](https://github.com/GooDAnDReaDY)
|
|
|
183
183
|
- #19: 清理公开代码仓库中的内部 AGENTS.md 规则文件并更新 .gitignore。
|
|
184
184
|
- #20: 优化 npm 发布包白名单,移除冗余 README 副本,安装包体积缩减约 40%FD。
|
|
185
185
|
- #21: 清理源代码目录中的旧版本 .tgz 打包归档。
|
|
186
|
+
|
|
187
|
+
## v0.2.1 更新日志
|
|
188
|
+
|
|
189
|
+
- #26:配置面板全量主题语义化规范(`lib/client.js`):彻底清除全部 42 处硬编码 hex/rgba 颜色,全面接入 `--dsw-alias-...` 核心变量与 `color-mix()`,保障深色与浅色主题下的极致对比度与可读性。
|
|
190
|
+
- #26:新增前端主题规范自动化回归防护测试(`test/theme.test.js`)。
|
|
191
|
+
- #26:修复 `.gitignore` 对 `AGENTS.md` 的忽略匹配,移除 `package-lock.json` 跟踪以践行极致零依赖标准。
|
package/lib/client.js
CHANGED
|
@@ -246,8 +246,8 @@ window.__ModuleLoader__.load({
|
|
|
246
246
|
className: 'dsh-dsml-artifact-guard-card',
|
|
247
247
|
style: {
|
|
248
248
|
borderRadius: 12,
|
|
249
|
-
border: '1px solid var(--dsw-alias-border-l2
|
|
250
|
-
background: 'var(--dsw-alias-bg-card,
|
|
249
|
+
border: '1px solid var(--dsw-alias-border-l2)',
|
|
250
|
+
background: 'var(--dsw-alias-bg-card, var(--dsw-alias-bg-layer-3))',
|
|
251
251
|
overflow: 'hidden',
|
|
252
252
|
marginBottom: 12,
|
|
253
253
|
},
|
|
@@ -271,7 +271,7 @@ window.__ModuleLoader__.load({
|
|
|
271
271
|
style: {
|
|
272
272
|
fontSize: 15,
|
|
273
273
|
fontWeight: 600,
|
|
274
|
-
color: 'var(--dsw-alias-label-primary
|
|
274
|
+
color: 'var(--dsw-alias-label-primary)',
|
|
275
275
|
},
|
|
276
276
|
}, tt('title')),
|
|
277
277
|
React.createElement('span', {
|
|
@@ -280,8 +280,8 @@ window.__ModuleLoader__.load({
|
|
|
280
280
|
fontWeight: 500,
|
|
281
281
|
padding: '2px 6px',
|
|
282
282
|
borderRadius: 6,
|
|
283
|
-
background: '
|
|
284
|
-
color: 'var(--dsw-alias-
|
|
283
|
+
background: 'color-mix(in srgb, var(--dsw-alias-brand-primary, var(--dsw-alias-state-brand-primary)) 15%, transparent)',
|
|
284
|
+
color: 'var(--dsw-alias-brand-primary, var(--dsw-alias-state-brand-primary))',
|
|
285
285
|
},
|
|
286
286
|
}, 'v' + updateState.currentVersion),
|
|
287
287
|
isDisabled && React.createElement('span', {
|
|
@@ -290,15 +290,15 @@ window.__ModuleLoader__.load({
|
|
|
290
290
|
fontWeight: 600,
|
|
291
291
|
padding: '2px 6px',
|
|
292
292
|
borderRadius: 6,
|
|
293
|
-
background: '
|
|
294
|
-
color: '
|
|
293
|
+
background: 'color-mix(in srgb, var(--dsw-alias-state-danger-primary, var(--dsw-alias-state-error-primary)) 15%, transparent)',
|
|
294
|
+
color: 'var(--dsw-alias-state-danger-primary, var(--dsw-alias-state-error-primary))',
|
|
295
295
|
},
|
|
296
296
|
}, 'OFF')
|
|
297
297
|
),
|
|
298
298
|
React.createElement('span', {
|
|
299
299
|
style: {
|
|
300
300
|
fontSize: 13,
|
|
301
|
-
color: 'var(--dsw-alias-label-secondary
|
|
301
|
+
color: 'var(--dsw-alias-label-secondary)',
|
|
302
302
|
},
|
|
303
303
|
}, tt('sub'))
|
|
304
304
|
),
|
|
@@ -306,7 +306,7 @@ window.__ModuleLoader__.load({
|
|
|
306
306
|
style: {
|
|
307
307
|
display: 'flex',
|
|
308
308
|
alignItems: 'center',
|
|
309
|
-
color: 'var(--dsw-alias-label-tertiary
|
|
309
|
+
color: 'var(--dsw-alias-label-tertiary)',
|
|
310
310
|
},
|
|
311
311
|
},
|
|
312
312
|
CoreChevron
|
|
@@ -319,7 +319,7 @@ window.__ModuleLoader__.load({
|
|
|
319
319
|
expanded && React.createElement('div', {
|
|
320
320
|
style: {
|
|
321
321
|
padding: '0 16px 16px',
|
|
322
|
-
borderTop: '1px solid var(--dsw-alias-border-l2
|
|
322
|
+
borderTop: '1px solid var(--dsw-alias-border-l2)',
|
|
323
323
|
},
|
|
324
324
|
},
|
|
325
325
|
// One-Click Updater block
|
|
@@ -327,9 +327,9 @@ window.__ModuleLoader__.load({
|
|
|
327
327
|
style: {
|
|
328
328
|
padding: '12px 14px',
|
|
329
329
|
margin: '14px 0',
|
|
330
|
-
background: '
|
|
330
|
+
background: 'color-mix(in srgb, var(--dsw-alias-label-primary) 3%, transparent)',
|
|
331
331
|
borderRadius: 8,
|
|
332
|
-
border: '1px solid var(--dsw-alias-border-l2
|
|
332
|
+
border: '1px solid var(--dsw-alias-border-l2)',
|
|
333
333
|
display: 'flex',
|
|
334
334
|
alignItems: 'center',
|
|
335
335
|
justifyContent: 'space-between',
|
|
@@ -338,19 +338,19 @@ window.__ModuleLoader__.load({
|
|
|
338
338
|
},
|
|
339
339
|
},
|
|
340
340
|
React.createElement('div', { style: { fontSize: 13, display: 'flex', alignItems: 'center', gap: 8 } },
|
|
341
|
-
React.createElement('span', { style: { color: 'var(--dsw-alias-label-secondary
|
|
341
|
+
React.createElement('span', { style: { color: 'var(--dsw-alias-label-secondary)' } },
|
|
342
342
|
tt('version') + ': ' + updateState.currentVersion
|
|
343
343
|
),
|
|
344
|
-
updateState.checking && React.createElement('span', { style: { color: 'var(--dsw-alias-label-tertiary
|
|
344
|
+
updateState.checking && React.createElement('span', { style: { color: 'var(--dsw-alias-label-tertiary)', fontSize: 12 } },
|
|
345
345
|
tt('updateChecking')
|
|
346
346
|
),
|
|
347
|
-
!updateState.checking && updateState.updateAvailable && React.createElement('span', { style: { color: '
|
|
347
|
+
!updateState.checking && updateState.updateAvailable && React.createElement('span', { style: { color: 'var(--dsw-alias-state-warning-primary)', fontWeight: 600, fontSize: 12 } },
|
|
348
348
|
tt('updateAvailable', { v: updateState.latestVersion })
|
|
349
349
|
),
|
|
350
|
-
!updateState.checking && !updateState.updateAvailable && !updateState.error && React.createElement('span', { style: { color: '
|
|
350
|
+
!updateState.checking && !updateState.updateAvailable && !updateState.error && React.createElement('span', { style: { color: 'var(--dsw-alias-state-success-primary)', fontSize: 12 } },
|
|
351
351
|
'✓ ' + tt('upToDate')
|
|
352
352
|
),
|
|
353
|
-
updateState.error && React.createElement('span', { style: { color: '
|
|
353
|
+
updateState.error && React.createElement('span', { style: { color: 'var(--dsw-alias-state-danger-primary, var(--dsw-alias-state-error-primary))', fontSize: 12 } },
|
|
354
354
|
updateState.error
|
|
355
355
|
)
|
|
356
356
|
),
|
|
@@ -360,8 +360,8 @@ window.__ModuleLoader__.load({
|
|
|
360
360
|
style: {
|
|
361
361
|
padding: '6px 14px',
|
|
362
362
|
borderRadius: 6,
|
|
363
|
-
background: 'var(--dsw-alias-
|
|
364
|
-
color: '
|
|
363
|
+
background: 'var(--dsw-alias-label-primary)',
|
|
364
|
+
color: 'var(--dsw-alias-bg-layer-3, var(--dsw-alias-bg-card))',
|
|
365
365
|
border: 0,
|
|
366
366
|
fontSize: 12,
|
|
367
367
|
fontWeight: 600,
|
|
@@ -373,11 +373,11 @@ window.__ModuleLoader__.load({
|
|
|
373
373
|
style: {
|
|
374
374
|
padding: '8px 12px',
|
|
375
375
|
marginBottom: 12,
|
|
376
|
-
background: '
|
|
377
|
-
color: '
|
|
376
|
+
background: 'color-mix(in srgb, var(--dsw-alias-state-success-primary) 10%, transparent)',
|
|
377
|
+
color: 'var(--dsw-alias-state-success-primary)',
|
|
378
378
|
borderRadius: 6,
|
|
379
379
|
fontSize: 12,
|
|
380
|
-
border: '1px solid
|
|
380
|
+
border: '1px solid color-mix(in srgb, var(--dsw-alias-state-success-primary) 20%, transparent)',
|
|
381
381
|
},
|
|
382
382
|
}, updateState.notice),
|
|
383
383
|
|
|
@@ -386,20 +386,20 @@ window.__ModuleLoader__.load({
|
|
|
386
386
|
style: {
|
|
387
387
|
padding: '8px 12px',
|
|
388
388
|
marginBottom: 14,
|
|
389
|
-
background: '
|
|
390
|
-
color: '
|
|
389
|
+
background: 'color-mix(in srgb, var(--dsw-alias-state-danger-primary, var(--dsw-alias-state-error-primary)) 10%, transparent)',
|
|
390
|
+
color: 'var(--dsw-alias-state-danger-primary, var(--dsw-alias-state-error-primary))',
|
|
391
391
|
borderRadius: 6,
|
|
392
392
|
fontSize: 12,
|
|
393
|
-
border: '1px solid
|
|
393
|
+
border: '1px solid color-mix(in srgb, var(--dsw-alias-state-danger-primary, var(--dsw-alias-state-error-primary)) 20%, transparent)',
|
|
394
394
|
},
|
|
395
395
|
}, tt('disabledNotice')),
|
|
396
396
|
|
|
397
397
|
// Status Loading / Unavailable
|
|
398
398
|
status === 'loading' && React.createElement('div', {
|
|
399
|
-
style: { padding: '16px 0', fontSize: 13, color: 'var(--dsw-alias-label-tertiary
|
|
399
|
+
style: { padding: '16px 0', fontSize: 13, color: 'var(--dsw-alias-label-tertiary)' },
|
|
400
400
|
}, tt('saving')),
|
|
401
401
|
status === 'unavailable' && React.createElement('div', {
|
|
402
|
-
style: { padding: '16px 0', fontSize: 13, color: '
|
|
402
|
+
style: { padding: '16px 0', fontSize: 13, color: 'var(--dsw-alias-state-danger-primary, var(--dsw-alias-state-error-primary))' },
|
|
403
403
|
}, tt('statusUnavailable')),
|
|
404
404
|
|
|
405
405
|
// Settings Fields
|
|
@@ -407,7 +407,7 @@ window.__ModuleLoader__.load({
|
|
|
407
407
|
// Mode Select
|
|
408
408
|
React.createElement('div', { style: { display: 'flex', flexDirection: 'column', gap: 6 } },
|
|
409
409
|
React.createElement('label', {
|
|
410
|
-
style: { fontSize: 13, fontWeight: 500, color: 'var(--dsw-alias-label-primary
|
|
410
|
+
style: { fontSize: 13, fontWeight: 500, color: 'var(--dsw-alias-label-primary)' },
|
|
411
411
|
}, tt('mode')),
|
|
412
412
|
React.createElement('select', {
|
|
413
413
|
value: draft.mode,
|
|
@@ -415,9 +415,9 @@ window.__ModuleLoader__.load({
|
|
|
415
415
|
style: {
|
|
416
416
|
height: 34,
|
|
417
417
|
borderRadius: 6,
|
|
418
|
-
border: '1px solid var(--dsw-alias-border-l2
|
|
419
|
-
background: 'var(--dsw-alias-bg-field,
|
|
420
|
-
color: 'var(--dsw-alias-label-primary
|
|
418
|
+
border: '1px solid var(--dsw-alias-border-l2)',
|
|
419
|
+
background: 'var(--dsw-alias-bg-field, var(--dsw-alias-bg-layer-2))',
|
|
420
|
+
color: 'var(--dsw-alias-label-primary)',
|
|
421
421
|
padding: '0 10px',
|
|
422
422
|
fontSize: 13,
|
|
423
423
|
},
|
|
@@ -431,7 +431,7 @@ window.__ModuleLoader__.load({
|
|
|
431
431
|
// Provider ID Field
|
|
432
432
|
React.createElement('div', { style: { display: 'flex', flexDirection: 'column', gap: 6 } },
|
|
433
433
|
React.createElement('label', {
|
|
434
|
-
style: { fontSize: 13, fontWeight: 500, color: 'var(--dsw-alias-label-primary
|
|
434
|
+
style: { fontSize: 13, fontWeight: 500, color: 'var(--dsw-alias-label-primary)' },
|
|
435
435
|
}, tt('providerId')),
|
|
436
436
|
React.createElement('input', {
|
|
437
437
|
type: 'text',
|
|
@@ -440,9 +440,9 @@ window.__ModuleLoader__.load({
|
|
|
440
440
|
style: {
|
|
441
441
|
height: 34,
|
|
442
442
|
borderRadius: 6,
|
|
443
|
-
border: '1px solid var(--dsw-alias-border-l2
|
|
444
|
-
background: 'var(--dsw-alias-bg-field,
|
|
445
|
-
color: 'var(--dsw-alias-label-primary
|
|
443
|
+
border: '1px solid var(--dsw-alias-border-l2)',
|
|
444
|
+
background: 'var(--dsw-alias-bg-field, var(--dsw-alias-bg-layer-2))',
|
|
445
|
+
color: 'var(--dsw-alias-label-primary)',
|
|
446
446
|
padding: '0 10px',
|
|
447
447
|
fontSize: 13,
|
|
448
448
|
},
|
|
@@ -452,7 +452,7 @@ window.__ModuleLoader__.load({
|
|
|
452
452
|
// Model ID Field
|
|
453
453
|
React.createElement('div', { style: { display: 'flex', flexDirection: 'column', gap: 6 } },
|
|
454
454
|
React.createElement('label', {
|
|
455
|
-
style: { fontSize: 13, fontWeight: 500, color: 'var(--dsw-alias-label-primary
|
|
455
|
+
style: { fontSize: 13, fontWeight: 500, color: 'var(--dsw-alias-label-primary)' },
|
|
456
456
|
}, tt('modelId')),
|
|
457
457
|
React.createElement('input', {
|
|
458
458
|
type: 'text',
|
|
@@ -461,9 +461,9 @@ window.__ModuleLoader__.load({
|
|
|
461
461
|
style: {
|
|
462
462
|
height: 34,
|
|
463
463
|
borderRadius: 6,
|
|
464
|
-
border: '1px solid var(--dsw-alias-border-l2
|
|
465
|
-
background: 'var(--dsw-alias-bg-field,
|
|
466
|
-
color: 'var(--dsw-alias-label-primary
|
|
464
|
+
border: '1px solid var(--dsw-alias-border-l2)',
|
|
465
|
+
background: 'var(--dsw-alias-bg-field, var(--dsw-alias-bg-layer-2))',
|
|
466
|
+
color: 'var(--dsw-alias-label-primary)',
|
|
467
467
|
padding: '0 10px',
|
|
468
468
|
fontSize: 13,
|
|
469
469
|
},
|
|
@@ -477,7 +477,7 @@ window.__ModuleLoader__.load({
|
|
|
477
477
|
alignItems: 'center',
|
|
478
478
|
gap: 12,
|
|
479
479
|
paddingTop: 12,
|
|
480
|
-
borderTop: '1px solid var(--dsw-alias-border-l2
|
|
480
|
+
borderTop: '1px solid var(--dsw-alias-border-l2)',
|
|
481
481
|
marginTop: 4,
|
|
482
482
|
},
|
|
483
483
|
},
|
|
@@ -489,8 +489,8 @@ window.__ModuleLoader__.load({
|
|
|
489
489
|
padding: '0 18px',
|
|
490
490
|
border: 0,
|
|
491
491
|
borderRadius: 8,
|
|
492
|
-
background: 'var(--dsw-alias-
|
|
493
|
-
color: '
|
|
492
|
+
background: 'var(--dsw-alias-label-primary)',
|
|
493
|
+
color: 'var(--dsw-alias-bg-layer-3, var(--dsw-alias-bg-card))',
|
|
494
494
|
fontSize: 13,
|
|
495
495
|
fontWeight: 600,
|
|
496
496
|
cursor: saving ? 'default' : 'pointer',
|
|
@@ -499,7 +499,7 @@ window.__ModuleLoader__.load({
|
|
|
499
499
|
msg && React.createElement('span', {
|
|
500
500
|
style: {
|
|
501
501
|
fontSize: 13,
|
|
502
|
-
color: msg === tt('saved') ? '
|
|
502
|
+
color: msg === tt('saved') ? 'var(--dsw-alias-state-success-primary)' : 'var(--dsw-alias-state-danger-primary, var(--dsw-alias-state-error-primary))',
|
|
503
503
|
},
|
|
504
504
|
}, msg)
|
|
505
505
|
)
|