@contentful/f36-autocomplete 4.13.0 → 4.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # Change Log
2
2
 
3
+ ## 4.15.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#2165](https://github.com/contentful/forma-36/pull/2165) [`5582f33c`](https://github.com/contentful/forma-36/commit/5582f33c0674850a30cc2a1792aad72fa219f7de) Thanks [@loweisz](https://github.com/loweisz)! - fix(autocomplete): hide list component when when items and search value are empty
8
+
9
+ - Updated dependencies []:
10
+ - @contentful/f36-button@4.15.1
11
+ - @contentful/f36-forms@4.15.1
12
+ - @contentful/f36-icons@4.15.1
13
+ - @contentful/f36-popover@4.15.1
14
+ - @contentful/f36-skeleton@4.15.1
15
+ - @contentful/f36-typography@4.15.1
16
+ - @contentful/f36-utils@4.15.1
17
+ - @contentful/f36-core@4.15.1
18
+
19
+ ## 4.15.0
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies []:
24
+ - @contentful/f36-button@4.15.0
25
+ - @contentful/f36-forms@4.15.0
26
+ - @contentful/f36-icons@4.15.0
27
+ - @contentful/f36-popover@4.15.0
28
+ - @contentful/f36-skeleton@4.15.0
29
+ - @contentful/f36-typography@4.15.0
30
+ - @contentful/f36-utils@4.15.0
31
+ - @contentful/f36-core@4.15.0
32
+
33
+ ## 4.14.0
34
+
35
+ ### Patch Changes
36
+
37
+ - Updated dependencies []:
38
+ - @contentful/f36-button@4.14.0
39
+ - @contentful/f36-forms@4.14.0
40
+ - @contentful/f36-icons@4.14.0
41
+ - @contentful/f36-popover@4.14.0
42
+ - @contentful/f36-skeleton@4.14.0
43
+ - @contentful/f36-typography@4.14.0
44
+ - @contentful/f36-utils@4.14.0
45
+ - @contentful/f36-core@4.14.0
46
+
3
47
  ## 4.13.0
4
48
 
5
49
  ### Patch Changes
package/dist/main.js CHANGED
@@ -36,73 +36,72 @@ $parcel$export(module.exports, "Autocomplete", () => $56e6e764f18116b7$export$2f
36
36
 
37
37
 
38
38
  const $e938248654439d1d$export$71b73d9f7d678746 = (listMaxHeight)=>({
39
- autocomplete: /*#__PURE__*/ $hVoOH$emotion.css({
39
+ autocomplete: /*#__PURE__*/ (0, $hVoOH$emotion.css)({
40
40
  name: "1jke4yk",
41
41
  styles: "position:relative;width:100%;"
42
42
  }),
43
- combobox: /*#__PURE__*/ $hVoOH$emotion.css({
43
+ combobox: /*#__PURE__*/ (0, $hVoOH$emotion.css)({
44
44
  name: "79elbk",
45
45
  styles: "position:relative;"
46
46
  }),
47
- inputField: /*#__PURE__*/ $hVoOH$emotion.css({
48
- paddingRight: ($parcel$interopDefault($hVoOH$contentfulf36tokens)).spacingXl,
49
- textOverflow: 'ellipsis',
50
- whiteSpace: 'nowrap'
47
+ inputField: /*#__PURE__*/ (0, $hVoOH$emotion.css)({
48
+ paddingRight: (0, ($parcel$interopDefault($hVoOH$contentfulf36tokens))).spacingXl,
49
+ textOverflow: "ellipsis",
50
+ whiteSpace: "nowrap"
51
51
  }),
52
- toggleButton: /*#__PURE__*/ $hVoOH$emotion.css({
53
- position: 'absolute',
54
- top: '1px',
55
- right: '1px',
52
+ toggleButton: /*#__PURE__*/ (0, $hVoOH$emotion.css)({
53
+ position: "absolute",
54
+ top: "1px",
55
+ right: "1px",
56
56
  zIndex: 1,
57
- padding: ($parcel$interopDefault($hVoOH$contentfulf36tokens)).spacing2Xs,
58
- height: '38px'
57
+ padding: (0, ($parcel$interopDefault($hVoOH$contentfulf36tokens))).spacing2Xs,
58
+ height: "38px"
59
59
  }),
60
- content: /*#__PURE__*/ $hVoOH$emotion.css({
61
- overflow: 'auto',
60
+ content: /*#__PURE__*/ (0, $hVoOH$emotion.css)({
61
+ overflow: "auto",
62
62
  maxHeight: `${listMaxHeight}px`
63
63
  }),
64
- list: /*#__PURE__*/ $hVoOH$emotion.css({
65
- listStyle: 'none',
66
- padding: `${($parcel$interopDefault($hVoOH$contentfulf36tokens)).spacingXs} 0`,
64
+ list: /*#__PURE__*/ (0, $hVoOH$emotion.css)({
65
+ listStyle: "none",
66
+ padding: `${(0, ($parcel$interopDefault($hVoOH$contentfulf36tokens))).spacingXs} 0`,
67
67
  margin: 0
68
68
  }),
69
- groupTitle: /*#__PURE__*/ $hVoOH$emotion.css({
70
- padding: `${($parcel$interopDefault($hVoOH$contentfulf36tokens)).spacingXs} ${($parcel$interopDefault($hVoOH$contentfulf36tokens)).spacingM}`,
71
- lineHeight: ($parcel$interopDefault($hVoOH$contentfulf36tokens)).lineHeightM
69
+ groupTitle: /*#__PURE__*/ (0, $hVoOH$emotion.css)({
70
+ padding: `${(0, ($parcel$interopDefault($hVoOH$contentfulf36tokens))).spacingXs} ${(0, ($parcel$interopDefault($hVoOH$contentfulf36tokens))).spacingM}`,
71
+ lineHeight: (0, ($parcel$interopDefault($hVoOH$contentfulf36tokens))).lineHeightM
72
72
  }),
73
- noMatchesTitle: /*#__PURE__*/ $hVoOH$emotion.css({
74
- color: ($parcel$interopDefault($hVoOH$contentfulf36tokens)).gray500,
75
- margin: `${($parcel$interopDefault($hVoOH$contentfulf36tokens)).spacingM} 0 ${($parcel$interopDefault($hVoOH$contentfulf36tokens)).spacingM} 0`
73
+ noMatchesTitle: /*#__PURE__*/ (0, $hVoOH$emotion.css)({
74
+ color: (0, ($parcel$interopDefault($hVoOH$contentfulf36tokens))).gray500,
75
+ margin: `${(0, ($parcel$interopDefault($hVoOH$contentfulf36tokens))).spacingM} 0 ${(0, ($parcel$interopDefault($hVoOH$contentfulf36tokens))).spacingM} 0`
76
76
  }),
77
- item: /*#__PURE__*/ $hVoOH$emotion.css({
78
- display: 'block',
79
- padding: `${($parcel$interopDefault($hVoOH$contentfulf36tokens)).spacingXs} ${($parcel$interopDefault($hVoOH$contentfulf36tokens)).spacingM}`,
80
- wordBreak: 'break-word',
81
- whiteSpace: 'break-spaces',
82
- cursor: 'pointer',
83
- hyphens: 'auto',
84
- '&:focus, &:hover': {
85
- backgroundColor: ($parcel$interopDefault($hVoOH$contentfulf36tokens)).gray100
77
+ item: /*#__PURE__*/ (0, $hVoOH$emotion.css)({
78
+ display: "block",
79
+ padding: `${(0, ($parcel$interopDefault($hVoOH$contentfulf36tokens))).spacingXs} ${(0, ($parcel$interopDefault($hVoOH$contentfulf36tokens))).spacingM}`,
80
+ wordBreak: "break-word",
81
+ whiteSpace: "break-spaces",
82
+ cursor: "pointer",
83
+ hyphens: "auto",
84
+ "&:focus, &:hover": {
85
+ backgroundColor: (0, ($parcel$interopDefault($hVoOH$contentfulf36tokens))).gray100
86
86
  },
87
- '&:active': {
88
- backgroundColor: ($parcel$interopDefault($hVoOH$contentfulf36tokens)).gray200
87
+ "&:active": {
88
+ backgroundColor: (0, ($parcel$interopDefault($hVoOH$contentfulf36tokens))).gray200
89
89
  }
90
90
  }),
91
- disabled: /*#__PURE__*/ $hVoOH$emotion.css({
91
+ disabled: /*#__PURE__*/ (0, $hVoOH$emotion.css)({
92
92
  name: "1e07izz",
93
93
  styles: "opacity:0.5;pointer-events:none;"
94
94
  }),
95
- highlighted: /*#__PURE__*/ $hVoOH$emotion.css({
96
- backgroundColor: ($parcel$interopDefault($hVoOH$contentfulf36tokens)).gray100
95
+ highlighted: /*#__PURE__*/ (0, $hVoOH$emotion.css)({
96
+ backgroundColor: (0, ($parcel$interopDefault($hVoOH$contentfulf36tokens))).gray100
97
97
  })
98
- })
99
- ;
98
+ });
100
99
 
101
100
 
102
101
  const $26b30f0765231b47$export$4db5c29873bb228f = (props)=>{
103
102
  const { items: items , elementStartIndex: elementStartIndex , highlightedIndex: highlightedIndex , getItemProps: getItemProps , renderItem: renderItem , inputValue: inputValue , listMaxHeight: listMaxHeight = 180 } = props;
104
- const styles = $e938248654439d1d$export$71b73d9f7d678746(listMaxHeight);
105
- return /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement("ul", {
103
+ const styles = (0, $e938248654439d1d$export$71b73d9f7d678746)(listMaxHeight);
104
+ return /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement("ul", {
106
105
  className: styles.list,
107
106
  "data-test-id": "cf-autocomplete-list"
108
107
  }, items.map((item, index)=>{
@@ -111,44 +110,43 @@ const $26b30f0765231b47$export$4db5c29873bb228f = (props)=>{
111
110
  item: item,
112
111
  index: itemIndex
113
112
  });
114
- return /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement($hVoOH$contentfulf36typography.Text, {
113
+ return /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement((0, $hVoOH$contentfulf36typography.Text), {
115
114
  ...itemProps,
116
115
  as: "li",
117
116
  key: itemIndex,
118
- className: $hVoOH$emotion.cx([
117
+ className: (0, $hVoOH$emotion.cx)([
119
118
  styles.item,
120
119
  highlightedIndex === itemIndex && styles.highlighted
121
120
  ]),
122
121
  "data-test-id": `cf-autocomplete-list-item-${itemIndex}`
123
- }, renderItem ? renderItem(item, inputValue) : typeof item === 'string' ? /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement($26b30f0765231b47$var$HighlightedItem, {
122
+ }, renderItem ? renderItem(item, inputValue) : typeof item === "string" ? /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement($26b30f0765231b47$var$HighlightedItem, {
124
123
  item: item,
125
124
  inputValue: inputValue
126
125
  }) : item);
127
126
  }));
128
127
  };
129
- $26b30f0765231b47$export$4db5c29873bb228f.displayName = 'AutocompleteItems';
128
+ $26b30f0765231b47$export$4db5c29873bb228f.displayName = "AutocompleteItems";
130
129
  function $26b30f0765231b47$var$HighlightedItem({ item: item , inputValue: inputValue }) {
131
- const { before: before , match: match , after: after } = $hVoOH$contentfulf36utils.getStringMatch(item, inputValue);
132
- return /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement(($parcel$interopDefault($hVoOH$react)).Fragment, null, before, /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement("b", null, match), after);
130
+ const { before: before , match: match , after: after } = (0, $hVoOH$contentfulf36utils.getStringMatch)(item, inputValue);
131
+ return /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement((0, ($parcel$interopDefault($hVoOH$react))).Fragment, null, before, /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement("b", null, match), after);
133
132
  }
134
- $26b30f0765231b47$var$HighlightedItem.displayName = 'HighlightedItem';
133
+ $26b30f0765231b47$var$HighlightedItem.displayName = "HighlightedItem";
135
134
 
136
135
 
137
136
 
138
137
  function $56e6e764f18116b7$var$_Autocomplete(props, ref) {
139
- const { id: id , className: className , clearAfterSelect: clearAfterSelect = false , closeAfterSelect: closeAfterSelect = true , defaultValue: defaultValue = '' , selectedItem: selectedItem1 , items: items , onInputValueChange: onInputValueChange , onSelectItem: onSelectItem , renderItem: renderItem , icon: icon = /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement($hVoOH$contentfulf36icons.ChevronDownIcon, {
138
+ const { id: id , className: className , clearAfterSelect: clearAfterSelect = false , closeAfterSelect: closeAfterSelect = true , defaultValue: defaultValue = "" , selectedItem: selectedItem1 , items: items , onInputValueChange: onInputValueChange , onSelectItem: onSelectItem , renderItem: renderItem , icon: icon = /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement((0, $hVoOH$contentfulf36icons.ChevronDownIcon), {
140
139
  variant: "muted"
141
- }) , itemToString: itemToString = (item)=>item
142
- , isInvalid: isInvalid , isDisabled: isDisabled , isRequired: isRequired , isReadOnly: isReadOnly , noMatchesMessage: noMatchesMessage = 'No matches found' , placeholder: placeholder = 'Search' , inputRef: inputRef , toggleRef: toggleRef , listRef: listRef , listWidth: listWidth = 'auto' , listMaxHeight: listMaxHeight = 180 , isGrouped: isGrouped = false , isLoading: isLoading = false , usePortal: usePortal = false , testId: testId = 'cf-autocomplete' } = props;
143
- const styles = $e938248654439d1d$export$71b73d9f7d678746(listMaxHeight);
144
- const [inputValue1, setInputValue] = $hVoOH$react.useState(defaultValue);
145
- const handleInputValueChange = $hVoOH$react.useCallback((value)=>{
140
+ }) , itemToString: itemToString = (item)=>item , isInvalid: isInvalid , isDisabled: isDisabled , isRequired: isRequired , isReadOnly: isReadOnly , noMatchesMessage: noMatchesMessage = "No matches found" , placeholder: placeholder = "Search" , inputRef: inputRef , toggleRef: toggleRef , listRef: listRef , listWidth: listWidth = "auto" , listMaxHeight: listMaxHeight = 180 , isGrouped: isGrouped = false , isLoading: isLoading = false , usePortal: usePortal = false , testId: testId = "cf-autocomplete" } = props;
141
+ const styles = (0, $e938248654439d1d$export$71b73d9f7d678746)(listMaxHeight);
142
+ const [inputValue1, setInputValue] = (0, $hVoOH$react.useState)(defaultValue);
143
+ const handleInputValueChange = (0, $hVoOH$react.useCallback)((value)=>{
146
144
  setInputValue(value);
147
145
  onInputValueChange === null || onInputValueChange === void 0 ? void 0 : onInputValueChange(value);
148
146
  }, [
149
147
  onInputValueChange
150
148
  ]); // Handle manually to avoid a jumping cursor, see https://github.com/downshift-js/downshift/issues/1108#issuecomment-842407759
151
- const handleNativeChangeEvent = $hVoOH$react.useCallback((event)=>{
149
+ const handleNativeChangeEvent = (0, $hVoOH$react.useCallback)((event)=>{
152
150
  const value = event.target.value;
153
151
  handleInputValueChange(value);
154
152
  }, [
@@ -157,24 +155,22 @@ function $56e6e764f18116b7$var$_Autocomplete(props, ref) {
157
155
  const flattenItems = $56e6e764f18116b7$var$isUsingGroups(isGrouped, items) ? items.reduce((acc, group)=>[
158
156
  ...acc,
159
157
  ...group.options
160
- ]
161
- , []) : items;
162
- const isShowingNoMatches = $56e6e764f18116b7$var$isUsingGroups(isGrouped, items) ? items.every((group)=>group.options.length === 0
163
- ) : items.length === 0;
164
- const { getComboboxProps: getComboboxProps , getInputProps: getInputProps , getItemProps: getItemProps , getMenuProps: getMenuProps , getToggleButtonProps: getToggleButtonProps , highlightedIndex: highlightedIndex , isOpen: isOpen , toggleMenu: toggleMenu } = $hVoOH$downshift.useCombobox({
158
+ ], []) : items;
159
+ const isShowingNoMatches = $56e6e764f18116b7$var$isUsingGroups(isGrouped, items) ? items.every((group)=>group.options.length === 0) : items.length === 0;
160
+ const { getComboboxProps: getComboboxProps , getInputProps: getInputProps , getItemProps: getItemProps , getMenuProps: getMenuProps , getToggleButtonProps: getToggleButtonProps , highlightedIndex: highlightedIndex , isOpen: isOpen , toggleMenu: toggleMenu } = (0, $hVoOH$downshift.useCombobox)({
165
161
  items: flattenItems,
166
162
  selectedItem: selectedItem1,
167
163
  inputValue: inputValue1,
168
164
  itemToString: itemToString,
169
165
  onInputValueChange: ({ type: type , inputValue: inputValue })=>{
170
- if (type !== '__input_change__') handleInputValueChange(inputValue);
166
+ if (type !== "__input_change__") handleInputValueChange(inputValue);
171
167
  },
172
168
  onStateChange: ({ type: type , selectedItem: selectedItem })=>{
173
169
  switch(type){
174
- case $hVoOH$downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
175
- case $hVoOH$downshift.useCombobox.stateChangeTypes.ItemClick:
170
+ case (0, $hVoOH$downshift.useCombobox).stateChangeTypes.InputKeyDownEnter:
171
+ case (0, $hVoOH$downshift.useCombobox).stateChangeTypes.ItemClick:
176
172
  if (selectedItem) onSelectItem(selectedItem);
177
- if (clearAfterSelect) handleInputValueChange('');
173
+ if (clearAfterSelect) handleInputValueChange("");
178
174
  if (!closeAfterSelect) toggleMenu();
179
175
  break;
180
176
  default:
@@ -182,28 +178,28 @@ function $56e6e764f18116b7$var$_Autocomplete(props, ref) {
182
178
  }
183
179
  }
184
180
  });
185
- const { 'aria-labelledby': _labelledby , id: _inputId , ...inputProps } = getInputProps();
181
+ const { "aria-labelledby": _labelledby , id: _inputId , ...inputProps } = getInputProps();
186
182
  const comboboxProps = getComboboxProps();
187
183
  const toggleProps = getToggleButtonProps();
188
184
  const menuProps = getMenuProps();
189
185
  let elementStartIndex = 0;
190
- return /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement("div", {
186
+ return /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement("div", {
191
187
  "data-test-id": testId,
192
- className: $hVoOH$emotion.cx(styles.autocomplete, className),
188
+ className: (0, $hVoOH$emotion.cx)(styles.autocomplete, className),
193
189
  ref: ref
194
- }, /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement($hVoOH$contentfulf36popover.Popover, {
190
+ }, /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement((0, $hVoOH$contentfulf36popover.Popover), {
195
191
  usePortal: usePortal,
196
192
  isOpen: isOpen,
197
- isFullWidth: listWidth === 'full',
193
+ isFullWidth: listWidth === "full",
198
194
  renderOnlyWhenOpen: false,
199
195
  // and the user won't be able to type in the input
200
196
  // eslint-disable-next-line jsx-a11y/no-autofocus
201
197
  autoFocus: false,
202
198
  id: menuProps.id
203
- }, /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement($hVoOH$contentfulf36popover.Popover.Trigger, null, /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement("div", {
199
+ }, /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement((0, $hVoOH$contentfulf36popover.Popover).Trigger, null, /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement("div", {
204
200
  ...comboboxProps,
205
201
  className: styles.combobox
206
- }, /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement($hVoOH$contentfulf36forms.TextInput, {
202
+ }, /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement((0, $hVoOH$contentfulf36forms.TextInput), {
207
203
  className: styles.inputField,
208
204
  ...inputProps,
209
205
  onFocus: ()=>{
@@ -214,53 +210,52 @@ function $56e6e764f18116b7$var$_Autocomplete(props, ref) {
214
210
  isDisabled: isDisabled,
215
211
  isRequired: isRequired,
216
212
  isReadOnly: isReadOnly,
217
- ref: $hVoOH$contentfulf36core.mergeRefs(inputProps.ref, inputRef),
213
+ ref: (0, $hVoOH$contentfulf36core.mergeRefs)(inputProps.ref, inputRef),
218
214
  testId: "cf-autocomplete-input",
219
215
  placeholder: placeholder,
220
216
  onChange: (event)=>{
221
217
  inputProps.onChange(event);
222
218
  handleNativeChangeEvent(event);
223
219
  }
224
- }), /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement($hVoOH$contentfulf36button.IconButton, {
220
+ }), /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement((0, $hVoOH$contentfulf36button.IconButton), {
225
221
  ...toggleProps,
226
- ref: $hVoOH$contentfulf36core.mergeRefs(toggleProps.ref, toggleRef),
227
- "aria-label": inputValue1 ? 'Clear' : 'Show list',
222
+ ref: (0, $hVoOH$contentfulf36core.mergeRefs)(toggleProps.ref, toggleRef),
223
+ "aria-label": inputValue1 ? "Clear" : "Show list",
228
224
  className: styles.toggleButton,
229
225
  variant: "transparent",
230
- icon: inputValue1 ? /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement($hVoOH$contentfulf36icons.CloseIcon, {
226
+ icon: inputValue1 ? /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement((0, $hVoOH$contentfulf36icons.CloseIcon), {
231
227
  variant: "muted"
232
228
  }) : icon,
233
229
  onClick: ()=>{
234
- if (inputValue1) handleInputValueChange('');
230
+ if (inputValue1) handleInputValueChange("");
235
231
  else toggleMenu();
236
232
  },
237
233
  isDisabled: isDisabled,
238
234
  size: "small"
239
- }))), /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement($hVoOH$contentfulf36popover.Popover.Content, {
235
+ }))), (items.length > 0 || inputValue1.length > 0) && /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement((0, $hVoOH$contentfulf36popover.Popover).Content, {
240
236
  ...menuProps,
241
- ref: $hVoOH$contentfulf36core.mergeRefs(menuProps.ref, listRef),
237
+ ref: (0, $hVoOH$contentfulf36core.mergeRefs)(menuProps.ref, listRef),
242
238
  className: styles.content,
243
239
  testId: "cf-autocomplete-container"
244
240
  }, isLoading && [
245
241
  ...Array(3)
246
- ].map((_, index)=>/*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement("div", {
242
+ ].map((_, index)=>/*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement("div", {
247
243
  key: index,
248
- className: $hVoOH$emotion.cx(styles.item, styles.disabled)
249
- }, /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement($56e6e764f18116b7$var$ListItemLoadingState, null))
250
- ), !isLoading && isShowingNoMatches && /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement("div", {
244
+ className: (0, $hVoOH$emotion.cx)(styles.item, styles.disabled)
245
+ }, /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement($56e6e764f18116b7$var$ListItemLoadingState, null))), !isLoading && isShowingNoMatches && /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement("div", {
251
246
  className: styles.item
252
- }, /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement($hVoOH$contentfulf36typography.Subheading, {
247
+ }, /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement((0, $hVoOH$contentfulf36typography.Subheading), {
253
248
  className: styles.noMatchesTitle
254
249
  }, noMatchesMessage)), !isLoading && $56e6e764f18116b7$var$isUsingGroups(isGrouped, items) && items.map((group, index)=>{
255
250
  if (group.options.length < 1) return;
256
- const render = /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement("div", {
251
+ const render = /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement("div", {
257
252
  key: index
258
- }, /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement($hVoOH$contentfulf36typography.SectionHeading, {
253
+ }, /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement((0, $hVoOH$contentfulf36typography.SectionHeading), {
259
254
  key: index,
260
255
  "data-test-id": "cf-autocomplete-grouptitle",
261
256
  marginBottom: "none",
262
257
  className: styles.groupTitle
263
- }, group.groupTitle), /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement($26b30f0765231b47$export$4db5c29873bb228f, {
258
+ }, group.groupTitle), /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement((0, $26b30f0765231b47$export$4db5c29873bb228f), {
264
259
  items: group.options,
265
260
  highlightedIndex: highlightedIndex,
266
261
  getItemProps: getItemProps,
@@ -270,7 +265,7 @@ function $56e6e764f18116b7$var$_Autocomplete(props, ref) {
270
265
  }));
271
266
  elementStartIndex += group.options.length;
272
267
  return render;
273
- }), !isLoading && !$56e6e764f18116b7$var$isUsingGroups(isGrouped, items) && items.length > 0 && /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement($26b30f0765231b47$export$4db5c29873bb228f, {
268
+ }), !isLoading && !$56e6e764f18116b7$var$isUsingGroups(isGrouped, items) && items.length > 0 && /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement((0, $26b30f0765231b47$export$4db5c29873bb228f), {
274
269
  items: items,
275
270
  elementStartIndex: elementStartIndex,
276
271
  highlightedIndex: highlightedIndex,
@@ -280,16 +275,16 @@ function $56e6e764f18116b7$var$_Autocomplete(props, ref) {
280
275
  }))));
281
276
  }
282
277
  const $56e6e764f18116b7$var$ListItemLoadingState = ()=>{
283
- return /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement($hVoOH$contentfulf36skeleton.SkeletonContainer, {
278
+ return /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement((0, $hVoOH$contentfulf36skeleton.SkeletonContainer), {
284
279
  svgHeight: 16
285
- }, /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).createElement($hVoOH$contentfulf36skeleton.SkeletonBodyText, {
280
+ }, /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).createElement((0, $hVoOH$contentfulf36skeleton.SkeletonBodyText), {
286
281
  numberOfLines: 1
287
282
  }));
288
283
  }; // This is required to infer correct typings when differentiating groups and items
289
284
  function $56e6e764f18116b7$var$isUsingGroups(isGrouped, items) {
290
285
  return isGrouped;
291
286
  }
292
- const $56e6e764f18116b7$export$2f2b9559550c7bbc = /*#__PURE__*/ ($parcel$interopDefault($hVoOH$react)).forwardRef($56e6e764f18116b7$var$_Autocomplete);
287
+ const $56e6e764f18116b7$export$2f2b9559550c7bbc = /*#__PURE__*/ (0, ($parcel$interopDefault($hVoOH$react))).forwardRef($56e6e764f18116b7$var$_Autocomplete);
293
288
 
294
289
 
295
290
 
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/components/autocomplete/src/index.ts","packages/components/autocomplete/src/Autocomplete.tsx","packages/components/autocomplete/src/AutocompleteItems.tsx","packages/components/autocomplete/src/Autocomplete.styles.ts"],"sourcesContent":["export { Autocomplete } from './Autocomplete';\nexport type { AutocompleteProps } from './Autocomplete';\n","import React, { useCallback, useState } from 'react';\nimport { cx } from 'emotion';\nimport { useCombobox } from 'downshift';\n\nimport { mergeRefs } from '@contentful/f36-core';\nimport type { CommonProps, ExpandProps } from '@contentful/f36-core';\nimport { IconButton } from '@contentful/f36-button';\nimport { TextInput } from '@contentful/f36-forms';\nimport type { TextInputProps } from '@contentful/f36-forms';\nimport { CloseIcon, ChevronDownIcon } from '@contentful/f36-icons';\nimport { SkeletonContainer, SkeletonBodyText } from '@contentful/f36-skeleton';\nimport { Popover } from '@contentful/f36-popover';\nimport { Subheading, SectionHeading } from '@contentful/f36-typography';\n\nimport { AutocompleteItems } from './AutocompleteItems';\nimport { getAutocompleteStyles } from './Autocomplete.styles';\n\nexport interface GenericGroupType<ItemType> {\n groupTitle: string;\n options: ItemType[];\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface AutocompleteProps<ItemType>\n extends CommonProps,\n Pick<\n TextInputProps,\n | 'isDisabled'\n | 'isInvalid'\n | 'isReadOnly'\n | 'isRequired'\n | 'id'\n | 'defaultValue'\n > {\n /**\n * It’s an array of data to be used as \"options\" by the autocomplete component.\n * This can either be a plain list of items or a list of groups of items.\n */\n items: ItemType[] | GenericGroupType<ItemType>[];\n\n /**\n * Set a custom icon for the text input\n */\n icon?: React.ReactElement;\n\n /**\n * Tells if the item is a object with groups\n */\n isGrouped?: boolean;\n\n /**\n * Function called whenever the input value changes\n */\n onInputValueChange?: (value: string) => void;\n /**\n * This is the function that will be called when the user selects one of the \"options\" in the list.\n * The component will pass the selected \"item\" as an argument to the function..\n */\n onSelectItem: (item: ItemType) => void;\n\n /**\n * Applying the selectedItem property turns autocomplete into a controlled component.\n * Can be used to display e.g. previously selected element. If it is an object the itemToString function will apply to it.\n */\n selectedItem?: ItemType;\n\n /**\n * This is the function that will be called for each \"item\" passed in the `items` prop.\n * It receives the \"item\" and \"inputValue\" as arguments and returns a ReactNode.\n * The inputValue is passed in case you want to highlight the match on the render.\n */\n renderItem?: (item: ItemType, inputValue: string) => React.ReactNode;\n /**\n * When using objects as `items`, we recommend passing a function that tells Downshift how to extract a string\n * from those objetcs to be used as inputValue\n */\n itemToString?: (item: ItemType) => string;\n /**\n * If this is set to `true` the text input will be cleared after an item is selected\n * @default false\n */\n clearAfterSelect?: boolean;\n /**\n * If this is set to `false` the dropdown menu will stay open after selecting an item\n * @default true\n */\n closeAfterSelect?: boolean;\n /**\n * This is the value will be passed to the `placeholder` prop of the input.\n * @default \"Search\"\n */\n placeholder?: string;\n /**\n * A message that will be shown when it is not possible to find any option that matches the input value\n * @default \"No matches\"\n */\n noMatchesMessage?: string;\n /**\n * Use this prop to get a ref to the input element of the component\n */\n inputRef?: React.Ref<HTMLInputElement>;\n /**\n * Use this prop to get a ref to the toggle button of the component\n */\n toggleRef?: React.Ref<HTMLButtonElement>;\n /**\n * Use this prop to get a ref to the list of items of the component\n */\n listRef?: React.Ref<HTMLUListElement>;\n /**\n * It sets the width of the list\n * @default \"auto\"\n */\n listWidth?: 'auto' | 'full';\n /**\n * It sets the max-height, in pixels, of the list\n * The default value is the height of 5 single line items\n * @default 180\n */\n listMaxHeight?: number;\n /**\n * Sets the list to show its loading state\n * @default false\n */\n isLoading?: boolean;\n /**\n * Boolean to control whether or not to render the suggestions box in a React Portal.\n * Rendering content inside a Portal allows the suggestions box to escape the bounds\n * of its parent while still being positioned correctly.\n * Defaults to `false`\n */\n usePortal?: boolean;\n}\n\nfunction _Autocomplete<ItemType>(\n props: AutocompleteProps<ItemType>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {\n id,\n className,\n clearAfterSelect = false,\n closeAfterSelect = true,\n defaultValue = '',\n selectedItem,\n items,\n onInputValueChange,\n onSelectItem,\n renderItem,\n icon = <ChevronDownIcon variant=\"muted\" />,\n itemToString = (item: ItemType) => (item as unknown) as string,\n isInvalid,\n isDisabled,\n isRequired,\n isReadOnly,\n noMatchesMessage = 'No matches found',\n placeholder = 'Search',\n inputRef,\n toggleRef,\n listRef,\n listWidth = 'auto',\n listMaxHeight = 180,\n isGrouped = false,\n isLoading = false,\n usePortal = false,\n testId = 'cf-autocomplete',\n } = props;\n\n type GroupType = GenericGroupType<ItemType>;\n\n const styles = getAutocompleteStyles(listMaxHeight);\n\n const [inputValue, setInputValue] = useState(defaultValue);\n\n const handleInputValueChange = useCallback(\n (value: string) => {\n setInputValue(value);\n\n onInputValueChange?.(value);\n },\n [onInputValueChange],\n );\n\n // Handle manually to avoid a jumping cursor, see https://github.com/downshift-js/downshift/issues/1108#issuecomment-842407759\n const handleNativeChangeEvent = useCallback(\n (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const value = event.target.value;\n handleInputValueChange(value);\n },\n [handleInputValueChange],\n );\n\n const flattenItems = isUsingGroups(isGrouped, items)\n ? items.reduce(\n (acc: ItemType[], group: GroupType) => [...acc, ...group.options],\n [],\n )\n : items;\n\n const isShowingNoMatches = isUsingGroups(isGrouped, items)\n ? items.every((group: GroupType) => group.options.length === 0)\n : items.length === 0;\n\n const {\n getComboboxProps,\n getInputProps,\n getItemProps,\n getMenuProps,\n getToggleButtonProps,\n highlightedIndex,\n isOpen,\n toggleMenu,\n } = useCombobox({\n items: flattenItems,\n selectedItem,\n inputValue,\n itemToString,\n onInputValueChange: ({ type, inputValue }) => {\n if (type !== '__input_change__') {\n handleInputValueChange(inputValue);\n }\n },\n onStateChange: ({ type, selectedItem }) => {\n switch (type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n if (selectedItem) {\n onSelectItem(selectedItem);\n }\n if (clearAfterSelect) {\n handleInputValueChange('');\n }\n if (!closeAfterSelect) {\n toggleMenu();\n }\n break;\n default:\n break;\n }\n },\n });\n\n const {\n 'aria-labelledby': _labelledby,\n id: _inputId,\n ...inputProps\n } = getInputProps();\n const comboboxProps = getComboboxProps();\n const toggleProps = getToggleButtonProps();\n const menuProps = getMenuProps();\n let elementStartIndex = 0;\n\n return (\n <div\n data-test-id={testId}\n className={cx(styles.autocomplete, className)}\n ref={ref}\n >\n <Popover\n usePortal={usePortal}\n isOpen={isOpen}\n isFullWidth={listWidth === 'full'}\n renderOnlyWhenOpen={false}\n // This is necessary, otherwise the focus will change from the input to the Popover\n // and the user won't be able to type in the input\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={false}\n id={menuProps.id}\n >\n <Popover.Trigger>\n <div {...comboboxProps} className={styles.combobox}>\n <TextInput\n className={styles.inputField}\n {...inputProps}\n onFocus={() => {\n if (!isOpen) {\n toggleMenu();\n }\n }}\n id={id}\n isInvalid={isInvalid}\n isDisabled={isDisabled}\n isRequired={isRequired}\n isReadOnly={isReadOnly}\n ref={mergeRefs(inputProps.ref, inputRef)}\n testId=\"cf-autocomplete-input\"\n placeholder={placeholder}\n onChange={(event) => {\n inputProps.onChange(event);\n handleNativeChangeEvent(event);\n }}\n />\n <IconButton\n {...toggleProps}\n ref={mergeRefs(toggleProps.ref, toggleRef)}\n aria-label={inputValue ? 'Clear' : 'Show list'}\n className={styles.toggleButton}\n variant=\"transparent\"\n icon={inputValue ? <CloseIcon variant=\"muted\" /> : icon}\n onClick={() => {\n if (inputValue) {\n handleInputValueChange('');\n } else {\n toggleMenu();\n }\n }}\n isDisabled={isDisabled}\n size=\"small\"\n />\n </div>\n </Popover.Trigger>\n\n <Popover.Content\n {...menuProps}\n ref={mergeRefs(menuProps.ref, listRef)}\n className={styles.content}\n testId=\"cf-autocomplete-container\"\n >\n {isLoading &&\n [...Array(3)].map((_, index) => (\n <div key={index} className={cx(styles.item, styles.disabled)}>\n <ListItemLoadingState />\n </div>\n ))}\n\n {!isLoading && isShowingNoMatches && (\n <div className={styles.item}>\n <Subheading className={styles.noMatchesTitle}>\n {noMatchesMessage}\n </Subheading>\n </div>\n )}\n\n {!isLoading &&\n isUsingGroups(isGrouped, items) &&\n items.map((group: GroupType, index: number) => {\n if (group.options.length < 1) {\n return;\n }\n const render = (\n <div key={index}>\n <SectionHeading\n key={index}\n data-test-id=\"cf-autocomplete-grouptitle\"\n marginBottom=\"none\"\n className={styles.groupTitle}\n >\n {group.groupTitle}\n </SectionHeading>\n <AutocompleteItems<ItemType>\n items={group.options}\n highlightedIndex={highlightedIndex}\n getItemProps={getItemProps}\n renderItem={renderItem}\n inputValue={inputValue}\n elementStartIndex={elementStartIndex}\n />\n </div>\n );\n elementStartIndex += group.options.length;\n return render;\n })}\n\n {!isLoading &&\n !isUsingGroups(isGrouped, items) &&\n items.length > 0 && (\n <AutocompleteItems<ItemType>\n items={items}\n elementStartIndex={elementStartIndex}\n highlightedIndex={highlightedIndex}\n getItemProps={getItemProps}\n renderItem={renderItem}\n inputValue={inputValue}\n />\n )}\n </Popover.Content>\n </Popover>\n </div>\n );\n}\n\nconst ListItemLoadingState = () => {\n return (\n <SkeletonContainer svgHeight={16}>\n <SkeletonBodyText numberOfLines={1} />\n </SkeletonContainer>\n );\n};\n\n// This is required to infer correct typings when differentiating groups and items\nfunction isUsingGroups<ItemType>(\n isGrouped: boolean,\n items: ItemType[] | GenericGroupType<ItemType>[],\n): items is GenericGroupType<ItemType>[] {\n return isGrouped;\n}\n\n/**\n * The Autocomplete is a component that will show a `TextInput` where a user can type any word which will be used\n * to filter a list of items. That list of filtered items will be shown to the user as possible options for the input.\n * Once one of the options is selected, that option becomes the value of the `TextInput`.\n */\nexport const Autocomplete = React.forwardRef(_Autocomplete) as <T>(\n props: ExpandProps<AutocompleteProps<T>> & {\n ref?: React.Ref<HTMLDivElement>;\n },\n) => ReturnType<typeof _Autocomplete>;\n","import React, { HTMLAttributes } from 'react';\nimport { cx } from 'emotion';\n\nimport { getStringMatch } from '@contentful/f36-utils';\nimport { Text } from '@contentful/f36-typography';\nimport { getAutocompleteStyles } from './Autocomplete.styles';\nimport type { UseComboboxGetItemPropsOptions } from 'downshift';\n\ninterface AutocompleteItemsProps<ItemType> {\n items: ItemType[];\n elementStartIndex: number;\n highlightedIndex: number;\n getItemProps: (\n options: UseComboboxGetItemPropsOptions<ItemType>,\n ) => HTMLAttributes<HTMLLIElement>;\n renderItem: (item: ItemType, inputValue: string) => React.ReactNode;\n inputValue: string;\n listMaxHeight?: number;\n}\n\nexport const AutocompleteItems = <ItemType,>(\n props: AutocompleteItemsProps<ItemType>,\n) => {\n const {\n items,\n elementStartIndex,\n highlightedIndex,\n getItemProps,\n renderItem,\n inputValue,\n listMaxHeight = 180,\n } = props;\n\n const styles = getAutocompleteStyles(listMaxHeight);\n\n return (\n <ul className={styles.list} data-test-id=\"cf-autocomplete-list\">\n {items.map((item: ItemType, index: number) => {\n const itemIndex = elementStartIndex + index;\n const itemProps = getItemProps({ item, index: itemIndex });\n return (\n <Text\n {...itemProps}\n as=\"li\"\n key={itemIndex}\n className={cx([\n styles.item,\n highlightedIndex === itemIndex && styles.highlighted,\n ])}\n data-test-id={`cf-autocomplete-list-item-${itemIndex}`}\n >\n {renderItem ? (\n renderItem(item, inputValue)\n ) : typeof item === 'string' ? (\n <HighlightedItem item={item} inputValue={inputValue} />\n ) : (\n item\n )}\n </Text>\n );\n })}\n </ul>\n );\n};\n\nAutocompleteItems.displayName = 'AutocompleteItems';\n\nfunction HighlightedItem({\n item,\n inputValue,\n}: {\n item: string;\n inputValue: string;\n}) {\n const { before, match, after } = getStringMatch(item, inputValue);\n\n return (\n <>\n {before}\n <b>{match}</b>\n {after}\n </>\n );\n}\n\nHighlightedItem.displayName = 'HighlightedItem';\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getAutocompleteStyles = (listMaxHeight: number) => ({\n autocomplete: css({\n position: 'relative',\n width: '100%',\n }),\n combobox: css({\n position: 'relative',\n }),\n inputField: css({\n paddingRight: tokens.spacingXl,\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n toggleButton: css({\n position: 'absolute',\n top: '1px',\n right: '1px',\n zIndex: 1,\n padding: tokens.spacing2Xs,\n height: '38px',\n }),\n content: css({\n overflow: 'auto',\n maxHeight: `${listMaxHeight}px`,\n }),\n list: css({\n listStyle: 'none',\n padding: `${tokens.spacingXs} 0`,\n margin: 0,\n }),\n groupTitle: css({\n padding: `${tokens.spacingXs} ${tokens.spacingM}`,\n lineHeight: tokens.lineHeightM,\n }),\n noMatchesTitle: css({\n color: tokens.gray500,\n margin: `${tokens.spacingM} 0 ${tokens.spacingM} 0`,\n }),\n item: css({\n display: 'block',\n padding: `${tokens.spacingXs} ${tokens.spacingM}`,\n wordBreak: 'break-word',\n whiteSpace: 'break-spaces',\n cursor: 'pointer',\n hyphens: 'auto',\n\n '&:focus, &:hover': {\n backgroundColor: tokens.gray100,\n },\n '&:active': {\n backgroundColor: tokens.gray200,\n },\n }),\n disabled: css({\n opacity: 0.5,\n pointerEvents: 'none',\n }),\n highlighted: css({\n backgroundColor: tokens.gray100,\n }),\n});\n"],"names":["Autocomplete","AutocompleteProps","React","useCallback","useState","useCombobox","mergeRefs","CommonProps","ExpandProps","IconButton","TextInput","TextInputProps","CloseIcon","ChevronDownIcon","SkeletonContainer","SkeletonBodyText","Popover","Subheading","SectionHeading","AutocompleteItems","getAutocompleteStyles","GenericGroupType","groupTitle","options","ItemType","Pick","items","icon","ReactElement","isGrouped","onInputValueChange","value","onSelectItem","item","selectedItem","renderItem","inputValue","ReactNode","itemToString","clearAfterSelect","closeAfterSelect","placeholder","noMatchesMessage","inputRef","Ref","HTMLInputElement","toggleRef","HTMLButtonElement","listRef","HTMLUListElement","listWidth","listMaxHeight","isLoading","usePortal","_Autocomplete","props","ref","HTMLDivElement","id","className","defaultValue","isInvalid","isDisabled","isRequired","isReadOnly","testId","GroupType","styles","setInputValue","handleInputValueChange","handleNativeChangeEvent","event","ChangeEvent","HTMLTextAreaElement","target","flattenItems","isUsingGroups","reduce","acc","group","isShowingNoMatches","every","length","getComboboxProps","getInputProps","getItemProps","getMenuProps","getToggleButtonProps","highlightedIndex","isOpen","toggleMenu","type","onStateChange","stateChangeTypes","InputKeyDownEnter","ItemClick","_labelledby","_inputId","inputProps","comboboxProps","toggleProps","menuProps","elementStartIndex","autocomplete","combobox","inputField","onChange","toggleButton","content","Array","map","_","index","disabled","noMatchesTitle","render","ListItemLoadingState","forwardRef","T","ReturnType","HTMLAttributes","getStringMatch","Text","UseComboboxGetItemPropsOptions","AutocompleteItemsProps","HTMLLIElement","list","itemIndex","itemProps","highlighted","displayName","HighlightedItem","before","match","after","tokens","paddingRight","spacingXl","textOverflow","whiteSpace","position","top","right","zIndex","padding","spacing2Xs","height","overflow","maxHeight","listStyle","spacingXs","margin","spacingM","lineHeight","lineHeightM","color","gray500","display","wordBreak","cursor","hyphens","backgroundColor","gray100","gray200"],"version":3,"file":"main.js.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;A;;;;;;;;;;A;;;;A;;AGGO,MAAMoB,yCAAqB,GAAG,CAAC+B,aAAD,GAA4B,CAAA;QAC/DoD,YAAY,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAdA,CAAAA,CAAAA;YAAc,IAAA,EAAA,SAAA;YAAA,MAAA,EAAA,+BAAA;SAAA,CADiD;QAK/DC,QAAQ,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAVA,CAAAA,CAAAA;YAAU,IAAA,EAAA,QAAA;YAAA,MAAA,EAAA,oBAAA;SAAA,CALqD;QAQ/DC,UAAU,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAA,CAAA,CAAI;YACd+B,YAAY,EAAED,CAAAA,GAAAA,oDAAM,CAAA,CAACE,SADP;YAEdC,YAAY,EAAE,UAFA;YAGdC,UAAU,EAAE,QAAZA;SAHU,CARmD;QAa/DhC,YAAY,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAA,CAAA,CAAI;YAChBiC,QAAQ,EAAE,UADM;YAEhBC,GAAG,EAAE,KAFW;YAGhBC,KAAK,EAAE,KAHS;YAIhBC,MAAM,EAAE,CAJQ;YAKhBC,OAAO,EAAET,CAAAA,GAAAA,oDAAM,CAAA,CAACU,UALA;YAMhBC,MAAM,EAAE,MAARA;SANY,CAbiD;QAqB/DtC,OAAO,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAA,CAAA,CAAI;YACXuC,QAAQ,EAAE,MADC;YAEXC,SAAS,EAAG,CAAA,EAAEjG,aAAc,CAA5BiG,EAAAA,CAAAA;SAFO,CArBsD;QAyB/DtB,IAAI,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAA,CAAA,CAAI;YACRuB,SAAS,EAAE,MADH;YAERL,OAAO,EAAG,CAAA,EAAET,CAAAA,GAAAA,oDAAM,CAAA,CAACe,SAAU,CAAA,EAAA,CAFrB;YAGRC,MAAM,EAAE,CAARA;SAHI,CAzByD;QA8B/DjI,UAAU,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAA,CAAA,CAAI;YACd0H,OAAO,EAAG,CAAA,EAAET,CAAAA,GAAAA,oDAAM,CAAA,CAACe,SAAU,CAAA,CAAA,EAAGf,CAAAA,GAAAA,oDAAM,CAAA,CAACiB,QAAS,CAAA,CADlC;YAEdC,UAAU,EAAElB,CAAAA,GAAAA,oDAAM,CAAA,CAACmB,WAAnBD;SAFU,CA9BmD;QAkC/DvC,cAAc,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAA,CAAA,CAAI;YAClByC,KAAK,EAAEpB,CAAAA,GAAAA,oDAAM,CAAA,CAACqB,OADI;YAElBL,MAAM,EAAG,CAAA,EAAEhB,CAAAA,GAAAA,oDAAM,CAAA,CAACiB,QAAS,CAAA,GAAA,EAAKjB,CAAAA,GAAAA,oDAAM,CAAA,CAACiB,QAAS,CAAhDD,EAAAA,CAAAA;SAFc,CAlC+C;QAsC/DtH,IAAI,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAA,CAAA,CAAI;YACR4H,OAAO,EAAE,OADD;YAERb,OAAO,EAAG,CAAA,EAAET,CAAAA,GAAAA,oDAAM,CAAA,CAACe,SAAU,CAAA,CAAA,EAAGf,CAAAA,GAAAA,oDAAM,CAAA,CAACiB,QAAS,CAAA,CAFxC;YAGRM,SAAS,EAAE,YAHH;YAIRnB,UAAU,EAAE,cAJJ;YAKRoB,MAAM,EAAE,SALA;YAMRC,OAAO,EAAE,MAND;YAQR,kBAAA,EAAoB;gBAClBC,eAAe,EAAE1B,CAAAA,GAAAA,oDAAM,CAAA,CAAC2B,OAAxBD;aATM;YAWR,UAAA,EAAY;gBACVA,eAAe,EAAE1B,CAAAA,GAAAA,oDAAM,CAAA,CAAC4B,OAAxBF;aADU;SAXR,CAtCyD;QAqD/DhD,QAAQ,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAVA,CAAAA,CAAAA;YAAU,IAAA,EAAA,SAAA;YAAA,MAAA,EAAA,kCAAA;SAAA,CArDqD;QAyD/DgB,WAAW,EAAA,aAAE,CAAA,CAAA,GAAA,kBAAA,CAAA,CAAI;YACfgC,eAAe,EAAE1B,CAAAA,GAAAA,oDAAM,CAAA,CAAC2B,OAAxBD;SADW,CAAI;KAzDkB,CAAA,AAA9B,AAA0D;;;ADiB1D,MAAM9I,yCAAiB,GAAG,CAC/BoC,KAD+B,GAE5B;IACH,MAAM,SACJ7B,KADI,CAAA,qBAEJ4E,iBAFI,CAAA,oBAGJd,gBAHI,CAAA,gBAIJH,YAJI,CAAA,cAKJlD,UALI,CAAA,cAMJC,UANI,CAAA,iBAOJe,aAAa,GAAG,GAAhBA,GAPI,GAQFI,KARJ,AAAM;IAUN,MAAMY,MAAM,GAAG/C,CAAAA,GAAAA,yCAAqB,CAAA,CAAC+B,aAAD,CAApC,AAAA;IAEA,qBACE,0DAAC,IAAD;QAAI,SAAA,EAAWgB,MAAM,CAAC2D,IAAR;QAAc,cAAA,EAAa,sBAAzC;OACGpG,KAAK,CAACoF,GAAN,CAAU,CAAC7E,IAAD,EAAiB+E,KAAjB,GAAmC;QAC5C,MAAMe,SAAS,GAAGzB,iBAAiB,GAAGU,KAAtC,AAAA;QACA,MAAMgB,SAAS,GAAG3C,YAAY,CAAC;kBAAEpD,IAAF;YAAQ+E,KAAK,EAAEe,SAAPf;SAAT,CAA9B,AAA+B;QAC/B,qBACE,0DAAC,CAAA,GAAA,mCAAD,CAAA;YACE,GAAIgB,SAAJ;YACA,EAAA,EAAG,IAFL;YAGE,GAAA,EAAKD,SAAD;YACJ,SAAA,EAAW,CAAA,GAAA,iBAAA,CAAA,CAAG;gBACZ5D,MAAM,CAAClC,IADK;gBAEZuD,gBAAgB,KAAKuC,SAArB,IAAkC5D,MAAM,CAAC8D,WAF7B;aAAH,CAAD;YAIV,cAAA,EAAe,CAAA,0BAAA,EAA4BF,SAAU,CAAA,CAAxC;WAEZ5F,UAAU,GACTA,UAAU,CAACF,IAAD,EAAOG,UAAP,CADD,GAEP,OAAOH,IAAP,KAAgB,QAAhB,iBACF,0DAAC,qCAAD;YAAiB,IAAA,EAAMA,IAAD;YAAO,UAAA,EAAYG,UAAD;UADtC,GAGFH,IALF,CAXJ,CAkBR;KArBO,CAAD,CAFJ,CA0BF;CAzCO,AA2CN;AAEDd,yCAAiB,CAAC+G,WAAlB,GAAgC,mBAAhC,CAAA/G;AAEA,SAASgH,qCAAT,CAAyB,QACvBlG,IADuB,CAAA,cAEvBG,UAAAA,CAAAA,EAFF,EAMG;IACD,MAAM,UAAEgG,MAAF,CAAA,SAAUC,KAAV,CAAA,SAAiBC,KAAAA,CAAAA,EAAjB,GAA2Bb,CAAAA,GAAAA,wCAAc,CAAA,CAACxF,IAAD,EAAOG,UAAP,CAA/C,AAAM;IAEN,qBACE,sHACGgG,MAAD,gBACA,0DAAC,GAAD,QAAIC,KAAD,CAAT,EACOC,KAAD,CAJJ,CAKF;CAEC;AAEDH,qCAAe,CAACD,WAAhB,GAA8B,iBAA9B,CAAAC;;;;ADiDA,SAAS7E,mCAAa,CACpBC,KADF,EAEEC,GAFF,EAGE;IACA,MAAM,MACJE,EADI,CAAA,aAEJC,SAFI,CAAA,oBAGJpB,gBAAgB,GAAG,KAHf,qBAIJC,gBAAgB,GAAG,IAJf,iBAKJoB,YAAY,GAAG,EALX,GAMJ1B,YANI,EAMJA,aANI,CAAA,SAOJR,KAPI,CAAA,sBAQJI,kBARI,CAAA,gBASJE,YATI,CAAA,cAUJG,UAVI,CAAA,QAWJR,IAAI,iBAAG,0DAAC,CAAA,GAAA,yCAAD,CAAA;QAAiB,OAAA,EAAQ,OAAzB;MAXH,iBAYJW,YAAY,GAAG,CAACL,IAAD,GAAqBA,IAAI,AAZpC,cAaJ4B,SAbI,CAAA,cAcJC,UAdI,CAAA,cAeJC,UAfI,CAAA,cAgBJC,UAhBI,CAAA,oBAiBJtB,gBAAgB,GAAG,kBAjBf,gBAkBJD,WAAW,GAAG,QAlBV,aAmBJE,QAnBI,CAAA,aAoBJG,SApBI,CAAA,WAqBJE,OArBI,CAAA,aAsBJE,SAAS,GAAG,MAtBR,kBAuBJC,aAAa,GAAG,GAvBZ,cAwBJtB,SAAS,GAAG,KAxBR,cAyBJuB,SAAS,GAAG,KAzBR,cA0BJC,SAAS,GAAG,KA1BR,WA2BJY,MAAM,GAAG,iBAATA,GA3BI,GA4BFV,KA5BJ,AAAM;IAgCN,MAAMY,MAAM,GAAG/C,CAAAA,GAAAA,yCAAqB,CAAA,CAAC+B,aAAD,CAApC,AAAA;IAEA,MAAM,CAACf,WAAD,EAAagC,aAAb,CAAA,GAA8BhE,CAAAA,GAAAA,qBAAQ,CAAA,CAACwD,YAAD,CAA5C,AAAA;IAEA,MAAMS,sBAAsB,GAAGlE,CAAAA,GAAAA,wBAAW,CAAA,CACxC,CAAC4B,KAAD,GAAmB;QACjBqC,aAAa,CAACrC,KAAD,CAAb,CAAAqC;QAEAtC,kBAAkB,aAAlBA,kBAAkB,WAAlB,GAAAA,KAAAA,CAAA,GAAAA,kBAAkB,CAAGC,KAAH,CAAlB,CAAAD;KAJsC,EAMxC;QAACA,kBAAD;KANwC,CAA1C,AArCA,EA8CA,8HAJG;IAKH,MAAMwC,uBAAuB,GAAGnE,CAAAA,GAAAA,wBAAW,CAAA,CACzC,CAACoE,KAAD,GAAsE;QACpE,MAAMxC,KAAK,GAAGwC,KAAK,CAACG,MAAN,CAAa3C,KAA3B,AAAA;QACAsC,sBAAsB,CAACtC,KAAD,CAAtB,CAAAsC;KAHuC,EAKzC;QAACA,sBAAD;KALyC,CAA3C,AAIG;IAIH,MAAMM,YAAY,GAAGC,mCAAa,CAAC/C,SAAD,EAAYH,KAAZ,CAAb,GACjBA,KAAK,CAACmD,MAAN,CACE,CAACC,GAAD,EAAkBC,KAAlB,GAAuC;eAAID,GAAJ;eAAYC,KAAK,CAACxD,OAAlB;SADzC,EAEE,EAFF,CADiB,GAKjBG,KALJ,AAAA;IAOA,MAAMsD,kBAAkB,GAAGJ,mCAAa,CAAC/C,SAAD,EAAYH,KAAZ,CAAb,GACvBA,KAAK,CAACuD,KAAN,CAAY,CAACF,KAAD,GAAsBA,KAAK,CAACxD,OAAN,CAAc2D,MAAd,KAAyB,CAA3D,CADuB,GAEvBxD,KAAK,CAACwD,MAAN,KAAiB,CAFrB,AAAA;IAIA,MAAM,oBACJC,gBADI,CAAA,iBAEJC,aAFI,CAAA,gBAGJC,YAHI,CAAA,gBAIJC,YAJI,CAAA,wBAKJC,oBALI,CAAA,oBAMJC,gBANI,CAAA,UAOJC,MAPI,CAAA,cAQJC,UAAAA,CAAAA,EARI,GASFrF,CAAAA,GAAAA,4BAAW,CAAA,CAAC;QACdqB,KAAK,EAAEiD,YADO;QAEdzC,YAFc,EAEdA,aAFc;QAGdE,UAHc,EAGdA,WAHc;sBAIdE,YAJc;QAKdR,kBAAkB,EAAE,CAAC,QAAE6D,IAAF,CAAA,cAAQvD,UAAAA,CAAAA,EAAT,GAA0B;YAC5C,IAAIuD,IAAI,KAAK,kBAAb,EACEtB,sBAAsB,CAACjC,UAAD,CAAtB,CAAAiC;SAPU;QAUduB,aAAa,EAAE,CAAC,QAAED,IAAF,CAAA,gBAAQzD,YAAAA,CAAAA,EAAT,GAA4B;YACzC,OAAQyD,IAAR;gBACE,KAAKtF,CAAAA,GAAAA,4BAAW,CAAA,CAACwF,gBAAZ,CAA6BC,iBAAlC,CAAA;gBACA,KAAKzF,CAAAA,GAAAA,4BAAW,CAAA,CAACwF,gBAAZ,CAA6BE,SAAlC;oBACE,IAAI7D,YAAJ,EACEF,YAAY,CAACE,YAAD,CAAZ,CAAAF;oBAEF,IAAIO,gBAAJ,EACE8B,sBAAsB,CAAC,EAAD,CAAtB,CAAAA;oBAEF,IAAI,CAAC7B,gBAAL,EACEkD,UAAU,EAAVA,CAAAA;oBAEF,MAAA;gBACF;oBACE,MAAA;aAdJ;SAgBD;KA3BY,CATf,AASgB;IA8BhB,MAAM,EACJ,iBAAA,EAAmBM,WADf,CAAA,EAEJtC,EAAE,EAAEuC,QAFA,CAAA,EAGJ,GAAGC,UAAH,EAHI,GAIFd,aAAa,EAJjB,AAAM;IAKN,MAAMe,aAAa,GAAGhB,gBAAgB,EAAtC,AAAA;IACA,MAAMiB,WAAW,GAAGb,oBAAoB,EAAxC,AAAA;IACA,MAAMc,SAAS,GAAGf,YAAY,EAA9B,AAAA;IACA,IAAIgB,iBAAiB,GAAG,CAAxB,AAAA;IAEA,qBACE,0DAAC,KAAD;QACE,cAAA,EAAcrC,MAAD;QACb,SAAA,EAAW,CAAA,GAAA,iBAAA,CAAA,CAAGE,MAAM,CAACoC,YAAV,EAAwB5C,SAAxB,CAAD;QACV,GAAA,EAAKH,GAAD;qBAEJ,0DAAC,CAAA,GAAA,mCAAD,CAAA;QACE,SAAA,EAAWH,SAAD;QACV,MAAA,EAAQoC,MAAD;QACP,WAAA,EAAavC,SAAS,KAAK,MAAf;QACZ,kBAAA,EAAoB,KAAD;QAEnB,kDAAA;QACA,iDAAA;QACA,SAAA,EAAW,KAAD;QACV,EAAA,EAAImD,SAAS,CAAC3C,EAAX;qBAEH,0DAAC,CAAA,GAAA,mCAAA,CAAA,CAAQ,OAAT,sBACE,0DAAC,KAAD;QAAK,GAAIyC,aAAJ;QAAmB,SAAA,EAAWhC,MAAM,CAACqC,QAAR;qBAChC,0DAAC,CAAA,GAAA,mCAAD,CAAA;QACE,SAAA,EAAWrC,MAAM,CAACsC,UAAR;QACV,GAAIP,UAAJ;QACA,OAAA,EAAS,IAAM;YACb,IAAI,CAACT,MAAL,EACEC,UAAU,EAAVA,CAAAA;SAFI;QAKR,EAAA,EAAIhC,EAAD;QACH,SAAA,EAAWG,SAAD;QACV,UAAA,EAAYC,UAAD;QACX,UAAA,EAAYC,UAAD;QACX,UAAA,EAAYC,UAAD;QACX,GAAA,EAAK1D,CAAAA,GAAAA,kCAAS,CAAA,CAAC4F,UAAU,CAAC1C,GAAZ,EAAiBb,QAAjB,CAAV;QACJ,MAAA,EAAO,uBAdT;QAeE,WAAA,EAAaF,WAAD;QACZ,QAAA,EAAW8B,CAAAA,KAAD,GAAW;YACnB2B,UAAU,CAACQ,QAAX,CAAoBnC,KAApB,CAAA2B,CAAAA;YACA5B,uBAAuB,CAACC,KAAD,CAAvB,CAAAD;SAFO;MAGR,gBAEH,0DAAC,CAAA,GAAA,qCAAD,CAAA;QACE,GAAI8B,WAAJ;QACA,GAAA,EAAK9F,CAAAA,GAAAA,kCAAS,CAAA,CAAC8F,WAAW,CAAC5C,GAAb,EAAkBV,SAAlB,CAAV;QACJ,YAAA,EAAYV,WAAU,GAAG,OAAH,GAAa,WAAxB;QACX,SAAA,EAAW+B,MAAM,CAACwC,YAAR;QACV,OAAA,EAAQ,aALV;QAME,IAAA,EAAMvE,WAAU,iBAAG,0DAAC,CAAA,GAAA,mCAAD,CAAA;YAAW,OAAA,EAAQ,OAAnB;UAAH,GAAmCT,IAA9C;QACL,OAAA,EAAS,IAAM;YACb,IAAIS,WAAJ,EACEiC,sBAAsB,CAAC,EAAD,CAAtB,CAAAA;iBAEAqB,UAAU,EAAVA,CAAAA;SAJI;QAOR,UAAA,EAAY5B,UAAD;QACX,IAAA,EAAK,OAfP;MAaG,CAIf,CACA,EAES,AAACpC,CAAAA,KAAK,CAACwD,MAAN,GAAe,CAAf,IAAoB9C,WAAU,CAAC8C,MAAX,GAAoB,CAAzC,CAAA,kBACC,0DAAC,CAAA,GAAA,mCAAA,CAAA,CAAQ,OAAT;QACE,GAAImB,SAAJ;QACA,GAAA,EAAK/F,CAAAA,GAAAA,kCAAS,CAAA,CAAC+F,SAAS,CAAC7C,GAAX,EAAgBR,OAAhB,CAAV;QACJ,SAAA,EAAWmB,MAAM,CAACyC,OAAR;QACV,MAAA,EAAO,2BAJT;OAMGxD,SAAS,IACR;WAAIyD,KAAK,CAAC,CAAD,CAAT;KAAA,CAAcC,GAAd,CAAkB,CAACC,CAAD,EAAIC,KAAJ,iBAChB,0DAAC,KAAD;YAAK,GAAA,EAAKA,KAAD;YAAQ,SAAA,EAAW,CAAA,GAAA,iBAAA,CAAA,CAAG7C,MAAM,CAAClC,IAAV,EAAgBkC,MAAM,CAAC8C,QAAvB,CAAD;yBACzB,0DAAC,0CAAD,OAAlB,CAFc,CADF,EAOC,CAAC7D,SAAD,IAAc4B,kBAAd,kBACC,0DAAC,KAAD;QAAK,SAAA,EAAWb,MAAM,CAAClC,IAAR;qBACb,0DAAC,CAAA,GAAA,yCAAD,CAAA;QAAY,SAAA,EAAWkC,MAAM,CAAC+C,cAAR;OACnBxE,gBAAD,CAClB,CAJY,EAQC,CAACU,SAAD,IACCwB,mCAAa,CAAC/C,SAAD,EAAYH,KAAZ,CADd,IAECA,KAAK,CAACoF,GAAN,CAAU,CAAC/B,KAAD,EAAmBiC,KAAnB,GAAqC;QAC7C,IAAIjC,KAAK,CAACxD,OAAN,CAAc2D,MAAd,GAAuB,CAA3B,EACE,OAAA;QAEF,MAAMiC,MAAM,iBACV,0DAAC,KAAD;YAAK,GAAA,EAAKH,KAAD;yBACP,0DAAC,CAAA,GAAA,6CAAD,CAAA;YACE,GAAA,EAAKA,KAAD;YACJ,cAAA,EAAa,4BAFf;YAGE,YAAA,EAAa,MAHf;YAIE,SAAA,EAAW7C,MAAM,CAAC7C,UAAR;WAETyD,KAAK,CAACzD,UAAP,CACtB,gBACoB,0DAAC,CAAA,GAAA,yCAAiB,CAAA;YAChB,KAAA,EAAOyD,KAAK,CAACxD,OAAP;YACN,gBAAA,EAAkBiE,gBAAD;YACjB,YAAA,EAAcH,YAAD;YACb,UAAA,EAAYlD,UAAD;YACX,UAAA,EAAYC,WAAD;YACX,iBAAA,EAAmBkE,iBAAD;UANxC,CAVgB,AAkBhB;QAEgBA,iBAAiB,IAAIvB,KAAK,CAACxD,OAAN,CAAc2D,MAAnC,CAAAoB;QACA,OAAOa,MAAP,CAAA;KAzBF,CAFF,EA8BC,CAAC/D,SAAD,IACC,CAACwB,mCAAa,CAAC/C,SAAD,EAAYH,KAAZ,CADf,IAECA,KAAK,CAACwD,MAAN,GAAe,CAFhB,kBAGG,0DAAC,CAAA,GAAA,yCAAiB,CAAA;QAChB,KAAA,EAAOxD,KAAD;QACN,iBAAA,EAAmB4E,iBAAD;QAClB,gBAAA,EAAkBd,gBAAD;QACjB,YAAA,EAAcH,YAAD;QACb,UAAA,EAAYlD,UAAD;QACX,UAAA,EAAYC,WAAD;MATjB,CApDJ,CAkER,CA9HE,CA+HF;CAEC;AAED,MAAMgF,0CAAoB,GAAG,IAAM;IACjC,qBACE,0DAAC,CAAA,GAAA,8CAAD,CAAA;QAAmB,SAAA,EAAW,EAAD;qBAC3B,0DAAC,CAAA,GAAA,6CAAD,CAAA;QAAkB,aAAA,EAAe,CAAD;MAAtC,CAFE,CAGF;CAJA,A,EAQA,kFAFC;AAGD,SAASxC,mCAAa,CACpB/C,SADF,EAEEH,KAFF,EAGyC;IACvC,OAAOG,SAAP,CAAA;CACD;AAOM,MAAM7B,yCAAY,iBAAGE,CAAAA,GAAAA,sCAAK,CAAA,CAACmH,UAAN,CAAiB/D,mCAAjB,CAAA,AAArB,AACsC;;ADrZ7C","sources":["packages/components/autocomplete/src/index.ts","packages/components/autocomplete/src/Autocomplete.tsx","packages/components/autocomplete/src/AutocompleteItems.tsx","packages/components/autocomplete/src/Autocomplete.styles.ts"],"sourcesContent":["export { Autocomplete } from './Autocomplete';\nexport type { AutocompleteProps } from './Autocomplete';\n","import React, { useCallback, useState } from 'react';\nimport { cx } from 'emotion';\nimport { useCombobox } from 'downshift';\n\nimport { mergeRefs } from '@contentful/f36-core';\nimport type { CommonProps, ExpandProps } from '@contentful/f36-core';\nimport { IconButton } from '@contentful/f36-button';\nimport { TextInput } from '@contentful/f36-forms';\nimport type { TextInputProps } from '@contentful/f36-forms';\nimport { CloseIcon, ChevronDownIcon } from '@contentful/f36-icons';\nimport { SkeletonContainer, SkeletonBodyText } from '@contentful/f36-skeleton';\nimport { Popover } from '@contentful/f36-popover';\nimport { Subheading, SectionHeading } from '@contentful/f36-typography';\n\nimport { AutocompleteItems } from './AutocompleteItems';\nimport { getAutocompleteStyles } from './Autocomplete.styles';\n\nexport interface GenericGroupType<ItemType> {\n groupTitle: string;\n options: ItemType[];\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface AutocompleteProps<ItemType>\n extends CommonProps,\n Pick<\n TextInputProps,\n | 'isDisabled'\n | 'isInvalid'\n | 'isReadOnly'\n | 'isRequired'\n | 'id'\n | 'defaultValue'\n > {\n /**\n * It’s an array of data to be used as \"options\" by the autocomplete component.\n * This can either be a plain list of items or a list of groups of items.\n */\n items: ItemType[] | GenericGroupType<ItemType>[];\n\n /**\n * Set a custom icon for the text input\n */\n icon?: React.ReactElement;\n\n /**\n * Tells if the item is a object with groups\n */\n isGrouped?: boolean;\n\n /**\n * Function called whenever the input value changes\n */\n onInputValueChange?: (value: string) => void;\n /**\n * This is the function that will be called when the user selects one of the \"options\" in the list.\n * The component will pass the selected \"item\" as an argument to the function..\n */\n onSelectItem: (item: ItemType) => void;\n\n /**\n * Applying the selectedItem property turns autocomplete into a controlled component.\n * Can be used to display e.g. previously selected element. If it is an object the itemToString function will apply to it.\n */\n selectedItem?: ItemType;\n\n /**\n * This is the function that will be called for each \"item\" passed in the `items` prop.\n * It receives the \"item\" and \"inputValue\" as arguments and returns a ReactNode.\n * The inputValue is passed in case you want to highlight the match on the render.\n */\n renderItem?: (item: ItemType, inputValue: string) => React.ReactNode;\n /**\n * When using objects as `items`, we recommend passing a function that tells Downshift how to extract a string\n * from those objetcs to be used as inputValue\n */\n itemToString?: (item: ItemType) => string;\n /**\n * If this is set to `true` the text input will be cleared after an item is selected\n * @default false\n */\n clearAfterSelect?: boolean;\n /**\n * If this is set to `false` the dropdown menu will stay open after selecting an item\n * @default true\n */\n closeAfterSelect?: boolean;\n /**\n * This is the value will be passed to the `placeholder` prop of the input.\n * @default \"Search\"\n */\n placeholder?: string;\n /**\n * A message that will be shown when it is not possible to find any option that matches the input value\n * @default \"No matches\"\n */\n noMatchesMessage?: string;\n /**\n * Use this prop to get a ref to the input element of the component\n */\n inputRef?: React.Ref<HTMLInputElement>;\n /**\n * Use this prop to get a ref to the toggle button of the component\n */\n toggleRef?: React.Ref<HTMLButtonElement>;\n /**\n * Use this prop to get a ref to the list of items of the component\n */\n listRef?: React.Ref<HTMLUListElement>;\n /**\n * It sets the width of the list\n * @default \"auto\"\n */\n listWidth?: 'auto' | 'full';\n /**\n * It sets the max-height, in pixels, of the list\n * The default value is the height of 5 single line items\n * @default 180\n */\n listMaxHeight?: number;\n /**\n * Sets the list to show its loading state\n * @default false\n */\n isLoading?: boolean;\n /**\n * Boolean to control whether or not to render the suggestions box in a React Portal.\n * Rendering content inside a Portal allows the suggestions box to escape the bounds\n * of its parent while still being positioned correctly.\n * Defaults to `false`\n */\n usePortal?: boolean;\n}\n\nfunction _Autocomplete<ItemType>(\n props: AutocompleteProps<ItemType>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {\n id,\n className,\n clearAfterSelect = false,\n closeAfterSelect = true,\n defaultValue = '',\n selectedItem,\n items,\n onInputValueChange,\n onSelectItem,\n renderItem,\n icon = <ChevronDownIcon variant=\"muted\" />,\n itemToString = (item: ItemType) => (item as unknown) as string,\n isInvalid,\n isDisabled,\n isRequired,\n isReadOnly,\n noMatchesMessage = 'No matches found',\n placeholder = 'Search',\n inputRef,\n toggleRef,\n listRef,\n listWidth = 'auto',\n listMaxHeight = 180,\n isGrouped = false,\n isLoading = false,\n usePortal = false,\n testId = 'cf-autocomplete',\n } = props;\n\n type GroupType = GenericGroupType<ItemType>;\n\n const styles = getAutocompleteStyles(listMaxHeight);\n\n const [inputValue, setInputValue] = useState(defaultValue);\n\n const handleInputValueChange = useCallback(\n (value: string) => {\n setInputValue(value);\n\n onInputValueChange?.(value);\n },\n [onInputValueChange],\n );\n\n // Handle manually to avoid a jumping cursor, see https://github.com/downshift-js/downshift/issues/1108#issuecomment-842407759\n const handleNativeChangeEvent = useCallback(\n (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const value = event.target.value;\n handleInputValueChange(value);\n },\n [handleInputValueChange],\n );\n\n const flattenItems = isUsingGroups(isGrouped, items)\n ? items.reduce(\n (acc: ItemType[], group: GroupType) => [...acc, ...group.options],\n [],\n )\n : items;\n\n const isShowingNoMatches = isUsingGroups(isGrouped, items)\n ? items.every((group: GroupType) => group.options.length === 0)\n : items.length === 0;\n\n const {\n getComboboxProps,\n getInputProps,\n getItemProps,\n getMenuProps,\n getToggleButtonProps,\n highlightedIndex,\n isOpen,\n toggleMenu,\n } = useCombobox({\n items: flattenItems,\n selectedItem,\n inputValue,\n itemToString,\n onInputValueChange: ({ type, inputValue }) => {\n if (type !== '__input_change__') {\n handleInputValueChange(inputValue);\n }\n },\n onStateChange: ({ type, selectedItem }) => {\n switch (type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n if (selectedItem) {\n onSelectItem(selectedItem);\n }\n if (clearAfterSelect) {\n handleInputValueChange('');\n }\n if (!closeAfterSelect) {\n toggleMenu();\n }\n break;\n default:\n break;\n }\n },\n });\n\n const {\n 'aria-labelledby': _labelledby,\n id: _inputId,\n ...inputProps\n } = getInputProps();\n const comboboxProps = getComboboxProps();\n const toggleProps = getToggleButtonProps();\n const menuProps = getMenuProps();\n let elementStartIndex = 0;\n\n return (\n <div\n data-test-id={testId}\n className={cx(styles.autocomplete, className)}\n ref={ref}\n >\n <Popover\n usePortal={usePortal}\n isOpen={isOpen}\n isFullWidth={listWidth === 'full'}\n renderOnlyWhenOpen={false}\n // This is necessary, otherwise the focus will change from the input to the Popover\n // and the user won't be able to type in the input\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={false}\n id={menuProps.id}\n >\n <Popover.Trigger>\n <div {...comboboxProps} className={styles.combobox}>\n <TextInput\n className={styles.inputField}\n {...inputProps}\n onFocus={() => {\n if (!isOpen) {\n toggleMenu();\n }\n }}\n id={id}\n isInvalid={isInvalid}\n isDisabled={isDisabled}\n isRequired={isRequired}\n isReadOnly={isReadOnly}\n ref={mergeRefs(inputProps.ref, inputRef)}\n testId=\"cf-autocomplete-input\"\n placeholder={placeholder}\n onChange={(event) => {\n inputProps.onChange(event);\n handleNativeChangeEvent(event);\n }}\n />\n <IconButton\n {...toggleProps}\n ref={mergeRefs(toggleProps.ref, toggleRef)}\n aria-label={inputValue ? 'Clear' : 'Show list'}\n className={styles.toggleButton}\n variant=\"transparent\"\n icon={inputValue ? <CloseIcon variant=\"muted\" /> : icon}\n onClick={() => {\n if (inputValue) {\n handleInputValueChange('');\n } else {\n toggleMenu();\n }\n }}\n isDisabled={isDisabled}\n size=\"small\"\n />\n </div>\n </Popover.Trigger>\n\n {(items.length > 0 || inputValue.length > 0) && (\n <Popover.Content\n {...menuProps}\n ref={mergeRefs(menuProps.ref, listRef)}\n className={styles.content}\n testId=\"cf-autocomplete-container\"\n >\n {isLoading &&\n [...Array(3)].map((_, index) => (\n <div key={index} className={cx(styles.item, styles.disabled)}>\n <ListItemLoadingState />\n </div>\n ))}\n\n {!isLoading && isShowingNoMatches && (\n <div className={styles.item}>\n <Subheading className={styles.noMatchesTitle}>\n {noMatchesMessage}\n </Subheading>\n </div>\n )}\n\n {!isLoading &&\n isUsingGroups(isGrouped, items) &&\n items.map((group: GroupType, index: number) => {\n if (group.options.length < 1) {\n return;\n }\n const render = (\n <div key={index}>\n <SectionHeading\n key={index}\n data-test-id=\"cf-autocomplete-grouptitle\"\n marginBottom=\"none\"\n className={styles.groupTitle}\n >\n {group.groupTitle}\n </SectionHeading>\n <AutocompleteItems<ItemType>\n items={group.options}\n highlightedIndex={highlightedIndex}\n getItemProps={getItemProps}\n renderItem={renderItem}\n inputValue={inputValue}\n elementStartIndex={elementStartIndex}\n />\n </div>\n );\n elementStartIndex += group.options.length;\n return render;\n })}\n\n {!isLoading &&\n !isUsingGroups(isGrouped, items) &&\n items.length > 0 && (\n <AutocompleteItems<ItemType>\n items={items}\n elementStartIndex={elementStartIndex}\n highlightedIndex={highlightedIndex}\n getItemProps={getItemProps}\n renderItem={renderItem}\n inputValue={inputValue}\n />\n )}\n </Popover.Content>\n )}\n </Popover>\n </div>\n );\n}\n\nconst ListItemLoadingState = () => {\n return (\n <SkeletonContainer svgHeight={16}>\n <SkeletonBodyText numberOfLines={1} />\n </SkeletonContainer>\n );\n};\n\n// This is required to infer correct typings when differentiating groups and items\nfunction isUsingGroups<ItemType>(\n isGrouped: boolean,\n items: ItemType[] | GenericGroupType<ItemType>[],\n): items is GenericGroupType<ItemType>[] {\n return isGrouped;\n}\n\n/**\n * The Autocomplete is a component that will show a `TextInput` where a user can type any word which will be used\n * to filter a list of items. That list of filtered items will be shown to the user as possible options for the input.\n * Once one of the options is selected, that option becomes the value of the `TextInput`.\n */\nexport const Autocomplete = React.forwardRef(_Autocomplete) as <T>(\n props: ExpandProps<AutocompleteProps<T>> & {\n ref?: React.Ref<HTMLDivElement>;\n },\n) => ReturnType<typeof _Autocomplete>;\n","import React, { HTMLAttributes } from 'react';\nimport { cx } from 'emotion';\n\nimport { getStringMatch } from '@contentful/f36-utils';\nimport { Text } from '@contentful/f36-typography';\nimport { getAutocompleteStyles } from './Autocomplete.styles';\nimport type { UseComboboxGetItemPropsOptions } from 'downshift';\n\ninterface AutocompleteItemsProps<ItemType> {\n items: ItemType[];\n elementStartIndex: number;\n highlightedIndex: number;\n getItemProps: (\n options: UseComboboxGetItemPropsOptions<ItemType>,\n ) => HTMLAttributes<HTMLLIElement>;\n renderItem: (item: ItemType, inputValue: string) => React.ReactNode;\n inputValue: string;\n listMaxHeight?: number;\n}\n\nexport const AutocompleteItems = <ItemType,>(\n props: AutocompleteItemsProps<ItemType>,\n) => {\n const {\n items,\n elementStartIndex,\n highlightedIndex,\n getItemProps,\n renderItem,\n inputValue,\n listMaxHeight = 180,\n } = props;\n\n const styles = getAutocompleteStyles(listMaxHeight);\n\n return (\n <ul className={styles.list} data-test-id=\"cf-autocomplete-list\">\n {items.map((item: ItemType, index: number) => {\n const itemIndex = elementStartIndex + index;\n const itemProps = getItemProps({ item, index: itemIndex });\n return (\n <Text\n {...itemProps}\n as=\"li\"\n key={itemIndex}\n className={cx([\n styles.item,\n highlightedIndex === itemIndex && styles.highlighted,\n ])}\n data-test-id={`cf-autocomplete-list-item-${itemIndex}`}\n >\n {renderItem ? (\n renderItem(item, inputValue)\n ) : typeof item === 'string' ? (\n <HighlightedItem item={item} inputValue={inputValue} />\n ) : (\n item\n )}\n </Text>\n );\n })}\n </ul>\n );\n};\n\nAutocompleteItems.displayName = 'AutocompleteItems';\n\nfunction HighlightedItem({\n item,\n inputValue,\n}: {\n item: string;\n inputValue: string;\n}) {\n const { before, match, after } = getStringMatch(item, inputValue);\n\n return (\n <>\n {before}\n <b>{match}</b>\n {after}\n </>\n );\n}\n\nHighlightedItem.displayName = 'HighlightedItem';\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getAutocompleteStyles = (listMaxHeight: number) => ({\n autocomplete: css({\n position: 'relative',\n width: '100%',\n }),\n combobox: css({\n position: 'relative',\n }),\n inputField: css({\n paddingRight: tokens.spacingXl,\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n toggleButton: css({\n position: 'absolute',\n top: '1px',\n right: '1px',\n zIndex: 1,\n padding: tokens.spacing2Xs,\n height: '38px',\n }),\n content: css({\n overflow: 'auto',\n maxHeight: `${listMaxHeight}px`,\n }),\n list: css({\n listStyle: 'none',\n padding: `${tokens.spacingXs} 0`,\n margin: 0,\n }),\n groupTitle: css({\n padding: `${tokens.spacingXs} ${tokens.spacingM}`,\n lineHeight: tokens.lineHeightM,\n }),\n noMatchesTitle: css({\n color: tokens.gray500,\n margin: `${tokens.spacingM} 0 ${tokens.spacingM} 0`,\n }),\n item: css({\n display: 'block',\n padding: `${tokens.spacingXs} ${tokens.spacingM}`,\n wordBreak: 'break-word',\n whiteSpace: 'break-spaces',\n cursor: 'pointer',\n hyphens: 'auto',\n\n '&:focus, &:hover': {\n backgroundColor: tokens.gray100,\n },\n '&:active': {\n backgroundColor: tokens.gray200,\n },\n }),\n disabled: css({\n opacity: 0.5,\n pointerEvents: 'none',\n }),\n highlighted: css({\n backgroundColor: tokens.gray100,\n }),\n});\n"],"names":["Autocomplete","AutocompleteProps","React","useCallback","useState","useCombobox","mergeRefs","CommonProps","ExpandProps","IconButton","TextInput","TextInputProps","CloseIcon","ChevronDownIcon","SkeletonContainer","SkeletonBodyText","Popover","Subheading","SectionHeading","AutocompleteItems","getAutocompleteStyles","GenericGroupType","groupTitle","options","ItemType","Pick","items","icon","ReactElement","isGrouped","onInputValueChange","value","onSelectItem","item","selectedItem","renderItem","inputValue","ReactNode","itemToString","clearAfterSelect","closeAfterSelect","placeholder","noMatchesMessage","inputRef","Ref","HTMLInputElement","toggleRef","HTMLButtonElement","listRef","HTMLUListElement","listWidth","listMaxHeight","isLoading","usePortal","_Autocomplete","props","ref","HTMLDivElement","id","className","defaultValue","isInvalid","isDisabled","isRequired","isReadOnly","testId","GroupType","styles","setInputValue","handleInputValueChange","handleNativeChangeEvent","event","ChangeEvent","HTMLTextAreaElement","target","flattenItems","isUsingGroups","reduce","acc","group","isShowingNoMatches","every","length","getComboboxProps","getInputProps","getItemProps","getMenuProps","getToggleButtonProps","highlightedIndex","isOpen","toggleMenu","type","onStateChange","stateChangeTypes","InputKeyDownEnter","ItemClick","_labelledby","_inputId","inputProps","comboboxProps","toggleProps","menuProps","elementStartIndex","autocomplete","combobox","inputField","onChange","toggleButton","content","Array","map","_","index","disabled","noMatchesTitle","render","ListItemLoadingState","forwardRef","T","ReturnType","HTMLAttributes","getStringMatch","Text","UseComboboxGetItemPropsOptions","AutocompleteItemsProps","HTMLLIElement","list","itemIndex","itemProps","highlighted","displayName","HighlightedItem","before","match","after","tokens","paddingRight","spacingXl","textOverflow","whiteSpace","position","top","right","zIndex","padding","spacing2Xs","height","overflow","maxHeight","listStyle","spacingXs","margin","spacingM","lineHeight","lineHeightM","color","gray500","display","wordBreak","cursor","hyphens","backgroundColor","gray100","gray200"],"version":3,"file":"main.js.map"}
package/dist/module.js CHANGED
@@ -28,73 +28,72 @@ import $7oe8x$contentfulf36tokens from "@contentful/f36-tokens";
28
28
 
29
29
 
30
30
  const $b76be67e84921f58$export$71b73d9f7d678746 = (listMaxHeight)=>({
31
- autocomplete: /*#__PURE__*/ $7oe8x$css({
31
+ autocomplete: /*#__PURE__*/ (0, $7oe8x$css)({
32
32
  name: "1jke4yk",
33
33
  styles: "position:relative;width:100%;"
34
34
  }),
35
- combobox: /*#__PURE__*/ $7oe8x$css({
35
+ combobox: /*#__PURE__*/ (0, $7oe8x$css)({
36
36
  name: "79elbk",
37
37
  styles: "position:relative;"
38
38
  }),
39
- inputField: /*#__PURE__*/ $7oe8x$css({
40
- paddingRight: $7oe8x$contentfulf36tokens.spacingXl,
41
- textOverflow: 'ellipsis',
42
- whiteSpace: 'nowrap'
39
+ inputField: /*#__PURE__*/ (0, $7oe8x$css)({
40
+ paddingRight: (0, $7oe8x$contentfulf36tokens).spacingXl,
41
+ textOverflow: "ellipsis",
42
+ whiteSpace: "nowrap"
43
43
  }),
44
- toggleButton: /*#__PURE__*/ $7oe8x$css({
45
- position: 'absolute',
46
- top: '1px',
47
- right: '1px',
44
+ toggleButton: /*#__PURE__*/ (0, $7oe8x$css)({
45
+ position: "absolute",
46
+ top: "1px",
47
+ right: "1px",
48
48
  zIndex: 1,
49
- padding: $7oe8x$contentfulf36tokens.spacing2Xs,
50
- height: '38px'
49
+ padding: (0, $7oe8x$contentfulf36tokens).spacing2Xs,
50
+ height: "38px"
51
51
  }),
52
- content: /*#__PURE__*/ $7oe8x$css({
53
- overflow: 'auto',
52
+ content: /*#__PURE__*/ (0, $7oe8x$css)({
53
+ overflow: "auto",
54
54
  maxHeight: `${listMaxHeight}px`
55
55
  }),
56
- list: /*#__PURE__*/ $7oe8x$css({
57
- listStyle: 'none',
58
- padding: `${$7oe8x$contentfulf36tokens.spacingXs} 0`,
56
+ list: /*#__PURE__*/ (0, $7oe8x$css)({
57
+ listStyle: "none",
58
+ padding: `${(0, $7oe8x$contentfulf36tokens).spacingXs} 0`,
59
59
  margin: 0
60
60
  }),
61
- groupTitle: /*#__PURE__*/ $7oe8x$css({
62
- padding: `${$7oe8x$contentfulf36tokens.spacingXs} ${$7oe8x$contentfulf36tokens.spacingM}`,
63
- lineHeight: $7oe8x$contentfulf36tokens.lineHeightM
61
+ groupTitle: /*#__PURE__*/ (0, $7oe8x$css)({
62
+ padding: `${(0, $7oe8x$contentfulf36tokens).spacingXs} ${(0, $7oe8x$contentfulf36tokens).spacingM}`,
63
+ lineHeight: (0, $7oe8x$contentfulf36tokens).lineHeightM
64
64
  }),
65
- noMatchesTitle: /*#__PURE__*/ $7oe8x$css({
66
- color: $7oe8x$contentfulf36tokens.gray500,
67
- margin: `${$7oe8x$contentfulf36tokens.spacingM} 0 ${$7oe8x$contentfulf36tokens.spacingM} 0`
65
+ noMatchesTitle: /*#__PURE__*/ (0, $7oe8x$css)({
66
+ color: (0, $7oe8x$contentfulf36tokens).gray500,
67
+ margin: `${(0, $7oe8x$contentfulf36tokens).spacingM} 0 ${(0, $7oe8x$contentfulf36tokens).spacingM} 0`
68
68
  }),
69
- item: /*#__PURE__*/ $7oe8x$css({
70
- display: 'block',
71
- padding: `${$7oe8x$contentfulf36tokens.spacingXs} ${$7oe8x$contentfulf36tokens.spacingM}`,
72
- wordBreak: 'break-word',
73
- whiteSpace: 'break-spaces',
74
- cursor: 'pointer',
75
- hyphens: 'auto',
76
- '&:focus, &:hover': {
77
- backgroundColor: $7oe8x$contentfulf36tokens.gray100
69
+ item: /*#__PURE__*/ (0, $7oe8x$css)({
70
+ display: "block",
71
+ padding: `${(0, $7oe8x$contentfulf36tokens).spacingXs} ${(0, $7oe8x$contentfulf36tokens).spacingM}`,
72
+ wordBreak: "break-word",
73
+ whiteSpace: "break-spaces",
74
+ cursor: "pointer",
75
+ hyphens: "auto",
76
+ "&:focus, &:hover": {
77
+ backgroundColor: (0, $7oe8x$contentfulf36tokens).gray100
78
78
  },
79
- '&:active': {
80
- backgroundColor: $7oe8x$contentfulf36tokens.gray200
79
+ "&:active": {
80
+ backgroundColor: (0, $7oe8x$contentfulf36tokens).gray200
81
81
  }
82
82
  }),
83
- disabled: /*#__PURE__*/ $7oe8x$css({
83
+ disabled: /*#__PURE__*/ (0, $7oe8x$css)({
84
84
  name: "1e07izz",
85
85
  styles: "opacity:0.5;pointer-events:none;"
86
86
  }),
87
- highlighted: /*#__PURE__*/ $7oe8x$css({
88
- backgroundColor: $7oe8x$contentfulf36tokens.gray100
87
+ highlighted: /*#__PURE__*/ (0, $7oe8x$css)({
88
+ backgroundColor: (0, $7oe8x$contentfulf36tokens).gray100
89
89
  })
90
- })
91
- ;
90
+ });
92
91
 
93
92
 
94
93
  const $641c6dc49f14cfd8$export$4db5c29873bb228f = (props)=>{
95
94
  const { items: items , elementStartIndex: elementStartIndex , highlightedIndex: highlightedIndex , getItemProps: getItemProps , renderItem: renderItem , inputValue: inputValue , listMaxHeight: listMaxHeight = 180 } = props;
96
- const styles = $b76be67e84921f58$export$71b73d9f7d678746(listMaxHeight);
97
- return /*#__PURE__*/ $7oe8x$react.createElement("ul", {
95
+ const styles = (0, $b76be67e84921f58$export$71b73d9f7d678746)(listMaxHeight);
96
+ return /*#__PURE__*/ (0, $7oe8x$react).createElement("ul", {
98
97
  className: styles.list,
99
98
  "data-test-id": "cf-autocomplete-list"
100
99
  }, items.map((item, index)=>{
@@ -103,44 +102,43 @@ const $641c6dc49f14cfd8$export$4db5c29873bb228f = (props)=>{
103
102
  item: item,
104
103
  index: itemIndex
105
104
  });
106
- return /*#__PURE__*/ $7oe8x$react.createElement($7oe8x$Text, {
105
+ return /*#__PURE__*/ (0, $7oe8x$react).createElement((0, $7oe8x$Text), {
107
106
  ...itemProps,
108
107
  as: "li",
109
108
  key: itemIndex,
110
- className: $7oe8x$cx([
109
+ className: (0, $7oe8x$cx)([
111
110
  styles.item,
112
111
  highlightedIndex === itemIndex && styles.highlighted
113
112
  ]),
114
113
  "data-test-id": `cf-autocomplete-list-item-${itemIndex}`
115
- }, renderItem ? renderItem(item, inputValue) : typeof item === 'string' ? /*#__PURE__*/ $7oe8x$react.createElement($641c6dc49f14cfd8$var$HighlightedItem, {
114
+ }, renderItem ? renderItem(item, inputValue) : typeof item === "string" ? /*#__PURE__*/ (0, $7oe8x$react).createElement($641c6dc49f14cfd8$var$HighlightedItem, {
116
115
  item: item,
117
116
  inputValue: inputValue
118
117
  }) : item);
119
118
  }));
120
119
  };
121
- $641c6dc49f14cfd8$export$4db5c29873bb228f.displayName = 'AutocompleteItems';
120
+ $641c6dc49f14cfd8$export$4db5c29873bb228f.displayName = "AutocompleteItems";
122
121
  function $641c6dc49f14cfd8$var$HighlightedItem({ item: item , inputValue: inputValue }) {
123
- const { before: before , match: match , after: after } = $7oe8x$getStringMatch(item, inputValue);
124
- return /*#__PURE__*/ $7oe8x$react.createElement($7oe8x$react.Fragment, null, before, /*#__PURE__*/ $7oe8x$react.createElement("b", null, match), after);
122
+ const { before: before , match: match , after: after } = (0, $7oe8x$getStringMatch)(item, inputValue);
123
+ return /*#__PURE__*/ (0, $7oe8x$react).createElement((0, $7oe8x$react).Fragment, null, before, /*#__PURE__*/ (0, $7oe8x$react).createElement("b", null, match), after);
125
124
  }
126
- $641c6dc49f14cfd8$var$HighlightedItem.displayName = 'HighlightedItem';
125
+ $641c6dc49f14cfd8$var$HighlightedItem.displayName = "HighlightedItem";
127
126
 
128
127
 
129
128
 
130
129
  function $7cd5ba9838c72bf9$var$_Autocomplete(props, ref) {
131
- const { id: id , className: className , clearAfterSelect: clearAfterSelect = false , closeAfterSelect: closeAfterSelect = true , defaultValue: defaultValue = '' , selectedItem: selectedItem1 , items: items , onInputValueChange: onInputValueChange , onSelectItem: onSelectItem , renderItem: renderItem , icon: icon = /*#__PURE__*/ $7oe8x$react.createElement($7oe8x$ChevronDownIcon, {
130
+ const { id: id , className: className , clearAfterSelect: clearAfterSelect = false , closeAfterSelect: closeAfterSelect = true , defaultValue: defaultValue = "" , selectedItem: selectedItem1 , items: items , onInputValueChange: onInputValueChange , onSelectItem: onSelectItem , renderItem: renderItem , icon: icon = /*#__PURE__*/ (0, $7oe8x$react).createElement((0, $7oe8x$ChevronDownIcon), {
132
131
  variant: "muted"
133
- }) , itemToString: itemToString = (item)=>item
134
- , isInvalid: isInvalid , isDisabled: isDisabled , isRequired: isRequired , isReadOnly: isReadOnly , noMatchesMessage: noMatchesMessage = 'No matches found' , placeholder: placeholder = 'Search' , inputRef: inputRef , toggleRef: toggleRef , listRef: listRef , listWidth: listWidth = 'auto' , listMaxHeight: listMaxHeight = 180 , isGrouped: isGrouped = false , isLoading: isLoading = false , usePortal: usePortal = false , testId: testId = 'cf-autocomplete' } = props;
135
- const styles = $b76be67e84921f58$export$71b73d9f7d678746(listMaxHeight);
136
- const [inputValue1, setInputValue] = $7oe8x$useState(defaultValue);
137
- const handleInputValueChange = $7oe8x$useCallback((value)=>{
132
+ }) , itemToString: itemToString = (item)=>item , isInvalid: isInvalid , isDisabled: isDisabled , isRequired: isRequired , isReadOnly: isReadOnly , noMatchesMessage: noMatchesMessage = "No matches found" , placeholder: placeholder = "Search" , inputRef: inputRef , toggleRef: toggleRef , listRef: listRef , listWidth: listWidth = "auto" , listMaxHeight: listMaxHeight = 180 , isGrouped: isGrouped = false , isLoading: isLoading = false , usePortal: usePortal = false , testId: testId = "cf-autocomplete" } = props;
133
+ const styles = (0, $b76be67e84921f58$export$71b73d9f7d678746)(listMaxHeight);
134
+ const [inputValue1, setInputValue] = (0, $7oe8x$useState)(defaultValue);
135
+ const handleInputValueChange = (0, $7oe8x$useCallback)((value)=>{
138
136
  setInputValue(value);
139
137
  onInputValueChange === null || onInputValueChange === void 0 ? void 0 : onInputValueChange(value);
140
138
  }, [
141
139
  onInputValueChange
142
140
  ]); // Handle manually to avoid a jumping cursor, see https://github.com/downshift-js/downshift/issues/1108#issuecomment-842407759
143
- const handleNativeChangeEvent = $7oe8x$useCallback((event)=>{
141
+ const handleNativeChangeEvent = (0, $7oe8x$useCallback)((event)=>{
144
142
  const value = event.target.value;
145
143
  handleInputValueChange(value);
146
144
  }, [
@@ -149,24 +147,22 @@ function $7cd5ba9838c72bf9$var$_Autocomplete(props, ref) {
149
147
  const flattenItems = $7cd5ba9838c72bf9$var$isUsingGroups(isGrouped, items) ? items.reduce((acc, group)=>[
150
148
  ...acc,
151
149
  ...group.options
152
- ]
153
- , []) : items;
154
- const isShowingNoMatches = $7cd5ba9838c72bf9$var$isUsingGroups(isGrouped, items) ? items.every((group)=>group.options.length === 0
155
- ) : items.length === 0;
156
- const { getComboboxProps: getComboboxProps , getInputProps: getInputProps , getItemProps: getItemProps , getMenuProps: getMenuProps , getToggleButtonProps: getToggleButtonProps , highlightedIndex: highlightedIndex , isOpen: isOpen , toggleMenu: toggleMenu } = $7oe8x$useCombobox({
150
+ ], []) : items;
151
+ const isShowingNoMatches = $7cd5ba9838c72bf9$var$isUsingGroups(isGrouped, items) ? items.every((group)=>group.options.length === 0) : items.length === 0;
152
+ const { getComboboxProps: getComboboxProps , getInputProps: getInputProps , getItemProps: getItemProps , getMenuProps: getMenuProps , getToggleButtonProps: getToggleButtonProps , highlightedIndex: highlightedIndex , isOpen: isOpen , toggleMenu: toggleMenu } = (0, $7oe8x$useCombobox)({
157
153
  items: flattenItems,
158
154
  selectedItem: selectedItem1,
159
155
  inputValue: inputValue1,
160
156
  itemToString: itemToString,
161
157
  onInputValueChange: ({ type: type , inputValue: inputValue })=>{
162
- if (type !== '__input_change__') handleInputValueChange(inputValue);
158
+ if (type !== "__input_change__") handleInputValueChange(inputValue);
163
159
  },
164
160
  onStateChange: ({ type: type , selectedItem: selectedItem })=>{
165
161
  switch(type){
166
- case $7oe8x$useCombobox.stateChangeTypes.InputKeyDownEnter:
167
- case $7oe8x$useCombobox.stateChangeTypes.ItemClick:
162
+ case (0, $7oe8x$useCombobox).stateChangeTypes.InputKeyDownEnter:
163
+ case (0, $7oe8x$useCombobox).stateChangeTypes.ItemClick:
168
164
  if (selectedItem) onSelectItem(selectedItem);
169
- if (clearAfterSelect) handleInputValueChange('');
165
+ if (clearAfterSelect) handleInputValueChange("");
170
166
  if (!closeAfterSelect) toggleMenu();
171
167
  break;
172
168
  default:
@@ -174,28 +170,28 @@ function $7cd5ba9838c72bf9$var$_Autocomplete(props, ref) {
174
170
  }
175
171
  }
176
172
  });
177
- const { 'aria-labelledby': _labelledby , id: _inputId , ...inputProps } = getInputProps();
173
+ const { "aria-labelledby": _labelledby , id: _inputId , ...inputProps } = getInputProps();
178
174
  const comboboxProps = getComboboxProps();
179
175
  const toggleProps = getToggleButtonProps();
180
176
  const menuProps = getMenuProps();
181
177
  let elementStartIndex = 0;
182
- return /*#__PURE__*/ $7oe8x$react.createElement("div", {
178
+ return /*#__PURE__*/ (0, $7oe8x$react).createElement("div", {
183
179
  "data-test-id": testId,
184
- className: $7oe8x$cx(styles.autocomplete, className),
180
+ className: (0, $7oe8x$cx)(styles.autocomplete, className),
185
181
  ref: ref
186
- }, /*#__PURE__*/ $7oe8x$react.createElement($7oe8x$Popover, {
182
+ }, /*#__PURE__*/ (0, $7oe8x$react).createElement((0, $7oe8x$Popover), {
187
183
  usePortal: usePortal,
188
184
  isOpen: isOpen,
189
- isFullWidth: listWidth === 'full',
185
+ isFullWidth: listWidth === "full",
190
186
  renderOnlyWhenOpen: false,
191
187
  // and the user won't be able to type in the input
192
188
  // eslint-disable-next-line jsx-a11y/no-autofocus
193
189
  autoFocus: false,
194
190
  id: menuProps.id
195
- }, /*#__PURE__*/ $7oe8x$react.createElement($7oe8x$Popover.Trigger, null, /*#__PURE__*/ $7oe8x$react.createElement("div", {
191
+ }, /*#__PURE__*/ (0, $7oe8x$react).createElement((0, $7oe8x$Popover).Trigger, null, /*#__PURE__*/ (0, $7oe8x$react).createElement("div", {
196
192
  ...comboboxProps,
197
193
  className: styles.combobox
198
- }, /*#__PURE__*/ $7oe8x$react.createElement($7oe8x$TextInput, {
194
+ }, /*#__PURE__*/ (0, $7oe8x$react).createElement((0, $7oe8x$TextInput), {
199
195
  className: styles.inputField,
200
196
  ...inputProps,
201
197
  onFocus: ()=>{
@@ -206,53 +202,52 @@ function $7cd5ba9838c72bf9$var$_Autocomplete(props, ref) {
206
202
  isDisabled: isDisabled,
207
203
  isRequired: isRequired,
208
204
  isReadOnly: isReadOnly,
209
- ref: $7oe8x$mergeRefs(inputProps.ref, inputRef),
205
+ ref: (0, $7oe8x$mergeRefs)(inputProps.ref, inputRef),
210
206
  testId: "cf-autocomplete-input",
211
207
  placeholder: placeholder,
212
208
  onChange: (event)=>{
213
209
  inputProps.onChange(event);
214
210
  handleNativeChangeEvent(event);
215
211
  }
216
- }), /*#__PURE__*/ $7oe8x$react.createElement($7oe8x$IconButton, {
212
+ }), /*#__PURE__*/ (0, $7oe8x$react).createElement((0, $7oe8x$IconButton), {
217
213
  ...toggleProps,
218
- ref: $7oe8x$mergeRefs(toggleProps.ref, toggleRef),
219
- "aria-label": inputValue1 ? 'Clear' : 'Show list',
214
+ ref: (0, $7oe8x$mergeRefs)(toggleProps.ref, toggleRef),
215
+ "aria-label": inputValue1 ? "Clear" : "Show list",
220
216
  className: styles.toggleButton,
221
217
  variant: "transparent",
222
- icon: inputValue1 ? /*#__PURE__*/ $7oe8x$react.createElement($7oe8x$CloseIcon, {
218
+ icon: inputValue1 ? /*#__PURE__*/ (0, $7oe8x$react).createElement((0, $7oe8x$CloseIcon), {
223
219
  variant: "muted"
224
220
  }) : icon,
225
221
  onClick: ()=>{
226
- if (inputValue1) handleInputValueChange('');
222
+ if (inputValue1) handleInputValueChange("");
227
223
  else toggleMenu();
228
224
  },
229
225
  isDisabled: isDisabled,
230
226
  size: "small"
231
- }))), /*#__PURE__*/ $7oe8x$react.createElement($7oe8x$Popover.Content, {
227
+ }))), (items.length > 0 || inputValue1.length > 0) && /*#__PURE__*/ (0, $7oe8x$react).createElement((0, $7oe8x$Popover).Content, {
232
228
  ...menuProps,
233
- ref: $7oe8x$mergeRefs(menuProps.ref, listRef),
229
+ ref: (0, $7oe8x$mergeRefs)(menuProps.ref, listRef),
234
230
  className: styles.content,
235
231
  testId: "cf-autocomplete-container"
236
232
  }, isLoading && [
237
233
  ...Array(3)
238
- ].map((_, index)=>/*#__PURE__*/ $7oe8x$react.createElement("div", {
234
+ ].map((_, index)=>/*#__PURE__*/ (0, $7oe8x$react).createElement("div", {
239
235
  key: index,
240
- className: $7oe8x$cx(styles.item, styles.disabled)
241
- }, /*#__PURE__*/ $7oe8x$react.createElement($7cd5ba9838c72bf9$var$ListItemLoadingState, null))
242
- ), !isLoading && isShowingNoMatches && /*#__PURE__*/ $7oe8x$react.createElement("div", {
236
+ className: (0, $7oe8x$cx)(styles.item, styles.disabled)
237
+ }, /*#__PURE__*/ (0, $7oe8x$react).createElement($7cd5ba9838c72bf9$var$ListItemLoadingState, null))), !isLoading && isShowingNoMatches && /*#__PURE__*/ (0, $7oe8x$react).createElement("div", {
243
238
  className: styles.item
244
- }, /*#__PURE__*/ $7oe8x$react.createElement($7oe8x$Subheading, {
239
+ }, /*#__PURE__*/ (0, $7oe8x$react).createElement((0, $7oe8x$Subheading), {
245
240
  className: styles.noMatchesTitle
246
241
  }, noMatchesMessage)), !isLoading && $7cd5ba9838c72bf9$var$isUsingGroups(isGrouped, items) && items.map((group, index)=>{
247
242
  if (group.options.length < 1) return;
248
- const render = /*#__PURE__*/ $7oe8x$react.createElement("div", {
243
+ const render = /*#__PURE__*/ (0, $7oe8x$react).createElement("div", {
249
244
  key: index
250
- }, /*#__PURE__*/ $7oe8x$react.createElement($7oe8x$SectionHeading, {
245
+ }, /*#__PURE__*/ (0, $7oe8x$react).createElement((0, $7oe8x$SectionHeading), {
251
246
  key: index,
252
247
  "data-test-id": "cf-autocomplete-grouptitle",
253
248
  marginBottom: "none",
254
249
  className: styles.groupTitle
255
- }, group.groupTitle), /*#__PURE__*/ $7oe8x$react.createElement($641c6dc49f14cfd8$export$4db5c29873bb228f, {
250
+ }, group.groupTitle), /*#__PURE__*/ (0, $7oe8x$react).createElement((0, $641c6dc49f14cfd8$export$4db5c29873bb228f), {
256
251
  items: group.options,
257
252
  highlightedIndex: highlightedIndex,
258
253
  getItemProps: getItemProps,
@@ -262,7 +257,7 @@ function $7cd5ba9838c72bf9$var$_Autocomplete(props, ref) {
262
257
  }));
263
258
  elementStartIndex += group.options.length;
264
259
  return render;
265
- }), !isLoading && !$7cd5ba9838c72bf9$var$isUsingGroups(isGrouped, items) && items.length > 0 && /*#__PURE__*/ $7oe8x$react.createElement($641c6dc49f14cfd8$export$4db5c29873bb228f, {
260
+ }), !isLoading && !$7cd5ba9838c72bf9$var$isUsingGroups(isGrouped, items) && items.length > 0 && /*#__PURE__*/ (0, $7oe8x$react).createElement((0, $641c6dc49f14cfd8$export$4db5c29873bb228f), {
266
261
  items: items,
267
262
  elementStartIndex: elementStartIndex,
268
263
  highlightedIndex: highlightedIndex,
@@ -272,16 +267,16 @@ function $7cd5ba9838c72bf9$var$_Autocomplete(props, ref) {
272
267
  }))));
273
268
  }
274
269
  const $7cd5ba9838c72bf9$var$ListItemLoadingState = ()=>{
275
- return /*#__PURE__*/ $7oe8x$react.createElement($7oe8x$SkeletonContainer, {
270
+ return /*#__PURE__*/ (0, $7oe8x$react).createElement((0, $7oe8x$SkeletonContainer), {
276
271
  svgHeight: 16
277
- }, /*#__PURE__*/ $7oe8x$react.createElement($7oe8x$SkeletonBodyText, {
272
+ }, /*#__PURE__*/ (0, $7oe8x$react).createElement((0, $7oe8x$SkeletonBodyText), {
278
273
  numberOfLines: 1
279
274
  }));
280
275
  }; // This is required to infer correct typings when differentiating groups and items
281
276
  function $7cd5ba9838c72bf9$var$isUsingGroups(isGrouped, items) {
282
277
  return isGrouped;
283
278
  }
284
- const $7cd5ba9838c72bf9$export$2f2b9559550c7bbc = /*#__PURE__*/ $7oe8x$react.forwardRef($7cd5ba9838c72bf9$var$_Autocomplete);
279
+ const $7cd5ba9838c72bf9$export$2f2b9559550c7bbc = /*#__PURE__*/ (0, $7oe8x$react).forwardRef($7cd5ba9838c72bf9$var$_Autocomplete);
285
280
 
286
281
 
287
282
 
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/components/autocomplete/src/index.ts","packages/components/autocomplete/src/Autocomplete.tsx","packages/components/autocomplete/src/AutocompleteItems.tsx","packages/components/autocomplete/src/Autocomplete.styles.ts"],"sourcesContent":["export { Autocomplete } from './Autocomplete';\nexport type { AutocompleteProps } from './Autocomplete';\n","import React, { useCallback, useState } from 'react';\nimport { cx } from 'emotion';\nimport { useCombobox } from 'downshift';\n\nimport { mergeRefs } from '@contentful/f36-core';\nimport type { CommonProps, ExpandProps } from '@contentful/f36-core';\nimport { IconButton } from '@contentful/f36-button';\nimport { TextInput } from '@contentful/f36-forms';\nimport type { TextInputProps } from '@contentful/f36-forms';\nimport { CloseIcon, ChevronDownIcon } from '@contentful/f36-icons';\nimport { SkeletonContainer, SkeletonBodyText } from '@contentful/f36-skeleton';\nimport { Popover } from '@contentful/f36-popover';\nimport { Subheading, SectionHeading } from '@contentful/f36-typography';\n\nimport { AutocompleteItems } from './AutocompleteItems';\nimport { getAutocompleteStyles } from './Autocomplete.styles';\n\nexport interface GenericGroupType<ItemType> {\n groupTitle: string;\n options: ItemType[];\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface AutocompleteProps<ItemType>\n extends CommonProps,\n Pick<\n TextInputProps,\n | 'isDisabled'\n | 'isInvalid'\n | 'isReadOnly'\n | 'isRequired'\n | 'id'\n | 'defaultValue'\n > {\n /**\n * It’s an array of data to be used as \"options\" by the autocomplete component.\n * This can either be a plain list of items or a list of groups of items.\n */\n items: ItemType[] | GenericGroupType<ItemType>[];\n\n /**\n * Set a custom icon for the text input\n */\n icon?: React.ReactElement;\n\n /**\n * Tells if the item is a object with groups\n */\n isGrouped?: boolean;\n\n /**\n * Function called whenever the input value changes\n */\n onInputValueChange?: (value: string) => void;\n /**\n * This is the function that will be called when the user selects one of the \"options\" in the list.\n * The component will pass the selected \"item\" as an argument to the function..\n */\n onSelectItem: (item: ItemType) => void;\n\n /**\n * Applying the selectedItem property turns autocomplete into a controlled component.\n * Can be used to display e.g. previously selected element. If it is an object the itemToString function will apply to it.\n */\n selectedItem?: ItemType;\n\n /**\n * This is the function that will be called for each \"item\" passed in the `items` prop.\n * It receives the \"item\" and \"inputValue\" as arguments and returns a ReactNode.\n * The inputValue is passed in case you want to highlight the match on the render.\n */\n renderItem?: (item: ItemType, inputValue: string) => React.ReactNode;\n /**\n * When using objects as `items`, we recommend passing a function that tells Downshift how to extract a string\n * from those objetcs to be used as inputValue\n */\n itemToString?: (item: ItemType) => string;\n /**\n * If this is set to `true` the text input will be cleared after an item is selected\n * @default false\n */\n clearAfterSelect?: boolean;\n /**\n * If this is set to `false` the dropdown menu will stay open after selecting an item\n * @default true\n */\n closeAfterSelect?: boolean;\n /**\n * This is the value will be passed to the `placeholder` prop of the input.\n * @default \"Search\"\n */\n placeholder?: string;\n /**\n * A message that will be shown when it is not possible to find any option that matches the input value\n * @default \"No matches\"\n */\n noMatchesMessage?: string;\n /**\n * Use this prop to get a ref to the input element of the component\n */\n inputRef?: React.Ref<HTMLInputElement>;\n /**\n * Use this prop to get a ref to the toggle button of the component\n */\n toggleRef?: React.Ref<HTMLButtonElement>;\n /**\n * Use this prop to get a ref to the list of items of the component\n */\n listRef?: React.Ref<HTMLUListElement>;\n /**\n * It sets the width of the list\n * @default \"auto\"\n */\n listWidth?: 'auto' | 'full';\n /**\n * It sets the max-height, in pixels, of the list\n * The default value is the height of 5 single line items\n * @default 180\n */\n listMaxHeight?: number;\n /**\n * Sets the list to show its loading state\n * @default false\n */\n isLoading?: boolean;\n /**\n * Boolean to control whether or not to render the suggestions box in a React Portal.\n * Rendering content inside a Portal allows the suggestions box to escape the bounds\n * of its parent while still being positioned correctly.\n * Defaults to `false`\n */\n usePortal?: boolean;\n}\n\nfunction _Autocomplete<ItemType>(\n props: AutocompleteProps<ItemType>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {\n id,\n className,\n clearAfterSelect = false,\n closeAfterSelect = true,\n defaultValue = '',\n selectedItem,\n items,\n onInputValueChange,\n onSelectItem,\n renderItem,\n icon = <ChevronDownIcon variant=\"muted\" />,\n itemToString = (item: ItemType) => (item as unknown) as string,\n isInvalid,\n isDisabled,\n isRequired,\n isReadOnly,\n noMatchesMessage = 'No matches found',\n placeholder = 'Search',\n inputRef,\n toggleRef,\n listRef,\n listWidth = 'auto',\n listMaxHeight = 180,\n isGrouped = false,\n isLoading = false,\n usePortal = false,\n testId = 'cf-autocomplete',\n } = props;\n\n type GroupType = GenericGroupType<ItemType>;\n\n const styles = getAutocompleteStyles(listMaxHeight);\n\n const [inputValue, setInputValue] = useState(defaultValue);\n\n const handleInputValueChange = useCallback(\n (value: string) => {\n setInputValue(value);\n\n onInputValueChange?.(value);\n },\n [onInputValueChange],\n );\n\n // Handle manually to avoid a jumping cursor, see https://github.com/downshift-js/downshift/issues/1108#issuecomment-842407759\n const handleNativeChangeEvent = useCallback(\n (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const value = event.target.value;\n handleInputValueChange(value);\n },\n [handleInputValueChange],\n );\n\n const flattenItems = isUsingGroups(isGrouped, items)\n ? items.reduce(\n (acc: ItemType[], group: GroupType) => [...acc, ...group.options],\n [],\n )\n : items;\n\n const isShowingNoMatches = isUsingGroups(isGrouped, items)\n ? items.every((group: GroupType) => group.options.length === 0)\n : items.length === 0;\n\n const {\n getComboboxProps,\n getInputProps,\n getItemProps,\n getMenuProps,\n getToggleButtonProps,\n highlightedIndex,\n isOpen,\n toggleMenu,\n } = useCombobox({\n items: flattenItems,\n selectedItem,\n inputValue,\n itemToString,\n onInputValueChange: ({ type, inputValue }) => {\n if (type !== '__input_change__') {\n handleInputValueChange(inputValue);\n }\n },\n onStateChange: ({ type, selectedItem }) => {\n switch (type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n if (selectedItem) {\n onSelectItem(selectedItem);\n }\n if (clearAfterSelect) {\n handleInputValueChange('');\n }\n if (!closeAfterSelect) {\n toggleMenu();\n }\n break;\n default:\n break;\n }\n },\n });\n\n const {\n 'aria-labelledby': _labelledby,\n id: _inputId,\n ...inputProps\n } = getInputProps();\n const comboboxProps = getComboboxProps();\n const toggleProps = getToggleButtonProps();\n const menuProps = getMenuProps();\n let elementStartIndex = 0;\n\n return (\n <div\n data-test-id={testId}\n className={cx(styles.autocomplete, className)}\n ref={ref}\n >\n <Popover\n usePortal={usePortal}\n isOpen={isOpen}\n isFullWidth={listWidth === 'full'}\n renderOnlyWhenOpen={false}\n // This is necessary, otherwise the focus will change from the input to the Popover\n // and the user won't be able to type in the input\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={false}\n id={menuProps.id}\n >\n <Popover.Trigger>\n <div {...comboboxProps} className={styles.combobox}>\n <TextInput\n className={styles.inputField}\n {...inputProps}\n onFocus={() => {\n if (!isOpen) {\n toggleMenu();\n }\n }}\n id={id}\n isInvalid={isInvalid}\n isDisabled={isDisabled}\n isRequired={isRequired}\n isReadOnly={isReadOnly}\n ref={mergeRefs(inputProps.ref, inputRef)}\n testId=\"cf-autocomplete-input\"\n placeholder={placeholder}\n onChange={(event) => {\n inputProps.onChange(event);\n handleNativeChangeEvent(event);\n }}\n />\n <IconButton\n {...toggleProps}\n ref={mergeRefs(toggleProps.ref, toggleRef)}\n aria-label={inputValue ? 'Clear' : 'Show list'}\n className={styles.toggleButton}\n variant=\"transparent\"\n icon={inputValue ? <CloseIcon variant=\"muted\" /> : icon}\n onClick={() => {\n if (inputValue) {\n handleInputValueChange('');\n } else {\n toggleMenu();\n }\n }}\n isDisabled={isDisabled}\n size=\"small\"\n />\n </div>\n </Popover.Trigger>\n\n <Popover.Content\n {...menuProps}\n ref={mergeRefs(menuProps.ref, listRef)}\n className={styles.content}\n testId=\"cf-autocomplete-container\"\n >\n {isLoading &&\n [...Array(3)].map((_, index) => (\n <div key={index} className={cx(styles.item, styles.disabled)}>\n <ListItemLoadingState />\n </div>\n ))}\n\n {!isLoading && isShowingNoMatches && (\n <div className={styles.item}>\n <Subheading className={styles.noMatchesTitle}>\n {noMatchesMessage}\n </Subheading>\n </div>\n )}\n\n {!isLoading &&\n isUsingGroups(isGrouped, items) &&\n items.map((group: GroupType, index: number) => {\n if (group.options.length < 1) {\n return;\n }\n const render = (\n <div key={index}>\n <SectionHeading\n key={index}\n data-test-id=\"cf-autocomplete-grouptitle\"\n marginBottom=\"none\"\n className={styles.groupTitle}\n >\n {group.groupTitle}\n </SectionHeading>\n <AutocompleteItems<ItemType>\n items={group.options}\n highlightedIndex={highlightedIndex}\n getItemProps={getItemProps}\n renderItem={renderItem}\n inputValue={inputValue}\n elementStartIndex={elementStartIndex}\n />\n </div>\n );\n elementStartIndex += group.options.length;\n return render;\n })}\n\n {!isLoading &&\n !isUsingGroups(isGrouped, items) &&\n items.length > 0 && (\n <AutocompleteItems<ItemType>\n items={items}\n elementStartIndex={elementStartIndex}\n highlightedIndex={highlightedIndex}\n getItemProps={getItemProps}\n renderItem={renderItem}\n inputValue={inputValue}\n />\n )}\n </Popover.Content>\n </Popover>\n </div>\n );\n}\n\nconst ListItemLoadingState = () => {\n return (\n <SkeletonContainer svgHeight={16}>\n <SkeletonBodyText numberOfLines={1} />\n </SkeletonContainer>\n );\n};\n\n// This is required to infer correct typings when differentiating groups and items\nfunction isUsingGroups<ItemType>(\n isGrouped: boolean,\n items: ItemType[] | GenericGroupType<ItemType>[],\n): items is GenericGroupType<ItemType>[] {\n return isGrouped;\n}\n\n/**\n * The Autocomplete is a component that will show a `TextInput` where a user can type any word which will be used\n * to filter a list of items. That list of filtered items will be shown to the user as possible options for the input.\n * Once one of the options is selected, that option becomes the value of the `TextInput`.\n */\nexport const Autocomplete = React.forwardRef(_Autocomplete) as <T>(\n props: ExpandProps<AutocompleteProps<T>> & {\n ref?: React.Ref<HTMLDivElement>;\n },\n) => ReturnType<typeof _Autocomplete>;\n","import React, { HTMLAttributes } from 'react';\nimport { cx } from 'emotion';\n\nimport { getStringMatch } from '@contentful/f36-utils';\nimport { Text } from '@contentful/f36-typography';\nimport { getAutocompleteStyles } from './Autocomplete.styles';\nimport type { UseComboboxGetItemPropsOptions } from 'downshift';\n\ninterface AutocompleteItemsProps<ItemType> {\n items: ItemType[];\n elementStartIndex: number;\n highlightedIndex: number;\n getItemProps: (\n options: UseComboboxGetItemPropsOptions<ItemType>,\n ) => HTMLAttributes<HTMLLIElement>;\n renderItem: (item: ItemType, inputValue: string) => React.ReactNode;\n inputValue: string;\n listMaxHeight?: number;\n}\n\nexport const AutocompleteItems = <ItemType,>(\n props: AutocompleteItemsProps<ItemType>,\n) => {\n const {\n items,\n elementStartIndex,\n highlightedIndex,\n getItemProps,\n renderItem,\n inputValue,\n listMaxHeight = 180,\n } = props;\n\n const styles = getAutocompleteStyles(listMaxHeight);\n\n return (\n <ul className={styles.list} data-test-id=\"cf-autocomplete-list\">\n {items.map((item: ItemType, index: number) => {\n const itemIndex = elementStartIndex + index;\n const itemProps = getItemProps({ item, index: itemIndex });\n return (\n <Text\n {...itemProps}\n as=\"li\"\n key={itemIndex}\n className={cx([\n styles.item,\n highlightedIndex === itemIndex && styles.highlighted,\n ])}\n data-test-id={`cf-autocomplete-list-item-${itemIndex}`}\n >\n {renderItem ? (\n renderItem(item, inputValue)\n ) : typeof item === 'string' ? (\n <HighlightedItem item={item} inputValue={inputValue} />\n ) : (\n item\n )}\n </Text>\n );\n })}\n </ul>\n );\n};\n\nAutocompleteItems.displayName = 'AutocompleteItems';\n\nfunction HighlightedItem({\n item,\n inputValue,\n}: {\n item: string;\n inputValue: string;\n}) {\n const { before, match, after } = getStringMatch(item, inputValue);\n\n return (\n <>\n {before}\n <b>{match}</b>\n {after}\n </>\n );\n}\n\nHighlightedItem.displayName = 'HighlightedItem';\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getAutocompleteStyles = (listMaxHeight: number) => ({\n autocomplete: css({\n position: 'relative',\n width: '100%',\n }),\n combobox: css({\n position: 'relative',\n }),\n inputField: css({\n paddingRight: tokens.spacingXl,\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n toggleButton: css({\n position: 'absolute',\n top: '1px',\n right: '1px',\n zIndex: 1,\n padding: tokens.spacing2Xs,\n height: '38px',\n }),\n content: css({\n overflow: 'auto',\n maxHeight: `${listMaxHeight}px`,\n }),\n list: css({\n listStyle: 'none',\n padding: `${tokens.spacingXs} 0`,\n margin: 0,\n }),\n groupTitle: css({\n padding: `${tokens.spacingXs} ${tokens.spacingM}`,\n lineHeight: tokens.lineHeightM,\n }),\n noMatchesTitle: css({\n color: tokens.gray500,\n margin: `${tokens.spacingM} 0 ${tokens.spacingM} 0`,\n }),\n item: css({\n display: 'block',\n padding: `${tokens.spacingXs} ${tokens.spacingM}`,\n wordBreak: 'break-word',\n whiteSpace: 'break-spaces',\n cursor: 'pointer',\n hyphens: 'auto',\n\n '&:focus, &:hover': {\n backgroundColor: tokens.gray100,\n },\n '&:active': {\n backgroundColor: tokens.gray200,\n },\n }),\n disabled: css({\n opacity: 0.5,\n pointerEvents: 'none',\n }),\n highlighted: css({\n backgroundColor: tokens.gray100,\n }),\n});\n"],"names":["Autocomplete","AutocompleteProps","React","useCallback","useState","useCombobox","mergeRefs","CommonProps","ExpandProps","IconButton","TextInput","TextInputProps","CloseIcon","ChevronDownIcon","SkeletonContainer","SkeletonBodyText","Popover","Subheading","SectionHeading","AutocompleteItems","getAutocompleteStyles","GenericGroupType","groupTitle","options","ItemType","Pick","items","icon","ReactElement","isGrouped","onInputValueChange","value","onSelectItem","item","selectedItem","renderItem","inputValue","ReactNode","itemToString","clearAfterSelect","closeAfterSelect","placeholder","noMatchesMessage","inputRef","Ref","HTMLInputElement","toggleRef","HTMLButtonElement","listRef","HTMLUListElement","listWidth","listMaxHeight","isLoading","usePortal","_Autocomplete","props","ref","HTMLDivElement","id","className","defaultValue","isInvalid","isDisabled","isRequired","isReadOnly","testId","GroupType","styles","setInputValue","handleInputValueChange","handleNativeChangeEvent","event","ChangeEvent","HTMLTextAreaElement","target","flattenItems","isUsingGroups","reduce","acc","group","isShowingNoMatches","every","length","getComboboxProps","getInputProps","getItemProps","getMenuProps","getToggleButtonProps","highlightedIndex","isOpen","toggleMenu","type","onStateChange","stateChangeTypes","InputKeyDownEnter","ItemClick","_labelledby","_inputId","inputProps","comboboxProps","toggleProps","menuProps","elementStartIndex","autocomplete","combobox","inputField","onChange","toggleButton","content","Array","map","_","index","disabled","noMatchesTitle","render","ListItemLoadingState","forwardRef","T","ReturnType","HTMLAttributes","getStringMatch","Text","UseComboboxGetItemPropsOptions","AutocompleteItemsProps","HTMLLIElement","list","itemIndex","itemProps","highlighted","displayName","HighlightedItem","before","match","after","tokens","paddingRight","spacingXl","textOverflow","whiteSpace","position","top","right","zIndex","padding","spacing2Xs","height","overflow","maxHeight","listStyle","spacingXs","margin","spacingM","lineHeight","lineHeightM","color","gray500","display","wordBreak","cursor","hyphens","backgroundColor","gray100","gray200"],"version":3,"file":"module.js.map"}
1
+ {"mappings":"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","sources":["packages/components/autocomplete/src/index.ts","packages/components/autocomplete/src/Autocomplete.tsx","packages/components/autocomplete/src/AutocompleteItems.tsx","packages/components/autocomplete/src/Autocomplete.styles.ts"],"sourcesContent":["export { Autocomplete } from './Autocomplete';\nexport type { AutocompleteProps } from './Autocomplete';\n","import React, { useCallback, useState } from 'react';\nimport { cx } from 'emotion';\nimport { useCombobox } from 'downshift';\n\nimport { mergeRefs } from '@contentful/f36-core';\nimport type { CommonProps, ExpandProps } from '@contentful/f36-core';\nimport { IconButton } from '@contentful/f36-button';\nimport { TextInput } from '@contentful/f36-forms';\nimport type { TextInputProps } from '@contentful/f36-forms';\nimport { CloseIcon, ChevronDownIcon } from '@contentful/f36-icons';\nimport { SkeletonContainer, SkeletonBodyText } from '@contentful/f36-skeleton';\nimport { Popover } from '@contentful/f36-popover';\nimport { Subheading, SectionHeading } from '@contentful/f36-typography';\n\nimport { AutocompleteItems } from './AutocompleteItems';\nimport { getAutocompleteStyles } from './Autocomplete.styles';\n\nexport interface GenericGroupType<ItemType> {\n groupTitle: string;\n options: ItemType[];\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface AutocompleteProps<ItemType>\n extends CommonProps,\n Pick<\n TextInputProps,\n | 'isDisabled'\n | 'isInvalid'\n | 'isReadOnly'\n | 'isRequired'\n | 'id'\n | 'defaultValue'\n > {\n /**\n * It’s an array of data to be used as \"options\" by the autocomplete component.\n * This can either be a plain list of items or a list of groups of items.\n */\n items: ItemType[] | GenericGroupType<ItemType>[];\n\n /**\n * Set a custom icon for the text input\n */\n icon?: React.ReactElement;\n\n /**\n * Tells if the item is a object with groups\n */\n isGrouped?: boolean;\n\n /**\n * Function called whenever the input value changes\n */\n onInputValueChange?: (value: string) => void;\n /**\n * This is the function that will be called when the user selects one of the \"options\" in the list.\n * The component will pass the selected \"item\" as an argument to the function..\n */\n onSelectItem: (item: ItemType) => void;\n\n /**\n * Applying the selectedItem property turns autocomplete into a controlled component.\n * Can be used to display e.g. previously selected element. If it is an object the itemToString function will apply to it.\n */\n selectedItem?: ItemType;\n\n /**\n * This is the function that will be called for each \"item\" passed in the `items` prop.\n * It receives the \"item\" and \"inputValue\" as arguments and returns a ReactNode.\n * The inputValue is passed in case you want to highlight the match on the render.\n */\n renderItem?: (item: ItemType, inputValue: string) => React.ReactNode;\n /**\n * When using objects as `items`, we recommend passing a function that tells Downshift how to extract a string\n * from those objetcs to be used as inputValue\n */\n itemToString?: (item: ItemType) => string;\n /**\n * If this is set to `true` the text input will be cleared after an item is selected\n * @default false\n */\n clearAfterSelect?: boolean;\n /**\n * If this is set to `false` the dropdown menu will stay open after selecting an item\n * @default true\n */\n closeAfterSelect?: boolean;\n /**\n * This is the value will be passed to the `placeholder` prop of the input.\n * @default \"Search\"\n */\n placeholder?: string;\n /**\n * A message that will be shown when it is not possible to find any option that matches the input value\n * @default \"No matches\"\n */\n noMatchesMessage?: string;\n /**\n * Use this prop to get a ref to the input element of the component\n */\n inputRef?: React.Ref<HTMLInputElement>;\n /**\n * Use this prop to get a ref to the toggle button of the component\n */\n toggleRef?: React.Ref<HTMLButtonElement>;\n /**\n * Use this prop to get a ref to the list of items of the component\n */\n listRef?: React.Ref<HTMLUListElement>;\n /**\n * It sets the width of the list\n * @default \"auto\"\n */\n listWidth?: 'auto' | 'full';\n /**\n * It sets the max-height, in pixels, of the list\n * The default value is the height of 5 single line items\n * @default 180\n */\n listMaxHeight?: number;\n /**\n * Sets the list to show its loading state\n * @default false\n */\n isLoading?: boolean;\n /**\n * Boolean to control whether or not to render the suggestions box in a React Portal.\n * Rendering content inside a Portal allows the suggestions box to escape the bounds\n * of its parent while still being positioned correctly.\n * Defaults to `false`\n */\n usePortal?: boolean;\n}\n\nfunction _Autocomplete<ItemType>(\n props: AutocompleteProps<ItemType>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {\n id,\n className,\n clearAfterSelect = false,\n closeAfterSelect = true,\n defaultValue = '',\n selectedItem,\n items,\n onInputValueChange,\n onSelectItem,\n renderItem,\n icon = <ChevronDownIcon variant=\"muted\" />,\n itemToString = (item: ItemType) => (item as unknown) as string,\n isInvalid,\n isDisabled,\n isRequired,\n isReadOnly,\n noMatchesMessage = 'No matches found',\n placeholder = 'Search',\n inputRef,\n toggleRef,\n listRef,\n listWidth = 'auto',\n listMaxHeight = 180,\n isGrouped = false,\n isLoading = false,\n usePortal = false,\n testId = 'cf-autocomplete',\n } = props;\n\n type GroupType = GenericGroupType<ItemType>;\n\n const styles = getAutocompleteStyles(listMaxHeight);\n\n const [inputValue, setInputValue] = useState(defaultValue);\n\n const handleInputValueChange = useCallback(\n (value: string) => {\n setInputValue(value);\n\n onInputValueChange?.(value);\n },\n [onInputValueChange],\n );\n\n // Handle manually to avoid a jumping cursor, see https://github.com/downshift-js/downshift/issues/1108#issuecomment-842407759\n const handleNativeChangeEvent = useCallback(\n (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const value = event.target.value;\n handleInputValueChange(value);\n },\n [handleInputValueChange],\n );\n\n const flattenItems = isUsingGroups(isGrouped, items)\n ? items.reduce(\n (acc: ItemType[], group: GroupType) => [...acc, ...group.options],\n [],\n )\n : items;\n\n const isShowingNoMatches = isUsingGroups(isGrouped, items)\n ? items.every((group: GroupType) => group.options.length === 0)\n : items.length === 0;\n\n const {\n getComboboxProps,\n getInputProps,\n getItemProps,\n getMenuProps,\n getToggleButtonProps,\n highlightedIndex,\n isOpen,\n toggleMenu,\n } = useCombobox({\n items: flattenItems,\n selectedItem,\n inputValue,\n itemToString,\n onInputValueChange: ({ type, inputValue }) => {\n if (type !== '__input_change__') {\n handleInputValueChange(inputValue);\n }\n },\n onStateChange: ({ type, selectedItem }) => {\n switch (type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n if (selectedItem) {\n onSelectItem(selectedItem);\n }\n if (clearAfterSelect) {\n handleInputValueChange('');\n }\n if (!closeAfterSelect) {\n toggleMenu();\n }\n break;\n default:\n break;\n }\n },\n });\n\n const {\n 'aria-labelledby': _labelledby,\n id: _inputId,\n ...inputProps\n } = getInputProps();\n const comboboxProps = getComboboxProps();\n const toggleProps = getToggleButtonProps();\n const menuProps = getMenuProps();\n let elementStartIndex = 0;\n\n return (\n <div\n data-test-id={testId}\n className={cx(styles.autocomplete, className)}\n ref={ref}\n >\n <Popover\n usePortal={usePortal}\n isOpen={isOpen}\n isFullWidth={listWidth === 'full'}\n renderOnlyWhenOpen={false}\n // This is necessary, otherwise the focus will change from the input to the Popover\n // and the user won't be able to type in the input\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={false}\n id={menuProps.id}\n >\n <Popover.Trigger>\n <div {...comboboxProps} className={styles.combobox}>\n <TextInput\n className={styles.inputField}\n {...inputProps}\n onFocus={() => {\n if (!isOpen) {\n toggleMenu();\n }\n }}\n id={id}\n isInvalid={isInvalid}\n isDisabled={isDisabled}\n isRequired={isRequired}\n isReadOnly={isReadOnly}\n ref={mergeRefs(inputProps.ref, inputRef)}\n testId=\"cf-autocomplete-input\"\n placeholder={placeholder}\n onChange={(event) => {\n inputProps.onChange(event);\n handleNativeChangeEvent(event);\n }}\n />\n <IconButton\n {...toggleProps}\n ref={mergeRefs(toggleProps.ref, toggleRef)}\n aria-label={inputValue ? 'Clear' : 'Show list'}\n className={styles.toggleButton}\n variant=\"transparent\"\n icon={inputValue ? <CloseIcon variant=\"muted\" /> : icon}\n onClick={() => {\n if (inputValue) {\n handleInputValueChange('');\n } else {\n toggleMenu();\n }\n }}\n isDisabled={isDisabled}\n size=\"small\"\n />\n </div>\n </Popover.Trigger>\n\n {(items.length > 0 || inputValue.length > 0) && (\n <Popover.Content\n {...menuProps}\n ref={mergeRefs(menuProps.ref, listRef)}\n className={styles.content}\n testId=\"cf-autocomplete-container\"\n >\n {isLoading &&\n [...Array(3)].map((_, index) => (\n <div key={index} className={cx(styles.item, styles.disabled)}>\n <ListItemLoadingState />\n </div>\n ))}\n\n {!isLoading && isShowingNoMatches && (\n <div className={styles.item}>\n <Subheading className={styles.noMatchesTitle}>\n {noMatchesMessage}\n </Subheading>\n </div>\n )}\n\n {!isLoading &&\n isUsingGroups(isGrouped, items) &&\n items.map((group: GroupType, index: number) => {\n if (group.options.length < 1) {\n return;\n }\n const render = (\n <div key={index}>\n <SectionHeading\n key={index}\n data-test-id=\"cf-autocomplete-grouptitle\"\n marginBottom=\"none\"\n className={styles.groupTitle}\n >\n {group.groupTitle}\n </SectionHeading>\n <AutocompleteItems<ItemType>\n items={group.options}\n highlightedIndex={highlightedIndex}\n getItemProps={getItemProps}\n renderItem={renderItem}\n inputValue={inputValue}\n elementStartIndex={elementStartIndex}\n />\n </div>\n );\n elementStartIndex += group.options.length;\n return render;\n })}\n\n {!isLoading &&\n !isUsingGroups(isGrouped, items) &&\n items.length > 0 && (\n <AutocompleteItems<ItemType>\n items={items}\n elementStartIndex={elementStartIndex}\n highlightedIndex={highlightedIndex}\n getItemProps={getItemProps}\n renderItem={renderItem}\n inputValue={inputValue}\n />\n )}\n </Popover.Content>\n )}\n </Popover>\n </div>\n );\n}\n\nconst ListItemLoadingState = () => {\n return (\n <SkeletonContainer svgHeight={16}>\n <SkeletonBodyText numberOfLines={1} />\n </SkeletonContainer>\n );\n};\n\n// This is required to infer correct typings when differentiating groups and items\nfunction isUsingGroups<ItemType>(\n isGrouped: boolean,\n items: ItemType[] | GenericGroupType<ItemType>[],\n): items is GenericGroupType<ItemType>[] {\n return isGrouped;\n}\n\n/**\n * The Autocomplete is a component that will show a `TextInput` where a user can type any word which will be used\n * to filter a list of items. That list of filtered items will be shown to the user as possible options for the input.\n * Once one of the options is selected, that option becomes the value of the `TextInput`.\n */\nexport const Autocomplete = React.forwardRef(_Autocomplete) as <T>(\n props: ExpandProps<AutocompleteProps<T>> & {\n ref?: React.Ref<HTMLDivElement>;\n },\n) => ReturnType<typeof _Autocomplete>;\n","import React, { HTMLAttributes } from 'react';\nimport { cx } from 'emotion';\n\nimport { getStringMatch } from '@contentful/f36-utils';\nimport { Text } from '@contentful/f36-typography';\nimport { getAutocompleteStyles } from './Autocomplete.styles';\nimport type { UseComboboxGetItemPropsOptions } from 'downshift';\n\ninterface AutocompleteItemsProps<ItemType> {\n items: ItemType[];\n elementStartIndex: number;\n highlightedIndex: number;\n getItemProps: (\n options: UseComboboxGetItemPropsOptions<ItemType>,\n ) => HTMLAttributes<HTMLLIElement>;\n renderItem: (item: ItemType, inputValue: string) => React.ReactNode;\n inputValue: string;\n listMaxHeight?: number;\n}\n\nexport const AutocompleteItems = <ItemType,>(\n props: AutocompleteItemsProps<ItemType>,\n) => {\n const {\n items,\n elementStartIndex,\n highlightedIndex,\n getItemProps,\n renderItem,\n inputValue,\n listMaxHeight = 180,\n } = props;\n\n const styles = getAutocompleteStyles(listMaxHeight);\n\n return (\n <ul className={styles.list} data-test-id=\"cf-autocomplete-list\">\n {items.map((item: ItemType, index: number) => {\n const itemIndex = elementStartIndex + index;\n const itemProps = getItemProps({ item, index: itemIndex });\n return (\n <Text\n {...itemProps}\n as=\"li\"\n key={itemIndex}\n className={cx([\n styles.item,\n highlightedIndex === itemIndex && styles.highlighted,\n ])}\n data-test-id={`cf-autocomplete-list-item-${itemIndex}`}\n >\n {renderItem ? (\n renderItem(item, inputValue)\n ) : typeof item === 'string' ? (\n <HighlightedItem item={item} inputValue={inputValue} />\n ) : (\n item\n )}\n </Text>\n );\n })}\n </ul>\n );\n};\n\nAutocompleteItems.displayName = 'AutocompleteItems';\n\nfunction HighlightedItem({\n item,\n inputValue,\n}: {\n item: string;\n inputValue: string;\n}) {\n const { before, match, after } = getStringMatch(item, inputValue);\n\n return (\n <>\n {before}\n <b>{match}</b>\n {after}\n </>\n );\n}\n\nHighlightedItem.displayName = 'HighlightedItem';\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getAutocompleteStyles = (listMaxHeight: number) => ({\n autocomplete: css({\n position: 'relative',\n width: '100%',\n }),\n combobox: css({\n position: 'relative',\n }),\n inputField: css({\n paddingRight: tokens.spacingXl,\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n toggleButton: css({\n position: 'absolute',\n top: '1px',\n right: '1px',\n zIndex: 1,\n padding: tokens.spacing2Xs,\n height: '38px',\n }),\n content: css({\n overflow: 'auto',\n maxHeight: `${listMaxHeight}px`,\n }),\n list: css({\n listStyle: 'none',\n padding: `${tokens.spacingXs} 0`,\n margin: 0,\n }),\n groupTitle: css({\n padding: `${tokens.spacingXs} ${tokens.spacingM}`,\n lineHeight: tokens.lineHeightM,\n }),\n noMatchesTitle: css({\n color: tokens.gray500,\n margin: `${tokens.spacingM} 0 ${tokens.spacingM} 0`,\n }),\n item: css({\n display: 'block',\n padding: `${tokens.spacingXs} ${tokens.spacingM}`,\n wordBreak: 'break-word',\n whiteSpace: 'break-spaces',\n cursor: 'pointer',\n hyphens: 'auto',\n\n '&:focus, &:hover': {\n backgroundColor: tokens.gray100,\n },\n '&:active': {\n backgroundColor: tokens.gray200,\n },\n }),\n disabled: css({\n opacity: 0.5,\n pointerEvents: 'none',\n }),\n highlighted: css({\n backgroundColor: tokens.gray100,\n }),\n});\n"],"names":["Autocomplete","AutocompleteProps","React","useCallback","useState","useCombobox","mergeRefs","CommonProps","ExpandProps","IconButton","TextInput","TextInputProps","CloseIcon","ChevronDownIcon","SkeletonContainer","SkeletonBodyText","Popover","Subheading","SectionHeading","AutocompleteItems","getAutocompleteStyles","GenericGroupType","groupTitle","options","ItemType","Pick","items","icon","ReactElement","isGrouped","onInputValueChange","value","onSelectItem","item","selectedItem","renderItem","inputValue","ReactNode","itemToString","clearAfterSelect","closeAfterSelect","placeholder","noMatchesMessage","inputRef","Ref","HTMLInputElement","toggleRef","HTMLButtonElement","listRef","HTMLUListElement","listWidth","listMaxHeight","isLoading","usePortal","_Autocomplete","props","ref","HTMLDivElement","id","className","defaultValue","isInvalid","isDisabled","isRequired","isReadOnly","testId","GroupType","styles","setInputValue","handleInputValueChange","handleNativeChangeEvent","event","ChangeEvent","HTMLTextAreaElement","target","flattenItems","isUsingGroups","reduce","acc","group","isShowingNoMatches","every","length","getComboboxProps","getInputProps","getItemProps","getMenuProps","getToggleButtonProps","highlightedIndex","isOpen","toggleMenu","type","onStateChange","stateChangeTypes","InputKeyDownEnter","ItemClick","_labelledby","_inputId","inputProps","comboboxProps","toggleProps","menuProps","elementStartIndex","autocomplete","combobox","inputField","onChange","toggleButton","content","Array","map","_","index","disabled","noMatchesTitle","render","ListItemLoadingState","forwardRef","T","ReturnType","HTMLAttributes","getStringMatch","Text","UseComboboxGetItemPropsOptions","AutocompleteItemsProps","HTMLLIElement","list","itemIndex","itemProps","highlighted","displayName","HighlightedItem","before","match","after","tokens","paddingRight","spacingXl","textOverflow","whiteSpace","position","top","right","zIndex","padding","spacing2Xs","height","overflow","maxHeight","listStyle","spacingXs","margin","spacingM","lineHeight","lineHeightM","color","gray500","display","wordBreak","cursor","hyphens","backgroundColor","gray100","gray200"],"version":3,"file":"module.js.map"}
@@ -1 +1 @@
1
- {"mappings":";;;AEiBA,2BAAkC,QAAQ;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,QAAQ,EAAE,CAAC;CACrB;AAGD,mCAAmC,QAAQ,CACzC,SAAQ,WAAW,EACjB,IAAI,CACF,cAAc,EACZ,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,IAAI,GACJ,cAAc,CACjB;IACH;;;OAGG;IACH,KAAK,EAAE,QAAQ,EAAE,GAAG,iBAAiB,QAAQ,CAAC,EAAE,CAAC;IAEjD;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,YAAY,CAAC;IAE1B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C;;;OAGG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAEvC;;;OAGG;IACH,YAAY,CAAC,EAAE,QAAQ,CAAC;IAExB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,SAAS,CAAC;IACrE;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,MAAM,CAAC;IAC1C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACvC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACzC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACtC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,+BAAuB,QAAQ,EAC7B,KAAK,EAAE,kBAAkB,QAAQ,CAAC,EAClC,GAAG,EAAE,MAAM,GAAG,CAAC,cAAc,CAAC,eAmP/B;AAkBD;;;;GAIG;AACH,OAAO,MAAM;UAEH,MAAM,GAAG,CAAC,cAAc,CAAC;MAE9B,WAAW,oBAAoB,CAAC,CAAC","sources":["packages/components/autocomplete/src/src/Autocomplete.styles.ts","packages/components/autocomplete/src/src/AutocompleteItems.tsx","packages/components/autocomplete/src/src/Autocomplete.tsx","packages/components/autocomplete/src/src/index.ts","packages/components/autocomplete/src/index.ts"],"sourcesContent":[null,null,null,null,"export { Autocomplete } from './Autocomplete';\nexport type { AutocompleteProps } from './Autocomplete';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
1
+ {"mappings":";;;AEiBA,2BAAkC,QAAQ;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,QAAQ,EAAE,CAAC;CACrB;AAGD,mCAAmC,QAAQ,CACzC,SAAQ,WAAW,EACjB,IAAI,CACF,cAAc,EACZ,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,IAAI,GACJ,cAAc,CACjB;IACH;;;OAGG;IACH,KAAK,EAAE,QAAQ,EAAE,GAAG,iBAAiB,QAAQ,CAAC,EAAE,CAAC;IAEjD;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,YAAY,CAAC;IAE1B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C;;;OAGG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAEvC;;;OAGG;IACH,YAAY,CAAC,EAAE,QAAQ,CAAC;IAExB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,SAAS,CAAC;IACrE;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,MAAM,CAAC;IAC1C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACvC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACzC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACtC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,+BAAuB,QAAQ,EAC7B,KAAK,EAAE,kBAAkB,QAAQ,CAAC,EAClC,GAAG,EAAE,MAAM,GAAG,CAAC,cAAc,CAAC,eAqP/B;AAkBD;;;;GAIG;AACH,OAAO,MAAM;UAEH,MAAM,GAAG,CAAC,cAAc,CAAC;MAE9B,WAAW,oBAAoB,CAAC,CAAC","sources":["packages/components/autocomplete/src/src/Autocomplete.styles.ts","packages/components/autocomplete/src/src/AutocompleteItems.tsx","packages/components/autocomplete/src/src/Autocomplete.tsx","packages/components/autocomplete/src/src/index.ts","packages/components/autocomplete/src/index.ts"],"sourcesContent":[null,null,null,null,"export { Autocomplete } from './Autocomplete';\nexport type { AutocompleteProps } from './Autocomplete';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
package/package.json CHANGED
@@ -1,21 +1,21 @@
1
1
  {
2
2
  "name": "@contentful/f36-autocomplete",
3
- "version": "4.13.0",
3
+ "version": "4.15.1",
4
4
  "description": "Forma 36: Autocomplete component",
5
5
  "scripts": {
6
6
  "build": "parcel build"
7
7
  },
8
8
  "dependencies": {
9
9
  "@babel/runtime": "^7.6.2",
10
- "@contentful/f36-button": "^4.13.0",
11
- "@contentful/f36-core": "^4.13.0",
12
- "@contentful/f36-forms": "^4.13.0",
13
- "@contentful/f36-icons": "^4.13.0",
14
- "@contentful/f36-popover": "^4.13.0",
15
- "@contentful/f36-skeleton": "^4.13.0",
10
+ "@contentful/f36-button": "^4.15.1",
11
+ "@contentful/f36-core": "^4.15.1",
12
+ "@contentful/f36-forms": "^4.15.1",
13
+ "@contentful/f36-icons": "^4.15.1",
14
+ "@contentful/f36-popover": "^4.15.1",
15
+ "@contentful/f36-skeleton": "^4.15.1",
16
16
  "@contentful/f36-tokens": "^4.0.1",
17
- "@contentful/f36-typography": "^4.13.0",
18
- "@contentful/f36-utils": "^4.13.0",
17
+ "@contentful/f36-typography": "^4.15.1",
18
+ "@contentful/f36-utils": "^4.15.1",
19
19
  "downshift": "^6.1.7",
20
20
  "emotion": "^10.0.17"
21
21
  },