@leafygreen-ui/combobox 9.1.0 → 9.1.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"getTestOptions.testutils.d.ts","sourceRoot":"","sources":["../../src/test-utils/getTestOptions.testutils.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,eAAO,MAAM,kBAAkB,+CA4E9B,CAAC"}
1
+ {"version":3,"file":"getTestOptions.testutils.d.ts","sourceRoot":"","sources":["../../src/test-utils/getTestOptions.testutils.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,eAAO,MAAM,kBAAkB,+CA6E9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leafygreen-ui/combobox",
3
- "version": "9.1.0",
3
+ "version": "9.1.2",
4
4
  "description": "leafyGreen UI Kit Combobox",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -22,19 +22,19 @@
22
22
  "access": "public"
23
23
  },
24
24
  "dependencies": {
25
- "@leafygreen-ui/checkbox": "^13.1.0",
26
- "@leafygreen-ui/chip": "^1.0.2",
25
+ "@leafygreen-ui/checkbox": "^13.1.1",
26
+ "@leafygreen-ui/chip": "^1.2.0",
27
27
  "@leafygreen-ui/emotion": "^4.0.8",
28
- "@leafygreen-ui/form-field": "^1.2.0",
28
+ "@leafygreen-ui/form-field": "^1.2.4",
29
29
  "@leafygreen-ui/hooks": "^8.1.3",
30
- "@leafygreen-ui/icon": "^12.5.0",
30
+ "@leafygreen-ui/icon": "^12.5.4",
31
31
  "@leafygreen-ui/icon-button": "^15.0.21",
32
- "@leafygreen-ui/input-option": "^1.1.3",
33
- "@leafygreen-ui/lib": "^13.5.0",
32
+ "@leafygreen-ui/input-option": "^2.0.0",
33
+ "@leafygreen-ui/lib": "^13.6.1",
34
34
  "@leafygreen-ui/palette": "^4.0.9",
35
35
  "@leafygreen-ui/popover": "^11.4.0",
36
- "@leafygreen-ui/tokens": "^2.8.0",
37
- "@leafygreen-ui/typography": "^19.1.0",
36
+ "@leafygreen-ui/tokens": "^2.9.0",
37
+ "@leafygreen-ui/typography": "^19.2.1",
38
38
  "chalk": "^4.1.2",
39
39
  "lodash": "^4.17.21",
40
40
  "polished": "^4.2.2"
@@ -44,7 +44,7 @@
44
44
  },
45
45
  "devDependencies": {
46
46
  "@leafygreen-ui/button": "^21.2.0",
47
- "@leafygreen-ui/testing-lib": "^0.4.2",
47
+ "@leafygreen-ui/testing-lib": "^0.6.1",
48
48
  "@lg-tools/storybook-utils": "^0.1.1"
49
49
  },
50
50
  "homepage": "https://github.com/mongodb/leafygreen-ui/tree/main/packages/combobox",
@@ -254,6 +254,19 @@ MultiSelect.parameters = {
254
254
  },
255
255
  };
256
256
 
257
+ export const MultiSelectNoIcons: StoryFn<ComboboxProps<boolean>> = (
258
+ args: ComboboxProps<boolean>,
259
+ ) => {
260
+ return (
261
+ <Combobox {...args} multiselect={true}>
262
+ {getComboboxOptions(false)}
263
+ </Combobox>
264
+ );
265
+ };
266
+ MultiSelectNoIcons.parameters = {
267
+ chromatic: { disableSnapshot: true },
268
+ };
269
+
257
270
  export const DisabledInput = () => <></>;
258
271
  DisabledInput.args = {
259
272
  disabled: true,
@@ -13,13 +13,13 @@ import { ComboboxProps } from '../Combobox';
13
13
  import { ComboboxContext } from '../ComboboxContext';
14
14
 
15
15
  import {
16
+ getMenuThemeStyles,
16
17
  loadingIconStyle,
17
18
  menuBaseStyle,
18
19
  menuList,
19
20
  menuMessageBaseStyle,
20
21
  menuMessageSizeStyle,
21
22
  menuMessageThemeStyle,
22
- menuThemeStyle,
23
23
  popoverStyle,
24
24
  popoverThemeStyle,
25
25
  } from './Menu.styles';
@@ -150,7 +150,7 @@ export const ComboboxMenu = React.forwardRef<HTMLDivElement, ComboboxMenuProps>(
150
150
  aria-expanded={isOpen}
151
151
  className={cx(
152
152
  menuBaseStyle,
153
- menuThemeStyle[theme],
153
+ getMenuThemeStyles(theme),
154
154
  css`
155
155
  max-height: ${maxHeightValue};
156
156
  `,
@@ -3,7 +3,7 @@ import { transparentize } from 'polished';
3
3
  import { css, keyframes } from '@leafygreen-ui/emotion';
4
4
  import { Theme } from '@leafygreen-ui/lib';
5
5
  import { palette } from '@leafygreen-ui/palette';
6
- import { fontFamilies, spacing } from '@leafygreen-ui/tokens';
6
+ import { color, fontFamilies, spacing } from '@leafygreen-ui/tokens';
7
7
 
8
8
  import { fontSize, lineHeight } from '../ComboboxChip/ComboboxChip.styles';
9
9
  import { ComboboxSize as Size } from '../types';
@@ -64,6 +64,10 @@ export const menuThemeStyle: Record<Theme, string> = {
64
64
  `,
65
65
  };
66
66
 
67
+ export const getMenuThemeStyles = (theme: Theme) => css`
68
+ background-color: ${color[theme].background.primary.default};
69
+ `;
70
+
67
71
  export const menuList = css`
68
72
  position: relative;
69
73
  margin: 0;
@@ -15,7 +15,7 @@ const meta: StoryMetaType<typeof InternalComboboxOption> = {
15
15
  parameters: {
16
16
  default: null,
17
17
  generate: {
18
- storyNames: ['WithIcons', 'WithoutIcons'],
18
+ storyNames: ['WithIcons', 'WithoutIcons', 'WithoutIconsAndMultiStep'],
19
19
  combineArgs: {
20
20
  darkMode: [false, true],
21
21
  description: [undefined, 'This is a description'],
@@ -67,3 +67,31 @@ WithIcons.parameters = {
67
67
  },
68
68
  },
69
69
  };
70
+
71
+ export const WithoutIconsAndMultiStep: StoryType<
72
+ typeof InternalComboboxOption
73
+ > = () => <></>;
74
+ WithoutIconsAndMultiStep.parameters = {
75
+ generate: {
76
+ decorator: (Instance, context) => {
77
+ return (
78
+ <LeafyGreenProvider darkMode={context?.args.darkMode}>
79
+ <ComboboxContext.Provider
80
+ value={{
81
+ ...defaultContext,
82
+ withIcons: context?.args.withIcons,
83
+ multiselect: true,
84
+ }}
85
+ >
86
+ <Instance glyph={context?.args.glyph} />
87
+ </ComboboxContext.Provider>
88
+ </LeafyGreenProvider>
89
+ );
90
+ },
91
+ args: {
92
+ /// @ts-expect-error - withIcons is not a component prop
93
+ withIcons: false,
94
+ glyph: undefined,
95
+ },
96
+ },
97
+ };
@@ -1,29 +1,23 @@
1
1
  import { css } from '@leafygreen-ui/emotion';
2
2
  import { leftGlyphClassName } from '@leafygreen-ui/input-option';
3
+ import {
4
+ descriptionClassName,
5
+ titleClassName,
6
+ } from '@leafygreen-ui/input-option';
3
7
  import { Theme } from '@leafygreen-ui/lib';
4
8
  import { palette } from '@leafygreen-ui/palette';
5
- import { fontWeights, spacing } from '@leafygreen-ui/tokens';
9
+ import { fontWeights, spacing, typeScales } from '@leafygreen-ui/tokens';
6
10
 
7
- import { fontSize, lineHeight } from '../ComboboxChip/ComboboxChip.styles';
8
- import {
9
- getMenuItemHeight,
10
- menuItemPadding,
11
- } from '../ComboboxMenu/Menu.styles';
12
11
  import { ComboboxSize } from '../types';
13
12
 
14
13
  /**
15
14
  * Styles
16
15
  */
17
16
 
18
- export const comboboxOptionSizeStyle = (size: ComboboxSize) => css`
19
- font-size: ${fontSize[size]}px;
20
- line-height: ${lineHeight[size]}px;
21
- min-height: ${getMenuItemHeight(size)}px;
22
- padding: ${menuItemPadding[size].y}px ${menuItemPadding[size].x}px;
23
- gap: ${spacing[1]}px;
24
-
25
- &:before {
26
- max-height: ${getMenuItemHeight(size)}px;
17
+ export const largeStyles = css`
18
+ .${descriptionClassName}, .${titleClassName} {
19
+ font-size: ${typeScales.body2.fontSize}px;
20
+ line-height: 20px;
27
21
  }
28
22
  `;
29
23
 
@@ -108,10 +102,14 @@ export const checkMarkDisabledStyles: Record<Theme, string> = {
108
102
  export const multiselectIconPosition = css`
109
103
  .${leftGlyphClassName} {
110
104
  align-self: baseline;
105
+ position: relative;
106
+ // aligns the checkbox with the option name
107
+ top: 1px;
111
108
  }
112
109
  `;
113
110
  export const multiselectIconLargePosition = css`
114
111
  .${leftGlyphClassName} {
115
- height: 28px;
112
+ // aligns the checkbox with the option name
113
+ top: 3px;
116
114
  }
117
115
  `;
@@ -11,8 +11,8 @@ import { ComboboxSize } from '../types';
11
11
  import { wrapJSX } from '../utils';
12
12
 
13
13
  import {
14
- comboboxOptionSizeStyle,
15
14
  displayNameStyle,
15
+ largeStyles,
16
16
  multiselectIconLargePosition,
17
17
  multiselectIconPosition,
18
18
  } from './ComboboxOption.styles';
@@ -110,8 +110,8 @@ export const InternalComboboxOption = React.forwardRef<
110
110
  aria-label={displayName}
111
111
  darkMode={darkMode}
112
112
  className={cx(
113
- comboboxOptionSizeStyle(size),
114
113
  {
114
+ [largeStyles]: size === ComboboxSize.Large,
115
115
  [multiselectIconPosition]: multiSelectWithoutIcons,
116
116
  [multiselectIconLargePosition]:
117
117
  multiSelectWithoutIcons && size === ComboboxSize.Large,
@@ -22,7 +22,7 @@ export const getComboboxOptions = (withGlyphs = true) => [
22
22
  value="pomegranate"
23
23
  displayName="Pomegranate"
24
24
  glyph={withGlyphs ? <Icon glyph="Warning" /> : undefined}
25
- description="Watch out, I stain everything I touch LOL"
25
+ description="Watch out! I stain everything I touch LOL"
26
26
  disabled
27
27
  />,
28
28
  <ComboboxOption
@@ -65,6 +65,7 @@ export const getComboboxOptions = (withGlyphs = true) => [
65
65
  key="ghost-pepper"
66
66
  value="ghost-pepper"
67
67
  displayName="Ghost pepper"
68
+ description="My name is Zak Bagans. I never believed in ghosts until I became face to face with one."
68
69
  />
69
70
  <ComboboxOption key="habanero" value="habanero" displayName="Habanero" />
70
71
  <ComboboxOption key="jalapeno" value="jalapeno" displayName="Jalapeño" />
package/stories.js CHANGED
@@ -1 +1 @@
1
- import e,{createContext as n,useContext as r,useEffect as t,useMemo as a,useCallback as l,useRef as o,useState as i}from"react";import{storybookArgTypes as c,storybookExcludedControlParams as s}from"@lg-tools/storybook-utils";import u from"@leafygreen-ui/button";import{css as d,cx as p,keyframes as f}from"@leafygreen-ui/emotion";import m,{isComponentGlyph as h}from"@leafygreen-ui/icon";import g from"lodash/clone";import b from"lodash/debounce";import v from"lodash/isArray";import y from"lodash/isEqual";import x from"lodash/isNull";import k from"lodash/isString";import w from"lodash/isUndefined";import E from"prop-types";import{FormFieldState as C,DEFAULT_MESSAGES as N,FormFieldFeedback as S}from"@leafygreen-ui/form-field";import{useForwardedRef as O,useIdAllocator as L,useAvailableSpace as D,useDynamicRefs as M,usePrevious as j,useAutoScroll as I,useBackdropClick as z}from"@leafygreen-ui/hooks";import P from"@leafygreen-ui/icon-button";import F,{useDarkMode as A}from"@leafygreen-ui/leafygreen-provider";import{createUniqueClassName as T,keyMap as R,Theme as W,isComponentType as X,consoleOnce as G}from"@leafygreen-ui/lib";import{Error as V,Label as H,Description as q}from"@leafygreen-ui/typography";import{chipTextClassName as Z,TruncationLocation as K,Chip as Y,BaseFontSize as B,Variant as U}from"@leafygreen-ui/chip";import{typeScales as J,spacing as $,fontWeights as Q,fontFamilies as _,transitionDuration as ee,color as ne,focusRing as re}from"@leafygreen-ui/tokens";import{palette as te}from"@leafygreen-ui/palette";import ae from"@leafygreen-ui/popover";import{transparentize as le}from"polished";import{leftGlyphClassName as oe,InputOption as ie,InputOptionContent as ce}from"@leafygreen-ui/input-option";import se from"lodash/kebabCase";import ue from"lodash/escapeRegExp";import de from"@leafygreen-ui/checkbox";function pe(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 fe(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?pe(Object(r),!0).forEach((function(n){ge(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):pe(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}function me(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,n);if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof n?n:n+""}function he(e){return he="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},he(e)}function ge(e,n,r){return(n=me(n))in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function be(){return be=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},be.apply(this,arguments)}function ve(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 ye(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}function xe(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);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)||we(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 ke(e){return function(e){if(Array.isArray(e))return Ee(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||we(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 we(e,n){if(e){if("string"==typeof e)return Ee(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)?Ee(e,n):void 0}}function Ee(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 Ce="Input",Ne="ClearButton",Se="FirstChip",Oe="LastChip",Le="MiddleChip",De="Combobox",Me="Menu",je={XSmall:"xsmall",Small:"small",Default:"default",Large:"large"},Ie={expandY:"expand-y",scrollX:"scroll-x",expandX:"expand-x"},ze=C,Pe={Unset:"unset",Error:"error",Loading:"loading"};var Fe,Ae,Te,Re,We,Xe,Ge,Ve,He,qe=n({multiselect:!1,size:je.Default,withIcons:!1,disabled:!1,isOpen:!1,state:ze.None,searchState:Pe.Unset,overflow:Ie.expandY}),Ze=T("combobox-chip"),Ke=ge(ge(ge(ge({},je.XSmall,16),je.Small,J.body1.lineHeight),je.Default,J.body1.lineHeight),je.Large,J.body2.lineHeight),Ye=ge(ge(ge(ge({},je.XSmall,J.body1.fontSize),je.Small,J.body1.fontSize),je.Default,J.body1.fontSize),je.Large,J.body2.fontSize),Be=ge(ge(ge(ge({},je.XSmall,1),je.Small,0),je.Default,2),je.Large,4),Ue=ge(ge(ge(ge({},je.XSmall,d(Fe||(Fe=ye(["\n font-size: ","px;\n line-height: ","px;\n\n ."," {\n padding-block: ","px;\n }\n "])),Ye[je.XSmall],Ke[je.XSmall],Z,Be[je.XSmall])),je.Small,d(Ae||(Ae=ye(["\n font-size: ","px;\n line-height: ","px;\n\n ."," {\n padding-block: ","px;\n }\n "])),Ye[je.Small],Ke[je.Small],Z,Be[je.Small])),je.Default,d(Te||(Te=ye(["\n font-size: ","px;\n line-height: ","px;\n\n ."," {\n padding-block: ","px;\n }\n "])),Ye[je.Default],Ke[je.Default],Z,Be[je.Default])),je.Large,d(Re||(Re=ye(["\n font-size: ","px;\n line-height: ","px;\n\n ."," {\n padding-inline-end: 10px;\n padding-block: ","px;\n }\n "])),Ye[je.Large],Ke[je.Large],Z,Be[je.Large])),Je=e.forwardRef((function(n,a){var l,o=n.displayName,i=n.isFocused,c=n.onRemove,s=n.onFocus,u=r(qe),d=u.size,f=u.disabled,m=u.overflow,h=u.chipTruncationLocation,g=void 0===h?K.End:h,b=u.chipCharacterLimit,v=void 0===b?12:b,y=u.popoverZIndex,x=m===Ie.scrollX?K.None:g,k=O(a,null),w=null===(l=k.current)||void 0===l?void 0:l.querySelector("button");t((function(){i&&!f&&(null==w||w.focus())}),[f,w,i]);return e.createElement(Y,{label:o,className:p(Ze,Ue[d]),role:"option","aria-selected":i,"data-testid":"lg-combobox-chip",onClick:function(e){null!=w&&w.contains(e.target)||s()},onKeyDown:function(e){f||e.key!==R.Delete&&e.key!==R.Backspace&&e.key!==R.Enter&&e.key!==R.Space||c()},onDismiss:function(){f||c()},baseFontSize:B.Body1,chipCharacterLimit:v,chipTruncationLocation:x,popoverZIndex:y,variant:U.Gray,ref:k,disabled:f,tabIndex:-1})}));Je.displayName="ComboboxChip";var $e,Qe,_e,en,nn,rn,tn,an,ln,on,cn,sn,un,dn=ge(ge({},W.Light,d(We||(We=ye(["\n padding-top: ","px;\n "])),$[2])),W.Dark,d(Xe||(Xe=ye(["\n padding-top: ","px;\n "])),$[2])),pn=d(Ge||(Ge=ye(["\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"])),Q.bold),fn=ge(ge({},W.Light,d(Ve||(Ve=ye(["\n color: ",";\n "])),te.gray.dark1)),W.Dark,d(He||(He=ye(["\n color: ",";\n "])),te.gray.light1));function mn(n){var r=n.label,t=n.className,a=n.children,l=A().theme,o=L({prefix:"combobox-group"});return e.Children.count(a)>0?e.createElement("div",{className:p(dn[l],t)},e.createElement("div",{className:p(pn,fn[l]),id:o},r),e.createElement("div",{role:"group","aria-labelledby":o},a)):e.createElement(e.Fragment,null)}function hn(e){throw Error("`ComboboxGroup` must be a child of a `Combobox` instance")}hn.displayName="ComboboxGroup",hn.propTypes={className:E.string,children:E.node.isRequired,label:E.string.isRequired};var gn,bn=ge(ge(ge(ge({},je.XSmall,{x:12,y:8}),je.Small,{x:12,y:8}),je.Default,{x:12,y:8}),je.Large,{x:12,y:8}),vn=function(e){return Ke[e]+2*bn[e].y},yn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:384;return d($e||($e=ye(["\n width: ","px;\n overflow: hidden;\n border-radius: 12px;\n border: 1px solid;\n"])),e)},xn=ge(ge({},W.Light,d(Qe||(Qe=ye(["\n box-shadow: 0px 4px 7px ",";\n border-color: ",";\n "])),le(.85,te.black),te.gray.light2)),W.Dark,d(_e||(_e=ye(["\n box-shadow: 0px 4px 7px ",";\n border-color: ",";\n "])),le(.85,te.black),te.gray.dark2)),kn=d(en||(en=ye(["\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"])),$[2],_.default),wn=ge(ge({},W.Light,d(nn||(nn=ye(["\n color: ",";\n background-color: ",";\n "])),te.black,te.white)),W.Dark,d(rn||(rn=ye(["\n color: ",";\n background-color: ",";\n "])),te.gray.light1,te.gray.dark3)),En=d(tn||(tn=ye(["\n position: relative;\n margin: 0;\n padding: 0;\n"]))),Cn=d(an||(an=ye(["\n font-family: inherit;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n"]))),Nn=ge(ge({},W.Light,d(ln||(ln=ye(["\n color: ",";\n "])),te.gray.dark3)),W.Dark,d(on||(on=ye(["\n color: ",";\n "])),te.gray.light3)),Sn=function(e){return d(cn||(cn=ye(["\n font-size: ","px;\n line-height: ","px;\n padding: ","px ","px;\n"])),Ye[e],Ke[e],bn[e].y,bn[e].x)},On=f(sn||(sn=ye(["\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n"]))),Ln=d(un||(un=ye(["\n animation: "," 1.5s linear infinite;\n"])),On),Dn=["children","id","refEl","labelId","menuWidth","searchLoadingMessage","searchErrorMessage","searchEmptyMessage"],Mn=e.forwardRef((function(n,t){var l=n.children,o=n.id,i=n.refEl,c=n.labelId,s=n.menuWidth,u=n.searchLoadingMessage,f=n.searchErrorMessage,h=n.searchEmptyMessage,g=ve(n,Dn),b=A(),v=b.darkMode,y=b.theme,x=r(qe),k=x.disabled,E=x.size,C=x.isOpen,N=x.searchState,S=O(t,null),L=D(i),M=w(L)?"unset":"".concat(Math.min(L,256),"px"),j=a((function(){var n=p(Cn,Nn[y],Sn(E)),r=p(Cn,Sn(E));switch(N){case"loading":return e.createElement("span",{className:n},e.createElement(m,{glyph:"Refresh",color:v?te.blue.light1:te.blue.base,className:Ln}),u);case"error":return e.createElement(V,{className:r},e.createElement(m,{glyph:"Warning",color:v?te.red.light1:te.red.base}),e.createElement("span",null,f));default:return l&&"object"===he(l)&&"length"in l&&l.length>0?e.createElement("ul",{className:En},l):e.createElement("span",{className:n},h)}}),[y,E,N,v,u,f,l,h]);return e.createElement(ae,be({active:C&&!k,spacing:4,align:"bottom",justify:"middle",refEl:i,adjustOnMutation:!0,className:p(yn(s),xn[y])},g),e.createElement("div",{ref:S,id:o,role:"listbox","aria-labelledby":c,"aria-expanded":C,className:p(kn,wn[y],d(gn||(gn=ye(["\n max-height: ",";\n "])),M)),onMouseDownCapture:function(e){return e.preventDefault()}},j))}));Mn.displayName="ComboboxMenu";var jn,In,zn,Pn,Fn,An,Tn,Rn,Wn,Xn,Gn,Vn,Hn,qn,Zn,Kn,Yn,Bn,Un,Jn,$n=function(e){var n=e.scrollHeight;return e.scrollTop<n-e.clientHeight},Qn=function(e){var n,r=e.value,t=e.displayName;return{value:null!=r?r:se(t),displayName:null!==(n=null!=t?t:r)&&void 0!==n?n:""}},_n=function n(r){return e.Children.toArray(r).reduce((function(e,r){if(X(r,"ComboboxOption")){var t=Qn(r.props),a=t.value,l=t.displayName,o=r.props,i=o.glyph,c=o.disabled;return[].concat(ke(e),[{value:a,displayName:l,isDisabled:!!c,hasGlyph:!!i}])}if(X(r,"ComboboxGroup")){var s=r.props.children;if(s)return[].concat(ke(e),ke(n(s)))}}),[])},er=function(e,n){if(e)return n.find((function(n){return n.value===e}))},nr=function(e,n){var r,t;return e?null!==(r=null===(t=er(e,n))||void 0===t?void 0:t.displayName)&&void 0!==r?r:e:""},rr=function(e){return d(jn||(jn=ye(["\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"])),Ye[e],Ke[e],vn(e),bn[e].y,bn[e].x,$[1],vn(e))},tr=ge(ge(ge(ge({},je.XSmall,d(In||(In=ye(["\n min-width: ","px;\n "])),$[3])),je.Small,d(zn||(zn=ye(["\n min-width: ","px;\n "])),$[3])),je.Default,d(Pn||(Pn=ye(["\n min-width: ","px;\n "])),$[3])),je.Large,d(Fn||(Fn=ye(["\n min-width: ","px;\n "])),$[4])),ar=d(An||(An=ye(["\n pointer-events: none;\n gap: 0;\n\n label {\n gap: 0;\n align-items: center;\n }\n"])));d(Tn||(Tn=ye(["\n pointer-events: none;\n"])));var lr=function(e){return d(Rn||(Rn=ye(["\n font-weight: ",";\n"])),e?Q.bold:Q.regular)},or=ge(ge({},W.Light,d(Wn||(Wn=ye(["\n color: ",";\n "])),te.gray.dark1)),W.Dark,d(Xn||(Xn=ye(["\n color: ",";\n "])),te.gray.base)),ir=ge(ge({},W.Light,d(Gn||(Gn=ye(["\n color: ",";\n "])),te.blue.dark1)),W.Dark,d(Vn||(Vn=ye(["\n color: ",";\n "])),te.blue.light3)),cr=ge(ge({},W.Light,d(Hn||(Hn=ye(["\n color: ",";\n "])),te.gray.light1)),W.Dark,d(qn||(qn=ye(["\n color: ",";\n "])),te.gray.dark1)),sr=ge(ge({},W.Light,d(Zn||(Zn=ye(["\n color: ",";\n "])),te.blue.base)),W.Dark,d(Kn||(Kn=ye(["\n color: ",";\n "])),te.blue.light1)),ur=ge(ge({},W.Light,d(Yn||(Yn=ye(["\n color: ",";\n "])),te.gray.light1)),W.Dark,d(Bn||(Bn=ye(["\n color: ",";\n "])),te.gray.dark1)),dr=d(Un||(Un=ye(["\n ."," {\n align-self: baseline;\n }\n"])),oe),pr=d(Jn||(Jn=ye(["\n ."," {\n height: 28px;\n }\n"])),oe),fr=["glyph","isSelected","displayName","isFocused","setSelected","className","description","value","onClick","disabled"],mr=e.forwardRef((function(n,t){var o=n.glyph,i=n.isSelected,c=n.displayName,s=n.isFocused,u=n.setSelected,d=n.className,f=n.description,g=n.value,b=n.onClick,v=n.disabled,y=void 0!==v&&v,x=ve(n,fr),k=A(),w=k.darkMode,E=k.theme,C=r(qe),N=C.multiselect,S=C.size,D=C.withIcons,M=C.inputValue,j=O(t,null),I=L({prefix:"combobox-option-text"}),z=l((function(e){e.stopPropagation(),y||(u(),null==b||b(e,g))}),[y,b,u,g]),P=a((function(){return function(n){var r=n.withIcons,t=n.isSelected,a=n.glyph,l=n.optionTextId,o=n.disabled,i=n.darkMode,c=n.size,s=n.multiselect,u=n.theme,d=n.isFocused;a&&!h(a)&&console.error("`ComboboxOption` instance did not render icon because it is not a known glyph element.",a);var f=a&&h(a)?e.cloneElement(a,fe(fe({},a.props),{},{className:p(or[u],ge(ge({},ir[u],d),cr[u],o),a.props.className)})):e.createElement(e.Fragment,null),g=e.createElement(de,{"aria-labelledby":l,checked:t,tabIndex:-1,disabled:o,darkMode:i,className:ar}),b=e.createElement(m,{glyph:"Checkmark",className:p(tr[c],sr[u],ge({},ur[u],o))});return{leftGlyph:s?r?f:g:r?f:t?b:null,rightGlyph:s?r&&g:r&&t&&b}}({withIcons:D,isSelected:i,glyph:o,theme:E,darkMode:w,size:S,disabled:y,multiselect:N,optionTextId:I,isFocused:s})}),[w,y,o,i,N,I,S,E,D,s]),F=P.leftGlyph,T=P.rightGlyph,R=N&&!D;return e.createElement(ie,be({},x,{as:"li",ref:j,highlighted:s,disabled:y,"aria-label":c,darkMode:w,className:p(rr(S),ge(ge({},dr,R),pr,R&&S===je.Large),d),onClick:z,onKeyDown:z}),e.createElement(ce,{leftGlyph:F,rightGlyph:T,description:f},e.createElement("span",{id:I,className:lr(i)},function(n,r,t){if(r&&t){var a=ue(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],m=f.length,h=p+f+m,g=new Array(m).fill("");g[0]=e.createElement(t,{key:h},f),i.splice.apply(i,[p,m].concat(ke(g)))}return e.createElement(e.Fragment,null,i)}return e.createElement(e.Fragment,null,n)}return e.createElement(e.Fragment,null,n)}(c,M,"strong"))))}));function hr(e){throw Error("`ComboboxOption` must be a child of a `Combobox` instance")}mr.displayName="ComboboxOption",hr.displayName="ComboboxOption",hr.propTypes={displayName:E.string,value:E.string,glyph:E.node,disabled:E.bool,className:E.string,description:E.string,onClick:E.func};var gr,br,vr,yr,xr,kr,wr,Er,Cr,Nr,Sr,Or,Lr,Dr,Mr,jr,Ir,zr,Pr,Fr,Ar,Tr,Rr,Wr,Xr,Gr,Vr,Hr,qr,Zr,Kr,Yr,Br,Ur=function(e){return!w(e)&&!x(e)&&(k(e)||v(e)&&e.length>0)},Jr=function(e){return Ke[e]+2*Be[e]},$r=$[100],Qr=ge(ge(ge(ge({},je.XSmall,22),je.Small,28),je.Default,36),je.Large,48),_r=function(e){return(Qr[e]-Jr(e)-2)/2},et=ge(ge(ge(ge({},je.XSmall,{y:_r(je.XSmall),xLeftWithChip:$[25],xLeftWithoutChip:$[200],xRight:$[100]}),je.Small,{y:_r(je.Small),xLeftWithChip:$[100],xLeftWithoutChip:$[200],xRight:$[100]}),je.Default,{y:_r(je.Default),xLeftWithChip:$[150],xLeftWithoutChip:$[300],xRight:$[200]}),je.Large,{y:_r(je.Large),xLeftWithChip:$[300],xLeftWithoutChip:$[300],xRight:$[200]}),nt=$[400],rt=function(e){return d(gr||(gr=ye(["\n font-family: ",";\n width: 100%;\n min-width: ","px;\n "])),_.default,Ye[e]+2*et[e].xLeftWithChip+nt+2)},tt=d(br||(br=ye(["\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"])),$[200],ee.default,ee.default),at=ge(ge({},W.Light,d(vr||(vr=ye(["\n color: ",";\n background-color: ",";\n "])),ne.light.text.primary.default,ne.light.background.primary.default)),W.Dark,d(yr||(yr=ye(["\n color: ",";\n background-color: ",";\n "])),ne.dark.text.primary.default,te.gray.dark4)),lt=function(e,n){return d(xr||(xr=ye(["\n padding-top: ","px;\n padding-bottom: ","px;\n padding-left: ",";\n padding-right: ","px;\n"])),et[e].y,et[e].y,"".concat(n?et[e].xLeftWithChip:et[e].xLeftWithoutChip,"px"),et[e].xRight)},ot=function(e){return d(kr||(kr=ye(["\n cursor: not-allowed;\n color: ",";\n background-color: ",";\n border-color: ",";\n"])),ne[e].text.disabled.default,ne[e].background.disabled.default,ne[e].border.disabled.default)},it=function(e){return ge(ge(ge({},ze.Error,d(wr||(wr=ye(["\n border-color: ",";\n "])),ne[e].border.error.default)),ze.None,d(Er||(Er=ye(["\n border-color: ",";\n "])),ne[e].border.primary.default)),ze.Valid,d(Cr||(Cr=ye(["\n border-color: ",";\n "])),ne[e].border.success.default))},ct=ge(ge({},W.Light,d(Nr||(Nr=ye(["\n &:focus-within {\n border-color: transparent;\n box-shadow: ",";\n }\n "])),re[W.Light].input)),W.Dark,d(Sr||(Sr=ye(["\n &:focus-within {\n border-color: transparent;\n box-shadow: ",";\n }\n "])),re[W.Dark].input)),st=d(Or||(Or=ye(["\n display: flex;\n align-items: center;\n"]))),ut=ge(ge(ge(ge({},je.XSmall,d(Lr||(Lr=ye(["\n gap: ","px;\n "])),$[100])),je.Small,d(Dr||(Dr=ye(["\n gap: ","px;\n "])),$[200])),je.Default,d(Mr||(Mr=ye(["\n gap: ","px;\n "])),$[200])),je.Large,d(jr||(jr=ye(["\n gap: ","px;\n "])),$[200])),dt=function(e){var n=e.overflow,r=e.size,t=d(Ir||(Ir=ye(["\n flex-grow: 1;\n width: 100%;\n "])));switch(n){case Ie.scrollX:return d(zr||(zr=ye(["\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,Jr(r),Ze);case Ie.expandY:return d(Pr||(Pr=ye(["\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,$r,Jr(r),3*Jr(r),$r)}},pt=d(Fr||(Fr=ye(["\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"])),_.default,$[100]),ft=ge(ge({},W.Light,d(Ar||(Ar=ye(["\n &::placeholder {\n color: ",";\n }\n "])),te.gray.base)),W.Dark,d(Tr||(Tr=ye(["\n &::placeholder {\n color: ",";\n }\n "])),te.gray.dark1)),mt=ge(ge({},W.Light,d(Rr||(Rr=ye(["\n &::placeholder {\n color: ",";\n }\n "])),te.gray.base)),W.Dark,d(Wr||(Wr=ye(["\n &::placeholder {\n color: ",";\n }\n "])),te.gray.dark1)),ht=function(e){return d(Xr||(Xr=ye(["\n height: ","px;\n font-size: ","px;\n line-height: ","px;\n min-width: ","px;\n"])),Jr(e),Ye[e],Ke[e],Ye[e])},gt=function(e){return d(Gr||(Gr=ye(["\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")},bt=function(e,n){var r,t=null!==(r=null==n?void 0:n.length)&&void 0!==r?r:0;return d(Vr||(Vr=ye(["\n width: ","px;\n max-width: 100%;\n "])),t*Ye[e])},vt=d(Hr||(Hr=ye(["\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"])),nt/2),yt=d(qr||(qr=ye(["\n height: ","px;\n width: ","px;\n"])),nt,nt),xt=d(Zr||(Zr=ye(["\n margin-bottom: ","px;\n display: flex;\n flex-direction: column;\n"])),$[100]),kt=d(Kr||(Kr=ye(["\n font-size: ","px;\n line-height: ","px;\n"])),J.large.fontSize,J.large.lineHeight),wt=ge(ge({},W.Light,d(Yr||(Yr=ye(["\n ::after {\n box-shadow: 0px 0px 7px 5px ",";\n }\n "])),le(.85,te.black))),W.Dark,d(Br||(Br=ye(["\n ::after {\n width: 95%;\n box-shadow: 0px -7px 12px 5px rgb(0 0 0 / 50%);\n }\n "])))),Et=function(e){return ne[e].icon.primary.default},Ct=function(e){return ne[e].icon.disabled.default},Nt=["children","label","description","placeholder","aria-label","disabled","size","darkMode","state","errorMessage","successMessage","searchState","searchEmptyMessage","searchErrorMessage","searchLoadingMessage","filteredOptions","onFilter","clearable","onClear","overflow","multiselect","initialValue","inputValue","onInputChange","onChange","value","chipTruncationLocation","chipCharacterLimit","className","usePortal","portalClassName","portalContainer","portalRef","scrollContainer","popoverZIndex"],St=["className","glyph","disabled"];function Ot(n){var r=n.children,c=n.label,s=n.description,u=n.placeholder,d=void 0===u?"Select":u,f=n["aria-label"],h=n.disabled,E=void 0!==h&&h,C=n.size,O=void 0===C?je.Default:C,D=n.darkMode,T=n.state,W=void 0===T?"none":T,V=n.errorMessage,Z=void 0===V?N.error:V,K=n.successMessage,Y=void 0===K?N.success:K,B=n.searchState,U=void 0===B?"unset":B,J=n.searchEmptyMessage,$=void 0===J?"No results found":J,Q=n.searchErrorMessage,_=void 0===Q?"Could not get results!":Q,ee=n.searchLoadingMessage,ne=void 0===ee?"Loading results...":ee,re=n.filteredOptions,te=n.onFilter,ae=n.clearable,le=void 0===ae||ae,oe=n.onClear,ie=n.overflow,ce=void 0===ie?Ie.expandY:ie,se=n.multiselect,ue=void 0!==se&&se,de=n.initialValue,pe=n.inputValue,me=n.onInputChange,ye=n.onChange,ke=n.value,we=n.chipTruncationLocation,Ee=n.chipCharacterLimit,ze=void 0===Ee?12:Ee,Pe=n.className,Fe=n.usePortal,Ae=void 0===Fe||Fe,Te=n.portalClassName,Re=n.portalContainer,We=n.portalRef,Xe=n.scrollContainer,Ge=n.popoverZIndex,Ve=ve(n,Nt),He=A(D),Ze=He.darkMode,Ke=He.theme,Ye=M({prefix:"option"}),Be=M({prefix:"chip"}),Ue=L({prefix:"combobox-input"}),$e=L({prefix:"combobox-label"}),Qe=L({prefix:"combobox-menu"}),_e=o(null),en=o(null),nn=o(null),rn=o(null),tn=o(null),an=xe(i(!1),2),ln=an[0],on=an[1],cn=j(ln),sn=xe(i(null),2),un=sn[0],dn=sn[1],pn=xe(i(null),2),fn=pn[0],hn=pn[1],gn=j(fn),bn=xe(i(null!=pe?pe:""),2),vn=bn[0],yn=bn[1];t((function(){w(pe)||yn(pe)}),[pe]);var xn=function(e){yn(e)},kn=j(vn),wn=xe(i(null),2),En=wn[0],Cn=wn[1],Nn=xe(i(!1),2),Sn=Nn[0],On=Nn[1],Ln=ue&&v(fn)&&fn.length>0?void 0:d,Dn=function(){return on(!1)},jn=function(){return on(!0)},In=a((function(){return _n(r)}),[r]),zn=l((function(e){return!ue||"string"!=typeof e&&"number"!=typeof e?!ue&&v(e)&&G.error("Error in Combobox: multiselect is set to `false`, but received an Array value"):G.error("Error in Combobox: multiselect is set to `true`, but received a ".concat(he(e),' value: "').concat(e,'"')),ue&&v(e)}),[ue]),Pn=l((function(e){!E&&rn&&rn.current&&(rn.current.focus(),w(e)||rn.current.setSelectionRange(e,e))}),[E]),Fn=l((function(e){if(zn(fn)){var n=g(fn),r=ye,t={diffType:"delete",value:null!=e?e:fn};x(e)?n.length=0:fn.includes(e)?n.splice(n.indexOf(e),1):(n.push(e),t.diffType="insert",xn("")),hn(n),null==r||r(n,t)}else{var a=e,l=ye;hn(a),null==l||l(a)}}),[zn,ye,fn]),An=l((function(e){var n,r,t,a;return function(e,n){return Array.isArray(n)?n.includes(e):e===n}((r=In,(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:""),fn)}),[In,fn]),Tn=l((function(e){var n="string"==typeof e?e:e.value;return re&&re.length>0?re.includes(n):!!An(vn)||("string"==typeof e?nr(n,In):e.displayName).toLowerCase().includes(vn.toLowerCase())}),[re,An,vn,In]),Rn=a((function(){return In.filter(Tn)}),[In,Tn]),Wn=l((function(e){return!!e&&!!In.find((function(n){return n.value===e}))}),[In]),Xn=l((function(e){return Rn?Rn.findIndex((function(n){return n.value===e})):-1}),[Rn]),Gn=l((function(e){if(Rn&&Rn.length>=e){var n=Rn[e];return n?n.value:void 0}}),[Rn]),Vn=l((function(){return zn(fn)?fn.findIndex((function(e){var n;return null===(n=Be(e))||void 0===n||null===(n=n.current)||void 0===n?void 0:n.contains(document.activeElement)})):-1}),[Be,zn,fn]),Hn=xe(i(),2),qn=Hn[0],Zn=Hn[1],Kn=l((function(e){var n,r=null!==(n=null==Rn?void 0:Rn.length)&&void 0!==n?n:0,t=r-1>0?r-1:0,a=Xn(un);switch(e&&ln&&(Cn(null),Pn()),e){case"next":var l=Gn(a+1<r?a+1:0);dn(null!=l?l:null);break;case"prev":var o=Gn(a-1>=0?a-1:t);dn(null!=o?o:null);break;case"last":var i=Gn(t);dn(null!=i?i:null);break;default:var c=Gn(0);dn(null!=c?c:null)}}),[un,Xn,Gn,ln,Pn,null==Rn?void 0:Rn.length]),Yn=l((function(e,n){if(zn(fn))switch(e){case"next":var r=null!=n?n:Vn(),t=r+1<fn.length?r+1:fn.length-1,a=fn[t];Cn(a);break;case"prev":var l=null!=n?n:Vn(),o=l>0?l-1:l<0?fn.length-1:0,i=fn[o];Cn(i);break;case"first":var c=fn[0];Cn(c);break;case"last":var s=fn[fn.length-1];Cn(s);break;default:Cn(null)}}),[Vn,zn,fn]),Bn=l((function(e,n){switch(e&&dn(null),e){case"right":switch(qn){case Ce:var r,t,a;if((null===(r=rn.current)||void 0===r?void 0:r.selectionEnd)===(null===(t=rn.current)||void 0===t?void 0:t.value.length))null===(a=en.current)||void 0===a||a.focus();break;case Se:case Le:case Oe:if(qn===Oe||1===(null==fn?void 0:fn.length)){Pn(0),Yn(null),n.preventDefault();break}Yn("next")}break;case"left":switch(qn){case Ne:var l;n.preventDefault(),Pn(null==rn||null===(l=rn.current)||void 0===l?void 0:l.value.length);break;case Ce:case Le:case Oe:if(zn(fn)){var o;if(qn===Ce&&0!==(null===(o=rn.current)||void 0===o?void 0:o.selectionStart))break;Yn("prev")}}break;default:Yn(null)}}),[qn,zn,fn,Pn,Yn]);t((function(){vn!==kn&&Kn("first")}),[vn,ln,kn,Kn]),I(un?Ye(un):void 0,tn);var Un=l((function(n){if(X(n,"ComboboxOption")){var r=Qn(n.props),t=r.value,a=r.displayName;if(Tn(t)){var l=n.props,o=l.className,i=l.glyph,c=l.disabled,s=ve(l,St),u=In.findIndex((function(e){return e.value===t})),d=un===t,p=zn(fn)?fn.includes(t):fn===t,f=Ye(t);return e.createElement(mr,be({},s,{value:t,displayName:a,isFocused:d,isSelected:p,disabled:c,setSelected:function(){dn(t),Fn(t),Pn(),t===fn&&Dn()},glyph:i,className:o,index:u,ref:f}))}}else if(X(n,"ComboboxGroup")){var m=e.Children.map(n.props.children,Un);if(m&&(null==m?void 0:m.length)>0)return e.createElement(mn,{label:n.props.label,className:n.props.className},e.Children.map(m,Un))}}),[In,Ye,un,zn,fn,Pn,Tn,Fn]),Jn=a((function(){return e.Children.map(r,Un)}),[r,Un]),rr=a((function(){if(zn(fn))return fn.filter(Wn).map((function(n,r){var t=nr(n,In),a=En===n,l=Be(n),o=r>=fn.length-1;return e.createElement(Je,{key:n,displayName:t,isFocused:a,onRemove:function(){o?(Pn(),Yn(null)):Yn("next",r),Fn(n)},onFocus:function(){Cn(n)},ref:l})}))}),[zn,fn,Wn,In,En,Be,Fn,Pn,Yn]),tr=a((function(){return In.some((function(e){return e.hasGlyph}))}),[In]),ar=l((function(){var e=Rn.find((function(e){return e.displayName===vn||e.value===vn}));if(!ke&&e)Fn(e.value);else if(!zn(fn)){var n,r=null!==(n=nr(fn,In))&&void 0!==n?n:gn;xn(r)}}),[In,vn,zn,gn,fn,Fn,ke,Rn]),lr=l((function(){if(Ur(fn)){if(zn(fn))gr(ce);else if(!zn(fn)){var e,n=null!==(e=nr(fn,In))&&void 0!==e?e:"";xn(n),Dn()}}else xn("")}),[In,zn,fn,ce]);t((function(){if(de)if(v(de)){var e,n=null!==(e=de.filter((function(e){return Wn(e)})))&&void 0!==e?e:[];hn(n)}else Wn(de)&&hn(de);else hn(function(e){return e?[]:null}(ue))}),[]),t((function(){if(!w(ke)&&ke!==kn)if(x(ke))hn(null);else if(zn(ke)){var e=ke.filter(Wn);hn(e)}else hn(Wn(ke)?ke:null)}),[zn,Wn,kn,ke]),t((function(){!w(gn)&&(v(fn)&&!x(gn)||k(fn)||x(fn))&&!y(fn,gn)&&lr()}),[lr,gn,fn]),t((function(){!ln&&cn&&ar()}),[ln,cn,ar]);var or=xe(i(0),2),ir=or[0],cr=or[1];t((function(){var e,n;cr(null!==(e=null===(n=_e.current)||void 0===n?void 0:n.clientWidth)&&void 0!==e?e:0)}),[_e,ln,un,fn]);z(Dn,[tn,_e],ln);var sr=zn(fn)&&!!fn.length,ur=b((function(e){On($n(e.target))}),50,{leading:!0}),dr=l((function(e){ce===Ie.expandY&&ur(e)}),[ur,ce]);t((function(){nn.current&&On($n(nn.current))}),[]);var pr,fr=fe({popoverZIndex:Ge},Ae?{usePortal:Ae,portalClassName:Te,portalContainer:Re,portalRef:We,scrollContainer:Xe}:{usePortal:Ae}),hr={disabled:E,errorMessage:Z,size:O,state:W,successMessage:Y};return e.createElement(F,{darkMode:Ze},e.createElement(qe.Provider,{value:{multiselect:ue,size:O,withIcons:tr,disabled:E,isOpen:ln,state:W,searchState:U,chipTruncationLocation:we,chipCharacterLimit:ze,inputValue:vn,overflow:ce,popoverZIndex:Ge}},e.createElement("div",be({className:p(rt(O),Pe)},Ve),(c||s)&&e.createElement("div",{className:xt},c&&e.createElement(H,{id:$e,htmlFor:Ue,darkMode:Ze,disabled:E,className:p(ge({},kt,O===je.Large))},c),s&&e.createElement(q,{darkMode:Ze,disabled:E,className:p(ge({},kt,O===je.Large))},s)),e.createElement("div",{ref:_e,role:"combobox","aria-expanded":ln,"aria-controls":Qe,"aria-owns":Qe,tabIndex:-1,onMouseDown:function(e){E&&e.preventDefault()},onClick:function(e){if(e.target!==rn.current){var n=0;if(rn.current)n=e.nativeEvent.offsetX>rn.current.offsetLeft+rn.current.clientWidth?vn.length:0;Pn(n)}jn()},onFocus:function(e){gr(ce),Zn(function(e){var n,r,t,a;if(!e)return;if(null!==(n=rn.current)&&void 0!==n&&n.contains(e))return Ce;if(null!==(r=en.current)&&void 0!==r&&r.contains(e))return Ne;var l=zn(fn)?fn.findIndex((function(n){var r;return null===(r=Be(n))||void 0===r||null===(r=r.current)||void 0===r?void 0:r.contains(e)})):-1;if(zn(fn)){if(0===l)return Se;if(l===fn.length-1)return Oe;if(l>0)return Le}if(null!==(t=tn.current)&&void 0!==t&&t.contains(e))return Me;if(null!==(a=_e.current)&&void 0!==a&&a.contains(e))return De}(e.target))},onKeyDown:function(e){var n,r,t=null===(n=tn.current)||void 0===n?void 0:n.contains(document.activeElement);if((null===(r=_e.current)||void 0===r?void 0:r.contains(document.activeElement))||t){if(e.ctrlKey||e.shiftKey||e.altKey)return;switch(e.key){case R.Tab:switch(qn){case"Input":Ur(fn)||(Dn(),Kn("first"),Yn(null));break;case"LastChip":Yn(null)}break;case R.Escape:Dn(),Kn("first");break;case R.Enter:ln?!ln||qn!==Ce||x(un)||function(e){if("string"==typeof e){var n=er(e,In);return!(null==n||!n.isDisabled)}return!!e.isDisabled}(un)?qn===Ne&&(Fn(null),Pn()):Fn(un):jn();break;case R.Backspace:var a;if(zn(fn))"Input"===qn&&0===(null===(a=rn.current)||void 0===a?void 0:a.selectionStart)&&Yn("last");jn();break;case R.ArrowDown:ln?(e.preventDefault(),Kn("next")):jn();break;case R.ArrowUp:ln?(e.preventDefault(),Kn("prev")):jn();break;case R.ArrowRight:Bn("right",e);break;case R.ArrowLeft:Bn("left",e);break;default:ln||jn()}}},onTransitionEnd:function(){var e,n;cr(null!==(e=null===(n=_e.current)||void 0===n?void 0:n.clientWidth)&&void 0!==e?e:0)},className:p(tt,at[Ke],lt(O,sr),it(Ke)[W],ge(ge(ge({},ct[Ke],(pr=Ce,pr===qn)),ot(Ke),E),wt[Ke],Sn))},e.createElement("div",{onScroll:dr,ref:nn,className:dt({size:O,overflow:ce})},rr,e.createElement("input",{"aria-label":null!=f?f:c,"aria-autocomplete":"list","aria-controls":Qe,"aria-labelledby":$e,ref:rn,id:Ue,className:p(pt,ht(O),ft[Ke],gt(ln),ge(ge({},bt(O,vn),zn(fn)),mt[Ke],E)),placeholder:Ln,"aria-disabled":E,readOnly:E,onChange:function(e){xn(e.target.value),null==te||te(e.target.value),null==me||me(e)},value:vn,autoComplete:"off"})),e.createElement("div",{className:p(st,ut[O])},le&&Ur(fn)&&!E&&e.createElement(P,{"aria-label":"Clear selection",disabled:E,ref:en,onClick:function(e){E||(e.stopPropagation(),Fn(null),null==oe||oe(e),null==te||te(""),Pn())},onFocus:function(){dn(null)},className:p(vt),darkMode:Ze},e.createElement(m,{glyph:"XWithCircle"})),e.createElement(m,{glyph:"CaretDown",className:yt,fill:p(ge(ge({},Et(Ke),!E),Ct(Ke),E))}))),e.createElement(S,hr),e.createElement(Mn,be({id:Qe,labelId:$e,refEl:_e,ref:tn,menuWidth:ir,searchLoadingMessage:ne,searchErrorMessage:_,searchEmptyMessage:$},fr),Jn))));function gr(e){nn&&nn.current&&(e===Ie.scrollX&&(nn.current.scrollLeft=nn.current.scrollWidth),e===Ie.expandY&&(nn.current.scrollTop=nn.current.scrollHeight))}}Ot.propTypes={multiselect:E.bool,value:E.oneOfType([E.string,E.arrayOf(E.string)]),initialValue:E.oneOfType([E.string,E.arrayOf(E.string)]),overflow:E.oneOf(Object.values(Ie)),darkMode:E.bool,label:E.string,"aria-label":E.string,children:E.node,onChange:E.func,chipCharacterLimit:E.number,chipTruncationLocation:E.oneOf(Object.values(K)),onClear:E.func,onFilter:E.func,clearable:E.bool,searchLoadingMessage:E.string,searchErrorMessage:E.string,searchEmptyMessage:E.string,searchState:E.oneOf(Object.values(Pe)),errorMessage:E.string,state:E.oneOf(Object.values(ze)),size:E.oneOf(Object.values(je)),disabled:E.bool,description:E.string,placeholder:E.string,filteredOptions:E.arrayOf(E.string),popoverZIndex:E.number,usePortal:E.bool,scrollContainer:E.elementType,portalContainer:E.elementType,portalRef:E.shape({current:"undefined"!=typeof window?E.instanceOf(Element):E.any}),portalClassName:E.string};var Lt,Dt=d(Lt||(Lt=ye(["\n width: 256px;\n padding-block: 64px;\n display: flex;\n"]))),Mt=["apple","banana"],jt={title:"Components/Combobox",component:Ot,decorators:[function(n){return e.createElement("div",{className:Dt},e.createElement(n,null))}],parameters:{default:"LiveExample",controls:{exclude:[].concat(ke(s),["as","filteredOptions","initialValue","setError","value","children"])},generate:{storyNames:["SingleSelect","MultiSelect","DisabledInput"],combineArgs:{darkMode:[!1,!0],clearable:[!0,!1],description:[void 0,"Please pick fruit(s)"],label:[void 0,"Choose a fruit"],state:Object.values(ze),size:Object.values(je)},excludeCombinations:[["description",{label:void 0}],{clearable:!1,value:void 0},{multiselect:!0,value:"apple"},{multiselect:!1,value:Mt}]}},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(hr,{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(hr,{key:"banana",value:"banana",displayName:"Banana"}),e.createElement(hr,{key:"carrot",value:"carrot",displayName:"Carrot",disabled:!0}),e.createElement(hr,{key:"pomegranate",value:"pomegranate",displayName:"Pomegranate",glyph:n?e.createElement(m,{glyph:"Warning"}):void 0,description:"Watch out, I stain everything I touch LOL",disabled:!0}),e.createElement(hr,{key:"plantain",value:"plantain",displayName:"Plantain",glyph:n?e.createElement(m,{glyph:"Connect"}):void 0,description:"Don't confuse me with a banana",onClick:function(){return console.log("I was clicked")}}),e.createElement(hr,{key:"paragraph",value:"paragraph",displayName:"Nullam quis risus eget urna mollis ornare vel eu leo. Vestibulum id ligula porta felis euismod semper."}),e.createElement(hr,{key:"hash",value:"hash",displayName:"5f4dcc3b5aa765d61d8327deb882cf995f4dcc3b5aa765d61d8327deb882cf99"}),e.createElement(hr,{key:"dragonfruit",value:"dragonfruit",displayName:"Dragonfruit",description:"Rawr"}),e.createElement(hr,{key:"eggplant",value:"eggplant",displayName:"Eggplant"}),e.createElement(hr,{key:"fig",value:"fig",displayName:"Fig"}),e.createElement(hr,{key:"grape",value:"grape",displayName:"Grape"}),e.createElement(hr,{key:"honeydew",value:"honeydew",displayName:"Honeydew"}),e.createElement(hr,{key:"iceberg-lettuce",value:"iceberg-lettuce",displayName:"Iceberg lettuce"}),e.createElement(hn,{key:"peppers",label:"Peppers"},e.createElement(hr,{key:"cayenne",value:"cayenne",displayName:"Cayenne"}),e.createElement(hr,{key:"ghost-pepper",value:"ghost-pepper",displayName:"Ghost pepper"}),e.createElement(hr,{key:"habanero",value:"habanero",displayName:"Habanero"}),e.createElement(hr,{key:"jalapeno",value:"jalapeno",displayName:"Jalapeño"}),e.createElement(hr,{key:"red-pepper",value:"red-pepper",displayName:"Red pepper"}),e.createElement(hr,{key:"scotch-bonnet",value:"scotch-bonnet",displayName:"Scotch bonnet",description:"Don't touch your eyes"}))]}()},argTypes:{darkMode:c.darkMode,multiselect:{control:"boolean"},disabled:{control:"boolean"},clearable:{control:"boolean"},label:{control:"text"},description:{control:"text"},placeholder:{control:"text"},inputValue:{control:"text"},size:{options:Object.values(je),control:"select"},state:{options:Object.values(ze),control:"select"},errorMessage:{control:"text"},searchEmptyMessage:{control:"text"},searchState:{options:Object.values(Pe),control:"select"},searchErrorMessage:{control:"text",if:{arg:"searchState",eq:Pe.Error}},searchLoadingMessage:{control:"text",if:{arg:"searchState",eq:Pe.Loading}},chipTruncationLocation:{options:Object.values(K),control:"select",if:{arg:"multiselect"}},chipCharacterLimit:{control:"number",if:{arg:"multiselect"}},overflow:{options:Object.values(Ie),control:"select",if:{arg:"multiselect"}}}},It=function(n){return e.createElement(e.Fragment,null,n.multiselect?e.createElement(Ot,be({key:"multi"},n,{multiselect:!0})):e.createElement(Ot,be({key:"single"},n,{multiselect:!1})))};It.parameters={chromatic:{disableSnapshot:!0}};var zt=function(){var n=xe(i(null),2),r=n[0],t=n[1];return e.createElement("div",null,e.createElement(Ot,{multiselect:!1,label:"Choose a fruit",description:"Please pick one",placeholder:"Select fruit",onChange:function(e){t(e)},value:r},e.createElement(hr,{value:"apple"}),e.createElement(hr,{value:"banana"}),e.createElement(hr,{value:"carrot"})),e.createElement(u,{onClick:function(){return t("carrot")}},"Select Carrot"))};zt.parameters={chromatic:{disableSnapshot:!0}};var Pt=function(){var n=["apple","banana","carrot","dragonfruit","eggplant","fig","grape","honeydew","iceberg-lettuce","jalapeño"],r=xe(i(["carrot","grape"]),2),t=r[0],a=r[1];return e.createElement(Ot,{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(hr,{key:n,value:n})})))};Pt.parameters={chromatic:{disableSnapshot:!0}};var Ft=function(){return e.createElement(e.Fragment,null)};Ft.args={multiselect:!1},Ft.parameters={generate:{combineArgs:{value:[void 0,"apple"]}}};var At=function(){return e.createElement(e.Fragment,null)};At.args={multiselect:!0},At.parameters={generate:{combineArgs:{value:[void 0,Mt]}}};var Tt=function(){return e.createElement(e.Fragment,null)};Tt.args={disabled:!0},Tt.parameters={generate:{combineArgs:{darkMode:[!0,!1]}}};export{zt as ControlledSingleSelect,Tt as DisabledInput,Pt as ExternalFilter,It as LiveExample,At as MultiSelect,Ft as SingleSelect,jt as default};
1
+ import e,{createContext as n,useContext as t,useEffect as r,useMemo as a,useCallback as l,useRef as o,useState as i}from"react";import{storybookArgTypes as c,storybookExcludedControlParams as s}from"@lg-tools/storybook-utils";import u from"@leafygreen-ui/button";import{css as d,cx as p,keyframes as f}from"@leafygreen-ui/emotion";import m,{isComponentGlyph as h}from"@leafygreen-ui/icon";import g from"lodash/clone";import b from"lodash/debounce";import v from"lodash/isArray";import y from"lodash/isEqual";import x from"lodash/isNull";import k from"lodash/isString";import w from"lodash/isUndefined";import E from"prop-types";import{FormFieldState as C,DEFAULT_MESSAGES as N,FormFieldFeedback as S}from"@leafygreen-ui/form-field";import{useForwardedRef as L,useIdAllocator as O,useAvailableSpace as D,useDynamicRefs as M,usePrevious as j,useAutoScroll as I,useBackdropClick as z}from"@leafygreen-ui/hooks";import P from"@leafygreen-ui/icon-button";import F,{useDarkMode as A}from"@leafygreen-ui/leafygreen-provider";import{createUniqueClassName as T,keyMap as R,Theme as W,isComponentType as X,consoleOnce as G}from"@leafygreen-ui/lib";import{Error as V,Label as H,Description as Z}from"@leafygreen-ui/typography";import{chipTextClassName as q,TruncationLocation as B,Chip as K,BaseFontSize as Y,Variant as U}from"@leafygreen-ui/chip";import{typeScales as J,spacing as $,fontWeights as Q,fontFamilies as _,color as ee,transitionDuration as ne,focusRing as te}from"@leafygreen-ui/tokens";import{palette as re}from"@leafygreen-ui/palette";import ae from"@leafygreen-ui/popover";import{transparentize as le}from"polished";import{descriptionClassName as oe,titleClassName as ie,leftGlyphClassName as ce,InputOption as se,InputOptionContent as ue}from"@leafygreen-ui/input-option";import de from"lodash/kebabCase";import pe from"lodash/escapeRegExp";import fe from"@leafygreen-ui/checkbox";function me(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function he(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?me(Object(t),!0).forEach((function(n){ve(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):me(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function ge(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n);if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof n?n:n+""}function be(e){return be="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},be(e)}function ve(e,n,t){return(n=ge(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function ye(){return ye=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},ye.apply(this,arguments)}function xe(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}function ke(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}function we(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,a,l,o,i=[],c=!0,s=!1;try{if(l=(t=t.call(e)).next,0===n);else for(;!(c=(r=l.call(t)).done)&&(i.push(r.value),i.length!==n);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=t.return&&(o=t.return(),Object(o)!==o))return}finally{if(s)throw a}}return i}}(e,n)||Ce(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 Ee(e){return function(e){if(Array.isArray(e))return Ne(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ce(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 Ce(e,n){if(e){if("string"==typeof e)return Ne(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Ne(e,n):void 0}}function Ne(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var Se="Input",Le="ClearButton",Oe="FirstChip",De="LastChip",Me="MiddleChip",je="Combobox",Ie="Menu",ze={XSmall:"xsmall",Small:"small",Default:"default",Large:"large"},Pe={expandY:"expand-y",scrollX:"scroll-x",expandX:"expand-x"},Fe=C,Ae={Unset:"unset",Error:"error",Loading:"loading"};var Te,Re,We,Xe,Ge,Ve,He,Ze,qe,Be=n({multiselect:!1,size:ze.Default,withIcons:!1,disabled:!1,isOpen:!1,state:Fe.None,searchState:Ae.Unset,overflow:Pe.expandY}),Ke=T("combobox-chip"),Ye=ve(ve(ve(ve({},ze.XSmall,16),ze.Small,J.body1.lineHeight),ze.Default,J.body1.lineHeight),ze.Large,J.body2.lineHeight),Ue=ve(ve(ve(ve({},ze.XSmall,J.body1.fontSize),ze.Small,J.body1.fontSize),ze.Default,J.body1.fontSize),ze.Large,J.body2.fontSize),Je=ve(ve(ve(ve({},ze.XSmall,1),ze.Small,0),ze.Default,2),ze.Large,4),$e=ve(ve(ve(ve({},ze.XSmall,d(Te||(Te=ke(["\n font-size: ","px;\n line-height: ","px;\n\n ."," {\n padding-block: ","px;\n }\n "])),Ue[ze.XSmall],Ye[ze.XSmall],q,Je[ze.XSmall])),ze.Small,d(Re||(Re=ke(["\n font-size: ","px;\n line-height: ","px;\n\n ."," {\n padding-block: ","px;\n }\n "])),Ue[ze.Small],Ye[ze.Small],q,Je[ze.Small])),ze.Default,d(We||(We=ke(["\n font-size: ","px;\n line-height: ","px;\n\n ."," {\n padding-block: ","px;\n }\n "])),Ue[ze.Default],Ye[ze.Default],q,Je[ze.Default])),ze.Large,d(Xe||(Xe=ke(["\n font-size: ","px;\n line-height: ","px;\n\n ."," {\n padding-inline-end: 10px;\n padding-block: ","px;\n }\n "])),Ue[ze.Large],Ye[ze.Large],q,Je[ze.Large])),Qe=e.forwardRef((function(n,a){var l,o=n.displayName,i=n.isFocused,c=n.onRemove,s=n.onFocus,u=t(Be),d=u.size,f=u.disabled,m=u.overflow,h=u.chipTruncationLocation,g=void 0===h?B.End:h,b=u.chipCharacterLimit,v=void 0===b?12:b,y=u.popoverZIndex,x=m===Pe.scrollX?B.None:g,k=L(a,null),w=null===(l=k.current)||void 0===l?void 0:l.querySelector("button");r((function(){i&&!f&&(null==w||w.focus())}),[f,w,i]);return e.createElement(K,{label:o,className:p(Ke,$e[d]),role:"option","aria-selected":i,"data-testid":"lg-combobox-chip",onClick:function(e){null!=w&&w.contains(e.target)||s()},onKeyDown:function(e){f||e.key!==R.Delete&&e.key!==R.Backspace&&e.key!==R.Enter&&e.key!==R.Space||c()},onDismiss:function(){f||c()},baseFontSize:Y.Body1,chipCharacterLimit:v,chipTruncationLocation:x,popoverZIndex:y,variant:U.Gray,ref:k,disabled:f,tabIndex:-1})}));Qe.displayName="ComboboxChip";var _e,en,nn,tn,rn,an,ln,on,cn,sn,un,dn,pn,fn,mn=ve(ve({},W.Light,d(Ge||(Ge=ke(["\n padding-top: ","px;\n "])),$[2])),W.Dark,d(Ve||(Ve=ke(["\n padding-top: ","px;\n "])),$[2])),hn=d(He||(He=ke(["\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"])),Q.bold),gn=ve(ve({},W.Light,d(Ze||(Ze=ke(["\n color: ",";\n "])),re.gray.dark1)),W.Dark,d(qe||(qe=ke(["\n color: ",";\n "])),re.gray.light1));function bn(n){var t=n.label,r=n.className,a=n.children,l=A().theme,o=O({prefix:"combobox-group"});return e.Children.count(a)>0?e.createElement("div",{className:p(mn[l],r)},e.createElement("div",{className:p(hn,gn[l]),id:o},t),e.createElement("div",{role:"group","aria-labelledby":o},a)):e.createElement(e.Fragment,null)}function vn(e){throw Error("`ComboboxGroup` must be a child of a `Combobox` instance")}vn.displayName="ComboboxGroup",vn.propTypes={className:E.string,children:E.node.isRequired,label:E.string.isRequired};var yn=ve(ve(ve(ve({},ze.XSmall,{x:12,y:8}),ze.Small,{x:12,y:8}),ze.Default,{x:12,y:8}),ze.Large,{x:12,y:8}),xn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:384;return d(_e||(_e=ke(["\n width: ","px;\n overflow: hidden;\n border-radius: 12px;\n border: 1px solid;\n"])),e)},kn=ve(ve({},W.Light,d(en||(en=ke(["\n box-shadow: 0px 4px 7px ",";\n border-color: ",";\n "])),le(.85,re.black),re.gray.light2)),W.Dark,d(nn||(nn=ke(["\n box-shadow: 0px 4px 7px ",";\n border-color: ",";\n "])),le(.85,re.black),re.gray.dark2)),wn=d(tn||(tn=ke(["\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"])),$[2],_.default);ve(ve({},W.Light,d(rn||(rn=ke(["\n color: ",";\n background-color: ",";\n "])),re.black,re.white)),W.Dark,d(an||(an=ke(["\n color: ",";\n background-color: ",";\n "])),re.gray.light1,re.gray.dark3));var En,Cn=function(e){return d(ln||(ln=ke(["\n background-color: ",";\n"])),ee[e].background.primary.default)},Nn=d(on||(on=ke(["\n position: relative;\n margin: 0;\n padding: 0;\n"]))),Sn=d(cn||(cn=ke(["\n font-family: inherit;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n"]))),Ln=ve(ve({},W.Light,d(sn||(sn=ke(["\n color: ",";\n "])),re.gray.dark3)),W.Dark,d(un||(un=ke(["\n color: ",";\n "])),re.gray.light3)),On=function(e){return d(dn||(dn=ke(["\n font-size: ","px;\n line-height: ","px;\n padding: ","px ","px;\n"])),Ue[e],Ye[e],yn[e].y,yn[e].x)},Dn=f(pn||(pn=ke(["\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n"]))),Mn=d(fn||(fn=ke(["\n animation: "," 1.5s linear infinite;\n"])),Dn),jn=["children","id","refEl","labelId","menuWidth","searchLoadingMessage","searchErrorMessage","searchEmptyMessage"],In=e.forwardRef((function(n,r){var l=n.children,o=n.id,i=n.refEl,c=n.labelId,s=n.menuWidth,u=n.searchLoadingMessage,f=n.searchErrorMessage,h=n.searchEmptyMessage,g=xe(n,jn),b=A(),v=b.darkMode,y=b.theme,x=t(Be),k=x.disabled,E=x.size,C=x.isOpen,N=x.searchState,S=L(r,null),O=D(i),M=w(O)?"unset":"".concat(Math.min(O,256),"px"),j=a((function(){var n=p(Sn,Ln[y],On(E)),t=p(Sn,On(E));switch(N){case"loading":return e.createElement("span",{className:n},e.createElement(m,{glyph:"Refresh",color:v?re.blue.light1:re.blue.base,className:Mn}),u);case"error":return e.createElement(V,{className:t},e.createElement(m,{glyph:"Warning",color:v?re.red.light1:re.red.base}),e.createElement("span",null,f));default:return l&&"object"===be(l)&&"length"in l&&l.length>0?e.createElement("ul",{className:Nn},l):e.createElement("span",{className:n},h)}}),[y,E,N,v,u,f,l,h]);return e.createElement(ae,ye({active:C&&!k,spacing:4,align:"bottom",justify:"middle",refEl:i,adjustOnMutation:!0,className:p(xn(s),kn[y])},g),e.createElement("div",{ref:S,id:o,role:"listbox","aria-labelledby":c,"aria-expanded":C,className:p(wn,Cn(y),d(En||(En=ke(["\n max-height: ",";\n "])),M)),onMouseDownCapture:function(e){return e.preventDefault()}},j))}));In.displayName="ComboboxMenu";var zn,Pn,Fn,An,Tn,Rn,Wn,Xn,Gn,Vn,Hn,Zn,qn,Bn,Kn,Yn,Un,Jn,$n,Qn,_n=function(e){var n=e.scrollHeight;return e.scrollTop<n-e.clientHeight},et=function(e){var n,t=e.value,r=e.displayName;return{value:null!=t?t:de(r),displayName:null!==(n=null!=r?r:t)&&void 0!==n?n:""}},nt=function n(t){return e.Children.toArray(t).reduce((function(e,t){if(X(t,"ComboboxOption")){var r=et(t.props),a=r.value,l=r.displayName,o=t.props,i=o.glyph,c=o.disabled;return[].concat(Ee(e),[{value:a,displayName:l,isDisabled:!!c,hasGlyph:!!i}])}if(X(t,"ComboboxGroup")){var s=t.props.children;if(s)return[].concat(Ee(e),Ee(n(s)))}}),[])},tt=function(e,n){if(e)return n.find((function(n){return n.value===e}))},rt=function(e,n){var t,r;return e?null!==(t=null===(r=tt(e,n))||void 0===r?void 0:r.displayName)&&void 0!==t?t:e:""},at=d(zn||(zn=ke(["\n .",", ."," {\n font-size: ","px;\n line-height: 20px;\n }\n"])),oe,ie,J.body2.fontSize),lt=ve(ve(ve(ve({},ze.XSmall,d(Pn||(Pn=ke(["\n min-width: ","px;\n "])),$[3])),ze.Small,d(Fn||(Fn=ke(["\n min-width: ","px;\n "])),$[3])),ze.Default,d(An||(An=ke(["\n min-width: ","px;\n "])),$[3])),ze.Large,d(Tn||(Tn=ke(["\n min-width: ","px;\n "])),$[4])),ot=d(Rn||(Rn=ke(["\n pointer-events: none;\n gap: 0;\n\n label {\n gap: 0;\n align-items: center;\n }\n"])));d(Wn||(Wn=ke(["\n pointer-events: none;\n"])));var it=function(e){return d(Xn||(Xn=ke(["\n font-weight: ",";\n"])),e?Q.bold:Q.regular)},ct=ve(ve({},W.Light,d(Gn||(Gn=ke(["\n color: ",";\n "])),re.gray.dark1)),W.Dark,d(Vn||(Vn=ke(["\n color: ",";\n "])),re.gray.base)),st=ve(ve({},W.Light,d(Hn||(Hn=ke(["\n color: ",";\n "])),re.blue.dark1)),W.Dark,d(Zn||(Zn=ke(["\n color: ",";\n "])),re.blue.light3)),ut=ve(ve({},W.Light,d(qn||(qn=ke(["\n color: ",";\n "])),re.gray.light1)),W.Dark,d(Bn||(Bn=ke(["\n color: ",";\n "])),re.gray.dark1)),dt=ve(ve({},W.Light,d(Kn||(Kn=ke(["\n color: ",";\n "])),re.blue.base)),W.Dark,d(Yn||(Yn=ke(["\n color: ",";\n "])),re.blue.light1)),pt=ve(ve({},W.Light,d(Un||(Un=ke(["\n color: ",";\n "])),re.gray.light1)),W.Dark,d(Jn||(Jn=ke(["\n color: ",";\n "])),re.gray.dark1)),ft=d($n||($n=ke(["\n ."," {\n align-self: baseline;\n position: relative;\n // aligns the checkbox with the option name\n top: 1px;\n }\n"])),ce),mt=d(Qn||(Qn=ke(["\n ."," {\n // aligns the checkbox with the option name\n top: 3px;\n }\n"])),ce),ht=["glyph","isSelected","displayName","isFocused","setSelected","className","description","value","onClick","disabled"],gt=e.forwardRef((function(n,r){var o=n.glyph,i=n.isSelected,c=n.displayName,s=n.isFocused,u=n.setSelected,d=n.className,f=n.description,g=n.value,b=n.onClick,v=n.disabled,y=void 0!==v&&v,x=xe(n,ht),k=A(),w=k.darkMode,E=k.theme,C=t(Be),N=C.multiselect,S=C.size,D=C.withIcons,M=C.inputValue,j=L(r,null),I=O({prefix:"combobox-option-text"}),z=l((function(e){e.stopPropagation(),y||(u(),null==b||b(e,g))}),[y,b,u,g]),P=a((function(){return function(n){var t=n.withIcons,r=n.isSelected,a=n.glyph,l=n.optionTextId,o=n.disabled,i=n.darkMode,c=n.size,s=n.multiselect,u=n.theme,d=n.isFocused;a&&!h(a)&&console.error("`ComboboxOption` instance did not render icon because it is not a known glyph element.",a);var f=a&&h(a)?e.cloneElement(a,he(he({},a.props),{},{className:p(ct[u],ve(ve({},st[u],d),ut[u],o),a.props.className)})):e.createElement(e.Fragment,null),g=e.createElement(fe,{"aria-labelledby":l,checked:r,tabIndex:-1,disabled:o,darkMode:i,className:ot}),b=e.createElement(m,{glyph:"Checkmark",className:p(lt[c],dt[u],ve({},pt[u],o))});return{leftGlyph:s?t?f:g:t?f:r?b:null,rightGlyph:s?t&&g:t&&r&&b}}({withIcons:D,isSelected:i,glyph:o,theme:E,darkMode:w,size:S,disabled:y,multiselect:N,optionTextId:I,isFocused:s})}),[w,y,o,i,N,I,S,E,D,s]),F=P.leftGlyph,T=P.rightGlyph,R=N&&!D;return e.createElement(se,ye({},x,{as:"li",ref:j,highlighted:s,disabled:y,"aria-label":c,darkMode:w,className:p(ve(ve(ve({},at,S===ze.Large),ft,R),mt,R&&S===ze.Large),d),onClick:z,onKeyDown:z}),e.createElement(ue,{leftGlyph:F,rightGlyph:T,description:f},e.createElement("span",{id:I,className:it(i)},function(n,t,r){if(t&&r){var a=pe(t),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],m=f.length,h=p+f+m,g=new Array(m).fill("");g[0]=e.createElement(r,{key:h},f),i.splice.apply(i,[p,m].concat(Ee(g)))}return e.createElement(e.Fragment,null,i)}return e.createElement(e.Fragment,null,n)}return e.createElement(e.Fragment,null,n)}(c,M,"strong"))))}));function bt(e){throw Error("`ComboboxOption` must be a child of a `Combobox` instance")}gt.displayName="ComboboxOption",bt.displayName="ComboboxOption",bt.propTypes={displayName:E.string,value:E.string,glyph:E.node,disabled:E.bool,className:E.string,description:E.string,onClick:E.func};var vt,yt,xt,kt,wt,Et,Ct,Nt,St,Lt,Ot,Dt,Mt,jt,It,zt,Pt,Ft,At,Tt,Rt,Wt,Xt,Gt,Vt,Ht,Zt,qt,Bt,Kt,Yt,Ut,Jt,$t=function(e){return!w(e)&&!x(e)&&(k(e)||v(e)&&e.length>0)},Qt=function(e){return Ye[e]+2*Je[e]},_t=$[100],er=ve(ve(ve(ve({},ze.XSmall,22),ze.Small,28),ze.Default,36),ze.Large,48),nr=function(e){return(er[e]-Qt(e)-2)/2},tr=ve(ve(ve(ve({},ze.XSmall,{y:nr(ze.XSmall),xLeftWithChip:$[25],xLeftWithoutChip:$[200],xRight:$[100]}),ze.Small,{y:nr(ze.Small),xLeftWithChip:$[100],xLeftWithoutChip:$[200],xRight:$[100]}),ze.Default,{y:nr(ze.Default),xLeftWithChip:$[150],xLeftWithoutChip:$[300],xRight:$[200]}),ze.Large,{y:nr(ze.Large),xLeftWithChip:$[300],xLeftWithoutChip:$[300],xRight:$[200]}),rr=$[400],ar=function(e){return d(vt||(vt=ke(["\n font-family: ",";\n width: 100%;\n min-width: ","px;\n "])),_.default,Ue[e]+2*tr[e].xLeftWithChip+rr+2)},lr=d(yt||(yt=ke(["\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"])),$[200],ne.default,ne.default),or=ve(ve({},W.Light,d(xt||(xt=ke(["\n color: ",";\n background-color: ",";\n "])),ee.light.text.primary.default,ee.light.background.primary.default)),W.Dark,d(kt||(kt=ke(["\n color: ",";\n background-color: ",";\n "])),ee.dark.text.primary.default,re.gray.dark4)),ir=function(e,n){return d(wt||(wt=ke(["\n padding-top: ","px;\n padding-bottom: ","px;\n padding-left: ",";\n padding-right: ","px;\n"])),tr[e].y,tr[e].y,"".concat(n?tr[e].xLeftWithChip:tr[e].xLeftWithoutChip,"px"),tr[e].xRight)},cr=function(e){return d(Et||(Et=ke(["\n cursor: not-allowed;\n color: ",";\n background-color: ",";\n border-color: ",";\n"])),ee[e].text.disabled.default,ee[e].background.disabled.default,ee[e].border.disabled.default)},sr=function(e){return ve(ve(ve({},Fe.Error,d(Ct||(Ct=ke(["\n border-color: ",";\n "])),ee[e].border.error.default)),Fe.None,d(Nt||(Nt=ke(["\n border-color: ",";\n "])),ee[e].border.primary.default)),Fe.Valid,d(St||(St=ke(["\n border-color: ",";\n "])),ee[e].border.success.default))},ur=ve(ve({},W.Light,d(Lt||(Lt=ke(["\n &:focus-within {\n border-color: transparent;\n box-shadow: ",";\n }\n "])),te[W.Light].input)),W.Dark,d(Ot||(Ot=ke(["\n &:focus-within {\n border-color: transparent;\n box-shadow: ",";\n }\n "])),te[W.Dark].input)),dr=d(Dt||(Dt=ke(["\n display: flex;\n align-items: center;\n"]))),pr=ve(ve(ve(ve({},ze.XSmall,d(Mt||(Mt=ke(["\n gap: ","px;\n "])),$[100])),ze.Small,d(jt||(jt=ke(["\n gap: ","px;\n "])),$[200])),ze.Default,d(It||(It=ke(["\n gap: ","px;\n "])),$[200])),ze.Large,d(zt||(zt=ke(["\n gap: ","px;\n "])),$[200])),fr=function(e){var n=e.overflow,t=e.size,r=d(Pt||(Pt=ke(["\n flex-grow: 1;\n width: 100%;\n "])));switch(n){case Pe.scrollX:return d(Ft||(Ft=ke(["\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 "])),r,Qt(t),Ke);case Pe.expandY:return d(At||(At=ke(["\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 "])),r,_t,Qt(t),3*Qt(t),_t)}},mr=d(Tt||(Tt=ke(["\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"])),_.default,$[100]),hr=ve(ve({},W.Light,d(Rt||(Rt=ke(["\n &::placeholder {\n color: ",";\n }\n "])),re.gray.base)),W.Dark,d(Wt||(Wt=ke(["\n &::placeholder {\n color: ",";\n }\n "])),re.gray.dark1)),gr=ve(ve({},W.Light,d(Xt||(Xt=ke(["\n &::placeholder {\n color: ",";\n }\n "])),re.gray.base)),W.Dark,d(Gt||(Gt=ke(["\n &::placeholder {\n color: ",";\n }\n "])),re.gray.dark1)),br=function(e){return d(Vt||(Vt=ke(["\n height: ","px;\n font-size: ","px;\n line-height: ","px;\n min-width: ","px;\n"])),Qt(e),Ue[e],Ye[e],Ue[e])},vr=function(e){return d(Ht||(Ht=ke(["\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")},yr=function(e,n){var t,r=null!==(t=null==n?void 0:n.length)&&void 0!==t?t:0;return d(Zt||(Zt=ke(["\n width: ","px;\n max-width: 100%;\n "])),r*Ue[e])},xr=d(qt||(qt=ke(["\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"])),rr/2),kr=d(Bt||(Bt=ke(["\n height: ","px;\n width: ","px;\n"])),rr,rr),wr=d(Kt||(Kt=ke(["\n margin-bottom: ","px;\n display: flex;\n flex-direction: column;\n"])),$[100]),Er=d(Yt||(Yt=ke(["\n font-size: ","px;\n line-height: ","px;\n"])),J.large.fontSize,J.large.lineHeight),Cr=ve(ve({},W.Light,d(Ut||(Ut=ke(["\n ::after {\n box-shadow: 0px 0px 7px 5px ",";\n }\n "])),le(.85,re.black))),W.Dark,d(Jt||(Jt=ke(["\n ::after {\n width: 95%;\n box-shadow: 0px -7px 12px 5px rgb(0 0 0 / 50%);\n }\n "])))),Nr=function(e){return ee[e].icon.primary.default},Sr=function(e){return ee[e].icon.disabled.default},Lr=["children","label","description","placeholder","aria-label","disabled","size","darkMode","state","errorMessage","successMessage","searchState","searchEmptyMessage","searchErrorMessage","searchLoadingMessage","filteredOptions","onFilter","clearable","onClear","overflow","multiselect","initialValue","inputValue","onInputChange","onChange","value","chipTruncationLocation","chipCharacterLimit","className","usePortal","portalClassName","portalContainer","portalRef","scrollContainer","popoverZIndex"],Or=["className","glyph","disabled"];function Dr(n){var t=n.children,c=n.label,s=n.description,u=n.placeholder,d=void 0===u?"Select":u,f=n["aria-label"],h=n.disabled,E=void 0!==h&&h,C=n.size,L=void 0===C?ze.Default:C,D=n.darkMode,T=n.state,W=void 0===T?"none":T,V=n.errorMessage,q=void 0===V?N.error:V,B=n.successMessage,K=void 0===B?N.success:B,Y=n.searchState,U=void 0===Y?"unset":Y,J=n.searchEmptyMessage,$=void 0===J?"No results found":J,Q=n.searchErrorMessage,_=void 0===Q?"Could not get results!":Q,ee=n.searchLoadingMessage,ne=void 0===ee?"Loading results...":ee,te=n.filteredOptions,re=n.onFilter,ae=n.clearable,le=void 0===ae||ae,oe=n.onClear,ie=n.overflow,ce=void 0===ie?Pe.expandY:ie,se=n.multiselect,ue=void 0!==se&&se,de=n.initialValue,pe=n.inputValue,fe=n.onInputChange,me=n.onChange,ge=n.value,ke=n.chipTruncationLocation,Ee=n.chipCharacterLimit,Ce=void 0===Ee?12:Ee,Ne=n.className,Fe=n.usePortal,Ae=void 0===Fe||Fe,Te=n.portalClassName,Re=n.portalContainer,We=n.portalRef,Xe=n.scrollContainer,Ge=n.popoverZIndex,Ve=xe(n,Lr),He=A(D),Ze=He.darkMode,qe=He.theme,Ke=M({prefix:"option"}),Ye=M({prefix:"chip"}),Ue=O({prefix:"combobox-input"}),Je=O({prefix:"combobox-label"}),$e=O({prefix:"combobox-menu"}),_e=o(null),en=o(null),nn=o(null),tn=o(null),rn=o(null),an=we(i(!1),2),ln=an[0],on=an[1],cn=j(ln),sn=we(i(null),2),un=sn[0],dn=sn[1],pn=we(i(null),2),fn=pn[0],mn=pn[1],hn=j(fn),gn=we(i(null!=pe?pe:""),2),vn=gn[0],yn=gn[1];r((function(){w(pe)||yn(pe)}),[pe]);var xn=function(e){yn(e)},kn=j(vn),wn=we(i(null),2),En=wn[0],Cn=wn[1],Nn=we(i(!1),2),Sn=Nn[0],Ln=Nn[1],On=ue&&v(fn)&&fn.length>0?void 0:d,Dn=function(){return on(!1)},Mn=function(){return on(!0)},jn=a((function(){return nt(t)}),[t]),zn=l((function(e){return!ue||"string"!=typeof e&&"number"!=typeof e?!ue&&v(e)&&G.error("Error in Combobox: multiselect is set to `false`, but received an Array value"):G.error("Error in Combobox: multiselect is set to `true`, but received a ".concat(be(e),' value: "').concat(e,'"')),ue&&v(e)}),[ue]),Pn=l((function(e){!E&&tn&&tn.current&&(tn.current.focus(),w(e)||tn.current.setSelectionRange(e,e))}),[E]),Fn=l((function(e){if(zn(fn)){var n=g(fn),t=me,r={diffType:"delete",value:null!=e?e:fn};x(e)?n.length=0:fn.includes(e)?n.splice(n.indexOf(e),1):(n.push(e),r.diffType="insert",xn("")),mn(n),null==t||t(n,r)}else{var a=e,l=me;mn(a),null==l||l(a)}}),[zn,me,fn]),An=l((function(e){var n,t,r,a;return function(e,n){return Array.isArray(n)?n.includes(e):e===n}((t=jn,(n=e)?null!==(r=null===(a=t.find((function(e){return e.displayName===n})))||void 0===a?void 0:a.value)&&void 0!==r?r:n:""),fn)}),[jn,fn]),Tn=l((function(e){var n="string"==typeof e?e:e.value;return te&&te.length>0?te.includes(n):!!An(vn)||("string"==typeof e?rt(n,jn):e.displayName).toLowerCase().includes(vn.toLowerCase())}),[te,An,vn,jn]),Rn=a((function(){return jn.filter(Tn)}),[jn,Tn]),Wn=l((function(e){return!!e&&!!jn.find((function(n){return n.value===e}))}),[jn]),Xn=l((function(e){return Rn?Rn.findIndex((function(n){return n.value===e})):-1}),[Rn]),Gn=l((function(e){if(Rn&&Rn.length>=e){var n=Rn[e];return n?n.value:void 0}}),[Rn]),Vn=l((function(){return zn(fn)?fn.findIndex((function(e){var n;return null===(n=Ye(e))||void 0===n||null===(n=n.current)||void 0===n?void 0:n.contains(document.activeElement)})):-1}),[Ye,zn,fn]),Hn=we(i(),2),Zn=Hn[0],qn=Hn[1],Bn=l((function(e){var n,t=null!==(n=null==Rn?void 0:Rn.length)&&void 0!==n?n:0,r=t-1>0?t-1:0,a=Xn(un);switch(e&&ln&&(Cn(null),Pn()),e){case"next":var l=Gn(a+1<t?a+1:0);dn(null!=l?l:null);break;case"prev":var o=Gn(a-1>=0?a-1:r);dn(null!=o?o:null);break;case"last":var i=Gn(r);dn(null!=i?i:null);break;default:var c=Gn(0);dn(null!=c?c:null)}}),[un,Xn,Gn,ln,Pn,null==Rn?void 0:Rn.length]),Kn=l((function(e,n){if(zn(fn))switch(e){case"next":var t=null!=n?n:Vn(),r=t+1<fn.length?t+1:fn.length-1,a=fn[r];Cn(a);break;case"prev":var l=null!=n?n:Vn(),o=l>0?l-1:l<0?fn.length-1:0,i=fn[o];Cn(i);break;case"first":var c=fn[0];Cn(c);break;case"last":var s=fn[fn.length-1];Cn(s);break;default:Cn(null)}}),[Vn,zn,fn]),Yn=l((function(e,n){switch(e&&dn(null),e){case"right":switch(Zn){case Se:var t,r,a;if((null===(t=tn.current)||void 0===t?void 0:t.selectionEnd)===(null===(r=tn.current)||void 0===r?void 0:r.value.length))null===(a=en.current)||void 0===a||a.focus();break;case Oe:case Me:case De:if(Zn===De||1===(null==fn?void 0:fn.length)){Pn(0),Kn(null),n.preventDefault();break}Kn("next")}break;case"left":switch(Zn){case Le:var l;n.preventDefault(),Pn(null==tn||null===(l=tn.current)||void 0===l?void 0:l.value.length);break;case Se:case Me:case De:if(zn(fn)){var o;if(Zn===Se&&0!==(null===(o=tn.current)||void 0===o?void 0:o.selectionStart))break;Kn("prev")}}break;default:Kn(null)}}),[Zn,zn,fn,Pn,Kn]);r((function(){vn!==kn&&Bn("first")}),[vn,ln,kn,Bn]),I(un?Ke(un):void 0,rn);var Un=l((function(n){if(X(n,"ComboboxOption")){var t=et(n.props),r=t.value,a=t.displayName;if(Tn(r)){var l=n.props,o=l.className,i=l.glyph,c=l.disabled,s=xe(l,Or),u=jn.findIndex((function(e){return e.value===r})),d=un===r,p=zn(fn)?fn.includes(r):fn===r,f=Ke(r);return e.createElement(gt,ye({},s,{value:r,displayName:a,isFocused:d,isSelected:p,disabled:c,setSelected:function(){dn(r),Fn(r),Pn(),r===fn&&Dn()},glyph:i,className:o,index:u,ref:f}))}}else if(X(n,"ComboboxGroup")){var m=e.Children.map(n.props.children,Un);if(m&&(null==m?void 0:m.length)>0)return e.createElement(bn,{label:n.props.label,className:n.props.className},e.Children.map(m,Un))}}),[jn,Ke,un,zn,fn,Pn,Tn,Fn]),Jn=a((function(){return e.Children.map(t,Un)}),[t,Un]),$n=a((function(){if(zn(fn))return fn.filter(Wn).map((function(n,t){var r=rt(n,jn),a=En===n,l=Ye(n),o=t>=fn.length-1;return e.createElement(Qe,{key:n,displayName:r,isFocused:a,onRemove:function(){o?(Pn(),Kn(null)):Kn("next",t),Fn(n)},onFocus:function(){Cn(n)},ref:l})}))}),[zn,fn,Wn,jn,En,Ye,Fn,Pn,Kn]),Qn=a((function(){return jn.some((function(e){return e.hasGlyph}))}),[jn]),at=l((function(){var e=Rn.find((function(e){return e.displayName===vn||e.value===vn}));if(!ge&&e)Fn(e.value);else if(!zn(fn)){var n,t=null!==(n=rt(fn,jn))&&void 0!==n?n:hn;xn(t)}}),[jn,vn,zn,hn,fn,Fn,ge,Rn]),lt=l((function(){if($t(fn)){if(zn(fn))ht(ce);else if(!zn(fn)){var e,n=null!==(e=rt(fn,jn))&&void 0!==e?e:"";xn(n),Dn()}}else xn("")}),[jn,zn,fn,ce]);r((function(){if(de)if(v(de)){var e,n=null!==(e=de.filter((function(e){return Wn(e)})))&&void 0!==e?e:[];mn(n)}else Wn(de)&&mn(de);else mn(function(e){return e?[]:null}(ue))}),[]),r((function(){if(!w(ge)&&ge!==kn)if(x(ge))mn(null);else if(zn(ge)){var e=ge.filter(Wn);mn(e)}else mn(Wn(ge)?ge:null)}),[zn,Wn,kn,ge]),r((function(){!w(hn)&&(v(fn)&&!x(hn)||k(fn)||x(fn))&&!y(fn,hn)&&lt()}),[lt,hn,fn]),r((function(){!ln&&cn&&at()}),[ln,cn,at]);var ot=we(i(0),2),it=ot[0],ct=ot[1];r((function(){var e,n;ct(null!==(e=null===(n=_e.current)||void 0===n?void 0:n.clientWidth)&&void 0!==e?e:0)}),[_e,ln,un,fn]);z(Dn,[rn,_e],ln);var st=zn(fn)&&!!fn.length,ut=b((function(e){Ln(_n(e.target))}),50,{leading:!0}),dt=l((function(e){ce===Pe.expandY&&ut(e)}),[ut,ce]);r((function(){nn.current&&Ln(_n(nn.current))}),[]);var pt,ft=he({popoverZIndex:Ge},Ae?{usePortal:Ae,portalClassName:Te,portalContainer:Re,portalRef:We,scrollContainer:Xe}:{usePortal:Ae}),mt={disabled:E,errorMessage:q,size:L,state:W,successMessage:K};return e.createElement(F,{darkMode:Ze},e.createElement(Be.Provider,{value:{multiselect:ue,size:L,withIcons:Qn,disabled:E,isOpen:ln,state:W,searchState:U,chipTruncationLocation:ke,chipCharacterLimit:Ce,inputValue:vn,overflow:ce,popoverZIndex:Ge}},e.createElement("div",ye({className:p(ar(L),Ne)},Ve),(c||s)&&e.createElement("div",{className:wr},c&&e.createElement(H,{id:Je,htmlFor:Ue,darkMode:Ze,disabled:E,className:p(ve({},Er,L===ze.Large))},c),s&&e.createElement(Z,{darkMode:Ze,disabled:E,className:p(ve({},Er,L===ze.Large))},s)),e.createElement("div",{ref:_e,role:"combobox","aria-expanded":ln,"aria-controls":$e,"aria-owns":$e,tabIndex:-1,onMouseDown:function(e){E&&e.preventDefault()},onClick:function(e){if(e.target!==tn.current){var n=0;if(tn.current)n=e.nativeEvent.offsetX>tn.current.offsetLeft+tn.current.clientWidth?vn.length:0;Pn(n)}Mn()},onFocus:function(e){ht(ce),qn(function(e){var n,t,r,a;if(!e)return;if(null!==(n=tn.current)&&void 0!==n&&n.contains(e))return Se;if(null!==(t=en.current)&&void 0!==t&&t.contains(e))return Le;var l=zn(fn)?fn.findIndex((function(n){var t;return null===(t=Ye(n))||void 0===t||null===(t=t.current)||void 0===t?void 0:t.contains(e)})):-1;if(zn(fn)){if(0===l)return Oe;if(l===fn.length-1)return De;if(l>0)return Me}if(null!==(r=rn.current)&&void 0!==r&&r.contains(e))return Ie;if(null!==(a=_e.current)&&void 0!==a&&a.contains(e))return je}(e.target))},onKeyDown:function(e){var n,t,r=null===(n=rn.current)||void 0===n?void 0:n.contains(document.activeElement);if((null===(t=_e.current)||void 0===t?void 0:t.contains(document.activeElement))||r){if(e.ctrlKey||e.shiftKey||e.altKey)return;switch(e.key){case R.Tab:switch(Zn){case"Input":$t(fn)||(Dn(),Bn("first"),Kn(null));break;case"LastChip":Kn(null)}break;case R.Escape:Dn(),Bn("first");break;case R.Enter:ln?!ln||Zn!==Se||x(un)||function(e){if("string"==typeof e){var n=tt(e,jn);return!(null==n||!n.isDisabled)}return!!e.isDisabled}(un)?Zn===Le&&(Fn(null),Pn()):Fn(un):Mn();break;case R.Backspace:var a;if(zn(fn))"Input"===Zn&&0===(null===(a=tn.current)||void 0===a?void 0:a.selectionStart)&&Kn("last");Mn();break;case R.ArrowDown:ln?(e.preventDefault(),Bn("next")):Mn();break;case R.ArrowUp:ln?(e.preventDefault(),Bn("prev")):Mn();break;case R.ArrowRight:Yn("right",e);break;case R.ArrowLeft:Yn("left",e);break;default:ln||Mn()}}},onTransitionEnd:function(){var e,n;ct(null!==(e=null===(n=_e.current)||void 0===n?void 0:n.clientWidth)&&void 0!==e?e:0)},className:p(lr,or[qe],ir(L,st),sr(qe)[W],ve(ve(ve({},ur[qe],(pt=Se,pt===Zn)),cr(qe),E),Cr[qe],Sn))},e.createElement("div",{onScroll:dt,ref:nn,className:fr({size:L,overflow:ce})},$n,e.createElement("input",{"aria-label":null!=f?f:c,"aria-autocomplete":"list","aria-controls":$e,"aria-labelledby":Je,ref:tn,id:Ue,className:p(mr,br(L),hr[qe],vr(ln),ve(ve({},yr(L,vn),zn(fn)),gr[qe],E)),placeholder:On,"aria-disabled":E,readOnly:E,onChange:function(e){xn(e.target.value),null==re||re(e.target.value),null==fe||fe(e)},value:vn,autoComplete:"off"})),e.createElement("div",{className:p(dr,pr[L])},le&&$t(fn)&&!E&&e.createElement(P,{"aria-label":"Clear selection",disabled:E,ref:en,onClick:function(e){E||(e.stopPropagation(),Fn(null),null==oe||oe(e),null==re||re(""),Pn())},onFocus:function(){dn(null)},className:p(xr),darkMode:Ze},e.createElement(m,{glyph:"XWithCircle"})),e.createElement(m,{glyph:"CaretDown",className:kr,fill:p(ve(ve({},Nr(qe),!E),Sr(qe),E))}))),e.createElement(S,mt),e.createElement(In,ye({id:$e,labelId:Je,refEl:_e,ref:rn,menuWidth:it,searchLoadingMessage:ne,searchErrorMessage:_,searchEmptyMessage:$},ft),Jn))));function ht(e){nn&&nn.current&&(e===Pe.scrollX&&(nn.current.scrollLeft=nn.current.scrollWidth),e===Pe.expandY&&(nn.current.scrollTop=nn.current.scrollHeight))}}Dr.propTypes={multiselect:E.bool,value:E.oneOfType([E.string,E.arrayOf(E.string)]),initialValue:E.oneOfType([E.string,E.arrayOf(E.string)]),overflow:E.oneOf(Object.values(Pe)),darkMode:E.bool,label:E.string,"aria-label":E.string,children:E.node,onChange:E.func,chipCharacterLimit:E.number,chipTruncationLocation:E.oneOf(Object.values(B)),onClear:E.func,onFilter:E.func,clearable:E.bool,searchLoadingMessage:E.string,searchErrorMessage:E.string,searchEmptyMessage:E.string,searchState:E.oneOf(Object.values(Ae)),errorMessage:E.string,state:E.oneOf(Object.values(Fe)),size:E.oneOf(Object.values(ze)),disabled:E.bool,description:E.string,placeholder:E.string,filteredOptions:E.arrayOf(E.string),popoverZIndex:E.number,usePortal:E.bool,scrollContainer:E.elementType,portalContainer:E.elementType,portalRef:E.shape({current:"undefined"!=typeof window?E.instanceOf(Element):E.any}),portalClassName:E.string};var Mr,jr=function(){var n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return[e.createElement(bt,{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(bt,{key:"banana",value:"banana",displayName:"Banana"}),e.createElement(bt,{key:"carrot",value:"carrot",displayName:"Carrot",disabled:!0}),e.createElement(bt,{key:"pomegranate",value:"pomegranate",displayName:"Pomegranate",glyph:n?e.createElement(m,{glyph:"Warning"}):void 0,description:"Watch out! I stain everything I touch LOL",disabled:!0}),e.createElement(bt,{key:"plantain",value:"plantain",displayName:"Plantain",glyph:n?e.createElement(m,{glyph:"Connect"}):void 0,description:"Don't confuse me with a banana",onClick:function(){return console.log("I was clicked")}}),e.createElement(bt,{key:"paragraph",value:"paragraph",displayName:"Nullam quis risus eget urna mollis ornare vel eu leo. Vestibulum id ligula porta felis euismod semper."}),e.createElement(bt,{key:"hash",value:"hash",displayName:"5f4dcc3b5aa765d61d8327deb882cf995f4dcc3b5aa765d61d8327deb882cf99"}),e.createElement(bt,{key:"dragonfruit",value:"dragonfruit",displayName:"Dragonfruit",description:"Rawr"}),e.createElement(bt,{key:"eggplant",value:"eggplant",displayName:"Eggplant"}),e.createElement(bt,{key:"fig",value:"fig",displayName:"Fig"}),e.createElement(bt,{key:"grape",value:"grape",displayName:"Grape"}),e.createElement(bt,{key:"honeydew",value:"honeydew",displayName:"Honeydew"}),e.createElement(bt,{key:"iceberg-lettuce",value:"iceberg-lettuce",displayName:"Iceberg lettuce"}),e.createElement(vn,{key:"peppers",label:"Peppers"},e.createElement(bt,{key:"cayenne",value:"cayenne",displayName:"Cayenne"}),e.createElement(bt,{key:"ghost-pepper",value:"ghost-pepper",displayName:"Ghost pepper",description:"My name is Zak Bagans. I never believed in ghosts until I became face to face with one."}),e.createElement(bt,{key:"habanero",value:"habanero",displayName:"Habanero"}),e.createElement(bt,{key:"jalapeno",value:"jalapeno",displayName:"Jalapeño"}),e.createElement(bt,{key:"red-pepper",value:"red-pepper",displayName:"Red pepper"}),e.createElement(bt,{key:"scotch-bonnet",value:"scotch-bonnet",displayName:"Scotch bonnet",description:"Don't touch your eyes"}))]},Ir=d(Mr||(Mr=ke(["\n width: 256px;\n padding-block: 64px;\n display: flex;\n"]))),zr=["apple","banana"],Pr={title:"Components/Combobox",component:Dr,decorators:[function(n){return e.createElement("div",{className:Ir},e.createElement(n,null))}],parameters:{default:"LiveExample",controls:{exclude:[].concat(Ee(s),["as","filteredOptions","initialValue","setError","value","children"])},generate:{storyNames:["SingleSelect","MultiSelect","DisabledInput"],combineArgs:{darkMode:[!1,!0],clearable:[!0,!1],description:[void 0,"Please pick fruit(s)"],label:[void 0,"Choose a fruit"],state:Object.values(Fe),size:Object.values(ze)},excludeCombinations:[["description",{label:void 0}],{clearable:!1,value:void 0},{multiselect:!0,value:"apple"},{multiselect:!1,value:zr}]}},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:jr()},argTypes:{darkMode:c.darkMode,multiselect:{control:"boolean"},disabled:{control:"boolean"},clearable:{control:"boolean"},label:{control:"text"},description:{control:"text"},placeholder:{control:"text"},inputValue:{control:"text"},size:{options:Object.values(ze),control:"select"},state:{options:Object.values(Fe),control:"select"},errorMessage:{control:"text"},searchEmptyMessage:{control:"text"},searchState:{options:Object.values(Ae),control:"select"},searchErrorMessage:{control:"text",if:{arg:"searchState",eq:Ae.Error}},searchLoadingMessage:{control:"text",if:{arg:"searchState",eq:Ae.Loading}},chipTruncationLocation:{options:Object.values(B),control:"select",if:{arg:"multiselect"}},chipCharacterLimit:{control:"number",if:{arg:"multiselect"}},overflow:{options:Object.values(Pe),control:"select",if:{arg:"multiselect"}}}},Fr=function(n){return e.createElement(e.Fragment,null,n.multiselect?e.createElement(Dr,ye({key:"multi"},n,{multiselect:!0})):e.createElement(Dr,ye({key:"single"},n,{multiselect:!1})))};Fr.parameters={chromatic:{disableSnapshot:!0}};var Ar=function(){var n=we(i(null),2),t=n[0],r=n[1];return e.createElement("div",null,e.createElement(Dr,{multiselect:!1,label:"Choose a fruit",description:"Please pick one",placeholder:"Select fruit",onChange:function(e){r(e)},value:t},e.createElement(bt,{value:"apple"}),e.createElement(bt,{value:"banana"}),e.createElement(bt,{value:"carrot"})),e.createElement(u,{onClick:function(){return r("carrot")}},"Select Carrot"))};Ar.parameters={chromatic:{disableSnapshot:!0}};var Tr=function(){var n=["apple","banana","carrot","dragonfruit","eggplant","fig","grape","honeydew","iceberg-lettuce","jalapeño"],t=we(i(["carrot","grape"]),2),r=t[0],a=t[1];return e.createElement(Dr,{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:r},n.map((function(n){return e.createElement(bt,{key:n,value:n})})))};Tr.parameters={chromatic:{disableSnapshot:!0}};var Rr=function(){return e.createElement(e.Fragment,null)};Rr.args={multiselect:!1},Rr.parameters={generate:{combineArgs:{value:[void 0,"apple"]}}};var Wr=function(){return e.createElement(e.Fragment,null)};Wr.args={multiselect:!0},Wr.parameters={generate:{combineArgs:{value:[void 0,zr]}}};var Xr=function(n){return e.createElement(Dr,ye({},n,{multiselect:!0}),jr(!1))};Xr.parameters={chromatic:{disableSnapshot:!0}};var Gr=function(){return e.createElement(e.Fragment,null)};Gr.args={disabled:!0},Gr.parameters={generate:{combineArgs:{darkMode:[!0,!1]}}};export{Ar as ControlledSingleSelect,Gr as DisabledInput,Tr as ExternalFilter,Fr as LiveExample,Wr as MultiSelect,Xr as MultiSelectNoIcons,Rr as SingleSelect,Pr as default};