@v-c/collapse 0.0.2 → 0.0.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.
package/dist/Collapse.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("vue"),N=require("@v-c/util"),x=require("@v-c/util/dist/hooks/useMergedState"),O=require("@v-c/util/dist/pickAttrs"),h=require("./hooks/useItems.cjs");function I(t){let r=t;if(!Array.isArray(r)){const a=typeof r;r=a==="number"||a==="string"?[r]:[]}return r.map(a=>String(a))}const M={prefixCls:"vc-collapse"},j=i.defineComponent({props:i.mergeDefaults({prefixCls:{type:String,required:!1},activeKey:{type:[String,Number,Array],required:!1},defaultActiveKey:{type:[String,Number,Array],required:!1},openMotion:{type:null,required:!1},onChange:{type:Function,required:!1},accordion:{type:Boolean,required:!1},className:{type:String,required:!1},style:{type:Object,required:!1},destroyOnHidden:{type:Boolean,required:!1},expandIcon:{type:Function,required:!1},collapsible:{type:String,required:!1},items:{type:Array,required:!1},classNames:{type:Object,required:!1},styles:{type:Object,required:!1}},M),name:"VcCollapse",inheritAttrs:!1,setup(t,{attrs:r,expose:a,slots:d}){const n=i.ref(),[s,f]=x([],{value:i.toRef(t,"activeKey"),onChange:e=>t.onChange?.(e),defaultValue:t.defaultActiveKey,postState:I}),y=e=>t.accordion?s.value[0]===e?[]:[e]:s.value.indexOf(e)>-1?s.value.filter(l=>l!==e):[...s.value,e],p=e=>{s.value=y(e),f(s.value)};return a({ref:n}),()=>{const{prefixCls:e="vc-collapse",className:c,style:u,openMotion:l,expandIcon:v,collapsible:m,accordion:o,classNames:g,styles:q,items:A,destroyOnHidden:C}=t,b=N.classNames(e,c),K={...t,...r},S=h.useItems(A,d.default,{prefixCls:e,accordion:o,openMotion:l,expandIcon:v,collapsible:m,onItemClick:p,activeKey:s.value,destroyOnHidden:C,classNames:g,styles:q});return i.createVNode("div",i.mergeProps({ref:n,class:b,style:u,role:o?"tablist":void 0},O(K,{aria:!0,data:!0})),[S])}}});exports.default=j;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("vue"),b=require("@v-c/util"),S=require("@v-c/util/dist/hooks/useMergedState"),x=require("@v-c/util/dist/omit"),N=require("@v-c/util/dist/pickAttrs"),O=require("./hooks/useItems.cjs");function h(r){let t=r;if(!Array.isArray(t)){const a=typeof t;t=a==="number"||a==="string"?[t]:[]}return t.map(a=>String(a))}const I={prefixCls:"vc-collapse"},M=i.defineComponent({props:i.mergeDefaults({prefixCls:{type:String,required:!1},activeKey:{type:[String,Number,Array],required:!1},defaultActiveKey:{type:[String,Number,Array],required:!1},openMotion:{type:null,required:!1},onChange:{type:Function,required:!1},accordion:{type:Boolean,required:!1},destroyOnHidden:{type:Boolean,required:!1},expandIcon:{type:Function,required:!1},collapsible:{type:String,required:!1},items:{type:Array,required:!1},classNames:{type:Object,required:!1},styles:{type:Object,required:!1}},I),name:"VcCollapse",inheritAttrs:!1,setup(r,{attrs:t,expose:a,slots:d}){const l=i.ref(),[s,f]=S([],{value:i.toRef(r,"activeKey"),onChange:e=>r.onChange?.(e),defaultValue:r.defaultActiveKey,postState:h}),y=e=>r.accordion?s.value[0]===e?[]:[e]:s.value.indexOf(e)>-1?s.value.filter(n=>n!==e):[...s.value,e],p=e=>{s.value=y(e),f(s.value)};return a({ref:l}),()=>{const{prefixCls:e="vc-collapse",openMotion:c,expandIcon:o,collapsible:n,accordion:u,classNames:v,styles:m,items:g,destroyOnHidden:q}=r,A=b.classNames(e,t.class),C={...r,...x(t,["class","style"])},K=O.useItems(g,d.default,{prefixCls:e,accordion:u,openMotion:c,expandIcon:o,collapsible:n,onItemClick:p,activeKey:s.value,destroyOnHidden:q,classNames:v,styles:m});return i.createVNode("div",i.mergeProps({ref:l,class:A,style:t.style,role:u?"tablist":void 0},N(C,{aria:!0,data:!0})),[K])}}});exports.default=M;
package/dist/Collapse.js CHANGED
@@ -1,19 +1,20 @@
1
- import { defineComponent as b, mergeDefaults as x, ref as S, toRef as O, createVNode as h, mergeProps as I } from "vue";
2
- import { classNames as j } from "@v-c/util";
3
- import M from "@v-c/util/dist/hooks/useMergedState";
1
+ import { defineComponent as K, mergeDefaults as x, ref as N, toRef as b, createVNode as S, mergeProps as h } from "vue";
2
+ import { classNames as O } from "@v-c/util";
3
+ import I from "@v-c/util/dist/hooks/useMergedState";
4
+ import M from "@v-c/util/dist/omit";
4
5
  import V from "@v-c/util/dist/pickAttrs";
5
- import { useItems as B } from "./hooks/useItems.js";
6
- function F(t) {
7
- let r = t;
8
- if (!Array.isArray(r)) {
9
- const s = typeof r;
10
- r = s === "number" || s === "string" ? [r] : [];
6
+ import { useItems as j } from "./hooks/useItems.js";
7
+ function B(r) {
8
+ let t = r;
9
+ if (!Array.isArray(t)) {
10
+ const a = typeof t;
11
+ t = a === "number" || a === "string" ? [t] : [];
11
12
  }
12
- return r.map((s) => String(s));
13
+ return t.map((a) => String(a));
13
14
  }
14
- const H = {
15
+ const F = {
15
16
  prefixCls: "vc-collapse"
16
- }, $ = /* @__PURE__ */ b({
17
+ }, $ = /* @__PURE__ */ K({
17
18
  props: /* @__PURE__ */ x({
18
19
  prefixCls: {
19
20
  type: String,
@@ -39,14 +40,6 @@ const H = {
39
40
  type: Boolean,
40
41
  required: !1
41
42
  },
42
- className: {
43
- type: String,
44
- required: !1
45
- },
46
- style: {
47
- type: Object,
48
- required: !1
49
- },
50
43
  destroyOnHidden: {
51
44
  type: Boolean,
52
45
  required: !1
@@ -71,61 +64,59 @@ const H = {
71
64
  type: Object,
72
65
  required: !1
73
66
  }
74
- }, H),
67
+ }, F),
75
68
  name: "VcCollapse",
76
69
  inheritAttrs: !1,
77
- setup(t, {
78
- attrs: r,
79
- expose: s,
70
+ setup(r, {
71
+ attrs: t,
72
+ expose: a,
80
73
  slots: u
81
74
  }) {
82
- const l = S(), [a, d] = M([], {
83
- value: O(t, "activeKey"),
84
- onChange: (e) => t.onChange?.(e),
85
- defaultValue: t.defaultActiveKey,
86
- postState: F
87
- }), f = (e) => t.accordion ? a.value[0] === e ? [] : [e] : a.value.indexOf(e) > -1 ? a.value.filter((i) => i !== e) : [...a.value, e], p = (e) => {
88
- a.value = f(e), d(a.value);
75
+ const l = N(), [s, f] = I([], {
76
+ value: b(r, "activeKey"),
77
+ onChange: (e) => r.onChange?.(e),
78
+ defaultValue: r.defaultActiveKey,
79
+ postState: B
80
+ }), d = (e) => r.accordion ? s.value[0] === e ? [] : [e] : s.value.indexOf(e) > -1 ? s.value.filter((i) => i !== e) : [...s.value, e], p = (e) => {
81
+ s.value = d(e), f(s.value);
89
82
  };
90
- return s({
83
+ return a({
91
84
  ref: l
92
85
  }), () => {
93
86
  const {
94
87
  prefixCls: e = "vc-collapse",
95
- className: n,
96
- style: o,
97
- openMotion: i,
98
- expandIcon: y,
99
- collapsible: m,
88
+ openMotion: n,
89
+ expandIcon: o,
90
+ collapsible: i,
100
91
  accordion: c,
101
- classNames: v,
102
- styles: g,
103
- items: A,
104
- destroyOnHidden: q
105
- } = t, C = j(e, n), K = {
106
- ...t,
107
- ...r
108
- }, N = B(A, u.default, {
92
+ classNames: y,
93
+ styles: m,
94
+ items: v,
95
+ destroyOnHidden: g
96
+ } = r, A = O(e, t.class), q = {
97
+ ...r,
98
+ ...M(t, ["class", "style"])
99
+ }, C = j(v, u.default, {
109
100
  prefixCls: e,
110
101
  accordion: c,
111
- openMotion: i,
112
- expandIcon: y,
113
- collapsible: m,
102
+ openMotion: n,
103
+ expandIcon: o,
104
+ collapsible: i,
114
105
  onItemClick: p,
115
- activeKey: a.value,
116
- destroyOnHidden: q,
117
- classNames: v,
118
- styles: g
106
+ activeKey: s.value,
107
+ destroyOnHidden: g,
108
+ classNames: y,
109
+ styles: m
119
110
  });
120
- return h("div", I({
111
+ return S("div", h({
121
112
  ref: l,
122
- class: C,
123
- style: o,
113
+ class: A,
114
+ style: t.style,
124
115
  role: c ? "tablist" : void 0
125
- }, V(K, {
116
+ }, V(q, {
126
117
  aria: !0,
127
118
  data: !0
128
- })), [N]);
119
+ })), [C]);
129
120
  };
130
121
  }
131
122
  });
package/dist/Panel.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),o=require("@v-c/util"),m=require("@v-c/util/dist/KeyCode"),O=require("@v-c/util/dist/omit.ts"),R=require("./PanelContent.cjs"),B={showArrow:!0,classNames:{},styles:{}},j=e.defineComponent({props:e.mergeDefaults({id:{type:String,required:!1},header:{type:null,required:!1},prefixCls:{type:String,required:!1},headerClass:{type:String,required:!1},showArrow:{type:Boolean,required:!1},class:{type:String,required:!1},classNames:{type:Object,required:!1},style:{type:Object,required:!1},styles:{type:Object,required:!1},isActive:{type:Boolean,required:!1},openMotion:{type:null,required:!1},destroyOnHidden:{type:Boolean,required:!1},accordion:{type:Boolean,required:!1},forceRender:{type:Boolean,required:!1},extra:{type:null,required:!1},onItemClick:{type:Function,required:!1},expandIcon:{type:Function,required:!1},panelKey:{type:[String,Number],required:!1},role:{type:String,required:!1},collapsible:{type:String,required:!1},children:{type:null,required:!1}},B),name:"CollapsePanel",inheritAttrs:!1,setup(a,{attrs:q,expose:N}){const d=e.computed(()=>a.collapsible==="disabled"),u=e.ref(),h=e.computed(()=>a.extra!==null&&a.extra!==void 0&&typeof a.extra!="boolean"),c=e.computed(()=>({onClick:()=>{a.onItemClick?.(a.panelKey)},onKeydown:l=>{(l.key==="Enter"||l.keyCode===m.ENTER||l.which===m.ENTER)&&a.onItemClick?.(a.panelKey)},role:a.accordion?"tab":"button","aria-expanded":a.isActive,"aria-disabled":d.value,tabIndex:d.value?-1:0}));return N({ref:u}),()=>{const{extra:l,prefixCls:s,isActive:r,class:v,expandIcon:f,forceRender:C,headerClass:b,collapsible:t,accordion:x,openMotion:g={},onItemClick:M,classNames:n={},showArrow:P=!0,destroyOnHidden:w,styles:i={},header:S,panelKey:T,children:$,...A}=a,I=o.classNames(`${s}-item`,{[`${s}-item-active`]:r,[`${s}-item-disabled`]:d.value},v),V={class:o.classNames(b,`${s}-header`,{[`${s}-collapsible-${t}`]:!!t},n.header),style:i.header,...["header","icon"].includes(t)?{}:c.value},p=typeof f=="function"?f(a):e.createVNode("i",{class:"arrow"},null),k=p&&e.createVNode("div",e.mergeProps({class:o.classNames(`${s}-expand-icon`,n?.icon),style:i?.icon},["header","icon"].includes(t)?c.value:{}),[p]),y=e.withDirectives(e.createVNode(R.default,{prefixCls:s,classNames:n,styles:i,isActive:r,forceRender:C,role:x?"tabpanel":void 0},{default:()=>$}),[[e.vShow,r]]),E={appear:!1,"leave-to-class":`${s}-panel-hidden`,...g},K={...A,...O(q,["class"])};return e.createVNode("div",e.mergeProps(K,{ref:u,class:I}),[e.createVNode("div",V,[P&&k,e.createVNode("span",e.mergeProps({class:o.classNames(`${s}-title`,n?.title),style:i?.title},t==="header"?c.value:{}),[S]),h.value&&e.createVNode("div",{class:`${s}-extra`},[l])]),e.createVNode(e.Transition,E,{default:()=>[w?r?y:null:y]})])}}});exports.default=j;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),o=require("@v-c/util"),y=require("@v-c/util/dist/KeyCode"),O=require("@v-c/util/dist/omit"),R=require("./PanelContent.cjs"),B={showArrow:!0,classNames:{},styles:{}},j=e.defineComponent({props:e.mergeDefaults({id:{type:String,required:!1},header:{type:null,required:!1},prefixCls:{type:String,required:!1},headerClass:{type:String,required:!1},showArrow:{type:Boolean,required:!1},class:{type:String,required:!1},classNames:{type:Object,required:!1},style:{type:Object,required:!1},styles:{type:Object,required:!1},isActive:{type:Boolean,required:!1},openMotion:{type:null,required:!1},destroyOnHidden:{type:Boolean,required:!1},accordion:{type:Boolean,required:!1},forceRender:{type:Boolean,required:!1},extra:{type:null,required:!1},onItemClick:{type:Function,required:!1},expandIcon:{type:Function,required:!1},panelKey:{type:[String,Number],required:!1},role:{type:String,required:!1},collapsible:{type:String,required:!1},children:{type:null,required:!1}},B),name:"CollapsePanel",inheritAttrs:!1,setup(a,{attrs:m,expose:q}){const d=e.computed(()=>a.collapsible==="disabled"),u=e.ref(),N=e.computed(()=>a.extra!==null&&a.extra!==void 0&&typeof a.extra!="boolean"),c=e.computed(()=>({onClick:()=>{a.onItemClick?.(a.panelKey)},onKeydown:l=>{(l.key==="Enter"||l.keyCode===y.ENTER||l.which===y.ENTER)&&a.onItemClick?.(a.panelKey)},role:a.accordion?"tab":"button","aria-expanded":a.isActive,"aria-disabled":d.value,tabIndex:d.value?-1:0}));return q({ref:u}),()=>{const{extra:l,prefixCls:s,isActive:r,class:h,expandIcon:f,forceRender:v,headerClass:C,collapsible:t,accordion:b,openMotion:x={},onItemClick:M,classNames:n={},showArrow:g=!0,destroyOnHidden:P,styles:i={},header:w,panelKey:T,children:S,...$}=a,A=o.classNames(`${s}-item`,{[`${s}-item-active`]:r,[`${s}-item-disabled`]:d.value},h),I={class:o.classNames(C,`${s}-header`,{[`${s}-collapsible-${t}`]:!!t},n.header),style:i.header,...["header","icon"].includes(t)?{}:c.value},p=typeof f=="function"?f(a):e.createVNode("i",{class:"arrow"},null),V=p&&e.createVNode("div",e.mergeProps({class:o.classNames(`${s}-expand-icon`,n?.icon),style:i?.icon},["header","icon"].includes(t)?c.value:{}),[p]),k=e.withDirectives(e.createVNode(R.default,{prefixCls:s,classNames:n,styles:i,isActive:r,forceRender:v,role:b?"tabpanel":void 0},{default:()=>S}),[[e.vShow,r]]),E={appear:!1,"leave-to-class":`${s}-panel-hidden`,...x},K={...$,...O(m,["class"])};return e.createVNode("div",e.mergeProps(K,{ref:u,class:A}),[e.createVNode("div",I,[g&&V,e.createVNode("span",e.mergeProps({class:o.classNames(`${s}-title`,n?.title),style:i?.title},t==="header"?c.value:{}),[w]),N.value&&e.createVNode("div",{class:`${s}-extra`},[l])]),e.createVNode(e.Transition,E,{default:()=>[!P||r?k:null]})])}}});exports.default=j;
package/dist/Panel.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as j, mergeDefaults as T, computed as u, ref as D, createVNode as l, mergeProps as f, withDirectives as F, vShow as H, Transition as M } from "vue";
2
2
  import { classNames as o } from "@v-c/util";
3
- import q from "@v-c/util/dist/KeyCode";
4
- import z from "@v-c/util/dist/omit.ts";
3
+ import h from "@v-c/util/dist/KeyCode";
4
+ import z from "@v-c/util/dist/omit";
5
5
  import V from "./PanelContent.js";
6
6
  const W = {
7
7
  showArrow: !0,
@@ -97,85 +97,85 @@ const W = {
97
97
  name: "CollapsePanel",
98
98
  inheritAttrs: !1,
99
99
  setup(e, {
100
- attrs: C,
101
- expose: v
100
+ attrs: q,
101
+ expose: C
102
102
  }) {
103
- const d = u(() => e.collapsible === "disabled"), p = D(), b = u(() => e.extra !== null && e.extra !== void 0 && typeof e.extra != "boolean"), c = u(() => ({
103
+ const d = u(() => e.collapsible === "disabled"), p = D(), v = u(() => e.extra !== null && e.extra !== void 0 && typeof e.extra != "boolean"), c = u(() => ({
104
104
  onClick: () => {
105
105
  e.onItemClick?.(e.panelKey);
106
106
  },
107
107
  onKeydown: (s) => {
108
- (s.key === "Enter" || s.keyCode === q.ENTER || s.which === q.ENTER) && e.onItemClick?.(e.panelKey);
108
+ (s.key === "Enter" || s.keyCode === h.ENTER || s.which === h.ENTER) && e.onItemClick?.(e.panelKey);
109
109
  },
110
110
  role: e.accordion ? "tab" : "button",
111
111
  "aria-expanded": e.isActive,
112
112
  "aria-disabled": d.value,
113
113
  tabIndex: d.value ? -1 : 0
114
114
  }));
115
- return v({
115
+ return C({
116
116
  ref: p
117
117
  }), () => {
118
118
  const {
119
119
  extra: s,
120
120
  prefixCls: a,
121
121
  isActive: t,
122
- class: x,
122
+ class: b,
123
123
  expandIcon: y,
124
- forceRender: N,
125
- headerClass: w,
124
+ forceRender: x,
125
+ headerClass: N,
126
126
  collapsible: r,
127
- accordion: g,
128
- openMotion: P = {},
127
+ accordion: w,
128
+ openMotion: g = {},
129
129
  onItemClick: G,
130
130
  classNames: n = {},
131
- showArrow: $ = !0,
132
- destroyOnHidden: A,
131
+ showArrow: P = !0,
132
+ destroyOnHidden: $,
133
133
  styles: i = {},
134
- header: I,
134
+ header: A,
135
135
  panelKey: J,
136
- children: S,
137
- ...k
138
- } = e, E = o(`${a}-item`, {
136
+ children: I,
137
+ ...S
138
+ } = e, k = o(`${a}-item`, {
139
139
  [`${a}-item-active`]: t,
140
140
  [`${a}-item-disabled`]: d.value
141
- }, x), K = {
142
- class: o(w, `${a}-header`, {
141
+ }, b), E = {
142
+ class: o(N, `${a}-header`, {
143
143
  [`${a}-collapsible-${r}`]: !!r
144
144
  }, n.header),
145
145
  style: i.header,
146
146
  ...["header", "icon"].includes(r) ? {} : c.value
147
147
  }, m = typeof y == "function" ? y(e) : l("i", {
148
148
  class: "arrow"
149
- }, null), R = m && l("div", f({
149
+ }, null), K = m && l("div", f({
150
150
  class: o(`${a}-expand-icon`, n?.icon),
151
151
  style: i?.icon
152
- }, ["header", "icon"].includes(r) ? c.value : {}), [m]), h = F(l(V, {
152
+ }, ["header", "icon"].includes(r) ? c.value : {}), [m]), R = F(l(V, {
153
153
  prefixCls: a,
154
154
  classNames: n,
155
155
  styles: i,
156
156
  isActive: t,
157
- forceRender: N,
158
- role: g ? "tabpanel" : void 0
157
+ forceRender: x,
158
+ role: w ? "tabpanel" : void 0
159
159
  }, {
160
- default: () => S
160
+ default: () => I
161
161
  }), [[H, t]]), B = {
162
162
  appear: !1,
163
163
  "leave-to-class": `${a}-panel-hidden`,
164
- ...P
164
+ ...g
165
165
  }, O = {
166
- ...k,
167
- ...z(C, ["class"])
166
+ ...S,
167
+ ...z(q, ["class"])
168
168
  };
169
169
  return l("div", f(O, {
170
170
  ref: p,
171
- class: E
172
- }), [l("div", K, [$ && R, l("span", f({
171
+ class: k
172
+ }), [l("div", E, [P && K, l("span", f({
173
173
  class: o(`${a}-title`, n?.title),
174
174
  style: i?.title
175
- }, r === "header" ? c.value : {}), [I]), b.value && l("div", {
175
+ }, r === "header" ? c.value : {}), [A]), v.value && l("div", {
176
176
  class: `${a}-extra`
177
177
  }, [s])]), l(M, B, {
178
- default: () => [A ? t ? h : null : h]
178
+ default: () => [!$ || t ? R : null]
179
179
  })]);
180
180
  };
181
181
  }
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { default as Collapse } from './Collapse';
2
2
  import { default as Panel } from './Panel';
3
- export type { CollapsePanelProps, CollapseProps } from './interface';
3
+ export type { CollapsePanelProps, CollapseProps, ItemType } from './interface';
4
4
  export default Collapse;
5
5
  export { Panel };
@@ -37,8 +37,6 @@ export interface CollapseProps {
37
37
  openMotion?: TransitionProps;
38
38
  onChange?: (key: Key[]) => void;
39
39
  accordion?: boolean;
40
- className?: string;
41
- style?: object;
42
40
  destroyOnHidden?: boolean;
43
41
  expandIcon?: (props: object) => any;
44
42
  collapsible?: CollapsibleType;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@v-c/collapse",
3
3
  "type": "module",
4
- "version": "0.0.2",
4
+ "version": "0.0.4",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
package/src/Collapse.tsx CHANGED
@@ -2,6 +2,7 @@ import type { Ref } from 'vue'
2
2
  import type { CollapseProps, Key } from './interface'
3
3
  import { classNames as classnames } from '@v-c/util'
4
4
  import useMergedState from '@v-c/util/dist/hooks/useMergedState'
5
+ import omit from '@v-c/util/dist/omit'
5
6
  import pickAttrs from '@v-c/util/dist/pickAttrs'
6
7
  import { defineComponent, ref, toRef } from 'vue'
7
8
  import { useItems } from './hooks/useItems'
@@ -63,8 +64,6 @@ const Collapse = defineComponent<CollapseProps>({
63
64
  return () => {
64
65
  const {
65
66
  prefixCls = 'vc-collapse',
66
- className,
67
- style,
68
67
  openMotion,
69
68
  expandIcon,
70
69
  collapsible,
@@ -75,9 +74,9 @@ const Collapse = defineComponent<CollapseProps>({
75
74
  destroyOnHidden,
76
75
  } = props
77
76
 
78
- const collapseClassName = classnames(prefixCls, className)
77
+ const collapseClassName = classnames(prefixCls, (attrs as any).class)
79
78
 
80
- const mergedProps = { ...props, ...attrs }
79
+ const mergedProps = { ...props, ...omit(attrs, ['class', 'style']) }
81
80
 
82
81
  const mergedChildren = useItems(items, slots.default, {
83
82
  prefixCls,
@@ -96,7 +95,7 @@ const Collapse = defineComponent<CollapseProps>({
96
95
  <div
97
96
  ref={refWrapper}
98
97
  class={collapseClassName}
99
- style={style as any}
98
+ style={(attrs as any).style}
100
99
  role={accordion ? 'tablist' : undefined}
101
100
  {...pickAttrs(mergedProps, { aria: true, data: true })}
102
101
  >
package/src/Panel.tsx CHANGED
@@ -2,7 +2,7 @@ import type { HTMLAttributes } from 'vue'
2
2
  import type { CollapsePanelProps } from './interface'
3
3
  import { classNames as classnames } from '@v-c/util'
4
4
  import KeyCode from '@v-c/util/dist/KeyCode'
5
- import omit from '@v-c/util/dist/omit.ts'
5
+ import omit from '@v-c/util/dist/omit'
6
6
  import { computed, defineComponent, ref, Transition } from 'vue'
7
7
  import PanelContent from './PanelContent'
8
8
 
@@ -167,7 +167,7 @@ const CollapsePanel = defineComponent<CollapsePanelProps>({
167
167
  </div>
168
168
 
169
169
  <Transition {...transitionProps}>
170
- { !destroyOnHidden ? panelContent : (isActive ? panelContent : null) }
170
+ { !destroyOnHidden || isActive ? panelContent : null}
171
171
  </Transition>
172
172
  </div>
173
173
  )
package/src/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import Collapse from './Collapse'
2
2
  import Panel from './Panel'
3
3
 
4
- export type { CollapsePanelProps, CollapseProps } from './interface'
4
+ export type { CollapsePanelProps, CollapseProps, ItemType } from './interface'
5
5
 
6
6
  export default Collapse
7
7
 
package/src/interface.ts CHANGED
@@ -56,8 +56,6 @@ export interface CollapseProps {
56
56
  openMotion?: TransitionProps
57
57
  onChange?: (key: Key[]) => void
58
58
  accordion?: boolean
59
- className?: string
60
- style?: object
61
59
  destroyOnHidden?: boolean
62
60
  expandIcon?: (props: object) => any
63
61
  collapsible?: CollapsibleType