dsh-tiddlywiki 0.28.4 → 0.28.5
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 +1 -0
- package/docs/CHANGELOG.md +1 -0
- package/lib/client.js +15 -15
- package/package.json +1 -1
- package/src/client/styles.ts +15 -15
package/README.md
CHANGED
|
@@ -67,6 +67,7 @@ dsh plugin --profile web add dsh-tiddlywiki
|
|
|
67
67
|
|
|
68
68
|
## 🕘 版本记录
|
|
69
69
|
|
|
70
|
+
- **v0.28.5**(2026-09-28):**修「多库模式下侧边栏多出一个没有库名的 `TiddlyWiki` 入口」**(作者报障)。根因是**同一个 CSS 陷阱踩了第 12 次**:`hidden` 属性在 CSS 里只是 `display:none`,而 `.dsh-tw-entry` 有显式 `display:flex` —— **显式 display 盖掉了 hidden**,于是那行让位给每库入口的默认行照样渲染。这次不再给它单独补一条规则,而是**收敃成一条全局兜底** `[hidden] { display: none !important; }`,并删掉本仓库历史上为此在不同元素上各补的 **12 条逐元素规则**(面板 iframe / 错误块 / 快速笔记 / FAB 菜单与提示 / 右侧栏 / 目标库下拉 / 草稿栏 / 最近列表…)。守门同时改为断言「全局兜底存在 + 不允许再出现逐元素版本」,并反向验证(把全局规则改成挂在类名下 → 红)。
|
|
70
71
|
- **v0.28.4**(2026-09-28):**每库自定义图标 + 修「右键菜单切库后选中项不更新」**。① **右侧「知识库」菜单的选中项停在旧值** —— 根因是选中标记(`●`/`○`)只在**菜单构建时**算了一次,之后无论怎么切都不重画;现在改为从当前焦点重算,并在 `setFocusWiki` 订阅里即时重画、每次打开菜单前再兜一次(切库也可能来自侧边栏入口或快速笔记卡片)。② **每个库的入口图标可自定义**:`wikis.json` 的条目新增可选 `icon` 字段,值可以是内置图形名(book / briefcase / home / notebook / flask / globe / star / archive,各是一枚继承 `currentColor` 的手写 16×16 线性 SVG,两套主题下都对)或**一个短 emoji**(📚 / 💼 / 🏠 …,用来一眼区分四五个库,不用下载任何资源)。设置页「知识库列表」每行多了图标下拉(当前值若不在候选里会保留,不会被抹掉)。校验口径:名字或 ≤8 字符的可打印短串,超长与控制字符一律拒绝;空值 = 清除自定义回落默认。**emoji 用 `textContent` 渲染而不是 `innerHTML`** —— 这个值来自用户可编辑的文件,绝不能变成注入点。缺省不设 = 内置默认图标,升级用户看到的一模一样。
|
|
71
72
|
- **v0.28.3**(2026-09-28):**修三个真机报障 + 插件说明补「多库 / 升级」两节**(作者拆库实测中发现)。① 单库模式下快速笔记露出一个没有选项的下拉 —— 根因是 **CSS `hidden` 只是 `display:none`,被显式 `display` 盖掉**(修法:显式 `[hidden]{display:none}` + 组件兜底)。② 会话级选择器没和输入框对齐 —— **对齐规则原本只写在 quick-note 条目内部**,已抽成 `client/dock-align.ts` 两处共用。③ 左侧入口按库显示:多库时每个在运行的库一个入口行、用各自显示名,点该行先切焦点库再开面板。④ 插件说明新增「多知识库」与「从旧版本升级上来」两节:明确升级后**不会自动变成多库**、`wikis.json` 在哪、旧指针文件何时还权威。守门扩到 19 条(含反向验证)。
|
|
72
73
|
- **v0.28.2**(2026-09-28):**设置页去掉重复的「知识库位置」**(作者反馈:多库配置做完后它重复且逻辑冲突)。这一块的语义是「把**唯一的那个库**换到别处」——写的是 wiki 之外的指针文件 `location.json`,措辞也是单库时代的("切换到这个位置" / "恢复为配置默认")。现在**按模式二选一**:**单库模式**保留它(那里它是唯一正确入口);**多库模式整块不渲染**,某个库换目录收到「知识库列表」那一行的**「改目录」**(默认库经 `/admin/wiki/switch` → 改清单 + farm 收敛 + 校验;非默认库直接 `update`)。宿主接口**没有**冲突也**没有**改动:`/admin/wiki/switch|reset` 从 v0.28.0 起就按模式分派。守门:`verify-wiki-focus` 新增"多库模式下不得渲染该块"的断言;farm-boot 补上 location 面接线(22 条),保证藏了界面之后**接口仍按模式正确分派**。
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
> 最近几个主要版本的一句话记录(完整变更见 [Releases](https://github.com/bbqisbbq/dsh-tiddlywiki/releases) / git log)。
|
|
6
6
|
|
|
7
|
+
- **v0.28.5**(2026-09-28):**修「多库模式下侧边栏多出一个没有库名的 `TiddlyWiki` 入口」**(作者报障)。根因是**同一个 CSS 陷阱踩了第 12 次**:`hidden` 属性在 CSS 里只是 `display:none`,而 `.dsh-tw-entry` 有显式 `display:flex` —— **显式 display 盖掉了 hidden**,于是那行让位给每库入口的默认行照样渲染。这次不再给它单独补一条规则,而是**收敃成一条全局兜底** `[hidden] { display: none !important; }`,并删掉本仓库历史上为此在不同元素上各补的 **12 条逐元素规则**(面板 iframe / 错误块 / 快速笔记 / FAB 菜单与提示 / 右侧栏 / 目标库下拉 / 草稿栏 / 最近列表…)。守门同时改为断言「全局兜底存在 + 不允许再出现逐元素版本」,并反向验证(把全局规则改成挂在类名下 → 红)。
|
|
7
8
|
- **v0.28.4**(2026-09-28):**每库自定义图标 + 修「右键菜单切库后选中项不更新」**。① **右侧「知识库」菜单的选中项停在旧值** —— 根因是选中标记(`●`/`○`)只在**菜单构建时**算了一次,之后无论怎么切都不重画;现在改为从当前焦点重算,并在 `setFocusWiki` 订阅里即时重画、每次打开菜单前再兜一次(切库也可能来自侧边栏入口或快速笔记卡片)。② **每个库的入口图标可自定义**:`wikis.json` 的条目新增可选 `icon` 字段,值可以是内置图形名(book / briefcase / home / notebook / flask / globe / star / archive,各是一枚继承 `currentColor` 的手写 16×16 线性 SVG,两套主题下都对)或**一个短 emoji**(📚 / 💼 / 🏠 …,用来一眼区分四五个库,不用下载任何资源)。设置页「知识库列表」每行多了图标下拉(当前值若不在候选里会保留,不会被抹掉)。校验口径:名字或 ≤8 字符的可打印短串,超长与控制字符一律拒绝;空值 = 清除自定义回落默认。**emoji 用 `textContent` 渲染而不是 `innerHTML`** —— 这个值来自用户可编辑的文件,绝不能变成注入点。缺省不设 = 内置默认图标,升级用户看到的一模一样。
|
|
8
9
|
- **v0.28.3**(2026-09-28):**修三个真机报障 + 插件说明补「多库 / 升级」两节**(作者拆库实测中发现)。① **单库模式下快速笔记露出一个没有选项的「写入」下拉** —— 根因是 **CSS 的 `hidden` 属性只是 `display:none`,任何显式 `display` 都能盖掉它**:我给 `.dsh-tw-note-wiki` 写了 `display:inline-flex`,于是 `hidden` 失效,那个空下拉照常渲染。修法两层:CSS 显式加 `[hidden]{display:none}`(且必须写在设 `display` 的那条**之后**,同优先级靠后者生效)+ 组件侧兜底(单库时 `disabled` 并直接 `display:none`)。② **会话级知识库选择器没有和输入框对齐** —— 根因是**规则只写在了一个使用者的内部**:找 composer 输入卡片、按差值补 `paddingRight` 的整套测量逻辑原本长在 `quick-note-dock.ts` 里,第二个 dock 条目加进来时没人知道要对齐。已抽成 `client/dock-align.ts`(`alignDockEntry`)两处共用,并守门断言「条目内不得再自带测量实现」。③ **左侧入口按库显示** —— 多库时每个**在运行**的库一个入口行、用各自的显示名;点该行**先切焦点库再开面板**(否则点 A 打开 B);当前焦点库有左侧标线。单库安装仍走原来那一行 + `ui.sidebarLabel`,逐字不变。④ **插件说明新增两节**:升级用户最大的困惑是"装完了不知道有这个东西",所以明确写了——升级后**不会自动变成多库**、行为与升级前一致;想用多库去哪点;`wikis.json` 在哪;旧 `location.json` 在哪些模式下还权威;每个库要有自己的 `tiddlywiki.info`。守门 `verify-wiki-focus` 扩到 19 条(`hidden` 那条已反向验证)。
|
|
9
10
|
- **v0.28.2**(2026-09-28):**设置页去掉重复的「知识库位置」**(作者反馈:多库配置做完后它重复且逻辑冲突)。这一块的语义是「把**唯一的那个库**换到别处」——写的是 wiki 之外的指针文件 `location.json`,措辞也是单库时代的("切换到这个位置" / "恢复为配置默认")。现在**按模式二选一**:**单库模式**保留它(那里它是唯一正确入口);**多库模式整块不渲染**,某个库换目录收到「知识库列表」那一行的**「改目录」**(默认库经 `/admin/wiki/switch` → 改清单 + farm 收敛 + 校验;非默认库直接 `update`)。宿主接口**没有**冲突也**没有**改动:`/admin/wiki/switch|reset` 从 v0.28.0 起就按模式分派。守门:`verify-wiki-focus` 新增"多库模式下不得渲染该块"的断言;farm-boot 补上 location 面接线(22 条),保证藏了界面之后**接口仍按模式正确分派**。
|
package/lib/client.js
CHANGED
|
@@ -6,6 +6,13 @@ window.__ModuleLoader__.load({
|
|
|
6
6
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
7
7
|
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require("react");c=s(c,1);const l=`dsh-tiddlywiki-styles`,u=`
|
|
8
8
|
/* ── sidebar entry ───────────────────────────────────────────── */
|
|
9
|
+
/* ⚠️ hidden 属性在 CSS 里只是 display:none,**任何显式 display 都能盖掉它**。
|
|
10
|
+
这条全局兜底(v0.28.5)盖住全表里所有自带 display 的组件。已经踩过 12 次:
|
|
11
|
+
面板 iframe、错误块、快速笔记、FAB 菜单/提示、右侧栏、目标库下拉、草稿栏、
|
|
12
|
+
最近列表 —— 每次都是"某个元素 hidden 了却还显示",然后为它单独补一条规则。
|
|
13
|
+
多库模式下默认那一行「TiddlyWiki」也是靠 hidden 让位给每库入口行的,没有这条
|
|
14
|
+
它照样渲染(作者 2026-09-28 报障)。一条全局规则替掉那 12 条逐元素规则。 */
|
|
15
|
+
[hidden] { display: none !important; }
|
|
9
16
|
.dsh-tw-entry {
|
|
10
17
|
display: flex; align-items: center; gap: 8px; position: relative;
|
|
11
18
|
width: calc(100% - 8px); margin: 2px 4px; padding: 6px 10px;
|
|
@@ -60,9 +67,6 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
60
67
|
/* The iframe background follows the DSH theme so a blank/preload frame never
|
|
61
68
|
flashes pure white in dark mode (TW paints its own palette once loaded). */
|
|
62
69
|
.dsh-tw-panel-frame { flex: 1; min-height: 0; border: 0; width: 100%; display: block; background: var(--dsw-alias-bg-layer-1, #fff); }
|
|
63
|
-
/* [hidden] must beat the author display rules above (UA hidden is overridden). */
|
|
64
|
-
.dsh-tw-panel-frame[hidden],
|
|
65
|
-
.dsh-tw-panel-error[hidden] { display: none !important; }
|
|
66
70
|
|
|
67
71
|
.dsh-tw-panel-error {
|
|
68
72
|
flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
|
|
@@ -89,8 +93,6 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
89
93
|
flex: 1; min-height: 0; border: 0; width: 100%; display: block;
|
|
90
94
|
background: var(--dsw-alias-bg-layer-1, #fff);
|
|
91
95
|
}
|
|
92
|
-
.dsh-tw-rightbar-frame[hidden],
|
|
93
|
-
.dsh-tw-rightbar-error[hidden] { display: none !important; }
|
|
94
96
|
.dsh-tw-rightbar-error {
|
|
95
97
|
flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
|
|
96
98
|
gap: 10px; color: var(--dsw-alias-label-secondary, #666); font-size: 13px; text-align: center; padding: 20px;
|
|
@@ -113,9 +115,7 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
113
115
|
display: flex; flex-direction: column; align-items: flex-end; gap: 10px;
|
|
114
116
|
font-family: inherit;
|
|
115
117
|
}
|
|
116
|
-
|
|
117
|
-
so the card's show/hide (root.hidden) needs an explicit rule. */
|
|
118
|
-
.dsh-tw-note[hidden] { display: none; }
|
|
118
|
+
|
|
119
119
|
.dsh-tw-note-card {
|
|
120
120
|
width: 340px; max-width: calc(100vw - 40px);
|
|
121
121
|
background: var(--dsw-alias-bg-layer-2, #fff); color: var(--dsw-alias-label-primary, #222);
|
|
@@ -126,7 +126,7 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
126
126
|
backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
|
|
127
127
|
animation: dsh-tw-note-in 180ms ease;
|
|
128
128
|
}
|
|
129
|
-
|
|
129
|
+
|
|
130
130
|
@keyframes dsh-tw-note-in {
|
|
131
131
|
from { opacity: 0; transform: translateY(8px) scale(.98); }
|
|
132
132
|
to { opacity: 1; transform: translateY(0) scale(1); }
|
|
@@ -451,7 +451,7 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
451
451
|
backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
|
|
452
452
|
animation: dsh-tw-note-in 160ms ease;
|
|
453
453
|
}
|
|
454
|
-
|
|
454
|
+
|
|
455
455
|
.dsh-tw-fab-status {
|
|
456
456
|
display: flex; align-items: center; gap: 7px;
|
|
457
457
|
padding: 6px 9px; font-size: 12px; color: var(--dsw-alias-label-secondary, #666);
|
|
@@ -473,7 +473,7 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
473
473
|
font-size: 11px; line-height: 1.6; white-space: pre-line; word-break: break-word;
|
|
474
474
|
text-align: left;
|
|
475
475
|
}
|
|
476
|
-
|
|
476
|
+
|
|
477
477
|
.dsh-tw-fab-tip::after {
|
|
478
478
|
content: ''; position: absolute; right: 16px; bottom: -5px;
|
|
479
479
|
width: 10px; height: 10px; transform: rotate(45deg);
|
|
@@ -528,7 +528,7 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
528
528
|
上面那条 display:inline-flex 就盖掉了,于是单库模式下这个空下拉照样显示出来
|
|
529
529
|
(作者 2026-09-28 报障:"有个写入下拉,但是没有选项")。显式尊重 hidden,
|
|
530
530
|
并把这一条写在后面(同优先级靠后者生效)。 */
|
|
531
|
-
|
|
531
|
+
|
|
532
532
|
.dsh-tw-note-wiki-label { opacity: .7; }
|
|
533
533
|
.dsh-tw-note-wiki-select {
|
|
534
534
|
border: 1px solid var(--dsw-alias-border-l2, rgba(0,0,0,.18));
|
|
@@ -536,7 +536,7 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
536
536
|
padding: 2px 6px; border-radius: 999px; max-width: 220px;
|
|
537
537
|
}
|
|
538
538
|
.dsh-tw-note-wiki-hint { font-size: 12px; opacity: .75; }
|
|
539
|
-
|
|
539
|
+
|
|
540
540
|
|
|
541
541
|
/* ── input-dock quick-note button(聊天输入框上方,conversation.input.dock)──
|
|
542
542
|
该槽位渲染为「输入框上方的全宽条目」纵向 flex 排列(todo/cost-meter/goal/
|
|
@@ -570,7 +570,7 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
570
570
|
background: color-mix(in srgb, var(--dsw-alias-state-warning-primary, #d9822b) 12%, transparent);
|
|
571
571
|
color: var(--dsw-alias-label-primary, #222);
|
|
572
572
|
}
|
|
573
|
-
|
|
573
|
+
|
|
574
574
|
.dsh-tw-note-draft-text { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
575
575
|
.dsh-tw-note-draft-discard {
|
|
576
576
|
border: 1px solid var(--dsw-alias-border-l2, rgba(0,0,0,.18));
|
|
@@ -589,7 +589,7 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
589
589
|
box-shadow: var(--dsw-shadow-lv3, 0 8px 30px rgba(0,0,0,.22));
|
|
590
590
|
font-size: 13px;
|
|
591
591
|
}
|
|
592
|
-
|
|
592
|
+
|
|
593
593
|
.dsh-tw-note-recent-item {
|
|
594
594
|
display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
|
|
595
595
|
padding: 6px 8px; border-radius: 7px; cursor: pointer;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-tiddlywiki",
|
|
3
3
|
"description": "把 TiddlyWiki 5 变成你和 Agent 共用的本地文档中心(纯文本 + git):你在 DSH 界面里阅读、写作、记日记,Agent 用 15 个 tiddlywiki_* 工具读写同一批笔记;每条笔记都是你能读、能改、能审计、能随时带走的文件——不是自动记忆插件,不做后台抓取。可选一键发布到微信公众号草稿箱。 Turn TiddlyWiki 5 into a document center you and your agent share, in plain text under git — a knowledge base you can read, edit, audit and take with you, not an auto-memory plugin. Mounts via the official dsh plugin system; no DSH source changes.",
|
|
4
|
-
"version": "0.28.
|
|
4
|
+
"version": "0.28.5",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"dsh",
|
package/src/client/styles.ts
CHANGED
|
@@ -15,6 +15,13 @@ const STYLE_ID = 'dsh-tiddlywiki-styles'
|
|
|
15
15
|
|
|
16
16
|
const CSS_TEXT = `
|
|
17
17
|
/* ── sidebar entry ───────────────────────────────────────────── */
|
|
18
|
+
/* ⚠️ hidden 属性在 CSS 里只是 display:none,**任何显式 display 都能盖掉它**。
|
|
19
|
+
这条全局兜底(v0.28.5)盖住全表里所有自带 display 的组件。已经踩过 12 次:
|
|
20
|
+
面板 iframe、错误块、快速笔记、FAB 菜单/提示、右侧栏、目标库下拉、草稿栏、
|
|
21
|
+
最近列表 —— 每次都是"某个元素 hidden 了却还显示",然后为它单独补一条规则。
|
|
22
|
+
多库模式下默认那一行「TiddlyWiki」也是靠 hidden 让位给每库入口行的,没有这条
|
|
23
|
+
它照样渲染(作者 2026-09-28 报障)。一条全局规则替掉那 12 条逐元素规则。 */
|
|
24
|
+
[hidden] { display: none !important; }
|
|
18
25
|
.dsh-tw-entry {
|
|
19
26
|
display: flex; align-items: center; gap: 8px; position: relative;
|
|
20
27
|
width: calc(100% - 8px); margin: 2px 4px; padding: 6px 10px;
|
|
@@ -69,9 +76,6 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
69
76
|
/* The iframe background follows the DSH theme so a blank/preload frame never
|
|
70
77
|
flashes pure white in dark mode (TW paints its own palette once loaded). */
|
|
71
78
|
.dsh-tw-panel-frame { flex: 1; min-height: 0; border: 0; width: 100%; display: block; background: var(--dsw-alias-bg-layer-1, #fff); }
|
|
72
|
-
/* [hidden] must beat the author display rules above (UA hidden is overridden). */
|
|
73
|
-
.dsh-tw-panel-frame[hidden],
|
|
74
|
-
.dsh-tw-panel-error[hidden] { display: none !important; }
|
|
75
79
|
|
|
76
80
|
.dsh-tw-panel-error {
|
|
77
81
|
flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
|
|
@@ -98,8 +102,6 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
98
102
|
flex: 1; min-height: 0; border: 0; width: 100%; display: block;
|
|
99
103
|
background: var(--dsw-alias-bg-layer-1, #fff);
|
|
100
104
|
}
|
|
101
|
-
.dsh-tw-rightbar-frame[hidden],
|
|
102
|
-
.dsh-tw-rightbar-error[hidden] { display: none !important; }
|
|
103
105
|
.dsh-tw-rightbar-error {
|
|
104
106
|
flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
|
|
105
107
|
gap: 10px; color: var(--dsw-alias-label-secondary, #666); font-size: 13px; text-align: center; padding: 20px;
|
|
@@ -122,9 +124,7 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
122
124
|
display: flex; flex-direction: column; align-items: flex-end; gap: 10px;
|
|
123
125
|
font-family: inherit;
|
|
124
126
|
}
|
|
125
|
-
|
|
126
|
-
so the card's show/hide (root.hidden) needs an explicit rule. */
|
|
127
|
-
.dsh-tw-note[hidden] { display: none; }
|
|
127
|
+
|
|
128
128
|
.dsh-tw-note-card {
|
|
129
129
|
width: 340px; max-width: calc(100vw - 40px);
|
|
130
130
|
background: var(--dsw-alias-bg-layer-2, #fff); color: var(--dsw-alias-label-primary, #222);
|
|
@@ -135,7 +135,7 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
135
135
|
backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
|
|
136
136
|
animation: dsh-tw-note-in 180ms ease;
|
|
137
137
|
}
|
|
138
|
-
|
|
138
|
+
|
|
139
139
|
@keyframes dsh-tw-note-in {
|
|
140
140
|
from { opacity: 0; transform: translateY(8px) scale(.98); }
|
|
141
141
|
to { opacity: 1; transform: translateY(0) scale(1); }
|
|
@@ -460,7 +460,7 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
460
460
|
backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
|
|
461
461
|
animation: dsh-tw-note-in 160ms ease;
|
|
462
462
|
}
|
|
463
|
-
|
|
463
|
+
|
|
464
464
|
.dsh-tw-fab-status {
|
|
465
465
|
display: flex; align-items: center; gap: 7px;
|
|
466
466
|
padding: 6px 9px; font-size: 12px; color: var(--dsw-alias-label-secondary, #666);
|
|
@@ -482,7 +482,7 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
482
482
|
font-size: 11px; line-height: 1.6; white-space: pre-line; word-break: break-word;
|
|
483
483
|
text-align: left;
|
|
484
484
|
}
|
|
485
|
-
|
|
485
|
+
|
|
486
486
|
.dsh-tw-fab-tip::after {
|
|
487
487
|
content: ''; position: absolute; right: 16px; bottom: -5px;
|
|
488
488
|
width: 10px; height: 10px; transform: rotate(45deg);
|
|
@@ -537,7 +537,7 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
537
537
|
上面那条 display:inline-flex 就盖掉了,于是单库模式下这个空下拉照样显示出来
|
|
538
538
|
(作者 2026-09-28 报障:"有个写入下拉,但是没有选项")。显式尊重 hidden,
|
|
539
539
|
并把这一条写在后面(同优先级靠后者生效)。 */
|
|
540
|
-
|
|
540
|
+
|
|
541
541
|
.dsh-tw-note-wiki-label { opacity: .7; }
|
|
542
542
|
.dsh-tw-note-wiki-select {
|
|
543
543
|
border: 1px solid var(--dsw-alias-border-l2, rgba(0,0,0,.18));
|
|
@@ -545,7 +545,7 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
545
545
|
padding: 2px 6px; border-radius: 999px; max-width: 220px;
|
|
546
546
|
}
|
|
547
547
|
.dsh-tw-note-wiki-hint { font-size: 12px; opacity: .75; }
|
|
548
|
-
|
|
548
|
+
|
|
549
549
|
|
|
550
550
|
/* ── input-dock quick-note button(聊天输入框上方,conversation.input.dock)──
|
|
551
551
|
该槽位渲染为「输入框上方的全宽条目」纵向 flex 排列(todo/cost-meter/goal/
|
|
@@ -579,7 +579,7 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
579
579
|
background: color-mix(in srgb, var(--dsw-alias-state-warning-primary, #d9822b) 12%, transparent);
|
|
580
580
|
color: var(--dsw-alias-label-primary, #222);
|
|
581
581
|
}
|
|
582
|
-
|
|
582
|
+
|
|
583
583
|
.dsh-tw-note-draft-text { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
584
584
|
.dsh-tw-note-draft-discard {
|
|
585
585
|
border: 1px solid var(--dsw-alias-border-l2, rgba(0,0,0,.18));
|
|
@@ -598,7 +598,7 @@ html[data-dsh-tw-active] .dshDesktopConversationSurface > :not([data-dsh-tw-view
|
|
|
598
598
|
box-shadow: var(--dsw-shadow-lv3, 0 8px 30px rgba(0,0,0,.22));
|
|
599
599
|
font-size: 13px;
|
|
600
600
|
}
|
|
601
|
-
|
|
601
|
+
|
|
602
602
|
.dsh-tw-note-recent-item {
|
|
603
603
|
display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
|
|
604
604
|
padding: 6px 8px; border-radius: 7px; cursor: pointer;
|