@servicetitan/anvil2 1.27.2 → 1.28.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 (103) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/AnvilProvider-C7Li86-d.js +16 -0
  3. package/dist/AnvilProvider-C7Li86-d.js.map +1 -0
  4. package/dist/AnvilProvider.js +1 -1
  5. package/dist/{Combobox-DnTI2I3L.js → Combobox-JAm3x-tw.js} +1986 -116
  6. package/dist/Combobox-JAm3x-tw.js.map +1 -0
  7. package/dist/Combobox.css +343 -1
  8. package/dist/Combobox.js +1 -1
  9. package/dist/{DateField-DocC46Mw.js → DateField-5mNXaJ7q.js} +548 -11
  10. package/dist/DateField-5mNXaJ7q.js.map +1 -0
  11. package/dist/DateField.js +1 -1
  12. package/dist/{Dialog-DQ9QXB5D.js → Dialog-B4M0DXxG.js} +2 -2
  13. package/dist/{Dialog-DQ9QXB5D.js.map → Dialog-B4M0DXxG.js.map} +1 -1
  14. package/dist/{Dialog-Kh2tcVWz-DqcNnouf.js → Dialog-CUK5YvVY-Dv5edacC.js} +5 -5
  15. package/dist/Dialog-CUK5YvVY-Dv5edacC.js.map +1 -0
  16. package/dist/Dialog.js +1 -1
  17. package/dist/Drawer-BqqZB3Sn.js +66 -0
  18. package/dist/Drawer-BqqZB3Sn.js.map +1 -0
  19. package/dist/{Drawer-C6fpnRDX.js → Drawer-CrXiK2w0-BMzKuNFt.js} +15 -75
  20. package/dist/Drawer-CrXiK2w0-BMzKuNFt.js.map +1 -0
  21. package/dist/Drawer.js +1 -1
  22. package/dist/{AnvilProvider-DNJk1Ait.js → HammerProvider-DuxhW0gv-C2voN5ro.js} +26 -15
  23. package/dist/HammerProvider-DuxhW0gv-C2voN5ro.js.map +1 -0
  24. package/dist/{InputMask-Ceh574pv.js → InputMask-BmXj5mob.js} +2 -2
  25. package/dist/{InputMask-Ceh574pv.js.map → InputMask-BmXj5mob.js.map} +1 -1
  26. package/dist/{InputMask-DQXw5qvG-BH4P-Woc.js → InputMask-CQzrMoEy-CLNvXsm7.js} +3 -3
  27. package/dist/{InputMask-DQXw5qvG-BH4P-Woc.js.map → InputMask-CQzrMoEy-CLNvXsm7.js.map} +1 -1
  28. package/dist/InputMask.js +1 -1
  29. package/dist/{Label-DWF2pXeG-1BhzVgZG.js → Label-CbYy5kwu-BCTOKxOk.js} +3 -3
  30. package/dist/{Label-DWF2pXeG-1BhzVgZG.js.map → Label-CbYy5kwu-BCTOKxOk.js.map} +1 -1
  31. package/dist/Menu-IEBrkdoN.js +1090 -0
  32. package/dist/Menu-IEBrkdoN.js.map +1 -0
  33. package/dist/Menu.css +116 -1
  34. package/dist/Menu.js +1 -1
  35. package/dist/{Page-BGkLs3bR.js → Page-qlpHVAMH.js} +70 -54
  36. package/dist/Page-qlpHVAMH.js.map +1 -0
  37. package/dist/Page.css +103 -70
  38. package/dist/Page.js +1 -1
  39. package/dist/{Popover-DzEc_Muv.js → Popover-B7K3o_l4.js} +2 -2
  40. package/dist/{Popover-DzEc_Muv.js.map → Popover-B7K3o_l4.js.map} +1 -1
  41. package/dist/{Popover-QKZtjN4_-CETYlWwq.js → Popover-C1B3UJXp-B5obSIvA.js} +351 -12
  42. package/dist/Popover-C1B3UJXp-B5obSIvA.js.map +1 -0
  43. package/dist/{Popover-QKZtjN4_.css → Popover-C1B3UJXp.css} +53 -1
  44. package/dist/Popover.js +1 -1
  45. package/dist/{ProgressBar-cKtBso7j-3CDyBaAN.js → ProgressBar-BLg29adn-CMz5eu5f.js} +3 -3
  46. package/dist/{ProgressBar-cKtBso7j-3CDyBaAN.js.map → ProgressBar-BLg29adn-CMz5eu5f.js.map} +1 -1
  47. package/dist/{ProgressBar-IItIByYc.js → ProgressBar-_DyYSgfx.js} +2 -2
  48. package/dist/{ProgressBar-IItIByYc.js.map → ProgressBar-_DyYSgfx.js.map} +1 -1
  49. package/dist/ProgressBar.js +1 -1
  50. package/dist/{SearchField-CWb0kaV8.js → SearchField-C-4icPUa.js} +2 -2
  51. package/dist/{SearchField-CWb0kaV8.js.map → SearchField-C-4icPUa.js.map} +1 -1
  52. package/dist/SearchField.js +1 -1
  53. package/dist/{TextField-D53XNiCi-C6_A5VRq.js → TextField-Lwe9XAou-tH8gcQTq.js} +2 -2
  54. package/dist/{TextField-D53XNiCi-C6_A5VRq.js.map → TextField-Lwe9XAou-tH8gcQTq.js.map} +1 -1
  55. package/dist/{TextField-s92xHzb3.js → TextField-tF-ERwA8.js} +2 -2
  56. package/dist/{TextField-s92xHzb3.js.map → TextField-tF-ERwA8.js.map} +1 -1
  57. package/dist/TextField.js +1 -1
  58. package/dist/{Textarea-B61wNIFr.js → Textarea-BrzxOEx3.js} +2 -2
  59. package/dist/Textarea-BrzxOEx3.js.map +1 -0
  60. package/dist/Textarea.js +1 -1
  61. package/dist/Toast.js +1 -1
  62. package/dist/{Toolbar-Cge6Nznj.js → Toolbar-D9fMSiGU.js} +2 -2
  63. package/dist/{Toolbar-Cge6Nznj.js.map → Toolbar-D9fMSiGU.js.map} +1 -1
  64. package/dist/Toolbar.js +1 -1
  65. package/dist/{Tooltip-DgM8NSPm-CRIQbuTm.js → Tooltip-36nMbVT3-DMkvo60s.js} +222 -22
  66. package/dist/Tooltip-36nMbVT3-DMkvo60s.js.map +1 -0
  67. package/dist/{Tooltip-DgM8NSPm.css → Tooltip-36nMbVT3.css} +43 -1
  68. package/dist/{Tooltip-89FIvMG0.js → Tooltip-BEo0IRDf.js} +2 -2
  69. package/dist/{Tooltip-89FIvMG0.js.map → Tooltip-BEo0IRDf.js.map} +1 -1
  70. package/dist/Tooltip.js +1 -1
  71. package/dist/components/Page/Page.d.ts +4 -1
  72. package/dist/floating-ui.react-4AwURJA3.js +5989 -0
  73. package/dist/floating-ui.react-4AwURJA3.js.map +1 -0
  74. package/dist/{useKeyboardFocusables-CwVMAe5C-CIHqixNA.js → index.esm-CunAFnrh.js} +11 -59
  75. package/dist/index.esm-CunAFnrh.js.map +1 -0
  76. package/dist/index.js +16 -16
  77. package/dist/supportsPopover-8aJR37cf-8aJR37cf.js +6 -0
  78. package/dist/supportsPopover-8aJR37cf-8aJR37cf.js.map +1 -0
  79. package/dist/{toast-CHld8RKY.js → toast-DkO9HWpH.js} +2 -2
  80. package/dist/{toast-CHld8RKY.js.map → toast-DkO9HWpH.js.map} +1 -1
  81. package/dist/useKeyboardFocusables-CwVMAe5C-DtjYOAmt.js +61 -0
  82. package/dist/useKeyboardFocusables-CwVMAe5C-DtjYOAmt.js.map +1 -0
  83. package/package.json +2 -2
  84. package/dist/AnvilProvider-DNJk1Ait.js.map +0 -1
  85. package/dist/Combobox-DnTI2I3L.js.map +0 -1
  86. package/dist/DateField-DocC46Mw.js.map +0 -1
  87. package/dist/Dialog-Kh2tcVWz-DqcNnouf.js.map +0 -1
  88. package/dist/Drawer-C6fpnRDX.js.map +0 -1
  89. package/dist/Menu-D8SDm9s9.js +0 -706
  90. package/dist/Menu-D8SDm9s9.js.map +0 -1
  91. package/dist/Page-BGkLs3bR.js.map +0 -1
  92. package/dist/Popover-QKZtjN4_-CETYlWwq.js.map +0 -1
  93. package/dist/Textarea-B61wNIFr.js.map +0 -1
  94. package/dist/Tooltip-DgM8NSPm-CRIQbuTm.js.map +0 -1
  95. package/dist/floating-ui.react-P5949bpO.js +0 -28
  96. package/dist/floating-ui.react-P5949bpO.js.map +0 -1
  97. package/dist/floating-ui.react-dom-D912oS4K.js +0 -1841
  98. package/dist/floating-ui.react-dom-D912oS4K.js.map +0 -1
  99. package/dist/useKeyboardFocusables-CwVMAe5C-CIHqixNA.js.map +0 -1
  100. /package/dist/{Dialog-Kh2tcVWz.css → Dialog-CUK5YvVY.css} +0 -0
  101. /package/dist/{Drawer.css → Drawer-CrXiK2w0.css} +0 -0
  102. /package/dist/{Label-DWF2pXeG.css → Label-CbYy5kwu.css} +0 -0
  103. /package/dist/{ProgressBar-cKtBso7j.css → ProgressBar-BLg29adn.css} +0 -0
@@ -1,24 +1,25 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { useTrackingId } from './useTrackingId.js';
3
- import React__default, { useRef, useCallback, useEffect, useMemo, cloneElement, useLayoutEffect, useReducer, Component, createContext, useState, useDeferredValue, useContext, useId } from 'react';
3
+ import React__default, { useRef, useCallback, useEffect, useMemo, cloneElement, useLayoutEffect, useReducer, Component, createContext, useState, useId, useContext, useDeferredValue } from 'react';
4
4
  import { g as getDefaultExportFromCjs, c as cx } from './index-tZvMCc77.js';
5
5
  import { a as _extends, _ as _objectWithoutPropertiesLoose } from './extends-Bg2s_OKl.js';
6
- import { u as usePopoverContext, d as Popover } from './Popover-QKZtjN4_-CETYlWwq.js';
6
+ import { e as PopoverLegacy, u as usePopoverLegacyContext, d as Popover, f as usePopoverContext } from './Popover-C1B3UJXp-B5obSIvA.js';
7
+ import { s as supportsPopover } from './supportsPopover-8aJR37cf-8aJR37cf.js';
7
8
  import { F as Flex } from './Flex-pdHNcZrF-CdQdYhOU.js';
8
- import { T as Text } from './Text-C2n3GDdC-rz_AelM0.js';
9
- import { S as Spinner } from './Spinner-DdirfhPp-c7cDfIit.js';
10
- import { s as styles$2 } from './Listbox.module-CJuWm7RR-CJuWm7RR.js';
11
- import { s as styles$1 } from './ListView.module-BqvHsIQ9-BqvHsIQ9.js';
12
- import { I as Icon$1 } from './Icon-DbHA5GV1-DwO2aGkj.js';
13
- import { c as checkboxStyles, a as SvgIndeterminateCheckBox, S as SvgCheckBox, b as SvgCheckBoxOutlineBlank } from './Checkbox.module-DMrZNVpb-DL8zOKBQ.js';
14
- import { S as SvgCheck } from './check-Cf67OWrZ.js';
15
- import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-C6qizVc6-BkgAan7h.js';
16
- import { L as Label } from './Label-DWF2pXeG-1BhzVgZG.js';
9
+ import { L as Label } from './Label-CbYy5kwu-BCTOKxOk.js';
17
10
  import { B as Button } from './Button-Ce--YZ9L-Csh0Zzuf.js';
18
11
  import { C as Chip } from './Chip-CAxTyjIZ-DfkCTnYy.js';
19
12
  import { S as SvgClose } from './close-DZj38AEh.js';
20
13
  import { S as SvgChevronRight } from './chevron_right-BdpsxX7x.js';
21
14
  import { H as Helper } from './Helper-Ba5DBS51-DBtASfJG.js';
15
+ import { T as Text } from './Text-C2n3GDdC-rz_AelM0.js';
16
+ import { S as Spinner } from './Spinner-DdirfhPp-c7cDfIit.js';
17
+ import { s as styles$3 } from './Listbox.module-CJuWm7RR-CJuWm7RR.js';
18
+ import { s as styles$2 } from './ListView.module-BqvHsIQ9-BqvHsIQ9.js';
19
+ import { I as Icon$2 } from './Icon-DbHA5GV1-DwO2aGkj.js';
20
+ import { c as checkboxStyles, a as SvgIndeterminateCheckBox, S as SvgCheckBox, b as SvgCheckBoxOutlineBlank } from './Checkbox.module-DMrZNVpb-DL8zOKBQ.js';
21
+ import { S as SvgCheck } from './check-Cf67OWrZ.js';
22
+ import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-C6qizVc6-BkgAan7h.js';
22
23
  import { c as childrenToString } from './childrenToString-Bz9MqbHb-Bz9MqbHb.js';
23
24
 
24
25
  import './Combobox.css';function _setPrototypeOf(t, e) {
@@ -6281,108 +6282,1907 @@ function getKeyAttributes(key) {
6281
6282
  };
6282
6283
  }
6283
6284
 
6284
- const item = "_item_1ued6_5";
6285
- const input = "_input_1ued6_18";
6286
- const prefix = "_prefix_1ued6_46";
6287
- const suffix = "_suffix_1ued6_47";
6288
- const combobox = "_combobox_1ued6_62";
6289
- const select = "_select_1ued6_71";
6290
- const chip = "_chip_1ued6_167";
6291
- const listview = "_listview_1ued6_208";
6292
- const empty = "_empty_1ued6_216";
6293
- const children = "_children_1ued6_244";
6294
- const Icon = "_Icon_1ued6_247";
6295
- const small = "_small_1ued6_252";
6296
- const large = "_large_1ued6_255";
6297
- const error = "_error_1ued6_273";
6298
- const disabled = "_disabled_1ued6_286";
6299
- const styles = {
6300
- "buttons-wrapper": "_buttons-wrapper_1ued6_3",
6301
- "search-field": "_search-field_1ued6_4",
6302
- item: item,
6303
- input: input,
6304
- "input-wrapper": "_input-wrapper_1ued6_19",
6305
- "toggle-button-wrapper": "_toggle-button-wrapper_1ued6_32",
6306
- "close-button-wrapper": "_close-button-wrapper_1ued6_33",
6307
- prefix: prefix,
6308
- suffix: suffix,
6309
- combobox: combobox,
6310
- select: select,
6311
- "popover-content": "_popover-content_1ued6_74",
6312
- "no-clear-button": "_no-clear-button_1ued6_93",
6313
- "input-flex": "_input-flex_1ued6_96",
6314
- "fake-placeholder": "_fake-placeholder_1ued6_124",
6315
- "close-button": "_close-button_1ued6_33",
6316
- "toggle-button": "_toggle-button_1ued6_32",
6317
- "rows-wrapper": "_rows-wrapper_1ued6_157",
6318
- "chip-wrapper": "_chip-wrapper_1ued6_167",
6319
- chip: chip,
6320
- listview: listview,
6321
- "loading-spinner": "_loading-spinner_1ued6_212",
6322
- empty: empty,
6323
- children: children,
6324
- Icon: Icon,
6325
- small: small,
6326
- large: large,
6327
- error: error,
6328
- "loading-infinite": "_loading-infinite_1ued6_286",
6329
- "loading-progress": "_loading-progress_1ued6_286",
6330
- disabled: disabled,
6331
- "listview-option": "_listview-option_1ued6_304"
6285
+ const defaultItemToString$1 = function(item) {
6286
+ return item != null ? String(item) : "";
6287
+ };
6288
+ const defaultItemToKey$1 = function(item) {
6289
+ return item;
6290
+ };
6291
+ const useDownshiftEnvironment$1 = () => {
6292
+ const wrapperDivRef = useRef(null);
6293
+ const shadowRoot = wrapperDivRef.current ? wrapperDivRef.current.getRootNode() : null;
6294
+ const shadowDocument = wrapperDivRef.current && shadowRoot ? shadowRoot.ownerDocument : null;
6295
+ const environment = shadowDocument ? {
6296
+ document: shadowDocument,
6297
+ addEventListener: shadowDocument.addEventListener.bind(shadowRoot),
6298
+ removeEventListener: shadowDocument.removeEventListener.bind(shadowRoot),
6299
+ Node
6300
+ } : undefined;
6301
+ return { ref: wrapperDivRef, environment };
6332
6302
  };
6333
6303
 
6334
- const ComboboxTrigger = ({
6335
- variant: variantProp = "combobox",
6336
- className,
6337
- label,
6338
- size,
6339
- error,
6340
- hint,
6341
- description,
6342
- required,
6343
- moreInfo,
6344
- openMoreInfo,
6345
- prefix,
6346
- suffix,
6347
- maxRows,
6348
- id,
6349
- disabled,
6350
- readOnly,
6351
- ...rest
6352
- }) => {
6304
+ const item$1 = "_item_tpkx3_6";
6305
+ const input$1 = "_input_tpkx3_19";
6306
+ const prefix$1 = "_prefix_tpkx3_47";
6307
+ const suffix$1 = "_suffix_tpkx3_48";
6308
+ const combobox$1 = "_combobox_tpkx3_63";
6309
+ const select$1 = "_select_tpkx3_72";
6310
+ const chip$1 = "_chip_tpkx3_168";
6311
+ const listview$1 = "_listview_tpkx3_209";
6312
+ const empty$1 = "_empty_tpkx3_217";
6313
+ const children$1 = "_children_tpkx3_245";
6314
+ const Icon$1 = "_Icon_tpkx3_248";
6315
+ const small$1 = "_small_tpkx3_253";
6316
+ const large$1 = "_large_tpkx3_256";
6317
+ const error$1 = "_error_tpkx3_274";
6318
+ const disabled$1 = "_disabled_tpkx3_287";
6319
+ const styles$1 = {
6320
+ "buttons-wrapper": "_buttons-wrapper_tpkx3_4",
6321
+ "search-field": "_search-field_tpkx3_5",
6322
+ item: item$1,
6323
+ input: input$1,
6324
+ "input-wrapper": "_input-wrapper_tpkx3_20",
6325
+ "toggle-button-wrapper": "_toggle-button-wrapper_tpkx3_33",
6326
+ "close-button-wrapper": "_close-button-wrapper_tpkx3_34",
6327
+ prefix: prefix$1,
6328
+ suffix: suffix$1,
6329
+ combobox: combobox$1,
6330
+ select: select$1,
6331
+ "popover-content": "_popover-content_tpkx3_75",
6332
+ "no-clear-button": "_no-clear-button_tpkx3_94",
6333
+ "input-flex": "_input-flex_tpkx3_97",
6334
+ "fake-placeholder": "_fake-placeholder_tpkx3_125",
6335
+ "close-button": "_close-button_tpkx3_34",
6336
+ "toggle-button": "_toggle-button_tpkx3_33",
6337
+ "rows-wrapper": "_rows-wrapper_tpkx3_158",
6338
+ "chip-wrapper": "_chip-wrapper_tpkx3_168",
6339
+ chip: chip$1,
6340
+ listview: listview$1,
6341
+ "loading-spinner": "_loading-spinner_tpkx3_213",
6342
+ empty: empty$1,
6343
+ children: children$1,
6344
+ Icon: Icon$1,
6345
+ small: small$1,
6346
+ large: large$1,
6347
+ error: error$1,
6348
+ "loading-infinite": "_loading-infinite_tpkx3_287",
6349
+ "loading-progress": "_loading-progress_tpkx3_287",
6350
+ disabled: disabled$1,
6351
+ "listview-option": "_listview-option_tpkx3_305"
6352
+ };
6353
+
6354
+ const ADD_NEW$1 = Symbol.for("add-new");
6355
+ const ComboboxLegacyContext = createContext(null);
6356
+ const useComboboxLegacy = function() {
6357
+ const context = useContext(
6358
+ ComboboxLegacyContext
6359
+ );
6360
+ if (context == null) {
6361
+ throw new Error("useComboboxLegacy must be wrapped in <ComboboxLegacy />");
6362
+ }
6363
+ return context;
6364
+ };
6365
+ const ComboboxLegacySingle = function(props) {
6366
+ const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
6367
+ const {
6368
+ className,
6369
+ style,
6370
+ children,
6371
+ open,
6372
+ disabled,
6373
+ readOnly,
6374
+ items: itemsProp,
6375
+ itemToString: itemToStringProp,
6376
+ itemToKey: itemToKeyProp,
6377
+ onChange,
6378
+ disableCloseOnClickOutside = false,
6379
+ disableMatchReferenceWidth = false,
6380
+ disableCloseOnSelectItem = false,
6381
+ filterOptions,
6382
+ loading = false,
6383
+ root,
6384
+ onInputValueChange,
6385
+ environment: environmentProp,
6386
+ ...rest
6387
+ } = componentProps;
6388
+ const ComboboxLegacyClassNames = cx(styles$1["combobox"], className);
6389
+ const [items, setItems] = useState(itemsProp);
6390
+ const [hasAddNew, setHasAddNew] = useState(false);
6391
+ const [onSelectItemAddNew, setOnSelectItemAddNew] = useState(undefined);
6392
+ const [hasExactMatch, setHasExactMatch] = useState(false);
6393
+ const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
6394
+ const [hasEmpty, setHasEmpty] = useState(false);
6395
+ const [disabledItems, setDisabledItems] = useState([]);
6396
+ const [isReadOnly, setIsReadOnly] = useState(readOnly);
6397
+ const [isDisabled, setIsDisabled] = useState(disabled);
6398
+ const referenceRef = useRef(null);
6399
+ const contentRef = useRef(null);
6400
+ const handleOutsidePress = (e) => {
6401
+ const clickedInsideReference = referenceRef.current && e.target != null && referenceRef.current.contains(e.target);
6402
+ if (!clickedInsideReference) {
6403
+ closeMenu();
6404
+ return true;
6405
+ } else {
6406
+ return false;
6407
+ }
6408
+ };
6409
+ const { ref: wrapperDivRef, environment } = useDownshiftEnvironment$1();
6410
+ const showAddNew = hasAddNew && !hasExactMatch;
6411
+ const combinedItems = useMemo(
6412
+ () => showAddNew ? [...items, ADD_NEW$1] : items,
6413
+ [items, showAddNew]
6414
+ );
6415
+ const itemToString = itemToStringProp ?? defaultItemToString$1;
6416
+ const itemToKey = itemToKeyProp ?? defaultItemToKey$1;
6353
6417
  const {
6354
- select,
6355
- disableClearSelection,
6356
6418
  isOpen,
6357
- itemToString,
6358
6419
  getLabelProps,
6359
6420
  getInputProps,
6360
6421
  getToggleButtonProps,
6361
6422
  getMenuProps,
6423
+ getItemProps,
6424
+ highlightedIndex,
6362
6425
  selectedItem,
6363
- selectedItems,
6364
- getSelectedItemProps,
6365
- getDropdownProps,
6366
- reset,
6367
- removeSelectedItem,
6368
6426
  selectItem,
6427
+ setInputValue,
6369
6428
  inputValue,
6370
- isDisabled,
6371
- isReadOnly,
6372
- referenceRef,
6373
- closeMenu,
6374
- setIsDisabled,
6375
- setIsReadOnly
6376
- } = useCombobox();
6377
- const variant = select ? "select" : "combobox";
6378
- const context = usePopoverContext();
6379
- const inputRef = useRef(null);
6380
- const ComboboxTriggerClassNames = cx(styles["search-field"], {
6381
- [styles["select"]]: variant === "select"
6429
+ closeMenu
6430
+ } = useCombobox$1({
6431
+ ...rest,
6432
+ items: combinedItems,
6433
+ itemToString,
6434
+ itemToKey,
6435
+ isOpen: open,
6436
+ initialIsOpen: open,
6437
+ environment: environmentProp ?? environment,
6438
+ // NOTE: Reducer needs to be pure, side-effects should be in event handlers
6439
+ stateReducer(state, { type, changes }) {
6440
+ switch (type) {
6441
+ // keep ComboboxLegacy open onBlur, will call close using Popover's onOutsidePress
6442
+ case useCombobox$1.stateChangeTypes.InputBlur:
6443
+ return {
6444
+ ...changes,
6445
+ isOpen: open != null ? open : true,
6446
+ highlightedIndex: state.highlightedIndex
6447
+ };
6448
+ case useCombobox$1.stateChangeTypes.InputKeyDownEnter:
6449
+ case useCombobox$1.stateChangeTypes.ItemClick:
6450
+ if (changes.selectedItem === ADD_NEW$1) {
6451
+ const stateInputValue = state.inputValue;
6452
+ setTimeout(() => {
6453
+ onSelectItemAddNew?.(stateInputValue);
6454
+ }, 0);
6455
+ return {
6456
+ ...changes,
6457
+ selectedItem: state.selectedItem,
6458
+ inputValue: ""
6459
+ };
6460
+ } else {
6461
+ return {
6462
+ ...changes,
6463
+ isOpen: open != null ? open : disableCloseOnSelectItem ? true : changes.isOpen,
6464
+ highlightedIndex: disableCloseOnSelectItem ? 0 : changes.highlightedIndex
6465
+ };
6466
+ }
6467
+ // prevent this from closing the popover by default
6468
+ case useCombobox$1.stateChangeTypes.InputClick:
6469
+ return { ...changes, isOpen: open != null ? open : true };
6470
+ default:
6471
+ return changes;
6472
+ }
6473
+ },
6474
+ onInputValueChange: onInputValueChange ?? (({ inputValue: inputValue2, type, selectedItem: selectedItem2 }) => {
6475
+ const inputValueMatchesSelectedItem = selectedItem2 != null && inputValue2 === itemToString(selectedItem2);
6476
+ const inputValueIsEmpty = inputValue2 == null || inputValue2 === "";
6477
+ if (type === useCombobox$1.stateChangeTypes.InputKeyDownEnter || type === useCombobox$1.stateChangeTypes.ItemClick) {
6478
+ setItems(itemsProp);
6479
+ setHasExactMatch(true);
6480
+ } else if (!inputValueMatchesSelectedItem && !inputValueIsEmpty) {
6481
+ setItems(matchSorter(itemsProp, inputValue2, filterOptions));
6482
+ setHasExactMatch(
6483
+ matchSorter(itemsProp, inputValue2, {
6484
+ ...filterOptions,
6485
+ threshold: matchSorter.rankings.EQUAL
6486
+ }).length > 0
6487
+ );
6488
+ } else {
6489
+ setItems(itemsProp);
6490
+ setHasExactMatch(true);
6491
+ }
6492
+ }),
6493
+ onSelectedItemChange(changes) {
6494
+ const { selectedItem: selectedItem2 } = changes;
6495
+ if (onChange != null)
6496
+ onChange(selectedItem2 != null ? selectedItem2 : null);
6497
+ },
6498
+ onIsOpenChange({ isOpen: isOpen2, inputValue: inputValue2, selectedItem: selectedItem2 }) {
6499
+ if (isOpen2 === false) {
6500
+ setItems(itemsProp);
6501
+ if (inputValue2 === "") {
6502
+ selectItem(null);
6503
+ } else {
6504
+ setInputValue(selectedItem2 != null ? itemToString(selectedItem2) : "");
6505
+ }
6506
+ }
6507
+ },
6508
+ isItemDisabled(item) {
6509
+ if (isDisabled || isReadOnly) {
6510
+ return !!isDisabled || !!isReadOnly;
6511
+ }
6512
+ if (item && item instanceof Object && "disabled" in item && item.disabled) {
6513
+ return true;
6514
+ }
6515
+ if (item && item instanceof Object && "readOnly" in item && item.readOnly) {
6516
+ return true;
6517
+ }
6518
+ if (disabledItems.includes(item)) {
6519
+ return true;
6520
+ }
6521
+ return false;
6522
+ }
6382
6523
  });
6383
- const noClearButton = isDisabled || isReadOnly || disableClearSelection;
6384
- const ComboboxInputWrapperClassNames = cx(
6385
- styles["input-wrapper"],
6524
+ const firstRenderRef = useRef(true);
6525
+ useEffect(() => {
6526
+ if (firstRenderRef.current === true) {
6527
+ firstRenderRef.current = false;
6528
+ }
6529
+ }, []);
6530
+ useEffect(() => {
6531
+ setIsDisabled(disabled);
6532
+ }, [disabled]);
6533
+ useEffect(() => {
6534
+ setIsReadOnly(readOnly);
6535
+ }, [readOnly]);
6536
+ useEffect(() => {
6537
+ if (firstRenderRef.current) return;
6538
+ const inputValueMatchesSelectedItem = selectedItem != null && inputValue === itemToString(selectedItem);
6539
+ const inputValueIsEmpty = inputValue == null || inputValue === "";
6540
+ if (!inputValueMatchesSelectedItem && !inputValueIsEmpty) {
6541
+ setItems(matchSorter(itemsProp, inputValue, filterOptions));
6542
+ setHasExactMatch(
6543
+ matchSorter(itemsProp, inputValue, {
6544
+ ...filterOptions,
6545
+ threshold: matchSorter.rankings.EQUAL
6546
+ }).length > 0
6547
+ );
6548
+ } else {
6549
+ setItems(itemsProp);
6550
+ setHasExactMatch(true);
6551
+ }
6552
+ }, [itemsProp]);
6553
+ return /* @__PURE__ */ jsx(
6554
+ ComboboxLegacyContext.Provider,
6555
+ {
6556
+ value: {
6557
+ multiple: false,
6558
+ select: false,
6559
+ items,
6560
+ itemToString,
6561
+ itemToKey,
6562
+ isOpen,
6563
+ getLabelProps,
6564
+ getInputProps,
6565
+ getToggleButtonProps,
6566
+ getMenuProps,
6567
+ getItemProps,
6568
+ highlightedIndex,
6569
+ selectedItem,
6570
+ selectedItems: [],
6571
+ disabledItems,
6572
+ setDisabledItems,
6573
+ getSelectedItemProps: undefined,
6574
+ getDropdownProps: undefined,
6575
+ selectItem,
6576
+ inputValue,
6577
+ isDisabled,
6578
+ isReadOnly,
6579
+ setIsReadOnly,
6580
+ setIsDisabled,
6581
+ hasDisabledPopover,
6582
+ setHasDisabledPopover,
6583
+ hasEmpty,
6584
+ setHasEmpty,
6585
+ hasAddNew,
6586
+ setHasAddNew,
6587
+ onSelectItemAddNew,
6588
+ setOnSelectItemAddNew,
6589
+ hasExactMatch,
6590
+ setHasExactMatch,
6591
+ loading,
6592
+ referenceRef,
6593
+ contentRef,
6594
+ closeMenu
6595
+ },
6596
+ children: /* @__PURE__ */ jsx(
6597
+ "div",
6598
+ {
6599
+ className: ComboboxLegacyClassNames,
6600
+ "data-anv": "combobox",
6601
+ style: { ...style, ...layoutStyles },
6602
+ ref: wrapperDivRef,
6603
+ children: /* @__PURE__ */ jsx(
6604
+ PopoverLegacy,
6605
+ {
6606
+ root,
6607
+ open: isOpen,
6608
+ noPadding: true,
6609
+ disableCaret: true,
6610
+ fitScreen: true,
6611
+ disableFlipFallback: true,
6612
+ placement: "bottom-start",
6613
+ matchReferenceWidth: !disableMatchReferenceWidth,
6614
+ disableCloseOnClickOutside,
6615
+ onOutsidePress: handleOutsidePress,
6616
+ children
6617
+ }
6618
+ )
6619
+ }
6620
+ )
6621
+ }
6622
+ );
6623
+ };
6624
+ const ComboboxLegacyMultiple = function(props) {
6625
+ const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
6626
+ const {
6627
+ className,
6628
+ style,
6629
+ children,
6630
+ open,
6631
+ items: itemsProp,
6632
+ itemToString: itemToStringProp,
6633
+ itemToKey: itemToKeyProp,
6634
+ onChange,
6635
+ onSelectedItemsChange,
6636
+ disableCloseOnClickOutside = false,
6637
+ disableMatchReferenceWidth = false,
6638
+ disableCloseOnSelectItem = false,
6639
+ disableClearInputValueOnSelectItem = false,
6640
+ filterOptions,
6641
+ loading = false,
6642
+ root,
6643
+ disabled,
6644
+ readOnly,
6645
+ stateReducer: _,
6646
+ onInputValueChange,
6647
+ initialSelectedItems,
6648
+ initialActiveIndex,
6649
+ defaultSelectedItems,
6650
+ defaultActiveIndex,
6651
+ activeIndex: activeIndexProp,
6652
+ selectedItems: selectedItemsProp,
6653
+ environment: environmentProp,
6654
+ ...rest
6655
+ } = componentProps;
6656
+ const ComboboxLegacyClassNames = cx(styles$1["combobox"], className);
6657
+ const [items, setItems] = useState(itemsProp);
6658
+ const [hasAddNew, setHasAddNew] = useState(false);
6659
+ const [onSelectItemAddNew, setOnSelectItemAddNew] = useState(undefined);
6660
+ const [hasExactMatch, setHasExactMatch] = useState(false);
6661
+ const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
6662
+ const [hasEmpty, setHasEmpty] = useState(false);
6663
+ const [disabledItems, setDisabledItems] = useState([]);
6664
+ const [isReadOnly, setIsReadOnly] = useState(readOnly);
6665
+ const [isDisabled, setIsDisabled] = useState(disabled);
6666
+ let storedSetInputValue = undefined;
6667
+ const referenceRef = useRef(null);
6668
+ const contentRef = useRef(null);
6669
+ const handleOutsidePress = (e) => {
6670
+ const clickedInsideReference = referenceRef.current && e.target != null && referenceRef.current.contains(e.target);
6671
+ if (!clickedInsideReference) {
6672
+ closeMenu();
6673
+ return true;
6674
+ } else {
6675
+ return false;
6676
+ }
6677
+ };
6678
+ const { ref: wrapperDivRef, environment } = useDownshiftEnvironment$1();
6679
+ const showAddNew = hasAddNew && !hasExactMatch;
6680
+ const combinedItems = useMemo(
6681
+ () => showAddNew ? [...items, ADD_NEW$1] : items,
6682
+ [items, showAddNew]
6683
+ );
6684
+ const itemToString = itemToStringProp ?? defaultItemToString$1;
6685
+ const itemToKey = itemToKeyProp ?? defaultItemToKey$1;
6686
+ const {
6687
+ getSelectedItemProps,
6688
+ getDropdownProps,
6689
+ reset,
6690
+ selectedItems,
6691
+ addSelectedItem,
6692
+ removeSelectedItem,
6693
+ setSelectedItems
6694
+ } = useMultipleSelection({
6695
+ itemToKey,
6696
+ initialSelectedItems,
6697
+ initialActiveIndex,
6698
+ defaultSelectedItems,
6699
+ defaultActiveIndex,
6700
+ activeIndex: activeIndexProp,
6701
+ selectedItems: selectedItemsProp,
6702
+ environment: environmentProp ?? environment,
6703
+ stateReducer(state, { type, changes }) {
6704
+ switch (type) {
6705
+ // the Chip itself will handle "Backspace" and "Delete"
6706
+ // just return previous state
6707
+ case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace:
6708
+ case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownDelete:
6709
+ return state;
6710
+ case useMultipleSelection.stateChangeTypes.FunctionRemoveSelectedItem:
6711
+ return { ...changes, activeIndex: -1 };
6712
+ case useMultipleSelection.stateChangeTypes.FunctionReset:
6713
+ return { ...changes, selectedItems: [] };
6714
+ default:
6715
+ return changes;
6716
+ }
6717
+ },
6718
+ onStateChange({ type }) {
6719
+ switch (type) {
6720
+ case useMultipleSelection.stateChangeTypes.FunctionReset:
6721
+ storedSetInputValue?.("");
6722
+ break;
6723
+ }
6724
+ },
6725
+ onSelectedItemsChange(changes) {
6726
+ const { selectedItems: selectedItems2 } = changes;
6727
+ if (onChange != null) onChange(selectedItems2);
6728
+ if (onSelectedItemsChange != null) onSelectedItemsChange(changes);
6729
+ }
6730
+ });
6731
+ const {
6732
+ isOpen,
6733
+ getLabelProps,
6734
+ getInputProps,
6735
+ getToggleButtonProps,
6736
+ getMenuProps,
6737
+ getItemProps,
6738
+ highlightedIndex,
6739
+ selectedItem,
6740
+ selectItem,
6741
+ setInputValue,
6742
+ inputValue,
6743
+ closeMenu
6744
+ } = useCombobox$1({
6745
+ ...rest,
6746
+ items: combinedItems,
6747
+ itemToString,
6748
+ itemToKey,
6749
+ selectedItem: null,
6750
+ isOpen: open,
6751
+ initialIsOpen: open,
6752
+ environment: environmentProp ?? environment,
6753
+ // NOTE: Reducer needs to be pure, side-effects should be in event handlers
6754
+ stateReducer(state, { type, changes }) {
6755
+ switch (type) {
6756
+ // keep ComboboxLegacy open onBlur, will call close using Popover's onOutsidePress
6757
+ case useCombobox$1.stateChangeTypes.InputBlur:
6758
+ return {
6759
+ ...changes,
6760
+ inputValue: state.inputValue,
6761
+ selectedItem: null,
6762
+ isOpen: open != null ? open : true,
6763
+ highlightedIndex: state.highlightedIndex
6764
+ };
6765
+ case useCombobox$1.stateChangeTypes.InputKeyDownEnter:
6766
+ case useCombobox$1.stateChangeTypes.ItemClick:
6767
+ if (changes.selectedItem === ADD_NEW$1) {
6768
+ const stateInputValue = state.inputValue;
6769
+ setTimeout(() => {
6770
+ onSelectItemAddNew?.(stateInputValue);
6771
+ }, 0);
6772
+ return {
6773
+ ...changes,
6774
+ selectedItem: state.selectedItem,
6775
+ inputValue: ""
6776
+ };
6777
+ } else {
6778
+ return {
6779
+ ...changes,
6780
+ isOpen: open != null ? open : disableCloseOnSelectItem ? true : changes.isOpen,
6781
+ highlightedIndex: disableCloseOnSelectItem ? disableClearInputValueOnSelectItem || !state.inputValue ? state.highlightedIndex : 0 : changes.highlightedIndex,
6782
+ inputValue: disableClearInputValueOnSelectItem ? state.inputValue : ""
6783
+ };
6784
+ }
6785
+ // prevent this from closing the popover by default
6786
+ case useCombobox$1.stateChangeTypes.InputClick:
6787
+ return { ...changes, isOpen: open != null ? open : true };
6788
+ // prevent this from clearing the input value by default
6789
+ case useCombobox$1.stateChangeTypes.ControlledPropUpdatedSelectedItem:
6790
+ return { ...changes, inputValue: state.inputValue };
6791
+ default:
6792
+ return changes;
6793
+ }
6794
+ },
6795
+ onStateChange({ type, selectedItem: newSelectedItem }) {
6796
+ switch (type) {
6797
+ case useCombobox$1.stateChangeTypes.InputKeyDownEnter:
6798
+ case useCombobox$1.stateChangeTypes.ItemClick:
6799
+ case useCombobox$1.stateChangeTypes.InputBlur:
6800
+ if (newSelectedItem != null) {
6801
+ const itemAlreadySelected = selectedItems.some(
6802
+ (item) => itemToKey(item) === itemToKey(newSelectedItem)
6803
+ );
6804
+ if (itemAlreadySelected) {
6805
+ removeSelectedItem(newSelectedItem);
6806
+ } else {
6807
+ addSelectedItem(newSelectedItem);
6808
+ }
6809
+ }
6810
+ break;
6811
+ }
6812
+ },
6813
+ onInputValueChange: onInputValueChange ?? (({ inputValue: inputValue2, ...changes }) => {
6814
+ const { type, selectedItem: selectedItem2 } = changes;
6815
+ const inputValueMatchesSelectedItem = selectedItem2 != null && inputValue2 === itemToString(selectedItem2);
6816
+ const inputValueIsEmpty = inputValue2 == null || inputValue2 === "";
6817
+ if (type === useCombobox$1.stateChangeTypes.InputKeyDownEnter || type === useCombobox$1.stateChangeTypes.ItemClick) {
6818
+ setItems(itemsProp);
6819
+ setHasExactMatch(true);
6820
+ } else if (!inputValueMatchesSelectedItem && !inputValueIsEmpty) {
6821
+ setItems(matchSorter(itemsProp, inputValue2, filterOptions));
6822
+ setHasExactMatch(
6823
+ matchSorter(itemsProp, inputValue2, {
6824
+ ...filterOptions,
6825
+ threshold: matchSorter.rankings.EQUAL
6826
+ }).length > 0
6827
+ );
6828
+ } else {
6829
+ setItems(itemsProp);
6830
+ setHasExactMatch(true);
6831
+ }
6832
+ }),
6833
+ onIsOpenChange({ isOpen: isOpen2 }) {
6834
+ if (isOpen2 === false) {
6835
+ setInputValue("");
6836
+ setItems(itemsProp);
6837
+ }
6838
+ },
6839
+ isItemDisabled(item) {
6840
+ if (isDisabled || isReadOnly) {
6841
+ return !!isDisabled || !!isReadOnly;
6842
+ }
6843
+ if (item && item instanceof Object && "disabled" in item && item.disabled) {
6844
+ return true;
6845
+ }
6846
+ if (item && item instanceof Object && "readOnly" in item && item.readOnly) {
6847
+ return true;
6848
+ }
6849
+ if (disabledItems.includes(item)) {
6850
+ return true;
6851
+ }
6852
+ return false;
6853
+ }
6854
+ });
6855
+ storedSetInputValue = setInputValue;
6856
+ const firstRenderRef = useRef(true);
6857
+ useEffect(() => {
6858
+ if (firstRenderRef.current === true) {
6859
+ firstRenderRef.current = false;
6860
+ }
6861
+ }, []);
6862
+ useEffect(() => {
6863
+ setIsDisabled(disabled);
6864
+ }, [disabled]);
6865
+ useEffect(() => {
6866
+ setIsReadOnly(readOnly);
6867
+ }, [readOnly]);
6868
+ useEffect(() => {
6869
+ if (firstRenderRef.current) return;
6870
+ const inputValueIsEmpty = inputValue == null || inputValue === "";
6871
+ if (!inputValueIsEmpty) {
6872
+ setItems(matchSorter(itemsProp, inputValue, filterOptions));
6873
+ setHasExactMatch(
6874
+ matchSorter(itemsProp, inputValue, {
6875
+ ...filterOptions,
6876
+ threshold: matchSorter.rankings.EQUAL
6877
+ }).length > 0
6878
+ );
6879
+ } else {
6880
+ setItems(itemsProp);
6881
+ setHasExactMatch(true);
6882
+ }
6883
+ }, [itemsProp]);
6884
+ return /* @__PURE__ */ jsx(
6885
+ ComboboxLegacyContext.Provider,
6886
+ {
6887
+ value: {
6888
+ multiple: true,
6889
+ select: false,
6890
+ items,
6891
+ itemToString,
6892
+ itemToKey,
6893
+ isOpen,
6894
+ getLabelProps,
6895
+ getInputProps,
6896
+ getToggleButtonProps,
6897
+ getMenuProps,
6898
+ getItemProps,
6899
+ highlightedIndex,
6900
+ selectedItem,
6901
+ selectedItems,
6902
+ disabledItems,
6903
+ setDisabledItems,
6904
+ getSelectedItemProps,
6905
+ getDropdownProps,
6906
+ reset,
6907
+ addSelectedItem,
6908
+ removeSelectedItem,
6909
+ setSelectedItems,
6910
+ selectItem,
6911
+ inputValue,
6912
+ isDisabled,
6913
+ isReadOnly,
6914
+ setIsReadOnly,
6915
+ setIsDisabled,
6916
+ hasDisabledPopover,
6917
+ setHasDisabledPopover,
6918
+ hasEmpty,
6919
+ setHasEmpty,
6920
+ hasAddNew,
6921
+ setHasAddNew,
6922
+ onSelectItemAddNew,
6923
+ setOnSelectItemAddNew,
6924
+ hasExactMatch,
6925
+ setHasExactMatch,
6926
+ loading,
6927
+ referenceRef,
6928
+ contentRef,
6929
+ closeMenu
6930
+ },
6931
+ children: /* @__PURE__ */ jsx(
6932
+ "div",
6933
+ {
6934
+ className: ComboboxLegacyClassNames,
6935
+ "data-anv": "combobox",
6936
+ style: { ...style, ...layoutStyles },
6937
+ ref: wrapperDivRef,
6938
+ children: /* @__PURE__ */ jsx(
6939
+ PopoverLegacy,
6940
+ {
6941
+ root,
6942
+ open: !isDisabled && isOpen,
6943
+ noPadding: true,
6944
+ disableCaret: true,
6945
+ fitScreen: true,
6946
+ disableFlipFallback: true,
6947
+ placement: "bottom-start",
6948
+ matchReferenceWidth: !disableMatchReferenceWidth,
6949
+ disableCloseOnClickOutside,
6950
+ onOutsidePress: handleOutsidePress,
6951
+ children
6952
+ }
6953
+ )
6954
+ }
6955
+ )
6956
+ }
6957
+ );
6958
+ };
6959
+ const SelectLegacySingle = function(props) {
6960
+ const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
6961
+ const {
6962
+ className,
6963
+ style,
6964
+ children,
6965
+ open,
6966
+ disabled,
6967
+ readOnly,
6968
+ items,
6969
+ itemToString: itemToStringProp,
6970
+ itemToKey: itemToKeyProp,
6971
+ onChange,
6972
+ disableClearSelection = false,
6973
+ disableCloseOnClickOutside = false,
6974
+ disableMatchReferenceWidth = false,
6975
+ disableCloseOnSelectItem = false,
6976
+ loading = false,
6977
+ root,
6978
+ environment: environmentProp,
6979
+ ...rest
6980
+ } = componentProps;
6981
+ const ComboboxLegacyClassNames = cx(styles$1["combobox"], className);
6982
+ const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
6983
+ const [hasEmpty, setHasEmpty] = useState(false);
6984
+ const [disabledItems, setDisabledItems] = useState([]);
6985
+ const [isReadOnly, setIsReadOnly] = useState(readOnly);
6986
+ const [isDisabled, setIsDisabled] = useState(disabled);
6987
+ const referenceRef = useRef(null);
6988
+ const contentRef = useRef(null);
6989
+ const handleOutsidePress = (e) => {
6990
+ const clickedInsideReference = referenceRef.current && e.target != null && referenceRef.current.contains(e.target);
6991
+ if (!clickedInsideReference) {
6992
+ closeMenu();
6993
+ return true;
6994
+ } else {
6995
+ return false;
6996
+ }
6997
+ };
6998
+ const { ref: wrapperDivRef, environment } = useDownshiftEnvironment$1();
6999
+ const itemToString = itemToStringProp ?? defaultItemToString$1;
7000
+ const itemToKey = itemToKeyProp ?? defaultItemToKey$1;
7001
+ const {
7002
+ isOpen,
7003
+ getLabelProps,
7004
+ getToggleButtonProps,
7005
+ getMenuProps,
7006
+ getItemProps,
7007
+ highlightedIndex,
7008
+ selectedItem,
7009
+ selectItem,
7010
+ inputValue,
7011
+ closeMenu
7012
+ } = useSelect({
7013
+ ...rest,
7014
+ items,
7015
+ itemToString,
7016
+ itemToKey,
7017
+ isOpen: open,
7018
+ initialIsOpen: open,
7019
+ environment: environmentProp ?? environment,
7020
+ // NOTE: Reducer needs to be pure, side-effects should be in event handlers
7021
+ stateReducer(state, { type, changes }) {
7022
+ switch (type) {
7023
+ // keep ComboboxLegacy open onBlur, will call close using Popover's onOutsidePress
7024
+ case useSelect.stateChangeTypes.ToggleButtonBlur:
7025
+ return {
7026
+ ...changes,
7027
+ isOpen: open != null ? open : true,
7028
+ highlightedIndex: state.highlightedIndex
7029
+ };
7030
+ case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:
7031
+ case useSelect.stateChangeTypes.ItemClick:
7032
+ return {
7033
+ ...changes,
7034
+ isOpen: open != null ? open : disableCloseOnSelectItem ? true : changes.isOpen,
7035
+ highlightedIndex: disableCloseOnSelectItem ? 0 : changes.highlightedIndex
7036
+ };
7037
+ // prevent this from closing the popover by default
7038
+ case useSelect.stateChangeTypes.ToggleButtonClick:
7039
+ return { ...changes, isOpen: open != null ? open : true };
7040
+ default:
7041
+ return changes;
7042
+ }
7043
+ },
7044
+ onSelectedItemChange(changes) {
7045
+ const { selectedItem: selectedItem2 } = changes;
7046
+ if (onChange != null)
7047
+ onChange(selectedItem2 != null ? selectedItem2 : null);
7048
+ },
7049
+ isItemDisabled(item) {
7050
+ if (isDisabled || isReadOnly) {
7051
+ return !!isDisabled || !!isReadOnly;
7052
+ }
7053
+ if (item && item instanceof Object && "disabled" in item && item.disabled) {
7054
+ return true;
7055
+ }
7056
+ if (item && item instanceof Object && "readOnly" in item && item.readOnly) {
7057
+ return true;
7058
+ }
7059
+ if (disabledItems.includes(item)) {
7060
+ return true;
7061
+ }
7062
+ return false;
7063
+ }
7064
+ });
7065
+ useEffect(() => {
7066
+ setIsDisabled(disabled);
7067
+ }, [disabled]);
7068
+ useEffect(() => {
7069
+ setIsReadOnly(readOnly);
7070
+ }, [readOnly]);
7071
+ return /* @__PURE__ */ jsx(
7072
+ ComboboxLegacyContext.Provider,
7073
+ {
7074
+ value: {
7075
+ multiple: false,
7076
+ select: true,
7077
+ disableClearSelection,
7078
+ items,
7079
+ itemToString,
7080
+ itemToKey,
7081
+ isOpen,
7082
+ getLabelProps,
7083
+ getToggleButtonProps,
7084
+ getMenuProps,
7085
+ getItemProps,
7086
+ highlightedIndex,
7087
+ selectedItem,
7088
+ selectedItems: [],
7089
+ disabledItems,
7090
+ setDisabledItems,
7091
+ selectItem,
7092
+ inputValue,
7093
+ isDisabled,
7094
+ isReadOnly,
7095
+ setIsReadOnly,
7096
+ setIsDisabled,
7097
+ hasDisabledPopover,
7098
+ setHasDisabledPopover,
7099
+ hasEmpty,
7100
+ setHasEmpty,
7101
+ loading,
7102
+ referenceRef,
7103
+ contentRef,
7104
+ closeMenu
7105
+ },
7106
+ children: /* @__PURE__ */ jsx(
7107
+ "div",
7108
+ {
7109
+ className: ComboboxLegacyClassNames,
7110
+ "data-anv": "combobox",
7111
+ style: { ...style, ...layoutStyles },
7112
+ ref: wrapperDivRef,
7113
+ children: /* @__PURE__ */ jsx(
7114
+ PopoverLegacy,
7115
+ {
7116
+ root,
7117
+ open: isOpen,
7118
+ noPadding: true,
7119
+ disableCaret: true,
7120
+ fitScreen: true,
7121
+ disableFlipFallback: true,
7122
+ placement: "bottom-start",
7123
+ matchReferenceWidth: !disableMatchReferenceWidth,
7124
+ disableCloseOnClickOutside,
7125
+ onOutsidePress: handleOutsidePress,
7126
+ children
7127
+ }
7128
+ )
7129
+ }
7130
+ )
7131
+ }
7132
+ );
7133
+ };
7134
+ const SelectLegacyMultiple = function(props) {
7135
+ const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
7136
+ const {
7137
+ className,
7138
+ style,
7139
+ children,
7140
+ open,
7141
+ items,
7142
+ itemToString: itemToStringProp,
7143
+ itemToKey: itemToKeyProp,
7144
+ onChange,
7145
+ onSelectedItemsChange,
7146
+ disableCloseOnClickOutside = false,
7147
+ disableMatchReferenceWidth = false,
7148
+ disableCloseOnSelectItem = false,
7149
+ loading = false,
7150
+ root,
7151
+ disabled,
7152
+ readOnly,
7153
+ stateReducer: _,
7154
+ initialSelectedItems,
7155
+ initialActiveIndex,
7156
+ defaultSelectedItems,
7157
+ defaultActiveIndex,
7158
+ activeIndex: activeIndexProp,
7159
+ selectedItems: selectedItemsProp,
7160
+ environment: environmentProp,
7161
+ ...rest
7162
+ } = componentProps;
7163
+ const ComboboxLegacyClassNames = cx(styles$1["combobox"], className);
7164
+ const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
7165
+ const [hasEmpty, setHasEmpty] = useState(false);
7166
+ const [disabledItems, setDisabledItems] = useState([]);
7167
+ const [isReadOnly, setIsReadOnly] = useState(readOnly);
7168
+ const [isDisabled, setIsDisabled] = useState(disabled);
7169
+ const referenceRef = useRef(null);
7170
+ const contentRef = useRef(null);
7171
+ const handleOutsidePress = (e) => {
7172
+ const clickedInsideReference = referenceRef.current && e.target != null && referenceRef.current.contains(e.target);
7173
+ if (!clickedInsideReference) {
7174
+ closeMenu();
7175
+ return true;
7176
+ } else {
7177
+ return false;
7178
+ }
7179
+ };
7180
+ const { ref: wrapperDivRef, environment } = useDownshiftEnvironment$1();
7181
+ const itemToString = itemToStringProp ?? defaultItemToString$1;
7182
+ const itemToKey = itemToKeyProp ?? defaultItemToKey$1;
7183
+ const {
7184
+ getSelectedItemProps,
7185
+ getDropdownProps,
7186
+ reset,
7187
+ selectedItems,
7188
+ addSelectedItem,
7189
+ removeSelectedItem,
7190
+ setSelectedItems
7191
+ } = useMultipleSelection({
7192
+ itemToKey,
7193
+ initialSelectedItems,
7194
+ initialActiveIndex,
7195
+ defaultSelectedItems,
7196
+ defaultActiveIndex,
7197
+ activeIndex: activeIndexProp,
7198
+ selectedItems: selectedItemsProp,
7199
+ environment: environmentProp ?? environment,
7200
+ stateReducer(state, { type, changes }) {
7201
+ switch (type) {
7202
+ // the Chip itself will handle "Backspace" and "Delete"
7203
+ // just return previous state
7204
+ case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace:
7205
+ case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownDelete:
7206
+ return state;
7207
+ case useMultipleSelection.stateChangeTypes.FunctionRemoveSelectedItem:
7208
+ return { ...changes, activeIndex: -1 };
7209
+ case useMultipleSelection.stateChangeTypes.FunctionReset:
7210
+ return { ...changes, selectedItems: [] };
7211
+ default:
7212
+ return changes;
7213
+ }
7214
+ },
7215
+ onSelectedItemsChange(changes) {
7216
+ const { selectedItems: selectedItems2 } = changes;
7217
+ if (onChange != null) onChange(selectedItems2);
7218
+ if (onSelectedItemsChange != null) onSelectedItemsChange(changes);
7219
+ }
7220
+ });
7221
+ const {
7222
+ isOpen,
7223
+ getLabelProps,
7224
+ getToggleButtonProps,
7225
+ getMenuProps,
7226
+ getItemProps,
7227
+ highlightedIndex,
7228
+ selectedItem,
7229
+ selectItem,
7230
+ inputValue,
7231
+ closeMenu
7232
+ } = useSelect({
7233
+ ...rest,
7234
+ items,
7235
+ itemToString,
7236
+ itemToKey,
7237
+ selectedItem: null,
7238
+ isOpen: open,
7239
+ initialIsOpen: open,
7240
+ environment: environmentProp ?? environment,
7241
+ // NOTE: Reducer needs to be pure, side-effects should be in event handlers
7242
+ stateReducer(state, { type, changes }) {
7243
+ switch (type) {
7244
+ // keep ComboboxLegacy open onBlur, will call close using Popover's onOutsidePress
7245
+ case useSelect.stateChangeTypes.ToggleButtonBlur:
7246
+ return {
7247
+ ...changes,
7248
+ selectedItem: null,
7249
+ isOpen: open != null ? open : true,
7250
+ highlightedIndex: state.highlightedIndex
7251
+ };
7252
+ case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:
7253
+ case useSelect.stateChangeTypes.ItemClick:
7254
+ return {
7255
+ ...changes,
7256
+ isOpen: open != null ? open : disableCloseOnSelectItem ? true : changes.isOpen,
7257
+ highlightedIndex: disableCloseOnSelectItem ? 0 : changes.highlightedIndex
7258
+ };
7259
+ // prevent this from closing the popover by default
7260
+ case useSelect.stateChangeTypes.ToggleButtonClick:
7261
+ return { ...changes, isOpen: open != null ? open : true };
7262
+ default:
7263
+ return changes;
7264
+ }
7265
+ },
7266
+ onStateChange({ type, selectedItem: newSelectedItem }) {
7267
+ switch (type) {
7268
+ case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:
7269
+ case useSelect.stateChangeTypes.ItemClick:
7270
+ case useSelect.stateChangeTypes.ToggleButtonBlur:
7271
+ if (newSelectedItem != null) {
7272
+ const itemAlreadySelected = selectedItems.some(
7273
+ (item) => itemToKey(item) === itemToKey(newSelectedItem)
7274
+ );
7275
+ if (itemAlreadySelected) {
7276
+ removeSelectedItem(newSelectedItem);
7277
+ } else {
7278
+ addSelectedItem(newSelectedItem);
7279
+ }
7280
+ }
7281
+ break;
7282
+ }
7283
+ },
7284
+ isItemDisabled(item) {
7285
+ if (isDisabled || isReadOnly) {
7286
+ return !!isDisabled || !!isReadOnly;
7287
+ }
7288
+ if (item && item instanceof Object && "disabled" in item && item.disabled) {
7289
+ return true;
7290
+ }
7291
+ if (item && item instanceof Object && "readOnly" in item && item.readOnly) {
7292
+ return true;
7293
+ }
7294
+ if (disabledItems.includes(item)) {
7295
+ return true;
7296
+ }
7297
+ return false;
7298
+ }
7299
+ });
7300
+ useEffect(() => {
7301
+ setIsDisabled(disabled);
7302
+ }, [disabled]);
7303
+ useEffect(() => {
7304
+ setIsReadOnly(readOnly);
7305
+ }, [readOnly]);
7306
+ return /* @__PURE__ */ jsx(
7307
+ ComboboxLegacyContext.Provider,
7308
+ {
7309
+ value: {
7310
+ multiple: true,
7311
+ select: true,
7312
+ items,
7313
+ itemToString,
7314
+ itemToKey,
7315
+ isOpen,
7316
+ getLabelProps,
7317
+ getToggleButtonProps,
7318
+ getMenuProps,
7319
+ getItemProps,
7320
+ highlightedIndex,
7321
+ selectedItem,
7322
+ selectedItems,
7323
+ disabledItems,
7324
+ setDisabledItems,
7325
+ getSelectedItemProps,
7326
+ getDropdownProps,
7327
+ reset,
7328
+ addSelectedItem,
7329
+ removeSelectedItem,
7330
+ setSelectedItems,
7331
+ selectItem,
7332
+ inputValue,
7333
+ isDisabled,
7334
+ isReadOnly,
7335
+ setIsReadOnly,
7336
+ setIsDisabled,
7337
+ hasDisabledPopover,
7338
+ setHasDisabledPopover,
7339
+ hasEmpty,
7340
+ setHasEmpty,
7341
+ loading,
7342
+ referenceRef,
7343
+ contentRef,
7344
+ closeMenu
7345
+ },
7346
+ children: /* @__PURE__ */ jsx(
7347
+ "div",
7348
+ {
7349
+ className: ComboboxLegacyClassNames,
7350
+ "data-anv": "combobox",
7351
+ style: { ...style, ...layoutStyles },
7352
+ ref: wrapperDivRef,
7353
+ children: /* @__PURE__ */ jsx(
7354
+ PopoverLegacy,
7355
+ {
7356
+ root,
7357
+ open: !isDisabled && isOpen,
7358
+ noPadding: true,
7359
+ disableCaret: true,
7360
+ fitScreen: true,
7361
+ disableFlipFallback: true,
7362
+ placement: "bottom-start",
7363
+ matchReferenceWidth: !disableMatchReferenceWidth,
7364
+ disableCloseOnClickOutside,
7365
+ onOutsidePress: handleOutsidePress,
7366
+ children
7367
+ }
7368
+ )
7369
+ }
7370
+ )
7371
+ }
7372
+ );
7373
+ };
7374
+
7375
+ const ComboboxLegacyTrigger = ({
7376
+ variant: variantProp = "combobox",
7377
+ className,
7378
+ label,
7379
+ size,
7380
+ error,
7381
+ hint,
7382
+ description,
7383
+ required,
7384
+ moreInfo,
7385
+ openMoreInfo,
7386
+ prefix,
7387
+ suffix,
7388
+ maxRows,
7389
+ id,
7390
+ disabled,
7391
+ readOnly,
7392
+ ...rest
7393
+ }) => {
7394
+ const {
7395
+ select,
7396
+ disableClearSelection,
7397
+ isOpen,
7398
+ itemToString,
7399
+ getLabelProps,
7400
+ getInputProps,
7401
+ getToggleButtonProps,
7402
+ selectedItem,
7403
+ selectedItems,
7404
+ getSelectedItemProps,
7405
+ getDropdownProps,
7406
+ reset,
7407
+ removeSelectedItem,
7408
+ selectItem,
7409
+ inputValue,
7410
+ isDisabled,
7411
+ isReadOnly,
7412
+ referenceRef,
7413
+ contentRef,
7414
+ closeMenu,
7415
+ setIsDisabled,
7416
+ setIsReadOnly
7417
+ } = useComboboxLegacy();
7418
+ const variant = select ? "select" : "combobox";
7419
+ const context = usePopoverLegacyContext();
7420
+ const inputRef = useRef(null);
7421
+ const ComboboxLegacyTriggerClassNames = cx(styles$1["search-field"], {
7422
+ [styles$1["select"]]: variant === "select"
7423
+ });
7424
+ const noClearButton = isDisabled || isReadOnly || disableClearSelection;
7425
+ const ComboboxLegacyInputWrapperClassNames = cx(
7426
+ styles$1["input-wrapper"],
7427
+ className ? {
7428
+ [className]: variant === "select"
7429
+ } : {},
7430
+ {
7431
+ [styles$1["small"]]: size === "small",
7432
+ [styles$1["large"]]: size === "large",
7433
+ [styles$1["no-clear-button"]]: noClearButton
7434
+ }
7435
+ );
7436
+ const ComboboxLegacyInputClassNames = cx(
7437
+ styles$1["input"],
7438
+ className ? {
7439
+ [className]: variant === "combobox"
7440
+ } : {},
7441
+ {
7442
+ [styles$1["error"]]: error
7443
+ }
7444
+ );
7445
+ useLayoutEffect(() => {
7446
+ if (typeof disabled === "undefined") return;
7447
+ setIsDisabled(disabled);
7448
+ }, [disabled, setIsDisabled]);
7449
+ useLayoutEffect(() => {
7450
+ if (typeof readOnly === "undefined") return;
7451
+ setIsReadOnly(readOnly);
7452
+ }, [readOnly, setIsReadOnly]);
7453
+ const labelUid = "label" + useId();
7454
+ const helperUid = "helper" + useId();
7455
+ const placeholderUid = "placeholder" + useId();
7456
+ const ariaDescribedBy = `${helperUid} ${placeholderUid}`;
7457
+ const errorMessage = typeof error !== "boolean" ? error : undefined;
7458
+ const handleBlur = (e) => {
7459
+ const target = e.relatedTarget ?? e.target;
7460
+ const focusedOnReference = referenceRef.current && referenceRef.current.contains(target);
7461
+ const focusedOnContent = contentRef.current && contentRef.current.contains(target);
7462
+ if (!focusedOnReference && !focusedOnContent) {
7463
+ closeMenu();
7464
+ }
7465
+ };
7466
+ const rowsRef = useRef(null);
7467
+ const [stillCalculating, setStillCalculating] = useState(false);
7468
+ const [collapsedChips, setCollapsedChips] = useState(false);
7469
+ const [visibleChipsCount, setVisibleChipsCount] = useState(
7470
+ null
7471
+ );
7472
+ const [forceRenderCount, setForceRenderCount] = useState(0);
7473
+ useLayoutEffect(() => {
7474
+ if (maxRows === undefined) return;
7475
+ if (stillCalculating === false) {
7476
+ setStillCalculating(true);
7477
+ setCollapsedChips(false);
7478
+ setVisibleChipsCount(null);
7479
+ setForceRenderCount((x) => x + 1);
7480
+ } else if (rowsRef?.current?.children) {
7481
+ const children = rowsRef?.current?.children;
7482
+ const rowData = Array.from(children).reduce(
7483
+ (acc, child) => {
7484
+ const top = child.getBoundingClientRect().top;
7485
+ if (!acc.length) {
7486
+ return [{ count: 1, top }];
7487
+ } else if (acc[acc.length - 1].top === top) {
7488
+ return [
7489
+ ...acc.slice(0, -1),
7490
+ { count: acc[acc.length - 1].count + 1, top }
7491
+ ];
7492
+ } else if (acc[acc.length - 1].top !== top) {
7493
+ return [...acc, { count: 1, top }];
7494
+ } else {
7495
+ return acc;
7496
+ }
7497
+ },
7498
+ []
7499
+ );
7500
+ if (!rowData[maxRows] || visibleChipsCount === 0) {
7501
+ setStillCalculating(false);
7502
+ } else {
7503
+ setCollapsedChips(true);
7504
+ if (visibleChipsCount == null) {
7505
+ const firstGuess = Math.max(
7506
+ rowData.reduce((sum, row) => sum + row.count, -2),
7507
+ 0
7508
+ );
7509
+ setVisibleChipsCount(firstGuess);
7510
+ } else {
7511
+ setVisibleChipsCount(visibleChipsCount - 1);
7512
+ }
7513
+ setForceRenderCount((x) => x + 1);
7514
+ }
7515
+ }
7516
+ }, [selectedItems.length, maxRows, forceRenderCount]);
7517
+ const selectedItemsDisplayCount = collapsedChips && maxRows != null && visibleChipsCount !== null ? visibleChipsCount : selectedItems.length;
7518
+ return /* @__PURE__ */ jsxs(
7519
+ "div",
7520
+ {
7521
+ className: ComboboxLegacyTriggerClassNames,
7522
+ "data-anv": "combobox-searchfield",
7523
+ ref: referenceRef,
7524
+ onBlur: handleBlur,
7525
+ children: [
7526
+ label ? /* @__PURE__ */ jsx(
7527
+ Label,
7528
+ {
7529
+ ...getLabelProps({
7530
+ className: styles$1["label"],
7531
+ required,
7532
+ moreInfo,
7533
+ openMoreInfo,
7534
+ id: labelUid
7535
+ }),
7536
+ children: label
7537
+ }
7538
+ ) : null,
7539
+ /* @__PURE__ */ jsxs(
7540
+ "div",
7541
+ {
7542
+ className: ComboboxLegacyInputWrapperClassNames,
7543
+ role: "presentation",
7544
+ ...variant === "select" ? {
7545
+ ...getToggleButtonProps({
7546
+ disabled: isDisabled,
7547
+ readOnly: isReadOnly,
7548
+ ref: context.refs.setReference,
7549
+ id,
7550
+ "aria-describedby": ariaDescribedBy,
7551
+ "aria-labelledby": labelUid
7552
+ })
7553
+ } : {
7554
+ ref: context.refs.setReference,
7555
+ onClick: () => inputRef.current?.focus()
7556
+ },
7557
+ children: [
7558
+ /* @__PURE__ */ jsxs("div", { className: styles$1["buttons-wrapper"], children: [
7559
+ (inputValue || selectedItem || selectedItems.length) && !noClearButton ? /* @__PURE__ */ jsx("div", { className: styles$1["close-button-wrapper"], children: /* @__PURE__ */ jsx(
7560
+ Button,
7561
+ {
7562
+ "aria-label": "clear selection",
7563
+ appearance: "ghost",
7564
+ size: "small",
7565
+ icon: SvgClose,
7566
+ className: styles$1["close-button"],
7567
+ onClick: (e) => {
7568
+ e.stopPropagation();
7569
+ if (reset != null) {
7570
+ reset();
7571
+ } else {
7572
+ selectItem(null);
7573
+ }
7574
+ },
7575
+ tabIndex: -1
7576
+ }
7577
+ ) }) : null,
7578
+ /* @__PURE__ */ jsx("div", { className: styles$1["toggle-button-wrapper"], children: /* @__PURE__ */ jsx(
7579
+ Button,
7580
+ {
7581
+ ...variant === "select" ? { tabIndex: -1 } : getToggleButtonProps(),
7582
+ className: styles$1["toggle-button"],
7583
+ "aria-label": "toggle menu",
7584
+ icon: SvgChevronRight,
7585
+ appearance: "ghost",
7586
+ size: "small",
7587
+ disabled: isDisabled
7588
+ }
7589
+ ) })
7590
+ ] }),
7591
+ /* @__PURE__ */ jsxs("div", { className: styles$1["rows-wrapper"], ref: rowsRef, children: [
7592
+ selectedItems.length && removeSelectedItem != null && getSelectedItemProps != null ? selectedItems.slice(0, selectedItemsDisplayCount).map((item, index) => {
7593
+ const { onClick, ...selectedItemProps } = getSelectedItemProps({
7594
+ selectedItem: item,
7595
+ index
7596
+ });
7597
+ return /* @__PURE__ */ jsx(
7598
+ "div",
7599
+ {
7600
+ className: styles$1["chip-wrapper"],
7601
+ children: /* @__PURE__ */ jsx(
7602
+ Chip,
7603
+ {
7604
+ ...selectedItemProps,
7605
+ label: itemToString(item),
7606
+ onClose: isDisabled || isReadOnly ? undefined : (e) => {
7607
+ removeSelectedItem(item);
7608
+ },
7609
+ className: styles$1["chip"],
7610
+ title: itemToString(item)
7611
+ }
7612
+ )
7613
+ },
7614
+ `selected-item-${index}`
7615
+ );
7616
+ }) : null,
7617
+ collapsedChips && maxRows != null ? /* @__PURE__ */ jsx("div", { className: styles$1["chip-wrapper"], children: /* @__PURE__ */ jsx(
7618
+ Chip,
7619
+ {
7620
+ label: `+${selectedItems.length - selectedItemsDisplayCount}`,
7621
+ className: styles$1["chip"],
7622
+ title: selectedItems.slice(selectedItemsDisplayCount).map((item) => itemToString(item)).join(", ")
7623
+ }
7624
+ ) }) : null,
7625
+ /* @__PURE__ */ jsxs(Flex, { className: styles$1["input-flex"], alignItems: "center", children: [
7626
+ prefix ? /* @__PURE__ */ jsx("div", { className: styles$1["prefix"], children: prefix }) : null,
7627
+ variant === "select" ? /* @__PURE__ */ jsx(
7628
+ "div",
7629
+ {
7630
+ ...getDropdownProps != null ? getDropdownProps({
7631
+ className: ComboboxLegacyInputClassNames,
7632
+ required,
7633
+ preventKeyAction: isOpen
7634
+ }) : {
7635
+ className: ComboboxLegacyInputClassNames,
7636
+ required
7637
+ },
7638
+ children: selectedItems.length ? null : selectedItem ? itemToString(selectedItem) : /* @__PURE__ */ jsx(
7639
+ "span",
7640
+ {
7641
+ className: styles$1["fake-placeholder"],
7642
+ id: placeholderUid,
7643
+ children: rest.placeholder
7644
+ }
7645
+ )
7646
+ }
7647
+ ) : /* @__PURE__ */ jsx(
7648
+ "input",
7649
+ {
7650
+ ...getDropdownProps != null && getInputProps != null ? getInputProps(
7651
+ getDropdownProps({
7652
+ ...rest,
7653
+ className: ComboboxLegacyInputClassNames,
7654
+ disabled: isDisabled,
7655
+ readOnly: isReadOnly,
7656
+ required,
7657
+ autoComplete: "off",
7658
+ id,
7659
+ "aria-describedby": ariaDescribedBy,
7660
+ "aria-labelledby": labelUid,
7661
+ preventKeyAction: isOpen,
7662
+ ref: inputRef
7663
+ })
7664
+ ) : getInputProps != null ? getInputProps({
7665
+ ...rest,
7666
+ className: ComboboxLegacyInputClassNames,
7667
+ disabled: isDisabled,
7668
+ readOnly: isReadOnly,
7669
+ required,
7670
+ autoComplete: "off",
7671
+ id,
7672
+ "aria-describedby": ariaDescribedBy,
7673
+ "aria-labelledby": labelUid,
7674
+ ref: inputRef
7675
+ }) : {}
7676
+ }
7677
+ ),
7678
+ suffix ? /* @__PURE__ */ jsx("div", { className: styles$1["suffix"], children: suffix }) : null
7679
+ ] })
7680
+ ] })
7681
+ ]
7682
+ }
7683
+ ),
7684
+ hint || errorMessage || description ? /* @__PURE__ */ jsx(
7685
+ Helper,
7686
+ {
7687
+ id: helperUid,
7688
+ errorMessage,
7689
+ hint,
7690
+ description
7691
+ }
7692
+ ) : null
7693
+ ]
7694
+ }
7695
+ );
7696
+ };
7697
+
7698
+ const ComboboxLegacyContent = function({
7699
+ children,
7700
+ className,
7701
+ disablePopover = false,
7702
+ ...rest
7703
+ }) {
7704
+ const {
7705
+ items,
7706
+ itemToKey,
7707
+ inputValue,
7708
+ selectedItem,
7709
+ selectedItems,
7710
+ setHasDisabledPopover,
7711
+ getMenuProps,
7712
+ getItemProps,
7713
+ isDisabled,
7714
+ isReadOnly,
7715
+ referenceRef,
7716
+ contentRef,
7717
+ closeMenu
7718
+ } = useComboboxLegacy();
7719
+ const ComboboxLegacyPopoverContentClassNames = cx(
7720
+ styles$1["popover-content"],
7721
+ className
7722
+ );
7723
+ useEffect(() => {
7724
+ setHasDisabledPopover(disablePopover);
7725
+ return () => {
7726
+ setHasDisabledPopover(false);
7727
+ };
7728
+ }, [disablePopover, setHasDisabledPopover]);
7729
+ const handleBlur = (e) => {
7730
+ const target = e.relatedTarget ?? e.target;
7731
+ const focusedOnReference = referenceRef.current && referenceRef.current.contains(target);
7732
+ const focusedOnContent = contentRef.current && contentRef.current.contains(target);
7733
+ if (!focusedOnReference && !focusedOnContent) {
7734
+ closeMenu();
7735
+ }
7736
+ };
7737
+ return disablePopover ? /* @__PURE__ */ jsx(
7738
+ "div",
7739
+ {
7740
+ ...rest,
7741
+ className: ComboboxLegacyPopoverContentClassNames,
7742
+ ref: contentRef,
7743
+ onBlur: handleBlur,
7744
+ children: children ? children({
7745
+ items,
7746
+ inputValue,
7747
+ selectedItem,
7748
+ getMenuProps,
7749
+ getItemProps,
7750
+ listProps: {
7751
+ ...getMenuProps({}, { suppressRefError: true }),
7752
+ style: {
7753
+ display: items.length ? "" : "none",
7754
+ overflow: "auto"
7755
+ }
7756
+ },
7757
+ options: items.map((item, index) => ({
7758
+ optionProps: {
7759
+ ...getItemProps({
7760
+ item,
7761
+ index
7762
+ }),
7763
+ selected: itemToKey(selectedItem) === itemToKey(item) || selectedItems.some(
7764
+ (selectedItem2) => itemToKey(selectedItem2) === itemToKey(item)
7765
+ ),
7766
+ disabled: !!isDisabled || !!isReadOnly
7767
+ // also see "isItemDisabled" function
7768
+ },
7769
+ item,
7770
+ index
7771
+ }))
7772
+ }) : null
7773
+ }
7774
+ ) : /* @__PURE__ */ jsx(
7775
+ Popover.Content,
7776
+ {
7777
+ "data-anv": "combobox-content",
7778
+ ...rest,
7779
+ className: ComboboxLegacyPopoverContentClassNames,
7780
+ ref: getMenuProps({ ref: contentRef }, { suppressRefError: true }).ref,
7781
+ onBlur: handleBlur,
7782
+ children: children ? children({
7783
+ items,
7784
+ inputValue,
7785
+ selectedItem,
7786
+ getMenuProps,
7787
+ getItemProps,
7788
+ listProps: {
7789
+ ...getMenuProps({}, { suppressRefError: true }),
7790
+ style: {
7791
+ display: items.length ? undefined : "none",
7792
+ overflow: "auto"
7793
+ }
7794
+ },
7795
+ options: items.map((item, index) => ({
7796
+ optionProps: {
7797
+ ...getItemProps({
7798
+ item,
7799
+ index
7800
+ }),
7801
+ selected: itemToKey(selectedItem) === itemToKey(item) || selectedItems.some(
7802
+ (selectedItem2) => itemToKey(selectedItem2) === itemToKey(item)
7803
+ ),
7804
+ disabled: !!isDisabled || !!isReadOnly
7805
+ // also see "isItemDisabled" function
7806
+ },
7807
+ item,
7808
+ index
7809
+ }))
7810
+ }) : null
7811
+ }
7812
+ );
7813
+ };
7814
+
7815
+ const ComboboxLegacyList = function({
7816
+ children,
7817
+ ...rest
7818
+ }) {
7819
+ const {
7820
+ getMenuProps,
7821
+ multiple,
7822
+ items,
7823
+ hasAddNew = false,
7824
+ hasEmpty,
7825
+ loading
7826
+ } = useComboboxLegacy();
7827
+ if (multiple) {
7828
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
7829
+ /* @__PURE__ */ jsxs(
7830
+ "div",
7831
+ {
7832
+ ...getMenuProps(rest),
7833
+ "data-anv": "combobox-list",
7834
+ className: cx(styles$1["listview"], styles$2["listview"]),
7835
+ style: {
7836
+ display: items.length || hasAddNew ? undefined : "none",
7837
+ overflow: "auto"
7838
+ },
7839
+ children: [
7840
+ children,
7841
+ loading ? /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Spinner, { className: styles$1["loading-spinner"] }) }) : null
7842
+ ]
7843
+ }
7844
+ ),
7845
+ !items.length && !hasEmpty ? /* @__PURE__ */ jsx("div", { className: styles$1["empty"], children: /* @__PURE__ */ jsx(Text, { subdued: true, size: "small", children: "No match found" }) }) : null
7846
+ ] });
7847
+ } else {
7848
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
7849
+ /* @__PURE__ */ jsxs(
7850
+ "ul",
7851
+ {
7852
+ ...getMenuProps(rest),
7853
+ "data-anv": "combobox-list",
7854
+ className: styles$3["listbox"],
7855
+ style: {
7856
+ display: items.length || hasAddNew ? undefined : "none",
7857
+ overflow: "auto"
7858
+ },
7859
+ children: [
7860
+ children,
7861
+ loading ? /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Spinner, { className: styles$1["loading-spinner"] }) }) }) : null
7862
+ ]
7863
+ }
7864
+ ),
7865
+ !items.length && !hasEmpty ? /* @__PURE__ */ jsx("div", { className: styles$1["empty"], children: /* @__PURE__ */ jsx(Text, { subdued: true, size: "small", children: "No match found" }) }) : null
7866
+ ] });
7867
+ }
7868
+ };
7869
+
7870
+ const ComboboxLegacyItem = function({
7871
+ children,
7872
+ disabled: disabledProp,
7873
+ item,
7874
+ index,
7875
+ alignItems,
7876
+ justifyItems,
7877
+ alignContent,
7878
+ justifyContent,
7879
+ placeItems,
7880
+ placeContent,
7881
+ gap,
7882
+ rowGap,
7883
+ columnGap,
7884
+ ...rest
7885
+ }) {
7886
+ const {
7887
+ itemToKey,
7888
+ getItemProps,
7889
+ multiple,
7890
+ selectedItem,
7891
+ selectedItems,
7892
+ disabledItems,
7893
+ setDisabledItems,
7894
+ highlightedIndex
7895
+ } = useComboboxLegacy();
7896
+ const disabled = disabledProp || item && item instanceof Object && "disabled" in item && item.disabled;
7897
+ useEffect(() => {
7898
+ if (disabledProp && !disabledItems.includes(item)) {
7899
+ setDisabledItems([...disabledItems, item]);
7900
+ } else if (disabledItems.includes(item)) {
7901
+ setDisabledItems(disabledItems.filter((prevItem) => prevItem === item));
7902
+ }
7903
+ return () => {
7904
+ if (disabledItems.includes(item)) {
7905
+ setDisabledItems(disabledItems.filter((prevItem) => prevItem === item));
7906
+ }
7907
+ };
7908
+ }, [item, disabledProp, setDisabledItems]);
7909
+ if (multiple) {
7910
+ const checked = selectedItems.some(
7911
+ (selectedItem2) => itemToKey(selectedItem2) === itemToKey(item)
7912
+ );
7913
+ return /* @__PURE__ */ jsxs(
7914
+ "div",
7915
+ {
7916
+ "data-anv": "combobox-item",
7917
+ ...getItemProps({
7918
+ item,
7919
+ index,
7920
+ "aria-selected": highlightedIndex === index,
7921
+ ...rest
7922
+ }),
7923
+ className: cx(
7924
+ styles$1["listview-option"],
7925
+ styles$2["listview-option"]
7926
+ ),
7927
+ children: [
7928
+ /* @__PURE__ */ jsx("div", { className: cx(styles$1["cell"], styles$2["cell"]), children: /* @__PURE__ */ jsx("div", { className: checkboxStyles["wrapper"], children: /* @__PURE__ */ jsxs("div", { className: checkboxStyles["checkbox"], children: [
7929
+ /* @__PURE__ */ jsx(
7930
+ "input",
7931
+ {
7932
+ type: "checkbox",
7933
+ checked,
7934
+ "aria-checked": checked,
7935
+ "aria-label": "Select",
7936
+ readOnly: true,
7937
+ ...disabled ? { disabled: true } : {}
7938
+ }
7939
+ ),
7940
+ /* @__PURE__ */ jsxs("span", { className: checkboxStyles["icon-wrapper"], "aria-hidden": true, children: [
7941
+ /* @__PURE__ */ jsx(
7942
+ Icon$2,
7943
+ {
7944
+ size: "large",
7945
+ svg: SvgIndeterminateCheckBox,
7946
+ className: checkboxStyles["icon-indeterminate"]
7947
+ }
7948
+ ),
7949
+ /* @__PURE__ */ jsx(
7950
+ Icon$2,
7951
+ {
7952
+ size: "large",
7953
+ svg: SvgCheckBox,
7954
+ className: checkboxStyles["icon-checked"]
7955
+ }
7956
+ ),
7957
+ /* @__PURE__ */ jsx(
7958
+ Icon$2,
7959
+ {
7960
+ size: "large",
7961
+ svg: SvgCheckBoxOutlineBlank,
7962
+ className: checkboxStyles["icon-unchecked"]
7963
+ }
7964
+ )
7965
+ ] }),
7966
+ /* @__PURE__ */ jsx("span", { "aria-hidden": true })
7967
+ ] }) }) }),
7968
+ /* @__PURE__ */ jsx(
7969
+ Flex,
7970
+ {
7971
+ grow: 1,
7972
+ shrink: 1,
7973
+ alignItems,
7974
+ justifyItems,
7975
+ alignContent,
7976
+ justifyContent,
7977
+ placeItems,
7978
+ placeContent,
7979
+ gap,
7980
+ rowGap,
7981
+ columnGap,
7982
+ children
7983
+ }
7984
+ )
7985
+ ]
7986
+ }
7987
+ );
7988
+ } else {
7989
+ return /* @__PURE__ */ jsxs(
7990
+ "li",
7991
+ {
7992
+ ...getItemProps({
7993
+ item,
7994
+ index,
7995
+ "aria-selected": highlightedIndex === index,
7996
+ ...rest
7997
+ }),
7998
+ "data-anv": "combobox-item",
7999
+ "data-checked": itemToKey(selectedItem) === itemToKey(item),
8000
+ className: styles$1["item"],
8001
+ ...disabled ? { "aria-disabled": true } : {},
8002
+ children: [
8003
+ /* @__PURE__ */ jsx(
8004
+ Flex,
8005
+ {
8006
+ className: styles$3["children"],
8007
+ grow: 1,
8008
+ shrink: 1,
8009
+ alignItems,
8010
+ justifyItems,
8011
+ alignContent,
8012
+ justifyContent,
8013
+ placeItems,
8014
+ placeContent,
8015
+ gap,
8016
+ rowGap,
8017
+ columnGap,
8018
+ children
8019
+ }
8020
+ ),
8021
+ /* @__PURE__ */ jsx(
8022
+ Icon$2,
8023
+ {
8024
+ "aria-hidden": true,
8025
+ svg: SvgCheck,
8026
+ inherit: true,
8027
+ className: styles$1["Icon"],
8028
+ style: {
8029
+ opacity: itemToKey(selectedItem) === itemToKey(item) ? 1 : 0
8030
+ }
8031
+ }
8032
+ )
8033
+ ]
8034
+ }
8035
+ );
8036
+ }
8037
+ };
8038
+ const ComboboxLegacyItemAddNew = function({
8039
+ onSelection,
8040
+ ...props
8041
+ }) {
8042
+ const { items, setHasAddNew, hasExactMatch, setOnSelectItemAddNew } = useComboboxLegacy();
8043
+ useEffect(() => {
8044
+ setHasAddNew?.(true);
8045
+ return () => {
8046
+ setHasAddNew?.(false);
8047
+ };
8048
+ }, []);
8049
+ useEffect(() => {
8050
+ setOnSelectItemAddNew?.(() => onSelection);
8051
+ return () => {
8052
+ setOnSelectItemAddNew?.(undefined);
8053
+ };
8054
+ }, [setOnSelectItemAddNew, onSelection]);
8055
+ const firstRenderRef = useRef(true);
8056
+ useEffect(() => {
8057
+ if (firstRenderRef.current === true) {
8058
+ firstRenderRef.current = false;
8059
+ }
8060
+ }, []);
8061
+ return !hasExactMatch && !firstRenderRef.current ? /* @__PURE__ */ jsx(
8062
+ ComboboxLegacyItem,
8063
+ {
8064
+ ...props,
8065
+ item: ADD_NEW$1,
8066
+ index: items.length
8067
+ }
8068
+ ) : null;
8069
+ };
8070
+
8071
+ const ComboboxLegacyEmpty = function({
8072
+ children
8073
+ }) {
8074
+ const { items, setHasEmpty } = useComboboxLegacy();
8075
+ useEffect(() => {
8076
+ setHasEmpty?.(true);
8077
+ return () => {
8078
+ setHasEmpty?.(false);
8079
+ };
8080
+ });
8081
+ return !items.length ? children : null;
8082
+ };
8083
+
8084
+ const item = "_item_1ued6_5";
8085
+ const input = "_input_1ued6_18";
8086
+ const prefix = "_prefix_1ued6_46";
8087
+ const suffix = "_suffix_1ued6_47";
8088
+ const combobox = "_combobox_1ued6_62";
8089
+ const select = "_select_1ued6_71";
8090
+ const chip = "_chip_1ued6_167";
8091
+ const listview = "_listview_1ued6_208";
8092
+ const empty = "_empty_1ued6_216";
8093
+ const children = "_children_1ued6_244";
8094
+ const Icon = "_Icon_1ued6_247";
8095
+ const small = "_small_1ued6_252";
8096
+ const large = "_large_1ued6_255";
8097
+ const error = "_error_1ued6_273";
8098
+ const disabled = "_disabled_1ued6_286";
8099
+ const styles = {
8100
+ "buttons-wrapper": "_buttons-wrapper_1ued6_3",
8101
+ "search-field": "_search-field_1ued6_4",
8102
+ item: item,
8103
+ input: input,
8104
+ "input-wrapper": "_input-wrapper_1ued6_19",
8105
+ "toggle-button-wrapper": "_toggle-button-wrapper_1ued6_32",
8106
+ "close-button-wrapper": "_close-button-wrapper_1ued6_33",
8107
+ prefix: prefix,
8108
+ suffix: suffix,
8109
+ combobox: combobox,
8110
+ select: select,
8111
+ "popover-content": "_popover-content_1ued6_74",
8112
+ "no-clear-button": "_no-clear-button_1ued6_93",
8113
+ "input-flex": "_input-flex_1ued6_96",
8114
+ "fake-placeholder": "_fake-placeholder_1ued6_124",
8115
+ "close-button": "_close-button_1ued6_33",
8116
+ "toggle-button": "_toggle-button_1ued6_32",
8117
+ "rows-wrapper": "_rows-wrapper_1ued6_157",
8118
+ "chip-wrapper": "_chip-wrapper_1ued6_167",
8119
+ chip: chip,
8120
+ listview: listview,
8121
+ "loading-spinner": "_loading-spinner_1ued6_212",
8122
+ empty: empty,
8123
+ children: children,
8124
+ Icon: Icon,
8125
+ small: small,
8126
+ large: large,
8127
+ error: error,
8128
+ "loading-infinite": "_loading-infinite_1ued6_286",
8129
+ "loading-progress": "_loading-progress_1ued6_286",
8130
+ disabled: disabled,
8131
+ "listview-option": "_listview-option_1ued6_304"
8132
+ };
8133
+
8134
+ const ComboboxTrigger = ({
8135
+ variant: variantProp = "combobox",
8136
+ className,
8137
+ label,
8138
+ size,
8139
+ error,
8140
+ hint,
8141
+ description,
8142
+ required,
8143
+ moreInfo,
8144
+ openMoreInfo,
8145
+ prefix,
8146
+ suffix,
8147
+ maxRows,
8148
+ id,
8149
+ disabled,
8150
+ readOnly,
8151
+ ...rest
8152
+ }) => {
8153
+ const {
8154
+ select,
8155
+ disableClearSelection,
8156
+ isOpen,
8157
+ itemToString,
8158
+ getLabelProps,
8159
+ getInputProps,
8160
+ getToggleButtonProps,
8161
+ getMenuProps,
8162
+ selectedItem,
8163
+ selectedItems,
8164
+ getSelectedItemProps,
8165
+ getDropdownProps,
8166
+ reset,
8167
+ removeSelectedItem,
8168
+ selectItem,
8169
+ inputValue,
8170
+ isDisabled,
8171
+ isReadOnly,
8172
+ referenceRef,
8173
+ closeMenu,
8174
+ setIsDisabled,
8175
+ setIsReadOnly
8176
+ } = useCombobox();
8177
+ const variant = select ? "select" : "combobox";
8178
+ const context = usePopoverContext();
8179
+ const inputRef = useRef(null);
8180
+ const ComboboxTriggerClassNames = cx(styles["search-field"], {
8181
+ [styles["select"]]: variant === "select"
8182
+ });
8183
+ const noClearButton = isDisabled || isReadOnly || disableClearSelection;
8184
+ const ComboboxInputWrapperClassNames = cx(
8185
+ styles["input-wrapper"],
6386
8186
  className ? {
6387
8187
  [className]: variant === "select"
6388
8188
  } : {},
@@ -6655,13 +8455,16 @@ const ComboboxTrigger = ({
6655
8455
  );
6656
8456
  };
6657
8457
  const ComboboxSearchField$1 = (props) => {
8458
+ if (!supportsPopover()) return /* @__PURE__ */ jsx(ComboboxLegacyTrigger, { ...props });
6658
8459
  return /* @__PURE__ */ jsx(ComboboxTrigger, { ...props, variant: "combobox" });
6659
8460
  };
6660
8461
  const ComboboxSelectTrigger$1 = (props) => {
8462
+ if (!supportsPopover())
8463
+ return /* @__PURE__ */ jsx(ComboboxLegacyTrigger, { ...props, variant: "select" });
6661
8464
  return /* @__PURE__ */ jsx(ComboboxTrigger, { ...props, variant: "select" });
6662
8465
  };
6663
8466
 
6664
- const ComboboxContent$1 = function({
8467
+ const ComboboxContentElement = function({
6665
8468
  children,
6666
8469
  className,
6667
8470
  disablePopover = false,
@@ -6775,8 +8578,34 @@ const ComboboxContent$1 = function({
6775
8578
  }
6776
8579
  );
6777
8580
  };
8581
+ const ComboboxContent$1 = function({
8582
+ children,
8583
+ className,
8584
+ disablePopover = false,
8585
+ ...rest
8586
+ }) {
8587
+ if (!supportsPopover())
8588
+ return /* @__PURE__ */ jsx(
8589
+ ComboboxLegacyContent,
8590
+ {
8591
+ disablePopover,
8592
+ className,
8593
+ ...rest,
8594
+ children
8595
+ }
8596
+ );
8597
+ return /* @__PURE__ */ jsx(
8598
+ ComboboxContentElement,
8599
+ {
8600
+ disablePopover,
8601
+ className,
8602
+ ...rest,
8603
+ children
8604
+ }
8605
+ );
8606
+ };
6778
8607
 
6779
- const ComboboxList$1 = function({
8608
+ const ComboboxListElement = function({
6780
8609
  children,
6781
8610
  ...rest
6782
8611
  }) {
@@ -6788,6 +8617,8 @@ const ComboboxList$1 = function({
6788
8617
  hasEmpty,
6789
8618
  loading
6790
8619
  } = useCombobox();
8620
+ if (!supportsPopover())
8621
+ return /* @__PURE__ */ jsx(ComboboxLegacyList, { ...rest, children });
6791
8622
  if (multiple) {
6792
8623
  return /* @__PURE__ */ jsxs(Fragment, { children: [
6793
8624
  /* @__PURE__ */ jsx(
@@ -6795,7 +8626,7 @@ const ComboboxList$1 = function({
6795
8626
  {
6796
8627
  ...getMenuProps(rest),
6797
8628
  "data-anv": "combobox-list",
6798
- className: cx(styles["listview"], styles$1["listview"]),
8629
+ className: cx(styles["listview"], styles$2["listview"]),
6799
8630
  style: {
6800
8631
  display: items.length || hasAddNew ? undefined : "none",
6801
8632
  overflow: "auto"
@@ -6812,7 +8643,7 @@ const ComboboxList$1 = function({
6812
8643
  {
6813
8644
  ...getMenuProps(rest),
6814
8645
  "data-anv": "combobox-list",
6815
- className: styles$2["listbox"],
8646
+ className: styles$3["listbox"],
6816
8647
  style: {
6817
8648
  display: items.length || hasAddNew ? undefined : "none",
6818
8649
  overflow: "auto"
@@ -6824,8 +8655,17 @@ const ComboboxList$1 = function({
6824
8655
  ] });
6825
8656
  }
6826
8657
  };
8658
+ const ComboboxList$1 = function({
8659
+ children,
8660
+ className,
8661
+ ...rest
8662
+ }) {
8663
+ if (!supportsPopover())
8664
+ return /* @__PURE__ */ jsx(ComboboxLegacyList, { className, ...rest, children });
8665
+ return /* @__PURE__ */ jsx(ComboboxListElement, { className, ...rest, children });
8666
+ };
6827
8667
 
6828
- const ComboboxItem$1 = function({
8668
+ const ComboboxItemElement = function({
6829
8669
  children,
6830
8670
  disabled: disabledProp,
6831
8671
  item,
@@ -6880,10 +8720,10 @@ const ComboboxItem$1 = function({
6880
8720
  }),
6881
8721
  className: cx(
6882
8722
  styles["listview-option"],
6883
- styles$1["listview-option"]
8723
+ styles$2["listview-option"]
6884
8724
  ),
6885
8725
  children: [
6886
- item !== ADD_NEW ? /* @__PURE__ */ jsx("div", { className: cx(styles["cell"], styles$1["cell"]), children: /* @__PURE__ */ jsx("div", { className: checkboxStyles["wrapper"], children: /* @__PURE__ */ jsxs("div", { className: checkboxStyles["checkbox"], children: [
8726
+ item !== ADD_NEW ? /* @__PURE__ */ jsx("div", { className: cx(styles["cell"], styles$2["cell"]), children: /* @__PURE__ */ jsx("div", { className: checkboxStyles["wrapper"], children: /* @__PURE__ */ jsxs("div", { className: checkboxStyles["checkbox"], children: [
6887
8727
  /* @__PURE__ */ jsx(
6888
8728
  "input",
6889
8729
  {
@@ -6898,7 +8738,7 @@ const ComboboxItem$1 = function({
6898
8738
  ),
6899
8739
  /* @__PURE__ */ jsxs("span", { className: checkboxStyles["icon-wrapper"], "aria-hidden": true, children: [
6900
8740
  /* @__PURE__ */ jsx(
6901
- Icon$1,
8741
+ Icon$2,
6902
8742
  {
6903
8743
  size: "large",
6904
8744
  svg: SvgIndeterminateCheckBox,
@@ -6906,7 +8746,7 @@ const ComboboxItem$1 = function({
6906
8746
  }
6907
8747
  ),
6908
8748
  /* @__PURE__ */ jsx(
6909
- Icon$1,
8749
+ Icon$2,
6910
8750
  {
6911
8751
  size: "large",
6912
8752
  svg: SvgCheckBox,
@@ -6914,7 +8754,7 @@ const ComboboxItem$1 = function({
6914
8754
  }
6915
8755
  ),
6916
8756
  /* @__PURE__ */ jsx(
6917
- Icon$1,
8757
+ Icon$2,
6918
8758
  {
6919
8759
  size: "large",
6920
8760
  svg: SvgCheckBoxOutlineBlank,
@@ -6962,7 +8802,7 @@ const ComboboxItem$1 = function({
6962
8802
  /* @__PURE__ */ jsx(
6963
8803
  Flex,
6964
8804
  {
6965
- className: styles$2["children"],
8805
+ className: styles$3["children"],
6966
8806
  grow: 1,
6967
8807
  shrink: 1,
6968
8808
  alignItems,
@@ -6978,7 +8818,7 @@ const ComboboxItem$1 = function({
6978
8818
  }
6979
8819
  ),
6980
8820
  /* @__PURE__ */ jsx(
6981
- Icon$1,
8821
+ Icon$2,
6982
8822
  {
6983
8823
  "aria-hidden": true,
6984
8824
  svg: SvgCheck,
@@ -6994,7 +8834,11 @@ const ComboboxItem$1 = function({
6994
8834
  );
6995
8835
  }
6996
8836
  };
6997
- const ComboboxItemAddNew$1 = function({
8837
+ const ComboboxItem$1 = function(props) {
8838
+ if (!supportsPopover()) return /* @__PURE__ */ jsx(ComboboxLegacyItem, { ...props });
8839
+ return /* @__PURE__ */ jsx(ComboboxItemElement, { ...props });
8840
+ };
8841
+ const ComboboxItemAddNewElement = function({
6998
8842
  onSelection,
6999
8843
  ...props
7000
8844
  }) {
@@ -7026,8 +8870,12 @@ const ComboboxItemAddNew$1 = function({
7026
8870
  }
7027
8871
  ) : null;
7028
8872
  };
8873
+ const ComboboxItemAddNew$1 = function(props) {
8874
+ if (!supportsPopover()) return /* @__PURE__ */ jsx(ComboboxLegacyItemAddNew, { ...props });
8875
+ return /* @__PURE__ */ jsx(ComboboxItemAddNewElement, { ...props });
8876
+ };
7029
8877
 
7030
- const ComboboxEmpty$1 = function({
8878
+ const ComboboxEmptyElement = function({
7031
8879
  children
7032
8880
  }) {
7033
8881
  const { items, setHasEmpty } = useCombobox();
@@ -7037,8 +8885,16 @@ const ComboboxEmpty$1 = function({
7037
8885
  setHasEmpty?.(false);
7038
8886
  };
7039
8887
  });
8888
+ if (!supportsPopover()) return;
7040
8889
  return !items.length ? children : null;
7041
8890
  };
8891
+ const ComboboxEmpty$1 = function({
8892
+ children
8893
+ }) {
8894
+ if (!supportsPopover())
8895
+ return /* @__PURE__ */ jsx(ComboboxLegacyEmpty, { children });
8896
+ return /* @__PURE__ */ jsx(ComboboxEmptyElement, { children });
8897
+ };
7042
8898
 
7043
8899
  const defaultItemToString = function(item) {
7044
8900
  return item != null ? String(item) : "";
@@ -8063,6 +9919,13 @@ const SelectMultiple = function(props) {
8063
9919
  );
8064
9920
  };
8065
9921
  const ComboboxElement$1 = function(props) {
9922
+ if (!supportsPopover()) {
9923
+ if (isMultiple(props)) {
9924
+ return /* @__PURE__ */ jsx(ComboboxLegacyMultiple, { ...props });
9925
+ } else {
9926
+ return /* @__PURE__ */ jsx(ComboboxLegacySingle, { ...props });
9927
+ }
9928
+ }
8066
9929
  if (isMultiple(props)) {
8067
9930
  return /* @__PURE__ */ jsx(ComboboxMultiple, { ...props });
8068
9931
  } else {
@@ -8070,6 +9933,13 @@ const ComboboxElement$1 = function(props) {
8070
9933
  }
8071
9934
  };
8072
9935
  const ComboboxSelect$1 = function(props) {
9936
+ if (!supportsPopover()) {
9937
+ if (isMultiple(props)) {
9938
+ return /* @__PURE__ */ jsx(SelectLegacyMultiple, { ...props });
9939
+ } else {
9940
+ return /* @__PURE__ */ jsx(SelectLegacySingle, { ...props });
9941
+ }
9942
+ }
8073
9943
  if (isMultiple(props)) {
8074
9944
  return /* @__PURE__ */ jsx(SelectMultiple, { ...props });
8075
9945
  } else {
@@ -8347,4 +10217,4 @@ const Combobox = Object.assign(ComboboxElement, {
8347
10217
  });
8348
10218
 
8349
10219
  export { Combobox as C, ComboboxElement as a, ComboboxSelect as b, ComboboxSearchField as c, ComboboxSelectTrigger as d, ComboboxContent as e, ComboboxList as f, ComboboxItem as g, ComboboxItemAddNew as h, ComboboxEmpty as i, useInfiniteCombobox as u };
8350
- //# sourceMappingURL=Combobox-DnTI2I3L.js.map
10220
+ //# sourceMappingURL=Combobox-JAm3x-tw.js.map