@trackunit/react-components 0.1.321-alpha-05e60997159.0 → 0.1.323
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/index.cjs.js +72 -5
- package/index.esm.js +72 -6
- package/package.json +1 -1
- package/src/components/EmptyValue/EmptyValue.d.ts +11 -0
- package/src/components/EmptyValue/EmptyValue.variants.d.ts +1 -0
- package/src/components/VirtualizedList/VirtualizedList.d.ts +5 -1
- package/src/components/VirtualizedList/VirtualizedList.variants.d.ts +1 -0
- package/src/components/index.d.ts +1 -0
package/index.cjs.js
CHANGED
|
@@ -3257,6 +3257,18 @@ const EmptyState = ({ title, description, altText, image, customImageSrc, action
|
|
|
3257
3257
|
jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [customImageSrc ? (jsxRuntime.jsx("img", { alt: altText, className: cvaImgStyles(), height: 200, src: customImageSrc, width: 200 })) : (jsxRuntime.jsx(ImageSource, { height: 200, width: 200 })), title ? jsxRuntime.jsx(Heading, { variant: "secondary", children: title }) : null, description ? jsxRuntime.jsx(Text, { align: "center", children: description }) : null, action] })) }));
|
|
3258
3258
|
};
|
|
3259
3259
|
|
|
3260
|
+
const cvaEmptyValue = cssClassVarianceUtilities.cvaMerge(["text-gray-400"]);
|
|
3261
|
+
|
|
3262
|
+
/**
|
|
3263
|
+
* Show intentionality in empty values in the UI
|
|
3264
|
+
*
|
|
3265
|
+
* @param {EmptyValueProps} props - The props for the EmptyValue component
|
|
3266
|
+
* @returns {JSX.Element} EmptyValue component
|
|
3267
|
+
*/
|
|
3268
|
+
const EmptyValue = ({ className, dataTestId }) => {
|
|
3269
|
+
return (jsxRuntime.jsx("div", { className: cvaEmptyValue({ className }), "data-testid": dataTestId, children: "-" }));
|
|
3270
|
+
};
|
|
3271
|
+
|
|
3260
3272
|
const cvaExternalLink = cssClassVarianceUtilities.cvaMerge(["underline", "text-primary-600", "hover:text-primary-500"]);
|
|
3261
3273
|
|
|
3262
3274
|
/**
|
|
@@ -4492,7 +4504,7 @@ const ValueBar = ({ value, min = 0, max = 100, unit, size = "small", levelColors
|
|
|
4492
4504
|
};
|
|
4493
4505
|
|
|
4494
4506
|
const cvaVirtualizedListContainer = cssClassVarianceUtilities.cvaMerge(["h-full", "overflow-auto"]);
|
|
4495
|
-
const cvaVirtualizedList = cssClassVarianceUtilities.cvaMerge(["relative"]);
|
|
4507
|
+
const cvaVirtualizedList = cssClassVarianceUtilities.cvaMerge(["relative", "m-1"]);
|
|
4496
4508
|
const cvaVirtualizedListItem = cssClassVarianceUtilities.cvaMerge(["absolute", "top-0", "left-0", "w-full"], {
|
|
4497
4509
|
variants: {
|
|
4498
4510
|
separator: {
|
|
@@ -4500,9 +4512,14 @@ const cvaVirtualizedListItem = cssClassVarianceUtilities.cvaMerge(["absolute", "
|
|
|
4500
4512
|
line: ["[&:not(:last-child)]:border-b", "border-gray-200"],
|
|
4501
4513
|
none: "",
|
|
4502
4514
|
},
|
|
4515
|
+
focused: {
|
|
4516
|
+
true: ["rounded-lg", "outline", "outline-2", "outline-blue-600"],
|
|
4517
|
+
false: "",
|
|
4518
|
+
},
|
|
4503
4519
|
},
|
|
4504
4520
|
defaultVariants: {
|
|
4505
4521
|
separator: "none",
|
|
4522
|
+
focused: false,
|
|
4506
4523
|
},
|
|
4507
4524
|
});
|
|
4508
4525
|
|
|
@@ -4516,23 +4533,72 @@ const cvaVirtualizedListItem = cssClassVarianceUtilities.cvaMerge(["absolute", "
|
|
|
4516
4533
|
* @property {(index: number) => JSX.Element} children - A function that takes an index and returns the JSX element to be rendered at said index.
|
|
4517
4534
|
* @property {loadingIndicator} [loadingIndicator="spinner"] - The type of loading indicator in the list.
|
|
4518
4535
|
* @property {skeletonLinesHeight} [skeletonLinesHeight="2rem"] - The height of the skeleton lines.
|
|
4536
|
+
* @property {(index: number) => void} [onRowClick] - A function that is called when a row is clicked.
|
|
4537
|
+
* @property {(index: number) => void} [onRowSelect] - A function that is called when a row is selected with spacebar.
|
|
4519
4538
|
*/
|
|
4520
|
-
const VirtualizedList = ({ count, rowHeight = 40, pagination, children, className, dataTestId, separator = "none", loadingIndicator = "spinner", skeletonLinesHeight = "2rem", }) => {
|
|
4539
|
+
const VirtualizedList = ({ count, rowHeight = 40, pagination, children, className, dataTestId, separator = "none", loadingIndicator = "spinner", skeletonLinesHeight = "2rem", onRowClick, onRowSelectToggle: onRowSelect, }) => {
|
|
4521
4540
|
var _a;
|
|
4522
4541
|
const containerRef = React.useRef(null);
|
|
4542
|
+
const listRef = React.useRef(null);
|
|
4543
|
+
const [focusedIndex, setFocusedIndex] = React.useState(null);
|
|
4523
4544
|
const { fetchMoreOnBottomReached, getVirtualItems, getTotalSize, measureElement } = reactTablePagination.useInfiniteScroll({
|
|
4524
4545
|
pagination: pagination || reactTablePagination.noPagination,
|
|
4525
4546
|
containerRef,
|
|
4526
4547
|
rowSize: ((_a = pagination === null || pagination === void 0 ? void 0 : pagination.pageInfo) === null || _a === void 0 ? void 0 : _a.hasNextPage) && pagination.isLoading ? count + 1 : count,
|
|
4527
4548
|
rowHeight,
|
|
4528
4549
|
});
|
|
4550
|
+
React.useEffect(() => {
|
|
4551
|
+
const handleKeyDown = (event) => {
|
|
4552
|
+
var _a;
|
|
4553
|
+
const shiftKey = event.shiftKey;
|
|
4554
|
+
const jumpCount = focusedIndex && shiftKey ? Math.min(5, count - focusedIndex - 1) : 1;
|
|
4555
|
+
switch (event.code) {
|
|
4556
|
+
case "ArrowDown":
|
|
4557
|
+
event.preventDefault();
|
|
4558
|
+
if (focusedIndex !== null && focusedIndex < count - 1) {
|
|
4559
|
+
setFocusedIndex(focusedIndex + jumpCount);
|
|
4560
|
+
}
|
|
4561
|
+
else if (focusedIndex === null) {
|
|
4562
|
+
setFocusedIndex(0);
|
|
4563
|
+
}
|
|
4564
|
+
break;
|
|
4565
|
+
case "ArrowUp":
|
|
4566
|
+
event.preventDefault();
|
|
4567
|
+
if (focusedIndex !== null && focusedIndex > 0) {
|
|
4568
|
+
setFocusedIndex(focusedIndex - jumpCount);
|
|
4569
|
+
}
|
|
4570
|
+
break;
|
|
4571
|
+
case "Space":
|
|
4572
|
+
if (onRowSelect && focusedIndex !== null) {
|
|
4573
|
+
event.preventDefault();
|
|
4574
|
+
onRowSelect(focusedIndex);
|
|
4575
|
+
}
|
|
4576
|
+
break;
|
|
4577
|
+
}
|
|
4578
|
+
// Auto-scroll focused item into view
|
|
4579
|
+
const focusedElement = (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-index="${focusedIndex}"]`);
|
|
4580
|
+
if (focusedElement) {
|
|
4581
|
+
focusedElement.scrollIntoView({ behavior: "smooth", block: "nearest" });
|
|
4582
|
+
}
|
|
4583
|
+
};
|
|
4584
|
+
const listElement = listRef.current;
|
|
4585
|
+
if (listElement) {
|
|
4586
|
+
listElement.addEventListener("keydown", handleKeyDown);
|
|
4587
|
+
}
|
|
4588
|
+
return () => {
|
|
4589
|
+
if (listElement) {
|
|
4590
|
+
listElement.removeEventListener("keydown", handleKeyDown);
|
|
4591
|
+
}
|
|
4592
|
+
};
|
|
4593
|
+
}, [focusedIndex, count, onRowSelect]);
|
|
4529
4594
|
return (jsxRuntime.jsx("div", { className: cvaVirtualizedListContainer({ className }), "data-testid": dataTestId,
|
|
4530
4595
|
// eslint-disable-next-line local-rules/no-typescript-assertion
|
|
4531
|
-
onScroll: e => fetchMoreOnBottomReached(e.target), ref: containerRef, children: jsxRuntime.jsx("ul", { className: cvaVirtualizedList(), style: { height: `${getTotalSize()}px
|
|
4596
|
+
onScroll: e => fetchMoreOnBottomReached(e.target), ref: containerRef, children: jsxRuntime.jsx("ul", { className: cvaVirtualizedList(), ref: listRef, style: { height: `${getTotalSize()}px`, outline: "none" }, tabIndex: 0, children: getVirtualItems().map((virtualRow, index) => {
|
|
4532
4597
|
const isLoaderRow = virtualRow.index > count - 1;
|
|
4533
|
-
|
|
4598
|
+
const focused = focusedIndex === index;
|
|
4599
|
+
return (jsxRuntime.jsx("li", { className: cvaVirtualizedListItem({ separator, focused }), "data-index": virtualRow.index, onClick: () => onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(virtualRow.index), ref: measureElement, style: {
|
|
4534
4600
|
transform: `translateY(${virtualRow.start}px)`,
|
|
4535
|
-
}, children: isLoaderRow ? ((pagination === null || pagination === void 0 ? void 0 : pagination.isLoading) ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [loadingIndicator === "spinner" && jsxRuntime.jsx(Spinner, { centering: "horizontally", containerClassName: "p-4" }), loadingIndicator === "skeletonLines" && (jsxRuntime.jsx(SkeletonLines, { height: skeletonLinesHeight, lines: 3, width: "full" }))] })) : null) : (children(
|
|
4601
|
+
}, children: isLoaderRow ? ((pagination === null || pagination === void 0 ? void 0 : pagination.isLoading) ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [loadingIndicator === "spinner" && jsxRuntime.jsx(Spinner, { centering: "horizontally", containerClassName: "p-4" }), loadingIndicator === "skeletonLines" && (jsxRuntime.jsx(SkeletonLines, { height: skeletonLinesHeight, lines: 3, width: "full" }))] })) : null) : (children(index)) }, virtualRow.key));
|
|
4536
4602
|
}) }) }));
|
|
4537
4603
|
};
|
|
4538
4604
|
|
|
@@ -4624,6 +4690,7 @@ exports.CompletionStatusIndicator = CompletionStatusIndicator;
|
|
|
4624
4690
|
exports.CopyableText = CopyableText;
|
|
4625
4691
|
exports.Drawer = Drawer;
|
|
4626
4692
|
exports.EmptyState = EmptyState;
|
|
4693
|
+
exports.EmptyValue = EmptyValue;
|
|
4627
4694
|
exports.ExternalLink = ExternalLink;
|
|
4628
4695
|
exports.Heading = Heading;
|
|
4629
4696
|
exports.Icon = Icon;
|
package/index.esm.js
CHANGED
|
@@ -3225,6 +3225,18 @@ const EmptyState = ({ title, description, altText, image, customImageSrc, action
|
|
|
3225
3225
|
jsxs(Fragment, { children: [customImageSrc ? (jsx("img", { alt: altText, className: cvaImgStyles(), height: 200, src: customImageSrc, width: 200 })) : (jsx(ImageSource, { height: 200, width: 200 })), title ? jsx(Heading, { variant: "secondary", children: title }) : null, description ? jsx(Text, { align: "center", children: description }) : null, action] })) }));
|
|
3226
3226
|
};
|
|
3227
3227
|
|
|
3228
|
+
const cvaEmptyValue = cvaMerge(["text-gray-400"]);
|
|
3229
|
+
|
|
3230
|
+
/**
|
|
3231
|
+
* Show intentionality in empty values in the UI
|
|
3232
|
+
*
|
|
3233
|
+
* @param {EmptyValueProps} props - The props for the EmptyValue component
|
|
3234
|
+
* @returns {JSX.Element} EmptyValue component
|
|
3235
|
+
*/
|
|
3236
|
+
const EmptyValue = ({ className, dataTestId }) => {
|
|
3237
|
+
return (jsx("div", { className: cvaEmptyValue({ className }), "data-testid": dataTestId, children: "-" }));
|
|
3238
|
+
};
|
|
3239
|
+
|
|
3228
3240
|
const cvaExternalLink = cvaMerge(["underline", "text-primary-600", "hover:text-primary-500"]);
|
|
3229
3241
|
|
|
3230
3242
|
/**
|
|
@@ -4460,7 +4472,7 @@ const ValueBar = ({ value, min = 0, max = 100, unit, size = "small", levelColors
|
|
|
4460
4472
|
};
|
|
4461
4473
|
|
|
4462
4474
|
const cvaVirtualizedListContainer = cvaMerge(["h-full", "overflow-auto"]);
|
|
4463
|
-
const cvaVirtualizedList = cvaMerge(["relative"]);
|
|
4475
|
+
const cvaVirtualizedList = cvaMerge(["relative", "m-1"]);
|
|
4464
4476
|
const cvaVirtualizedListItem = cvaMerge(["absolute", "top-0", "left-0", "w-full"], {
|
|
4465
4477
|
variants: {
|
|
4466
4478
|
separator: {
|
|
@@ -4468,9 +4480,14 @@ const cvaVirtualizedListItem = cvaMerge(["absolute", "top-0", "left-0", "w-full"
|
|
|
4468
4480
|
line: ["[&:not(:last-child)]:border-b", "border-gray-200"],
|
|
4469
4481
|
none: "",
|
|
4470
4482
|
},
|
|
4483
|
+
focused: {
|
|
4484
|
+
true: ["rounded-lg", "outline", "outline-2", "outline-blue-600"],
|
|
4485
|
+
false: "",
|
|
4486
|
+
},
|
|
4471
4487
|
},
|
|
4472
4488
|
defaultVariants: {
|
|
4473
4489
|
separator: "none",
|
|
4490
|
+
focused: false,
|
|
4474
4491
|
},
|
|
4475
4492
|
});
|
|
4476
4493
|
|
|
@@ -4484,23 +4501,72 @@ const cvaVirtualizedListItem = cvaMerge(["absolute", "top-0", "left-0", "w-full"
|
|
|
4484
4501
|
* @property {(index: number) => JSX.Element} children - A function that takes an index and returns the JSX element to be rendered at said index.
|
|
4485
4502
|
* @property {loadingIndicator} [loadingIndicator="spinner"] - The type of loading indicator in the list.
|
|
4486
4503
|
* @property {skeletonLinesHeight} [skeletonLinesHeight="2rem"] - The height of the skeleton lines.
|
|
4504
|
+
* @property {(index: number) => void} [onRowClick] - A function that is called when a row is clicked.
|
|
4505
|
+
* @property {(index: number) => void} [onRowSelect] - A function that is called when a row is selected with spacebar.
|
|
4487
4506
|
*/
|
|
4488
|
-
const VirtualizedList = ({ count, rowHeight = 40, pagination, children, className, dataTestId, separator = "none", loadingIndicator = "spinner", skeletonLinesHeight = "2rem", }) => {
|
|
4507
|
+
const VirtualizedList = ({ count, rowHeight = 40, pagination, children, className, dataTestId, separator = "none", loadingIndicator = "spinner", skeletonLinesHeight = "2rem", onRowClick, onRowSelectToggle: onRowSelect, }) => {
|
|
4489
4508
|
var _a;
|
|
4490
4509
|
const containerRef = useRef(null);
|
|
4510
|
+
const listRef = useRef(null);
|
|
4511
|
+
const [focusedIndex, setFocusedIndex] = useState(null);
|
|
4491
4512
|
const { fetchMoreOnBottomReached, getVirtualItems, getTotalSize, measureElement } = useInfiniteScroll({
|
|
4492
4513
|
pagination: pagination || noPagination,
|
|
4493
4514
|
containerRef,
|
|
4494
4515
|
rowSize: ((_a = pagination === null || pagination === void 0 ? void 0 : pagination.pageInfo) === null || _a === void 0 ? void 0 : _a.hasNextPage) && pagination.isLoading ? count + 1 : count,
|
|
4495
4516
|
rowHeight,
|
|
4496
4517
|
});
|
|
4518
|
+
useEffect(() => {
|
|
4519
|
+
const handleKeyDown = (event) => {
|
|
4520
|
+
var _a;
|
|
4521
|
+
const shiftKey = event.shiftKey;
|
|
4522
|
+
const jumpCount = focusedIndex && shiftKey ? Math.min(5, count - focusedIndex - 1) : 1;
|
|
4523
|
+
switch (event.code) {
|
|
4524
|
+
case "ArrowDown":
|
|
4525
|
+
event.preventDefault();
|
|
4526
|
+
if (focusedIndex !== null && focusedIndex < count - 1) {
|
|
4527
|
+
setFocusedIndex(focusedIndex + jumpCount);
|
|
4528
|
+
}
|
|
4529
|
+
else if (focusedIndex === null) {
|
|
4530
|
+
setFocusedIndex(0);
|
|
4531
|
+
}
|
|
4532
|
+
break;
|
|
4533
|
+
case "ArrowUp":
|
|
4534
|
+
event.preventDefault();
|
|
4535
|
+
if (focusedIndex !== null && focusedIndex > 0) {
|
|
4536
|
+
setFocusedIndex(focusedIndex - jumpCount);
|
|
4537
|
+
}
|
|
4538
|
+
break;
|
|
4539
|
+
case "Space":
|
|
4540
|
+
if (onRowSelect && focusedIndex !== null) {
|
|
4541
|
+
event.preventDefault();
|
|
4542
|
+
onRowSelect(focusedIndex);
|
|
4543
|
+
}
|
|
4544
|
+
break;
|
|
4545
|
+
}
|
|
4546
|
+
// Auto-scroll focused item into view
|
|
4547
|
+
const focusedElement = (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-index="${focusedIndex}"]`);
|
|
4548
|
+
if (focusedElement) {
|
|
4549
|
+
focusedElement.scrollIntoView({ behavior: "smooth", block: "nearest" });
|
|
4550
|
+
}
|
|
4551
|
+
};
|
|
4552
|
+
const listElement = listRef.current;
|
|
4553
|
+
if (listElement) {
|
|
4554
|
+
listElement.addEventListener("keydown", handleKeyDown);
|
|
4555
|
+
}
|
|
4556
|
+
return () => {
|
|
4557
|
+
if (listElement) {
|
|
4558
|
+
listElement.removeEventListener("keydown", handleKeyDown);
|
|
4559
|
+
}
|
|
4560
|
+
};
|
|
4561
|
+
}, [focusedIndex, count, onRowSelect]);
|
|
4497
4562
|
return (jsx("div", { className: cvaVirtualizedListContainer({ className }), "data-testid": dataTestId,
|
|
4498
4563
|
// eslint-disable-next-line local-rules/no-typescript-assertion
|
|
4499
|
-
onScroll: e => fetchMoreOnBottomReached(e.target), ref: containerRef, children: jsx("ul", { className: cvaVirtualizedList(), style: { height: `${getTotalSize()}px
|
|
4564
|
+
onScroll: e => fetchMoreOnBottomReached(e.target), ref: containerRef, children: jsx("ul", { className: cvaVirtualizedList(), ref: listRef, style: { height: `${getTotalSize()}px`, outline: "none" }, tabIndex: 0, children: getVirtualItems().map((virtualRow, index) => {
|
|
4500
4565
|
const isLoaderRow = virtualRow.index > count - 1;
|
|
4501
|
-
|
|
4566
|
+
const focused = focusedIndex === index;
|
|
4567
|
+
return (jsx("li", { className: cvaVirtualizedListItem({ separator, focused }), "data-index": virtualRow.index, onClick: () => onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(virtualRow.index), ref: measureElement, style: {
|
|
4502
4568
|
transform: `translateY(${virtualRow.start}px)`,
|
|
4503
|
-
}, children: isLoaderRow ? ((pagination === null || pagination === void 0 ? void 0 : pagination.isLoading) ? (jsxs(Fragment, { children: [loadingIndicator === "spinner" && jsx(Spinner, { centering: "horizontally", containerClassName: "p-4" }), loadingIndicator === "skeletonLines" && (jsx(SkeletonLines, { height: skeletonLinesHeight, lines: 3, width: "full" }))] })) : null) : (children(
|
|
4569
|
+
}, children: isLoaderRow ? ((pagination === null || pagination === void 0 ? void 0 : pagination.isLoading) ? (jsxs(Fragment, { children: [loadingIndicator === "spinner" && jsx(Spinner, { centering: "horizontally", containerClassName: "p-4" }), loadingIndicator === "skeletonLines" && (jsx(SkeletonLines, { height: skeletonLinesHeight, lines: 3, width: "full" }))] })) : null) : (children(index)) }, virtualRow.key));
|
|
4504
4570
|
}) }) }));
|
|
4505
4571
|
};
|
|
4506
4572
|
|
|
@@ -4577,4 +4643,4 @@ const cvaClickable = cvaMerge([
|
|
|
4577
4643
|
},
|
|
4578
4644
|
});
|
|
4579
4645
|
|
|
4580
|
-
export { Alert, Badge, Breadcrumb, BreadcrumbContainer, BreadcrumbItem, Button, Card, CardBody, CardFooter, CardHeader, Collapse, CompletionStatusIndicator, CopyableText, Drawer, EmptyState, ExternalLink, Heading, Icon, IconButton, Indicator, KPICard, MenuItem, MenuList, Modal, ModalBackdrop, MoreMenu, Notice, PackageNameStoryComponent, Page, PageContent, PageHeader, Pagination, Popover, PopoverContent, PopoverTitle, PopoverTrigger, Prompt, ROLE_CARD, SectionHeader, Sidebar, SkeletonLines, Spacer, Spinner, StarButton, Tab, TabContent, TabList, Tabs, Tag, Text, Timeline, TimelineElement, Tooltip, ValueBar, VirtualizedList, WidgetBody, cvaButton, cvaButtonPrefixSuffix, cvaButtonSpinner, cvaButtonSpinnerContainer, cvaClickable, cvaIconButton, cvaIndicator, cvaIndicatorIcon, cvaIndicatorIconBackground, cvaIndicatorLabel, cvaIndicatorPing, cvaMenuItem, cvaMenuItemLabel, cvaMenuItemPrefix, cvaMenuItemSuffix, docs, getDevicePixelRatio, getValueBarColorByValue, iconColorNames, iconPalette, setLocalStorage, useClickOutside, useContainerProps, useContinuousTimeout, useDebounce, useDevicePixelRatio, useGeometry, useHover, useIsFirstRender, useIsFullscreen, useIsTextCutOff, useLocalStorage, useLocalStorageReducer, useModal, useOptionallyElevatedState, useOverflowItems, usePopoverContext, usePrompt, useResize, useSelfUpdatingRef, useTimeout, useVisibilityChange };
|
|
4646
|
+
export { Alert, Badge, Breadcrumb, BreadcrumbContainer, BreadcrumbItem, Button, Card, CardBody, CardFooter, CardHeader, Collapse, CompletionStatusIndicator, CopyableText, Drawer, EmptyState, EmptyValue, ExternalLink, Heading, Icon, IconButton, Indicator, KPICard, MenuItem, MenuList, Modal, ModalBackdrop, MoreMenu, Notice, PackageNameStoryComponent, Page, PageContent, PageHeader, Pagination, Popover, PopoverContent, PopoverTitle, PopoverTrigger, Prompt, ROLE_CARD, SectionHeader, Sidebar, SkeletonLines, Spacer, Spinner, StarButton, Tab, TabContent, TabList, Tabs, Tag, Text, Timeline, TimelineElement, Tooltip, ValueBar, VirtualizedList, WidgetBody, cvaButton, cvaButtonPrefixSuffix, cvaButtonSpinner, cvaButtonSpinnerContainer, cvaClickable, cvaIconButton, cvaIndicator, cvaIndicatorIcon, cvaIndicatorIconBackground, cvaIndicatorLabel, cvaIndicatorPing, cvaMenuItem, cvaMenuItemLabel, cvaMenuItemPrefix, cvaMenuItemSuffix, docs, getDevicePixelRatio, getValueBarColorByValue, iconColorNames, iconPalette, setLocalStorage, useClickOutside, useContainerProps, useContinuousTimeout, useDebounce, useDevicePixelRatio, useGeometry, useHover, useIsFirstRender, useIsFullscreen, useIsTextCutOff, useLocalStorage, useLocalStorageReducer, useModal, useOptionallyElevatedState, useOverflowItems, usePopoverContext, usePrompt, useResize, useSelfUpdatingRef, useTimeout, useVisibilityChange };
|
package/package.json
CHANGED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { CommonProps } from "../../common/CommonProps";
|
|
3
|
+
export interface EmptyValueProps extends CommonProps {
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Show intentionality in empty values in the UI
|
|
7
|
+
*
|
|
8
|
+
* @param {EmptyValueProps} props - The props for the EmptyValue component
|
|
9
|
+
* @returns {JSX.Element} EmptyValue component
|
|
10
|
+
*/
|
|
11
|
+
export declare const EmptyValue: ({ className, dataTestId }: EmptyValueProps) => JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const cvaEmptyValue: (props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string;
|
|
@@ -13,6 +13,8 @@ export interface VirtualizedListProps extends CommonProps {
|
|
|
13
13
|
separator?: Separator;
|
|
14
14
|
loadingIndicator?: LoadingIndicator;
|
|
15
15
|
skeletonLinesHeight?: string;
|
|
16
|
+
onRowClick?: (index: number) => void;
|
|
17
|
+
onRowSelectToggle?: (index: number) => void;
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* Render a performant virtualized list of items. Optionally with infinite scrolling.
|
|
@@ -24,6 +26,8 @@ export interface VirtualizedListProps extends CommonProps {
|
|
|
24
26
|
* @property {(index: number) => JSX.Element} children - A function that takes an index and returns the JSX element to be rendered at said index.
|
|
25
27
|
* @property {loadingIndicator} [loadingIndicator="spinner"] - The type of loading indicator in the list.
|
|
26
28
|
* @property {skeletonLinesHeight} [skeletonLinesHeight="2rem"] - The height of the skeleton lines.
|
|
29
|
+
* @property {(index: number) => void} [onRowClick] - A function that is called when a row is clicked.
|
|
30
|
+
* @property {(index: number) => void} [onRowSelect] - A function that is called when a row is selected with spacebar.
|
|
27
31
|
*/
|
|
28
|
-
export declare const VirtualizedList: ({ count, rowHeight, pagination, children, className, dataTestId, separator, loadingIndicator, skeletonLinesHeight, }: VirtualizedListProps) => JSX.Element;
|
|
32
|
+
export declare const VirtualizedList: ({ count, rowHeight, pagination, children, className, dataTestId, separator, loadingIndicator, skeletonLinesHeight, onRowClick, onRowSelectToggle: onRowSelect, }: VirtualizedListProps) => JSX.Element;
|
|
29
33
|
export {};
|
|
@@ -2,4 +2,5 @@ export declare const cvaVirtualizedListContainer: (props?: import("class-varianc
|
|
|
2
2
|
export declare const cvaVirtualizedList: (props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string;
|
|
3
3
|
export declare const cvaVirtualizedListItem: (props?: ({
|
|
4
4
|
separator?: "alternating" | "line" | "none" | null | undefined;
|
|
5
|
+
focused?: boolean | null | undefined;
|
|
5
6
|
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
@@ -7,6 +7,7 @@ export * from "./CompletionStatusIndicator/CompletionStatusIndicator";
|
|
|
7
7
|
export * from "./CopyableText";
|
|
8
8
|
export * from "./Drawer/Drawer";
|
|
9
9
|
export * from "./EmptyState/EmptyState";
|
|
10
|
+
export * from "./EmptyValue/EmptyValue";
|
|
10
11
|
export * from "./ExternalLink/ExternalLink";
|
|
11
12
|
export * from "./Heading";
|
|
12
13
|
export * from "./Icon/Icon";
|