@leafygreen-ui/combobox 1.0.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/README.md +2 -2
  3. package/dist/Chip.d.ts.map +1 -1
  4. package/dist/Combobox.d.ts +7 -1
  5. package/dist/Combobox.d.ts.map +1 -1
  6. package/dist/Combobox.styles.d.ts +7 -3
  7. package/dist/Combobox.styles.d.ts.map +1 -1
  8. package/dist/Combobox.types.d.ts +33 -6
  9. package/dist/Combobox.types.d.ts.map +1 -1
  10. package/dist/ComboboxContext.d.ts +1 -1
  11. package/dist/ComboboxContext.d.ts.map +1 -1
  12. package/dist/ComboboxOption.d.ts.map +1 -1
  13. package/dist/ComboboxTestUtils.d.ts +3 -4
  14. package/dist/ComboboxTestUtils.d.ts.map +1 -1
  15. package/dist/esm/index.js +1 -1
  16. package/dist/esm/index.js.map +1 -1
  17. package/dist/index.js +1 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/utils/OptionObjectUtils.d.ts +5 -0
  20. package/dist/utils/OptionObjectUtils.d.ts.map +1 -0
  21. package/dist/utils/flattenChildren.d.ts +11 -0
  22. package/dist/utils/flattenChildren.d.ts.map +1 -0
  23. package/dist/utils/getNameAndValue.d.ts +14 -0
  24. package/dist/utils/getNameAndValue.d.ts.map +1 -0
  25. package/dist/utils/index.d.ts +5 -0
  26. package/dist/utils/index.d.ts.map +1 -0
  27. package/dist/utils/wrapJSX.d.ts +14 -0
  28. package/dist/utils/wrapJSX.d.ts.map +1 -0
  29. package/package.json +22 -12
  30. package/src/Chip.tsx +16 -9
  31. package/src/Combobox.spec.tsx +336 -164
  32. package/src/Combobox.story.tsx +274 -248
  33. package/src/Combobox.styles.ts +94 -24
  34. package/src/Combobox.tsx +456 -279
  35. package/src/Combobox.types.ts +46 -8
  36. package/src/ComboboxContext.tsx +2 -2
  37. package/src/ComboboxOption.tsx +36 -11
  38. package/src/ComboboxTestUtils.tsx +22 -8
  39. package/src/utils/ComboboxUtils.spec.tsx +227 -0
  40. package/src/utils/OptionObjectUtils.ts +26 -0
  41. package/src/utils/flattenChildren.tsx +47 -0
  42. package/src/utils/getNameAndValue.ts +23 -0
  43. package/src/utils/index.ts +8 -0
  44. package/src/utils/wrapJSX.tsx +54 -0
  45. package/tsconfig.json +3 -0
  46. package/tsconfig.tsbuildinfo +1 -3977
  47. package/dist/util.d.ts +0 -53
  48. package/dist/util.d.ts.map +0 -1
  49. package/src/util.tsx +0 -117
package/CHANGELOG.md CHANGED
@@ -1,5 +1,70 @@
1
1
  # @leafygreen-ui/combobox
2
2
 
3
+ ## 1.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 8ab46ed4: Adds `Large` size variant to Combobox. Additionally, restores legacy font in Label & Description
8
+ - d241af9e: Adds a `disabled` prop to ComboboxOptions. Note, disabled options will still be rendered in the menu, but not selectable
9
+
10
+ ### Patch Changes
11
+
12
+ - d5c12b77: Updates filtering behavior. Now when opening the menu all options will be displayed, regardless of whether a selection has already been made
13
+ - a5d19177: Updates backdrop click behavior to match native `<select>`. Now, when clicking away from an open menu to close it, the Combobox will retain focus and no click handlers should fire on clicked elements until the menu is closed
14
+ - 8f7f8555: Updates combobox focus ring behavior. The combobox will now display a focus ring whenever the user is able to type in thy combobox. The outer focus ring will not render if a chip or the clear button is focused.
15
+ - 4f2ff237: - Updates min-width of the input to fit all characters (previously wide characters would be cut off).
16
+ - Updates text wrapping of menu items so long unbroken strings (like ids) won't overflow, but wrap.
17
+ - d241af9e: Restores menu font to legacy Akzidenz font
18
+ - 6792bc44: Refactors Combobox and Select to use the new `useAvailableSpace` hook to calculate the max menu height
19
+ - 266e0d8e: Ensures the focus remains in the combobox when a chip is removed. Focus is set to either the input, or the next chip to the right, whichever is relevant
20
+ - 422dbfcd: Adds additional tests for internal Combobox utilities
21
+ - Updated dependencies [1356d50d]
22
+ - Updated dependencies [6a89bc29]
23
+ - Updated dependencies [fd2f6de0]
24
+ - Updated dependencies [6792bc44]
25
+ - Updated dependencies [96d1ff9c]
26
+ - Updated dependencies [422dbfcd]
27
+ - Updated dependencies [9ff90d4b]
28
+ - @leafygreen-ui/checkbox@8.0.3
29
+ - @leafygreen-ui/palette@3.4.0
30
+ - @leafygreen-ui/hooks@7.3.0
31
+ - @leafygreen-ui/icon-button@11.0.2
32
+ - @leafygreen-ui/inline-definition@3.0.2
33
+ - @leafygreen-ui/tokens@1.3.1
34
+ - @leafygreen-ui/typography@11.0.2
35
+ - @leafygreen-ui/lib@9.3.0
36
+
37
+ ## 1.1.0
38
+
39
+ ### Minor Changes
40
+
41
+ - e9c39305: - Reduces `min-width` of combobox down to `24px`
42
+
43
+ ### Patch Changes
44
+
45
+ - a526ac52: Adds `@leafygreen-ui/tokens` and `@leafygreen-ui/tooltip` to dependencies
46
+ - e9c39305: Updates highlighting function to fix a bug where some text would be duplicated
47
+ - Fixes left padding when `overflow="scroll-x"`
48
+ - Clarifies wording for `initialValue` prop docs
49
+ - Updated dependencies [e630a889]
50
+ - Updated dependencies [2670e4db]
51
+ - Updated dependencies [6c12e85a]
52
+ - @leafygreen-ui/checkbox@8.0.2
53
+ - @leafygreen-ui/icon@11.10.0
54
+
55
+ ## 1.0.3
56
+
57
+ ### Patch Changes
58
+
59
+ - Updated dependencies [e13d2487]
60
+ - Updated dependencies [500d6c60]
61
+ - @leafygreen-ui/checkbox@8.0.0
62
+ - @leafygreen-ui/icon-button@11.0.0
63
+ - @leafygreen-ui/popover@8.0.0
64
+ - @leafygreen-ui/interaction-ring@3.0.0
65
+ - @leafygreen-ui/icon@11.9.0
66
+ - @leafygreen-ui/typography@11.0.0
67
+
3
68
  ## 1.0.2
4
69
 
5
70
  ### Patch Changes
package/README.md CHANGED
@@ -81,8 +81,8 @@ import { Combobox, ComboboxOption } from '@leafygreen-ui/combobox';
81
81
  | ------------------------ | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
82
82
  | `children` | `<ComboboxOption>`, `<ComboboxGroup>` | Define the Combobox Options by passing children | |
83
83
  | `multiselect` | `boolean` | Defines whether a user can select multiple options, or only a single option. When using TypeScript, `multiselect` affects the valid values of `initialValue`, `value`, and `onChange` | `false` |
84
- | `initialValue` | `Array<string>`, `string` | The initial selection. Must be a string for a single-select, or an array of strings for multiselect. Changing the `initialValue` after initial render will not change the selection. | |
85
- | `value` | `Array<string>`, `string` | The controlled value of the Combobox. Must be a string for a single-select, or an array of strings for multiselect. Changing `value` after initial render _will_ affect the selection. | |
84
+ | `initialValue` | `Array<string>`, `string` | The initial selection. Must be a string (or array of strings) that matches the `value` prop of a `ComboboxOption`. Changing the `initialValue` after initial render will not change the selection. | |
85
+ | `value` | `Array<string>`, `string` | The controlled value of the Combobox. Must be a string (or array of strings) that matches the `value` prop of a `ComboboxOption`. Changing `value` after initial render _will_ affect the selection. `value` will always take precedence over `initialValue` if both are provided. | |
86
86
  | `onChange` | `(Array<string>) => void`, `(string) => void` | A callback called when the selection changes. Callback recieves a single argument that is the new selection, either string, or string array | |
87
87
  | `overflow` | `'expand-y'`, `'expand-x'`, `'scroll-x'` | Defines the overflow behavior of a multiselect combobox. **expand-y**: Combobox has fixed width, and additional selections will cause the element to grow in the block direction. **expand-x**: Combobox has fixed height, and additional selections will cause the elemenet to grow in the inline direction. **scroll-x**: Combobox has fixed height and width, and additional selections will cause the element to be scrollable in the x (horizontal) direction. | `'expand-y'` |
88
88
  | `label` | `string` | An accessible label for the input, rendered in a `<label>` to the DOM | |
@@ -1 +1 @@
1
- {"version":3,"file":"Chip.d.ts","sourceRoot":"","sources":["../src/Chip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,SAAS,EAAgB,MAAM,kBAAkB,CAAC;AAmG3D,eAAO,MAAM,IAAI,mFAyHhB,CAAC"}
1
+ {"version":3,"file":"Chip.d.ts","sourceRoot":"","sources":["../src/Chip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,SAAS,EAAgB,MAAM,kBAAkB,CAAC;AA6G3D,eAAO,MAAM,IAAI,mFAsHhB,CAAC"}
@@ -1,7 +1,13 @@
1
1
  /// <reference types="react" />
2
2
  import { ComboboxProps } from './Combobox.types';
3
3
  /**
4
- * Component
4
+ * Combobox is a combination of a Select and TextInput,
5
+ * allowing the user to either type a value directly or select a value from the list.
6
+ * Can be configured to select a single or multiple options.
5
7
  */
6
8
  export default function Combobox<M extends boolean>({ children, label, description, placeholder, 'aria-label': ariaLabel, 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, ...rest }: ComboboxProps<M>): JSX.Element;
9
+ /**
10
+ * Why'd you have to go and make things so complicated?
11
+ * - Avril; and also me to myself about this component
12
+ */
7
13
  //# sourceMappingURL=Combobox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../src/Combobox.tsx"],"names":[],"mappings":";AAuBA,OAAO,EACL,aAAa,EAId,MAAM,kBAAkB,CAAC;AAuB1B;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,EAClD,QAAQ,EACR,KAAK,EACL,WAAW,EACX,WAAsB,EACtB,YAAY,EAAE,SAAS,EACvB,QAAgB,EAChB,IAAgB,EAChB,QAAgB,EAChB,KAAc,EACd,YAAY,EACZ,WAAqB,EACrB,kBAAuC,EACvC,kBAA6C,EAC7C,oBAA2C,EAC3C,eAAe,EACf,QAAQ,EACR,SAAgB,EAChB,OAAO,EACP,QAAqB,EACrB,WAAwB,EACxB,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,sBAAsB,EACtB,kBAAuB,EACvB,SAAS,EACT,SAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,GAAG,IAAI,EACR,EAAE,aAAa,CAAC,CAAC,CAAC,eA4lClB"}
1
+ {"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../src/Combobox.tsx"],"names":[],"mappings":";AAsBA,OAAO,EACL,aAAa,EAOd,MAAM,kBAAkB,CAAC;AA8B1B;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,EAClD,QAAQ,EACR,KAAK,EACL,WAAW,EACX,WAAsB,EACtB,YAAY,EAAE,SAAS,EACvB,QAAgB,EAChB,IAA2B,EAC3B,QAAgB,EAChB,KAAc,EACd,YAAY,EACZ,WAAqB,EACrB,kBAAuC,EACvC,kBAA6C,EAC7C,oBAA2C,EAC3C,eAAe,EACf,QAAQ,EACR,SAAgB,EAChB,OAAO,EACP,QAAqB,EACrB,WAAwB,EACxB,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,sBAAsB,EACtB,kBAAuB,EACvB,SAAS,EACT,SAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,GAAG,IAAI,EACR,EAAE,aAAa,CAAC,CAAC,CAAC,eA8vClB;AACD;;;GAGG"}
@@ -2,13 +2,15 @@
2
2
  * Styles
3
3
  */
4
4
  import { ComboboxSize, Overflow, State } from './Combobox.types';
5
+ export declare const chipClassName: string;
6
+ export declare const _tempLabelDescriptionOverrideStyle: string;
5
7
  export declare const comboboxParentStyle: ({ darkMode, size, overflow, }: {
6
8
  darkMode: boolean;
7
9
  size: ComboboxSize;
8
10
  overflow: Overflow;
9
11
  }) => string;
10
12
  export declare const comboboxStyle: string;
11
- export declare const interactionRingStyle: string;
13
+ export declare const comboboxFocusStyle: string;
12
14
  export declare const interactionRingColor: ({ state, darkMode, }: {
13
15
  state: State;
14
16
  darkMode: boolean;
@@ -17,14 +19,16 @@ export declare const interactionRingColor: ({ state, darkMode, }: {
17
19
  } | {
18
20
  hovered: "#FCEBE2" | undefined;
19
21
  };
20
- export declare const inputWrapperStyle: ({ overflow, isOpen, selection, value, }: {
22
+ export declare const inputWrapperStyle: ({ overflow, isOpen, selection, size, value, }: {
21
23
  overflow: Overflow;
22
24
  isOpen: boolean;
23
25
  selection: string | Array<string> | null;
26
+ size: ComboboxSize;
24
27
  value?: string | undefined;
25
28
  }) => string;
26
29
  export declare const inputElementStyle: string;
27
- export declare const clearButton: string;
30
+ export declare const clearButtonStyle: string;
31
+ export declare const clearButtonFocusOverrideStyles: string;
28
32
  export declare const errorMessageStyle: string;
29
33
  export declare const endIcon: string;
30
34
  export declare const loadingIconStyle: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.styles.d.ts","sourceRoot":"","sources":["../src/Combobox.styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEjE,eAAO,MAAM,mBAAmB;cAKpB,OAAO;UACX,YAAY;cACR,QAAQ;YAmDnB,CAAC;AAEF,eAAO,MAAM,aAAa,QAgCzB,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAEhC,CAAC;AAEF,eAAO,MAAM,oBAAoB;WAIxB,KAAK;cACF,OAAO;;;;;CAWlB,CAAC;AAEF,eAAO,MAAM,iBAAiB;cAMlB,QAAQ;YACV,OAAO;eACJ,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,IAAI;;YAwEzC,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAgB7B,CAAC;AAEF,eAAO,MAAM,WAAW,QAGvB,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAK7B,CAAC;AAEF,eAAO,MAAM,OAAO,QAEnB,CAAC;AAUF,eAAO,MAAM,gBAAgB,QAE5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;cAKjB,OAAO;UACX,YAAY;;YA4CnB,CAAC;AAEF,eAAO,MAAM,SAAS;eAAgC,MAAM;YAc3D,CAAC;AAEF,eAAO,MAAM,QAAQ,QAIpB,CAAC;AAEF,eAAO,MAAM,WAAW,QAYvB,CAAC"}
1
+ {"version":3,"file":"Combobox.styles.d.ts","sourceRoot":"","sources":["../src/Combobox.styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAUjE,eAAO,MAAM,aAAa,QAAyC,CAAC;AAGpE,eAAO,MAAM,kCAAkC,QAI9C,CAAC;AAEF,eAAO,MAAM,mBAAmB;cAKpB,OAAO;UACX,YAAY;cACR,QAAQ;YAqEnB,CAAC;AAEF,eAAO,MAAM,aAAa,QA0BzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAO9B,CAAC;AAEF,eAAO,MAAM,oBAAoB;WAIxB,KAAK;cACF,OAAO;;;;;CAWlB,CAAC;AAEF,eAAO,MAAM,iBAAiB;cAOlB,QAAQ;YACV,OAAO;eACJ,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,IAAI;UAClC,YAAY;;YA4EnB,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAkB7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAG5B,CAAC;AAIF,eAAO,MAAM,8BAA8B,QAO1C,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAK7B,CAAC;AAEF,eAAO,MAAM,OAAO,QAEnB,CAAC;AAUF,eAAO,MAAM,gBAAgB,QAE5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;cAKjB,OAAO;UACX,YAAY;;YA4DnB,CAAC;AAEF,eAAO,MAAM,SAAS;eAAgC,MAAM;YAc3D,CAAC;AAEF,eAAO,MAAM,QAAQ,QAIpB,CAAC;AAEF,eAAO,MAAM,WAAW,QAYvB,CAAC"}
@@ -3,8 +3,22 @@ import { Either } from '@leafygreen-ui/lib';
3
3
  /**
4
4
  * Prop Enums & Types
5
5
  */
6
+ export declare const ComboboxElement: {
7
+ readonly Input: "Input";
8
+ readonly ClearButton: "ClearButton";
9
+ readonly FirstChip: "FirstChip";
10
+ readonly LastChip: "LastChip";
11
+ readonly MiddleChip: "MiddleChip";
12
+ readonly Combobox: "Combobox";
13
+ readonly Menu: "Menu";
14
+ };
15
+ export declare type ComboboxElement = typeof ComboboxElement[keyof typeof ComboboxElement];
16
+ /**
17
+ * Prop types
18
+ */
6
19
  export declare const ComboboxSize: {
7
- readonly default: "default";
20
+ readonly Default: "default";
21
+ readonly Large: "large";
8
22
  };
9
23
  export declare type ComboboxSize = typeof ComboboxSize[keyof typeof ComboboxSize];
10
24
  export declare const TrunctationLocation: {
@@ -17,7 +31,7 @@ export declare type TrunctationLocation = typeof TrunctationLocation[keyof typeo
17
31
  export declare const Overflow: {
18
32
  readonly expandY: "expand-y";
19
33
  readonly expandX: "expand-x";
20
- readonly scrollY: "scroll-x";
34
+ readonly scrollX: "scroll-x";
21
35
  };
22
36
  export declare type Overflow = typeof Overflow[keyof typeof Overflow];
23
37
  export declare const State: {
@@ -48,8 +62,8 @@ export interface ComboboxMultiselectProps<M extends boolean> {
48
62
  multiselect?: M;
49
63
  /**
50
64
  * The initial selection.
51
- * Must be a string for a single-select, or an array of strings for multiselect.
52
- * Changing the initialValue after initial render will not change the selection.
65
+ * Must be a string (or array of strings) that matches the `value` prop of a `ComboboxOption`.
66
+ * Changing the `initialValue` after initial render will not change the selection.
53
67
  */
54
68
  initialValue?: SelectValueType<M>;
55
69
  /**
@@ -59,8 +73,9 @@ export interface ComboboxMultiselectProps<M extends boolean> {
59
73
  onChange?: onChangeType<M>;
60
74
  /**
61
75
  * The controlled value of the Combobox.
62
- * Must be a string for a single-select, or an array of strings for multiselect.
63
- * Changing value after initial render will affect the selection.
76
+ * Must be a string (or array of strings) that matches the `value` prop of a `ComboboxOption`.
77
+ * Changing `value` after initial render _will_ affect the selection.
78
+ * `value` will always take precedence over `initialValue` if both are provided.
64
79
  */
65
80
  value?: SelectValueType<M>;
66
81
  /**
@@ -207,18 +222,30 @@ interface BaseComboboxOptionProps {
207
222
  * The icon to display to the left of the option in the menu.
208
223
  */
209
224
  glyph?: ReactElement;
225
+ /**
226
+ * Defines whether the option is disabled.
227
+ * Node: disabled options are still rendered in the menu, but not selectable.
228
+ */
229
+ disabled?: boolean;
210
230
  /**
211
231
  * Styling Prop
212
232
  */
213
233
  className?: string;
214
234
  }
215
235
  export declare type ComboboxOptionProps = Either<BaseComboboxOptionProps, 'value' | 'displayName'>;
236
+ export interface OptionObject {
237
+ value: string;
238
+ displayName: string;
239
+ isDisabled: boolean;
240
+ hasGlyph?: boolean;
241
+ }
216
242
  export interface InternalComboboxOptionProps {
217
243
  value: string;
218
244
  displayName: string;
219
245
  isSelected: boolean;
220
246
  isFocused: boolean;
221
247
  setSelected: () => void;
248
+ disabled?: boolean;
222
249
  glyph?: ReactElement;
223
250
  className?: string;
224
251
  index: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.types.d.ts","sourceRoot":"","sources":["../src/Combobox.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Combobox.types.d.ts","sourceRoot":"","sources":["../src/Combobox.types.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { ComboboxSize, TrunctationLocation } from './Combobox.types';
3
3
  interface ComboboxData {
4
4
  multiselect: boolean;
5
5
  darkMode: boolean;
6
- size: keyof typeof ComboboxSize;
6
+ size: ComboboxSize;
7
7
  withIcons: boolean;
8
8
  disabled: boolean;
9
9
  chipTruncationLocation?: TrunctationLocation;
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxContext.d.ts","sourceRoot":"","sources":["../src/ComboboxContext.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAErE,UAAU,YAAY;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,OAAO,YAAY,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,sBAAsB,CAAC,EAAE,mBAAmB,CAAC;IAC7C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,eAAe,uCAM1B,CAAC"}
1
+ {"version":3,"file":"ComboboxContext.d.ts","sourceRoot":"","sources":["../src/ComboboxContext.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAErE,UAAU,YAAY;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,sBAAsB,CAAC,EAAE,mBAAmB,CAAC;IAC7C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,eAAe,uCAM1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxOption.d.ts","sourceRoot":"","sources":["../src/ComboboxOption.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAMhE,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,kBAAkB,CAAC;AAgE1B;;GAEG;AAEH,QAAA,MAAM,sBAAsB,mGAuH3B,CAAC;AAGF,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAClC,iBAAwB,cAAc,CAAC,CAAC,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAE1E;kBAFuB,cAAc;;;eAAd,cAAc"}
1
+ {"version":3,"file":"ComboboxOption.d.ts","sourceRoot":"","sources":["../src/ComboboxOption.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAMhE,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,kBAAkB,CAAC;AA8E1B;;GAEG;AACH,QAAA,MAAM,sBAAsB,mGAmI3B,CAAC;AAGF,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAClC,iBAAwB,cAAc,CAAC,CAAC,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAE1E;kBAFuB,cAAc;;;eAAd,cAAc"}
@@ -1,7 +1,6 @@
1
1
  /// <reference types="jest" />
2
2
  import React from 'react';
3
- import { BaseComboboxProps, ComboboxMultiselectProps } from './Combobox.types';
4
- import { OptionObject } from './util';
3
+ import { BaseComboboxProps, ComboboxMultiselectProps, OptionObject } from './Combobox.types';
5
4
  export interface NestedObject {
6
5
  label: string;
7
6
  children: Array<string | OptionObject>;
@@ -56,8 +55,8 @@ export declare function renderCombobox<T extends Select>(select?: T, props?: ren
56
55
  clearButtonEl: HTMLElement | null;
57
56
  container: HTMLElement;
58
57
  baseElement: HTMLElement;
59
- debug: (baseElement?: DocumentFragment | HTMLElement | (DocumentFragment | HTMLElement)[] | undefined, maxLength?: number | undefined, options?: import("pretty-format/build/types").OptionsReceived | undefined) => void;
60
- rerender: (ui: React.ReactElement<any, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)> | null) | (new (props: any) => React.Component<any, any, any>)>) => void;
58
+ debug: (baseElement?: HTMLElement | DocumentFragment | (HTMLElement | DocumentFragment)[] | undefined, maxLength?: number | undefined, options?: import("pretty-format/build/types").OptionsReceived | undefined) => void;
59
+ rerender: (ui: React.ReactElement<any, string | React.JSXElementConstructor<any>>) => void;
61
60
  unmount: () => boolean;
62
61
  asFragment: () => DocumentFragment;
63
62
  getByLabelText: (text: import("@testing-library/react").Matcher, options?: import("@testing-library/react").SelectorMatcherOptions | undefined, waitForElementOptions?: unknown) => HTMLElement;
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxTestUtils.d.ts","sourceRoot":"","sources":["../src/ComboboxTestUtils.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,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,CAa9C,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,YAAY,CA2B9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,0DAkC1B,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;;yBAhCjD,MAAM,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiE7C;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,cAAe,OAAO,YAAmC,CAAC;AA8B7E,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,IAAI,CAAC;QACb,UAAU,QAAQ,CAAC,CAAC;YAClB,cAAc,IAAI,CAAC,CAAC;SACrB;KACF;CACF"}
1
+ {"version":3,"file":"ComboboxTestUtils.d.ts","sourceRoot":"","sources":["../src/ComboboxTestUtils.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,EACb,MAAM,kBAAkB,CAAC;AAI1B,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,CAgB9C,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,YAAY,CA+B9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,0DAyC1B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAC7C,MAAM,GAAE,CAAiB,EACzB,KAAK,CAAC,EAAE,mBAAmB;iCAsDS,mBAAmB;;gBAetB,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;AA8B7E,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,IAAI,CAAC;QACb,UAAU,QAAQ,CAAC,CAAC;YAClB,cAAc,IAAI,CAAC,CAAC;SACrB;KACF;CACF"}
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import n,{createContext as o,useContext as e,useCallback as r,useMemo as t,useRef as i,useEffect as a,useState as l}from"react";import{kebabCase as c,isArray as u,isNull as s,isString as d,isUndefined as b,clone as p,isEqual as g}from"lodash";import{Label as m,Description as f}from"@leafygreen-ui/typography";import h from"@leafygreen-ui/popover";import{useIdAllocator as v,useForwardedRef as x,useDynamicRefs as y,usePrevious as w,useViewportSize as k,useEventListener as C}from"@leafygreen-ui/hooks";import N from"@leafygreen-ui/interaction-ring";import O,{isComponentGlyph as j}from"@leafygreen-ui/icon";import M from"@leafygreen-ui/icon-button";import{css as E,cx as I,keyframes as S}from"@leafygreen-ui/emotion";import{uiColors as z}from"@leafygreen-ui/palette";import{isComponentType as P,keyMap as D,createDataProp as L,consoleOnce as F}from"@leafygreen-ui/lib";import A from"@leafygreen-ui/checkbox";import{jsx as T}from"@emotion/react";import R from"@leafygreen-ui/inline-definition";import{fontFamilies as W}from"@leafygreen-ui/tokens";function B(n,o){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);o&&(r=r.filter((function(o){return Object.getOwnPropertyDescriptor(n,o).enumerable}))),e.push.apply(e,r)}return e}function G(n){for(var o=1;o<arguments.length;o++){var e=null!=arguments[o]?arguments[o]:{};o%2?B(Object(e),!0).forEach((function(o){V(n,o,e[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):B(Object(e)).forEach((function(o){Object.defineProperty(n,o,Object.getOwnPropertyDescriptor(e,o))}))}return n}function K(n){return(K="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(n)}function V(n,o,e){return o in n?Object.defineProperty(n,o,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[o]=e,n}function H(){return(H=Object.assign||function(n){for(var o=1;o<arguments.length;o++){var e=arguments[o];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r])}return n}).apply(this,arguments)}function U(n,o){if(null==n)return{};var e,r,t=function(n,o){if(null==n)return{};var e,r,t={},i=Object.keys(n);for(r=0;r<i.length;r++)e=i[r],o.indexOf(e)>=0||(t[e]=n[e]);return t}(n,o);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(n);for(r=0;r<i.length;r++)e=i[r],o.indexOf(e)>=0||Object.prototype.propertyIsEnumerable.call(n,e)&&(t[e]=n[e])}return t}function X(n,o){return o||(o=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(o)}}))}function Z(n,o){return function(n){if(Array.isArray(n))return n}(n)||function(n,o){var e=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null==e)return;var r,t,i=[],a=!0,l=!1;try{for(e=e.call(n);!(a=(r=e.next()).done)&&(i.push(r.value),!o||i.length!==o);a=!0);}catch(n){l=!0,t=n}finally{try{a||null==e.return||e.return()}finally{if(l)throw t}}return i}(n,o)||$(n,o)||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 Y(n){return function(n){if(Array.isArray(n))return q(n)}(n)||function(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}(n)||$(n)||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 $(n,o){if(n){if("string"==typeof n)return q(n,o);var e=Object.prototype.toString.call(n).slice(8,-1);return"Object"===e&&n.constructor&&(e=n.constructor.name),"Map"===e||"Set"===e?Array.from(n):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?q(n,o):void 0}}function q(n,o){(null==o||o>n.length)&&(o=n.length);for(var e=0,r=new Array(o);e<o;e++)r[e]=n[e];return r}var J,Q,_,nn,on,en,rn,tn,an,ln,cn=o({multiselect:!1,darkMode:!1,size:"default",withIcons:!1,disabled:!1}),un=G(G({},D),{},{Backspace:8,Delete:46}),sn=function(o,e,r){if(e&&r){var t=new RegExp(e,"gi"),i=o.search(t),a=i+e.length,l=o.split(""),c=l.slice(0,i).join(""),u=l.slice(a).join(""),s=l.slice(i,a).join(""),d=n.createElement(r,null,s);return T(n.Fragment,null,c,d,u)}return T(n.Fragment,null,o)},dn=function(n){var o,e=n.value,r=n.displayName;return{value:null!=e?e:c(r),displayName:null!==(o=null!=r?r:e)&&void 0!==o?o:""}},bn=function o(e){return n.Children.toArray(e).reduce((function(n,e){if(P(e,"ComboboxOption")){var r=dn(e.props),t=r.value,i=r.displayName,a=e.props.glyph;return[].concat(Y(n),[{value:t,displayName:i,hasGlyph:!!a}])}if(P(e,"ComboboxGroup")){var l=e.props.children;if(l)return[].concat(Y(n),Y(o(l)))}}),[])},pn=E(Q||(Q=X(["\n display: inline-flex;\n gap: 8px;\n justify-content: start;\n align-items: inherit;\n"]))),gn=E(_||(_=X(["\n pointer-events: none;\n"]))),mn=function(n){return E(nn||(nn=X(["\n font-weight: ",";\n"])),n?"bold":"normal")},fn=n.forwardRef((function(o,i){var a=o.displayName,l=o.glyph,c=o.isSelected,u=o.isFocused,s=o.setSelected,d=o.className,b=e(cn),p=b.multiselect,g=b.darkMode,m=b.withIcons,f=b.inputValue,h=v({prefix:"combobox-option-text"}),y=x(i,null),w=r((function(n){n.stopPropagation(),n.target!==y.current&&"INPUT"!==n.target.tagName||s()}),[y,s]),k=t((function(){if(l){if(j(l)||P(l,"Icon"))return l;console.error("`ComboboxOption` instance did not render icon because it is not a known glyph element.",l)}}),[l]),C=t((function(){if(p){var o=T(A,{label:"","aria-labelledby":h,checked:c,tabIndex:-1,animate:!1});return T(n.Fragment,null,T("span",{className:I(pn,gn)},m?k:o,T("span",{id:h,className:mn(c)},sn(a,f,"strong"))),m&&o)}return T(n.Fragment,null,T("span",{className:I(pn,gn)},k,T("span",{className:mn(c)},sn(a,f,"strong"))),c&&T(O,{glyph:"Checkmark",color:g?z.blue.light1:z.blue.base}))}),[p,k,c,a,f,g,h,m]);return T("li",{ref:y,role:"option","aria-selected":u,"aria-label":a,tabIndex:-1,className:I(E(J||(J=X(["\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n list-style: none;\n color: inherit;\n cursor: pointer;\n overflow: hidden;\n font-size: var(--lg-combobox-item-font-size);\n line-height: var(--lg-combobox-item-line-height);\n padding: var(--lg-combobox-item-padding-y) var(--lg-combobox-item-padding-x);\n\n &:before {\n content: '';\n position: absolute;\n left: 0;\n width: 3px;\n height: var(--lg-combobox-item-wedge-height);\n background-color: transparent;\n border-radius: 0 2px 2px 0;\n transform: scaleY(0.3);\n transition: 150ms ease-in-out;\n transition-property: transform, background-color;\n }\n\n &:hover {\n outline: none;\n background-color: var(--lg-combobox-item-hover-color);\n }\n\n &[aria-selected='true'] {\n outline: none;\n background-color: var(--lg-combobox-item-active-color);\n\n &:before {\n background-color: var(--lg-combobox-item-wedge-color);\n transform: scaleY(1);\n }\n }\n"]))),d),onClick:w,onKeyPress:w},C)}));function hn(n){throw Error("`ComboboxOption` must be a child of a `Combobox` instance")}fn.displayName="ComboboxOption",hn.displayName="ComboboxOption";var vn,xn,yn,wn,kn,Cn,Nn,On,jn,Mn,En,In,Sn,zn,Pn,Dn,Ln,Fn,An,Tn,Rn,Wn,Bn,Gn=function(n){var o,e,r=n.darkMode,t=n.size;switch(o=r?E(on||(on=X([""]))):E(en||(en=X(["\n --lg-combobox-chip-text-color: ",";\n --lg-combobox-chip-icon-color: ",";\n --lg-combobox-chip-background-color: ",";\n --lg-combobox-chip-hover-color: ",";\n --lg-combobox-chip-focus-color: ",";\n "])),z.gray.dark3,z.gray.dark2,z.gray.light2,z.gray.light1,z.blue.light2),t){case"default":e=E(rn||(rn=X(["\n --lg-combobox-chip-height: 24px;\n --lg-combobox-chip-border-radius: 4px;\n --lg-combobox-chip-font-size: 14px;\n --lg-combobox-chip-line-height: 20px;\n --lg-combobox-chip-padding-x: 6px;\n "])))}return I(o,e,E(tn||(tn=X(["\n display: inline-flex;\n align-items: center;\n overflow: hidden;\n white-space: nowrap;\n height: var(--lg-combobox-chip-height);\n font-size: var(--lg-combobox-chip-font-size);\n line-height: var(--lg-combobox-chip-line-height);\n border-radius: var(--lg-combobox-chip-border-radius);\n color: var(--lg-combobox-chip-text-color);\n background-color: var(--lg-combobox-chip-background-color);\n\n // TODO - refine these styles\n /* &:focus, */\n &:focus-within {\n background-color: var(--lg-combobox-chip-focus-color);\n }\n "]))))},Kn=E(an||(an=X(["\n padding-inline: var(--lg-combobox-chip-padding-x);\n"]))),Vn=E(ln||(ln=X(["\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n outline: none;\n border: none;\n background-color: transparent;\n color: var(--lg-combobox-chip-icon-color);\n cursor: pointer;\n transition: background-color 100ms ease-in-out;\n\n &:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 1px;\n background-color: var(--lg-combobox-chip-hover-color);\n }\n\n &:hover {\n background-color: var(--lg-combobox-chip-hover-color);\n }\n"]))),Hn=n.forwardRef((function(n,o){var r=n.displayName,l=n.isFocused,c=n.onRemove,u=n.onFocus,s=e(cn),d=s.darkMode,b=s.size,p=s.disabled,g=s.chipTruncationLocation,m=void 0===g?"end":g,f=s.chipCharacterLimit,h=void 0===f?12:f,v=!!h&&!!m&&"none"!==m&&r.length>h,x=i(null),y=t((function(){if(v){var n=h-3;switch(m){case"start":return"…"+r.substring(r.length-n).trim();case"middle":return r.substring(0,n/2).trim()+"…"+r.substring(r.length-n/2).trim();case"end":return r.substring(0,n).trim()+"…";default:return r}}return!1}),[h,m,r,v]);a((function(){var n;l&&!p&&(null==x||null===(n=x.current)||void 0===n||n.focus())}),[p,o,l]);var w=L("combobox-chip");return T("span",H({role:"option","aria-selected":l,"data-test-id":"lg-combobox-chip"},w.prop,{ref:o,className:Gn({darkMode:d,size:b}),onClick:function(n){var o;null!==(o=x.current)&&void 0!==o&&o.contains(n.target)||u()},tabIndex:-1}),T("span",{className:Kn},y?T(R,{definition:r,align:"bottom"},y):r),T("button",{"aria-label":"Deselect ".concat(r),"aria-disabled":p,disabled:p,ref:x,className:Vn,onClick:function(){p||c()},onKeyDown:function(n){p||n.keyCode!==un.Delete&&n.keyCode!==un.Backspace&&n.keyCode!==un.Enter&&n.keyCode!==un.Space||c()}},T(O,{glyph:"X"})))}));Hn.displayName="Chip";var Un,Xn,Zn=function(n){var o=n.darkMode,e=n.size,r=n.overflow;return I(function(n){return n?E(vn||(vn=X([""]))):E(xn||(xn=X(["\n --lg-combobox-color-error: ",";\n --lg-combobox-text-color: ",";\n --lg-combobox-text-color-disabled: ",";\n\n --lg-combobox-background-color: ",";\n --lg-combobox-background-color-focus: ",";\n --lg-combobox-background-color-disabled: ",";\n\n --lg-combobox-border-color: ",";\n --lg-combobox-border-color-disabled: ",";\n --lg-combobox-border-color-error: ",";\n\n --lg-combobox-shadow: 0px 1px 2px rgba(6, 22, 33, 0.3);\n --lg-combobox-shadow-focus: 0px 4px 4px rgba(6, 22, 33, 0.3);\n "])),z.red.base,z.gray.dark3,z.gray.dark1,z.gray.light3,z.white,z.gray.light2,z.gray.base,z.gray.light1,z.red.base)}(o),function(n){switch(n){case"default":return E(yn||(yn=X(["\n --lg-combobox-padding-y: 5px;\n --lg-combobox-padding-x: 7px;\n --lg-combobox-height: 24px;\n --lg-combobox-font-size: 14px;\n --lg-combobox-line-height: 20px;\n --lg-combobox-border-radius: 3px;\n --lg-combobox-icon-height: 16px;\n "])))}}(e),E(wn||(wn=X(["\n --lg-combobox-width: ",";\n --lg-combobox-padding: var(--lg-combobox-padding-y)\n var(--lg-combobox-padding-x) var(--lg-combobox-padding-y)\n ",";\n width: var(--lg-combobox-width);\n "])),"expand-x"===r?"unset":"100%","scroll-x"===r?"0":"var(--lg-combobox-padding-x)"))},Yn=E(kn||(kn=X(["\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n padding: var(--lg-combobox-padding);\n color: var(--lg-combobox-text-color);\n background-color: var(--lg-combobox-background-color);\n box-shadow: var(--lg-combobox-shadow);\n border: 1px solid var(--lg-combobox-border-color);\n border-radius: var(--lg-combobox-border-radius);\n width: var(--lg-combobox-width);\n cursor: text;\n transition: 150ms ease-in-out;\n transition-property: background-color, box-shadow;\n min-width: 256px;\n\n &:focus-within {\n background-color: var(--lg-combobox-background-color-focus);\n box-shadow: var(--lg-combobox-shadow-focus);\n }\n\n &[data-disabled='true'] {\n color: var(--lg-combobox-text-color-disabled);\n background-color: var(--lg-combobox-background-color-disabled);\n border-color: var(--lg-combobox-border-color-disabled);\n box-shadow: unset;\n cursor: not-allowed;\n }\n\n &[data-state='error'] {\n border-color: var(--lg-combobox-border-color-error);\n }\n"]))),$n=E(Cn||(Cn=X(["\n width: var(--lg-combobox-width);\n"]))),qn=function(n){var o=n.state;return n.darkMode?{hovered:"error"===o?z.red.dark2:void 0}:{hovered:"error"===o?z.red.light3:void 0}},Jn=function(n){var o,e=n.overflow,r=n.isOpen,t=n.selection,i=n.value,a=u(t)&&t.length>0,l=null!==(o=null==i?void 0:i.length)&&void 0!==o?o:0,c=E(Nn||(Nn=X(["\n flex-grow: 1;\n width: var(--lg-combobox-width);\n\n --lg-combobox-input-width: ",";\n "])),a?"".concat(l,"ch"):"100%");switch(e){case"scroll-x":return E(On||(On=X(["\n ","\n display: block;\n height: var(--lg-combobox-height);\n white-space: nowrap;\n overflow-x: scroll;\n scroll-behavior: smooth;\n scrollbar-width: none;\n /*\n * Immediate transition in, slow transition out. \n * '-in' transition is handled by `scroll-behavior` \n */\n --lg-combobox-input-transition: width ease-in-out\n ",";\n\n &::-webkit-scrollbar {\n display: none;\n }\n\n & > * {\n margin-inline: 2px;\n\n &:first-child:not(input) {\n margin-inline-start: 0;\n }\n\n &:last-child:not(input) {\n margin-inline-end: 0;\n }\n }\n "],["\n ","\n display: block;\n height: var(--lg-combobox-height);\n white-space: nowrap;\n overflow-x: scroll;\n scroll-behavior: smooth;\n scrollbar-width: none;\n /*\n * Immediate transition in, slow transition out. \n * '-in' transition is handled by \\`scroll-behavior\\` \n */\n --lg-combobox-input-transition: width ease-in-out\n ",";\n\n &::-webkit-scrollbar {\n display: none;\n }\n\n & > * {\n margin-inline: 2px;\n\n &:first-child:not(input) {\n margin-inline-start: 0;\n }\n\n &:last-child:not(input) {\n margin-inline-end: 0;\n }\n }\n "])),c,r?"0":"100ms");case"expand-x":return E(jn||(jn=X(["\n ","\n display: flex;\n gap: 4px;\n flex-wrap: nowrap;\n white-space: nowrap;\n height: var(--lg-combobox-height);\n --lg-combobox-input-transition: none;\n "])),c);case"expand-y":return E(Mn||(Mn=X(["\n ","\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n overflow-x: visible;\n min-height: var(--lg-combobox-height);\n "])),c)}},Qn=E(En||(En=X(["\n border: none;\n cursor: inherit;\n background-color: inherit;\n box-sizing: content-box;\n padding: 0;\n margin: 0;\n text-overflow: ellipsis;\n line-height: var(--lg-combobox-line-height);\n height: var(--lg-combobox-height);\n width: var(--lg-combobox-input-width, 0);\n transition: var(--lg-combobox-input-transition);\n\n &:focus {\n outline: none;\n }\n"]))),_n=E(In||(In=X(["\n // Add a negative margin so the button takes up the same space as the regular icons\n margin-block: calc(var(--lg-combobox-icon-height) / 2 - 100%);\n"]))),no=E(Sn||(Sn=X(["\n font-size: var(--lg-combobox-font-size);\n line-height: var(--lg-combobox-line-height);\n color: var(--lg-combobox-color-error);\n padding-top: var(--lg-combobox-padding-y);\n"]))),oo=E(zn||(zn=X(["\n margin-inline-end: calc(var(--lg-combobox-padding-x) / 2);\n"]))),eo=S(Pn||(Pn=X(["\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n"]))),ro=E(Dn||(Dn=X(["\n animation: "," 1.5s linear infinite;\n"])),eo),to=function(n){var o,e,r=n.darkMode,t=n.size,i=n.width,a=void 0===i?384:i;switch(o=r?E(Ln||(Ln=X([""]))):E(Fn||(Fn=X(["\n --lg-combobox-menu-color: ",";\n --lg-combobox-menu-message-color: ",";\n --lg-combobox-menu-background-color: ",";\n --lg-combobox-menu-shadow: 0px 3px 7px rgba(0, 0, 0, 0.25);\n --lg-combobox-item-hover-color: ",";\n --lg-combobox-item-active-color: ",";\n --lg-combobox-item-wedge-color: ",";\n "])),z.gray.dark3,z.gray.dark1,z.white,z.gray.light2,z.blue.light3,z.blue.base),t){case"default":e=E(An||(An=X(["\n --lg-combobox-menu-border-radius: 4px;\n --lg-combobox-item-height: 36px;\n --lg-combobox-item-padding-y: 8px;\n --lg-combobox-item-padding-x: 12px;\n --lg-combobox-item-font-size: 14px;\n --lg-combobox-item-line-height: 21px;\n --lg-combobox-item-wedge-height: 22px;\n "])))}return I(o,e,E(Tn||(Tn=X(["\n width: ","px;\n border-radius: var(--lg-combobox-menu-border-radius);\n\n & > * {\n border-radius: inherit;\n }\n "])),a))},io=function(n){var o=n.maxHeight;return E(Rn||(Rn=X(["\n position: relative;\n width: 100%;\n margin: 0;\n padding: 0;\n font-family: ",";\n color: var(--lg-combobox-menu-color);\n background-color: var(--lg-combobox-menu-background-color);\n box-shadow: var(--lg-combobox-menu-shadow);\n border-radius: inherit;\n overflow: auto;\n min-height: var(--lg-combobox-item-height);\n max-height: ","px;\n scroll-behavior: smooth;\n"])),W.default,o)},ao=E(Wn||(Wn=X(["\n position: relative;\n margin: 0;\n padding: 0;\n"]))),lo=E(Bn||(Bn=X(["\n display: inline-flex;\n align-items: center;\n gap: 8px;\n font-size: var(--lg-combobox-item-font-size);\n color: var(--lg-combobox-menu-message-color);\n padding: var(--lg-combobox-item-padding-y) var(--lg-combobox-item-padding-x);\n\n & > svg {\n width: 1em;\n height: 1em;\n }\n"]))),co=function(n){return E(Un||(Un=X(["\n --lg-combobox-group-label-color: ",";\n --lg-combobox-group-border-color: ",";\n padding-top: 8px;\n border-bottom: 1px solid var(--lg-combobox-group-border-color);\n"])),n?z.gray.light1:z.gray.dark1,n?z.gray.dark1:z.gray.light1)},uo=E(Xn||(Xn=X(["\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: bold;\n text-transform: uppercase;\n letter-spacing: 0.4px;\n color: var(--lg-combobox-group-label-color);\n"])));function so(o){var r=o.label,t=o.className,i=o.children,a=e(cn).darkMode,l=v({prefix:"combobox-group"});return n.Children.count(i)>0?T("div",{className:I(co(a),t)},T("div",{className:uo,id:l},r),T("div",{role:"group","aria-labelledby":l},i)):T(n.Fragment,null)}function bo(n){throw Error("`ComboboxGroup` must be a child of a `Combobox` instance")}bo.displayName="ComboboxGroup";var po=["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"];function go(o){var e=o.children,c=o.label,x=o.description,j=o.placeholder,E=void 0===j?"Select":j,S=o["aria-label"],D=o.disabled,L=void 0!==D&&D,A=o.size,R=void 0===A?"default":A,W=o.darkMode,B=void 0!==W&&W,V=o.state,X=void 0===V?"none":V,Y=o.errorMessage,$=o.searchState,q=void 0===$?"unset":$,J=o.searchEmptyMessage,Q=void 0===J?"No results found":J,_=o.searchErrorMessage,nn=void 0===_?"Could not get results!":_,on=o.searchLoadingMessage,en=void 0===on?"Loading results...":on,rn=o.filteredOptions,tn=o.onFilter,an=o.clearable,ln=void 0===an||an,sn=o.onClear,pn=o.overflow,gn=void 0===pn?"expand-y":pn,mn=o.multiselect,hn=void 0!==mn&&mn,vn=o.initialValue,xn=o.onChange,yn=o.value,wn=o.chipTruncationLocation,kn=o.chipCharacterLimit,Cn=void 0===kn?12:kn,Nn=o.className,On=o.usePortal,jn=void 0===On||On,Mn=o.portalClassName,En=o.portalContainer,In=o.scrollContainer,Sn=o.popoverZIndex,zn=U(o,po),Pn=y({prefix:"option"}),Dn=y({prefix:"chip"}),Ln=v({prefix:"combobox-input"}),Fn=v({prefix:"combobox-label"}),An=v({prefix:"combobox-menu"}),Tn=i(null),Rn=i(null),Wn=i(null),Bn=i(null),Gn=i(null),Kn=Z(l(!1),2),Vn=Kn[0],Un=Kn[1],Xn=w(Vn),eo=Z(l(null),2),co=eo[0],uo=eo[1],bo=Z(l(null),2),go=bo[0],mo=bo[1],fo=w(go),ho=Z(l(""),2),vo=ho[0],xo=ho[1],yo=w(vo),wo=Z(l(null),2),ko=wo[0],Co=wo[1],No=!s(go)&&(u(go)&&go.length>0||d(go)),Oo=r((function(n){return!hn||"string"!=typeof n&&"number"!=typeof n?!hn&&u(n)&&F.error("Error in Combobox: multiselect is set to `false`, but recieved an Array value"):F.error("Error in Combobox: multiselect is set to `true`, but recieved a ".concat(K(n),' value: "').concat(n,'"')),hn&&u(n)}),[hn]),jo=r((function(n){!L&&Bn&&Bn.current&&(Bn.current.focus(),b(n)||Bn.current.setSelectionRange(n,n))}),[L]),Mo=r((function(n){if(Oo(go)){var o=p(go);s(n)?o.length=0:go.includes(n)?o.splice(o.indexOf(n),1):(o.push(n),xo("")),mo(o),null==xn||xn(o)}else{var e=n;mo(e),null==xn||xn(e)}}),[Oo,xn,go]),Eo=function(){Wn&&Wn.current&&(Wn.current.scrollLeft=Wn.current.scrollWidth)},Io=hn&&u(go)&&go.length>0?void 0:E,So=t((function(){return bn(e)}),[e]),zo=r((function(n){var o,e;return n?null!==(o=null===(e=So.find((function(o){return o.value===n})))||void 0===e?void 0:e.displayName)&&void 0!==o?o:n:""}),[So]),Po=r((function(n){var o="string"==typeof n?n:n.value;return rn&&rn.length>0?rn.includes(o):("string"==typeof n?zo(o):n.displayName).toLowerCase().includes(vo.toLowerCase())}),[rn,zo,vo]),Do=t((function(){return So.filter(Po)}),[So,Po]),Lo=r((function(n){return!!n&&!!So.find((function(o){return o.value===n}))}),[So]),Fo=r((function(n){return Do?Do.findIndex((function(o){return o.value===n})):-1}),[Do]),Ao=r((function(n){if(Do&&Do.length>=n){var o=Do[n];return o?o.value:void 0}}),[Do]),To=r((function(){return Oo(go)?go.findIndex((function(n){var o,e;return null===(o=Dn(n))||void 0===o||null===(e=o.current)||void 0===e?void 0:e.contains(document.activeElement)})):-1}),[Dn,Oo,go]),Ro=r((function(){var n,o,e,r=null===(n=Bn.current)||void 0===n?void 0:n.contains(document.activeElement),t=null===(o=Rn.current)||void 0===o?void 0:o.contains(document.activeElement),i=Oo(go)&&go.some((function(n){var o,e;return null===(o=Dn(n))||void 0===o||null===(e=o.current)||void 0===e?void 0:e.contains(document.activeElement)})),a=function(){return Oo(go)?go.findIndex((function(n){var o,e;return null===(o=Dn(n))||void 0===o||null===(e=o.current)||void 0===e?void 0:e.contains(document.activeElement)})):-1};return Oo(go)&&i?0===a()?"FirstChip":a()===go.length-1?"LastChip":"MiddleChip":r?"Input":t?"ClearButton":null!==(e=Tn.current)&&void 0!==e&&e.contains(document.activeElement)?"Combobox":void 0}),[Dn,Oo,go]),Wo=r((function(n){var o,e=null!==(o=null==Do?void 0:Do.length)&&void 0!==o?o:0,r=e-1>0?e-1:0,t=Fo(co);switch(n&&Vn&&(Co(null),jo()),n){case"next":var i=Ao(t+1<e?t+1:0);uo(null!=i?i:null);break;case"prev":var a=Ao(t-1>=0?t-1:r);uo(null!=a?a:null);break;case"last":var l=Ao(r);uo(null!=l?l:null);break;case"first":default:var c=Ao(0);uo(null!=c?c:null)}}),[co,Fo,Ao,Vn,jo,null==Do?void 0:Do.length]),Bo=r((function(n,o){if(Oo(go))switch(n){case"next":var e=null!=o?o:To(),r=e+1<go.length?e+1:go.length-1,t=go[r];Co(t);break;case"prev":var i=null!=o?o:To(),a=i>0?i-1:i<0?go.length-1:0,l=go[a];Co(l);break;case"first":var c=go[0];Co(c);break;case"last":var u=go[go.length-1];Co(u);break;default:Co(null)}}),[To,Oo,go]),Go=r((function(n,o){n&&uo(null);var e=Ro();switch(n){case"right":switch(e){case"Input":var r,t,i;if((null===(r=Bn.current)||void 0===r?void 0:r.selectionEnd)===(null===(t=Bn.current)||void 0===t?void 0:t.value.length))null===(i=Rn.current)||void 0===i||i.focus();break;case"LastChip":o.preventDefault(),jo(0),Bo(null);break;case"FirstChip":case"MiddleChip":Bo("next")}break;case"left":switch(e){case"ClearButton":var a;o.preventDefault(),jo(null==Bn||null===(a=Bn.current)||void 0===a?void 0:a.value.length);break;case"Input":case"MiddleChip":case"LastChip":if(Oo(go)){var l;if("Input"===e&&0!==(null===(l=Bn.current)||void 0===l?void 0:l.selectionStart))break;Bo("prev")}}break;default:Bo(null)}}),[Ro,Oo,go,jo,Bo]);a((function(){vo!==yo&&Wo("first")}),[vo,Vn,yo,Wo]),a((function(){if(co){var n=Pn(co);if(n&&n.current&&Gn.current){var o=n.current.offsetTop,e=Gn.current,r=e.scrollTop;(o>e.offsetHeight||o<r)&&(Gn.current.scrollTop=o)}}}),[co,Pn]);var Ko=r((function(o){return n.Children.map(o,(function(n){if(P(n,"ComboboxOption")){var o=dn(n.props),e=o.value,r=o.displayName;if(Po(e)){var t=n.props,i=t.className,a=t.glyph,l=So.findIndex((function(n){return n.value===e})),c=co===e,u=Oo(go)?go.includes(e):go===e,s=Pn(e);return T(fn,{value:e,displayName:r,isFocused:c,isSelected:u,setSelected:function(){uo(e),Mo(e),jo(),e===go&&$o()},glyph:a,className:i,index:l,ref:s})}}else if(P(n,"ComboboxGroup")){var d=Ko(n.props.children);if(d&&(null==d?void 0:d.length)>0)return T(so,{label:n.props.label,className:n.props.className},Ko(d))}}))}),[So,co,Pn,Oo,Po,go,jo,Mo]),Vo=t((function(){return Ko(e)}),[e,Ko]),Ho=t((function(){if(Oo(go))return go.filter(Lo).map((function(n,o){var e=zo(n),r=ko===n,t=Dn(n);return T(Hn,{key:n,displayName:e,isFocused:r,onRemove:function(){Bo("next",o),Mo(n)},onFocus:function(){Co(n)},ref:t})}))}),[Oo,go,Lo,zo,ko,Dn,Bo,Mo]),Uo=t((function(){return T(n.Fragment,null,ln&&No&&T(M,{"aria-label":"Clear selection","aria-disabled":L,disabled:L,ref:Rn,onClick:function(n){L||(Mo(null),null==sn||sn(n),null==tn||tn(""),Vn||qo())},onFocus:re,className:_n},T(O,{glyph:"XWithCircle"})),T(O,"error"===X?{glyph:"Warning",color:z.red.base,className:oo}:{glyph:"CaretDown",className:oo}))}),[ln,No,L,X,Mo,sn,tn,Vn]),Xo=t((function(){return So.some((function(n){return n.hasGlyph}))}),[So]),Zo=r((function(){if(!Oo(go)&&go===fo){var n=Do.find((function(n){return n.displayName===vo||n.value===vo}));if(n&&!yn)mo(n.value);else{var o,e=null!==(o=zo(go))&&void 0!==o?o:"";xo(e)}}}),[zo,vo,Oo,fo,go,yn,Do]),Yo=r((function(){if(No){if(Oo(go))Eo();else if(!Oo(go)){var n,o=null!==(n=zo(go))&&void 0!==n?n:"";xo(o),$o()}}else xo("")}),[No,zo,Oo,go]);a((function(){if(vn)if(u(vn)){var n,o=null!==(n=vn.filter((function(n){return Lo(n)})))&&void 0!==n?n:[];mo(o)}else Lo(vn)&&mo(vn);else mo(function(n){return n?[]:null}(hn))}),[]),a((function(){if(!b(yn)&&yn!==yo)if(s(yn))mo(null);else if(Oo(yn)){var n=yn.filter(Lo);mo(n)}else mo(Lo(yn)?yn:null)}),[Oo,Lo,yo,yn]),a((function(){g(go,fo)||Yo()}),[Yo,fo,go]),a((function(){Vn||Xn===Vn||Zo()}),[Vn,Xn,Zo]);var $o=function(){return Un(!1)},qo=function(){return Un(!0)},Jo=Z(l(0),2),Qo=Jo[0],_o=Jo[1];a((function(){var n,o;_o(null!==(n=null===(o=Tn.current)||void 0===o?void 0:o.clientWidth)&&void 0!==n?n:0)}),[Tn,Vn,co,go]);var ne=t((function(){switch(q){case"loading":return T("span",{className:lo},T(O,{glyph:"Refresh",color:z.blue.base,className:ro}),en);case"error":return T("span",{className:lo},T(O,{glyph:"Warning",color:z.red.base}),nn);case"unset":default:return Vo&&Vo.length>0?T("ul",{className:ao},Vo):T("span",{className:lo},Q)}}),[Vo,Q,nn,en,q]),oe=k(),ee=t((function(){if(oe&&Tn.current&&Gn.current){var n=Tn.current.getBoundingClientRect(),o=n.top,e=n.bottom,r=Math.max(oe.height-e,o);return Math.min(274,r-8)}return 274}),[oe,Tn,Gn]);a((function(){}),[co]);var re=function(){uo(null)};C("mousedown",(function(n){var o,e,r=n.target;(null===(o=Gn.current)||void 0===o?void 0:o.contains(r))||(null===(e=Tn.current)||void 0===e?void 0:e.contains(r))||!1||Un(!1)}));var te=G({popoverZIndex:Sn},jn?{usePortal:jn,portalClassName:Mn,portalContainer:En,scrollContainer:In}:{usePortal:jn});return T(cn.Provider,{value:{multiselect:hn,darkMode:B,size:R,withIcons:Xo,disabled:L,chipTruncationLocation:wn,chipCharacterLimit:Cn,inputValue:vo}},T("div",H({className:I(Zn({darkMode:B,size:R,overflow:gn}),Nn)},zn),T("div",null,c&&T(m,{id:Fn,htmlFor:Ln},c),x&&T(f,null,x)),T(N,{className:$n,disabled:L,color:qn({state:X,darkMode:B})},T("div",{ref:Tn,role:"combobox","aria-expanded":Vn,"aria-controls":An,"aria-owns":An,tabIndex:-1,className:Yn,onMouseDown:function(n){L&&n.preventDefault()},onClick:function(n){if(n.target!==Bn.current){var o=0;if(Bn.current)o=n.nativeEvent.offsetX>Bn.current.offsetLeft+Bn.current.clientWidth?vo.length:0;jo(o)}},onFocus:function(){Eo(),qo()},onKeyDown:function(n){var o,e,r=null===(o=Gn.current)||void 0===o?void 0:o.contains(document.activeElement);if((null===(e=Tn.current)||void 0===e?void 0:e.contains(document.activeElement))||r){if(n.ctrlKey||n.shiftKey||n.altKey)return;var t=Ro();switch(n.keyCode){case un.Tab:switch(t){case"Input":No||($o(),Wo("first"),Bo(null));break;case"LastChip":Bo(null)}break;case un.Escape:$o(),Wo("first");break;case un.Enter:document.activeElement===Bn.current&&Vn&&!s(co)?Mo(co):document.activeElement===Rn.current&&(Mo(null),jo());break;case un.Backspace:var i;Oo(go)&&0===(null===(i=Bn.current)||void 0===i?void 0:i.selectionStart)?Bo("last"):qo();break;case un.ArrowDown:Vn&&n.preventDefault(),qo(),Wo("next");break;case un.ArrowUp:Vn&&n.preventDefault(),Wo("prev");break;case un.ArrowRight:Go("right",n);break;case un.ArrowLeft:Go("left",n);break;default:Vn||qo()}}},onTransitionEnd:function(){var n,o;_o(null!==(n=null===(o=Tn.current)||void 0===o?void 0:o.clientWidth)&&void 0!==n?n:0)},"data-disabled":L,"data-state":X},T("div",{ref:Wn,className:Jn({overflow:gn,isOpen:Vn,selection:go,value:vo})},Ho,T("input",{"aria-label":null!=S?S:c,"aria-autocomplete":"list","aria-controls":An,"aria-labelledby":Fn,ref:Bn,id:Ln,className:Qn,placeholder:Io,disabled:null!=L?L:void 0,onChange:function(n){var o=n.target.value;xo(o),null==tn||tn(o)},value:vo,autoComplete:"off"})),Uo)),"error"===X&&Y&&T("div",{className:no},Y),T(h,H({active:Vn&&!L,spacing:4,align:"bottom",justify:"middle",refEl:Tn,adjustOnMutation:!0,className:to({darkMode:B,size:R,width:Qo})},te),T("div",{id:An,role:"listbox","aria-labelledby":Fn,"aria-expanded":Vn,ref:Gn,className:io({maxHeight:ee}),onMouseDownCapture:function(n){return n.preventDefault()}},ne))))}export{go as Combobox,bo as ComboboxGroup,hn as ComboboxOption};
1
+ import n,{createContext as o,useContext as e,useCallback as r,useMemo as t,useRef as i,useEffect as l,useState as a}from"react";import{isArray as c,isNull as s,isString as u,isUndefined as b,clone as d,isEqual as g}from"lodash";import{Label as p,Description as m}from"@leafygreen-ui/typography";import f from"@leafygreen-ui/popover";import{useIdAllocator as h,useForwardedRef as v,useDynamicRefs as x,usePrevious as y,useAvailableSpace as w,useEventListener as k}from"@leafygreen-ui/hooks";import C,{isComponentGlyph as O}from"@leafygreen-ui/icon";import N from"@leafygreen-ui/icon-button";import{css as z,cx as S,keyframes as D}from"@leafygreen-ui/emotion";import{uiColors as j}from"@leafygreen-ui/palette";import{isComponentType as I,createUniqueClassName as M,keyMap as E,consoleOnce as P}from"@leafygreen-ui/lib";import T from"@leafygreen-ui/checkbox";import{jsx as A}from"@emotion/react";import F from"lodash/kebabCase";import{fontFamilies as L,typeScales as R}from"@leafygreen-ui/tokens";import H from"@leafygreen-ui/inline-definition";function W(n,o){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);o&&(r=r.filter((function(o){return Object.getOwnPropertyDescriptor(n,o).enumerable}))),e.push.apply(e,r)}return e}function G(n){return G="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},G(n)}function K(n,o,e){return o in n?Object.defineProperty(n,o,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[o]=e,n}function U(){return U=Object.assign||function(n){for(var o=1;o<arguments.length;o++){var e=arguments[o];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r])}return n},U.apply(this,arguments)}function V(n,o){if(null==n)return{};var e,r,t=function(n,o){if(null==n)return{};var e,r,t={},i=Object.keys(n);for(r=0;r<i.length;r++)e=i[r],o.indexOf(e)>=0||(t[e]=n[e]);return t}(n,o);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(n);for(r=0;r<i.length;r++)e=i[r],o.indexOf(e)>=0||Object.prototype.propertyIsEnumerable.call(n,e)&&(t[e]=n[e])}return t}function B(n,o){return o||(o=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(o)}}))}function X(n,o){return function(n){if(Array.isArray(n))return n}(n)||function(n,o){var e=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null==e)return;var r,t,i=[],l=!0,a=!1;try{for(e=e.call(n);!(l=(r=e.next()).done)&&(i.push(r.value),!o||i.length!==o);l=!0);}catch(n){a=!0,t=n}finally{try{l||null==e.return||e.return()}finally{if(a)throw t}}return i}(n,o)||Y(n,o)||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 Z(n){return function(n){if(Array.isArray(n))return $(n)}(n)||function(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}(n)||Y(n)||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 Y(n,o){if(n){if("string"==typeof n)return $(n,o);var e=Object.prototype.toString.call(n).slice(8,-1);return"Object"===e&&n.constructor&&(e=n.constructor.name),"Map"===e||"Set"===e?Array.from(n):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?$(n,o):void 0}}function $(n,o){(null==o||o>n.length)&&(o=n.length);for(var e=0,r=new Array(o);e<o;e++)r[e]=n[e];return r}var q="Input",J="ClearButton",Q="FirstChip",_="LastChip",nn="MiddleChip",on="Combobox",en="Menu",rn="default",tn="large";var ln,an,cn,sn,un,bn,dn,gn,pn,mn,fn,hn,vn,xn,yn,wn,kn,Cn,On,Nn,zn,Sn,Dn,jn,In,Mn,En,Pn,Tn,An,Fn,Ln,Rn,Hn=o({multiselect:!1,darkMode:!1,size:rn,withIcons:!1,disabled:!1}),Wn=function(o,e,r){if(e&&r){var t=new RegExp(e,"gi"),i=o.matchAll(t);if(i){for(var l=o.split(""),a=0,c=Array.from(i);a<c.length;a++){var s,u=c[a],b=null!==(s=u.index)&&void 0!==s?s:-1,d=u[0],g=d.length,p=b+d+g,m=new Array(g).fill("");m[0]=n.createElement(r,{key:p},d),l.splice.apply(l,[b,g].concat(Z(m)))}return A(n.Fragment,null,l)}return A(n.Fragment,null,o)}return A(n.Fragment,null,o)},Gn=function(n){var o,e=n.value,r=n.displayName;return{value:null!=e?e:F(r),displayName:null!==(o=null!=r?r:e)&&void 0!==o?o:""}},Kn=function(n,o){if(n)return o.find((function(o){return o.value===n}))},Un=function(n,o){var e,r;return n?null!==(e=null===(r=Kn(n,o))||void 0===r?void 0:r.displayName)&&void 0!==e?e:n:""},Vn=function o(e){return n.Children.toArray(e).reduce((function(n,e){if(I(e,"ComboboxOption")){var r=Gn(e.props),t=r.value,i=r.displayName,l=e.props,a=l.glyph,c=l.disabled;return[].concat(Z(n),[{value:t,displayName:i,isDisabled:!!c,hasGlyph:!!a}])}if(I(e,"ComboboxGroup")){var s=e.props.children;if(s)return[].concat(Z(n),Z(o(s)))}}),[])},Bn=z(ln||(ln=B(["\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n list-style: none;\n color: inherit;\n cursor: pointer;\n overflow: hidden;\n font-family: ",";\n font-size: var(--lg-combobox-item-font-size);\n line-height: var(--lg-combobox-item-line-height);\n padding: var(--lg-combobox-item-padding-y) var(--lg-combobox-item-padding-x);\n\n // Left wedge\n &:before {\n content: '';\n position: absolute;\n left: 0;\n width: 3px;\n height: var(--lg-combobox-item-wedge-height);\n background-color: transparent;\n border-radius: 0 2px 2px 0;\n transform: scaleY(0.3);\n transition: 150ms ease-in-out;\n transition-property: transform, background-color;\n }\n\n &:hover {\n outline: none;\n background-color: var(--lg-combobox-item-hover-color);\n }\n\n &[aria-selected='true'] {\n outline: none;\n background-color: var(--lg-combobox-item-active-color);\n\n &:before {\n background-color: var(--lg-combobox-item-wedge-color);\n transform: scaleY(1);\n }\n }\n"])),L.legacy),Xn=z(an||(an=B(["\n cursor: not-allowed;\n color: ",";\n\n &:hover {\n background-color: inherit;\n }\n"])),j.gray.base),Zn=z(cn||(cn=B(["\n display: inline-flex;\n gap: 8px;\n justify-content: start;\n align-items: inherit;\n overflow-wrap: anywhere;\n"]))),Yn=z(sn||(sn=B(["\n pointer-events: none;\n"]))),$n=function(n){return z(un||(un=B(["\n font-weight: ",";\n"])),n?"bold":"normal")},qn=n.forwardRef((function(o,i){var l=o.displayName,a=o.glyph,c=o.isSelected,s=o.isFocused,u=o.disabled,b=o.setSelected,d=o.className,g=e(Hn),p=g.multiselect,m=g.darkMode,f=g.withIcons,x=g.inputValue,y=h({prefix:"combobox-option-text"}),w=v(i,null),k=r((function(n){n.stopPropagation(),u||n.target!==w.current&&"INPUT"!==n.target.tagName||b()}),[u,w,b]),N=t((function(){if(a){if(O(a)||I(a,"Icon"))return a;console.error("`ComboboxOption` instance did not render icon because it is not a known glyph element.",a)}}),[a]),z=t((function(){if(p){var o=A(T,{label:"","aria-labelledby":y,checked:c,tabIndex:-1,animate:!1,disabled:u});return A(n.Fragment,null,A("span",{className:S(Zn,Yn)},f?N:o,A("span",{id:y,className:$n(c)},Wn(l,x,"strong"))),f&&o)}return A(n.Fragment,null,A("span",{className:S(Zn,Yn)},N,A("span",{className:$n(c)},Wn(l,x,"strong"))),c&&A(C,{glyph:"Checkmark",color:m?j.blue.light1:j.blue.base}))}),[p,N,c,l,x,m,y,u,f]);return A("li",{ref:w,role:"option","aria-selected":s,"aria-label":l,tabIndex:-1,className:S(Bn,K({},Xn,u),d),onClick:k,onKeyDown:k},z)}));function Jn(n){throw Error("`ComboboxOption` must be a child of a `Combobox` instance")}qn.displayName="ComboboxOption",Jn.displayName="ComboboxOption";var Qn,_n,no,oo,eo,ro,to,io,lo,ao=(K(bn={},rn,R.body1.fontSize),K(bn,tn,R.body2.fontSize),bn),co=M("combobox-chip"),so=z(dn||(dn=B(["\n font-family: ",";\n font-size: var(--lg-combobox-font-size);\n line-height: var(--lg-combobox-line-height);\n"])),L.legacy),uo=function(n){var o=n.darkMode,e=n.size,r=n.overflow;return S(function(n){return n?z(gn||(gn=B([""]))):z(pn||(pn=B(["\n --lg-combobox-color-error: ",";\n --lg-combobox-text-color: ",";\n --lg-combobox-text-color-disabled: ",";\n\n --lg-combobox-background-color: ",";\n --lg-combobox-background-color-focus: ",";\n --lg-combobox-background-color-disabled: ",";\n\n --lg-combobox-border-color: ",";\n --lg-combobox-border-color-disabled: ",";\n --lg-combobox-border-color-error: ",";\n\n --lg-combobox-shadow: 0px 1px 2px rgba(6, 22, 33, 0.3);\n --lg-combobox-shadow-focus: 0px 4px 4px rgba(6, 22, 33, 0.3);\n "])),j.red.base,j.gray.dark3,j.gray.dark1,j.gray.light3,j.white,j.gray.light2,j.gray.base,j.gray.light1,j.red.base)}(o),function(n){switch(n){case rn:return z(mn||(mn=B(["\n --lg-combobox-padding-y: 5px;\n --lg-combobox-padding-x: 7px;\n --lg-combobox-height: calc(\n 36px - 2px - 2 * var(--lg-combobox-padding-y)\n );\n --lg-combobox-font-size: ","px; // TODO: update this for redesign\n --lg-combobox-line-height: ","px;\n "])),R.body1.fontSize+1,R.body1.lineHeight+1);case tn:return z(fn||(fn=B(["\n --lg-combobox-padding-y: 9px;\n --lg-combobox-padding-x: 11px;\n --lg-combobox-height: calc(\n 48px - 2px - 2 * var(--lg-combobox-padding-y)\n );\n --lg-combobox-font-size: ","px;\n --lg-combobox-line-height: ","px;\n "])),R.body2.fontSize,R.body2.lineHeight)}}(e),z(hn||(hn=B(["\n --lg-combobox-icon-height: 16px;\n --lg-combobox-border-radius: 3px;\n --lg-combobox-width: ",";\n --lg-combobox-padding: var(--lg-combobox-padding-y)\n var(--lg-combobox-padding-x) var(--lg-combobox-padding-y)\n ",";\n width: var(--lg-combobox-width);\n // TODO: Clean this up 🤮\n min-width: calc(\n ","px + var(--lg-combobox-padding-x) * 2 + 2px +\n var(--lg-combobox-icon-height)\n );\n "])),"expand-x"===r?"unset":"100%","scroll-x"===r?"0":"var(--lg-combobox-padding-x)",ao[e]))},bo=z(vn||(vn=B(["\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n padding: var(--lg-combobox-padding);\n color: var(--lg-combobox-text-color);\n background-color: var(--lg-combobox-background-color);\n box-shadow: var(--lg-combobox-shadow);\n border: 1px solid var(--lg-combobox-border-color);\n border-radius: var(--lg-combobox-border-radius);\n width: var(--lg-combobox-width);\n cursor: text;\n transition: 150ms ease-in-out;\n transition-property: background-color, box-shadow, border-color;\n\n &[data-disabled='true'] {\n color: var(--lg-combobox-text-color-disabled);\n background-color: var(--lg-combobox-background-color-disabled);\n border-color: var(--lg-combobox-border-color-disabled);\n box-shadow: unset;\n cursor: not-allowed;\n }\n\n &[data-state='error'] {\n border-color: var(--lg-combobox-border-color-error);\n }\n"]))),go=z(xn||(xn=B(["\n &:focus-within {\n border-color: transparent;\n background-color: var(--lg-combobox-background-color-focus);\n // TODO: Remove for UI refresh & Darkmode\n box-shadow: 0 0 0 3px ",", var(--lg-combobox-shadow-focus);\n }\n"])),j.focus),po=function(n){var o,e=n.overflow,r=n.isOpen,t=n.selection,i=n.size,l=n.value,a=c(t)&&t.length>0,s=null!==(o=null==l?void 0:l.length)&&void 0!==o?o:0,u=z(yn||(yn=B(["\n flex-grow: 1;\n width: var(--lg-combobox-width);\n\n --lg-combobox-input-width: ",";\n --lg-combobox-input-min-width: ","px;\n "])),a?"".concat(s*ao[i],"px"):"100%",ao[i]);switch(e){case"scroll-x":return z(wn||(wn=B(["\n ","\n display: block;\n height: var(--lg-combobox-height);\n white-space: nowrap;\n overflow-x: scroll;\n padding-left: var(--lg-combobox-padding-x);\n scroll-behavior: smooth;\n scrollbar-width: none;\n /*\n * Immediate transition in, slow transition out. \n * '-in' transition is handled by `scroll-behavior` \n */\n --lg-combobox-input-transition: width ease-in-out\n ",";\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 "],["\n ","\n display: block;\n height: var(--lg-combobox-height);\n white-space: nowrap;\n overflow-x: scroll;\n padding-left: var(--lg-combobox-padding-x);\n scroll-behavior: smooth;\n scrollbar-width: none;\n /*\n * Immediate transition in, slow transition out. \n * '-in' transition is handled by \\`scroll-behavior\\` \n */\n --lg-combobox-input-transition: width ease-in-out\n ",";\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 "])),u,r?"0":"100ms",co);case"expand-x":return z(kn||(kn=B(["\n ","\n display: flex;\n gap: 4px;\n flex-wrap: nowrap;\n white-space: nowrap;\n height: var(--lg-combobox-height);\n --lg-combobox-input-transition: none;\n "])),u);case"expand-y":return z(Cn||(Cn=B(["\n ","\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n overflow-x: visible;\n min-height: var(--lg-combobox-height);\n "])),u)}},mo=z(On||(On=B(["\n border: none;\n cursor: inherit;\n background-color: inherit;\n box-sizing: content-box;\n padding: 0;\n margin: 0;\n text-overflow: ellipsis;\n font-size: var(--lg-combobox-font-size);\n line-height: var(--lg-combobox-line-height);\n height: var(--lg-combobox-height);\n width: var(--lg-combobox-input-width, 0);\n min-width: var(--lg-combobox-input-min-width);\n transition: var(--lg-combobox-input-transition);\n\n &:focus {\n outline: none;\n }\n"]))),fo=z(Nn||(Nn=B(["\n // Add a negative margin so the button takes up the same space as the regular icons\n margin-block: calc(var(--lg-combobox-icon-height) / 2 - 100%);\n"]))),ho=z(zn||(zn=B(["\n &:focus {\n box-shadow: unset;\n &::before {\n background-color: ",";\n }\n }\n"])),j.blue.light2),vo=z(Sn||(Sn=B(["\n font-size: var(--lg-combobox-font-size);\n line-height: var(--lg-combobox-line-height);\n color: var(--lg-combobox-color-error);\n padding-top: var(--lg-combobox-padding-y);\n"]))),xo=z(Dn||(Dn=B(["\n margin-inline-end: calc(var(--lg-combobox-padding-x) / 2);\n"]))),yo=D(jn||(jn=B(["\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n"]))),wo=z(In||(In=B(["\n animation: "," 1.5s linear infinite;\n"])),yo),ko=function(n){var o,e,r=n.darkMode,t=n.size,i=n.width,l=void 0===i?384:i;switch(o=r?z(Mn||(Mn=B([""]))):z(En||(En=B(["\n --lg-combobox-menu-color: ",";\n --lg-combobox-menu-message-color: ",";\n --lg-combobox-menu-background-color: ",";\n --lg-combobox-menu-shadow: 0px 3px 7px rgba(0, 0, 0, 0.25);\n --lg-combobox-item-hover-color: ",";\n --lg-combobox-item-active-color: ",";\n --lg-combobox-item-wedge-color: ",";\n "])),j.gray.dark3,j.gray.dark1,j.white,j.gray.light2,j.blue.light3,j.blue.base),t){case rn:e=z(Pn||(Pn=B(["\n --lg-combobox-menu-border-radius: 4px;\n --lg-combobox-item-height: 36px;\n --lg-combobox-item-padding-y: 8px;\n --lg-combobox-item-padding-x: 12px;\n --lg-combobox-item-font-size: ","px; // TODO: update this\n --lg-combobox-item-line-height: ","px; // TODO: update this\n --lg-combobox-item-wedge-height: 22px;\n "])),R.body1.fontSize+1,R.body1.lineHeight+1);break;case tn:e=z(Tn||(Tn=B(["\n --lg-combobox-menu-border-radius: 4px;\n --lg-combobox-item-height: 36px;\n --lg-combobox-item-padding-y: 8px;\n --lg-combobox-item-padding-x: 12px;\n --lg-combobox-item-font-size: ","px; // TODO: update this\n --lg-combobox-item-line-height: ","px; // TODO: update this\n --lg-combobox-item-wedge-height: 22px;\n "])),R.body2.fontSize+1,R.body2.lineHeight+1)}return S(o,e,z(An||(An=B(["\n width: ","px;\n border-radius: var(--lg-combobox-menu-border-radius);\n\n & > * {\n border-radius: inherit;\n }\n "])),l))},Co=function(n){var o=n.maxHeight;return z(Fn||(Fn=B(["\n position: relative;\n width: 100%;\n margin: 0;\n padding: 0;\n font-family: ",";\n color: var(--lg-combobox-menu-color);\n background-color: var(--lg-combobox-menu-background-color);\n box-shadow: var(--lg-combobox-menu-shadow);\n border-radius: inherit;\n overflow: auto;\n min-height: var(--lg-combobox-item-height);\n max-height: ","px;\n scroll-behavior: smooth;\n"])),L.default,o)},Oo=z(Ln||(Ln=B(["\n position: relative;\n margin: 0;\n padding: 0;\n"]))),No=z(Rn||(Rn=B(["\n display: inline-flex;\n align-items: center;\n gap: 8px;\n font-size: var(--lg-combobox-item-font-size);\n color: var(--lg-combobox-menu-message-color);\n padding: var(--lg-combobox-item-padding-y) var(--lg-combobox-item-padding-x);\n\n & > svg {\n width: 1em;\n height: 1em;\n }\n"]))),zo=function(n){var o,e,r=n.darkMode,t=n.size;switch(o=r?z(Qn||(Qn=B([""]))):z(_n||(_n=B(["\n --lg-combobox-chip-text-color: ",";\n --lg-combobox-chip-icon-color: ",";\n --lg-combobox-chip-background-color: ",";\n --lg-combobox-chip-hover-color: ",";\n --lg-combobox-chip-focus-color: ",";\n "])),j.gray.dark3,j.gray.dark2,j.gray.light2,j.gray.light1,j.blue.light2),t){case rn:e=z(no||(no=B(["\n --lg-combobox-chip-height: 24px;\n --lg-combobox-chip-border-radius: 4px;\n --lg-combobox-chip-font-size: 14px;\n --lg-combobox-chip-line-height: 20px;\n --lg-combobox-chip-padding-x: 6px;\n "])));break;case tn:e=z(oo||(oo=B(["\n --lg-combobox-chip-height: 28px;\n --lg-combobox-chip-border-radius: 4px;\n --lg-combobox-chip-font-size: ","px;\n --lg-combobox-chip-line-height: ","px;\n --lg-combobox-chip-padding-x: 6px;\n "])),R.body2.fontSize,R.body2.lineHeight)}return S(o,e,z(eo||(eo=B(["\n display: inline-flex;\n align-items: center;\n overflow: hidden;\n white-space: nowrap;\n height: var(--lg-combobox-chip-height);\n font-size: var(--lg-combobox-chip-font-size);\n line-height: var(--lg-combobox-chip-line-height);\n border-radius: var(--lg-combobox-chip-border-radius);\n color: var(--lg-combobox-chip-text-color);\n background-color: var(--lg-combobox-chip-background-color);\n\n // TODO - refine these styles\n /* &:focus, */\n &:focus-within {\n background-color: var(--lg-combobox-chip-focus-color);\n }\n "]))))},So=z(ro||(ro=B(["\n padding-inline: var(--lg-combobox-chip-padding-x);\n"]))),Do=z(to||(to=B(["\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n outline: none;\n border: none;\n background-color: transparent;\n color: var(--lg-combobox-chip-icon-color);\n cursor: pointer;\n transition: background-color 100ms ease-in-out;\n\n &:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 1px;\n background-color: var(--lg-combobox-chip-hover-color);\n }\n\n &:hover {\n background-color: var(--lg-combobox-chip-hover-color);\n }\n"]))),jo=n.forwardRef((function(n,o){var r=n.displayName,a=n.isFocused,c=n.onRemove,s=n.onFocus,u=e(Hn),b=u.darkMode,d=u.size,g=u.disabled,p=u.chipTruncationLocation,m=void 0===p?"end":p,f=u.chipCharacterLimit,h=void 0===f?12:f,v=!!h&&!!m&&"none"!==m&&r.length>h,x=i(null),y=t((function(){if(v){var n=h-3;switch(m){case"start":return"…"+r.substring(r.length-n).trim();case"middle":return r.substring(0,n/2).trim()+"…"+r.substring(r.length-n/2).trim();case"end":return r.substring(0,n).trim()+"…";default:return r}}return!1}),[h,m,r,v]);l((function(){var n;a&&!g&&(null==x||null===(n=x.current)||void 0===n||n.focus())}),[g,o,a]);return A("span",{role:"option","aria-selected":a,"data-testid":"lg-combobox-chip",ref:o,className:S(co,zo({darkMode:b,size:d})),onClick:function(n){var o;null!==(o=x.current)&&void 0!==o&&o.contains(n.target)||s()},onKeyDown:function(n){g||n.keyCode!==E.Delete&&n.keyCode!==E.Backspace&&n.keyCode!==E.Enter&&n.keyCode!==E.Space||c()},tabIndex:-1},A("span",{className:So},y?A(H,{definition:r,align:"bottom"},y):r),A("button",{"aria-label":"Deselect ".concat(r),"aria-disabled":g,disabled:g,ref:x,className:Do,onClick:function(){g||c()}},A(C,{glyph:"X"})))}));jo.displayName="Chip";var Io=function(n){return z(io||(io=B(["\n --lg-combobox-group-label-color: ",";\n --lg-combobox-group-border-color: ",";\n padding-top: 8px;\n border-bottom: 1px solid var(--lg-combobox-group-border-color);\n"])),n?j.gray.light1:j.gray.dark1,n?j.gray.dark1:j.gray.light1)},Mo=z(lo||(lo=B(["\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: bold;\n text-transform: uppercase;\n letter-spacing: 0.4px;\n color: var(--lg-combobox-group-label-color);\n"])));function Eo(o){var r=o.label,t=o.className,i=o.children,l=e(Hn).darkMode,a=h({prefix:"combobox-group"});return n.Children.count(i)>0?A("div",{className:S(Io(l),t)},A("div",{className:Mo,id:a},r),A("div",{role:"group","aria-labelledby":a},i)):A(n.Fragment,null)}function Po(n){throw Error("`ComboboxGroup` must be a child of a `Combobox` instance")}Po.displayName="ComboboxGroup";var To=["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"];function Ao(o){var e=o.children,v=o.label,O=o.description,z=o.placeholder,D=void 0===z?"Select":z,M=o["aria-label"],T=o.disabled,F=void 0!==T&&T,L=o.size,R=void 0===L?rn:L,H=o.darkMode,B=void 0!==H&&H,Z=o.state,Y=void 0===Z?"none":Z,$=o.errorMessage,tn=o.searchState,ln=void 0===tn?"unset":tn,an=o.searchEmptyMessage,cn=void 0===an?"No results found":an,sn=o.searchErrorMessage,un=void 0===sn?"Could not get results!":sn,bn=o.searchLoadingMessage,dn=void 0===bn?"Loading results...":bn,gn=o.filteredOptions,pn=o.onFilter,mn=o.clearable,fn=void 0===mn||mn,hn=o.onClear,vn=o.overflow,xn=void 0===vn?"expand-y":vn,yn=o.multiselect,wn=void 0!==yn&&yn,kn=o.initialValue,Cn=o.onChange,On=o.value,Nn=o.chipTruncationLocation,zn=o.chipCharacterLimit,Sn=void 0===zn?12:zn,Dn=o.className,jn=o.usePortal,In=void 0===jn||jn,Mn=o.portalClassName,En=o.portalContainer,Pn=o.scrollContainer,Tn=o.popoverZIndex,An=V(o,To),Fn=x({prefix:"option"}),Ln=x({prefix:"chip"}),Rn=h({prefix:"combobox-input"}),Wn=h({prefix:"combobox-label"}),Bn=h({prefix:"combobox-menu"}),Xn=i(null),Zn=i(null),Yn=i(null),$n=i(null),Jn=i(null),Qn=X(a(!1),2),_n=Qn[0],no=Qn[1],oo=y(_n),eo=X(a(null),2),ro=eo[0],to=eo[1],io=X(a(null),2),lo=io[0],ao=io[1],co=y(lo),yo=X(a(""),2),zo=yo[0],So=yo[1],Do=y(zo),Io=X(a(null),2),Mo=Io[0],Po=Io[1],Ao=!s(lo)&&(c(lo)&&lo.length>0||u(lo)),Fo=wn&&c(lo)&&lo.length>0?void 0:D,Lo=function(){return no(!1)},Ro=function(){return no(!0)},Ho=t((function(){return Vn(e)}),[e]),Wo=r((function(n){return!wn||"string"!=typeof n&&"number"!=typeof n?!wn&&c(n)&&P.error("Error in Combobox: multiselect is set to `false`, but recieved an Array value"):P.error("Error in Combobox: multiselect is set to `true`, but recieved a ".concat(G(n),' value: "').concat(n,'"')),wn&&c(n)}),[wn]),Go=r((function(n){!F&&$n&&$n.current&&($n.current.focus(),b(n)||$n.current.setSelectionRange(n,n))}),[F]),Ko=r((function(n){if(Wo(lo)){var o=d(lo);s(n)?o.length=0:lo.includes(n)?o.splice(o.indexOf(n),1):(o.push(n),So("")),ao(o),null==Cn||Cn(o)}else{var e=n;ao(e),null==Cn||Cn(e)}}),[Wo,Cn,lo]),Uo=r((function(n){return Wo(lo)?lo.includes(n):n===lo}),[Wo,lo]),Vo=r((function(n){var o,e,r,t,i=(e=Ho,(o=n)?null!==(r=null===(t=e.find((function(n){return n.displayName===o})))||void 0===t?void 0:t.value)&&void 0!==r?r:o:"");return Uo(i)}),[Ho,Uo]),Bo=r((function(n){var o="string"==typeof n?n:n.value;return gn&&gn.length>0?gn.includes(o):!!Vo(zo)||("string"==typeof n?Un(o,Ho):n.displayName).toLowerCase().includes(zo.toLowerCase())}),[gn,Vo,zo,Ho]),Xo=t((function(){return Ho.filter(Bo)}),[Ho,Bo]),Zo=r((function(n){return!!n&&!!Ho.find((function(o){return o.value===n}))}),[Ho]),Yo=r((function(n){return Xo?Xo.findIndex((function(o){return o.value===n})):-1}),[Xo]),$o=r((function(n){if(Xo&&Xo.length>=n){var o=Xo[n];return o?o.value:void 0}}),[Xo]),qo=r((function(){return Wo(lo)?lo.findIndex((function(n){var o,e;return null===(o=Ln(n))||void 0===o||null===(e=o.current)||void 0===e?void 0:e.contains(document.activeElement)})):-1}),[Ln,Wo,lo]),Jo=X(a(),2),Qo=Jo[0],_o=Jo[1],ne=r((function(n){var o,e=null!==(o=null==Xo?void 0:Xo.length)&&void 0!==o?o:0,r=e-1>0?e-1:0,t=Yo(ro);switch(n&&_n&&(Po(null),Go()),n){case"next":var i=$o(t+1<e?t+1:0);to(null!=i?i:null);break;case"prev":var l=$o(t-1>=0?t-1:r);to(null!=l?l:null);break;case"last":var a=$o(r);to(null!=a?a:null);break;default:var c=$o(0);to(null!=c?c:null)}}),[ro,Yo,$o,_n,Go,null==Xo?void 0:Xo.length]),oe=r((function(n,o){if(Wo(lo))switch(n){case"next":var e=null!=o?o:qo(),r=e+1<lo.length?e+1:lo.length-1,t=lo[r];Po(t);break;case"prev":var i=null!=o?o:qo(),l=i>0?i-1:i<0?lo.length-1:0,a=lo[l];Po(a);break;case"first":var c=lo[0];Po(c);break;case"last":var s=lo[lo.length-1];Po(s);break;default:Po(null)}}),[qo,Wo,lo]),ee=r((function(n,o){switch(n&&to(null),n){case"right":switch(Qo){case q:var e,r,t;if((null===(e=$n.current)||void 0===e?void 0:e.selectionEnd)===(null===(r=$n.current)||void 0===r?void 0:r.value.length))null===(t=Zn.current)||void 0===t||t.focus();break;case Q:case nn:case _:if(Qo===_||1===(null==lo?void 0:lo.length)){Go(0),oe(null),o.preventDefault();break}oe("next")}break;case"left":switch(Qo){case J:var i;o.preventDefault(),Go(null==$n||null===(i=$n.current)||void 0===i?void 0:i.value.length);break;case q:case nn:case _:if(Wo(lo)){var l;if(Qo===q&&0!==(null===(l=$n.current)||void 0===l?void 0:l.selectionStart))break;oe("prev")}}break;default:oe(null)}}),[Qo,Wo,lo,Go,oe]);l((function(){zo!==Do&&ne("first")}),[zo,_n,Do,ne]),l((function(){if(ro){var n=Fn(ro);if(n&&n.current&&Jn.current){var o=n.current.offsetTop,e=Jn.current,r=e.scrollTop;(o>e.offsetHeight||o<r)&&(Jn.current.scrollTop=o)}}}),[ro,Fn]);var re=r((function(o){return n.Children.map(o,(function(n){if(I(n,"ComboboxOption")){var o=Gn(n.props),e=o.value,r=o.displayName;if(Bo(e)){var t=n.props,i=t.className,l=t.glyph,a=t.disabled,c=Ho.findIndex((function(n){return n.value===e})),s=ro===e,u=Wo(lo)?lo.includes(e):lo===e,b=Fn(e);return A(qn,{value:e,displayName:r,isFocused:s,isSelected:u,disabled:a,setSelected:function(){to(e),Ko(e),Go(),e===lo&&Lo()},glyph:l,className:i,index:c,ref:b})}}else if(I(n,"ComboboxGroup")){var d=re(n.props.children);if(d&&(null==d?void 0:d.length)>0)return A(Eo,{label:n.props.label,className:n.props.className},re(d))}}))}),[Ho,ro,Fn,Wo,Bo,lo,Go,Ko]),te=t((function(){return re(e)}),[e,re]),ie=t((function(){if(Wo(lo))return lo.filter(Zo).map((function(n,o){var e=Un(n,Ho),r=Mo===n,t=Ln(n),i=o>=lo.length-1;return A(jo,{key:n,displayName:e,isFocused:r,onRemove:function(){i?(Go(),oe(null)):oe("next",o),Ko(n)},onFocus:function(){Po(n)},ref:t})}))}),[Wo,lo,Zo,Ho,Mo,Ln,Ko,Go,oe]),le=t((function(){return A(n.Fragment,null,fn&&Ao&&A(N,{"aria-label":"Clear selection","aria-disabled":F,disabled:F,ref:Zn,onClick:function(n){F||(Ko(null),null==hn||hn(n),null==pn||pn(""),_n||Ro())},onFocus:me,className:S(fo,ho)},A(C,{glyph:"XWithCircle"})),A(C,"error"===Y?{glyph:"Warning",color:j.red.base,className:xo}:{glyph:"CaretDown",className:xo}))}),[fn,Ao,F,Y,Ko,hn,pn,_n]),ae=t((function(){return Ho.some((function(n){return n.hasGlyph}))}),[Ho]),ce=r((function(){if(!Wo(lo)&&lo===co){var n=Xo.find((function(n){return n.displayName===zo||n.value===zo}));if(n&&!On)ao(n.value);else{var o,e=null!==(o=Un(lo,Ho))&&void 0!==o?o:"";So(e)}}}),[Ho,zo,Wo,co,lo,On,Xo]),se=r((function(){if(Ao){if(Wo(lo))ve();else if(!Wo(lo)){var n,o=null!==(n=Un(lo,Ho))&&void 0!==n?n:"";So(o),Lo()}}else So("")}),[Ao,Ho,Wo,lo]);l((function(){if(kn)if(c(kn)){var n,o=null!==(n=kn.filter((function(n){return Zo(n)})))&&void 0!==n?n:[];ao(o)}else Zo(kn)&&ao(kn);else ao(function(n){return n?[]:null}(wn))}),[]),l((function(){if(!b(On)&&On!==Do)if(s(On))ao(null);else if(Wo(On)){var n=On.filter(Zo);ao(n)}else ao(Zo(On)?On:null)}),[Wo,Zo,Do,On]),l((function(){g(lo,co)||se()}),[se,co,lo]),l((function(){!_n&&oo&&ce()}),[_n,oo,ce]);var ue=X(a(0),2),be=ue[0],de=ue[1];l((function(){var n,o;de(null!==(n=null===(o=Xn.current)||void 0===o?void 0:o.clientWidth)&&void 0!==n?n:0)}),[Xn,_n,ro,lo]);var ge=t((function(){switch(ln){case"loading":return A("span",{className:No},A(C,{glyph:"Refresh",color:j.blue.base,className:wo}),dn);case"error":return A("span",{className:No},A(C,{glyph:"Warning",color:j.red.base}),un);default:return te&&te.length>0?A("ul",{className:Oo},te):A("span",{className:No},cn)}}),[te,cn,un,dn,ln]),pe=Math.min(256,w(Xn)),me=function(){to(null)};k("mousedown",(function(n){he(n)||(n.preventDefault(),n.stopPropagation())}),{enabled:_n}),k("click",(function(n){he(n)||(n.stopPropagation(),Lo())}),{options:{capture:!0},enabled:_n});var fe=function(n){for(var o=1;o<arguments.length;o++){var e=null!=arguments[o]?arguments[o]:{};o%2?W(Object(e),!0).forEach((function(o){K(n,o,e[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):W(Object(e)).forEach((function(o){Object.defineProperty(n,o,Object.getOwnPropertyDescriptor(e,o))}))}return n}({popoverZIndex:Tn},In?{usePortal:In,portalClassName:Mn,portalContainer:En,scrollContainer:Pn}:{usePortal:In});return A(Hn.Provider,{value:{multiselect:wn,darkMode:B,size:R,withIcons:ae,disabled:F,chipTruncationLocation:Nn,chipCharacterLimit:Sn,inputValue:zo}},A("div",U({className:S(uo({darkMode:B,size:R,overflow:xn}),Dn)},An),A("div",null,v&&A(p,{id:Wn,htmlFor:Rn,className:so},v),O&&A(m,{className:so},O)),A("div",{ref:Xn,role:"combobox","aria-expanded":_n,"aria-controls":Bn,"aria-owns":Bn,tabIndex:-1,className:S(bo,K({},go,Qo===q)),onMouseDown:function(n){F&&n.preventDefault()},onClick:function(n){if(n.target!==$n.current){var o=0;if($n.current)o=n.nativeEvent.offsetX>$n.current.offsetLeft+$n.current.clientWidth?zo.length:0;Go(o)}},onFocus:function(n){ve(),Ro(),_o(function(n){var o,e,r,t;if(!n)return;if(null!==(o=$n.current)&&void 0!==o&&o.contains(n))return q;if(null!==(e=Zn.current)&&void 0!==e&&e.contains(n))return J;var i=Wo(lo)?lo.findIndex((function(o){var e,r;return null===(e=Ln(o))||void 0===e||null===(r=e.current)||void 0===r?void 0:r.contains(n)})):-1;if(Wo(lo)){if(0===i)return Q;if(i===lo.length-1)return _;if(i>0)return nn}if(null!==(r=Jn.current)&&void 0!==r&&r.contains(n))return en;if(null!==(t=Xn.current)&&void 0!==t&&t.contains(n))return on}(n.target))},onKeyDown:function(n){var o,e,r=null===(o=Jn.current)||void 0===o?void 0:o.contains(document.activeElement);if((null===(e=Xn.current)||void 0===e?void 0:e.contains(document.activeElement))||r){if(n.ctrlKey||n.shiftKey||n.altKey)return;switch(n.keyCode){case E.Tab:switch(Qo){case"Input":Ao||(Lo(),ne("first"),oe(null));break;case"LastChip":oe(null)}break;case E.Escape:Lo(),ne("first");break;case E.Enter:!_n||Qo!==q||s(ro)||function(n){if("string"==typeof n){var o=Kn(n,Ho);return!(null==o||!o.isDisabled)}return!!n.isDisabled}(ro)?Qo===J&&(Ko(null),Go()):Ko(ro);break;case E.Backspace:var t;if(Wo(lo))"Input"===Qo&&0===(null===(t=$n.current)||void 0===t?void 0:t.selectionStart)&&oe("last");Ro();break;case E.ArrowDown:_n?(n.preventDefault(),ne("next")):Ro();break;case E.ArrowUp:_n?(n.preventDefault(),ne("prev")):Ro();break;case E.ArrowRight:ee("right",n);break;case E.ArrowLeft:ee("left",n);break;default:_n||Ro()}}},onTransitionEnd:function(){var n,o;de(null!==(n=null===(o=Xn.current)||void 0===o?void 0:o.clientWidth)&&void 0!==n?n:0)},"data-disabled":F,"data-state":Y},A("div",{ref:Yn,className:po({overflow:xn,isOpen:_n,selection:lo,size:R,value:zo})},ie,A("input",{"aria-label":null!=M?M:v,"aria-autocomplete":"list","aria-controls":Bn,"aria-labelledby":Wn,ref:$n,id:Rn,className:mo,placeholder:Fo,disabled:null!=F?F:void 0,onChange:function(n){var o=n.target.value;So(o),null==pn||pn(o)},value:zo,autoComplete:"off"})),le),"error"===Y&&$&&A("div",{className:vo},$),A(f,U({active:_n&&!F,spacing:4,align:"bottom",justify:"middle",refEl:Xn,adjustOnMutation:!0,className:ko({darkMode:B,size:R,width:be})},fe),A("div",{id:Bn,role:"listbox","aria-labelledby":Wn,"aria-expanded":_n,ref:Jn,className:Co({maxHeight:pe}),onMouseDownCapture:function(n){return n.preventDefault()}},ge))));function he(n){var o,e,r=n.target;return(null===(o=Jn.current)||void 0===o?void 0:o.contains(r))||(null===(e=Xn.current)||void 0===e?void 0:e.contains(r))||!1}function ve(){Yn&&Yn.current&&(Yn.current.scrollLeft=Yn.current.scrollWidth)}}export{Ao as Combobox,Po as ComboboxGroup,Jn as ComboboxOption};
2
2
  //# sourceMappingURL=index.js.map