sccba-ui 0.0.17 → 0.0.19

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("vue-demi"),n=require("vue"),d=(t,e)=>{const l=t.__vccOpts||t;for(const[u,s]of e)l[u]=s;return l},_={name:"SccbaButton",inheritAttrs:!1},b=Object.assign(_,{props:{type:{type:String,default:"default"},size:{type:String,default:""},plain:{type:Boolean,default:!1},round:{type:Boolean,default:!1},circle:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},icon:{type:String,default:""},label:{type:String,default:""},width:{type:[String,Number],default:""},height:{type:[String,Number],default:""},block:{type:Boolean,default:!1},nativeType:{type:String,default:"button"},placeholder:{type:String,default:""}},setup(t){const e=t,l=a.useAttrs(),u=a.ref(null),s=a.computed(()=>({...e,...l}));return(o,p)=>{const c=n.resolveComponent("el-button");return n.openBlock(),n.createBlock(c,n.mergeProps(n.unref(s),{ref_key:"buttonRef",ref:u}),{default:n.withCtx(()=>[n.renderSlot(o.$slots,"default",{},void 0,!0)]),_:3},16)}}}),r=d(b,[["__scopeId","data-v-1ea6dd1b"]]),g={name:"SccbaInput"},S=Object.assign(g,{props:{type:{type:String,default:"text"},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},maxlength:{type:[String,Number],default:null},showWordLimit:{type:Boolean,default:!1},autocomplete:{type:String,default:"off"},name:{type:String,default:""},form:{type:String,default:""},required:{type:Boolean,default:!1},width:{type:[String,Number],default:""}},emits:["input","change","focus","blur","clear"],setup(t,{expose:e,emit:l}){const u=t,s=a.useAttrs(),o=a.ref(null),p=a.computed(()=>({...u,...s}));return e({getInputInstance:()=>o.value,focus:()=>o.value&&o.value.focus(),blur:()=>o.value&&o.value.blur(),select:()=>o.value&&o.value.select(),clear:()=>o.value&&o.value.clear(),inputRef:o}),(c,h)=>{const y=n.resolveComponent("el-input");return n.openBlock(),n.createBlock(y,n.mergeProps(n.unref(p),{ref_key:"inputRef",ref:o}),{default:n.withCtx(()=>[n.renderSlot(c.$slots,"default",{},void 0,!0)]),_:3},16)}}}),i=d(S,[["__scopeId","data-v-119d013b"]]),m=[r,i],f=function(t){if(m.forEach(e=>{t.component(e.name,e)}),a.isVue2)try{const e=require("element-ui");t.component("el-button",e.Button),t.component("el-input",e.Input)}catch{console.warn("Element UI not found. Please install element-ui: npm install element-ui")}else try{const e=require("element-plus");t.component("el-button",e.ElButton),t.component("el-input",e.ElInput)}catch{console.warn("Element Plus not found. Please install element-plus: npm install element-plus")}};m.forEach(t=>{t.install=function(e){if(e.component(t.name,t),a.isVue2)try{const l=require("element-ui");e.component("el-button",l.Button),e.component("el-input",l.Input)}catch{console.warn("Element UI not found. Please install element-ui: npm install element-ui")}else try{const l=require("element-plus");e.component("el-button",l.ElButton),e.component("el-input",l.ElInput)}catch{console.warn("Element Plus not found. Please install element-plus: npm install element-plus")}}});typeof window<"u"&&window.Vue&&f(window.Vue);const B={install:f,SccbaButton:r,SccbaInput:i};exports.SccbaButton=r;exports.SccbaInput=i;exports.default=B;exports.install=f;
1
+ "use strict";var h=Object.create;var g=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty;var P=(e,n,s,c)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of B(n))!I.call(e,a)&&a!==s&&g(e,a,{get:()=>n[a],enumerable:!(c=_(n,a))||c.enumerable});return e};var d=(e,n,s)=>(s=e!=null?h(w(e)):{},P(n||!e||!e.__esModule?g(s,"default",{value:e,enumerable:!0}):s,e));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue-demi"),l=require("vue"),v=(e,n)=>{const s=e.__vccOpts||e;for(const[c,a]of n)s[c]=a;return s},V={name:"SccbaButton",inheritAttrs:!1},k=Object.assign(V,{props:{type:{type:String,default:"default"},size:{type:String,default:""},plain:{type:Boolean,default:!1},round:{type:Boolean,default:!1},circle:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},icon:{type:String,default:""},label:{type:String,default:""},width:{type:[String,Number],default:""},height:{type:[String,Number],default:""},block:{type:Boolean,default:!1},nativeType:{type:String,default:"button"},placeholder:{type:String,default:""}},setup(e,{expose:n}){const s=e,c=t.useAttrs(),a=t.shallowRef(null),i=t.computed(()=>({...s,...c}));t.onMounted(async()=>{try{if(t.isVue2){const u=await import("element-ui");a.value=u.Button}else{const u=await import("element-plus");a.value=u.ElButton}}catch(u){console.error(t.isVue2?"SccbaButton: Failed to load element-ui. Please install it with: npm install element-ui":"SccbaButton: Failed to load element-plus. Please install it with: npm install element-plus",u)}});const f=t.getCurrentInstance(),p=t.ref(null),o=u=>{p.value=u,t.isVue2&&f&&(f.exposed=u)};return n({getButtonInstance:()=>p.value,buttonRef:p}),(u,r)=>l.unref(a)?(l.openBlock(),l.createBlock(l.resolveDynamicComponent(l.unref(t.h)(l.unref(a),{...l.unref(i),ref:o},u.$slots)),{key:0})):l.createCommentVNode("",!0)}}),m=v(k,[["__scopeId","data-v-3b0e735d"]]),x={name:"SccbaInput"},C=Object.assign(x,{props:{type:{type:String,default:"text"},size:{type:String,default:""},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},maxlength:{type:[String,Number],default:null},showWordLimit:{type:Boolean,default:!1},autocomplete:{type:String,default:"off"},name:{type:String,default:""},form:{type:String,default:""},required:{type:Boolean,default:!1},width:{type:[String,Number],default:""}},emits:["input","change","focus","blur","clear"],setup(e,{expose:n,emit:s}){const c=e,a=t.useAttrs(),i=t.shallowRef(null),f=t.computed(()=>({...c,...a}));t.onMounted(async()=>{try{if(t.isVue2){const r=await import("element-ui");i.value=r.Input}else{const r=await import("element-plus");i.value=r.ElInput}}catch(r){console.error(t.isVue2?"SccbaInput: Failed to load element-ui. Please install it with: npm install element-ui":"SccbaInput: Failed to load element-plus. Please install it with: npm install element-plus",r)}});const p=t.getCurrentInstance(),o=t.ref(null),u=r=>{o.value=r,t.isVue2&&p&&(p.exposed=r)};return n({getInputInstance:()=>o.value,focus:()=>o.value&&o.value.focus(),blur:()=>o.value&&o.value.blur(),select:()=>o.value&&o.value.select(),clear:()=>o.value&&o.value.clear(),inputRef:o}),(r,R)=>l.unref(i)?(l.openBlock(),l.createBlock(l.resolveDynamicComponent(l.unref(t.h)(l.unref(i),{...l.unref(f),ref:u},r.$slots)),{key:0})):l.createCommentVNode("",!0)}}),y=v(C,[["__scopeId","data-v-80af6392"]]),S=[m,y],b=function(e){S.forEach(n=>{e.component(n.name,n)})};S.forEach(e=>{e.install=function(n){n.component(e.name,e)}});typeof window<"u"&&window.Vue&&b(window.Vue);const N={install:b,SccbaButton:m,SccbaInput:y};exports.SccbaButton=m;exports.SccbaInput=y;exports.default=N;exports.install=b;
package/dist/sccba-ui.css CHANGED
@@ -1 +1 @@
1
- :root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.card{padding:2em}#app{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}[data-v-1ea6dd1b] .el-button{transition:all .3s cubic-bezier(.645,.045,.355,1)}[data-v-1ea6dd1b] .el-button:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}[data-v-1ea6dd1b] .el-button:active{transform:translateY(0);box-shadow:0 2px 8px #00000026}[data-v-1ea6dd1b] .el-button{margin-right:10px}[data-v-1ea6dd1b] .el-button:last-child{margin-right:0}[data-v-119d013b] .el-input__inner{transition:all .3s cubic-bezier(.645,.045,.355,1)}[data-v-119d013b] .el-input__inner:focus{box-shadow:0 0 0 2px #3b82f633!important}
1
+ :root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.card{padding:2em}#app{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}[data-v-3b0e735d] .el-button{transition:all .3s cubic-bezier(.645,.045,.355,1)}[data-v-3b0e735d] .el-button:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}[data-v-3b0e735d] .el-button:active{transform:translateY(0);box-shadow:0 2px 8px #00000026}[data-v-3b0e735d] .el-button{margin-right:10px}[data-v-3b0e735d] .el-button:last-child{margin-right:0}[data-v-80af6392] .el-input__inner{transition:all .3s cubic-bezier(.645,.045,.355,1)}[data-v-80af6392] .el-input__inner:focus{box-shadow:0 0 0 2px #3b82f633!important}
@@ -1,14 +1,14 @@
1
- import { useAttrs as c, ref as r, computed as f, isVue2 as i } from "vue-demi";
2
- import { resolveComponent as p, createBlock as d, openBlock as m, mergeProps as y, unref as _, withCtx as b, renderSlot as g } from "vue";
3
- const h = (t, e) => {
4
- const n = t.__vccOpts || t;
5
- for (const [o, a] of e)
6
- n[o] = a;
7
- return n;
8
- }, I = {
1
+ import { useAttrs as d, shallowRef as m, computed as y, onMounted as g, isVue2 as c, getCurrentInstance as b, ref as h, h as v } from "vue-demi";
2
+ import { createBlock as S, createCommentVNode as _, unref as s, openBlock as B, resolveDynamicComponent as w } from "vue";
3
+ const I = (t, a) => {
4
+ const i = t.__vccOpts || t;
5
+ for (const [p, o] of a)
6
+ i[p] = o;
7
+ return i;
8
+ }, N = {
9
9
  name: "SccbaButton",
10
10
  inheritAttrs: !1
11
- }, P = /* @__PURE__ */ Object.assign(I, {
11
+ }, R = /* @__PURE__ */ Object.assign(N, {
12
12
  props: {
13
13
  type: {
14
14
  type: String,
@@ -67,149 +67,165 @@ const h = (t, e) => {
67
67
  default: ""
68
68
  }
69
69
  },
70
- setup(t) {
71
- const e = t, n = c(), o = r(null), a = f(() => ({ ...e, ...n }));
72
- return (l, s) => {
73
- const u = p("el-button");
74
- return m(), d(u, y(_(a), {
75
- ref_key: "buttonRef",
76
- ref: o
77
- }), {
78
- default: b(() => [
79
- g(l.$slots, "default", {}, void 0, !0)
80
- ]),
81
- _: 3
82
- }, 16);
70
+ setup(t, { expose: a }) {
71
+ const i = t, p = d(), o = m(null), u = y(() => ({ ...i, ...p }));
72
+ g(async () => {
73
+ try {
74
+ if (c) {
75
+ const n = await import("element-ui");
76
+ o.value = n.Button;
77
+ } else {
78
+ const n = await import("element-plus");
79
+ o.value = n.ElButton;
80
+ }
81
+ } catch (n) {
82
+ console.error(
83
+ c ? "SccbaButton: Failed to load element-ui. Please install it with: npm install element-ui" : "SccbaButton: Failed to load element-plus. Please install it with: npm install element-plus",
84
+ n
85
+ );
86
+ }
87
+ });
88
+ const f = b(), r = h(null), e = (n) => {
89
+ r.value = n, c && f && (f.exposed = n);
83
90
  };
91
+ return a({
92
+ getButtonInstance: () => r.value,
93
+ buttonRef: r
94
+ }), (n, l) => s(o) ? (B(), S(w(s(v)(s(o), { ...s(u), ref: e }, n.$slots)), { key: 0 })) : _("", !0);
84
95
  }
85
- }), B = /* @__PURE__ */ h(P, [["__scopeId", "data-v-1ea6dd1b"]]), x = {
96
+ }), x = /* @__PURE__ */ I(R, [["__scopeId", "data-v-3b0e735d"]]), E = {
86
97
  name: "SccbaInput"
87
- }, k = /* @__PURE__ */ Object.assign(x, {
98
+ }, F = /* @__PURE__ */ Object.assign(E, {
88
99
  props: {
100
+ // 类型:text/password/textarea/number/email/url/date
89
101
  type: {
90
102
  type: String,
91
103
  default: "text"
92
104
  },
105
+ // 尺寸:large/medium/small
106
+ size: {
107
+ type: String,
108
+ default: ""
109
+ },
110
+ // 占位符
93
111
  placeholder: {
94
112
  type: String,
95
113
  default: ""
96
114
  },
115
+ // 是否禁用
97
116
  disabled: {
98
117
  type: Boolean,
99
118
  default: !1
100
119
  },
120
+ // 是否只读
101
121
  readonly: {
102
122
  type: Boolean,
103
123
  default: !1
104
124
  },
125
+ // 是否可清空
105
126
  clearable: {
106
127
  type: Boolean,
107
128
  default: !1
108
129
  },
130
+ // 是否显示密码切换按钮
109
131
  showPassword: {
110
132
  type: Boolean,
111
133
  default: !1
112
134
  },
135
+ // 最大输入长度
113
136
  maxlength: {
114
137
  type: [String, Number],
115
138
  default: null
116
139
  },
140
+ // 是否显示字数统计
117
141
  showWordLimit: {
118
142
  type: Boolean,
119
143
  default: !1
120
144
  },
145
+ // 自动完成
121
146
  autocomplete: {
122
147
  type: String,
123
148
  default: "off"
124
149
  },
150
+ // 原生表单属性
125
151
  name: {
126
152
  type: String,
127
153
  default: ""
128
154
  },
155
+ // 原生表单属性
129
156
  form: {
130
157
  type: String,
131
158
  default: ""
132
159
  },
160
+ // 是否必填
133
161
  required: {
134
162
  type: Boolean,
135
163
  default: !1
136
164
  },
165
+ // 输入框宽度
137
166
  width: {
138
167
  type: [String, Number],
139
168
  default: ""
140
169
  }
141
170
  },
142
171
  emits: ["input", "change", "focus", "blur", "clear"],
143
- setup(t, { expose: e, emit: n }) {
144
- const o = t, a = c(), l = r(null), s = f(() => ({ ...o, ...a }));
145
- return e({
146
- getInputInstance: () => l.value,
147
- focus: () => l.value && l.value.focus(),
148
- blur: () => l.value && l.value.blur(),
149
- select: () => l.value && l.value.select(),
150
- clear: () => l.value && l.value.clear(),
151
- inputRef: l
152
- }), (u, N) => {
153
- const v = p("el-input");
154
- return m(), d(v, y(_(s), {
155
- ref_key: "inputRef",
156
- ref: l
157
- }), {
158
- default: b(() => [
159
- g(u.$slots, "default", {}, void 0, !0)
160
- ]),
161
- _: 3
162
- }, 16);
172
+ setup(t, { expose: a, emit: i }) {
173
+ const p = t, o = d(), u = m(null), f = y(() => ({ ...p, ...o }));
174
+ g(async () => {
175
+ try {
176
+ if (c) {
177
+ const l = await import("element-ui");
178
+ u.value = l.Input;
179
+ } else {
180
+ const l = await import("element-plus");
181
+ u.value = l.ElInput;
182
+ }
183
+ } catch (l) {
184
+ console.error(
185
+ c ? "SccbaInput: Failed to load element-ui. Please install it with: npm install element-ui" : "SccbaInput: Failed to load element-plus. Please install it with: npm install element-plus",
186
+ l
187
+ );
188
+ }
189
+ });
190
+ const r = b(), e = h(null), n = (l) => {
191
+ e.value = l, c && r && (r.exposed = l);
163
192
  };
193
+ return a({
194
+ // 暴露底层输入框实例
195
+ getInputInstance: () => e.value,
196
+ // 常用的输入框方法
197
+ focus: () => e.value && e.value.focus(),
198
+ blur: () => e.value && e.value.blur(),
199
+ // 选择文本
200
+ select: () => e.value && e.value.select(),
201
+ // 清空输入框
202
+ clear: () => e.value && e.value.clear(),
203
+ // 直接暴露实例(在某些情况下可能更方便)
204
+ inputRef: e
205
+ }), (l, V) => s(u) ? (B(), S(w(s(v)(s(u), { ...s(f), ref: n }, l.$slots)), { key: 0 })) : _("", !0);
164
206
  }
165
- }), S = /* @__PURE__ */ h(k, [["__scopeId", "data-v-119d013b"]]), E = [
166
- B,
167
- S
168
- ], w = function(t) {
169
- if (E.forEach((e) => {
170
- t.component(e.name, e);
171
- }), i)
172
- try {
173
- const e = require("element-ui");
174
- t.component("el-button", e.Button), t.component("el-input", e.Input);
175
- } catch {
176
- console.warn("Element UI not found. Please install element-ui: npm install element-ui");
177
- }
178
- else
179
- try {
180
- const e = require("element-plus");
181
- t.component("el-button", e.ElButton), t.component("el-input", e.ElInput);
182
- } catch {
183
- console.warn("Element Plus not found. Please install element-plus: npm install element-plus");
184
- }
207
+ }), P = /* @__PURE__ */ I(F, [["__scopeId", "data-v-80af6392"]]), k = [
208
+ x,
209
+ P
210
+ ], C = function(t) {
211
+ k.forEach((a) => {
212
+ t.component(a.name, a);
213
+ });
185
214
  };
186
- E.forEach((t) => {
187
- t.install = function(e) {
188
- if (e.component(t.name, t), i)
189
- try {
190
- const n = require("element-ui");
191
- e.component("el-button", n.Button), e.component("el-input", n.Input);
192
- } catch {
193
- console.warn("Element UI not found. Please install element-ui: npm install element-ui");
194
- }
195
- else
196
- try {
197
- const n = require("element-plus");
198
- e.component("el-button", n.ElButton), e.component("el-input", n.ElInput);
199
- } catch {
200
- console.warn("Element Plus not found. Please install element-plus: npm install element-plus");
201
- }
215
+ k.forEach((t) => {
216
+ t.install = function(a) {
217
+ a.component(t.name, t);
202
218
  };
203
219
  });
204
- typeof window < "u" && window.Vue && w(window.Vue);
205
- const $ = {
206
- install: w,
207
- SccbaButton: B,
208
- SccbaInput: S
220
+ typeof window < "u" && window.Vue && C(window.Vue);
221
+ const j = {
222
+ install: C,
223
+ SccbaButton: x,
224
+ SccbaInput: P
209
225
  };
210
226
  export {
211
- B as SccbaButton,
212
- S as SccbaInput,
213
- $ as default,
214
- w as install
227
+ x as SccbaButton,
228
+ P as SccbaInput,
229
+ j as default,
230
+ C as install
215
231
  };
@@ -1 +1 @@
1
- (function(u,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("vue-demi"),require("vue")):typeof define=="function"&&define.amd?define(["exports","vue-demi","vue"],a):(u=typeof globalThis<"u"?globalThis:u||self,a(u.SccbaUI={},u.VueDemi,u.Vue))})(this,(function(u,a,n){"use strict";const p=(t,e)=>{const l=t.__vccOpts||t;for(const[s,c]of e)l[s]=c;return l},r=p(Object.assign({name:"SccbaButton",inheritAttrs:!1},{props:{type:{type:String,default:"default"},size:{type:String,default:""},plain:{type:Boolean,default:!1},round:{type:Boolean,default:!1},circle:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},icon:{type:String,default:""},label:{type:String,default:""},width:{type:[String,Number],default:""},height:{type:[String,Number],default:""},block:{type:Boolean,default:!1},nativeType:{type:String,default:"button"},placeholder:{type:String,default:""}},setup(t){const e=t,l=a.useAttrs(),s=a.ref(null),c=a.computed(()=>({...e,...l}));return(o,_)=>{const d=n.resolveComponent("el-button");return n.openBlock(),n.createBlock(d,n.mergeProps(n.unref(c),{ref_key:"buttonRef",ref:s}),{default:n.withCtx(()=>[n.renderSlot(o.$slots,"default",{},void 0,!0)]),_:3},16)}}}),[["__scopeId","data-v-1ea6dd1b"]]),f=p(Object.assign({name:"SccbaInput"},{props:{type:{type:String,default:"text"},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},maxlength:{type:[String,Number],default:null},showWordLimit:{type:Boolean,default:!1},autocomplete:{type:String,default:"off"},name:{type:String,default:""},form:{type:String,default:""},required:{type:Boolean,default:!1},width:{type:[String,Number],default:""}},emits:["input","change","focus","blur","clear"],setup(t,{expose:e,emit:l}){const s=t,c=a.useAttrs(),o=a.ref(null),_=a.computed(()=>({...s,...c}));return e({getInputInstance:()=>o.value,focus:()=>o.value&&o.value.focus(),blur:()=>o.value&&o.value.blur(),select:()=>o.value&&o.value.select(),clear:()=>o.value&&o.value.clear(),inputRef:o}),(d,E)=>{const b=n.resolveComponent("el-input");return n.openBlock(),n.createBlock(b,n.mergeProps(n.unref(_),{ref_key:"inputRef",ref:o}),{default:n.withCtx(()=>[n.renderSlot(d.$slots,"default",{},void 0,!0)]),_:3},16)}}}),[["__scopeId","data-v-119d013b"]]),m=[r,f],i=function(t){if(m.forEach(e=>{t.component(e.name,e)}),a.isVue2)try{const e=require("element-ui");t.component("el-button",e.Button),t.component("el-input",e.Input)}catch{console.warn("Element UI not found. Please install element-ui: npm install element-ui")}else try{const e=require("element-plus");t.component("el-button",e.ElButton),t.component("el-input",e.ElInput)}catch{console.warn("Element Plus not found. Please install element-plus: npm install element-plus")}};m.forEach(t=>{t.install=function(e){if(e.component(t.name,t),a.isVue2)try{const l=require("element-ui");e.component("el-button",l.Button),e.component("el-input",l.Input)}catch{console.warn("Element UI not found. Please install element-ui: npm install element-ui")}else try{const l=require("element-plus");e.component("el-button",l.ElButton),e.component("el-input",l.ElInput)}catch{console.warn("Element Plus not found. Please install element-plus: npm install element-plus")}}}),typeof window<"u"&&window.Vue&&i(window.Vue);const y={install:i,SccbaButton:r,SccbaInput:f};u.SccbaButton=r,u.SccbaInput=f,u.default=y,u.install=i,Object.defineProperties(u,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
1
+ (function(o,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue-demi"),require("vue")):typeof define=="function"&&define.amd?define(["exports","vue-demi","vue"],e):(o=typeof globalThis<"u"?globalThis:o||self,e(o.SccbaUI={},o.VueDemi,o.Vue))})(this,(function(o,e,t){"use strict";const b=(l,u)=>{const f=l.__vccOpts||l;for(const[p,c]of u)f[p]=c;return f},y=b(Object.assign({name:"SccbaButton",inheritAttrs:!1},{props:{type:{type:String,default:"default"},size:{type:String,default:""},plain:{type:Boolean,default:!1},round:{type:Boolean,default:!1},circle:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},icon:{type:String,default:""},label:{type:String,default:""},width:{type:[String,Number],default:""},height:{type:[String,Number],default:""},block:{type:Boolean,default:!1},nativeType:{type:String,default:"button"},placeholder:{type:String,default:""}},setup(l,{expose:u}){const f=l,p=e.useAttrs(),c=e.shallowRef(null),r=e.computed(()=>({...f,...p}));e.onMounted(async()=>{try{if(e.isVue2){const a=await import("element-ui");c.value=a.Button}else{const a=await import("element-plus");c.value=a.ElButton}}catch(a){console.error(e.isVue2?"SccbaButton: Failed to load element-ui. Please install it with: npm install element-ui":"SccbaButton: Failed to load element-plus. Please install it with: npm install element-plus",a)}});const d=e.getCurrentInstance(),i=e.ref(null),n=a=>{i.value=a,e.isVue2&&d&&(d.exposed=a)};return u({getButtonInstance:()=>i.value,buttonRef:i}),(a,s)=>t.unref(c)?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(e.h)(t.unref(c),{...t.unref(r),ref:n},a.$slots)),{key:0})):t.createCommentVNode("",!0)}}),[["__scopeId","data-v-3b0e735d"]]),m=b(Object.assign({name:"SccbaInput"},{props:{type:{type:String,default:"text"},size:{type:String,default:""},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},maxlength:{type:[String,Number],default:null},showWordLimit:{type:Boolean,default:!1},autocomplete:{type:String,default:"off"},name:{type:String,default:""},form:{type:String,default:""},required:{type:Boolean,default:!1},width:{type:[String,Number],default:""}},emits:["input","change","focus","blur","clear"],setup(l,{expose:u,emit:f}){const p=l,c=e.useAttrs(),r=e.shallowRef(null),d=e.computed(()=>({...p,...c}));e.onMounted(async()=>{try{if(e.isVue2){const s=await import("element-ui");r.value=s.Input}else{const s=await import("element-plus");r.value=s.ElInput}}catch(s){console.error(e.isVue2?"SccbaInput: Failed to load element-ui. Please install it with: npm install element-ui":"SccbaInput: Failed to load element-plus. Please install it with: npm install element-plus",s)}});const i=e.getCurrentInstance(),n=e.ref(null),a=s=>{n.value=s,e.isVue2&&i&&(i.exposed=s)};return u({getInputInstance:()=>n.value,focus:()=>n.value&&n.value.focus(),blur:()=>n.value&&n.value.blur(),select:()=>n.value&&n.value.select(),clear:()=>n.value&&n.value.clear(),inputRef:n}),(s,V)=>t.unref(r)?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(e.h)(t.unref(r),{...t.unref(d),ref:a},s.$slots)),{key:0})):t.createCommentVNode("",!0)}}),[["__scopeId","data-v-80af6392"]]),h=[y,m],_=function(l){h.forEach(u=>{l.component(u.name,u)})};h.forEach(l=>{l.install=function(u){u.component(l.name,l)}}),typeof window<"u"&&window.Vue&&_(window.Vue);const g={install:_,SccbaButton:y,SccbaInput:m};o.SccbaButton=y,o.SccbaInput=m,o.default=g,o.install=_,Object.defineProperties(o,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sccba-ui",
3
- "version": "0.0.17",
3
+ "version": "0.0.19",
4
4
  "description": "一个基于 Vue 2/3 的 UI 组件库,使用 vue-demi 实现跨版本兼容",
5
5
  "keywords": [
6
6
  "vue",
@@ -24,7 +24,9 @@
24
24
  "switch:vue3": "npx vue-demi-switch 3"
25
25
  },
26
26
  "peerDependencies": {
27
- "vue": "^2.7.0 || ^3.0.0"
27
+ "vue": "^2.7.0 || ^3.0.0",
28
+ "element-ui": "^2.15.0",
29
+ "element-plus": "^2.0.0"
28
30
  },
29
31
  "dependencies": {
30
32
  "sass": "^1.97.1",