@okta/odyssey-react-mui 1.14.2 → 1.14.4
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 +8 -0
- package/dist/DataTable/DataTable.js +330 -0
- package/dist/DataTable/DataTable.js.map +1 -0
- package/dist/DataTable/DataTableRowActions.js +89 -0
- package/dist/DataTable/DataTableRowActions.js.map +1 -0
- package/dist/DataTable/DataTableSettings.js +72 -0
- package/dist/DataTable/DataTableSettings.js.map +1 -0
- package/dist/DataTable/constants.js +14 -0
- package/dist/DataTable/constants.js.map +1 -0
- package/dist/DataTable/index.js +14 -0
- package/dist/DataTable/index.js.map +1 -0
- package/dist/DataTable/reorderDataRowsLocally.js +26 -0
- package/dist/DataTable/reorderDataRowsLocally.js.map +1 -0
- package/dist/DataTable/useRowReordering.js +179 -0
- package/dist/DataTable/useRowReordering.js.map +1 -0
- package/dist/IconWithTooltip.js +63 -0
- package/dist/IconWithTooltip.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/labs/DataFilters.js +42 -14
- package/dist/labs/DataFilters.js.map +1 -1
- package/dist/labs/DataTable.js +16 -11
- package/dist/labs/DataTable.js.map +1 -1
- package/dist/labs/index.js +0 -1
- package/dist/labs/index.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui.js +18 -1
- package/dist/properties/ts/odyssey-react-mui.js.map +1 -1
- package/dist/src/DataTable/DataTable.d.ts +133 -0
- package/dist/src/DataTable/DataTable.d.ts.map +1 -0
- package/dist/src/DataTable/DataTableRowActions.d.ts +30 -0
- package/dist/src/DataTable/DataTableRowActions.d.ts.map +1 -0
- package/dist/src/DataTable/DataTableSettings.d.ts +27 -0
- package/dist/src/DataTable/DataTableSettings.d.ts.map +1 -0
- package/dist/src/DataTable/constants.d.ts +13 -0
- package/dist/src/DataTable/constants.d.ts.map +1 -0
- package/dist/src/DataTable/index.d.ts +15 -0
- package/dist/src/DataTable/index.d.ts.map +1 -0
- package/dist/src/DataTable/reorderDataRowsLocally.d.ts +26 -0
- package/dist/src/DataTable/reorderDataRowsLocally.d.ts.map +1 -0
- package/dist/src/DataTable/useRowReordering.d.ts +56 -0
- package/dist/src/DataTable/useRowReordering.d.ts.map +1 -0
- package/dist/src/IconWithTooltip.d.ts +31 -0
- package/dist/src/IconWithTooltip.d.ts.map +1 -0
- package/dist/src/OdysseyTranslationProvider.d.ts +1 -1
- package/dist/src/OdysseyTranslationProvider.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/labs/DataFilters.d.ts.map +1 -1
- package/dist/src/labs/DataTable.d.ts +2 -2
- package/dist/src/labs/DataTable.d.ts.map +1 -1
- package/dist/src/labs/index.d.ts +0 -1
- package/dist/src/labs/index.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui.d.ts +18 -1
- package/dist/src/properties/ts/odyssey-react-mui.d.ts.map +1 -1
- package/dist/src/theme/components.d.ts.map +1 -1
- package/dist/theme/components.js +37 -18
- package/dist/theme/components.js.map +1 -1
- package/dist/tsconfig.production.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/DataTable/DataTable.tsx +538 -0
- package/src/DataTable/DataTableRowActions.tsx +124 -0
- package/src/DataTable/DataTableSettings.tsx +109 -0
- package/src/DataTable/constants.ts +13 -0
- package/src/DataTable/index.tsx +22 -0
- package/src/DataTable/reorderDataRowsLocally.tsx +48 -0
- package/src/DataTable/useRowReordering.tsx +233 -0
- package/src/IconWithTooltip.tsx +90 -0
- package/src/index.ts +2 -0
- package/src/labs/DataFilters.tsx +60 -17
- package/src/labs/DataTable.tsx +24 -11
- package/src/labs/index.ts +0 -1
- package/src/properties/odyssey-react-mui.properties +19 -2
- package/src/properties/ts/odyssey-react-mui.ts +1 -1
- package/src/theme/components.tsx +43 -16
package/src/labs/DataFilters.tsx
CHANGED
|
@@ -30,7 +30,9 @@ import { Button } from "../Button";
|
|
|
30
30
|
import {
|
|
31
31
|
IconButton as MuiIconButton,
|
|
32
32
|
Menu as MuiMenu,
|
|
33
|
+
MenuItem as MuiMenuItem,
|
|
33
34
|
Popover as MuiPopover,
|
|
35
|
+
Typography as MuiTypography,
|
|
34
36
|
} from "@mui/material";
|
|
35
37
|
import {
|
|
36
38
|
CheckIcon,
|
|
@@ -38,14 +40,14 @@ import {
|
|
|
38
40
|
CloseCircleFilledIcon,
|
|
39
41
|
FilterIcon,
|
|
40
42
|
} from "../icons.generated";
|
|
41
|
-
import {
|
|
42
|
-
import { Paragraph, Subordinate } from "../Typography";
|
|
43
|
+
import { Subordinate } from "../Typography";
|
|
43
44
|
import { TextField } from "../TextField";
|
|
44
45
|
import { CheckboxGroup } from "../CheckboxGroup";
|
|
45
46
|
import { Checkbox } from "../Checkbox";
|
|
46
47
|
import { RadioGroup } from "../RadioGroup";
|
|
47
48
|
import { Radio } from "../Radio";
|
|
48
49
|
import { MRT_ColumnDef, MRT_RowData } from "material-react-table";
|
|
50
|
+
import { Trans, useTranslation } from "react-i18next";
|
|
49
51
|
|
|
50
52
|
export type DataFilterValue = string | string[] | undefined;
|
|
51
53
|
|
|
@@ -128,6 +130,7 @@ const DataFilters = ({
|
|
|
128
130
|
filters: filtersProp = [],
|
|
129
131
|
}: DataFiltersProps) => {
|
|
130
132
|
const [filters, setFilters] = useState<DataFilter[]>(filtersProp);
|
|
133
|
+
const { t } = useTranslation();
|
|
131
134
|
|
|
132
135
|
const initialInputValues = useMemo(() => {
|
|
133
136
|
return filtersProp.reduce(
|
|
@@ -307,7 +310,7 @@ const DataFilters = ({
|
|
|
307
310
|
aria-controls={isFiltersMenuOpen ? "filters-menu" : undefined}
|
|
308
311
|
aria-expanded={isFiltersMenuOpen ? "true" : undefined}
|
|
309
312
|
aria-haspopup="true"
|
|
310
|
-
ariaLabel="
|
|
313
|
+
ariaLabel={t("filters.filters.arialabel")}
|
|
311
314
|
endIcon={<FilterIcon />}
|
|
312
315
|
onClick={(event) => {
|
|
313
316
|
setFiltersMenuAnchorElement(event.currentTarget);
|
|
@@ -337,13 +340,23 @@ const DataFilters = ({
|
|
|
337
340
|
)?.value;
|
|
338
341
|
|
|
339
342
|
return (
|
|
340
|
-
<
|
|
343
|
+
<MuiMenuItem
|
|
341
344
|
key={filter.id}
|
|
342
345
|
onClick={(event) => {
|
|
343
346
|
setIsFilterPopoverOpen(true);
|
|
344
347
|
setFilterPopoverAnchorElement(event.currentTarget);
|
|
345
348
|
setFilterPopoverCurrentFilter(filter);
|
|
346
349
|
}}
|
|
350
|
+
selected={
|
|
351
|
+
filterPopoverCurrentFilter === filter &&
|
|
352
|
+
isFilterPopoverOpen === true
|
|
353
|
+
}
|
|
354
|
+
className={
|
|
355
|
+
filterPopoverCurrentFilter === filter &&
|
|
356
|
+
isFilterPopoverOpen === true
|
|
357
|
+
? "isVisiblySelected"
|
|
358
|
+
: undefined
|
|
359
|
+
}
|
|
347
360
|
>
|
|
348
361
|
<Box
|
|
349
362
|
sx={{
|
|
@@ -352,29 +365,54 @@ const DataFilters = ({
|
|
|
352
365
|
justifyContent: "space-between",
|
|
353
366
|
width: "100%",
|
|
354
367
|
minWidth: 180,
|
|
368
|
+
paddingBlock: 1,
|
|
369
|
+
paddingInlineStart: 2,
|
|
355
370
|
}}
|
|
356
371
|
>
|
|
357
372
|
<Box sx={{ marginRight: 2 }}>
|
|
358
|
-
<
|
|
373
|
+
<MuiTypography fontWeight="500" sx={{ marginBlockEnd: 2 }}>
|
|
374
|
+
{filter.label}
|
|
375
|
+
</MuiTypography>
|
|
359
376
|
<Subordinate component="div">
|
|
360
377
|
{!latestFilterValue ||
|
|
361
378
|
(Array.isArray(latestFilterValue) &&
|
|
362
|
-
latestFilterValue.length === 0)
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
379
|
+
latestFilterValue.length === 0) ? (
|
|
380
|
+
<Trans
|
|
381
|
+
i18nKey="filters.menuitem.any"
|
|
382
|
+
values={{
|
|
383
|
+
label: filter.label.toLowerCase(),
|
|
384
|
+
}}
|
|
385
|
+
/>
|
|
386
|
+
) : Array.isArray(latestFilterValue) ? (
|
|
387
|
+
<Trans
|
|
388
|
+
count={latestFilterValue.length}
|
|
389
|
+
i18nKey="filters.menuitem.selected"
|
|
390
|
+
values={{
|
|
391
|
+
selected: latestFilterValue.length,
|
|
392
|
+
}}
|
|
393
|
+
/>
|
|
394
|
+
) : (
|
|
395
|
+
latestFilterValue
|
|
396
|
+
)}
|
|
367
397
|
</Subordinate>
|
|
368
398
|
</Box>
|
|
369
399
|
<ChevronRightIcon />
|
|
370
400
|
</Box>
|
|
371
|
-
</
|
|
401
|
+
</MuiMenuItem>
|
|
372
402
|
);
|
|
373
403
|
})}
|
|
374
404
|
</MuiMenu>
|
|
375
405
|
</>
|
|
376
406
|
),
|
|
377
|
-
[
|
|
407
|
+
[
|
|
408
|
+
isFiltersMenuOpen,
|
|
409
|
+
filterPopoverCurrentFilter,
|
|
410
|
+
isFilterPopoverOpen,
|
|
411
|
+
filtersMenuAnchorElement,
|
|
412
|
+
filtersProp,
|
|
413
|
+
filters,
|
|
414
|
+
t,
|
|
415
|
+
],
|
|
378
416
|
);
|
|
379
417
|
|
|
380
418
|
return (
|
|
@@ -390,6 +428,11 @@ const DataFilters = ({
|
|
|
390
428
|
{/* Filter popover */}
|
|
391
429
|
<MuiPopover
|
|
392
430
|
anchorEl={filterPopoverAnchorElement}
|
|
431
|
+
// Positions the popover flush with the edge of the parent menu
|
|
432
|
+
// and at the right shadow elevation. These magic values are simply
|
|
433
|
+
// to match the default popover offset.
|
|
434
|
+
elevation={2}
|
|
435
|
+
sx={{ marginLeft: 2, marginTop: -1 }}
|
|
393
436
|
open={isFilterPopoverOpen}
|
|
394
437
|
anchorOrigin={{ vertical: "top", horizontal: "right" }}
|
|
395
438
|
onClose={(ev: MouseEvent) => {
|
|
@@ -493,7 +536,7 @@ const DataFilters = ({
|
|
|
493
536
|
inputValues[filterPopoverCurrentFilter.id] && (
|
|
494
537
|
<MuiIconButton
|
|
495
538
|
size="small"
|
|
496
|
-
aria-label="
|
|
539
|
+
aria-label={t("filters.filter.clear")}
|
|
497
540
|
onClick={() => {
|
|
498
541
|
updateInputValue({
|
|
499
542
|
filterId: filterPopoverCurrentFilter.id,
|
|
@@ -571,7 +614,7 @@ const DataFilters = ({
|
|
|
571
614
|
}}
|
|
572
615
|
>
|
|
573
616
|
<Radio
|
|
574
|
-
label="
|
|
617
|
+
label={t("filters.filter.any")}
|
|
575
618
|
value={""}
|
|
576
619
|
isChecked={
|
|
577
620
|
!inputValues[filterPopoverCurrentFilter.id]
|
|
@@ -615,7 +658,7 @@ const DataFilters = ({
|
|
|
615
658
|
<Box sx={{ display: "flex", gap: 2, width: "100%" }}>
|
|
616
659
|
<SearchField
|
|
617
660
|
value={searchValue}
|
|
618
|
-
label="
|
|
661
|
+
label={t("filters.search.label")}
|
|
619
662
|
onClear={() => {
|
|
620
663
|
setSearchValue("");
|
|
621
664
|
onChangeSearch("");
|
|
@@ -626,7 +669,7 @@ const DataFilters = ({
|
|
|
626
669
|
<Box>
|
|
627
670
|
<Button
|
|
628
671
|
variant="primary"
|
|
629
|
-
label="
|
|
672
|
+
label={t("filters.search.label")}
|
|
630
673
|
onClick={() => onChangeSearch(searchValue)}
|
|
631
674
|
/>
|
|
632
675
|
</Box>
|
|
@@ -642,7 +685,7 @@ const DataFilters = ({
|
|
|
642
685
|
<Box>
|
|
643
686
|
<Button
|
|
644
687
|
variant="secondary"
|
|
645
|
-
label="
|
|
688
|
+
label={t("filters.clear.label")}
|
|
646
689
|
onClick={clearAllFilters}
|
|
647
690
|
/>
|
|
648
691
|
</Box>
|
package/src/labs/DataTable.tsx
CHANGED
|
@@ -57,6 +57,7 @@ import { Button } from "../Button";
|
|
|
57
57
|
import { Box } from "../Box";
|
|
58
58
|
import { MenuButton, MenuItem } from "..";
|
|
59
59
|
import { ArrowUnsortedIcon } from "../icons.generated";
|
|
60
|
+
import { useTranslation } from "react-i18next";
|
|
60
61
|
|
|
61
62
|
export const densityValues = ["comfortable", "spacious", "compact"] as const;
|
|
62
63
|
|
|
@@ -68,7 +69,7 @@ export type {
|
|
|
68
69
|
|
|
69
70
|
// The shape of the table columns,
|
|
70
71
|
// with props named to match their MRT_ColumnDef counterparts
|
|
71
|
-
export type
|
|
72
|
+
export type DataTableColumn = {
|
|
72
73
|
/**
|
|
73
74
|
* The unique ID of the column
|
|
74
75
|
*/
|
|
@@ -130,7 +131,7 @@ export type DataTableProps = {
|
|
|
130
131
|
/**
|
|
131
132
|
* The columns that make up the table
|
|
132
133
|
*/
|
|
133
|
-
columns:
|
|
134
|
+
columns: DataTableColumn[];
|
|
134
135
|
/**
|
|
135
136
|
* The data that goes into the table, which will be displayed
|
|
136
137
|
* as the table rows
|
|
@@ -310,6 +311,7 @@ const DataTable = ({
|
|
|
310
311
|
hasSorting,
|
|
311
312
|
}: DataTableProps) => {
|
|
312
313
|
const odysseyDesignTokens = useOdysseyDesignTokens();
|
|
314
|
+
const { t } = useTranslation();
|
|
313
315
|
const [draggingRow, setDraggingRow] = useState<MRT_Row<MRT_RowData> | null>();
|
|
314
316
|
const [showSkeletons, setShowSkeletons] = useState<boolean>(true);
|
|
315
317
|
const [data, setData] =
|
|
@@ -550,17 +552,29 @@ const DataTable = ({
|
|
|
550
552
|
[draggingRow],
|
|
551
553
|
);
|
|
552
554
|
|
|
553
|
-
const
|
|
554
|
-
|
|
555
|
-
data: data,
|
|
556
|
-
state: {
|
|
555
|
+
const tableState = useMemo(
|
|
556
|
+
() => ({
|
|
557
557
|
density,
|
|
558
558
|
sorting,
|
|
559
559
|
globalFilter,
|
|
560
560
|
columnVisibility,
|
|
561
561
|
rowSelection,
|
|
562
562
|
showSkeletons,
|
|
563
|
-
},
|
|
563
|
+
}),
|
|
564
|
+
[
|
|
565
|
+
density,
|
|
566
|
+
sorting,
|
|
567
|
+
globalFilter,
|
|
568
|
+
columnVisibility,
|
|
569
|
+
rowSelection,
|
|
570
|
+
showSkeletons,
|
|
571
|
+
],
|
|
572
|
+
);
|
|
573
|
+
|
|
574
|
+
const table = useMaterialReactTable({
|
|
575
|
+
columns: columns,
|
|
576
|
+
data: data,
|
|
577
|
+
state: tableState,
|
|
564
578
|
rowVirtualizerInstanceRef: rowVirtualizerInstanceRef,
|
|
565
579
|
rowVirtualizerOptions: { overscan: 4 },
|
|
566
580
|
enableRowVirtualization:
|
|
@@ -648,9 +662,8 @@ const DataTable = ({
|
|
|
648
662
|
}),
|
|
649
663
|
|
|
650
664
|
muiRowDragHandleProps: ({ table, row }) => ({
|
|
651
|
-
title: "
|
|
652
|
-
"aria-label":
|
|
653
|
-
"Drag row to reorder. Or, press space or enter to start and stop reordering and esc to cancel.",
|
|
665
|
+
title: t("table.draghandle.tooltip"),
|
|
666
|
+
"aria-label": t("table.draghandle.arialabel"),
|
|
654
667
|
onKeyDown: (event) => handleDragHandleKeyDown({ table, row, event }),
|
|
655
668
|
onBlur: () => {
|
|
656
669
|
resetDraggingAndHoveredRow(table);
|
|
@@ -680,7 +693,7 @@ const DataTable = ({
|
|
|
680
693
|
endIcon={<MoreIcon />}
|
|
681
694
|
size="small"
|
|
682
695
|
buttonVariant="floating"
|
|
683
|
-
ariaLabel="
|
|
696
|
+
ariaLabel={t("table.moreactions.arialabel")}
|
|
684
697
|
menuAlignment="right"
|
|
685
698
|
>
|
|
686
699
|
{rowActionMenuItems && (
|
package/src/labs/index.ts
CHANGED
|
@@ -4,16 +4,33 @@ close.text = close
|
|
|
4
4
|
fielderror.screenreader.text = Error
|
|
5
5
|
fieldlabel.optional.text = Optional
|
|
6
6
|
fieldlabel.required.text = Required
|
|
7
|
-
|
|
7
|
+
filters.clear.label = Clear filters
|
|
8
|
+
filters.filter.any = Any
|
|
9
|
+
filters.filter.clear = Clear filter
|
|
10
|
+
filters.filters.arialabel = Filters
|
|
11
|
+
filters.menuitem.any = Any {{label}}
|
|
12
|
+
filters.menuitem.selected = {{selected}} selected
|
|
13
|
+
filters.search.label = Search
|
|
8
14
|
passwordfield.icon.label.hide = Hide password
|
|
15
|
+
passwordfield.icon.label.show = Show password
|
|
9
16
|
severity.error = error
|
|
10
17
|
severity.info = info
|
|
11
18
|
severity.success = success
|
|
12
19
|
severity.warning = warning
|
|
13
20
|
switch.active = Active
|
|
14
21
|
switch.inactive = Inactive
|
|
22
|
+
table.actions = Actions
|
|
23
|
+
table.columnvisibility.arialabel = Show/hide columns
|
|
24
|
+
table.density.arialabel = Table density
|
|
25
|
+
table.draghandle.arialabel = Drag row to reorder. Or, press space or enter to start and stop reordering and esc to cancel.
|
|
26
|
+
table.draghandle.tooltip = Drag row or press space/enter key to start and stop reordering
|
|
15
27
|
table.error = Error loading data.
|
|
16
28
|
table.fetchedrows.text = Fetched {{totalRows}} row
|
|
17
29
|
table.fetchedrows.text_plural = Fetched {{totalRows}} total rows
|
|
30
|
+
table.moreactions.arialabel = More actions
|
|
31
|
+
table.reorder.backward = Send backward
|
|
32
|
+
table.reorder.forward = Bring forward
|
|
33
|
+
table.reorder.toback = Send to back
|
|
34
|
+
table.reorder.tofront = Bring to front
|
|
18
35
|
table.rows.text = {{totalRows}} row
|
|
19
|
-
table.rows.text_plural = {{totalRows}} rows
|
|
36
|
+
table.rows.text_plural = {{totalRows}} rows
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const translation = {"breadcrumbs.home.text":"Home","breadcrumbs.label.text":"Breadcrumbs","close.text":"close","fielderror.screenreader.text":"Error","fieldlabel.optional.text":"Optional","fieldlabel.required.text":"Required","passwordfield.icon.label.
|
|
1
|
+
export const translation = {"breadcrumbs.home.text":"Home","breadcrumbs.label.text":"Breadcrumbs","close.text":"close","fielderror.screenreader.text":"Error","fieldlabel.optional.text":"Optional","fieldlabel.required.text":"Required","filters.clear.label":"Clear filters","filters.filter.any":"Any","filters.filter.clear":"Clear filter","filters.filters.arialabel":"Filters","filters.menuitem.any":"Any {{label}}","filters.menuitem.selected":"{{selected}} selected","filters.search.label":"Search","passwordfield.icon.label.hide":"Hide password","passwordfield.icon.label.show":"Show password","severity.error":"error","severity.info":"info","severity.success":"success","severity.warning":"warning","switch.active":"Active","switch.inactive":"Inactive","table.actions":"Actions","table.columnvisibility.arialabel":"Show/hide columns","table.density.arialabel":"Table density","table.draghandle.arialabel":"Drag row to reorder. Or, press space or enter to start and stop reordering and esc to cancel.","table.draghandle.tooltip":"Drag row or press space/enter key to start and stop reordering","table.error":"Error loading data.","table.fetchedrows.text":"Fetched {{totalRows}} row","table.fetchedrows.text_plural":"Fetched {{totalRows}} total rows","table.moreactions.arialabel":"More actions","table.reorder.backward":"Send backward","table.reorder.forward":"Bring forward","table.reorder.toback":"Send to back","table.reorder.tofront":"Bring to front","table.rows.text":"{{totalRows}} row","table.rows.text_plural":"{{totalRows}} rows"};
|
package/src/theme/components.tsx
CHANGED
|
@@ -809,7 +809,7 @@ export const components = ({
|
|
|
809
809
|
}),
|
|
810
810
|
},
|
|
811
811
|
|
|
812
|
-
"&.Mui-checked": {
|
|
812
|
+
"&.Mui-checked, &.MuiCheckbox-indeterminate": {
|
|
813
813
|
backgroundColor: odysseyTokens.PalettePrimaryMain,
|
|
814
814
|
borderColor: odysseyTokens.PalettePrimaryMain,
|
|
815
815
|
|
|
@@ -1993,6 +1993,9 @@ export const components = ({
|
|
|
1993
1993
|
},
|
|
1994
1994
|
},
|
|
1995
1995
|
MuiMenu: {
|
|
1996
|
+
defaultProps: {
|
|
1997
|
+
elevation: 2,
|
|
1998
|
+
},
|
|
1996
1999
|
styleOverrides: {
|
|
1997
2000
|
list: {
|
|
1998
2001
|
paddingBlock: odysseyTokens.Spacing2,
|
|
@@ -2015,7 +2018,7 @@ export const components = ({
|
|
|
2015
2018
|
minHeight: "unset",
|
|
2016
2019
|
paddingBlock: odysseyTokens.Spacing3,
|
|
2017
2020
|
paddingInline: odysseyTokens.Spacing4,
|
|
2018
|
-
borderRadius: odysseyTokens.
|
|
2021
|
+
borderRadius: odysseyTokens.BorderRadiusMain,
|
|
2019
2022
|
|
|
2020
2023
|
[`& .${formControlLabelClasses.root}`]: {
|
|
2021
2024
|
gap: "unset",
|
|
@@ -2043,6 +2046,14 @@ export const components = ({
|
|
|
2043
2046
|
},
|
|
2044
2047
|
},
|
|
2045
2048
|
|
|
2049
|
+
"&.isVisiblySelected": {
|
|
2050
|
+
backgroundColor: `${odysseyTokens.PalettePrimaryLighter} !important`,
|
|
2051
|
+
|
|
2052
|
+
[`& .${typographyClasses.root}`]: {
|
|
2053
|
+
color: odysseyTokens.HueBlue600,
|
|
2054
|
+
},
|
|
2055
|
+
},
|
|
2056
|
+
|
|
2046
2057
|
[`&.${menuItemClasses.selected}`]: {
|
|
2047
2058
|
backgroundColor: "transparent",
|
|
2048
2059
|
color: odysseyTokens.TypographyColorAction,
|
|
@@ -2517,12 +2528,14 @@ export const components = ({
|
|
|
2517
2528
|
|
|
2518
2529
|
[`.${tableHeadClasses.root} &`]: {
|
|
2519
2530
|
color: odysseyTokens.TypographyColorHeading,
|
|
2520
|
-
fontSize:
|
|
2531
|
+
fontSize: `0.71428571rem`,
|
|
2521
2532
|
lineHeight: odysseyTokens.TypographyLineHeightBody,
|
|
2522
2533
|
fontWeight: odysseyTokens.TypographyWeightBodyBold,
|
|
2523
2534
|
textTransform: "uppercase",
|
|
2524
2535
|
backgroundColor: odysseyTokens.HueNeutral50,
|
|
2525
2536
|
borderBottom: 0,
|
|
2537
|
+
height: `${odysseyTokens.Spacing7} !important`,
|
|
2538
|
+
paddingBlock: `${odysseyTokens.Spacing3} !important`,
|
|
2526
2539
|
},
|
|
2527
2540
|
|
|
2528
2541
|
[`.${tableHeadClasses.root} &:first-of-type`]: {
|
|
@@ -2535,10 +2548,11 @@ export const components = ({
|
|
|
2535
2548
|
borderBottomRightRadius: odysseyTokens.Spacing2,
|
|
2536
2549
|
},
|
|
2537
2550
|
|
|
2538
|
-
|
|
2539
|
-
|
|
2540
|
-
|
|
2541
|
-
|
|
2551
|
+
[`.${tableHeadClasses.root} .ods-actions-cell + &:last-of-type, .${tableBodyClasses.root} .ods-actions-cell + &:last-of-type`]:
|
|
2552
|
+
{
|
|
2553
|
+
flexGrow: 0,
|
|
2554
|
+
width: odysseyTokens.Spacing2,
|
|
2555
|
+
},
|
|
2542
2556
|
|
|
2543
2557
|
...(ownerState.variant === "number" && {
|
|
2544
2558
|
textAlign: "end",
|
|
@@ -2571,14 +2585,21 @@ export const components = ({
|
|
|
2571
2585
|
textAlign: "justify",
|
|
2572
2586
|
}),
|
|
2573
2587
|
|
|
2574
|
-
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
|
|
2588
|
+
...(ownerState.variant !== "head" && {
|
|
2589
|
+
["&.MuiTableCell-compact"]: {
|
|
2590
|
+
// TODO: Find a way to tokenize these values.
|
|
2591
|
+
// We can't currently because these are between existing token
|
|
2592
|
+
// values, but we need these precise values to match design.
|
|
2593
|
+
// We use rems so this can scale with the text size.
|
|
2594
|
+
padding: "0.4285714286rem",
|
|
2595
|
+
height: "2.5714285714rem",
|
|
2596
|
+
},
|
|
2578
2597
|
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
|
|
2598
|
+
["&.MuiTableCell-spacious"]: {
|
|
2599
|
+
padding: odysseyTokens.Spacing4,
|
|
2600
|
+
height: odysseyTokens.Spacing9,
|
|
2601
|
+
},
|
|
2602
|
+
}),
|
|
2582
2603
|
|
|
2583
2604
|
[`& .${checkboxClasses.root}`]: {
|
|
2584
2605
|
width: `${odysseyTokens.TypographyLineHeightUi}rem`,
|
|
@@ -2587,10 +2608,16 @@ export const components = ({
|
|
|
2587
2608
|
},
|
|
2588
2609
|
|
|
2589
2610
|
[`& .${dividerClasses.vertical}`]: {
|
|
2590
|
-
borderStyle: "none none none
|
|
2591
|
-
borderWidth:
|
|
2611
|
+
borderStyle: "none none none solid",
|
|
2612
|
+
borderWidth: 1,
|
|
2592
2613
|
borderRadius: 0,
|
|
2593
2614
|
marginRight: 2,
|
|
2615
|
+
borderColor: odysseyTokens.HueNeutral400,
|
|
2616
|
+
height: 18,
|
|
2617
|
+
},
|
|
2618
|
+
|
|
2619
|
+
["&.ods-drag-handle svg"]: {
|
|
2620
|
+
color: odysseyTokens.HueNeutral500,
|
|
2594
2621
|
},
|
|
2595
2622
|
}),
|
|
2596
2623
|
},
|