dsh-plugin-core 0.29.1 → 0.29.2
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/dist/explorer/FileBrowser.d.ts +2 -0
- package/dist/explorer/FileBrowser.d.ts.map +1 -1
- package/dist/explorer/FileBrowser.js +2 -0
- package/dist/explorer/FileBrowser.js.map +1 -1
- package/dist/explorer/open.d.ts +2 -0
- package/dist/explorer/open.d.ts.map +1 -1
- package/dist/explorer/open.js +1 -0
- package/dist/explorer/open.js.map +1 -1
- package/dist/explorer/preview/TextPreview.d.ts +2 -0
- package/dist/explorer/preview/TextPreview.d.ts.map +1 -1
- package/dist/explorer/preview/TextPreview.js +23 -10
- package/dist/explorer/preview/TextPreview.js.map +1 -1
- package/dist/explorer/preview/index.d.ts +2 -0
- package/dist/explorer/preview/index.d.ts.map +1 -1
- package/dist/explorer/preview/index.js +1 -0
- package/dist/explorer/preview/index.js.map +1 -1
- package/dist/session/SessionViewModal.d.ts +3 -1
- package/dist/session/SessionViewModal.d.ts.map +1 -1
- package/dist/session/SessionViewModal.js +31 -5
- package/dist/session/SessionViewModal.js.map +1 -1
- package/dist/session/changes.d.ts +1 -1
- package/dist/session/changes.d.ts.map +1 -1
- package/dist/session/changes.js +1 -1
- package/dist/session/changes.js.map +1 -1
- package/dist/session/faces.d.ts +24 -0
- package/dist/session/faces.d.ts.map +1 -1
- package/dist/session/index.d.ts +1 -1
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/mirror/AskCard.d.ts +35 -0
- package/dist/session/mirror/AskCard.d.ts.map +1 -0
- package/dist/session/mirror/AskCard.js +131 -0
- package/dist/session/mirror/AskCard.js.map +1 -0
- package/dist/session/mirror/ChangedFileDiff.d.ts.map +1 -1
- package/dist/session/mirror/ChangedFileDiff.js +8 -2
- package/dist/session/mirror/ChangedFileDiff.js.map +1 -1
- package/dist/session/mirror/ChangedFilesCard.d.ts.map +1 -1
- package/dist/session/mirror/ChangedFilesCard.js +8 -1
- package/dist/session/mirror/ChangedFilesCard.js.map +1 -1
- package/dist/session/mirror/ChatGroupSeat.d.ts.map +1 -1
- package/dist/session/mirror/ChatGroupSeat.js +2 -1
- package/dist/session/mirror/ChatGroupSeat.js.map +1 -1
- package/dist/session/mirror/ChatNodeSeat.d.ts +1 -1
- package/dist/session/mirror/ChatNodeSeat.d.ts.map +1 -1
- package/dist/session/mirror/ChatNodeSeat.js +2 -2
- package/dist/session/mirror/ChatNodeSeat.js.map +1 -1
- package/dist/session/mirror/Deliverables.d.ts.map +1 -1
- package/dist/session/mirror/Deliverables.js +30 -4
- package/dist/session/mirror/Deliverables.js.map +1 -1
- package/dist/session/mirror/GenericCommandCard.d.ts +56 -2
- package/dist/session/mirror/GenericCommandCard.d.ts.map +1 -1
- package/dist/session/mirror/GenericCommandCard.js +360 -46
- package/dist/session/mirror/GenericCommandCard.js.map +1 -1
- package/dist/session/mirror/MessageItem.d.ts +5 -0
- package/dist/session/mirror/MessageItem.d.ts.map +1 -1
- package/dist/session/mirror/MessageItem.js +12 -3
- package/dist/session/mirror/MessageItem.js.map +1 -1
- package/dist/session/mirror/StatDialog.d.ts.map +1 -1
- package/dist/session/mirror/StatDialog.js +14 -1
- package/dist/session/mirror/StatDialog.js.map +1 -1
- package/dist/session/mirror/ToolDetails.d.ts +65 -0
- package/dist/session/mirror/ToolDetails.d.ts.map +1 -0
- package/dist/session/mirror/ToolDetails.js +268 -0
- package/dist/session/mirror/ToolDetails.js.map +1 -0
- package/dist/session/mirror/control-details.d.ts +9 -0
- package/dist/session/mirror/control-details.d.ts.map +1 -0
- package/dist/session/mirror/control-details.js +549 -0
- package/dist/session/mirror/control-details.js.map +1 -0
- package/dist/session/mirror/detail-i18n.d.ts +4 -0
- package/dist/session/mirror/detail-i18n.d.ts.map +1 -0
- package/dist/session/mirror/detail-i18n.js +153 -0
- package/dist/session/mirror/detail-i18n.js.map +1 -0
- package/dist/session/official-classes.d.ts.map +1 -1
- package/dist/session/official-classes.js +4 -0
- package/dist/session/official-classes.js.map +1 -1
- package/dist/session/pending-inputs.d.ts +11 -0
- package/dist/session/pending-inputs.d.ts.map +1 -0
- package/dist/session/pending-inputs.js +31 -0
- package/dist/session/pending-inputs.js.map +1 -0
- package/dist/ui/CodeViewer.d.ts +2 -0
- package/dist/ui/CodeViewer.d.ts.map +1 -1
- package/dist/ui/CodeViewer.js +13 -1
- package/dist/ui/CodeViewer.js.map +1 -1
- package/dist/ui/FlipText.d.ts +5 -0
- package/dist/ui/FlipText.d.ts.map +1 -1
- package/dist/ui/FlipText.js +2 -1
- package/dist/ui/FlipText.js.map +1 -1
- package/dist/ui/Modal.js +1 -1
- package/dist/ui/Modal.js.map +1 -1
- package/dist/ui/SideSheet.js +1 -1
- package/dist/ui/SideSheet.js.map +1 -1
- package/dist/ui/flip-css.generated.d.ts +1 -1
- package/dist/ui/flip-css.generated.d.ts.map +1 -1
- package/dist/ui/flip-css.generated.js +1 -1
- package/dist/ui/flip-css.generated.js.map +1 -1
- package/dist/utils/i18n.d.ts +1 -1
- package/dist/utils/i18n.d.ts.map +1 -1
- package/dist/utils/i18n.js +424 -0
- package/dist/utils/i18n.js.map +1 -1
- package/docs/design/external/dsh-host.md +21 -0
- package/docs/help/explorer.doc.ts +9 -0
- package/docs/help/explorer.md +1 -0
- package/docs/help/integration.doc.ts +1 -1
- package/docs/help/integration.md +1 -1
- package/docs/help/session.doc.ts +3 -3
- package/docs/help/session.md +2 -2
- package/docs/help/ui.doc.ts +11 -3
- package/docs/help/ui.md +10 -2
- package/package.json +1 -1
package/docs/help/session.doc.ts
CHANGED
|
@@ -22,7 +22,7 @@ if (view !== null) {
|
|
|
22
22
|
openHostSession(child)
|
|
23
23
|
},
|
|
24
24
|
// 文件打开出口:给一个落点即可(元素或选择器),核心自带右侧分栏
|
|
25
|
-
onOpenFile: (path, sid) => openFilePreview({ mount: '#page-row', path, sessionId: sid }),
|
|
25
|
+
onOpenFile: (path, sid, opts) => openFilePreview({ mount: '#page-row', path, sessionId: sid, line: opts?.line }),
|
|
26
26
|
// 变更文件审阅:一行打开那次改动的 diff(面板 / 关闭钮全归核心)
|
|
27
27
|
onOpenReview: (locator) => openSessionReview({ mount: '#page-row', locator }),
|
|
28
28
|
archived, // 是否已归档
|
|
@@ -136,9 +136,9 @@ const doc: DocTopic = {
|
|
|
136
136
|
},
|
|
137
137
|
{
|
|
138
138
|
name: 'onOpenFile',
|
|
139
|
-
type: '(path: string, sessionId: string) => void',
|
|
139
|
+
type: '(path: string, sessionId: string, options?: { line?: number }) => void',
|
|
140
140
|
def: '—',
|
|
141
|
-
desc: { zh: '文件打开出口(工具卡 fileLink / 行内引用 / 交付卡共用);第二参是文件所属会话 id
|
|
141
|
+
desc: { zh: '文件打开出口(工具卡 fileLink / 行内引用 / 交付卡共用);第二参是文件所属会话 id,别拿别的会话去定位;第三参可带 `line`(read 工具卡的 `offset`,直接转给 `openFilePreview` 的 `opts.line`);缺省 = 链接纯文本', en: 'File-open exit shared by fileLinks, mentions and delivered cards; the second arg is the owning session id — locate the file there, not elsewhere; the third may carry `line` (a read call’s `offset`, forward it to `openFilePreview`’s `opts.line`); absent = plain text' },
|
|
142
142
|
},
|
|
143
143
|
{
|
|
144
144
|
name: 'onOpenReview',
|
package/docs/help/session.md
CHANGED
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
| `forkSession` | `(sessionId, atSeq?) => Promise<string>` | — | — | 开分支并返回子会话 id;缺 openHostSession 则不渲染「继续对话」 | Fork and resolve the child session id; without openHostSession "Continue" does not render |
|
|
53
53
|
| `openHostSession` | `(sessionId: string) => void` | — | — | 跳官方会话区(uiWorkspace.openSession) | Jump into the official session area (uiWorkspace.openSession) |
|
|
54
54
|
| `onContinue` | `(message: string) => Promise<void>` | — | — | 暂存输入框的确定:调用方完成 fork + 发首轮 + 跳转;缺省 = 不渲染输入框 | Staging input confirm: caller forks, sends the first turn, navigates; absent = no input rendered |
|
|
55
|
-
| `onOpenFile` | `(path: string, sessionId: string) => void` | — | — | 文件打开出口(工具卡 fileLink / 行内引用 / 交付卡共用);第二参是文件所属会话 id
|
|
55
|
+
| `onOpenFile` | `(path: string, sessionId: string, options?: { line?: number }) => void` | — | — | 文件打开出口(工具卡 fileLink / 行内引用 / 交付卡共用);第二参是文件所属会话 id,别拿别的会话去定位;第三参可带 `line`(read 工具卡的 `offset`,直接转给 `openFilePreview` 的 `opts.line`);缺省 = 链接纯文本 | File-open exit shared by fileLinks, mentions and delivered cards; the second arg is the owning session id — locate the file there, not elsewhere; the third may carry `line` (a read call’s `offset`, forward it to `openFilePreview`’s `opts.line`); absent = plain text |
|
|
56
56
|
| `onOpenReview` | `(locator: ChangedFileReviewLocator) => void` | — | — | 变更文件的审阅出口(等价官方 openReview);落点用 `openSessionReview({ mount, locator })` 一行接上;缺省 = 变更卡整张不可点 | Review exit for changed files (equals official openReview); wire it with `openSessionReview({ mount, locator })`; absent = the change card is not clickable |
|
|
57
57
|
| `t` | `Translate` | — | 内置 | 覆盖文案(内置字典已含全部会话文案,中英) | Override copy (the built-in dictionary has all session copy, zh+en) |
|
|
58
58
|
|
|
@@ -78,7 +78,7 @@ if (view !== null) {
|
|
|
78
78
|
openHostSession(child)
|
|
79
79
|
},
|
|
80
80
|
// 文件打开出口:给一个落点即可(元素或选择器),核心自带右侧分栏
|
|
81
|
-
onOpenFile: (path, sid) => openFilePreview({ mount: '#page-row', path, sessionId: sid }),
|
|
81
|
+
onOpenFile: (path, sid, opts) => openFilePreview({ mount: '#page-row', path, sessionId: sid, line: opts?.line }),
|
|
82
82
|
// 变更文件审阅:一行打开那次改动的 diff(面板 / 关闭钮全归核心)
|
|
83
83
|
onOpenReview: (locator) => openSessionReview({ mount: '#page-row', locator }),
|
|
84
84
|
archived, // 是否已归档
|
package/docs/help/ui.doc.ts
CHANGED
|
@@ -18,7 +18,10 @@ h(FlipText, { text: step })
|
|
|
18
18
|
h(FlipText, { text: step, maxWidth: 220 })
|
|
19
19
|
|
|
20
20
|
// 宽度三档:width 优先,其次 minWidth / maxWidth
|
|
21
|
-
h(FlipText, { text: step, width: 200 })
|
|
21
|
+
h(FlipText, { text: step, width: 200 })
|
|
22
|
+
|
|
23
|
+
// 常驻扫光:文字不变也在动(默认关;弹窗 / 抽屉底栏的 notice 默认开)
|
|
24
|
+
h(FlipText, { text: step, sweep: true })`
|
|
22
25
|
|
|
23
26
|
const cardExample = `import { Card, Chip, StripCard } from 'dsh-plugin-core/ui'
|
|
24
27
|
|
|
@@ -650,6 +653,10 @@ const doc: DocTopic = {
|
|
|
650
653
|
zh: '宽度三档同 Button / Chip:`width` 优先,`width` 未设时 `minWidth` / `maxWidth` 生效;三者都不传 = 随父容器(flex 子项自然伸缩,弹窗底栏就是这么用的)。要放进弹窗底栏左侧**不要自己包**,直接用 `Modal` / `ConfirmModal` / `AlertModal` / `SideSheet` 的 `notice`。',
|
|
651
654
|
en: 'Widths follow Button / Chip: `width` wins; `minWidth` / `maxWidth` apply only when it is unset; none of the three means "follow the parent" (a flex child stretches naturally — that is how the dialog footer uses it). To put it on the left of a dialog footer, use the `notice` prop on `Modal` / `ConfirmModal` / `AlertModal` / `SideSheet` rather than wrapping it yourself.',
|
|
652
655
|
},
|
|
656
|
+
{
|
|
657
|
+
zh: '`sweep` = 常驻扫光:一道斜光每 1.5s 从文字上扫过,扫到的字提亮,甚至文案一直不变也看得出「还在干活」。**默认关**;`Modal` / `SideSheet` 的 `notice` 默认打开(确认框与过程提示的场景)。光只落在字形上(`background-clip:text`),不会在底栏的空白区显出一条白光;`prefers-reduced-motion` 下与翻牌一起关掉。',
|
|
658
|
+
en: '`sweep` is a persistent sheen: a slanted highlight crosses the text every 1.5s, brightening the characters it passes, so an unchanged line still reads as "still working". **Off by default**; the `notice` prop on `Modal` / `SideSheet` turns it on (confirm dialogs and progress hints). The light is clipped to the glyphs (`background-clip:text`), so it never shows as a white bar across the empty part of a footer, and it is turned off together with the flip under `prefers-reduced-motion`.',
|
|
659
|
+
},
|
|
653
660
|
],
|
|
654
661
|
api: [
|
|
655
662
|
{
|
|
@@ -659,6 +666,7 @@ const doc: DocTopic = {
|
|
|
659
666
|
{ name: 'width', type: 'number | string', def: '—', desc: { zh: '固定宽(px 或任意 CSS 宽度);与 minWidth / maxWidth 互斥,一旦设定后两者自动失效', en: 'Fixed width (px or any CSS width); mutually exclusive with minWidth/maxWidth — once set, the other two are ignored' } },
|
|
660
667
|
{ name: 'minWidth', type: 'number | string', def: '—', desc: { zh: '最小宽:width 未设时生效', en: 'Minimum width: applies only when width is unset' } },
|
|
661
668
|
{ name: 'maxWidth', type: 'number | string', def: '—', desc: { zh: '最大宽:width 未设时生效,文字超出折叠成省略号,hover 以跑马灯展开', en: 'Maximum width: applies only when width is unset; overflowing text collapses to an ellipsis and marquees on hover' } },
|
|
669
|
+
{ name: 'sweep', type: 'boolean', def: 'false', desc: { zh: '常驻扫光:每 1.5s 一道斜光扫过文字,文案不变也能看出在动。`Modal` / `SideSheet` 的 `notice` 默认传 true', en: 'Persistent sheen: a slanted highlight crosses the text every 1.5s so a static line still reads as active. The `notice` prop on `Modal` / `SideSheet` passes true by default' } },
|
|
662
670
|
{ name: 'className', type: 'string', def: '—', desc: { zh: '追加 class(只补字体 / 颜色这类皮肤,布局归组件自己)', en: 'Extra class (font / colour skin only; layout belongs to the component)' } },
|
|
663
671
|
],
|
|
664
672
|
},
|
|
@@ -852,7 +860,7 @@ const doc: DocTopic = {
|
|
|
852
860
|
{ name: 'maxWidth', type: 'string', def: '按 size', desc: { zh: '任意 CSS 值,覆盖 size 的宽度上限;不要用 vw(遮罩已按右侧分栏让位)', en: 'Any CSS value, overriding the size’s max width; avoid vw (the mask already yielded to the right column)' } },
|
|
853
861
|
{ name: 'hideHeader', type: 'boolean', def: "'false'", desc: { zh: '不渲染头部(沉浸式)', en: 'Skip header (immersive)' } },
|
|
854
862
|
{ name: 'footer', type: 'ReactNode', def: '—', desc: { zh: '底栏(按钮区;上下内距相等、内容垂直居中)', en: 'Footer (button area; symmetric padding, vertically centred)' } },
|
|
855
|
-
{ name: 'notice', type: 'string', def: '—', desc: { zh: '
|
|
863
|
+
{ name: 'notice', type: 'string', def: '—', desc: { zh: '底栏**左侧**的一行过程提示:换文案即翻牌,**默认带常驻扫光**(不动也看得出在动),超长省略 + hover 跑马灯。不传 = 不占位、与以前完全一样;**传空字符串 = 清场**;footer 也可不给(它会自己撑起底栏)', en: 'One-line progress notice on the **left** of the footer: changing the string flips it, and it carries the **persistent sheen by default** (still reads as active when unchanged); overflow elides and marquees on hover. Omitted = nothing at all (unchanged behaviour); **an empty string clears it**; `footer` may be omitted too — the notice alone brings the footer up' } },
|
|
856
864
|
{ name: 'footerDivider', type: 'boolean', def: "'true'", desc: { zh: '底栏上面的那条分隔线;传 false 关掉(sm 确认框本来就没有)', en: 'The divider above the footer; pass false to drop it (sm dialogs never have one)' } },
|
|
857
865
|
{ name: 'className', type: 'string', def: '—', desc: { zh: '追加 class(只补布局 / 视觉修饰,别覆盖皮肤)', en: 'Extra class (layout / visual tweaks only; do not override the skin)' } },
|
|
858
866
|
{ name: 'children', type: 'ReactNode', def: '—', desc: { zh: '主体', en: 'Body' } },
|
|
@@ -935,7 +943,7 @@ const doc: DocTopic = {
|
|
|
935
943
|
{ name: 'width / minWidth / maxWidth', type: 'number / number / number', def: '460 / 320 / —', desc: { zh: '初始宽度 / 拖拽下限 / 拖拽上限(px;上限缺省 = 遮罩盒宽)', en: 'Initial width / resize floor / resize ceiling (px; ceiling defaults to the mask box)' } },
|
|
936
944
|
{ name: 'resizable', type: 'boolean', def: 'true', desc: { zh: '能否拖宽(关掉就没有拖拽条)', en: 'Whether it resizes by dragging (off = no handle)' } },
|
|
937
945
|
{ name: 'footer / children', type: 'ReactNode / ReactNode', def: '— / —', desc: { zh: '底栏 / 主体(主体是唯一滚动容器)', en: 'Footer / body (the body is the only scroll container)' } },
|
|
938
|
-
{ name: 'notice', type: 'string', def: '—', desc: { zh: '
|
|
946
|
+
{ name: 'notice', type: 'string', def: '—', desc: { zh: '底栏**左侧**的一行过程提示(换文案即翻牌,**默认带常驻扫光**,超长省略 + hover 跑马灯)。不传 = 不占位;**传空字符串 = 清场**(抽屉常驻渲染,关掉再开时用它清上一轮)', en: 'One-line progress notice on the **left** of the footer (changing it flips; it carries the **persistent sheen by default**; overflow elides and marquees on hover). Omitted = nothing at all; **an empty string clears it** (the drawer stays mounted, so this is how the previous round is wiped)' } },
|
|
939
947
|
{ name: 'translate', type: 'Translate', def: '内置字典', desc: { zh: '覆盖关闭 / 拖拽条的文案', en: 'Override close / resize copy' } },
|
|
940
948
|
],
|
|
941
949
|
},
|
package/docs/help/ui.md
CHANGED
|
@@ -413,12 +413,17 @@ h(StripCard, {
|
|
|
413
413
|
|
|
414
414
|
> EN: Widths follow Button / Chip: `width` wins; `minWidth` / `maxWidth` apply only when it is unset; none of the three means "follow the parent" (a flex child stretches naturally — that is how the dialog footer uses it). To put it on the left of a dialog footer, use the `notice` prop on `Modal` / `ConfirmModal` / `AlertModal` / `SideSheet` rather than wrapping it yourself.
|
|
415
415
|
|
|
416
|
+
`sweep` = 常驻扫光:一道斜光每 1.5s 从文字上扫过,扫到的字提亮,甚至文案一直不变也看得出「还在干活」。**默认关**;`Modal` / `SideSheet` 的 `notice` 默认打开(确认框与过程提示的场景)。光只落在字形上(`background-clip:text`),不会在底栏的空白区显出一条白光;`prefers-reduced-motion` 下与翻牌一起关掉。
|
|
417
|
+
|
|
418
|
+
> EN: `sweep` is a persistent sheen: a slanted highlight crosses the text every 1.5s, brightening the characters it passes, so an unchanged line still reads as "still working". **Off by default**; the `notice` prop on `Modal` / `SideSheet` turns it on (confirm dialogs and progress hints). The light is clipped to the glyphs (`background-clip:text`), so it never shows as a white bar across the empty part of a footer, and it is turned off together with the flip under `prefers-reduced-motion`.
|
|
419
|
+
|
|
416
420
|
| 参数 | 类型 | 默认 | 说明(zh) | 说明(en) |
|
|
417
421
|
|---|---|---|---|---|
|
|
418
422
|
| `text` | `string` | —(必填) | 当前文本;变了就翻一次牌。**空串 = 没有文案**:不渲染、不占位(同一块地方复用靠它清场);清空后再给值是直接出现,不从下方翻上来 | Current text; a change flips it once. **An empty string means no line at all**: nothing rendered, no space taken (that is how a reused spot is cleared); the next value appears outright instead of sliding in |
|
|
419
423
|
| `width` | `number \| string` | — | 固定宽(px 或任意 CSS 宽度);与 minWidth / maxWidth 互斥,一旦设定后两者自动失效 | Fixed width (px or any CSS width); mutually exclusive with minWidth/maxWidth — once set, the other two are ignored |
|
|
420
424
|
| `minWidth` | `number \| string` | — | 最小宽:width 未设时生效 | Minimum width: applies only when width is unset |
|
|
421
425
|
| `maxWidth` | `number \| string` | — | 最大宽:width 未设时生效,文字超出折叠成省略号,hover 以跑马灯展开 | Maximum width: applies only when width is unset; overflowing text collapses to an ellipsis and marquees on hover |
|
|
426
|
+
| `sweep` | `boolean` | false | 常驻扫光:每 1.5s 一道斜光扫过文字,文案不变也能看出在动。`Modal` / `SideSheet` 的 `notice` 默认传 true | Persistent sheen: a slanted highlight crosses the text every 1.5s so a static line still reads as active. The `notice` prop on `Modal` / `SideSheet` passes true by default |
|
|
422
427
|
| `className` | `string` | — | 追加 class(只补字体 / 颜色这类皮肤,布局归组件自己) | Extra class (font / colour skin only; layout belongs to the component) |
|
|
423
428
|
|
|
424
429
|
```tsx id="ui-flip-text-example"
|
|
@@ -433,6 +438,9 @@ h(FlipText, { text: step, maxWidth: 220 })
|
|
|
433
438
|
|
|
434
439
|
// 宽度三档:width 优先,其次 minWidth / maxWidth
|
|
435
440
|
h(FlipText, { text: step, width: 200 })
|
|
441
|
+
|
|
442
|
+
// 常驻扫光:文字不变也在动(默认关;弹窗 / 抽屉底栏的 notice 默认开)
|
|
443
|
+
h(FlipText, { text: step, sweep: true })
|
|
436
444
|
```
|
|
437
445
|
|
|
438
446
|
## Table(表格)
|
|
@@ -719,7 +727,7 @@ Modal 是自绘 overlay,不走 react-dom portal。
|
|
|
719
727
|
| `maxWidth` | `string` | 按 size | 任意 CSS 值,覆盖 size 的宽度上限;不要用 vw(遮罩已按右侧分栏让位) | Any CSS value, overriding the size’s max width; avoid vw (the mask already yielded to the right column) |
|
|
720
728
|
| `hideHeader` | `boolean` | 'false' | 不渲染头部(沉浸式) | Skip header (immersive) |
|
|
721
729
|
| `footer` | `ReactNode` | — | 底栏(按钮区;上下内距相等、内容垂直居中) | Footer (button area; symmetric padding, vertically centred) |
|
|
722
|
-
| `notice` | `string` | — |
|
|
730
|
+
| `notice` | `string` | — | 底栏**左侧**的一行过程提示:换文案即翻牌,**默认带常驻扫光**(不动也看得出在动),超长省略 + hover 跑马灯。不传 = 不占位、与以前完全一样;**传空字符串 = 清场**;footer 也可不给(它会自己撑起底栏) | One-line progress notice on the **left** of the footer: changing the string flips it, and it carries the **persistent sheen by default** (still reads as active when unchanged); overflow elides and marquees on hover. Omitted = nothing at all (unchanged behaviour); **an empty string clears it**; `footer` may be omitted too — the notice alone brings the footer up |
|
|
723
731
|
| `footerDivider` | `boolean` | 'true' | 底栏上面的那条分隔线;传 false 关掉(sm 确认框本来就没有) | The divider above the footer; pass false to drop it (sm dialogs never have one) |
|
|
724
732
|
| `className` | `string` | — | 追加 class(只补布局 / 视觉修饰,别覆盖皮肤) | Extra class (layout / visual tweaks only; do not override the skin) |
|
|
725
733
|
| `children` | `ReactNode` | — | 主体 | Body |
|
|
@@ -790,7 +798,7 @@ Modal 是自绘 overlay,不走 react-dom portal。
|
|
|
790
798
|
| `width / minWidth / maxWidth` | `number / number / number` | 460 / 320 / — | 初始宽度 / 拖拽下限 / 拖拽上限(px;上限缺省 = 遮罩盒宽) | Initial width / resize floor / resize ceiling (px; ceiling defaults to the mask box) |
|
|
791
799
|
| `resizable` | `boolean` | true | 能否拖宽(关掉就没有拖拽条) | Whether it resizes by dragging (off = no handle) |
|
|
792
800
|
| `footer / children` | `ReactNode / ReactNode` | — / — | 底栏 / 主体(主体是唯一滚动容器) | Footer / body (the body is the only scroll container) |
|
|
793
|
-
| `notice` | `string` | — |
|
|
801
|
+
| `notice` | `string` | — | 底栏**左侧**的一行过程提示(换文案即翻牌,**默认带常驻扫光**,超长省略 + hover 跑马灯)。不传 = 不占位;**传空字符串 = 清场**(抽屉常驻渲染,关掉再开时用它清上一轮) | One-line progress notice on the **left** of the footer (changing it flips; it carries the **persistent sheen by default**; overflow elides and marquees on hover). Omitted = nothing at all; **an empty string clears it** (the drawer stays mounted, so this is how the previous round is wiped) |
|
|
794
802
|
| `translate` | `Translate` | 内置字典 | 覆盖关闭 / 拖拽条的文案 | Override close / resize copy |
|
|
795
803
|
|
|
796
804
|
```tsx id="ui-sidesheet-example"
|
package/package.json
CHANGED