yanzhi-ui 0.1.0 → 0.1.2
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/button/Button.vue.d.ts +25 -0
- package/dist/index.d.ts +7 -0
- package/dist/yanzhi-ui.css +1 -0
- package/dist/yanzhi-ui.d.ts +6 -0
- package/dist/yanzhi-ui.js +1 -0
- package/dist/yanzhi-ui.mjs +60 -0
- package/dist/yanzhi-ui.umd.js +1 -0
- package/package.json +10 -6
- package/src/packages/button/Button.vue +40 -20
- package/src/packages/index.ts +15 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
interface ButtonProps {
|
|
2
|
+
type?: 'default' | 'primary' | 'success' | 'warning' | 'error';
|
|
3
|
+
size?: 'small' | 'medium' | 'large';
|
|
4
|
+
color?: string;
|
|
5
|
+
textColor?: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
loading?: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare function __VLS_template(): {
|
|
10
|
+
attrs: Partial<{}>;
|
|
11
|
+
slots: {
|
|
12
|
+
default?(_: {}): any;
|
|
13
|
+
};
|
|
14
|
+
refs: {};
|
|
15
|
+
rootEl: HTMLButtonElement;
|
|
16
|
+
};
|
|
17
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
18
|
+
declare const __VLS_component: import('vue').DefineComponent<ButtonProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ButtonProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLButtonElement>;
|
|
19
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
20
|
+
export default _default;
|
|
21
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
22
|
+
new (): {
|
|
23
|
+
$slots: S;
|
|
24
|
+
};
|
|
25
|
+
};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.i-button[data-v-63e0e36c]{border-radius:4px;padding:0 12px;height:32px;border:none;cursor:pointer;transition:all .2s}.i-button.small[data-v-63e0e36c]{height:24px}.i-button.medium[data-v-63e0e36c]{height:32px}.i-button.large[data-v-63e0e36c]{height:40px}.i-button.disabled[data-v-63e0e36c]{cursor:not-allowed;opacity:.6}.i-button.loading[data-v-63e0e36c]{opacity:.8}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var d=Object.defineProperty;var u=(o,t,s)=>t in o?d(o,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[t]=s;var l=(o,t,s)=>u(o,typeof t!="symbol"?t+"":t,s);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),b=["disabled"],h=n.defineComponent({__name:"Button",props:{type:{},size:{},color:{},textColor:{},disabled:{type:Boolean},loading:{type:Boolean}},setup(o){class t{constructor(e){l(this,"type");l(this,"size");l(this,"color");l(this,"textColor");l(this,"disabled");l(this,"loading");this.type=e.type||"default",this.size=e.size||"medium",this.color=e.color,this.textColor=e.textColor,this.disabled=e.disabled??!1,this.loading=e.loading??!1}get classes(){const e=["i-button",this.type,this.size];return this.disabled&&e.push("disabled"),this.loading&&e.push("loading"),e.join(" ")}get styles(){return{backgroundColor:this.color||"",color:this.textColor||""}}}const s=o,i=n.reactive(new t(s));return(a,e)=>(n.openBlock(),n.createElementBlock("button",{class:n.normalizeClass(i.classes),style:n.normalizeStyle(i.styles),disabled:i.disabled,onClick:e[0]||(e[0]=r=>a.$emit("click",r))},[n.renderSlot(a.$slots,"default",{},void 0,!0)],14,b))}}),f=(o,t)=>{const s=o.__vccOpts||o;for(const[i,a]of t)s[i]=a;return s},c=f(h,[["__scopeId","data-v-63e0e36c"]]),y=[c],g=o=>{y.forEach(t=>{o.component(t.name||"",t)})},m={install:g};exports.IButton=c;exports.default=m;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
var c = Object.defineProperty;
|
|
2
|
+
var d = (o, t, s) => t in o ? c(o, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : o[t] = s;
|
|
3
|
+
var l = (o, t, s) => d(o, typeof t != "symbol" ? t + "" : t, s);
|
|
4
|
+
import { defineComponent as r, reactive as u, createElementBlock as h, openBlock as b, normalizeStyle as f, normalizeClass as m, renderSlot as p } from "vue";
|
|
5
|
+
const y = ["disabled"], g = /* @__PURE__ */ r({
|
|
6
|
+
__name: "Button",
|
|
7
|
+
props: {
|
|
8
|
+
type: {},
|
|
9
|
+
size: {},
|
|
10
|
+
color: {},
|
|
11
|
+
textColor: {},
|
|
12
|
+
disabled: { type: Boolean },
|
|
13
|
+
loading: { type: Boolean }
|
|
14
|
+
},
|
|
15
|
+
setup(o) {
|
|
16
|
+
class t {
|
|
17
|
+
constructor(e) {
|
|
18
|
+
l(this, "type");
|
|
19
|
+
l(this, "size");
|
|
20
|
+
l(this, "color");
|
|
21
|
+
l(this, "textColor");
|
|
22
|
+
l(this, "disabled");
|
|
23
|
+
l(this, "loading");
|
|
24
|
+
this.type = e.type || "default", this.size = e.size || "medium", this.color = e.color, this.textColor = e.textColor, this.disabled = e.disabled ?? !1, this.loading = e.loading ?? !1;
|
|
25
|
+
}
|
|
26
|
+
get classes() {
|
|
27
|
+
const e = ["i-button", this.type, this.size];
|
|
28
|
+
return this.disabled && e.push("disabled"), this.loading && e.push("loading"), e.join(" ");
|
|
29
|
+
}
|
|
30
|
+
get styles() {
|
|
31
|
+
return {
|
|
32
|
+
backgroundColor: this.color || "",
|
|
33
|
+
color: this.textColor || ""
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const s = o, n = u(new t(s));
|
|
38
|
+
return (i, e) => (b(), h("button", {
|
|
39
|
+
class: m(n.classes),
|
|
40
|
+
style: f(n.styles),
|
|
41
|
+
disabled: n.disabled,
|
|
42
|
+
onClick: e[0] || (e[0] = (a) => i.$emit("click", a))
|
|
43
|
+
}, [
|
|
44
|
+
p(i.$slots, "default", {}, void 0, !0)
|
|
45
|
+
], 14, y));
|
|
46
|
+
}
|
|
47
|
+
}), _ = (o, t) => {
|
|
48
|
+
const s = o.__vccOpts || o;
|
|
49
|
+
for (const [n, i] of t)
|
|
50
|
+
s[n] = i;
|
|
51
|
+
return s;
|
|
52
|
+
}, C = /* @__PURE__ */ _(g, [["__scopeId", "data-v-63e0e36c"]]), x = [C], z = (o) => {
|
|
53
|
+
x.forEach((t) => {
|
|
54
|
+
o.component(t.name || "", t);
|
|
55
|
+
});
|
|
56
|
+
}, v = { install: z };
|
|
57
|
+
export {
|
|
58
|
+
C as IButton,
|
|
59
|
+
v as default
|
|
60
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(t,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(t=typeof globalThis<"u"?globalThis:t||self,e(t.YanzhiUI={},t.Vue))})(this,(function(t,e){"use strict";var p=Object.defineProperty;var _=(t,e,n)=>e in t?p(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var s=(t,e,n)=>_(t,typeof e!="symbol"?e+"":e,n);const n=["disabled"],r=((i,l)=>{const c=i.__vccOpts||i;for(const[d,a]of l)c[d]=a;return c})(e.defineComponent({__name:"Button",props:{type:{},size:{},color:{},textColor:{},disabled:{type:Boolean},loading:{type:Boolean}},setup(i){class l{constructor(o){s(this,"type");s(this,"size");s(this,"color");s(this,"textColor");s(this,"disabled");s(this,"loading");this.type=o.type||"default",this.size=o.size||"medium",this.color=o.color,this.textColor=o.textColor,this.disabled=o.disabled??!1,this.loading=o.loading??!1}get classes(){const o=["i-button",this.type,this.size];return this.disabled&&o.push("disabled"),this.loading&&o.push("loading"),o.join(" ")}get styles(){return{backgroundColor:this.color||"",color:this.textColor||""}}}const c=i,d=e.reactive(new l(c));return(a,o)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(d.classes),style:e.normalizeStyle(d.styles),disabled:d.disabled,onClick:o[0]||(o[0]=h=>a.$emit("click",h))},[e.renderSlot(a.$slots,"default",{},void 0,!0)],14,n))}}),[["__scopeId","data-v-63e0e36c"]]),u=[r],f={install:i=>{u.forEach(l=>{i.component(l.name||"",l)})}};t.IButton=r,t.default=f,Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
package/package.json
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yanzhi-ui",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.2",
|
|
5
|
+
"types": "dist/yanzhi-ui.d.ts",
|
|
5
6
|
"main": "dist/yanzhi-ui.umd.cjs",
|
|
6
7
|
"module": "dist/yanzhi-ui.es.js",
|
|
7
|
-
"
|
|
8
|
-
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"src/packages"
|
|
11
|
+
],
|
|
9
12
|
"scripts": {
|
|
10
13
|
"dev": "vite",
|
|
11
14
|
"build": "vite build"
|
|
@@ -14,9 +17,10 @@
|
|
|
14
17
|
"vue": "^3.2.0"
|
|
15
18
|
},
|
|
16
19
|
"devDependencies": {
|
|
17
|
-
"vite": "^6.0.0",
|
|
18
20
|
"@vitejs/plugin-vue": "^5.2.0",
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
+
"typescript": "^5.1.0",
|
|
22
|
+
"vite": "^6.0.0",
|
|
23
|
+
"vite-plugin-dts": "^4.5.4",
|
|
24
|
+
"vue": "^3.2.0"
|
|
21
25
|
}
|
|
22
26
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<button
|
|
3
|
-
:class="
|
|
4
|
-
:style="
|
|
5
|
-
:disabled="disabled
|
|
3
|
+
:class="button.classes"
|
|
4
|
+
:style="button.styles"
|
|
5
|
+
:disabled="button.disabled"
|
|
6
6
|
@click="$emit('click', $event)"
|
|
7
7
|
>
|
|
8
8
|
<slot />
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
</template>
|
|
11
11
|
|
|
12
12
|
<script setup lang="ts">
|
|
13
|
-
import { computed } from 'vue'
|
|
13
|
+
import { reactive, computed, toRefs } from 'vue'
|
|
14
14
|
|
|
15
15
|
interface ButtonProps {
|
|
16
16
|
type?: 'default' | 'primary' | 'success' | 'warning' | 'error'
|
|
@@ -21,22 +21,41 @@ interface ButtonProps {
|
|
|
21
21
|
loading?: boolean
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
type: '
|
|
26
|
-
size: '
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
24
|
+
class Button {
|
|
25
|
+
type: ButtonProps['type']
|
|
26
|
+
size: ButtonProps['size']
|
|
27
|
+
color?: string
|
|
28
|
+
textColor?: string
|
|
29
|
+
disabled: boolean
|
|
30
|
+
loading: boolean
|
|
31
|
+
|
|
32
|
+
constructor(props: ButtonProps) {
|
|
33
|
+
this.type = props.type || 'default'
|
|
34
|
+
this.size = props.size || 'medium'
|
|
35
|
+
this.color = props.color
|
|
36
|
+
this.textColor = props.textColor
|
|
37
|
+
this.disabled = props.disabled ?? false
|
|
38
|
+
this.loading = props.loading ?? false
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
get classes() {
|
|
42
|
+
const cls = ['i-button', this.type, this.size]
|
|
43
|
+
if (this.disabled) cls.push('disabled')
|
|
44
|
+
if (this.loading) cls.push('loading')
|
|
45
|
+
return cls.join(' ')
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
get styles() {
|
|
49
|
+
return {
|
|
50
|
+
backgroundColor: this.color || '',
|
|
51
|
+
color: this.textColor || ''
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const props = withDefaults(defineProps<ButtonProps>(), {})
|
|
57
|
+
|
|
58
|
+
const button = reactive(new Button(props))
|
|
40
59
|
</script>
|
|
41
60
|
|
|
42
61
|
<style scoped>
|
|
@@ -46,6 +65,7 @@ const textColor = computed(() => props.textColor || '')
|
|
|
46
65
|
height: 32px;
|
|
47
66
|
border: none;
|
|
48
67
|
cursor: pointer;
|
|
68
|
+
transition: all 0.2s;
|
|
49
69
|
}
|
|
50
70
|
.i-button.small { height: 24px; }
|
|
51
71
|
.i-button.medium { height: 32px; }
|
package/src/packages/index.ts
CHANGED
|
@@ -1 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
import type { App } from 'vue'
|
|
2
|
+
import IButton from './button/Button.vue'
|
|
3
|
+
|
|
4
|
+
const components = [IButton]
|
|
5
|
+
|
|
6
|
+
const install = (app: App) => {
|
|
7
|
+
components.forEach(component => {
|
|
8
|
+
app.component(component.name || '', component)
|
|
9
|
+
})
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// 支持按需导入
|
|
13
|
+
export { IButton }
|
|
14
|
+
|
|
15
|
+
export default { install }
|