@manohub/ui 0.7.0 → 0.8.0
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 +4 -4
- package/dist/components/button/index.d.ts +14 -8
- package/dist/components/capsule/index.d.ts +13 -9
- package/dist/components/capsule/index.js +1 -1
- package/dist/components/card/index.d.ts +1 -1
- package/dist/components/card/index.js +7 -4
- package/dist/components/checkbox/index.js +1 -0
- package/dist/components/dialog/index.d.ts +1 -1
- package/dist/components/form/index.d.ts +142 -62
- package/dist/components/form/index.js +41 -29
- package/dist/components/input/index.d.ts +74 -6
- package/dist/components/input/index.js +13 -1
- package/dist/components/layout/index.d.ts +43 -1
- package/dist/components/layout/index.js +22 -2
- package/dist/components/list-view/index.d.ts +1 -1
- package/dist/components/notice/index.d.ts +2 -2
- package/dist/components/notification/index.d.ts +2 -2
- package/dist/components/page/index.js +4 -4
- package/dist/components/pagination/index.d.ts +2 -2
- package/dist/components/pagination/index.js +1 -1
- package/dist/components/panel/index.js +4 -4
- package/dist/components/part-padding.d.ts +9 -6
- package/dist/components/part-padding.js +2 -1
- package/dist/components/query-state/index.d.ts +18 -2
- package/dist/components/radio/index.d.ts +1 -1
- package/dist/components/radio/index.js +1 -0
- package/dist/components/select/index.d.ts +32 -30
- package/dist/components/select/index.js +46 -82
- package/dist/components/select/select-list.d.ts +125 -0
- package/dist/components/select/select-list.js +95 -0
- package/dist/components/select/select-panel.d.ts +106 -0
- package/dist/components/select/select-panel.js +72 -0
- package/dist/components/select/select-shared.d.ts +64 -0
- package/dist/components/select/select-shared.js +24 -0
- package/dist/components/select/select-tree-filter.d.ts +61 -0
- package/dist/components/select/select-tree-filter.js +63 -0
- package/dist/components/select/select-tree.d.ts +274 -0
- package/dist/components/select/select-tree.js +263 -0
- package/dist/components/select/select-trigger.d.ts +132 -0
- package/dist/components/select/select-trigger.js +101 -0
- package/dist/components/steps/index.d.ts +232 -6
- package/dist/components/steps/index.js +84 -26
- package/dist/components/switch/index.d.ts +29 -5
- package/dist/components/switch/index.js +8 -2
- package/dist/components/tabbar/index.d.ts +184 -0
- package/dist/components/tabbar/index.js +161 -0
- package/dist/components/table/index.d.ts +99 -12
- package/dist/components/table/index.js +69 -16
- package/dist/components/tabs/index.d.ts +142 -126
- package/dist/components/tabs/index.js +87 -119
- package/dist/components/tag/index.d.ts +2 -2
- package/dist/components/text/index.d.ts +7 -2
- package/dist/components/toast/index.d.ts +8 -8
- package/dist/components/tree/index.d.ts +28 -2
- package/dist/components/tree/index.js +14 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.js +6 -3
- package/dist/styles/components/capsule.css +4 -4
- package/dist/styles/components/form.css +198 -39
- package/dist/styles/components/input.css +53 -1
- package/dist/styles/components/layout.css +2 -0
- package/dist/styles/components/select.css +21 -0
- package/dist/styles/components/select.tokens.css +3 -0
- package/dist/styles/components/steps.css +48 -0
- package/dist/styles/components/{tabs.css → tabbar.css} +66 -65
- package/dist/styles/components/tabbar.tokens.css +30 -0
- package/dist/styles/components/table.css +50 -1
- package/dist/styles/components/table.tokens.css +3 -0
- package/dist/styles/index.css +3 -3
- package/dist/styles/operations/tabs.css +73 -0
- package/package.json +2 -2
- package/dist/components/tabset/index.d.ts +0 -109
- package/dist/components/tabset/index.js +0 -75
- package/dist/styles/components/tabs.tokens.css +0 -30
- package/dist/styles/operations/tabset.css +0 -57
package/README.md
CHANGED
|
@@ -58,14 +58,14 @@ import { Card, Form, Tree, Checkbox } from '@manohub/ui'
|
|
|
58
58
|
| 容器与分区 | `Page`(页面级骨架:`.Header` / `.Body` / `.Footer` / `.Filter` / `.Toolbar` / `.Split`)、`Panel`(+ `.Header` / `.Body` / `.Footer`)、`Card`(+ 三件)、`Nav`、`Layout`(`Layout.Row` 排「行」/ `Layout.Column` 排「列」:轴向 × 间距档 × 对齐) |
|
|
59
59
|
| 数据展示 | `Tree`、`ListView`(+ `.CardItem`)、`Badge`、`Tag`(常规 / 状态 / 可选 / 新增 / 筛选片) |
|
|
60
60
|
| 展示 | `Avatar`(+ `.Group`)、`Skeleton`(行 / 列表 / 块状) |
|
|
61
|
-
| 表单基础(**自绘**) | `Button`(+ `.Group` / `.Divider`;五型 / 小号 / 加载 / 菜单按钮 / 连体切换)、`Input`(+ `.Group` / `.Chip` / `.Display` / `.Textarea`;清除 / 可见性切换 / 校验)、`Search`(搜索框:值 / 搜索 / 清空三条回调)、`Select`(单选 / 多选 / 搜索 / 加载;面板用原生 popover)、`Switch`(表格档 / 表单档) |
|
|
62
|
-
| 表单与选择 | `Form`(+ `.Header` / `.Item`;标签体系、成员归位、`v-model` 值收集与命令式 `clear()`)、`Filter`(+ `.Item`;`Form` 的壳:条件字段写成子件、控件自放、查询/重置与快照归一)、`Checkbox`、`Radio`(+ `.Group` / `.Card`;卡片式单选)、`Capsule`(胶囊选择器;胶囊 / 方形两档外形,与 `
|
|
61
|
+
| 表单基础(**自绘**) | `Button`(+ `.Group` / `.Divider`;五型 / 小号 / 加载 / 菜单按钮 / 连体切换)、`Input`(+ `.Group` / `.Chip` / `.Display` / `.Textarea`;清除 / 可见性切换 / 校验)、`Search`(搜索框:值 / 搜索 / 清空三条回调)、`Select`(单选 / 多选 / 搜索 / 加载;面板用原生 popover)、`SelectTree`(树形态:仅叶子可选 + 本地过滤 + 命中高亮;与 `Select` 平级导出、共用触发器与面板)、`Switch`(表格档 / 表单档) |
|
|
62
|
+
| 表单与选择 | `Form`(+ `.Header` / `.Item`;标签体系、成员归位、`v-model` 值收集与命令式 `clear()`)、`Filter`(+ `.Item`;`Form` 的壳:条件字段写成子件、控件自放、查询/重置与快照归一)、`Checkbox`、`Radio`(+ `.Group` / `.Card`;卡片式单选)、`Capsule`(胶囊选择器;胶囊 / 方形两档外形,与 `Tabs` 组合即页签) |
|
|
63
63
|
| 反馈与三态 | `Notice`(条状提示)、`Notification`(通知卡:标题 + 头像 / 标签 / 操作 / 关闭位)、`QueryState`(三态容器;内建空 / 错误插画取自设计交付的四张 SVG,原样内联在 `src/utils/state-illustration.ts`)、`Loading`(转圈 + 遮罩:行内 / 区域 / 全屏三形态) |
|
|
64
64
|
| 反馈与引导(**自绘**) | `Toast`(消息提示:语义四档 / loading + 可选动作 + 自动消失计时 + `.Stack` 堆叠)、`Steps`(步骤条:节点式 / 燕尾段式 / `.Progress` 进度条) |
|
|
65
|
-
| 数据展示(**自绘**) | `Table`(列 × 数据 + 选择列 + 排序事件 + 固定表头 / 固定列 + 批量栏 / 合计行;排序与列宽拖拽算法归调用方)、`Pagination`(总数 / 每页条数 / 页码窗口 / 简单档 / 外框档)、`
|
|
65
|
+
| 数据展示(**自绘**) | `Table`(列 × 数据 + 选择列 + 排序事件 + 固定表头 / 固定列 + 批量栏 / 合计行;排序与列宽拖拽算法归调用方)、`Pagination`(总数 / 每页条数 / 页码窗口 / 简单档 / 外框档)、`TabBar`(下划线页签 + 「更多」收纳) |
|
|
66
66
|
| 内容与文件 | `Code`(行内 chip / 代码块 + 语言角标 + 图标复制位,**只读展示**)、`CodeEditor`(等宽多行可编辑代码区:按行自适应 / 限高内滚 / 只读、禁用)、`Upload`(+ `.Thumbs`;拖拽 / 点击上传区 + 已传文件列表) |
|
|
67
67
|
| 浮层(**自绘**) | `Dialog`(原生 `<dialog>` + 模态皮肤;关闭受控)、`Tooltip`(**零 JS**:显隐与定位全走操作层 hover 档) |
|
|
68
|
-
|
|
|
68
|
+
| 操作层(跨件原语) | `Collapse`(+ `.Stack`)、`Tabs`(+ `TabPanel`,面板切换骨架 —— 显隐归组件层,非零 JS 原语);浮层只提供样式层(`styles/operations/popup.css`,零 JS 可直接用),Vue 浮层仍用 farris 适配件 |
|
|
69
69
|
|
|
70
70
|
## 三态的操作按钮
|
|
71
71
|
|
|
@@ -7,6 +7,11 @@ import type { ControlSize } from '../control-size';
|
|
|
7
7
|
* `danger` 保留在枚举里是**向后兼容**:它等价于 `variant="primary"` 叠加 `danger` 布尔,
|
|
8
8
|
* 语义上「危险」是色彩角色(与主色正交),不是第六种结构形态 ——
|
|
9
9
|
* 故新代码请用 `danger` 布尔修饰任意型,`variant="danger"` 只在旧调用点继续有效。
|
|
10
|
+
*
|
|
11
|
+
* `text` 与 `link` 都是无底色档,但**语义不同,别混**:
|
|
12
|
+
* `text` = 「行内文本操作」(编辑 / 删除 / 更多 / 展开,无下划线);
|
|
13
|
+
* `link` = 「跳转语义」(带下划线,像超链接)。
|
|
14
|
+
*「行内可点文字」一律用它 → `text`。
|
|
10
15
|
*/
|
|
11
16
|
export type ButtonVariant = 'primary' | 'secondary' | 'dashed' | 'danger' | 'text' | 'link' | 'icon' | 'off';
|
|
12
17
|
/** 外形档:`round` = 胶囊;`circle` = 正圆(配 `variant="icon"` 用) */
|
|
@@ -28,6 +33,7 @@ export type ButtonShape = 'default' | 'round' | 'circle';
|
|
|
28
33
|
* @example 六型
|
|
29
34
|
* <Button variant="primary" onClick={save}>保存</Button>
|
|
30
35
|
* <Button variant="secondary">取消</Button>
|
|
36
|
+
* <Button variant="text">编辑</Button>
|
|
31
37
|
* <Button variant="link">查看详情</Button>
|
|
32
38
|
*
|
|
33
39
|
* @example 修饰叠加
|
|
@@ -212,7 +218,7 @@ export declare const Button: import("vue").DefineComponent<import("vue").Extract
|
|
|
212
218
|
}>> & Readonly<{}>, {
|
|
213
219
|
block: boolean;
|
|
214
220
|
size: ControlSize;
|
|
215
|
-
icon: "
|
|
221
|
+
icon: "search" | "link" | "filter" | "copy" | "help" | "table" | "menu" | "delete" | "image" | "close" | "key" | "page-title" | "loading" | "info" | "alert" | "chevron-left" | "chevron-right" | "chevron-down" | "chevron-up" | "check" | "user" | "download" | "back" | "folder" | "folder-open" | "file" | "file-code" | "file-json" | "file-text" | "terminal" | "shield" | "tool" | "plus" | "notification" | "settings" | "logout" | "home" | "workbench" | "apps" | "favorite" | "favorite-filled" | "drag-handle" | "edit" | "refresh" | "upload" | "save" | "more" | "preview" | "external-link" | "minus" | "plus-circle" | "close-circle" | "list" | "calendar" | "clock" | "lock" | "unlock" | "users" | "archive" | "package" | "plug" | "branch" | "tag" | "ai" | "shield-check" | "shield-alert" | "history";
|
|
216
222
|
menu: boolean;
|
|
217
223
|
caret: boolean;
|
|
218
224
|
disabled: boolean;
|
|
@@ -223,7 +229,7 @@ export declare const Button: import("vue").DefineComponent<import("vue").Extract
|
|
|
223
229
|
variant: ButtonVariant;
|
|
224
230
|
danger: boolean;
|
|
225
231
|
shape: ButtonShape;
|
|
226
|
-
trailingIcon: "
|
|
232
|
+
trailingIcon: "search" | "link" | "filter" | "copy" | "help" | "table" | "menu" | "delete" | "image" | "close" | "key" | "page-title" | "loading" | "info" | "alert" | "chevron-left" | "chevron-right" | "chevron-down" | "chevron-up" | "check" | "user" | "download" | "back" | "folder" | "folder-open" | "file" | "file-code" | "file-json" | "file-text" | "terminal" | "shield" | "tool" | "plus" | "notification" | "settings" | "logout" | "home" | "workbench" | "apps" | "favorite" | "favorite-filled" | "drag-handle" | "edit" | "refresh" | "upload" | "save" | "more" | "preview" | "external-link" | "minus" | "plus-circle" | "close-circle" | "list" | "calendar" | "clock" | "lock" | "unlock" | "users" | "archive" | "package" | "plug" | "branch" | "tag" | "ai" | "shield-check" | "shield-alert" | "history";
|
|
227
233
|
href: string;
|
|
228
234
|
target: string;
|
|
229
235
|
popoverTarget: string;
|
|
@@ -319,7 +325,7 @@ export declare const ButtonCompound: {
|
|
|
319
325
|
}>> & Readonly<{}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
|
|
320
326
|
block: boolean;
|
|
321
327
|
size: ControlSize;
|
|
322
|
-
icon: "
|
|
328
|
+
icon: "search" | "link" | "filter" | "copy" | "help" | "table" | "menu" | "delete" | "image" | "close" | "key" | "page-title" | "loading" | "info" | "alert" | "chevron-left" | "chevron-right" | "chevron-down" | "chevron-up" | "check" | "user" | "download" | "back" | "folder" | "folder-open" | "file" | "file-code" | "file-json" | "file-text" | "terminal" | "shield" | "tool" | "plus" | "notification" | "settings" | "logout" | "home" | "workbench" | "apps" | "favorite" | "favorite-filled" | "drag-handle" | "edit" | "refresh" | "upload" | "save" | "more" | "preview" | "external-link" | "minus" | "plus-circle" | "close-circle" | "list" | "calendar" | "clock" | "lock" | "unlock" | "users" | "archive" | "package" | "plug" | "branch" | "tag" | "ai" | "shield-check" | "shield-alert" | "history";
|
|
323
329
|
menu: boolean;
|
|
324
330
|
caret: boolean;
|
|
325
331
|
disabled: boolean;
|
|
@@ -330,7 +336,7 @@ export declare const ButtonCompound: {
|
|
|
330
336
|
variant: ButtonVariant;
|
|
331
337
|
danger: boolean;
|
|
332
338
|
shape: ButtonShape;
|
|
333
|
-
trailingIcon: "
|
|
339
|
+
trailingIcon: "search" | "link" | "filter" | "copy" | "help" | "table" | "menu" | "delete" | "image" | "close" | "key" | "page-title" | "loading" | "info" | "alert" | "chevron-left" | "chevron-right" | "chevron-down" | "chevron-up" | "check" | "user" | "download" | "back" | "folder" | "folder-open" | "file" | "file-code" | "file-json" | "file-text" | "terminal" | "shield" | "tool" | "plus" | "notification" | "settings" | "logout" | "home" | "workbench" | "apps" | "favorite" | "favorite-filled" | "drag-handle" | "edit" | "refresh" | "upload" | "save" | "more" | "preview" | "external-link" | "minus" | "plus-circle" | "close-circle" | "list" | "calendar" | "clock" | "lock" | "unlock" | "users" | "archive" | "package" | "plug" | "branch" | "tag" | "ai" | "shield-check" | "shield-alert" | "history";
|
|
334
340
|
href: string;
|
|
335
341
|
target: string;
|
|
336
342
|
popoverTarget: string;
|
|
@@ -431,7 +437,7 @@ export declare const ButtonCompound: {
|
|
|
431
437
|
}>> & Readonly<{}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, {
|
|
432
438
|
block: boolean;
|
|
433
439
|
size: ControlSize;
|
|
434
|
-
icon: "
|
|
440
|
+
icon: "search" | "link" | "filter" | "copy" | "help" | "table" | "menu" | "delete" | "image" | "close" | "key" | "page-title" | "loading" | "info" | "alert" | "chevron-left" | "chevron-right" | "chevron-down" | "chevron-up" | "check" | "user" | "download" | "back" | "folder" | "folder-open" | "file" | "file-code" | "file-json" | "file-text" | "terminal" | "shield" | "tool" | "plus" | "notification" | "settings" | "logout" | "home" | "workbench" | "apps" | "favorite" | "favorite-filled" | "drag-handle" | "edit" | "refresh" | "upload" | "save" | "more" | "preview" | "external-link" | "minus" | "plus-circle" | "close-circle" | "list" | "calendar" | "clock" | "lock" | "unlock" | "users" | "archive" | "package" | "plug" | "branch" | "tag" | "ai" | "shield-check" | "shield-alert" | "history";
|
|
435
441
|
menu: boolean;
|
|
436
442
|
caret: boolean;
|
|
437
443
|
disabled: boolean;
|
|
@@ -442,7 +448,7 @@ export declare const ButtonCompound: {
|
|
|
442
448
|
variant: ButtonVariant;
|
|
443
449
|
danger: boolean;
|
|
444
450
|
shape: ButtonShape;
|
|
445
|
-
trailingIcon: "
|
|
451
|
+
trailingIcon: "search" | "link" | "filter" | "copy" | "help" | "table" | "menu" | "delete" | "image" | "close" | "key" | "page-title" | "loading" | "info" | "alert" | "chevron-left" | "chevron-right" | "chevron-down" | "chevron-up" | "check" | "user" | "download" | "back" | "folder" | "folder-open" | "file" | "file-code" | "file-json" | "file-text" | "terminal" | "shield" | "tool" | "plus" | "notification" | "settings" | "logout" | "home" | "workbench" | "apps" | "favorite" | "favorite-filled" | "drag-handle" | "edit" | "refresh" | "upload" | "save" | "more" | "preview" | "external-link" | "minus" | "plus-circle" | "close-circle" | "list" | "calendar" | "clock" | "lock" | "unlock" | "users" | "archive" | "package" | "plug" | "branch" | "tag" | "ai" | "shield-check" | "shield-alert" | "history";
|
|
446
452
|
href: string;
|
|
447
453
|
target: string;
|
|
448
454
|
popoverTarget: string;
|
|
@@ -537,7 +543,7 @@ export declare const ButtonCompound: {
|
|
|
537
543
|
}>> & Readonly<{}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
|
|
538
544
|
block: boolean;
|
|
539
545
|
size: ControlSize;
|
|
540
|
-
icon: "
|
|
546
|
+
icon: "search" | "link" | "filter" | "copy" | "help" | "table" | "menu" | "delete" | "image" | "close" | "key" | "page-title" | "loading" | "info" | "alert" | "chevron-left" | "chevron-right" | "chevron-down" | "chevron-up" | "check" | "user" | "download" | "back" | "folder" | "folder-open" | "file" | "file-code" | "file-json" | "file-text" | "terminal" | "shield" | "tool" | "plus" | "notification" | "settings" | "logout" | "home" | "workbench" | "apps" | "favorite" | "favorite-filled" | "drag-handle" | "edit" | "refresh" | "upload" | "save" | "more" | "preview" | "external-link" | "minus" | "plus-circle" | "close-circle" | "list" | "calendar" | "clock" | "lock" | "unlock" | "users" | "archive" | "package" | "plug" | "branch" | "tag" | "ai" | "shield-check" | "shield-alert" | "history";
|
|
541
547
|
menu: boolean;
|
|
542
548
|
caret: boolean;
|
|
543
549
|
disabled: boolean;
|
|
@@ -548,7 +554,7 @@ export declare const ButtonCompound: {
|
|
|
548
554
|
variant: ButtonVariant;
|
|
549
555
|
danger: boolean;
|
|
550
556
|
shape: ButtonShape;
|
|
551
|
-
trailingIcon: "
|
|
557
|
+
trailingIcon: "search" | "link" | "filter" | "copy" | "help" | "table" | "menu" | "delete" | "image" | "close" | "key" | "page-title" | "loading" | "info" | "alert" | "chevron-left" | "chevron-right" | "chevron-down" | "chevron-up" | "check" | "user" | "download" | "back" | "folder" | "folder-open" | "file" | "file-code" | "file-json" | "file-text" | "terminal" | "shield" | "tool" | "plus" | "notification" | "settings" | "logout" | "home" | "workbench" | "apps" | "favorite" | "favorite-filled" | "drag-handle" | "edit" | "refresh" | "upload" | "save" | "more" | "preview" | "external-link" | "minus" | "plus-circle" | "close-circle" | "list" | "calendar" | "clock" | "lock" | "unlock" | "users" | "archive" | "package" | "plug" | "branch" | "tag" | "ai" | "shield-check" | "shield-alert" | "history";
|
|
552
558
|
href: string;
|
|
553
559
|
target: string;
|
|
554
560
|
popoverTarget: string;
|
|
@@ -25,15 +25,16 @@ export type CapsuleShape = 'pill' | 'square';
|
|
|
25
25
|
*
|
|
26
26
|
* ## 与面板组合(页签用法)
|
|
27
27
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
28
|
+
* 塞进 `Tabs` 的 `selector` 插槽即可:本件的 `onChange` 把选中值递给 `Tabs` 的 `select`,
|
|
29
|
+
* 面板显隐由 `Tabs` 按受控值下发 `hidden`。本件不认识 tabs,tabs 也不认识本件(两层零互指)。
|
|
30
|
+
* 故**不必**为了组合而给它 `name`(组名不传即按实例自动生成)。
|
|
30
31
|
*
|
|
31
32
|
* 状态三源等价:原生 `input:checked` / 组件下发 `[data-state='active'|'inactive']` / 静态档 `.is-selected`。
|
|
32
33
|
*
|
|
33
34
|
* ## 必须有值
|
|
34
35
|
*
|
|
35
36
|
* 单选语义就是必选其一:受控传 `modelValue`,非受控由 `defaultValue` 起,**两者都没给时缺省选中第一个
|
|
36
|
-
* 可选项**(跳过禁用项;没有可选项才是空值)—— 与 `Radio.Group` / `Radio.Card` / `
|
|
37
|
+
* 可选项**(跳过禁用项;没有可选项才是空值)—— 与 `Radio.Group` / `Radio.Card` / `Tabs` 同一条口径。
|
|
37
38
|
*
|
|
38
39
|
* @example 选项表
|
|
39
40
|
* <Capsule :options="[{label:'全部',value:'all'}]" v-model="v" />
|
|
@@ -42,10 +43,13 @@ export type CapsuleShape = 'pill' | 'square';
|
|
|
42
43
|
* <Capsule shape="square" :options="[{label:'全部',value:'all'}]" v-model="v" />
|
|
43
44
|
*
|
|
44
45
|
* @example 与面板组合(页签)
|
|
45
|
-
* <
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
46
|
+
* <Tabs v-model:value="v">
|
|
47
|
+
* {{
|
|
48
|
+
* selector: ({ value, options, select }) =>
|
|
49
|
+
* <Capsule :options="options" modelValue={value} onChange={select} />,
|
|
50
|
+
* default: () => [<TabPanel name="全部">…</TabPanel>, <TabPanel name="进行中">…</TabPanel>],
|
|
51
|
+
* }}
|
|
52
|
+
* </Tabs>
|
|
49
53
|
*/
|
|
50
54
|
export declare const Capsule: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
51
55
|
/** 选项表(也可用默认插槽自排) */
|
|
@@ -63,7 +67,7 @@ export declare const Capsule: import("vue").DefineComponent<import("vue").Extrac
|
|
|
63
67
|
type: PropType<string | number | undefined>;
|
|
64
68
|
default: undefined;
|
|
65
69
|
};
|
|
66
|
-
/**
|
|
70
|
+
/** 原生分组名(同名才互斥;不传即按实例自动生成) */
|
|
67
71
|
name: {
|
|
68
72
|
type: StringConstructor;
|
|
69
73
|
default: undefined;
|
|
@@ -111,7 +115,7 @@ export declare const Capsule: import("vue").DefineComponent<import("vue").Extrac
|
|
|
111
115
|
type: PropType<string | number | undefined>;
|
|
112
116
|
default: undefined;
|
|
113
117
|
};
|
|
114
|
-
/**
|
|
118
|
+
/** 原生分组名(同名才互斥;不传即按实例自动生成) */
|
|
115
119
|
name: {
|
|
116
120
|
type: StringConstructor;
|
|
117
121
|
default: undefined;
|
|
@@ -13,7 +13,7 @@ export type CardHeaderIcon = string | (() => VNodeChild);
|
|
|
13
13
|
* 也不得在应用侧写这四类属性 —— 需要不同形态就用本件的维度(`variant` / `interactive` /
|
|
14
14
|
* `selected` / `disabled`),或提为骨架层待建件。
|
|
15
15
|
*
|
|
16
|
-
* ##
|
|
16
|
+
* ## 几何来源(技能市场卡片实测,逐项落 `--ui-*` 令牌)
|
|
17
17
|
*
|
|
18
18
|
* - 圆角 8(`--ui-radius-md`)、内距 20(`--mh-card-padding`,原型 `p-5`)
|
|
19
19
|
* - 底 `--ui-base-100`、弱描边 `--ui-base-300`(原型 `border-border`)
|
|
@@ -36,7 +36,10 @@ function renderHeaderParts(parts) {
|
|
|
36
36
|
}, [parts.extra])];
|
|
37
37
|
}
|
|
38
38
|
const mergeSegmentStyle = (attrsStyle, padding) => {
|
|
39
|
-
if (padding === void 0) return attrsStyle;
|
|
39
|
+
if (padding === void 0 || padding === "") return attrsStyle;
|
|
40
|
+
if (typeof padding === "string") return [attrsStyle, {
|
|
41
|
+
padding
|
|
42
|
+
}];
|
|
40
43
|
const y = typeof padding === "number" ? padding : padding.y;
|
|
41
44
|
const x = typeof padding === "number" ? padding : padding.x;
|
|
42
45
|
const style = {};
|
|
@@ -54,7 +57,7 @@ const CardHeader = /* @__PURE__ */ defineComponent({
|
|
|
54
57
|
props: {
|
|
55
58
|
/** 这一段的内距(横向 + 段间距):缺省吃组件令牌 `--mh-card-padding`(20px);下边由卡片末段统一补 */
|
|
56
59
|
padding: {
|
|
57
|
-
type: [Number, Object],
|
|
60
|
+
type: [Number, Object, String],
|
|
58
61
|
default: void 0
|
|
59
62
|
},
|
|
60
63
|
/** 图标:图片地址或返回节点的函数(图标一律来自 `@manohub/icon`) */
|
|
@@ -96,7 +99,7 @@ const CardBody = /* @__PURE__ */ defineComponent({
|
|
|
96
99
|
props: {
|
|
97
100
|
/** 这一段的内距(横向 + 段间距):缺省吃组件令牌 `--mh-card-padding`(20px);下边由卡片末段统一补 */
|
|
98
101
|
padding: {
|
|
99
|
-
type: [Number, Object],
|
|
102
|
+
type: [Number, Object, String],
|
|
100
103
|
default: void 0
|
|
101
104
|
}
|
|
102
105
|
},
|
|
@@ -117,7 +120,7 @@ const CardFooter = /* @__PURE__ */ defineComponent({
|
|
|
117
120
|
props: {
|
|
118
121
|
/** 这一段的内距(横向 + 段间距):缺省吃组件令牌 `--mh-card-padding`(20px);下边由卡片末段统一补 */
|
|
119
122
|
padding: {
|
|
120
|
-
type: [Number, Object],
|
|
123
|
+
type: [Number, Object, String],
|
|
121
124
|
default: void 0
|
|
122
125
|
}
|
|
123
126
|
},
|
|
@@ -63,6 +63,7 @@ const Checkbox = /* @__PURE__ */ defineComponent({
|
|
|
63
63
|
const state = props.indeterminate ? "indeterminate" : props.modelValue ? "checked" : "unchecked";
|
|
64
64
|
return createVNode("label", {
|
|
65
65
|
"class": ["mh-checkbox", props.size === "md" ? "" : `mh-checkbox--${props.size}`, props.disabled ? "is-disabled" : "", attrs.class].filter(Boolean).join(" "),
|
|
66
|
+
"data-inline-control": "true",
|
|
66
67
|
"style": attrs.style
|
|
67
68
|
}, [createVNode("input", mergeProps(inputAttrs.value, {
|
|
68
69
|
"ref": inputRef,
|
|
@@ -256,8 +256,8 @@ export declare const Dialog: import("vue").DefineComponent<import("vue").Extract
|
|
|
256
256
|
onCancel: () => void;
|
|
257
257
|
onClose: () => void;
|
|
258
258
|
width: number | DialogWidth;
|
|
259
|
-
tone: DialogTone;
|
|
260
259
|
closable: boolean;
|
|
260
|
+
tone: DialogTone;
|
|
261
261
|
closeOnBackdrop: boolean;
|
|
262
262
|
maskClosable: boolean;
|
|
263
263
|
keyboard: boolean;
|