@manohub/ui 0.10.2 → 0.10.4

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 (54) hide show
  1. package/README.md +1 -1
  2. package/dist/components/badge/index.d.ts +46 -1
  3. package/dist/components/badge/index.js +42 -9
  4. package/dist/components/card/index.d.ts +1 -1
  5. package/dist/components/drawer/index.d.ts +1 -1
  6. package/dist/components/filter/index.d.ts +74 -6
  7. package/dist/components/filter/index.js +38 -10
  8. package/dist/components/form/index.d.ts +50 -1
  9. package/dist/components/form/index.js +20 -2
  10. package/dist/components/input/index.js +1 -0
  11. package/dist/components/nav/index.d.ts +27 -0
  12. package/dist/components/nav/index.js +12 -0
  13. package/dist/components/notice/index.d.ts +1 -1
  14. package/dist/components/notification/index.d.ts +2 -2
  15. package/dist/components/select/index.d.ts +9 -0
  16. package/dist/components/select/index.js +57 -12
  17. package/dist/components/select/select-list.d.ts +42 -8
  18. package/dist/components/select/select-list.js +36 -11
  19. package/dist/components/select/select-panel.d.ts +36 -8
  20. package/dist/components/select/select-panel.js +18 -4
  21. package/dist/components/select/select-shared.d.ts +51 -10
  22. package/dist/components/select/select-shared.js +12 -2
  23. package/dist/components/select/select-tree.d.ts +25 -3
  24. package/dist/components/select/select-tree.js +17 -6
  25. package/dist/components/select/select-trigger.d.ts +21 -0
  26. package/dist/components/select/select-trigger.js +15 -1
  27. package/dist/components/tabs/index.d.ts +22 -0
  28. package/dist/components/tabs/index.js +6 -0
  29. package/dist/components/tag/index.d.ts +32 -153
  30. package/dist/components/tag/index.js +102 -101
  31. package/dist/components/text/index.d.ts +1 -1
  32. package/dist/components/tooltip/index.d.ts +1 -1
  33. package/dist/components/tree/index.d.ts +65 -0
  34. package/dist/components/tree/index.js +29 -2
  35. package/dist/index.d.ts +2 -2
  36. package/dist/styles/components/avatar.css +2 -2
  37. package/dist/styles/components/badge.css +21 -1
  38. package/dist/styles/components/badge.tokens.css +24 -0
  39. package/dist/styles/components/button.css +7 -6
  40. package/dist/styles/components/button.tokens.css +5 -2
  41. package/dist/styles/components/capsule.css +8 -0
  42. package/dist/styles/components/divider.css +8 -4
  43. package/dist/styles/components/divider.tokens.css +2 -1
  44. package/dist/styles/components/form.css +51 -0
  45. package/dist/styles/components/notification.css +1 -1
  46. package/dist/styles/components/select.css +62 -39
  47. package/dist/styles/components/select.tokens.css +15 -8
  48. package/dist/styles/components/tag.css +77 -154
  49. package/dist/styles/components/tag.tokens.css +13 -22
  50. package/dist/styles/components/tree.css +37 -3
  51. package/dist/styles/components/tree.tokens.css +4 -3
  52. package/dist/styles/components/upload.tokens.css +1 -1
  53. package/dist/styles/index.css +2 -1
  54. package/package.json +2 -2
@@ -11,15 +11,15 @@
11
11
  * **整支保留**,并强制全展到命中层(算法与切分都是纯函数,见 `select-tree-filter.ts`);
12
12
  * 命中文本按面层的 `.mh-select__hit` 高亮(靠 `Tree` 的可选 `renderLabel` 钩子落进标签槽)。
13
13
  * 3. **面板内限高滚动**:限高归面板(`.mh-select__panel` 的 `--ui-select-panel-max-height`)、
14
- * 溢出由面板内容区(`.mh-select__body`)承担;本件只把树包在 `.mh-select__tree` 里给内距
15
- * —— 限高不由形态自持,列表形态共用同一份。
14
+ * 溢出与内容内距都由面板内容区(`.mh-select__body`)承担 —— 两形态共用同一份,本件因此
15
+ * 把树**直接**装进内容区,不再自持一层只给内距的包裹(限高与内距都不由形态自持)。
16
16
  *
17
17
  * ## 与 `Select` 的三处有意差异(都是「树不是列表」决定的)
18
18
  *
19
19
  * | 事项 | `Select` | `SelectTree` |
20
20
  * | --- | --- | --- |
21
21
  * | 值 | `string \| number \| Array<…>` | 只单选、只 `string`(`Tree` 的主键本就 `String()` 化) |
22
- * | 面板内 ↑↓ 行导航 | 有(选项是真实 `<button>`,焦点即高亮) | **无**(树的行是 `div`、没有 tabindex;`Tree` 自身也不做键盘导航) |
22
+ * | 面板内 ↑↓ 行导航 | 有(高亮位由 `data-active` 表达,焦点留在触发器上) | **无**(树的行不做键盘导航,与 `Tree` 自身同口径) |
23
23
  * | 空 / 加载态 | 列表体的内建行 | 面板内同样出一行文字(**不复用**整件三态容器:下拉里出空态插画太重) |
24
24
  *
25
25
  * @example 基础单选
@@ -139,6 +139,16 @@ export declare const SelectTree: import("vue").DefineComponent<import("vue").Ext
139
139
  type: PropType<(keyword: string) => void>;
140
140
  default: undefined;
141
141
  };
142
+ /** 面板里树行的节点图标(标签前的一位图标):透传给 `Tree.renderIcon` */
143
+ renderIcon: {
144
+ type: PropType<(node: TreeNode) => unknown>;
145
+ default: undefined;
146
+ };
147
+ /** 面板里树行的展开 / 收起箭头字形:透传给 `Tree.renderCaret` */
148
+ renderCaret: {
149
+ type: PropType<(node: TreeNode, expanded: boolean) => unknown>;
150
+ default: undefined;
151
+ };
142
152
  }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
143
153
  'update:modelValue': (v: string) => true;
144
154
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -248,6 +258,16 @@ export declare const SelectTree: import("vue").DefineComponent<import("vue").Ext
248
258
  type: PropType<(keyword: string) => void>;
249
259
  default: undefined;
250
260
  };
261
+ /** 面板里树行的节点图标(标签前的一位图标):透传给 `Tree.renderIcon` */
262
+ renderIcon: {
263
+ type: PropType<(node: TreeNode) => unknown>;
264
+ default: undefined;
265
+ };
266
+ /** 面板里树行的展开 / 收起箭头字形:透传给 `Tree.renderCaret` */
267
+ renderCaret: {
268
+ type: PropType<(node: TreeNode, expanded: boolean) => unknown>;
269
+ default: undefined;
270
+ };
251
271
  }>> & Readonly<{
252
272
  "onUpdate:modelValue"?: ((v: string) => any) | undefined;
253
273
  }>, {
@@ -257,6 +277,8 @@ export declare const SelectTree: import("vue").DefineComponent<import("vue").Ext
257
277
  loading: boolean;
258
278
  labelKey: string;
259
279
  childrenKey: string;
280
+ renderCaret: (node: TreeNode, expanded: boolean) => unknown;
281
+ renderIcon: (node: TreeNode) => unknown;
260
282
  expandedKeys: string[];
261
283
  defaultExpandedKeys: string[];
262
284
  defaultExpandAll: boolean;
@@ -113,6 +113,16 @@ const SelectTree = /* @__PURE__ */ defineComponent({
113
113
  onSearch: {
114
114
  type: Function,
115
115
  default: void 0
116
+ },
117
+ /** 面板里树行的节点图标(标签前的一位图标):透传给 `Tree.renderIcon` */
118
+ renderIcon: {
119
+ type: Function,
120
+ default: void 0
121
+ },
122
+ /** 面板里树行的展开 / 收起箭头字形:透传给 `Tree.renderCaret` */
123
+ renderCaret: {
124
+ type: Function,
125
+ default: void 0
116
126
  }
117
127
  },
118
128
  emits: {
@@ -184,7 +194,8 @@ const SelectTree = /* @__PURE__ */ defineComponent({
184
194
  disabled: props.disabled,
185
195
  clear,
186
196
  openPanel: () => showPanel(panelRef.value)
187
- /* 有意不给 `focusFirst`:树的行是 `div`、没有 tabindex,面板内不做 ↑↓ 行导航 */
197
+ /* 有意不给 `moveActive` / `commitActive`:树不做面板内键盘导航(行不可聚焦、与 `Tree` 自身
198
+ 同口径),故 `↑` / `↓` 只开面板、`Enter` / `Space` 仍归按钮的原生切换行为 */
188
199
  });
189
200
  const renderHitLabel = (node) => createVNode(Fragment, null, [splitHighlight(treeLabel(node, props.labelKey), keyword.value).map((segment, index) => segment.hit ? createVNode("span", {
190
201
  "key": index,
@@ -228,9 +239,7 @@ const SelectTree = /* @__PURE__ */ defineComponent({
228
239
  "class": "mh-select__option mh-select__option--empty"
229
240
  }, [props.emptyText]);
230
241
  }
231
- return createVNode("div", {
232
- "class": "mh-select__tree"
233
- }, [createVNode(Tree, {
242
+ return createVNode(Tree, {
234
243
  "nodes": visibleNodes.value,
235
244
  "rowKey": props.rowKey,
236
245
  "labelKey": props.labelKey,
@@ -239,8 +248,10 @@ const SelectTree = /* @__PURE__ */ defineComponent({
239
248
  "expandedKeys": expandedKeys.value,
240
249
  "onExpandChange": handleExpandChange,
241
250
  "onSelect": pick,
242
- "renderLabel": highlightLabel
243
- }, null)]);
251
+ "renderLabel": highlightLabel,
252
+ "renderIcon": props.renderIcon,
253
+ "renderCaret": props.renderCaret
254
+ }, null);
244
255
  }
245
256
  })]);
246
257
  };
@@ -45,6 +45,16 @@ export declare const SelectTrigger: import("vue").DefineComponent<import("vue").
45
45
  type: StringConstructor;
46
46
  default: undefined;
47
47
  };
48
+ /**
49
+ * 键盘高亮行的 id(`aria-activedescendant`,**列表形态专用**)。
50
+ *
51
+ * 选项是 `div[role='option']`、不可聚焦,焦点留在本按钮上 ⇒ 高亮项要靠这个属性告诉读屏。
52
+ * 树形态不给(树的行不做键盘导航,见 `SelectTree`)。
53
+ */
54
+ activeDescendant: {
55
+ type: StringConstructor;
56
+ default: undefined;
57
+ };
48
58
  /** 触发器上的键盘契约(`createTriggerKeydown()` 产出,两件同源) */
49
59
  onKeydown: {
50
60
  type: PropType<(event: KeyboardEvent) => void>;
@@ -104,6 +114,16 @@ export declare const SelectTrigger: import("vue").DefineComponent<import("vue").
104
114
  type: StringConstructor;
105
115
  default: undefined;
106
116
  };
117
+ /**
118
+ * 键盘高亮行的 id(`aria-activedescendant`,**列表形态专用**)。
119
+ *
120
+ * 选项是 `div[role='option']`、不可聚焦,焦点留在本按钮上 ⇒ 高亮项要靠这个属性告诉读屏。
121
+ * 树形态不给(树的行不做键盘导航,见 `SelectTree`)。
122
+ */
123
+ activeDescendant: {
124
+ type: StringConstructor;
125
+ default: undefined;
126
+ };
107
127
  /** 触发器上的键盘契约(`createTriggerKeydown()` 产出,两件同源) */
108
128
  onKeydown: {
109
129
  type: PropType<(event: KeyboardEvent) => void>;
@@ -130,5 +150,6 @@ export declare const SelectTrigger: import("vue").DefineComponent<import("vue").
130
150
  clearable: boolean;
131
151
  hasValue: boolean;
132
152
  onClear: () => void;
153
+ activeDescendant: string;
133
154
  renderValue: () => VNodeChild;
134
155
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -48,6 +48,16 @@ const SelectTrigger = /* @__PURE__ */ defineComponent({
48
48
  type: String,
49
49
  default: void 0
50
50
  },
51
+ /**
52
+ * 键盘高亮行的 id(`aria-activedescendant`,**列表形态专用**)。
53
+ *
54
+ * 选项是 `div[role='option']`、不可聚焦,焦点留在本按钮上 ⇒ 高亮项要靠这个属性告诉读屏。
55
+ * 树形态不给(树的行不做键盘导航,见 `SelectTree`)。
56
+ */
57
+ activeDescendant: {
58
+ type: String,
59
+ default: void 0
60
+ },
51
61
  /** 触发器上的键盘契约(`createTriggerKeydown()` 产出,两件同源) */
52
62
  onKeydown: {
53
63
  type: Function,
@@ -80,8 +90,12 @@ const SelectTrigger = /* @__PURE__ */ defineComponent({
80
90
  popovertarget: props.panelId,
81
91
  "aria-haspopup": "listbox",
82
92
  /* 开合态由原生 popover 与 popup.css 的箭头转向承担,本件不维护第二份;
83
- 恒定 'false' 是既有口径(输入面的触发器形态不跟踪 popover 的开关状态) */
93
+ 恒定 'false' 是既有口径(输入面的触发器形态不跟踪 popover 的开关状态)。
94
+ ⚠️ 这与 `aria-activedescendant`(下面那条)**都是焦点留在触发器上的必然结果**:
95
+ 真的做完整要连 `aria-expanded` 一起跟踪开合态,那是另一次改动(见 select.md 的注意事项)。 */
84
96
  "aria-expanded": "false",
97
+ /* 高亮行引用(列表形态给、树形态不给):值 `undefined` 时 Vue 会整个摘掉这个属性 */
98
+ "aria-activedescendant": props.activeDescendant,
85
99
  onKeydown: props.onKeydown
86
100
  },
87
101
  "onChange": () => props.onClear?.()
@@ -1,4 +1,5 @@
1
1
  import { type PropType, type SlotsType, type VNode, type VNodeChild } from 'vue';
2
+ import type { ControlSize } from '../control-size';
2
3
  /** 轨道项:`Tabs` 从 `TabPanel` 提取(写了面板时)或由 `options` 直接给(老写法) */
3
4
  export interface TabsOption {
4
5
  /** 项文字 */
@@ -19,6 +20,14 @@ export interface TabsProps {
19
20
  onChange?: (value: string | number) => void;
20
21
  /** 惰性档:只有激活的面板才渲染(切走即卸载),用于面板很重(图表 / 大表格)的场景 */
21
22
  lazy?: boolean;
23
+ /**
24
+ * **缺省皮肤的尺寸档**(`sm` / `md` / `lg`,即 24 / 32 / 40)—— 只透传给缺省皮肤 `TabBar`。
25
+ *
26
+ * 传了 `selector` 插槽时本档**整块失效**:那时尺寸归你放进来的那个控件自己管
27
+ * (`Capsule` / 分段按钮各有自己的 `size`),本件也不给它加任何类 —— 有意不给
28
+ * 「一处声明、两处打架」的机会。
29
+ */
30
+ size?: ControlSize;
22
31
  }
23
32
  /** 一块面板的信息(本件只承载这些,自己不画任何东西) */
24
33
  export interface TabPanelProps {
@@ -110,6 +119,8 @@ export declare const TabPanel: import("vue").DefineComponent<import("vue").Extra
110
119
  * - 传插槽则整块替换:放 `Capsule`(胶囊)、按钮族的分段形态、单选卡片都行,
111
120
  * 作用域参数 `{ value, options, select }` 把值、项(已含从 `TabPanel` 提取的那些)与选中回调
112
121
  * 递出来。本件不认识任何选择控件的类名 —— **控制器与骨架零互指**,换皮肤不必动本件。
122
+ * - 尺寸档 `size` **只在缺省这条路上生效**:它原样透传给 `TabBar`(高度 24 / 32 / 40 + 同级字号,
123
+ * 只覆盖 `--ui-tabbar-*` 令牌);换了皮肤,尺寸归你的控件自己管,本件不代它加类。
113
124
  *
114
125
  * ## 显隐只有一条路径
115
126
  * 本件按受控值给非选中面板下发 `hidden`,**与控件形态无关**(是不是原生 radio 都一样)。
@@ -157,6 +168,11 @@ export declare const Tabs: import("vue").DefineComponent<import("vue").ExtractPr
157
168
  type: BooleanConstructor;
158
169
  default: boolean;
159
170
  };
171
+ /** 缺省皮肤的尺寸档(`sm` / `md` / `lg`);口径见 `TabsProps.size` */
172
+ size: {
173
+ type: PropType<ControlSize>;
174
+ default: string;
175
+ };
160
176
  }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
161
177
  'update:value': (value: string | number) => true;
162
178
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -180,9 +196,15 @@ export declare const Tabs: import("vue").DefineComponent<import("vue").ExtractPr
180
196
  type: BooleanConstructor;
181
197
  default: boolean;
182
198
  };
199
+ /** 缺省皮肤的尺寸档(`sm` / `md` / `lg`);口径见 `TabsProps.size` */
200
+ size: {
201
+ type: PropType<ControlSize>;
202
+ default: string;
203
+ };
183
204
  }>> & Readonly<{
184
205
  "onUpdate:value"?: ((value: string | number) => any) | undefined;
185
206
  }>, {
207
+ size: ControlSize;
186
208
  value: string | number | undefined;
187
209
  onChange: (value: string | number) => void;
188
210
  options: TabsOption[];
@@ -55,6 +55,11 @@ const Tabs = /* @__PURE__ */ defineComponent({
55
55
  lazy: {
56
56
  type: Boolean,
57
57
  default: false
58
+ },
59
+ /** 缺省皮肤的尺寸档(`sm` / `md` / `lg`);口径见 `TabsProps.size` */
60
+ size: {
61
+ type: String,
62
+ default: "md"
58
63
  }
59
64
  },
60
65
  /* 同 `TabBar`:受控值必须 emit 回 `update:value`,否则 `v-model:value="current"` 静默失效
@@ -116,6 +121,7 @@ const Tabs = /* @__PURE__ */ defineComponent({
116
121
  }) : createVNode(TabBar, {
117
122
  "options": items,
118
123
  "value": current,
124
+ "size": props.size,
119
125
  "onChange": select
120
126
  }, null), createVNode("div", {
121
127
  "class": "mh-tabs-panels"
@@ -1,203 +1,82 @@
1
- import { type IconName } from '@manohub/icon';
2
1
  import { type PropType, type SlotsType, type VNodeChild } from 'vue';
3
- import type { ControlSize } from '../control-size';
2
+ import { type BadgeShape, type BadgeSize, type BadgeTone } from '../badge';
3
+ /** 本件的形态:`Badge` 的三档 + `add`(新增入口,本件扩展档) */
4
+ export type TagShape = BadgeShape | 'add';
4
5
  export interface TagProps {
5
6
  /**
6
7
  * 形态:
7
- * - `regular`(缺省)常规内容标签
8
- * - `status` 状态标签(配 `tone` 用四色)
9
- * - `select` 可选标签(渲染隐身原生 radio,选中态实底主色)
10
- * - `add` 新增标签(虚线框 + 加号图标,点击回调)
11
- * - `chip` 轻量筛选片
8
+ * - `soft`(缺省)/ `outline` / `plain` —— 转发给 `Badge` 的同名档;
9
+ * - `add` 新增入口:虚线入口点击后就地变窄输入框,`Enter` 提交回调 `onAdd`。
12
10
  */
13
- shape?: 'regular' | 'status' | 'select' | 'add' | 'chip';
14
- /** 状态档语义(只用 `shape="status"`) */
15
- tone?: 'info' | 'success' | 'warning' | 'error';
16
- /** 尺寸档(20 / 24 / 28) */
17
- size?: ControlSize;
18
- /** 大号档(= `size="lg"`,保留的既有写法) */
19
- lg?: boolean;
20
- /** 前置图标(图标包的闭合枚举) */
21
- icon?: IconName;
22
- /** 描边档:浅主色底 + 浅主色边(设计稿的标签配方,配 `size="sm"` 即「表格内标签」) */
23
- outline?: boolean;
24
- /** 可关闭(右端出现关闭位) */
11
+ shape?: TagShape;
12
+ /** 语义色档(转发 `Badge`;缺省 `default` 是中性面) */
13
+ tone?: BadgeTone;
14
+ /** 尺寸档(转发 `Badge`:`sm` 20 / `md` 24);缺省 `md`(与 `Badge` 的缺省 `sm` 不同,见下) */
15
+ size?: BadgeSize;
16
+ /** 可关闭:右端出现关闭位(**受控**:只回调 `onClose`,本件不删自己) */
25
17
  closable?: boolean;
26
- /** 自定义色(hex):底按该色 14% 与白混出,字用该色本身 */
27
- color?: string;
28
- /** `shape="select"` 的选中态 */
29
- selected?: boolean;
30
- /** 禁用(可选档不可点、转弱) */
31
- disabled?: boolean;
32
- /** `shape="select"` 的原生分组名与值(组内同名互斥) */
33
- name?: string;
34
- value?: string | number;
35
- /** `shape="add"` / `chip` 的点击回调(`select` 档用 `onChange`) */
36
- onClick?: () => void;
37
- /** `shape="select"` 的选中变化回调 */
38
- onChange?: (selected: boolean) => void;
39
- /** 关闭回调(`closable` 的关闭位点击) */
18
+ /** 关闭位回调(`closable`) */
40
19
  onClose?: () => void;
20
+ /** 新增档提交回调(`shape="add"`):载荷是用户敲定的标签名(已 trim、非空) */
21
+ onAdd?: (name: string) => void;
41
22
  }
42
- /**
43
- * 标签(常规 / 状态 / 可选 / 新增 / 轻量筛选片)。
44
- *
45
- * **与 `Badge` 的判据**:`Badge` 是状态徽标(固定短、状态色、可带圆点/数字);
46
- * 本件是内容标签(描述性文字,长度随内容,可能可选/可加/可关闭)。
47
- *
48
- * 可选档(`shape="select"`)是**原生 radio**:组内同名互斥、键盘方向键换项都由浏览器接管,
49
- * 样式层靠 `:has(input:checked)` / `[data-state='selected']` / `.is-selected` 三源等价选态。
50
- *
51
- * 关闭是**受控**的:本件只回调 `onClose`,是否移除由业务决定(与 `Notification` 同一口径)——
52
- * 组件自己删自己会让「关闭后又能从别处恢复」这类需求无解。
53
- *
54
- * @example 状态标签
55
- * <Tag shape="status" tone="success">已通过</Tag>
56
- *
57
- * @example 可关闭的筛选条件
58
- * <Tag closable icon="filter" onClose={() => remove('status')}>状态:已通过</Tag>
59
- *
60
- * @example 可选标签(同组互斥)
61
- * <Tag shape="select" name="scope" value="all" :selected="v === 'all'" @change="select('all')">全部</Tag>
62
- */
63
23
  export declare const Tag: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
64
24
  shape: {
65
- type: PropType<TagProps["shape"]>;
25
+ type: PropType<TagShape>;
66
26
  default: string;
67
27
  };
68
28
  tone: {
69
- type: PropType<TagProps["tone"]>;
70
- default: undefined;
29
+ type: PropType<BadgeTone>;
30
+ default: string;
71
31
  };
72
32
  size: {
73
- type: PropType<ControlSize>;
33
+ type: PropType<BadgeSize>;
74
34
  default: string;
75
35
  };
76
- lg: {
77
- type: BooleanConstructor;
78
- default: boolean;
79
- };
80
- icon: {
81
- type: PropType<IconName>;
82
- default: undefined;
83
- };
84
- outline: {
85
- type: BooleanConstructor;
86
- default: boolean;
87
- };
88
36
  closable: {
89
37
  type: BooleanConstructor;
90
38
  default: boolean;
91
39
  };
92
- color: {
93
- type: StringConstructor;
94
- default: undefined;
95
- };
96
- selected: {
97
- type: BooleanConstructor;
98
- default: boolean;
99
- };
100
- disabled: {
101
- type: BooleanConstructor;
102
- default: boolean;
103
- };
104
- name: {
105
- type: StringConstructor;
106
- default: undefined;
107
- };
108
- value: {
109
- type: PropType<string | number>;
110
- default: undefined;
111
- };
112
- onClick: {
40
+ onClose: {
113
41
  type: PropType<() => void>;
114
42
  default: undefined;
115
43
  };
116
- onChange: {
117
- type: PropType<(selected: boolean) => void>;
118
- default: undefined;
119
- };
120
- onClose: {
121
- type: PropType<() => void>;
44
+ onAdd: {
45
+ type: PropType<(name: string) => void>;
122
46
  default: undefined;
123
47
  };
124
48
  }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
125
49
  shape: {
126
- type: PropType<TagProps["shape"]>;
50
+ type: PropType<TagShape>;
127
51
  default: string;
128
52
  };
129
53
  tone: {
130
- type: PropType<TagProps["tone"]>;
131
- default: undefined;
54
+ type: PropType<BadgeTone>;
55
+ default: string;
132
56
  };
133
57
  size: {
134
- type: PropType<ControlSize>;
58
+ type: PropType<BadgeSize>;
135
59
  default: string;
136
60
  };
137
- lg: {
138
- type: BooleanConstructor;
139
- default: boolean;
140
- };
141
- icon: {
142
- type: PropType<IconName>;
143
- default: undefined;
144
- };
145
- outline: {
146
- type: BooleanConstructor;
147
- default: boolean;
148
- };
149
61
  closable: {
150
62
  type: BooleanConstructor;
151
63
  default: boolean;
152
64
  };
153
- color: {
154
- type: StringConstructor;
155
- default: undefined;
156
- };
157
- selected: {
158
- type: BooleanConstructor;
159
- default: boolean;
160
- };
161
- disabled: {
162
- type: BooleanConstructor;
163
- default: boolean;
164
- };
165
- name: {
166
- type: StringConstructor;
167
- default: undefined;
168
- };
169
- value: {
170
- type: PropType<string | number>;
171
- default: undefined;
172
- };
173
- onClick: {
65
+ onClose: {
174
66
  type: PropType<() => void>;
175
67
  default: undefined;
176
68
  };
177
- onChange: {
178
- type: PropType<(selected: boolean) => void>;
179
- default: undefined;
180
- };
181
- onClose: {
182
- type: PropType<() => void>;
69
+ onAdd: {
70
+ type: PropType<(name: string) => void>;
183
71
  default: undefined;
184
72
  };
185
73
  }>> & Readonly<{}>, {
186
- color: string;
187
- size: ControlSize;
188
- 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" | "info-circle" | "check-circle" | "alert-circle" | "list" | "calendar" | "clock" | "lock" | "unlock" | "users" | "archive" | "package" | "plug" | "branch" | "tag" | "ai" | "shield-check" | "shield-alert" | "history";
189
- disabled: boolean;
190
- name: string;
191
- value: string | number;
192
- onChange: (selected: boolean) => void;
193
- onClick: () => void;
74
+ size: BadgeSize;
194
75
  onClose: () => void;
195
- outline: boolean;
196
- selected: boolean;
197
- lg: boolean;
198
- shape: "add" | "select" | "chip" | "regular" | "status" | undefined;
76
+ shape: TagShape;
199
77
  closable: boolean;
200
- tone: "error" | "info" | "success" | "warning" | undefined;
78
+ onAdd: (name: string) => void;
79
+ tone: BadgeTone;
201
80
  }, SlotsType<{
202
81
  default?: () => VNodeChild;
203
82
  }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;