@redsift/pickers 11.6.0-muiv5-alpha.3 → 11.6.0-muiv5-alpha.5
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/{components/combobox/Combobox.d.ts → _internal/Combobox2.js} +7 -7
- package/_internal/Combobox2.js.map +1 -0
- package/{components/combobox-content/ComboboxContent.d.ts → _internal/ComboboxContent.js} +5 -5
- package/_internal/ComboboxContent.js.map +1 -0
- package/{components/combobox-content-footer/ComboboxContentFooter.d.ts → _internal/ComboboxContentFooter.js} +2 -2
- package/_internal/ComboboxContentFooter.js.map +1 -0
- package/{components/combobox-content-header/ComboboxContentHeader.d.ts → _internal/ComboboxContentHeader.js} +2 -2
- package/_internal/ComboboxContentHeader.js.map +1 -0
- package/{components/combobox-content-listbox/ComboboxContentListbox.d.ts → _internal/ComboboxContentListbox.js} +2 -2
- package/_internal/ComboboxContentListbox.js.map +1 -0
- package/{components/combobox-trigger/ComboboxTrigger.d.ts → _internal/ComboboxTrigger.js} +2 -2
- package/_internal/ComboboxTrigger.js.map +1 -0
- package/{components/item/Item.d.ts → _internal/Item2.js} +1 -1
- package/_internal/Item2.js.map +1 -0
- package/{components/menu-button/types.d.ts → _internal/MenuButton.js} +27 -2
- package/_internal/MenuButton.js.map +1 -0
- package/{components/menu-button-content/MenuButtonContent.d.ts → _internal/MenuButtonContent.js} +5 -5
- package/_internal/MenuButtonContent.js.map +1 -0
- package/{components/menu-button-content-footer/MenuButtonContentFooter.d.ts → _internal/MenuButtonContentFooter.js} +2 -2
- package/_internal/MenuButtonContentFooter.js.map +1 -0
- package/{components/menu-button-content-header/MenuButtonContentHeader.d.ts → _internal/MenuButtonContentHeader.js} +2 -2
- package/_internal/MenuButtonContentHeader.js.map +1 -0
- package/{components/menu-button-content-menu/MenuButtonContentMenu.d.ts → _internal/MenuButtonContentMenu.js} +2 -2
- package/_internal/MenuButtonContentMenu.js.map +1 -0
- package/{components/menu-button-trigger/MenuButtonTrigger.d.ts → _internal/MenuButtonTrigger.js} +2 -2
- package/_internal/MenuButtonTrigger.js.map +1 -0
- package/{components/select/types.d.ts → _internal/Select2.js} +20 -2
- package/_internal/Select2.js.map +1 -0
- package/{components/select-content/SelectContent.d.ts → _internal/SelectContent.js} +2 -2
- package/_internal/SelectContent.js.map +1 -0
- package/{components/select-trigger/SelectTrigger.d.ts → _internal/SelectTrigger.js} +2 -2
- package/_internal/SelectTrigger.js.map +1 -0
- package/{_virtual → _internal}/_rollupPluginBabelHelpers.js +1 -1
- package/_internal/combobox-content-footer.js +4 -0
- package/_internal/combobox-content-footer.js.map +1 -0
- package/_internal/combobox-content-header.js +4 -0
- package/_internal/combobox-content-header.js.map +1 -0
- package/_internal/combobox-content-listbox.js +6 -0
- package/_internal/combobox-content-listbox.js.map +1 -0
- package/_internal/combobox-content.js +9 -0
- package/_internal/combobox-content.js.map +1 -0
- package/_internal/combobox-trigger.js +6 -0
- package/_internal/combobox-trigger.js.map +1 -0
- package/_internal/combobox.js +10 -0
- package/_internal/combobox.js.map +1 -0
- package/_internal/item.js +2 -0
- package/_internal/item.js.map +1 -0
- package/_internal/menu-button-content-footer.js +4 -0
- package/_internal/menu-button-content-footer.js.map +1 -0
- package/_internal/menu-button-content-header.js +4 -0
- package/_internal/menu-button-content-header.js.map +1 -0
- package/_internal/menu-button-content-menu.js +3 -0
- package/_internal/menu-button-content-menu.js.map +1 -0
- package/_internal/menu-button-content.js +8 -0
- package/_internal/menu-button-content.js.map +1 -0
- package/_internal/menu-button-trigger.js +5 -0
- package/_internal/menu-button-trigger.js.map +1 -0
- package/_internal/menu-button.js +9 -0
- package/_internal/menu-button.js.map +1 -0
- package/_internal/select-content.js +4 -0
- package/_internal/select-content.js.map +1 -0
- package/_internal/select-trigger.js +5 -0
- package/_internal/select-trigger.js.map +1 -0
- package/_internal/select.js +6 -0
- package/_internal/select.js.map +1 -0
- package/{components/combobox-content-footer/types.d.ts → _internal/types.js} +1 -1
- package/_internal/types.js.map +1 -0
- package/{components/menu-button-content/types.d.ts → _internal/types10.js} +1 -1
- package/{components/menu-button-trigger/types.d.ts → _internal/types11.js} +1 -1
- package/{components/select-content/types.d.ts → _internal/types12.js} +1 -1
- package/{components/select-trigger/types.d.ts → _internal/types13.js} +1 -1
- package/{components/combobox-content-header/types.d.ts → _internal/types2.js} +1 -1
- package/{components/combobox-content-listbox/types.d.ts → _internal/types3.js} +2 -2
- package/{components/combobox-content/types.d.ts → _internal/types4.js} +1 -1
- package/{components/combobox-trigger/types.d.ts → _internal/types5.js} +2 -2
- package/{components/combobox/types.d.ts → _internal/types6.js} +1 -1
- package/{components/menu-button-content-footer/types.d.ts → _internal/types7.js} +1 -1
- package/{components/menu-button-content-header/types.d.ts → _internal/types8.js} +1 -1
- package/{components/menu-button-content-menu/types.d.ts → _internal/types9.js} +1 -1
- package/index.js +32 -18
- package/package.json +5 -5
- package/components/combobox/Combobox.js +0 -151
- package/components/combobox/Combobox.js.map +0 -1
- package/components/combobox/context.js +0 -6
- package/components/combobox/context.js.map +0 -1
- package/components/combobox/intl/en-US.json.js +0 -13
- package/components/combobox/intl/en-US.json.js.map +0 -1
- package/components/combobox/intl/fr-FR.json.js +0 -13
- package/components/combobox/intl/fr-FR.json.js.map +0 -1
- package/components/combobox/intl/index.js +0 -10
- package/components/combobox/intl/index.js.map +0 -1
- package/components/combobox/types.js +0 -22
- package/components/combobox/types.js.map +0 -1
- package/components/combobox-content/ComboboxContent.js +0 -70
- package/components/combobox-content/ComboboxContent.js.map +0 -1
- package/components/combobox-content-footer/ComboboxContentFooter.js +0 -28
- package/components/combobox-content-footer/ComboboxContentFooter.js.map +0 -1
- package/components/combobox-content-footer/styles.js +0 -12
- package/components/combobox-content-footer/styles.js.map +0 -1
- package/components/combobox-content-header/ComboboxContentHeader.js +0 -28
- package/components/combobox-content-header/ComboboxContentHeader.js.map +0 -1
- package/components/combobox-content-header/styles.js +0 -12
- package/components/combobox-content-header/styles.js.map +0 -1
- package/components/combobox-content-listbox/ComboboxContentListbox.js +0 -124
- package/components/combobox-content-listbox/ComboboxContentListbox.js.map +0 -1
- package/components/combobox-trigger/ComboboxTrigger.js +0 -352
- package/components/combobox-trigger/ComboboxTrigger.js.map +0 -1
- package/components/item/Item.js +0 -137
- package/components/item/Item.js.map +0 -1
- package/components/item/useMenuItem.js +0 -69
- package/components/item/useMenuItem.js.map +0 -1
- package/components/menu-button/MenuButton.d.ts +0 -29
- package/components/menu-button/MenuButton.js +0 -76
- package/components/menu-button/MenuButton.js.map +0 -1
- package/components/menu-button/context.js +0 -6
- package/components/menu-button/context.js.map +0 -1
- package/components/menu-button-content/MenuButtonContent.js +0 -68
- package/components/menu-button-content/MenuButtonContent.js.map +0 -1
- package/components/menu-button-content-footer/MenuButtonContentFooter.js +0 -28
- package/components/menu-button-content-footer/MenuButtonContentFooter.js.map +0 -1
- package/components/menu-button-content-footer/styles.js +0 -12
- package/components/menu-button-content-footer/styles.js.map +0 -1
- package/components/menu-button-content-header/MenuButtonContentHeader.js +0 -28
- package/components/menu-button-content-header/MenuButtonContentHeader.js.map +0 -1
- package/components/menu-button-content-header/styles.js +0 -12
- package/components/menu-button-content-header/styles.js.map +0 -1
- package/components/menu-button-content-menu/MenuButtonContentMenu.js +0 -41
- package/components/menu-button-content-menu/MenuButtonContentMenu.js.map +0 -1
- package/components/menu-button-trigger/MenuButtonTrigger.js +0 -167
- package/components/menu-button-trigger/MenuButtonTrigger.js.map +0 -1
- package/components/select/Select.d.ts +0 -22
- package/components/select/Select.js +0 -116
- package/components/select/Select.js.map +0 -1
- package/components/select/context.js +0 -6
- package/components/select/context.js.map +0 -1
- package/components/select-content/SelectContent.js +0 -62
- package/components/select-content/SelectContent.js.map +0 -1
- package/components/select-trigger/SelectTrigger.js +0 -249
- package/components/select-trigger/SelectTrigger.js.map +0 -1
- package/index.d.ts +0 -32
- /package/{_virtual → _internal}/_rollupPluginBabelHelpers.js.map +0 -0
|
@@ -1,352 +0,0 @@
|
|
|
1
|
-
import { objectSpread2 as _objectSpread2, objectWithoutProperties as _objectWithoutProperties } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import React, { forwardRef, useContext, useRef, useEffect } from 'react';
|
|
3
|
-
import { useId, useMessageFormatter, FocusWithinGroupContext, ListboxContext, useTheme, isComponent, FocusWithinGroupActionType, IconButton, ListboxActionType, EventKey } from '@redsift/design-system';
|
|
4
|
-
import intlMessages from '../combobox/intl/index.js';
|
|
5
|
-
import { usePopoverContext, useMergeRefs } from '@redsift/popovers';
|
|
6
|
-
import { ComboboxContext } from '../combobox/context.js';
|
|
7
|
-
import { mdiClose, mdiChevronDown } from '@redsift/icons';
|
|
8
|
-
import { ComboboxSelectionMode, ComboboxVariant } from '../combobox/types.js';
|
|
9
|
-
import classNames from 'classnames';
|
|
10
|
-
|
|
11
|
-
const _excluded = ["aria-controls", "aria-expanded", "aria-haspopup", "role"];
|
|
12
|
-
const COMPONENT_NAME = 'ComboboxTrigger';
|
|
13
|
-
const CLASSNAME = 'redsift-combobox-trigger';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* The ComboboxTrigger component.
|
|
17
|
-
*/
|
|
18
|
-
const ComboboxTrigger = /*#__PURE__*/forwardRef((props, ref) => {
|
|
19
|
-
var _renderedChildren$pro;
|
|
20
|
-
const [id] = useId();
|
|
21
|
-
const {
|
|
22
|
-
children,
|
|
23
|
-
hideExpandButton,
|
|
24
|
-
openOnFocus,
|
|
25
|
-
hideClearButton,
|
|
26
|
-
pillProps
|
|
27
|
-
} = props;
|
|
28
|
-
const format = useMessageFormatter(intlMessages);
|
|
29
|
-
const {
|
|
30
|
-
getReferenceProps,
|
|
31
|
-
isOpen,
|
|
32
|
-
handleOpen: handleOpenPopover,
|
|
33
|
-
refs
|
|
34
|
-
} = usePopoverContext();
|
|
35
|
-
const childrenRef = children.ref;
|
|
36
|
-
const triggerRef = useMergeRefs([refs.setReference, ref, childrenRef]);
|
|
37
|
-
const focusContext = useContext(FocusWithinGroupContext);
|
|
38
|
-
const comboboxState = useContext(ComboboxContext);
|
|
39
|
-
const listboxState = useContext(ListboxContext);
|
|
40
|
-
const theme = useTheme();
|
|
41
|
-
const canHaveMultipleSelections = (comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.selectionMode) === ComboboxSelectionMode.multiple;
|
|
42
|
-
const canHaveFreeText = (comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.variant) === ComboboxVariant.suggestions;
|
|
43
|
-
const renderedChildren = typeof children === 'function' ? children({
|
|
44
|
-
value: comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.value,
|
|
45
|
-
isOpen
|
|
46
|
-
}) : children;
|
|
47
|
-
const isTextArea = isComponent('TextArea')(renderedChildren);
|
|
48
|
-
const isTextField = isComponent('TextField')(renderedChildren);
|
|
49
|
-
const hasMultipleLines = isTextArea && (comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.inputValue.includes('\n'));
|
|
50
|
-
const _inputRef = useRef();
|
|
51
|
-
const inputRef = (_renderedChildren$pro = renderedChildren.props.inputRef) !== null && _renderedChildren$pro !== void 0 ? _renderedChildren$pro : _inputRef;
|
|
52
|
-
const handleChange = value => {
|
|
53
|
-
focusContext.dispatch({
|
|
54
|
-
type: FocusWithinGroupActionType.FILTER_LIST,
|
|
55
|
-
payload: {
|
|
56
|
-
filter: _objectSpread2({
|
|
57
|
-
value: value || ''
|
|
58
|
-
}, comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.filter)
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.setInputValue(value);
|
|
62
|
-
};
|
|
63
|
-
const handleKeyDown = event => {
|
|
64
|
-
const code = event.code;
|
|
65
|
-
if (code === 'Escape' || code === 'Tab') {
|
|
66
|
-
if (isOpen) {
|
|
67
|
-
handleOpenPopover(false);
|
|
68
|
-
}
|
|
69
|
-
if (canHaveMultipleSelections && canHaveFreeText && comboboxState.inputValue) {
|
|
70
|
-
listboxState.dispatch({
|
|
71
|
-
type: ListboxActionType.TOGGLE,
|
|
72
|
-
payload: {
|
|
73
|
-
value: comboboxState.inputValue,
|
|
74
|
-
activedescendant: [comboboxState.freeTextItemId, comboboxState.inputValue]
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
if ((/^.$/.test(event.key) || code === 'Backspace') && !hasMultipleLines) {
|
|
80
|
-
if (!isOpen) {
|
|
81
|
-
handleOpenPopover(true);
|
|
82
|
-
}
|
|
83
|
-
if (canHaveMultipleSelections && canHaveFreeText) {
|
|
84
|
-
focusContext.dispatch({
|
|
85
|
-
type: FocusWithinGroupActionType.DELAY_ACTION,
|
|
86
|
-
payload: {
|
|
87
|
-
type: FocusWithinGroupActionType.KEY_DOWN_ON_LIST,
|
|
88
|
-
payload: {
|
|
89
|
-
key: EventKey.Home,
|
|
90
|
-
ctrlKey: event.ctrlKey
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
if (canHaveMultipleSelections && comboboxState.inputValue === '' && code === 'Backspace') {
|
|
97
|
-
listboxState.dispatch({
|
|
98
|
-
type: ListboxActionType.SET,
|
|
99
|
-
payload: {
|
|
100
|
-
values: comboboxState.value.slice(0, comboboxState.value.length - 1),
|
|
101
|
-
activedescendant: focusContext.state.activedescendant
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
if (code === 'ArrowDown' && !hasMultipleLines) {
|
|
106
|
-
if (!isOpen) {
|
|
107
|
-
handleOpenPopover(true);
|
|
108
|
-
}
|
|
109
|
-
focusContext.dispatch({
|
|
110
|
-
type: FocusWithinGroupActionType.DELAY_ACTION,
|
|
111
|
-
payload: {
|
|
112
|
-
type: FocusWithinGroupActionType.KEY_DOWN_ON_LIST,
|
|
113
|
-
payload: {
|
|
114
|
-
key: focusContext.state.selectedId !== null ? EventKey.ArrowDown : EventKey.Home,
|
|
115
|
-
ctrlKey: event.ctrlKey
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
event.preventDefault();
|
|
120
|
-
}
|
|
121
|
-
if (code === 'ArrowUp' && !hasMultipleLines) {
|
|
122
|
-
if (!isOpen) {
|
|
123
|
-
handleOpenPopover(true);
|
|
124
|
-
}
|
|
125
|
-
focusContext.dispatch({
|
|
126
|
-
type: FocusWithinGroupActionType.DELAY_ACTION,
|
|
127
|
-
payload: {
|
|
128
|
-
type: FocusWithinGroupActionType.KEY_DOWN_ON_LIST,
|
|
129
|
-
payload: {
|
|
130
|
-
key: focusContext.state.selectedId !== null ? EventKey.ArrowUp : EventKey.End,
|
|
131
|
-
ctrlKey: event.ctrlKey
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
event.preventDefault();
|
|
136
|
-
}
|
|
137
|
-
if (code === 'Enter') {
|
|
138
|
-
var _focusContext$state$a;
|
|
139
|
-
if (isTextField || isTextArea && !event.shiftKey) {
|
|
140
|
-
event.preventDefault();
|
|
141
|
-
}
|
|
142
|
-
if (canHaveMultipleSelections && canHaveFreeText && ((_focusContext$state$a = focusContext.state.activedescendant) === null || _focusContext$state$a === void 0 ? void 0 : _focusContext$state$a[0]) === comboboxState.freeTextItemId && comboboxState.inputValue) {
|
|
143
|
-
listboxState.dispatch({
|
|
144
|
-
type: ListboxActionType.TOGGLE,
|
|
145
|
-
payload: {
|
|
146
|
-
value: comboboxState.inputValue,
|
|
147
|
-
activedescendant: [comboboxState.freeTextItemId, comboboxState.inputValue]
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
handleOpenPopover(false);
|
|
151
|
-
} else if (isOpen && focusContext.state.selectedId) {
|
|
152
|
-
if (canHaveMultipleSelections) {
|
|
153
|
-
var _focusContext$state$a2, _focusContext$state$a3;
|
|
154
|
-
listboxState.dispatch({
|
|
155
|
-
type: ListboxActionType.TOGGLE,
|
|
156
|
-
payload: {
|
|
157
|
-
value: (_focusContext$state$a2 = (_focusContext$state$a3 = focusContext.state.activedescendant) === null || _focusContext$state$a3 === void 0 ? void 0 : _focusContext$state$a3[1]) !== null && _focusContext$state$a2 !== void 0 ? _focusContext$state$a2 : '',
|
|
158
|
-
activedescendant: focusContext.state.activedescendant
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
} else {
|
|
162
|
-
var _focusContext$state$a4, _focusContext$state$a5;
|
|
163
|
-
listboxState.dispatch({
|
|
164
|
-
type: ListboxActionType.SET,
|
|
165
|
-
payload: {
|
|
166
|
-
values: [(_focusContext$state$a4 = (_focusContext$state$a5 = focusContext.state.activedescendant) === null || _focusContext$state$a5 === void 0 ? void 0 : _focusContext$state$a5[1]) !== null && _focusContext$state$a4 !== void 0 ? _focusContext$state$a4 : ''],
|
|
167
|
-
activedescendant: focusContext.state.activedescendant
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
} else if (!event.shiftKey) {
|
|
172
|
-
var _comboboxState$formRe, _comboboxState$formRe2, _comboboxState$submit, _comboboxState$submit2;
|
|
173
|
-
comboboxState === null || comboboxState === void 0 ? void 0 : (_comboboxState$formRe = comboboxState.formRef) === null || _comboboxState$formRe === void 0 ? void 0 : (_comboboxState$formRe2 = _comboboxState$formRe.current) === null || _comboboxState$formRe2 === void 0 ? void 0 : _comboboxState$formRe2.submit();
|
|
174
|
-
comboboxState === null || comboboxState === void 0 ? void 0 : (_comboboxState$submit = comboboxState.submitRef) === null || _comboboxState$submit === void 0 ? void 0 : (_comboboxState$submit2 = _comboboxState$submit.current) === null || _comboboxState$submit2 === void 0 ? void 0 : _comboboxState$submit2.click();
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
const handleOpen = () => {
|
|
179
|
-
if (isOpen) {
|
|
180
|
-
handleOpenPopover(false);
|
|
181
|
-
} else {
|
|
182
|
-
var _inputRef$current, _focusContext$state$a6;
|
|
183
|
-
handleOpenPopover(true);
|
|
184
|
-
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
|
|
185
|
-
focusContext.dispatch({
|
|
186
|
-
type: FocusWithinGroupActionType.DELAY_ACTION,
|
|
187
|
-
payload: {
|
|
188
|
-
type: FocusWithinGroupActionType.FOCUS_ON_LIST,
|
|
189
|
-
payload: {
|
|
190
|
-
id: (_focusContext$state$a6 = focusContext.state.activedescendant) === null || _focusContext$state$a6 === void 0 ? void 0 : _focusContext$state$a6[0],
|
|
191
|
-
filter: _objectSpread2({
|
|
192
|
-
value: ''
|
|
193
|
-
}, comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.filter)
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
};
|
|
199
|
-
const handleFocus = () => {
|
|
200
|
-
var _inputRef$current2;
|
|
201
|
-
if (openOnFocus) {
|
|
202
|
-
handleOpen();
|
|
203
|
-
}
|
|
204
|
-
(_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.select();
|
|
205
|
-
};
|
|
206
|
-
const handleBlur = () => {
|
|
207
|
-
if (canHaveMultipleSelections) {
|
|
208
|
-
if (!canHaveFreeText) {
|
|
209
|
-
comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.setInputValue('');
|
|
210
|
-
}
|
|
211
|
-
} else {
|
|
212
|
-
if (canHaveFreeText) {
|
|
213
|
-
comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.setValue(comboboxState.inputValue);
|
|
214
|
-
} else {
|
|
215
|
-
comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.setInputValue(listboxState.state.selectedValues[0]);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
};
|
|
219
|
-
const handleClear = () => {
|
|
220
|
-
listboxState.dispatch({
|
|
221
|
-
type: ListboxActionType.SET,
|
|
222
|
-
payload: {
|
|
223
|
-
values: [],
|
|
224
|
-
activedescendant: ['', '']
|
|
225
|
-
}
|
|
226
|
-
});
|
|
227
|
-
};
|
|
228
|
-
useEffect(() => {
|
|
229
|
-
if (canHaveMultipleSelections) {
|
|
230
|
-
focusContext.dispatch({
|
|
231
|
-
type: FocusWithinGroupActionType.FILTER_LIST,
|
|
232
|
-
payload: {
|
|
233
|
-
filter: _objectSpread2({
|
|
234
|
-
value: ''
|
|
235
|
-
}, comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.filter)
|
|
236
|
-
}
|
|
237
|
-
});
|
|
238
|
-
comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.setValue(listboxState.state.selectedValues);
|
|
239
|
-
comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.setInputValue('');
|
|
240
|
-
handleOpenPopover(false);
|
|
241
|
-
} else {
|
|
242
|
-
focusContext.dispatch({
|
|
243
|
-
type: FocusWithinGroupActionType.FILTER_LIST,
|
|
244
|
-
payload: {
|
|
245
|
-
filter: _objectSpread2({
|
|
246
|
-
value: listboxState.state.selectedValues[0] || ''
|
|
247
|
-
}, comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.filter)
|
|
248
|
-
}
|
|
249
|
-
});
|
|
250
|
-
comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.setValue(listboxState.state.selectedValues[0]);
|
|
251
|
-
if (listboxState.state.selectedValues.length) {
|
|
252
|
-
comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.setInputValue(listboxState.state.selectedValues[0]);
|
|
253
|
-
}
|
|
254
|
-
handleOpenPopover(false);
|
|
255
|
-
}
|
|
256
|
-
}, [listboxState.state]);
|
|
257
|
-
if (isTextField || isTextArea) {
|
|
258
|
-
var _props$children, _focusContext$state$a7, _comboboxState$value;
|
|
259
|
-
const _getReferenceProps = getReferenceProps(_objectSpread2(_objectSpread2(_objectSpread2({
|
|
260
|
-
ref: triggerRef
|
|
261
|
-
}, props), renderedChildren.props), {}, {
|
|
262
|
-
children: (_props$children = renderedChildren.props.children) !== null && _props$children !== void 0 ? _props$children : ''
|
|
263
|
-
})),
|
|
264
|
-
{
|
|
265
|
-
'aria-controls': ariaControls,
|
|
266
|
-
'aria-expanded': ariaExpanded,
|
|
267
|
-
'aria-haspopup': ariaHaspopup,
|
|
268
|
-
role
|
|
269
|
-
} = _getReferenceProps,
|
|
270
|
-
forwardedProps = _objectWithoutProperties(_getReferenceProps, _excluded);
|
|
271
|
-
const inputProps = {
|
|
272
|
-
'aria-activedescendant': isOpen ? (_focusContext$state$a7 = focusContext.state.activedescendant) === null || _focusContext$state$a7 === void 0 ? void 0 : _focusContext$state$a7[0] : undefined,
|
|
273
|
-
'aria-controls': ariaControls,
|
|
274
|
-
'aria-expanded': ariaExpanded,
|
|
275
|
-
'aria-haspopup': ariaHaspopup,
|
|
276
|
-
autoComplete: 'off',
|
|
277
|
-
autoCapitalize: 'off',
|
|
278
|
-
autoCorrect: 'off',
|
|
279
|
-
spellCheck: 'false',
|
|
280
|
-
'aria-autocomplete': canHaveMultipleSelections ? 'list' : undefined,
|
|
281
|
-
'aria-description': canHaveMultipleSelections ? format('selected', {
|
|
282
|
-
count: comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.value.length
|
|
283
|
-
}) : undefined,
|
|
284
|
-
onKeyDown: handleKeyDown,
|
|
285
|
-
role
|
|
286
|
-
};
|
|
287
|
-
return /*#__PURE__*/React.cloneElement(renderedChildren, _objectSpread2(_objectSpread2({}, forwardedProps), {}, {
|
|
288
|
-
theme,
|
|
289
|
-
className: classNames(renderedChildren.props.className, comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.triggerClassName),
|
|
290
|
-
isDisabled: comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.isDisabled,
|
|
291
|
-
isInvalid: comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.isInvalid,
|
|
292
|
-
onChange: handleChange,
|
|
293
|
-
onBlur: handleBlur,
|
|
294
|
-
onFocus: handleFocus,
|
|
295
|
-
value: comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.inputValue
|
|
296
|
-
}, isTextField ? {
|
|
297
|
-
inputProps,
|
|
298
|
-
inputRef,
|
|
299
|
-
onClear: handleClear,
|
|
300
|
-
hasClearButton: hideClearButton ? false : {
|
|
301
|
-
isDisabled: (comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.isDisabled) || (comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.value) && (comboboxState === null || comboboxState === void 0 ? void 0 : (_comboboxState$value = comboboxState.value) === null || _comboboxState$value === void 0 ? void 0 : _comboboxState$value.length) === 0,
|
|
302
|
-
onClick: () => inputRef.current.focus()
|
|
303
|
-
},
|
|
304
|
-
pills: canHaveMultipleSelections ? (comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.value).map(v => _objectSpread2({
|
|
305
|
-
isDisabled: comboboxState === null || comboboxState === void 0 ? void 0 : comboboxState.isDisabled,
|
|
306
|
-
children: [v, /*#__PURE__*/React.createElement(IconButton, {
|
|
307
|
-
key: `${id}-pill-${v}-icon-button`,
|
|
308
|
-
icon: mdiClose,
|
|
309
|
-
"aria-label": format('unselect', {
|
|
310
|
-
label: v
|
|
311
|
-
}),
|
|
312
|
-
onClick: event => {
|
|
313
|
-
event.preventDefault();
|
|
314
|
-
listboxState.dispatch({
|
|
315
|
-
type: ListboxActionType.TOGGLE,
|
|
316
|
-
payload: {
|
|
317
|
-
value: v,
|
|
318
|
-
activedescendant: focusContext.state.activedescendant
|
|
319
|
-
}
|
|
320
|
-
});
|
|
321
|
-
}
|
|
322
|
-
})]
|
|
323
|
-
}, pillProps)) : undefined,
|
|
324
|
-
internal: (value, isDisabled, isInvalid, isRequired) => {
|
|
325
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, typeof renderedChildren.props.internal === 'function' ? renderedChildren.props.internal(value, isDisabled, isInvalid, isRequired) : renderedChildren.props.internal, hideExpandButton ? null : /*#__PURE__*/React.createElement(IconButton, {
|
|
326
|
-
theme: theme,
|
|
327
|
-
"aria-label": format(!isOpen ? 'expand' : 'collapse'),
|
|
328
|
-
color: "grey",
|
|
329
|
-
icon: mdiChevronDown,
|
|
330
|
-
onClick: handleOpen,
|
|
331
|
-
isDisabled: isDisabled,
|
|
332
|
-
tabIndex: -1,
|
|
333
|
-
iconProps: {
|
|
334
|
-
style: {
|
|
335
|
-
transition: 'transform 300ms ease-out',
|
|
336
|
-
transform: `rotate(${isOpen ? '-180deg' : '0'})`
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
}));
|
|
340
|
-
}
|
|
341
|
-
} : {
|
|
342
|
-
textareaProps: inputProps,
|
|
343
|
-
textareaRef: inputRef
|
|
344
|
-
}));
|
|
345
|
-
}
|
|
346
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, renderedChildren);
|
|
347
|
-
});
|
|
348
|
-
ComboboxTrigger.className = CLASSNAME;
|
|
349
|
-
ComboboxTrigger.displayName = COMPONENT_NAME;
|
|
350
|
-
|
|
351
|
-
export { ComboboxTrigger };
|
|
352
|
-
//# sourceMappingURL=ComboboxTrigger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ComboboxTrigger.js","sources":["../../../src/components/combobox-trigger/ComboboxTrigger.tsx"],"sourcesContent":["import React, { KeyboardEvent, ReactElement, forwardRef, useContext, useEffect, useRef } from 'react';\n\nimport { useId, useMessageFormatter } from '@redsift/design-system';\nimport intlMessages from '../combobox/intl';\n\nimport {\n Comp,\n EventKey,\n FocusWithinGroupActionType,\n FocusWithinGroupContext,\n IconButton,\n ListboxActionType,\n ListboxContext,\n isComponent,\n useTheme,\n} from '@redsift/design-system';\nimport { ComboboxTriggerProps } from './types';\nimport { useMergeRefs, usePopoverContext } from '@redsift/popovers';\nimport { ComboboxContext } from '../combobox/context';\nimport { mdiChevronDown, mdiClose } from '@redsift/icons';\nimport { ComboboxSelectionMode, ComboboxVariant } from '../combobox/types';\nimport classNames from 'classnames';\n\nconst COMPONENT_NAME = 'ComboboxTrigger';\nconst CLASSNAME = 'redsift-combobox-trigger';\n\n/**\n * The ComboboxTrigger component.\n */\nexport const ComboboxTrigger: Comp<ComboboxTriggerProps, HTMLButtonElement> = forwardRef((props, ref) => {\n const [id] = useId();\n const { children, hideExpandButton, openOnFocus, hideClearButton, pillProps } = props;\n\n const format = useMessageFormatter(intlMessages);\n\n const { getReferenceProps, isOpen, handleOpen: handleOpenPopover, refs } = usePopoverContext();\n const childrenRef = (children as any).ref;\n const triggerRef = useMergeRefs([refs.setReference, ref, childrenRef]);\n\n const focusContext = useContext(FocusWithinGroupContext);\n const comboboxState = useContext(ComboboxContext);\n const listboxState = useContext(ListboxContext);\n const theme = useTheme();\n\n const canHaveMultipleSelections = comboboxState?.selectionMode === ComboboxSelectionMode.multiple;\n const canHaveFreeText = comboboxState?.variant === ComboboxVariant.suggestions;\n\n const renderedChildren =\n typeof children === 'function' ? children({ value: comboboxState?.value, isOpen }) : children;\n\n const isTextArea = isComponent('TextArea')(renderedChildren);\n const isTextField = isComponent('TextField')(renderedChildren);\n const hasMultipleLines = isTextArea && comboboxState?.inputValue.includes('\\n');\n\n const _inputRef = useRef<HTMLInputElement>();\n const inputRef = renderedChildren.props.inputRef ?? _inputRef;\n\n const handleChange = (value?: string) => {\n focusContext.dispatch({\n type: FocusWithinGroupActionType.FILTER_LIST,\n payload: { filter: { value: value || '', ...comboboxState?.filter! } },\n });\n\n comboboxState?.setInputValue(value!);\n };\n\n const handleKeyDown = (event: KeyboardEvent) => {\n const code = event.code;\n\n if (code === 'Escape' || code === 'Tab') {\n if (isOpen) {\n handleOpenPopover(false);\n }\n\n if (canHaveMultipleSelections && canHaveFreeText && comboboxState.inputValue) {\n listboxState.dispatch({\n type: ListboxActionType.TOGGLE,\n payload: {\n value: comboboxState.inputValue,\n activedescendant: [comboboxState.freeTextItemId as string, comboboxState.inputValue],\n },\n });\n }\n }\n\n if ((/^.$/.test(event.key) || code === 'Backspace') && !hasMultipleLines) {\n if (!isOpen) {\n handleOpenPopover(true);\n }\n\n if (canHaveMultipleSelections && canHaveFreeText) {\n focusContext.dispatch({\n type: FocusWithinGroupActionType.DELAY_ACTION,\n payload: {\n type: FocusWithinGroupActionType.KEY_DOWN_ON_LIST,\n payload: {\n key: EventKey.Home,\n ctrlKey: event.ctrlKey,\n },\n },\n });\n }\n }\n\n if (canHaveMultipleSelections && comboboxState.inputValue === '' && code === 'Backspace') {\n listboxState.dispatch({\n type: ListboxActionType.SET,\n payload: {\n values: (comboboxState.value as string[]).slice(0, (comboboxState.value as string[]).length - 1),\n activedescendant: focusContext.state.activedescendant,\n },\n });\n }\n\n if (code === 'ArrowDown' && !hasMultipleLines) {\n if (!isOpen) {\n handleOpenPopover(true);\n }\n focusContext.dispatch({\n type: FocusWithinGroupActionType.DELAY_ACTION,\n payload: {\n type: FocusWithinGroupActionType.KEY_DOWN_ON_LIST,\n payload: {\n key: focusContext.state.selectedId !== null ? EventKey.ArrowDown : EventKey.Home,\n ctrlKey: event.ctrlKey,\n },\n },\n });\n event.preventDefault();\n }\n\n if (code === 'ArrowUp' && !hasMultipleLines) {\n if (!isOpen) {\n handleOpenPopover(true);\n }\n focusContext.dispatch({\n type: FocusWithinGroupActionType.DELAY_ACTION,\n payload: {\n type: FocusWithinGroupActionType.KEY_DOWN_ON_LIST,\n payload: {\n key: focusContext.state.selectedId !== null ? EventKey.ArrowUp : EventKey.End,\n ctrlKey: event.ctrlKey,\n },\n },\n });\n event.preventDefault();\n }\n\n if (code === 'Enter') {\n if (isTextField || (isTextArea && !event.shiftKey)) {\n event.preventDefault();\n }\n\n if (\n canHaveMultipleSelections &&\n canHaveFreeText &&\n focusContext.state.activedescendant?.[0] === comboboxState.freeTextItemId &&\n comboboxState.inputValue\n ) {\n listboxState.dispatch({\n type: ListboxActionType.TOGGLE,\n payload: {\n value: comboboxState.inputValue,\n activedescendant: [comboboxState.freeTextItemId as string, comboboxState.inputValue],\n },\n });\n handleOpenPopover(false);\n } else if (isOpen && focusContext.state.selectedId) {\n if (canHaveMultipleSelections) {\n listboxState.dispatch({\n type: ListboxActionType.TOGGLE,\n payload: {\n value: focusContext.state.activedescendant?.[1] ?? '',\n activedescendant: focusContext.state.activedescendant,\n },\n });\n } else {\n listboxState.dispatch({\n type: ListboxActionType.SET,\n payload: {\n values: [focusContext.state.activedescendant?.[1] ?? ''],\n activedescendant: focusContext.state.activedescendant,\n },\n });\n }\n } else if (!event.shiftKey) {\n comboboxState?.formRef?.current?.submit();\n comboboxState?.submitRef?.current?.click();\n }\n }\n };\n\n const handleOpen = () => {\n if (isOpen) {\n handleOpenPopover(false);\n } else {\n handleOpenPopover(true);\n inputRef.current?.focus();\n focusContext.dispatch({\n type: FocusWithinGroupActionType.DELAY_ACTION,\n payload: {\n type: FocusWithinGroupActionType.FOCUS_ON_LIST,\n payload: {\n id: focusContext.state.activedescendant?.[0]!,\n filter: { value: '', ...comboboxState?.filter! },\n },\n },\n });\n }\n };\n\n const handleFocus = () => {\n if (openOnFocus) {\n handleOpen();\n }\n inputRef.current?.select();\n };\n\n const handleBlur = () => {\n if (canHaveMultipleSelections) {\n if (!canHaveFreeText) {\n comboboxState?.setInputValue('');\n }\n } else {\n if (canHaveFreeText) {\n comboboxState?.setValue(comboboxState.inputValue);\n } else {\n comboboxState?.setInputValue(listboxState.state.selectedValues[0]);\n }\n }\n };\n\n const handleClear = () => {\n listboxState.dispatch({\n type: ListboxActionType.SET,\n payload: {\n values: [],\n activedescendant: ['', ''],\n },\n });\n };\n\n useEffect(() => {\n if (canHaveMultipleSelections) {\n focusContext.dispatch({\n type: FocusWithinGroupActionType.FILTER_LIST,\n payload: { filter: { value: '', ...comboboxState?.filter! } },\n });\n comboboxState?.setValue(listboxState.state.selectedValues);\n comboboxState?.setInputValue('');\n handleOpenPopover(false);\n } else {\n focusContext.dispatch({\n type: FocusWithinGroupActionType.FILTER_LIST,\n payload: { filter: { value: listboxState.state.selectedValues[0] || '', ...comboboxState?.filter! } },\n });\n comboboxState?.setValue(listboxState.state.selectedValues[0]);\n if (listboxState.state.selectedValues.length) {\n comboboxState?.setInputValue(listboxState.state.selectedValues[0]);\n }\n handleOpenPopover(false);\n }\n }, [listboxState.state]);\n\n if (isTextField || isTextArea) {\n const {\n 'aria-controls': ariaControls,\n 'aria-expanded': ariaExpanded,\n 'aria-haspopup': ariaHaspopup,\n role,\n ...forwardedProps\n } = getReferenceProps({\n ref: triggerRef,\n ...props,\n ...(renderedChildren as ReactElement).props,\n children: (renderedChildren as ReactElement).props.children ?? '',\n });\n\n const inputProps = {\n 'aria-activedescendant': isOpen ? focusContext.state.activedescendant?.[0] : undefined,\n 'aria-controls': ariaControls,\n 'aria-expanded': ariaExpanded,\n 'aria-haspopup': ariaHaspopup,\n autoComplete: 'off',\n autoCapitalize: 'off',\n autoCorrect: 'off',\n spellCheck: 'false',\n 'aria-autocomplete': canHaveMultipleSelections ? 'list' : undefined,\n 'aria-description': canHaveMultipleSelections\n ? format('selected', { count: comboboxState?.value.length })\n : undefined,\n onKeyDown: handleKeyDown,\n role,\n };\n\n return React.cloneElement(renderedChildren, {\n ...forwardedProps,\n theme,\n className: classNames((renderedChildren as ReactElement).props.className, comboboxState?.triggerClassName),\n isDisabled: comboboxState?.isDisabled,\n isInvalid: comboboxState?.isInvalid,\n onChange: handleChange,\n onBlur: handleBlur,\n onFocus: handleFocus,\n value: comboboxState?.inputValue,\n ...(isTextField\n ? {\n inputProps,\n inputRef,\n onClear: handleClear,\n hasClearButton: hideClearButton\n ? false\n : {\n isDisabled: comboboxState?.isDisabled || (comboboxState?.value && comboboxState?.value?.length === 0),\n onClick: () => inputRef.current.focus(),\n },\n pills: canHaveMultipleSelections\n ? (comboboxState?.value as string[]).map((v) => ({\n isDisabled: comboboxState?.isDisabled,\n children: [\n v,\n <IconButton\n key={`${id}-pill-${v}-icon-button`}\n icon={mdiClose}\n aria-label={format('unselect', { label: v })}\n onClick={(event) => {\n event.preventDefault();\n listboxState.dispatch({\n type: ListboxActionType.TOGGLE,\n payload: {\n value: v,\n activedescendant: focusContext.state.activedescendant,\n },\n });\n }}\n />,\n ],\n ...pillProps,\n }))\n : undefined,\n internal: (value?: string, isDisabled?: boolean, isInvalid?: boolean, isRequired?: boolean) => {\n return (\n <>\n {typeof (renderedChildren as ReactElement).props.internal === 'function'\n ? (renderedChildren as ReactElement).props.internal(value, isDisabled, isInvalid, isRequired)\n : (renderedChildren as ReactElement).props.internal}\n {hideExpandButton ? null : (\n <IconButton\n theme={theme}\n aria-label={format(!isOpen ? 'expand' : 'collapse')}\n color=\"grey\"\n icon={mdiChevronDown}\n onClick={handleOpen}\n isDisabled={isDisabled}\n tabIndex={-1}\n iconProps={{\n style: {\n transition: 'transform 300ms ease-out',\n transform: `rotate(${isOpen ? '-180deg' : '0'})`,\n },\n }}\n />\n )}\n </>\n );\n },\n }\n : {\n textareaProps: inputProps,\n textareaRef: inputRef,\n }),\n });\n }\n\n return <>{renderedChildren}</>;\n});\nComboboxTrigger.className = CLASSNAME;\nComboboxTrigger.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","ComboboxTrigger","forwardRef","props","ref","_renderedChildren$pro","id","useId","children","hideExpandButton","openOnFocus","hideClearButton","pillProps","format","useMessageFormatter","intlMessages","getReferenceProps","isOpen","handleOpen","handleOpenPopover","refs","usePopoverContext","childrenRef","triggerRef","useMergeRefs","setReference","focusContext","useContext","FocusWithinGroupContext","comboboxState","ComboboxContext","listboxState","ListboxContext","theme","useTheme","canHaveMultipleSelections","selectionMode","ComboboxSelectionMode","multiple","canHaveFreeText","variant","ComboboxVariant","suggestions","renderedChildren","value","isTextArea","isComponent","isTextField","hasMultipleLines","inputValue","includes","_inputRef","useRef","inputRef","handleChange","dispatch","type","FocusWithinGroupActionType","FILTER_LIST","payload","filter","_objectSpread","setInputValue","handleKeyDown","event","code","ListboxActionType","TOGGLE","activedescendant","freeTextItemId","test","key","DELAY_ACTION","KEY_DOWN_ON_LIST","EventKey","Home","ctrlKey","SET","values","slice","length","state","selectedId","ArrowDown","preventDefault","ArrowUp","End","_focusContext$state$a","shiftKey","_focusContext$state$a2","_focusContext$state$a3","_focusContext$state$a4","_focusContext$state$a5","_comboboxState$formRe","_comboboxState$formRe2","_comboboxState$submit","_comboboxState$submit2","formRef","current","submit","submitRef","click","_inputRef$current","_focusContext$state$a6","focus","FOCUS_ON_LIST","handleFocus","_inputRef$current2","select","handleBlur","setValue","selectedValues","handleClear","useEffect","_props$children","_focusContext$state$a7","_comboboxState$value","_getReferenceProps","ariaControls","ariaExpanded","ariaHaspopup","role","forwardedProps","_objectWithoutProperties","_excluded","inputProps","undefined","autoComplete","autoCapitalize","autoCorrect","spellCheck","count","onKeyDown","React","cloneElement","className","classNames","triggerClassName","isDisabled","isInvalid","onChange","onBlur","onFocus","onClear","hasClearButton","onClick","pills","map","v","createElement","IconButton","icon","mdiClose","label","internal","isRequired","Fragment","color","mdiChevronDown","tabIndex","iconProps","style","transition","transform","textareaProps","textareaRef","displayName"],"mappings":"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"}
|
package/components/item/Item.js
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { extends as _extends, objectWithoutProperties as _objectWithoutProperties } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import React, { forwardRef, useContext, useRef } from 'react';
|
|
3
|
-
import classNames from 'classnames';
|
|
4
|
-
import { useMenuItem } from './useMenuItem.js';
|
|
5
|
-
import { useMergeRefs } from '@redsift/popovers';
|
|
6
|
-
import { FocusWithinGroupContext, RenderedListboxItem, useId, isComponent, useTheme, ButtonsColorPalette, ConditionalWrapper, StyledGradientBorder, StyledItem } from '@redsift/design-system';
|
|
7
|
-
|
|
8
|
-
const _excluded = ["borderRadius", "children", "className", "color", "hasBorder", "id", "isActive", "isDisabled", "isHovered", "theme", "onClick"];
|
|
9
|
-
const COMPONENT_NAME = 'Item';
|
|
10
|
-
const CLASSNAME = 'redsift-item';
|
|
11
|
-
const RenderedMenuItem = /*#__PURE__*/forwardRef((props, ref) => {
|
|
12
|
-
const {
|
|
13
|
-
borderRadius = '0',
|
|
14
|
-
children,
|
|
15
|
-
className,
|
|
16
|
-
color: propsColor,
|
|
17
|
-
hasBorder,
|
|
18
|
-
id: propsId,
|
|
19
|
-
isActive,
|
|
20
|
-
isDisabled: propsIsDisabled,
|
|
21
|
-
isHovered,
|
|
22
|
-
theme: propsTheme,
|
|
23
|
-
onClick
|
|
24
|
-
} = props,
|
|
25
|
-
forwardedProps = _objectWithoutProperties(props, _excluded);
|
|
26
|
-
const [_id] = useId();
|
|
27
|
-
const id = propsId !== null && propsId !== void 0 ? propsId : _id;
|
|
28
|
-
const _ref = useRef();
|
|
29
|
-
const divRef = useMergeRefs([ref, _ref]);
|
|
30
|
-
const linkRef = useRef(null);
|
|
31
|
-
const isLinkMenuItem = isComponent('Link')(children);
|
|
32
|
-
const {
|
|
33
|
-
tabIndex,
|
|
34
|
-
isFocused,
|
|
35
|
-
isDisabled,
|
|
36
|
-
handleKeyDown,
|
|
37
|
-
handleClick
|
|
38
|
-
} = useMenuItem({
|
|
39
|
-
domElementRef: _ref,
|
|
40
|
-
id,
|
|
41
|
-
isDisabled: propsIsDisabled,
|
|
42
|
-
onClick: onClick,
|
|
43
|
-
isLinkMenuItem,
|
|
44
|
-
linkRef,
|
|
45
|
-
hasPopup: props['aria-haspopup'] !== undefined
|
|
46
|
-
});
|
|
47
|
-
const theme = useTheme(propsTheme);
|
|
48
|
-
const color = Object.values(ButtonsColorPalette).includes(propsColor) ? propsColor : 'primary';
|
|
49
|
-
const isGradient = color === ButtonsColorPalette.radar;
|
|
50
|
-
return /*#__PURE__*/React.createElement(ConditionalWrapper, {
|
|
51
|
-
condition: isGradient,
|
|
52
|
-
wrapper: children => /*#__PURE__*/React.createElement(StyledGradientBorder, {
|
|
53
|
-
$borderRadius: borderRadius,
|
|
54
|
-
$color: color,
|
|
55
|
-
$isActive: isActive,
|
|
56
|
-
$isDisabled: isDisabled,
|
|
57
|
-
$isHovered: isHovered,
|
|
58
|
-
$theme: theme,
|
|
59
|
-
width: "auto"
|
|
60
|
-
}, children)
|
|
61
|
-
}, /*#__PURE__*/React.createElement(StyledItem, _extends({
|
|
62
|
-
as: "li",
|
|
63
|
-
role: isLinkMenuItem ? 'none' : 'menuitem'
|
|
64
|
-
}, forwardedProps, {
|
|
65
|
-
id: id,
|
|
66
|
-
$borderRadius: borderRadius,
|
|
67
|
-
$color: color,
|
|
68
|
-
$hasBorder: hasBorder,
|
|
69
|
-
$hasCheckbox: false,
|
|
70
|
-
$isActive: isActive,
|
|
71
|
-
$isDisabled: isDisabled,
|
|
72
|
-
$isGradient: isGradient,
|
|
73
|
-
$isHovered: isHovered || isFocused,
|
|
74
|
-
$theme: theme,
|
|
75
|
-
"aria-disabled": isDisabled,
|
|
76
|
-
className: classNames(Item.className, className),
|
|
77
|
-
onClick: isDisabled ? undefined : handleClick,
|
|
78
|
-
ref: divRef,
|
|
79
|
-
onKeyDown: handleKeyDown,
|
|
80
|
-
tabIndex: tabIndex
|
|
81
|
-
}), isLinkMenuItem ? /*#__PURE__*/React.cloneElement(children, {
|
|
82
|
-
role: 'menuitem',
|
|
83
|
-
ref: linkRef
|
|
84
|
-
}) : children));
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* The Item component.
|
|
89
|
-
*/
|
|
90
|
-
const Item = /*#__PURE__*/forwardRef((props, ref) => {
|
|
91
|
-
const {
|
|
92
|
-
value
|
|
93
|
-
} = props;
|
|
94
|
-
const focusContext = useContext(FocusWithinGroupContext);
|
|
95
|
-
const isListbox = focusContext.state.listRole === 'listbox';
|
|
96
|
-
if (!focusContext.state.filter) {
|
|
97
|
-
return isListbox ? /*#__PURE__*/React.createElement(RenderedListboxItem, _extends({}, props, {
|
|
98
|
-
value: props.value,
|
|
99
|
-
ref: ref
|
|
100
|
-
})) : /*#__PURE__*/React.createElement(RenderedMenuItem, _extends({}, props, {
|
|
101
|
-
ref: ref
|
|
102
|
-
}));
|
|
103
|
-
}
|
|
104
|
-
const {
|
|
105
|
-
value: filterValue,
|
|
106
|
-
type,
|
|
107
|
-
caseSensitive
|
|
108
|
-
} = focusContext.state.filter;
|
|
109
|
-
if (!filterValue) {
|
|
110
|
-
return isListbox ? /*#__PURE__*/React.createElement(RenderedListboxItem, _extends({}, props, {
|
|
111
|
-
value: props.value,
|
|
112
|
-
ref: ref
|
|
113
|
-
})) : /*#__PURE__*/React.createElement(RenderedMenuItem, _extends({}, props, {
|
|
114
|
-
ref: ref
|
|
115
|
-
}));
|
|
116
|
-
} else if (caseSensitive && (type === 'startsWith' && value.startsWith(filterValue) || type === 'contains' && value.includes(filterValue) || type === 'endsWith' && value.endsWith(filterValue))) {
|
|
117
|
-
return isListbox ? /*#__PURE__*/React.createElement(RenderedListboxItem, _extends({}, props, {
|
|
118
|
-
value: props.value,
|
|
119
|
-
ref: ref
|
|
120
|
-
})) : /*#__PURE__*/React.createElement(RenderedMenuItem, _extends({}, props, {
|
|
121
|
-
ref: ref
|
|
122
|
-
}));
|
|
123
|
-
} else if (!caseSensitive && (type === 'startsWith' && value.toLowerCase().startsWith(filterValue.toLowerCase()) || type === 'contains' && value.toLowerCase().includes(filterValue.toLowerCase()) || type === 'endsWith' && value.toLowerCase().endsWith(filterValue.toLowerCase()))) {
|
|
124
|
-
return isListbox ? /*#__PURE__*/React.createElement(RenderedListboxItem, _extends({}, props, {
|
|
125
|
-
value: props.value,
|
|
126
|
-
ref: ref
|
|
127
|
-
})) : /*#__PURE__*/React.createElement(RenderedMenuItem, _extends({}, props, {
|
|
128
|
-
ref: ref
|
|
129
|
-
}));
|
|
130
|
-
}
|
|
131
|
-
return null;
|
|
132
|
-
});
|
|
133
|
-
Item.className = CLASSNAME;
|
|
134
|
-
Item.displayName = COMPONENT_NAME;
|
|
135
|
-
|
|
136
|
-
export { Item };
|
|
137
|
-
//# sourceMappingURL=Item.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Item.js","sources":["../../../src/components/item/Item.tsx"],"sourcesContent":["import React, { forwardRef, RefObject, useContext, useRef } from 'react';\nimport classNames from 'classnames';\nimport { useMenuItem } from './useMenuItem';\nimport { useMergeRefs } from '@redsift/popovers';\nimport {\n ButtonsColorPalette,\n Comp,\n ConditionalWrapper,\n FocusWithinGroupContext,\n isComponent,\n StyledGradientBorder,\n useTheme,\n RenderedListboxItem,\n ItemProps,\n StyledItem,\n useId,\n} from '@redsift/design-system';\n\nconst COMPONENT_NAME = 'Item';\nconst CLASSNAME = 'redsift-item';\n\nconst RenderedMenuItem: Comp<Omit<ItemProps, 'value'>, HTMLElement> = forwardRef((props, ref) => {\n const {\n borderRadius = '0',\n children,\n className,\n color: propsColor,\n hasBorder,\n id: propsId,\n isActive,\n isDisabled: propsIsDisabled,\n isHovered,\n theme: propsTheme,\n onClick,\n ...forwardedProps\n } = props;\n const [_id] = useId();\n const id = propsId ?? _id;\n const _ref = useRef<HTMLElement>();\n const divRef = useMergeRefs([ref, _ref]);\n const linkRef = useRef<HTMLAnchorElement>(null);\n\n const isLinkMenuItem = isComponent('Link')(children);\n const { tabIndex, isFocused, isDisabled, handleKeyDown, handleClick } = useMenuItem({\n domElementRef: _ref as RefObject<Element>,\n id,\n isDisabled: propsIsDisabled!,\n onClick: onClick as any,\n isLinkMenuItem,\n linkRef,\n hasPopup: props['aria-haspopup'] !== undefined,\n });\n\n const theme = useTheme(propsTheme);\n const color = Object.values(ButtonsColorPalette).includes(propsColor!) ? propsColor : 'primary';\n const isGradient = color === ButtonsColorPalette.radar;\n\n return (\n <ConditionalWrapper\n condition={isGradient}\n wrapper={(children) => (\n <StyledGradientBorder\n $borderRadius={borderRadius}\n $color={color}\n $isActive={isActive}\n $isDisabled={isDisabled}\n $isHovered={isHovered}\n $theme={theme}\n width=\"auto\"\n >\n {children}\n </StyledGradientBorder>\n )}\n >\n <StyledItem\n as=\"li\"\n role={isLinkMenuItem ? 'none' : 'menuitem'}\n {...forwardedProps}\n id={id}\n $borderRadius={borderRadius}\n $color={color}\n $hasBorder={hasBorder}\n $hasCheckbox={false}\n $isActive={isActive}\n $isDisabled={isDisabled}\n $isGradient={isGradient}\n $isHovered={isHovered || isFocused}\n $theme={theme}\n aria-disabled={isDisabled}\n className={classNames(Item.className, className)}\n onClick={isDisabled ? undefined : handleClick}\n ref={divRef}\n onKeyDown={handleKeyDown}\n tabIndex={tabIndex}\n >\n {isLinkMenuItem\n ? React.cloneElement(children, {\n role: 'menuitem',\n ref: linkRef,\n })\n : children}\n </StyledItem>\n </ConditionalWrapper>\n );\n});\n\n/**\n * The Item component.\n */\nexport const Item: Comp<ItemProps, HTMLElement> = forwardRef((props, ref) => {\n const { value } = props;\n const focusContext = useContext(FocusWithinGroupContext);\n const isListbox = focusContext.state.listRole === 'listbox';\n\n if (!focusContext.state.filter) {\n return isListbox ? (\n <RenderedListboxItem {...props} value={props.value!} ref={ref} />\n ) : (\n <RenderedMenuItem {...props} ref={ref} />\n );\n }\n\n const { value: filterValue, type, caseSensitive } = focusContext.state.filter;\n\n if (!filterValue) {\n return isListbox ? (\n <RenderedListboxItem {...props} value={props.value!} ref={ref} />\n ) : (\n <RenderedMenuItem {...props} ref={ref} />\n );\n } else if (\n caseSensitive &&\n ((type === 'startsWith' && value!.startsWith(filterValue)) ||\n (type === 'contains' && value!.includes(filterValue)) ||\n (type === 'endsWith' && value!.endsWith(filterValue)))\n ) {\n return isListbox ? (\n <RenderedListboxItem {...props} value={props.value!} ref={ref} />\n ) : (\n <RenderedMenuItem {...props} ref={ref} />\n );\n } else if (\n !caseSensitive &&\n ((type === 'startsWith' && value!.toLowerCase().startsWith(filterValue.toLowerCase())) ||\n (type === 'contains' && value!.toLowerCase().includes(filterValue.toLowerCase())) ||\n (type === 'endsWith' && value!.toLowerCase().endsWith(filterValue.toLowerCase())))\n ) {\n return isListbox ? (\n <RenderedListboxItem {...props} value={props.value!} ref={ref} />\n ) : (\n <RenderedMenuItem {...props} ref={ref} />\n );\n }\n\n return null;\n});\nItem.className = CLASSNAME;\nItem.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","RenderedMenuItem","forwardRef","props","ref","borderRadius","children","className","color","propsColor","hasBorder","id","propsId","isActive","isDisabled","propsIsDisabled","isHovered","theme","propsTheme","onClick","forwardedProps","_objectWithoutProperties","_excluded","_id","useId","_ref","useRef","divRef","useMergeRefs","linkRef","isLinkMenuItem","isComponent","tabIndex","isFocused","handleKeyDown","handleClick","useMenuItem","domElementRef","hasPopup","undefined","useTheme","Object","values","ButtonsColorPalette","includes","isGradient","radar","React","createElement","ConditionalWrapper","condition","wrapper","StyledGradientBorder","$borderRadius","$color","$isActive","$isDisabled","$isHovered","$theme","width","StyledItem","_extends","as","role","$hasBorder","$hasCheckbox","$isGradient","classNames","Item","onKeyDown","cloneElement","value","focusContext","useContext","FocusWithinGroupContext","isListbox","state","listRole","filter","RenderedListboxItem","filterValue","type","caseSensitive","startsWith","endsWith","toLowerCase","displayName"],"mappings":"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"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { useEffect, useCallback } from 'react';
|
|
2
|
-
import { usePopoverContext } from '@redsift/popovers';
|
|
3
|
-
import { useFocusOnListItem } from '@redsift/design-system';
|
|
4
|
-
|
|
5
|
-
function useMenuItem(props) {
|
|
6
|
-
const {
|
|
7
|
-
domElementRef,
|
|
8
|
-
id,
|
|
9
|
-
isDisabled,
|
|
10
|
-
onClick,
|
|
11
|
-
isLinkMenuItem,
|
|
12
|
-
linkRef,
|
|
13
|
-
hasPopup
|
|
14
|
-
} = props;
|
|
15
|
-
const {
|
|
16
|
-
handleOpen,
|
|
17
|
-
hideInsteadOfClose,
|
|
18
|
-
setHideInsteadOfClose
|
|
19
|
-
} = usePopoverContext();
|
|
20
|
-
const {
|
|
21
|
-
tabIndex,
|
|
22
|
-
isFocused,
|
|
23
|
-
handleKeyDown: handleFocusKeyDown,
|
|
24
|
-
handleClick: handleFocusClick
|
|
25
|
-
} = useFocusOnListItem({
|
|
26
|
-
domElementRef,
|
|
27
|
-
isDisabled: isDisabled,
|
|
28
|
-
id
|
|
29
|
-
});
|
|
30
|
-
useEffect(() => {
|
|
31
|
-
if (hasPopup && !hideInsteadOfClose) {
|
|
32
|
-
setHideInsteadOfClose === null || setHideInsteadOfClose === void 0 ? void 0 : setHideInsteadOfClose(true);
|
|
33
|
-
}
|
|
34
|
-
}, [hasPopup, hideInsteadOfClose, setHideInsteadOfClose]);
|
|
35
|
-
const handleKeyDown = useCallback(event => {
|
|
36
|
-
const code = event.code;
|
|
37
|
-
if (code === 'Enter' || code === 'Space') {
|
|
38
|
-
if (isLinkMenuItem) {
|
|
39
|
-
var _linkRef$current;
|
|
40
|
-
linkRef === null || linkRef === void 0 ? void 0 : (_linkRef$current = linkRef.current) === null || _linkRef$current === void 0 ? void 0 : _linkRef$current.click();
|
|
41
|
-
} else {
|
|
42
|
-
onClick === null || onClick === void 0 ? void 0 : onClick();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
handleFocusKeyDown(event);
|
|
46
|
-
handleOpen(false);
|
|
47
|
-
}, []);
|
|
48
|
-
const handleClick = useCallback(() => {
|
|
49
|
-
handleFocusClick();
|
|
50
|
-
onClick === null || onClick === void 0 ? void 0 : onClick();
|
|
51
|
-
handleOpen(false);
|
|
52
|
-
}, []);
|
|
53
|
-
useEffect(() => {
|
|
54
|
-
if (isFocused && domElementRef.current) {
|
|
55
|
-
var _current;
|
|
56
|
-
(_current = domElementRef.current) === null || _current === void 0 ? void 0 : _current.focus();
|
|
57
|
-
}
|
|
58
|
-
}, [isFocused]);
|
|
59
|
-
return {
|
|
60
|
-
tabIndex,
|
|
61
|
-
isFocused,
|
|
62
|
-
isDisabled,
|
|
63
|
-
handleKeyDown,
|
|
64
|
-
handleClick
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export { useMenuItem };
|
|
69
|
-
//# sourceMappingURL=useMenuItem.js.map
|