@loomhq/lens 12.12.4 → 12.13.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.
- package/dist/cjs/icons/diagram-symbol-decision.js +45 -0
- package/dist/cjs/icons/diagram-symbol-decision.js.map +7 -0
- package/dist/cjs/icons/index.js +669 -656
- package/dist/cjs/icons/index.js.map +4 -4
- package/dist/cjs/index.js +162 -60
- package/dist/cjs/index.js.map +4 -4
- package/dist/esm/icons/chunk-VG3SGXWL.js +16 -0
- package/dist/esm/icons/chunk-VG3SGXWL.js.map +7 -0
- package/dist/esm/icons/diagram-symbol-decision.js +8 -0
- package/dist/esm/icons/diagram-symbol-decision.js.map +7 -0
- package/dist/esm/icons/index.js +63 -59
- package/dist/esm/index.js +191 -89
- package/dist/esm/index.js.map +4 -4
- package/dist/types/icons/diagram-symbol-decision.d.ts +3 -0
- package/dist/types/icons/diagram-symbol-decision.d.ts.map +1 -0
- package/dist/types/icons/index.d.ts +1 -0
- package/dist/types/icons/index.d.ts.map +1 -1
- package/dist/types/src/components/container/container.d.ts +1 -1
- package/dist/types/src/components/container/container.d.ts.map +1 -1
- package/dist/types/src/components/icon/available-icons/diagram-symbol-decision.d.ts +3 -0
- package/dist/types/src/components/icon/available-icons/diagram-symbol-decision.d.ts.map +1 -0
- package/dist/types/src/components/icon/available-icons/index.d.ts +1 -0
- package/dist/types/src/components/icon/available-icons/index.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/components/menu/menu.d.ts +2 -1
- package/dist/types/src/components/menu/menu.d.ts.map +1 -1
- package/dist/types/src/components/modal/modal.d.ts +3 -1
- package/dist/types/src/components/modal/modal.d.ts.map +1 -1
- package/dist/types/src/components/search-bar/search-bar.d.ts.map +1 -1
- package/dist/types/src/components/select/select.d.ts +22 -3
- package/dist/types/src/components/select/select.d.ts.map +1 -1
- package/dist/types/src/components/skeleton/skeleton.d.ts +1 -1
- package/dist/types/src/components/skeleton/skeleton.d.ts.map +1 -1
- package/dist/types/src/components/text/text.d.ts +7 -1
- package/dist/types/src/components/text/text.d.ts.map +1 -1
- package/dist/types/src/components/tooltip/tooltip.d.ts.map +1 -1
- package/package.json +5 -5
package/dist/cjs/index.js
CHANGED
|
@@ -1107,6 +1107,11 @@ var layoutDeprecatedWarning = `Lens: Layout component is deprecated. Use Arrange
|
|
|
1107
1107
|
|
|
1108
1108
|
// src/components/text/text.tsx
|
|
1109
1109
|
var dimAmount = 0.6;
|
|
1110
|
+
var FontFamily = /* @__PURE__ */ ((FontFamily2) => {
|
|
1111
|
+
FontFamily2["sans-serif"] = "inherit";
|
|
1112
|
+
FontFamily2["mono"] = "Atlassian Mono";
|
|
1113
|
+
return FontFamily2;
|
|
1114
|
+
})(FontFamily || {});
|
|
1110
1115
|
var variants = {
|
|
1111
1116
|
body: {
|
|
1112
1117
|
size: "body-md",
|
|
@@ -1137,6 +1142,7 @@ var TextWrapper = import_styled.default.span`
|
|
|
1137
1142
|
${(props) => props.fontSetting && `font-feature-settings: ${getFontSetting(props.fontSetting)}`};
|
|
1138
1143
|
${(props) => props.isDimmed && `opacity: ${dimAmount}`};
|
|
1139
1144
|
${(props) => props.alignment && `text-align: ${props.alignment}`};
|
|
1145
|
+
${(props) => props.overflowWrap && `overflow-wrap: ${props.overflowWrap};`};
|
|
1140
1146
|
${(props) => props.hasEllipsis && !props.ellipsisLines && `
|
|
1141
1147
|
overflow: hidden;
|
|
1142
1148
|
text-overflow: ellipsis;
|
|
@@ -1149,6 +1155,7 @@ var TextWrapper = import_styled.default.span`
|
|
|
1149
1155
|
-webkit-line-clamp: ${props.ellipsisLines};
|
|
1150
1156
|
`};
|
|
1151
1157
|
${(props) => !props.hasEllipsis && props.noWrap && "white-space: nowrap; overflow: hidden;"};
|
|
1158
|
+
${(props) => props.fontFamily && `font-family: ${FontFamily[props.fontFamily]};`};
|
|
1152
1159
|
${(props) => props.sizeMinMax && `
|
|
1153
1160
|
min-height: 0vw;
|
|
1154
1161
|
font-size: clamp(
|
|
@@ -1181,6 +1188,7 @@ var Text = (_a) => {
|
|
|
1181
1188
|
color,
|
|
1182
1189
|
isInline,
|
|
1183
1190
|
isDimmed,
|
|
1191
|
+
fontFamily = "sans-serif",
|
|
1184
1192
|
fontWeight = "regular",
|
|
1185
1193
|
hasEllipsis,
|
|
1186
1194
|
ellipsisLines,
|
|
@@ -1189,13 +1197,15 @@ var Text = (_a) => {
|
|
|
1189
1197
|
htmlTag = "span",
|
|
1190
1198
|
alignment,
|
|
1191
1199
|
sizeMinMax,
|
|
1192
|
-
fontSetting = "normal"
|
|
1200
|
+
fontSetting = "normal",
|
|
1201
|
+
overflowWrap
|
|
1193
1202
|
} = _b, props = __objRest(_b, [
|
|
1194
1203
|
"children",
|
|
1195
1204
|
"size",
|
|
1196
1205
|
"color",
|
|
1197
1206
|
"isInline",
|
|
1198
1207
|
"isDimmed",
|
|
1208
|
+
"fontFamily",
|
|
1199
1209
|
"fontWeight",
|
|
1200
1210
|
"hasEllipsis",
|
|
1201
1211
|
"ellipsisLines",
|
|
@@ -1204,7 +1214,8 @@ var Text = (_a) => {
|
|
|
1204
1214
|
"htmlTag",
|
|
1205
1215
|
"alignment",
|
|
1206
1216
|
"sizeMinMax",
|
|
1207
|
-
"fontSetting"
|
|
1217
|
+
"fontSetting",
|
|
1218
|
+
"overflowWrap"
|
|
1208
1219
|
]);
|
|
1209
1220
|
if (isDimmed) {
|
|
1210
1221
|
console.warn(textIsDimmedDeprecated);
|
|
@@ -1220,6 +1231,7 @@ var Text = (_a) => {
|
|
|
1220
1231
|
isInline,
|
|
1221
1232
|
isDimmed,
|
|
1222
1233
|
fontWeight: variant ? variants[variant].fontWeight : fontWeight,
|
|
1234
|
+
fontFamily,
|
|
1223
1235
|
hasEllipsis,
|
|
1224
1236
|
ellipsisLines,
|
|
1225
1237
|
noWrap,
|
|
@@ -1227,7 +1239,8 @@ var Text = (_a) => {
|
|
|
1227
1239
|
as: htmlTag,
|
|
1228
1240
|
alignment,
|
|
1229
1241
|
sizeMinMax,
|
|
1230
|
-
fontSetting
|
|
1242
|
+
fontSetting,
|
|
1243
|
+
overflowWrap
|
|
1231
1244
|
}, props),
|
|
1232
1245
|
children
|
|
1233
1246
|
);
|
|
@@ -3775,6 +3788,13 @@ function SvgCheck() {
|
|
|
3775
3788
|
return /* @__PURE__ */ React22.createElement(import_check_mark.default, { label: "", testId: "ads-refreshed-icon" });
|
|
3776
3789
|
}
|
|
3777
3790
|
|
|
3791
|
+
// src/components/icon/available-icons/close.tsx
|
|
3792
|
+
var import_close = __toESM(require("@atlaskit/icon/core/close"));
|
|
3793
|
+
var React23 = __toESM(require("react"));
|
|
3794
|
+
function SvgClose() {
|
|
3795
|
+
return /* @__PURE__ */ React23.createElement(import_close.default, { label: "", testId: "ads-refreshed-icon" });
|
|
3796
|
+
}
|
|
3797
|
+
|
|
3778
3798
|
// src/components/menu/menu.tsx
|
|
3779
3799
|
var menuPositions = {
|
|
3780
3800
|
left: "bottom-start",
|
|
@@ -3782,7 +3802,9 @@ var menuPositions = {
|
|
|
3782
3802
|
["topLeft"]: "top-start",
|
|
3783
3803
|
["topRight"]: "top-end",
|
|
3784
3804
|
leftSide: "left-start",
|
|
3785
|
-
rightSide: "right-start"
|
|
3805
|
+
rightSide: "right-start",
|
|
3806
|
+
rightTop: "right-start",
|
|
3807
|
+
leftTop: "left-start"
|
|
3786
3808
|
};
|
|
3787
3809
|
var MenuContainer = import_styled17.default.div`
|
|
3788
3810
|
background-color: ${getColorValue("overlay")};
|
|
@@ -3796,12 +3818,18 @@ var MenuContainer = import_styled17.default.div`
|
|
|
3796
3818
|
border: 1px solid ${getColorValue("border")};
|
|
3797
3819
|
${getShadow("medium")};
|
|
3798
3820
|
${getRadius("250")};
|
|
3821
|
+
overflow: hidden;
|
|
3822
|
+
`;
|
|
3823
|
+
var SearchWrapper = import_styled17.default.div`
|
|
3824
|
+
flex-shrink: 0;
|
|
3799
3825
|
`;
|
|
3800
3826
|
var MenuWrapper = import_styled17.default.ul`
|
|
3801
3827
|
padding: ${(props) => props.search ? `0 ${u(1.5)} ${u(1.5)} ${u(1.5)}` : u(1.5)};
|
|
3802
3828
|
list-style: none;
|
|
3803
3829
|
overflow: auto;
|
|
3804
3830
|
margin: 0;
|
|
3831
|
+
flex: 1 1 auto;
|
|
3832
|
+
min-height: 0;
|
|
3805
3833
|
`;
|
|
3806
3834
|
var MenuItemWrapper = import_styled17.default.li`
|
|
3807
3835
|
display: ${({ hidden }) => hidden ? "none" : "grid"};
|
|
@@ -3836,6 +3864,25 @@ var MenuItemWrapper = import_styled17.default.li`
|
|
|
3836
3864
|
width: calc(100% + ${u(3)});
|
|
3837
3865
|
}
|
|
3838
3866
|
`};
|
|
3867
|
+
|
|
3868
|
+
/* Default state: show checkmark for selected items */
|
|
3869
|
+
.check-icon {
|
|
3870
|
+
display: block;
|
|
3871
|
+
}
|
|
3872
|
+
|
|
3873
|
+
.deselect-icon {
|
|
3874
|
+
display: none;
|
|
3875
|
+
}
|
|
3876
|
+
|
|
3877
|
+
/* When highlighted (mouse hover OR keyboard navigation) and allowsDeselect: swap to X */
|
|
3878
|
+
${(props) => props.showDeselectIcon && props.isHighlighted ? `
|
|
3879
|
+
.check-icon {
|
|
3880
|
+
display: none;
|
|
3881
|
+
}
|
|
3882
|
+
.deselect-icon {
|
|
3883
|
+
display: block;
|
|
3884
|
+
}
|
|
3885
|
+
` : ""}
|
|
3839
3886
|
`;
|
|
3840
3887
|
var Image2 = import_styled17.default.img`
|
|
3841
3888
|
height: 100%;
|
|
@@ -3854,7 +3901,8 @@ var MenuItem = (_a) => {
|
|
|
3854
3901
|
hasDivider,
|
|
3855
3902
|
children,
|
|
3856
3903
|
menuItemRole,
|
|
3857
|
-
keyboardMove
|
|
3904
|
+
keyboardMove,
|
|
3905
|
+
showDeselectIcon = false
|
|
3858
3906
|
} = _b, props = __objRest(_b, [
|
|
3859
3907
|
"isDisabled",
|
|
3860
3908
|
"isHighlighted",
|
|
@@ -3863,7 +3911,8 @@ var MenuItem = (_a) => {
|
|
|
3863
3911
|
"hasDivider",
|
|
3864
3912
|
"children",
|
|
3865
3913
|
"menuItemRole",
|
|
3866
|
-
"keyboardMove"
|
|
3914
|
+
"keyboardMove",
|
|
3915
|
+
"showDeselectIcon"
|
|
3867
3916
|
]);
|
|
3868
3917
|
const checkColumn = isSelected ? "auto" : "";
|
|
3869
3918
|
const iconColumn = icon ? "auto" : "";
|
|
@@ -3881,11 +3930,12 @@ var MenuItem = (_a) => {
|
|
|
3881
3930
|
columns,
|
|
3882
3931
|
hasDivider,
|
|
3883
3932
|
tabIndex: isDisabled ? -1 : 0,
|
|
3884
|
-
"data-highlighted": isHighlighted || void 0
|
|
3933
|
+
"data-highlighted": isHighlighted || void 0,
|
|
3934
|
+
showDeselectIcon
|
|
3885
3935
|
}, updatedProps),
|
|
3886
3936
|
icon && (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: "", isDisabled }))) : /* @__PURE__ */ import_react23.default.createElement(icon_default, { icon, color })),
|
|
3887
3937
|
/* @__PURE__ */ import_react23.default.createElement(text_default, { color, hasEllipsis: true }, children),
|
|
3888
|
-
isSelected && /* @__PURE__ */ import_react23.default.createElement(icon_default, { icon: /* @__PURE__ */ import_react23.default.createElement(SvgCheck, null), color })
|
|
3938
|
+
isSelected && /* @__PURE__ */ import_react23.default.createElement(import_react23.default.Fragment, null, /* @__PURE__ */ import_react23.default.createElement("span", { className: "check-icon", "aria-hidden": "true" }, /* @__PURE__ */ import_react23.default.createElement(icon_default, { icon: /* @__PURE__ */ import_react23.default.createElement(SvgCheck, null), color })), /* @__PURE__ */ import_react23.default.createElement("span", { className: "deselect-icon", "aria-hidden": "true" }, /* @__PURE__ */ import_react23.default.createElement(icon_default, { icon: /* @__PURE__ */ import_react23.default.createElement(SvgClose, null), color })))
|
|
3889
3939
|
);
|
|
3890
3940
|
};
|
|
3891
3941
|
var Menu = (_a) => {
|
|
@@ -3922,7 +3972,7 @@ var Menu = (_a) => {
|
|
|
3922
3972
|
zIndex,
|
|
3923
3973
|
position
|
|
3924
3974
|
}, updatedDownshiftMenuProps), props),
|
|
3925
|
-
search && search,
|
|
3975
|
+
search && /* @__PURE__ */ import_react23.default.createElement(SearchWrapper, null, search),
|
|
3926
3976
|
/* @__PURE__ */ import_react23.default.createElement(MenuWrapper, { search }, children)
|
|
3927
3977
|
);
|
|
3928
3978
|
};
|
|
@@ -3934,9 +3984,9 @@ var import_react24 = __toESM(require("react"));
|
|
|
3934
3984
|
|
|
3935
3985
|
// src/components/icon/available-icons/search.tsx
|
|
3936
3986
|
var import_search = __toESM(require("@atlaskit/icon/core/search"));
|
|
3937
|
-
var
|
|
3987
|
+
var React25 = __toESM(require("react"));
|
|
3938
3988
|
function SvgSearch() {
|
|
3939
|
-
return /* @__PURE__ */
|
|
3989
|
+
return /* @__PURE__ */ React25.createElement(import_search.default, { label: "", testId: "ads-refreshed-icon" });
|
|
3940
3990
|
}
|
|
3941
3991
|
|
|
3942
3992
|
// src/components/search-bar/search-bar.tsx
|
|
@@ -3953,22 +4003,31 @@ var SearchBar = ({
|
|
|
3953
4003
|
onChange,
|
|
3954
4004
|
getInputProps
|
|
3955
4005
|
}) => {
|
|
4006
|
+
const inputProps = getInputProps ? getInputProps({
|
|
4007
|
+
placeholder,
|
|
4008
|
+
value,
|
|
4009
|
+
type: "text"
|
|
4010
|
+
}) : { placeholder, value, type: "text" };
|
|
4011
|
+
const handleChange = (e) => {
|
|
4012
|
+
if (inputProps.onChange) {
|
|
4013
|
+
inputProps.onChange(e);
|
|
4014
|
+
}
|
|
4015
|
+
onChange(e);
|
|
4016
|
+
};
|
|
3956
4017
|
return /* @__PURE__ */ import_react24.default.createElement(SearchBarContainer, null, /* @__PURE__ */ import_react24.default.createElement(
|
|
3957
4018
|
text_input_default,
|
|
3958
|
-
__spreadValues({
|
|
4019
|
+
__spreadProps(__spreadValues({
|
|
3959
4020
|
"aria-label": ariaLabel,
|
|
3960
4021
|
icon: /* @__PURE__ */ import_react24.default.createElement(SvgSearch, null)
|
|
3961
|
-
},
|
|
3962
|
-
|
|
3963
|
-
|
|
3964
|
-
onChange,
|
|
3965
|
-
type: "text"
|
|
3966
|
-
}))
|
|
4022
|
+
}, inputProps), {
|
|
4023
|
+
onChange: handleChange
|
|
4024
|
+
})
|
|
3967
4025
|
));
|
|
3968
4026
|
};
|
|
3969
4027
|
var search_bar_default = SearchBar;
|
|
3970
4028
|
|
|
3971
4029
|
// src/components/select/select.tsx
|
|
4030
|
+
var SIDE_MENU_PADDING_UNITS = 2;
|
|
3972
4031
|
var SelectWrapper = import_styled19.default.div`
|
|
3973
4032
|
position: relative;
|
|
3974
4033
|
`;
|
|
@@ -4194,7 +4253,7 @@ var getSelectedOption = (value, options) => {
|
|
|
4194
4253
|
return options.find((item) => item.value === value);
|
|
4195
4254
|
}
|
|
4196
4255
|
};
|
|
4197
|
-
var renderOption = (item, index, selectedItem, selectedOptionValue, highlightedIndex, getItemProps, keyboardMove, setKeyboardMove) => {
|
|
4256
|
+
var renderOption = (item, index, selectedItem, selectedOptionValue, highlightedIndex, getItemProps, keyboardMove, setKeyboardMove, allowsDeselect = false) => {
|
|
4198
4257
|
const isSelected = !selectedItem && item.value === selectedOptionValue || selectedItem && selectedItem.value === item.value;
|
|
4199
4258
|
return /* @__PURE__ */ import_react25.default.createElement(
|
|
4200
4259
|
MenuItem,
|
|
@@ -4219,7 +4278,8 @@ var renderOption = (item, index, selectedItem, selectedOptionValue, highlightedI
|
|
|
4219
4278
|
hasDivider: item.hasDivider,
|
|
4220
4279
|
isHighlighted: highlightedIndex === index,
|
|
4221
4280
|
keyboardMove: keyboardMove && highlightedIndex === index,
|
|
4222
|
-
isSelected
|
|
4281
|
+
isSelected,
|
|
4282
|
+
showDeselectIcon: allowsDeselect && isSelected
|
|
4223
4283
|
}),
|
|
4224
4284
|
item.title
|
|
4225
4285
|
);
|
|
@@ -4233,7 +4293,8 @@ var SelectMenu = (_a) => {
|
|
|
4233
4293
|
getItemProps,
|
|
4234
4294
|
search,
|
|
4235
4295
|
keyboardMove,
|
|
4236
|
-
setKeyboardMove
|
|
4296
|
+
setKeyboardMove,
|
|
4297
|
+
allowsDeselect
|
|
4237
4298
|
} = _b, menuProps = __objRest(_b, [
|
|
4238
4299
|
"options",
|
|
4239
4300
|
"selectedItem",
|
|
@@ -4242,7 +4303,8 @@ var SelectMenu = (_a) => {
|
|
|
4242
4303
|
"getItemProps",
|
|
4243
4304
|
"search",
|
|
4244
4305
|
"keyboardMove",
|
|
4245
|
-
"setKeyboardMove"
|
|
4306
|
+
"setKeyboardMove",
|
|
4307
|
+
"allowsDeselect"
|
|
4246
4308
|
]);
|
|
4247
4309
|
if (!isGrouped(options)) {
|
|
4248
4310
|
return /* @__PURE__ */ import_react25.default.createElement(menu_default, __spreadValues({ search }, menuProps), options.map(
|
|
@@ -4254,7 +4316,8 @@ var SelectMenu = (_a) => {
|
|
|
4254
4316
|
highlightedIndex,
|
|
4255
4317
|
getItemProps,
|
|
4256
4318
|
keyboardMove,
|
|
4257
|
-
setKeyboardMove
|
|
4319
|
+
setKeyboardMove,
|
|
4320
|
+
allowsDeselect
|
|
4258
4321
|
)
|
|
4259
4322
|
));
|
|
4260
4323
|
}
|
|
@@ -4270,7 +4333,8 @@ var SelectMenu = (_a) => {
|
|
|
4270
4333
|
highlightedIndex,
|
|
4271
4334
|
getItemProps,
|
|
4272
4335
|
keyboardMove,
|
|
4273
|
-
setKeyboardMove
|
|
4336
|
+
setKeyboardMove,
|
|
4337
|
+
allowsDeselect
|
|
4274
4338
|
);
|
|
4275
4339
|
})));
|
|
4276
4340
|
}));
|
|
@@ -4295,7 +4359,8 @@ var Select = (_a) => {
|
|
|
4295
4359
|
trigger,
|
|
4296
4360
|
hasError,
|
|
4297
4361
|
errorMessage = "Oops, that didn't work.",
|
|
4298
|
-
search
|
|
4362
|
+
search,
|
|
4363
|
+
allowsDeselect = false
|
|
4299
4364
|
} = _b, props = __objRest(_b, [
|
|
4300
4365
|
"container",
|
|
4301
4366
|
"onChange",
|
|
@@ -4315,26 +4380,47 @@ var Select = (_a) => {
|
|
|
4315
4380
|
"trigger",
|
|
4316
4381
|
"hasError",
|
|
4317
4382
|
"errorMessage",
|
|
4318
|
-
"search"
|
|
4383
|
+
"search",
|
|
4384
|
+
"allowsDeselect"
|
|
4319
4385
|
]);
|
|
4386
|
+
var _a2;
|
|
4320
4387
|
const environment = getDownshiftEnvironment(container);
|
|
4321
4388
|
const [downshiftIsOpen, setDownshiftIsOpen] = (0, import_react25.useState)(false);
|
|
4322
4389
|
const [keyboardMove, setKeyboardMove] = (0, import_react25.useState)(false);
|
|
4323
4390
|
const [searchValue, setSearchValue] = (0, import_react25.useState)("");
|
|
4324
4391
|
const onSearchChange = (e) => {
|
|
4392
|
+
var _a3;
|
|
4325
4393
|
const value = e.target.value;
|
|
4326
4394
|
setSearchValue(value);
|
|
4395
|
+
(_a3 = search == null ? void 0 : search.onSearch) == null ? void 0 : _a3.call(search, value);
|
|
4327
4396
|
};
|
|
4328
4397
|
const [selectedItem, setSelectedItem] = (0, import_react25.useState)(
|
|
4329
|
-
getSelectedOption(selectedOptionValue, options)
|
|
4398
|
+
(_a2 = getSelectedOption(selectedOptionValue, options)) != null ? _a2 : null
|
|
4330
4399
|
);
|
|
4331
4400
|
const onDownshiftChange = (item) => {
|
|
4332
|
-
|
|
4333
|
-
|
|
4401
|
+
const isCurrentlySelected = selectedItem && item && item.value === selectedItem.value || !selectedItem && item && item.value === selectedOptionValue;
|
|
4402
|
+
if (allowsDeselect && isCurrentlySelected) {
|
|
4403
|
+
setSelectedItem(null);
|
|
4404
|
+
setDownshiftIsOpen(false);
|
|
4405
|
+
onChange && onChange(null);
|
|
4406
|
+
} else {
|
|
4407
|
+
setSelectedItem(item != null ? item : null);
|
|
4408
|
+
if (item) {
|
|
4409
|
+
onChange && onChange(item);
|
|
4410
|
+
} else if (allowsDeselect) {
|
|
4411
|
+
onChange && onChange(null);
|
|
4412
|
+
}
|
|
4413
|
+
}
|
|
4414
|
+
};
|
|
4415
|
+
const onStateChange = (changes) => {
|
|
4416
|
+
if (changes.isOpen !== void 0) {
|
|
4417
|
+
setDownshiftIsOpen(changes.isOpen);
|
|
4418
|
+
}
|
|
4334
4419
|
};
|
|
4335
4420
|
const downshiftProps = {
|
|
4336
4421
|
itemToString: (item) => item ? item.value : "",
|
|
4337
4422
|
onChange: onDownshiftChange,
|
|
4423
|
+
onStateChange,
|
|
4338
4424
|
onOuterClick,
|
|
4339
4425
|
environment,
|
|
4340
4426
|
selectedItem,
|
|
@@ -4343,34 +4429,52 @@ var Select = (_a) => {
|
|
|
4343
4429
|
if (environment) {
|
|
4344
4430
|
downshiftProps.environment = environment;
|
|
4345
4431
|
}
|
|
4432
|
+
const isSideMenu = menuPosition === "leftTop" || menuPosition === "rightTop";
|
|
4346
4433
|
const { layerProps, triggerProps, renderLayer, triggerBounds } = (0, import_react_laag.useLayer)({
|
|
4347
4434
|
isOpen: downshiftIsOpen,
|
|
4348
4435
|
container,
|
|
4349
4436
|
ResizeObserver: import_resize_observer_polyfill.default,
|
|
4350
4437
|
placement: menuPositions[menuPosition],
|
|
4351
|
-
auto:
|
|
4352
|
-
snap:
|
|
4438
|
+
auto: !isSideMenu,
|
|
4439
|
+
snap: !isSideMenu,
|
|
4353
4440
|
triggerOffset
|
|
4354
4441
|
});
|
|
4442
|
+
const effectiveMenuMaxHeight = (0, import_react25.useMemo)(() => {
|
|
4443
|
+
if (isSideMenu && typeof window !== "undefined" && triggerBounds) {
|
|
4444
|
+
const viewportHeight = window.innerHeight;
|
|
4445
|
+
const availableHeight = viewportHeight - triggerBounds.top;
|
|
4446
|
+
const paddingReserve = SIDE_MENU_PADDING_UNITS * unit;
|
|
4447
|
+
const calculatedMaxHeight = Math.floor(
|
|
4448
|
+
Math.max(0, availableHeight - paddingReserve) / unit
|
|
4449
|
+
);
|
|
4450
|
+
return menuMaxHeight ? Math.min(menuMaxHeight, calculatedMaxHeight) : calculatedMaxHeight;
|
|
4451
|
+
}
|
|
4452
|
+
return menuMaxHeight;
|
|
4453
|
+
}, [isSideMenu, menuMaxHeight, triggerBounds]);
|
|
4355
4454
|
(0, import_react25.useEffect)(() => {
|
|
4356
|
-
|
|
4357
|
-
|
|
4358
|
-
options
|
|
4359
|
-
);
|
|
4455
|
+
var _a3;
|
|
4456
|
+
const expectedSelectedItem = (_a3 = getSelectedOption(selectedOptionValue, options)) != null ? _a3 : null;
|
|
4360
4457
|
if ((expectedSelectedItem == null ? void 0 : expectedSelectedItem.value) !== (selectedItem == null ? void 0 : selectedItem.value)) {
|
|
4361
4458
|
setSelectedItem(expectedSelectedItem);
|
|
4362
4459
|
}
|
|
4363
4460
|
}, [selectedOptionValue, options, selectedItem]);
|
|
4364
4461
|
(0, import_react25.useEffect)(() => {
|
|
4462
|
+
var _a3;
|
|
4365
4463
|
onOpenChange && onOpenChange(downshiftIsOpen);
|
|
4366
|
-
|
|
4464
|
+
if (!downshiftIsOpen) {
|
|
4465
|
+
setSearchValue("");
|
|
4466
|
+
(_a3 = search == null ? void 0 : search.onSearch) == null ? void 0 : _a3.call(search, "");
|
|
4467
|
+
}
|
|
4468
|
+
}, [downshiftIsOpen, onOpenChange, search == null ? void 0 : search.onSearch]);
|
|
4367
4469
|
const stateReducer = (state, changes) => {
|
|
4368
|
-
if (changes.
|
|
4369
|
-
|
|
4370
|
-
|
|
4371
|
-
return { isOpen: false };
|
|
4470
|
+
if (allowsDeselect && changes.type === import_downshift.default.stateChangeTypes.clickItem && changes.selectedItem) {
|
|
4471
|
+
const isCurrentlySelected = state.selectedItem && changes.selectedItem.value === state.selectedItem.value || !state.selectedItem && changes.selectedItem.value === selectedOptionValue;
|
|
4472
|
+
if (isCurrentlySelected) {
|
|
4473
|
+
return __spreadProps(__spreadValues({}, changes), { selectedItem: null, isOpen: false });
|
|
4372
4474
|
}
|
|
4373
|
-
|
|
4475
|
+
}
|
|
4476
|
+
if (changes.type === import_downshift.default.stateChangeTypes.keyDownEscape) {
|
|
4477
|
+
return { isOpen: false };
|
|
4374
4478
|
}
|
|
4375
4479
|
return changes;
|
|
4376
4480
|
};
|
|
@@ -4392,6 +4496,9 @@ var Select = (_a) => {
|
|
|
4392
4496
|
};
|
|
4393
4497
|
options = (0, import_react25.useMemo)(() => {
|
|
4394
4498
|
if (search) {
|
|
4499
|
+
if (search.onSearch) {
|
|
4500
|
+
return options;
|
|
4501
|
+
}
|
|
4395
4502
|
if (isGrouped(options)) {
|
|
4396
4503
|
let filteredGroups;
|
|
4397
4504
|
if (search.searchType === "startsWith") {
|
|
@@ -4424,7 +4531,7 @@ var Select = (_a) => {
|
|
|
4424
4531
|
);
|
|
4425
4532
|
}
|
|
4426
4533
|
return options;
|
|
4427
|
-
}, [options, searchValue, search]);
|
|
4534
|
+
}, [options, searchValue, search == null ? void 0 : search.onSearch, search == null ? void 0 : search.searchType]);
|
|
4428
4535
|
return /* @__PURE__ */ import_react25.default.createElement(SelectWrapper, __spreadValues({}, props), /* @__PURE__ */ import_react25.default.createElement(import_downshift.default, __spreadProps(__spreadValues({}, downshiftProps), { stateReducer }), ({
|
|
4429
4536
|
getItemProps,
|
|
4430
4537
|
getInputProps,
|
|
@@ -4488,7 +4595,7 @@ var Select = (_a) => {
|
|
|
4488
4595
|
position: menuPosition,
|
|
4489
4596
|
downshiftMenuProps: () => getMenuProps({ onKeyDown }),
|
|
4490
4597
|
maxWidth: menuMaxWidth,
|
|
4491
|
-
maxHeight:
|
|
4598
|
+
maxHeight: effectiveMenuMaxHeight,
|
|
4492
4599
|
minWidth: menuMinWidth,
|
|
4493
4600
|
search: search && /* @__PURE__ */ import_react25.default.createElement(
|
|
4494
4601
|
search_bar_default,
|
|
@@ -4501,7 +4608,8 @@ var Select = (_a) => {
|
|
|
4501
4608
|
}
|
|
4502
4609
|
),
|
|
4503
4610
|
keyboardMove,
|
|
4504
|
-
setKeyboardMove
|
|
4611
|
+
setKeyboardMove,
|
|
4612
|
+
allowsDeselect
|
|
4505
4613
|
}
|
|
4506
4614
|
)
|
|
4507
4615
|
)
|
|
@@ -4632,15 +4740,6 @@ var backdrop_default = Backdrop;
|
|
|
4632
4740
|
var import_styled21 = __toESM(require("@emotion/styled"));
|
|
4633
4741
|
var import_focus_trap_react = __toESM(require("focus-trap-react"));
|
|
4634
4742
|
var import_react28 = __toESM(require("react"));
|
|
4635
|
-
|
|
4636
|
-
// src/components/icon/available-icons/close.tsx
|
|
4637
|
-
var import_close = __toESM(require("@atlaskit/icon/core/close"));
|
|
4638
|
-
var React28 = __toESM(require("react"));
|
|
4639
|
-
function SvgClose() {
|
|
4640
|
-
return /* @__PURE__ */ React28.createElement(import_close.default, { label: "", testId: "ads-refreshed-icon" });
|
|
4641
|
-
}
|
|
4642
|
-
|
|
4643
|
-
// src/components/modal/modal.tsx
|
|
4644
4743
|
var DEFAULT_MODAL_CARD_HEIGHT = "70vh";
|
|
4645
4744
|
var ContentWrapper = import_styled21.default.div`
|
|
4646
4745
|
display: grid;
|
|
@@ -4740,7 +4839,8 @@ var ModalCard = (_a) => {
|
|
|
4740
4839
|
ariaLabelledBy,
|
|
4741
4840
|
ref,
|
|
4742
4841
|
removeClose,
|
|
4743
|
-
initialFocus
|
|
4842
|
+
initialFocus,
|
|
4843
|
+
closeOnEscape = true
|
|
4744
4844
|
} = _b, props = __objRest(_b, [
|
|
4745
4845
|
"children",
|
|
4746
4846
|
"onCloseClick",
|
|
@@ -4753,10 +4853,11 @@ var ModalCard = (_a) => {
|
|
|
4753
4853
|
"ariaLabelledBy",
|
|
4754
4854
|
"ref",
|
|
4755
4855
|
"removeClose",
|
|
4756
|
-
"initialFocus"
|
|
4856
|
+
"initialFocus",
|
|
4857
|
+
"closeOnEscape"
|
|
4757
4858
|
]);
|
|
4758
4859
|
const keyListener = (e) => {
|
|
4759
|
-
if (e.key === "Escape") {
|
|
4860
|
+
if (e.key === "Escape" && closeOnEscape) {
|
|
4760
4861
|
e.preventDefault();
|
|
4761
4862
|
if (!removeClose) {
|
|
4762
4863
|
onCloseClick(e);
|
|
@@ -6668,7 +6769,7 @@ var Tooltip = (_a) => {
|
|
|
6668
6769
|
content,
|
|
6669
6770
|
shortcut,
|
|
6670
6771
|
placement = "topCenter",
|
|
6671
|
-
keepOpen,
|
|
6772
|
+
keepOpen = true,
|
|
6672
6773
|
triggerOffset = 4,
|
|
6673
6774
|
maxWidth = 26,
|
|
6674
6775
|
isInline = true,
|
|
@@ -6745,12 +6846,13 @@ var Tooltip = (_a) => {
|
|
|
6745
6846
|
const keyListener = (e) => {
|
|
6746
6847
|
if (e.key === "Escape") {
|
|
6747
6848
|
e.preventDefault();
|
|
6849
|
+
e.stopPropagation();
|
|
6748
6850
|
handleBlur();
|
|
6749
6851
|
}
|
|
6750
6852
|
};
|
|
6751
|
-
window.addEventListener("keydown", keyListener);
|
|
6853
|
+
window.addEventListener("keydown", keyListener, true);
|
|
6752
6854
|
return () => {
|
|
6753
|
-
window.removeEventListener("keydown", keyListener);
|
|
6855
|
+
window.removeEventListener("keydown", keyListener, true);
|
|
6754
6856
|
};
|
|
6755
6857
|
}, [isOpen, setIsOpen]);
|
|
6756
6858
|
const { layerProps, triggerProps, renderLayer } = (0, import_react_laag4.useLayer)({
|
|
@@ -7298,7 +7400,7 @@ var Logo = (_a) => {
|
|
|
7298
7400
|
maxWidth,
|
|
7299
7401
|
symbolColor,
|
|
7300
7402
|
wordmarkColor = "body",
|
|
7301
|
-
brand = "
|
|
7403
|
+
brand = "product",
|
|
7302
7404
|
customId = ""
|
|
7303
7405
|
} = _b, props = __objRest(_b, [
|
|
7304
7406
|
"variant",
|