@manohub/ui 1.0.5 → 1.0.6

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 (83) hide show
  1. package/README.md +8 -2
  2. package/dist/components/badge/index.d.ts +24 -46
  3. package/dist/components/badge/index.js +7 -11
  4. package/dist/components/button/index.d.ts +11 -31
  5. package/dist/components/capsule/index.d.ts +13 -27
  6. package/dist/components/card/index.d.ts +21 -54
  7. package/dist/components/checkbox/index.d.ts +1 -9
  8. package/dist/components/code-block/index.d.ts +28 -55
  9. package/dist/components/collapse/index.d.ts +2 -0
  10. package/dist/components/dialog/index.d.ts +6 -15
  11. package/dist/components/divider/index.d.ts +1 -12
  12. package/dist/components/drawer/index.d.ts +7 -15
  13. package/dist/components/filter/index.d.ts +27 -69
  14. package/dist/components/filter/index.js +3 -8
  15. package/dist/components/form/index.d.ts +52 -132
  16. package/dist/components/form/index.js +5 -12
  17. package/dist/components/input/bordered.d.ts +4 -6
  18. package/dist/components/input/index.d.ts +31 -63
  19. package/dist/components/input/index.js +5 -7
  20. package/dist/components/input/number-input.d.ts +11 -23
  21. package/dist/components/layout/index.d.ts +21 -28
  22. package/dist/components/layout/index.js +5 -8
  23. package/dist/components/list-view/index.d.ts +10 -43
  24. package/dist/components/loading/index.d.ts +8 -19
  25. package/dist/components/nav/index.d.ts +14 -35
  26. package/dist/components/nav/index.js +1 -3
  27. package/dist/components/notice/index.d.ts +13 -33
  28. package/dist/components/notice/index.js +3 -5
  29. package/dist/components/notification/index.d.ts +0 -9
  30. package/dist/components/page/index.d.ts +8 -43
  31. package/dist/components/page/split-resize.d.ts +9 -18
  32. package/dist/components/pagination/index.d.ts +1 -5
  33. package/dist/components/panel/index.d.ts +27 -62
  34. package/dist/components/panel/index.js +1 -4
  35. package/dist/components/part-padding.d.ts +5 -13
  36. package/dist/components/query-state/index.d.ts +8 -32
  37. package/dist/components/radio/index.d.ts +2 -3
  38. package/dist/components/search/index.d.ts +12 -32
  39. package/dist/components/select/index.d.ts +7 -14
  40. package/dist/components/select/index.js +3 -3
  41. package/dist/components/select/select-panel.d.ts +23 -35
  42. package/dist/components/select/select-panel.js +5 -10
  43. package/dist/components/select/select-shared.d.ts +18 -44
  44. package/dist/components/select/select-tree.d.ts +11 -16
  45. package/dist/components/select/select-trigger.d.ts +6 -16
  46. package/dist/components/select/select-trigger.js +5 -11
  47. package/dist/components/skeleton/index.d.ts +1 -5
  48. package/dist/components/steps/index.d.ts +55 -111
  49. package/dist/components/steps/index.js +8 -16
  50. package/dist/components/switch/index.d.ts +17 -33
  51. package/dist/components/switch/index.js +2 -4
  52. package/dist/components/tabbar/index.d.ts +1 -6
  53. package/dist/components/table/index.d.ts +11 -63
  54. package/dist/components/table/index.js +4 -8
  55. package/dist/components/tabs/index.d.ts +22 -44
  56. package/dist/components/text/index.d.ts +10 -21
  57. package/dist/components/toast/index.d.ts +4 -13
  58. package/dist/components/tooltip/index.d.ts +1 -12
  59. package/dist/components/tree/index.d.ts +35 -77
  60. package/dist/components/tree/index.js +17 -33
  61. package/dist/components/upload/index.d.ts +1 -4
  62. package/dist/index.d.ts +2 -2
  63. package/dist/services/base.d.ts +32 -8
  64. package/dist/services/dialog.d.ts +10 -22
  65. package/dist/services/index.d.ts +2 -2
  66. package/dist/services/loading.d.ts +9 -12
  67. package/dist/services/loading.js +8 -1
  68. package/dist/services/toast.d.ts +4 -14
  69. package/dist/styles/components/button.css +2 -0
  70. package/dist/styles/components/capsule.css +2 -0
  71. package/dist/styles/components/checkbox.css +2 -0
  72. package/dist/styles/components/form.css +23 -28
  73. package/dist/styles/components/input.css +53 -71
  74. package/dist/styles/components/notice.css +2 -0
  75. package/dist/styles/components/page.css +25 -31
  76. package/dist/styles/components/pagination.css +4 -0
  77. package/dist/styles/components/radio.css +2 -0
  78. package/dist/styles/components/search.css +8 -10
  79. package/dist/styles/components/switch.css +2 -0
  80. package/dist/styles/components/tabbar.css +2 -0
  81. package/dist/styles/components/table.css +34 -41
  82. package/dist/styles/components/upload.css +2 -0
  83. package/package.json +2 -2
@@ -1,33 +1,30 @@
1
1
  /**
2
2
  * Table —— 表格(表头/行/单元格类型 + 行态四档 + 固定表头与列 + 批量栏与合计行)。
3
3
  *
4
- * 出处(两套来源在关键几何上一致,故没有取舍余地):设计稿《MH后台-0911》表头 **34**
5
- * (`0:3962`)/ 行 **30**(`0:3956`–`0:3961`,节距 31 = 30 + 1px 线)/ 表头底 `#f1f2f5`
6
- * (= `--ui-base-200`)/ 行线 `#e6e6e6` / 外框 `#e6e6e6 @1` / 选中行底 `#dbe9ff`
7
- * (= `--ui-primary-subtle`);规范侧同值(勾选列 40 / 拖拽线 3×40 / 合计行 40)。
8
- *
9
- * 行态:表头底 `--ui-base-200` + 字 `--ui-base-content-muted` + 中粗 / 外框 1px `--ui-base-300` /
10
- * 斑马与禁用 `--ui-base-200` / 滑过 `--ui-primary-weak` / 选中 `--ui-primary-subtle`(**只底色**)。
11
- *
12
- * ⚠️ **单元格左右内距保持 16(`--ui-space-4`)**:设计稿可量的只有「勾选框距表左 20」,而它量的是
13
- * **内容盒**(勾选列 40 宽 + 居中时内容盒落在 13 处),无法唯一反推内距,故不作推测性改动。
4
+ * 出处(两套来源在关键几何上一致,故没有取舍余地):设计稿《MH后台-0911》表头 **34**(`0:3962`)/ 行 **30**
5
+ * (`0:3956`–`0:3961`,节距 31 = 30 + 1px 线)/ 表头底 `#f1f2f5`(= `--ui-base-200`)/ 行线 `#e6e6e6` /
6
+ * 外框 `#e6e6e6 @1` / 选中行底 `#dbe9ff`(= `--ui-primary-subtle`);规范侧同值(勾选列 40 / 拖拽线 3×40 /
7
+ * 合计行 40)。
8
+ * 行态:表头底 `--ui-base-200` + 字 `--ui-base-content-muted` + 中粗 / 外框 1px `--ui-base-300` / 斑马与禁用
9
+ * `--ui-base-200` / 滑过 `--ui-primary-weak` / 选中 `--ui-primary-subtle`(**只底色**)。
10
+ * ⚠️ **单元格左右内距保持 16(`--ui-space-4`)**:设计稿可量的只有「勾选框距表左 20」,而它量的是**内容盒**
11
+ * (勾选列 40 宽 + 居中时内容盒落在 13 处),无法唯一反推内距,故不作推测性改动。
14
12
  *
15
13
  * 四条必须照做的**结构**决定(做错就与规范不是一回事):
16
- *
17
- * 1. **边框模型**:默认是外框 + 表头下分割线 + 每行底线(末行去线)⇒ `border-collapse: separate`
18
- * + `border-spacing: 0`(圆角只在 separate 下渲染得出来);`--borderless` 才切回 `collapse` 并去外框。
19
- * **三条线之外的边一律显式清零**(`border: 0` 写在 `th` / `td` / `tr` 上,不是冗余):特异性只在
20
- * **同一属性**上分胜负,宿主给单元格/行下的整圈边框(典型 markdown 正文的 `.vp-doc th { border }`)
21
- * 不会被「没写的边」顶掉,否则与表外框、行交界处各叠成 2px,还凭空多出列分隔线。
14
+ * 1. **边框模型**:默认是外框 + 表头下分割线 + 每行底线(末行去线)⇒ `border-collapse: separate` +
15
+ * `border-spacing: 0`(圆角只在 separate 下渲染得出来);`--borderless` 才切回 `collapse` 并去外框。
16
+ * **三条线之外的边一律显式清零**(`border: 0` 写在 `th` / `td` / `tr` 上,不是冗余):特异性只在**同一
17
+ * 属性**上分胜负,宿主给单元格 / 行下的整圈边框(典型 markdown 正文的 `.vp-doc th { border }`)不会被
18
+ * 「没写的边」顶掉,否则与表外框、行交界处各叠成 2px,还凭空多出列分隔线。
22
19
  * 2. **斑马纹是显式类**(`.is-striped`)而非 `:nth-child(even)`:表里可以插分组行,`nth-child` 会整表错位。
23
- * 3. **行选中由行内的选择控件驱动**(`tr:has(.mh-table__col-check input:checked)`):零 JS 也能选中;
24
- * 组件态给 `[data-state='selected']`、静态档给 `.is-selected` —— 三源等价。勾选列复用 `Checkbox`
25
- * **组件**(它内部才是真实 `<input type="checkbox">`,故 `:has()` 成立;框体与半选状态归它自己的样式)。
26
- * ⚠️ **选择器必须限定在勾选列内**:不限列时功能列里任何「内部本来就是 checkbox」的件都会命中
27
- * —— `Switch` 内部正是 `<input type="checkbox">`,于是「启用」这类**功能值**会把整行点亮。
20
+ * 3. **行选中由行内的选择控件驱动**(`tr:has(.mh-table__col-check input:checked)`):零 JS 也能选中;组件态给
21
+ * `[data-state='selected']`、静态档给 `.is-selected` —— 三源等价。勾选列复用 `Checkbox` **组件**(它内部才是
22
+ * 真实 `<input type="checkbox">`,故 `:has()` 成立;框体与半选状态归它自己的样式)。⚠️ **选择器必须限定在
23
+ * 勾选列内**:不限列时功能列里任何「内部本来就是 checkbox」的件都会命中 —— `Switch` 内部正是
24
+ * `<input type="checkbox">`,于是「启用」这类**功能值**会把整行点亮。
28
25
  * 4. **固定列必须自带底**(`background: var(--ui-base-100)`):它是 sticky 的,不遮挡就会被滚过的单元格透出。
29
26
  *
30
- * **不做**:排序与列宽拖拽的**算法**(规范只给 `↕` 字形与 3×40 拖拽线两处视觉),也不做空态/加载态
27
+ * **不做**:排序与列宽拖拽的**算法**(规范只给 `↕` 字形与 3×40 拖拽线两处视觉),也不做空态 / 加载态
31
28
  * (三态归 `QueryState`)。
32
29
  */
33
30
  .mh-table-wrapper {
@@ -76,16 +73,14 @@
76
73
  }
77
74
 
78
75
  /* ===== 固定布局档(`layout="fixed"`)=====
79
- * 列宽由 `<colgroup>` 下发,本档只把布局算法换成 `fixed`:列宽从此**受声明约束、不再被内容撑破**
80
- * ⇒ 长文本不会把表格撑得比容器还宽,「百分比 / 数字权重」可以吃满容器 + 严格按比例。
81
- * 调用方要知道的:表体**默认不换行**(见下条);要换行的列显式标 `wrap: true`。 */
76
+ * 列宽由 `<colgroup>` 下发,本档只把布局算法换成 `fixed`:列宽从此**受声明约束、不再被内容撑破** ⇒ 长文本不会把表格撑得比容器还宽,
77
+ * 「百分比 / 数字权重」可以吃满容器 + 严格按比例。调用方要知道的:表体**默认不换行**(见下条),要换行的列显式标 `wrap: true`。 */
82
78
  .mh-table--fixed {
83
79
  table-layout: fixed;
84
80
  }
85
- /* `fixed` 档表体默认**不换行**。两条依据:① 列宽已被 `<colgroup>` 钉死,换行救不回内容、只会顶高行高
86
- * (`td` 的 `height` 只是下限);② 换行必然伴随**从字符间断字** —— 实测序号列窄到装不下两位数时,
87
- * `overflow-wrap: anywhere` 把 `10` 拆成 `1` / `0` 两行,行高 30 → **49**。
88
- * 于是「换行」改成**列级主动选择**(`TableColumn.wrap: true`,见 `.mh-table__cell-wrap`)。
81
+ /* `fixed` 档表体默认**不换行**。两条依据:① 列宽已被 `<colgroup>` 钉死,换行救不回内容、只会顶高行高(`td` 的
82
+ * `height` 只是下限);② 换行必然伴随**从字符间断字** —— 实测序号列窄到装不下两位数时,`overflow-wrap: anywhere`
83
+ * 把 `10` 拆成 `1` / `0` 两行,行高 30 → **49**。于是「换行」改成**列级主动选择**(`TableColumn.wrap`)。
89
84
  * ⚠️ **只在本档翻默认**:`auto` 档的列宽由内容计算,td 默认 nowrap 会让长文本列不再靠换行收敛。 */
90
85
  .mh-table--fixed tbody td {
91
86
  overflow: hidden;
@@ -204,10 +199,10 @@
204
199
  text-align: right;
205
200
  }
206
201
 
207
- /* ⚠️ **表头要把对齐重声明一遍**:下面几条与 `.mh-table__cell-center` / `--cell-amount` 都只有
208
- * **0-1-0**,而 `.mh-table thead th { text-align: left }` 是 **0-1-1** ⇒ 表头被强拉成左对齐、与表体不齐
209
- * (实测勾选列表头左留白 0 / 右留白 26,错位 13px;右对齐列的标题也被拉到左边)。
210
- * 只补 `text-align`(`thead th` 没声明过其它会被这些类覆盖的属性)。写法沿用 `th.mh-table__th-group`。 */
202
+ /* ⚠️ **表头要把对齐重声明一遍**:下面几条与 `--cell-center` / `--cell-amount` 都只有 **0-1-0**,而
203
+ * `.mh-table thead th { text-align: left }` 是 **0-1-1** ⇒ 表头被强拉成左对齐、与表体不齐(实测勾选列表头
204
+ * 左留白 0 / 右留白 26,错位 13px;右对齐列的标题也被拉到左边)。只补 `text-align`(`thead th` 没声明过其它会被
205
+ * 这些类覆盖的属性),写法沿用 `th.mh-table__th-group`。 */
211
206
  .mh-table thead th.mh-table__col-check,
212
207
  .mh-table thead th.mh-table__cell-center {
213
208
  text-align: center;
@@ -227,10 +222,9 @@
227
222
  z-index: 2; /* 表头既钉顶又钉左,压住表头其余列 */
228
223
  background: var(--ui-table-head-bg);
229
224
  }
230
- /* `--sticky-head`:表头钉顶。
231
- * ⚠️ 选择器必须带 `tr`(0-1-3):文件后段「拖拽线的定位上下文」那条 `.mh-table thead th` 是 **0-1-2**,
232
- * 与不写 `tr` 的写法同特异性且在后 ⇒ 会覆盖 `position: sticky`,`stickyHead` 静默失效。
233
- * `sticky` 同样是定位元素,照样给表头里的拖拽线当包含块,故加 `tr` 不损失原能力。 */
225
+ /* `--sticky-head`:表头钉顶。⚠️ 选择器必须带 `tr`(0-1-3):文件后段「拖拽线的定位上下文」那条
226
+ * `.mh-table thead th` 是 **0-1-2**,与不写 `tr` 的写法同特异性且在后 ⇒ 会覆盖 `position: sticky`,
227
+ * `stickyHead` 静默失效。`sticky` 同样是定位元素,照样给表头里的拖拽线当包含块,故加 `tr` 不损失原能力。 */
234
228
  .mh-table--sticky-head thead tr th {
235
229
  position: sticky;
236
230
  top: 0;
@@ -282,10 +276,9 @@
282
276
  color: var(--ui-error);
283
277
  }
284
278
 
285
- /* 单元格里的编辑控件:**表格面不为它写规则** —— 编辑格由调用方在 `#cell` 插槽里自己摆
286
- * (`Input` / `Select` / `NumberInput`,外层可套 `Form.Item`),框 / 内距 / 错误档全沿用 form / input
287
- * 两族既有口径。唯一要提醒的是**列宽**:`table-layout: auto` 下输入框的最小内容宽会把窄列顶开,
288
- * 列宽要守得住就开 `layout="fixed"`。 */
279
+ /* 单元格里的编辑控件:**表格面不为它写规则** —— 编辑格由调用方在 `#cell` 插槽里自己摆(`Input` / `Select` /
280
+ * `NumberInput`,外层可套 `Form.Item`),框 / 内距 / 错误档全沿用 form / input 两族既有口径。唯一要提醒的是
281
+ * **列宽**:`table-layout: auto` 下输入框的最小内容宽会把窄列顶开,列宽要守得住就开 `layout="fixed"`。 */
289
282
 
290
283
  /* 状态点(语义四档) */
291
284
  .mh-table__status-dot {
@@ -17,6 +17,8 @@
17
17
  display: flex;
18
18
  flex-direction: column;
19
19
  gap: var(--ui-space-3);
20
+ /* 定位上下文:隐身 file input 的包含块必须落在控件内,否则逃出滚动容器裁剪、撑大文档滚动高度 */
21
+ position: relative;
20
22
  }
21
23
 
22
24
  /* ===== 拖拽 / 点击上传区(整块即触发器) ===== */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manohub/ui",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "AIHub 自绘组件层:不依赖 farris 的手写 Vue TSX 组件 + 自带令牌层(Farris 规范视觉 · daisyUI 式语义令牌 · shadcn 式 API 词汇)。",
@@ -35,7 +35,7 @@
35
35
  "vue": "^3.5.0"
36
36
  },
37
37
  "dependencies": {
38
- "@manohub/icon": "^1.0.5"
38
+ "@manohub/icon": "^1.0.6"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/node": "^24.0.0",