@rescui/chip-list 0.14.4 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/chip-list-multi.js +117 -31
- package/lib/chip-list.js +131 -31
- package/lib/index.css +46 -46
- package/lib/parts/chip-list-base.d.ts +1 -1
- package/lib/parts/chip-list-base.js +198 -60
- package/lib/parts/chip-list-context.js +4 -2
- package/lib/parts/chip-list.p.module.css.js +24 -24
- package/lib/parts/chip.js +369 -101
- package/lib/parts/use-items-ids.js +114 -74
- package/lib/parts/use-roving-tab-index.js +55 -30
- package/package.json +8 -7
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { c } from 'react-compiler-runtime';
|
|
2
3
|
import React from 'react';
|
|
3
4
|
import cn from 'classnames';
|
|
4
5
|
import { useThemeWithUndefined } from '@rescui/ui-contexts';
|
|
@@ -33,28 +34,52 @@ const calculateAutoPattern = _ref => {
|
|
|
33
34
|
}; // eslint-disable-next-line complexity
|
|
34
35
|
|
|
35
36
|
|
|
36
|
-
function ChipListBase(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
function ChipListBase(t0) {
|
|
38
|
+
const $ = c(47);
|
|
39
|
+
const {
|
|
40
|
+
size: t1,
|
|
41
|
+
sparse: t2,
|
|
42
|
+
compact: t3,
|
|
43
|
+
disabled: t4,
|
|
42
44
|
className,
|
|
43
|
-
mode
|
|
44
|
-
alignItems
|
|
45
|
-
pattern
|
|
45
|
+
mode: t5,
|
|
46
|
+
alignItems: t6,
|
|
47
|
+
pattern: t7,
|
|
46
48
|
theme: themeFromProps,
|
|
47
49
|
value,
|
|
48
50
|
onChange,
|
|
49
51
|
compareValues,
|
|
50
52
|
children,
|
|
51
53
|
name,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
"aria-label": ariaLabel,
|
|
55
|
+
"aria-labelledby": ariaLabelledBy,
|
|
56
|
+
"data-e2e": e2eId,
|
|
55
57
|
style
|
|
56
|
-
} =
|
|
58
|
+
} = t0;
|
|
59
|
+
const size = t1 === undefined ? "m" : t1;
|
|
60
|
+
const sparse = t2 === undefined ? false : t2;
|
|
61
|
+
const compact = t3 === undefined ? false : t3;
|
|
62
|
+
const disabled = t4 === undefined ? false : t4;
|
|
63
|
+
const mode = t5 === undefined ? "classic" : t5;
|
|
64
|
+
const alignItems = t6 === undefined ? "left" : t6;
|
|
65
|
+
const pattern = t7 === undefined ? "auto" : t7;
|
|
57
66
|
const theme = useThemeWithUndefined(themeFromProps);
|
|
67
|
+
let t8;
|
|
68
|
+
|
|
69
|
+
if ($[0] !== children || $[1] !== compareValues || $[2] !== value) {
|
|
70
|
+
t8 = {
|
|
71
|
+
children,
|
|
72
|
+
compareValues,
|
|
73
|
+
value
|
|
74
|
+
};
|
|
75
|
+
$[0] = children;
|
|
76
|
+
$[1] = compareValues;
|
|
77
|
+
$[2] = value;
|
|
78
|
+
$[3] = t8;
|
|
79
|
+
} else {
|
|
80
|
+
t8 = $[3];
|
|
81
|
+
}
|
|
82
|
+
|
|
58
83
|
const {
|
|
59
84
|
childrenWithValues,
|
|
60
85
|
selectedIds,
|
|
@@ -62,58 +87,171 @@ function ChipListBase(_ref2) {
|
|
|
62
87
|
hasControls,
|
|
63
88
|
allItemsHaveControls,
|
|
64
89
|
tabRefs
|
|
65
|
-
} = useItemsIds(
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
|
|
90
|
+
} = useItemsIds(t8);
|
|
91
|
+
let t9;
|
|
92
|
+
|
|
93
|
+
if ($[4] !== hasControls || $[5] !== hasHref || $[6] !== pattern) {
|
|
94
|
+
t9 = pattern === "auto" ? calculateAutoPattern({
|
|
95
|
+
hasHref,
|
|
96
|
+
hasControls
|
|
97
|
+
}) : pattern;
|
|
98
|
+
$[4] = hasControls;
|
|
99
|
+
$[5] = hasHref;
|
|
100
|
+
$[6] = pattern;
|
|
101
|
+
$[7] = t9;
|
|
102
|
+
} else {
|
|
103
|
+
t9 = $[7];
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const resolvedPattern = t9;
|
|
107
|
+
const t10 = resolvedPattern === "tablist" && !disabled;
|
|
108
|
+
let t11;
|
|
109
|
+
|
|
110
|
+
if ($[8] !== selectedIds[0] || $[9] !== t10 || $[10] !== tabRefs) {
|
|
111
|
+
t11 = {
|
|
112
|
+
enabled: t10,
|
|
113
|
+
selectedId: selectedIds[0],
|
|
114
|
+
tabRefs
|
|
115
|
+
};
|
|
116
|
+
$[8] = selectedIds[0];
|
|
117
|
+
$[9] = t10;
|
|
118
|
+
$[10] = tabRefs;
|
|
119
|
+
$[11] = t11;
|
|
120
|
+
} else {
|
|
121
|
+
t11 = $[11];
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
const rovingTabIndex = useRovingTabIndex(t11);
|
|
125
|
+
let t12;
|
|
126
|
+
let t13;
|
|
127
|
+
|
|
128
|
+
if ($[12] !== allItemsHaveControls || $[13] !== hasControls || $[14] !== hasHref || $[15] !== resolvedPattern) {
|
|
129
|
+
t12 = () => {
|
|
130
|
+
if (!IS_PRODUCTION && resolvedPattern === "radiogroup" && hasHref) {
|
|
131
|
+
console.warn("[RescUI] ChipList with pattern=\"radiogroup\" contains Chip with href. href is ignored. Use pattern=\"navigation\" or pattern=\"auto\" for link chips.");
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (!IS_PRODUCTION && resolvedPattern !== "tablist" && hasControls) {
|
|
135
|
+
console.warn("[RescUI] ChipList with pattern other than \"tablist\" contains Chip with aria-controls. Use pattern=\"tablist\" or pattern=\"auto\" for controlled tab panels.");
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
if (!IS_PRODUCTION && resolvedPattern === "tablist" && !allItemsHaveControls) {
|
|
139
|
+
console.warn("[RescUI] ChipList with pattern=\"tablist\" requires every Chip to have aria-controls. Every tab should control a panel.");
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
t13 = [allItemsHaveControls, hasControls, hasHref, resolvedPattern];
|
|
144
|
+
$[12] = allItemsHaveControls;
|
|
145
|
+
$[13] = hasControls;
|
|
146
|
+
$[14] = hasHref;
|
|
147
|
+
$[15] = resolvedPattern;
|
|
148
|
+
$[16] = t12;
|
|
149
|
+
$[17] = t13;
|
|
150
|
+
} else {
|
|
151
|
+
t12 = $[16];
|
|
152
|
+
t13 = $[17];
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
React.useEffect(t12, t13);
|
|
156
|
+
const t14 = resolvedPattern === "tablist" ? rovingTabIndex : undefined;
|
|
157
|
+
let t15;
|
|
158
|
+
|
|
159
|
+
if ($[18] !== disabled || $[19] !== name || $[20] !== onChange || $[21] !== resolvedPattern || $[22] !== selectedIds || $[23] !== t14) {
|
|
160
|
+
t15 = {
|
|
98
161
|
onChange,
|
|
99
162
|
selectedIds,
|
|
100
163
|
disabled,
|
|
101
164
|
pattern: resolvedPattern,
|
|
102
165
|
name,
|
|
103
|
-
rovingTabIndex:
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
|
|
166
|
+
rovingTabIndex: t14
|
|
167
|
+
};
|
|
168
|
+
$[18] = disabled;
|
|
169
|
+
$[19] = name;
|
|
170
|
+
$[20] = onChange;
|
|
171
|
+
$[21] = resolvedPattern;
|
|
172
|
+
$[22] = selectedIds;
|
|
173
|
+
$[23] = t14;
|
|
174
|
+
$[24] = t15;
|
|
175
|
+
} else {
|
|
176
|
+
t15 = $[24];
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
const t16 = styles[theme];
|
|
180
|
+
const t17 = styles[mode];
|
|
181
|
+
const t18 = STYLES_SIZES[size];
|
|
182
|
+
const t19 = sparse ? styles.innerOffsetL : styles.innerOffsetM;
|
|
183
|
+
const t20 = compact && styles.compact;
|
|
184
|
+
const t21 = disabled && styles.disabled;
|
|
185
|
+
const t22 = ALIGN_ITEMS_STYLES[alignItems];
|
|
186
|
+
let t23;
|
|
187
|
+
|
|
188
|
+
if ($[25] !== className || $[26] !== t16 || $[27] !== t17 || $[28] !== t18 || $[29] !== t19 || $[30] !== t20 || $[31] !== t21 || $[32] !== t22) {
|
|
189
|
+
t23 = cn(styles.main, t16, t17, t18, t19, t20, t21, t22, className);
|
|
190
|
+
$[25] = className;
|
|
191
|
+
$[26] = t16;
|
|
192
|
+
$[27] = t17;
|
|
193
|
+
$[28] = t18;
|
|
194
|
+
$[29] = t19;
|
|
195
|
+
$[30] = t20;
|
|
196
|
+
$[31] = t21;
|
|
197
|
+
$[32] = t22;
|
|
198
|
+
$[33] = t23;
|
|
199
|
+
} else {
|
|
200
|
+
t23 = $[33];
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
const t24 = e2eId ? `${e2eId}__chips-container` : null;
|
|
204
|
+
let t25;
|
|
205
|
+
|
|
206
|
+
if ($[34] !== childrenWithValues) {
|
|
207
|
+
t25 = /*#__PURE__*/React.createElement("div", {
|
|
208
|
+
className: styles.chipsContainer
|
|
209
|
+
}, childrenWithValues);
|
|
210
|
+
$[34] = childrenWithValues;
|
|
211
|
+
$[35] = t25;
|
|
212
|
+
} else {
|
|
213
|
+
t25 = $[35];
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
let t26;
|
|
217
|
+
|
|
218
|
+
if ($[36] !== ariaLabel || $[37] !== ariaLabelledBy || $[38] !== resolvedPattern || $[39] !== style || $[40] !== t23 || $[41] !== t24 || $[42] !== t25) {
|
|
219
|
+
t26 = /*#__PURE__*/React.createElement("div", {
|
|
220
|
+
className: t23,
|
|
221
|
+
"data-e2e": t24,
|
|
222
|
+
"data-rs-internal": "chip-list",
|
|
223
|
+
"data-test": "chip-list",
|
|
224
|
+
role: resolvedPattern,
|
|
225
|
+
"aria-label": ariaLabel,
|
|
226
|
+
"aria-labelledby": ariaLabelledBy,
|
|
227
|
+
style: style
|
|
228
|
+
}, t25);
|
|
229
|
+
$[36] = ariaLabel;
|
|
230
|
+
$[37] = ariaLabelledBy;
|
|
231
|
+
$[38] = resolvedPattern;
|
|
232
|
+
$[39] = style;
|
|
233
|
+
$[40] = t23;
|
|
234
|
+
$[41] = t24;
|
|
235
|
+
$[42] = t25;
|
|
236
|
+
$[43] = t26;
|
|
237
|
+
} else {
|
|
238
|
+
t26 = $[43];
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
let t27;
|
|
242
|
+
|
|
243
|
+
if ($[44] !== t15 || $[45] !== t26) {
|
|
244
|
+
t27 = /*#__PURE__*/React.createElement(ChipListContext.Provider, {
|
|
245
|
+
value: t15
|
|
246
|
+
}, t26);
|
|
247
|
+
$[44] = t15;
|
|
248
|
+
$[45] = t26;
|
|
249
|
+
$[46] = t27;
|
|
250
|
+
} else {
|
|
251
|
+
t27 = $[46];
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
return t27;
|
|
117
255
|
}
|
|
118
256
|
|
|
119
257
|
export { ChipListBase };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { useContext, createContext } from 'react';
|
|
3
3
|
const ChipListContext = /*#__PURE__*/createContext({
|
|
4
4
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
5
5
|
onChange: () => {},
|
|
@@ -8,6 +8,8 @@ const ChipListContext = /*#__PURE__*/createContext({
|
|
|
8
8
|
pattern: 'navigation'
|
|
9
9
|
});
|
|
10
10
|
|
|
11
|
-
const useChipListContext = () =>
|
|
11
|
+
const useChipListContext = () => {
|
|
12
|
+
return useContext(ChipListContext);
|
|
13
|
+
};
|
|
12
14
|
|
|
13
15
|
export { ChipListContext, useChipListContext };
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
var styles = {
|
|
2
|
-
"light": "
|
|
3
|
-
"dark": "
|
|
4
|
-
"alignLeft": "
|
|
5
|
-
"alignCenter": "
|
|
6
|
-
"alignRight": "
|
|
7
|
-
"sizeXs": "
|
|
8
|
-
"sizeS": "
|
|
9
|
-
"sizeM": "
|
|
10
|
-
"sizeL": "
|
|
11
|
-
"innerOffsetL": "
|
|
12
|
-
"innerOffsetM": "
|
|
13
|
-
"classic": "
|
|
14
|
-
"rock": "
|
|
15
|
-
"compact": "
|
|
16
|
-
"main": "
|
|
17
|
-
"chipsContainer": "
|
|
18
|
-
"alignIconLeft": "
|
|
19
|
-
"alignIconRight": "
|
|
20
|
-
"chip": "
|
|
21
|
-
"selected": "
|
|
22
|
-
"disabled": "
|
|
23
|
-
"icon": "
|
|
24
|
-
"hiddenInput": "
|
|
25
|
-
"withoutText": "
|
|
2
|
+
"light": "_light_lybc4g_8",
|
|
3
|
+
"dark": "_dark_lybc4g_11",
|
|
4
|
+
"alignLeft": "_alignLeft_lybc4g_15",
|
|
5
|
+
"alignCenter": "_alignCenter_lybc4g_18",
|
|
6
|
+
"alignRight": "_alignRight_lybc4g_21",
|
|
7
|
+
"sizeXs": "_sizeXs_lybc4g_25",
|
|
8
|
+
"sizeS": "_sizeS_lybc4g_28",
|
|
9
|
+
"sizeM": "_sizeM_lybc4g_31",
|
|
10
|
+
"sizeL": "_sizeL_lybc4g_34",
|
|
11
|
+
"innerOffsetL": "_innerOffsetL_lybc4g_38",
|
|
12
|
+
"innerOffsetM": "_innerOffsetM_lybc4g_41",
|
|
13
|
+
"classic": "_classic_lybc4g_45",
|
|
14
|
+
"rock": "_rock_lybc4g_48",
|
|
15
|
+
"compact": "_compact_lybc4g_52",
|
|
16
|
+
"main": "_main_lybc4g_56",
|
|
17
|
+
"chipsContainer": "_chipsContainer_lybc4g_62",
|
|
18
|
+
"alignIconLeft": "_alignIconLeft_lybc4g_72",
|
|
19
|
+
"alignIconRight": "_alignIconRight_lybc4g_75",
|
|
20
|
+
"chip": "_chip_lybc4g_62",
|
|
21
|
+
"selected": "_selected_lybc4g_176",
|
|
22
|
+
"disabled": "_disabled_lybc4g_183",
|
|
23
|
+
"icon": "_icon_lybc4g_216",
|
|
24
|
+
"hiddenInput": "_hiddenInput_lybc4g_227",
|
|
25
|
+
"withoutText": "_withoutText_lybc4g_244"
|
|
26
26
|
};
|
|
27
27
|
export { styles as default };
|