@loomhq/lens 12.7.0 → 12.9.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 (41) hide show
  1. package/README.md +35 -7
  2. package/dist/cjs/icons/editions-icon.js +40 -0
  3. package/dist/cjs/icons/editions-icon.js.map +7 -0
  4. package/dist/cjs/icons/editions.js +9 -2
  5. package/dist/cjs/icons/editions.js.map +2 -2
  6. package/dist/cjs/icons/index.js +9 -2
  7. package/dist/cjs/icons/index.js.map +2 -2
  8. package/dist/cjs/index.js +459 -194
  9. package/dist/cjs/index.js.map +4 -4
  10. package/dist/esm/icons/chunk-SPTM4NUO.js +18 -0
  11. package/dist/esm/icons/chunk-SPTM4NUO.js.map +7 -0
  12. package/dist/esm/icons/editions-icon.js +12 -0
  13. package/dist/esm/icons/editions-icon.js.map +7 -0
  14. package/dist/esm/icons/editions.js +1 -1
  15. package/dist/esm/icons/index.js +57 -57
  16. package/dist/esm/index.js +441 -176
  17. package/dist/esm/index.js.map +4 -4
  18. package/dist/types/components/dropdown/dropdown.d.ts +3 -1
  19. package/dist/types/components/dropdown/dropdown.d.ts.map +1 -1
  20. package/dist/types/components/icon/available-icons/editions-icon.d.ts +3 -0
  21. package/dist/types/components/icon/available-icons/editions-icon.d.ts.map +1 -0
  22. package/dist/types/components/icon/available-icons/editions.d.ts +1 -1
  23. package/dist/types/components/icon/available-icons/editions.d.ts.map +1 -1
  24. package/dist/types/components/menu/menu.d.ts +4 -2
  25. package/dist/types/components/menu/menu.d.ts.map +1 -1
  26. package/dist/types/components/select/select.d.ts +7 -1
  27. package/dist/types/components/select/select.d.ts.map +1 -1
  28. package/dist/types/components/tabs/tabs.d.ts +24 -1
  29. package/dist/types/components/tabs/tabs.d.ts.map +1 -1
  30. package/dist/types/components/tooltip/tooltip.d.ts +1 -1
  31. package/dist/types/components/tooltip/tooltip.d.ts.map +1 -1
  32. package/dist/types/components/typeahead/typeahead.d.ts.map +1 -1
  33. package/dist/types/icons/editions-icon.d.ts +3 -0
  34. package/dist/types/icons/editions-icon.d.ts.map +1 -0
  35. package/dist/types/icons/editions.d.ts +1 -1
  36. package/dist/types/icons/editions.d.ts.map +1 -1
  37. package/dist/types/utilities/text.d.ts +3 -0
  38. package/dist/types/utilities/text.d.ts.map +1 -0
  39. package/package.json +6 -5
  40. package/dist/esm/icons/chunk-T4L22EHS.js +0 -11
  41. package/dist/esm/icons/chunk-T4L22EHS.js.map +0 -7
package/dist/cjs/index.js CHANGED
@@ -3693,9 +3693,9 @@ TextButton.displayName = "TextButton";
3693
3693
  var text_button_default = TextButton;
3694
3694
 
3695
3695
  // src/components/select/select.tsx
3696
- var import_styled18 = __toESM(require("@emotion/styled"));
3696
+ var import_styled19 = __toESM(require("@emotion/styled"));
3697
3697
  var import_downshift = __toESM(require("downshift"));
3698
- var import_react23 = __toESM(require("react"));
3698
+ var import_react24 = __toESM(require("react"));
3699
3699
  var import_react_laag = require("react-laag");
3700
3700
  var import_resize_observer_polyfill = __toESM(require("resize-observer-polyfill"));
3701
3701
 
@@ -3721,6 +3721,29 @@ var getDownshiftEnvironment = (container) => {
3721
3721
  return window;
3722
3722
  };
3723
3723
 
3724
+ // src/utilities/text.ts
3725
+ var getTextFromNode = (node) => {
3726
+ if (typeof node === "string") {
3727
+ return node;
3728
+ }
3729
+ if (typeof node === "number" || typeof node === "boolean" || typeof node === "bigint") {
3730
+ return node.toString();
3731
+ }
3732
+ if (node === null || node === void 0) {
3733
+ return "";
3734
+ }
3735
+ if (isIterable(node)) {
3736
+ return Array.from(node).map(getTextFromNode).join("");
3737
+ }
3738
+ if (typeof node === "object" && "props" in node && node.props && node.props.children !== void 0) {
3739
+ return getTextFromNode(node.props.children);
3740
+ }
3741
+ return "";
3742
+ };
3743
+ var isIterable = (node) => {
3744
+ return typeof node[Symbol.iterator] === "function";
3745
+ };
3746
+
3724
3747
  // src/components/icon/available-icons/chevron-down.tsx
3725
3748
  var React20 = __toESM(require("react"));
3726
3749
  function SvgChevronDown() {
@@ -3821,19 +3844,24 @@ var MenuItem = (_a) => {
3821
3844
  isSelected,
3822
3845
  icon,
3823
3846
  hasDivider,
3824
- children
3847
+ children,
3848
+ menuItemRole
3825
3849
  } = _b, props = __objRest(_b, [
3826
3850
  "isDisabled",
3827
3851
  "isHighlighted",
3828
3852
  "isSelected",
3829
3853
  "icon",
3830
3854
  "hasDivider",
3831
- "children"
3855
+ "children",
3856
+ "menuItemRole"
3832
3857
  ]);
3833
3858
  const checkColumn = isSelected ? "auto" : "";
3834
3859
  const iconColumn = icon ? "auto" : "";
3835
3860
  const columns = `${iconColumn} 1fr ${checkColumn}`;
3836
3861
  const color = isDisabled ? "disabledContent" : void 0;
3862
+ const updatedProps = menuItemRole ? __spreadProps(__spreadValues({}, props), {
3863
+ role: menuItemRole
3864
+ }) : props;
3837
3865
  return /* @__PURE__ */ import_react22.default.createElement(
3838
3866
  MenuItemWrapper,
3839
3867
  __spreadValues({
@@ -3857,6 +3885,7 @@ var Menu = (_a) => {
3857
3885
  maxWidth,
3858
3886
  maxHeight,
3859
3887
  children,
3888
+ role,
3860
3889
  downshiftMenuProps = () => null,
3861
3890
  search
3862
3891
  } = _b, props = __objRest(_b, [
@@ -3866,9 +3895,13 @@ var Menu = (_a) => {
3866
3895
  "maxWidth",
3867
3896
  "maxHeight",
3868
3897
  "children",
3898
+ "role",
3869
3899
  "downshiftMenuProps",
3870
3900
  "search"
3871
3901
  ]);
3902
+ const updatedDownshiftMenuProps = role ? __spreadProps(__spreadValues({}, downshiftMenuProps()), {
3903
+ role
3904
+ }) : __spreadValues({}, downshiftMenuProps());
3872
3905
  return /* @__PURE__ */ import_react22.default.createElement(
3873
3906
  MenuContainer,
3874
3907
  __spreadValues(__spreadValues({
@@ -3884,11 +3917,51 @@ var Menu = (_a) => {
3884
3917
  };
3885
3918
  var menu_default = Menu;
3886
3919
 
3920
+ // src/components/search-bar/search-bar.tsx
3921
+ var import_styled18 = __toESM(require("@emotion/styled"));
3922
+ var import_react23 = __toESM(require("react"));
3923
+
3924
+ // src/components/icon/available-icons/search.tsx
3925
+ var import_search = __toESM(require("@atlaskit/icon/core/search"));
3926
+ var React23 = __toESM(require("react"));
3927
+ function SvgSearch() {
3928
+ return /* @__PURE__ */ React23.createElement(import_search.default, { label: "", testId: "ads-refreshed-icon" });
3929
+ }
3930
+
3931
+ // src/components/search-bar/search-bar.tsx
3932
+ var SearchBarContainer = import_styled18.default.div`
3933
+ padding: ${u(1.5)} ${u(1.5)} 0;
3934
+ margin-bottom: ${u(1.5)};
3935
+ position: sticky;
3936
+ top: 0;
3937
+ `;
3938
+ var SearchBar = ({
3939
+ ariaLabel,
3940
+ placeholder,
3941
+ value,
3942
+ onChange,
3943
+ getInputProps
3944
+ }) => {
3945
+ return /* @__PURE__ */ import_react23.default.createElement(SearchBarContainer, null, /* @__PURE__ */ import_react23.default.createElement(
3946
+ text_input_default,
3947
+ __spreadValues({
3948
+ "aria-label": ariaLabel,
3949
+ icon: /* @__PURE__ */ import_react23.default.createElement(SvgSearch, null)
3950
+ }, getInputProps({
3951
+ placeholder,
3952
+ value,
3953
+ onChange,
3954
+ type: "text"
3955
+ }))
3956
+ ));
3957
+ };
3958
+ var search_bar_default = SearchBar;
3959
+
3887
3960
  // src/components/select/select.tsx
3888
- var SelectWrapper = import_styled18.default.div`
3961
+ var SelectWrapper = import_styled19.default.div`
3889
3962
  position: relative;
3890
3963
  `;
3891
- var SelectHeaderWrapper = import_styled18.default.button`
3964
+ var SelectHeaderWrapper = import_styled19.default.button`
3892
3965
  appearance: none;
3893
3966
  font: inherit;
3894
3967
  text-align: left;
@@ -3930,7 +4003,7 @@ var SelectHeaderWrapper = import_styled18.default.button`
3930
4003
  cursor: default;
3931
4004
  }
3932
4005
  `;
3933
- var Image3 = import_styled18.default.img`
4006
+ var Image3 = import_styled19.default.img`
3934
4007
  height: 100%;
3935
4008
  width: auto;
3936
4009
  min-width: 100%;
@@ -3938,12 +4011,12 @@ var Image3 = import_styled18.default.img`
3938
4011
  object-fit: cover;
3939
4012
  opacity: ${({ isDisabled }) => isDisabled ? 0.5 : 1};
3940
4013
  `;
3941
- var Group = import_styled18.default.ul`
4014
+ var Group = import_styled19.default.ul`
3942
4015
  list-style: none;
3943
4016
  margin: 0;
3944
4017
  padding: 0;
3945
4018
  `;
3946
- var ErrorMessage = import_styled18.default.span`
4019
+ var ErrorMessage = import_styled19.default.span`
3947
4020
  color: var(--lns-color-red);
3948
4021
  margin-top: var(--lns-space-xsmall);
3949
4022
  display: block;
@@ -3997,11 +4070,13 @@ var getHeaderAccessibilityProps = ({
3997
4070
  selectedItem,
3998
4071
  getInputProps,
3999
4072
  getToggleButtonProps,
4000
- ariaMenuName
4073
+ ariaMenuName,
4074
+ isOpen
4001
4075
  }) => {
4002
4076
  const valueLabel = selectedItem ? `selected value is ${selectedItem.title}` : "no value selected";
4003
4077
  const toggleLabel = getToggleButtonProps == null ? void 0 : getToggleButtonProps()["aria-label"];
4004
4078
  return {
4079
+ "aria-expanded": isOpen,
4005
4080
  // Ensures all options within the list of selections can be narrated by a screen reader
4006
4081
  "aria-activedescendant": getInputProps()["aria-activedescendant"],
4007
4082
  // The existing aria-label includes whether or not the menu is open or closed, and we add the valueLabel to make a screen reader narrate what is selected
@@ -4018,7 +4093,8 @@ var SelectHeader = ({
4018
4093
  options,
4019
4094
  getInputProps,
4020
4095
  ariaMenuName,
4021
- hasError
4096
+ hasError,
4097
+ isOpen
4022
4098
  }) => {
4023
4099
  const icon = getIcon({ options, selectedItem, selectedOptionValue });
4024
4100
  const hasIcon = Boolean(icon);
@@ -4026,33 +4102,34 @@ var SelectHeader = ({
4026
4102
  const iconColumn = hasIcon ? "auto" : "";
4027
4103
  const columns = `${iconColumn} 1fr auto`;
4028
4104
  const color = isDisabled ? "disabledContent" : void 0;
4029
- return /* @__PURE__ */ import_react23.default.createElement(
4105
+ return /* @__PURE__ */ import_react24.default.createElement(
4030
4106
  SelectHeaderWrapper,
4031
4107
  __spreadProps(__spreadValues(__spreadValues({}, getToggleButtonProps()), getHeaderAccessibilityProps({
4032
4108
  selectedItem,
4033
4109
  getInputProps,
4034
4110
  getToggleButtonProps,
4035
- ariaMenuName
4111
+ ariaMenuName,
4112
+ isOpen
4036
4113
  })), {
4037
4114
  hasValue: inputValue || selectedOptionValue,
4038
4115
  disabled: isDisabled,
4039
4116
  columns,
4040
4117
  hasError
4041
4118
  }),
4042
- hasIcon && (typeof icon === "string" ? /* @__PURE__ */ import_react23.default.createElement(container_default, { radius: "50", width: 3, height: 3, overflow: "hidden" }, /* @__PURE__ */ import_react23.default.createElement(align_default, { alignment: "center" }, /* @__PURE__ */ import_react23.default.createElement(Image3, { src: icon, alt: "", isDisabled }))) : /* @__PURE__ */ import_react23.default.createElement(
4119
+ hasIcon && (typeof icon === "string" ? /* @__PURE__ */ import_react24.default.createElement(container_default, { radius: "50", width: 3, height: 3, overflow: "hidden" }, /* @__PURE__ */ import_react24.default.createElement(align_default, { alignment: "center" }, /* @__PURE__ */ import_react24.default.createElement(Image3, { src: icon, alt: "", isDisabled }))) : /* @__PURE__ */ import_react24.default.createElement(
4043
4120
  icon_default,
4044
4121
  {
4045
4122
  icon: getIcon({ options, selectedItem, selectedOptionValue }),
4046
4123
  color
4047
4124
  }
4048
4125
  )),
4049
- /* @__PURE__ */ import_react23.default.createElement(text_default, { hasEllipsis: true, color: hasPlaceholder ? "bodyDimmed" : "inherit" }, getTitle({
4126
+ /* @__PURE__ */ import_react24.default.createElement(text_default, { hasEllipsis: true, color: hasPlaceholder ? "bodyDimmed" : "inherit" }, getTitle({
4050
4127
  options,
4051
4128
  selectedItem,
4052
4129
  selectedOptionValue,
4053
4130
  selectPlaceholder
4054
4131
  })),
4055
- /* @__PURE__ */ import_react23.default.createElement(icon_default, { icon: /* @__PURE__ */ import_react23.default.createElement(SvgChevronDown, null), color })
4132
+ /* @__PURE__ */ import_react24.default.createElement(icon_default, { icon: /* @__PURE__ */ import_react24.default.createElement(SvgChevronDown, null), color })
4056
4133
  );
4057
4134
  };
4058
4135
  var CustomHeader = ({
@@ -4066,14 +4143,16 @@ var CustomHeader = ({
4066
4143
  getInputProps,
4067
4144
  ariaMenuName,
4068
4145
  hasError,
4069
- errorMessage
4146
+ errorMessage,
4147
+ isOpen
4070
4148
  }) => {
4071
4149
  const buttonProps = () => {
4072
4150
  return __spreadValues(__spreadValues({}, getToggleButtonProps()), getHeaderAccessibilityProps({
4073
4151
  selectedItem,
4074
4152
  getInputProps,
4075
4153
  getToggleButtonProps,
4076
- ariaMenuName
4154
+ ariaMenuName,
4155
+ isOpen
4077
4156
  }));
4078
4157
  };
4079
4158
  const getSelectedItem = () => {
@@ -4111,7 +4190,7 @@ var didSelectedOptionValueChange = (selectedOptionValue, prevSelectedItem) => {
4111
4190
  };
4112
4191
  var renderOption = (item, index, selectedItem, selectedOptionValue, highlightedIndex, getItemProps) => {
4113
4192
  const isSelected = !selectedItem && item.value === selectedOptionValue || selectedItem && selectedItem.value === item.value;
4114
- return /* @__PURE__ */ import_react23.default.createElement(
4193
+ return /* @__PURE__ */ import_react24.default.createElement(
4115
4194
  MenuItem,
4116
4195
  __spreadProps(__spreadValues({
4117
4196
  key: index,
@@ -4139,16 +4218,18 @@ var SelectMenu = (_a) => {
4139
4218
  selectedItem,
4140
4219
  selectedOptionValue,
4141
4220
  highlightedIndex,
4142
- getItemProps
4221
+ getItemProps,
4222
+ search
4143
4223
  } = _b, menuProps = __objRest(_b, [
4144
4224
  "options",
4145
4225
  "selectedItem",
4146
4226
  "selectedOptionValue",
4147
4227
  "highlightedIndex",
4148
- "getItemProps"
4228
+ "getItemProps",
4229
+ "search"
4149
4230
  ]);
4150
4231
  if (!isGrouped(options)) {
4151
- return /* @__PURE__ */ import_react23.default.createElement(menu_default, __spreadValues({}, menuProps), options.map(
4232
+ return /* @__PURE__ */ import_react24.default.createElement(menu_default, __spreadValues({ search }, menuProps), options.map(
4152
4233
  (item, index) => renderOption(
4153
4234
  item,
4154
4235
  index,
@@ -4160,9 +4241,9 @@ var SelectMenu = (_a) => {
4160
4241
  ));
4161
4242
  }
4162
4243
  let downshiftIndex = 0;
4163
- return /* @__PURE__ */ import_react23.default.createElement(menu_default, __spreadValues({}, menuProps), options.map((group) => {
4244
+ return /* @__PURE__ */ import_react24.default.createElement(menu_default, __spreadValues({ search }, menuProps), options.map((group) => {
4164
4245
  const groupId = `group-${group.group.replace(/\s+/g, "-")}`;
4165
- return /* @__PURE__ */ import_react23.default.createElement("li", { key: groupId }, /* @__PURE__ */ import_react23.default.createElement(spacer_default, { left: "medium", top: "small", bottom: "xsmall" }, /* @__PURE__ */ import_react23.default.createElement(text_default, { id: groupId, size: "body-sm", fontWeight: "bold" }, group.group)), /* @__PURE__ */ import_react23.default.createElement(Group, { role: "group", "aria-labelledby": groupId }, group.items.map((item) => {
4246
+ return /* @__PURE__ */ import_react24.default.createElement("li", { key: groupId }, /* @__PURE__ */ import_react24.default.createElement(spacer_default, { left: "medium", top: "small", bottom: "xsmall" }, /* @__PURE__ */ import_react24.default.createElement(text_default, { id: groupId, size: "body-sm", fontWeight: "bold" }, group.group)), /* @__PURE__ */ import_react24.default.createElement(Group, { role: "group", "aria-labelledby": groupId }, group.items.map((item) => {
4166
4247
  return renderOption(
4167
4248
  item,
4168
4249
  downshiftIndex++,
@@ -4182,6 +4263,7 @@ var Select = (_a) => {
4182
4263
  menuMaxWidth,
4183
4264
  menuMaxHeight = 34,
4184
4265
  menuMinWidth,
4266
+ triggerOffset = 0,
4185
4267
  ariaMenuName,
4186
4268
  selectedOptionValue,
4187
4269
  onOuterClick,
@@ -4192,7 +4274,8 @@ var Select = (_a) => {
4192
4274
  onOpenChange,
4193
4275
  trigger,
4194
4276
  hasError,
4195
- errorMessage = "Oops, that didn't work."
4277
+ errorMessage = "Oops, that didn't work.",
4278
+ search
4196
4279
  } = _b, props = __objRest(_b, [
4197
4280
  "container",
4198
4281
  "onChange",
@@ -4200,6 +4283,7 @@ var Select = (_a) => {
4200
4283
  "menuMaxWidth",
4201
4284
  "menuMaxHeight",
4202
4285
  "menuMinWidth",
4286
+ "triggerOffset",
4203
4287
  "ariaMenuName",
4204
4288
  "selectedOptionValue",
4205
4289
  "onOuterClick",
@@ -4210,14 +4294,20 @@ var Select = (_a) => {
4210
4294
  "onOpenChange",
4211
4295
  "trigger",
4212
4296
  "hasError",
4213
- "errorMessage"
4297
+ "errorMessage",
4298
+ "search"
4214
4299
  ]);
4215
4300
  const environment = getDownshiftEnvironment(container);
4216
- const [downshiftIsOpen, setDownshiftIsOpen] = (0, import_react23.useState)(false);
4217
- const [prevSelectedItem, setPrevSelectedItem] = (0, import_react23.useState)(
4301
+ const [downshiftIsOpen, setDownshiftIsOpen] = (0, import_react24.useState)(false);
4302
+ const [searchValue, setSearchValue] = (0, import_react24.useState)("");
4303
+ const onSearchChange = (e) => {
4304
+ const value = e.target.value;
4305
+ setSearchValue(value);
4306
+ };
4307
+ const [prevSelectedItem, setPrevSelectedItem] = (0, import_react24.useState)(
4218
4308
  getSelectedOption(selectedOptionValue, options)
4219
4309
  );
4220
- const [selectedItem, setSelectedItem] = (0, import_react23.useState)(prevSelectedItem);
4310
+ const [selectedItem, setSelectedItem] = (0, import_react24.useState)(prevSelectedItem);
4221
4311
  const onDownshiftChange = (item) => {
4222
4312
  setSelectedItem(item);
4223
4313
  onChange && onChange(item ? item : "");
@@ -4239,16 +4329,17 @@ var Select = (_a) => {
4239
4329
  ResizeObserver: import_resize_observer_polyfill.default,
4240
4330
  placement: menuPositions[menuPosition],
4241
4331
  auto: true,
4242
- snap: true
4332
+ snap: true,
4333
+ triggerOffset
4243
4334
  });
4244
- (0, import_react23.useEffect)(() => {
4335
+ (0, import_react24.useEffect)(() => {
4245
4336
  if (didSelectedOptionValueChange(selectedOptionValue, prevSelectedItem)) {
4246
4337
  const selectedItem2 = getSelectedOption(selectedOptionValue, options);
4247
4338
  setPrevSelectedItem(selectedItem2);
4248
4339
  setSelectedItem(selectedItem2);
4249
4340
  }
4250
4341
  }, [selectedOptionValue, options, prevSelectedItem]);
4251
- (0, import_react23.useEffect)(() => {
4342
+ (0, import_react24.useEffect)(() => {
4252
4343
  onOpenChange && onOpenChange(downshiftIsOpen);
4253
4344
  }, [downshiftIsOpen, onOpenChange]);
4254
4345
  const stateReducer = (state, changes) => {
@@ -4261,7 +4352,42 @@ var Select = (_a) => {
4261
4352
  }
4262
4353
  return changes;
4263
4354
  };
4264
- return /* @__PURE__ */ import_react23.default.createElement(SelectWrapper, __spreadValues({}, props), /* @__PURE__ */ import_react23.default.createElement(import_downshift.default, __spreadProps(__spreadValues({}, downshiftProps), { stateReducer }), ({
4355
+ options = (0, import_react24.useMemo)(() => {
4356
+ if (search) {
4357
+ if (isGrouped(options)) {
4358
+ let filteredGroups;
4359
+ if (search.searchType === "startsWith") {
4360
+ filteredGroups = options.map((group) => __spreadProps(__spreadValues({}, group), {
4361
+ items: group.items.filter(
4362
+ (item) => getTextFromNode(item.title).toLowerCase().startsWith(searchValue.toLowerCase())
4363
+ )
4364
+ }));
4365
+ } else {
4366
+ filteredGroups = options.map((group) => __spreadProps(__spreadValues({}, group), {
4367
+ items: group.items.filter(
4368
+ (item) => getTextFromNode(item.title).toLowerCase().includes(searchValue.toLowerCase())
4369
+ )
4370
+ }));
4371
+ }
4372
+ return filteredGroups.reduce((acc, group) => {
4373
+ if (group.items.length > 0) {
4374
+ acc.push(group);
4375
+ }
4376
+ return acc;
4377
+ }, []);
4378
+ }
4379
+ if (search.searchType === "startsWith") {
4380
+ return options.filter(
4381
+ (option) => getTextFromNode(option.title).toLowerCase().startsWith(searchValue.toLowerCase())
4382
+ );
4383
+ }
4384
+ return options.filter(
4385
+ (option) => getTextFromNode(option.title).toLowerCase().includes(searchValue.toLowerCase())
4386
+ );
4387
+ }
4388
+ return options;
4389
+ }, [options, searchValue, search]);
4390
+ return /* @__PURE__ */ import_react24.default.createElement(SelectWrapper, __spreadValues({}, props), /* @__PURE__ */ import_react24.default.createElement(import_downshift.default, __spreadProps(__spreadValues({}, downshiftProps), { stateReducer }), ({
4265
4391
  getItemProps,
4266
4392
  getInputProps,
4267
4393
  getMenuProps,
@@ -4273,7 +4399,7 @@ var Select = (_a) => {
4273
4399
  }) => {
4274
4400
  return (
4275
4401
  // Don't set the role to combobox to ensure a consistent experience for screen readers
4276
- /* @__PURE__ */ import_react23.default.createElement("div", { role: "presentation" }, /* @__PURE__ */ import_react23.default.createElement("div", __spreadValues({}, triggerProps), trigger ? /* @__PURE__ */ import_react23.default.createElement(
4402
+ /* @__PURE__ */ import_react24.default.createElement("div", { role: "presentation" }, /* @__PURE__ */ import_react24.default.createElement("div", __spreadValues({}, triggerProps), trigger ? /* @__PURE__ */ import_react24.default.createElement(
4277
4403
  CustomHeader,
4278
4404
  {
4279
4405
  getToggleButtonProps,
@@ -4286,9 +4412,10 @@ var Select = (_a) => {
4286
4412
  getInputProps,
4287
4413
  ariaMenuName,
4288
4414
  hasError,
4289
- errorMessage
4415
+ errorMessage,
4416
+ isOpen
4290
4417
  }
4291
- ) : /* @__PURE__ */ import_react23.default.createElement(
4418
+ ) : /* @__PURE__ */ import_react24.default.createElement(
4292
4419
  SelectHeader,
4293
4420
  {
4294
4421
  getToggleButtonProps,
@@ -4300,10 +4427,11 @@ var Select = (_a) => {
4300
4427
  isDisabled,
4301
4428
  getInputProps,
4302
4429
  ariaMenuName,
4303
- hasError
4430
+ hasError,
4431
+ isOpen
4304
4432
  }
4305
4433
  )), downshiftIsOpen && isOpen && renderLayer(
4306
- /* @__PURE__ */ import_react23.default.createElement(
4434
+ /* @__PURE__ */ import_react24.default.createElement(
4307
4435
  "div",
4308
4436
  __spreadProps(__spreadValues({}, layerProps), {
4309
4437
  style: __spreadProps(__spreadValues({}, layerProps.style), {
@@ -4311,7 +4439,7 @@ var Select = (_a) => {
4311
4439
  width: menuMinWidth ? "auto" : triggerBounds == null ? void 0 : triggerBounds.width
4312
4440
  })
4313
4441
  }),
4314
- /* @__PURE__ */ import_react23.default.createElement(
4442
+ /* @__PURE__ */ import_react24.default.createElement(
4315
4443
  SelectMenu,
4316
4444
  {
4317
4445
  options,
@@ -4323,26 +4451,36 @@ var Select = (_a) => {
4323
4451
  downshiftMenuProps: getMenuProps,
4324
4452
  maxWidth: menuMaxWidth,
4325
4453
  maxHeight: menuMaxHeight,
4326
- minWidth: menuMinWidth
4454
+ minWidth: menuMinWidth,
4455
+ search: search && /* @__PURE__ */ import_react24.default.createElement(
4456
+ search_bar_default,
4457
+ {
4458
+ ariaLabel: search.searchPlaceholder,
4459
+ placeholder: search.searchPlaceholder,
4460
+ value: searchValue,
4461
+ onChange: onSearchChange,
4462
+ getInputProps
4463
+ }
4464
+ )
4327
4465
  }
4328
4466
  )
4329
4467
  )
4330
- ), hasError && !downshiftIsOpen && /* @__PURE__ */ import_react23.default.createElement(ErrorMessage, null, errorMessage))
4468
+ ), hasError && !downshiftIsOpen && /* @__PURE__ */ import_react24.default.createElement(ErrorMessage, null, errorMessage))
4331
4469
  );
4332
4470
  }));
4333
4471
  };
4334
4472
  var select_default = Select;
4335
4473
 
4336
4474
  // src/components/backdrop/backdrop.tsx
4337
- var import_styled19 = __toESM(require("@emotion/styled"));
4338
- var import_react25 = __toESM(require("react"));
4475
+ var import_styled20 = __toESM(require("@emotion/styled"));
4476
+ var import_react26 = __toESM(require("react"));
4339
4477
  var import_transition_hook = require("transition-hook");
4340
4478
 
4341
4479
  // src/hooks/use-prevent-scroll.ts
4342
- var import_react24 = require("react");
4480
+ var import_react25 = require("react");
4343
4481
  function usePreventScroll(level, enabled) {
4344
4482
  const safeDocument = document;
4345
- (0, import_react24.useLayoutEffect)(() => {
4483
+ (0, import_react25.useLayoutEffect)(() => {
4346
4484
  const html = safeDocument == null ? void 0 : safeDocument.documentElement;
4347
4485
  const body = safeDocument == null ? void 0 : safeDocument.body;
4348
4486
  if (safeDocument == void 0 || !html || !body) {
@@ -4401,7 +4539,7 @@ var use_prevent_scroll_default = usePreventScroll;
4401
4539
 
4402
4540
  // src/components/backdrop/backdrop.tsx
4403
4541
  var duration = 300;
4404
- var BackdropWrapper = import_styled19.default.div`
4542
+ var BackdropWrapper = import_styled20.default.div`
4405
4543
  position: fixed;
4406
4544
  top: 0;
4407
4545
  left: 0;
@@ -4411,7 +4549,7 @@ var BackdropWrapper = import_styled19.default.div`
4411
4549
  z-index: ${(props) => props.zIndex};
4412
4550
  overflow: hidden;
4413
4551
  `;
4414
- var ChildrenWrapper = import_styled19.default.div`
4552
+ var ChildrenWrapper = import_styled20.default.div`
4415
4553
  overflow: auto;
4416
4554
  height: 100%;
4417
4555
  `;
@@ -4429,7 +4567,7 @@ var Backdrop = (_a) => {
4429
4567
  ]);
4430
4568
  const { stage, shouldMount } = (0, import_transition_hook.useTransition)(isOpen, duration);
4431
4569
  use_prevent_scroll_default("html", isOpen);
4432
- return /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, shouldMount && /* @__PURE__ */ import_react25.default.createElement(
4570
+ return /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, shouldMount && /* @__PURE__ */ import_react26.default.createElement(
4433
4571
  BackdropWrapper,
4434
4572
  __spreadValues({
4435
4573
  backgroundColor,
@@ -4439,31 +4577,31 @@ var Backdrop = (_a) => {
4439
4577
  opacity: stage === "enter" ? 1 : 0
4440
4578
  }
4441
4579
  }, props),
4442
- /* @__PURE__ */ import_react25.default.createElement(ChildrenWrapper, null, children)
4580
+ /* @__PURE__ */ import_react26.default.createElement(ChildrenWrapper, null, children)
4443
4581
  ));
4444
4582
  };
4445
4583
  var backdrop_default = Backdrop;
4446
4584
 
4447
4585
  // src/components/modal/modal.tsx
4448
- var import_styled20 = __toESM(require("@emotion/styled"));
4586
+ var import_styled21 = __toESM(require("@emotion/styled"));
4449
4587
  var import_focus_trap_react = __toESM(require("focus-trap-react"));
4450
- var import_react26 = __toESM(require("react"));
4588
+ var import_react27 = __toESM(require("react"));
4451
4589
 
4452
4590
  // src/components/icon/available-icons/close.tsx
4453
4591
  var import_close = __toESM(require("@atlaskit/icon/core/close"));
4454
- var React25 = __toESM(require("react"));
4592
+ var React27 = __toESM(require("react"));
4455
4593
  function SvgClose() {
4456
- return /* @__PURE__ */ React25.createElement(import_close.default, { label: "", testId: "ads-refreshed-icon" });
4594
+ return /* @__PURE__ */ React27.createElement(import_close.default, { label: "", testId: "ads-refreshed-icon" });
4457
4595
  }
4458
4596
 
4459
4597
  // src/components/modal/modal.tsx
4460
4598
  var DEFAULT_MODAL_CARD_HEIGHT = "70vh";
4461
- var ContentWrapper = import_styled20.default.div`
4599
+ var ContentWrapper = import_styled21.default.div`
4462
4600
  display: grid;
4463
4601
  grid-template-rows: ${(props) => props.rows};
4464
4602
  position: relative;
4465
4603
  `;
4466
- var ModalCardWrapper = import_styled20.default.dialog`
4604
+ var ModalCardWrapper = import_styled21.default.dialog`
4467
4605
  top: ${(props) => getPlacement(getSizeValue(props.maxHeight), props.placement).top};
4468
4606
  background-color: ${getColorValue("overlay")};
4469
4607
  color: ${getColorValue("body")};
@@ -4486,27 +4624,27 @@ var ModalCardWrapper = import_styled20.default.dialog`
4486
4624
  background: var(--lns-color-overlay);
4487
4625
  }
4488
4626
  `;
4489
- var CloseIconSection = import_styled20.default.div`
4627
+ var CloseIconSection = import_styled21.default.div`
4490
4628
  position: absolute;
4491
4629
  top: ${u(1.5)};
4492
4630
  right: ${u(1.5)};
4493
4631
  z-index: 1;
4494
4632
  `;
4495
- var RightButtonsSection = import_styled20.default.div`
4633
+ var RightButtonsSection = import_styled21.default.div`
4496
4634
  margin-left: auto;
4497
4635
 
4498
4636
  * {
4499
4637
  vertical-align: middle;
4500
4638
  }
4501
4639
  `;
4502
- var TitleSection = import_styled20.default.div`
4640
+ var TitleSection = import_styled21.default.div`
4503
4641
  padding-left: var(--lns-space-xlarge);
4504
4642
  padding-right: var(--lns-space-xlarge);
4505
4643
  padding-top: var(--lns-space-xlarge);
4506
4644
  padding-bottom: ${(props) => props.bottom};
4507
4645
  flex-shrink: 0;
4508
4646
  `;
4509
- var ButtonsSection = import_styled20.default.div`
4647
+ var ButtonsSection = import_styled21.default.div`
4510
4648
  padding-left: var(--lns-space-xlarge);
4511
4649
  padding-right: var(--lns-space-xlarge);
4512
4650
  padding-bottom: var(--lns-space-xlarge);
@@ -4516,7 +4654,7 @@ var ButtonsSection = import_styled20.default.div`
4516
4654
  justify-content: space-between;
4517
4655
  align-items: center;
4518
4656
  `;
4519
- var ChildrenSection2 = import_styled20.default.div`
4657
+ var ChildrenSection2 = import_styled21.default.div`
4520
4658
  display: flex;
4521
4659
  flex-direction: column;
4522
4660
  overflow: auto;
@@ -4528,7 +4666,7 @@ var ChildrenSection2 = import_styled20.default.div`
4528
4666
  border-color: ${getColorValue("border")};
4529
4667
  border-width: ${(props) => props.hasDividers ? "1px 0" : "0"};
4530
4668
  `;
4531
- var ModalCardChildrenSection = import_styled20.default.div`
4669
+ var ModalCardChildrenSection = import_styled21.default.div`
4532
4670
  overflow: auto;
4533
4671
 
4534
4672
  ${(props) => getMaxHeight(props.maxHeight)};
@@ -4579,14 +4717,14 @@ var ModalCard = (_a) => {
4579
4717
  }
4580
4718
  }
4581
4719
  };
4582
- (0, import_react26.useEffect)(() => {
4720
+ (0, import_react27.useEffect)(() => {
4583
4721
  window.addEventListener("keydown", keyListener);
4584
4722
  return () => {
4585
4723
  window.removeEventListener("keydown", keyListener);
4586
4724
  };
4587
4725
  }, [isOpen, onCloseClick]);
4588
4726
  use_prevent_scroll_default("html", isOpen);
4589
- return /* @__PURE__ */ import_react26.default.createElement(
4727
+ return /* @__PURE__ */ import_react27.default.createElement(
4590
4728
  import_focus_trap_react.default,
4591
4729
  {
4592
4730
  active: isOpen,
@@ -4595,7 +4733,7 @@ var ModalCard = (_a) => {
4595
4733
  allowOutsideClick: true
4596
4734
  }, initialFocus !== void 0 ? { initialFocus } : {})
4597
4735
  },
4598
- /* @__PURE__ */ import_react26.default.createElement(
4736
+ /* @__PURE__ */ import_react27.default.createElement(
4599
4737
  ModalCardWrapper,
4600
4738
  __spreadValues({
4601
4739
  open: isOpen,
@@ -4608,15 +4746,15 @@ var ModalCard = (_a) => {
4608
4746
  "aria-modal": ariaModal,
4609
4747
  "aria-labelledby": ariaLabelledBy
4610
4748
  }, props),
4611
- !removeClose && onCloseClick && /* @__PURE__ */ import_react26.default.createElement(CloseIconSection, null, /* @__PURE__ */ import_react26.default.createElement(
4749
+ !removeClose && onCloseClick && /* @__PURE__ */ import_react27.default.createElement(CloseIconSection, null, /* @__PURE__ */ import_react27.default.createElement(
4612
4750
  icon_button_default,
4613
4751
  {
4614
4752
  altText: "Close",
4615
- icon: /* @__PURE__ */ import_react26.default.createElement(SvgClose, null),
4753
+ icon: /* @__PURE__ */ import_react27.default.createElement(SvgClose, null),
4616
4754
  onClick: onCloseClick
4617
4755
  }
4618
4756
  )),
4619
- /* @__PURE__ */ import_react26.default.createElement(
4757
+ /* @__PURE__ */ import_react27.default.createElement(
4620
4758
  ModalCardChildrenSection,
4621
4759
  __spreadProps(__spreadValues({}, removeClose ? { tabIndex: 0 } : { tabIndex: -1 }), {
4622
4760
  maxHeight
@@ -4626,7 +4764,7 @@ var ModalCard = (_a) => {
4626
4764
  )
4627
4765
  );
4628
4766
  };
4629
- var Modal = import_react26.default.forwardRef(
4767
+ var Modal = import_react27.default.forwardRef(
4630
4768
  (_a, ref) => {
4631
4769
  var _b = _a, {
4632
4770
  children,
@@ -4682,14 +4820,14 @@ var Modal = import_react26.default.forwardRef(
4682
4820
  }
4683
4821
  onCloseClick(e);
4684
4822
  };
4685
- return /* @__PURE__ */ import_react26.default.createElement(backdrop_default, __spreadValues({ isOpen, zIndex }, props), /* @__PURE__ */ import_react26.default.createElement(
4823
+ return /* @__PURE__ */ import_react27.default.createElement(backdrop_default, __spreadValues({ isOpen, zIndex }, props), /* @__PURE__ */ import_react27.default.createElement(
4686
4824
  container_default,
4687
4825
  {
4688
4826
  height: "100%",
4689
4827
  onClick: closeClickHandler,
4690
4828
  onKeyDown
4691
4829
  },
4692
- /* @__PURE__ */ import_react26.default.createElement(
4830
+ /* @__PURE__ */ import_react27.default.createElement(
4693
4831
  ModalCard,
4694
4832
  {
4695
4833
  ref,
@@ -4704,19 +4842,19 @@ var Modal = import_react26.default.forwardRef(
4704
4842
  ariaLabelledBy: (_a2 = ariaLabelledBy != null ? ariaLabelledBy : titleId) != null ? _a2 : void 0,
4705
4843
  initialFocus
4706
4844
  },
4707
- /* @__PURE__ */ import_react26.default.createElement(
4845
+ /* @__PURE__ */ import_react27.default.createElement(
4708
4846
  ContentWrapper,
4709
4847
  {
4710
4848
  rows: `${title ? "auto " : ""} ${children ? "1fr " : ""} ${hasButtons ? "auto" : ""}`
4711
4849
  },
4712
- title && /* @__PURE__ */ import_react26.default.createElement(
4850
+ title && /* @__PURE__ */ import_react27.default.createElement(
4713
4851
  TitleSection,
4714
4852
  {
4715
4853
  bottom: children ? "var(--lns-space-medium)" : "var(--lns-space-xlarge)"
4716
4854
  },
4717
- /* @__PURE__ */ import_react26.default.createElement(text_default, { htmlTag: "h1", variant: "title", id: titleId }, title)
4855
+ /* @__PURE__ */ import_react27.default.createElement(text_default, { htmlTag: "h1", variant: "title", id: titleId }, title)
4718
4856
  ),
4719
- /* @__PURE__ */ import_react26.default.createElement(
4857
+ /* @__PURE__ */ import_react27.default.createElement(
4720
4858
  ChildrenSection2,
4721
4859
  {
4722
4860
  noPadding,
@@ -4726,14 +4864,14 @@ var Modal = import_react26.default.forwardRef(
4726
4864
  },
4727
4865
  children && children
4728
4866
  ),
4729
- hasButtons && /* @__PURE__ */ import_react26.default.createElement(
4867
+ hasButtons && /* @__PURE__ */ import_react27.default.createElement(
4730
4868
  ButtonsSection,
4731
4869
  {
4732
4870
  top: children ? "var(--lns-space-xlarge)" : 0,
4733
4871
  hasDividers
4734
4872
  },
4735
4873
  alternativeButton,
4736
- /* @__PURE__ */ import_react26.default.createElement(RightButtonsSection, null, secondaryButton && /* @__PURE__ */ import_react26.default.createElement(spacer_default, { right: "small", isInline: true }, secondaryButton), mainButton)
4874
+ /* @__PURE__ */ import_react27.default.createElement(RightButtonsSection, null, secondaryButton && /* @__PURE__ */ import_react27.default.createElement(spacer_default, { right: "small", isInline: true }, secondaryButton), mainButton)
4737
4875
  )
4738
4876
  )
4739
4877
  )
@@ -4743,9 +4881,9 @@ var Modal = import_react26.default.forwardRef(
4743
4881
  var modal_default = Modal;
4744
4882
 
4745
4883
  // src/components/link/link.tsx
4746
- var import_react27 = require("@emotion/react");
4747
- var import_styled21 = __toESM(require("@emotion/styled"));
4748
- var import_react28 = __toESM(require("react"));
4884
+ var import_react28 = require("@emotion/react");
4885
+ var import_styled22 = __toESM(require("@emotion/styled"));
4886
+ var import_react29 = __toESM(require("react"));
4749
4887
  var variants2 = {
4750
4888
  neutral: {
4751
4889
  color: getColorValue("inherit"),
@@ -4764,22 +4902,22 @@ var variants2 = {
4764
4902
  }
4765
4903
  };
4766
4904
  var statusStyles2 = {
4767
- enabled: import_react27.css`
4905
+ enabled: import_react28.css`
4768
4906
  cursor: pointer;
4769
4907
  `,
4770
- disabled: import_react27.css`
4908
+ disabled: import_react28.css`
4771
4909
  pointer-events: none;
4772
4910
  color: ${getColorValue("disabledContent")};
4773
4911
  `
4774
4912
  };
4775
4913
  var buttonStyles = {
4776
- isButton: import_react27.css`
4914
+ isButton: import_react28.css`
4777
4915
  background: none;
4778
4916
  border: none;
4779
4917
  font: inherit;
4780
4918
  `
4781
4919
  };
4782
- var LinkWrapper = import_styled21.default.a`
4920
+ var LinkWrapper = import_styled22.default.a`
4783
4921
  ${(props) => !props.disabled && `color: ${variants2[props.variant].color}`};
4784
4922
  ${(props) => props.disabled ? statusStyles2.disabled : statusStyles2.enabled};
4785
4923
  ${(props) => props.as === "button" && buttonStyles.isButton};
@@ -4816,7 +4954,7 @@ var Link = (_a) => {
4816
4954
  "htmlTag",
4817
4955
  "isDisabled"
4818
4956
  ]);
4819
- return /* @__PURE__ */ import_react28.default.createElement(
4957
+ return /* @__PURE__ */ import_react29.default.createElement(
4820
4958
  LinkWrapper,
4821
4959
  __spreadValues({
4822
4960
  href,
@@ -4831,8 +4969,8 @@ var availableVariants2 = Object.keys(variants2);
4831
4969
  var link_default = Link;
4832
4970
 
4833
4971
  // src/components/textarea/textarea.tsx
4834
- var import_styled22 = __toESM(require("@emotion/styled"));
4835
- var import_react29 = __toESM(require("react"));
4972
+ var import_styled23 = __toESM(require("@emotion/styled"));
4973
+ var import_react30 = __toESM(require("react"));
4836
4974
  var sizesStyles3 = {
4837
4975
  small: {
4838
4976
  padding: `${u(1.5)} ${u(1.75)}`,
@@ -4843,7 +4981,7 @@ var sizesStyles3 = {
4843
4981
  textSize: "medium"
4844
4982
  }
4845
4983
  };
4846
- var TextareaWrapper = import_styled22.default.textarea`
4984
+ var TextareaWrapper = import_styled23.default.textarea`
4847
4985
  width: 100%;
4848
4986
  border: none;
4849
4987
  font-family: inherit;
@@ -4882,7 +5020,7 @@ var TextareaWrapper = import_styled22.default.textarea`
4882
5020
  color: ${getColorValue("bodyDimmed")};
4883
5021
  }
4884
5022
  `;
4885
- var Textarea = import_react29.default.forwardRef(
5023
+ var Textarea = import_react30.default.forwardRef(
4886
5024
  (_a, ref) => {
4887
5025
  var _b = _a, {
4888
5026
  onChange,
@@ -4903,7 +5041,7 @@ var Textarea = import_react29.default.forwardRef(
4903
5041
  "resize",
4904
5042
  "error"
4905
5043
  ]);
4906
- return /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, /* @__PURE__ */ import_react29.default.createElement(
5044
+ return /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, /* @__PURE__ */ import_react30.default.createElement(
4907
5045
  TextareaWrapper,
4908
5046
  __spreadValues({
4909
5047
  disabled: isDisabled,
@@ -4916,26 +5054,26 @@ var Textarea = import_react29.default.forwardRef(
4916
5054
  resize,
4917
5055
  error
4918
5056
  }, props)
4919
- ), error ? /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, /* @__PURE__ */ import_react29.default.createElement(spacer_default, { bottom: "xmsall" }), /* @__PURE__ */ import_react29.default.createElement(text_default, { color: "danger", fontWeight: "regular", size: "body-md" }, error)) : null);
5057
+ ), error ? /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, /* @__PURE__ */ import_react30.default.createElement(spacer_default, { bottom: "xmsall" }), /* @__PURE__ */ import_react30.default.createElement(text_default, { color: "danger", fontWeight: "regular", size: "body-md" }, error)) : null);
4920
5058
  }
4921
5059
  );
4922
5060
  var textarea_default = Textarea;
4923
5061
 
4924
5062
  // src/components/typeahead/typeahead.tsx
4925
- var import_styled23 = __toESM(require("@emotion/styled"));
5063
+ var import_styled24 = __toESM(require("@emotion/styled"));
4926
5064
  var import_downshift3 = __toESM(require("downshift"));
4927
- var import_react30 = __toESM(require("react"));
5065
+ var import_react31 = __toESM(require("react"));
4928
5066
  var import_react_laag2 = require("react-laag");
4929
5067
  var import_resize_observer_polyfill2 = __toESM(require("resize-observer-polyfill"));
4930
- var TypeaheadWrapper = import_styled23.default.div`
5068
+ var TypeaheadWrapper = import_styled24.default.div`
4931
5069
  position: relative;
4932
5070
  `;
4933
- var Group2 = import_styled23.default.ul`
5071
+ var Group2 = import_styled24.default.ul`
4934
5072
  list-style: none;
4935
5073
  margin: 0;
4936
5074
  padding: 0;
4937
5075
  `;
4938
- var ErrorMessage2 = import_styled23.default.span`
5076
+ var ErrorMessage2 = import_styled24.default.span`
4939
5077
  color: var(--lns-color-red);
4940
5078
  margin-top: var(--lns-space-xsmall);
4941
5079
  display: block;
@@ -4998,7 +5136,7 @@ var getHeaderAccessibilityProps2 = ({
4998
5136
  "aria-label": [ariaMenuName, valueLabel].filter(Boolean).join(", ")
4999
5137
  };
5000
5138
  };
5001
- var TypeaheadHeaderWrapper = import_styled23.default.button`
5139
+ var TypeaheadHeaderWrapper = import_styled24.default.button`
5002
5140
  position: relative;
5003
5141
  width: 100%;
5004
5142
  background: none;
@@ -5013,7 +5151,7 @@ var TypeaheadHeaderWrapper = import_styled23.default.button`
5013
5151
  cursor: default;
5014
5152
  }
5015
5153
  `;
5016
- var TypeaheadInputField = import_styled23.default.input`
5154
+ var TypeaheadInputField = import_styled24.default.input`
5017
5155
  -webkit-appearance: none;
5018
5156
  font-family: inherit;
5019
5157
  width: 100%;
@@ -5024,6 +5162,7 @@ var TypeaheadInputField = import_styled23.default.input`
5024
5162
  transition: 0.3s box-shadow;
5025
5163
  padding-top: 0;
5026
5164
  padding-bottom: 0;
5165
+ id: ${(props) => props.id};
5027
5166
  padding-left: ${(props) => props.hasIcon ? u(5.5) : "var(--lns-formFieldHorizontalPadding)"};
5028
5167
  padding-right: ${(props) => props.hasAddOn ? u(5.5) : "var(--lns-formFieldHorizontalPadding)"};
5029
5168
  border-radius: var(--lns-formFieldRadius);
@@ -5056,7 +5195,7 @@ var TypeaheadInputField = import_styled23.default.input`
5056
5195
  color: ${getColorValue("bodyDimmed")};
5057
5196
  }
5058
5197
  `;
5059
- var IconSection3 = import_styled23.default.div`
5198
+ var IconSection3 = import_styled24.default.div`
5060
5199
  position: absolute;
5061
5200
  pointer-events: none;
5062
5201
  width: ${u(6)};
@@ -5066,7 +5205,7 @@ var IconSection3 = import_styled23.default.div`
5066
5205
  justify-content: center;
5067
5206
  left: 0;
5068
5207
  `;
5069
- var AddOnSection = import_styled23.default.div`
5208
+ var AddOnSection = import_styled24.default.div`
5070
5209
  position: absolute;
5071
5210
  height: 100%;
5072
5211
  display: flex;
@@ -5077,7 +5216,7 @@ var AddOnSection = import_styled23.default.div`
5077
5216
  top: 50%;
5078
5217
  transform: translateY(-50%);
5079
5218
  `;
5080
- var TextOverlay = import_styled23.default.div`
5219
+ var TextOverlay = import_styled24.default.div`
5081
5220
  position: absolute;
5082
5221
  top: 0;
5083
5222
  left: ${(props) => props.hasIcon ? u(5.5) : "var(--lns-formFieldHorizontalPadding)"};
@@ -5088,7 +5227,7 @@ var TextOverlay = import_styled23.default.div`
5088
5227
  pointer-events: none;
5089
5228
  color: inherit;
5090
5229
  `;
5091
- var TypeaheadImage = import_styled23.default.img`
5230
+ var TypeaheadImage = import_styled24.default.img`
5092
5231
  height: 100%;
5093
5232
  width: auto;
5094
5233
  min-width: 100%;
@@ -5110,7 +5249,8 @@ var TypeaheadHeader = ({
5110
5249
  hasLoader,
5111
5250
  inputValue,
5112
5251
  handleInputValueChange,
5113
- inputRef
5252
+ inputRef,
5253
+ id
5114
5254
  }) => {
5115
5255
  const icon = getIcon2({ options, selectedItem, selectedOptionValue });
5116
5256
  const hasIcon = Boolean(icon);
@@ -5130,6 +5270,8 @@ var TypeaheadHeader = ({
5130
5270
  getInputProps,
5131
5271
  ariaMenuName
5132
5272
  })), getInputProps({
5273
+ id,
5274
+ "aria-labelledby": void 0,
5133
5275
  disabled: isDisabled,
5134
5276
  onFocus: handleClickAndFocus,
5135
5277
  onClick: handleClickAndFocus,
@@ -5140,7 +5282,7 @@ var TypeaheadHeader = ({
5140
5282
  onChange: (e) => handleInputValueChange(e.target.value)
5141
5283
  }));
5142
5284
  const showPlaceholder = !inputValue && !selectedOptionValue;
5143
- return /* @__PURE__ */ import_react30.default.createElement(TypeaheadHeaderWrapper, { onClick: handleClickAndFocus, disabled: isDisabled }, hasIcon && /* @__PURE__ */ import_react30.default.createElement(IconSection3, null, typeof icon === "string" ? /* @__PURE__ */ import_react30.default.createElement(container_default, { radius: "50", width: 3, height: 3, overflow: "hidden" }, /* @__PURE__ */ import_react30.default.createElement(align_default, { alignment: "center" }, /* @__PURE__ */ import_react30.default.createElement(TypeaheadImage, { src: icon, alt: "", isDisabled }))) : /* @__PURE__ */ import_react30.default.createElement(icon_default, { icon, color })), /* @__PURE__ */ import_react30.default.createElement(
5285
+ return /* @__PURE__ */ import_react31.default.createElement(TypeaheadHeaderWrapper, { onClick: handleClickAndFocus, disabled: isDisabled }, hasIcon && /* @__PURE__ */ import_react31.default.createElement(IconSection3, null, typeof icon === "string" ? /* @__PURE__ */ import_react31.default.createElement(container_default, { radius: "50", width: 3, height: 3, overflow: "hidden" }, /* @__PURE__ */ import_react31.default.createElement(align_default, { alignment: "center" }, /* @__PURE__ */ import_react31.default.createElement(TypeaheadImage, { src: icon, alt: "", isDisabled }))) : /* @__PURE__ */ import_react31.default.createElement(icon_default, { icon, color })), /* @__PURE__ */ import_react31.default.createElement(
5144
5286
  TypeaheadInputField,
5145
5287
  __spreadProps(__spreadValues({
5146
5288
  ref: inputRef
@@ -5150,12 +5292,12 @@ var TypeaheadHeader = ({
5150
5292
  hasError,
5151
5293
  isDisabled
5152
5294
  })
5153
- ), !inputValue && /* @__PURE__ */ import_react30.default.createElement(TextOverlay, { hasIcon }, /* @__PURE__ */ import_react30.default.createElement(text_default, { hasEllipsis: true, color: showPlaceholder ? "bodyDimmed" : "inherit" }, getTitle2({
5295
+ ), !inputValue && /* @__PURE__ */ import_react31.default.createElement(TextOverlay, { hasIcon }, /* @__PURE__ */ import_react31.default.createElement(text_default, { hasEllipsis: true, color: showPlaceholder ? "bodyDimmed" : "inherit" }, getTitle2({
5154
5296
  options,
5155
5297
  selectedItem,
5156
5298
  selectedOptionValue,
5157
5299
  placeholder
5158
- }))), /* @__PURE__ */ import_react30.default.createElement(AddOnSection, null, hasLoader ? /* @__PURE__ */ import_react30.default.createElement(loader_default, { size: "small" }) : /* @__PURE__ */ import_react30.default.createElement(icon_default, { icon: /* @__PURE__ */ import_react30.default.createElement(SvgChevronDown, null), color })));
5300
+ }))), /* @__PURE__ */ import_react31.default.createElement(AddOnSection, null, hasLoader ? /* @__PURE__ */ import_react31.default.createElement(loader_default, { size: "small" }) : /* @__PURE__ */ import_react31.default.createElement(icon_default, { icon: /* @__PURE__ */ import_react31.default.createElement(SvgChevronDown, null), color })));
5159
5301
  };
5160
5302
  var getSelectedOption2 = (value, options) => {
5161
5303
  var _a;
@@ -5177,7 +5319,7 @@ var didSelectedOptionValueChange2 = (selectedOptionValue, prevSelectedItem) => {
5177
5319
  };
5178
5320
  var renderOption2 = (item, index, selectedItem, selectedOptionValue, highlightedIndex, getItemProps) => {
5179
5321
  const isSelected = !selectedItem && item.value === selectedOptionValue || selectedItem && selectedItem.value === item.value;
5180
- return /* @__PURE__ */ import_react30.default.createElement(
5322
+ return /* @__PURE__ */ import_react31.default.createElement(
5181
5323
  MenuItem,
5182
5324
  __spreadProps(__spreadValues({
5183
5325
  key: index,
@@ -5221,16 +5363,16 @@ var TypeaheadMenu = (_a) => {
5221
5363
  "emptyResultsMessage",
5222
5364
  "hasAvailableOptions"
5223
5365
  ]);
5224
- const defaultLoadingMessage = loadingMessage || /* @__PURE__ */ import_react30.default.createElement(loader_default, null);
5366
+ const defaultLoadingMessage = loadingMessage || /* @__PURE__ */ import_react31.default.createElement(loader_default, null);
5225
5367
  const defaultEmptyResultsMessage = emptyResultsMessage || "No results";
5226
5368
  if (isLoading) {
5227
- return /* @__PURE__ */ import_react30.default.createElement(menu_default, __spreadValues({ as: "div" }, menuProps), /* @__PURE__ */ import_react30.default.createElement(container_default, { padding: "large" }, /* @__PURE__ */ import_react30.default.createElement(align_default, { alignment: "center" }, defaultLoadingMessage)));
5369
+ return /* @__PURE__ */ import_react31.default.createElement(menu_default, __spreadValues({ as: "div" }, menuProps), /* @__PURE__ */ import_react31.default.createElement(container_default, { padding: "large" }, /* @__PURE__ */ import_react31.default.createElement(align_default, { alignment: "center" }, defaultLoadingMessage)));
5228
5370
  }
5229
5371
  if (!hasAvailableOptions) {
5230
- return /* @__PURE__ */ import_react30.default.createElement(menu_default, __spreadValues({ as: "div" }, menuProps), /* @__PURE__ */ import_react30.default.createElement(container_default, { padding: "large" }, /* @__PURE__ */ import_react30.default.createElement(align_default, { alignment: "center" }, defaultEmptyResultsMessage)));
5372
+ return /* @__PURE__ */ import_react31.default.createElement(menu_default, __spreadValues({ as: "div" }, menuProps), /* @__PURE__ */ import_react31.default.createElement(container_default, { padding: "large" }, /* @__PURE__ */ import_react31.default.createElement(align_default, { alignment: "center" }, defaultEmptyResultsMessage)));
5231
5373
  }
5232
5374
  if (!isGrouped2(options)) {
5233
- return /* @__PURE__ */ import_react30.default.createElement(menu_default, __spreadValues({}, menuProps), options.map(
5375
+ return /* @__PURE__ */ import_react31.default.createElement(menu_default, __spreadValues({}, menuProps), options.map(
5234
5376
  (item, index) => renderOption2(
5235
5377
  item,
5236
5378
  index,
@@ -5242,9 +5384,9 @@ var TypeaheadMenu = (_a) => {
5242
5384
  ));
5243
5385
  }
5244
5386
  let downshiftIndex = 0;
5245
- return /* @__PURE__ */ import_react30.default.createElement(menu_default, __spreadValues({}, menuProps), options.map((group) => {
5387
+ return /* @__PURE__ */ import_react31.default.createElement(menu_default, __spreadValues({}, menuProps), options.map((group) => {
5246
5388
  const groupId = `group-${group.group.replace(/\s+/g, "-")}`;
5247
- return /* @__PURE__ */ import_react30.default.createElement("li", { key: groupId }, /* @__PURE__ */ import_react30.default.createElement(spacer_default, { left: "medium", top: "small", bottom: "xsmall" }, /* @__PURE__ */ import_react30.default.createElement(text_default, { id: groupId, size: "body-sm", fontWeight: "bold" }, group.group)), /* @__PURE__ */ import_react30.default.createElement(Group2, { role: "group", "aria-labelledby": groupId }, group.items.map((item) => {
5389
+ return /* @__PURE__ */ import_react31.default.createElement("li", { key: groupId }, /* @__PURE__ */ import_react31.default.createElement(spacer_default, { left: "medium", top: "small", bottom: "xsmall" }, /* @__PURE__ */ import_react31.default.createElement(text_default, { id: groupId, size: "body-sm", fontWeight: "bold" }, group.group)), /* @__PURE__ */ import_react31.default.createElement(Group2, { role: "group", "aria-labelledby": groupId }, group.items.map((item) => {
5248
5390
  return renderOption2(
5249
5391
  item,
5250
5392
  downshiftIndex++,
@@ -5256,7 +5398,7 @@ var TypeaheadMenu = (_a) => {
5256
5398
  })));
5257
5399
  }));
5258
5400
  };
5259
- var Typeahead = (0, import_react30.forwardRef)(
5401
+ var Typeahead = (0, import_react31.forwardRef)(
5260
5402
  (_a, ref) => {
5261
5403
  var _b = _a, {
5262
5404
  container,
@@ -5277,7 +5419,8 @@ var Typeahead = (0, import_react30.forwardRef)(
5277
5419
  isLoading,
5278
5420
  loadingMessage,
5279
5421
  emptyResultsMessage,
5280
- errorMessage
5422
+ errorMessage,
5423
+ id
5281
5424
  } = _b, props = __objRest(_b, [
5282
5425
  "container",
5283
5426
  "onOptionChange",
@@ -5297,11 +5440,12 @@ var Typeahead = (0, import_react30.forwardRef)(
5297
5440
  "isLoading",
5298
5441
  "loadingMessage",
5299
5442
  "emptyResultsMessage",
5300
- "errorMessage"
5443
+ "errorMessage",
5444
+ "id"
5301
5445
  ]);
5302
5446
  const environment = getDownshiftEnvironment(container);
5303
- const internalInputRef = (0, import_react30.useRef)(null);
5304
- const inputRef = (0, import_react30.useCallback)(
5447
+ const internalInputRef = (0, import_react31.useRef)(null);
5448
+ const inputRef = (0, import_react31.useCallback)(
5305
5449
  (node) => {
5306
5450
  internalInputRef.current = node;
5307
5451
  if (ref) {
@@ -5310,12 +5454,12 @@ var Typeahead = (0, import_react30.forwardRef)(
5310
5454
  },
5311
5455
  [ref]
5312
5456
  );
5313
- const [inputValue, setInputValue] = (0, import_react30.useState)("");
5314
- const [downshiftIsOpen, setDownshiftIsOpen] = (0, import_react30.useState)(false);
5315
- const [prevSelectedItem, setPrevSelectedItem] = (0, import_react30.useState)(
5457
+ const [inputValue, setInputValue] = (0, import_react31.useState)("");
5458
+ const [downshiftIsOpen, setDownshiftIsOpen] = (0, import_react31.useState)(false);
5459
+ const [prevSelectedItem, setPrevSelectedItem] = (0, import_react31.useState)(
5316
5460
  getSelectedOption2(selectedOptionValue, options)
5317
5461
  );
5318
- const [selectedItem, setSelectedItem] = (0, import_react30.useState)(
5462
+ const [selectedItem, setSelectedItem] = (0, import_react31.useState)(
5319
5463
  prevSelectedItem
5320
5464
  );
5321
5465
  const handleInputValueChange = (value) => {
@@ -5346,7 +5490,7 @@ var Typeahead = (0, import_react30.forwardRef)(
5346
5490
  auto: true,
5347
5491
  snap: true
5348
5492
  });
5349
- (0, import_react30.useEffect)(() => {
5493
+ (0, import_react31.useEffect)(() => {
5350
5494
  if (didSelectedOptionValueChange2(selectedOptionValue, prevSelectedItem)) {
5351
5495
  const item = getSelectedOption2(selectedOptionValue, options);
5352
5496
  setPrevSelectedItem(item);
@@ -5354,14 +5498,14 @@ var Typeahead = (0, import_react30.forwardRef)(
5354
5498
  setInputValue("");
5355
5499
  }
5356
5500
  }, [selectedOptionValue, options, prevSelectedItem]);
5357
- (0, import_react30.useEffect)(() => {
5501
+ (0, import_react31.useEffect)(() => {
5358
5502
  var _a2;
5359
5503
  onOpenChange && onOpenChange(downshiftIsOpen);
5360
5504
  if (!downshiftIsOpen) {
5361
5505
  (_a2 = internalInputRef.current) == null ? void 0 : _a2.blur();
5362
5506
  }
5363
5507
  }, [downshiftIsOpen, onOpenChange]);
5364
- const hasAvailableOptions = (0, import_react30.useMemo)(() => {
5508
+ const hasAvailableOptions = (0, import_react31.useMemo)(() => {
5365
5509
  if (!Array.isArray(options)) {
5366
5510
  return false;
5367
5511
  }
@@ -5377,7 +5521,7 @@ var Typeahead = (0, import_react30.forwardRef)(
5377
5521
  }
5378
5522
  return changes;
5379
5523
  };
5380
- return /* @__PURE__ */ import_react30.default.createElement(TypeaheadWrapper, __spreadValues({}, props), /* @__PURE__ */ import_react30.default.createElement(import_downshift3.default, __spreadProps(__spreadValues({}, downshiftProps), { stateReducer }), ({
5524
+ return /* @__PURE__ */ import_react31.default.createElement(TypeaheadWrapper, __spreadValues({}, props), /* @__PURE__ */ import_react31.default.createElement(import_downshift3.default, __spreadProps(__spreadValues({}, downshiftProps), { stateReducer }), ({
5381
5525
  getItemProps,
5382
5526
  getInputProps,
5383
5527
  getMenuProps,
@@ -5387,7 +5531,7 @@ var Typeahead = (0, import_react30.forwardRef)(
5387
5531
  }) => {
5388
5532
  return (
5389
5533
  // Don't set the role to combobox to ensure a consistent experience for screen readers
5390
- /* @__PURE__ */ import_react30.default.createElement("div", { role: "presentation" }, /* @__PURE__ */ import_react30.default.createElement("div", __spreadValues({}, triggerProps), /* @__PURE__ */ import_react30.default.createElement(
5534
+ /* @__PURE__ */ import_react31.default.createElement("div", { role: "presentation" }, /* @__PURE__ */ import_react31.default.createElement("div", __spreadValues({}, triggerProps), /* @__PURE__ */ import_react31.default.createElement(
5391
5535
  TypeaheadHeader,
5392
5536
  {
5393
5537
  inputRef,
@@ -5405,10 +5549,11 @@ var Typeahead = (0, import_react30.forwardRef)(
5405
5549
  setDownshiftIsOpen(true);
5406
5550
  },
5407
5551
  hasLoader: isLoading,
5408
- hasError: Boolean(errorMessage)
5552
+ hasError: Boolean(errorMessage),
5553
+ id
5409
5554
  }
5410
5555
  )), downshiftIsOpen && isOpen && renderLayer(
5411
- /* @__PURE__ */ import_react30.default.createElement(
5556
+ /* @__PURE__ */ import_react31.default.createElement(
5412
5557
  "div",
5413
5558
  __spreadProps(__spreadValues({}, layerProps), {
5414
5559
  style: __spreadProps(__spreadValues({}, layerProps.style), {
@@ -5416,7 +5561,7 @@ var Typeahead = (0, import_react30.forwardRef)(
5416
5561
  width: menuMinWidth ? "auto" : triggerBounds == null ? void 0 : triggerBounds.width
5417
5562
  })
5418
5563
  }),
5419
- /* @__PURE__ */ import_react30.default.createElement(
5564
+ /* @__PURE__ */ import_react31.default.createElement(
5420
5565
  TypeaheadMenu,
5421
5566
  {
5422
5567
  options,
@@ -5436,7 +5581,7 @@ var Typeahead = (0, import_react30.forwardRef)(
5436
5581
  }
5437
5582
  )
5438
5583
  )
5439
- ), Boolean(errorMessage) && !downshiftIsOpen ? /* @__PURE__ */ import_react30.default.createElement(ErrorMessage2, null, errorMessage) : null)
5584
+ ), Boolean(errorMessage) && !downshiftIsOpen ? /* @__PURE__ */ import_react31.default.createElement(ErrorMessage2, null, errorMessage) : null)
5440
5585
  );
5441
5586
  }));
5442
5587
  }
@@ -5450,48 +5595,6 @@ var import_downshift5 = __toESM(require("downshift"));
5450
5595
  var import_react32 = __toESM(require("react"));
5451
5596
  var import_react_laag3 = require("react-laag");
5452
5597
  var import_resize_observer_polyfill3 = __toESM(require("resize-observer-polyfill"));
5453
-
5454
- // src/components/search-bar/search-bar.tsx
5455
- var import_styled24 = __toESM(require("@emotion/styled"));
5456
- var import_react31 = __toESM(require("react"));
5457
-
5458
- // src/components/icon/available-icons/search.tsx
5459
- var import_search = __toESM(require("@atlaskit/icon/core/search"));
5460
- var React30 = __toESM(require("react"));
5461
- function SvgSearch() {
5462
- return /* @__PURE__ */ React30.createElement(import_search.default, { label: "", testId: "ads-refreshed-icon" });
5463
- }
5464
-
5465
- // src/components/search-bar/search-bar.tsx
5466
- var SearchBarContainer = import_styled24.default.div`
5467
- padding: ${u(1.5)} ${u(1.5)} 0;
5468
- margin-bottom: ${u(1.5)};
5469
- position: sticky;
5470
- top: 0;
5471
- `;
5472
- var SearchBar = ({
5473
- ariaLabel,
5474
- placeholder,
5475
- value,
5476
- onChange,
5477
- getInputProps
5478
- }) => {
5479
- return /* @__PURE__ */ import_react31.default.createElement(SearchBarContainer, null, /* @__PURE__ */ import_react31.default.createElement(
5480
- text_input_default,
5481
- __spreadValues({
5482
- "aria-label": ariaLabel,
5483
- icon: /* @__PURE__ */ import_react31.default.createElement(SvgSearch, null)
5484
- }, getInputProps({
5485
- placeholder,
5486
- value,
5487
- onChange,
5488
- type: "text"
5489
- }))
5490
- ));
5491
- };
5492
- var search_bar_default = SearchBar;
5493
-
5494
- // src/components/dropdown/dropdown.tsx
5495
5598
  var getAccessibilityProps = ({
5496
5599
  ariaMenuName,
5497
5600
  getInputProps,
@@ -5525,7 +5628,9 @@ var Dropdown = (_a) => {
5525
5628
  onOuterClick,
5526
5629
  triggerOffset = 0,
5527
5630
  onOpenChange,
5528
- search
5631
+ search,
5632
+ role,
5633
+ menuItemRole
5529
5634
  } = _b, props = __objRest(_b, [
5530
5635
  "ariaMenuName",
5531
5636
  "menuPosition",
@@ -5541,7 +5646,9 @@ var Dropdown = (_a) => {
5541
5646
  "onOuterClick",
5542
5647
  "triggerOffset",
5543
5648
  "onOpenChange",
5544
- "search"
5649
+ "search",
5650
+ "role",
5651
+ "menuItemRole"
5545
5652
  ]);
5546
5653
  const environment = getDownshiftEnvironment(container);
5547
5654
  const [downshiftIsOpen, setDownshiftIsOpen] = (0, import_react32.useState)(false);
@@ -5569,23 +5676,19 @@ var Dropdown = (_a) => {
5569
5676
  }
5570
5677
  return changes;
5571
5678
  };
5572
- const filteredOptions = (0, import_react32.useMemo)(() => {
5573
- if ((search == null ? void 0 : search.searchType) === "startsWith") {
5679
+ options = (0, import_react32.useMemo)(() => {
5680
+ if (search) {
5681
+ if (search.searchType === "startsWith") {
5682
+ return options.filter(
5683
+ (option) => getTextFromNode(option.title).toLowerCase().startsWith(searchValue.toLowerCase())
5684
+ );
5685
+ }
5574
5686
  return options.filter(
5575
- (option) => {
5576
- var _a2;
5577
- return (_a2 = option.title) == null ? void 0 : _a2.toString().toLowerCase().startsWith(searchValue.toLowerCase());
5578
- }
5687
+ (option) => getTextFromNode(option.title).toLowerCase().includes(searchValue.toLowerCase())
5579
5688
  );
5580
5689
  }
5581
- return options.filter(
5582
- (option) => {
5583
- var _a2;
5584
- return (_a2 = option.title) == null ? void 0 : _a2.toString().toLowerCase().includes(searchValue.toLowerCase());
5585
- }
5586
- );
5587
- }, [options, searchValue, search == null ? void 0 : search.searchType]);
5588
- options = search ? filteredOptions : options;
5690
+ return options;
5691
+ }, [options, searchValue, search]);
5589
5692
  return /* @__PURE__ */ import_react32.default.createElement(
5590
5693
  import_downshift5.default,
5591
5694
  {
@@ -5616,7 +5719,7 @@ var Dropdown = (_a) => {
5616
5719
  ariaMenuName,
5617
5720
  getInputProps,
5618
5721
  isOpen: isOpen2
5619
- }))) : /* @__PURE__ */ import_react32.default.createElement(TriggerSection, __spreadValues({}, getToggleButtonProps({})), trigger)),
5722
+ }))) : /* @__PURE__ */ import_react32.default.createElement(TriggerSection, __spreadValues({}, getToggleButtonProps({ tabIndex: 0 })), trigger)),
5620
5723
  isOpen2 && renderLayer(
5621
5724
  /* @__PURE__ */ import_react32.default.createElement(
5622
5725
  "div",
@@ -5631,6 +5734,7 @@ var Dropdown = (_a) => {
5631
5734
  maxWidth: menuMaxWidth,
5632
5735
  maxHeight: menuMaxHeight,
5633
5736
  downshiftMenuProps: getMenuProps,
5737
+ role,
5634
5738
  search: search && /* @__PURE__ */ import_react32.default.createElement(
5635
5739
  search_bar_default,
5636
5740
  {
@@ -5653,6 +5757,7 @@ var Dropdown = (_a) => {
5653
5757
  icon: item.icon,
5654
5758
  hasDivider: item.hasDivider,
5655
5759
  getItemProps,
5760
+ menuItemRole,
5656
5761
  index
5657
5762
  }, getItemProps({
5658
5763
  key: index,
@@ -6871,16 +6976,16 @@ var CombinedLogoSvg = (_a) => {
6871
6976
  ), /* @__PURE__ */ import_react46.default.createElement(
6872
6977
  "path",
6873
6978
  {
6874
- "fill-rule": "evenodd",
6875
- "clip-rule": "evenodd",
6979
+ fillRule: "evenodd",
6980
+ clipRule: "evenodd",
6876
6981
  d: "M70.3743 15.1855C71.6352 15.1855 72.7252 15.459 73.6442 16.0059C74.5709 16.5527 75.2848 17.3237 75.7861 18.3187C76.2874 19.3061 76.5381 20.4568 76.5381 21.7708C76.5381 23.0773 76.2874 24.2242 75.7861 25.2116C75.2848 26.199 74.5709 26.9661 73.6442 27.513C72.7252 28.0599 71.6352 28.3333 70.3743 28.3333C69.1135 28.3333 68.0197 28.0599 67.0931 27.513C66.174 26.9661 65.4639 26.199 64.9626 25.2116C64.4613 24.2242 64.2106 23.0773 64.2106 21.7708C64.2106 20.4568 64.4613 19.3061 64.9626 18.3187C65.4639 17.3237 66.174 16.5527 67.0931 16.0059C68.0197 15.459 69.1135 15.1855 70.3743 15.1855ZM70.3743 17.7376C69.7287 17.7376 69.1895 17.9161 68.7565 18.2731C68.3312 18.6225 68.0084 19.101 67.7881 19.7087C67.5754 20.3087 67.4691 20.9923 67.4691 21.7594C67.4691 22.519 67.5754 23.2026 67.7881 23.8102C68.0084 24.4179 68.3312 24.9002 68.7565 25.2572C69.1895 25.6066 69.7287 25.7812 70.3743 25.7812C71.02 25.7812 71.5592 25.6066 71.9922 25.2572C72.4251 24.9002 72.7479 24.4179 72.9606 23.8102C73.1733 23.2026 73.2796 22.519 73.2796 21.7594C73.2796 20.9999 73.1733 20.3163 72.9606 19.7087C72.7479 19.101 72.4251 18.6225 71.9922 18.2731C71.5592 17.9161 71.02 17.7376 70.3743 17.7376Z",
6877
6982
  fill: wordmarkColor
6878
6983
  }
6879
6984
  ), /* @__PURE__ */ import_react46.default.createElement(
6880
6985
  "path",
6881
6986
  {
6882
- "fill-rule": "evenodd",
6883
- "clip-rule": "evenodd",
6987
+ fillRule: "evenodd",
6988
+ clipRule: "evenodd",
6884
6989
  d: "M84.6387 15.1855C85.8995 15.1855 86.9895 15.459 87.9085 16.0059C88.8352 16.5527 89.5491 17.3237 90.0505 18.3187C90.5518 19.3061 90.8024 20.4568 90.8024 21.7708C90.8024 23.0773 90.5518 24.2242 90.0505 25.2116C89.5491 26.199 88.8352 26.9661 87.9085 27.513C86.9895 28.0599 85.8995 28.3333 84.6387 28.3333C83.3778 28.3333 82.2841 28.0599 81.3574 27.513C80.4384 26.9661 79.7282 26.199 79.2269 25.2116C78.7256 24.2242 78.4749 23.0773 78.4749 21.7708C78.4749 20.4568 78.7256 19.3061 79.2269 18.3187C79.7282 17.3237 80.4384 16.5527 81.3574 16.0059C82.2841 15.459 83.3778 15.1855 84.6387 15.1855ZM84.6387 17.7376C83.9931 17.7376 83.4538 17.9161 83.0208 18.2731C82.5955 18.6225 82.2727 19.101 82.0524 19.7087C81.8397 20.3087 81.7334 20.9923 81.7334 21.7594C81.7334 22.519 81.8397 23.2026 82.0524 23.8102C82.2727 24.4179 82.5955 24.9002 83.0208 25.2572C83.4538 25.6066 83.9931 25.7812 84.6387 25.7812C85.2843 25.7812 85.8236 25.6066 86.2565 25.2572C86.6895 24.9002 87.0123 24.4179 87.2249 23.8102C87.4376 23.2026 87.5439 22.519 87.5439 21.7594C87.5439 20.9999 87.4376 20.3163 87.2249 19.7087C87.0123 19.101 86.6895 18.6225 86.2565 18.2731C85.8236 17.9161 85.2843 17.7376 84.6387 17.7376Z",
6885
6990
  fill: wordmarkColor
6886
6991
  }
@@ -7533,7 +7638,7 @@ var Tab = (_a) => {
7533
7638
  children
7534
7639
  );
7535
7640
  };
7536
- var Tabs = (_a) => {
7641
+ var TabsDeprecated = (_a) => {
7537
7642
  var _b = _a, {
7538
7643
  children,
7539
7644
  scrollOffset,
@@ -7570,6 +7675,166 @@ var Tabs = (_a) => {
7570
7675
  }
7571
7676
  return /* @__PURE__ */ import_react50.default.createElement(TabsContext.Provider, { value: { isPilledDesign } }, tabsContent);
7572
7677
  };
7678
+ var ConditionalTooltip = ({
7679
+ tooltipProps,
7680
+ children,
7681
+ tooltipId
7682
+ }) => {
7683
+ if (tooltipProps) {
7684
+ return /* @__PURE__ */ import_react50.default.createElement(tooltip_default, __spreadProps(__spreadValues({}, tooltipProps), { tooltipId, tabIndex: -1 }), children);
7685
+ }
7686
+ return children;
7687
+ };
7688
+ var TabNew = import_react50.default.forwardRef(
7689
+ (_a, ref) => {
7690
+ var _b = _a, {
7691
+ tabContent,
7692
+ tooltipProps,
7693
+ isActive,
7694
+ htmlTag = "button",
7695
+ icon,
7696
+ isDisabled = false,
7697
+ onKeyDown,
7698
+ onClick
7699
+ } = _b, props = __objRest(_b, [
7700
+ "tabContent",
7701
+ "tooltipProps",
7702
+ "isActive",
7703
+ "htmlTag",
7704
+ "icon",
7705
+ "isDisabled",
7706
+ "onKeyDown",
7707
+ "onClick"
7708
+ ]);
7709
+ const { isPilledDesign } = import_react50.default.useContext(TabsContext);
7710
+ const tooltipId = (0, import_react50.useId)();
7711
+ const componentProps = __spreadValues({
7712
+ as: htmlTag,
7713
+ isActive,
7714
+ icon,
7715
+ role: "tab",
7716
+ "aria-selected": isActive,
7717
+ disabled: isDisabled,
7718
+ tabIndex: isActive ? 0 : -1,
7719
+ "aria-describedby": tooltipProps ? tooltipId : void 0,
7720
+ onKeyDown,
7721
+ onClick,
7722
+ ref
7723
+ }, props);
7724
+ return /* @__PURE__ */ import_react50.default.createElement(ConditionalTooltip, { tooltipProps, tooltipId }, isPilledDesign ? /* @__PURE__ */ import_react50.default.createElement(TabWrapperPilled, __spreadValues({}, componentProps), icon ? /* @__PURE__ */ import_react50.default.createElement(container_default, { htmlTag: "span", paddingRight: tabContent && "small" }, /* @__PURE__ */ import_react50.default.createElement(icon_default, { icon, color: "currentColor" })) : null, tabContent) : /* @__PURE__ */ import_react50.default.createElement(TabWrapper, __spreadValues({}, componentProps), icon ? /* @__PURE__ */ import_react50.default.createElement(container_default, { htmlTag: "span", paddingRight: tabContent && "small" }, /* @__PURE__ */ import_react50.default.createElement(icon_default, { icon, color: "currentColor" })) : null, tabContent));
7725
+ }
7726
+ );
7727
+ TabNew.displayName = "TabNew";
7728
+ var TabsNew = (_a) => {
7729
+ var _b = _a, {
7730
+ tabs,
7731
+ scrollOffset,
7732
+ hasFullTabs,
7733
+ isPilledDesign,
7734
+ hasBottomBorder = false
7735
+ } = _b, props = __objRest(_b, [
7736
+ "tabs",
7737
+ "scrollOffset",
7738
+ "hasFullTabs",
7739
+ "isPilledDesign",
7740
+ "hasBottomBorder"
7741
+ ]);
7742
+ const tabRefs = (0, import_react50.useRef)({});
7743
+ const handleKeyDown = (0, import_react50.useCallback)(
7744
+ (event, currentTabIndex) => {
7745
+ var _a2;
7746
+ let newIndex = currentTabIndex;
7747
+ switch (event.key) {
7748
+ case "ArrowLeft":
7749
+ event.preventDefault();
7750
+ newIndex = currentTabIndex > 0 ? currentTabIndex - 1 : tabs.length - 1;
7751
+ break;
7752
+ case "ArrowRight":
7753
+ event.preventDefault();
7754
+ newIndex = currentTabIndex < tabs.length - 1 ? currentTabIndex + 1 : 0;
7755
+ break;
7756
+ case "Home":
7757
+ event.preventDefault();
7758
+ newIndex = 0;
7759
+ break;
7760
+ case "End":
7761
+ event.preventDefault();
7762
+ newIndex = tabs.length - 1;
7763
+ break;
7764
+ default:
7765
+ return;
7766
+ }
7767
+ (_a2 = tabRefs.current[newIndex]) == null ? void 0 : _a2.focus();
7768
+ },
7769
+ [tabs.length]
7770
+ );
7771
+ const setTabRef = (0, import_react50.useCallback)(
7772
+ (tabIndex) => (ref) => {
7773
+ tabRefs.current[tabIndex] = ref;
7774
+ },
7775
+ []
7776
+ );
7777
+ const tabsToRender = (0, import_react50.useMemo)(
7778
+ () => tabs.map((tabProps, index) => /* @__PURE__ */ import_react50.default.createElement(
7779
+ TabNew,
7780
+ __spreadValues({
7781
+ key: index,
7782
+ ref: setTabRef(index),
7783
+ onKeyDown: (e) => handleKeyDown(e, index)
7784
+ }, tabProps)
7785
+ )),
7786
+ [tabs, handleKeyDown, setTabRef]
7787
+ );
7788
+ const tabsContent = (0, import_react50.useMemo)(
7789
+ () => isPilledDesign ? /* @__PURE__ */ import_react50.default.createElement(
7790
+ TabsNavPilled,
7791
+ __spreadValues({
7792
+ hasFullTabs,
7793
+ scrollOffset,
7794
+ role: "tablist"
7795
+ }, props),
7796
+ tabsToRender
7797
+ ) : /* @__PURE__ */ import_react50.default.createElement(
7798
+ TabsNav,
7799
+ __spreadValues({
7800
+ hasFullTabs,
7801
+ scrollOffset,
7802
+ hasBottomBorder,
7803
+ role: "tablist"
7804
+ }, props),
7805
+ tabsToRender
7806
+ ),
7807
+ [
7808
+ tabsToRender,
7809
+ hasFullTabs,
7810
+ scrollOffset,
7811
+ hasBottomBorder,
7812
+ isPilledDesign,
7813
+ props
7814
+ ]
7815
+ );
7816
+ const wrappedContent = /* @__PURE__ */ import_react50.default.createElement(TabsContext.Provider, { value: { isPilledDesign } }, tabsContent);
7817
+ if (scrollOffset) {
7818
+ return /* @__PURE__ */ import_react50.default.createElement(Wrapper, { scrollOffset }, wrappedContent);
7819
+ }
7820
+ return wrappedContent;
7821
+ };
7822
+ var Tabs = (_a) => {
7823
+ var _b = _a, { children, tabs } = _b, props = __objRest(_b, ["children", "tabs"]);
7824
+ if (children && tabs) {
7825
+ console.warn(
7826
+ "Both children and tabs props are provided. Please use only one of them."
7827
+ );
7828
+ }
7829
+ if (!children && !tabs) {
7830
+ console.error("Either children or tabs must be provided.");
7831
+ return null;
7832
+ }
7833
+ if (children) {
7834
+ return /* @__PURE__ */ import_react50.default.createElement(TabsDeprecated, __spreadValues({}, props), children);
7835
+ }
7836
+ return /* @__PURE__ */ import_react50.default.createElement(TabsNew, __spreadValues({ tabs }, props));
7837
+ };
7573
7838
  var tabs_default = Tabs;
7574
7839
 
7575
7840
  // src/components/pill/pill.tsx