@bikdotai/bik-component-library 0.0.849 → 0.0.850-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/cjs/components/bik-layout/CommonStyles.js +4 -6
  2. package/dist/cjs/components/bik-layout/CommonStyles.js.map +1 -1
  3. package/dist/cjs/components/button/themes.js +3 -3
  4. package/dist/cjs/components/button/themes.js.map +1 -1
  5. package/dist/cjs/components/datePicker/DatePicker.js +1 -1
  6. package/dist/cjs/components/datePicker/DatePicker.js.map +1 -1
  7. package/dist/cjs/components/datePicker/DatePicker.styled.js +20 -14
  8. package/dist/cjs/components/datePicker/DatePicker.styled.js.map +1 -1
  9. package/dist/cjs/components/dropdown/ChipInput.js +1 -1
  10. package/dist/cjs/components/dropdown/ChipInput.js.map +1 -1
  11. package/dist/cjs/components/dropdown/Common.styled.js +6 -5
  12. package/dist/cjs/components/dropdown/Common.styled.js.map +1 -1
  13. package/dist/cjs/components/dropdown/Dropdown.js +1 -1
  14. package/dist/cjs/components/dropdown/Dropdown.js.map +1 -1
  15. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +1 -1
  16. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  17. package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js +1 -1
  18. package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
  19. package/dist/cjs/components/input/Input.js +1 -1
  20. package/dist/cjs/components/input/Input.js.map +1 -1
  21. package/dist/cjs/components/input/Input.styled.js +25 -12
  22. package/dist/cjs/components/input/Input.styled.js.map +1 -1
  23. package/dist/cjs/components/tabs/Tabs.js +1 -1
  24. package/dist/cjs/components/tabs/Tabs.js.map +1 -1
  25. package/dist/cjs/components/tabs/Tabs.styles.js +22 -8
  26. package/dist/cjs/components/tabs/Tabs.styles.js.map +1 -1
  27. package/dist/cjs/components/tag/Tag.js +1 -1
  28. package/dist/cjs/components/tag/Tag.js.map +1 -1
  29. package/dist/cjs/components/tag/Tag.styled.js +4 -0
  30. package/dist/cjs/components/tag/Tag.styled.js.map +1 -1
  31. package/dist/cjs/components/tag/model.js.map +1 -1
  32. package/dist/esm/components/bik-layout/CommonStyles.js +1 -3
  33. package/dist/esm/components/bik-layout/CommonStyles.js.map +1 -1
  34. package/dist/esm/components/button/themes.js +1 -1
  35. package/dist/esm/components/button/themes.js.map +1 -1
  36. package/dist/esm/components/datePicker/DatePicker.js +22 -21
  37. package/dist/esm/components/datePicker/DatePicker.js.map +1 -1
  38. package/dist/esm/components/datePicker/DatePicker.styled.d.ts +10 -0
  39. package/dist/esm/components/datePicker/DatePicker.styled.js +23 -16
  40. package/dist/esm/components/datePicker/DatePicker.styled.js.map +1 -1
  41. package/dist/esm/components/dropdown/ChipInput.d.ts +1 -0
  42. package/dist/esm/components/dropdown/ChipInput.js +37 -30
  43. package/dist/esm/components/dropdown/ChipInput.js.map +1 -1
  44. package/dist/esm/components/dropdown/Common.styled.js +7 -6
  45. package/dist/esm/components/dropdown/Common.styled.js.map +1 -1
  46. package/dist/esm/components/dropdown/Dropdown.d.ts +2 -0
  47. package/dist/esm/components/dropdown/Dropdown.js +96 -89
  48. package/dist/esm/components/dropdown/Dropdown.js.map +1 -1
  49. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +103 -95
  50. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  51. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.d.ts +1 -0
  52. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js +17 -17
  53. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
  54. package/dist/esm/components/dropdown/type.d.ts +2 -0
  55. package/dist/esm/components/input/Input.js +104 -101
  56. package/dist/esm/components/input/Input.js.map +1 -1
  57. package/dist/esm/components/input/Input.model.d.ts +2 -0
  58. package/dist/esm/components/input/Input.styled.d.ts +2 -0
  59. package/dist/esm/components/input/Input.styled.js +38 -25
  60. package/dist/esm/components/input/Input.styled.js.map +1 -1
  61. package/dist/esm/components/tabs/Tabs.js +103 -81
  62. package/dist/esm/components/tabs/Tabs.js.map +1 -1
  63. package/dist/esm/components/tabs/Tabs.model.d.ts +7 -0
  64. package/dist/esm/components/tabs/Tabs.styles.d.ts +2 -0
  65. package/dist/esm/components/tabs/Tabs.styles.js +23 -9
  66. package/dist/esm/components/tabs/Tabs.styles.js.map +1 -1
  67. package/dist/esm/components/tag/Tag.d.ts +1 -1
  68. package/dist/esm/components/tag/Tag.js +17 -15
  69. package/dist/esm/components/tag/Tag.js.map +1 -1
  70. package/dist/esm/components/tag/Tag.styled.d.ts +1 -0
  71. package/dist/esm/components/tag/Tag.styled.js +10 -6
  72. package/dist/esm/components/tag/Tag.styled.js.map +1 -1
  73. package/dist/esm/components/tag/model.d.ts +5 -0
  74. package/dist/esm/components/tag/model.js.map +1 -1
  75. package/package.json +1 -1
@@ -1,54 +1,55 @@
1
1
  import { jsx as u, jsxs as N } from "react/jsx-runtime";
2
- import Ve from "../../../../assets/icons/errorInfo.svg.js";
3
- import $e from "../../../../assets/icons/refresh-purple.svg.js";
2
+ import $e from "../../../../assets/icons/errorInfo.svg.js";
3
+ import Ne from "../../../../assets/icons/refresh-purple.svg.js";
4
4
  import { useCallback as re, useState as v, useRef as m, useEffect as p } from "react";
5
- import { ZeroState as Ne } from "../../../zeroState/ZeroState.js";
6
- import { useOutside as ze } from "../../../../hooks/useOutside.js";
5
+ import { ZeroState as ze } from "../../../zeroState/ZeroState.js";
6
+ import { useOutside as Ge } from "../../../../hooks/useOutside.js";
7
7
  import { COLORS as E } from "../../../../constants/Theme.js";
8
- import { useDropdown as Ge } from "../../hooks/useDropdown.js";
9
- import { Description as Je } from "./description/Description.js";
10
- import { FreeFormMenu as Qe } from "./menu/FreeFormMenu.js";
11
- import { MenuList as Xe } from "./menu/MenuList.js";
12
- import { SelectAllMenu as Ye } from "./menu/SelectAllMenu.js";
13
- import _e from "./multiSelect/MultiSelectDropdownBottomBar.js";
14
- import { OpennedDropdownContainer as et, MenuListContainer as tt } from "./OpennedDropdown.styled.js";
15
- import { SearchBox as nt } from "./searchbox/SearchBox.js";
16
- import { SearchZeroState as ot } from "./searchbox/SearchZeroState.js";
8
+ import { useDropdown as Je } from "../../hooks/useDropdown.js";
9
+ import { Description as Qe } from "./description/Description.js";
10
+ import { FreeFormMenu as Xe } from "./menu/FreeFormMenu.js";
11
+ import { MenuList as Ye } from "./menu/MenuList.js";
12
+ import { SelectAllMenu as _e } from "./menu/SelectAllMenu.js";
13
+ import et from "./multiSelect/MultiSelectDropdownBottomBar.js";
14
+ import { OpennedDropdownContainer as tt, MenuListContainer as nt } from "./OpennedDropdown.styled.js";
15
+ import { SearchBox as ot } from "./searchbox/SearchBox.js";
16
+ import { SearchZeroState as rt } from "./searchbox/SearchZeroState.js";
17
17
  const z = {
18
18
  height: 304,
19
19
  width: 290
20
- }, xt = ({
20
+ }, Lt = ({
21
21
  options: k,
22
22
  isSearchable: g,
23
+ searchPlaceholder: se,
23
24
  isMultiSelect: i,
24
25
  maxSelections: I,
25
26
  width: A,
26
27
  allowFreeForm: G,
27
- height: se,
28
+ height: ie,
28
29
  onClose: J,
29
- onSelect: ie,
30
+ onSelect: le,
30
31
  onSearch: a,
31
32
  version: l,
32
- skipSorting: le,
33
- headerRef: ce,
34
- hideSelectAll: ue,
35
- primaryButtonText: ae,
36
- onInfiniteScroll: de,
37
- onMultiSelectClear: fe,
33
+ skipSorting: ce,
34
+ headerRef: ue,
35
+ hideSelectAll: ae,
36
+ primaryButtonText: de,
37
+ onInfiniteScroll: fe,
38
+ onMultiSelectClear: pe,
38
39
  onDropdownItemClick: R,
39
- buttonOptions: pe,
40
- isSearchLoading: he,
41
- isOptionsLoading: me,
40
+ buttonOptions: he,
41
+ isSearchLoading: me,
42
+ isOptionsLoading: ge,
42
43
  optionsErrorState: w,
43
- disableSearchOptions: ge,
44
- disableSearchedOptionExcept: we,
45
- useDefaultCursor: ye,
46
- containerStyle: be = {},
44
+ disableSearchOptions: we,
45
+ disableSearchedOptionExcept: ye,
46
+ useDefaultCursor: be,
47
+ containerStyle: Oe = {},
47
48
  zeroState: B = void 0,
48
49
  isDraggable: y = !1,
49
50
  onOptionsReorder: b,
50
- hideClearButton: Oe = !1,
51
- showCheckboxForCustomElement: xe = !1,
51
+ hideClearButton: xe = !1,
52
+ showCheckboxForCustomElement: Le = !1,
52
53
  checkboxActiveColor: H,
53
54
  brandSelectedRow: U
54
55
  }) => {
@@ -73,56 +74,56 @@ const z = {
73
74
  }, [b]), p(() => () => {
74
75
  Y.current && Z.current && Z.current(X.current);
75
76
  }, []);
76
- const Le = re(
77
+ const Te = re(
77
78
  (e) => {
78
79
  Q(e), l === "2.0" ? b?.(e) : Y.current = !0;
79
80
  },
80
81
  [b, l]
81
- ), Te = y ? D : k, {
82
+ ), Se = y ? D : k, {
82
83
  dropdownOptions: d,
83
- search: Se,
84
+ search: Ce,
84
85
  searchedString: o,
85
86
  searchedOptions: O,
86
- searchError: Ce,
87
- retrySearch: Ee,
87
+ searchError: Ee,
88
+ retrySearch: ke,
88
89
  onApplyHandler: j,
89
- selectAllHandler: ke,
90
- onMultiSelectClear: Ie,
91
- onFreeFormSelect: Re,
92
- onMultiSelectApply: De,
93
- latestDropdownOptionsRef: Fe,
94
- getSelectedOptions: We,
95
- getCurrentSelectionCount: ve
96
- } = Ge(
90
+ selectAllHandler: Ie,
91
+ onMultiSelectClear: Re,
92
+ onFreeFormSelect: De,
93
+ onMultiSelectApply: Fe,
94
+ latestDropdownOptionsRef: We,
95
+ getSelectedOptions: ve,
96
+ getCurrentSelectionCount: Ae
97
+ } = Je(
97
98
  l,
98
- Te,
99
- ie,
100
- le || y,
99
+ Se,
100
+ le,
101
+ ce || y,
101
102
  i,
102
103
  a,
103
- ge,
104
104
  we,
105
+ ye,
105
106
  I
106
- ), [Ae, K] = v(A ?? z.width), [h, M] = v(null), [F, _] = v(-1), x = m(null), ee = m([]), P = m(null);
107
- ze(
107
+ ), [Be, K] = v(A ?? z.width), [h, M] = v(null), [F, _] = v(-1), x = m(null), ee = m([]), P = m(null);
108
+ Ge(
108
109
  x,
109
110
  () => {
110
111
  if (M(null), i && l === "2.0") {
111
- const e = We(
112
- Fe.current
112
+ const e = ve(
113
+ We.current
113
114
  );
114
115
  J?.(e);
115
116
  } else
116
117
  J?.(d);
117
118
  },
118
- [ce, ee]
119
+ [ue, ee]
119
120
  ), p(() => {
120
121
  const e = setTimeout(() => {
121
122
  x.current && x.current.focus({ preventScroll: !0 });
122
123
  }, 0);
123
124
  return () => clearTimeout(e);
124
125
  }, []);
125
- const Be = (e) => {
126
+ const He = (e) => {
126
127
  const t = [];
127
128
  return e.forEach((n) => {
128
129
  if (n.options)
@@ -137,7 +138,7 @@ const z = {
137
138
  };
138
139
  p(() => {
139
140
  const e = (n) => {
140
- const r = Be(o && a ? O : d);
141
+ const r = He(o && a ? O : d);
141
142
  if (r.length !== 0) {
142
143
  if (n.key === "ArrowDown")
143
144
  n.preventDefault(), _((c) => {
@@ -188,8 +189,8 @@ const z = {
188
189
  j,
189
190
  R
190
191
  ]);
191
- const f = se ?? z.height, te = typeof f == "number" ? g && i ? f - 96 : g && !i || !g && i ? f - 48 : f : f;
192
- function He(e, t) {
192
+ const f = ie ?? z.height, te = typeof f == "number" ? g && i ? f - 96 : g && !i || !g && i ? f - 48 : f : f;
193
+ function Ue(e, t) {
193
194
  M(e && t ? {
194
195
  title: e,
195
196
  description: t
@@ -209,7 +210,7 @@ const z = {
209
210
  const W = [], V = ((e) => {
210
211
  if (!i || !I && I !== 0)
211
212
  return e;
212
- const n = ve(d) >= I;
213
+ const n = Ae(d) >= I;
213
214
  return n ? e.map((s) => {
214
215
  if (s.options)
215
216
  return {
@@ -241,35 +242,35 @@ const z = {
241
242
  ), e) : null;
242
243
  return e;
243
244
  }).filter((e) => e !== null)
244
- ), $ = !!g && o && V.length === 0, L = !o && !!me, T = !o && !!w && !L, Ue = !o && !V.length && !L && !T, ne = L || T || Ue, qe = B?.title || "No results found", Ze = B?.subTitle || "Please try again later or contact us at support@bik.ai if you require further assistance.", je = w?.title || "Failed to load options", Ke = w?.subTitle || "Something went wrong while fetching the list. Please try again", Me = {
245
+ ), $ = !!g && o && V.length === 0, L = !o && !!ge, T = !o && !!w && !L, qe = !o && !V.length && !L && !T, ne = L || T || qe, Ze = B?.title || "No results found", je = B?.subTitle || "Please try again later or contact us at support@bik.ai if you require further assistance.", Ke = w?.title || "Failed to load options", Me = w?.subTitle || "Something went wrong while fetching the list. Please try again", Pe = {
245
246
  buttonText: "Try again",
246
247
  buttonType: "text",
247
248
  size: "small",
248
249
  buttonTextColor: E.background.inverseLight,
249
250
  customIconColor: E.background.inverseLight,
250
- LeadingIcon: $e
251
+ LeadingIcon: Ne
251
252
  }, oe = {
252
253
  IconHolderStyle: {
253
254
  background: E.background.negative.light
254
255
  },
255
- Icon: /* @__PURE__ */ u(Ve, { color: E.content.negative, width: 24, height: 24 }),
256
+ Icon: /* @__PURE__ */ u($e, { color: E.content.negative, width: 24, height: 24 }),
256
257
  ...w
257
258
  };
258
259
  oe.actionButton = {
259
- ...Me,
260
+ ...Pe,
260
261
  ...w?.actionButton ?? {}
261
262
  };
262
- const Pe = L ? void 0 : T ? oe : B;
263
+ const Ve = L ? void 0 : T ? oe : B;
263
264
  return /* @__PURE__ */ N(
264
- et,
265
+ tt,
265
266
  {
266
267
  version: l,
267
268
  ref: x,
268
269
  tabIndex: -1,
269
270
  style: {
270
271
  // maxWidth: descriptionInfo ? 800 : 400,
271
- width: Ae,
272
- ...be,
272
+ width: Be,
273
+ ...Oe,
273
274
  outline: "none"
274
275
  },
275
276
  children: [
@@ -283,7 +284,14 @@ const z = {
283
284
  background: "white"
284
285
  },
285
286
  children: [
286
- !!g && /* @__PURE__ */ u(nt, { onSearch: Se, version: l }),
287
+ !!g && /* @__PURE__ */ u(
288
+ ot,
289
+ {
290
+ onSearch: Ce,
291
+ version: l,
292
+ placeholder: se
293
+ }
294
+ ),
287
295
  ne ? /* @__PURE__ */ u(
288
296
  "div",
289
297
  {
@@ -293,38 +301,38 @@ const z = {
293
301
  background: E.background.base
294
302
  },
295
303
  children: /* @__PURE__ */ u(
296
- Ne,
304
+ ze,
297
305
  {
298
- ...Pe ?? {},
306
+ ...Ve ?? {},
299
307
  isLoading: L,
300
- title: T ? je : qe,
301
- subTitle: T ? Ke : Ze
308
+ title: T ? Ke : Ze,
309
+ subTitle: T ? Me : je
302
310
  }
303
311
  )
304
312
  }
305
313
  ) : /* @__PURE__ */ N(
306
- tt,
314
+ nt,
307
315
  {
308
316
  minHeight: f,
309
317
  maxHeight: te,
310
318
  ref: P,
311
319
  children: [
312
- !!i && !$ && !ue && /* @__PURE__ */ u(
313
- Ye,
320
+ !!i && !$ && !ae && /* @__PURE__ */ u(
321
+ _e,
314
322
  {
315
323
  version: l,
316
324
  options: o && a ? O : d,
317
- onSelect: ke,
325
+ onSelect: Ie,
318
326
  checkboxActiveColor: H,
319
327
  brandSelectedRow: U
320
328
  }
321
329
  ),
322
330
  !G && $ && /* @__PURE__ */ u(
323
- ot,
331
+ rt,
324
332
  {
325
- isLoading: he,
326
- errorMessage: Ce,
327
- onRetry: Ee,
333
+ isLoading: me,
334
+ errorMessage: Ee,
335
+ onRetry: ke,
328
336
  height: te,
329
337
  searchedString: o,
330
338
  containerWidth: A,
@@ -332,32 +340,32 @@ const z = {
332
340
  }
333
341
  ),
334
342
  G && ($ || !!W.length && W.every((e) => e === !1)) && /* @__PURE__ */ u(
335
- Qe,
343
+ Xe,
336
344
  {
337
345
  version: l,
338
346
  isMultiSelect: i,
339
- onSelect: Re,
347
+ onSelect: De,
340
348
  searchedString: o,
341
349
  checkboxActiveColor: H,
342
350
  brandSelectedRow: U
343
351
  }
344
352
  ),
345
353
  /* @__PURE__ */ u(
346
- Xe,
354
+ Ye,
347
355
  {
348
- onInfiniteScroll: de,
356
+ onInfiniteScroll: fe,
349
357
  onDropdownItemClick: R,
350
358
  version: l,
351
359
  onSelect: j,
352
- showDescription: He,
360
+ showDescription: Ue,
353
361
  isMultiSelect: i,
354
362
  options: V,
355
- useDefaultCursor: ye,
363
+ useDefaultCursor: be,
356
364
  ref: ee,
357
365
  focusedIndex: F,
358
366
  isDraggable: y,
359
- onOptionsReorder: Le,
360
- showCheckboxForCustomElement: xe,
367
+ onOptionsReorder: Te,
368
+ showCheckboxForCustomElement: Le,
361
369
  checkboxActiveColor: H,
362
370
  brandSelectedRow: U
363
371
  }
@@ -366,23 +374,23 @@ const z = {
366
374
  }
367
375
  ),
368
376
  !!i && !ne && l !== "2.0" && /* @__PURE__ */ u(
369
- _e,
377
+ et,
370
378
  {
371
379
  onClear: () => {
372
- Ie(), fe?.();
380
+ Re(), pe?.();
373
381
  },
374
- onApply: De,
382
+ onApply: Fe,
375
383
  list: o && a ? O : d,
376
- buttonText: ae,
377
- buttonOptions: pe,
378
- hideClearButton: Oe
384
+ buttonText: de,
385
+ buttonOptions: he,
386
+ hideClearButton: xe
379
387
  }
380
388
  )
381
389
  ]
382
390
  }
383
391
  ),
384
392
  !!h && /* @__PURE__ */ u(
385
- Je,
393
+ Qe,
386
394
  {
387
395
  title: h.title,
388
396
  description: h.description,
@@ -394,6 +402,6 @@ const z = {
394
402
  );
395
403
  };
396
404
  export {
397
- xt as OpenedDropdown
405
+ Lt as OpenedDropdown
398
406
  };
399
407
  //# sourceMappingURL=OpennedDropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpennedDropdown.js","sources":["../../../../../../src/components/dropdown/OpenedDropdown/components/OpennedDropdown.tsx"],"sourcesContent":["import ErrorInfoIcon from '@src/assets/icons/errorInfo.svg';\nimport RetryIcon from '@src/assets/icons/refresh-purple.svg';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { ZeroState } from '@src/components/zeroState/ZeroState';\nimport { useOutside } from '@src/hooks/useOutside';\nimport { COLORS } from '@src/constants/Theme';\nimport { useDropdown } from '../../hooks/useDropdown';\nimport {\n\tDropdownOption,\n\tGroupedOption,\n\tMultiSelectOption,\n\tOpenDropdownProps,\n\tSingleOption,\n} from '../../type';\nimport { Description } from './description/Description';\nimport { FreeFormMenu } from './menu/FreeFormMenu';\nimport { MenuList } from './menu/MenuList';\nimport { SelectAllMenu } from './menu/SelectAllMenu';\nimport MultiSelectDropdownBottomBar from './multiSelect/MultiSelectDropdownBottomBar';\nimport {\n\tMenuListContainer,\n\tOpennedDropdownContainer,\n} from './OpennedDropdown.styled';\nimport { SearchBox } from './searchbox/SearchBox';\nimport { SearchZeroState } from './searchbox/SearchZeroState';\n\n/** CONSTANTS */\nconst defaults = {\n\theight: 304,\n\twidth: 290,\n};\n\nexport const OpenedDropdown: React.FC<OpenDropdownProps> = ({\n\toptions,\n\tisSearchable,\n\tisMultiSelect,\n\tmaxSelections,\n\twidth,\n\tallowFreeForm,\n\theight,\n\tonClose,\n\tonSelect,\n\tonSearch,\n\tversion,\n\tskipSorting,\n\theaderRef,\n\thideSelectAll,\n\tprimaryButtonText,\n\tonInfiniteScroll,\n\tonMultiSelectClear: onMultiSelectClearProp,\n\tonDropdownItemClick,\n\tbuttonOptions,\n\tisSearchLoading,\n\tisOptionsLoading,\n\toptionsErrorState,\n\tdisableSearchOptions,\n\tdisableSearchedOptionExcept,\n\tuseDefaultCursor,\n\tcontainerStyle = {},\n\tzeroState = undefined,\n\tisDraggable = false,\n\tonOptionsReorder,\n\thideClearButton = false,\n\tshowCheckboxForCustomElement = false,\n\tcheckboxActiveColor,\n\tbrandSelectedRow,\n}) => {\n\t// Sort options with selected at top, unselected at bottom, maintaining order within groups\n\tconst sortOptionsWithSelectedOnTop = useCallback(\n\t\t(opts: DropdownOption[]): DropdownOption[] => {\n\t\t\tif (!isDraggable || !isMultiSelect) return opts;\n\n\t\t\tconst selected: DropdownOption[] = [];\n\t\t\tconst unselected: DropdownOption[] = [];\n\n\t\t\topts.forEach((option) => {\n\t\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t\t// Handle grouped options - maintain grouping\n\t\t\t\t\tunselected.push(option);\n\t\t\t\t} else {\n\t\t\t\t\tconst singleOption = option as SingleOption;\n\t\t\t\t\tif (singleOption.selected) {\n\t\t\t\t\t\tselected.push(option);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tunselected.push(option);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn [...selected, ...unselected];\n\t\t},\n\t\t[isDraggable, isMultiSelect],\n\t);\n\n\tconst [localOptions, setLocalOptions] = useState<DropdownOption[]>(() =>\n\t\tsortOptionsWithSelectedOnTop(options),\n\t);\n\tconst localOptionsRef = useRef<DropdownOption[]>(localOptions);\n\tconst hasReorderedRef = useRef(false);\n\tconst onOptionsReorderRef = useRef(onOptionsReorder);\n\n\tuseEffect(() => {\n\t\tsetLocalOptions(sortOptionsWithSelectedOnTop(options));\n\t}, [options, sortOptionsWithSelectedOnTop]);\n\n\tuseEffect(() => {\n\t\tlocalOptionsRef.current = localOptions;\n\t}, [localOptions]);\n\n\tuseEffect(() => {\n\t\tonOptionsReorderRef.current = onOptionsReorder;\n\t}, [onOptionsReorder]);\n\n\t// Fire onOptionsReorder on unmount (dropdown close from Apply or click-outside)\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tif (hasReorderedRef.current && onOptionsReorderRef.current) {\n\t\t\t\tonOptionsReorderRef.current(localOptionsRef.current);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\tconst handleOptionsReorder = useCallback(\n\t\t(reorderedOptions: DropdownOption[]) => {\n\t\t\tsetLocalOptions(reorderedOptions);\n\t\t\t// For version 2.0 (no Apply button), apply reorder immediately\n\t\t\tif (version === '2.0') {\n\t\t\t\tonOptionsReorder?.(reorderedOptions);\n\t\t\t} else {\n\t\t\t\t// For version 1.0, defer until Apply/close (handled by unmount cleanup)\n\t\t\t\thasReorderedRef.current = true;\n\t\t\t}\n\t\t},\n\t\t[onOptionsReorder, version],\n\t);\n\n\tconst optionsToUse = isDraggable ? localOptions : options;\n\tconst {\n\t\tdropdownOptions,\n\t\tsearch,\n\t\tsearchedString,\n\t\tsearchedOptions,\n\t\tsearchError,\n\t\tretrySearch,\n\t\tonApplyHandler,\n\t\tselectAllHandler,\n\t\tonMultiSelectClear,\n\t\tonFreeFormSelect,\n\t\tonMultiSelectApply,\n\t\tlatestDropdownOptionsRef,\n\t\tgetSelectedOptions,\n\t\tgetCurrentSelectionCount,\n\t} = useDropdown(\n\t\tversion,\n\t\toptionsToUse,\n\t\tonSelect,\n\t\tskipSorting || isDraggable,\n\t\tisMultiSelect,\n\t\tonSearch,\n\t\tdisableSearchOptions,\n\t\tdisableSearchedOptionExcept,\n\t\tmaxSelections,\n\t);\n\tconst [widthState, setWidthState] = useState(width ?? defaults.width);\n\tconst [descriptionInfo, setDescription] = useState<{\n\t\ttitle: string;\n\t\tdescription: string;\n\t} | null>(null);\n\tconst [focusedIndex, setFocusedIndex] = useState<number>(-1);\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst childRefs = useRef([]);\n\tconst menuListRef = useRef<HTMLDivElement>(null);\n\tuseOutside(\n\t\tref,\n\t\t() => {\n\t\t\tsetDescription(null);\n\t\t\tif (isMultiSelect && version === '2.0') {\n\t\t\t\tconst optionsToSend = getSelectedOptions(\n\t\t\t\t\tlatestDropdownOptionsRef.current,\n\t\t\t\t);\n\t\t\t\tonClose?.(optionsToSend);\n\t\t\t} else {\n\t\t\t\tonClose?.(dropdownOptions);\n\t\t\t}\n\t\t},\n\t\t[headerRef, childRefs],\n\t);\n\n\t// Auto-focus dropdown when it opens for keyboard navigation while preventing scroll to maintain popper positioning\n\tuseEffect(() => {\n\t\tconst timer = setTimeout(() => {\n\t\t\tif (ref.current) {\n\t\t\t\tref.current.focus({ preventScroll: true });\n\t\t\t}\n\t\t}, 0);\n\t\treturn () => clearTimeout(timer);\n\t}, []);\n\n\t// Get flattened selectable options\n\tconst getFlattenedOptions = (opts: DropdownOption[]): SingleOption[] => {\n\t\tconst flattened: SingleOption[] = [];\n\t\topts.forEach((option) => {\n\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\tconst groupedOption = option as GroupedOption;\n\t\t\t\tgroupedOption.options.forEach((nestedOption) => {\n\t\t\t\t\tif (!nestedOption.disabled) {\n\t\t\t\t\t\tflattened.push(nestedOption);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst singleOption = option as SingleOption;\n\t\t\t\tif (!singleOption.disabled) {\n\t\t\t\t\tflattened.push(singleOption);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn flattened;\n\t};\n\n\t/** Keyboard navigation handler */\n\tuseEffect(() => {\n\t\tconst handleKeyDown = (e: KeyboardEvent) => {\n\t\t\tconst currentOptions =\n\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions;\n\t\t\tconst flattenedOptions = getFlattenedOptions(currentOptions);\n\n\t\t\tif (flattenedOptions.length === 0) return;\n\n\t\t\tif (e.key === 'ArrowDown') {\n\t\t\t\te.preventDefault();\n\t\t\t\tsetFocusedIndex((prev) => {\n\t\t\t\t\tconst newIndex = prev < flattenedOptions.length - 1 ? prev + 1 : 0;\n\t\t\t\t\t// Scroll to the focused item\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tconst focusedElement = menuListRef.current?.querySelector(\n\t\t\t\t\t\t\t`[data-option-index=\"${newIndex}\"]`,\n\t\t\t\t\t\t) as HTMLElement;\n\t\t\t\t\t\tif (focusedElement) {\n\t\t\t\t\t\t\tfocusedElement.scrollIntoView({\n\t\t\t\t\t\t\t\tblock: 'nearest',\n\t\t\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t\treturn newIndex;\n\t\t\t\t});\n\t\t\t} else if (e.key === 'ArrowUp') {\n\t\t\t\te.preventDefault();\n\t\t\t\tsetFocusedIndex((prev) => {\n\t\t\t\t\tconst newIndex = prev > 0 ? prev - 1 : flattenedOptions.length - 1;\n\t\t\t\t\t// Scroll to the focused item\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tconst focusedElement = menuListRef.current?.querySelector(\n\t\t\t\t\t\t\t`[data-option-index=\"${newIndex}\"]`,\n\t\t\t\t\t\t) as HTMLElement;\n\t\t\t\t\t\tif (focusedElement) {\n\t\t\t\t\t\t\tfocusedElement.scrollIntoView({\n\t\t\t\t\t\t\t\tblock: 'nearest',\n\t\t\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t\treturn newIndex;\n\t\t\t\t});\n\t\t\t} else if (e.key === 'Enter' && focusedIndex >= 0) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst focusedOption = flattenedOptions[focusedIndex];\n\t\t\t\tif (focusedOption) {\n\t\t\t\t\t// onApplyHandler handles the selection state and calls onSelect internally\n\t\t\t\t\tonApplyHandler({\n\t\t\t\t\t\t...focusedOption,\n\t\t\t\t\t\tselected: !focusedOption.selected,\n\t\t\t\t\t});\n\t\t\t\t\t// Also trigger onDropdownItemClick if provided\n\t\t\t\t\tif (onDropdownItemClick) {\n\t\t\t\t\t\tonDropdownItemClick(focusedOption);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst dropdownElement = ref.current;\n\t\tif (dropdownElement) {\n\t\t\tdropdownElement.addEventListener('keydown', handleKeyDown);\n\t\t\treturn () => {\n\t\t\t\tdropdownElement.removeEventListener('keydown', handleKeyDown);\n\t\t\t};\n\t\t}\n\t}, [\n\t\tfocusedIndex,\n\t\tsearchedString,\n\t\tsearchedOptions,\n\t\tdropdownOptions,\n\t\tonSearch,\n\t\tonApplyHandler,\n\t\tonDropdownItemClick,\n\t]);\n\n\t// LOCAL CONSTANTS\n\tconst heightToUse = height ?? defaults.height;\n\tconst menuListMaxHeight =\n\t\ttypeof heightToUse === 'number'\n\t\t\t? isSearchable && isMultiSelect\n\t\t\t\t? heightToUse - 96\n\t\t\t\t: (isSearchable && !isMultiSelect) || (!isSearchable && isMultiSelect)\n\t\t\t\t? heightToUse - 48\n\t\t\t\t: heightToUse\n\t\t\t: heightToUse;\n\n\tfunction showDescription(title?: string, description?: string) {\n\t\tif (title && description) {\n\t\t\tsetDescription({\n\t\t\t\ttitle,\n\t\t\t\tdescription,\n\t\t\t});\n\t\t} else {\n\t\t\tsetDescription(null);\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tconst widthToUse = width ?? defaults.width;\n\t\tif (descriptionInfo === null) {\n\t\t\tsetWidthState(widthToUse);\n\t\t} else if (typeof widthToUse === 'number') {\n\t\t\tsetWidthState(widthToUse * 2);\n\t\t} else if (typeof widthToUse === 'string') {\n\t\t\tif (widthToUse.endsWith('px')) {\n\t\t\t\tconst newWidth = parseInt(widthToUse.replace('px', '')) * 2;\n\t\t\t\tsetWidthState(newWidth);\n\t\t\t}\n\t\t}\n\t}, [descriptionInfo]);\n\n\t/**\n\t * This is to show the search result in a stateless way\n\t */\n\n\tconst exactMatchFound: boolean[] = [];\n\n\tconst processOptionsWithMaxSelections = (\n\t\toptionsToProcess: DropdownOption[],\n\t) => {\n\t\tif (!isMultiSelect || (!maxSelections && maxSelections !== 0)) {\n\t\t\treturn optionsToProcess;\n\t\t}\n\n\t\t// Count from the full options list (not the filtered subset) so selections\n\t\t// hidden by a search query are still included in the limit check.\n\t\tconst currentSelectionCount = getCurrentSelectionCount(dropdownOptions);\n\t\tconst maxSelectionsReached = currentSelectionCount >= maxSelections;\n\n\t\tif (!maxSelectionsReached) {\n\t\t\treturn optionsToProcess;\n\t\t}\n\n\t\t// Disable unselected options when max selections is reached\n\t\treturn optionsToProcess.map((option) => {\n\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\treturn {\n\t\t\t\t\t...option,\n\t\t\t\t\toptions: (option as GroupedOption).options.map((nestedOption) => ({\n\t\t\t\t\t\t...nestedOption,\n\t\t\t\t\t\tdisabled:\n\t\t\t\t\t\t\tnestedOption.disabled ||\n\t\t\t\t\t\t\t(!nestedOption.selected && maxSelectionsReached),\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tconst singleOption = option as SingleOption;\n\t\t\t\treturn {\n\t\t\t\t\t...singleOption,\n\t\t\t\t\tdisabled:\n\t\t\t\t\t\tsingleOption.disabled ||\n\t\t\t\t\t\t(!singleOption.selected && maxSelectionsReached),\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t};\n\n\tconst optionsToShow = processOptionsWithMaxSelections(\n\t\t(searchedString && onSearch ? searchedOptions : dropdownOptions)\n\t\t\t.map((option) => {\n\t\t\t\tif (searchedString && !onSearch) {\n\t\t\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t\t\tconst groupedOption = { ...option } as GroupedOption;\n\t\t\t\t\t\tgroupedOption.options = groupedOption.options.filter((op) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\top.label?.toLowerCase().includes(searchedString.toLowerCase())\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\texactMatchFound.push(\n\t\t\t\t\t\t\t\t\t!searchedString || op.label === searchedString,\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn groupedOption.options.length > 0 ? groupedOption : null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\toption.label\n\t\t\t\t\t\t\t\t?.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(searchedString.toLowerCase()) ||\n\t\t\t\t\t\t\t(option as SingleOption | MultiSelectOption).searchKey\n\t\t\t\t\t\t\t\t?.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(searchedString.toLowerCase())\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\texactMatchFound.push(\n\t\t\t\t\t\t\t\t!searchedString || option.label === searchedString,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn option;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn option;\n\t\t\t})\n\t\t\t.filter((option) => option !== null) as DropdownOption[],\n\t);\n\n\tconst noResultForSearch =\n\t\t!!isSearchable && searchedString && optionsToShow.length === 0;\n\tconst showLoadingState = !searchedString && !!isOptionsLoading;\n\tconst showErrorState =\n\t\t!searchedString && !!optionsErrorState && !showLoadingState;\n\tconst showEmptyState =\n\t\t!searchedString &&\n\t\t!optionsToShow.length &&\n\t\t!showLoadingState &&\n\t\t!showErrorState;\n\tconst showTopLevelZeroState =\n\t\tshowLoadingState || showErrorState || showEmptyState;\n\n\tconst emptyStateTitle = zeroState?.title || 'No results found';\n\tconst emptyStateSubTitle =\n\t\tzeroState?.subTitle ||\n\t\t`Please try again later or contact us at support@bik.ai if you require further assistance.`;\n\tconst errorStateTitle = optionsErrorState?.title || 'Failed to load options';\n\tconst errorStateSubTitle =\n\t\toptionsErrorState?.subTitle ||\n\t\t'Something went wrong while fetching the list. Please try again';\n\tconst defaultErrorActionButton = {\n\t\tbuttonText: 'Try again',\n\t\tbuttonType: 'text' as const,\n\t\tsize: 'small' as const,\n\t\tbuttonTextColor: COLORS.background.inverseLight,\n\t\tcustomIconColor: COLORS.background.inverseLight,\n\t\tLeadingIcon: RetryIcon,\n\t};\n\n\tconst mergedErrorState = {\n\t\tIconHolderStyle: {\n\t\t\tbackground: COLORS.background.negative.light,\n\t\t},\n\t\tIcon: (\n\t\t\t<ErrorInfoIcon color={COLORS.content.negative} width={24} height={24} />\n\t\t),\n\t\t...optionsErrorState,\n\t};\n\tmergedErrorState.actionButton = {\n\t\t...defaultErrorActionButton,\n\t\t...(optionsErrorState?.actionButton ?? {}),\n\t};\n\tconst zeroStateProps = showLoadingState\n\t\t? undefined\n\t\t: showErrorState\n\t\t? mergedErrorState\n\t\t: zeroState;\n\n\treturn (\n\t\t<OpennedDropdownContainer\n\t\t\tversion={version}\n\t\t\tref={ref}\n\t\t\ttabIndex={-1}\n\t\t\tstyle={{\n\t\t\t\t// maxWidth: descriptionInfo ? 800 : 400,\n\t\t\t\twidth: widthState,\n\t\t\t\t...containerStyle,\n\t\t\t\toutline: 'none',\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: descriptionInfo ? '50%' : '100%',\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\tbackground: 'white',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{!!isSearchable && <SearchBox onSearch={search} version={version} />}\n\n\t\t\t\t{showTopLevelZeroState ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\theight: heightToUse,\n\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\tbackground: COLORS.background.base,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ZeroState\n\t\t\t\t\t\t\t{...(zeroStateProps ?? {})}\n\t\t\t\t\t\t\tisLoading={showLoadingState}\n\t\t\t\t\t\t\ttitle={showErrorState ? errorStateTitle : emptyStateTitle}\n\t\t\t\t\t\t\tsubTitle={\n\t\t\t\t\t\t\t\tshowErrorState ? errorStateSubTitle : emptyStateSubTitle\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<MenuListContainer\n\t\t\t\t\t\tminHeight={heightToUse}\n\t\t\t\t\t\tmaxHeight={menuListMaxHeight}\n\t\t\t\t\t\tref={menuListRef}\n\t\t\t\t\t>\n\t\t\t\t\t\t{!!isMultiSelect && !noResultForSearch && !hideSelectAll && (\n\t\t\t\t\t\t\t<SelectAllMenu\n\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\toptions={\n\t\t\t\t\t\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonSelect={selectAllHandler}\n\t\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{!allowFreeForm && noResultForSearch && (\n\t\t\t\t\t\t\t<SearchZeroState\n\t\t\t\t\t\t\t\tisLoading={isSearchLoading}\n\t\t\t\t\t\t\t\terrorMessage={searchError}\n\t\t\t\t\t\t\t\tonRetry={retrySearch}\n\t\t\t\t\t\t\t\theight={menuListMaxHeight as number}\n\t\t\t\t\t\t\t\tsearchedString={searchedString}\n\t\t\t\t\t\t\t\tcontainerWidth={width}\n\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{allowFreeForm &&\n\t\t\t\t\t\t\t(noResultForSearch ||\n\t\t\t\t\t\t\t\t(!!exactMatchFound.length &&\n\t\t\t\t\t\t\t\t\texactMatchFound.every((val) => val === false))) && (\n\t\t\t\t\t\t\t\t<FreeFormMenu\n\t\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\t\t\tonSelect={onFreeFormSelect}\n\t\t\t\t\t\t\t\t\tsearchedString={searchedString}\n\t\t\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<MenuList\n\t\t\t\t\t\t\tonInfiniteScroll={onInfiniteScroll}\n\t\t\t\t\t\t\tonDropdownItemClick={onDropdownItemClick}\n\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\tonSelect={onApplyHandler}\n\t\t\t\t\t\t\tshowDescription={showDescription}\n\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\toptions={optionsToShow}\n\t\t\t\t\t\t\tuseDefaultCursor={useDefaultCursor}\n\t\t\t\t\t\t\tref={childRefs}\n\t\t\t\t\t\t\tfocusedIndex={focusedIndex}\n\t\t\t\t\t\t\tisDraggable={isDraggable}\n\t\t\t\t\t\t\tonOptionsReorder={handleOptionsReorder}\n\t\t\t\t\t\t\tshowCheckboxForCustomElement={showCheckboxForCustomElement}\n\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuListContainer>\n\t\t\t\t)}\n\t\t\t\t{!!isMultiSelect && !showTopLevelZeroState && version !== '2.0' && (\n\t\t\t\t\t<MultiSelectDropdownBottomBar\n\t\t\t\t\t\tonClear={() => {\n\t\t\t\t\t\t\tonMultiSelectClear();\n\t\t\t\t\t\t\tonMultiSelectClearProp?.();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonApply={onMultiSelectApply}\n\t\t\t\t\t\tlist={\n\t\t\t\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbuttonText={primaryButtonText}\n\t\t\t\t\t\tbuttonOptions={buttonOptions}\n\t\t\t\t\t\thideClearButton={hideClearButton}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{!!descriptionInfo && (\n\t\t\t\t<Description\n\t\t\t\t\ttitle={descriptionInfo.title}\n\t\t\t\t\tdescription={descriptionInfo.description}\n\t\t\t\t\tversion={version}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</OpennedDropdownContainer>\n\t);\n};\n"],"names":["defaults","OpenedDropdown","options","isSearchable","isMultiSelect","maxSelections","width","allowFreeForm","height","onClose","onSelect","onSearch","version","skipSorting","headerRef","hideSelectAll","primaryButtonText","onInfiniteScroll","onMultiSelectClearProp","onDropdownItemClick","buttonOptions","isSearchLoading","isOptionsLoading","optionsErrorState","disableSearchOptions","disableSearchedOptionExcept","useDefaultCursor","containerStyle","zeroState","isDraggable","onOptionsReorder","hideClearButton","showCheckboxForCustomElement","checkboxActiveColor","brandSelectedRow","sortOptionsWithSelectedOnTop","useCallback","opts","selected","unselected","option","localOptions","setLocalOptions","useState","localOptionsRef","useRef","hasReorderedRef","onOptionsReorderRef","useEffect","handleOptionsReorder","reorderedOptions","optionsToUse","dropdownOptions","search","searchedString","searchedOptions","searchError","retrySearch","onApplyHandler","selectAllHandler","onMultiSelectClear","onFreeFormSelect","onMultiSelectApply","latestDropdownOptionsRef","getSelectedOptions","getCurrentSelectionCount","useDropdown","widthState","setWidthState","descriptionInfo","setDescription","focusedIndex","setFocusedIndex","ref","childRefs","menuListRef","useOutside","optionsToSend","timer","getFlattenedOptions","flattened","nestedOption","singleOption","handleKeyDown","e","flattenedOptions","prev","newIndex","focusedElement","focusedOption","dropdownElement","heightToUse","menuListMaxHeight","showDescription","title","description","widthToUse","newWidth","exactMatchFound","optionsToShow","optionsToProcess","maxSelectionsReached","groupedOption","op","noResultForSearch","showLoadingState","showErrorState","showEmptyState","showTopLevelZeroState","emptyStateTitle","emptyStateSubTitle","errorStateTitle","errorStateSubTitle","defaultErrorActionButton","COLORS","RetryIcon","mergedErrorState","jsx","ErrorInfoIcon","zeroStateProps","jsxs","OpennedDropdownContainer","SearchBox","ZeroState","MenuListContainer","SelectAllMenu","SearchZeroState","val","FreeFormMenu","MenuList","MultiSelectDropdownBottomBar","Description"],"mappings":"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"}
1
+ {"version":3,"file":"OpennedDropdown.js","sources":["../../../../../../src/components/dropdown/OpenedDropdown/components/OpennedDropdown.tsx"],"sourcesContent":["import ErrorInfoIcon from '@src/assets/icons/errorInfo.svg';\nimport RetryIcon from '@src/assets/icons/refresh-purple.svg';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { ZeroState } from '@src/components/zeroState/ZeroState';\nimport { useOutside } from '@src/hooks/useOutside';\nimport { COLORS } from '@src/constants/Theme';\nimport { useDropdown } from '../../hooks/useDropdown';\nimport {\n\tDropdownOption,\n\tGroupedOption,\n\tMultiSelectOption,\n\tOpenDropdownProps,\n\tSingleOption,\n} from '../../type';\nimport { Description } from './description/Description';\nimport { FreeFormMenu } from './menu/FreeFormMenu';\nimport { MenuList } from './menu/MenuList';\nimport { SelectAllMenu } from './menu/SelectAllMenu';\nimport MultiSelectDropdownBottomBar from './multiSelect/MultiSelectDropdownBottomBar';\nimport {\n\tMenuListContainer,\n\tOpennedDropdownContainer,\n} from './OpennedDropdown.styled';\nimport { SearchBox } from './searchbox/SearchBox';\nimport { SearchZeroState } from './searchbox/SearchZeroState';\n\n/** CONSTANTS */\nconst defaults = {\n\theight: 304,\n\twidth: 290,\n};\n\nexport const OpenedDropdown: React.FC<OpenDropdownProps> = ({\n\toptions,\n\tisSearchable,\n\tsearchPlaceholder,\n\tisMultiSelect,\n\tmaxSelections,\n\twidth,\n\tallowFreeForm,\n\theight,\n\tonClose,\n\tonSelect,\n\tonSearch,\n\tversion,\n\tskipSorting,\n\theaderRef,\n\thideSelectAll,\n\tprimaryButtonText,\n\tonInfiniteScroll,\n\tonMultiSelectClear: onMultiSelectClearProp,\n\tonDropdownItemClick,\n\tbuttonOptions,\n\tisSearchLoading,\n\tisOptionsLoading,\n\toptionsErrorState,\n\tdisableSearchOptions,\n\tdisableSearchedOptionExcept,\n\tuseDefaultCursor,\n\tcontainerStyle = {},\n\tzeroState = undefined,\n\tisDraggable = false,\n\tonOptionsReorder,\n\thideClearButton = false,\n\tshowCheckboxForCustomElement = false,\n\tcheckboxActiveColor,\n\tbrandSelectedRow,\n}) => {\n\t// Sort options with selected at top, unselected at bottom, maintaining order within groups\n\tconst sortOptionsWithSelectedOnTop = useCallback(\n\t\t(opts: DropdownOption[]): DropdownOption[] => {\n\t\t\tif (!isDraggable || !isMultiSelect) return opts;\n\n\t\t\tconst selected: DropdownOption[] = [];\n\t\t\tconst unselected: DropdownOption[] = [];\n\n\t\t\topts.forEach((option) => {\n\t\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t\t// Handle grouped options - maintain grouping\n\t\t\t\t\tunselected.push(option);\n\t\t\t\t} else {\n\t\t\t\t\tconst singleOption = option as SingleOption;\n\t\t\t\t\tif (singleOption.selected) {\n\t\t\t\t\t\tselected.push(option);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tunselected.push(option);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn [...selected, ...unselected];\n\t\t},\n\t\t[isDraggable, isMultiSelect],\n\t);\n\n\tconst [localOptions, setLocalOptions] = useState<DropdownOption[]>(() =>\n\t\tsortOptionsWithSelectedOnTop(options),\n\t);\n\tconst localOptionsRef = useRef<DropdownOption[]>(localOptions);\n\tconst hasReorderedRef = useRef(false);\n\tconst onOptionsReorderRef = useRef(onOptionsReorder);\n\n\tuseEffect(() => {\n\t\tsetLocalOptions(sortOptionsWithSelectedOnTop(options));\n\t}, [options, sortOptionsWithSelectedOnTop]);\n\n\tuseEffect(() => {\n\t\tlocalOptionsRef.current = localOptions;\n\t}, [localOptions]);\n\n\tuseEffect(() => {\n\t\tonOptionsReorderRef.current = onOptionsReorder;\n\t}, [onOptionsReorder]);\n\n\t// Fire onOptionsReorder on unmount (dropdown close from Apply or click-outside)\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tif (hasReorderedRef.current && onOptionsReorderRef.current) {\n\t\t\t\tonOptionsReorderRef.current(localOptionsRef.current);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\tconst handleOptionsReorder = useCallback(\n\t\t(reorderedOptions: DropdownOption[]) => {\n\t\t\tsetLocalOptions(reorderedOptions);\n\t\t\t// For version 2.0 (no Apply button), apply reorder immediately\n\t\t\tif (version === '2.0') {\n\t\t\t\tonOptionsReorder?.(reorderedOptions);\n\t\t\t} else {\n\t\t\t\t// For version 1.0, defer until Apply/close (handled by unmount cleanup)\n\t\t\t\thasReorderedRef.current = true;\n\t\t\t}\n\t\t},\n\t\t[onOptionsReorder, version],\n\t);\n\n\tconst optionsToUse = isDraggable ? localOptions : options;\n\tconst {\n\t\tdropdownOptions,\n\t\tsearch,\n\t\tsearchedString,\n\t\tsearchedOptions,\n\t\tsearchError,\n\t\tretrySearch,\n\t\tonApplyHandler,\n\t\tselectAllHandler,\n\t\tonMultiSelectClear,\n\t\tonFreeFormSelect,\n\t\tonMultiSelectApply,\n\t\tlatestDropdownOptionsRef,\n\t\tgetSelectedOptions,\n\t\tgetCurrentSelectionCount,\n\t} = useDropdown(\n\t\tversion,\n\t\toptionsToUse,\n\t\tonSelect,\n\t\tskipSorting || isDraggable,\n\t\tisMultiSelect,\n\t\tonSearch,\n\t\tdisableSearchOptions,\n\t\tdisableSearchedOptionExcept,\n\t\tmaxSelections,\n\t);\n\tconst [widthState, setWidthState] = useState(width ?? defaults.width);\n\tconst [descriptionInfo, setDescription] = useState<{\n\t\ttitle: string;\n\t\tdescription: string;\n\t} | null>(null);\n\tconst [focusedIndex, setFocusedIndex] = useState<number>(-1);\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst childRefs = useRef([]);\n\tconst menuListRef = useRef<HTMLDivElement>(null);\n\tuseOutside(\n\t\tref,\n\t\t() => {\n\t\t\tsetDescription(null);\n\t\t\tif (isMultiSelect && version === '2.0') {\n\t\t\t\tconst optionsToSend = getSelectedOptions(\n\t\t\t\t\tlatestDropdownOptionsRef.current,\n\t\t\t\t);\n\t\t\t\tonClose?.(optionsToSend);\n\t\t\t} else {\n\t\t\t\tonClose?.(dropdownOptions);\n\t\t\t}\n\t\t},\n\t\t[headerRef, childRefs],\n\t);\n\n\t// Auto-focus dropdown when it opens for keyboard navigation while preventing scroll to maintain popper positioning\n\tuseEffect(() => {\n\t\tconst timer = setTimeout(() => {\n\t\t\tif (ref.current) {\n\t\t\t\tref.current.focus({ preventScroll: true });\n\t\t\t}\n\t\t}, 0);\n\t\treturn () => clearTimeout(timer);\n\t}, []);\n\n\t// Get flattened selectable options\n\tconst getFlattenedOptions = (opts: DropdownOption[]): SingleOption[] => {\n\t\tconst flattened: SingleOption[] = [];\n\t\topts.forEach((option) => {\n\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\tconst groupedOption = option as GroupedOption;\n\t\t\t\tgroupedOption.options.forEach((nestedOption) => {\n\t\t\t\t\tif (!nestedOption.disabled) {\n\t\t\t\t\t\tflattened.push(nestedOption);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst singleOption = option as SingleOption;\n\t\t\t\tif (!singleOption.disabled) {\n\t\t\t\t\tflattened.push(singleOption);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn flattened;\n\t};\n\n\t/** Keyboard navigation handler */\n\tuseEffect(() => {\n\t\tconst handleKeyDown = (e: KeyboardEvent) => {\n\t\t\tconst currentOptions =\n\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions;\n\t\t\tconst flattenedOptions = getFlattenedOptions(currentOptions);\n\n\t\t\tif (flattenedOptions.length === 0) return;\n\n\t\t\tif (e.key === 'ArrowDown') {\n\t\t\t\te.preventDefault();\n\t\t\t\tsetFocusedIndex((prev) => {\n\t\t\t\t\tconst newIndex = prev < flattenedOptions.length - 1 ? prev + 1 : 0;\n\t\t\t\t\t// Scroll to the focused item\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tconst focusedElement = menuListRef.current?.querySelector(\n\t\t\t\t\t\t\t`[data-option-index=\"${newIndex}\"]`,\n\t\t\t\t\t\t) as HTMLElement;\n\t\t\t\t\t\tif (focusedElement) {\n\t\t\t\t\t\t\tfocusedElement.scrollIntoView({\n\t\t\t\t\t\t\t\tblock: 'nearest',\n\t\t\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t\treturn newIndex;\n\t\t\t\t});\n\t\t\t} else if (e.key === 'ArrowUp') {\n\t\t\t\te.preventDefault();\n\t\t\t\tsetFocusedIndex((prev) => {\n\t\t\t\t\tconst newIndex = prev > 0 ? prev - 1 : flattenedOptions.length - 1;\n\t\t\t\t\t// Scroll to the focused item\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tconst focusedElement = menuListRef.current?.querySelector(\n\t\t\t\t\t\t\t`[data-option-index=\"${newIndex}\"]`,\n\t\t\t\t\t\t) as HTMLElement;\n\t\t\t\t\t\tif (focusedElement) {\n\t\t\t\t\t\t\tfocusedElement.scrollIntoView({\n\t\t\t\t\t\t\t\tblock: 'nearest',\n\t\t\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t\treturn newIndex;\n\t\t\t\t});\n\t\t\t} else if (e.key === 'Enter' && focusedIndex >= 0) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst focusedOption = flattenedOptions[focusedIndex];\n\t\t\t\tif (focusedOption) {\n\t\t\t\t\t// onApplyHandler handles the selection state and calls onSelect internally\n\t\t\t\t\tonApplyHandler({\n\t\t\t\t\t\t...focusedOption,\n\t\t\t\t\t\tselected: !focusedOption.selected,\n\t\t\t\t\t});\n\t\t\t\t\t// Also trigger onDropdownItemClick if provided\n\t\t\t\t\tif (onDropdownItemClick) {\n\t\t\t\t\t\tonDropdownItemClick(focusedOption);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst dropdownElement = ref.current;\n\t\tif (dropdownElement) {\n\t\t\tdropdownElement.addEventListener('keydown', handleKeyDown);\n\t\t\treturn () => {\n\t\t\t\tdropdownElement.removeEventListener('keydown', handleKeyDown);\n\t\t\t};\n\t\t}\n\t}, [\n\t\tfocusedIndex,\n\t\tsearchedString,\n\t\tsearchedOptions,\n\t\tdropdownOptions,\n\t\tonSearch,\n\t\tonApplyHandler,\n\t\tonDropdownItemClick,\n\t]);\n\n\t// LOCAL CONSTANTS\n\tconst heightToUse = height ?? defaults.height;\n\tconst menuListMaxHeight =\n\t\ttypeof heightToUse === 'number'\n\t\t\t? isSearchable && isMultiSelect\n\t\t\t\t? heightToUse - 96\n\t\t\t\t: (isSearchable && !isMultiSelect) || (!isSearchable && isMultiSelect)\n\t\t\t\t? heightToUse - 48\n\t\t\t\t: heightToUse\n\t\t\t: heightToUse;\n\n\tfunction showDescription(title?: string, description?: string) {\n\t\tif (title && description) {\n\t\t\tsetDescription({\n\t\t\t\ttitle,\n\t\t\t\tdescription,\n\t\t\t});\n\t\t} else {\n\t\t\tsetDescription(null);\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tconst widthToUse = width ?? defaults.width;\n\t\tif (descriptionInfo === null) {\n\t\t\tsetWidthState(widthToUse);\n\t\t} else if (typeof widthToUse === 'number') {\n\t\t\tsetWidthState(widthToUse * 2);\n\t\t} else if (typeof widthToUse === 'string') {\n\t\t\tif (widthToUse.endsWith('px')) {\n\t\t\t\tconst newWidth = parseInt(widthToUse.replace('px', '')) * 2;\n\t\t\t\tsetWidthState(newWidth);\n\t\t\t}\n\t\t}\n\t}, [descriptionInfo]);\n\n\t/**\n\t * This is to show the search result in a stateless way\n\t */\n\n\tconst exactMatchFound: boolean[] = [];\n\n\tconst processOptionsWithMaxSelections = (\n\t\toptionsToProcess: DropdownOption[],\n\t) => {\n\t\tif (!isMultiSelect || (!maxSelections && maxSelections !== 0)) {\n\t\t\treturn optionsToProcess;\n\t\t}\n\n\t\t// Count from the full options list (not the filtered subset) so selections\n\t\t// hidden by a search query are still included in the limit check.\n\t\tconst currentSelectionCount = getCurrentSelectionCount(dropdownOptions);\n\t\tconst maxSelectionsReached = currentSelectionCount >= maxSelections;\n\n\t\tif (!maxSelectionsReached) {\n\t\t\treturn optionsToProcess;\n\t\t}\n\n\t\t// Disable unselected options when max selections is reached\n\t\treturn optionsToProcess.map((option) => {\n\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\treturn {\n\t\t\t\t\t...option,\n\t\t\t\t\toptions: (option as GroupedOption).options.map((nestedOption) => ({\n\t\t\t\t\t\t...nestedOption,\n\t\t\t\t\t\tdisabled:\n\t\t\t\t\t\t\tnestedOption.disabled ||\n\t\t\t\t\t\t\t(!nestedOption.selected && maxSelectionsReached),\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tconst singleOption = option as SingleOption;\n\t\t\t\treturn {\n\t\t\t\t\t...singleOption,\n\t\t\t\t\tdisabled:\n\t\t\t\t\t\tsingleOption.disabled ||\n\t\t\t\t\t\t(!singleOption.selected && maxSelectionsReached),\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t};\n\n\tconst optionsToShow = processOptionsWithMaxSelections(\n\t\t(searchedString && onSearch ? searchedOptions : dropdownOptions)\n\t\t\t.map((option) => {\n\t\t\t\tif (searchedString && !onSearch) {\n\t\t\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t\t\tconst groupedOption = { ...option } as GroupedOption;\n\t\t\t\t\t\tgroupedOption.options = groupedOption.options.filter((op) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\top.label?.toLowerCase().includes(searchedString.toLowerCase())\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\texactMatchFound.push(\n\t\t\t\t\t\t\t\t\t!searchedString || op.label === searchedString,\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn groupedOption.options.length > 0 ? groupedOption : null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\toption.label\n\t\t\t\t\t\t\t\t?.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(searchedString.toLowerCase()) ||\n\t\t\t\t\t\t\t(option as SingleOption | MultiSelectOption).searchKey\n\t\t\t\t\t\t\t\t?.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(searchedString.toLowerCase())\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\texactMatchFound.push(\n\t\t\t\t\t\t\t\t!searchedString || option.label === searchedString,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn option;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn option;\n\t\t\t})\n\t\t\t.filter((option) => option !== null) as DropdownOption[],\n\t);\n\n\tconst noResultForSearch =\n\t\t!!isSearchable && searchedString && optionsToShow.length === 0;\n\tconst showLoadingState = !searchedString && !!isOptionsLoading;\n\tconst showErrorState =\n\t\t!searchedString && !!optionsErrorState && !showLoadingState;\n\tconst showEmptyState =\n\t\t!searchedString &&\n\t\t!optionsToShow.length &&\n\t\t!showLoadingState &&\n\t\t!showErrorState;\n\tconst showTopLevelZeroState =\n\t\tshowLoadingState || showErrorState || showEmptyState;\n\n\tconst emptyStateTitle = zeroState?.title || 'No results found';\n\tconst emptyStateSubTitle =\n\t\tzeroState?.subTitle ||\n\t\t`Please try again later or contact us at support@bik.ai if you require further assistance.`;\n\tconst errorStateTitle = optionsErrorState?.title || 'Failed to load options';\n\tconst errorStateSubTitle =\n\t\toptionsErrorState?.subTitle ||\n\t\t'Something went wrong while fetching the list. Please try again';\n\tconst defaultErrorActionButton = {\n\t\tbuttonText: 'Try again',\n\t\tbuttonType: 'text' as const,\n\t\tsize: 'small' as const,\n\t\tbuttonTextColor: COLORS.background.inverseLight,\n\t\tcustomIconColor: COLORS.background.inverseLight,\n\t\tLeadingIcon: RetryIcon,\n\t};\n\n\tconst mergedErrorState = {\n\t\tIconHolderStyle: {\n\t\t\tbackground: COLORS.background.negative.light,\n\t\t},\n\t\tIcon: (\n\t\t\t<ErrorInfoIcon color={COLORS.content.negative} width={24} height={24} />\n\t\t),\n\t\t...optionsErrorState,\n\t};\n\tmergedErrorState.actionButton = {\n\t\t...defaultErrorActionButton,\n\t\t...(optionsErrorState?.actionButton ?? {}),\n\t};\n\tconst zeroStateProps = showLoadingState\n\t\t? undefined\n\t\t: showErrorState\n\t\t? mergedErrorState\n\t\t: zeroState;\n\n\treturn (\n\t\t<OpennedDropdownContainer\n\t\t\tversion={version}\n\t\t\tref={ref}\n\t\t\ttabIndex={-1}\n\t\t\tstyle={{\n\t\t\t\t// maxWidth: descriptionInfo ? 800 : 400,\n\t\t\t\twidth: widthState,\n\t\t\t\t...containerStyle,\n\t\t\t\toutline: 'none',\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: descriptionInfo ? '50%' : '100%',\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\tbackground: 'white',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{!!isSearchable && (\n\t\t\t\t\t<SearchBox\n\t\t\t\t\t\tonSearch={search}\n\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\tplaceholder={searchPlaceholder}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{showTopLevelZeroState ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\theight: heightToUse,\n\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\tbackground: COLORS.background.base,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ZeroState\n\t\t\t\t\t\t\t{...(zeroStateProps ?? {})}\n\t\t\t\t\t\t\tisLoading={showLoadingState}\n\t\t\t\t\t\t\ttitle={showErrorState ? errorStateTitle : emptyStateTitle}\n\t\t\t\t\t\t\tsubTitle={\n\t\t\t\t\t\t\t\tshowErrorState ? errorStateSubTitle : emptyStateSubTitle\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<MenuListContainer\n\t\t\t\t\t\tminHeight={heightToUse}\n\t\t\t\t\t\tmaxHeight={menuListMaxHeight}\n\t\t\t\t\t\tref={menuListRef}\n\t\t\t\t\t>\n\t\t\t\t\t\t{!!isMultiSelect && !noResultForSearch && !hideSelectAll && (\n\t\t\t\t\t\t\t<SelectAllMenu\n\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\toptions={\n\t\t\t\t\t\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonSelect={selectAllHandler}\n\t\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{!allowFreeForm && noResultForSearch && (\n\t\t\t\t\t\t\t<SearchZeroState\n\t\t\t\t\t\t\t\tisLoading={isSearchLoading}\n\t\t\t\t\t\t\t\terrorMessage={searchError}\n\t\t\t\t\t\t\t\tonRetry={retrySearch}\n\t\t\t\t\t\t\t\theight={menuListMaxHeight as number}\n\t\t\t\t\t\t\t\tsearchedString={searchedString}\n\t\t\t\t\t\t\t\tcontainerWidth={width}\n\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{allowFreeForm &&\n\t\t\t\t\t\t\t(noResultForSearch ||\n\t\t\t\t\t\t\t\t(!!exactMatchFound.length &&\n\t\t\t\t\t\t\t\t\texactMatchFound.every((val) => val === false))) && (\n\t\t\t\t\t\t\t\t<FreeFormMenu\n\t\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\t\t\tonSelect={onFreeFormSelect}\n\t\t\t\t\t\t\t\t\tsearchedString={searchedString}\n\t\t\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<MenuList\n\t\t\t\t\t\t\tonInfiniteScroll={onInfiniteScroll}\n\t\t\t\t\t\t\tonDropdownItemClick={onDropdownItemClick}\n\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\tonSelect={onApplyHandler}\n\t\t\t\t\t\t\tshowDescription={showDescription}\n\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\toptions={optionsToShow}\n\t\t\t\t\t\t\tuseDefaultCursor={useDefaultCursor}\n\t\t\t\t\t\t\tref={childRefs}\n\t\t\t\t\t\t\tfocusedIndex={focusedIndex}\n\t\t\t\t\t\t\tisDraggable={isDraggable}\n\t\t\t\t\t\t\tonOptionsReorder={handleOptionsReorder}\n\t\t\t\t\t\t\tshowCheckboxForCustomElement={showCheckboxForCustomElement}\n\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuListContainer>\n\t\t\t\t)}\n\t\t\t\t{!!isMultiSelect && !showTopLevelZeroState && version !== '2.0' && (\n\t\t\t\t\t<MultiSelectDropdownBottomBar\n\t\t\t\t\t\tonClear={() => {\n\t\t\t\t\t\t\tonMultiSelectClear();\n\t\t\t\t\t\t\tonMultiSelectClearProp?.();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonApply={onMultiSelectApply}\n\t\t\t\t\t\tlist={\n\t\t\t\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbuttonText={primaryButtonText}\n\t\t\t\t\t\tbuttonOptions={buttonOptions}\n\t\t\t\t\t\thideClearButton={hideClearButton}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{!!descriptionInfo && (\n\t\t\t\t<Description\n\t\t\t\t\ttitle={descriptionInfo.title}\n\t\t\t\t\tdescription={descriptionInfo.description}\n\t\t\t\t\tversion={version}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</OpennedDropdownContainer>\n\t);\n};\n"],"names":["defaults","OpenedDropdown","options","isSearchable","searchPlaceholder","isMultiSelect","maxSelections","width","allowFreeForm","height","onClose","onSelect","onSearch","version","skipSorting","headerRef","hideSelectAll","primaryButtonText","onInfiniteScroll","onMultiSelectClearProp","onDropdownItemClick","buttonOptions","isSearchLoading","isOptionsLoading","optionsErrorState","disableSearchOptions","disableSearchedOptionExcept","useDefaultCursor","containerStyle","zeroState","isDraggable","onOptionsReorder","hideClearButton","showCheckboxForCustomElement","checkboxActiveColor","brandSelectedRow","sortOptionsWithSelectedOnTop","useCallback","opts","selected","unselected","option","localOptions","setLocalOptions","useState","localOptionsRef","useRef","hasReorderedRef","onOptionsReorderRef","useEffect","handleOptionsReorder","reorderedOptions","optionsToUse","dropdownOptions","search","searchedString","searchedOptions","searchError","retrySearch","onApplyHandler","selectAllHandler","onMultiSelectClear","onFreeFormSelect","onMultiSelectApply","latestDropdownOptionsRef","getSelectedOptions","getCurrentSelectionCount","useDropdown","widthState","setWidthState","descriptionInfo","setDescription","focusedIndex","setFocusedIndex","ref","childRefs","menuListRef","useOutside","optionsToSend","timer","getFlattenedOptions","flattened","nestedOption","singleOption","handleKeyDown","e","flattenedOptions","prev","newIndex","focusedElement","focusedOption","dropdownElement","heightToUse","menuListMaxHeight","showDescription","title","description","widthToUse","newWidth","exactMatchFound","optionsToShow","optionsToProcess","maxSelectionsReached","groupedOption","op","noResultForSearch","showLoadingState","showErrorState","showEmptyState","showTopLevelZeroState","emptyStateTitle","emptyStateSubTitle","errorStateTitle","errorStateSubTitle","defaultErrorActionButton","COLORS","RetryIcon","mergedErrorState","jsx","ErrorInfoIcon","zeroStateProps","jsxs","OpennedDropdownContainer","SearchBox","ZeroState","MenuListContainer","SelectAllMenu","SearchZeroState","val","FreeFormMenu","MenuList","MultiSelectDropdownBottomBar","Description"],"mappings":"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"}
@@ -2,4 +2,5 @@ import { default as React } from 'react';
2
2
  export declare const SearchBox: React.FC<{
3
3
  onSearch: (searchString: string) => void;
4
4
  version?: '1.0' | '2.0' | '3.0';
5
+ placeholder?: string;
5
6
  }>;
@@ -1,15 +1,15 @@
1
- import { jsx as o, Fragment as i } from "react/jsx-runtime";
1
+ import { jsx as o, Fragment as d } from "react/jsx-runtime";
2
2
  import { useState as c } from "react";
3
- import { InputStyleContext as d } from "../../../../input/context/InputStyleProvider.js";
3
+ import { InputStyleContext as h } from "../../../../input/context/InputStyleProvider.js";
4
4
  import { COLORS as r } from "../../../../../constants/Theme.js";
5
- import h from "../../../../../assets/icons/cross.svg.js";
6
- import f from "../../../../../assets/icons/search.svg.js";
7
- import { Input as u } from "../../../../input/Input.js";
8
- import { IconButton as g } from "../../../../icon-button/IconButton.js";
9
- const y = ({ onSearch: e, version: t }) => {
10
- const [l, p] = c(""), [n, a] = c(!1);
5
+ import f from "../../../../../assets/icons/cross.svg.js";
6
+ import u from "../../../../../assets/icons/search.svg.js";
7
+ import { Input as g } from "../../../../input/Input.js";
8
+ import { IconButton as x } from "../../../../icon-button/IconButton.js";
9
+ const B = ({ onSearch: e, version: t, placeholder: n = "Search" }) => {
10
+ const [l, p] = c(""), [i, a] = c(!1);
11
11
  return /* @__PURE__ */ o(
12
- d.Provider,
12
+ h.Provider,
13
13
  {
14
14
  value: {
15
15
  InputWrapper: {
@@ -27,15 +27,15 @@ const y = ({ onSearch: e, version: t }) => {
27
27
  }
28
28
  },
29
29
  children: /* @__PURE__ */ o(
30
- u,
30
+ g,
31
31
  {
32
32
  noKeyDownChange: !0,
33
33
  skipFocus: !0,
34
- placeholder: "Search",
34
+ placeholder: n,
35
35
  variant: t === "2.0" || t === "3.0" ? "small" : "default",
36
36
  leftIcon: {
37
37
  icon: () => /* @__PURE__ */ o(
38
- f,
38
+ u,
39
39
  {
40
40
  width: t === "2.0" || t === "3.0" ? 18 : 24,
41
41
  height: t === "2.0" || t === "3.0" ? 18 : 24,
@@ -45,19 +45,19 @@ const y = ({ onSearch: e, version: t }) => {
45
45
  },
46
46
  rightIcon: {
47
47
  icon: () => l ? /* @__PURE__ */ o(
48
- g,
48
+ x,
49
49
  {
50
50
  onClick: () => {
51
51
  a(!0), e(""), p("");
52
52
  },
53
- Icon: h,
53
+ Icon: f,
54
54
  width: t === "2.0" || t === "3.0" ? 18 : 24,
55
55
  height: t === "2.0" || t === "3.0" ? 18 : 24,
56
56
  iconColor: r.content.placeholder
57
57
  }
58
- ) : /* @__PURE__ */ o(i, {})
58
+ ) : /* @__PURE__ */ o(d, {})
59
59
  },
60
- reset: n,
60
+ reset: i,
61
61
  onChangeText: (m) => {
62
62
  a(!1), p(m), e(m);
63
63
  }
@@ -67,6 +67,6 @@ const y = ({ onSearch: e, version: t }) => {
67
67
  );
68
68
  };
69
69
  export {
70
- y as SearchBox
70
+ B as SearchBox
71
71
  };
72
72
  //# sourceMappingURL=SearchBox.js.map