@loomhq/lens 12.12.4 → 12.12.5
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 +99 -41
- package/dist/cjs/index.js.map +4 -4
- package/dist/esm/index.js +128 -70
- package/dist/esm/index.js.map +4 -4
- 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/select/select.d.ts +14 -1
- package/dist/types/src/components/select/select.d.ts.map +1 -1
- package/dist/types/src/components/text/text.d.ts +6 -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 +3 -3
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",
|
|
@@ -1149,6 +1154,7 @@ var TextWrapper = import_styled.default.span`
|
|
|
1149
1154
|
-webkit-line-clamp: ${props.ellipsisLines};
|
|
1150
1155
|
`};
|
|
1151
1156
|
${(props) => !props.hasEllipsis && props.noWrap && "white-space: nowrap; overflow: hidden;"};
|
|
1157
|
+
${(props) => props.fontFamily && `font-family: ${FontFamily[props.fontFamily]};`};
|
|
1152
1158
|
${(props) => props.sizeMinMax && `
|
|
1153
1159
|
min-height: 0vw;
|
|
1154
1160
|
font-size: clamp(
|
|
@@ -1181,6 +1187,7 @@ var Text = (_a) => {
|
|
|
1181
1187
|
color,
|
|
1182
1188
|
isInline,
|
|
1183
1189
|
isDimmed,
|
|
1190
|
+
fontFamily = "sans-serif",
|
|
1184
1191
|
fontWeight = "regular",
|
|
1185
1192
|
hasEllipsis,
|
|
1186
1193
|
ellipsisLines,
|
|
@@ -1196,6 +1203,7 @@ var Text = (_a) => {
|
|
|
1196
1203
|
"color",
|
|
1197
1204
|
"isInline",
|
|
1198
1205
|
"isDimmed",
|
|
1206
|
+
"fontFamily",
|
|
1199
1207
|
"fontWeight",
|
|
1200
1208
|
"hasEllipsis",
|
|
1201
1209
|
"ellipsisLines",
|
|
@@ -1220,6 +1228,7 @@ var Text = (_a) => {
|
|
|
1220
1228
|
isInline,
|
|
1221
1229
|
isDimmed,
|
|
1222
1230
|
fontWeight: variant ? variants[variant].fontWeight : fontWeight,
|
|
1231
|
+
fontFamily,
|
|
1223
1232
|
hasEllipsis,
|
|
1224
1233
|
ellipsisLines,
|
|
1225
1234
|
noWrap,
|
|
@@ -3775,6 +3784,13 @@ function SvgCheck() {
|
|
|
3775
3784
|
return /* @__PURE__ */ React22.createElement(import_check_mark.default, { label: "", testId: "ads-refreshed-icon" });
|
|
3776
3785
|
}
|
|
3777
3786
|
|
|
3787
|
+
// src/components/icon/available-icons/close.tsx
|
|
3788
|
+
var import_close = __toESM(require("@atlaskit/icon/core/close"));
|
|
3789
|
+
var React23 = __toESM(require("react"));
|
|
3790
|
+
function SvgClose() {
|
|
3791
|
+
return /* @__PURE__ */ React23.createElement(import_close.default, { label: "", testId: "ads-refreshed-icon" });
|
|
3792
|
+
}
|
|
3793
|
+
|
|
3778
3794
|
// src/components/menu/menu.tsx
|
|
3779
3795
|
var menuPositions = {
|
|
3780
3796
|
left: "bottom-start",
|
|
@@ -3836,6 +3852,25 @@ var MenuItemWrapper = import_styled17.default.li`
|
|
|
3836
3852
|
width: calc(100% + ${u(3)});
|
|
3837
3853
|
}
|
|
3838
3854
|
`};
|
|
3855
|
+
|
|
3856
|
+
/* Default state: show checkmark for selected items */
|
|
3857
|
+
.check-icon {
|
|
3858
|
+
display: block;
|
|
3859
|
+
}
|
|
3860
|
+
|
|
3861
|
+
.deselect-icon {
|
|
3862
|
+
display: none;
|
|
3863
|
+
}
|
|
3864
|
+
|
|
3865
|
+
/* When highlighted (mouse hover OR keyboard navigation) and allowsDeselect: swap to X */
|
|
3866
|
+
${(props) => props.showDeselectIcon && props.isHighlighted ? `
|
|
3867
|
+
.check-icon {
|
|
3868
|
+
display: none;
|
|
3869
|
+
}
|
|
3870
|
+
.deselect-icon {
|
|
3871
|
+
display: block;
|
|
3872
|
+
}
|
|
3873
|
+
` : ""}
|
|
3839
3874
|
`;
|
|
3840
3875
|
var Image2 = import_styled17.default.img`
|
|
3841
3876
|
height: 100%;
|
|
@@ -3854,7 +3889,8 @@ var MenuItem = (_a) => {
|
|
|
3854
3889
|
hasDivider,
|
|
3855
3890
|
children,
|
|
3856
3891
|
menuItemRole,
|
|
3857
|
-
keyboardMove
|
|
3892
|
+
keyboardMove,
|
|
3893
|
+
showDeselectIcon = false
|
|
3858
3894
|
} = _b, props = __objRest(_b, [
|
|
3859
3895
|
"isDisabled",
|
|
3860
3896
|
"isHighlighted",
|
|
@@ -3863,7 +3899,8 @@ var MenuItem = (_a) => {
|
|
|
3863
3899
|
"hasDivider",
|
|
3864
3900
|
"children",
|
|
3865
3901
|
"menuItemRole",
|
|
3866
|
-
"keyboardMove"
|
|
3902
|
+
"keyboardMove",
|
|
3903
|
+
"showDeselectIcon"
|
|
3867
3904
|
]);
|
|
3868
3905
|
const checkColumn = isSelected ? "auto" : "";
|
|
3869
3906
|
const iconColumn = icon ? "auto" : "";
|
|
@@ -3881,11 +3918,12 @@ var MenuItem = (_a) => {
|
|
|
3881
3918
|
columns,
|
|
3882
3919
|
hasDivider,
|
|
3883
3920
|
tabIndex: isDisabled ? -1 : 0,
|
|
3884
|
-
"data-highlighted": isHighlighted || void 0
|
|
3921
|
+
"data-highlighted": isHighlighted || void 0,
|
|
3922
|
+
showDeselectIcon
|
|
3885
3923
|
}, updatedProps),
|
|
3886
3924
|
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
3925
|
/* @__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 })
|
|
3926
|
+
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
3927
|
);
|
|
3890
3928
|
};
|
|
3891
3929
|
var Menu = (_a) => {
|
|
@@ -3934,9 +3972,9 @@ var import_react24 = __toESM(require("react"));
|
|
|
3934
3972
|
|
|
3935
3973
|
// src/components/icon/available-icons/search.tsx
|
|
3936
3974
|
var import_search = __toESM(require("@atlaskit/icon/core/search"));
|
|
3937
|
-
var
|
|
3975
|
+
var React25 = __toESM(require("react"));
|
|
3938
3976
|
function SvgSearch() {
|
|
3939
|
-
return /* @__PURE__ */
|
|
3977
|
+
return /* @__PURE__ */ React25.createElement(import_search.default, { label: "", testId: "ads-refreshed-icon" });
|
|
3940
3978
|
}
|
|
3941
3979
|
|
|
3942
3980
|
// src/components/search-bar/search-bar.tsx
|
|
@@ -4194,7 +4232,7 @@ var getSelectedOption = (value, options) => {
|
|
|
4194
4232
|
return options.find((item) => item.value === value);
|
|
4195
4233
|
}
|
|
4196
4234
|
};
|
|
4197
|
-
var renderOption = (item, index, selectedItem, selectedOptionValue, highlightedIndex, getItemProps, keyboardMove, setKeyboardMove) => {
|
|
4235
|
+
var renderOption = (item, index, selectedItem, selectedOptionValue, highlightedIndex, getItemProps, keyboardMove, setKeyboardMove, allowsDeselect = false) => {
|
|
4198
4236
|
const isSelected = !selectedItem && item.value === selectedOptionValue || selectedItem && selectedItem.value === item.value;
|
|
4199
4237
|
return /* @__PURE__ */ import_react25.default.createElement(
|
|
4200
4238
|
MenuItem,
|
|
@@ -4219,7 +4257,8 @@ var renderOption = (item, index, selectedItem, selectedOptionValue, highlightedI
|
|
|
4219
4257
|
hasDivider: item.hasDivider,
|
|
4220
4258
|
isHighlighted: highlightedIndex === index,
|
|
4221
4259
|
keyboardMove: keyboardMove && highlightedIndex === index,
|
|
4222
|
-
isSelected
|
|
4260
|
+
isSelected,
|
|
4261
|
+
showDeselectIcon: allowsDeselect && isSelected
|
|
4223
4262
|
}),
|
|
4224
4263
|
item.title
|
|
4225
4264
|
);
|
|
@@ -4233,7 +4272,8 @@ var SelectMenu = (_a) => {
|
|
|
4233
4272
|
getItemProps,
|
|
4234
4273
|
search,
|
|
4235
4274
|
keyboardMove,
|
|
4236
|
-
setKeyboardMove
|
|
4275
|
+
setKeyboardMove,
|
|
4276
|
+
allowsDeselect
|
|
4237
4277
|
} = _b, menuProps = __objRest(_b, [
|
|
4238
4278
|
"options",
|
|
4239
4279
|
"selectedItem",
|
|
@@ -4242,7 +4282,8 @@ var SelectMenu = (_a) => {
|
|
|
4242
4282
|
"getItemProps",
|
|
4243
4283
|
"search",
|
|
4244
4284
|
"keyboardMove",
|
|
4245
|
-
"setKeyboardMove"
|
|
4285
|
+
"setKeyboardMove",
|
|
4286
|
+
"allowsDeselect"
|
|
4246
4287
|
]);
|
|
4247
4288
|
if (!isGrouped(options)) {
|
|
4248
4289
|
return /* @__PURE__ */ import_react25.default.createElement(menu_default, __spreadValues({ search }, menuProps), options.map(
|
|
@@ -4254,7 +4295,8 @@ var SelectMenu = (_a) => {
|
|
|
4254
4295
|
highlightedIndex,
|
|
4255
4296
|
getItemProps,
|
|
4256
4297
|
keyboardMove,
|
|
4257
|
-
setKeyboardMove
|
|
4298
|
+
setKeyboardMove,
|
|
4299
|
+
allowsDeselect
|
|
4258
4300
|
)
|
|
4259
4301
|
));
|
|
4260
4302
|
}
|
|
@@ -4270,7 +4312,8 @@ var SelectMenu = (_a) => {
|
|
|
4270
4312
|
highlightedIndex,
|
|
4271
4313
|
getItemProps,
|
|
4272
4314
|
keyboardMove,
|
|
4273
|
-
setKeyboardMove
|
|
4315
|
+
setKeyboardMove,
|
|
4316
|
+
allowsDeselect
|
|
4274
4317
|
);
|
|
4275
4318
|
})));
|
|
4276
4319
|
}));
|
|
@@ -4295,7 +4338,8 @@ var Select = (_a) => {
|
|
|
4295
4338
|
trigger,
|
|
4296
4339
|
hasError,
|
|
4297
4340
|
errorMessage = "Oops, that didn't work.",
|
|
4298
|
-
search
|
|
4341
|
+
search,
|
|
4342
|
+
allowsDeselect = false
|
|
4299
4343
|
} = _b, props = __objRest(_b, [
|
|
4300
4344
|
"container",
|
|
4301
4345
|
"onChange",
|
|
@@ -4315,8 +4359,10 @@ var Select = (_a) => {
|
|
|
4315
4359
|
"trigger",
|
|
4316
4360
|
"hasError",
|
|
4317
4361
|
"errorMessage",
|
|
4318
|
-
"search"
|
|
4362
|
+
"search",
|
|
4363
|
+
"allowsDeselect"
|
|
4319
4364
|
]);
|
|
4365
|
+
var _a2;
|
|
4320
4366
|
const environment = getDownshiftEnvironment(container);
|
|
4321
4367
|
const [downshiftIsOpen, setDownshiftIsOpen] = (0, import_react25.useState)(false);
|
|
4322
4368
|
const [keyboardMove, setKeyboardMove] = (0, import_react25.useState)(false);
|
|
@@ -4326,15 +4372,32 @@ var Select = (_a) => {
|
|
|
4326
4372
|
setSearchValue(value);
|
|
4327
4373
|
};
|
|
4328
4374
|
const [selectedItem, setSelectedItem] = (0, import_react25.useState)(
|
|
4329
|
-
getSelectedOption(selectedOptionValue, options)
|
|
4375
|
+
(_a2 = getSelectedOption(selectedOptionValue, options)) != null ? _a2 : null
|
|
4330
4376
|
);
|
|
4331
4377
|
const onDownshiftChange = (item) => {
|
|
4332
|
-
|
|
4333
|
-
|
|
4378
|
+
const isCurrentlySelected = selectedItem && item && item.value === selectedItem.value || !selectedItem && item && item.value === selectedOptionValue;
|
|
4379
|
+
if (allowsDeselect && isCurrentlySelected) {
|
|
4380
|
+
setSelectedItem(null);
|
|
4381
|
+
setDownshiftIsOpen(false);
|
|
4382
|
+
onChange && onChange(null);
|
|
4383
|
+
} else {
|
|
4384
|
+
setSelectedItem(item != null ? item : null);
|
|
4385
|
+
if (item) {
|
|
4386
|
+
onChange && onChange(item);
|
|
4387
|
+
} else if (allowsDeselect) {
|
|
4388
|
+
onChange && onChange(null);
|
|
4389
|
+
}
|
|
4390
|
+
}
|
|
4391
|
+
};
|
|
4392
|
+
const onStateChange = (changes) => {
|
|
4393
|
+
if (changes.isOpen !== void 0) {
|
|
4394
|
+
setDownshiftIsOpen(changes.isOpen);
|
|
4395
|
+
}
|
|
4334
4396
|
};
|
|
4335
4397
|
const downshiftProps = {
|
|
4336
4398
|
itemToString: (item) => item ? item.value : "",
|
|
4337
4399
|
onChange: onDownshiftChange,
|
|
4400
|
+
onStateChange,
|
|
4338
4401
|
onOuterClick,
|
|
4339
4402
|
environment,
|
|
4340
4403
|
selectedItem,
|
|
@@ -4353,10 +4416,8 @@ var Select = (_a) => {
|
|
|
4353
4416
|
triggerOffset
|
|
4354
4417
|
});
|
|
4355
4418
|
(0, import_react25.useEffect)(() => {
|
|
4356
|
-
|
|
4357
|
-
|
|
4358
|
-
options
|
|
4359
|
-
);
|
|
4419
|
+
var _a3;
|
|
4420
|
+
const expectedSelectedItem = (_a3 = getSelectedOption(selectedOptionValue, options)) != null ? _a3 : null;
|
|
4360
4421
|
if ((expectedSelectedItem == null ? void 0 : expectedSelectedItem.value) !== (selectedItem == null ? void 0 : selectedItem.value)) {
|
|
4361
4422
|
setSelectedItem(expectedSelectedItem);
|
|
4362
4423
|
}
|
|
@@ -4365,12 +4426,14 @@ var Select = (_a) => {
|
|
|
4365
4426
|
onOpenChange && onOpenChange(downshiftIsOpen);
|
|
4366
4427
|
}, [downshiftIsOpen, onOpenChange]);
|
|
4367
4428
|
const stateReducer = (state, changes) => {
|
|
4368
|
-
if (changes.
|
|
4369
|
-
|
|
4370
|
-
|
|
4371
|
-
return { isOpen: false };
|
|
4429
|
+
if (allowsDeselect && changes.type === import_downshift.default.stateChangeTypes.clickItem && changes.selectedItem) {
|
|
4430
|
+
const isCurrentlySelected = state.selectedItem && changes.selectedItem.value === state.selectedItem.value || !state.selectedItem && changes.selectedItem.value === selectedOptionValue;
|
|
4431
|
+
if (isCurrentlySelected) {
|
|
4432
|
+
return __spreadProps(__spreadValues({}, changes), { selectedItem: null, isOpen: false });
|
|
4372
4433
|
}
|
|
4373
|
-
|
|
4434
|
+
}
|
|
4435
|
+
if (changes.type === import_downshift.default.stateChangeTypes.keyDownEscape) {
|
|
4436
|
+
return { isOpen: false };
|
|
4374
4437
|
}
|
|
4375
4438
|
return changes;
|
|
4376
4439
|
};
|
|
@@ -4501,7 +4564,8 @@ var Select = (_a) => {
|
|
|
4501
4564
|
}
|
|
4502
4565
|
),
|
|
4503
4566
|
keyboardMove,
|
|
4504
|
-
setKeyboardMove
|
|
4567
|
+
setKeyboardMove,
|
|
4568
|
+
allowsDeselect
|
|
4505
4569
|
}
|
|
4506
4570
|
)
|
|
4507
4571
|
)
|
|
@@ -4632,15 +4696,6 @@ var backdrop_default = Backdrop;
|
|
|
4632
4696
|
var import_styled21 = __toESM(require("@emotion/styled"));
|
|
4633
4697
|
var import_focus_trap_react = __toESM(require("focus-trap-react"));
|
|
4634
4698
|
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
4699
|
var DEFAULT_MODAL_CARD_HEIGHT = "70vh";
|
|
4645
4700
|
var ContentWrapper = import_styled21.default.div`
|
|
4646
4701
|
display: grid;
|
|
@@ -4740,7 +4795,8 @@ var ModalCard = (_a) => {
|
|
|
4740
4795
|
ariaLabelledBy,
|
|
4741
4796
|
ref,
|
|
4742
4797
|
removeClose,
|
|
4743
|
-
initialFocus
|
|
4798
|
+
initialFocus,
|
|
4799
|
+
closeOnEscape = true
|
|
4744
4800
|
} = _b, props = __objRest(_b, [
|
|
4745
4801
|
"children",
|
|
4746
4802
|
"onCloseClick",
|
|
@@ -4753,10 +4809,11 @@ var ModalCard = (_a) => {
|
|
|
4753
4809
|
"ariaLabelledBy",
|
|
4754
4810
|
"ref",
|
|
4755
4811
|
"removeClose",
|
|
4756
|
-
"initialFocus"
|
|
4812
|
+
"initialFocus",
|
|
4813
|
+
"closeOnEscape"
|
|
4757
4814
|
]);
|
|
4758
4815
|
const keyListener = (e) => {
|
|
4759
|
-
if (e.key === "Escape") {
|
|
4816
|
+
if (e.key === "Escape" && closeOnEscape) {
|
|
4760
4817
|
e.preventDefault();
|
|
4761
4818
|
if (!removeClose) {
|
|
4762
4819
|
onCloseClick(e);
|
|
@@ -6745,12 +6802,13 @@ var Tooltip = (_a) => {
|
|
|
6745
6802
|
const keyListener = (e) => {
|
|
6746
6803
|
if (e.key === "Escape") {
|
|
6747
6804
|
e.preventDefault();
|
|
6805
|
+
e.stopPropagation();
|
|
6748
6806
|
handleBlur();
|
|
6749
6807
|
}
|
|
6750
6808
|
};
|
|
6751
|
-
window.addEventListener("keydown", keyListener);
|
|
6809
|
+
window.addEventListener("keydown", keyListener, true);
|
|
6752
6810
|
return () => {
|
|
6753
|
-
window.removeEventListener("keydown", keyListener);
|
|
6811
|
+
window.removeEventListener("keydown", keyListener, true);
|
|
6754
6812
|
};
|
|
6755
6813
|
}, [isOpen, setIsOpen]);
|
|
6756
6814
|
const { layerProps, triggerProps, renderLayer } = (0, import_react_laag4.useLayer)({
|