@economic/taco 2.44.1 → 2.44.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/components/Select2/utilities.d.ts +2 -0
- package/dist/esm/packages/taco/src/components/Select2/Select2.js +29 -5
- package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Option.js +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Option.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Search.js +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Search.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js +1 -10
- package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/utilities.js +11 -1
- package/dist/esm/packages/taco/src/components/Select2/utilities.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js +2 -4
- package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Listbox2/components/Option.js +1 -0
- package/dist/esm/packages/taco/src/primitives/Listbox2/components/Option.js.map +1 -1
- package/dist/primitives/Collection/components/Root.d.ts +1 -1
- package/dist/taco.cjs.development.js +42 -20
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +2 -2
|
@@ -14391,7 +14391,6 @@ const Root = /*#__PURE__*/React__default.forwardRef(function CollectionRoot(prop
|
|
|
14391
14391
|
} = props;
|
|
14392
14392
|
const internalRef = useMergedRef(ref);
|
|
14393
14393
|
const [activeIndex, setActiveIndex] = React__default.useState();
|
|
14394
|
-
const lastLengthRef = React__default.useRef(0);
|
|
14395
14394
|
const setActiveOption = (index, collection, option) => {
|
|
14396
14395
|
var _collection$querySele;
|
|
14397
14396
|
(_collection$querySele = collection.querySelector(`[aria-current]`)) === null || _collection$querySele === void 0 ? void 0 : _collection$querySele.removeAttribute('aria-current');
|
|
@@ -14414,13 +14413,13 @@ const Root = /*#__PURE__*/React__default.forwardRef(function CollectionRoot(prop
|
|
|
14414
14413
|
}, [internalRef.current, querySelector]);
|
|
14415
14414
|
React__default.useEffect(() => {
|
|
14416
14415
|
if (internalRef.current) {
|
|
14417
|
-
internalRef.current.
|
|
14416
|
+
internalRef.current.setActiveIndexByElement = setActiveIndexByElement;
|
|
14418
14417
|
}
|
|
14419
14418
|
}, [internalRef.current]);
|
|
14420
14419
|
React__default.useEffect(() => {
|
|
14421
14420
|
if (internalRef.current) {
|
|
14422
14421
|
const options = getOptionsFromCollection(internalRef.current, querySelector);
|
|
14423
|
-
if (options.length
|
|
14422
|
+
if (options.length) {
|
|
14424
14423
|
let selected = internalRef.current.querySelectorAll(`[aria-current="true"]`);
|
|
14425
14424
|
if (selected.length === 0) {
|
|
14426
14425
|
selected = internalRef.current.querySelectorAll(`[aria-selected]`);
|
|
@@ -14438,7 +14437,6 @@ const Root = /*#__PURE__*/React__default.forwardRef(function CollectionRoot(prop
|
|
|
14438
14437
|
setActiveOption(0, internalRef.current, options.item(0));
|
|
14439
14438
|
}
|
|
14440
14439
|
}
|
|
14441
|
-
lastLengthRef.current = options.length;
|
|
14442
14440
|
}
|
|
14443
14441
|
}, [props.children]);
|
|
14444
14442
|
const handleClick = event => {
|
|
@@ -14643,6 +14641,7 @@ const Option = /*#__PURE__*/React__default.forwardRef(function Listbox2Option(pr
|
|
|
14643
14641
|
return /*#__PURE__*/React__default.createElement("div", Object.assign({}, otherProps, {
|
|
14644
14642
|
"aria-disabled": listboxDisabled || disabled ? 'true' : undefined,
|
|
14645
14643
|
"aria-selected": selected ? 'true' : undefined,
|
|
14644
|
+
key: `${value}_${String(selected)}`,
|
|
14646
14645
|
id: id,
|
|
14647
14646
|
onClick: handleClick,
|
|
14648
14647
|
onKeyDown: handleKeyDown,
|
|
@@ -14736,6 +14735,16 @@ const getFontSize = fontSize => {
|
|
|
14736
14735
|
return 'text-sm';
|
|
14737
14736
|
}
|
|
14738
14737
|
};
|
|
14738
|
+
const filterOption = (child, searchQuery) => {
|
|
14739
|
+
var _child$props$textValu, _child$props$descript;
|
|
14740
|
+
if ((_child$props$textValu = child.props.textValue) !== null && _child$props$textValu !== void 0 && _child$props$textValu.toLowerCase().includes(searchQuery.toLowerCase())) {
|
|
14741
|
+
return true;
|
|
14742
|
+
}
|
|
14743
|
+
if ((_child$props$descript = child.props.description) !== null && _child$props$descript !== void 0 && _child$props$descript.toLowerCase().includes(searchQuery.toLowerCase())) {
|
|
14744
|
+
return true;
|
|
14745
|
+
}
|
|
14746
|
+
return String(child.props.children).toLowerCase().includes(searchQuery.toLowerCase());
|
|
14747
|
+
};
|
|
14739
14748
|
|
|
14740
14749
|
const Select2Context = /*#__PURE__*/React__default.createContext({});
|
|
14741
14750
|
const useSelect2Context = () => React__default.useContext(Select2Context);
|
|
@@ -15008,7 +15017,7 @@ const Option$1 = /*#__PURE__*/React__default.forwardRef(function Select2Option(p
|
|
|
15008
15017
|
onClick: event => {
|
|
15009
15018
|
var _listboxRef$current;
|
|
15010
15019
|
event.stopPropagation();
|
|
15011
|
-
listboxRef === null || listboxRef === void 0 ? void 0 : (_listboxRef$current = listboxRef.current) === null || _listboxRef$current === void 0 ? void 0 : _listboxRef$current.
|
|
15020
|
+
listboxRef === null || listboxRef === void 0 ? void 0 : (_listboxRef$current = listboxRef.current) === null || _listboxRef$current === void 0 ? void 0 : _listboxRef$current.setActiveIndexByElement(event.currentTarget.parentElement);
|
|
15012
15021
|
},
|
|
15013
15022
|
popover: popover,
|
|
15014
15023
|
tabIndex: -1
|
|
@@ -15423,7 +15432,7 @@ const Search$2 = /*#__PURE__*/React__default.forwardRef(function ListboxSearch(p
|
|
|
15423
15432
|
}
|
|
15424
15433
|
};
|
|
15425
15434
|
return /*#__PURE__*/React__default.createElement(Field, {
|
|
15426
|
-
className: cn('mx-1.5 mb-1.5 !min-h-fit
|
|
15435
|
+
className: cn('mx-1.5 mb-1.5 !min-h-fit', {
|
|
15427
15436
|
'!pb-0': !validationError
|
|
15428
15437
|
}),
|
|
15429
15438
|
invalid: !!validationError,
|
|
@@ -15489,16 +15498,6 @@ const useChildren = ({
|
|
|
15489
15498
|
setSearchQuery
|
|
15490
15499
|
};
|
|
15491
15500
|
};
|
|
15492
|
-
const filterOption = (child, searchQuery) => {
|
|
15493
|
-
var _child$props$textValu, _child$props$descript;
|
|
15494
|
-
if ((_child$props$textValu = child.props.textValue) !== null && _child$props$textValu !== void 0 && _child$props$textValu.toLowerCase().includes(searchQuery.toLowerCase())) {
|
|
15495
|
-
return true;
|
|
15496
|
-
}
|
|
15497
|
-
if ((_child$props$descript = child.props.description) !== null && _child$props$descript !== void 0 && _child$props$descript.toLowerCase().includes(searchQuery.toLowerCase())) {
|
|
15498
|
-
return true;
|
|
15499
|
-
}
|
|
15500
|
-
return String(child.props.children).toLowerCase().includes(searchQuery.toLowerCase());
|
|
15501
|
-
};
|
|
15502
15501
|
|
|
15503
15502
|
const getNextColor = options => {
|
|
15504
15503
|
let occurrences = {};
|
|
@@ -15714,6 +15713,26 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
|
|
|
15714
15713
|
createDialog,
|
|
15715
15714
|
createTriggerText
|
|
15716
15715
|
};
|
|
15716
|
+
const hasInlineCreation = onCreate && !createDialog;
|
|
15717
|
+
const hasSearch = flattenedChildren.length > 5 || hasInlineCreation;
|
|
15718
|
+
const visibleChildren = searchQuery === '' ? initialChildren : filteredChildren;
|
|
15719
|
+
const selectOptions = searchQuery === '' ? flattenedChildren.map(child => child.props.value) : filteredChildren.map(child => isGroup(child) ? Array.isArray(child.props.children) && child.props.children.map(subChild => subChild.props.value) : child.props.value).flatMap(c => c) || [];
|
|
15720
|
+
// support typeahead functionality when search isn't available
|
|
15721
|
+
const queryTimeoutRef = React__default.useRef('');
|
|
15722
|
+
const typeahead = debounce(function () {
|
|
15723
|
+
if (!queryTimeoutRef.current) {
|
|
15724
|
+
return;
|
|
15725
|
+
}
|
|
15726
|
+
const matchedValueIndex = visibleChildren.findIndex(child => filterOption(child, queryTimeoutRef.current));
|
|
15727
|
+
if (matchedValueIndex > -1) {
|
|
15728
|
+
setValue(selectOptions[matchedValueIndex]);
|
|
15729
|
+
}
|
|
15730
|
+
queryTimeoutRef.current = '';
|
|
15731
|
+
}, 200);
|
|
15732
|
+
const setValueIfMatched = query => {
|
|
15733
|
+
queryTimeoutRef.current = queryTimeoutRef.current + query;
|
|
15734
|
+
typeahead();
|
|
15735
|
+
};
|
|
15717
15736
|
const handleKeyDown = event => {
|
|
15718
15737
|
var _listboxRef$current;
|
|
15719
15738
|
if (open) {
|
|
@@ -15722,6 +15741,9 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
|
|
|
15722
15741
|
return;
|
|
15723
15742
|
} else if (!event.ctrlKey && !event.metaKey && (event.key === 'ArrowDown' || /^[a-z0-9]$/i.test(event.key))) {
|
|
15724
15743
|
setOpen(true);
|
|
15744
|
+
if (!hasSearch) {
|
|
15745
|
+
setValueIfMatched(event.key);
|
|
15746
|
+
}
|
|
15725
15747
|
}
|
|
15726
15748
|
// the focus should always remain on the input, so we forward events on to the listbox
|
|
15727
15749
|
(_listboxRef$current = listboxRef.current) === null || _listboxRef$current === void 0 ? void 0 : _listboxRef$current.dispatchEvent(createCustomKeyboardEvent(event));
|
|
@@ -15748,6 +15770,9 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
|
|
|
15748
15770
|
if (isAriaDirectionKey(event)) {
|
|
15749
15771
|
setShouldPauseHoverState(true);
|
|
15750
15772
|
}
|
|
15773
|
+
if (!hasSearch && /^[a-z0-9]$/i.test(event.key)) {
|
|
15774
|
+
setValueIfMatched(event.key);
|
|
15775
|
+
}
|
|
15751
15776
|
};
|
|
15752
15777
|
const handleCloseAutoFocus = event => {
|
|
15753
15778
|
event.preventDefault();
|
|
@@ -15765,7 +15790,6 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
|
|
|
15765
15790
|
(_internalRef$current = internalRef.current) === null || _internalRef$current === void 0 ? void 0 : _internalRef$current.focus();
|
|
15766
15791
|
}
|
|
15767
15792
|
};
|
|
15768
|
-
const selectOptions = searchQuery === '' ? flattenedChildren.map(child => child.props.value) : filteredChildren.map(child => isGroup(child) ? Array.isArray(child.props.children) && child.props.children.map(subChild => subChild.props.value) : child.props.value).flatMap(c => c) || [];
|
|
15769
15793
|
const areAllSelected = Array.isArray(value) && selectOptions.every(option => value.includes(option));
|
|
15770
15794
|
const selectAllText = React__default.useMemo(() => {
|
|
15771
15795
|
if (searchQuery === '') {
|
|
@@ -15797,8 +15821,6 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
|
|
|
15797
15821
|
setValue(nextValue);
|
|
15798
15822
|
}
|
|
15799
15823
|
};
|
|
15800
|
-
const hasInlineCreation = onCreate && !createDialog;
|
|
15801
|
-
const hasSearch = flattenedChildren.length > 5 || hasInlineCreation;
|
|
15802
15824
|
const className = cn('border-grey-300 rounded border bg-white py-1.5 shadow-md ', {
|
|
15803
15825
|
'focus-within:yt-focus': !hasSearch,
|
|
15804
15826
|
'outline-none': hasSearch
|
|
@@ -15865,7 +15887,7 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
|
|
|
15865
15887
|
ref: listboxRef,
|
|
15866
15888
|
setValue: setValue,
|
|
15867
15889
|
value: value
|
|
15868
|
-
},
|
|
15890
|
+
}, /*#__PURE__*/React__default.createElement(Collection$1, null, visibleChildren), onCreate ? /*#__PURE__*/React__default.createElement(Create, {
|
|
15869
15891
|
onCreate: onCreate,
|
|
15870
15892
|
options: flattenedChildren
|
|
15871
15893
|
}) : null))))), /*#__PURE__*/React__default.createElement(ControlledHiddenField, {
|