@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.
Files changed (141) hide show
  1. package/{components/combobox/Combobox.d.ts → _internal/Combobox2.js} +7 -7
  2. package/_internal/Combobox2.js.map +1 -0
  3. package/{components/combobox-content/ComboboxContent.d.ts → _internal/ComboboxContent.js} +5 -5
  4. package/_internal/ComboboxContent.js.map +1 -0
  5. package/{components/combobox-content-footer/ComboboxContentFooter.d.ts → _internal/ComboboxContentFooter.js} +2 -2
  6. package/_internal/ComboboxContentFooter.js.map +1 -0
  7. package/{components/combobox-content-header/ComboboxContentHeader.d.ts → _internal/ComboboxContentHeader.js} +2 -2
  8. package/_internal/ComboboxContentHeader.js.map +1 -0
  9. package/{components/combobox-content-listbox/ComboboxContentListbox.d.ts → _internal/ComboboxContentListbox.js} +2 -2
  10. package/_internal/ComboboxContentListbox.js.map +1 -0
  11. package/{components/combobox-trigger/ComboboxTrigger.d.ts → _internal/ComboboxTrigger.js} +2 -2
  12. package/_internal/ComboboxTrigger.js.map +1 -0
  13. package/{components/item/Item.d.ts → _internal/Item2.js} +1 -1
  14. package/_internal/Item2.js.map +1 -0
  15. package/{components/menu-button/types.d.ts → _internal/MenuButton.js} +27 -2
  16. package/_internal/MenuButton.js.map +1 -0
  17. package/{components/menu-button-content/MenuButtonContent.d.ts → _internal/MenuButtonContent.js} +5 -5
  18. package/_internal/MenuButtonContent.js.map +1 -0
  19. package/{components/menu-button-content-footer/MenuButtonContentFooter.d.ts → _internal/MenuButtonContentFooter.js} +2 -2
  20. package/_internal/MenuButtonContentFooter.js.map +1 -0
  21. package/{components/menu-button-content-header/MenuButtonContentHeader.d.ts → _internal/MenuButtonContentHeader.js} +2 -2
  22. package/_internal/MenuButtonContentHeader.js.map +1 -0
  23. package/{components/menu-button-content-menu/MenuButtonContentMenu.d.ts → _internal/MenuButtonContentMenu.js} +2 -2
  24. package/_internal/MenuButtonContentMenu.js.map +1 -0
  25. package/{components/menu-button-trigger/MenuButtonTrigger.d.ts → _internal/MenuButtonTrigger.js} +2 -2
  26. package/_internal/MenuButtonTrigger.js.map +1 -0
  27. package/{components/select/types.d.ts → _internal/Select2.js} +20 -2
  28. package/_internal/Select2.js.map +1 -0
  29. package/{components/select-content/SelectContent.d.ts → _internal/SelectContent.js} +2 -2
  30. package/_internal/SelectContent.js.map +1 -0
  31. package/{components/select-trigger/SelectTrigger.d.ts → _internal/SelectTrigger.js} +2 -2
  32. package/_internal/SelectTrigger.js.map +1 -0
  33. package/{_virtual → _internal}/_rollupPluginBabelHelpers.js +1 -1
  34. package/_internal/combobox-content-footer.js +4 -0
  35. package/_internal/combobox-content-footer.js.map +1 -0
  36. package/_internal/combobox-content-header.js +4 -0
  37. package/_internal/combobox-content-header.js.map +1 -0
  38. package/_internal/combobox-content-listbox.js +6 -0
  39. package/_internal/combobox-content-listbox.js.map +1 -0
  40. package/_internal/combobox-content.js +9 -0
  41. package/_internal/combobox-content.js.map +1 -0
  42. package/_internal/combobox-trigger.js +6 -0
  43. package/_internal/combobox-trigger.js.map +1 -0
  44. package/_internal/combobox.js +10 -0
  45. package/_internal/combobox.js.map +1 -0
  46. package/_internal/item.js +2 -0
  47. package/_internal/item.js.map +1 -0
  48. package/_internal/menu-button-content-footer.js +4 -0
  49. package/_internal/menu-button-content-footer.js.map +1 -0
  50. package/_internal/menu-button-content-header.js +4 -0
  51. package/_internal/menu-button-content-header.js.map +1 -0
  52. package/_internal/menu-button-content-menu.js +3 -0
  53. package/_internal/menu-button-content-menu.js.map +1 -0
  54. package/_internal/menu-button-content.js +8 -0
  55. package/_internal/menu-button-content.js.map +1 -0
  56. package/_internal/menu-button-trigger.js +5 -0
  57. package/_internal/menu-button-trigger.js.map +1 -0
  58. package/_internal/menu-button.js +9 -0
  59. package/_internal/menu-button.js.map +1 -0
  60. package/_internal/select-content.js +4 -0
  61. package/_internal/select-content.js.map +1 -0
  62. package/_internal/select-trigger.js +5 -0
  63. package/_internal/select-trigger.js.map +1 -0
  64. package/_internal/select.js +6 -0
  65. package/_internal/select.js.map +1 -0
  66. package/{components/combobox-content-footer/types.d.ts → _internal/types.js} +1 -1
  67. package/_internal/types.js.map +1 -0
  68. package/{components/menu-button-content/types.d.ts → _internal/types10.js} +1 -1
  69. package/{components/menu-button-trigger/types.d.ts → _internal/types11.js} +1 -1
  70. package/{components/select-content/types.d.ts → _internal/types12.js} +1 -1
  71. package/{components/select-trigger/types.d.ts → _internal/types13.js} +1 -1
  72. package/{components/combobox-content-header/types.d.ts → _internal/types2.js} +1 -1
  73. package/{components/combobox-content-listbox/types.d.ts → _internal/types3.js} +2 -2
  74. package/{components/combobox-content/types.d.ts → _internal/types4.js} +1 -1
  75. package/{components/combobox-trigger/types.d.ts → _internal/types5.js} +2 -2
  76. package/{components/combobox/types.d.ts → _internal/types6.js} +1 -1
  77. package/{components/menu-button-content-footer/types.d.ts → _internal/types7.js} +1 -1
  78. package/{components/menu-button-content-header/types.d.ts → _internal/types8.js} +1 -1
  79. package/{components/menu-button-content-menu/types.d.ts → _internal/types9.js} +1 -1
  80. package/index.js +32 -18
  81. package/package.json +5 -5
  82. package/components/combobox/Combobox.js +0 -151
  83. package/components/combobox/Combobox.js.map +0 -1
  84. package/components/combobox/context.js +0 -6
  85. package/components/combobox/context.js.map +0 -1
  86. package/components/combobox/intl/en-US.json.js +0 -13
  87. package/components/combobox/intl/en-US.json.js.map +0 -1
  88. package/components/combobox/intl/fr-FR.json.js +0 -13
  89. package/components/combobox/intl/fr-FR.json.js.map +0 -1
  90. package/components/combobox/intl/index.js +0 -10
  91. package/components/combobox/intl/index.js.map +0 -1
  92. package/components/combobox/types.js +0 -22
  93. package/components/combobox/types.js.map +0 -1
  94. package/components/combobox-content/ComboboxContent.js +0 -70
  95. package/components/combobox-content/ComboboxContent.js.map +0 -1
  96. package/components/combobox-content-footer/ComboboxContentFooter.js +0 -28
  97. package/components/combobox-content-footer/ComboboxContentFooter.js.map +0 -1
  98. package/components/combobox-content-footer/styles.js +0 -12
  99. package/components/combobox-content-footer/styles.js.map +0 -1
  100. package/components/combobox-content-header/ComboboxContentHeader.js +0 -28
  101. package/components/combobox-content-header/ComboboxContentHeader.js.map +0 -1
  102. package/components/combobox-content-header/styles.js +0 -12
  103. package/components/combobox-content-header/styles.js.map +0 -1
  104. package/components/combobox-content-listbox/ComboboxContentListbox.js +0 -124
  105. package/components/combobox-content-listbox/ComboboxContentListbox.js.map +0 -1
  106. package/components/combobox-trigger/ComboboxTrigger.js +0 -352
  107. package/components/combobox-trigger/ComboboxTrigger.js.map +0 -1
  108. package/components/item/Item.js +0 -137
  109. package/components/item/Item.js.map +0 -1
  110. package/components/item/useMenuItem.js +0 -69
  111. package/components/item/useMenuItem.js.map +0 -1
  112. package/components/menu-button/MenuButton.d.ts +0 -29
  113. package/components/menu-button/MenuButton.js +0 -76
  114. package/components/menu-button/MenuButton.js.map +0 -1
  115. package/components/menu-button/context.js +0 -6
  116. package/components/menu-button/context.js.map +0 -1
  117. package/components/menu-button-content/MenuButtonContent.js +0 -68
  118. package/components/menu-button-content/MenuButtonContent.js.map +0 -1
  119. package/components/menu-button-content-footer/MenuButtonContentFooter.js +0 -28
  120. package/components/menu-button-content-footer/MenuButtonContentFooter.js.map +0 -1
  121. package/components/menu-button-content-footer/styles.js +0 -12
  122. package/components/menu-button-content-footer/styles.js.map +0 -1
  123. package/components/menu-button-content-header/MenuButtonContentHeader.js +0 -28
  124. package/components/menu-button-content-header/MenuButtonContentHeader.js.map +0 -1
  125. package/components/menu-button-content-header/styles.js +0 -12
  126. package/components/menu-button-content-header/styles.js.map +0 -1
  127. package/components/menu-button-content-menu/MenuButtonContentMenu.js +0 -41
  128. package/components/menu-button-content-menu/MenuButtonContentMenu.js.map +0 -1
  129. package/components/menu-button-trigger/MenuButtonTrigger.js +0 -167
  130. package/components/menu-button-trigger/MenuButtonTrigger.js.map +0 -1
  131. package/components/select/Select.d.ts +0 -22
  132. package/components/select/Select.js +0 -116
  133. package/components/select/Select.js.map +0 -1
  134. package/components/select/context.js +0 -6
  135. package/components/select/context.js.map +0 -1
  136. package/components/select-content/SelectContent.js +0 -62
  137. package/components/select-content/SelectContent.js.map +0 -1
  138. package/components/select-trigger/SelectTrigger.js +0 -249
  139. package/components/select-trigger/SelectTrigger.js.map +0 -1
  140. package/index.d.ts +0 -32
  141. /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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"}
@@ -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