@procore/core-react 12.27.1 → 12.28.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/CHANGELOG.md +6 -0
- package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
- package/dist/Avatar/Avatar.styles.js +5 -5
- package/dist/AvatarStack/AvatarStack.styles.js +7 -7
- package/dist/Badge/Badge.styles.js +2 -2
- package/dist/BadgePill/BadgePill.styles.js +4 -4
- package/dist/Banner/Banner.styles.js +10 -10
- package/dist/Box/Box.styles.js +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
- package/dist/Button/Button.styles.js +5 -5
- package/dist/Calendar/Calendar.styles.js +8 -8
- package/dist/Card/Card.styles.js +1 -1
- package/dist/Checkbox/Checkbox.styles.js +6 -6
- package/dist/Checkbox/CheckboxTooltip.js +1 -1
- package/dist/ContactItem/ContactItem.styles.js +5 -5
- package/dist/Content/Content.styles.js +2 -2
- package/dist/DateInput/DateInput.styles.js +6 -6
- package/dist/DetailPage/DetailPage.styles.js +7 -7
- package/dist/Dropdown/Dropdown.styles.js +3 -3
- package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
- package/dist/Dropzone/Dropzone.js +1 -1
- package/dist/Dropzone/Dropzone.styles.js +9 -9
- package/dist/EmptyState/EmptyState.styles.js +6 -6
- package/dist/Field/Field.styles.js +3 -3
- package/dist/FileList/FileList.styles.js +4 -4
- package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
- package/dist/FileSelect/FileSelect.styles.js +2 -2
- package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
- package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
- package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
- package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
- package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
- package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
- package/dist/FileToken/FileToken.styles.js +4 -4
- package/dist/FilterToken/FilterToken.styles.js +5 -5
- package/dist/FlexList/FlexList.styles.js +1 -1
- package/dist/Form/Form.styles.js +14 -14
- package/dist/Form/StyledFormikForm.styles.js +2 -2
- package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
- package/dist/Grid/Grid.styles.js +2 -2
- package/dist/GroupSelect/GroupSelect.styles.js +1 -1
- package/dist/Input/Input.styles.js +1 -1
- package/dist/Link/Link.styles.js +1 -1
- package/dist/ListPage/ListPage.styles.js +8 -8
- package/dist/Loader/Loader.styles.js +2 -2
- package/dist/MenuImperative/MenuImperative.styles.js +10 -10
- package/dist/Modal/Modal.styles.js +13 -13
- package/dist/MultiSelect/MultiSelect.styles.js +6 -6
- package/dist/NextMenu/NextMenu.styles.js +3 -3
- package/dist/Notation/Notation.js +1 -1
- package/dist/NumberInput/NumberInput.styles.js +7 -7
- package/dist/Overlay/OverlayArrow.styles.js +1 -1
- package/dist/PageLayout/PageLayout.styles.js +16 -16
- package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
- package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
- package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
- package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
- package/dist/Pagination/Pagination.styles.js +5 -5
- package/dist/Panel/Panel.styles.js +11 -11
- package/dist/Pill/Pill.styles.js +3 -3
- package/dist/PillSelect/PillSelect.styles.js +4 -4
- package/dist/Popover/Popover.styles.js +2 -2
- package/dist/Portal/Portal.styles.js +1 -1
- package/dist/ProgressBar/ProgressBar.styles.js +2 -2
- package/dist/RadioButton/RadioButton.styles.js +3 -3
- package/dist/Required/Required.styles.js +3 -3
- package/dist/Search/Search.styles.js +5 -5
- package/dist/Section/Section.styles.js +7 -7
- package/dist/SegmentedController/SegmentedController.styles.js +4 -4
- package/dist/Select/Select.styles.js +7 -7
- package/dist/Semantic/Semantic.styles.js +9 -9
- package/dist/Slider/Slider.styles.js +5 -5
- package/dist/Spinner/Spinner.styles.js +7 -7
- package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
- package/dist/SuperSelect/SuperSelect.components.d.ts +1 -0
- package/dist/SuperSelect/SuperSelect.components.js +106 -15
- package/dist/SuperSelect/SuperSelect.components.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.constants.d.ts +1 -0
- package/dist/SuperSelect/SuperSelect.constants.js +1 -0
- package/dist/SuperSelect/SuperSelect.constants.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.js +5 -1
- package/dist/SuperSelect/SuperSelect.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
- package/dist/SuperSelect/SuperSelect.styles.d.ts +3 -0
- package/dist/SuperSelect/SuperSelect.styles.js +41 -37
- package/dist/SuperSelect/SuperSelect.styles.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.types.d.ts +35 -1
- package/dist/SuperSelect/SuperSelect.types.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.utils.d.ts +1 -0
- package/dist/SuperSelect/SuperSelect.utils.js +4 -1
- package/dist/SuperSelect/SuperSelect.utils.js.map +1 -1
- package/dist/SuperSelect/useSuperSelect.d.ts +1 -1
- package/dist/SuperSelect/useSuperSelect.js +111 -24
- package/dist/SuperSelect/useSuperSelect.js.map +1 -1
- package/dist/Switch/Switch.styles.js +4 -4
- package/dist/Table/Table.styles.js +28 -28
- package/dist/TableShelf/TableShelf.styles.js +5 -5
- package/dist/Tabs/Tabs.styles.js +15 -15
- package/dist/Tearsheet/Tearsheet.styles.js +5 -5
- package/dist/TextArea/TextArea.styles.js +1 -1
- package/dist/TextEditor/TextEditor.styles.js +1 -1
- package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
- package/dist/Thumbnail/Thumbnail.styles.js +17 -17
- package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
- package/dist/TieredSelect/TieredSelect.js +1 -1
- package/dist/TieredSelect/TieredSelect.js.map +1 -1
- package/dist/TieredSelect/TieredSelect.styles.js +9 -9
- package/dist/Tile/Tile.styles.js +8 -8
- package/dist/Title/Title.styles.js +7 -7
- package/dist/Toast/Toast.styles.js +3 -3
- package/dist/ToggleButton/ToggleButton.styles.js +1 -1
- package/dist/Token/Token.styles.js +3 -3
- package/dist/ToolHeader/ToolHeader.styles.js +6 -6
- package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
- package/dist/Tooltip/Tooltip.styles.js +2 -2
- package/dist/Tree/Tree.styles.js +9 -9
- package/dist/Typeahead/Typeahead.styles.js +3 -3
- package/dist/Typography/Typography.styles.js +1 -1
- package/dist/Typography/Typography.table.story.js +2 -2
- package/dist/_hooks/I18n.d.ts +2 -0
- package/dist/_locales/en.json +2 -1
- package/dist/_locales/pseudo.json +2 -1
- package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
- package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
- package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
- package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
- package/dist/_typedoc/AvatarStack/AvatarStack.types.json +24 -24
- package/dist/_typedoc/Badge/Badge.types.json +6 -6
- package/dist/_typedoc/Banner/Banner.types.json +13 -13
- package/dist/_typedoc/Box/Box.types.json +68 -68
- package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
- package/dist/_typedoc/Button/Button.types.json +13 -13
- package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
- package/dist/_typedoc/Card/Card.types.json +6 -6
- package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
- package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
- package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
- package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
- package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
- package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
- package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +30 -30
- package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
- package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
- package/dist/_typedoc/FileList/FileList.types.json +9 -9
- package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
- package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
- package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
- package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
- package/dist/_typedoc/Flex/Flex.types.json +27 -27
- package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
- package/dist/_typedoc/Form/Form.types.json +771 -771
- package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
- package/dist/_typedoc/Grid/Grid.types.json +8 -8
- package/dist/_typedoc/GroupSelect/GroupSelect.types.json +52 -52
- package/dist/_typedoc/Input/Input.types.json +2 -2
- package/dist/_typedoc/Link/Link.types.json +1 -1
- package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
- package/dist/_typedoc/Menu/Menu.types.json +62 -62
- package/dist/_typedoc/MenuImperative/MenuImperative.types.json +74 -74
- package/dist/_typedoc/Modal/Modal.types.json +46 -46
- package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
- package/dist/_typedoc/NextTile/NextTile.types.json +32 -32
- package/dist/_typedoc/Notation/Notation.types.json +4 -4
- package/dist/_typedoc/NumberInput/NumberInput.types.json +48 -48
- package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +32 -32
- package/dist/_typedoc/PageLayout/PageLayout.types.json +26 -26
- package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
- package/dist/_typedoc/Panel/Panel.types.json +30 -30
- package/dist/_typedoc/Pill/Pill.types.json +2 -2
- package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
- package/dist/_typedoc/Popover/Popover.types.json +15 -15
- package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
- package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
- package/dist/_typedoc/Required/Required.types.json +5 -5
- package/dist/_typedoc/Search/Search.types.json +18 -18
- package/dist/_typedoc/Section/Section.types.json +15 -15
- package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
- package/dist/_typedoc/Select/Select.types.json +60 -60
- package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
- package/dist/_typedoc/Slider/Slider.types.json +6 -6
- package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
- package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
- package/dist/_typedoc/Table/Table.types.json +101 -101
- package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
- package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
- package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
- package/dist/_typedoc/TextEditor/TextEditor.types.json +21 -21
- package/dist/_typedoc/TextEditor/TextEditorProvider.types.json +2 -2
- package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +3 -3
- package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
- package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +42 -42
- package/dist/_typedoc/TieredSelect/TieredSelect.types.json +28 -28
- package/dist/_typedoc/Tile/Tile.types.json +8 -8
- package/dist/_typedoc/Title/Title.types.json +1 -1
- package/dist/_typedoc/Toast/Toast.types.json +4 -4
- package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
- package/dist/_typedoc/Token/Token.types.json +7 -7
- package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
- package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +7 -7
- package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
- package/dist/_typedoc/Tree/Tree.types.json +86 -86
- package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
- package/dist/_typedoc/Typography/Typography.types.json +9 -9
- package/dist/_typedoc/_utils/types.json +3 -3
- package/package.json +1 -1
|
@@ -24,9 +24,9 @@ import { useI18nContext } from '../_hooks/I18n';
|
|
|
24
24
|
import { useZIndexContext } from '../_hooks/ZIndex';
|
|
25
25
|
import { spacing } from '../_styles/spacing';
|
|
26
26
|
import * as defaultComponents from './SuperSelect.components';
|
|
27
|
-
import { draggableOptionIdSymbol } from './SuperSelect.constants';
|
|
27
|
+
import { draggableOptionIdSymbol, isOptSelectAllSymbol } from './SuperSelect.constants';
|
|
28
28
|
import { extendedSelectMenuWidth } from './SuperSelect.styles';
|
|
29
|
-
import { collectGroupsInOrderOfOccurrence, createOptgroup, getBatchOptionFormatter, getIsAllOptionsUngrouped, getOptionIsOptgroup, getOptionsSortingAlgorithm, isMultiple, removeEmptyOptGroups, reorder, sortOptgroups } from './SuperSelect.utils';
|
|
29
|
+
import { collectGroupsInOrderOfOccurrence, createOptgroup, getBatchOptionFormatter, getIsAllOptionsUngrouped, getOptionIsOptgroup, getOptionIsOptSelectAll, getOptionsSortingAlgorithm, isMultiple, removeEmptyOptGroups, reorder, sortOptgroups } from './SuperSelect.utils';
|
|
30
30
|
var listContainerVerticalPadding = spacing.sm * 2;
|
|
31
31
|
function noop() {}
|
|
32
32
|
function defaultGetOptionValue(option) {
|
|
@@ -142,6 +142,8 @@ export function useSuperSelect(_ref3) {
|
|
|
142
142
|
draggable = _ref3$draggable === void 0 ? false : _ref3$draggable,
|
|
143
143
|
_ref3$emptyMessage = _ref3.emptyMessage,
|
|
144
144
|
emptyMessage = _ref3$emptyMessage === void 0 ? 'No results' : _ref3$emptyMessage,
|
|
145
|
+
_ref3$selectAllEnable = _ref3.selectAllEnabled,
|
|
146
|
+
selectAllEnabled = _ref3$selectAllEnable === void 0 ? false : _ref3$selectAllEnable,
|
|
145
147
|
error = _ref3.error,
|
|
146
148
|
footer = _ref3.footer,
|
|
147
149
|
_ref3$getOptionGroup = _ref3.getOptionGroup,
|
|
@@ -152,7 +154,8 @@ export function useSuperSelect(_ref3) {
|
|
|
152
154
|
getOptionIsDisabled = _ref3$getOptionIsDisa === void 0 ? defaultGetOptionIsDisabled : _ref3$getOptionIsDisa,
|
|
153
155
|
_ref3$getOptionLabel = _ref3.getOptionLabel,
|
|
154
156
|
getOptionLabel = _ref3$getOptionLabel === void 0 ? defaultGetOptionLabel : _ref3$getOptionLabel,
|
|
155
|
-
|
|
157
|
+
getOptionIsPartiallySelected = _ref3.getOptionIsPartiallySelected,
|
|
158
|
+
getOptionIsSelected = _ref3.getOptionIsSelected,
|
|
156
159
|
_ref3$getOptionValue = _ref3.getOptionValue,
|
|
157
160
|
getOptionValue = _ref3$getOptionValue === void 0 ? defaultGetOptionValue : _ref3$getOptionValue,
|
|
158
161
|
_ref3$onScrollBottom = _ref3.onScrollBottom,
|
|
@@ -166,6 +169,7 @@ export function useSuperSelect(_ref3) {
|
|
|
166
169
|
multiple = _ref3$multiple === void 0 ? false : _ref3$multiple,
|
|
167
170
|
onChange = _ref3.onChange,
|
|
168
171
|
onManualSort = _ref3.onManualSort,
|
|
172
|
+
onSelectAll = _ref3.onSelectAll,
|
|
169
173
|
_ref3$options = _ref3.options,
|
|
170
174
|
sourceOptions = _ref3$options === void 0 ? [] : _ref3$options,
|
|
171
175
|
placeholder = _ref3.placeholder,
|
|
@@ -336,6 +340,16 @@ export function useSuperSelect(_ref3) {
|
|
|
336
340
|
},
|
|
337
341
|
// skip `getOptionLabel`, refer to TODO #memogetters
|
|
338
342
|
[groupAndSortAlgorithm, formatBatchOption, searchValue, sourceOptions]);
|
|
343
|
+
var selectAllOption = _defineProperty({
|
|
344
|
+
label: i18n.t('core.select.selectAll'),
|
|
345
|
+
id: 'selectAll'
|
|
346
|
+
}, isOptSelectAllSymbol, true);
|
|
347
|
+
var allOptionsWithSelectAll = React.useMemo(function () {
|
|
348
|
+
if (!selectAllEnabled || !multiple) {
|
|
349
|
+
return options;
|
|
350
|
+
}
|
|
351
|
+
return [selectAllOption].concat(_toConsumableArray(options));
|
|
352
|
+
}, [selectAllEnabled, multiple, selectAllOption, options]);
|
|
339
353
|
var _React$useState21 = React.useState([]),
|
|
340
354
|
_React$useState22 = _slicedToArray(_React$useState21, 2),
|
|
341
355
|
draggableOptions = _React$useState22[0],
|
|
@@ -366,25 +380,40 @@ export function useSuperSelect(_ref3) {
|
|
|
366
380
|
},
|
|
367
381
|
// skip `getOptionLabel`, refer to TODO #memogetters
|
|
368
382
|
[draggable, draggableOptions, searchValue, formatBatchOption]);
|
|
383
|
+
|
|
384
|
+
// Group indices calculation - needs allOptionsWithSelectAll because:
|
|
385
|
+
// When SelectAll is enabled, it becomes the first item (index 0) and shifts all other indices by 1.
|
|
386
|
+
// Group headers need their correct absolute positions in the combined list for navigation to work.
|
|
369
387
|
var groupIndices = React.useMemo(function () {
|
|
370
|
-
|
|
388
|
+
var baseOptions = selectAllEnabled && multiple ? allOptionsWithSelectAll : options;
|
|
389
|
+
return baseOptions.reduce(function (acc, opt, i) {
|
|
371
390
|
if (getOptionIsOptgroup(opt)) {
|
|
372
391
|
acc.push(i);
|
|
373
392
|
}
|
|
374
393
|
return acc;
|
|
375
394
|
}, []);
|
|
376
|
-
}, [options]);
|
|
395
|
+
}, [selectAllEnabled, multiple, allOptionsWithSelectAll, options]);
|
|
396
|
+
|
|
397
|
+
// Selected index calculation - needs allOptionsWithSelectAll because:
|
|
398
|
+
// The selectedIndex must reference the absolute position in the combined list for keyboard navigation.
|
|
399
|
+
// When SelectAll is at index 0, the first regular option becomes index 1, affecting selection highlighting.
|
|
377
400
|
var selectedIndex = React.useMemo(function () {
|
|
378
|
-
|
|
401
|
+
var baseOptions = selectAllEnabled && multiple ? allOptionsWithSelectAll : options;
|
|
402
|
+
return baseOptions.findIndex(function (option) {
|
|
379
403
|
return isSelectableOption(option) && getOptionValue(option) === value;
|
|
380
404
|
});
|
|
381
|
-
}, [options, value]);
|
|
405
|
+
}, [selectAllEnabled, multiple, allOptionsWithSelectAll, options, value]);
|
|
406
|
+
|
|
407
|
+
// Selected option lookup - needs allOptionsWithSelectAll because:
|
|
408
|
+
// The selectedOption lookup must search the complete list including SelectAll to find matches.
|
|
409
|
+
// This ensures proper option detection regardless of whether SelectAll or regular options are selected.
|
|
382
410
|
var selectedOption = React.useMemo(function () {
|
|
383
411
|
var val = Array.isArray(value) ? value[0] : value;
|
|
384
|
-
|
|
412
|
+
var baseOptions = selectAllEnabled && multiple ? allOptionsWithSelectAll : options;
|
|
413
|
+
return baseOptions.find(function (option) {
|
|
385
414
|
return getOptionValue(option) === val;
|
|
386
415
|
});
|
|
387
|
-
}, [options, value]);
|
|
416
|
+
}, [selectAllEnabled, multiple, allOptionsWithSelectAll, options, value]);
|
|
388
417
|
var selectedLabel = React.useMemo(function () {
|
|
389
418
|
return selectedOption ? getOptionLabel(selectedOption) : '';
|
|
390
419
|
}, [selectedOption]);
|
|
@@ -392,15 +421,30 @@ export function useSuperSelect(_ref3) {
|
|
|
392
421
|
return !getOptionIsOptgroup(o) && !getOptionIsDisabled(o);
|
|
393
422
|
}
|
|
394
423
|
function getFirstSelectableOptionIndex() {
|
|
395
|
-
|
|
424
|
+
// When Select All is enabled in multiple mode, it's always at index 0 and is selectable
|
|
425
|
+
if (selectAllEnabled && multiple) {
|
|
426
|
+
return 0;
|
|
427
|
+
}
|
|
428
|
+
var baseOptions = options;
|
|
429
|
+
return baseOptions.findIndex(isSelectableOption) + (selectAllEnabled && multiple ? 1 : 0);
|
|
396
430
|
}
|
|
397
431
|
function onSelect(option) {
|
|
398
432
|
if (getOptionIsDisabled(option)) {
|
|
399
433
|
return;
|
|
400
434
|
}
|
|
401
435
|
var optionValue = getOptionValue(option);
|
|
436
|
+
var isSelectAll = getOptionIsOptSelectAll(option);
|
|
402
437
|
if (isMultiple(multiple, value)) {
|
|
403
|
-
if (
|
|
438
|
+
if (isSelectAll) {
|
|
439
|
+
var selectableOptions = options.filter(function (opt) {
|
|
440
|
+
return isSelectableOption(opt);
|
|
441
|
+
});
|
|
442
|
+
if (onSelectAll) {
|
|
443
|
+
onSelectAll(selectableOptions);
|
|
444
|
+
}
|
|
445
|
+
var optionValues = selectableOptions.flatMap(getOptionValue);
|
|
446
|
+
setValue(uniq([].concat(_toConsumableArray(value), _toConsumableArray(optionValues))));
|
|
447
|
+
} else if (Array.isArray(optionValue)) {
|
|
404
448
|
setValue(uniq([].concat(_toConsumableArray(value), _toConsumableArray(optionValue))));
|
|
405
449
|
} else {
|
|
406
450
|
setValue(value.includes(optionValue) ? value.filter(function (val) {
|
|
@@ -413,13 +457,16 @@ export function useSuperSelect(_ref3) {
|
|
|
413
457
|
}
|
|
414
458
|
function onKeyboardSelect() {
|
|
415
459
|
if (activeMenuIndex !== null) {
|
|
416
|
-
|
|
460
|
+
// Select All must be included in the list for keyboard navigation to work properly.
|
|
461
|
+
// The activeMenuIndex corresponds to positions in the complete navigation list including SelectAll.
|
|
462
|
+
var baseOptions = selectAllEnabled && multiple ? allOptionsWithSelectAll : options;
|
|
463
|
+
var option = baseOptions[activeMenuIndex];
|
|
417
464
|
if (option) {
|
|
418
465
|
onSelect(option);
|
|
419
466
|
}
|
|
420
467
|
}
|
|
421
468
|
}
|
|
422
|
-
function
|
|
469
|
+
function defaultGetOptionIsSelected(option) {
|
|
423
470
|
if (Array.isArray(value)) {
|
|
424
471
|
var optionValues = getOptionValue(option);
|
|
425
472
|
if (Array.isArray(optionValues)) {
|
|
@@ -447,6 +494,24 @@ export function useSuperSelect(_ref3) {
|
|
|
447
494
|
}
|
|
448
495
|
return false;
|
|
449
496
|
}
|
|
497
|
+
function defaultGetOptionIsSelectAllPartiallySelected(options, isSelected, isPartiallySelected) {
|
|
498
|
+
if (selectionStyle !== 'checkbox' && !Array.isArray(value)) {
|
|
499
|
+
return false;
|
|
500
|
+
}
|
|
501
|
+
return options.some(function (option) {
|
|
502
|
+
return isSelected(option) || isPartiallySelected(option);
|
|
503
|
+
}) && !options.every(function (option) {
|
|
504
|
+
return isSelected(option);
|
|
505
|
+
});
|
|
506
|
+
}
|
|
507
|
+
function defaultGetOptionIsSelectAllSelected(options, isSelected) {
|
|
508
|
+
if (!multiple) {
|
|
509
|
+
return false;
|
|
510
|
+
}
|
|
511
|
+
return options.every(function (option) {
|
|
512
|
+
return isSelected(option);
|
|
513
|
+
});
|
|
514
|
+
}
|
|
450
515
|
function isEmpty() {
|
|
451
516
|
return Array.isArray(value) ? value.length === 0 : value === null;
|
|
452
517
|
}
|
|
@@ -775,20 +840,28 @@ export function useSuperSelect(_ref3) {
|
|
|
775
840
|
|
|
776
841
|
// recreate the array to hold dom refs when our options change
|
|
777
842
|
React.useEffect(function () {
|
|
778
|
-
|
|
779
|
-
|
|
843
|
+
// Adjust length to include Select All option if enabled, without this the navigation
|
|
844
|
+
// would not work correctly when Select All is enabled
|
|
845
|
+
var totalLength = selectAllEnabled && multiple ? allOptionsWithSelectAll.length : options.length;
|
|
846
|
+
navigationList.current = _toConsumableArray(Array(totalLength).fill(null));
|
|
847
|
+
}, [selectAllEnabled, multiple, allOptionsWithSelectAll, options]);
|
|
780
848
|
|
|
781
849
|
// scroll virtuoso list activeMenuIndex into view when the index changes
|
|
782
850
|
React.useLayoutEffect(function () {
|
|
783
851
|
if (activeMenuIndex !== null) {
|
|
784
852
|
if (!pointer) {
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
853
|
+
// Adjust index for virtuoso if Select All is enabled (since Select All is rendered separately)
|
|
854
|
+
// Without this the navigation would not work correctly when Select All is enabled
|
|
855
|
+
var virtuosoIndex = selectAllEnabled && multiple && activeMenuIndex > 0 ? activeMenuIndex + 1 : activeMenuIndex;
|
|
856
|
+
if (virtuosoIndex >= 0) {
|
|
857
|
+
var _virtuoso$current;
|
|
858
|
+
(_virtuoso$current = virtuoso.current) === null || _virtuoso$current === void 0 ? void 0 : _virtuoso$current.scrollIntoView({
|
|
859
|
+
index: virtuosoIndex
|
|
860
|
+
});
|
|
861
|
+
}
|
|
789
862
|
}
|
|
790
863
|
}
|
|
791
|
-
}, [activeMenuIndex, open]);
|
|
864
|
+
}, [activeMenuIndex, open, selectAllEnabled, multiple]);
|
|
792
865
|
return {
|
|
793
866
|
config: {
|
|
794
867
|
block: block,
|
|
@@ -804,7 +877,8 @@ export function useSuperSelect(_ref3) {
|
|
|
804
877
|
selectionStyle: selectionStyle,
|
|
805
878
|
tabIndex: tabIndex,
|
|
806
879
|
loading: loading,
|
|
807
|
-
multiple: multiple
|
|
880
|
+
multiple: multiple,
|
|
881
|
+
selectAllEnabled: selectAllEnabled
|
|
808
882
|
},
|
|
809
883
|
components: components,
|
|
810
884
|
state: {
|
|
@@ -816,16 +890,20 @@ export function useSuperSelect(_ref3) {
|
|
|
816
890
|
maxHeight: maxHeight,
|
|
817
891
|
onDragEnd: onDragEnd,
|
|
818
892
|
onSelect: onSelect,
|
|
893
|
+
onSelectAll: onSelectAll,
|
|
819
894
|
open: open,
|
|
820
895
|
options: draggable ? queriedDraggableOptions : options,
|
|
821
896
|
overlayId: overlayId,
|
|
822
897
|
searchValue: searchValue,
|
|
898
|
+
selectAllOption: selectAllOption,
|
|
823
899
|
selectedIndex: selectedIndex,
|
|
824
900
|
selectedLabel: selectedLabel,
|
|
825
901
|
selectedOption: selectedOption,
|
|
826
902
|
setOpen: setOpen,
|
|
827
903
|
setPointer: setPointer,
|
|
904
|
+
setValue: setValue,
|
|
828
905
|
setSearchValue: setSearchValue,
|
|
906
|
+
setActiveMenuIndex: setActiveMenuIndex,
|
|
829
907
|
sourceOptions: sourceOptions,
|
|
830
908
|
value: value,
|
|
831
909
|
width: width
|
|
@@ -849,12 +927,21 @@ export function useSuperSelect(_ref3) {
|
|
|
849
927
|
option: {
|
|
850
928
|
group: getOptionGroup,
|
|
851
929
|
isBatch: getOptionIsBatch,
|
|
852
|
-
isPartiallySelected:
|
|
853
|
-
isSelected: getOptionIsSelected,
|
|
930
|
+
isPartiallySelected: getOptionIsPartiallySelected !== null && getOptionIsPartiallySelected !== void 0 ? getOptionIsPartiallySelected : defaultGetOptionIsPartiallySelected,
|
|
931
|
+
isSelected: getOptionIsSelected !== null && getOptionIsSelected !== void 0 ? getOptionIsSelected : defaultGetOptionIsSelected,
|
|
854
932
|
isDisabled: getOptionIsDisabled,
|
|
855
933
|
isOptgroup: getOptionIsOptgroup,
|
|
934
|
+
isOptSelectAll: getOptionIsOptSelectAll,
|
|
856
935
|
label: getOptionLabel,
|
|
857
|
-
value: getOptionValue
|
|
936
|
+
value: getOptionValue,
|
|
937
|
+
selectAll: {
|
|
938
|
+
isSelectAllPartiallySelected: function isSelectAllPartiallySelected(options) {
|
|
939
|
+
return defaultGetOptionIsSelectAllPartiallySelected(options.filter(isSelectableOption), getOptionIsSelected !== null && getOptionIsSelected !== void 0 ? getOptionIsSelected : defaultGetOptionIsSelected, getOptionIsPartiallySelected !== null && getOptionIsPartiallySelected !== void 0 ? getOptionIsPartiallySelected : defaultGetOptionIsPartiallySelected);
|
|
940
|
+
},
|
|
941
|
+
isSelectAllSelected: function isSelectAllSelected(options) {
|
|
942
|
+
return defaultGetOptionIsSelectAllSelected(options.filter(isSelectableOption), getOptionIsSelected !== null && getOptionIsSelected !== void 0 ? getOptionIsSelected : defaultGetOptionIsSelected);
|
|
943
|
+
}
|
|
944
|
+
}
|
|
858
945
|
},
|
|
859
946
|
refs: {
|
|
860
947
|
floating: floating,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSuperSelect.js","names":["autoUpdate","flip","offset","size","useClick","useDismiss","useFloating","useInteractions","useListNavigation","useId","debounce","uniq","React","ulid","useI18nContext","useZIndexContext","spacing","defaultComponents","draggableOptionIdSymbol","extendedSelectMenuWidth","collectGroupsInOrderOfOccurrence","createOptgroup","getBatchOptionFormatter","getIsAllOptionsUngrouped","getOptionIsOptgroup","getOptionsSortingAlgorithm","isMultiple","removeEmptyOptGroups","reorder","sortOptgroups","listContainerVerticalPadding","sm","noop","defaultGetOptionValue","option","value","defaultGetOptionIsBatch","Array","isArray","defaultGetOptionIsDisabled","_option$disabled","disabled","defaultGetOptionGroup","_option$group","group","defaultSetOptionGroup","_objectSpread","defaultGetOptionLabel","_option$label","label","stringContains","str1","str2","toLowerCase","includes","useTokenNavigation","context","_ref","arguments","length","undefined","_ref$enabled","enabled","_ref$value","_ref$activeIndex","activeIndex","_ref$onNavigate","onNavigate","_ref$onChange","onChange","reference","onKeyDown","e","key","Math","max","repeat","nextVal","filter","_","i","useKeyboardSelection","_ref2","_ref2$enabled","_ref2$onSelect","onSelect","floating","useSuperSelect","_ref3","_ref3$block","block","customComponents","components","defaultValue","_ref3$disabled","_ref3$draggable","draggable","_ref3$emptyMessage","emptyMessage","error","footer","_ref3$getOptionGroup","getOptionGroup","_ref3$getOptionIsBatc","getOptionIsBatch","_ref3$getOptionIsDisa","getOptionIsDisabled","_ref3$getOptionLabel","getOptionLabel","getOptionPartiallySelected","_ref3$getOptionValue","getOptionValue","_ref3$onScrollBottom","onScrollBottom","_ref3$onOpenChange","onOpenChange","header","_ref3$loading","loading","_ref3$multiple","multiple","onManualSort","_ref3$options","options","sourceOptions","placeholder","_ref3$preset","preset","presetProps","_ref3$search","search","_ref3$selectionStyle","selectionStyle","_ref3$setOptionGroup","setOptionGroup","_ref3$sort","sort","_ref3$tabIndex","tabIndex","value_","_ref3$overlayMatchesT","overlayMatchesTriggerWidth","ariaLabel","useEffect","isUsingDefaultGetter","isUsingDefaultSetter","console","warn","i18n","initialValue","_React$useState","useState","_React$useState2","_slicedToArray","val","setVal","setValue","v","navigationList","useRef","virtuoso","searchRef","overlayId","listId","_React$useState3","_React$useState4","open","setOpen","_React$useState5","_React$useState6","pointer","setPointer","_React$useState7","_React$useState8","width","setWidth","_React$useState9","_React$useState0","maxHeight","setMaxHeight","_React$useState1","_React$useState10","listHeight","setListHeight","_React$useState11","_React$useState12","searchHeight","setSearchHeight","_React$useState13","_React$useState14","footerHeight","setFooterHeight","listContainerHeight","min","_React$useState15","_React$useState16","searchValue","setSearchValue_","setSearchValue","_React$useState17","_React$useState18","activeMenuIndex","setActiveMenuIndex","_React$useState19","_React$useState20","activeTokenIndex","setActiveTokenIndex","sortOptions","useMemo","formatBatchOption","enforceOptionsSortingOrder","useCallback","groupAndSort","opts","_collectGroupsInOrder","groups","groupedOptions","Object","entries","_ref4","_ref5","_ref6","groupA","_ref7","groupB","flatMap","_ref8","_ref9","groupName","groupOptions","deriveOptionsSortingOrder","_collectGroupsInOrder2","groupAndSortAlgorithm","queried","opt","_toConsumableArray","map","_React$useState21","_React$useState22","draggableOptions","setDraggableOptions","_defineProperty","queriedDraggableOptions","groupIndices","reduce","acc","push","selectedIndex","findIndex","isSelectableOption","selectedOption","find","selectedLabel","o","getFirstSelectableOptionIndex","optionValue","concat","onKeyboardSelect","getOptionIsSelected","optionValues","every","defaultGetOptionIsPartiallySelected","some","isEmpty","boundWidthRef","current","whileElementsMounted","_len","args","_key","apply","animationFrame","strategy","middleware","_ref0","rects","mainAxis","crossAxis","_ref1","availableHeight","elements","getBoundingClientRect","padding","_useZIndexContext","zIndex","_useInteractions","keyboardHandlers","disabledIndices","listRef","loop","virtual","$block","$disabled","$error","$hasClearIcon","$loading","$multiple","$open","$placeholder","role","id","onPointerMove","style","position","left","x","top","y","getReferenceProps","getFloatingProps","getItemProps","getLabelProps","$hoverable","getMultiInputProps","ref","_floating$refs$floati","preventDefault","stopPropagation","refs","focus","currentTarget","opacity","getMultiValueProps","index","onClick","getSearchContainerProps","el","_el$clientHeight","clientHeight","getSearchProps","t","getHeaderProps","getFooterProps","_el$clientHeight2","getEmptyMessageProps","getClearProps","getMenuProps","scrollable","height","getVirtuosoProps","atBottomStateChange","atBottom","data","Item","initialTopMostItemIndex","flex","totalListHeightChanged","onDragEnd","result","destination","source","startIndex","destinationIndex","_reorder","nextOptions","prevGroup","nextGroup","adjustedOptions","setTimeout","fill","useLayoutEffect","_virtuoso$current","scrollIntoView","config","state","props","clear","item","menu","multiInput","overlay","searchContainer","tokenClear","trigger","isBatch","isPartiallySelected","isSelected","isDisabled","isOptgroup","SuperSelectContext","createContext","useSuperSelectContext","ctx","useContext","Error"],"sources":["../../src/SuperSelect/useSuperSelect.ts"],"sourcesContent":["import type { ElementProps, FloatingContext } from '@floating-ui/react'\nimport {\n autoUpdate,\n flip,\n offset,\n size,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useListNavigation,\n} from '@floating-ui/react'\nimport { useId } from '@react-aria/utils'\nimport debounce from 'lodash.debounce'\nimport uniq from 'lodash.uniq'\nimport React from 'react'\nimport type { VirtuosoHandle, VirtuosoProps } from 'react-virtuoso'\nimport { ulid } from 'ulid'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useZIndexContext } from '../_hooks/ZIndex'\nimport { spacing } from '../_styles/spacing'\nimport * as defaultComponents from './SuperSelect.components'\nimport { draggableOptionIdSymbol } from './SuperSelect.constants'\nimport { extendedSelectMenuWidth } from './SuperSelect.styles'\nimport type {\n KeyboardSelectionProps,\n SuperSelectApi,\n SuperSelectConfig,\n SuperSelectOption,\n SuperSelectResult,\n SuperSelectValue,\n SuperSelectValuePrimitive,\n TokenNavigationProps,\n} from './SuperSelect.types'\nimport {\n collectGroupsInOrderOfOccurrence,\n createOptgroup,\n getBatchOptionFormatter,\n getIsAllOptionsUngrouped,\n getOptionIsOptgroup,\n getOptionsSortingAlgorithm,\n isMultiple,\n removeEmptyOptGroups,\n reorder,\n sortOptgroups,\n} from './SuperSelect.utils'\n\nconst listContainerVerticalPadding = spacing.sm * 2\n\nfunction noop() {}\n\nfunction defaultGetOptionValue(option: SuperSelectOption) {\n return option?.value\n}\n\nfunction defaultGetOptionIsBatch(option: SuperSelectOption): boolean {\n return Array.isArray(option?.value)\n}\n\nfunction defaultGetOptionIsDisabled(option: SuperSelectOption): boolean {\n return option?.disabled ?? false\n}\n\nfunction defaultGetOptionGroup(option: SuperSelectOption): string {\n return option?.group ?? ''\n}\n\nfunction defaultSetOptionGroup(\n option: SuperSelectOption,\n group: string\n): SuperSelectOption {\n return {\n ...option,\n group,\n }\n}\n\nfunction defaultGetOptionLabel(option: SuperSelectOption): string {\n return option?.label ?? ''\n}\n\nfunction stringContains(str1: string, str2: string) {\n return str1.toLowerCase().includes(str2.toLowerCase())\n}\n\nfunction useTokenNavigation(\n context: FloatingContext<HTMLElement>,\n {\n enabled = true,\n value = [],\n activeIndex = null,\n onNavigate = noop,\n onChange = noop,\n }: TokenNavigationProps = {}\n): ElementProps {\n return {\n reference: {\n onKeyDown(e) {\n if (!enabled || !Array.isArray(value)) {\n return\n }\n\n if (e.key === 'ArrowLeft') {\n if (activeIndex !== null) {\n onNavigate(Math.max(0, activeIndex - 1))\n } else if (value.length > 0) {\n onNavigate(value.length - 1)\n }\n } else if (e.key === 'ArrowRight') {\n if (activeIndex !== null) {\n if (activeIndex === value.length - 1) {\n onNavigate(null)\n } else {\n onNavigate(activeIndex + 1)\n }\n }\n } else if (e.key === 'Backspace') {\n if (!e.repeat) {\n if (activeIndex !== null) {\n const nextVal = value.filter((_, i) => i !== activeIndex)\n\n onChange(nextVal)\n\n if (activeIndex >= nextVal.length) {\n onNavigate(null)\n }\n } else if (value.length > 0) {\n onChange(value.filter((_, i) => i !== value.length - 1))\n }\n }\n }\n },\n },\n }\n}\n\nfunction useKeyboardSelection(\n context: FloatingContext<HTMLElement>,\n { enabled = true, onSelect = () => {} }: KeyboardSelectionProps = {}\n): ElementProps {\n function onKeyDown(e: React.KeyboardEvent) {\n if (!enabled) {\n return\n }\n\n if (e.key === 'Enter') {\n onSelect()\n }\n }\n\n return {\n reference: {\n onKeyDown,\n },\n floating: {\n onKeyDown,\n },\n }\n}\n\nexport function useSuperSelect({\n block = false,\n components: customComponents,\n defaultValue,\n disabled = false,\n draggable = false,\n emptyMessage = 'No results',\n error,\n footer,\n getOptionGroup = defaultGetOptionGroup,\n getOptionIsBatch = defaultGetOptionIsBatch,\n getOptionIsDisabled = defaultGetOptionIsDisabled,\n getOptionLabel = defaultGetOptionLabel,\n getOptionPartiallySelected,\n getOptionValue = defaultGetOptionValue,\n onScrollBottom = noop,\n onOpenChange = noop,\n header,\n loading = false,\n multiple = false,\n onChange,\n onManualSort,\n options: sourceOptions = [],\n placeholder,\n preset = '',\n presetProps,\n search = true,\n selectionStyle = 'highlight',\n setOptionGroup = defaultSetOptionGroup,\n sort = true,\n tabIndex = 0,\n value: value_,\n overlayMatchesTriggerWidth = true,\n 'aria-label': ariaLabel,\n}: SuperSelectConfig): SuperSelectApi {\n React.useEffect(() => {\n if (!draggable) {\n return\n }\n\n const isUsingDefaultGetter = getOptionGroup === defaultGetOptionGroup\n const isUsingDefaultSetter = setOptionGroup === defaultSetOptionGroup\n\n if (\n (isUsingDefaultGetter && !isUsingDefaultSetter) ||\n (!isUsingDefaultGetter && isUsingDefaultSetter)\n ) {\n console.warn(\n `SuperSelect: Using potentially conflicting \"getOptionGroup\" and \"setOptionGroup\" implementations.\n Group reassignment after drag-and-drop operation might be broken.`\n )\n }\n }, [draggable, getOptionGroup, setOptionGroup])\n\n const i18n = useI18nContext()\n\n const initialValue = defaultValue ?? (multiple ? [] : null)\n const [val, setVal] = React.useState<SuperSelectValue>(initialValue)\n const value = value_ !== undefined ? value_ : val\n function setValue(v: SuperSelectValue) {\n if (!value_) {\n setVal(v)\n }\n\n if (onChange) {\n onChange(v)\n }\n }\n\n const navigationList = React.useRef<Array<HTMLElement | null>>([])\n const virtuoso = React.useRef<VirtuosoHandle>(null)\n const searchRef = React.useRef<HTMLInputElement>(null)\n\n const overlayId = useId() // TODO use React 18 useId\n const listId = useId() // TODO use React 18 useId\n\n const [open, setOpen] = React.useState(false)\n const [pointer, setPointer] = React.useState(false)\n const [width, setWidth] = React.useState(248)\n const [maxHeight, setMaxHeight] = React.useState(248)\n const [listHeight, setListHeight] = React.useState(0)\n const [searchHeight, setSearchHeight] = React.useState(0)\n const [footerHeight, setFooterHeight] = React.useState(0)\n const listContainerHeight = Math.min(\n maxHeight - searchHeight - footerHeight + listContainerVerticalPadding,\n listHeight + listContainerVerticalPadding\n )\n const [searchValue, setSearchValue_] = React.useState('')\n const setSearchValue = debounce(setSearchValue_, 250) // TODO use React 18 useDeferredValue\n\n const [activeMenuIndex, setActiveMenuIndex] = React.useState<number | null>(\n null\n )\n const [activeTokenIndex, setActiveTokenIndex] = React.useState<number | null>(\n null\n )\n\n const components = {\n ...defaultComponents,\n ...(customComponents || {}),\n }\n\n // TODO #memogetters: consider having getOption... getter functions memoized by consumers\n // Until then, exclude these callbacks from effect and memo dependencies\n const sortOptions = React.useMemo(\n () => getOptionsSortingAlgorithm({ getOptionIsBatch, getOptionLabel }),\n // skip `getOptionIsBatch` and `getOptionLabel`\n []\n )\n\n const formatBatchOption = React.useMemo(\n () =>\n getBatchOptionFormatter({\n value,\n multiple,\n getOptionIsBatch,\n getOptionValue,\n }),\n // skip `getOptionIsBatch` and `getOptionValue`, refer to TODO #memogetters\n [value, multiple]\n )\n\n // collect groups, sort them and populate them with options, and sort the options inside the groups\n const enforceOptionsSortingOrder = React.useCallback(\n function groupAndSort(opts: SuperSelectOption[]) {\n const { groups, groupedOptions } = collectGroupsInOrderOfOccurrence(\n opts,\n getOptionGroup\n )\n\n if (getIsAllOptionsUngrouped(groups)) {\n return opts.sort(sortOptions)\n }\n\n return Object.entries(groupedOptions)\n .sort(([groupA], [groupB]) => sortOptgroups(groupA, groupB))\n .flatMap(([groupName, groupOptions]) =>\n createOptgroup(groupName, groupOptions.sort(sortOptions))\n )\n },\n // skip `getOptionGroup`, refer to TODO #memogetters\n [sortOptions]\n )\n\n // collect groups and populate them with options\n const deriveOptionsSortingOrder = React.useCallback(\n (opts: SuperSelectOption[]) => {\n const { groups, groupedOptions } = collectGroupsInOrderOfOccurrence(\n opts,\n getOptionGroup\n )\n\n if (getIsAllOptionsUngrouped(groups)) {\n return opts\n }\n\n // display optgroups in the order of occurrence, as they are considered pre-sorted\n return groups.flatMap((group) => {\n const groupOptions = groupedOptions[group]\n\n return createOptgroup(group, groupOptions)\n })\n },\n // skip `getOptionGroup`, refer to TODO #memogetters\n []\n )\n\n const groupAndSortAlgorithm = React.useMemo(\n () => (sort ? enforceOptionsSortingOrder : deriveOptionsSortingOrder),\n [sort, enforceOptionsSortingOrder, deriveOptionsSortingOrder]\n )\n\n const options = React.useMemo(\n () => {\n const queried = searchValue\n ? sourceOptions.filter((opt) =>\n stringContains(getOptionLabel(opt), searchValue)\n )\n : [...sourceOptions] // make a copy of source options to prevent the mutation when sorting\n\n return groupAndSortAlgorithm(queried).map(formatBatchOption)\n },\n // skip `getOptionLabel`, refer to TODO #memogetters\n [groupAndSortAlgorithm, formatBatchOption, searchValue, sourceOptions]\n )\n\n const [draggableOptions, setDraggableOptions] = React.useState<\n SuperSelectOption[]\n >([])\n\n React.useEffect(\n () => {\n if (!draggable) {\n return\n }\n // make a copy of source options to prevent the mutation when sorting\n const opts = groupAndSortAlgorithm(\n sourceOptions.map((opt) => ({\n ...opt,\n [draggableOptionIdSymbol]: ulid(),\n }))\n )\n setDraggableOptions(opts)\n },\n // in draggable mode, sourceOptions must be memoized, othewise reorder will not work\n [draggable, sourceOptions, groupAndSortAlgorithm]\n )\n\n const queriedDraggableOptions = React.useMemo(\n () => {\n if (!draggable) {\n return []\n }\n\n const queried = searchValue\n ? removeEmptyOptGroups(\n draggableOptions.filter((opt) => {\n if (!getOptionIsOptgroup(opt)) {\n return stringContains(getOptionLabel(opt), searchValue)\n }\n return true\n })\n )\n : draggableOptions\n\n return queried.map(formatBatchOption)\n },\n // skip `getOptionLabel`, refer to TODO #memogetters\n [draggable, draggableOptions, searchValue, formatBatchOption]\n )\n\n const groupIndices = React.useMemo(() => {\n return options.reduce((acc, opt, i) => {\n if (getOptionIsOptgroup(opt)) {\n acc.push(i)\n }\n return acc\n }, [] as number[])\n }, [options])\n\n const selectedIndex = React.useMemo(() => {\n return options.findIndex(\n (option) => isSelectableOption(option) && getOptionValue(option) === value\n )\n }, [options, value])\n\n const selectedOption = React.useMemo(() => {\n const val = Array.isArray(value) ? value[0] : value\n return options.find((option) => getOptionValue(option) === val)\n }, [options, value])\n\n const selectedLabel = React.useMemo(() => {\n return selectedOption ? getOptionLabel(selectedOption) : ''\n }, [selectedOption])\n\n function isSelectableOption(o: SuperSelectOption) {\n return !getOptionIsOptgroup(o) && !getOptionIsDisabled(o)\n }\n\n function getFirstSelectableOptionIndex() {\n return options.findIndex(isSelectableOption)\n }\n\n function onSelect(option: SuperSelectOption) {\n if (getOptionIsDisabled(option)) {\n return\n }\n\n const optionValue = getOptionValue(option)\n\n if (isMultiple(multiple, value)) {\n if (Array.isArray(optionValue)) {\n setValue(uniq([...value, ...optionValue]))\n } else {\n setValue(\n value.includes(optionValue)\n ? value.filter(\n (val: SuperSelectValuePrimitive) => val !== optionValue\n )\n : [...value, optionValue]\n )\n }\n } else {\n setValue(optionValue)\n }\n }\n\n function onKeyboardSelect() {\n if (activeMenuIndex !== null) {\n const option = options[activeMenuIndex]\n\n if (option) {\n onSelect(option)\n }\n }\n }\n\n function getOptionIsSelected(option: SuperSelectOption) {\n if (Array.isArray(value)) {\n const optionValues = getOptionValue(option)\n\n if (Array.isArray(optionValues)) {\n return optionValues.every((v) => value.includes(v))\n }\n\n return value.includes(optionValues)\n }\n\n return value === getOptionValue(option)\n }\n\n function defaultGetOptionIsPartiallySelected(option: SuperSelectOption) {\n if (selectionStyle !== 'checkbox') {\n return false\n }\n\n if (Array.isArray(value)) {\n const optionValues = getOptionValue(option)\n\n if (Array.isArray(optionValues)) {\n return (\n optionValues.some((v) => value.includes(v)) &&\n !optionValues.every((v) => value.includes(v))\n )\n }\n }\n\n return false\n }\n\n function isEmpty() {\n return Array.isArray(value) ? value.length === 0 : value === null\n }\n\n const boundWidthRef = React.useRef(open)\n\n React.useEffect(() => {\n boundWidthRef.current = open\n }, [open])\n\n const floating = useFloating<HTMLElement>({\n open,\n onOpenChange: (open) => {\n setOpen(open)\n onOpenChange(open)\n },\n whileElementsMounted: (...args) =>\n /* { animationFrame: true } is used to fix ResizeObserver issue with @floating-ui/react */\n autoUpdate(...args, { animationFrame: true }),\n strategy: 'fixed',\n middleware: [\n offset(({ rects }) => {\n return {\n mainAxis: 2,\n crossAxis: overlayMatchesTriggerWidth\n ? 0\n : (rects.floating.width - rects.reference.width) / 2,\n }\n }),\n flip(),\n size({\n apply({ availableHeight, elements }) {\n if (boundWidthRef.current) {\n boundWidthRef.current = false\n setWidth(\n overlayMatchesTriggerWidth\n ? elements.reference.getBoundingClientRect().width\n : extendedSelectMenuWidth\n )\n }\n setMaxHeight(availableHeight)\n },\n padding: 10,\n }),\n ],\n })\n\n const { value: zIndex } = useZIndexContext()\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions(\n [\n useClick(floating.context, {\n enabled: !disabled,\n keyboardHandlers: false,\n }),\n useDismiss(floating.context, {\n enabled: !disabled,\n }),\n useListNavigation(floating.context, {\n activeIndex: activeMenuIndex,\n disabledIndices: groupIndices,\n enabled: !disabled,\n listRef: navigationList,\n loop: true,\n onNavigate: (i) => setActiveMenuIndex(() => i),\n selectedIndex,\n virtual: true,\n }),\n useTokenNavigation(floating.context, {\n activeIndex: activeTokenIndex,\n enabled: !disabled && multiple && searchValue === '',\n onChange: setValue,\n onNavigate: (i) => setActiveTokenIndex(() => i),\n value,\n }),\n useKeyboardSelection(floating.context, {\n enabled: !disabled,\n onSelect: onKeyboardSelect,\n }),\n {\n reference: {\n $block: block,\n $disabled: disabled,\n $error: error,\n $hasClearIcon: !disabled && !loading,\n $loading: loading,\n $multiple: multiple,\n $open: open,\n $placeholder: !selectedLabel,\n 'aria-controls': search ? overlayId : listId,\n 'aria-expanded': open,\n 'aria-haspopup': search ? 'dialog' : 'listbox',\n ...(ariaLabel && { 'aria-label': ariaLabel }),\n onKeyDown() {\n setPointer(false)\n },\n role: 'combobox',\n search,\n tabIndex: disabled ? -1 : tabIndex,\n } as any, // TODO fix type\n floating: {\n role: search ? 'dialog' : 'none',\n id: overlayId,\n onKeyDown() {\n setPointer(false)\n },\n onPointerMove() {\n setPointer(true)\n },\n style: {\n position: floating.strategy,\n left: floating.x || 0,\n top: floating.y || 0,\n width,\n maxHeight,\n zIndex,\n },\n },\n },\n ]\n )\n\n function getLabelProps() {\n return {\n $hoverable: false,\n }\n }\n\n function getMultiInputProps(): React.AriaAttributes &\n React.InputHTMLAttributes<HTMLInputElement> & {\n ref: React.Ref<HTMLInputElement>\n } {\n return {\n ref: searchRef,\n placeholder: isEmpty() ? placeholder : '',\n disabled,\n 'aria-controls': listId,\n onKeyDown(e) {\n if (e.key === 'Tab') {\n if (open) {\n e.preventDefault()\n e.stopPropagation()\n floating.refs.floating.current?.focus()\n }\n }\n },\n onChange(e) {\n setSearchValue(e.currentTarget.value)\n setActiveTokenIndex(null)\n },\n style: {\n opacity: activeTokenIndex === null ? 1 : 0,\n },\n }\n }\n\n function getMultiValueProps(index: number) {\n return {\n onClick(e: React.MouseEvent) {\n // prevent the menu from closing\n e.stopPropagation()\n\n if (isMultiple(multiple, value)) {\n setValue(value.filter((_, i) => i !== index))\n }\n },\n }\n }\n\n function getSearchContainerProps() {\n return {\n ref: (el: HTMLElement | null) => {\n setSearchHeight(el?.clientHeight ?? 0)\n },\n }\n }\n\n function getSearchProps() {\n return {\n 'aria-controls': listId,\n onChange(value: string) {\n setSearchValue(value)\n setActiveTokenIndex(null)\n },\n placeholder: i18n.t('core.select.search'),\n }\n }\n\n function getHeaderProps() {\n return {\n ref: (el: HTMLElement | null) => {},\n }\n }\n\n function getFooterProps() {\n return {\n ref: (el: HTMLElement | null) => {\n setFooterHeight(el?.clientHeight ?? 0)\n },\n onKeyDown: (e: React.KeyboardEvent) => {\n if (e.key !== 'Escape') {\n e.stopPropagation()\n }\n },\n }\n }\n\n function getEmptyMessageProps() {\n return {\n emptyMessage,\n }\n }\n\n function getClearProps() {\n return {\n 'aria-hidden': true,\n 'aria-label': i18n.t('core.select.clear'),\n onClick(e: React.MouseEvent) {\n // prevent the menu from closing\n e.stopPropagation()\n\n setActiveTokenIndex(null)\n setValue(multiple ? [] : null)\n setOpen(true)\n },\n }\n }\n\n function getMenuProps() {\n return {\n scrollable: false,\n style: {\n height: listContainerHeight,\n },\n }\n }\n\n function getVirtuosoProps(): VirtuosoProps<{}, {}> {\n const atBottomStateChange = (atBottom: boolean) => {\n if (atBottom) {\n onScrollBottom()\n }\n }\n\n return {\n role: 'listbox',\n id: search ? overlayId : listId,\n data: draggable ? queriedDraggableOptions : options,\n components: {\n Item: components?.Item as any, // TODO fix type\n },\n initialTopMostItemIndex: selectedIndex >= 0 ? selectedIndex : 0,\n style: {\n flex: '1 1 auto',\n },\n tabIndex: -1,\n totalListHeightChanged: setListHeight,\n atBottomStateChange,\n }\n }\n\n const onDragEnd = React.useCallback((result: SuperSelectResult) => {\n if (!result.destination) {\n return\n }\n if (result.source.index === result.destination.index) {\n return\n }\n\n const startIndex = result.source.index\n const destinationIndex = result.destination.index\n\n setDraggableOptions((options) => {\n const { nextOptions, prevGroup, nextGroup } = reorder(\n options,\n startIndex,\n destinationIndex\n )\n\n const adjustedOptions =\n prevGroup !== nextGroup\n ? nextOptions.map((option, index) => {\n if (index === destinationIndex) {\n return setOptionGroup(option, nextGroup)\n }\n return option\n })\n : nextOptions\n\n if (typeof onManualSort === 'function') {\n setTimeout(() => {\n onManualSort(\n adjustedOptions.filter((option) => !getOptionIsOptgroup(option))\n )\n }, 0)\n }\n\n return adjustedOptions\n })\n }, [])\n\n // run effect when the `open` state changes\n //\n // if it was closed and is now open, reset the highlighted index to be\n // the first selectable option\n //\n // if it was open and is now closed, reset the search value and focused token index\n React.useEffect(() => {\n if (open) {\n setActiveMenuIndex(() =>\n selectedIndex >= 0 ? selectedIndex : getFirstSelectableOptionIndex()\n )\n } else {\n setSearchValue(() => '')\n setActiveTokenIndex(() => null)\n }\n }, [open])\n\n // run the effect when user enters a serach value\n //\n // if the select is currently open then reset highlighted item to be the first\n // selectable option\n React.useEffect(() => {\n if (open) {\n setActiveMenuIndex(() => getFirstSelectableOptionIndex())\n }\n }, [searchValue])\n\n // when we change the value then close the overlay, but only if we have\n // actually selected a value\n //\n // multiple mode forces the overlay to stay open\n React.useEffect(() => {\n if (!multiple && value !== null) {\n setOpen(() => false)\n }\n }, [value])\n\n // recreate the array to hold dom refs when our options change\n React.useEffect(() => {\n navigationList.current = [...Array(options.length).fill(null)]\n }, [options])\n\n // scroll virtuoso list activeMenuIndex into view when the index changes\n React.useLayoutEffect(() => {\n if (activeMenuIndex !== null) {\n if (!pointer) {\n virtuoso.current?.scrollIntoView({ index: activeMenuIndex })\n }\n }\n }, [activeMenuIndex, open])\n\n return {\n config: {\n block,\n disabled,\n draggable,\n emptyMessage,\n error,\n footer,\n header,\n placeholder,\n preset,\n presetProps,\n selectionStyle,\n tabIndex,\n loading,\n multiple,\n },\n components,\n state: {\n activeMenuIndex,\n activeTokenIndex,\n isEmpty,\n listContainerHeight,\n listId,\n maxHeight,\n onDragEnd,\n onSelect,\n open,\n options: draggable ? queriedDraggableOptions : options,\n overlayId,\n searchValue,\n selectedIndex,\n selectedLabel,\n selectedOption,\n setOpen,\n setPointer,\n setSearchValue: setSearchValue,\n sourceOptions,\n value,\n width,\n },\n props: {\n clear: getClearProps,\n emptyMessage: getEmptyMessageProps,\n footer: getFooterProps,\n header: getHeaderProps,\n item: getItemProps,\n label: getLabelProps,\n menu: getMenuProps,\n multiInput: getMultiInputProps,\n overlay: getFloatingProps,\n search: getSearchProps,\n searchContainer: getSearchContainerProps,\n tokenClear: getMultiValueProps,\n trigger: getReferenceProps,\n virtuoso: getVirtuosoProps,\n },\n option: {\n group: getOptionGroup,\n isBatch: getOptionIsBatch,\n isPartiallySelected:\n getOptionPartiallySelected ?? defaultGetOptionIsPartiallySelected,\n isSelected: getOptionIsSelected,\n isDisabled: getOptionIsDisabled,\n isOptgroup: getOptionIsOptgroup,\n label: getOptionLabel,\n value: getOptionValue,\n },\n refs: {\n floating,\n navigationList,\n virtuoso,\n },\n }\n}\n\nexport const SuperSelectContext = React.createContext<SuperSelectApi | null>(\n null\n)\n\nexport function useSuperSelectContext(): SuperSelectApi {\n const ctx = React.useContext(SuperSelectContext)\n\n if (!ctx) {\n throw new Error('Invalid SuperSelectContext')\n }\n\n return ctx as SuperSelectApi\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSuperSelect.js","names":["autoUpdate","flip","offset","size","useClick","useDismiss","useFloating","useInteractions","useListNavigation","useId","debounce","uniq","React","ulid","useI18nContext","useZIndexContext","spacing","defaultComponents","draggableOptionIdSymbol","isOptSelectAllSymbol","extendedSelectMenuWidth","collectGroupsInOrderOfOccurrence","createOptgroup","getBatchOptionFormatter","getIsAllOptionsUngrouped","getOptionIsOptgroup","getOptionIsOptSelectAll","getOptionsSortingAlgorithm","isMultiple","removeEmptyOptGroups","reorder","sortOptgroups","listContainerVerticalPadding","sm","noop","defaultGetOptionValue","option","value","defaultGetOptionIsBatch","Array","isArray","defaultGetOptionIsDisabled","_option$disabled","disabled","defaultGetOptionGroup","_option$group","group","defaultSetOptionGroup","_objectSpread","defaultGetOptionLabel","_option$label","label","stringContains","str1","str2","toLowerCase","includes","useTokenNavigation","context","_ref","arguments","length","undefined","_ref$enabled","enabled","_ref$value","_ref$activeIndex","activeIndex","_ref$onNavigate","onNavigate","_ref$onChange","onChange","reference","onKeyDown","e","key","Math","max","repeat","nextVal","filter","_","i","useKeyboardSelection","_ref2","_ref2$enabled","_ref2$onSelect","onSelect","floating","useSuperSelect","_ref3","_ref3$block","block","customComponents","components","defaultValue","_ref3$disabled","_ref3$draggable","draggable","_ref3$emptyMessage","emptyMessage","_ref3$selectAllEnable","selectAllEnabled","error","footer","_ref3$getOptionGroup","getOptionGroup","_ref3$getOptionIsBatc","getOptionIsBatch","_ref3$getOptionIsDisa","getOptionIsDisabled","_ref3$getOptionLabel","getOptionLabel","getOptionIsPartiallySelected","getOptionIsSelected","_ref3$getOptionValue","getOptionValue","_ref3$onScrollBottom","onScrollBottom","_ref3$onOpenChange","onOpenChange","header","_ref3$loading","loading","_ref3$multiple","multiple","onManualSort","onSelectAll","_ref3$options","options","sourceOptions","placeholder","_ref3$preset","preset","presetProps","_ref3$search","search","_ref3$selectionStyle","selectionStyle","_ref3$setOptionGroup","setOptionGroup","_ref3$sort","sort","_ref3$tabIndex","tabIndex","value_","_ref3$overlayMatchesT","overlayMatchesTriggerWidth","ariaLabel","useEffect","isUsingDefaultGetter","isUsingDefaultSetter","console","warn","i18n","initialValue","_React$useState","useState","_React$useState2","_slicedToArray","val","setVal","setValue","v","navigationList","useRef","virtuoso","searchRef","overlayId","listId","_React$useState3","_React$useState4","open","setOpen","_React$useState5","_React$useState6","pointer","setPointer","_React$useState7","_React$useState8","width","setWidth","_React$useState9","_React$useState0","maxHeight","setMaxHeight","_React$useState1","_React$useState10","listHeight","setListHeight","_React$useState11","_React$useState12","searchHeight","setSearchHeight","_React$useState13","_React$useState14","footerHeight","setFooterHeight","listContainerHeight","min","_React$useState15","_React$useState16","searchValue","setSearchValue_","setSearchValue","_React$useState17","_React$useState18","activeMenuIndex","setActiveMenuIndex","_React$useState19","_React$useState20","activeTokenIndex","setActiveTokenIndex","sortOptions","useMemo","formatBatchOption","enforceOptionsSortingOrder","useCallback","groupAndSort","opts","_collectGroupsInOrder","groups","groupedOptions","Object","entries","_ref4","_ref5","_ref6","groupA","_ref7","groupB","flatMap","_ref8","_ref9","groupName","groupOptions","deriveOptionsSortingOrder","_collectGroupsInOrder2","groupAndSortAlgorithm","queried","opt","_toConsumableArray","map","selectAllOption","_defineProperty","t","id","allOptionsWithSelectAll","concat","_React$useState21","_React$useState22","draggableOptions","setDraggableOptions","queriedDraggableOptions","groupIndices","baseOptions","reduce","acc","push","selectedIndex","findIndex","isSelectableOption","selectedOption","find","selectedLabel","o","getFirstSelectableOptionIndex","optionValue","isSelectAll","selectableOptions","optionValues","onKeyboardSelect","defaultGetOptionIsSelected","every","defaultGetOptionIsPartiallySelected","some","defaultGetOptionIsSelectAllPartiallySelected","isSelected","isPartiallySelected","defaultGetOptionIsSelectAllSelected","isEmpty","boundWidthRef","current","whileElementsMounted","_len","args","_key","apply","animationFrame","strategy","middleware","_ref0","rects","mainAxis","crossAxis","_ref1","availableHeight","elements","getBoundingClientRect","padding","_useZIndexContext","zIndex","_useInteractions","keyboardHandlers","disabledIndices","listRef","loop","virtual","$block","$disabled","$error","$hasClearIcon","$loading","$multiple","$open","$placeholder","role","onPointerMove","style","position","left","x","top","y","getReferenceProps","getFloatingProps","getItemProps","getLabelProps","$hoverable","getMultiInputProps","ref","_floating$refs$floati","preventDefault","stopPropagation","refs","focus","currentTarget","opacity","getMultiValueProps","index","onClick","getSearchContainerProps","el","_el$clientHeight","clientHeight","getSearchProps","getHeaderProps","getFooterProps","_el$clientHeight2","getEmptyMessageProps","getClearProps","getMenuProps","scrollable","height","getVirtuosoProps","atBottomStateChange","atBottom","data","Item","initialTopMostItemIndex","flex","totalListHeightChanged","onDragEnd","result","destination","source","startIndex","destinationIndex","_reorder","nextOptions","prevGroup","nextGroup","adjustedOptions","setTimeout","totalLength","fill","useLayoutEffect","virtuosoIndex","_virtuoso$current","scrollIntoView","config","state","props","clear","item","menu","multiInput","overlay","searchContainer","tokenClear","trigger","isBatch","isDisabled","isOptgroup","isOptSelectAll","selectAll","isSelectAllPartiallySelected","isSelectAllSelected","SuperSelectContext","createContext","useSuperSelectContext","ctx","useContext","Error"],"sources":["../../src/SuperSelect/useSuperSelect.ts"],"sourcesContent":["import type { ElementProps, FloatingContext } from '@floating-ui/react'\nimport {\n autoUpdate,\n flip,\n offset,\n size,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useListNavigation,\n} from '@floating-ui/react'\nimport { useId } from '@react-aria/utils'\nimport debounce from 'lodash.debounce'\nimport uniq from 'lodash.uniq'\nimport React from 'react'\nimport type { VirtuosoHandle, VirtuosoProps } from 'react-virtuoso'\nimport { ulid } from 'ulid'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useZIndexContext } from '../_hooks/ZIndex'\nimport { spacing } from '../_styles/spacing'\nimport * as defaultComponents from './SuperSelect.components'\nimport {\n draggableOptionIdSymbol,\n isOptSelectAllSymbol,\n} from './SuperSelect.constants'\nimport { extendedSelectMenuWidth } from './SuperSelect.styles'\nimport type {\n KeyboardSelectionProps,\n SuperSelectApi,\n SuperSelectConfig,\n SuperSelectOption,\n SuperSelectResult,\n SuperSelectValue,\n SuperSelectValuePrimitive,\n TokenNavigationProps,\n} from './SuperSelect.types'\nimport {\n collectGroupsInOrderOfOccurrence,\n createOptgroup,\n getBatchOptionFormatter,\n getIsAllOptionsUngrouped,\n getOptionIsOptgroup,\n getOptionIsOptSelectAll,\n getOptionsSortingAlgorithm,\n isMultiple,\n removeEmptyOptGroups,\n reorder,\n sortOptgroups,\n} from './SuperSelect.utils'\n\nconst listContainerVerticalPadding = spacing.sm * 2\n\nfunction noop() {}\n\nfunction defaultGetOptionValue(option: SuperSelectOption) {\n return option?.value\n}\n\nfunction defaultGetOptionIsBatch(option: SuperSelectOption): boolean {\n return Array.isArray(option?.value)\n}\n\nfunction defaultGetOptionIsDisabled(option: SuperSelectOption): boolean {\n return option?.disabled ?? false\n}\n\nfunction defaultGetOptionGroup(option: SuperSelectOption): string {\n return option?.group ?? ''\n}\n\nfunction defaultSetOptionGroup(\n option: SuperSelectOption,\n group: string\n): SuperSelectOption {\n return {\n ...option,\n group,\n }\n}\n\nfunction defaultGetOptionLabel(option: SuperSelectOption): string {\n return option?.label ?? ''\n}\n\nfunction stringContains(str1: string, str2: string) {\n return str1.toLowerCase().includes(str2.toLowerCase())\n}\n\nfunction useTokenNavigation(\n context: FloatingContext<HTMLElement>,\n {\n enabled = true,\n value = [],\n activeIndex = null,\n onNavigate = noop,\n onChange = noop,\n }: TokenNavigationProps = {}\n): ElementProps {\n return {\n reference: {\n onKeyDown(e) {\n if (!enabled || !Array.isArray(value)) {\n return\n }\n\n if (e.key === 'ArrowLeft') {\n if (activeIndex !== null) {\n onNavigate(Math.max(0, activeIndex - 1))\n } else if (value.length > 0) {\n onNavigate(value.length - 1)\n }\n } else if (e.key === 'ArrowRight') {\n if (activeIndex !== null) {\n if (activeIndex === value.length - 1) {\n onNavigate(null)\n } else {\n onNavigate(activeIndex + 1)\n }\n }\n } else if (e.key === 'Backspace') {\n if (!e.repeat) {\n if (activeIndex !== null) {\n const nextVal = value.filter((_, i) => i !== activeIndex)\n\n onChange(nextVal)\n\n if (activeIndex >= nextVal.length) {\n onNavigate(null)\n }\n } else if (value.length > 0) {\n onChange(value.filter((_, i) => i !== value.length - 1))\n }\n }\n }\n },\n },\n }\n}\n\nfunction useKeyboardSelection(\n context: FloatingContext<HTMLElement>,\n { enabled = true, onSelect = () => {} }: KeyboardSelectionProps = {}\n): ElementProps {\n function onKeyDown(e: React.KeyboardEvent) {\n if (!enabled) {\n return\n }\n\n if (e.key === 'Enter') {\n onSelect()\n }\n }\n\n return {\n reference: {\n onKeyDown,\n },\n floating: {\n onKeyDown,\n },\n }\n}\n\nexport function useSuperSelect({\n block = false,\n components: customComponents,\n defaultValue,\n disabled = false,\n draggable = false,\n emptyMessage = 'No results',\n selectAllEnabled = false,\n error,\n footer,\n getOptionGroup = defaultGetOptionGroup,\n getOptionIsBatch = defaultGetOptionIsBatch,\n getOptionIsDisabled = defaultGetOptionIsDisabled,\n getOptionLabel = defaultGetOptionLabel,\n getOptionIsPartiallySelected,\n getOptionIsSelected,\n getOptionValue = defaultGetOptionValue,\n onScrollBottom = noop,\n onOpenChange = noop,\n header,\n loading = false,\n multiple = false,\n onChange,\n onManualSort,\n onSelectAll,\n options: sourceOptions = [],\n placeholder,\n preset = '',\n presetProps,\n search = true,\n selectionStyle = 'highlight',\n setOptionGroup = defaultSetOptionGroup,\n sort = true,\n tabIndex = 0,\n value: value_,\n overlayMatchesTriggerWidth = true,\n 'aria-label': ariaLabel,\n}: SuperSelectConfig): SuperSelectApi {\n React.useEffect(() => {\n if (!draggable) {\n return\n }\n\n const isUsingDefaultGetter = getOptionGroup === defaultGetOptionGroup\n const isUsingDefaultSetter = setOptionGroup === defaultSetOptionGroup\n\n if (\n (isUsingDefaultGetter && !isUsingDefaultSetter) ||\n (!isUsingDefaultGetter && isUsingDefaultSetter)\n ) {\n console.warn(\n `SuperSelect: Using potentially conflicting \"getOptionGroup\" and \"setOptionGroup\" implementations.\n Group reassignment after drag-and-drop operation might be broken.`\n )\n }\n }, [draggable, getOptionGroup, setOptionGroup])\n\n const i18n = useI18nContext()\n\n const initialValue = defaultValue ?? (multiple ? [] : null)\n const [val, setVal] = React.useState<SuperSelectValue>(initialValue)\n const value = value_ !== undefined ? value_ : val\n function setValue(v: SuperSelectValue) {\n if (!value_) {\n setVal(v)\n }\n\n if (onChange) {\n onChange(v)\n }\n }\n\n const navigationList = React.useRef<Array<HTMLElement | null>>([])\n const virtuoso = React.useRef<VirtuosoHandle>(null)\n const searchRef = React.useRef<HTMLInputElement>(null)\n\n const overlayId = useId() // TODO use React 18 useId\n const listId = useId() // TODO use React 18 useId\n\n const [open, setOpen] = React.useState(false)\n const [pointer, setPointer] = React.useState(false)\n const [width, setWidth] = React.useState(248)\n const [maxHeight, setMaxHeight] = React.useState(248)\n const [listHeight, setListHeight] = React.useState(0)\n const [searchHeight, setSearchHeight] = React.useState(0)\n const [footerHeight, setFooterHeight] = React.useState(0)\n const listContainerHeight = Math.min(\n maxHeight - searchHeight - footerHeight + listContainerVerticalPadding,\n listHeight + listContainerVerticalPadding\n )\n const [searchValue, setSearchValue_] = React.useState('')\n const setSearchValue = debounce(setSearchValue_, 250) // TODO use React 18 useDeferredValue\n\n const [activeMenuIndex, setActiveMenuIndex] = React.useState<number | null>(\n null\n )\n const [activeTokenIndex, setActiveTokenIndex] = React.useState<number | null>(\n null\n )\n\n const components = {\n ...defaultComponents,\n ...(customComponents || {}),\n }\n\n // TODO #memogetters: consider having getOption... getter functions memoized by consumers\n // Until then, exclude these callbacks from effect and memo dependencies\n const sortOptions = React.useMemo(\n () => getOptionsSortingAlgorithm({ getOptionIsBatch, getOptionLabel }),\n // skip `getOptionIsBatch` and `getOptionLabel`\n []\n )\n\n const formatBatchOption = React.useMemo(\n () =>\n getBatchOptionFormatter({\n value,\n multiple,\n getOptionIsBatch,\n getOptionValue,\n }),\n // skip `getOptionIsBatch` and `getOptionValue`, refer to TODO #memogetters\n [value, multiple]\n )\n\n // collect groups, sort them and populate them with options, and sort the options inside the groups\n const enforceOptionsSortingOrder = React.useCallback(\n function groupAndSort(opts: SuperSelectOption[]) {\n const { groups, groupedOptions } = collectGroupsInOrderOfOccurrence(\n opts,\n getOptionGroup\n )\n\n if (getIsAllOptionsUngrouped(groups)) {\n return opts.sort(sortOptions)\n }\n\n return Object.entries(groupedOptions)\n .sort(([groupA], [groupB]) => sortOptgroups(groupA, groupB))\n .flatMap(([groupName, groupOptions]) =>\n createOptgroup(groupName, groupOptions.sort(sortOptions))\n )\n },\n // skip `getOptionGroup`, refer to TODO #memogetters\n [sortOptions]\n )\n\n // collect groups and populate them with options\n const deriveOptionsSortingOrder = React.useCallback(\n (opts: SuperSelectOption[]) => {\n const { groups, groupedOptions } = collectGroupsInOrderOfOccurrence(\n opts,\n getOptionGroup\n )\n\n if (getIsAllOptionsUngrouped(groups)) {\n return opts\n }\n\n // display optgroups in the order of occurrence, as they are considered pre-sorted\n return groups.flatMap((group) => {\n const groupOptions = groupedOptions[group]\n\n return createOptgroup(group, groupOptions)\n })\n },\n // skip `getOptionGroup`, refer to TODO #memogetters\n []\n )\n\n const groupAndSortAlgorithm = React.useMemo(\n () => (sort ? enforceOptionsSortingOrder : deriveOptionsSortingOrder),\n [sort, enforceOptionsSortingOrder, deriveOptionsSortingOrder]\n )\n\n const options = React.useMemo(\n () => {\n const queried = searchValue\n ? sourceOptions.filter((opt) =>\n stringContains(getOptionLabel(opt), searchValue)\n )\n : [...sourceOptions] // make a copy of source options to prevent the mutation when sorting\n\n return groupAndSortAlgorithm(queried).map(formatBatchOption)\n },\n // skip `getOptionLabel`, refer to TODO #memogetters\n [groupAndSortAlgorithm, formatBatchOption, searchValue, sourceOptions]\n )\n\n const selectAllOption = {\n label: i18n.t('core.select.selectAll'),\n id: 'selectAll',\n [isOptSelectAllSymbol]: true,\n }\n\n const allOptionsWithSelectAll = React.useMemo(() => {\n if (!selectAllEnabled || !multiple) {\n return options\n }\n return [selectAllOption, ...options]\n }, [selectAllEnabled, multiple, selectAllOption, options])\n\n const [draggableOptions, setDraggableOptions] = React.useState<\n SuperSelectOption[]\n >([])\n\n React.useEffect(\n () => {\n if (!draggable) {\n return\n }\n // make a copy of source options to prevent the mutation when sorting\n const opts = groupAndSortAlgorithm(\n sourceOptions.map((opt) => ({\n ...opt,\n [draggableOptionIdSymbol]: ulid(),\n }))\n )\n setDraggableOptions(opts)\n },\n // in draggable mode, sourceOptions must be memoized, othewise reorder will not work\n [draggable, sourceOptions, groupAndSortAlgorithm]\n )\n\n const queriedDraggableOptions = React.useMemo(\n () => {\n if (!draggable) {\n return []\n }\n\n const queried = searchValue\n ? removeEmptyOptGroups(\n draggableOptions.filter((opt) => {\n if (!getOptionIsOptgroup(opt)) {\n return stringContains(getOptionLabel(opt), searchValue)\n }\n return true\n })\n )\n : draggableOptions\n\n return queried.map(formatBatchOption)\n },\n // skip `getOptionLabel`, refer to TODO #memogetters\n [draggable, draggableOptions, searchValue, formatBatchOption]\n )\n\n // Group indices calculation - needs allOptionsWithSelectAll because:\n // When SelectAll is enabled, it becomes the first item (index 0) and shifts all other indices by 1.\n // Group headers need their correct absolute positions in the combined list for navigation to work.\n const groupIndices = React.useMemo(() => {\n const baseOptions =\n selectAllEnabled && multiple ? allOptionsWithSelectAll : options\n return baseOptions.reduce((acc, opt, i) => {\n if (getOptionIsOptgroup(opt)) {\n acc.push(i)\n }\n return acc\n }, [] as number[])\n }, [selectAllEnabled, multiple, allOptionsWithSelectAll, options])\n\n // Selected index calculation - needs allOptionsWithSelectAll because:\n // The selectedIndex must reference the absolute position in the combined list for keyboard navigation.\n // When SelectAll is at index 0, the first regular option becomes index 1, affecting selection highlighting.\n const selectedIndex = React.useMemo(() => {\n const baseOptions =\n selectAllEnabled && multiple ? allOptionsWithSelectAll : options\n return baseOptions.findIndex(\n (option) => isSelectableOption(option) && getOptionValue(option) === value\n )\n }, [selectAllEnabled, multiple, allOptionsWithSelectAll, options, value])\n\n // Selected option lookup - needs allOptionsWithSelectAll because:\n // The selectedOption lookup must search the complete list including SelectAll to find matches.\n // This ensures proper option detection regardless of whether SelectAll or regular options are selected.\n const selectedOption = React.useMemo(() => {\n const val = Array.isArray(value) ? value[0] : value\n const baseOptions =\n selectAllEnabled && multiple ? allOptionsWithSelectAll : options\n return baseOptions.find((option) => getOptionValue(option) === val)\n }, [selectAllEnabled, multiple, allOptionsWithSelectAll, options, value])\n\n const selectedLabel = React.useMemo(() => {\n return selectedOption ? getOptionLabel(selectedOption) : ''\n }, [selectedOption])\n\n function isSelectableOption(o: SuperSelectOption) {\n return !getOptionIsOptgroup(o) && !getOptionIsDisabled(o)\n }\n\n function getFirstSelectableOptionIndex() {\n // When Select All is enabled in multiple mode, it's always at index 0 and is selectable\n if (selectAllEnabled && multiple) {\n return 0\n }\n\n const baseOptions = options\n return (\n baseOptions.findIndex(isSelectableOption) +\n (selectAllEnabled && multiple ? 1 : 0)\n )\n }\n\n function onSelect(option: SuperSelectOption) {\n if (getOptionIsDisabled(option)) {\n return\n }\n\n const optionValue = getOptionValue(option)\n const isSelectAll = getOptionIsOptSelectAll(option)\n\n if (isMultiple(multiple, value)) {\n if (isSelectAll) {\n const selectableOptions = options.filter((opt) =>\n isSelectableOption(opt)\n )\n\n if (onSelectAll) {\n onSelectAll(selectableOptions)\n }\n\n const optionValues = selectableOptions.flatMap(getOptionValue)\n setValue(uniq([...value, ...optionValues]))\n } else if (Array.isArray(optionValue)) {\n setValue(uniq([...value, ...optionValue]))\n } else {\n setValue(\n value.includes(optionValue)\n ? value.filter(\n (val: SuperSelectValuePrimitive) => val !== optionValue\n )\n : [...value, optionValue]\n )\n }\n } else {\n setValue(optionValue)\n }\n }\n\n function onKeyboardSelect() {\n if (activeMenuIndex !== null) {\n // Select All must be included in the list for keyboard navigation to work properly.\n // The activeMenuIndex corresponds to positions in the complete navigation list including SelectAll.\n const baseOptions =\n selectAllEnabled && multiple ? allOptionsWithSelectAll : options\n const option = baseOptions[activeMenuIndex]\n\n if (option) {\n onSelect(option)\n }\n }\n }\n\n function defaultGetOptionIsSelected(option: SuperSelectOption) {\n if (Array.isArray(value)) {\n const optionValues = getOptionValue(option)\n\n if (Array.isArray(optionValues)) {\n return optionValues.every((v) => value.includes(v))\n }\n\n return value.includes(optionValues)\n }\n\n return value === getOptionValue(option)\n }\n\n function defaultGetOptionIsPartiallySelected(option: SuperSelectOption) {\n if (selectionStyle !== 'checkbox') {\n return false\n }\n\n if (Array.isArray(value)) {\n const optionValues = getOptionValue(option)\n\n if (Array.isArray(optionValues)) {\n return (\n optionValues.some((v) => value.includes(v)) &&\n !optionValues.every((v) => value.includes(v))\n )\n }\n }\n\n return false\n }\n\n function defaultGetOptionIsSelectAllPartiallySelected(\n options: SuperSelectOption[],\n isSelected: (option: SuperSelectOption) => boolean,\n isPartiallySelected: (option: SuperSelectOption) => boolean\n ) {\n if (selectionStyle !== 'checkbox' && !Array.isArray(value)) {\n return false\n }\n\n return (\n options.some(\n (option) => isSelected(option) || isPartiallySelected(option)\n ) && !options.every((option) => isSelected(option))\n )\n }\n\n function defaultGetOptionIsSelectAllSelected(\n options: SuperSelectOption[],\n isSelected: (option: SuperSelectOption) => boolean\n ) {\n if (!multiple) {\n return false\n }\n\n return options.every((option) => isSelected(option))\n }\n\n function isEmpty() {\n return Array.isArray(value) ? value.length === 0 : value === null\n }\n\n const boundWidthRef = React.useRef(open)\n\n React.useEffect(() => {\n boundWidthRef.current = open\n }, [open])\n\n const floating = useFloating<HTMLElement>({\n open,\n onOpenChange: (open) => {\n setOpen(open)\n onOpenChange(open)\n },\n whileElementsMounted: (...args) =>\n /* { animationFrame: true } is used to fix ResizeObserver issue with @floating-ui/react */\n autoUpdate(...args, { animationFrame: true }),\n strategy: 'fixed',\n middleware: [\n offset(({ rects }) => {\n return {\n mainAxis: 2,\n crossAxis: overlayMatchesTriggerWidth\n ? 0\n : (rects.floating.width - rects.reference.width) / 2,\n }\n }),\n flip(),\n size({\n apply({ availableHeight, elements }) {\n if (boundWidthRef.current) {\n boundWidthRef.current = false\n setWidth(\n overlayMatchesTriggerWidth\n ? elements.reference.getBoundingClientRect().width\n : extendedSelectMenuWidth\n )\n }\n setMaxHeight(availableHeight)\n },\n padding: 10,\n }),\n ],\n })\n\n const { value: zIndex } = useZIndexContext()\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions(\n [\n useClick(floating.context, {\n enabled: !disabled,\n keyboardHandlers: false,\n }),\n useDismiss(floating.context, {\n enabled: !disabled,\n }),\n useListNavigation(floating.context, {\n activeIndex: activeMenuIndex,\n disabledIndices: groupIndices,\n enabled: !disabled,\n listRef: navigationList,\n loop: true,\n onNavigate: (i) => setActiveMenuIndex(() => i),\n selectedIndex,\n virtual: true,\n }),\n useTokenNavigation(floating.context, {\n activeIndex: activeTokenIndex,\n enabled: !disabled && multiple && searchValue === '',\n onChange: setValue,\n onNavigate: (i) => setActiveTokenIndex(() => i),\n value,\n }),\n useKeyboardSelection(floating.context, {\n enabled: !disabled,\n onSelect: onKeyboardSelect,\n }),\n {\n reference: {\n $block: block,\n $disabled: disabled,\n $error: error,\n $hasClearIcon: !disabled && !loading,\n $loading: loading,\n $multiple: multiple,\n $open: open,\n $placeholder: !selectedLabel,\n 'aria-controls': search ? overlayId : listId,\n 'aria-expanded': open,\n 'aria-haspopup': search ? 'dialog' : 'listbox',\n ...(ariaLabel && { 'aria-label': ariaLabel }),\n onKeyDown() {\n setPointer(false)\n },\n role: 'combobox',\n search,\n tabIndex: disabled ? -1 : tabIndex,\n } as any, // TODO fix type\n floating: {\n role: search ? 'dialog' : 'none',\n id: overlayId,\n onKeyDown() {\n setPointer(false)\n },\n onPointerMove() {\n setPointer(true)\n },\n style: {\n position: floating.strategy,\n left: floating.x || 0,\n top: floating.y || 0,\n width,\n maxHeight,\n zIndex,\n },\n },\n },\n ]\n )\n\n function getLabelProps() {\n return {\n $hoverable: false,\n }\n }\n\n function getMultiInputProps(): React.AriaAttributes &\n React.InputHTMLAttributes<HTMLInputElement> & {\n ref: React.Ref<HTMLInputElement>\n } {\n return {\n ref: searchRef,\n placeholder: isEmpty() ? placeholder : '',\n disabled,\n 'aria-controls': listId,\n onKeyDown(e) {\n if (e.key === 'Tab') {\n if (open) {\n e.preventDefault()\n e.stopPropagation()\n floating.refs.floating.current?.focus()\n }\n }\n },\n onChange(e) {\n setSearchValue(e.currentTarget.value)\n setActiveTokenIndex(null)\n },\n style: {\n opacity: activeTokenIndex === null ? 1 : 0,\n },\n }\n }\n\n function getMultiValueProps(index: number) {\n return {\n onClick(e: React.MouseEvent) {\n // prevent the menu from closing\n e.stopPropagation()\n\n if (isMultiple(multiple, value)) {\n setValue(value.filter((_, i) => i !== index))\n }\n },\n }\n }\n\n function getSearchContainerProps() {\n return {\n ref: (el: HTMLElement | null) => {\n setSearchHeight(el?.clientHeight ?? 0)\n },\n }\n }\n\n function getSearchProps() {\n return {\n 'aria-controls': listId,\n onChange(value: string) {\n setSearchValue(value)\n setActiveTokenIndex(null)\n },\n placeholder: i18n.t('core.select.search'),\n }\n }\n\n function getHeaderProps() {\n return {\n ref: (el: HTMLElement | null) => {},\n }\n }\n\n function getFooterProps() {\n return {\n ref: (el: HTMLElement | null) => {\n setFooterHeight(el?.clientHeight ?? 0)\n },\n onKeyDown: (e: React.KeyboardEvent) => {\n if (e.key !== 'Escape') {\n e.stopPropagation()\n }\n },\n }\n }\n\n function getEmptyMessageProps() {\n return {\n emptyMessage,\n }\n }\n\n function getClearProps() {\n return {\n 'aria-hidden': true,\n 'aria-label': i18n.t('core.select.clear'),\n onClick(e: React.MouseEvent) {\n // prevent the menu from closing\n e.stopPropagation()\n\n setActiveTokenIndex(null)\n setValue(multiple ? [] : null)\n setOpen(true)\n },\n }\n }\n\n function getMenuProps() {\n return {\n scrollable: false,\n style: {\n height: listContainerHeight,\n },\n }\n }\n\n function getVirtuosoProps(): VirtuosoProps<{}, {}> {\n const atBottomStateChange = (atBottom: boolean) => {\n if (atBottom) {\n onScrollBottom()\n }\n }\n\n return {\n role: 'listbox',\n id: search ? overlayId : listId,\n data: draggable ? queriedDraggableOptions : options,\n components: {\n Item: components?.Item as any, // TODO fix type\n },\n initialTopMostItemIndex: selectedIndex >= 0 ? selectedIndex : 0,\n style: {\n flex: '1 1 auto',\n },\n tabIndex: -1,\n totalListHeightChanged: setListHeight,\n atBottomStateChange,\n }\n }\n\n const onDragEnd = React.useCallback((result: SuperSelectResult) => {\n if (!result.destination) {\n return\n }\n if (result.source.index === result.destination.index) {\n return\n }\n\n const startIndex = result.source.index\n const destinationIndex = result.destination.index\n\n setDraggableOptions((options) => {\n const { nextOptions, prevGroup, nextGroup } = reorder(\n options,\n startIndex,\n destinationIndex\n )\n\n const adjustedOptions =\n prevGroup !== nextGroup\n ? nextOptions.map((option, index) => {\n if (index === destinationIndex) {\n return setOptionGroup(option, nextGroup)\n }\n return option\n })\n : nextOptions\n\n if (typeof onManualSort === 'function') {\n setTimeout(() => {\n onManualSort(\n adjustedOptions.filter((option) => !getOptionIsOptgroup(option))\n )\n }, 0)\n }\n\n return adjustedOptions\n })\n }, [])\n\n // run effect when the `open` state changes\n //\n // if it was closed and is now open, reset the highlighted index to be\n // the first selectable option\n //\n // if it was open and is now closed, reset the search value and focused token index\n React.useEffect(() => {\n if (open) {\n setActiveMenuIndex(() =>\n selectedIndex >= 0 ? selectedIndex : getFirstSelectableOptionIndex()\n )\n } else {\n setSearchValue(() => '')\n setActiveTokenIndex(() => null)\n }\n }, [open])\n\n // run the effect when user enters a serach value\n //\n // if the select is currently open then reset highlighted item to be the first\n // selectable option\n React.useEffect(() => {\n if (open) {\n setActiveMenuIndex(() => getFirstSelectableOptionIndex())\n }\n }, [searchValue])\n\n // when we change the value then close the overlay, but only if we have\n // actually selected a value\n //\n // multiple mode forces the overlay to stay open\n React.useEffect(() => {\n if (!multiple && value !== null) {\n setOpen(() => false)\n }\n }, [value])\n\n // recreate the array to hold dom refs when our options change\n React.useEffect(() => {\n // Adjust length to include Select All option if enabled, without this the navigation\n // would not work correctly when Select All is enabled\n const totalLength =\n selectAllEnabled && multiple\n ? allOptionsWithSelectAll.length\n : options.length\n navigationList.current = [...Array(totalLength).fill(null)]\n }, [selectAllEnabled, multiple, allOptionsWithSelectAll, options])\n\n // scroll virtuoso list activeMenuIndex into view when the index changes\n React.useLayoutEffect(() => {\n if (activeMenuIndex !== null) {\n if (!pointer) {\n // Adjust index for virtuoso if Select All is enabled (since Select All is rendered separately)\n // Without this the navigation would not work correctly when Select All is enabled\n const virtuosoIndex =\n selectAllEnabled && multiple && activeMenuIndex > 0\n ? activeMenuIndex + 1\n : activeMenuIndex\n\n if (virtuosoIndex >= 0) {\n virtuoso.current?.scrollIntoView({ index: virtuosoIndex })\n }\n }\n }\n }, [activeMenuIndex, open, selectAllEnabled, multiple])\n\n return {\n config: {\n block,\n disabled,\n draggable,\n emptyMessage,\n error,\n footer,\n header,\n placeholder,\n preset,\n presetProps,\n selectionStyle,\n tabIndex,\n loading,\n multiple,\n selectAllEnabled,\n },\n components,\n state: {\n activeMenuIndex,\n activeTokenIndex,\n isEmpty,\n listContainerHeight,\n listId,\n maxHeight,\n onDragEnd,\n onSelect,\n onSelectAll,\n open,\n options: draggable ? queriedDraggableOptions : options,\n overlayId,\n searchValue,\n selectAllOption,\n selectedIndex,\n selectedLabel,\n selectedOption,\n setOpen,\n setPointer,\n setValue,\n setSearchValue: setSearchValue,\n setActiveMenuIndex,\n sourceOptions,\n value,\n width,\n },\n props: {\n clear: getClearProps,\n emptyMessage: getEmptyMessageProps,\n footer: getFooterProps,\n header: getHeaderProps,\n item: getItemProps,\n label: getLabelProps,\n menu: getMenuProps,\n multiInput: getMultiInputProps,\n overlay: getFloatingProps,\n search: getSearchProps,\n searchContainer: getSearchContainerProps,\n tokenClear: getMultiValueProps,\n trigger: getReferenceProps,\n virtuoso: getVirtuosoProps,\n },\n option: {\n group: getOptionGroup,\n isBatch: getOptionIsBatch,\n isPartiallySelected:\n getOptionIsPartiallySelected ?? defaultGetOptionIsPartiallySelected,\n isSelected: getOptionIsSelected ?? defaultGetOptionIsSelected,\n isDisabled: getOptionIsDisabled,\n isOptgroup: getOptionIsOptgroup,\n isOptSelectAll: getOptionIsOptSelectAll,\n label: getOptionLabel,\n value: getOptionValue,\n selectAll: {\n isSelectAllPartiallySelected: (options) =>\n defaultGetOptionIsSelectAllPartiallySelected(\n options.filter(isSelectableOption),\n getOptionIsSelected ?? defaultGetOptionIsSelected,\n getOptionIsPartiallySelected ?? defaultGetOptionIsPartiallySelected\n ),\n isSelectAllSelected: (options) =>\n defaultGetOptionIsSelectAllSelected(\n options.filter(isSelectableOption),\n getOptionIsSelected ?? defaultGetOptionIsSelected\n ),\n },\n },\n refs: {\n floating,\n navigationList,\n virtuoso,\n },\n }\n}\n\nexport const SuperSelectContext = React.createContext<SuperSelectApi | null>(\n null\n)\n\nexport function useSuperSelectContext(): SuperSelectApi {\n const ctx = React.useContext(SuperSelectContext)\n\n if (!ctx) {\n throw new Error('Invalid SuperSelectContext')\n }\n\n return ctx as SuperSelectApi\n}\n"],"mappings":"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"}
|
|
@@ -8,19 +8,19 @@ var trackWidth = 36;
|
|
|
8
8
|
var toggleSize = 16;
|
|
9
9
|
export var StyledTrack = /*#__PURE__*/styled.div.withConfig({
|
|
10
10
|
displayName: "StyledTrack",
|
|
11
|
-
componentId: "core-
|
|
11
|
+
componentId: "core-12_28_0__sc-mwn4kg-0"
|
|
12
12
|
})(["background-color:", ";border-radius:", "px;height:", "px;width:", "px;position:relative;transition:0.2s;"], colors.gray70, trackHeight, trackHeight, trackWidth);
|
|
13
13
|
export var StyledToggle = /*#__PURE__*/styled.span.withConfig({
|
|
14
14
|
displayName: "StyledToggle",
|
|
15
|
-
componentId: "core-
|
|
15
|
+
componentId: "core-12_28_0__sc-mwn4kg-1"
|
|
16
16
|
})(["background-color:", ";border-radius:50%;bottom:2px;height:", "px;left:2px;position:absolute;transition:all 0.2s;width:", "px;"], colors.white, toggleSize, toggleSize);
|
|
17
17
|
export var StyledSwitchLabel = /*#__PURE__*/styled.span.withConfig({
|
|
18
18
|
displayName: "StyledSwitchLabel",
|
|
19
|
-
componentId: "core-
|
|
19
|
+
componentId: "core-12_28_0__sc-mwn4kg-2"
|
|
20
20
|
})(["", " padding-left:", "px;user-select:none;"], getTypographyIntent('body'), spacing.md);
|
|
21
21
|
export var StyledSwitchContainer = /*#__PURE__*/styled.label.withConfig({
|
|
22
22
|
displayName: "StyledSwitchContainer",
|
|
23
|
-
componentId: "core-
|
|
23
|
+
componentId: "core-12_28_0__sc-mwn4kg-3"
|
|
24
24
|
})(["cursor:pointer;display:grid;grid-template-columns:", "px 1fr;position:relative;& + &{margin-top:", "px;}", " ", " ", ""], trackWidth, spacing.md, function (_ref) {
|
|
25
25
|
var $checked = _ref.$checked;
|
|
26
26
|
return $checked && css(["", "{background-color:", ";", "{transform:translateX(", "px);}}"], StyledTrack, colors.blue50, StyledToggle, spacing.lg);
|