@loomhq/lens 12.1.0 → 12.1.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.
package/dist/cjs/index.js CHANGED
@@ -3468,9 +3468,9 @@ TextButton.displayName = "TextButton";
3468
3468
  var text_button_default = TextButton;
3469
3469
 
3470
3470
  // src/components/select/select.tsx
3471
- var import_styled17 = __toESM(require("@emotion/styled"));
3471
+ var import_styled18 = __toESM(require("@emotion/styled"));
3472
3472
  var import_downshift = __toESM(require("downshift"));
3473
- var import_react22 = __toESM(require("react"));
3473
+ var import_react23 = __toESM(require("react"));
3474
3474
  var import_react_laag = require("react-laag");
3475
3475
  var import_resize_observer_polyfill = __toESM(require("resize-observer-polyfill"));
3476
3476
 
@@ -3504,8 +3504,8 @@ function SvgChevronDown() {
3504
3504
  }
3505
3505
 
3506
3506
  // src/components/menu/menu.tsx
3507
- var import_styled16 = __toESM(require("@emotion/styled"));
3508
- var import_react21 = __toESM(require("react"));
3507
+ var import_styled17 = __toESM(require("@emotion/styled"));
3508
+ var import_react22 = __toESM(require("react"));
3509
3509
 
3510
3510
  // src/components/icon/available-icons/check.tsx
3511
3511
  var import_check_mark = __toESM(require("@atlaskit/icon/core/check-mark"));
@@ -3514,6 +3514,56 @@ function SvgCheck() {
3514
3514
  return /* @__PURE__ */ React20.createElement(import_check_mark.default, { label: "", testId: "ads-refreshed-icon" });
3515
3515
  }
3516
3516
 
3517
+ // src/components/align/align.tsx
3518
+ var import_styled16 = __toESM(require("@emotion/styled"));
3519
+ var import_react21 = __toESM(require("react"));
3520
+ var alignmentsPlaceItems = {
3521
+ topLeft: "start",
3522
+ topCenter: "start center",
3523
+ topRight: "start end",
3524
+ centerLeft: "center start",
3525
+ center: "center",
3526
+ centerRight: "center end",
3527
+ bottomLeft: "end start",
3528
+ bottomCenter: "end center",
3529
+ bottomRight: "end"
3530
+ };
3531
+ var getPlaceItems = (alignment) => {
3532
+ if (Array.isArray(alignment)) {
3533
+ return alignment.map(
3534
+ (alignmentArrayItem) => alignmentsPlaceItems[alignmentArrayItem]
3535
+ );
3536
+ }
3537
+ if (typeof alignment === "object") {
3538
+ const alignmentsPlaceItemsObject = {};
3539
+ Object.entries(alignment).forEach(([key, value]) => {
3540
+ return alignmentsPlaceItemsObject[key] = alignmentsPlaceItems[value];
3541
+ });
3542
+ return alignmentsPlaceItemsObject;
3543
+ }
3544
+ return alignmentsPlaceItems[alignment];
3545
+ };
3546
+ var AlignWrapper = import_styled16.default.div`
3547
+ width: 100%;
3548
+ height: 100%;
3549
+ display: grid;
3550
+ ${(props) => getResponsiveOneOf("place-items", getPlaceItems(props.alignment))};
3551
+ `;
3552
+ var Align = (_a) => {
3553
+ var _b = _a, {
3554
+ children,
3555
+ alignment = "center",
3556
+ htmlTag = "div"
3557
+ } = _b, props = __objRest(_b, [
3558
+ "children",
3559
+ "alignment",
3560
+ "htmlTag"
3561
+ ]);
3562
+ return /* @__PURE__ */ import_react21.default.createElement(AlignWrapper, __spreadValues({ alignment, as: htmlTag }, props), children);
3563
+ };
3564
+ var availableAlignments2 = Object.keys(alignmentsPlaceItems);
3565
+ var align_default = Align;
3566
+
3517
3567
  // src/components/menu/menu.tsx
3518
3568
  var menuPositions = {
3519
3569
  left: "bottom-start",
@@ -3523,7 +3573,7 @@ var menuPositions = {
3523
3573
  leftSide: "left-start",
3524
3574
  rightSide: "right-start"
3525
3575
  };
3526
- var MenuWrapper = import_styled16.default.ul`
3576
+ var MenuWrapper = import_styled17.default.ul`
3527
3577
  background-color: ${getColorValue("overlay")};
3528
3578
  list-style: none;
3529
3579
  padding: ${u(1.5)};
@@ -3537,7 +3587,7 @@ var MenuWrapper = import_styled16.default.ul`
3537
3587
  ${getShadow("medium")};
3538
3588
  ${getRadius("250")};
3539
3589
  `;
3540
- var MenuItemWrapper = import_styled16.default.li`
3590
+ var MenuItemWrapper = import_styled17.default.li`
3541
3591
  display: ${({ hidden }) => hidden ? "none" : "grid"};
3542
3592
  grid-auto-flow: column;
3543
3593
  grid-template-columns: ${(props) => props.columns};
@@ -3563,6 +3613,13 @@ var MenuItemWrapper = import_styled16.default.li`
3563
3613
  }
3564
3614
  `};
3565
3615
  `;
3616
+ var Image = import_styled17.default.img`
3617
+ height: 100%;
3618
+ width: auto;
3619
+ min-width: 100%;
3620
+ min-height: 100%;
3621
+ object-fit: cover;
3622
+ `;
3566
3623
  var MenuItem = (_a) => {
3567
3624
  var _b = _a, {
3568
3625
  isDisabled,
@@ -3583,7 +3640,7 @@ var MenuItem = (_a) => {
3583
3640
  const iconColumn = icon ? "auto" : "";
3584
3641
  const columns = `${iconColumn} 1fr ${checkColumn}`;
3585
3642
  const color = isDisabled ? "disabledContent" : void 0;
3586
- return /* @__PURE__ */ import_react21.default.createElement(
3643
+ return /* @__PURE__ */ import_react22.default.createElement(
3587
3644
  MenuItemWrapper,
3588
3645
  __spreadValues({
3589
3646
  isHighlighted,
@@ -3591,9 +3648,9 @@ var MenuItem = (_a) => {
3591
3648
  columns,
3592
3649
  hasDivider
3593
3650
  }, props),
3594
- icon && /* @__PURE__ */ import_react21.default.createElement(icon_default, { icon, color }),
3595
- /* @__PURE__ */ import_react21.default.createElement(text_default, { color, hasEllipsis: true }, children),
3596
- isSelected && /* @__PURE__ */ import_react21.default.createElement(icon_default, { icon: /* @__PURE__ */ import_react21.default.createElement(SvgCheck, null), color })
3651
+ icon && (typeof icon === "string" ? /* @__PURE__ */ import_react22.default.createElement(container_default, { radius: "50", width: 3, height: 3, overflow: "hidden" }, /* @__PURE__ */ import_react22.default.createElement(align_default, { alignment: "center" }, /* @__PURE__ */ import_react22.default.createElement(Image, { src: icon, alt: "" }))) : /* @__PURE__ */ import_react22.default.createElement(icon_default, { icon, color })),
3652
+ /* @__PURE__ */ import_react22.default.createElement(text_default, { color, hasEllipsis: true }, children),
3653
+ isSelected && /* @__PURE__ */ import_react22.default.createElement(icon_default, { icon: /* @__PURE__ */ import_react22.default.createElement(SvgCheck, null), color })
3597
3654
  );
3598
3655
  };
3599
3656
  var Menu = (_a) => {
@@ -3614,7 +3671,7 @@ var Menu = (_a) => {
3614
3671
  "children",
3615
3672
  "downshiftMenuProps"
3616
3673
  ]);
3617
- return /* @__PURE__ */ import_react21.default.createElement(
3674
+ return /* @__PURE__ */ import_react22.default.createElement(
3618
3675
  MenuWrapper,
3619
3676
  __spreadValues(__spreadValues({
3620
3677
  zIndex,
@@ -3629,10 +3686,10 @@ var Menu = (_a) => {
3629
3686
  var menu_default = Menu;
3630
3687
 
3631
3688
  // src/components/select/select.tsx
3632
- var SelectWrapper = import_styled17.default.div`
3689
+ var SelectWrapper = import_styled18.default.div`
3633
3690
  position: relative;
3634
3691
  `;
3635
- var SelectHeaderWrapper = import_styled17.default.button`
3692
+ var SelectHeaderWrapper = import_styled18.default.button`
3636
3693
  appearance: none;
3637
3694
  font: inherit;
3638
3695
  text-align: left;
@@ -3669,11 +3726,37 @@ var SelectHeaderWrapper = import_styled17.default.button`
3669
3726
  cursor: default;
3670
3727
  }
3671
3728
  `;
3729
+ var Image2 = import_styled18.default.img`
3730
+ height: 100%;
3731
+ width: auto;
3732
+ min-width: 100%;
3733
+ min-height: 100%;
3734
+ object-fit: cover;
3735
+ `;
3736
+ var Group = import_styled18.default.ul`
3737
+ list-style: none;
3738
+ margin: 0;
3739
+ padding: 0;
3740
+ `;
3741
+ var isGrouped = (options) => Array.isArray(options) && options.length > 0 && "group" in options[0];
3672
3742
  var getSelectedOptionObject = ({ options, selectedOptionValue }) => {
3673
- const selectedOptionArray = options.filter(
3674
- (option) => option.value === selectedOptionValue
3675
- );
3676
- return selectedOptionArray[0] || { icon: null, title: null };
3743
+ if (!options || !selectedOptionValue) {
3744
+ return { icon: null, title: null };
3745
+ }
3746
+ if (isGrouped(options)) {
3747
+ for (const option of options) {
3748
+ const foundItem = option.items.find(
3749
+ (item) => item.value === selectedOptionValue
3750
+ );
3751
+ if (foundItem) {
3752
+ return foundItem;
3753
+ }
3754
+ }
3755
+ } else {
3756
+ const foundItem = options.find((item) => item.value === selectedOptionValue);
3757
+ return foundItem || { icon: null, title: null };
3758
+ }
3759
+ return { icon: null, title: null };
3677
3760
  };
3678
3761
  var getIcon = ({ options, selectedItem, selectedOptionValue }) => {
3679
3762
  if (selectedItem) {
@@ -3722,14 +3805,13 @@ var SelectHeader = ({
3722
3805
  getInputProps,
3723
3806
  ariaMenuName
3724
3807
  }) => {
3725
- const hasIcon = Boolean(
3726
- getIcon({ options, selectedItem, selectedOptionValue })
3727
- );
3808
+ const icon = getIcon({ options, selectedItem, selectedOptionValue });
3809
+ const hasIcon = Boolean(icon);
3728
3810
  const hasPlaceholder = !selectedOptionValue && !selectedItem;
3729
3811
  const iconColumn = hasIcon ? "auto" : "";
3730
3812
  const columns = `${iconColumn} 1fr auto`;
3731
3813
  const color = isDisabled ? "disabledContent" : void 0;
3732
- return /* @__PURE__ */ import_react22.default.createElement(
3814
+ return /* @__PURE__ */ import_react23.default.createElement(
3733
3815
  SelectHeaderWrapper,
3734
3816
  __spreadProps(__spreadValues(__spreadValues({}, getToggleButtonProps()), getHeaderAccessibilityProps({
3735
3817
  selectedItem,
@@ -3741,20 +3823,20 @@ var SelectHeader = ({
3741
3823
  disabled: isDisabled,
3742
3824
  columns
3743
3825
  }),
3744
- hasIcon && /* @__PURE__ */ import_react22.default.createElement(
3826
+ 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(Image2, { src: icon, alt: "" }))) : /* @__PURE__ */ import_react23.default.createElement(
3745
3827
  icon_default,
3746
3828
  {
3747
3829
  icon: getIcon({ options, selectedItem, selectedOptionValue }),
3748
3830
  color
3749
3831
  }
3750
- ),
3751
- /* @__PURE__ */ import_react22.default.createElement(text_default, { hasEllipsis: true, color: hasPlaceholder ? "bodyDimmed" : "inherit" }, getTitle({
3832
+ )),
3833
+ /* @__PURE__ */ import_react23.default.createElement(text_default, { hasEllipsis: true, color: hasPlaceholder ? "bodyDimmed" : "inherit" }, getTitle({
3752
3834
  options,
3753
3835
  selectedItem,
3754
3836
  selectedOptionValue,
3755
3837
  selectPlaceholder
3756
3838
  })),
3757
- /* @__PURE__ */ import_react22.default.createElement(icon_default, { icon: /* @__PURE__ */ import_react22.default.createElement(SvgChevronDown, null), color })
3839
+ /* @__PURE__ */ import_react23.default.createElement(icon_default, { icon: /* @__PURE__ */ import_react23.default.createElement(SvgChevronDown, null), color })
3758
3840
  );
3759
3841
  };
3760
3842
  var CustomHeader = ({
@@ -3800,12 +3882,88 @@ var CustomHeader = ({
3800
3882
  };
3801
3883
  return trigger(triggerContent, buttonProps());
3802
3884
  };
3803
- var getSelectedOption = (value, options) => options.find((o) => o.value === value);
3885
+ var getSelectedOption = (value, options) => {
3886
+ if (isGrouped(options)) {
3887
+ for (const option of options) {
3888
+ const foundItem = option.items.find((item) => item.value === value);
3889
+ if (foundItem) {
3890
+ return foundItem;
3891
+ }
3892
+ }
3893
+ } else {
3894
+ return options.find((item) => item.value === value);
3895
+ }
3896
+ };
3804
3897
  var didSelectedOptionValueChange = (selectedOptionValue, prevSelectedItem) => {
3805
3898
  return Boolean(
3806
3899
  prevSelectedItem && selectedOptionValue !== prevSelectedItem.value
3807
3900
  );
3808
3901
  };
3902
+ var renderOption = (item, index, selectedItem, selectedOptionValue, highlightedIndex, getItemProps) => {
3903
+ const isSelected = !selectedItem && item.value === selectedOptionValue || selectedItem && selectedItem.value === item.value;
3904
+ return /* @__PURE__ */ import_react23.default.createElement(
3905
+ MenuItem,
3906
+ __spreadProps(__spreadValues({
3907
+ key: index,
3908
+ getItemProps,
3909
+ icon: item.icon,
3910
+ hidden: item.hidden
3911
+ }, getItemProps({
3912
+ key: `${item.value}-${index}`,
3913
+ index,
3914
+ item,
3915
+ disabled: item.isDisabled,
3916
+ "aria-selected": isSelected
3917
+ })), {
3918
+ isDisabled: item.isDisabled,
3919
+ hasDivider: item.hasDivider,
3920
+ isHighlighted: highlightedIndex === index,
3921
+ isSelected
3922
+ }),
3923
+ item.title
3924
+ );
3925
+ };
3926
+ var SelectMenu = (_a) => {
3927
+ var _b = _a, {
3928
+ options,
3929
+ selectedItem,
3930
+ selectedOptionValue,
3931
+ highlightedIndex,
3932
+ getItemProps
3933
+ } = _b, menuProps = __objRest(_b, [
3934
+ "options",
3935
+ "selectedItem",
3936
+ "selectedOptionValue",
3937
+ "highlightedIndex",
3938
+ "getItemProps"
3939
+ ]);
3940
+ if (!isGrouped(options)) {
3941
+ return /* @__PURE__ */ import_react23.default.createElement(menu_default, __spreadValues({}, menuProps), options.map(
3942
+ (item, index) => renderOption(
3943
+ item,
3944
+ index,
3945
+ selectedItem,
3946
+ selectedOptionValue,
3947
+ highlightedIndex,
3948
+ getItemProps
3949
+ )
3950
+ ));
3951
+ }
3952
+ let downshiftIndex = 0;
3953
+ return /* @__PURE__ */ import_react23.default.createElement(menu_default, __spreadValues({}, menuProps), options.map((group) => {
3954
+ const groupId = `group-${group.group.replace(/\s+/g, "-")}`;
3955
+ 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) => {
3956
+ return renderOption(
3957
+ item,
3958
+ downshiftIndex++,
3959
+ selectedItem,
3960
+ selectedOptionValue,
3961
+ highlightedIndex,
3962
+ getItemProps
3963
+ );
3964
+ })));
3965
+ }));
3966
+ };
3809
3967
  var Select = (_a) => {
3810
3968
  var _b = _a, {
3811
3969
  container,
@@ -3841,11 +3999,11 @@ var Select = (_a) => {
3841
3999
  "trigger"
3842
4000
  ]);
3843
4001
  const environment = getDownshiftEnvironment(container);
3844
- const [downshiftIsOpen, setDownshiftIsOpen] = (0, import_react22.useState)(false);
3845
- const [prevSelectedItem, setPrevSelectedItem] = (0, import_react22.useState)(
4002
+ const [downshiftIsOpen, setDownshiftIsOpen] = (0, import_react23.useState)(false);
4003
+ const [prevSelectedItem, setPrevSelectedItem] = (0, import_react23.useState)(
3846
4004
  getSelectedOption(selectedOptionValue, options)
3847
4005
  );
3848
- const [selectedItem, setSelectedItem] = (0, import_react22.useState)(prevSelectedItem);
4006
+ const [selectedItem, setSelectedItem] = (0, import_react23.useState)(prevSelectedItem);
3849
4007
  const onDownshiftChange = (item) => {
3850
4008
  setSelectedItem(item);
3851
4009
  onChange && onChange(item ? item : "");
@@ -3868,14 +4026,14 @@ var Select = (_a) => {
3868
4026
  auto: true,
3869
4027
  snap: true
3870
4028
  });
3871
- (0, import_react22.useEffect)(() => {
4029
+ (0, import_react23.useEffect)(() => {
3872
4030
  if (didSelectedOptionValueChange(selectedOptionValue, prevSelectedItem)) {
3873
4031
  const selectedItem2 = getSelectedOption(selectedOptionValue, options);
3874
4032
  setPrevSelectedItem(selectedItem2);
3875
4033
  setSelectedItem(selectedItem2);
3876
4034
  }
3877
4035
  }, [selectedOptionValue, options, prevSelectedItem]);
3878
- (0, import_react22.useEffect)(() => {
4036
+ (0, import_react23.useEffect)(() => {
3879
4037
  onOpenChange && onOpenChange(downshiftIsOpen);
3880
4038
  }, [downshiftIsOpen, onOpenChange]);
3881
4039
  const stateReducer = (state, changes) => {
@@ -3888,7 +4046,7 @@ var Select = (_a) => {
3888
4046
  }
3889
4047
  return changes;
3890
4048
  };
3891
- return /* @__PURE__ */ import_react22.default.createElement(SelectWrapper, __spreadValues({}, props), /* @__PURE__ */ import_react22.default.createElement(import_downshift.default, __spreadProps(__spreadValues({}, downshiftProps), { stateReducer }), ({
4049
+ return /* @__PURE__ */ import_react23.default.createElement(SelectWrapper, __spreadValues({}, props), /* @__PURE__ */ import_react23.default.createElement(import_downshift.default, __spreadProps(__spreadValues({}, downshiftProps), { stateReducer }), ({
3892
4050
  getItemProps,
3893
4051
  getInputProps,
3894
4052
  getMenuProps,
@@ -3900,7 +4058,7 @@ var Select = (_a) => {
3900
4058
  }) => {
3901
4059
  return (
3902
4060
  // Don't set the role to combobox to ensure a consistent experience for screen readers
3903
- /* @__PURE__ */ import_react22.default.createElement("div", { role: null }, /* @__PURE__ */ import_react22.default.createElement("div", __spreadValues({}, triggerProps), trigger ? /* @__PURE__ */ import_react22.default.createElement(
4061
+ /* @__PURE__ */ import_react23.default.createElement("div", { role: null }, /* @__PURE__ */ import_react23.default.createElement("div", __spreadValues({}, triggerProps), trigger ? /* @__PURE__ */ import_react23.default.createElement(
3904
4062
  CustomHeader,
3905
4063
  {
3906
4064
  getToggleButtonProps,
@@ -3913,7 +4071,7 @@ var Select = (_a) => {
3913
4071
  getInputProps,
3914
4072
  ariaMenuName
3915
4073
  }
3916
- ) : /* @__PURE__ */ import_react22.default.createElement(
4074
+ ) : /* @__PURE__ */ import_react23.default.createElement(
3917
4075
  SelectHeader,
3918
4076
  {
3919
4077
  getToggleButtonProps,
@@ -3927,7 +4085,7 @@ var Select = (_a) => {
3927
4085
  ariaMenuName
3928
4086
  }
3929
4087
  )), downshiftIsOpen && isOpen && renderLayer(
3930
- /* @__PURE__ */ import_react22.default.createElement(
4088
+ /* @__PURE__ */ import_react23.default.createElement(
3931
4089
  "div",
3932
4090
  __spreadProps(__spreadValues({}, layerProps), {
3933
4091
  style: __spreadProps(__spreadValues({}, layerProps.style), {
@@ -3935,40 +4093,20 @@ var Select = (_a) => {
3935
4093
  width: menuMinWidth ? "auto" : triggerBounds == null ? void 0 : triggerBounds.width
3936
4094
  })
3937
4095
  }),
3938
- /* @__PURE__ */ import_react22.default.createElement(
3939
- menu_default,
4096
+ /* @__PURE__ */ import_react23.default.createElement(
4097
+ SelectMenu,
3940
4098
  {
4099
+ options,
4100
+ selectedItem: selectedItem2,
4101
+ selectedOptionValue,
4102
+ highlightedIndex,
4103
+ getItemProps,
3941
4104
  position: menuPosition,
3942
4105
  downshiftMenuProps: getMenuProps,
3943
4106
  maxWidth: menuMaxWidth,
3944
4107
  maxHeight: menuMaxHeight,
3945
4108
  minWidth: menuMinWidth
3946
- },
3947
- options.map((item, index) => {
3948
- const isSelected = !selectedItem2 && item.value === selectedOptionValue || selectedItem2 && selectedItem2.value === item.value;
3949
- return /* @__PURE__ */ import_react22.default.createElement(
3950
- MenuItem,
3951
- __spreadProps(__spreadValues({
3952
- key: index,
3953
- getItemProps,
3954
- icon: item.icon,
3955
- hidden: item.hidden
3956
- }, getItemProps({
3957
- key: `${item.value}-${index}`,
3958
- index,
3959
- item,
3960
- disabled: item.isDisabled,
3961
- "aria-selected": isSelected
3962
- // Downshift sets aria-selected to true on hover, which makes screen readers narrate that the item is selected when it is really not, so we override aria-selected here
3963
- })), {
3964
- isDisabled: item.isDisabled,
3965
- hasDivider: item.hasDivider,
3966
- isHighlighted: highlightedIndex === index,
3967
- isSelected
3968
- }),
3969
- item.title
3970
- );
3971
- })
4109
+ }
3972
4110
  )
3973
4111
  )
3974
4112
  ))
@@ -3978,15 +4116,15 @@ var Select = (_a) => {
3978
4116
  var select_default = Select;
3979
4117
 
3980
4118
  // src/components/backdrop/backdrop.tsx
3981
- var import_styled18 = __toESM(require("@emotion/styled"));
3982
- var import_react24 = __toESM(require("react"));
4119
+ var import_styled19 = __toESM(require("@emotion/styled"));
4120
+ var import_react25 = __toESM(require("react"));
3983
4121
  var import_transition_hook = require("transition-hook");
3984
4122
 
3985
4123
  // src/hooks/use-prevent-scroll.ts
3986
- var import_react23 = require("react");
4124
+ var import_react24 = require("react");
3987
4125
  function usePreventScroll(level, enabled) {
3988
4126
  const safeDocument = document;
3989
- (0, import_react23.useLayoutEffect)(() => {
4127
+ (0, import_react24.useLayoutEffect)(() => {
3990
4128
  const html = safeDocument == null ? void 0 : safeDocument.documentElement;
3991
4129
  const body = safeDocument == null ? void 0 : safeDocument.body;
3992
4130
  if (safeDocument == void 0 || !html || !body) {
@@ -4045,7 +4183,7 @@ var use_prevent_scroll_default = usePreventScroll;
4045
4183
 
4046
4184
  // src/components/backdrop/backdrop.tsx
4047
4185
  var duration = 300;
4048
- var BackdropWrapper = import_styled18.default.div`
4186
+ var BackdropWrapper = import_styled19.default.div`
4049
4187
  position: fixed;
4050
4188
  top: 0;
4051
4189
  left: 0;
@@ -4055,7 +4193,7 @@ var BackdropWrapper = import_styled18.default.div`
4055
4193
  z-index: ${(props) => props.zIndex};
4056
4194
  overflow: hidden;
4057
4195
  `;
4058
- var ChildrenWrapper = import_styled18.default.div`
4196
+ var ChildrenWrapper = import_styled19.default.div`
4059
4197
  overflow: auto;
4060
4198
  height: 100%;
4061
4199
  `;
@@ -4073,7 +4211,7 @@ var Backdrop = (_a) => {
4073
4211
  ]);
4074
4212
  const { stage, shouldMount } = (0, import_transition_hook.useTransition)(isOpen, duration);
4075
4213
  use_prevent_scroll_default("html", isOpen);
4076
- return /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, shouldMount && /* @__PURE__ */ import_react24.default.createElement(
4214
+ return /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, shouldMount && /* @__PURE__ */ import_react25.default.createElement(
4077
4215
  BackdropWrapper,
4078
4216
  __spreadValues({
4079
4217
  backgroundColor,
@@ -4083,31 +4221,31 @@ var Backdrop = (_a) => {
4083
4221
  opacity: stage === "enter" ? 1 : 0
4084
4222
  }
4085
4223
  }, props),
4086
- /* @__PURE__ */ import_react24.default.createElement(ChildrenWrapper, null, children)
4224
+ /* @__PURE__ */ import_react25.default.createElement(ChildrenWrapper, null, children)
4087
4225
  ));
4088
4226
  };
4089
4227
  var backdrop_default = Backdrop;
4090
4228
 
4091
4229
  // src/components/modal/modal.tsx
4092
- var import_styled19 = __toESM(require("@emotion/styled"));
4230
+ var import_styled20 = __toESM(require("@emotion/styled"));
4093
4231
  var import_focus_trap_react = __toESM(require("focus-trap-react"));
4094
- var import_react25 = __toESM(require("react"));
4232
+ var import_react26 = __toESM(require("react"));
4095
4233
 
4096
4234
  // src/components/icon/available-icons/close.tsx
4097
4235
  var import_close = __toESM(require("@atlaskit/icon/core/close"));
4098
- var React24 = __toESM(require("react"));
4236
+ var React25 = __toESM(require("react"));
4099
4237
  function SvgClose() {
4100
- return /* @__PURE__ */ React24.createElement(import_close.default, { label: "", testId: "ads-refreshed-icon" });
4238
+ return /* @__PURE__ */ React25.createElement(import_close.default, { label: "", testId: "ads-refreshed-icon" });
4101
4239
  }
4102
4240
 
4103
4241
  // src/components/modal/modal.tsx
4104
4242
  var DEFAULT_MODAL_CARD_HEIGHT = "70vh";
4105
- var ContentWrapper = import_styled19.default.div`
4243
+ var ContentWrapper = import_styled20.default.div`
4106
4244
  display: grid;
4107
4245
  grid-template-rows: ${(props) => props.rows};
4108
4246
  position: relative;
4109
4247
  `;
4110
- var ModalCardWrapper = import_styled19.default.dialog`
4248
+ var ModalCardWrapper = import_styled20.default.dialog`
4111
4249
  top: ${(props) => getPlacement(getSizeValue(props.maxHeight), props.placement).top};
4112
4250
  background-color: ${getColorValue("overlay")};
4113
4251
  color: ${getColorValue("body")};
@@ -4130,27 +4268,27 @@ var ModalCardWrapper = import_styled19.default.dialog`
4130
4268
  background: var(--lns-color-overlay);
4131
4269
  }
4132
4270
  `;
4133
- var CloseIconSection = import_styled19.default.div`
4271
+ var CloseIconSection = import_styled20.default.div`
4134
4272
  position: absolute;
4135
4273
  top: ${u(1.5)};
4136
4274
  right: ${u(1.5)};
4137
4275
  z-index: 1;
4138
4276
  `;
4139
- var RightButtonsSection = import_styled19.default.div`
4277
+ var RightButtonsSection = import_styled20.default.div`
4140
4278
  margin-left: auto;
4141
4279
 
4142
4280
  * {
4143
4281
  vertical-align: middle;
4144
4282
  }
4145
4283
  `;
4146
- var TitleSection = import_styled19.default.div`
4284
+ var TitleSection = import_styled20.default.div`
4147
4285
  padding-left: var(--lns-space-xlarge);
4148
4286
  padding-right: var(--lns-space-xlarge);
4149
4287
  padding-top: var(--lns-space-xlarge);
4150
4288
  padding-bottom: ${(props) => props.bottom};
4151
4289
  flex-shrink: 0;
4152
4290
  `;
4153
- var ButtonsSection = import_styled19.default.div`
4291
+ var ButtonsSection = import_styled20.default.div`
4154
4292
  padding-left: var(--lns-space-xlarge);
4155
4293
  padding-right: var(--lns-space-xlarge);
4156
4294
  padding-bottom: var(--lns-space-xlarge);
@@ -4160,7 +4298,7 @@ var ButtonsSection = import_styled19.default.div`
4160
4298
  justify-content: space-between;
4161
4299
  align-items: center;
4162
4300
  `;
4163
- var ChildrenSection2 = import_styled19.default.div`
4301
+ var ChildrenSection2 = import_styled20.default.div`
4164
4302
  display: flex;
4165
4303
  flex-direction: column;
4166
4304
  overflow: auto;
@@ -4172,7 +4310,7 @@ var ChildrenSection2 = import_styled19.default.div`
4172
4310
  border-color: ${getColorValue("border")};
4173
4311
  border-width: ${(props) => props.hasDividers ? "1px 0" : "0"};
4174
4312
  `;
4175
- var ModalCardChildrenSection = import_styled19.default.div`
4313
+ var ModalCardChildrenSection = import_styled20.default.div`
4176
4314
  overflow: auto;
4177
4315
 
4178
4316
  ${(props) => getMaxHeight(props.maxHeight)};
@@ -4213,7 +4351,7 @@ var ModalCard = (_a) => {
4213
4351
  "ref",
4214
4352
  "removeClose"
4215
4353
  ]);
4216
- (0, import_react25.useEffect)(() => {
4354
+ (0, import_react26.useEffect)(() => {
4217
4355
  const keyListener = (e) => {
4218
4356
  if (e.key === "Escape") {
4219
4357
  e.preventDefault();
@@ -4228,7 +4366,7 @@ var ModalCard = (_a) => {
4228
4366
  };
4229
4367
  }, [isOpen, onCloseClick]);
4230
4368
  use_prevent_scroll_default("html", isOpen);
4231
- return /* @__PURE__ */ import_react25.default.createElement(
4369
+ return /* @__PURE__ */ import_react26.default.createElement(
4232
4370
  import_focus_trap_react.default,
4233
4371
  {
4234
4372
  active: isOpen,
@@ -4237,7 +4375,7 @@ var ModalCard = (_a) => {
4237
4375
  allowOutsideClick: true
4238
4376
  }
4239
4377
  },
4240
- /* @__PURE__ */ import_react25.default.createElement(
4378
+ /* @__PURE__ */ import_react26.default.createElement(
4241
4379
  ModalCardWrapper,
4242
4380
  __spreadValues({
4243
4381
  open: isOpen,
@@ -4251,15 +4389,15 @@ var ModalCard = (_a) => {
4251
4389
  "aria-modal": ariaModal,
4252
4390
  "aria-labelledby": ariaLabelledBy
4253
4391
  }, props),
4254
- !removeClose && onCloseClick && /* @__PURE__ */ import_react25.default.createElement(CloseIconSection, null, /* @__PURE__ */ import_react25.default.createElement(
4392
+ !removeClose && onCloseClick && /* @__PURE__ */ import_react26.default.createElement(CloseIconSection, null, /* @__PURE__ */ import_react26.default.createElement(
4255
4393
  icon_button_default,
4256
4394
  {
4257
4395
  altText: "Close",
4258
- icon: /* @__PURE__ */ import_react25.default.createElement(SvgClose, null),
4396
+ icon: /* @__PURE__ */ import_react26.default.createElement(SvgClose, null),
4259
4397
  onClick: onCloseClick
4260
4398
  }
4261
4399
  )),
4262
- /* @__PURE__ */ import_react25.default.createElement(
4400
+ /* @__PURE__ */ import_react26.default.createElement(
4263
4401
  ModalCardChildrenSection,
4264
4402
  {
4265
4403
  tabIndex: removeClose ? 0 : -1,
@@ -4270,7 +4408,7 @@ var ModalCard = (_a) => {
4270
4408
  )
4271
4409
  );
4272
4410
  };
4273
- var Modal = import_react25.default.forwardRef(
4411
+ var Modal = import_react26.default.forwardRef(
4274
4412
  (_a, ref) => {
4275
4413
  var _b = _a, {
4276
4414
  children,
@@ -4324,14 +4462,14 @@ var Modal = import_react25.default.forwardRef(
4324
4462
  }
4325
4463
  onCloseClick(e);
4326
4464
  };
4327
- return /* @__PURE__ */ import_react25.default.createElement(backdrop_default, __spreadValues({ isOpen, zIndex }, props), /* @__PURE__ */ import_react25.default.createElement(
4465
+ return /* @__PURE__ */ import_react26.default.createElement(backdrop_default, __spreadValues({ isOpen, zIndex }, props), /* @__PURE__ */ import_react26.default.createElement(
4328
4466
  container_default,
4329
4467
  {
4330
4468
  height: "100%",
4331
4469
  onClick: closeClickHandler,
4332
4470
  onKeyDown
4333
4471
  },
4334
- /* @__PURE__ */ import_react25.default.createElement(
4472
+ /* @__PURE__ */ import_react26.default.createElement(
4335
4473
  ModalCard,
4336
4474
  {
4337
4475
  ref,
@@ -4345,19 +4483,19 @@ var Modal = import_react25.default.forwardRef(
4345
4483
  ariaModal,
4346
4484
  ariaLabelledBy: (_a2 = ariaLabelledBy != null ? ariaLabelledBy : titleId) != null ? _a2 : void 0
4347
4485
  },
4348
- /* @__PURE__ */ import_react25.default.createElement(
4486
+ /* @__PURE__ */ import_react26.default.createElement(
4349
4487
  ContentWrapper,
4350
4488
  {
4351
4489
  rows: `${title ? "auto " : ""} ${children ? "1fr " : ""} ${hasButtons ? "auto" : ""}`
4352
4490
  },
4353
- title && /* @__PURE__ */ import_react25.default.createElement(
4491
+ title && /* @__PURE__ */ import_react26.default.createElement(
4354
4492
  TitleSection,
4355
4493
  {
4356
4494
  bottom: children ? "var(--lns-space-medium)" : "var(--lns-space-xlarge)"
4357
4495
  },
4358
- /* @__PURE__ */ import_react25.default.createElement(text_default, { htmlTag: "h1", variant: "title", id: titleId }, title)
4496
+ /* @__PURE__ */ import_react26.default.createElement(text_default, { htmlTag: "h1", variant: "title", id: titleId }, title)
4359
4497
  ),
4360
- /* @__PURE__ */ import_react25.default.createElement(
4498
+ /* @__PURE__ */ import_react26.default.createElement(
4361
4499
  ChildrenSection2,
4362
4500
  {
4363
4501
  noPadding,
@@ -4367,14 +4505,14 @@ var Modal = import_react25.default.forwardRef(
4367
4505
  },
4368
4506
  children && children
4369
4507
  ),
4370
- hasButtons && /* @__PURE__ */ import_react25.default.createElement(
4508
+ hasButtons && /* @__PURE__ */ import_react26.default.createElement(
4371
4509
  ButtonsSection,
4372
4510
  {
4373
4511
  top: children ? "var(--lns-space-xlarge)" : 0,
4374
4512
  hasDividers
4375
4513
  },
4376
4514
  alternativeButton,
4377
- /* @__PURE__ */ import_react25.default.createElement(RightButtonsSection, null, secondaryButton && /* @__PURE__ */ import_react25.default.createElement(spacer_default, { right: "small", isInline: true }, secondaryButton), mainButton)
4515
+ /* @__PURE__ */ import_react26.default.createElement(RightButtonsSection, null, secondaryButton && /* @__PURE__ */ import_react26.default.createElement(spacer_default, { right: "small", isInline: true }, secondaryButton), mainButton)
4378
4516
  )
4379
4517
  )
4380
4518
  )
@@ -4383,56 +4521,6 @@ var Modal = import_react25.default.forwardRef(
4383
4521
  );
4384
4522
  var modal_default = Modal;
4385
4523
 
4386
- // src/components/align/align.tsx
4387
- var import_styled20 = __toESM(require("@emotion/styled"));
4388
- var import_react26 = __toESM(require("react"));
4389
- var alignmentsPlaceItems = {
4390
- topLeft: "start",
4391
- topCenter: "start center",
4392
- topRight: "start end",
4393
- centerLeft: "center start",
4394
- center: "center",
4395
- centerRight: "center end",
4396
- bottomLeft: "end start",
4397
- bottomCenter: "end center",
4398
- bottomRight: "end"
4399
- };
4400
- var getPlaceItems = (alignment) => {
4401
- if (Array.isArray(alignment)) {
4402
- return alignment.map(
4403
- (alignmentArrayItem) => alignmentsPlaceItems[alignmentArrayItem]
4404
- );
4405
- }
4406
- if (typeof alignment === "object") {
4407
- const alignmentsPlaceItemsObject = {};
4408
- Object.entries(alignment).forEach(([key, value]) => {
4409
- return alignmentsPlaceItemsObject[key] = alignmentsPlaceItems[value];
4410
- });
4411
- return alignmentsPlaceItemsObject;
4412
- }
4413
- return alignmentsPlaceItems[alignment];
4414
- };
4415
- var AlignWrapper = import_styled20.default.div`
4416
- width: 100%;
4417
- height: 100%;
4418
- display: grid;
4419
- ${(props) => getResponsiveOneOf("place-items", getPlaceItems(props.alignment))};
4420
- `;
4421
- var Align = (_a) => {
4422
- var _b = _a, {
4423
- children,
4424
- alignment = "center",
4425
- htmlTag = "div"
4426
- } = _b, props = __objRest(_b, [
4427
- "children",
4428
- "alignment",
4429
- "htmlTag"
4430
- ]);
4431
- return /* @__PURE__ */ import_react26.default.createElement(AlignWrapper, __spreadValues({ alignment, as: htmlTag }, props), children);
4432
- };
4433
- var availableAlignments2 = Object.keys(alignmentsPlaceItems);
4434
- var align_default = Align;
4435
-
4436
4524
  // src/components/link/link.tsx
4437
4525
  var import_react27 = require("@emotion/react");
4438
4526
  var import_styled21 = __toESM(require("@emotion/styled"));
@@ -5553,6 +5641,7 @@ var Tooltip = (_a) => {
5553
5641
  });
5554
5642
  const [isOverTooltip, setIsOverTooltip] = (0, import_react41.useState)(false);
5555
5643
  const [isOpen, setIsOpen] = (0, import_react41.useState)(false);
5644
+ const [enterOrSpaceKeyDown, setEnterOrSpaceKeyDown] = (0, import_react41.useState)(false);
5556
5645
  const focusRef = (0, import_react41.useRef)();
5557
5646
  const isTooltipDisabled = !content || isDisabled;
5558
5647
  (0, import_react41.useEffect)(() => {
@@ -5564,7 +5653,7 @@ var Tooltip = (_a) => {
5564
5653
  if (show || keepTooltipOpenOnHover) {
5565
5654
  setIsOpen(true);
5566
5655
  }
5567
- if (!show && !keepTooltipOpenOnHover) {
5656
+ if (!show && !keepTooltipOpenOnHover && !enterOrSpaceKeyDown) {
5568
5657
  setIsOpen(false);
5569
5658
  }
5570
5659
  }, [
@@ -5574,15 +5663,18 @@ var Tooltip = (_a) => {
5574
5663
  isTooltipDisabled,
5575
5664
  keepOpen,
5576
5665
  setIsOpen,
5577
- show
5666
+ show,
5667
+ enterOrSpaceKeyDown
5578
5668
  ]);
5579
5669
  const handleFocus = () => {
5670
+ setEnterOrSpaceKeyDown(false);
5580
5671
  if (!isTooltipDisabled) {
5581
5672
  setIsOpen(true);
5582
5673
  }
5583
5674
  };
5584
5675
  const handleBlur = () => {
5585
5676
  setIsOpen(false);
5677
+ setEnterOrSpaceKeyDown(false);
5586
5678
  };
5587
5679
  (0, import_react41.useEffect)(() => {
5588
5680
  if (!isOpen) {
@@ -5610,6 +5702,9 @@ var Tooltip = (_a) => {
5610
5702
  return /* @__PURE__ */ import_react41.default.createElement(import_react41.default.Fragment, null, /* @__PURE__ */ import_react41.default.createElement(
5611
5703
  TooltipChildren,
5612
5704
  __spreadProps(__spreadValues(__spreadValues({}, triggerProps), hoverProps), {
5705
+ onClick: () => {
5706
+ setEnterOrSpaceKeyDown(true);
5707
+ },
5613
5708
  onFocus: handleFocus,
5614
5709
  onBlur: handleBlur,
5615
5710
  isInline,