@uzum-tech/ui 1.13.0 → 1.13.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.
Files changed (66) hide show
  1. package/dist/index.js +128 -85
  2. package/dist/index.prod.js +2 -2
  3. package/es/collapse/index.d.ts +5 -4
  4. package/es/collapse/index.js +4 -2
  5. package/es/collapse/src/Collapse.d.ts +62 -123
  6. package/es/collapse/src/Collapse.js +7 -27
  7. package/es/collapse/src/CollapseItem.d.ts +8 -18
  8. package/es/collapse/src/CollapseItem.js +36 -24
  9. package/es/collapse/src/interface.d.ts +1 -10
  10. package/es/collapse/src/props/collapse.props.d.ts +100 -0
  11. package/es/collapse/src/props/collapse.props.js +29 -0
  12. package/es/collapse/src/props/collapseItem.props.d.ts +7 -0
  13. package/es/collapse/src/props/collapseItem.props.js +6 -0
  14. package/es/collapse/src/styles/index.cssr.js +6 -2
  15. package/es/collapse/src/types/collapse.types.d.ts +55 -0
  16. package/es/collapse/src/types/collapse.types.js +1 -0
  17. package/es/collapse/styles/light.d.ts +3 -0
  18. package/es/collapse/styles/light.js +5 -2
  19. package/es/dropdown/src/Dropdown.d.ts +1 -1
  20. package/es/icon-bar/index.d.ts +4 -4
  21. package/es/icon-bar/index.js +3 -2
  22. package/es/icon-bar/src/IconBar.d.ts +19 -69
  23. package/es/icon-bar/src/IconBar.js +6 -11
  24. package/es/icon-bar/src/IconBarItem.d.ts +81 -65
  25. package/es/icon-bar/src/IconBarItem.js +6 -5
  26. package/es/icon-bar/src/interface.d.ts +112 -0
  27. package/es/icon-bar/src/interface.js +17 -0
  28. package/es/popconfirm/src/Popconfirm.d.ts +1 -1
  29. package/es/popover/src/Popover.d.ts +1 -1
  30. package/es/qr-code/src/QrCode.d.ts +1 -1
  31. package/es/tooltip/src/Tooltip.d.ts +1 -1
  32. package/es/version.d.ts +1 -1
  33. package/es/version.js +1 -1
  34. package/lib/collapse/index.d.ts +5 -4
  35. package/lib/collapse/index.js +5 -3
  36. package/lib/collapse/src/Collapse.d.ts +62 -123
  37. package/lib/collapse/src/Collapse.js +8 -28
  38. package/lib/collapse/src/CollapseItem.d.ts +8 -18
  39. package/lib/collapse/src/CollapseItem.js +35 -24
  40. package/lib/collapse/src/interface.d.ts +1 -10
  41. package/lib/collapse/src/props/collapse.props.d.ts +100 -0
  42. package/lib/collapse/src/props/collapse.props.js +32 -0
  43. package/lib/collapse/src/props/collapseItem.props.d.ts +7 -0
  44. package/lib/collapse/src/props/collapseItem.props.js +9 -0
  45. package/lib/collapse/src/styles/index.cssr.js +6 -2
  46. package/lib/collapse/src/types/collapse.types.d.ts +55 -0
  47. package/lib/collapse/src/types/collapse.types.js +2 -0
  48. package/lib/collapse/styles/light.d.ts +3 -0
  49. package/lib/collapse/styles/light.js +5 -2
  50. package/lib/dropdown/src/Dropdown.d.ts +1 -1
  51. package/lib/icon-bar/index.d.ts +4 -4
  52. package/lib/icon-bar/index.js +4 -3
  53. package/lib/icon-bar/src/IconBar.d.ts +19 -69
  54. package/lib/icon-bar/src/IconBar.js +6 -12
  55. package/lib/icon-bar/src/IconBarItem.d.ts +81 -65
  56. package/lib/icon-bar/src/IconBarItem.js +6 -6
  57. package/lib/icon-bar/src/interface.d.ts +112 -0
  58. package/lib/icon-bar/src/interface.js +20 -0
  59. package/lib/popconfirm/src/Popconfirm.d.ts +1 -1
  60. package/lib/popover/src/Popover.d.ts +1 -1
  61. package/lib/qr-code/src/QrCode.d.ts +1 -1
  62. package/lib/tooltip/src/Tooltip.d.ts +1 -1
  63. package/lib/version.d.ts +1 -1
  64. package/lib/version.js +1 -1
  65. package/package.json +1 -1
  66. package/web-types.json +13 -1
@@ -1,4 +1,5 @@
1
- export { default as UCollapse, collapseProps } from './src/Collapse';
2
- export { default as UCollapseItem, collapseItemProps } from './src/CollapseItem';
3
- export type { CollapseProps } from './src/Collapse';
4
- export type { CollapseItemProps } from './src/CollapseItem';
1
+ export { collapseProps } from './src/props/collapse.props';
2
+ export { default as UCollapse } from './src/Collapse';
3
+ export { collapseItemProps } from './src/props/collapseItem.props';
4
+ export { default as UCollapseItem } from './src/CollapseItem';
5
+ export type { CollapseProps, CollapseSlots, CollapseItemProps, CollapseItemSlots, ArrowPlacement, CollapseArrowSlotProps, CollapseExpandedName, CollapseExpandedNames, CollapseItemArrowSlotProps, CollapseItemHeaderExtraSlotProps, CollapseItemHeaderSlotProps, CollapseTriggerArea, HeaderClickInfo, OnItemHeaderClick, OnItemHeaderClickImpl, OnUpdateExpandedNames, OnUpdateExpandedNamesImpl, UCollapseInjection } from './src/interface';
@@ -1,2 +1,4 @@
1
- export { default as UCollapse, collapseProps } from './src/Collapse';
2
- export { default as UCollapseItem, collapseItemProps } from './src/CollapseItem';
1
+ export { collapseProps } from './src/props/collapse.props';
2
+ export { default as UCollapse } from './src/Collapse';
3
+ export { collapseItemProps } from './src/props/collapseItem.props';
4
+ export { default as UCollapseItem } from './src/CollapseItem';
@@ -1,107 +1,13 @@
1
- import { type PropType, type Ref, type ExtractPropTypes, type Slots } from 'vue';
2
- import type { MaybeArray, ExtractPublicPropTypes } from '../../_utils';
3
- import type { OnItemHeaderClick, OnUpdateExpandedNames, ArrowPlacement } from './interface';
4
- export declare const collapseProps: {
5
- readonly defaultExpandedNames: {
6
- readonly type: PropType<string | number | Array<string | number> | null>;
7
- readonly default: null;
8
- };
9
- readonly expandedNames: PropType<string | number | Array<string | number> | null>;
10
- readonly arrowPlacement: {
11
- readonly type: PropType<ArrowPlacement>;
12
- readonly default: "right-edge";
13
- };
14
- readonly accordion: {
15
- readonly type: BooleanConstructor;
16
- readonly default: false;
17
- };
18
- readonly displayDirective: {
19
- readonly type: PropType<"if" | "show">;
20
- readonly default: "if";
21
- };
22
- readonly onItemHeaderClick: PropType<MaybeArray<OnItemHeaderClick>>;
23
- readonly 'onUpdate:expandedNames': PropType<MaybeArray<OnUpdateExpandedNames>>;
24
- readonly onUpdateExpandedNames: PropType<MaybeArray<OnUpdateExpandedNames>>;
25
- readonly onExpandedNamesChange: {
26
- readonly type: PropType<MaybeArray<OnUpdateExpandedNames> | undefined>;
27
- readonly validator: () => boolean;
28
- readonly default: undefined;
29
- };
30
- readonly theme: PropType<import("../../_mixins").Theme<"Collapse", {
31
- titleFontSize: string;
32
- titleLineHeight: string;
33
- titleFontWeight: string;
34
- dividerColor: string;
35
- titleTextColor: string;
36
- titleTextColorDisabled: string;
37
- fontSize: string;
38
- lineHeight: string;
39
- textColor: string;
40
- arrowSize: string;
41
- arrowColor: string;
42
- arrowColorDisabled: string;
43
- titlePadding: string;
44
- backgroundColor: string;
45
- borderRadius: string;
46
- padding: string;
47
- boxSizing: string;
48
- }, any>>;
49
- readonly themeOverrides: PropType<import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Collapse", {
50
- titleFontSize: string;
51
- titleLineHeight: string;
52
- titleFontWeight: string;
53
- dividerColor: string;
54
- titleTextColor: string;
55
- titleTextColorDisabled: string;
56
- fontSize: string;
57
- lineHeight: string;
58
- textColor: string;
59
- arrowSize: string;
60
- arrowColor: string;
61
- arrowColorDisabled: string;
62
- titlePadding: string;
63
- backgroundColor: string;
64
- borderRadius: string;
65
- padding: string;
66
- boxSizing: string;
67
- }, any>>>;
68
- readonly builtinThemeOverrides: PropType<import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Collapse", {
69
- titleFontSize: string;
70
- titleLineHeight: string;
71
- titleFontWeight: string;
72
- dividerColor: string;
73
- titleTextColor: string;
74
- titleTextColorDisabled: string;
75
- fontSize: string;
76
- lineHeight: string;
77
- textColor: string;
78
- arrowSize: string;
79
- arrowColor: string;
80
- arrowColorDisabled: string;
81
- titlePadding: string;
82
- backgroundColor: string;
83
- borderRadius: string;
84
- padding: string;
85
- boxSizing: string;
86
- }, any>>>;
87
- };
88
- export type CollapseProps = ExtractPublicPropTypes<typeof collapseProps>;
89
- export interface UCollapseInjection {
90
- props: ExtractPropTypes<typeof collapseProps>;
91
- expandedNamesRef: Ref<string | number | Array<string | number> | null>;
92
- mergedClsPrefixRef: Ref<string>;
93
- slots: Slots;
94
- toggleItem: (collapse: boolean, name: string | number, event: MouseEvent) => void;
95
- }
1
+ import type { UCollapseInjection } from './types/collapse.types';
96
2
  export declare const collapseInjectionKey: import("vue").InjectionKey<UCollapseInjection>;
97
3
  declare const _default: import("vue").DefineComponent<{
98
4
  readonly defaultExpandedNames: {
99
- readonly type: PropType<string | number | Array<string | number> | null>;
5
+ readonly type: import("vue").PropType<string | number | Array<string | number> | null>;
100
6
  readonly default: null;
101
7
  };
102
- readonly expandedNames: PropType<string | number | Array<string | number> | null>;
8
+ readonly expandedNames: import("vue").PropType<string | number | Array<string | number> | null>;
103
9
  readonly arrowPlacement: {
104
- readonly type: PropType<ArrowPlacement>;
10
+ readonly type: import("vue").PropType<import("./types/collapse.types").ArrowPlacement>;
105
11
  readonly default: "right-edge";
106
12
  };
107
13
  readonly accordion: {
@@ -109,18 +15,22 @@ declare const _default: import("vue").DefineComponent<{
109
15
  readonly default: false;
110
16
  };
111
17
  readonly displayDirective: {
112
- readonly type: PropType<"if" | "show">;
18
+ readonly type: import("vue").PropType<"if" | "show">;
113
19
  readonly default: "if";
114
20
  };
115
- readonly onItemHeaderClick: PropType<MaybeArray<OnItemHeaderClick>>;
116
- readonly 'onUpdate:expandedNames': PropType<MaybeArray<OnUpdateExpandedNames>>;
117
- readonly onUpdateExpandedNames: PropType<MaybeArray<OnUpdateExpandedNames>>;
21
+ readonly triggerAreas: {
22
+ readonly type: import("vue").PropType<import("./types/collapse.types").CollapseTriggerArea[]>;
23
+ readonly default: () => string[];
24
+ };
25
+ readonly onItemHeaderClick: import("vue").PropType<import("../../_utils").MaybeArray<import("./types/collapse.types").OnItemHeaderClick>>;
26
+ readonly 'onUpdate:expandedNames': import("vue").PropType<import("../../_utils").MaybeArray<import("./types/collapse.types").OnUpdateExpandedNames>>;
27
+ readonly onUpdateExpandedNames: import("vue").PropType<import("../../_utils").MaybeArray<import("./types/collapse.types").OnUpdateExpandedNames>>;
118
28
  readonly onExpandedNamesChange: {
119
- readonly type: PropType<MaybeArray<OnUpdateExpandedNames> | undefined>;
29
+ readonly type: import("vue").PropType<import("../../_utils").MaybeArray<import("./types/collapse.types").OnUpdateExpandedNames> | undefined>;
120
30
  readonly validator: () => boolean;
121
31
  readonly default: undefined;
122
32
  };
123
- readonly theme: PropType<import("../../_mixins").Theme<"Collapse", {
33
+ readonly theme: import("vue").PropType<import("../../_mixins").Theme<"Collapse", {
124
34
  titleFontSize: string;
125
35
  titleLineHeight: string;
126
36
  titleFontWeight: string;
@@ -138,8 +48,11 @@ declare const _default: import("vue").DefineComponent<{
138
48
  borderRadius: string;
139
49
  padding: string;
140
50
  boxSizing: string;
51
+ iconBorder: string;
52
+ iconBorderRadius: string;
53
+ iconBackground: string;
141
54
  }, any>>;
142
- readonly themeOverrides: PropType<import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Collapse", {
55
+ readonly themeOverrides: import("vue").PropType<import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Collapse", {
143
56
  titleFontSize: string;
144
57
  titleLineHeight: string;
145
58
  titleFontWeight: string;
@@ -157,8 +70,11 @@ declare const _default: import("vue").DefineComponent<{
157
70
  borderRadius: string;
158
71
  padding: string;
159
72
  boxSizing: string;
73
+ iconBorder: string;
74
+ iconBorderRadius: string;
75
+ iconBackground: string;
160
76
  }, any>>>;
161
- readonly builtinThemeOverrides: PropType<import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Collapse", {
77
+ readonly builtinThemeOverrides: import("vue").PropType<import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Collapse", {
162
78
  titleFontSize: string;
163
79
  titleLineHeight: string;
164
80
  titleFontWeight: string;
@@ -176,9 +92,12 @@ declare const _default: import("vue").DefineComponent<{
176
92
  borderRadius: string;
177
93
  padding: string;
178
94
  boxSizing: string;
95
+ iconBorder: string;
96
+ iconBorderRadius: string;
97
+ iconBackground: string;
179
98
  }, any>>>;
180
99
  }, {
181
- rtlEnabled: Ref<import("../../config-provider/src/internal-interface").RtlItem | undefined> | undefined;
100
+ rtlEnabled: import("vue").Ref<import("../../config-provider/src/internal-interface").RtlItem | undefined> | undefined;
182
101
  mergedTheme: import("vue").ComputedRef<{
183
102
  common: import("../..").ThemeCommonVars;
184
103
  self: {
@@ -199,13 +118,16 @@ declare const _default: import("vue").DefineComponent<{
199
118
  borderRadius: string;
200
119
  padding: string;
201
120
  boxSizing: string;
121
+ iconBorder: string;
122
+ iconBorderRadius: string;
123
+ iconBackground: string;
202
124
  };
203
125
  peers: any;
204
126
  peerOverrides: {
205
127
  [x: string]: any;
206
128
  };
207
129
  }>;
208
- mergedClsPrefix: Ref<string>;
130
+ mergedClsPrefix: import("vue").Ref<string>;
209
131
  cssVars: import("vue").ComputedRef<{
210
132
  '--u-font-size': string;
211
133
  '--u-bezier': string;
@@ -225,17 +147,20 @@ declare const _default: import("vue").DefineComponent<{
225
147
  '--u-border-radius': string;
226
148
  '--u-padding': string;
227
149
  '--u-box-sizing': string;
150
+ '--u-icon-border': string;
151
+ '--u-icon-border-radius': string;
152
+ '--u-icon-background': string;
228
153
  }> | undefined;
229
- themeClass: Ref<string> | undefined;
154
+ themeClass: import("vue").Ref<string> | undefined;
230
155
  onRender: (() => void) | undefined;
231
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
156
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
232
157
  readonly defaultExpandedNames: {
233
- readonly type: PropType<string | number | Array<string | number> | null>;
158
+ readonly type: import("vue").PropType<string | number | Array<string | number> | null>;
234
159
  readonly default: null;
235
160
  };
236
- readonly expandedNames: PropType<string | number | Array<string | number> | null>;
161
+ readonly expandedNames: import("vue").PropType<string | number | Array<string | number> | null>;
237
162
  readonly arrowPlacement: {
238
- readonly type: PropType<ArrowPlacement>;
163
+ readonly type: import("vue").PropType<import("./types/collapse.types").ArrowPlacement>;
239
164
  readonly default: "right-edge";
240
165
  };
241
166
  readonly accordion: {
@@ -243,18 +168,22 @@ declare const _default: import("vue").DefineComponent<{
243
168
  readonly default: false;
244
169
  };
245
170
  readonly displayDirective: {
246
- readonly type: PropType<"if" | "show">;
171
+ readonly type: import("vue").PropType<"if" | "show">;
247
172
  readonly default: "if";
248
173
  };
249
- readonly onItemHeaderClick: PropType<MaybeArray<OnItemHeaderClick>>;
250
- readonly 'onUpdate:expandedNames': PropType<MaybeArray<OnUpdateExpandedNames>>;
251
- readonly onUpdateExpandedNames: PropType<MaybeArray<OnUpdateExpandedNames>>;
174
+ readonly triggerAreas: {
175
+ readonly type: import("vue").PropType<import("./types/collapse.types").CollapseTriggerArea[]>;
176
+ readonly default: () => string[];
177
+ };
178
+ readonly onItemHeaderClick: import("vue").PropType<import("../../_utils").MaybeArray<import("./types/collapse.types").OnItemHeaderClick>>;
179
+ readonly 'onUpdate:expandedNames': import("vue").PropType<import("../../_utils").MaybeArray<import("./types/collapse.types").OnUpdateExpandedNames>>;
180
+ readonly onUpdateExpandedNames: import("vue").PropType<import("../../_utils").MaybeArray<import("./types/collapse.types").OnUpdateExpandedNames>>;
252
181
  readonly onExpandedNamesChange: {
253
- readonly type: PropType<MaybeArray<OnUpdateExpandedNames> | undefined>;
182
+ readonly type: import("vue").PropType<import("../../_utils").MaybeArray<import("./types/collapse.types").OnUpdateExpandedNames> | undefined>;
254
183
  readonly validator: () => boolean;
255
184
  readonly default: undefined;
256
185
  };
257
- readonly theme: PropType<import("../../_mixins").Theme<"Collapse", {
186
+ readonly theme: import("vue").PropType<import("../../_mixins").Theme<"Collapse", {
258
187
  titleFontSize: string;
259
188
  titleLineHeight: string;
260
189
  titleFontWeight: string;
@@ -272,8 +201,11 @@ declare const _default: import("vue").DefineComponent<{
272
201
  borderRadius: string;
273
202
  padding: string;
274
203
  boxSizing: string;
204
+ iconBorder: string;
205
+ iconBorderRadius: string;
206
+ iconBackground: string;
275
207
  }, any>>;
276
- readonly themeOverrides: PropType<import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Collapse", {
208
+ readonly themeOverrides: import("vue").PropType<import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Collapse", {
277
209
  titleFontSize: string;
278
210
  titleLineHeight: string;
279
211
  titleFontWeight: string;
@@ -291,8 +223,11 @@ declare const _default: import("vue").DefineComponent<{
291
223
  borderRadius: string;
292
224
  padding: string;
293
225
  boxSizing: string;
226
+ iconBorder: string;
227
+ iconBorderRadius: string;
228
+ iconBackground: string;
294
229
  }, any>>>;
295
- readonly builtinThemeOverrides: PropType<import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Collapse", {
230
+ readonly builtinThemeOverrides: import("vue").PropType<import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Collapse", {
296
231
  titleFontSize: string;
297
232
  titleLineHeight: string;
298
233
  titleFontWeight: string;
@@ -310,12 +245,16 @@ declare const _default: import("vue").DefineComponent<{
310
245
  borderRadius: string;
311
246
  padding: string;
312
247
  boxSizing: string;
248
+ iconBorder: string;
249
+ iconBorderRadius: string;
250
+ iconBackground: string;
313
251
  }, any>>>;
314
252
  }>>, {
315
253
  readonly defaultExpandedNames: string | number | (string | number)[] | null;
316
- readonly arrowPlacement: ArrowPlacement;
254
+ readonly arrowPlacement: import("./types/collapse.types").ArrowPlacement;
317
255
  readonly accordion: boolean;
318
256
  readonly displayDirective: "show" | "if";
319
- readonly onExpandedNamesChange: MaybeArray<OnUpdateExpandedNames> | undefined;
257
+ readonly triggerAreas: import("./types/collapse.types").CollapseTriggerArea[];
258
+ readonly onExpandedNamesChange: import("../../_utils").MaybeArray<import("./types/collapse.types").OnUpdateExpandedNames> | undefined;
320
259
  }, {}>;
321
260
  export default _default;
@@ -1,34 +1,11 @@
1
1
  import { computed, h, defineComponent, provide, ref } from 'vue';
2
2
  import { useMergedState } from 'vooks';
3
3
  import { useConfig, useTheme, useThemeClass } from '../../_mixins';
4
- import { call, createInjectionKey, warn } from '../../_utils';
4
+ import { call, createInjectionKey } from '../../_utils';
5
5
  import { collapseLight } from '../styles';
6
6
  import style from './styles/index.cssr';
7
7
  import { useRtl } from '../../_mixins/use-rtl';
8
- export const collapseProps = Object.assign(Object.assign({}, useTheme.props), { defaultExpandedNames: {
9
- type: [Array, String],
10
- default: null
11
- }, expandedNames: [Array, String], arrowPlacement: {
12
- type: String,
13
- default: 'right-edge'
14
- }, accordion: {
15
- type: Boolean,
16
- default: false
17
- }, displayDirective: {
18
- type: String,
19
- default: 'if'
20
- }, onItemHeaderClick: [Function, Array], 'onUpdate:expandedNames': [Function, Array], onUpdateExpandedNames: [Function, Array],
21
- // deprecated
22
- onExpandedNamesChange: {
23
- type: [Function, Array],
24
- validator: () => {
25
- if (process.env.NODE_ENV !== 'production') {
26
- warn('collapse', '`on-expanded-names-change` is deprecated, please use `on-update:expanded-names` instead.');
27
- }
28
- return true;
29
- },
30
- default: undefined
31
- } });
8
+ import { collapseProps } from './props/collapse.props';
32
9
  export const collapseInjectionKey = createInjectionKey('u-collapse');
33
10
  export default defineComponent({
34
11
  name: 'Collapse',
@@ -101,7 +78,7 @@ export default defineComponent({
101
78
  });
102
79
  const rtlEnabledRef = useRtl('Collapse', mergedRtlRef, mergedClsPrefixRef);
103
80
  const cssVarsRef = computed(() => {
104
- const { common: { cubicBezierEaseInOut }, self: { titleFontWeight, dividerColor, titlePadding, titleTextColor, titleTextColorDisabled, textColor, arrowColor, fontSize, titleFontSize, arrowColorDisabled, lineHeight, titleLineHeight, arrowSize, backgroundColor, borderRadius, padding, boxSizing } } = themeRef.value;
81
+ const { common: { cubicBezierEaseInOut }, self: { titleFontWeight, dividerColor, titlePadding, titleTextColor, titleTextColorDisabled, textColor, arrowColor, fontSize, titleFontSize, arrowColorDisabled, lineHeight, titleLineHeight, arrowSize, backgroundColor, borderRadius, padding, boxSizing, iconBorder, iconBorderRadius, iconBackground } } = themeRef.value;
105
82
  return {
106
83
  '--u-font-size': fontSize,
107
84
  '--u-bezier': cubicBezierEaseInOut,
@@ -120,7 +97,10 @@ export default defineComponent({
120
97
  '--u-background-color': backgroundColor,
121
98
  '--u-border-radius': borderRadius,
122
99
  '--u-padding': padding,
123
- '--u-box-sizing': boxSizing
100
+ '--u-box-sizing': boxSizing,
101
+ '--u-icon-border': iconBorder,
102
+ '--u-icon-border-radius': iconBorderRadius,
103
+ '--u-icon-background': iconBackground
124
104
  };
125
105
  });
126
106
  const themeClassHandle = inlineThemeDisabled
@@ -1,34 +1,24 @@
1
- import { type PropType } from 'vue';
2
- import type { ExtractPublicPropTypes } from '../../_utils';
3
- import { ArrowPlacement } from './interface';
4
- export declare const collapseItemProps: {
5
- readonly title: StringConstructor;
6
- readonly name: PropType<string | number>;
7
- readonly disabled: BooleanConstructor;
8
- readonly displayDirective: PropType<"if" | "show">;
9
- };
10
- export type CollapseItemProps = ExtractPublicPropTypes<typeof collapseItemProps>;
1
+ import { ArrowPlacement, CollapseTriggerArea } from './types/collapse.types';
11
2
  declare const _default: import("vue").DefineComponent<{
12
3
  readonly title: StringConstructor;
13
- readonly name: PropType<string | number>;
4
+ readonly name: import("vue").PropType<string | number>;
14
5
  readonly disabled: BooleanConstructor;
15
- readonly displayDirective: PropType<"if" | "show">;
6
+ readonly displayDirective: import("vue").PropType<"if" | "show">;
16
7
  }, {
17
8
  rtlEnabled: import("vue").Ref<import("../../config-provider/src/internal-interface").RtlItem | undefined> | undefined;
18
- collapseSlots: Readonly<{
19
- [name: string]: import("vue").Slot<any> | undefined;
20
- }>;
9
+ collapseSlots: import("./types/collapse.types").CollapseSlots;
21
10
  randomName: string;
22
11
  mergedClsPrefix: import("vue").Ref<string>;
23
12
  collapsed: import("vue").ComputedRef<boolean>;
13
+ triggerAreas: import("vue").Ref<CollapseTriggerArea[]>;
24
14
  mergedDisplayDirective: import("vue").ComputedRef<"show" | "if">;
25
15
  arrowPlacement: import("vue").ComputedRef<ArrowPlacement>;
26
- handleClick(e: MouseEvent): void;
16
+ handleClick(event: MouseEvent): void;
27
17
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
28
18
  readonly title: StringConstructor;
29
- readonly name: PropType<string | number>;
19
+ readonly name: import("vue").PropType<string | number>;
30
20
  readonly disabled: BooleanConstructor;
31
- readonly displayDirective: PropType<"if" | "show">;
21
+ readonly displayDirective: import("vue").PropType<"if" | "show">;
32
22
  }>>, {
33
23
  readonly disabled: boolean;
34
24
  }, {}>;
@@ -1,5 +1,5 @@
1
- import { h, defineComponent, inject, computed } from 'vue';
2
- import { createId } from 'seemly';
1
+ import { h, defineComponent, inject, computed, toRef } from 'vue';
2
+ import { createId, happensIn } from 'seemly';
3
3
  import { useMemo } from 'vooks';
4
4
  import { ChevronRightIcon as ArrowRightIcon, ChevronLeftIcon as ArrowLeftIcon } from '../../_internal/icons';
5
5
  import { useRtl } from '../../_mixins/use-rtl';
@@ -8,12 +8,7 @@ import { UBaseIcon } from '../../_internal';
8
8
  import { throwError, resolveSlotWithProps, resolveWrappedSlotWithProps } from '../../_utils';
9
9
  import { collapseInjectionKey } from './Collapse';
10
10
  import UCollapseItemContent from './CollapseItemContent';
11
- export const collapseItemProps = {
12
- title: String,
13
- name: [String, Number],
14
- disabled: Boolean,
15
- displayDirective: String
16
- };
11
+ import { collapseItemProps } from './props/collapseItem.props';
17
12
  export default defineComponent({
18
13
  name: 'CollapseItem',
19
14
  props: collapseItemProps,
@@ -42,12 +37,26 @@ export default defineComponent({
42
37
  return true;
43
38
  });
44
39
  const rtlEnabledRef = useRtl('Collapse', mergedRtlRef, mergedClsPrefixRef);
40
+ function clickedOn(event, area) {
41
+ return happensIn(event, area);
42
+ }
43
+ function checkClickedPlace(event) {
44
+ let clickedPlace = 'main';
45
+ if (clickedOn(event, 'arrow')) {
46
+ clickedPlace = 'arrow';
47
+ }
48
+ if (clickedOn(event, 'extra')) {
49
+ clickedPlace = 'extra';
50
+ }
51
+ return clickedPlace;
52
+ }
45
53
  return {
46
54
  rtlEnabled: rtlEnabledRef,
47
55
  collapseSlots,
48
56
  randomName,
49
57
  mergedClsPrefix: mergedClsPrefixRef,
50
58
  collapsed: collapsedRef,
59
+ triggerAreas: toRef(collapseProps, 'triggerAreas'),
51
60
  mergedDisplayDirective: computed(() => {
52
61
  const { displayDirective } = props;
53
62
  if (displayDirective) {
@@ -60,41 +69,44 @@ export default defineComponent({
60
69
  arrowPlacement: computed(() => {
61
70
  return collapseProps.arrowPlacement;
62
71
  }),
63
- handleClick(e) {
64
- e.stopPropagation();
72
+ handleClick(event) {
73
+ const clickedPlace = checkClickedPlace(event);
74
+ if (!collapseProps.triggerAreas.includes(clickedPlace)) {
75
+ return;
76
+ }
65
77
  if (UCollapse && !props.disabled) {
66
- UCollapse.toggleItem(collapsedRef.value, mergedNameRef.value, e);
78
+ UCollapse.toggleItem(collapsedRef.value, mergedNameRef.value, event);
67
79
  }
68
80
  }
69
81
  };
70
82
  },
71
83
  render() {
72
- const { collapseSlots, $slots, arrowPlacement, collapsed, mergedDisplayDirective, mergedClsPrefix, disabled } = this;
84
+ const { collapseSlots, $slots, arrowPlacement, collapsed, mergedDisplayDirective, mergedClsPrefix, disabled, triggerAreas } = this;
73
85
  const headerNode = resolveSlotWithProps($slots.header, { collapsed }, () => [this.title]);
74
86
  const headerExtraSlot = $slots['header-extra'] || collapseSlots['header-extra'];
75
87
  const arrowSlot = $slots.arrow || collapseSlots.arrow;
76
- const arrowNode = (h("div", { class: `${mergedClsPrefix}-collapse-item-arrow`, key: this.rtlEnabled ? 0 : 1 }, resolveSlotWithProps(arrowSlot, { collapsed }, () => {
77
- var _a;
78
- return [
79
- h(UBaseIcon, { clsPrefix: mergedClsPrefix }, {
80
- default: (_a = collapseSlots.expandIcon) !== null && _a !== void 0 ? _a : (() => this.rtlEnabled ? h(ArrowLeftIcon, null) : h(ArrowRightIcon, null))
81
- })
82
- ];
83
- })));
88
+ const arrowNode = (h("div", { class: `${mergedClsPrefix}-collapse-item-arrow`, key: this.rtlEnabled ? 0 : 1, "data-arrow": true }, resolveSlotWithProps(arrowSlot, { collapsed }, () => [
89
+ h(UBaseIcon, { clsPrefix: mergedClsPrefix }, {
90
+ default: () => this.rtlEnabled ? h(ArrowLeftIcon, null) : h(ArrowRightIcon, null)
91
+ })
92
+ ])));
84
93
  return (h("div", { class: [
85
94
  `${mergedClsPrefix}-collapse-item`,
86
95
  `${mergedClsPrefix}-collapse-item--${arrowPlacement}-arrow-placement`,
87
96
  disabled && `${mergedClsPrefix}-collapse-item--disabled`,
88
- !collapsed && `${mergedClsPrefix}-collapse-item--active`
89
- ], onClick: this.handleClick },
97
+ !collapsed && `${mergedClsPrefix}-collapse-item--active`,
98
+ triggerAreas.map((area) => {
99
+ return `${mergedClsPrefix}-collapse-item--trigger-area-${area}`;
100
+ })
101
+ ] },
90
102
  h("div", { class: [
91
103
  `${mergedClsPrefix}-collapse-item__header`,
92
104
  !collapsed && `${mergedClsPrefix}-collapse-item__header--active`
93
- ] },
105
+ ], onClick: this.handleClick },
94
106
  h("div", { class: `${mergedClsPrefix}-collapse-item__header-main` },
95
107
  arrowPlacement !== 'right-edge' && arrowNode,
96
108
  headerNode),
97
- resolveWrappedSlotWithProps(headerExtraSlot, { collapsed }, (children) => (h("div", { class: `${mergedClsPrefix}-collapse-item__header-extra`, onClick: this.handleClick }, children))),
109
+ resolveWrappedSlotWithProps(headerExtraSlot, { collapsed }, (children) => (h("div", { class: `${mergedClsPrefix}-collapse-item__header-extra`, "data-extra": true }, children))),
98
110
  arrowPlacement === 'right-edge' && arrowNode),
99
111
  h(UCollapseItemContent, { clsPrefix: mergedClsPrefix, displayDirective: mergedDisplayDirective, show: !collapsed }, $slots)));
100
112
  }
@@ -1,10 +1 @@
1
- export type OnUpdateExpandedNames = <T extends string[] & number[] & Array<string | number> & (string | number | null) & (string | null) & (number | null)>(value: T) => void;
2
- export type OnUpdateExpandedNamesImpl = <T extends string[] | number[] | Array<string | number> | (string | number | null) | (string | null) | (number | null)>(value: T) => void;
3
- export type OnItemHeaderClick = <T extends string & number & (string | number)>(info: HeaderClickInfo<T>) => void;
4
- export type OnItemHeaderClickImpl = <T extends string | number | (string | number)>(info: HeaderClickInfo<T>) => void;
5
- export interface HeaderClickInfo<T> {
6
- name: T;
7
- expanded: boolean;
8
- event: MouseEvent;
9
- }
10
- export type ArrowPlacement = 'left' | 'right' | 'right-edge';
1
+ export type { ArrowPlacement, CollapseArrowSlotProps, CollapseExpandedName, CollapseExpandedNames, CollapseItemProps, CollapseItemSlots, CollapseItemArrowSlotProps, CollapseItemHeaderExtraSlotProps, CollapseItemHeaderSlotProps, CollapseProps, CollapseSlots, CollapseTriggerArea, HeaderClickInfo, OnItemHeaderClick, OnItemHeaderClickImpl, OnUpdateExpandedNames, OnUpdateExpandedNamesImpl, UCollapseInjection } from './types/collapse.types';
@@ -0,0 +1,100 @@
1
+ import type { PropType } from 'vue';
2
+ import type { MaybeArray } from '../../../_utils';
3
+ import type { ArrowPlacement, CollapseTriggerArea, OnItemHeaderClick, OnUpdateExpandedNames } from '../types/collapse.types';
4
+ export declare const collapseProps: {
5
+ readonly defaultExpandedNames: {
6
+ readonly type: PropType<string | number | Array<string | number> | null>;
7
+ readonly default: null;
8
+ };
9
+ readonly expandedNames: PropType<string | number | Array<string | number> | null>;
10
+ readonly arrowPlacement: {
11
+ readonly type: PropType<ArrowPlacement>;
12
+ readonly default: "right-edge";
13
+ };
14
+ readonly accordion: {
15
+ readonly type: BooleanConstructor;
16
+ readonly default: false;
17
+ };
18
+ readonly displayDirective: {
19
+ readonly type: PropType<"if" | "show">;
20
+ readonly default: "if";
21
+ };
22
+ readonly triggerAreas: {
23
+ readonly type: PropType<CollapseTriggerArea[]>;
24
+ readonly default: () => string[];
25
+ };
26
+ readonly onItemHeaderClick: PropType<MaybeArray<OnItemHeaderClick>>;
27
+ readonly 'onUpdate:expandedNames': PropType<MaybeArray<OnUpdateExpandedNames>>;
28
+ readonly onUpdateExpandedNames: PropType<MaybeArray<OnUpdateExpandedNames>>;
29
+ readonly onExpandedNamesChange: {
30
+ readonly type: PropType<MaybeArray<OnUpdateExpandedNames> | undefined>;
31
+ readonly validator: () => boolean;
32
+ readonly default: undefined;
33
+ };
34
+ readonly theme: PropType<import("../../../_mixins").Theme<"Collapse", {
35
+ titleFontSize: string;
36
+ titleLineHeight: string;
37
+ titleFontWeight: string;
38
+ dividerColor: string;
39
+ titleTextColor: string;
40
+ titleTextColorDisabled: string;
41
+ fontSize: string;
42
+ lineHeight: string;
43
+ textColor: string;
44
+ arrowSize: string;
45
+ arrowColor: string;
46
+ arrowColorDisabled: string;
47
+ titlePadding: string;
48
+ backgroundColor: string;
49
+ borderRadius: string;
50
+ padding: string;
51
+ boxSizing: string;
52
+ iconBorder: string;
53
+ iconBorderRadius: string;
54
+ iconBackground: string;
55
+ }, any>>;
56
+ readonly themeOverrides: PropType<import("../../../_mixins/use-theme").ExtractThemeOverrides<import("../../../_mixins").Theme<"Collapse", {
57
+ titleFontSize: string;
58
+ titleLineHeight: string;
59
+ titleFontWeight: string;
60
+ dividerColor: string;
61
+ titleTextColor: string;
62
+ titleTextColorDisabled: string;
63
+ fontSize: string;
64
+ lineHeight: string;
65
+ textColor: string;
66
+ arrowSize: string;
67
+ arrowColor: string;
68
+ arrowColorDisabled: string;
69
+ titlePadding: string;
70
+ backgroundColor: string;
71
+ borderRadius: string;
72
+ padding: string;
73
+ boxSizing: string;
74
+ iconBorder: string;
75
+ iconBorderRadius: string;
76
+ iconBackground: string;
77
+ }, any>>>;
78
+ readonly builtinThemeOverrides: PropType<import("../../../_mixins/use-theme").ExtractThemeOverrides<import("../../../_mixins").Theme<"Collapse", {
79
+ titleFontSize: string;
80
+ titleLineHeight: string;
81
+ titleFontWeight: string;
82
+ dividerColor: string;
83
+ titleTextColor: string;
84
+ titleTextColorDisabled: string;
85
+ fontSize: string;
86
+ lineHeight: string;
87
+ textColor: string;
88
+ arrowSize: string;
89
+ arrowColor: string;
90
+ arrowColorDisabled: string;
91
+ titlePadding: string;
92
+ backgroundColor: string;
93
+ borderRadius: string;
94
+ padding: string;
95
+ boxSizing: string;
96
+ iconBorder: string;
97
+ iconBorderRadius: string;
98
+ iconBackground: string;
99
+ }, any>>>;
100
+ };