@leafygreen-ui/combobox 6.0.6 → 6.0.8
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 +26 -0
- package/dist/Combobox.types.d.ts +3 -21
- package/dist/Combobox.types.d.ts.map +1 -1
- package/dist/ComboboxMenu/ComboboxMenu.d.ts +5 -2
- package/dist/ComboboxMenu/ComboboxMenu.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/ComboboxTestUtils.d.ts.map +1 -1
- package/package.json +18 -16
- package/src/Combobox/Combobox.spec.tsx +18 -0
- package/src/Combobox.types.ts +113 -135
- package/src/ComboboxMenu/ComboboxMenu.tsx +9 -12
- package/src/utils/ComboboxTestUtils.tsx +6 -2
- package/tsconfig.json +9 -3
- package/stories.js +0 -1
- package/tsconfig.tsbuildinfo +0 -1
- package/tsdoc.json +0 -941
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboboxTestUtils.d.ts","sourceRoot":"","sources":["../../src/utils/ComboboxTestUtils.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,EACb,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;CACxC;AAED,oBAAY,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAC3C,aAAK,mBAAmB,GAAG;IACzB,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,YAAY,GAAG,YAAY,CAAC,CAAC;CACvD,GAAG,iBAAiB,GACnB,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAEpC,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,YAAY,CAiB9C,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,YAAY,CA+B9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,0DA+C1B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAC7C,MAAM,GAAE,CAAiB,EACzB,KAAK,CAAC,EAAE,mBAAmB;iCAsDS,mBAAmB;;
|
|
1
|
+
{"version":3,"file":"ComboboxTestUtils.d.ts","sourceRoot":"","sources":["../../src/utils/ComboboxTestUtils.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,EACb,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;CACxC;AAED,oBAAY,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAC3C,aAAK,mBAAmB,GAAG;IACzB,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,YAAY,GAAG,YAAY,CAAC,CAAC;CACvD,GAAG,iBAAiB,GACnB,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAEpC,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,YAAY,CAiB9C,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,YAAY,CA+B9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,0DA+C1B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAC7C,MAAM,GAAE,CAAiB,EACzB,KAAK,CAAC,EAAE,mBAAmB;iCAsDS,mBAAmB;;gBAmBtB,MAAM,GAAG,WAAW,GAAG,IAAI;gBAC3B,MAAM,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,GAAG,IAAI;;;gBAgBxC,MAAM,GAAG,WAAW,GAAG,IAAI;gBAC3B,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,IAAI;gBACrC,MAAM,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,GAAG,IAAI;;yBA5BjD,MAAM,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6D7C;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,cAAe,OAAO,YAAmC,CAAC;AAiC7E,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,IAAI,CAAC;QACb,UAAU,QAAQ,CAAC,CAAC;YAClB,cAAc,IAAI,CAAC,CAAC;SACrB;KACF;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leafygreen-ui/combobox",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.8",
|
|
4
4
|
"description": "leafyGreen UI Kit Combobox",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -13,34 +13,36 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"scripts": {
|
|
16
|
-
"build": "
|
|
16
|
+
"build": "lg build-package",
|
|
17
|
+
"tsc": "lg build-ts",
|
|
18
|
+
"docs": "lg build-tsdoc"
|
|
17
19
|
},
|
|
18
20
|
"license": "Apache-2.0",
|
|
19
21
|
"publishConfig": {
|
|
20
22
|
"access": "public"
|
|
21
23
|
},
|
|
22
24
|
"dependencies": {
|
|
23
|
-
"@leafygreen-ui/checkbox": "^12.0.
|
|
24
|
-
"@leafygreen-ui/emotion": "^4.0.
|
|
25
|
-
"@leafygreen-ui/hooks": "^7.7.
|
|
26
|
-
"@leafygreen-ui/icon": "^11.
|
|
27
|
-
"@leafygreen-ui/icon-button": "^15.0.
|
|
28
|
-
"@leafygreen-ui/inline-definition": "^6.0.
|
|
29
|
-
"@leafygreen-ui/input-option": "^1.0.
|
|
30
|
-
"@leafygreen-ui/lib": "^10.4.
|
|
31
|
-
"@leafygreen-ui/palette": "^4.0.
|
|
32
|
-
"@leafygreen-ui/popover": "^11.0.
|
|
33
|
-
"@leafygreen-ui/tokens": "^2.1.
|
|
34
|
-
"@leafygreen-ui/typography": "^16.5.
|
|
25
|
+
"@leafygreen-ui/checkbox": "^12.0.13",
|
|
26
|
+
"@leafygreen-ui/emotion": "^4.0.5",
|
|
27
|
+
"@leafygreen-ui/hooks": "^7.7.6",
|
|
28
|
+
"@leafygreen-ui/icon": "^11.20.1",
|
|
29
|
+
"@leafygreen-ui/icon-button": "^15.0.14",
|
|
30
|
+
"@leafygreen-ui/inline-definition": "^6.0.8",
|
|
31
|
+
"@leafygreen-ui/input-option": "^1.0.6",
|
|
32
|
+
"@leafygreen-ui/lib": "^10.4.1",
|
|
33
|
+
"@leafygreen-ui/palette": "^4.0.5",
|
|
34
|
+
"@leafygreen-ui/popover": "^11.0.13",
|
|
35
|
+
"@leafygreen-ui/tokens": "^2.1.2",
|
|
36
|
+
"@leafygreen-ui/typography": "^16.5.2",
|
|
35
37
|
"chalk": "^4.1.2",
|
|
36
38
|
"lodash": "^4.17.21",
|
|
37
39
|
"polished": "^4.2.2"
|
|
38
40
|
},
|
|
39
41
|
"peerDependencies": {
|
|
40
|
-
"@leafygreen-ui/leafygreen-provider": "^3.1.
|
|
42
|
+
"@leafygreen-ui/leafygreen-provider": "^3.1.4"
|
|
41
43
|
},
|
|
42
44
|
"devDependencies": {
|
|
43
|
-
"@leafygreen-ui/button": "^
|
|
45
|
+
"@leafygreen-ui/button": "^21.0.0"
|
|
44
46
|
},
|
|
45
47
|
"homepage": "https://github.com/mongodb/leafygreen-ui/tree/main/packages/combobox",
|
|
46
48
|
"repository": {
|
|
@@ -830,6 +830,24 @@ describe('packages/combobox', () => {
|
|
|
830
830
|
}
|
|
831
831
|
});
|
|
832
832
|
|
|
833
|
+
test('fires onChange handler with payload', () => {
|
|
834
|
+
const onChange = jest.fn();
|
|
835
|
+
const { inputEl, openMenu } = renderCombobox(select, { onChange });
|
|
836
|
+
openMenu();
|
|
837
|
+
userEvent.type(inputEl!, '{arrowdown}{enter}');
|
|
838
|
+
expect(onChange).toHaveBeenCalledWith(
|
|
839
|
+
select === 'single' ? 'banana' : ['banana'],
|
|
840
|
+
);
|
|
841
|
+
});
|
|
842
|
+
|
|
843
|
+
test('does not fire onClear handler', () => {
|
|
844
|
+
const onClear = jest.fn();
|
|
845
|
+
const { inputEl, openMenu } = renderCombobox(select, { onClear });
|
|
846
|
+
openMenu();
|
|
847
|
+
userEvent.type(inputEl!, '{arrowdown}{enter}');
|
|
848
|
+
expect(onClear).not.toHaveBeenCalled();
|
|
849
|
+
});
|
|
850
|
+
|
|
833
851
|
testSingleSelect('Re-opens menu after making a selection', async () => {
|
|
834
852
|
const { inputEl, openMenu, getMenuElements } =
|
|
835
853
|
renderCombobox('single');
|
package/src/Combobox.types.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ComponentPropsWithoutRef, ReactElement, ReactNode } from 'react';
|
|
2
2
|
|
|
3
3
|
import { Either, HTMLElementProps } from '@leafygreen-ui/lib';
|
|
4
|
+
import { PortalControlProps } from '@leafygreen-ui/popover';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Prop Enums & Types
|
|
@@ -132,141 +133,118 @@ export interface ComboboxMultiselectProps<M extends boolean> {
|
|
|
132
133
|
overflow?: M extends true ? Overflow : undefined;
|
|
133
134
|
}
|
|
134
135
|
|
|
135
|
-
export
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
*/
|
|
248
|
-
usePortal?: boolean;
|
|
249
|
-
|
|
250
|
-
/**
|
|
251
|
-
* When usePortal is `true`, specifies a class name to apply to the root element of the portal.
|
|
252
|
-
*/
|
|
253
|
-
portalClassName?: undefined;
|
|
254
|
-
|
|
255
|
-
/**
|
|
256
|
-
* When usePortal is `true`, specifies an element to portal within. The default behavior is to generate a div at the end of the document to render within.
|
|
257
|
-
*/
|
|
258
|
-
portalContainer?: null;
|
|
259
|
-
|
|
260
|
-
/**
|
|
261
|
-
* When usePortal is `true`, specifies the scrollable element to position relative to.
|
|
262
|
-
*/
|
|
263
|
-
scrollContainer?: null;
|
|
264
|
-
|
|
265
|
-
/**
|
|
266
|
-
* Number that controls the z-index of the popover element directly.
|
|
267
|
-
*/
|
|
268
|
-
popoverZIndex?: number;
|
|
269
|
-
}
|
|
136
|
+
export type BaseComboboxProps = Omit<HTMLElementProps<'div'>, 'onChange'> &
|
|
137
|
+
PortalControlProps & {
|
|
138
|
+
/**
|
|
139
|
+
* Defines the Combobox Options by passing children. Must be `ComboboxOption` or `ComboboxGroup`
|
|
140
|
+
*/
|
|
141
|
+
children?: ReactNode;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* An accessible label for the input, rendered in a <label> to the DOM
|
|
145
|
+
*/
|
|
146
|
+
label?: string;
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* An accessible label for the input, used only for screen-readers
|
|
150
|
+
*/
|
|
151
|
+
'aria-label'?: string;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* A description for the input
|
|
155
|
+
*/
|
|
156
|
+
description?: string;
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* A placeholder for the input element. Uses the native `placeholder` attribute.
|
|
160
|
+
*/
|
|
161
|
+
placeholder?: string;
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Disables all interaction with the component
|
|
165
|
+
*/
|
|
166
|
+
disabled?: boolean;
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Defines the visual size of the component
|
|
170
|
+
*/
|
|
171
|
+
size?: ComboboxSize;
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Toggles Dark Mode
|
|
175
|
+
*/
|
|
176
|
+
darkMode?: boolean;
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* The error state of the component. Defines whether the error message is displayed.
|
|
180
|
+
*/
|
|
181
|
+
state?: State;
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* The message shown below the input when state is `error`
|
|
185
|
+
*/
|
|
186
|
+
errorMessage?: string;
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* The state of search results. Toggles search messages within the menu.
|
|
190
|
+
*/
|
|
191
|
+
searchState?: SearchState;
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* A message shown within the menu when there are no options passed in as children, or `filteredOptions` is an empty array
|
|
195
|
+
*/
|
|
196
|
+
searchEmptyMessage?: string;
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* A message shown within the menu when searchState is `error`
|
|
200
|
+
*/
|
|
201
|
+
searchErrorMessage?: string;
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* A message shown within the menu when searchState is `loading`
|
|
205
|
+
*/
|
|
206
|
+
searchLoadingMessage?: string;
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* A callback called when the search input changes.
|
|
210
|
+
* Receives a single argument that is the current input value.
|
|
211
|
+
* Use this callback to set `searchState` and/or `filteredOptions` appropriately
|
|
212
|
+
*/
|
|
213
|
+
onFilter?: (value: string) => void;
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Defines whether the Clear button appears to the right of the input.
|
|
217
|
+
*/
|
|
218
|
+
clearable?: boolean;
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* A callback fired when the Clear button is pressed.
|
|
222
|
+
* Fired _after_ `onChange`, and _before_ `onFilter`
|
|
223
|
+
*/
|
|
224
|
+
onClear?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* An array used to define which options are displayed.
|
|
228
|
+
* Do not remove options from the JSX children, as this will affect the selected options
|
|
229
|
+
*/
|
|
230
|
+
filteredOptions?: Array<string>;
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Defines where the ellipses appear in a Chip when the length exceeds the `chipCharacterLimit`
|
|
234
|
+
*/
|
|
235
|
+
chipTruncationLocation?: TruncationLocation;
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Defined the character limit of a multiselect Chip before they start truncating.
|
|
239
|
+
* Note: the three ellipses dots are included in the character limit.
|
|
240
|
+
*/
|
|
241
|
+
chipCharacterLimit?: number;
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Number that controls the z-index of the popover element directly.
|
|
245
|
+
*/
|
|
246
|
+
popoverZIndex?: number;
|
|
247
|
+
};
|
|
270
248
|
|
|
271
249
|
export type ComboboxProps<M extends boolean> = Either<
|
|
272
250
|
BaseComboboxProps & ComboboxMultiselectProps<M>,
|
|
@@ -6,7 +6,7 @@ import { useAvailableSpace, useForwardedRef } from '@leafygreen-ui/hooks';
|
|
|
6
6
|
import Icon from '@leafygreen-ui/icon';
|
|
7
7
|
import { useDarkMode } from '@leafygreen-ui/leafygreen-provider';
|
|
8
8
|
import { palette } from '@leafygreen-ui/palette';
|
|
9
|
-
import Popover from '@leafygreen-ui/popover';
|
|
9
|
+
import Popover, { PortalControlProps } from '@leafygreen-ui/popover';
|
|
10
10
|
import { Error } from '@leafygreen-ui/typography';
|
|
11
11
|
|
|
12
12
|
import { ComboboxProps } from '../Combobox.types';
|
|
@@ -30,17 +30,14 @@ type ComboboxMenuProps = {
|
|
|
30
30
|
id: string;
|
|
31
31
|
labelId: string;
|
|
32
32
|
menuWidth: number;
|
|
33
|
-
} &
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
| 'scrollContainer'
|
|
42
|
-
| 'popoverZIndex'
|
|
43
|
-
>;
|
|
33
|
+
} & PortalControlProps &
|
|
34
|
+
Pick<
|
|
35
|
+
ComboboxProps<any>,
|
|
36
|
+
| 'searchLoadingMessage'
|
|
37
|
+
| 'searchErrorMessage'
|
|
38
|
+
| 'searchEmptyMessage'
|
|
39
|
+
| 'popoverZIndex'
|
|
40
|
+
>;
|
|
44
41
|
|
|
45
42
|
export const ComboboxMenu = React.forwardRef<HTMLDivElement, ComboboxMenuProps>(
|
|
46
43
|
(
|
|
@@ -199,8 +199,12 @@ export function renderCombobox<T extends Select>(
|
|
|
199
199
|
* @param newProps
|
|
200
200
|
* @returns
|
|
201
201
|
*/
|
|
202
|
-
const rerenderCombobox = (newProps: renderComboboxProps) =>
|
|
203
|
-
|
|
202
|
+
const rerenderCombobox = (newProps: renderComboboxProps) => {
|
|
203
|
+
const rerenderProps = { ...props, ...newProps };
|
|
204
|
+
return renderResult.rerender(
|
|
205
|
+
getComboboxJSX(rerenderProps as renderComboboxProps),
|
|
206
|
+
);
|
|
207
|
+
};
|
|
204
208
|
|
|
205
209
|
/**
|
|
206
210
|
* @returns all chip elements
|
package/tsconfig.json
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
{
|
|
2
|
-
"extends": "
|
|
3
|
-
|
|
2
|
+
"extends": "@lg-tools/build/config/package.tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
4
|
"declarationDir": "dist",
|
|
5
5
|
"outDir": "dist",
|
|
6
|
-
"rootDir": "src"
|
|
6
|
+
"rootDir": "src",
|
|
7
|
+
"baseUrl": ".",
|
|
8
|
+
"paths": {
|
|
9
|
+
"@leafygreen-ui/icon/dist/*": ["../icon/src/generated/*"],
|
|
10
|
+
"@leafygreen-ui/*": ["../*/src"]
|
|
11
|
+
}
|
|
7
12
|
},
|
|
8
13
|
"include": [
|
|
9
14
|
"src/**/*"
|
|
10
15
|
],
|
|
16
|
+
"exclude": ["**/*.spec.*", "**/*.story.*"],
|
|
11
17
|
"references": [
|
|
12
18
|
{
|
|
13
19
|
"path": "../checkbox"
|
package/stories.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import e,{createContext as n,useContext as r,useRef as t,useMemo as a,useEffect as l,useCallback as o,useState as i}from"react";import c from"@leafygreen-ui/button";import{css as s,cx as u,keyframes as d}from"@leafygreen-ui/emotion";import{Theme as p,createUniqueClassName as f,keyMap as g,isComponentType as m,consoleOnce as h,storybookArgTypes as b,storybookExcludedControlParams as v}from"@leafygreen-ui/lib";import y,{isComponentGlyph as x}from"@leafygreen-ui/icon";import k from"lodash/clone";import w from"lodash/debounce";import E from"lodash/isArray";import C from"lodash/isEqual";import N from"lodash/isNull";import S from"lodash/isString";import L from"lodash/isUndefined";import O from"prop-types";import{useIdAllocator as D,useForwardedRef as M,useAvailableSpace as j,useDynamicRefs as I,usePrevious as z,useAutoScroll as P,useBackdropClick as F}from"@leafygreen-ui/hooks";import A from"@leafygreen-ui/icon-button";import T,{useDarkMode as W}from"@leafygreen-ui/leafygreen-provider";import{Error as X,Label as R,Description as G}from"@leafygreen-ui/typography";import H from"@leafygreen-ui/inline-definition";import{transparentize as V}from"polished";import{palette as Z}from"@leafygreen-ui/palette";import{typeScales as q,transitionDuration as K,spacing as Y,hoverRing as B,focusRing as U,fontFamilies as J,fontWeights as $}from"@leafygreen-ui/tokens";import Q from"@leafygreen-ui/popover";import{leftGlyphClassName as _,InputOption as ee,InputOptionContent as ne}from"@leafygreen-ui/input-option";import re from"lodash/kebabCase";import te from"lodash/escapeRegExp";import ae from"@leafygreen-ui/checkbox";function le(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function oe(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?le(Object(r),!0).forEach((function(n){ce(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):le(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}function ie(e){return ie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ie(e)}function ce(e,n,r){return(n=function(e){var n=function(e,n){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,n||"default");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function se(){return se=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},se.apply(this,arguments)}function ue(e,n){if(null==e)return{};var r,t,a=function(e,n){if(null==e)return{};var r,t,a={},l=Object.keys(e);for(t=0;t<l.length;t++)r=l[t],n.indexOf(r)>=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t<l.length;t++)r=l[t],n.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function de(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}function pe(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var t,a,l,o,i=[],c=!0,s=!1;try{if(l=(r=r.call(e)).next,0===n){if(Object(r)!==r)return;c=!1}else for(;!(c=(t=l.call(r)).done)&&(i.push(t.value),i.length!==n);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(s)throw a}}return i}}(e,n)||ge(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function fe(e){return function(e){if(Array.isArray(e))return me(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ge(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ge(e,n){if(e){if("string"==typeof e)return me(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?me(e,n):void 0}}function me(e,n){(null==n||n>e.length)&&(n=e.length);for(var r=0,t=new Array(n);r<n;r++)t[r]=e[r];return t}var he,be,ve,ye,xe,ke,we,Ee,Ce,Ne,Se,Le,Oe,De,Me,je,Ie,ze,Pe,Fe,Ae,Te,We,Xe,Re,Ge,He="Input",Ve="ClearButton",Ze="FirstChip",qe="LastChip",Ke="MiddleChip",Ye="Combobox",Be="Menu",Ue={XSmall:"xsmall",Small:"small",Default:"default",Large:"large"},Je={start:"start",middle:"middle",end:"end",none:"none"},$e={expandY:"expand-y",scrollX:"scroll-x",expandX:"expand-x"},Qe={none:"none",error:"error"},_e={unset:"unset",error:"error",loading:"loading"};var en,nn,rn,tn,an,ln,on,cn,sn,un,dn,pn,fn,gn,mn,hn,bn,vn,yn,xn,kn,wn,En,Cn,Nn,Sn,Ln,On,Dn,Mn,jn,In,zn,Pn,Fn,An,Tn,Wn,Xn,Rn,Gn,Hn,Vn,Zn,qn,Kn,Yn,Bn,Un,Jn,$n,Qn,_n,er,nr,rr,tr,ar=(ce(he={},Ue.XSmall,16),ce(he,Ue.Small,q.body1.lineHeight),ce(he,Ue.Default,q.body1.lineHeight),ce(he,Ue.Large,q.body2.lineHeight),he),lr=(ce(be={},Ue.XSmall,q.body1.fontSize),ce(be,Ue.Small,q.body1.fontSize),ce(be,Ue.Default,q.body1.fontSize),ce(be,Ue.Large,q.body2.fontSize),be),or=(ce(ve={},Ue.XSmall,1),ce(ve,Ue.Small,0),ce(ve,Ue.Default,2),ce(ve,Ue.Large,4),ve),ir=function(e){return ar[e]+2*or[e]},cr=s(ye||(ye=de(["\n display: inline-flex;\n align-items: center;\n overflow: hidden;\n white-space: nowrap;\n box-sizing: border-box;\n border-radius: 4px;\n"]))),sr=function(e){return s(xe||(xe=de(["\n font-size: ","px;\n line-height: ","px;\n"])),lr[e],ar[e])},ur=(ce(Ee={},p.Light,s(ke||(ke=de(["\n color: ",";\n background-color: ",";\n\n // TODO: - refine these styles with Design\n &:focus-within {\n background-color: ",";\n }\n "])),Z.black,Z.gray.light2,Z.blue.light2)),ce(Ee,p.Dark,s(we||(we=de(["\n color: ",";\n background-color: ",";\n\n &:focus-within {\n background-color: ",";\n }\n "])),Z.gray.light2,Z.gray.dark2,Z.blue.dark2)),Ee),dr=s(Ce||(Ce=de(["\n cursor: not-allowed;\n pointer-events: none;\n"]))),pr=(ce(Le={},p.Light,s(Ne||(Ne=de(["\n color: ",";\n background-color: ",";\n "])),Z.gray.base,Z.gray.light3)),ce(Le,p.Dark,s(Se||(Se=de(["\n color: ",";\n background-color: ",";\n box-shadow: inset 0 0 1px 1px ",";\n "])),Z.gray.dark2,Z.gray.dark4,Z.gray.dark2)),Le),fr=(ce(Ie={},Ue.XSmall,s(Oe||(Oe=de(["\n padding-inline-start: 6px;\n padding-inline-end: 2px;\n padding-block: ","px;\n "])),or[Ue.XSmall])),ce(Ie,Ue.Small,s(De||(De=de(["\n padding-inline-start: 6px;\n padding-inline-end: 2px;\n padding-block: ","px;\n "])),or[Ue.Small])),ce(Ie,Ue.Default,s(Me||(Me=de(["\n padding-inline-start: 6px;\n padding-inline-end: 2px;\n padding-block: ","px;\n "])),or[Ue.Default])),ce(Ie,Ue.Large,s(je||(je=de(["\n padding-inline: 10px;\n padding-block: ","px;\n "])),or[Ue.Large])),Ie),gr=s(ze||(ze=de(["\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n outline: none;\n border: none;\n background-color: transparent;\n cursor: pointer;\n transition: background-color ","ms ease-in-out;\n padding: 0 2px;\n"])),K.faster),mr=function(e){return s(Pe||(Pe=de(["\n height: ","px;\n"])),ir(e))},hr=(ce(Te={},p.Light,s(Fe||(Fe=de(["\n color: ",";\n\n &:hover {\n color: ",";\n background-color: ",";\n }\n "])),Z.gray.dark2,Z.black,Z.gray.light1)),ce(Te,p.Dark,s(Ae||(Ae=de(["\n color: ",";\n\n &:hover {\n color: ",";\n background-color: ",";\n }\n "])),Z.gray.light1,Z.gray.light3,Z.gray.dark1)),Te),br=s(We||(We=de(["\n cursor: not-allowed;\n &:hover {\n color: inherit;\n background-color: unset;\n }\n"]))),vr=(ce(Ge={},p.Light,s(Xe||(Xe=de(["\n color: ",";\n "])),Z.gray.light1)),ce(Ge,p.Dark,s(Re||(Re=de(["\n color: ",";\n "])),Z.gray.dark2)),Ge),yr=ir,xr=(ce(en={},Ue.XSmall,22),ce(en,Ue.Small,28),ce(en,Ue.Default,36),ce(en,Ue.Large,48),en),kr=function(e){return(xr[e]-yr(e)-2)/2},wr=(ce(nn={},Ue.XSmall,{y:kr(Ue.XSmall),xLeftWithChip:1,xLeftWithoutChip:10,xRight:4}),ce(nn,Ue.Small,{y:kr(Ue.Small),xLeftWithChip:4,xLeftWithoutChip:10,xRight:8}),ce(nn,Ue.Default,{y:kr(Ue.Default),xLeftWithChip:6,xLeftWithoutChip:12,xRight:12}),ce(nn,Ue.Large,{y:kr(Ue.Large),xLeftWithChip:Y[2]-1,xLeftWithoutChip:Y[2]-1,xRight:Y[2]-1}),nn),Er=Y[3],Cr=f("combobox-chip"),Nr=function(e){return s(rn||(rn=de(["\n font-family: ",";\n width: 100%;\n min-width: ","px;\n "])),J.default,lr[e]+2*wr[e].xLeftWithChip+Er+2)},Sr=s(tn||(tn=de(["\n display: flex;\n align-items: center;\n gap: ","px;\n cursor: text;\n transition: ","ms ease-in-out;\n transition-property: background-color, box-shadow, border-color;\n border: 1px solid;\n width: 100%;\n max-width: 100%;\n border-radius: 6px;\n position: relative;\n overflow: hidden;\n\n // Overflow shadow\n ::after {\n content: '';\n position: absolute;\n width: 100%;\n height: 20px;\n bottom: -21px;\n left: 50%;\n translate: -50% 0%;\n border-radius: 20%;\n box-shadow: 0 0 0 0 rgb(255 255 255 / 0%);\n transition: ","ms linear;\n transition-property: box-shadow;\n }\n"])),Y[2],K.default,K.default),Lr=(ce(on={},p.Light,s(an||(an=de(["\n color: ",";\n background-color: ",";\n border-color: ",";\n\n &:hover {\n box-shadow: ",";\n }\n "])),Z.gray.dark3,Z.white,Z.gray.base,B[p.Light].gray)),ce(on,p.Dark,s(ln||(ln=de(["\n color: ",";\n background-color: ",";\n border-color: ",";\n\n &:hover {\n box-shadow: ",";\n }\n "])),Z.gray.light2,Z.gray.dark4,Z.gray.base,B[p.Dark].gray)),on),Or=function(e,n){return s(cn||(cn=de(["\n padding-top: ","px;\n padding-bottom: ","px;\n padding-left: ",";\n padding-right: ","px;\n"])),wr[e].y,wr[e].y,"".concat(n?wr[e].xLeftWithChip:wr[e].xLeftWithoutChip,"px"),wr[e].xRight)},Dr=(ce(dn={},p.Light,s(sn||(sn=de(["\n cursor: not-allowed;\n color: ",";\n background-color: ",";\n border-color: ",";\n "])),Z.gray.dark1,Z.gray.light2,Z.gray.light1)),ce(dn,p.Dark,s(un||(un=de(["\n cursor: not-allowed;\n color: ",";\n background-color: ",";\n border-color: ",";\n "])),Z.gray.dark1,Z.gray.dark3,Z.gray.dark2)),dn),Mr=(ce(gn={},p.Light,s(pn||(pn=de(["\n border-color: ",";\n "])),Z.red.base)),ce(gn,p.Dark,s(fn||(fn=de(["\n border-color: ",";\n "])),Z.red.light1)),gn),jr=(ce(bn={},p.Light,s(mn||(mn=de(["\n &:focus-within {\n border-color: transparent;\n box-shadow: ",";\n }\n "])),U[p.Light].input)),ce(bn,p.Dark,s(hn||(hn=de(["\n &:focus-within {\n border-color: transparent;\n box-shadow: ",";\n }\n "])),U[p.Dark].input)),bn),Ir=s(vn||(vn=de(["\n display: flex;\n align-items: center;\n"]))),zr=(ce(En={},Ue.XSmall,s(yn||(yn=de(["\n gap: ","px;\n "])),Y[1])),ce(En,Ue.Small,s(xn||(xn=de(["\n gap: ","px;\n "])),Y[2])),ce(En,Ue.Default,s(kn||(kn=de(["\n gap: ","px;\n "])),Y[2])),ce(En,Ue.Large,s(wn||(wn=de(["\n gap: ","px;\n "])),Y[2])),En),Pr=function(e){var n=e.overflow,r=e.size,t=s(Cn||(Cn=de(["\n flex-grow: 1;\n width: 100%;\n "])));switch(n){case $e.scrollX:return s(Nn||(Nn=de(["\n ","\n display: block;\n height: ","px;\n white-space: nowrap;\n overflow-x: scroll;\n scroll-behavior: smooth;\n scrollbar-width: none;\n line-height: 1;\n\n &::-webkit-scrollbar {\n display: none;\n }\n\n & > ."," {\n margin-inline: 2px;\n\n &:first-child {\n margin-inline-start: 0;\n }\n\n &:last-child {\n margin-inline-end: 0;\n }\n }\n "])),t,yr(r),Cr);case $e.expandY:return s(Sn||(Sn=de(["\n ","\n display: flex;\n flex-wrap: wrap;\n gap: ","px;\n overflow-x: hidden;\n min-height: ","px;\n max-height: calc((","px) + (","px * 2));\n "])),t,4,yr(r),3*ir(r),4)}},Fr=s(Ln||(Ln=de(["\n font-family: ",";\n width: 100%;\n border: none;\n cursor: inherit;\n background-color: inherit;\n color: inherit;\n box-sizing: content-box;\n padding: 0;\n margin: 0;\n text-overflow: ellipsis;\n vertical-align: top;\n\n // Only add padding if there are chips\n &:not(:first-child) {\n padding-left: ","px;\n }\n\n &:placeholder-shown {\n min-width: 100%;\n }\n &:focus {\n outline: none;\n }\n"])),J.default,Y[1]),Ar=(ce(Mn={},p.Light,s(On||(On=de(["\n &::placeholder {\n color: ",";\n }\n "])),Z.gray.dark1)),ce(Mn,p.Dark,s(Dn||(Dn=de(["\n &::placeholder {\n color: ",";\n }\n "])),Z.gray.light1)),Mn),Tr=(ce(zn={},p.Light,s(jn||(jn=de(["\n &::placeholder {\n color: ",";\n }\n "])),Z.gray.dark1)),ce(zn,p.Dark,s(In||(In=de(["\n &::placeholder {\n color: ",";\n }\n "])),Z.gray.dark1)),zn),Wr=function(e){return s(Pn||(Pn=de(["\n height: ","px;\n font-size: ","px;\n line-height: ","px;\n min-width: ","px;\n"])),yr(e),lr[e],ar[e],lr[e])},Xr=function(e){return s(Fn||(Fn=de(["\n /*\n * Immediate transition in, slow transition out. \n * '-in' transition is handled by `scroll-behavior` \n */\n transition: width ease-in-out ",";\n"],["\n /*\n * Immediate transition in, slow transition out. \n * '-in' transition is handled by \\`scroll-behavior\\` \n */\n transition: width ease-in-out ",";\n"])),e?"0s":"100ms")},Rr=function(e,n){var r,t=null!==(r=null==n?void 0:n.length)&&void 0!==r?r:0;return s(An||(An=de(["\n width: ","px;\n max-width: 100%;\n "])),t*lr[e])},Gr=s(Tn||(Tn=de(["\n // Add a negative margin so the button takes up the same space as the regular icons\n margin-block: calc(","px - 100%);\n margin-inline: -6px;\n"])),Er/2),Hr=s(Wn||(Wn=de(["\n height: ","px;\n width: ","px;\n"])),Er,Er),Vr=(ce(Gn={},p.Light,s(Xn||(Xn=de(["\n color: ",";\n "])),Z.red.base)),ce(Gn,p.Dark,s(Rn||(Rn=de(["\n color: ",";\n "])),Z.red.light1)),Gn),Zr=function(e){return s(Hn||(Hn=de(["\n font-size: ","px;\n line-height: ","px;\n padding-top: ","px;\n"])),lr[e],ar[e],wr[e].y)},qr=s(Vn||(Vn=de(["\n margin-bottom: ","px;\n display: flex;\n flex-direction: column;\n"])),Y[1]),Kr=s(Zn||(Zn=de(["\n font-size: ","px;\n line-height: ","px;\n"])),q.large.fontSize,q.large.lineHeight),Yr=(ce(Yn={},p.Light,s(qn||(qn=de(["\n ::after {\n box-shadow: 0px 0px 7px 5px ",";\n }\n "])),V(.85,Z.black))),ce(Yn,p.Dark,s(Kn||(Kn=de(["\n ::after {\n width: 95%;\n box-shadow: 0px -7px 12px 5px rgb(0 0 0 / 50%);\n }\n "])))),Yn),Br=(ce(Bn={},p.Light,Z.red.base),ce(Bn,p.Dark,Z.red.light1),Bn),Ur=(ce(Un={},p.Light,Z.gray.dark2),ce(Un,p.Dark,Z.gray.light1),Un),Jr=(ce(Jn={},p.Light,Z.gray.base),ce(Jn,p.Dark,Z.gray.dark2),Jn),$r=n({multiselect:!1,size:Ue.Default,withIcons:!1,disabled:!1,isOpen:!1,state:Qe.none,searchState:_e.unset,overflow:$e.expandY}),Qr=e.forwardRef((function(n,o){var i=n.displayName,c=n.isFocused,s=n.onRemove,d=n.onFocus,p=W(),f=p.darkMode,m=p.theme,h=r($r),b=h.size,v=h.disabled,x=h.overflow,k=h.chipTruncationLocation,w=void 0===k?"end":k,E=h.chipCharacterLimit,C=void 0===E?12:E,N=h.popoverZIndex,S=x!==$e.scrollX&&!!C&&!!w&&"none"!==w&&i.length>C,L=t(null),O=a((function(){if(S){var e=C-3;switch(w){case"start":return"…"+i.substring(i.length-e).trim();case"middle":return i.substring(0,e/2).trim()+"…"+i.substring(i.length-e/2).trim();case"end":return i.substring(0,e).trim()+"…";default:return i}}return!1}),[C,w,i,S]);l((function(){var e;c&&!v&&(null==L||null===(e=L.current)||void 0===e||e.focus())}),[v,o,c]);return e.createElement("span",{role:"option","aria-selected":c,"data-testid":"lg-combobox-chip",ref:o,className:u(Cr,cr,ur[m],sr(b),ce({},u(pr[m],dr),v)),onClick:function(e){var n;null!==(n=L.current)&&void 0!==n&&n.contains(e.target)||d()},onKeyDown:function(e){v||e.keyCode!==g.Delete&&e.keyCode!==g.Backspace&&e.keyCode!==g.Enter&&e.keyCode!==g.Space||s()},tabIndex:-1},e.createElement("span",{className:u(fr[b])},O?e.createElement(H,{darkMode:f,definition:i,align:"bottom",popoverZIndex:N},O):i),e.createElement("button",{"aria-label":"Deselect ".concat(i),"aria-disabled":v,disabled:v,ref:L,className:u(gr,hr[m],mr(b),ce({},u(vr[m],br),v)),onClick:function(){v||s()}},e.createElement(y,{glyph:"X"})))}));Qr.displayName="Chip";var _r,et,nt,rt,tt,at,lt,ot,it,ct,st,ut,dt,pt,ft,gt,mt,ht=(ce(_n={},p.Light,s($n||($n=de(["\n padding-top: ","px;\n "])),Y[2])),ce(_n,p.Dark,s(Qn||(Qn=de(["\n padding-top: ","px;\n "])),Y[2])),_n),bt=s(er||(er=de(["\n cursor: default;\n width: 100%;\n padding: 0 12px 2px;\n outline: none;\n overflow-wrap: anywhere;\n font-size: 12px;\n line-height: 16px;\n font-weight: ",";\n text-transform: uppercase;\n letter-spacing: 0.4px;\n"])),$.bold),vt=(ce(tr={},p.Light,s(nr||(nr=de(["\n color: ",";\n "])),Z.gray.dark1)),ce(tr,p.Dark,s(rr||(rr=de(["\n color: ",";\n "])),Z.gray.light1)),tr);function yt(n){var r=n.label,t=n.className,a=n.children,l=W().theme,o=D({prefix:"combobox-group"});return e.Children.count(a)>0?e.createElement("div",{className:u(ht[l],t)},e.createElement("div",{className:u(bt,vt[l]),id:o},r),e.createElement("div",{role:"group","aria-labelledby":o},a)):e.createElement(e.Fragment,null)}function xt(e){throw Error("`ComboboxGroup` must be a child of a `Combobox` instance")}xt.displayName="ComboboxGroup",xt.propTypes={className:O.string,children:O.node.isRequired,label:O.string.isRequired};var kt,wt=(ce(_r={},Ue.XSmall,{x:12,y:8}),ce(_r,Ue.Small,{x:12,y:8}),ce(_r,Ue.Default,{x:12,y:8}),ce(_r,Ue.Large,{x:12,y:8}),_r),Et=function(e){return ar[e]+2*wt[e].y},Ct=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:384;return s(et||(et=de(["\n width: ","px;\n overflow: hidden;\n border-radius: 12px;\n border: 1px solid;\n"])),e)},Nt=(ce(tt={},p.Light,s(nt||(nt=de(["\n box-shadow: 0px 4px 7px ",";\n border-color: ",";\n "])),V(.85,Z.black),Z.gray.light2)),ce(tt,p.Dark,s(rt||(rt=de(["\n box-shadow: 0px 4px 7px ",";\n border-color: ",";\n "])),V(.85,Z.black),Z.gray.dark3)),tt),St=s(at||(at=de(["\n position: relative;\n width: 100%;\n margin: 0;\n padding: ","px 0;\n font-family: ",";\n border-radius: inherit;\n overflow-y: auto;\n scroll-behavior: smooth;\n"])),Y[2],J.default),Lt=(ce(it={},p.Light,s(lt||(lt=de(["\n color: ",";\n background-color: ",";\n "])),Z.black,Z.white)),ce(it,p.Dark,s(ot||(ot=de(["\n color: ",";\n background-color: ",";\n "])),Z.gray.light1,Z.gray.dark3)),it),Ot=s(ct||(ct=de(["\n position: relative;\n margin: 0;\n padding: 0;\n"]))),Dt=s(st||(st=de(["\n font-family: inherit;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n"]))),Mt=(ce(pt={},p.Light,s(ut||(ut=de(["\n color: ",";\n "])),Z.gray.dark3)),ce(pt,p.Dark,s(dt||(dt=de(["\n color: ",";\n "])),Z.gray.light3)),pt),jt=function(e){return s(ft||(ft=de(["\n font-size: ","px;\n line-height: ","px;\n padding: ","px ","px;\n"])),lr[e],ar[e],wt[e].y,wt[e].x)},It=d(gt||(gt=de(["\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n"]))),zt=s(mt||(mt=de(["\n animation: "," 1.5s linear infinite;\n"])),It),Pt=["children","id","refEl","labelId","menuWidth","searchLoadingMessage","searchErrorMessage","searchEmptyMessage"],Ft=e.forwardRef((function(n,t){var l=n.children,o=n.id,i=n.refEl,c=n.labelId,d=n.menuWidth,p=n.searchLoadingMessage,f=n.searchErrorMessage,g=n.searchEmptyMessage,m=ue(n,Pt),h=W(),b=h.darkMode,v=h.theme,x=r($r),k=x.disabled,w=x.size,E=x.isOpen,C=x.searchState,N=M(t,null),S=j(i),O=L(S)?"unset":"".concat(Math.min(S,256),"px"),D=a((function(){var n=u(Dt,Mt[v],jt(w)),r=u(Dt,jt(w));switch(C){case"loading":return e.createElement("span",{className:n},e.createElement(y,{glyph:"Refresh",color:b?Z.blue.light1:Z.blue.base,className:zt}),p);case"error":return e.createElement(X,{className:r},e.createElement(y,{glyph:"Warning",color:b?Z.red.light1:Z.red.base}),e.createElement("span",null,f));default:return l&&"object"===ie(l)&&"length"in l&&l.length>0?e.createElement("ul",{className:Ot},l):e.createElement("span",{className:n},g)}}),[v,w,C,b,p,f,l,g]);return e.createElement(Q,se({active:E&&!k,spacing:4,align:"bottom",justify:"middle",refEl:i,adjustOnMutation:!0,className:u(Ct(d),Nt[v])},m),e.createElement("div",{ref:N,id:o,role:"listbox","aria-labelledby":c,"aria-expanded":E,className:u(St,Lt[v],s(kt||(kt=de(["\n max-height: ",";\n "])),O)),onMouseDownCapture:function(e){return e.preventDefault()}},D))}));Ft.displayName="ComboboxMenu";var At,Tt,Wt,Xt,Rt,Gt,Ht,Vt,Zt,qt,Kt,Yt,Bt,Ut,Jt,$t,Qt,_t,ea,na,ra,ta,aa,la,oa,ia,ca=function(e){var n=e.scrollHeight;return e.scrollTop<n-e.clientHeight},sa=function(e){var n,r=e.value,t=e.displayName;return{value:null!=r?r:re(t),displayName:null!==(n=null!=t?t:r)&&void 0!==n?n:""}},ua=function n(r){return e.Children.toArray(r).reduce((function(e,r){if(m(r,"ComboboxOption")){var t=sa(r.props),a=t.value,l=t.displayName,o=r.props,i=o.glyph,c=o.disabled;return[].concat(fe(e),[{value:a,displayName:l,isDisabled:!!c,hasGlyph:!!i}])}if(m(r,"ComboboxGroup")){var s=r.props.children;if(s)return[].concat(fe(e),fe(n(s)))}}),[])},da=function(e,n){if(e)return n.find((function(n){return n.value===e}))},pa=function(e,n){var r,t;return e?null!==(r=null===(t=da(e,n))||void 0===t?void 0:t.displayName)&&void 0!==r?r:e:""},fa=function(e){return s(At||(At=de(["\n font-size: ","px;\n line-height: ","px;\n min-height: ","px;\n padding: ","px ","px;\n gap: ","px;\n\n &:before {\n max-height: ","px;\n }\n"])),lr[e],ar[e],Et(e),wt[e].y,wt[e].x,Y[1],Et(e))},ga=(ce(Gt={},Ue.XSmall,s(Tt||(Tt=de(["\n min-width: ","px;\n "])),Y[3])),ce(Gt,Ue.Small,s(Wt||(Wt=de(["\n min-width: ","px;\n "])),Y[3])),ce(Gt,Ue.Default,s(Xt||(Xt=de(["\n min-width: ","px;\n "])),Y[3])),ce(Gt,Ue.Large,s(Rt||(Rt=de(["\n min-width: ","px;\n "])),Y[4])),Gt),ma=s(Ht||(Ht=de(["\n pointer-events: none;\n gap: 0;\n\n label {\n gap: 0;\n align-items: center;\n }\n"])));s(Vt||(Vt=de(["\n pointer-events: none;\n"])));var ha=function(e){return s(Zt||(Zt=de(["\n font-weight: ",";\n"])),e?$.bold:$.regular)},ba=(ce(Yt={},p.Light,s(qt||(qt=de(["\n color: ",";\n "])),Z.gray.dark1)),ce(Yt,p.Dark,s(Kt||(Kt=de(["\n color: ",";\n "])),Z.gray.base)),Yt),va=(ce(Jt={},p.Light,s(Bt||(Bt=de(["\n color: ",";\n "])),Z.blue.dark1)),ce(Jt,p.Dark,s(Ut||(Ut=de(["\n color: ",";\n "])),Z.blue.light3)),Jt),ya=(ce(_t={},p.Light,s($t||($t=de(["\n color: ",";\n "])),Z.gray.light1)),ce(_t,p.Dark,s(Qt||(Qt=de(["\n color: ",";\n "])),Z.gray.dark1)),_t),xa=(ce(ra={},p.Light,s(ea||(ea=de(["\n color: ",";\n "])),Z.blue.base)),ce(ra,p.Dark,s(na||(na=de(["\n color: ",";\n "])),Z.blue.light1)),ra),ka=(ce(la={},p.Light,s(ta||(ta=de(["\n color: ",";\n "])),Z.gray.light1)),ce(la,p.Dark,s(aa||(aa=de(["\n color: ",";\n "])),Z.gray.dark1)),la),wa=s(oa||(oa=de(["\n ."," {\n align-self: baseline;\n }\n"])),_),Ea=s(ia||(ia=de(["\n ."," {\n height: 28px;\n }\n"])),_),Ca=["glyph","isSelected","displayName","isFocused","setSelected","className","description","value","onClick","disabled"],Na=e.forwardRef((function(n,t){var l,i=n.glyph,c=n.isSelected,s=n.displayName,d=n.isFocused,p=n.setSelected,f=n.className,g=n.description,m=n.value,h=n.onClick,b=n.disabled,v=void 0!==b&&b,k=ue(n,Ca),w=W(),E=w.darkMode,C=w.theme,N=r($r),S=N.multiselect,L=N.size,O=N.withIcons,j=N.inputValue,I=M(t,null),z=D({prefix:"combobox-option-text"}),P=o((function(e){e.stopPropagation(),v||(p(),null==h||h(e,m))}),[v,h,p,m]),F=a((function(){return function(n){var r,t=n.withIcons,a=n.isSelected,l=n.glyph,o=n.optionTextId,i=n.disabled,c=n.darkMode,s=n.size,d=n.multiselect,p=n.theme,f=n.isFocused;l&&!x(l)&&console.error("`ComboboxOption` instance did not render icon because it is not a known glyph element.",l);var g=l&&x(l)?e.cloneElement(l,oe(oe({},l.props),{},{className:u(ba[p],(r={},ce(r,va[p],f),ce(r,ya[p],i),r),l.props.className)})):e.createElement(e.Fragment,null),m=e.createElement(ae,{"aria-labelledby":o,checked:a,tabIndex:-1,disabled:i,darkMode:c,className:ma}),h=e.createElement(y,{glyph:"Checkmark",className:u(ga[s],xa[p],ce({},ka[p],i))});return{leftGlyph:d?t?g:m:t?g:a?h:null,rightGlyph:d?t&&m:t&&a&&h}}({withIcons:O,isSelected:c,glyph:i,theme:C,darkMode:E,size:L,disabled:v,multiselect:S,optionTextId:z,isFocused:d})}),[E,v,i,c,S,z,L,C,O,d]),A=F.leftGlyph,T=F.rightGlyph,X=S&&!O;return e.createElement(ee,se({},k,{as:"li",ref:I,highlighted:d,disabled:v,"aria-label":s,darkMode:E,className:u(fa(L),(l={},ce(l,wa,X),ce(l,Ea,X&&L===Ue.Large),l),f),onClick:P,onKeyDown:P}),e.createElement(ne,{leftGlyph:A,rightGlyph:T,description:g},e.createElement("span",{id:z,className:ha(c)},function(n,r,t){if(r&&t){var a=te(r),l=new RegExp(a,"gi"),o=n.matchAll(l);if(o){for(var i=n.split(""),c=0,s=Array.from(o);c<s.length;c++){var u,d=s[c],p=null!==(u=d.index)&&void 0!==u?u:-1,f=d[0],g=f.length,m=p+f+g,h=new Array(g).fill("");h[0]=e.createElement(t,{key:m},f),i.splice.apply(i,[p,g].concat(fe(h)))}return e.createElement(e.Fragment,null,i)}return e.createElement(e.Fragment,null,n)}return e.createElement(e.Fragment,null,n)}(s,j,"strong"))))}));function Sa(e){throw Error("`ComboboxOption` must be a child of a `Combobox` instance")}Na.displayName="ComboboxOption",Sa.displayName="ComboboxOption",Sa.propTypes={displayName:O.string,value:O.string,glyph:O.node,disabled:O.bool,className:O.string,description:O.string,onClick:O.func};var La=["children","label","description","placeholder","aria-label","disabled","size","darkMode","state","errorMessage","searchState","searchEmptyMessage","searchErrorMessage","searchLoadingMessage","filteredOptions","onFilter","clearable","onClear","overflow","multiselect","initialValue","onChange","value","chipTruncationLocation","chipCharacterLimit","className","usePortal","portalClassName","portalContainer","scrollContainer","popoverZIndex"],Oa=["className","glyph","disabled"];function Da(n){var r,c,s,d=n.children,p=n.label,f=n.description,b=n.placeholder,v=void 0===b?"Select":b,x=n["aria-label"],O=n.disabled,M=void 0!==O&&O,j=n.size,X=void 0===j?Ue.Default:j,H=n.darkMode,V=n.state,Z=void 0===V?"none":V,q=n.errorMessage,K=n.searchState,Y=void 0===K?"unset":K,B=n.searchEmptyMessage,U=void 0===B?"No results found":B,J=n.searchErrorMessage,$=void 0===J?"Could not get results!":J,Q=n.searchLoadingMessage,_=void 0===Q?"Loading results...":Q,ee=n.filteredOptions,ne=n.onFilter,re=n.clearable,te=void 0===re||re,ae=n.onClear,le=n.overflow,de=void 0===le?$e.expandY:le,fe=n.multiselect,ge=void 0!==fe&&fe,me=n.initialValue,he=n.onChange,be=n.value,ve=n.chipTruncationLocation,ye=n.chipCharacterLimit,xe=void 0===ye?12:ye,ke=n.className,we=n.usePortal,Ee=void 0===we||we,Ce=n.portalClassName,Ne=n.portalContainer,Se=n.scrollContainer,Le=n.popoverZIndex,Oe=ue(n,La),De=W(H),Me=De.darkMode,je=De.theme,Ie=I({prefix:"option"}),ze=I({prefix:"chip"}),Pe=D({prefix:"combobox-input"}),Fe=D({prefix:"combobox-label"}),Ae=D({prefix:"combobox-menu"}),Te=t(null),We=t(null),Xe=t(null),Re=t(null),Ge=t(null),Je=pe(i(!1),2),_e=Je[0],en=Je[1],nn=z(_e),rn=pe(i(null),2),tn=rn[0],an=rn[1],ln=pe(i(null),2),on=ln[0],cn=ln[1],sn=z(on),un=pe(i(""),2),dn=un[0],pn=un[1],fn=z(dn),gn=pe(i(null),2),mn=gn[0],hn=gn[1],bn=pe(i(!1),2),vn=bn[0],yn=bn[1],xn=!N(on)&&(E(on)&&on.length>0||S(on)),kn=ge&&E(on)&&on.length>0?void 0:v,wn=function(){return en(!1)},En=function(){return en(!0)},Cn=a((function(){return ua(d)}),[d]),Nn=o((function(e){return!ge||"string"!=typeof e&&"number"!=typeof e?!ge&&E(e)&&h.error("Error in Combobox: multiselect is set to `false`, but received an Array value"):h.error("Error in Combobox: multiselect is set to `true`, but received a ".concat(ie(e),' value: "').concat(e,'"')),ge&&E(e)}),[ge]),Sn=o((function(e){!M&&Re&&Re.current&&(Re.current.focus(),L(e)||Re.current.setSelectionRange(e,e))}),[M]),Ln=o((function(e){if(Nn(on)){var n=k(on);N(e)?n.length=0:on.includes(e)?n.splice(n.indexOf(e),1):(n.push(e),pn("")),cn(n),null==he||he(n)}else{var r=e;cn(r),null==he||he(r)}}),[Nn,he,on]),On=o((function(e){return Nn(on)?on.includes(e):e===on}),[Nn,on]),Dn=o((function(e){var n,r,t,a,l=(r=Cn,(n=e)?null!==(t=null===(a=r.find((function(e){return e.displayName===n})))||void 0===a?void 0:a.value)&&void 0!==t?t:n:"");return On(l)}),[Cn,On]),Mn=o((function(e){var n="string"==typeof e?e:e.value;return ee&&ee.length>0?ee.includes(n):!!Dn(dn)||("string"==typeof e?pa(n,Cn):e.displayName).toLowerCase().includes(dn.toLowerCase())}),[ee,Dn,dn,Cn]),jn=a((function(){return Cn.filter(Mn)}),[Cn,Mn]),In=o((function(e){return!!e&&!!Cn.find((function(n){return n.value===e}))}),[Cn]),zn=o((function(e){return jn?jn.findIndex((function(n){return n.value===e})):-1}),[jn]),Pn=o((function(e){if(jn&&jn.length>=e){var n=jn[e];return n?n.value:void 0}}),[jn]),Fn=o((function(){return Nn(on)?on.findIndex((function(e){var n,r;return null===(n=ze(e))||void 0===n||null===(r=n.current)||void 0===r?void 0:r.contains(document.activeElement)})):-1}),[ze,Nn,on]),An=pe(i(),2),Tn=An[0],Wn=An[1],Xn=o((function(e){var n,r=null!==(n=null==jn?void 0:jn.length)&&void 0!==n?n:0,t=r-1>0?r-1:0,a=zn(tn);switch(e&&_e&&(hn(null),Sn()),e){case"next":var l=Pn(a+1<r?a+1:0);an(null!=l?l:null);break;case"prev":var o=Pn(a-1>=0?a-1:t);an(null!=o?o:null);break;case"last":var i=Pn(t);an(null!=i?i:null);break;default:var c=Pn(0);an(null!=c?c:null)}}),[tn,zn,Pn,_e,Sn,null==jn?void 0:jn.length]),Rn=o((function(e,n){if(Nn(on))switch(e){case"next":var r=null!=n?n:Fn(),t=r+1<on.length?r+1:on.length-1,a=on[t];hn(a);break;case"prev":var l=null!=n?n:Fn(),o=l>0?l-1:l<0?on.length-1:0,i=on[o];hn(i);break;case"first":var c=on[0];hn(c);break;case"last":var s=on[on.length-1];hn(s);break;default:hn(null)}}),[Fn,Nn,on]),Gn=o((function(e,n){switch(e&&an(null),e){case"right":switch(Tn){case He:var r,t,a;if((null===(r=Re.current)||void 0===r?void 0:r.selectionEnd)===(null===(t=Re.current)||void 0===t?void 0:t.value.length))null===(a=We.current)||void 0===a||a.focus();break;case Ze:case Ke:case qe:if(Tn===qe||1===(null==on?void 0:on.length)){Sn(0),Rn(null),n.preventDefault();break}Rn("next")}break;case"left":switch(Tn){case Ve:var l;n.preventDefault(),Sn(null==Re||null===(l=Re.current)||void 0===l?void 0:l.value.length);break;case He:case Ke:case qe:if(Nn(on)){var o;if(Tn===He&&0!==(null===(o=Re.current)||void 0===o?void 0:o.selectionStart))break;Rn("prev")}}break;default:Rn(null)}}),[Tn,Nn,on,Sn,Rn]);l((function(){dn!==fn&&Xn("first")}),[dn,_e,fn,Xn]),P(tn?Ie(tn):void 0,Ge);var Hn=o((function(n){if(m(n,"ComboboxOption")){var r=sa(n.props),t=r.value,a=r.displayName;if(Mn(t)){var l=n.props,o=l.className,i=l.glyph,c=l.disabled,s=ue(l,Oa),u=Cn.findIndex((function(e){return e.value===t})),d=tn===t,p=Nn(on)?on.includes(t):on===t,f=Ie(t);return e.createElement(Na,se({},s,{value:t,displayName:a,isFocused:d,isSelected:p,disabled:c,setSelected:function(){an(t),Ln(t),Sn(),t===on&&wn()},glyph:i,className:o,index:u,ref:f}))}}else if(m(n,"ComboboxGroup")){var g=e.Children.map(n.props.children,Hn);if(g&&(null==g?void 0:g.length)>0)return e.createElement(yt,{label:n.props.label,className:n.props.className},e.Children.map(g,Hn))}}),[Cn,Ie,tn,Nn,on,Sn,Mn,Ln]),Vn=a((function(){return e.Children.map(d,Hn)}),[d,Hn]),Zn=a((function(){if(Nn(on))return on.filter(In).map((function(n,r){var t=pa(n,Cn),a=mn===n,l=ze(n),o=r>=on.length-1;return e.createElement(Qr,{key:n,displayName:t,isFocused:a,onRemove:function(){o?(Sn(),Rn(null)):Rn("next",r),Ln(n)},onFocus:function(){hn(n)},ref:l})}))}),[Nn,on,In,Cn,mn,ze,Ln,Sn,Rn]),qn=a((function(){return Cn.some((function(e){return e.hasGlyph}))}),[Cn]),Kn=o((function(){if(!Nn(on)&&on===sn){var e=jn.find((function(e){return e.displayName===dn||e.value===dn}));if(e&&!be)cn(e.value);else{var n,r=null!==(n=pa(on,Cn))&&void 0!==n?n:"";pn(r)}}}),[Cn,dn,Nn,sn,on,be,jn]),Yn=o((function(){if(xn){if(Nn(on))rr(de);else if(!Nn(on)){var e,n=null!==(e=pa(on,Cn))&&void 0!==e?e:"";pn(n),wn()}}else pn("")}),[xn,Cn,Nn,on,de]);l((function(){if(me)if(E(me)){var e,n=null!==(e=me.filter((function(e){return In(e)})))&&void 0!==e?e:[];cn(n)}else In(me)&&cn(me);else cn(function(e){return e?[]:null}(ge))}),[]),l((function(){if(!L(be)&&be!==fn)if(N(be))cn(null);else if(Nn(be)){var e=be.filter(In);cn(e)}else cn(In(be)?be:null)}),[Nn,In,fn,be]),l((function(){C(on,sn)||Yn()}),[Yn,sn,on]),l((function(){!_e&&nn&&Kn()}),[_e,nn,Kn]);var Bn=pe(i(0),2),Un=Bn[0],Jn=Bn[1];l((function(){var e,n;Jn(null!==(e=null===(n=Te.current)||void 0===n?void 0:n.clientWidth)&&void 0!==e?e:0)}),[Te,_e,tn,on]);F(wn,[Ge,Te],_e);var $n=Nn(on)&&!!on.length,Qn=w((function(e){yn(ca(e.target))}),50,{leading:!0}),_n=o((function(e){de===$e.expandY&&Qn(e)}),[Qn,de]);l((function(){Xe.current&&yn(ca(Xe.current))}),[]);var er,nr=oe({popoverZIndex:Le},Ee?{usePortal:Ee,portalClassName:Ce,portalContainer:Ne,scrollContainer:Se}:{usePortal:Ee});return e.createElement(T,{darkMode:Me},e.createElement($r.Provider,{value:{multiselect:ge,size:X,withIcons:qn,disabled:M,isOpen:_e,state:Z,searchState:Y,chipTruncationLocation:ve,chipCharacterLimit:xe,inputValue:dn,overflow:de,popoverZIndex:Le}},e.createElement("div",se({className:u(Nr(X),ke)},Oe),(p||f)&&e.createElement("div",{className:qr},p&&e.createElement(R,{id:Fe,htmlFor:Pe,darkMode:Me,disabled:M,className:u(ce({},Kr,X===Ue.Large))},p),f&&e.createElement(G,{darkMode:Me,disabled:M,className:u(ce({},Kr,X===Ue.Large))},f)),e.createElement("div",{ref:Te,role:"combobox","aria-expanded":_e,"aria-controls":Ae,"aria-owns":Ae,tabIndex:-1,onMouseDown:function(e){M&&e.preventDefault()},onClick:function(e){if(e.target!==Re.current){var n=0;if(Re.current)n=e.nativeEvent.offsetX>Re.current.offsetLeft+Re.current.clientWidth?dn.length:0;Sn(n)}En()},onFocus:function(e){rr(de),Wn(function(e){var n,r,t,a;if(!e)return;if(null!==(n=Re.current)&&void 0!==n&&n.contains(e))return He;if(null!==(r=We.current)&&void 0!==r&&r.contains(e))return Ve;var l=Nn(on)?on.findIndex((function(n){var r,t;return null===(r=ze(n))||void 0===r||null===(t=r.current)||void 0===t?void 0:t.contains(e)})):-1;if(Nn(on)){if(0===l)return Ze;if(l===on.length-1)return qe;if(l>0)return Ke}if(null!==(t=Ge.current)&&void 0!==t&&t.contains(e))return Be;if(null!==(a=Te.current)&&void 0!==a&&a.contains(e))return Ye}(e.target))},onKeyDown:function(e){var n,r,t=null===(n=Ge.current)||void 0===n?void 0:n.contains(document.activeElement);if((null===(r=Te.current)||void 0===r?void 0:r.contains(document.activeElement))||t){if(e.ctrlKey||e.shiftKey||e.altKey)return;switch(e.keyCode){case g.Tab:switch(Tn){case"Input":xn||(wn(),Xn("first"),Rn(null));break;case"LastChip":Rn(null)}break;case g.Escape:wn(),Xn("first");break;case g.Enter:Tn!==He||N(tn)||function(e){if("string"==typeof e){var n=da(e,Cn);return!(null==n||!n.isDisabled)}return!!e.isDisabled}(tn)?Tn===Ve&&(Ln(null),Sn()):Ln(tn);break;case g.Backspace:var a;if(Nn(on))"Input"===Tn&&0===(null===(a=Re.current)||void 0===a?void 0:a.selectionStart)&&Rn("last");En();break;case g.ArrowDown:_e?(e.preventDefault(),Xn("next")):En();break;case g.ArrowUp:_e?(e.preventDefault(),Xn("prev")):En();break;case g.ArrowRight:Gn("right",e);break;case g.ArrowLeft:Gn("left",e);break;default:_e||En()}}},onTransitionEnd:function(){var e,n;Jn(null!==(e=null===(n=Te.current)||void 0===n?void 0:n.clientWidth)&&void 0!==e?e:0)},className:u(Sr,Lr[je],Or(X,$n),(r={},ce(r,Dr[je],M),ce(r,Mr[je],Z===Qe.error),ce(r,jr[je],(er=He,er===Tn)),ce(r,Yr[je],vn),r))},e.createElement("div",{onScroll:_n,ref:Xe,className:Pr({size:X,overflow:de})},Zn,e.createElement("input",{"aria-label":null!=x?x:p,"aria-autocomplete":"list","aria-controls":Ae,"aria-labelledby":Fe,ref:Re,id:Pe,className:u(Fr,Wr(X),Ar[je],Xr(_e),(c={},ce(c,Rr(X,dn),Nn(on)),ce(c,Tr[je],M),c)),placeholder:kn,disabled:null!=M?M:void 0,onChange:function(e){var n=e.target.value;pn(n),null==ne||ne(n)},value:dn,autoComplete:"off"})),e.createElement("div",{className:u(Ir,zr[X])},"error"===Z&&e.createElement(y,{glyph:"Warning",fill:Br[je],className:Hr}),te&&xn&&!M&&e.createElement(A,{"aria-label":"Clear selection","aria-disabled":M,disabled:M,ref:We,onClick:function(e){M||(e.stopPropagation(),Ln(null),null==ae||ae(e),null==ne||ne(""),Sn())},onFocus:function(){an(null)},className:u(Gr),darkMode:Me},e.createElement(y,{glyph:"XWithCircle"})),e.createElement(y,{glyph:"CaretDown",className:Hr,fill:u((s={},ce(s,Ur[je],!M),ce(s,Jr[je],M),s))}))),"error"===Z&&q&&e.createElement("div",{className:u(Vr[je],Zr(X))},q),e.createElement(Ft,se({id:Ae,labelId:Fe,refEl:Te,ref:Ge,menuWidth:Un,searchLoadingMessage:_,searchErrorMessage:$,searchEmptyMessage:U},nr),Vn))));function rr(e){Xe&&Xe.current&&(e===$e.scrollX&&(Xe.current.scrollLeft=Xe.current.scrollWidth),e===$e.expandY&&(Xe.current.scrollTop=Xe.current.scrollHeight))}}Da.propTypes={multiselect:O.bool,value:O.oneOfType([O.string,O.arrayOf(O.string)]),initialValue:O.oneOfType([O.string,O.arrayOf(O.string)]),overflow:O.oneOf(Object.values($e)),darkMode:O.bool,label:O.string,"aria-label":O.string,children:O.node,onChange:O.func,chipCharacterLimit:O.number,chipTruncationLocation:O.oneOf(Object.values(Je)),onClear:O.func,onFilter:O.func,clearable:O.bool,searchLoadingMessage:O.string,searchErrorMessage:O.string,searchEmptyMessage:O.string,searchState:O.oneOf(Object.values(_e)),errorMessage:O.string,state:O.oneOf(Object.values(Qe)),size:O.oneOf(Object.values(Ue)),disabled:O.bool,description:O.string,placeholder:O.string,filteredOptions:O.arrayOf(O.string),popoverZIndex:O.number,usePortal:O.bool,scrollContainer:O.elementType,portalContainer:O.elementType,portalClassName:O.string};var Ma,ja=s(Ma||(Ma=de(["\n width: 256px;\n padding-block: 64px;\n display: flex;\n"]))),Ia=["apple","banana"],za={title:"Components/Combobox",component:Da,decorators:[function(n){return e.createElement("div",{className:ja},e.createElement(n,null))}],parameters:{default:"LiveExample",controls:{exclude:[].concat(fe(v),["as","filteredOptions","initialValue","setError","value","children"])},generate:{storyNames:["SingleSelect","MultiSelect"],combineArgs:{darkMode:[!1,!0],clearable:[!0,!1],description:[void 0,"Please pick fruit(s)"],label:[void 0,"Choose a fruit"],state:Object.values(Qe),size:Object.values(Ue)},excludeCombinations:[["description",{label:void 0}],{clearable:!1,value:void 0},{multiselect:!0,value:"apple"},{multiselect:!1,value:Ia}]}},args:{label:"Choose a fruit",description:"Please pick fruit(s)",placeholder:"Select fruit",multiselect:!1,darkMode:!1,disabled:!1,clearable:!0,errorMessage:"No Pomegranates!",children:function(){var n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return[e.createElement(Sa,{key:"apple",value:"apple",displayName:"Apple","data-testid":"test-id",description:"Do I keep the doctor away?",onClick:function(e,n){return console.log(e,n)},className:"className"}),e.createElement(Sa,{key:"banana",value:"banana",displayName:"Banana"}),e.createElement(Sa,{key:"carrot",value:"carrot",displayName:"Carrot",disabled:!0}),e.createElement(Sa,{key:"pomegranate",value:"pomegranate",displayName:"Pomegranate",glyph:n?e.createElement(y,{glyph:"Warning"}):void 0,description:"Watch out, I stain everything I touch LOL",disabled:!0}),e.createElement(Sa,{key:"plantain",value:"plantain",displayName:"Plantain",glyph:n?e.createElement(y,{glyph:"Connect"}):void 0,description:"Don't confuse me with a banana",onClick:function(){return console.log("I was clicked")}}),e.createElement(Sa,{key:"paragraph",value:"paragraph",displayName:"Nullam quis risus eget urna mollis ornare vel eu leo. Vestibulum id ligula porta felis euismod semper."}),e.createElement(Sa,{key:"hash",value:"hash",displayName:"5f4dcc3b5aa765d61d8327deb882cf995f4dcc3b5aa765d61d8327deb882cf99"}),e.createElement(Sa,{key:"dragonfruit",value:"dragonfruit",displayName:"Dragonfruit",description:"Rawr"}),e.createElement(Sa,{key:"eggplant",value:"eggplant",displayName:"Eggplant"}),e.createElement(Sa,{key:"fig",value:"fig",displayName:"Fig"}),e.createElement(Sa,{key:"grape",value:"grape",displayName:"Grape"}),e.createElement(Sa,{key:"honeydew",value:"honeydew",displayName:"Honeydew"}),e.createElement(Sa,{key:"iceberg-lettuce",value:"iceberg-lettuce",displayName:"Iceberg lettuce"}),e.createElement(xt,{key:"peppers",label:"Peppers"},e.createElement(Sa,{key:"cayenne",value:"cayenne",displayName:"Cayenne"}),e.createElement(Sa,{key:"ghost-pepper",value:"ghost-pepper",displayName:"Ghost pepper"}),e.createElement(Sa,{key:"habanero",value:"habanero",displayName:"Habanero"}),e.createElement(Sa,{key:"jalapeno",value:"jalapeno",displayName:"Jalapeño"}),e.createElement(Sa,{key:"red-pepper",value:"red-pepper",displayName:"Red pepper"}),e.createElement(Sa,{key:"scotch-bonnet",value:"scotch-bonnet",displayName:"Scotch bonnet",description:"Don't touch your eyes"}))]}()},argTypes:{darkMode:b.darkMode,multiselect:{control:"boolean"},disabled:{control:"boolean"},clearable:{control:"boolean"},label:{control:"text"},description:{control:"text"},placeholder:{control:"text"},size:{options:Object.values(Ue),control:"select"},state:{options:Object.values(Qe),control:"select"},errorMessage:{control:"text"},searchEmptyMessage:{control:"text"},searchState:{options:Object.values(_e),control:"select"},searchErrorMessage:{control:"text",if:{arg:"searchState",eq:_e.error}},searchLoadingMessage:{control:"text",if:{arg:"searchState",eq:_e.loading}},chipTruncationLocation:{options:Object.values(Je),control:"select",if:{arg:"multiselect"}},chipCharacterLimit:{control:"number",if:{arg:"multiselect"}},overflow:{options:Object.values($e),control:"select",if:{arg:"multiselect"}}}},Pa=function(n){return e.createElement(e.Fragment,null,n.multiselect?e.createElement(Da,se({key:"multi"},n,{multiselect:!0})):e.createElement(Da,se({key:"single"},n,{multiselect:!1})))};Pa.parameters={chromatic:{disableSnapshot:!0}};var Fa=function(){var n=pe(i(null),2),r=n[0],t=n[1];return e.createElement("div",null,e.createElement(Da,{multiselect:!1,label:"Choose a fruit",description:"Please pick one",placeholder:"Select fruit",onChange:function(e){t(e)},value:r},e.createElement(Sa,{value:"apple"}),e.createElement(Sa,{value:"banana"}),e.createElement(Sa,{value:"carrot"})),e.createElement(c,{onClick:function(){return t("carrot")}},"Select Carrot"))};Fa.parameters={chromatic:{disableSnapshot:!0}};var Aa=function(){var n=["apple","banana","carrot","dragonfruit","eggplant","fig","grape","honeydew","iceberg-lettuce","jalapeño"],r=pe(i(["carrot","grape"]),2),t=r[0],a=r[1];return e.createElement(Da,{label:"Choose some fruit",placeholder:"Select fruit",initialValue:["apple","fig","raspberry"],multiselect:!0,overflow:"expand-y",onFilter:function(e){a(n.filter((function(n){return n.includes(e)})))},filteredOptions:t},n.map((function(n){return e.createElement(Sa,{key:n,value:n})})))};Aa.parameters={chromatic:{disableSnapshot:!0}};var Ta=function(){return e.createElement(e.Fragment,null)};Ta.args={multiselect:!1},Ta.parameters={generate:{combineArgs:{value:[void 0,"apple"]}}};var Wa=function(){return e.createElement(e.Fragment,null)};Wa.args={multiselect:!0},Wa.parameters={generate:{combineArgs:{value:[void 0,Ia]}}};export{Fa as ControlledSingleSelect,Aa as ExternalFilter,Pa as LiveExample,Wa as MultiSelect,Ta as SingleSelect,za as default};
|