savor-ui 0.30.0 → 0.31.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/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
 
4
4
 
5
+ # [0.31.0](https://gitee.com/mach552/savor-ui/compare/v0.30.0...v0.31.0) (2026-09-01)
6
+
7
+
8
+ ### Features
9
+
10
+ * **notification:** 新增按钮属性和事件 ([24a763f](https://gitee.com/mach552/savor-ui/commits/24a763f2bdd1e94a82f62fc2ee2b8a2c37495dbb))
11
+
5
12
  # [0.30.0](https://gitee.com/mach552/savor-ui/compare/v0.29.0...v0.30.0) (2026-08-31)
6
13
 
7
14
 
@@ -66,6 +66,7 @@ import "./src/message/index.mjs";
66
66
  import "./src/meter-group/index.mjs";
67
67
  import "./src/modal/method.mjs";
68
68
  import "./src/modal/index.mjs";
69
+ import "./src/space/index.mjs";
69
70
  import "./src/notification/method.mjs";
70
71
  import "./src/notification/index.mjs";
71
72
  import "./src/tag/index.mjs";
@@ -76,7 +77,6 @@ import "./src/panel/index.mjs";
76
77
  import "./src/progress/index.mjs";
77
78
  import "./src/skeleton/index.mjs";
78
79
  import "./src/slider-verify/index.mjs";
79
- import "./src/space/index.mjs";
80
80
  import "./src/split/types.mjs";
81
81
  import "./src/split/index.mjs";
82
82
  import "./src/statistic/index.mjs";
@@ -2,9 +2,10 @@ import { useNamespace as e } from "../../../hooks/src/use-namespace.mjs";
2
2
  import "../../../hooks/index.mjs";
3
3
  import { CheckCircleLine as t, CloseCircleLine as n, InformationLine as r, WarningLine as i } from "../../../icons/src/svg/system/index.mjs";
4
4
  import { SButton as a } from "../button/index.mjs";
5
- import { child as o, createComponent as s, createIf as c, defineVaporComponent as l, on as u, onMounted as d, onUnmounted as f, ref as p, renderEffect as m, setClass as h, setInsertionState as g, setText as _, template as v, toDisplayString as y, txt as b, unref as x } from "vue";
5
+ import { SSpace as o } from "../space/index.mjs";
6
+ import { child as s, createComponent as c, createIf as l, defineVaporComponent as u, on as d, onMounted as f, onUnmounted as p, ref as m, renderEffect as h, setClass as g, setInsertionState as _, setText as v, template as y, toDisplayString as b, txt as x, unref as S } from "vue";
6
7
  //#region ../components/src/notification/notification.vue?vue&type=script&setup=true&vapor=true&lang.ts
7
- var S = v("<div>"), C = v("<div> "), w = v("<div><div>", 1), T = /*@__PURE__*/ l({
8
+ var C = y("<div>"), w = y("<div> "), T = y("<div><div>", 1), E = /*@__PURE__*/ u({
8
9
  __name: "notification",
9
10
  props: {
10
11
  type: { default: "info" },
@@ -21,52 +22,71 @@ var S = v("<div>"), C = v("<div> "), w = v("<div><div>", 1), T = /*@__PURE__*/ l
21
22
  type: Boolean,
22
23
  default: !0
23
24
  },
24
- id: {}
25
+ id: {},
26
+ confirmProps: {},
27
+ cancelProps: {},
28
+ confirm: {},
29
+ cancel: {}
25
30
  },
26
31
  emits: ["close"],
27
- setup(l, { emit: v }) {
28
- let T = l, E = e("notification"), D = v, O = p(null), k = p(!1), A = () => {
29
- D("close", T.id);
30
- }, j = () => {
31
- O.value &&= (clearTimeout(O.value), null);
32
+ setup(u, { emit: y }) {
33
+ let E = u, D = e("notification"), O = y, k = m(null), A = m(!1), j = () => {
34
+ O("close", E.id);
32
35
  }, M = () => {
33
- j(), T.duration !== 0 && !k.value && (O.value = window.setTimeout(() => {
34
- D("close", T.id);
35
- }, T.duration));
36
+ k.value &&= (clearTimeout(k.value), null);
36
37
  }, N = () => {
37
- T.hover && (k.value = !0, j());
38
+ M(), E.duration !== 0 && !A.value && (k.value = window.setTimeout(() => {
39
+ O("close", E.id);
40
+ }, E.duration));
38
41
  }, P = () => {
39
- T.hover && (k.value = !1, M());
42
+ E.hover && (A.value = !0, M());
43
+ }, F = () => {
44
+ E.hover && (A.value = !1, N());
40
45
  };
41
- d(() => {
46
+ f(() => {
47
+ N();
48
+ }), p(() => {
42
49
  M();
43
- }), f(() => {
44
- j();
45
50
  });
46
- let F = w(), I = o(F, 1);
47
- return m(() => {
48
- let e = x(E);
49
- h(F, [e.b(), e.m(l.type)]);
50
- }), g(F, 0, 0), c(() => l.showIcon, () => {
51
- let e = S();
52
- return m(() => h(e, [x(E).e("icon")])), g(e, null, 0), c(() => l.type === "warning", () => s(x(i)), () => c(() => l.type === "primary", () => s(x(r)), () => c(() => l.type === "info", () => s(x(r)), () => c(() => l.type === "success", () => s(x(t)), () => c(() => l.type === "danger", () => s(x(n))), 1029), 773), 517), 261), e;
53
- }), m(() => h(I, [x(E).e("main")])), g(I, null, 0), c(() => l.title, () => {
54
- let e = C(), t = b(e);
55
- return m(() => {
56
- h(e, [x(E).e("title")]), _(t, y(l.title));
51
+ let I = T(), L = s(I, 1);
52
+ return h(() => {
53
+ let e = S(D);
54
+ g(I, [e.b(), e.m(u.type)]);
55
+ }), _(I, 0, 0), l(() => u.showIcon, () => {
56
+ let e = C();
57
+ return h(() => g(e, [S(D).e("icon")])), _(e, null, 0), l(() => u.type === "warning", () => c(S(i)), () => l(() => u.type === "primary", () => c(S(r)), () => l(() => u.type === "info", () => c(S(r)), () => l(() => u.type === "success", () => c(S(t)), () => l(() => u.type === "danger", () => c(S(n))), 1029), 773), 517), 261), e;
58
+ }), h(() => g(L, [S(D).e("main")])), _(L, null, 0), l(() => u.title, () => {
59
+ let e = w(), t = x(e);
60
+ return h(() => {
61
+ g(e, [S(D).e("title")]), v(t, b(u.title));
57
62
  }), e;
58
- }), g(I, null, 1), c(() => l.content, () => {
59
- let e = C(), t = b(e);
60
- return m(() => {
61
- h(e, [x(E).e("content")]), _(t, y(l.content));
63
+ }), _(L, null, 1), l(() => u.content, () => {
64
+ let e = w(), t = x(e);
65
+ return h(() => {
66
+ g(e, [S(D).e("content")]), v(t, b(u.content));
62
67
  }), e;
63
- }), g(F, null, 2), c(() => l.showClose, () => s(x(a), {
68
+ }), _(L, null, 2), l(() => u.confirm || u.cancel, () => {
69
+ let e = C();
70
+ return h(() => g(e, [S(D).e("footer")])), _(e, null, 0), c(S(o), null, () => [l(() => u.cancel, () => c(S(a), { $: [() => ({
71
+ type: "danger",
72
+ size: "mini",
73
+ link: !0,
74
+ label: "取消",
75
+ ...u.cancelProps
76
+ }), { onClick: () => u.cancel }] }), null, 129), l(() => u.confirm, () => c(S(a), { $: [() => ({
77
+ type: "primary",
78
+ size: "mini",
79
+ link: !0,
80
+ label: "确认",
81
+ ...u.confirmProps
82
+ }), { onClick: () => u.confirm }] }), null, 129)]), e;
83
+ }), _(I, null, 2), l(() => u.showClose, () => c(S(a), {
64
84
  size: "mini",
65
85
  text: "",
66
86
  icon: "CloseLine",
67
- onClick: () => A
68
- })), u(F, "mouseenter", N), u(F, "mouseleave", P), F;
87
+ onClick: () => j
88
+ })), d(I, "mouseenter", P), d(I, "mouseleave", F), I;
69
89
  }
70
90
  });
71
91
  //#endregion
72
- export { T as default };
92
+ export { E as default };
@@ -1,3 +1,4 @@
1
+ import { ButtonProps } from '../button';
1
2
  export interface NotificationProps {
2
3
  /** 类型
3
4
  * @default info
@@ -28,6 +29,14 @@ export interface NotificationProps {
28
29
  showIcon?: boolean;
29
30
  /** 唯一标识 */
30
31
  id?: string;
32
+ /** 确认按钮属性 */
33
+ confirmProps?: ButtonProps;
34
+ /** 取消按钮属性 */
35
+ cancelProps?: ButtonProps;
36
+ /** 确认回调 */
37
+ confirm?: () => void;
38
+ /** 取消回调 */
39
+ cancel?: () => void;
31
40
  }
32
41
  export interface NotificationExpose {
33
42
  /** 实例 ID */
@@ -47,15 +47,15 @@ import { SList as ue } from "../components/src/list/index.mjs";
47
47
  import { SMenu as de, SMenuGroup as fe, SMenuItem as pe, SSubMenu as me } from "../components/src/menu/index.mjs";
48
48
  import { SMeterGroup as he } from "../components/src/meter-group/index.mjs";
49
49
  import { SModal as ge } from "../components/src/modal/index.mjs";
50
- import { STag as _e } from "../components/src/tag/index.mjs";
51
- import { SOverflowList as ve } from "../components/src/overflow-list/index.mjs";
52
- import { SSelect as ye } from "../components/src/select/index.mjs";
53
- import { SPagination as be } from "../components/src/pagination/index.mjs";
54
- import { SPanel as xe } from "../components/src/panel/index.mjs";
55
- import { SProgress as Se } from "../components/src/progress/index.mjs";
56
- import { SSkeleton as Ce } from "../components/src/skeleton/index.mjs";
57
- import { SSliderVerify as we } from "../components/src/slider-verify/index.mjs";
58
- import { SSpace as Te } from "../components/src/space/index.mjs";
50
+ import { SSpace as _e } from "../components/src/space/index.mjs";
51
+ import { STag as ve } from "../components/src/tag/index.mjs";
52
+ import { SOverflowList as ye } from "../components/src/overflow-list/index.mjs";
53
+ import { SSelect as be } from "../components/src/select/index.mjs";
54
+ import { SPagination as xe } from "../components/src/pagination/index.mjs";
55
+ import { SPanel as Se } from "../components/src/panel/index.mjs";
56
+ import { SProgress as Ce } from "../components/src/progress/index.mjs";
57
+ import { SSkeleton as we } from "../components/src/skeleton/index.mjs";
58
+ import { SSliderVerify as Te } from "../components/src/slider-verify/index.mjs";
59
59
  import { SSplit as Ee, SSplitPane as De } from "../components/src/split/index.mjs";
60
60
  import { SStatistic as Oe } from "../components/src/statistic/index.mjs";
61
61
  import { SSteps as ke } from "../components/src/steps/index.mjs";
@@ -130,22 +130,22 @@ var Ue = [
130
130
  fe,
131
131
  pe,
132
132
  he,
133
- ve,
133
+ ye,
134
134
  ge,
135
- be,
136
135
  xe,
137
- i,
138
136
  Se,
137
+ i,
138
+ Ce,
139
139
  w,
140
140
  T,
141
141
  d,
142
142
  M,
143
- ye,
143
+ be,
144
144
  O,
145
145
  D,
146
- Ce,
147
146
  we,
148
147
  Te,
148
+ _e,
149
149
  Ee,
150
150
  De,
151
151
  Oe,
@@ -156,7 +156,7 @@ var Ue = [
156
156
  je,
157
157
  Y,
158
158
  X,
159
- _e,
159
+ ve,
160
160
  v,
161
161
  Me,
162
162
  Fe,
@@ -66,16 +66,16 @@ import { useMessage as Fe } from "../components/src/message/method.mjs";
66
66
  import { SMeterGroup as Ie } from "../components/src/meter-group/index.mjs";
67
67
  import { useModal as Le } from "../components/src/modal/method.mjs";
68
68
  import { SModal as Re } from "../components/src/modal/index.mjs";
69
- import { useNotification as ze } from "../components/src/notification/method.mjs";
70
- import { STag as Be } from "../components/src/tag/index.mjs";
71
- import { SOverflowList as Ve } from "../components/src/overflow-list/index.mjs";
72
- import { SSelect as He } from "../components/src/select/index.mjs";
73
- import { SPagination as Ue } from "../components/src/pagination/index.mjs";
74
- import { SPanel as We } from "../components/src/panel/index.mjs";
75
- import { SProgress as Ge } from "../components/src/progress/index.mjs";
76
- import { SSkeleton as Ke } from "../components/src/skeleton/index.mjs";
77
- import { SSliderVerify as qe } from "../components/src/slider-verify/index.mjs";
78
- import { SSpace as Je } from "../components/src/space/index.mjs";
69
+ import { SSpace as ze } from "../components/src/space/index.mjs";
70
+ import { useNotification as Be } from "../components/src/notification/method.mjs";
71
+ import { STag as Ve } from "../components/src/tag/index.mjs";
72
+ import { SOverflowList as He } from "../components/src/overflow-list/index.mjs";
73
+ import { SSelect as Ue } from "../components/src/select/index.mjs";
74
+ import { SPagination as We } from "../components/src/pagination/index.mjs";
75
+ import { SPanel as Ge } from "../components/src/panel/index.mjs";
76
+ import { SProgress as Ke } from "../components/src/progress/index.mjs";
77
+ import { SSkeleton as qe } from "../components/src/skeleton/index.mjs";
78
+ import { SSliderVerify as Je } from "../components/src/slider-verify/index.mjs";
79
79
  import { splitContextKey as Ye } from "../components/src/split/types.mjs";
80
80
  import { SSplit as Xe, SSplitPane as Ze } from "../components/src/split/index.mjs";
81
81
  import { SStatistic as Qe } from "../components/src/statistic/index.mjs";
@@ -101,4 +101,4 @@ import _t from "dayjs";
101
101
  //#region index.ts
102
102
  var vt = e(gt);
103
103
  //#endregion
104
- export { t as SAlert, r as SAnchor, i as SAnchorLink, y as SAutoComplete, x as SAvatar, S as SAvatarGroup, _ as SBackTop, C as SBadge, w as SButton, T as SButtonGroup, D as SCard, O as SCarousel, I as SCascader, L as SChatList, R as SChatSender, j as SCheckbox, M as SCheckboxGroup, V as SCollapse, H as SCollapseItem, W as SColorPicker, l as SConfigProvider, G as SDatePicker, K as SDatetimePicker, J as SDescriptions, Y as SDescriptionsItem, X as SDivider, $ as SDoption, Z as SDrawer, ee as SDropdown, te as SDsubmenu, k as SEmpty, ne as SExpandCard, f as SForm, p as SFormItem, re as SGalleria, ae as SGrid, oe as SGridItem, se as SHighlight, h as SIcon, fe as SIconSelect, me as SImage, he as SImageGroup, ge as SImagePreview, m as SInput, _e as SInputGroup, ve as SInputNumber, ye as SInputTag, xe as SLayout, Se as SLayoutAside, Ce as SLayoutContent, we as SLayoutFooter, Te as SLayoutHeader, Ee as SLink, De as SList, je as SMenu, Me as SMenuGroup, Ne as SMenuItem, Ie as SMeterGroup, Re as SModal, Ve as SOverflowList, Ue as SPagination, We as SPanel, u as SPopover, Ge as SProgress, P as SRadio, F as SRadioGroup, v as SScrollbar, U as SSegmented, He as SSelect, Ke as SSkeleton, qe as SSliderVerify, Je as SSpace, Xe as SSplit, Ze as SSplitPane, Qe as SStatistic, $e as SSteps, Pe as SSubMenu, et as SSwitch, le as STab, ue as STabPane, nt as STable, de as STabs, Be as STag, E as SText, rt as STextarea, ct as STimeline, lt as STimelineItem, d as STooltip, ot as STransfer, z as STransition, at as STree, ut as STreeSelect, dt as SUpload, ft as SVirtualList, pt as SWaterfall, mt as SWatermark, ht as SWheel, n as anchorContextKey, b as avatarGroupContextKey, g as buttonGroupContextKey, A as checkboxGroupContextKey, B as collapseContextKey, c as configProviderContextKey, _t as dayjs, vt as default, q as descriptionsContextKey, Q as dropdownContextKey, a as formContextKey, o as formItemContextKey, s as formItemStatusContextKey, ie as gridContextKey, pe as imageGroupContextKey, Oe as menuContextKey, ke as menuLevelContextKey, N as radioGroupContextKey, Ye as splitContextKey, Ae as subMenuContextKey, tt as tableContextKey, ce as tabsContextKey, st as timelineContextKey, it as treeContextKey, be as useLayer, Fe as useMessage, Le as useModal, ze as useNotification };
104
+ export { t as SAlert, r as SAnchor, i as SAnchorLink, y as SAutoComplete, x as SAvatar, S as SAvatarGroup, _ as SBackTop, C as SBadge, w as SButton, T as SButtonGroup, D as SCard, O as SCarousel, I as SCascader, L as SChatList, R as SChatSender, j as SCheckbox, M as SCheckboxGroup, V as SCollapse, H as SCollapseItem, W as SColorPicker, l as SConfigProvider, G as SDatePicker, K as SDatetimePicker, J as SDescriptions, Y as SDescriptionsItem, X as SDivider, $ as SDoption, Z as SDrawer, ee as SDropdown, te as SDsubmenu, k as SEmpty, ne as SExpandCard, f as SForm, p as SFormItem, re as SGalleria, ae as SGrid, oe as SGridItem, se as SHighlight, h as SIcon, fe as SIconSelect, me as SImage, he as SImageGroup, ge as SImagePreview, m as SInput, _e as SInputGroup, ve as SInputNumber, ye as SInputTag, xe as SLayout, Se as SLayoutAside, Ce as SLayoutContent, we as SLayoutFooter, Te as SLayoutHeader, Ee as SLink, De as SList, je as SMenu, Me as SMenuGroup, Ne as SMenuItem, Ie as SMeterGroup, Re as SModal, He as SOverflowList, We as SPagination, Ge as SPanel, u as SPopover, Ke as SProgress, P as SRadio, F as SRadioGroup, v as SScrollbar, U as SSegmented, Ue as SSelect, qe as SSkeleton, Je as SSliderVerify, ze as SSpace, Xe as SSplit, Ze as SSplitPane, Qe as SStatistic, $e as SSteps, Pe as SSubMenu, et as SSwitch, le as STab, ue as STabPane, nt as STable, de as STabs, Ve as STag, E as SText, rt as STextarea, ct as STimeline, lt as STimelineItem, d as STooltip, ot as STransfer, z as STransition, at as STree, ut as STreeSelect, dt as SUpload, ft as SVirtualList, pt as SWaterfall, mt as SWatermark, ht as SWheel, n as anchorContextKey, b as avatarGroupContextKey, g as buttonGroupContextKey, A as checkboxGroupContextKey, B as collapseContextKey, c as configProviderContextKey, _t as dayjs, vt as default, q as descriptionsContextKey, Q as dropdownContextKey, a as formContextKey, o as formItemContextKey, s as formItemStatusContextKey, ie as gridContextKey, pe as imageGroupContextKey, Oe as menuContextKey, ke as menuLevelContextKey, N as radioGroupContextKey, Ye as splitContextKey, Ae as subMenuContextKey, tt as tableContextKey, ce as tabsContextKey, st as timelineContextKey, it as treeContextKey, be as useLayer, Fe as useMessage, Le as useModal, Be as useNotification };
@@ -35,20 +35,30 @@
35
35
  }
36
36
 
37
37
  @include e(title) {
38
- font-size: getCssVar("font-size", "large");
38
+ color: getCssVar("color", "text-1");
39
+ font-size: getCssVar("font-size", "medium");
40
+ line-height: getCssVar("line-height", "medium");
39
41
  font-weight: 600;
40
- height: 24px;
41
42
  display: flex;
42
43
  align-items: center;
43
- color: getCssVar("color", "text-1");
44
44
  }
45
45
 
46
46
  @include e(content) {
47
+ color: getCssVar("color", "text-1");
47
48
  font-size: getCssVar("font-size", "medium");
49
+ line-height: getCssVar("line-height", "medium");
48
50
  display: flex;
49
51
  align-items: center;
50
- min-height: 24px;
52
+ }
53
+
54
+ @include e(footer) {
51
55
  color: getCssVar("color", "text-1");
56
+ font-size: getCssVar("font-size", "medium");
57
+ line-height: getCssVar("line-height", "medium");
58
+ display: flex;
59
+ align-items: center;
60
+ justify-content: flex-end;
61
+ margin-top: 4px;
52
62
  }
53
63
 
54
64
  @include e(wrapper) {
@@ -1782,6 +1782,18 @@
1782
1782
  "description": "唯一标识",
1783
1783
  "type": "string"
1784
1784
  },
1785
+ "s-notification/confirmProps": {
1786
+ "description": "确认按钮属性"
1787
+ },
1788
+ "s-notification/cancelProps": {
1789
+ "description": "取消按钮属性"
1790
+ },
1791
+ "s-notification/confirm": {
1792
+ "description": "确认回调"
1793
+ },
1794
+ "s-notification/cancel": {
1795
+ "description": "取消回调"
1796
+ },
1785
1797
  "s-overflow-list/max": {
1786
1798
  "description": "最大显示数量;不传时按容器宽度自动截断",
1787
1799
  "type": "number"
@@ -739,7 +739,11 @@
739
739
  "placement",
740
740
  "hover",
741
741
  "showIcon",
742
- "id"
742
+ "id",
743
+ "confirmProps",
744
+ "cancelProps",
745
+ "confirm",
746
+ "cancel"
743
747
  ]
744
748
  },
745
749
  "s-overflow-list": {
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "framework": "vue",
4
4
  "name": "savor-ui",
5
- "version": "0.29.0",
5
+ "version": "0.30.0",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
@@ -4631,6 +4631,38 @@
4631
4631
  "type": "string",
4632
4632
  "kind": "expression"
4633
4633
  }
4634
+ },
4635
+ {
4636
+ "name": "confirmProps",
4637
+ "description": "确认按钮属性",
4638
+ "value": {
4639
+ "type": "ButtonProps",
4640
+ "kind": "expression"
4641
+ }
4642
+ },
4643
+ {
4644
+ "name": "cancelProps",
4645
+ "description": "取消按钮属性",
4646
+ "value": {
4647
+ "type": "ButtonProps",
4648
+ "kind": "expression"
4649
+ }
4650
+ },
4651
+ {
4652
+ "name": "confirm",
4653
+ "description": "确认回调",
4654
+ "value": {
4655
+ "type": "() => void",
4656
+ "kind": "expression"
4657
+ }
4658
+ },
4659
+ {
4660
+ "name": "cancel",
4661
+ "description": "取消回调",
4662
+ "value": {
4663
+ "type": "() => void",
4664
+ "kind": "expression"
4665
+ }
4634
4666
  }
4635
4667
  ],
4636
4668
  "events": [],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "savor-ui",
3
- "version": "0.30.0",
3
+ "version": "0.31.0",
4
4
  "description": "A Vue3 Components Library",
5
5
  "keywords": [
6
6
  "component library",