pixelize-design-library 2.4.2-beta.63 → 2.4.2-beta.64
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/CHANGELOG.md +47 -0
- package/COMPONENT-GOTCHAS.md +26 -3
- package/DESIGN-GUIDE.md +1 -0
- package/dist/Components/Button/Button.styles.js +7 -2
- package/dist/Components/Dropdown/DropDown.js +2 -9
- package/dist/Components/FilePreview/FilePreview.js +2 -1
- package/dist/Components/FileUploader/FileUploader.js +4 -0
- package/dist/Components/FileUploader/FileUploaderProps.d.ts +1 -1
- package/dist/Components/Input/TextInput.styles.js +10 -6
- package/dist/Components/KanbanBoard/KanbanBoard.js +6 -5
- package/dist/Components/NavigationBar/NavigationBar.js +2 -1
- package/dist/Components/OrgSwitcher/OrgSwitcher.js +2 -4
- package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +6 -5
- package/dist/Components/ScrollToTop/ScrollToTop.js +4 -3
- package/dist/Components/SearchSelect/SearchSelect.js +4 -16
- package/dist/Components/Select/SelectPopup.js +1 -3
- package/dist/Components/Select/optionRowInk.d.ts +12 -0
- package/dist/Components/Select/optionRowInk.js +10 -1
- package/dist/Components/SelectSearch/SelectSearch.js +1 -10
- package/dist/Components/Table/Table.js +3 -2
- package/dist/Components/Table/TableProps.d.ts +1 -1
- package/dist/Components/Table/components/TableBody.js +9 -1
- package/dist/Components/Table/components/TableHeader.js +7 -2
- package/dist/Components/Table/components/TableLoading.d.ts +4 -1
- package/dist/Components/Table/components/TableLoading.js +6 -5
- package/dist/Components/Table/filters/CompactSelect.js +1 -10
- package/dist/Components/Table/variants/TableVariantContext.d.ts +1 -1
- package/dist/Components/Table/variants/TableVariantContext.js +3 -3
- package/dist/Components/WorkspaceWindow/WorkspaceTrayPreview.js +4 -0
- package/dist/Components/WorkspaceWindow/WorkspaceWindow.d.ts +2 -2
- package/dist/Components/WorkspaceWindow/WorkspaceWindow.js +25 -18
- package/dist/Components/WorkspaceWindow/WorkspaceWindowProps.d.ts +38 -2
- package/dist/Theme/chakra/Menu.styles.d.ts +8 -0
- package/dist/Theme/chakra/Menu.styles.js +7 -0
- package/dist/Theme/chakra/componentStyles.d.ts +8 -0
- package/dist/Theme/chakra/componentStyles.js +2 -2
- package/dist/Theme/tokens/builders/accentText.d.ts +2 -0
- package/dist/Theme/tokens/builders/accentText.js +7 -1
- package/dist/Theme/tokens/builders/filledSurface.d.ts +5 -1
- package/dist/Theme/tokens/builders/filledSurface.js +17 -4
- package/dist/Theme/tokens/builders/planeStep.d.ts +1 -0
- package/dist/Theme/tokens/builders/planeStep.js +5 -4
- package/dist/Utils/table.js +2 -2
- package/dist/esm/Components/Button/Button.styles.js +8 -3
- package/dist/esm/Components/Dropdown/DropDown.js +2 -9
- package/dist/esm/Components/FilePreview/FilePreview.js +3 -2
- package/dist/esm/Components/FileUploader/FileUploader.js +4 -0
- package/dist/esm/Components/Input/TextInput.styles.js +10 -6
- package/dist/esm/Components/KanbanBoard/KanbanBoard.js +6 -5
- package/dist/esm/Components/NavigationBar/NavigationBar.js +2 -1
- package/dist/esm/Components/OrgSwitcher/OrgSwitcher.js +2 -4
- package/dist/esm/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +7 -6
- package/dist/esm/Components/ScrollToTop/ScrollToTop.js +5 -4
- package/dist/esm/Components/SearchSelect/SearchSelect.js +6 -18
- package/dist/esm/Components/Select/SelectPopup.js +2 -4
- package/dist/esm/Components/Select/optionRowInk.js +7 -0
- package/dist/esm/Components/SelectSearch/SelectSearch.js +2 -11
- package/dist/esm/Components/Table/Table.js +4 -3
- package/dist/esm/Components/Table/components/TableBody.js +10 -2
- package/dist/esm/Components/Table/components/TableHeader.js +9 -4
- package/dist/esm/Components/Table/components/TableLoading.js +5 -4
- package/dist/esm/Components/Table/filters/CompactSelect.js +2 -11
- package/dist/esm/Components/Table/variants/TableVariantContext.js +3 -3
- package/dist/esm/Components/WorkspaceWindow/WorkspaceTrayPreview.js +4 -0
- package/dist/esm/Components/WorkspaceWindow/WorkspaceWindow.js +26 -19
- package/dist/esm/Theme/chakra/Menu.styles.js +7 -0
- package/dist/esm/Theme/chakra/componentStyles.js +2 -2
- package/dist/esm/Theme/tokens/builders/accentText.js +5 -0
- package/dist/esm/Theme/tokens/builders/filledSurface.js +18 -5
- package/dist/esm/Theme/tokens/builders/planeStep.js +3 -3
- package/dist/esm/Utils/table.js +2 -2
- package/dist/esm/index.js +4 -4
- package/dist/index.d.ts +5 -5
- package/dist/index.js +11 -6
- package/package.json +1 -1
|
@@ -8,7 +8,7 @@ import { TABLE_VARIANTS } from "./variants/index.js";
|
|
|
8
8
|
import { TableVariantProvider } from "./variants/TableVariantContext.js";
|
|
9
9
|
import { isDarkCanvas } from "../../Theme/tokens/builders/accentText.js";
|
|
10
10
|
import { cardRule } from "../../Theme/tokens/builders/planeStep.js";
|
|
11
|
-
import {
|
|
11
|
+
import { resolveFilledSurface } from "../../Theme/tokens/builders/filledSurface.js";
|
|
12
12
|
import Pagination from "./components/Pagination.js";
|
|
13
13
|
import TableHeader from "./components/TableHeader.js";
|
|
14
14
|
import TableBody from "./components/TableBody.js";
|
|
@@ -43,11 +43,12 @@ export default function Table({ data, columns, onSelection, isLoading, isCheckbo
|
|
|
43
43
|
name: "",
|
|
44
44
|
page: "",
|
|
45
45
|
orgId: "",
|
|
46
|
-
}, paginationMode = "client", infiniteScroll = false, hasMore, isLoadingMore = false, groupLoadMore = false, loadMoreText = "Load more", loadMorePosition = "top", loadMoreChunkSize, noOfRowsPerPage = 50, totalRecords = 0, onPagination, isTableSettings = false, headerActions, onGlobalSearch, onNoOfRowsPerPageChange, paginationSelectOptions, tableMaxHeight, minVisibleRows, maxVisibleRows, autoFitViewport, tableSettings, filterSidebar, loadingSkeletonRows, defaultVisibleColumns, density = "normal", variant = "
|
|
46
|
+
}, paginationMode = "client", infiniteScroll = false, hasMore, isLoadingMore = false, groupLoadMore = false, loadMoreText = "Load more", loadMorePosition = "top", loadMoreChunkSize, noOfRowsPerPage = 50, totalRecords = 0, onPagination, isTableSettings = false, headerActions, onGlobalSearch, onNoOfRowsPerPageChange, paginationSelectOptions, tableMaxHeight, minVisibleRows, maxVisibleRows, autoFitViewport, tableSettings, filterSidebar, loadingSkeletonRows, defaultVisibleColumns, density = "normal", variant = "studio", stripe = false, renderRowDetail, expandedRows, onExpandedRowsChange, groupColors, onAddItem, emptyState, onRefresh, isGlobalSearch = true, }) {
|
|
47
47
|
var _a, _b, _c, _d, _e;
|
|
48
48
|
const theme = useCustomTheme();
|
|
49
49
|
const prefersReducedMotion = usePrefersReducedMotion();
|
|
50
50
|
const clearFiltersTone = useMemo(() => resolveFilledSurface(theme.colors.semantic.error, theme.colors), [theme.colors]);
|
|
51
|
+
const clearBadge = useMemo(() => resolveFilledSurface(theme.colors.primary, theme.colors), [theme.colors]);
|
|
51
52
|
const variantTokens = useMemo(() => TABLE_VARIANTS[variant](theme.colors, isDarkCanvas(theme.colors.backgroundColor.main)), [variant, theme.colors]);
|
|
52
53
|
const [columnsSearch, setColumnsSearch] = useState({});
|
|
53
54
|
const detailIdPrefix = useId();
|
|
@@ -391,7 +392,7 @@ export default function Table({ data, columns, onSelection, isLoading, isCheckbo
|
|
|
391
392
|
? isFilterModalOpen
|
|
392
393
|
: !!(filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.isFilterSidebar), display: "inline-flex", alignItems: "center", justifyContent: "center", p: 0, bg: "transparent", border: "none", borderRadius: "md", cursor: "pointer", onClick: filterMode === "modal" ? onFilterModalOpen : filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.filterSidebarToggle, _hover: {
|
|
393
394
|
color: theme.colors.accentText,
|
|
394
|
-
}, sx: focusVisibleStyles(theme.colors), children: _jsx(Icon, { as: Filter, transform: "scaleX(-1)", boxSize: 4, color: sidebarActiveCount > 0 ? theme.colors.accentText : theme.colors.text[500] }) }), sidebarActiveCount > 0 && (_jsx(Box, { as: "button", type: "button", "aria-label": "Clear filters", position: "absolute", top: "-6px", right: "-10px", bg:
|
|
395
|
+
}, sx: focusVisibleStyles(theme.colors), children: _jsx(Icon, { as: Filter, transform: "scaleX(-1)", boxSize: 4, color: sidebarActiveCount > 0 ? theme.colors.accentText : theme.colors.text[500] }) }), sidebarActiveCount > 0 && (_jsx(Box, { as: "button", type: "button", "aria-label": "Clear filters", position: "absolute", top: "-6px", right: "-10px", bg: clearBadge.fill, color: clearBadge.color, border: "none", borderRadius: "full", p: "1px", cursor: "pointer", onClick: (e) => {
|
|
395
396
|
var _a;
|
|
396
397
|
e.stopPropagation();
|
|
397
398
|
if (filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.onClearAllHandler) {
|
|
@@ -4,7 +4,7 @@ import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useSta
|
|
|
4
4
|
import { flushSync } from "react-dom";
|
|
5
5
|
import { normalizeTableCellValue, buildTablePalette, pickTableColor } from "../../../Utils/table.js";
|
|
6
6
|
import { useCustomTheme } from "../../../Theme/useCustomTheme.js";
|
|
7
|
-
import { TableBodyLoading } from "./TableLoading.js";
|
|
7
|
+
import { LOADING_PLACEHOLDER_COLUMNS, TableBodyLoading } from "./TableLoading.js";
|
|
8
8
|
import TableActions from "./TableActions.js";
|
|
9
9
|
import { ChevronDown, ChevronRight } from "lucide-react";
|
|
10
10
|
import CheckBox from "../../Checkbox/Checkbox.js";
|
|
@@ -384,7 +384,15 @@ const TableBody = ({ data, isCheckbox, columns, startRow, rowsPerPage, columnWid
|
|
|
384
384
|
});
|
|
385
385
|
}, [data]);
|
|
386
386
|
if (isLoading && data.length === 0) {
|
|
387
|
-
|
|
387
|
+
const dataColumns = columns.filter((o) => !o.isHidden).length;
|
|
388
|
+
const cells = [
|
|
389
|
+
...(isContent ? ["blank"] : []),
|
|
390
|
+
...(isCheckbox ? ["checkbox"] : []),
|
|
391
|
+
...(rowDetail ? ["blank"] : []),
|
|
392
|
+
...Array.from({ length: dataColumns || LOADING_PLACEHOLDER_COLUMNS }, () => "bar"),
|
|
393
|
+
...(isLink ? ["blank"] : []),
|
|
394
|
+
];
|
|
395
|
+
return (_jsx(TableBodyLoading, { noOfColumns: cells.length, cells: cells, borderColor: variant.row.ruleColor, rowsCount: typeof loadingSkeletonRows === "number" ? loadingSkeletonRows : 4, rowHeight: rowHeight }));
|
|
388
396
|
}
|
|
389
397
|
if (!isLoading && data.length === 0) {
|
|
390
398
|
return (_jsx(Tr, { backgroundColor: theme.colors.background[50], children: _jsx(Td, { colSpan: totalVisibleColumns, p: 0, border: "none", children: _jsx(TableEmpty, { emptyState: emptyState }) }) }));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Spinner, Th, Tr } from "@chakra-ui/react";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Skeleton, Spinner, Th, Tr } from "@chakra-ui/react";
|
|
3
3
|
import { memo, useState } from "react";
|
|
4
4
|
import { calculateLeftOffset } from "../../../Utils/table.js";
|
|
5
5
|
import { useCustomTheme } from "../../../Theme/useCustomTheme.js";
|
|
@@ -13,11 +13,12 @@ import { transitionFor } from "../../../Theme/tokens/primitives/motion.js";
|
|
|
13
13
|
import { reducedMotionSx } from "../../../Theme/chakra/motion.js";
|
|
14
14
|
import { focusVisibleRing } from "../../../Theme/chakra/focusRing.styles.js";
|
|
15
15
|
import { DETAIL_SLOT_PX, RowDetailHeaderCell } from "./rowDetail.js";
|
|
16
|
+
import { LOADING_PLACEHOLDER_COLUMNS } from "./TableLoading.js";
|
|
16
17
|
const LABEL_JUSTIFY = { start: "space-between", center: "center", end: "flex-start" };
|
|
17
18
|
const TableHeader = ({ columns, isCheckbox, handleSort, headerRefs, columnWidths, slotRef, slotWidth, columnsSort, freezedTextColor, noBorders, handleCheckbox, checked, isLoading, isContent, isLink, hasDetail = false, isActionFreeze, setColumnsSearch, columnsSearch, isSelecting, }) => {
|
|
18
19
|
const [openFilterId, setOpenFilterId] = useState(null);
|
|
19
20
|
const variant = useTableVariant();
|
|
20
|
-
return (_jsxs(Tr, { pr: 0, "aria-rowindex": 1, children: [isContent && _jsx(ContentSpacerCell, { noBorders: noBorders }), isCheckbox && (_jsx(SelectAllCell, { slotRef: slotRef, freezedTextColor: freezedTextColor, noBorders: noBorders, isSelecting: isSelecting, isLoading: isLoading, checked: checked, handleCheckbox: handleCheckbox })), hasDetail && (_jsx(RowDetailHeaderCell, { left: isCheckbox ? slotWidth : 0, bg: variant.header.bg, ruleColor: variant.header.ruleColor, noBorders: noBorders })), columns.map((header, index) => {
|
|
21
|
+
return (_jsxs(Tr, { pr: 0, "aria-rowindex": 1, children: [isContent && _jsx(ContentSpacerCell, { noBorders: noBorders }), isCheckbox && (_jsx(SelectAllCell, { slotRef: slotRef, freezedTextColor: freezedTextColor, noBorders: noBorders, isSelecting: isSelecting, isLoading: isLoading, checked: checked, handleCheckbox: handleCheckbox })), hasDetail && (_jsx(RowDetailHeaderCell, { left: isCheckbox ? slotWidth : 0, bg: variant.header.bg, ruleColor: variant.header.ruleColor, noBorders: noBorders })), isLoading && !columns.some((header) => !(header === null || header === void 0 ? void 0 : header.isHidden)) && (_jsx(LoadingHeaderCells, { noBorders: noBorders })), columns.map((header, index) => {
|
|
21
22
|
if (header === null || header === void 0 ? void 0 : header.isHidden)
|
|
22
23
|
return null;
|
|
23
24
|
return (_jsx(ColumnHeader, { header: header, index: index, columnWidths: columnWidths, slotWidth: slotWidth, detailWidth: hasDetail ? DETAIL_SLOT_PX : 0, handleSort: handleSort, isCheckbox: isCheckbox, noBorders: noBorders, columnsSort: columnsSort, headerRefs: headerRefs, columnsSearch: columnsSearch, setColumnsSearch: setColumnsSearch, openFilterId: openFilterId, setOpenFilterId: setOpenFilterId }, columnLabelText(header)));
|
|
@@ -27,8 +28,12 @@ export default memo(TableHeader);
|
|
|
27
28
|
const SelectAllCell = memo(({ slotRef, freezedTextColor, noBorders, isSelecting, isLoading, checked, handleCheckbox, }) => {
|
|
28
29
|
const theme = useCustomTheme();
|
|
29
30
|
const variant = useTableVariant();
|
|
30
|
-
return (_jsx(Th, { ref: slotRef, scope: "col", w: variant.slot.width, minW: variant.slot.width, px: variant.slot.centered ? 0 : undefined, textAlign: variant.slot.centered ? "center" : undefined, fontSize: 14, fontWeight: 600, color: freezedTextColor, textTransform: "capitalize", backgroundColor: variant.header.bg, position: "sticky", className: `columns sticky-columns`, left: "0px", zIndex: 9, borderBottom: noBorders ? "none" : `0.063rem solid ${variant.header.ruleColor}`, children: _jsx(Box, { display: "flex", alignItems: "center", justifyContent: "center", children: isSelecting ? (_jsx(Spinner, { size: "sm", color: theme.colors.accentText })) : (_jsx(CheckBox, { "aria-label": "Select all rows", variant: "outline", onChange: () => handleCheckbox(0), isChecked: isLoading ? false : checked === true, isIndeterminate: checked === "indeterminate" })) }) }));
|
|
31
|
+
return (_jsx(Th, { ref: slotRef, scope: "col", w: variant.slot.width, minW: variant.slot.width, px: variant.slot.centered ? 0 : undefined, textAlign: variant.slot.centered ? "center" : undefined, fontSize: 14, fontWeight: 600, color: freezedTextColor, textTransform: "capitalize", backgroundColor: variant.header.bg, position: "sticky", className: `columns sticky-columns`, left: "0px", zIndex: 9, borderBottom: noBorders ? "none" : `0.063rem solid ${variant.header.ruleColor}`, children: _jsx(Box, { display: "flex", alignItems: "center", justifyContent: "center", children: isSelecting ? (_jsx(Spinner, { size: "sm", color: theme.colors.accentText })) : (_jsx(CheckBox, { "aria-label": "Select all rows", variant: "outline", onChange: () => handleCheckbox(0), isChecked: isLoading ? false : checked === true, isDisabled: isLoading, isIndeterminate: checked === "indeterminate" })) }) }));
|
|
31
32
|
});
|
|
33
|
+
const LoadingHeaderCells = ({ noBorders }) => {
|
|
34
|
+
const variant = useTableVariant();
|
|
35
|
+
return (_jsx(_Fragment, { children: Array.from({ length: LOADING_PLACEHOLDER_COLUMNS }, (_, i) => (_jsx(Th, { scope: "col", "aria-hidden": "true", px: 3, backgroundColor: variant.header.bg, borderBottom: noBorders ? "none" : `0.063rem solid ${variant.header.ruleColor}`, children: _jsx(Skeleton, { height: "0.75rem", width: i % 2 ? "50%" : "70%", borderRadius: "full", variant: "shine" }) }, i))) }));
|
|
36
|
+
};
|
|
32
37
|
const ContentSpacerCell = memo(({ noBorders }) => {
|
|
33
38
|
const variant = useTableVariant();
|
|
34
39
|
return (_jsx(Th, { scope: "col", w: 6, minW: "35px", p: 0, backgroundColor: variant.header.bg, borderBottom: noBorders ? "none" : `0.063rem solid ${variant.header.ruleColor}`, position: "sticky", className: `columns sticky-columns`, left: "0px", zIndex: 1 }));
|
|
@@ -4,8 +4,9 @@ const TableLoading = () => {
|
|
|
4
4
|
return (_jsx(Box, { overflowX: "auto", p: 4, children: _jsxs(Table, { variant: "simple", width: "full", children: [_jsx(Thead, { children: _jsxs(Tr, { children: [_jsx(Th, { p: 2, children: _jsx(Skeleton, { height: "20px" }) }), _jsx(Th, { p: 2, children: _jsx(Skeleton, { height: "20px" }) }), _jsx(Th, { p: 2, children: _jsx(Skeleton, { height: "20px" }) }), _jsx(Th, { p: 2, children: _jsx(Skeleton, { height: "20px" }) })] }) }), _jsx(Tbody, { children: Array.from({ length: 5 }).map((_, rowIndex) => (_jsxs(Tr, { children: [_jsx(Td, { p: 2, children: _jsx(SkeletonText, { noOfLines: 1, skeletonHeight: "2" }) }), _jsx(Td, { p: 2, children: _jsx(SkeletonText, { noOfLines: 1, skeletonHeight: "2" }) }), _jsx(Td, { p: 2, children: _jsx(SkeletonText, { noOfLines: 1, skeletonHeight: "2" }) }), _jsx(Td, { p: 2, children: _jsx(SkeletonText, { noOfLines: 1, skeletonHeight: "2" }) })] }, rowIndex))) })] }) }));
|
|
5
5
|
};
|
|
6
6
|
export default TableLoading;
|
|
7
|
-
export const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
export const LOADING_PLACEHOLDER_COLUMNS = 4;
|
|
8
|
+
const BAR_WIDTHS = ["72%", "58%", "84%", "46%", "66%", "78%"];
|
|
9
|
+
export const TableBodyLoading = ({ noOfColumns, cells, borderColor, rowsCount = 4, rowHeight = 45, }) => {
|
|
10
|
+
const layout = cells !== null && cells !== void 0 ? cells : Array.from({ length: noOfColumns }, () => "bar");
|
|
11
|
+
return (_jsx(_Fragment, { children: Array.from({ length: rowsCount }).map((_, row) => (_jsx(Tr, { "aria-hidden": "true", children: layout.map((kind, col) => (_jsxs(Td, { px: kind === "checkbox" ? 0 : 3, py: 0, height: `${rowHeight}px`, boxSizing: "border-box", border: "none", borderBottom: `0.0625rem solid ${borderColor}`, textAlign: kind === "checkbox" ? "center" : undefined, children: [kind === "checkbox" && (_jsx(Skeleton, { boxSize: "1rem", borderRadius: "sm", variant: "shine", display: "inline-block", verticalAlign: "middle" })), kind === "bar" && (_jsx(Skeleton, { height: "0.75rem", width: BAR_WIDTHS[(row * 3 + col) % BAR_WIDTHS.length], borderRadius: "full", variant: "shine" }))] }, col))) }, row))) }));
|
|
11
12
|
};
|
|
@@ -6,7 +6,7 @@ import { useCustomTheme } from "../../../Theme/useCustomTheme.js";
|
|
|
6
6
|
import { raisedRule } from "../../../Theme/tokens/builders/surfaceRaised.js";
|
|
7
7
|
import { listRowBackgrounds } from "../../../Theme/tokens/builders/rowStates.js";
|
|
8
8
|
import { optionRowSpec, OPTION_ROW_RADIUS } from "../../../Theme/tokens/primitives/optionRowSizes.js";
|
|
9
|
-
import { optionRowInk, optionRowWeight } from "../../Select/optionRowInk.js";
|
|
9
|
+
import { optionRowCursorSx, optionRowInk, optionRowWeight } from "../../Select/optionRowInk.js";
|
|
10
10
|
import { useExclusiveOverlay } from "../../../Hooks/useExclusiveOverlay.js";
|
|
11
11
|
const CompactSelect = ({ options, value, placeholder = "Select", height = "22px", onSelect, size = "xs" }) => {
|
|
12
12
|
const theme = useCustomTheme();
|
|
@@ -58,18 +58,9 @@ const CompactSelect = ({ options, value, placeholder = "Select", height = "22px"
|
|
|
58
58
|
}, sx: { fontSize: "0.75rem", height: "22px" } }), _jsxs(Box, { role: "listbox", "aria-label": placeholder, maxH: "12rem", overflowY: "auto", borderTop: "1px solid", borderColor: raisedRule(theme.colors), onKeyDown: handleListKeyDown, children: [filtered.map((opt, i) => {
|
|
59
59
|
const selected = (value === null || value === void 0 ? void 0 : value.id) === opt.id;
|
|
60
60
|
const isActive = i === activeIndex;
|
|
61
|
-
const rowBg = selected
|
|
62
|
-
? isActive
|
|
63
|
-
? rowBackgrounds.selectedActive
|
|
64
|
-
: rowBackgrounds.selected
|
|
65
|
-
: isActive
|
|
66
|
-
? rowBackgrounds.active
|
|
67
|
-
: theme.colors.transparent;
|
|
68
61
|
return (_jsxs(Box, { as: "button", type: "button", role: "option", "aria-selected": selected, tabIndex: isActive ? 0 : -1, ref: (el) => {
|
|
69
62
|
optionRefs.current[i] = el;
|
|
70
|
-
}, w: `calc(100% - 2 * ${spec.mx})`, minH: spec.minH, textAlign: "left", border: "none", fontFamily: "inherit", display: "flex", alignItems: "center", gap: spec.gap, mx: spec.mx, px: spec.px, py: spec.py, borderRadius: OPTION_ROW_RADIUS, cursor: "pointer", color: optionRowInk(theme.colors, selected), fontSize: spec.fontSize, fontWeight: optionRowWeight(selected),
|
|
71
|
-
bg: selected ? rowBackgrounds.selectedActive : rowBackgrounds.active,
|
|
72
|
-
}, bg: rowBg, onClick: () => {
|
|
63
|
+
}, w: `calc(100% - 2 * ${spec.mx})`, minH: spec.minH, textAlign: "left", border: "none", fontFamily: "inherit", display: "flex", alignItems: "center", gap: spec.gap, mx: spec.mx, px: spec.px, py: spec.py, borderRadius: OPTION_ROW_RADIUS, cursor: "pointer", color: optionRowInk(theme.colors, selected), fontSize: spec.fontSize, fontWeight: optionRowWeight(selected), bg: "transparent", ...optionRowCursorSx(rowBackgrounds), onClick: () => {
|
|
73
64
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(opt);
|
|
74
65
|
setIsOpen(false);
|
|
75
66
|
setQuery("");
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { createContext, useContext, useMemo } from "react";
|
|
2
2
|
import { useCustomTheme } from "../../../Theme/useCustomTheme.js";
|
|
3
3
|
import { isDarkCanvas } from "../../../Theme/tokens/builders/accentText.js";
|
|
4
|
-
import {
|
|
4
|
+
import { studioPreset } from "./studio.js";
|
|
5
5
|
const TableVariantContext = createContext(null);
|
|
6
6
|
export const TableVariantProvider = TableVariantContext.Provider;
|
|
7
|
-
/** No provider means the
|
|
7
|
+
/** No provider means the default variant — studio, the same preset `Table` falls back to. */
|
|
8
8
|
export function useTableVariant() {
|
|
9
9
|
const provided = useContext(TableVariantContext);
|
|
10
10
|
const theme = useCustomTheme();
|
|
11
11
|
const isDark = isDarkCanvas(theme.colors.backgroundColor.main);
|
|
12
|
-
return useMemo(() => provided !== null && provided !== void 0 ? provided :
|
|
12
|
+
return useMemo(() => provided !== null && provided !== void 0 ? provided : studioPreset(theme.colors, isDark), [provided, theme.colors, isDark]);
|
|
13
13
|
}
|
|
@@ -15,7 +15,11 @@ export default function WorkspaceTrayPreview({ children, preview, enabled = true
|
|
|
15
15
|
const [open, setOpen] = useState(false);
|
|
16
16
|
const openTimer = useRef(null);
|
|
17
17
|
const closeTimer = useRef(null);
|
|
18
|
+
const openRef = useRef(false);
|
|
18
19
|
const setOpenState = useCallback((next) => {
|
|
20
|
+
if (openRef.current === next)
|
|
21
|
+
return;
|
|
22
|
+
openRef.current = next;
|
|
19
23
|
setOpen(next);
|
|
20
24
|
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(next);
|
|
21
25
|
}, [onOpenChange]);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Flex, HStack, IconButton, Modal, ModalContent, ModalOverlay, Text, useModalContext, } from "@chakra-ui/react";
|
|
2
|
+
import { Box, Flex, HStack, IconButton, Modal, ModalContent, ModalOverlay, Portal, Text, useModalContext, } from "@chakra-ui/react";
|
|
3
3
|
import { useEffect } from "react";
|
|
4
4
|
import { ExternalLink, Minus, X } from "lucide-react";
|
|
5
5
|
import { useCustomTheme } from "../../Theme/useCustomTheme.js";
|
|
6
6
|
import zIndices from "../../Theme/tokens/primitives/zIndices.js";
|
|
7
7
|
import { accentTextOnCanvas } from "../../Theme/tokens/builders/accentText.js";
|
|
8
|
-
// NOTE: no maximize/restore toggle (removed by product decision)
|
|
8
|
+
// NOTE: no maximize/restore toggle (removed by product decision); onMedium/onMaximize stay as deprecated no-ops.
|
|
9
9
|
const WINDOW_SIZE = { maxW: "88rem", h: "92vh" };
|
|
10
10
|
const WindowTitle = ({ testId, color, children }) => {
|
|
11
11
|
const { headerId, setHeaderMounted } = useModalContext();
|
|
@@ -16,7 +16,8 @@ const WindowTitle = ({ testId, color, children }) => {
|
|
|
16
16
|
return (_jsx(Text, { id: headerId, fontSize: "sm", fontWeight: 600, color: color, noOfLines: 1, "data-testid": `${testId}-title`, children: children }));
|
|
17
17
|
};
|
|
18
18
|
// Presentational floating "workspace window" (Jira-style dialog), headless — the parent owns window state.
|
|
19
|
-
export default function WorkspaceWindow({ title, state, children, onMinimize, onClose, onOpenFullPage, onOverlayClick, headerActions, testId = "workspace-window", }) {
|
|
19
|
+
export default function WorkspaceWindow({ title, state, children, onMinimize, onClose, onOpenFullPage, onOverlayClick, headerActions, labels, finalFocusRef, testId = "workspace-window", }) {
|
|
20
|
+
var _a, _b, _c;
|
|
20
21
|
// Must run before the early return: a minimized render would otherwise skip the hook
|
|
21
22
|
// and change hook order when the window reopens.
|
|
22
23
|
const theme = useCustomTheme();
|
|
@@ -26,28 +27,34 @@ export default function WorkspaceWindow({ title, state, children, onMinimize, on
|
|
|
26
27
|
return (_jsxs(Modal, { isOpen: true, onClose: () => onClose === null || onClose === void 0 ? void 0 : onClose(), size: "full", isCentered: true, scrollBehavior: "inside",
|
|
27
28
|
// Don't discard unsaved work on an accidental overlay click / Esc — the
|
|
28
29
|
// parent decides via the explicit Close control.
|
|
29
|
-
closeOnOverlayClick: false, closeOnEsc: false, children: [_jsx(ModalOverlay, { backdropFilter: "blur(3px)" }), _jsx(ModalContent, { bg: "transparent", boxShadow: "none", m: 0, display: "flex", alignItems: "center", justifyContent: "center",
|
|
30
|
+
closeOnOverlayClick: false, closeOnEsc: false, finalFocusRef: finalFocusRef, children: [_jsx(ModalOverlay, { backdropFilter: "blur(3px)" }), _jsx(ModalContent, { bg: "transparent", boxShadow: "none", m: 0, display: "flex", alignItems: "center", justifyContent: "center",
|
|
30
31
|
// NOTE: size="full" blocks Chakra's own closeOnOverlayClick — detect the outside click ourselves instead.
|
|
31
32
|
onMouseDown: (e) => {
|
|
32
33
|
if (e.target === e.currentTarget)
|
|
33
34
|
onOverlayClick === null || onOverlayClick === void 0 ? void 0 : onOverlayClick();
|
|
34
|
-
}, "data-testid": `${testId}-backdrop`, children: _jsxs(Box, { bg: theme.colors.surfaceRaised, borderRadius: "xl", boxShadow: "2xl", overflow: "hidden", w: "100%", maxW: size.maxW, h: size.h, display: "flex", flexDirection: "column", "data-testid": testId, "data-window-state": state, children: [_jsxs(Flex, { align: "center", justify: "space-between", px: 3, py: 2, borderBottomWidth: "1px", borderColor: theme.colors.boxborder[200], bg: theme.colors.background[100], flexShrink: 0, children: [_jsx(WindowTitle, { testId: testId, color: theme.colors.text[700], children: title }), _jsxs(HStack, { spacing: 1, children: [headerActions, onOpenFullPage ? (_jsx(IconButton, { "aria-label": "Open full page", size: "xs", variant: "ghost", icon: _jsx(ExternalLink, { size: 14 }), onClick: onOpenFullPage, "data-testid": `${testId}-fullpage` })) : null, onMinimize ? (_jsx(IconButton, { "aria-label": "Minimize", size: "xs", variant: "ghost", icon: _jsx(Minus, { size: 15 }), onClick: onMinimize, "data-testid": `${testId}-minimize` })) : null, onClose ? (_jsx(IconButton, { "aria-label": "Close", size: "xs", variant: "ghost", colorScheme: "red", icon: _jsx(X, { size: 15 }), onClick: onClose, "data-testid": `${testId}-close` })) : null] })] }), _jsx(Box, { flex: "1", overflow: "auto", px: { base: 3, md: 5 }, py: 4, children: children })] }) })] }));
|
|
35
|
+
}, "data-testid": `${testId}-backdrop`, children: _jsxs(Box, { bg: theme.colors.surfaceRaised, borderRadius: "xl", boxShadow: "2xl", overflow: "hidden", w: "100%", maxW: size.maxW, h: size.h, display: "flex", flexDirection: "column", "data-testid": testId, "data-window-state": state, children: [_jsxs(Flex, { align: "center", justify: "space-between", px: 3, py: 2, borderBottomWidth: "1px", borderColor: theme.colors.boxborder[200], bg: theme.colors.background[100], flexShrink: 0, children: [_jsx(WindowTitle, { testId: testId, color: theme.colors.text[700], children: title }), _jsxs(HStack, { spacing: 1, children: [headerActions, onOpenFullPage ? (_jsx(IconButton, { "aria-label": (_a = labels === null || labels === void 0 ? void 0 : labels.openFullPage) !== null && _a !== void 0 ? _a : "Open full page", size: "xs", variant: "ghost", icon: _jsx(ExternalLink, { size: 14 }), onClick: onOpenFullPage, "data-testid": `${testId}-fullpage` })) : null, onMinimize ? (_jsx(IconButton, { "aria-label": (_b = labels === null || labels === void 0 ? void 0 : labels.minimize) !== null && _b !== void 0 ? _b : "Minimize", size: "xs", variant: "ghost", icon: _jsx(Minus, { size: 15 }), onClick: onMinimize, "data-testid": `${testId}-minimize` })) : null, onClose ? (_jsx(IconButton, { "aria-label": (_c = labels === null || labels === void 0 ? void 0 : labels.close) !== null && _c !== void 0 ? _c : "Close", size: "xs", variant: "ghost", colorScheme: "red", icon: _jsx(X, { size: 15 }), onClick: onClose, "data-testid": `${testId}-close` })) : null] })] }), _jsx(Box, { flex: "1", overflow: "auto", px: { base: 3, md: 5 }, py: 4, children: children })] }) })] }));
|
|
35
36
|
}
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
const cssLength = (value) => (typeof value === "number" ? `${value}px` : value);
|
|
38
|
+
// Portalled above modal overlays; aria-live keeps Chakra's modal aria-hidden off it, data-no-focus-lock keeps the focus trap off it.
|
|
39
|
+
export function WorkspaceTray({ items, onRestore, onClose, testId = "workspace-tray", placement = "bottom-end", offset, closeLabel, dirtyLabel = "Unsaved changes", label = "Minimized windows", renderItem, }) {
|
|
40
|
+
var _a, _b;
|
|
38
41
|
const theme = useCustomTheme();
|
|
39
42
|
if (!items.length)
|
|
40
43
|
return null;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
44
|
+
const atEnd = placement === "bottom-end";
|
|
45
|
+
const inset = {
|
|
46
|
+
bottom: cssLength((_a = offset === null || offset === void 0 ? void 0 : offset.y) !== null && _a !== void 0 ? _a : "1rem"),
|
|
47
|
+
[atEnd ? "right" : "left"]: cssLength((_b = offset === null || offset === void 0 ? void 0 : offset.x) !== null && _b !== void 0 ? _b : "1rem"),
|
|
48
|
+
};
|
|
49
|
+
const ink = accentTextOnCanvas(theme.colors.primary, theme.colors.primary[100]);
|
|
50
|
+
return (_jsx(Portal, { children: _jsx(Flex, { role: "region", "aria-label": label, "aria-live": "polite", "data-no-focus-lock": "true", position: "fixed", ...inset, zIndex: zIndices.modal + 1, direction: atEnd ? "row-reverse" : "row", wrap: "wrap-reverse", justify: "flex-start", gap: 2, maxW: { base: "calc(100vw - 2rem)", md: "36rem" }, "data-testid": testId, children: items.map((item) => {
|
|
51
|
+
const api = {
|
|
52
|
+
restore: () => onRestore === null || onRestore === void 0 ? void 0 : onRestore(item.id),
|
|
53
|
+
close: () => onClose === null || onClose === void 0 ? void 0 : onClose(item.id),
|
|
54
|
+
};
|
|
55
|
+
if (renderItem) {
|
|
56
|
+
return _jsx(Box, { children: renderItem(item, api) }, item.id);
|
|
57
|
+
}
|
|
58
|
+
return (_jsxs(HStack, { spacing: 1, pl: 3, pr: 1, py: 1, borderRadius: "full", bg: theme.colors.primary[100], color: ink, boxShadow: "md", borderWidth: "1px", borderColor: theme.colors.primary[200], "data-testid": `${testId}-pill`, children: [item.isDirty ? (_jsx(Box, { role: "img", "aria-label": dirtyLabel, boxSize: "0.5rem", borderRadius: "full", bg: "currentColor", flexShrink: 0, "data-testid": `${testId}-dirty` })) : null, _jsxs(Box, { as: "button", type: "button", fontSize: "sm", onClick: api.restore, "data-testid": `${testId}-restore`, maxW: "16rem", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", children: [item.title, item.subtitle ? (_jsx(Box, { as: "span", fontWeight: 400, ml: 1.5, children: item.subtitle })) : null] }), onClose ? (_jsx(IconButton, { "aria-label": closeLabel ? closeLabel(item) : "Close", size: "xs", variant: "ghost", borderRadius: "full", minW: "auto", h: "auto", p: 1, color: "inherit", icon: _jsx(X, { size: 13 }), onClick: api.close, "data-testid": `${testId}-close` })) : null] }, item.id));
|
|
59
|
+
}) }) }));
|
|
53
60
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createMultiStyleConfigHelpers, cssVar } from "@chakra-ui/react";
|
|
2
2
|
import { menuAnatomy } from "@chakra-ui/anatomy";
|
|
3
3
|
import { listRowBackgrounds } from "../tokens/builders/rowStates.js";
|
|
4
|
+
import { optionRowInk, optionRowWeight } from "../../Components/Select/optionRowInk.js";
|
|
4
5
|
import { OPTION_ROW_SIZES, OPTION_ROW_RADIUS } from "../tokens/primitives/optionRowSizes.js";
|
|
5
6
|
import { paletteOf } from "./paletteFromTheme.js";
|
|
6
7
|
import { POPUP_SURFACE } from "./overlay.styles.js";
|
|
@@ -25,6 +26,7 @@ const baseStyle = definePartsStyle(({ theme }) => {
|
|
|
25
26
|
...POPUP_SURFACE,
|
|
26
27
|
},
|
|
27
28
|
item: {
|
|
29
|
+
color: optionRowInk(colors, false),
|
|
28
30
|
minH: itemRowSpec.minH,
|
|
29
31
|
px: itemRowSpec.px,
|
|
30
32
|
py: itemRowSpec.py,
|
|
@@ -37,6 +39,11 @@ const baseStyle = definePartsStyle(({ theme }) => {
|
|
|
37
39
|
_hover: { [$itemBg.variable]: hoverBg, bg: $itemBg.reference },
|
|
38
40
|
_active: { [$itemBg.variable]: activeBg, bg: $itemBg.reference },
|
|
39
41
|
_expanded: { [$itemBg.variable]: hoverBg, bg: $itemBg.reference },
|
|
42
|
+
"&[aria-checked=true]": {
|
|
43
|
+
color: optionRowInk(colors, true),
|
|
44
|
+
fontWeight: optionRowWeight(true),
|
|
45
|
+
"& .chakra-menu__icon-wrapper": { color: colors.accentText },
|
|
46
|
+
},
|
|
40
47
|
},
|
|
41
48
|
};
|
|
42
49
|
});
|
|
@@ -23,7 +23,7 @@ import { Card } from "./Card.styles.js";
|
|
|
23
23
|
// NOTE: guards untethemed scales (blackAlpha/whiteAlpha) whose rgba() rungs would throw in hexToRgb.
|
|
24
24
|
const isHexColor = (color) => typeof color === "string" && /^#([0-9a-f]{3}|[0-9a-f]{6})$/i.test(color);
|
|
25
25
|
const solidFillStyle = (palette, swatch) => {
|
|
26
|
-
const rung = solidFillRung(swatch, palette.white);
|
|
26
|
+
const rung = solidFillRung(swatch, palette.white, palette.backgroundColor.main);
|
|
27
27
|
const bg = swatch[rung];
|
|
28
28
|
return {
|
|
29
29
|
bg,
|
|
@@ -158,7 +158,7 @@ const Radio = {
|
|
|
158
158
|
baseStyle: ({ theme, colorScheme }) => {
|
|
159
159
|
const palette = paletteOf(theme);
|
|
160
160
|
const swatch = scaleFor(palette, colorScheme);
|
|
161
|
-
const fill = swatch[solidFillRung(swatch, palette.white)];
|
|
161
|
+
const fill = swatch[solidFillRung(swatch, palette.white, palette.backgroundColor.main)];
|
|
162
162
|
const dot = labelOnFill(fill, palette.white, palette.black);
|
|
163
163
|
const hoverFill = resolveHoverTint(fill, fill);
|
|
164
164
|
return {
|
|
@@ -19,6 +19,11 @@ const DARK_CANVAS_LUMINANCE = 0.2;
|
|
|
19
19
|
export const isDarkCanvas = (canvas) => relativeLuminance(canvas) < DARK_CANVAS_LUMINANCE;
|
|
20
20
|
// NOTE: held to AA in both modes now — some brands' light [500] no longer passes through untouched.
|
|
21
21
|
export const accentTextOnCanvas = (scale, canvas) => pickAccentText(scale, canvas);
|
|
22
|
+
/** Accent ink for chrome that can land on any plane (canvas, card, overlay): the first rung clearing AA on all. */
|
|
23
|
+
export const accentTextOnPlanes = (scale, planes) => {
|
|
24
|
+
const found = SEARCH_ORDER.find((rung) => planes.every((plane) => contrastRatio(scale[rung], plane) >= AA_NORMAL_TEXT));
|
|
25
|
+
return scale[found !== null && found !== void 0 ? found : SEARCH_ORDER[SEARCH_ORDER.length - 1]];
|
|
26
|
+
};
|
|
22
27
|
// NOTE: white/black must be the mode-stable absolutes, not an adaptive token — always clears AA.
|
|
23
28
|
export const onFilled = (fill, white, black) => contrastRatio(white, fill) >= AA_NORMAL_TEXT ? white : black;
|
|
24
29
|
// NOTE: resolves against whichever gradient stop is lighter — the harder case for ink to clear.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { contrastRatio } from "./color.js";
|
|
2
2
|
import { AA_NORMAL_TEXT, isDarkCanvas, onFilled } from "./accentText.js";
|
|
3
|
-
import { AA_NON_TEXT } from "./outlineRung.js";
|
|
3
|
+
import { AA_NON_TEXT, CHROME_BORDER } from "./outlineRung.js";
|
|
4
4
|
import { memoize, scaleKey } from "./memo.js";
|
|
5
5
|
const RUNGS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900];
|
|
6
6
|
// NOTE: "darker than [500]" is [600]/[700] in light but [400]/[300] in dark, since dark ramps run dark -> light.
|
|
@@ -40,15 +40,28 @@ const steppedRung = (base, canvas, step) => {
|
|
|
40
40
|
const dir = isDarkCanvas(canvas) ? -100 : 100;
|
|
41
41
|
return Math.min(900, Math.max(50, base + dir * step));
|
|
42
42
|
};
|
|
43
|
-
|
|
43
|
+
const steppedTowardBase = (from, base) => RUNGS[RUNGS.indexOf(from) + (from > base ? -1 : 1)];
|
|
44
|
+
/**
|
|
45
|
+
* Hover (step 0) or active (step 1) fill rung, one step darker than `solidFillRung`. A step may not
|
|
46
|
+
* flip the label's side of AA (zinc dark: near-white fill, black ink) or fall below `CHROME_BORDER`
|
|
47
|
+
* against the canvas (a pressed warning solid used to reach 1.00:1 on the card).
|
|
48
|
+
*/
|
|
44
49
|
export const darkerFillRung = (scale, canvas, white, step) => {
|
|
45
50
|
const base = solidFillRung(scale, white, canvas);
|
|
51
|
+
const wantsWhite = contrastRatio(white, scale[base]) >= AA_NORMAL_TEXT;
|
|
52
|
+
const holds = (rung) => contrastRatio(scale[rung], canvas) >= CHROME_BORDER &&
|
|
53
|
+
(contrastRatio(white, scale[rung]) >= AA_NORMAL_TEXT) === wantsWhite;
|
|
54
|
+
let rung;
|
|
46
55
|
if (base === 500) {
|
|
47
56
|
const mode = isDarkCanvas(canvas) ? "dark" : "light";
|
|
48
|
-
|
|
57
|
+
rung = FILL_STEP_RUNGS[mode][step];
|
|
49
58
|
}
|
|
50
|
-
|
|
51
|
-
|
|
59
|
+
else {
|
|
60
|
+
rung = steppedRung(base, canvas, step === 0 ? 1 : 2);
|
|
61
|
+
}
|
|
62
|
+
while (rung !== base && !holds(rung))
|
|
63
|
+
rung = steppedTowardBase(rung, base);
|
|
64
|
+
return rung;
|
|
52
65
|
};
|
|
53
66
|
/** Label ink for a specific fill swatch — always `onFilled`, exported for style configs. */
|
|
54
67
|
export const labelOnFill = (fill, white, black) => onFilled(fill, white, black);
|
|
@@ -7,8 +7,8 @@ export const bandOn = (fill, plane) => holds(fill, plane, MIN_PERCEPTIBLE_STEP)
|
|
|
7
7
|
export const recessOn = (fill, plane) => holds(fill, plane, MIN_PERCEPTIBLE_STEP)
|
|
8
8
|
? fill
|
|
9
9
|
: lift(DEFAULT_BLACK, plane, MIN_PERCEPTIBLE_STEP);
|
|
10
|
-
export const
|
|
10
|
+
export const ruleOn = (colors, plane) => {
|
|
11
11
|
const rule = colors.boxborder[200];
|
|
12
|
-
|
|
13
|
-
return holds(rule, card, CHROME_RULE) ? rule : liftToContrast(rule, card, CHROME_RULE);
|
|
12
|
+
return holds(rule, plane, CHROME_RULE) ? rule : liftToContrast(rule, plane, CHROME_RULE);
|
|
14
13
|
};
|
|
14
|
+
export const cardRule = (colors) => ruleOn(colors, colors.background[50]);
|
package/dist/esm/Utils/table.js
CHANGED
|
@@ -66,7 +66,7 @@ export function buildSemanticStatusPalette(toneByValue, theme) {
|
|
|
66
66
|
return Object.fromEntries(Object.entries(toneByValue).map(([value, key]) => {
|
|
67
67
|
const scale = scales[key];
|
|
68
68
|
const tone = resolveSoftTone(c, scale);
|
|
69
|
-
const solidRung = solidFillRung(scale, c.white);
|
|
69
|
+
const solidRung = solidFillRung(scale, c.white, c.backgroundColor.main);
|
|
70
70
|
const solid = scale[solidRung];
|
|
71
71
|
return [
|
|
72
72
|
value,
|
|
@@ -108,7 +108,7 @@ export function buildTablePalette(theme) {
|
|
|
108
108
|
];
|
|
109
109
|
return scales.map((scale) => {
|
|
110
110
|
const tone = resolveSoftTone(c, scale);
|
|
111
|
-
const solidRung = solidFillRung(scale, c.white);
|
|
111
|
+
const solidRung = solidFillRung(scale, c.white, c.backgroundColor.main);
|
|
112
112
|
const solid = scale[solidRung];
|
|
113
113
|
return {
|
|
114
114
|
solid,
|
package/dist/esm/index.js
CHANGED
|
@@ -149,12 +149,12 @@ export { useChartTheme } from "./Theme/useChartTheme.js";
|
|
|
149
149
|
// custom components against `ColorScale`/`PaletteProps` tokens can reuse the same logic instead
|
|
150
150
|
// of re-deriving contrast math themselves.
|
|
151
151
|
export { statusGradient, inkSafeGradient, chipFill, chipBorder, ACCENT_GRADIENT, STATUS_INK, } from "./Components/PlanPill/planPillGradient.js";
|
|
152
|
-
export { isDarkCanvas, onFilled, onGradient, accentTextOnCanvas, pickAccentText, AA_NORMAL_TEXT, DARK_CANVAS_LUMINANCE, } from "./Theme/tokens/builders/accentText.js";
|
|
152
|
+
export { isDarkCanvas, onFilled, onGradient, accentTextOnCanvas, accentTextOnPlanes, pickAccentText, AA_NORMAL_TEXT, DARK_CANVAS_LUMINANCE, } from "./Theme/tokens/builders/accentText.js";
|
|
153
153
|
// Filled-surface helpers — use whenever you paint a `bg` from a ColorScale (buttons, badges,
|
|
154
154
|
// chips, alerts). Never pair `scale[500]` with `onFilled` or `colors.white` by hand.
|
|
155
155
|
export { solidFillRung, darkerFillRung, labelOnFill, resolveFilledSurface, } from "./Theme/tokens/builders/filledSurface.js";
|
|
156
156
|
// Ink for a custom option row (a `SearchSelect` `option.view` or `Select` `renderOption` node).
|
|
157
|
-
export { optionRowInk, optionRowWeight, optionRowDescriptionInk, } from "./Components/Select/optionRowInk.js";
|
|
157
|
+
export { optionRowInk, optionRowWeight, optionRowDescriptionInk, optionRowFill, optionRowCursorSx, } from "./Components/Select/optionRowInk.js";
|
|
158
158
|
// Pure color math backing the helpers above (and `buildDarkPalette`) — no Chakra/React/DOM
|
|
159
159
|
// dependency, safe for the mobile port. `relativeLuminance`/`contrastRatio` are the WCAG 2.1
|
|
160
160
|
// primitives; `compositeOver` flattens a translucent color onto a backdrop first (an alpha
|
|
@@ -170,7 +170,7 @@ export { scrollbarStyles, globalScrollbarStyles, SCROLLBAR_WIDTH, } from "./Them
|
|
|
170
170
|
export { placeholderInk, placeholderInkOn, fieldSurfaces } from "./Theme/tokens/builders/placeholderInk.js";
|
|
171
171
|
export { resolveGradient, gradientCss, inkSafeGradient as inkSafeGradientToken, } from "./Theme/tokens/builders/gradientInk.js";
|
|
172
172
|
export { CONTROL_SIZES, CONTROL_SIZE_NAMES, DEFAULT_CONTROL_SIZE, isControlSize, } from "./Theme/tokens/primitives/controlSizes.js";
|
|
173
|
-
export { MOTION_MS, MOTION_EASE, MOTION_EASE_OUT, MOTION_EASE_IN, MOTION_BEZIER, MOTION_LOOP_MS, transitionFor, motionTransition, } from "./Theme/tokens/primitives/motion.js";
|
|
173
|
+
export { MOTION_MS, MOTION_EASE, MOTION_EASE_OUT, MOTION_EASE_IN, MOTION_BEZIER, MOTION_LOOP_MS, MOTION_PRESS_SCALE, transitionFor, motionTransition, } from "./Theme/tokens/primitives/motion.js";
|
|
174
174
|
export { RADIUS_ROLE } from "./Theme/tokens/primitives/radii.js";
|
|
175
175
|
export { BORDER_WIDTHS } from "./Theme/tokens/primitives/borderWidths.js";
|
|
176
176
|
export { DISABLED_OPACITY } from "./Theme/tokens/primitives/states.js";
|
|
@@ -180,7 +180,7 @@ export { TONES, isTone, toneToColorScheme, toneToSemantic, toneScale, toneInk, r
|
|
|
180
180
|
export { overlayScrim, SCRIM_OPACITY } from "./Theme/tokens/builders/scrim.js";
|
|
181
181
|
export { tooltipSurface } from "./Theme/tokens/builders/tooltipSurface.js";
|
|
182
182
|
export { buildSurfaceRaised, raisedRule, RAISED_OVERLAY } from "./Theme/tokens/builders/surfaceRaised.js";
|
|
183
|
-
export { bandOn, recessOn, cardRule } from "./Theme/tokens/builders/planeStep.js";
|
|
183
|
+
export { bandOn, recessOn, cardRule, ruleOn } from "./Theme/tokens/builders/planeStep.js";
|
|
184
184
|
export { overlayScrimStyles, OVERLAY_BLUR } from "./Theme/chakra/overlay.styles.js";
|
|
185
185
|
export { usePrefersReducedMotion, reducedMotionSx, REDUCED_MOTION_QUERY, MOTION_KEEP_CLASS, } from "./Theme/chakra/motion.js";
|
|
186
186
|
export { useFieldIds } from "./Components/Common/useFieldIds.js";
|
package/dist/index.d.ts
CHANGED
|
@@ -99,7 +99,7 @@ import OrganizationDetails from "./Components/OrganizationDetails/OrganizationDe
|
|
|
99
99
|
export { Accordion, AlertDialog, ApexBarChart, ApexPieChart, ApexPolarChart, ApexLineChart, ApexAreaChart, ApexRadialChart, Breadcrumbs, Button, ButtonGroupIcon, Card, Checkbox, ContactForm, DatePicker, Drawer, DrawerHeader, DrawerBody, DrawerFooter, Dropdown, Editor, EmptyState, WorkspaceWindow, WorkspaceTray, WorkspaceTrayPreview, FieldSelectModal, FilePreview, FilePreviewTrigger, FileUpload, FileUploader, FilterSidebar, FormWrapper, LazyWrapper, MoreItems, PdfViewer, ScrollToTop, CopyButton, StageProgress, StageItem, OrgSwitcher, AppSwitcher, LimitReachedModal, UpgradeButton, PlanPill, PlanBadge, formatPlanElapsed, formatPlanExpiry, formatPlanRemaining, resolvePlanBadge, splitMonthsAndDays, UserDetails, RolesPermission, CustomModulesTable, SignInActivityTable, OrganizationDetails, Header, HeaderActions, InputTextArea, InputSwitch, KanbanBoard, KanbanActions, Loading, Modal, ModalHeader, ModalBody, ModalFooter, NavigationBar, Notification, NoteTextArea, MultiSelect, NumberInput, PaymentCard, PhoneNumberInput, PinInput, ProductCard, ProductDetails, ProfileCard, ProfileCardHeader, ProfileCardBody, ProfileCardFooter, ProfilePhotoViewer, ProgressBar, RadioButton, RadioButtonGroup, Reorder, Search, Select, SelectV2, SearchSelect, SelectSearch, SideBar, Slider, ScrollbarBox, Skeletons, Switch, ToggleSwitch, SegmentedControl, Table, TableToggle, Tag, TextInput, Timeline, Toaster, ToolTip, OverflowToolTip, useToaster, VerifyEmailOtp, useSidebarPrefs, useIsTruncated, useCustomTheme, ThemesList, debounce, isAllowedReturnUrl, resolveReturnUrl, createAccountHandoff, };
|
|
100
100
|
export default withTheme;
|
|
101
101
|
export type { UserDetailsProps, UserDetailsLabels, UserListItem, SelectedUserDetail, UserDetailRow, RoleOption, AddUserFormValues, ChangeRoleSubmitPayload, } from "./Components/UserDetails/UserDetailsProps";
|
|
102
|
-
export type { WorkspaceWindowProps, WorkspaceWindowState, WorkspaceTrayProps, WorkspaceTrayItem, WorkspaceTrayPreviewProps, } from "./Components/WorkspaceWindow/WorkspaceWindowProps";
|
|
102
|
+
export type { WorkspaceWindowProps, WorkspaceWindowLabels, WorkspaceWindowState, WorkspaceTrayProps, WorkspaceTrayItem, WorkspaceTrayPreviewProps, } from "./Components/WorkspaceWindow/WorkspaceWindowProps";
|
|
103
103
|
export type { RolesPermissionProps, RolesPermissionLabels, RolesPermissionView, RolesPermissionMode, Permission, PermissionKey, RoleData, } from "./Components/RolesPermission/RolesPermissionProps";
|
|
104
104
|
export type { CustomModulesTableProps, CustomModulesTableLabels, ModuleItem, UpdateModulePayload, } from "./Components/CustomModulesTable/CustomModulesTableProps";
|
|
105
105
|
export type { SignInActivityTableProps, SignInActivityLabels, SignInDevice, } from "./Components/SignInActivityTable/SignInActivityTableProps";
|
|
@@ -131,10 +131,10 @@ export { useChartTheme } from "./Theme/useChartTheme";
|
|
|
131
131
|
export type { RechartsAxisTheme, RechartsChartTheme, RechartsGridTheme, RechartsLegendTheme, RechartsTooltipTheme, } from "./Theme/useChartTheme";
|
|
132
132
|
export type { ColorMode, ResolvedColorMode, ThemeName, PaletteProps, ColorScale, BrandScale, SemanticColors, NamedSurfaces, FocusRingTokens, } from "./Theme/tokens/types";
|
|
133
133
|
export { statusGradient, inkSafeGradient, chipFill, chipBorder, ACCENT_GRADIENT, STATUS_INK, } from "./Components/PlanPill/planPillGradient";
|
|
134
|
-
export { isDarkCanvas, onFilled, onGradient, accentTextOnCanvas, pickAccentText, AA_NORMAL_TEXT, DARK_CANVAS_LUMINANCE, } from "./Theme/tokens/builders/accentText";
|
|
134
|
+
export { isDarkCanvas, onFilled, onGradient, accentTextOnCanvas, accentTextOnPlanes, pickAccentText, AA_NORMAL_TEXT, DARK_CANVAS_LUMINANCE, } from "./Theme/tokens/builders/accentText";
|
|
135
135
|
export { solidFillRung, darkerFillRung, labelOnFill, resolveFilledSurface, } from "./Theme/tokens/builders/filledSurface";
|
|
136
136
|
export type { FilledSurface } from "./Theme/tokens/builders/filledSurface";
|
|
137
|
-
export { optionRowInk, optionRowWeight, optionRowDescriptionInk, } from "./Components/Select/optionRowInk";
|
|
137
|
+
export { optionRowInk, optionRowWeight, optionRowDescriptionInk, optionRowFill, optionRowCursorSx, } from "./Components/Select/optionRowInk";
|
|
138
138
|
export { hexToRgb, hexToRgba, compositeOver, rgbToHex, rgbToHsl, hslToRgb, hexToHsl, hslToHex, withLightness, mix, relativeLuminance, contrastRatio, } from "./Theme/tokens/builders/color";
|
|
139
139
|
export type { Rgb, Hsl } from "./Theme/tokens/builders/color";
|
|
140
140
|
export type { SelectV2Props, SelectV2Size, OptionProp as SelectV2Option } from "./Components/SelectV2/SelectV2Props";
|
|
@@ -194,7 +194,7 @@ export { resolveGradient, gradientCss, inkSafeGradient as inkSafeGradientToken,
|
|
|
194
194
|
export type { Gradient, ResolvedGradient, } from "./Theme/tokens/builders/gradientInk";
|
|
195
195
|
export { CONTROL_SIZES, CONTROL_SIZE_NAMES, DEFAULT_CONTROL_SIZE, isControlSize, } from "./Theme/tokens/primitives/controlSizes";
|
|
196
196
|
export type { ControlSize, ControlSizeSpec } from "./Theme/tokens/primitives/controlSizes";
|
|
197
|
-
export { MOTION_MS, MOTION_EASE, MOTION_EASE_OUT, MOTION_EASE_IN, MOTION_BEZIER, MOTION_LOOP_MS, transitionFor, motionTransition, } from "./Theme/tokens/primitives/motion";
|
|
197
|
+
export { MOTION_MS, MOTION_EASE, MOTION_EASE_OUT, MOTION_EASE_IN, MOTION_BEZIER, MOTION_LOOP_MS, MOTION_PRESS_SCALE, transitionFor, motionTransition, } from "./Theme/tokens/primitives/motion";
|
|
198
198
|
export type { MotionSpeed, MotionCurve } from "./Theme/tokens/primitives/motion";
|
|
199
199
|
export { RADIUS_ROLE } from "./Theme/tokens/primitives/radii";
|
|
200
200
|
export type { RadiusRole } from "./Theme/tokens/primitives/radii";
|
|
@@ -208,7 +208,7 @@ export type { Tone, ToneColorScheme } from "./Theme/tokens/builders/tone";
|
|
|
208
208
|
export { overlayScrim, SCRIM_OPACITY } from "./Theme/tokens/builders/scrim";
|
|
209
209
|
export { tooltipSurface } from "./Theme/tokens/builders/tooltipSurface";
|
|
210
210
|
export { buildSurfaceRaised, raisedRule, RAISED_OVERLAY } from "./Theme/tokens/builders/surfaceRaised";
|
|
211
|
-
export { bandOn, recessOn, cardRule } from "./Theme/tokens/builders/planeStep";
|
|
211
|
+
export { bandOn, recessOn, cardRule, ruleOn } from "./Theme/tokens/builders/planeStep";
|
|
212
212
|
export { overlayScrimStyles, OVERLAY_BLUR } from "./Theme/chakra/overlay.styles";
|
|
213
213
|
export { usePrefersReducedMotion, reducedMotionSx, REDUCED_MOTION_QUERY, MOTION_KEEP_CLASS, } from "./Theme/chakra/motion";
|
|
214
214
|
export type { ReducedMotionScope } from "./Theme/chakra/motion";
|
package/dist/index.js
CHANGED
|
@@ -43,12 +43,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
43
43
|
exports.splitMonthsAndDays = exports.resolvePlanBadge = exports.formatPlanRemaining = exports.formatPlanExpiry = exports.formatPlanElapsed = exports.PlanBadge = exports.PlanPill = exports.UpgradeButton = exports.LimitReachedModal = exports.AppSwitcher = exports.OrgSwitcher = exports.StageItem = exports.StageProgress = exports.CopyButton = exports.ScrollToTop = exports.PdfViewer = exports.MoreItems = exports.LazyWrapper = exports.FormWrapper = exports.FilterSidebar = exports.FileUploader = exports.FileUpload = exports.FilePreviewTrigger = exports.FilePreview = exports.FieldSelectModal = exports.WorkspaceTrayPreview = exports.WorkspaceTray = exports.WorkspaceWindow = exports.EmptyState = exports.Editor = exports.Dropdown = exports.DrawerFooter = exports.DrawerBody = exports.DrawerHeader = exports.Drawer = exports.DatePicker = exports.ContactForm = exports.Checkbox = exports.Card = exports.ButtonGroupIcon = exports.Button = exports.Breadcrumbs = exports.ApexRadialChart = exports.ApexAreaChart = exports.ApexLineChart = exports.ApexPolarChart = exports.ApexPieChart = exports.ApexBarChart = exports.AlertDialog = exports.Accordion = void 0;
|
|
44
44
|
exports.Tag = exports.TableToggle = exports.Table = exports.SegmentedControl = exports.ToggleSwitch = exports.Switch = exports.Skeletons = exports.ScrollbarBox = exports.Slider = exports.SideBar = exports.SelectSearch = exports.SearchSelect = exports.SelectV2 = exports.Select = exports.Search = exports.Reorder = exports.RadioButtonGroup = exports.RadioButton = exports.ProgressBar = exports.ProfilePhotoViewer = exports.ProfileCardFooter = exports.ProfileCardBody = exports.ProfileCardHeader = exports.ProfileCard = exports.ProductDetails = exports.ProductCard = exports.PinInput = exports.PhoneNumberInput = exports.PaymentCard = exports.NumberInput = exports.MultiSelect = exports.NoteTextArea = exports.Notification = exports.NavigationBar = exports.ModalFooter = exports.ModalBody = exports.ModalHeader = exports.Modal = exports.Loading = exports.KanbanActions = exports.KanbanBoard = exports.InputSwitch = exports.InputTextArea = exports.HeaderActions = exports.Header = exports.OrganizationDetails = exports.SignInActivityTable = exports.CustomModulesTable = exports.RolesPermission = exports.UserDetails = void 0;
|
|
45
45
|
exports.setRef = exports.mergeRefs = exports.resolveStatusTone = exports.resolveAvatarFill = exports.meetsBodyText = exports.avatarFillFor = exports.AVATAR_SEEDS = exports.FOCUS_RING_WIDTH = exports.FOCUS_HALO_WIDTH = exports.FOCUS_VISIBLE_OVER_STATE = exports.focusVisibleStyles = exports.focusVisibleRing = exports.focusRingShadow = exports.withFocusRing = exports.settleBetween = exports.buildFocusRing = exports.listRowBackgrounds = exports.withOutlineRung = exports.liftToContrast = exports.AA_NON_TEXT = exports.buildDarkPalette = exports.themeNames = exports.palettes = exports.darkPalettes = exports.lightPalettes = exports.brandThemes = exports.AppearanceSettings = exports.useFontSizeSync = exports.resolveFontSize = exports.isFontSize = exports.FONT_SIZE_OPTIONS = exports.DEFAULT_FONT_SIZE = exports.ThemeSwitcher = exports.useThemeMode = exports.PixelizeThemeProvider = exports.createAccountHandoff = exports.resolveReturnUrl = exports.isAllowedReturnUrl = exports.debounce = exports.ThemesList = exports.useCustomTheme = exports.useIsTruncated = exports.useSidebarPrefs = exports.VerifyEmailOtp = exports.useToaster = exports.OverflowToolTip = exports.ToolTip = exports.Toaster = exports.Timeline = exports.TextInput = void 0;
|
|
46
|
-
exports.
|
|
47
|
-
exports.
|
|
48
|
-
exports.
|
|
49
|
-
exports.
|
|
50
|
-
exports.
|
|
51
|
-
exports.TagInput = exports.TimePicker = exports.DEFAULT_DATE_FALLBACK = exports.formatDateRange = exports.formatDateTime = exports.formatDate = exports.SkipLink = exports.VisuallyHidden = exports.FormField = exports.IconButton = exports.ChoiceCardGroup = exports.ChoiceCard = exports.defaultPaginationLabels = exports.Pagination = exports.firstInvalidStep = exports.wizardTransition = exports.Wizard = void 0;
|
|
46
|
+
exports.isDayStateKey = exports.CALENDAR_DAY_CLASS = exports.DAY_STATE_KEYS = exports.contrastRatio = exports.relativeLuminance = exports.mix = exports.withLightness = exports.hslToHex = exports.hexToHsl = exports.hslToRgb = exports.rgbToHsl = exports.rgbToHex = exports.compositeOver = exports.hexToRgba = exports.hexToRgb = exports.optionRowCursorSx = exports.optionRowFill = exports.optionRowDescriptionInk = exports.optionRowWeight = exports.optionRowInk = exports.resolveFilledSurface = exports.labelOnFill = exports.darkerFillRung = exports.solidFillRung = exports.DARK_CANVAS_LUMINANCE = exports.AA_NORMAL_TEXT = exports.pickAccentText = exports.accentTextOnPlanes = exports.accentTextOnCanvas = exports.onGradient = exports.onFilled = exports.isDarkCanvas = exports.STATUS_INK = exports.ACCENT_GRADIENT = exports.chipBorder = exports.chipFill = exports.inkSafeGradient = exports.statusGradient = exports.useChartTheme = exports.labelOnSeries = exports.getDefaultSeriesColors = exports.getCategoricalSeriesColors = exports.chartMode = exports.chartInk = exports.chartAxisLabelColor = exports.CATEGORICAL_SERIES = exports.useDebouncedValue = exports.useDebouncedCallback = exports.toWords = exports.rafThrottle = void 0;
|
|
47
|
+
exports.bandOn = exports.RAISED_OVERLAY = exports.raisedRule = exports.buildSurfaceRaised = exports.tooltipSurface = exports.SCRIM_OPACITY = exports.overlayScrim = exports.resolveSoftTone = exports.toneInk = exports.toneScale = exports.toneToSemantic = exports.toneToColorScheme = exports.isTone = exports.TONES = exports.shadowsFor = exports.TEXT_STYLES = exports.NUMERIC_TEXT = exports.DISABLED_OPACITY = exports.BORDER_WIDTHS = exports.RADIUS_ROLE = exports.motionTransition = exports.transitionFor = exports.MOTION_PRESS_SCALE = exports.MOTION_LOOP_MS = exports.MOTION_BEZIER = exports.MOTION_EASE_IN = exports.MOTION_EASE_OUT = exports.MOTION_EASE = exports.MOTION_MS = exports.isControlSize = exports.DEFAULT_CONTROL_SIZE = exports.CONTROL_SIZE_NAMES = exports.CONTROL_SIZES = exports.inkSafeGradientToken = exports.gradientCss = exports.resolveGradient = exports.fieldSurfaces = exports.placeholderInkOn = exports.placeholderInk = exports.SCROLLBAR_WIDTH = exports.globalScrollbarStyles = exports.scrollbarStyles = exports.useAppSwitcherShortcut = exports.buildSuiteApps = exports.formatShortcut = exports.matchesShortcut = exports.filterApps = exports.appInitials = exports.describeDayStates = exports.resolveDayStateVisual = void 0;
|
|
48
|
+
exports.NotificationList = exports.NotificationPanel = exports.NotificationBell = exports.ConfirmDialog = exports.TabPanel = exports.TabPanels = exports.Tab = exports.TabList = exports.Tabs = exports.Accordian = exports.AudioRecorder = exports.CalendarGrid = exports.SectionRail = exports.BulkSelectionBar = exports.SaveBar = exports.FeedbackForm = exports.PersonChip = exports.initialsFor = exports.avatarScaleKeyFor = exports.resolveAvatarColorway = exports.AvatarGroup = exports.Avatar = exports.SettingsSection = exports.SettingRow = exports.FilterBar = exports.DescriptionList = exports.Spinner = exports.Backdrop = exports.QueryStateBoundary = exports.ErrorState = exports.FormDrawer = exports.CircularProgress = exports.StatusTag = exports.StatCard = exports.PageHeader = exports.fieldMessageStyles = exports.fieldLabelStyles = exports.controlSizeStyles = exports.fieldControlStyles = exports.FieldMessage = exports.useFieldIds = exports.MOTION_KEEP_CLASS = exports.REDUCED_MOTION_QUERY = exports.reducedMotionSx = exports.usePrefersReducedMotion = exports.OVERLAY_BLUR = exports.overlayScrimStyles = exports.ruleOn = exports.cardRule = exports.recessOn = void 0;
|
|
49
|
+
exports.PLAYBACK_SPEEDS = exports.ZOOM_STEP = exports.MAX_ZOOM = exports.MIN_ZOOM = exports.resolveMediaUrl = exports.fileKind = exports.countMedia = exports.planPreview = exports.buildFileItems = exports.buildMediaItems = exports.MediaStatusPanel = exports.MediaScrubber = exports.defaultMediaAudioPlayerLabels = exports.MediaAudioPlayer = exports.defaultMediaViewerLabels = exports.defaultMediaDocumentStageLabels = exports.MediaDocumentStage = exports.defaultMediaVideoPlayerLabels = exports.MediaVideoPlayer = exports.defaultMediaImageViewerLabels = exports.MediaImageViewer = exports.useFileViewer = exports.MediaViewer = exports.RangeSlider = exports.getApiErrorStatus = exports.getApiErrorMessage = exports.defaultValidationMessages = exports.validateYoutubeUrl = exports.validateVideoFile = exports.validateVideoFileType = exports.validateFile = exports.validateFileSize = exports.validateFileType = exports.validatePositiveNumber = exports.validateRequired = exports.validatePassword = exports.validateEmail = exports.EMAIL_REGEX = exports.createEnumLabelResolver = exports.humanize = exports.clearChunkReloadGuard = exports.isChunkLoadError = exports.installPreloadErrorReload = exports.lazyWithRetry = exports.useAnchoredPanelHeight = exports.formatRelativeTime = exports.formatCount = exports.groupConsecutive = exports.sectionizeByDay = exports.NotificationItem = void 0;
|
|
50
|
+
exports.PinToggle = exports.NavLauncher = exports.LauncherTrigger = exports.KbdShortcut = exports.Kbd = exports.QuickAddSheet = exports.ProductCardSkeleton = exports.ProductCardGrid = exports.unitPrice = exports.discountAmount = exports.discountPercent = exports.formatPrice = exports.firstAvailableSelection = exports.priceRange = exports.remainingStock = exports.isOptionAvailable = exports.findVariant = exports.selectionComplete = exports.stockState = exports.LOW_STOCK_THRESHOLD = exports.defaultMediaLightboxLabels = exports.defaultMediaGalleryLabels = exports.MediaLightbox = exports.MediaGallery = exports.PaymentOptionGroup = exports.PaymentOption = exports.AddressCardGroup = exports.AddressCard = exports.DetailSections = exports.ReviewList = exports.ReviewSummary = exports.SpecTable = exports.OffersList = exports.TrustBadges = exports.PincodeChecker = exports.StickyBuyBar = exports.BagBar = exports.OrderStatusTimeline = exports.CouponField = exports.OrderSummary = exports.CartItem = exports.QuantityStepper = exports.VariantSelector = exports.OptionChip = exports.WishlistToggle = exports.ProductBadges = exports.StockStatus = exports.PriceBlock = exports.Rating = exports.SEEK_STEP_SECONDS = void 0;
|
|
51
|
+
exports.TagInput = exports.TimePicker = exports.DEFAULT_DATE_FALLBACK = exports.formatDateRange = exports.formatDateTime = exports.formatDate = exports.SkipLink = exports.VisuallyHidden = exports.FormField = exports.IconButton = exports.ChoiceCardGroup = exports.ChoiceCard = exports.defaultPaginationLabels = exports.Pagination = exports.firstInvalidStep = exports.wizardTransition = exports.Wizard = exports.WizardDialog = exports.flattenScreens = exports.searchLauncherSections = exports.searchLauncher = exports.NewTabLink = void 0;
|
|
52
52
|
const Accordion_1 = __importDefault(require("./Components/Accordion/Accordion"));
|
|
53
53
|
exports.Accordion = Accordion_1.default;
|
|
54
54
|
const AlertDialog_1 = __importDefault(require("./Components/AlertDialog/AlertDialog"));
|
|
@@ -361,6 +361,7 @@ Object.defineProperty(exports, "isDarkCanvas", { enumerable: true, get: function
|
|
|
361
361
|
Object.defineProperty(exports, "onFilled", { enumerable: true, get: function () { return accentText_1.onFilled; } });
|
|
362
362
|
Object.defineProperty(exports, "onGradient", { enumerable: true, get: function () { return accentText_1.onGradient; } });
|
|
363
363
|
Object.defineProperty(exports, "accentTextOnCanvas", { enumerable: true, get: function () { return accentText_1.accentTextOnCanvas; } });
|
|
364
|
+
Object.defineProperty(exports, "accentTextOnPlanes", { enumerable: true, get: function () { return accentText_1.accentTextOnPlanes; } });
|
|
364
365
|
Object.defineProperty(exports, "pickAccentText", { enumerable: true, get: function () { return accentText_1.pickAccentText; } });
|
|
365
366
|
Object.defineProperty(exports, "AA_NORMAL_TEXT", { enumerable: true, get: function () { return accentText_1.AA_NORMAL_TEXT; } });
|
|
366
367
|
Object.defineProperty(exports, "DARK_CANVAS_LUMINANCE", { enumerable: true, get: function () { return accentText_1.DARK_CANVAS_LUMINANCE; } });
|
|
@@ -376,6 +377,8 @@ var optionRowInk_1 = require("./Components/Select/optionRowInk");
|
|
|
376
377
|
Object.defineProperty(exports, "optionRowInk", { enumerable: true, get: function () { return optionRowInk_1.optionRowInk; } });
|
|
377
378
|
Object.defineProperty(exports, "optionRowWeight", { enumerable: true, get: function () { return optionRowInk_1.optionRowWeight; } });
|
|
378
379
|
Object.defineProperty(exports, "optionRowDescriptionInk", { enumerable: true, get: function () { return optionRowInk_1.optionRowDescriptionInk; } });
|
|
380
|
+
Object.defineProperty(exports, "optionRowFill", { enumerable: true, get: function () { return optionRowInk_1.optionRowFill; } });
|
|
381
|
+
Object.defineProperty(exports, "optionRowCursorSx", { enumerable: true, get: function () { return optionRowInk_1.optionRowCursorSx; } });
|
|
379
382
|
// Pure color math backing the helpers above (and `buildDarkPalette`) — no Chakra/React/DOM
|
|
380
383
|
// dependency, safe for the mobile port. `relativeLuminance`/`contrastRatio` are the WCAG 2.1
|
|
381
384
|
// primitives; `compositeOver` flattens a translucent color onto a backdrop first (an alpha
|
|
@@ -434,6 +437,7 @@ Object.defineProperty(exports, "MOTION_EASE_OUT", { enumerable: true, get: funct
|
|
|
434
437
|
Object.defineProperty(exports, "MOTION_EASE_IN", { enumerable: true, get: function () { return motion_1.MOTION_EASE_IN; } });
|
|
435
438
|
Object.defineProperty(exports, "MOTION_BEZIER", { enumerable: true, get: function () { return motion_1.MOTION_BEZIER; } });
|
|
436
439
|
Object.defineProperty(exports, "MOTION_LOOP_MS", { enumerable: true, get: function () { return motion_1.MOTION_LOOP_MS; } });
|
|
440
|
+
Object.defineProperty(exports, "MOTION_PRESS_SCALE", { enumerable: true, get: function () { return motion_1.MOTION_PRESS_SCALE; } });
|
|
437
441
|
Object.defineProperty(exports, "transitionFor", { enumerable: true, get: function () { return motion_1.transitionFor; } });
|
|
438
442
|
Object.defineProperty(exports, "motionTransition", { enumerable: true, get: function () { return motion_1.motionTransition; } });
|
|
439
443
|
var radii_1 = require("./Theme/tokens/primitives/radii");
|
|
@@ -468,6 +472,7 @@ var planeStep_1 = require("./Theme/tokens/builders/planeStep");
|
|
|
468
472
|
Object.defineProperty(exports, "bandOn", { enumerable: true, get: function () { return planeStep_1.bandOn; } });
|
|
469
473
|
Object.defineProperty(exports, "recessOn", { enumerable: true, get: function () { return planeStep_1.recessOn; } });
|
|
470
474
|
Object.defineProperty(exports, "cardRule", { enumerable: true, get: function () { return planeStep_1.cardRule; } });
|
|
475
|
+
Object.defineProperty(exports, "ruleOn", { enumerable: true, get: function () { return planeStep_1.ruleOn; } });
|
|
471
476
|
var overlay_styles_1 = require("./Theme/chakra/overlay.styles");
|
|
472
477
|
Object.defineProperty(exports, "overlayScrimStyles", { enumerable: true, get: function () { return overlay_styles_1.overlayScrimStyles; } });
|
|
473
478
|
Object.defineProperty(exports, "OVERLAY_BLUR", { enumerable: true, get: function () { return overlay_styles_1.OVERLAY_BLUR; } });
|