@cst-ui/nano-buttons 0.1.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/dist/index.mjs ADDED
@@ -0,0 +1,251 @@
1
+ import { defineComponent as l, useAttrs as g, computed as k, resolveComponent as v, openBlock as n, createBlock as e, mergeProps as s, unref as A, createSlots as h, withCtx as r, renderSlot as u, createTextVNode as f, createElementVNode as m, normalizeProps as P, guardReactiveProps as C } from "vue";
2
+ import { buttonProps as i, buttonEmits as E } from "element-plus";
3
+ const M = {
4
+ ...i,
5
+ secondary: Boolean
6
+ }, a = /* @__PURE__ */ l({
7
+ name: "NanoButton",
8
+ inheritAttrs: !1,
9
+ __name: "NanoButton",
10
+ props: M,
11
+ emits: E,
12
+ setup(p, { emit: t }) {
13
+ const o = p, b = t, $ = g(), c = k(() => {
14
+ const { secondary: d, ...N } = o;
15
+ return N;
16
+ }), B = k(() => [
17
+ "nano-button",
18
+ o.secondary ? "app-button-secondary" : ""
19
+ ]), _ = (d) => {
20
+ b("click", d);
21
+ };
22
+ return (d, N) => {
23
+ const y = v("el-button");
24
+ return d.$slots.default ? (n(), e(y, s({ key: 0 }, { ...c.value, ...A($) }, {
25
+ class: B.value,
26
+ onClick: _
27
+ }), h({
28
+ default: r(() => [
29
+ u(d.$slots, "default")
30
+ ]),
31
+ _: 2
32
+ }, [
33
+ d.$slots.loading ? {
34
+ name: "loading",
35
+ fn: r(() => [
36
+ u(d.$slots, "loading")
37
+ ]),
38
+ key: "0"
39
+ } : void 0
40
+ ]), 1040, ["class"])) : (n(), e(y, s({ key: 1 }, { ...c.value, ...A($) }, {
41
+ class: B.value,
42
+ onClick: _
43
+ }), h({ _: 2 }, [
44
+ d.$slots.loading ? {
45
+ name: "loading",
46
+ fn: r(() => [
47
+ u(d.$slots, "loading")
48
+ ]),
49
+ key: "0"
50
+ } : void 0
51
+ ]), 1040, ["class"]));
52
+ };
53
+ }
54
+ }), S = /* @__PURE__ */ l({
55
+ name: "NanoAddButton",
56
+ inheritAttrs: !1,
57
+ __name: "NanoAddButton",
58
+ props: i,
59
+ setup(p) {
60
+ return (t, o) => (n(), e(a, s({ ...t.$props, ...t.$attrs }, {
61
+ type: "primary",
62
+ icon: "Plus"
63
+ }), {
64
+ default: r(() => [
65
+ u(t.$slots, "default", {}, () => [
66
+ o[0] || (o[0] = f("新增", -1))
67
+ ])
68
+ ]),
69
+ _: 3
70
+ }, 16));
71
+ }
72
+ }), T = /* @__PURE__ */ l({
73
+ name: "NanoBackTopButton",
74
+ inheritAttrs: !1,
75
+ __name: "NanoBackTopButton",
76
+ props: i,
77
+ setup(p) {
78
+ return (t, o) => t.$slots.default ? (n(), e(a, s({ key: 0 }, { ...t.$props, ...t.$attrs }, {
79
+ secondary: "",
80
+ class: "app-backtop-button"
81
+ }), {
82
+ default: r(() => [
83
+ u(t.$slots, "default")
84
+ ]),
85
+ _: 3
86
+ }, 16)) : (n(), e(a, s({ key: 1 }, { ...t.$props, ...t.$attrs }, {
87
+ secondary: "",
88
+ class: "app-backtop-button"
89
+ }), {
90
+ default: r(() => [...o[0] || (o[0] = [
91
+ m("svg", {
92
+ class: "app-backtop-icon",
93
+ viewBox: "0 0 24 24",
94
+ "aria-hidden": "true",
95
+ focusable: "false"
96
+ }, [
97
+ m("path", { d: "M6 5h12" }),
98
+ m("path", { d: "M12 19V9" }),
99
+ m("path", { d: "m8 13 4-4 4 4" })
100
+ ], -1)
101
+ ])]),
102
+ _: 1
103
+ }, 16));
104
+ }
105
+ }), D = /* @__PURE__ */ l({
106
+ name: "NanoCancelButton",
107
+ inheritAttrs: !1,
108
+ __name: "NanoCancelButton",
109
+ props: i,
110
+ setup(p) {
111
+ return (t, o) => (n(), e(a, P(C({ ...t.$props, ...t.$attrs })), {
112
+ default: r(() => [
113
+ u(t.$slots, "default", {}, () => [
114
+ o[0] || (o[0] = f("取消", -1))
115
+ ])
116
+ ]),
117
+ _: 3
118
+ }, 16));
119
+ }
120
+ }), w = /* @__PURE__ */ l({
121
+ name: "NanoDeleteButton",
122
+ inheritAttrs: !1,
123
+ __name: "NanoDeleteButton",
124
+ props: i,
125
+ setup(p) {
126
+ return (t, o) => t.$slots.default ? (n(), e(a, s({ key: 0 }, { ...t.$props, ...t.$attrs }, {
127
+ type: "danger",
128
+ icon: "Delete"
129
+ }), {
130
+ default: r(() => [
131
+ u(t.$slots, "default")
132
+ ]),
133
+ _: 3
134
+ }, 16)) : (n(), e(a, s({ key: 1 }, { ...t.$props, ...t.$attrs }, {
135
+ type: "danger",
136
+ icon: "Delete"
137
+ }), null, 16));
138
+ }
139
+ }), V = /* @__PURE__ */ l({
140
+ name: "NanoEditButton",
141
+ inheritAttrs: !1,
142
+ __name: "NanoEditButton",
143
+ props: i,
144
+ setup(p) {
145
+ return (t, o) => t.$slots.default ? (n(), e(a, s({ key: 0 }, { ...t.$props, ...t.$attrs }, { icon: "Edit" }), {
146
+ default: r(() => [
147
+ u(t.$slots, "default")
148
+ ]),
149
+ _: 3
150
+ }, 16)) : (n(), e(a, s({ key: 1 }, { ...t.$props, ...t.$attrs }, { icon: "Edit" }), null, 16));
151
+ }
152
+ }), R = /* @__PURE__ */ l({
153
+ name: "NanoManageButton",
154
+ inheritAttrs: !1,
155
+ __name: "NanoManageButton",
156
+ props: i,
157
+ setup(p) {
158
+ return (t, o) => t.$slots.default ? (n(), e(a, s({ key: 0 }, { ...t.$props, ...t.$attrs }, {
159
+ type: "primary",
160
+ icon: "Setting"
161
+ }), {
162
+ default: r(() => [
163
+ u(t.$slots, "default")
164
+ ]),
165
+ _: 3
166
+ }, 16)) : (n(), e(a, s({ key: 1 }, { ...t.$props, ...t.$attrs }, {
167
+ type: "primary",
168
+ icon: "Setting"
169
+ }), null, 16));
170
+ }
171
+ }), z = /* @__PURE__ */ l({
172
+ name: "NanoMoveButton",
173
+ inheritAttrs: !1,
174
+ __name: "NanoMoveButton",
175
+ props: i,
176
+ setup(p) {
177
+ return (t, o) => (n(), e(a, s({ ...t.$props, ...t.$attrs }, { icon: "Rank" }), {
178
+ default: r(() => [
179
+ u(t.$slots, "default", {}, () => [
180
+ o[0] || (o[0] = f("移动", -1))
181
+ ])
182
+ ]),
183
+ _: 3
184
+ }, 16));
185
+ }
186
+ }), j = /* @__PURE__ */ l({
187
+ name: "NanoSubmitButton",
188
+ inheritAttrs: !1,
189
+ __name: "NanoSubmitButton",
190
+ props: i,
191
+ setup(p) {
192
+ return (t, o) => (n(), e(a, s({ ...t.$props, ...t.$attrs }, { type: "primary" }), {
193
+ default: r(() => [
194
+ u(t.$slots, "default", {}, () => [
195
+ o[0] || (o[0] = f("保存", -1))
196
+ ])
197
+ ]),
198
+ _: 3
199
+ }, 16));
200
+ }
201
+ }), q = /* @__PURE__ */ l({
202
+ name: "NanoTextAddButton",
203
+ inheritAttrs: !1,
204
+ __name: "NanoTextAddButton",
205
+ props: i,
206
+ setup(p) {
207
+ return (t, o) => t.$slots.default ? (n(), e(a, s({ key: 0 }, { ...t.$props, ...t.$attrs }, {
208
+ text: "",
209
+ icon: "Plus"
210
+ }), {
211
+ default: r(() => [
212
+ u(t.$slots, "default")
213
+ ]),
214
+ _: 3
215
+ }, 16)) : (n(), e(a, s({ key: 1 }, { ...t.$props, ...t.$attrs }, {
216
+ text: "",
217
+ icon: "Plus"
218
+ }), null, 16));
219
+ }
220
+ }), F = [
221
+ a,
222
+ S,
223
+ q,
224
+ z,
225
+ V,
226
+ R,
227
+ w,
228
+ j,
229
+ D,
230
+ T
231
+ ], G = (p) => {
232
+ F.forEach((t) => {
233
+ p.component(t.name || "AnonymousComponent", t);
234
+ });
235
+ }, J = {
236
+ install: G
237
+ };
238
+ export {
239
+ S as NanoAddButton,
240
+ T as NanoBackTopButton,
241
+ a as NanoButton,
242
+ D as NanoCancelButton,
243
+ w as NanoDeleteButton,
244
+ V as NanoEditButton,
245
+ R as NanoManageButton,
246
+ z as NanoMoveButton,
247
+ j as NanoSubmitButton,
248
+ q as NanoTextAddButton,
249
+ J as default,
250
+ G as install
251
+ };
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ :root{--nano-font-size-sm: var(--font-size-sm, 14px);--nano-font-size-lg: var(--font-size-lg, 18px);--nano-font-weight-medium: var(--font-weight-medium, 500);--nano-radius-md: var(--radius-md, 6px);--nano-shadow-card: var(--shadow-card, 0 2px 12px rgba(0, 0, 0, .12));--nano-color-brand-primary: var(--color-brand-primary, #243c96);--nano-color-brand-primary-hover: var(--color-brand-primary-hover, #3550b3);--nano-color-brand-primary-active: var(--color-brand-primary-active, #1b2f78);--nano-color-brand-primary-light: var(--color-brand-primary-light, #eef2ff);--nano-color-text-regular: var(--color-text-regular, #606266);--nano-color-text-on-brand: var(--color-text-on-brand, #ffffff);--nano-color-border-default: var(--color-border-default, #dcdfe6);--nano-color-success: var(--color-success, #67c23a);--nano-color-success-hover: var(--color-success-hover, #85ce61);--nano-color-success-active: var(--color-success-active, #529b2e);--nano-color-warning: var(--color-warning, #e6a23c);--nano-color-warning-hover: var(--color-warning-hover, #ebb563);--nano-color-warning-active: var(--color-warning-active, #b88230);--nano-color-danger: var(--color-danger, #d35a5a);--nano-color-danger-hover: var(--color-danger-hover, #e07272);--nano-color-danger-active: var(--color-danger-active, #bc4949);--nano-color-info: var(--color-info, #909399);--nano-color-info-hover: var(--color-info-hover, #a6a9ad);--nano-color-info-active: var(--color-info-active, #73767a);--nano-color-focus-outline: var(--color-focus-outline, rgba(36, 60, 150, .32));--nano-button-default-bg: var(--button-default-bg, #ffffff);--nano-button-default-text: var(--button-default-text, var(--nano-color-text-regular));--nano-button-default-border: var(--button-default-border, var(--nano-color-border-default));--nano-button-default-hover-bg: var(--button-default-hover-bg, var(--nano-color-brand-primary-light));--nano-button-default-hover-text: var(--button-default-hover-text, var(--nano-color-brand-primary));--nano-button-default-hover-border: var(--button-default-hover-border, var(--nano-color-brand-primary-hover));--nano-button-default-active-bg: var(--button-default-active-bg, #e0e8ff);--nano-button-default-active-text: var(--button-default-active-text, var(--nano-color-brand-primary-active));--nano-button-default-active-border: var(--button-default-active-border, var(--nano-color-brand-primary-active));--nano-button-secondary-bg: var(--button-secondary-bg, var(--nano-color-brand-primary-light));--nano-button-secondary-text: var(--button-secondary-text, var(--nano-color-brand-primary));--nano-button-secondary-border: var(--button-secondary-border, rgba(36, 60, 150, .32));--nano-button-secondary-hover-bg: var(--button-secondary-hover-bg, #e0e8ff);--nano-button-secondary-hover-text: var(--button-secondary-hover-text, var(--nano-color-brand-primary-hover));--nano-button-secondary-hover-border: var(--button-secondary-hover-border, var(--nano-color-brand-primary-hover));--nano-button-secondary-active-bg: var(--button-secondary-active-bg, #d4defd);--nano-button-secondary-active-text: var(--button-secondary-active-text, var(--nano-color-brand-primary-active));--nano-button-secondary-active-border: var(--button-secondary-active-border, var(--nano-color-brand-primary-active));--nano-button-text-default: var(--button-text-default, var(--nano-color-text-regular));--nano-button-text-hover-bg: var(--button-text-hover-bg, var(--nano-color-brand-primary-light));--nano-button-text-hover: var(--button-text-hover, var(--nano-color-brand-primary));--nano-button-text-active: var(--button-text-active, var(--nano-color-brand-primary-active));--nano-button-hover-shadow: var(--button-hover-shadow, 0 4px 12px rgba(36, 60, 150, .16));--nano-button-default-hover-shadow: var(--button-default-hover-shadow, 0 2px 10px rgba(36, 60, 150, .12));--nano-button-danger-hover-shadow: var(--button-danger-hover-shadow, 0 4px 12px rgba(211, 90, 90, .18))}.el-button{--button-bg: var(--button-default-bg, var(--nano-button-default-bg));--button-text: var(--button-default-text, var(--nano-button-default-text));--button-border: var(--button-default-border, var(--nano-button-default-border));--button-bg-hover: var(--button-default-hover-bg, var(--nano-button-default-hover-bg));--button-text-hover: var(--button-default-hover-text, var(--nano-button-default-hover-text));--button-border-hover: var(--button-default-hover-border, var(--nano-button-default-hover-border));--button-bg-active: var(--button-default-active-bg, var(--nano-button-default-active-bg));--button-text-active: var(--button-default-active-text, var(--nano-button-default-active-text));--button-border-active: var(--button-default-active-border, var(--nano-button-default-active-border));--button-shadow-hover: var(--button-default-hover-shadow, var(--nano-button-default-hover-shadow));font-size:var(--font-size-sm, var(--nano-font-size-sm));font-weight:var(--font-weight-medium, var(--nano-font-weight-medium));border-radius:var(--radius-md, var(--nano-radius-md));transition:background-color .22s ease,border-color .22s ease,color .22s ease,box-shadow .22s ease,opacity .22s ease}.el-button:focus-visible{outline:2px solid var(--color-focus-outline, var(--nano-color-focus-outline));outline-offset:2px}.el-button.is-disabled,.el-button.is-disabled:hover,.el-button.is-disabled:active{box-shadow:none}.el-button:not(.is-text):not(.is-link){--el-button-text-color: var(--button-text);--el-button-bg-color: var(--button-bg);--el-button-border-color: var(--button-border);--el-button-hover-text-color: var(--button-text-hover);--el-button-hover-bg-color: var(--button-bg-hover);--el-button-hover-border-color: var(--button-border-hover);--el-button-active-text-color: var(--button-text-active);--el-button-active-bg-color: var(--button-bg-active);--el-button-active-border-color: var(--button-border-active);color:var(--button-text);background-color:var(--button-bg);border-color:var(--button-border)}.el-button:not(.is-text):not(.is-link):hover{background-color:var(--button-bg-hover);color:var(--button-text-hover);border-color:var(--button-border-hover);box-shadow:var(--button-shadow-hover)}.el-button:not(.is-text):not(.is-link):active{background-color:var(--button-bg-active);color:var(--button-text-active);border-color:var(--button-border-active);box-shadow:none}.el-button.app-button-secondary{--button-bg: var(--button-secondary-bg, var(--nano-button-secondary-bg));--button-text: var(--button-secondary-text, var(--nano-button-secondary-text));--button-border: var(--button-secondary-border, var(--nano-button-secondary-border));--button-bg-hover: var(--button-secondary-hover-bg, var(--nano-button-secondary-hover-bg));--button-text-hover: var(--button-secondary-hover-text, var(--nano-button-secondary-hover-text));--button-border-hover: var(--button-secondary-hover-border, var(--nano-button-secondary-hover-border));--button-bg-active: var(--button-secondary-active-bg, var(--nano-button-secondary-active-bg));--button-text-active: var(--button-secondary-active-text, var(--nano-button-secondary-active-text));--button-border-active: var(--button-secondary-active-border, var(--nano-button-secondary-active-border))}.el-button.el-button--primary,.el-button.el-button--success,.el-button.el-button--warning,.el-button.el-button--danger,.el-button.el-button--info{--button-text: var(--color-text-on-brand, var(--nano-color-text-on-brand));--button-text-hover: var(--color-text-on-brand, var(--nano-color-text-on-brand));--button-text-active: var(--color-text-on-brand, var(--nano-color-text-on-brand));--button-shadow-hover: var(--button-hover-shadow, var(--nano-button-hover-shadow));box-shadow:none}.el-button.el-button--primary{--button-bg: var(--color-brand-primary, var(--nano-color-brand-primary));--button-border: var(--color-brand-primary, var(--nano-color-brand-primary));--button-bg-hover: var(--color-brand-primary-hover, var(--nano-color-brand-primary-hover));--button-border-hover: var(--color-brand-primary-hover, var(--nano-color-brand-primary-hover));--button-bg-active: var(--color-brand-primary-active, var(--nano-color-brand-primary-active));--button-border-active: var(--color-brand-primary-active, var(--nano-color-brand-primary-active))}.el-button.el-button--success{--button-bg: var(--color-success, var(--nano-color-success));--button-border: var(--color-success, var(--nano-color-success));--button-bg-hover: var(--color-success-hover, var(--nano-color-success-hover));--button-border-hover: var(--color-success-hover, var(--nano-color-success-hover));--button-bg-active: var(--color-success-active, var(--nano-color-success-active));--button-border-active: var(--color-success-active, var(--nano-color-success-active))}.el-button.el-button--warning{--button-bg: var(--color-warning, var(--nano-color-warning));--button-border: var(--color-warning, var(--nano-color-warning));--button-bg-hover: var(--color-warning-hover, var(--nano-color-warning-hover));--button-border-hover: var(--color-warning-hover, var(--nano-color-warning-hover));--button-bg-active: var(--color-warning-active, var(--nano-color-warning-active));--button-border-active: var(--color-warning-active, var(--nano-color-warning-active))}.el-button.el-button--danger{--button-bg: var(--color-danger, var(--nano-color-danger));--button-border: var(--color-danger, var(--nano-color-danger));--button-bg-hover: var(--color-danger-hover, var(--nano-color-danger-hover));--button-border-hover: var(--color-danger-hover, var(--nano-color-danger-hover));--button-bg-active: var(--color-danger-active, var(--nano-color-danger-active));--button-border-active: var(--color-danger-active, var(--nano-color-danger-active));--button-shadow-hover: var(--button-danger-hover-shadow, var(--nano-button-danger-hover-shadow))}.el-button.el-button--info{--button-bg: var(--color-info, var(--nano-color-info));--button-border: var(--color-info, var(--nano-color-info));--button-bg-hover: var(--color-info-hover, var(--nano-color-info-hover));--button-border-hover: var(--color-info-hover, var(--nano-color-info-hover));--button-bg-active: var(--color-info-active, var(--nano-color-info-active));--button-border-active: var(--color-info-active, var(--nano-color-info-active))}.el-button.is-text,.el-button.is-link{background-color:transparent;color:var(--button-text-default, var(--nano-button-text-default));border-color:transparent;box-shadow:none}.el-button.is-text:hover{background-color:var(--button-text-hover-bg, var(--nano-button-text-hover-bg));color:var(--button-text-hover, var(--nano-button-text-hover))}.el-button.is-link:hover,.el-button.is-text:active,.el-button.is-link:active{color:var(--button-text-active, var(--nano-button-text-active))}.app-backtop.el-backtop{width:auto;height:auto;background-color:transparent;box-shadow:none}.app-backtop.el-backtop:hover{background-color:transparent}.app-backtop-button.el-button{--button-bg: var(--color-brand-primary, var(--nano-color-brand-primary));--button-text: var(--color-text-on-brand, var(--nano-color-text-on-brand));--button-border: var(--color-brand-primary, var(--nano-color-brand-primary));--button-bg-hover: var(--color-brand-primary-hover, var(--nano-color-brand-primary-hover));--button-text-hover: var(--color-text-on-brand, var(--nano-color-text-on-brand));--button-border-hover: var(--color-brand-primary-hover, var(--nano-color-brand-primary-hover));--button-bg-active: var(--color-brand-primary-active, var(--nano-color-brand-primary-active));--button-text-active: var(--color-text-on-brand, var(--nano-color-text-on-brand));--button-border-active: var(--color-brand-primary-active, var(--nano-color-brand-primary-active));width:42px;height:42px;padding:0;border-radius:12px;border-width:1px;box-shadow:0 10px 22px #243c9642,inset 0 1px #ffffff2e;transform:translateY(0);transition:transform .18s ease,background-color .22s ease,border-color .22s ease,color .22s ease,box-shadow .22s ease,opacity .22s ease}.app-backtop-button.el-button>span,.app-backtop-icon{display:inline-flex;align-items:center;justify-content:center}.app-backtop-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.app-backtop-button.el-button:not(.is-text):not(.is-link):hover{transform:translateY(-2px);box-shadow:0 14px 26px #243c964d,inset 0 1px #ffffff38}.app-backtop-button.el-button:not(.is-text):not(.is-link):active{transform:translateY(0);box-shadow:0 6px 14px #243c9638,inset 0 1px 2px #1b2f7847}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@cst-ui/nano-buttons",
3
+ "version": "0.1.0",
4
+ "description": "Nano themed Vue 3 button components based on Element Plus.",
5
+ "license": "UNLICENSED",
6
+ "type": "module",
7
+ "main": "./dist/index.cjs",
8
+ "module": "./dist/index.mjs",
9
+ "types": "./dist/index.d.ts",
10
+ "files": [
11
+ "dist",
12
+ "README.md"
13
+ ],
14
+ "sideEffects": [
15
+ "*.css"
16
+ ],
17
+ "exports": {
18
+ ".": {
19
+ "types": "./dist/index.d.ts",
20
+ "import": "./dist/index.mjs",
21
+ "require": "./dist/index.cjs"
22
+ },
23
+ "./style.css": "./dist/style.css"
24
+ },
25
+ "scripts": {
26
+ "build": "vite build && vue-tsc -p tsconfig.build.json --declaration --emitDeclarationOnly",
27
+ "typecheck": "vue-tsc -p tsconfig.build.json --noEmit"
28
+ },
29
+ "peerDependencies": {
30
+ "element-plus": "^2.8.5",
31
+ "vue": "^3.5.13"
32
+ },
33
+ "devDependencies": {
34
+ "@types/node": "^18.11.3",
35
+ "@vitejs/plugin-vue": "^5.1.4",
36
+ "typescript": "^5.6.3",
37
+ "vite": "^5.4.9",
38
+ "vue-tsc": "2.1.6"
39
+ }
40
+ }