@fangxinyan/lumina 0.9.1 → 0.9.3
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/Pagination.cjs +3 -3
- package/dist/Pagination.js +2 -2
- package/dist/{Select-QPBB73KA.css → Select-UTNBARSQ.css} +54 -11
- package/dist/Select.cjs +2 -4
- package/dist/Select.d.cts +7 -1
- package/dist/Select.d.ts +7 -1
- package/dist/Select.js +1 -3
- package/dist/Table.cjs +4 -4
- package/dist/Table.js +3 -3
- package/dist/TablePro.cjs +5 -5
- package/dist/TablePro.js +4 -4
- package/dist/{chunk-HMN65CDW.cjs → chunk-5Q2ZYR5Z.cjs} +2 -2
- package/dist/{chunk-UCE53RYR.js → chunk-6MT3APJ3.js} +1 -1
- package/dist/{chunk-K3KHQ77L.cjs → chunk-7RYLV5CM.cjs} +178 -85
- package/dist/{chunk-AL2PYVVP.js → chunk-AFYNTVSH.js} +178 -85
- package/dist/{chunk-VTN6YLRJ.cjs → chunk-EBU3DTUN.cjs} +2 -2
- package/dist/{chunk-2NECDEAJ.js → chunk-EP7QREID.js} +1 -1
- package/dist/{chunk-7KA5D37Z.cjs → chunk-P3ZIABMZ.cjs} +2 -2
- package/dist/{chunk-JMYUO7V7.js → chunk-X547KNTP.js} +1 -1
- package/dist/index.cjs +9 -9
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +5 -5
- package/dist/styles.css +54 -10
- package/docs/llms/select.md +40 -1
- package/docs/llms.md +1 -1
- package/package.json +1 -1
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { Tag } from './chunk-OGMI3TO5.js';
|
|
2
2
|
import { useFloating } from './chunk-3QXP2ZNP.js';
|
|
3
|
-
import { Input } from './chunk-TUXF2G2O.js';
|
|
4
3
|
import { useOverlayLayer } from './chunk-2A4GYSN4.js';
|
|
5
4
|
import { Icon, renderIconSlot } from './chunk-2BM65ITV.js';
|
|
6
5
|
import { withComponentTheme, useComponentPortalTheme, InternalComponentThemePart } from './chunk-5HLNFDV4.js';
|
|
7
6
|
import { usePortalContainer } from './chunk-CPVUDSIY.js';
|
|
8
7
|
import './tokens-223RYVVS.css';
|
|
9
8
|
import './shared-NJHRNLRH.css';
|
|
10
|
-
import './Select-
|
|
9
|
+
import './Select-UTNBARSQ.css';
|
|
11
10
|
import * as React from 'react';
|
|
12
11
|
import { createPortal } from 'react-dom';
|
|
13
12
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
@@ -29,6 +28,10 @@ var defaultFilter = (input, opt, optionFilterProp) => {
|
|
|
29
28
|
const txt = propValue != null ? String(propValue) : opt.text ?? (typeof opt.label === "string" ? opt.label : String(opt.value));
|
|
30
29
|
return txt.toLowerCase().includes(q);
|
|
31
30
|
};
|
|
31
|
+
var getSearchInputDisplayWidth = (value) => Array.from(value).reduce(
|
|
32
|
+
(width, character) => width + ((character.codePointAt(0) ?? 0) > 255 ? 2 : 1),
|
|
33
|
+
0
|
|
34
|
+
);
|
|
32
35
|
var getOptionAriaLabel = (option) => {
|
|
33
36
|
if (option.ariaLabel) return option.ariaLabel;
|
|
34
37
|
if (typeof option.label === "string" || typeof option.label === "number") {
|
|
@@ -47,6 +50,9 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
47
50
|
allowClear,
|
|
48
51
|
searchable,
|
|
49
52
|
showSearch,
|
|
53
|
+
searchValue: searchValueProp,
|
|
54
|
+
defaultSearchValue,
|
|
55
|
+
onSearch,
|
|
50
56
|
filterOption,
|
|
51
57
|
optionFilterProp,
|
|
52
58
|
loading,
|
|
@@ -95,7 +101,7 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
95
101
|
isMulti && Array.isArray(props.defaultValue) ? props.defaultValue : []
|
|
96
102
|
);
|
|
97
103
|
const [innerOpen, setInnerOpen] = React.useState(defaultOpen ?? false);
|
|
98
|
-
const [
|
|
104
|
+
const [innerSearchValue, setInnerSearchValue] = React.useState(defaultSearchValue ?? "");
|
|
99
105
|
const [activeIdx, setActiveIdx] = React.useState(-1);
|
|
100
106
|
const searchRef = React.useRef(null);
|
|
101
107
|
const portalContainer = usePortalContainer();
|
|
@@ -114,12 +120,29 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
114
120
|
const openControlled = openProp !== void 0;
|
|
115
121
|
const requestedOpen = openControlled ? openProp : innerOpen;
|
|
116
122
|
const open = !disabled && requestedOpen;
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
+
const requestedOpenRef = React.useRef(requestedOpen);
|
|
124
|
+
requestedOpenRef.current = requestedOpen;
|
|
125
|
+
const searchControlled = searchValueProp !== void 0;
|
|
126
|
+
const searchValue = searchControlled ? searchValueProp : innerSearchValue;
|
|
127
|
+
const hasInlineSearch = mergedSearchable;
|
|
128
|
+
const showsInlineSearchInput = hasInlineSearch && (isMulti || open);
|
|
129
|
+
const updateSearchValue = React.useCallback((nextValue) => {
|
|
130
|
+
if (!searchControlled) setInnerSearchValue(nextValue);
|
|
131
|
+
onSearch?.(nextValue);
|
|
132
|
+
}, [onSearch, searchControlled]);
|
|
133
|
+
const resetSearchValue = React.useCallback(() => {
|
|
134
|
+
if (!searchValue) return;
|
|
135
|
+
if (!searchControlled) setInnerSearchValue("");
|
|
136
|
+
onSearch?.("");
|
|
137
|
+
}, [onSearch, searchControlled, searchValue]);
|
|
138
|
+
const setOpen = React.useCallback((nextOpen) => {
|
|
139
|
+
if (disabled && nextOpen) return;
|
|
140
|
+
if (nextOpen === requestedOpenRef.current) return;
|
|
141
|
+
requestedOpenRef.current = nextOpen;
|
|
142
|
+
if (!openControlled) setInnerOpen(nextOpen);
|
|
143
|
+
onOpenChange?.(nextOpen);
|
|
144
|
+
if (!nextOpen) resetSearchValue();
|
|
145
|
+
}, [disabled, onOpenChange, openControlled, resetSearchValue]);
|
|
123
146
|
React.useEffect(() => {
|
|
124
147
|
if (!disabled || openControlled || !innerOpen) return;
|
|
125
148
|
setInnerOpen(false);
|
|
@@ -130,7 +153,7 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
130
153
|
placement: "bottom",
|
|
131
154
|
matchTriggerWidth: !hasCustomPopupWidth,
|
|
132
155
|
panelWidth: typeof resolvedPopupWidth === "number" ? resolvedPopupWidth : 360,
|
|
133
|
-
panelHeight: mergedListHeight +
|
|
156
|
+
panelHeight: mergedListHeight + 12
|
|
134
157
|
});
|
|
135
158
|
useOverlayLayer({
|
|
136
159
|
open: open && portalContainer != null,
|
|
@@ -172,7 +195,7 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
172
195
|
};
|
|
173
196
|
document.addEventListener("mousedown", h);
|
|
174
197
|
return () => document.removeEventListener("mousedown", h);
|
|
175
|
-
}, [open]);
|
|
198
|
+
}, [menuRef, open, setOpen, triggerRef]);
|
|
176
199
|
React.useEffect(() => {
|
|
177
200
|
if (open && mergedSearchable) {
|
|
178
201
|
requestAnimationFrame(() => searchRef.current?.focus());
|
|
@@ -184,14 +207,32 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
184
207
|
[options]
|
|
185
208
|
);
|
|
186
209
|
const allFlat = React.useMemo(() => flatten(orderedItems), [orderedItems]);
|
|
210
|
+
const optionByValue = React.useMemo(() => {
|
|
211
|
+
const index = /* @__PURE__ */ new Map();
|
|
212
|
+
allFlat.forEach((option) => index.set(option.value, option));
|
|
213
|
+
return index;
|
|
214
|
+
}, [allFlat]);
|
|
215
|
+
const selectedOptionCacheRef = React.useRef(/* @__PURE__ */ new Map());
|
|
216
|
+
React.useEffect(() => {
|
|
217
|
+
selectedValues.forEach((selectedValue) => {
|
|
218
|
+
const option = optionByValue.get(selectedValue);
|
|
219
|
+
if (option) selectedOptionCacheRef.current.set(selectedValue, option);
|
|
220
|
+
});
|
|
221
|
+
}, [optionByValue, selectedValues]);
|
|
222
|
+
const selectedOptions = React.useMemo(
|
|
223
|
+
() => selectedValues.map(
|
|
224
|
+
(selectedValue) => optionByValue.get(selectedValue) ?? selectedOptionCacheRef.current.get(selectedValue)
|
|
225
|
+
).filter((option) => option !== void 0),
|
|
226
|
+
[optionByValue, selectedValues]
|
|
227
|
+
);
|
|
187
228
|
const filteredFlat = React.useMemo(() => {
|
|
188
|
-
if (!
|
|
229
|
+
if (!searchValue.trim()) return allFlat;
|
|
189
230
|
if (filterOption === false) return allFlat;
|
|
190
231
|
const f = typeof filterOption === "function" ? filterOption : (input, option) => defaultFilter(input, option, optionFilterProp);
|
|
191
|
-
return allFlat.filter((o) => f(
|
|
192
|
-
}, [allFlat,
|
|
232
|
+
return allFlat.filter((o) => f(searchValue, o));
|
|
233
|
+
}, [allFlat, filterOption, optionFilterProp, searchValue]);
|
|
193
234
|
const filteredItems = React.useMemo(() => {
|
|
194
|
-
if (!
|
|
235
|
+
if (!searchValue.trim()) {
|
|
195
236
|
return orderedItems.filter((item) => !isGroup(item) || item.options.length > 0);
|
|
196
237
|
}
|
|
197
238
|
return orderedItems.map((it) => {
|
|
@@ -201,7 +242,7 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
201
242
|
const kept = it.options.filter((o) => filteredFlat.includes(o));
|
|
202
243
|
return kept.length ? { ...it, options: kept } : null;
|
|
203
244
|
}).filter((x) => x !== null);
|
|
204
|
-
}, [orderedItems, filteredFlat,
|
|
245
|
+
}, [orderedItems, filteredFlat, searchValue]);
|
|
205
246
|
React.useEffect(() => {
|
|
206
247
|
setActiveIdx((current) => {
|
|
207
248
|
if (current >= 0 && current < filteredFlat.length && !isOptionDisabled(filteredFlat[current])) {
|
|
@@ -212,6 +253,7 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
212
253
|
}, [filteredFlat, isOptionDisabled]);
|
|
213
254
|
const pickSingle = (opt) => {
|
|
214
255
|
if (disabled || isOptionDisabled(opt)) return;
|
|
256
|
+
selectedOptionCacheRef.current.set(opt.value, opt);
|
|
215
257
|
if (!singleControlled) setInnerSingle(opt.value);
|
|
216
258
|
props.onChange?.(opt.value);
|
|
217
259
|
setOpen(false);
|
|
@@ -220,8 +262,17 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
220
262
|
if (disabled || isOptionDisabled(opt)) return;
|
|
221
263
|
const cur = multiValue ?? [];
|
|
222
264
|
const next = cur.includes(opt.value) ? cur.filter((v) => v !== opt.value) : [...cur, opt.value];
|
|
265
|
+
selectedOptionCacheRef.current.set(opt.value, opt);
|
|
266
|
+
if (!multiControlled) setInnerMulti(next);
|
|
267
|
+
props.onChange?.(next);
|
|
268
|
+
if (hasInlineSearch) requestAnimationFrame(() => searchRef.current?.focus());
|
|
269
|
+
};
|
|
270
|
+
const removeMultiValue = (removedValue) => {
|
|
271
|
+
if (disabled) return;
|
|
272
|
+
const next = (multiValue ?? []).filter((value) => value !== removedValue);
|
|
223
273
|
if (!multiControlled) setInnerMulti(next);
|
|
224
274
|
props.onChange?.(next);
|
|
275
|
+
if (hasInlineSearch) requestAnimationFrame(() => searchRef.current?.focus());
|
|
225
276
|
};
|
|
226
277
|
const clearAll = () => {
|
|
227
278
|
if (disabled) return;
|
|
@@ -237,13 +288,20 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
237
288
|
};
|
|
238
289
|
const isSelected = (val) => isMulti ? (multiValue ?? []).includes(val) : singleValue === val;
|
|
239
290
|
const onKeyDown = (e) => {
|
|
240
|
-
|
|
291
|
+
const fromSearchInput = e.target === searchRef.current;
|
|
292
|
+
if (e.nativeEvent.isComposing || e.keyCode === 229) return;
|
|
293
|
+
if (fromSearchInput && e.key === "Backspace" && !searchValue && isMulti && multiValue.length > 0) {
|
|
294
|
+
e.preventDefault();
|
|
295
|
+
removeMultiValue(multiValue[multiValue.length - 1]);
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
if (!fromSearchInput && (e.key === "Backspace" || e.key === "Delete") && showClear) {
|
|
241
299
|
e.preventDefault();
|
|
242
300
|
clearAll();
|
|
243
301
|
return;
|
|
244
302
|
}
|
|
245
303
|
if (!open) {
|
|
246
|
-
if (e.key === "Enter" || e.key === " " || e.key === "ArrowDown") {
|
|
304
|
+
if (e.key === "Enter" || !fromSearchInput && e.key === " " || e.key === "ArrowDown") {
|
|
247
305
|
e.preventDefault();
|
|
248
306
|
setOpen(true);
|
|
249
307
|
}
|
|
@@ -286,13 +344,48 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
286
344
|
return;
|
|
287
345
|
}
|
|
288
346
|
};
|
|
347
|
+
const renderInlineSearchInput = () => {
|
|
348
|
+
if (!showsInlineSearchInput) return null;
|
|
349
|
+
const multiHasSelection = isMulti && multiValue.length > 0;
|
|
350
|
+
const searchDisplayWidth = getSearchInputDisplayWidth(searchValue);
|
|
351
|
+
return /* @__PURE__ */ jsx(
|
|
352
|
+
"input",
|
|
353
|
+
{
|
|
354
|
+
ref: searchRef,
|
|
355
|
+
id: fieldId,
|
|
356
|
+
className: "select-search-input",
|
|
357
|
+
"data-inline-size": multiHasSelection ? "content" : "fill",
|
|
358
|
+
type: "search",
|
|
359
|
+
value: searchValue,
|
|
360
|
+
style: multiHasSelection ? { width: `${Math.min(Math.max(searchDisplayWidth + 1, 2), 32)}ch` } : void 0,
|
|
361
|
+
placeholder: isMulti ? multiValue.length === 0 ? placeholder : void 0 : "\u641C\u7D22...",
|
|
362
|
+
disabled,
|
|
363
|
+
autoComplete: "off",
|
|
364
|
+
role: "combobox",
|
|
365
|
+
"aria-autocomplete": "list",
|
|
366
|
+
"aria-label": ariaLabel,
|
|
367
|
+
"aria-labelledby": ariaLabelledBy,
|
|
368
|
+
"aria-invalid": ariaInvalid,
|
|
369
|
+
"aria-required": ariaRequired,
|
|
370
|
+
"aria-describedby": ariaDescribedBy,
|
|
371
|
+
"aria-haspopup": "listbox",
|
|
372
|
+
"aria-expanded": open,
|
|
373
|
+
"aria-controls": open ? listboxId : void 0,
|
|
374
|
+
"aria-activedescendant": open && activeIdx >= 0 ? `${listboxId}-option-${activeIdx}` : void 0,
|
|
375
|
+
onChange: (event) => {
|
|
376
|
+
updateSearchValue(event.target.value);
|
|
377
|
+
if (!open) setOpen(true);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
);
|
|
381
|
+
};
|
|
289
382
|
const renderTrigger = () => {
|
|
290
383
|
if (isMulti) {
|
|
291
|
-
const selected =
|
|
384
|
+
const selected = selectedOptions;
|
|
292
385
|
const max = maxTagCount;
|
|
293
386
|
const shown = max != null ? selected.slice(0, max) : selected;
|
|
294
387
|
const overflow = selected.length - shown.length;
|
|
295
|
-
if (selected.length === 0) {
|
|
388
|
+
if (selected.length === 0 && !hasInlineSearch) {
|
|
296
389
|
return /* @__PURE__ */ jsx("span", { className: "placeholder", children: placeholder });
|
|
297
390
|
}
|
|
298
391
|
return /* @__PURE__ */ jsx(InternalComponentThemePart, { components: "Tag", children: /* @__PURE__ */ jsxs("span", { className: "select-tags", children: [
|
|
@@ -301,24 +394,25 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
301
394
|
{
|
|
302
395
|
tone: "accent",
|
|
303
396
|
removable: !disabled,
|
|
304
|
-
onRemove: () =>
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
props.onChange?.(next);
|
|
397
|
+
onRemove: () => removeMultiValue(o.value),
|
|
398
|
+
onMouseDown: (event) => {
|
|
399
|
+
event.preventDefault();
|
|
400
|
+
event.stopPropagation();
|
|
309
401
|
},
|
|
310
402
|
onClick: (e) => e.stopPropagation(),
|
|
311
|
-
children: selectedRender?.(o, { value: o.value, multiple: true }) ?? o.label
|
|
403
|
+
children: /* @__PURE__ */ jsx("span", { className: "select-tag-label", children: selectedRender?.(o, { value: o.value, multiple: true }) ?? o.label })
|
|
312
404
|
},
|
|
313
405
|
String(o.value)
|
|
314
406
|
)),
|
|
315
|
-
overflow > 0 && /* @__PURE__ */ jsxs(Tag, { tone: "neutral", children: [
|
|
407
|
+
overflow > 0 && /* @__PURE__ */ jsxs(Tag, { className: "select-tag-overflow", tone: "neutral", children: [
|
|
316
408
|
"+",
|
|
317
409
|
overflow
|
|
318
|
-
] })
|
|
410
|
+
] }),
|
|
411
|
+
renderInlineSearchInput()
|
|
319
412
|
] }) });
|
|
320
413
|
}
|
|
321
|
-
|
|
414
|
+
if (showsInlineSearchInput) return renderInlineSearchInput();
|
|
415
|
+
const current = selectedOptions[0];
|
|
322
416
|
if (!current) return /* @__PURE__ */ jsx("span", { className: "placeholder", children: placeholder });
|
|
323
417
|
if (selectedRender) {
|
|
324
418
|
return /* @__PURE__ */ jsx("span", { className: "select-value select-value-custom", children: selectedRender(current, { value: current.value, multiple: false }) });
|
|
@@ -365,6 +459,9 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
365
459
|
"aria-label": getOptionAriaLabel(o),
|
|
366
460
|
disabled: optionDisabled,
|
|
367
461
|
className: `menu-item ${sel ? "active" : ""} ${active ? "highlight" : ""}`,
|
|
462
|
+
onMouseDown: (event) => {
|
|
463
|
+
if (hasInlineSearch) event.preventDefault();
|
|
464
|
+
},
|
|
368
465
|
onClick: () => isMulti ? toggleMulti(o) : pickSingle(o),
|
|
369
466
|
children: [
|
|
370
467
|
isMulti && /* @__PURE__ */ jsx("span", { className: `menu-check ${sel ? "on" : ""}`, "aria-hidden": true, children: sel && /* @__PURE__ */ jsx(Icon, { name: "check", size: 11, stroke: 3 }) }),
|
|
@@ -391,15 +488,32 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
391
488
|
item.options.map((option) => renderOption(option, !!item.pinned))
|
|
392
489
|
] }, `g-${groupIndex}-${item.pinned ? "pinned" : "regular"}`) : renderOption(item)
|
|
393
490
|
);
|
|
491
|
+
const handleTriggerClick = (event) => {
|
|
492
|
+
if (disabled) return;
|
|
493
|
+
if (!hasInlineSearch) {
|
|
494
|
+
setOpen(!open);
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
497
|
+
const target = event.target;
|
|
498
|
+
if (target.closest(".select-caret")) {
|
|
499
|
+
setOpen(!open);
|
|
500
|
+
return;
|
|
501
|
+
}
|
|
502
|
+
setOpen(true);
|
|
503
|
+
searchRef.current?.focus();
|
|
504
|
+
};
|
|
394
505
|
return /* @__PURE__ */ jsxs(
|
|
395
506
|
"div",
|
|
396
507
|
{
|
|
397
508
|
ref: setTriggerRef,
|
|
398
509
|
...rest,
|
|
399
|
-
className: `select ${size} ${isMulti ? "multi" : ""} ${open ? "open" : ""} ${disabled ? "disabled" : ""} ${invalid ? "invalid" : ""} ${className}`,
|
|
510
|
+
className: `select ${size} ${isMulti ? "multi" : ""} ${hasInlineSearch ? "searchable" : ""} ${open ? "open" : ""} ${disabled ? "disabled" : ""} ${invalid ? "invalid" : ""} ${className}`,
|
|
400
511
|
onKeyDown: (e) => {
|
|
401
512
|
onRootKeyDown?.(e);
|
|
402
|
-
|
|
513
|
+
const target = e.target;
|
|
514
|
+
if (!e.defaultPrevented && (target.classList.contains("select-trigger") || target === searchRef.current)) {
|
|
515
|
+
onKeyDown(e);
|
|
516
|
+
}
|
|
403
517
|
},
|
|
404
518
|
onBlur: (event) => {
|
|
405
519
|
onRootBlur?.(event);
|
|
@@ -424,20 +538,20 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
424
538
|
"div",
|
|
425
539
|
{
|
|
426
540
|
className: "select-trigger",
|
|
427
|
-
onClick:
|
|
428
|
-
tabIndex: disabled ? -1 : triggerTabIndex ?? 0,
|
|
429
|
-
id: fieldId,
|
|
430
|
-
role: "combobox",
|
|
431
|
-
"aria-disabled": disabled || void 0,
|
|
432
|
-
"aria-label": ariaLabel,
|
|
433
|
-
"aria-labelledby": ariaLabelledBy,
|
|
434
|
-
"aria-invalid": ariaInvalid,
|
|
435
|
-
"aria-required": ariaRequired,
|
|
436
|
-
"aria-describedby": ariaDescribedBy,
|
|
437
|
-
"aria-haspopup": "listbox",
|
|
438
|
-
"aria-expanded": open,
|
|
439
|
-
"aria-controls": open ? listboxId : void 0,
|
|
440
|
-
"aria-activedescendant": open && activeIdx >= 0 ? `${listboxId}-option-${activeIdx}` : void 0,
|
|
541
|
+
onClick: handleTriggerClick,
|
|
542
|
+
tabIndex: showsInlineSearchInput || disabled ? -1 : triggerTabIndex ?? 0,
|
|
543
|
+
id: showsInlineSearchInput ? void 0 : fieldId,
|
|
544
|
+
role: showsInlineSearchInput ? void 0 : "combobox",
|
|
545
|
+
"aria-disabled": showsInlineSearchInput ? void 0 : disabled || void 0,
|
|
546
|
+
"aria-label": showsInlineSearchInput ? void 0 : ariaLabel,
|
|
547
|
+
"aria-labelledby": showsInlineSearchInput ? void 0 : ariaLabelledBy,
|
|
548
|
+
"aria-invalid": showsInlineSearchInput ? void 0 : ariaInvalid,
|
|
549
|
+
"aria-required": showsInlineSearchInput ? void 0 : ariaRequired,
|
|
550
|
+
"aria-describedby": showsInlineSearchInput ? void 0 : ariaDescribedBy,
|
|
551
|
+
"aria-haspopup": showsInlineSearchInput ? void 0 : "listbox",
|
|
552
|
+
"aria-expanded": showsInlineSearchInput ? void 0 : open,
|
|
553
|
+
"aria-controls": showsInlineSearchInput ? void 0 : open ? listboxId : void 0,
|
|
554
|
+
"aria-activedescendant": showsInlineSearchInput ? void 0 : open && activeIdx >= 0 ? `${listboxId}-option-${activeIdx}` : void 0,
|
|
441
555
|
children: [
|
|
442
556
|
renderTrigger(),
|
|
443
557
|
/* @__PURE__ */ jsx(Icon, { name: "chevDown", size: 14, className: "select-caret" })
|
|
@@ -451,7 +565,10 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
451
565
|
className: "select-clear",
|
|
452
566
|
"aria-label": "Clear",
|
|
453
567
|
onPointerDown: (event) => event.stopPropagation(),
|
|
454
|
-
onMouseDown: (event) =>
|
|
568
|
+
onMouseDown: (event) => {
|
|
569
|
+
if (hasInlineSearch) event.preventDefault();
|
|
570
|
+
event.stopPropagation();
|
|
571
|
+
},
|
|
455
572
|
onClick: (event) => {
|
|
456
573
|
event.stopPropagation();
|
|
457
574
|
clearAll();
|
|
@@ -460,7 +577,7 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
460
577
|
}
|
|
461
578
|
),
|
|
462
579
|
open && portalContainer && createPortal(
|
|
463
|
-
/* @__PURE__ */
|
|
580
|
+
/* @__PURE__ */ jsx(
|
|
464
581
|
"div",
|
|
465
582
|
{
|
|
466
583
|
ref: menuRef,
|
|
@@ -475,44 +592,20 @@ var SelectInner = (props, forwardedRef) => {
|
|
|
475
592
|
...portalTheme.styles.popup,
|
|
476
593
|
...popupStyle
|
|
477
594
|
},
|
|
478
|
-
children:
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
"
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
onValueChange: setQuery,
|
|
493
|
-
onKeyDown: (e) => {
|
|
494
|
-
if (e.key === "Escape" || e.key === "ArrowDown" || e.key === "ArrowUp" || e.key === "Enter") {
|
|
495
|
-
e.preventDefault();
|
|
496
|
-
onKeyDown(e);
|
|
497
|
-
}
|
|
498
|
-
}
|
|
499
|
-
}
|
|
500
|
-
) }) }),
|
|
501
|
-
/* @__PURE__ */ jsx(
|
|
502
|
-
"div",
|
|
503
|
-
{
|
|
504
|
-
className: "menu-options",
|
|
505
|
-
style: { maxHeight: mergedListHeight },
|
|
506
|
-
children: loading ? /* @__PURE__ */ jsxs("div", { className: "menu-state", children: [
|
|
507
|
-
/* @__PURE__ */ jsx("span", { className: "menu-state-ico", children: /* @__PURE__ */ jsx("span", { className: "spinner" }) }),
|
|
508
|
-
/* @__PURE__ */ jsx("span", { children: "\u52A0\u8F7D\u4E2D..." })
|
|
509
|
-
] }) : filteredFlat.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "menu-state", children: [
|
|
510
|
-
/* @__PURE__ */ jsx("span", { className: "menu-state-ico", children: /* @__PURE__ */ jsx(Icon, { name: "search", size: 16 }) }),
|
|
511
|
-
/* @__PURE__ */ jsx("span", { children: emptyContent ?? "\u6682\u65E0\u5339\u914D\u9879" })
|
|
512
|
-
] }) : renderMenuItems(filteredItems)
|
|
513
|
-
}
|
|
514
|
-
)
|
|
515
|
-
]
|
|
595
|
+
children: /* @__PURE__ */ jsx(
|
|
596
|
+
"div",
|
|
597
|
+
{
|
|
598
|
+
className: "menu-options",
|
|
599
|
+
style: { maxHeight: mergedListHeight },
|
|
600
|
+
children: loading ? /* @__PURE__ */ jsxs("div", { className: "menu-state", children: [
|
|
601
|
+
/* @__PURE__ */ jsx("span", { className: "menu-state-ico", children: /* @__PURE__ */ jsx("span", { className: "spinner" }) }),
|
|
602
|
+
/* @__PURE__ */ jsx("span", { children: "\u52A0\u8F7D\u4E2D..." })
|
|
603
|
+
] }) : filteredFlat.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "menu-state", children: [
|
|
604
|
+
/* @__PURE__ */ jsx("span", { className: "menu-state-ico", children: /* @__PURE__ */ jsx(Icon, { name: "search", size: 16 }) }),
|
|
605
|
+
/* @__PURE__ */ jsx("span", { children: emptyContent ?? "\u6682\u65E0\u5339\u914D\u9879" })
|
|
606
|
+
] }) : renderMenuItems(filteredItems)
|
|
607
|
+
}
|
|
608
|
+
)
|
|
516
609
|
}
|
|
517
610
|
),
|
|
518
611
|
portalContainer
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk7RYLV5CM_cjs = require('./chunk-7RYLV5CM.cjs');
|
|
4
4
|
var chunkGFGMGJ5A_cjs = require('./chunk-GFGMGJ5A.cjs');
|
|
5
5
|
var chunkVDVKY2IX_cjs = require('./chunk-VDVKY2IX.cjs');
|
|
6
6
|
var chunkV6BLBIY6_cjs = require('./chunk-V6BLBIY6.cjs');
|
|
@@ -137,7 +137,7 @@ var PaginationBase = React__namespace.forwardRef(({
|
|
|
137
137
|
}
|
|
138
138
|
),
|
|
139
139
|
showSizeChanger && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pg-size-changer", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
140
|
-
|
|
140
|
+
chunk7RYLV5CM_cjs.Select,
|
|
141
141
|
{
|
|
142
142
|
value: normalizedPageSize,
|
|
143
143
|
size: "sm",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkEBU3DTUN_cjs = require('./chunk-EBU3DTUN.cjs');
|
|
4
4
|
var chunkKPBZKHCS_cjs = require('./chunk-KPBZKHCS.cjs');
|
|
5
5
|
var chunkFJB3243S_cjs = require('./chunk-FJB3243S.cjs');
|
|
6
6
|
var chunkHSDMJUB6_cjs = require('./chunk-HSDMJUB6.cjs');
|
|
@@ -503,7 +503,7 @@ var TableInner = ({
|
|
|
503
503
|
}
|
|
504
504
|
),
|
|
505
505
|
pagEnabled && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "table-pagination", children: /* @__PURE__ */ jsxRuntime.jsx(chunkV6BLBIY6_cjs.InternalComponentThemePart, { components: "Pagination", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
506
|
-
|
|
506
|
+
chunkEBU3DTUN_cjs.Pagination,
|
|
507
507
|
{
|
|
508
508
|
total: totalCount,
|
|
509
509
|
pageSize: curPageSize,
|
package/dist/index.cjs
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
var chunkRXITGNPX_cjs = require('./chunk-RXITGNPX.cjs');
|
|
4
4
|
var chunkXHKSUKKL_cjs = require('./chunk-XHKSUKKL.cjs');
|
|
5
5
|
var chunk3D5RJA7R_cjs = require('./chunk-3D5RJA7R.cjs');
|
|
6
|
-
var
|
|
7
|
-
var
|
|
6
|
+
var chunk5Q2ZYR5Z_cjs = require('./chunk-5Q2ZYR5Z.cjs');
|
|
7
|
+
var chunkP3ZIABMZ_cjs = require('./chunk-P3ZIABMZ.cjs');
|
|
8
8
|
var chunkAEY76EAH_cjs = require('./chunk-AEY76EAH.cjs');
|
|
9
9
|
require('./chunk-HYJSMFZA.cjs');
|
|
10
10
|
var chunkAQN3PD24_cjs = require('./chunk-AQN3PD24.cjs');
|
|
@@ -20,8 +20,8 @@ var chunk6WEXRX7K_cjs = require('./chunk-6WEXRX7K.cjs');
|
|
|
20
20
|
var chunkZ6AG7O4B_cjs = require('./chunk-Z6AG7O4B.cjs');
|
|
21
21
|
var chunkTPFY5SKB_cjs = require('./chunk-TPFY5SKB.cjs');
|
|
22
22
|
var chunkSOAGRYM3_cjs = require('./chunk-SOAGRYM3.cjs');
|
|
23
|
-
var
|
|
24
|
-
var
|
|
23
|
+
var chunkEBU3DTUN_cjs = require('./chunk-EBU3DTUN.cjs');
|
|
24
|
+
var chunk7RYLV5CM_cjs = require('./chunk-7RYLV5CM.cjs');
|
|
25
25
|
var chunkVNP5WB6M_cjs = require('./chunk-VNP5WB6M.cjs');
|
|
26
26
|
var chunk3J7HOTD6_cjs = require('./chunk-3J7HOTD6.cjs');
|
|
27
27
|
var chunkPYCAGTO7_cjs = require('./chunk-PYCAGTO7.cjs');
|
|
@@ -58,7 +58,7 @@ require('./chunk-V6BLBIY6.cjs');
|
|
|
58
58
|
var chunkI4GJZLJU_cjs = require('./chunk-I4GJZLJU.cjs');
|
|
59
59
|
|
|
60
60
|
// src/index.ts
|
|
61
|
-
var VERSION = "0.9.
|
|
61
|
+
var VERSION = "0.9.3";
|
|
62
62
|
|
|
63
63
|
Object.defineProperty(exports, "Timeline", {
|
|
64
64
|
enumerable: true,
|
|
@@ -90,11 +90,11 @@ Object.defineProperty(exports, "Typography", {
|
|
|
90
90
|
});
|
|
91
91
|
Object.defineProperty(exports, "TablePro", {
|
|
92
92
|
enumerable: true,
|
|
93
|
-
get: function () { return
|
|
93
|
+
get: function () { return chunk5Q2ZYR5Z_cjs.TablePro; }
|
|
94
94
|
});
|
|
95
95
|
Object.defineProperty(exports, "Table", {
|
|
96
96
|
enumerable: true,
|
|
97
|
-
get: function () { return
|
|
97
|
+
get: function () { return chunkP3ZIABMZ_cjs.Table; }
|
|
98
98
|
});
|
|
99
99
|
Object.defineProperty(exports, "Tabs", {
|
|
100
100
|
enumerable: true,
|
|
@@ -190,11 +190,11 @@ Object.defineProperty(exports, "Modal", {
|
|
|
190
190
|
});
|
|
191
191
|
Object.defineProperty(exports, "Pagination", {
|
|
192
192
|
enumerable: true,
|
|
193
|
-
get: function () { return
|
|
193
|
+
get: function () { return chunkEBU3DTUN_cjs.Pagination; }
|
|
194
194
|
});
|
|
195
195
|
Object.defineProperty(exports, "Select", {
|
|
196
196
|
enumerable: true,
|
|
197
|
-
get: function () { return
|
|
197
|
+
get: function () { return chunk7RYLV5CM_cjs.Select; }
|
|
198
198
|
});
|
|
199
199
|
Object.defineProperty(exports, "Tag", {
|
|
200
200
|
enumerable: true,
|
package/dist/index.d.cts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { Timeline } from './chunk-U7V2FOIM.js';
|
|
2
2
|
export { Tooltip } from './chunk-TALNKJQ2.js';
|
|
3
3
|
export { Link, Paragraph, Text, Title, Typography } from './chunk-2COQYOVG.js';
|
|
4
|
-
export { TablePro } from './chunk-
|
|
5
|
-
export { Table } from './chunk-
|
|
4
|
+
export { TablePro } from './chunk-EP7QREID.js';
|
|
5
|
+
export { Table } from './chunk-X547KNTP.js';
|
|
6
6
|
export { Tabs } from './chunk-4JANYBXO.js';
|
|
7
7
|
import './chunk-EE7IJ3MB.js';
|
|
8
8
|
export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel } from './chunk-IU6PLLEL.js';
|
|
@@ -18,8 +18,8 @@ export { InputNumber } from './chunk-RYF5ADJW.js';
|
|
|
18
18
|
export { List } from './chunk-LACXN5CI.js';
|
|
19
19
|
export { MessageContainer, ToastContainer, message, toast } from './chunk-2V6RQQRI.js';
|
|
20
20
|
export { Modal } from './chunk-RJCPXAZ3.js';
|
|
21
|
-
export { Pagination } from './chunk-
|
|
22
|
-
export { Select } from './chunk-
|
|
21
|
+
export { Pagination } from './chunk-6MT3APJ3.js';
|
|
22
|
+
export { Select } from './chunk-AFYNTVSH.js';
|
|
23
23
|
export { Tag } from './chunk-OGMI3TO5.js';
|
|
24
24
|
export { Popover } from './chunk-A34P5CU7.js';
|
|
25
25
|
export { Progress } from './chunk-BOBT7JUB.js';
|
|
@@ -56,6 +56,6 @@ import './chunk-5HLNFDV4.js';
|
|
|
56
56
|
export { ACCENT_PRESETS, ACCENT_PRESETS_DARK, DEFAULT_THEME_COLORS, FONT_STACKS, ThemeProvider, applyTheme, componentTokensToStyle, deriveThemeColors, normalizeAccentInput, resolveThemeColorScheme, resolveThemeColors, resolveThemeMode, resolveVisualThemeSnapshot, themeColorsToStyle, themeTokenToKebabCase, useTheme, useThemeOptional, visualThemeToStyle } from './chunk-CPVUDSIY.js';
|
|
57
57
|
|
|
58
58
|
// src/index.ts
|
|
59
|
-
var VERSION = "0.9.
|
|
59
|
+
var VERSION = "0.9.3";
|
|
60
60
|
|
|
61
61
|
export { VERSION };
|