@12-apps/ui 6.39.1 → 6.39.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_internal/components/data-display/LazyImage/LazyImage.js +1 -1
- package/dist/_internal/components/data-display/Table/Table.helpers.js +10 -3
- package/dist/_internal/components/data-display/Table/Table.hooks.js +1 -1
- package/dist/_internal/components/data-display/Table/Table.js +4 -4
- package/dist/_internal/components/data-display/Table/TableParts.hooks.js +2 -3
- package/dist/_internal/components/data-display/Table/TableParts.js +2 -3
- package/dist/_internal/components/data-display/index.js +5 -5
- package/dist/_internal/components/index.js +9 -9
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +15 -1
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +17 -4
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +15 -2
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +16 -3
- package/dist/_internal/components/utility/index.js +17 -4
- package/dist/{chunk-YZVR5ROE.js → chunk-5HQNHZ6Z.js} +12 -10
- package/dist/chunk-5HQNHZ6Z.js.map +1 -0
- package/dist/{chunk-3YOXVNO4.js → chunk-BOGTTXPA.js} +32 -30
- package/dist/chunk-BOGTTXPA.js.map +1 -0
- package/dist/{chunk-MC4KYGSX.js → chunk-GFQ4U6WZ.js} +3 -5
- package/dist/chunk-GFQ4U6WZ.js.map +1 -0
- package/dist/{chunk-5LWB4BYX.js → chunk-RGT6DM5W.js} +21 -47
- package/dist/chunk-RGT6DM5W.js.map +1 -0
- package/dist/{chunk-FF2D7V7T.js → chunk-SDK5LPPC.js} +13 -10
- package/dist/chunk-SDK5LPPC.js.map +1 -0
- package/dist/{chunk-SNURSSTN.js → chunk-VLOUXTEM.js} +3 -3
- package/dist/{chunk-V5KKBMAT.js → chunk-VXQOSADY.js} +6 -3
- package/dist/{chunk-V5KKBMAT.js.map → chunk-VXQOSADY.js.map} +1 -1
- package/dist/{chunk-BVLMKSHX.js → chunk-WDVNRW3Q.js} +2 -2
- package/dist/chunk-XS3REOPN.js +86 -0
- package/dist/chunk-XS3REOPN.js.map +1 -0
- package/dist/data-display/LazyImage.js +1 -1
- package/dist/data-display/Table.js +4 -4
- package/dist/types/components/data-display/LazyImage/LazyImage.d.ts.map +1 -1
- package/dist/types/components/data-display/LazyImage/LazyImage.types.d.ts +15 -3
- package/dist/types/components/data-display/LazyImage/LazyImage.types.d.ts.map +1 -1
- package/dist/types/components/data-display/Table/Table.d.ts.map +1 -1
- package/dist/types/components/data-display/Table/Table.helpers.d.ts +20 -0
- package/dist/types/components/data-display/Table/Table.helpers.d.ts.map +1 -1
- package/dist/types/components/data-display/Table/Table.hooks.d.ts +8 -11
- package/dist/types/components/data-display/Table/Table.hooks.d.ts.map +1 -1
- package/dist/types/components/data-display/Table/Table.types.d.ts +17 -2
- package/dist/types/components/data-display/Table/Table.types.d.ts.map +1 -1
- package/dist/types/components/data-display/Table/TableParts.d.ts.map +1 -1
- package/dist/types/components/utility/WorkflowStep/WorkflowStep.helpers.d.ts +6 -1
- package/dist/types/components/utility/WorkflowStep/WorkflowStep.helpers.d.ts.map +1 -1
- package/dist/types/components/utility/WorkflowStep/WorkflowStep.parts.d.ts.map +1 -1
- package/dist/utility/WorkflowStep.js +17 -4
- package/package.json +1 -1
- package/src/components/data-display/LazyImage/LazyImage.md +22 -15
- package/src/components/data-display/LazyImage/LazyImage.tsx +26 -9
- package/src/components/data-display/LazyImage/LazyImage.types.ts +15 -3
- package/src/components/data-display/Table/Table.helpers.ts +93 -0
- package/src/components/data-display/Table/Table.hooks.ts +20 -11
- package/src/components/data-display/Table/Table.tsx +34 -31
- package/src/components/data-display/Table/Table.types.ts +18 -2
- package/src/components/data-display/Table/TableParts.tsx +23 -52
- package/src/components/utility/WorkflowStep/WorkflowStep.helpers.ts +9 -3
- package/src/components/utility/WorkflowStep/WorkflowStep.parts.tsx +1 -5
- package/dist/chunk-3YOXVNO4.js.map +0 -1
- package/dist/chunk-5LWB4BYX.js.map +0 -1
- package/dist/chunk-FF2D7V7T.js.map +0 -1
- package/dist/chunk-JWZJSXI5.js +0 -29
- package/dist/chunk-JWZJSXI5.js.map +0 -1
- package/dist/chunk-MC4KYGSX.js.map +0 -1
- package/dist/chunk-YZVR5ROE.js.map +0 -1
- /package/dist/{chunk-SNURSSTN.js.map → chunk-VLOUXTEM.js.map} +0 -0
- /package/dist/{chunk-BVLMKSHX.js.map → chunk-WDVNRW3Q.js.map} +0 -0
|
@@ -251,6 +251,21 @@ export interface TableHeaderProps {
|
|
|
251
251
|
onSelectAll?: (selected: boolean) => void;
|
|
252
252
|
density?: TableDensity;
|
|
253
253
|
stickyHeader?: boolean;
|
|
254
|
+
/** The `<thead>`, so the virtual window can subtract its height from the scroller's offset. */
|
|
255
|
+
headRef?: React.Ref<globalThis.HTMLTableSectionElement>;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* The rows a virtualised body mounts. Computed by `useVirtualScrolling` in the
|
|
259
|
+
* table, which owns the one scroll container, and handed down to the body.
|
|
260
|
+
*/
|
|
261
|
+
export interface VirtualWindow {
|
|
262
|
+
startIndex: number;
|
|
263
|
+
endIndex: number;
|
|
264
|
+
items: Record<string, unknown>[];
|
|
265
|
+
/** Every row at the scaled pitch, as CSS. */
|
|
266
|
+
totalHeight: string;
|
|
267
|
+
/** Where the first mounted row sits, in design px. */
|
|
268
|
+
offsetY: number;
|
|
254
269
|
}
|
|
255
270
|
export interface TableBodyProps {
|
|
256
271
|
data: Record<string, unknown>[];
|
|
@@ -267,9 +282,9 @@ export interface TableBodyProps {
|
|
|
267
282
|
renderRow?: (rowData: Record<string, unknown>, index: number, isSelected: boolean) => React.ReactNode;
|
|
268
283
|
renderCell?: (value: unknown, column: ColumnConfig, rowData: Record<string, unknown>, rowIndex: number) => React.ReactNode;
|
|
269
284
|
virtualScrolling?: boolean;
|
|
270
|
-
|
|
285
|
+
/** Set only when the body is virtualised: the rows in view and where they sit. */
|
|
286
|
+
virtualWindow?: VirtualWindow;
|
|
271
287
|
rowHeight?: number;
|
|
272
|
-
overscan?: number;
|
|
273
288
|
}
|
|
274
289
|
export interface VirtualTableBodyProps extends TableBodyProps {
|
|
275
290
|
virtualScrolling: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Table/Table.types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Table.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Table/Table.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableParts.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Table/TableParts.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TableParts.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Table/TableParts.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAM3C,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAiB,MAAM,eAAe,CAAC;AAwDnG,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAsDzD,CAAC;AAMH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,yFAAyF;IACzF,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IAC1C,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IACzF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;CAC3C,CAyDA,CAAC;AAqCF,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAmBrD,CAAC"}
|
|
@@ -7,7 +7,12 @@ interface StepPalette {
|
|
|
7
7
|
main: string;
|
|
8
8
|
contrastText: string;
|
|
9
9
|
}
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* The step's colour pair, keyed through `paletteKey` so `danger` reads MUI's
|
|
12
|
+
* `error` (the palette has no `danger`). `neutral` lands on `grey`, a ramp with
|
|
13
|
+
* no `main`, so its pair is derived from the ramp — with the contrast computed,
|
|
14
|
+
* not assumed.
|
|
15
|
+
*/
|
|
11
16
|
export declare const stepPalette: (theme: Theme, color?: StepColor) => StepPalette;
|
|
12
17
|
export interface StepColors {
|
|
13
18
|
backgroundColor: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowStep.helpers.d.ts","sourceRoot":"","sources":["../../../../../src/components/utility/WorkflowStep/WorkflowStep.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkflowStep.helpers.d.ts","sourceRoot":"","sources":["../../../../../src/components/utility/WorkflowStep/WorkflowStep.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIhF,KAAK,SAAS,GAAG,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;AACzD,KAAK,QAAQ,GAAG,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AAUvD,eAAO,MAAM,gBAAgB,GAAI,OAAO,QAAQ,KAAG,MACI,CAAC;AAExD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,EAAE,QAAQ,SAAS,KAAG,WAW7D,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,SAAS;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;CACxC;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,KAAK,EACZ,SAAS,WAAW,EACpB,6CAA6C,SAAS,KACrD,UA+BF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,OAAO,gBAAgB,EAAE,EACzB,aAAa,MAAM,KAClB,gBAAgB,EAUf,CAAC;AAEL,KAAK,qBAAqB,GACtB,aAAa,GACb,SAAS,GACT,aAAa,GACb,OAAO,GACP,MAAM,GACN,cAAc,GACd,UAAU,GACV,aAAa,GACb,aAAa,GACb,WAAW,GACX,UAAU,CAAC;AAEf,KAAK,yBAAyB,GAAG,iBAAiB,GAChD,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAuB3D,eAAO,MAAM,wBAAwB,GACnC,OAAO,iBAAiB,KACvB,yBAC8E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowStep.parts.d.ts","sourceRoot":"","sources":["../../../../../src/components/utility/WorkflowStep/WorkflowStep.parts.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAIvD,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkflowStep.parts.d.ts","sourceRoot":"","sources":["../../../../../src/components/utility/WorkflowStep/WorkflowStep.parts.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAIvD,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AA+L9B;;GAEG;AACH,QAAA,MAAM,sBAAsB,2FAyE1B,CAAC;AAIH;;GAEG;AACH,QAAA,MAAM,sBAAsB,2FAe1B,CAAC;AAIH;;GAEG;AACH,QAAA,MAAM,oBAAoB,yFA0CxB,CAAC;AAIH;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAIA,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
import "../chunk-IO36MEBD.js";
|
|
2
2
|
import {
|
|
3
3
|
WorkflowStep
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-VLOUXTEM.js";
|
|
5
|
+
import "../chunk-WDVNRW3Q.js";
|
|
6
|
+
import "../chunk-GFQ4U6WZ.js";
|
|
7
|
+
import "../chunk-VXQOSADY.js";
|
|
8
|
+
import "../chunk-TCAQOUIB.js";
|
|
9
|
+
import "../chunk-7ZPUN7TV.js";
|
|
10
|
+
import "../chunk-PT6TCWIW.js";
|
|
11
|
+
import "../chunk-CGO452DC.js";
|
|
12
|
+
import "../chunk-GDN2LUTZ.js";
|
|
13
|
+
import "../chunk-7FDU3FIN.js";
|
|
14
|
+
import "../chunk-EPEJMTCQ.js";
|
|
15
|
+
import "../chunk-PE4ZW3IA.js";
|
|
16
|
+
import "../chunk-2BYKTBDL.js";
|
|
17
|
+
import "../chunk-AG66JBNH.js";
|
|
18
|
+
import "../chunk-FZXKH2ZT.js";
|
|
19
|
+
import "../chunk-PZBK3F52.js";
|
|
20
|
+
import "../chunk-26X4CZVR.js";
|
|
8
21
|
import "../chunk-FQ6UW7IY.js";
|
|
9
22
|
import "../chunk-6JAIFIPW.js";
|
|
10
23
|
import "../chunk-N3GAFIXG.js";
|
package/package.json
CHANGED
|
@@ -117,22 +117,29 @@ import BrokenImageIcon from '@mui/icons-material/BrokenImageIcon';
|
|
|
117
117
|
|
|
118
118
|
### With Custom Styles
|
|
119
119
|
|
|
120
|
+
`sx` here is inline CSS for the `<img>`, not MUI's `sx`, and the image's box
|
|
121
|
+
clips anything painted outside the image. So a shadow or a hover goes on a
|
|
122
|
+
wrapping element, rounded to match the image:
|
|
123
|
+
|
|
120
124
|
```tsx
|
|
121
|
-
<
|
|
122
|
-
src="https://example.com/image.jpg"
|
|
123
|
-
alt="Styled image"
|
|
124
|
-
width={200}
|
|
125
|
-
height={200}
|
|
126
|
-
objectFit="cover"
|
|
127
|
-
borderRadius={8}
|
|
125
|
+
<Box
|
|
128
126
|
sx={{
|
|
127
|
+
display: 'inline-flex',
|
|
128
|
+
borderRadius: (theme) => theme.typography.pxToRem(8),
|
|
129
129
|
boxShadow: 3,
|
|
130
|
-
'
|
|
131
|
-
|
|
132
|
-
transition: 'transform 0.3s'
|
|
133
|
-
}
|
|
130
|
+
transition: 'transform 0.3s',
|
|
131
|
+
'&:hover': { transform: 'scale(1.05)' },
|
|
134
132
|
}}
|
|
135
|
-
|
|
133
|
+
>
|
|
134
|
+
<LazyImage
|
|
135
|
+
src="https://example.com/image.jpg"
|
|
136
|
+
alt="Styled image"
|
|
137
|
+
width={200}
|
|
138
|
+
height={200}
|
|
139
|
+
objectFit="cover"
|
|
140
|
+
borderRadius={8}
|
|
141
|
+
/>
|
|
142
|
+
</Box>
|
|
136
143
|
```
|
|
137
144
|
|
|
138
145
|
### With Callbacks
|
|
@@ -155,8 +162,8 @@ import BrokenImageIcon from '@mui/icons-material/BrokenImageIcon';
|
|
|
155
162
|
|------|------|---------|-------------|
|
|
156
163
|
| `src` | `string` | - | **Required.** Image source URL |
|
|
157
164
|
| `alt` | `string` | - | **Required.** Alternative text for accessibility |
|
|
158
|
-
| `width` | `number \| string` | - | Image width |
|
|
159
|
-
| `height` | `number \| string` | `'auto'` | Image height |
|
|
165
|
+
| `width` | `number \| string` | - | Image width. A number above 1 is design px; a number above 0 and up to 1 is a fraction of the parent, as in `sx` (`0.5` is `50%`); a string is any CSS length |
|
|
166
|
+
| `height` | `number \| string` | `'auto'` | Image height, read like `width`. A fractional height takes effect only when the parent has a definite height |
|
|
160
167
|
|
|
161
168
|
### Loading Props
|
|
162
169
|
|
|
@@ -209,7 +216,7 @@ import BrokenImageIcon from '@mui/icons-material/BrokenImageIcon';
|
|
|
209
216
|
|------|------|-------------|
|
|
210
217
|
| `skeletonProps` | `object` | Props for skeleton loader |
|
|
211
218
|
| `spinnerProps` | `object` | Props for spinner loader |
|
|
212
|
-
| `sx` | `CSSProperties` |
|
|
219
|
+
| `sx` | `CSSProperties` | Inline CSS for the `<img>`, not MUI's `sx`. The image's box clips anything painted outside the image, such as a shadow |
|
|
213
220
|
| `className` | `string` | CSS class name |
|
|
214
221
|
| `data-testid` | `string` | Test ID for testing |
|
|
215
222
|
|
|
@@ -59,14 +59,27 @@ type Length = number | string | undefined;
|
|
|
59
59
|
const styleLength = (theme: Theme, value: Length): string | undefined =>
|
|
60
60
|
typeof value === 'number' ? rem(theme, value) : value;
|
|
61
61
|
|
|
62
|
+
/**
|
|
63
|
+
* A width or height above 0 and up to 1 is a fraction of the container's parent, as in `sx`.
|
|
64
|
+
* A negative number is no fraction: it stays a (negative, so invalid) length.
|
|
65
|
+
*/
|
|
66
|
+
const isFraction = (value: Length): value is number =>
|
|
67
|
+
typeof value === 'number' && value > 0 && value <= 1;
|
|
68
|
+
|
|
62
69
|
/**
|
|
63
70
|
* A length prop as `sx` reads it on a width or height: a number of 1 or less is
|
|
64
71
|
* a fraction of the parent, and that stays so; any other number is design px.
|
|
65
72
|
*/
|
|
66
|
-
const sxLength = (theme: Theme, value: Length): string | undefined =>
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
73
|
+
const sxLength = (theme: Theme, value: Length): string | undefined =>
|
|
74
|
+
isFraction(value) ? `${value * 100}%` : styleLength(theme, value);
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* A width or height for what is drawn inside the container. The container alone
|
|
78
|
+
* takes a fraction, so everything in it fills it: a percentage here is measured
|
|
79
|
+
* against the container and would stack (FUT-2666). Otherwise the same as `styleLength`.
|
|
80
|
+
*/
|
|
81
|
+
const innerLength = (theme: Theme, value: Length): string | undefined =>
|
|
82
|
+
isFraction(value) ? '100%' : styleLength(theme, value);
|
|
70
83
|
|
|
71
84
|
/** The box the image occupies, as CSS, shared by the real image and every stand-in for it. */
|
|
72
85
|
interface BoxMetrics {
|
|
@@ -87,8 +100,8 @@ const SkeletonIndicator: React.FC<IndicatorProps> = ({ props }) => {
|
|
|
87
100
|
return (
|
|
88
101
|
<Skeleton
|
|
89
102
|
variant="rectangular"
|
|
90
|
-
width={
|
|
91
|
-
height={
|
|
103
|
+
width={innerLength(theme, props.width || '100%')}
|
|
104
|
+
height={innerLength(theme, props.height || 200)}
|
|
92
105
|
animation={props.skeletonProps.animation || 'pulse'}
|
|
93
106
|
intensity={props.skeletonProps.intensity}
|
|
94
107
|
borderRadius={styleLength(theme, props.borderRadius)}
|
|
@@ -169,7 +182,11 @@ const ErrorFallback: React.FC<IndicatorProps> = ({ props, metrics }) => {
|
|
|
169
182
|
|
|
170
183
|
return (
|
|
171
184
|
<FallbackContainer
|
|
172
|
-
sx={{
|
|
185
|
+
sx={{
|
|
186
|
+
width: innerLength(theme, width),
|
|
187
|
+
height: innerLength(theme, height),
|
|
188
|
+
borderRadius: styleLength(theme, borderRadius),
|
|
189
|
+
}}
|
|
173
190
|
data-testid={`${testId}-fallback`}
|
|
174
191
|
>
|
|
175
192
|
{fallback}
|
|
@@ -197,8 +214,8 @@ export const LazyImage = React.memo<LazyImageProps>(function LazyImage(rawProps)
|
|
|
197
214
|
const { width, height, borderRadius, alt } = props;
|
|
198
215
|
const testId = props['data-testid'];
|
|
199
216
|
const metrics: BoxMetrics = {
|
|
200
|
-
width:
|
|
201
|
-
height:
|
|
217
|
+
width: innerLength(theme, width),
|
|
218
|
+
height: innerLength(theme, height),
|
|
202
219
|
objectFit: props.objectFit,
|
|
203
220
|
objectPosition: props.objectPosition,
|
|
204
221
|
borderRadius: styleLength(theme, borderRadius),
|
|
@@ -15,12 +15,21 @@ export interface LazyImageProps extends React.ImgHTMLAttributes<HTMLImageElement
|
|
|
15
15
|
alt: string;
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* Width of the image
|
|
18
|
+
* Width of the image. A number above 1 is design px, scaled with the theme's
|
|
19
|
+
* type scale. A number above 0 and up to 1 is a fraction of the
|
|
20
|
+
* container's parent, as in `sx`: `0.5` is `50%`. The container takes it and
|
|
21
|
+
* the image, its skeleton and its fallback fill the container.
|
|
22
|
+
* A string is any CSS length and passes through untouched.
|
|
19
23
|
*/
|
|
20
24
|
width?: number | string;
|
|
21
25
|
|
|
22
26
|
/**
|
|
23
|
-
* Height of the image
|
|
27
|
+
* Height of the image. A number above 1 is design px, scaled with the theme's
|
|
28
|
+
* type scale. A number above 0 and up to 1 is a fraction of the
|
|
29
|
+
* container's parent, as in `sx`: `0.5` is `50%`. The container takes it and
|
|
30
|
+
* the image, its skeleton and its fallback fill the container. A fractional
|
|
31
|
+
* height takes effect only when the parent has a definite height.
|
|
32
|
+
* A string is any CSS length and passes through untouched.
|
|
24
33
|
*/
|
|
25
34
|
height?: number | string;
|
|
26
35
|
|
|
@@ -168,7 +177,10 @@ export interface LazyImageProps extends React.ImgHTMLAttributes<HTMLImageElement
|
|
|
168
177
|
};
|
|
169
178
|
|
|
170
179
|
/**
|
|
171
|
-
*
|
|
180
|
+
* Inline CSS for the `<img>` (its `style`), not MUI's `sx`: theme values and
|
|
181
|
+
* nested selectors such as `'&:hover'` do not apply. The image's box clips
|
|
182
|
+
* anything painted outside the image, such as a shadow, so put those on a
|
|
183
|
+
* wrapping element.
|
|
172
184
|
*/
|
|
173
185
|
sx?: React.CSSProperties;
|
|
174
186
|
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import type { TableProps as MuiTableProps } from '@mui/material/Table/index.js';
|
|
2
|
+
import type { Theme } from '@mui/material/styles/index.js';
|
|
3
|
+
import type React from 'react';
|
|
4
|
+
|
|
5
|
+
import { rem } from '../../../tokens/relative';
|
|
6
|
+
|
|
1
7
|
import type { TableProps } from './Table.types';
|
|
2
8
|
|
|
3
9
|
/**
|
|
@@ -7,6 +13,30 @@ import type { TableProps } from './Table.types';
|
|
|
7
13
|
*/
|
|
8
14
|
export const tableRowHeight = (rowHeight: number | undefined): number => rowHeight ?? 52;
|
|
9
15
|
|
|
16
|
+
/** The scroll box's height: a number is design px, 400 unless the caller says otherwise. */
|
|
17
|
+
const scrollHeight = (theme: Theme, containerHeight: number | string | undefined): string => {
|
|
18
|
+
const box = containerHeight || 400;
|
|
19
|
+
return typeof box === 'number' ? rem(theme, box) : box;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* The table's one scroll container (FUT-2658): `containerHeight` tall when
|
|
24
|
+
* `virtualScrolling` is on, holding the header and the body. Inline, so the
|
|
25
|
+
* height it was given reads back off the element.
|
|
26
|
+
*/
|
|
27
|
+
export const scrollerStyle = (theme: Theme, p: TableProps): React.CSSProperties | undefined =>
|
|
28
|
+
p.virtualScrolling ? { height: scrollHeight(theme, p.containerHeight), overflow: 'auto' } : undefined;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* The window's height in design px when the body is virtualised — only a
|
|
32
|
+
* numeric `containerHeight` virtualises; a string sizes the scroller alone.
|
|
33
|
+
*/
|
|
34
|
+
export const virtualHeight = (p: TableProps): number | undefined =>
|
|
35
|
+
p.virtualScrolling && typeof p.containerHeight === 'number' && p.containerHeight > 0 &&
|
|
36
|
+
tableRowHeight(p.rowHeight) > 0
|
|
37
|
+
? p.containerHeight
|
|
38
|
+
: undefined;
|
|
39
|
+
|
|
10
40
|
export const TABLE_DEFAULTS: Partial<TableProps> = {
|
|
11
41
|
variant: 'default',
|
|
12
42
|
stripeColor: 'neutral',
|
|
@@ -35,3 +65,66 @@ export const definedProps = (props: TableProps): Partial<TableProps> =>
|
|
|
35
65
|
|
|
36
66
|
// The container + styled table + optional header, shared by the loading, empty
|
|
37
67
|
// and populated renders.
|
|
68
|
+
|
|
69
|
+
/** A key `Table` declares on top of MUI's own `TableProps`. */
|
|
70
|
+
type TableOwnKey = Exclude<keyof TableProps, keyof MuiTableProps>;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Every key {@link TableOwnKey} names. None is an HTML attribute: each is read
|
|
74
|
+
* by the table and drawn by its parts, so none may reach the `<table>`
|
|
75
|
+
* (FUT-2658). A `Record` over the key union makes the list exhaustive — a prop
|
|
76
|
+
* added to `Table.types.ts` does not compile until it is named here.
|
|
77
|
+
*/
|
|
78
|
+
const TABLE_OWN_KEYS: Record<TableOwnKey, true> = {
|
|
79
|
+
emptyText: true,
|
|
80
|
+
variant: true,
|
|
81
|
+
stripeColor: true,
|
|
82
|
+
glow: true,
|
|
83
|
+
pulse: true,
|
|
84
|
+
hoverable: true,
|
|
85
|
+
loading: true,
|
|
86
|
+
onRowClick: true,
|
|
87
|
+
onRowFocus: true,
|
|
88
|
+
onRowBlur: true,
|
|
89
|
+
density: true,
|
|
90
|
+
selectable: true,
|
|
91
|
+
selectedRows: true,
|
|
92
|
+
onSelectionChange: true,
|
|
93
|
+
rowKeyExtractor: true,
|
|
94
|
+
sortable: true,
|
|
95
|
+
sortConfig: true,
|
|
96
|
+
onSortChange: true,
|
|
97
|
+
filterable: true,
|
|
98
|
+
filterConfig: true,
|
|
99
|
+
onFilterChange: true,
|
|
100
|
+
columns: true,
|
|
101
|
+
data: true,
|
|
102
|
+
virtualScrolling: true,
|
|
103
|
+
rowHeight: true,
|
|
104
|
+
overscan: true,
|
|
105
|
+
responsive: true,
|
|
106
|
+
columnPriorities: true,
|
|
107
|
+
responsiveBreakpoints: true,
|
|
108
|
+
showColumnToggle: true,
|
|
109
|
+
containerHeight: true,
|
|
110
|
+
loadingComponent: true,
|
|
111
|
+
emptyStateComponent: true,
|
|
112
|
+
keyboardNavigation: true,
|
|
113
|
+
renderRow: true,
|
|
114
|
+
renderCell: true,
|
|
115
|
+
draggableRows: true,
|
|
116
|
+
onRowsReorder: true,
|
|
117
|
+
fixedColumns: true,
|
|
118
|
+
rowStyleConfig: true,
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
const NOT_FORWARDED = new Set<string>([...Object.keys(TABLE_OWN_KEYS), 'children']);
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* What the caller passed that is MUI's or the DOM's — `className`, `id`,
|
|
125
|
+
* `style`, `aria-*`, `data-*`, DOM handlers, `sx`, `size`, `padding`,
|
|
126
|
+
* `component` — for `MuiTable` to spread onto the `<table>`. `children` is
|
|
127
|
+
* placed by the table itself.
|
|
128
|
+
*/
|
|
129
|
+
export const tableDomProps = (props: TableProps): Record<string, unknown> =>
|
|
130
|
+
Object.fromEntries(Object.entries(props).filter(([key]) => !NOT_FORWARDED.has(key)));
|
|
@@ -4,29 +4,37 @@ import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
|
4
4
|
|
|
5
5
|
import { rem, remPx } from '../../../tokens/relative';
|
|
6
6
|
|
|
7
|
-
import type { ColumnConfig, TableProps } from './Table.types';
|
|
7
|
+
import type { ColumnConfig, TableProps, VirtualWindow } from './Table.types';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* The virtual window. `rowHeight` and `containerHeight` are design px: the
|
|
11
11
|
* window is computed in the px `scrollTop` is measured in (`remPx`), and what it
|
|
12
12
|
* hands back to draw with stays in design px (`offsetY`) or is CSS already
|
|
13
13
|
* (`totalHeight`), so the rows and the window share one pitch at any type scale.
|
|
14
|
+
*
|
|
15
|
+
* The scroller holds the header as well as the body, so the `<tbody>` starts
|
|
16
|
+
* the header's height into it. `handleScroll` measures that height from
|
|
17
|
+
* `headerRef` in the same live px as `scrollTop`, and the window subtracts it
|
|
18
|
+
* before dividing by the pitch (FUT-2658).
|
|
14
19
|
*/
|
|
15
20
|
export const useVirtualScrolling = (
|
|
16
21
|
data: Record<string, unknown>[],
|
|
17
22
|
rowHeight: number,
|
|
18
23
|
containerHeight: number,
|
|
19
|
-
overscan: number = 5
|
|
24
|
+
overscan: number = 5,
|
|
25
|
+
headerRef?: React.RefObject<HTMLElement | null>,
|
|
20
26
|
) => {
|
|
21
27
|
const theme = useTheme();
|
|
22
|
-
|
|
28
|
+
// Both live px, as the browser measures them.
|
|
29
|
+
const [scroll, setScroll] = useState({ scrollTop: 0, headerPx: 0 });
|
|
23
30
|
|
|
24
|
-
const visibleItems = useMemo(() => {
|
|
31
|
+
const visibleItems = useMemo((): VirtualWindow => {
|
|
25
32
|
const pitch = remPx(theme, rowHeight);
|
|
26
|
-
const
|
|
33
|
+
const bodyScrollTop = Math.max(0, scroll.scrollTop - scroll.headerPx);
|
|
34
|
+
const startIndex = Math.floor(bodyScrollTop / pitch);
|
|
27
35
|
const endIndex = Math.min(
|
|
28
36
|
data.length,
|
|
29
|
-
Math.ceil((
|
|
37
|
+
Math.ceil((bodyScrollTop + remPx(theme, containerHeight)) / pitch)
|
|
30
38
|
);
|
|
31
39
|
|
|
32
40
|
const start = Math.max(0, startIndex - overscan);
|
|
@@ -36,16 +44,17 @@ export const useVirtualScrolling = (
|
|
|
36
44
|
startIndex: start,
|
|
37
45
|
endIndex: end,
|
|
38
46
|
items: data.slice(start, end),
|
|
39
|
-
/** Every row at the scaled pitch, as CSS. */
|
|
40
47
|
totalHeight: rem(theme, data.length * rowHeight),
|
|
41
|
-
/** Where the first mounted row sits, in design px. */
|
|
42
48
|
offsetY: start * rowHeight,
|
|
43
49
|
};
|
|
44
|
-
}, [data, rowHeight, containerHeight,
|
|
50
|
+
}, [data, rowHeight, containerHeight, scroll, overscan, theme]);
|
|
45
51
|
|
|
46
52
|
const handleScroll = useCallback((e: React.UIEvent<HTMLDivElement>) => {
|
|
47
|
-
|
|
48
|
-
|
|
53
|
+
setScroll({
|
|
54
|
+
scrollTop: e.currentTarget.scrollTop,
|
|
55
|
+
headerPx: headerRef?.current?.offsetHeight ?? 0,
|
|
56
|
+
});
|
|
57
|
+
}, [headerRef]);
|
|
49
58
|
|
|
50
59
|
return { visibleItems, handleScroll };
|
|
51
60
|
};
|
|
@@ -11,7 +11,7 @@ import TableBody from '@mui/material/TableBody/index.js';
|
|
|
11
11
|
import TableCell from '@mui/material/TableCell/index.js';
|
|
12
12
|
import TableContainer from '@mui/material/TableContainer/index.js';
|
|
13
13
|
import TableRow from '@mui/material/TableRow/index.js';
|
|
14
|
-
import { styled, useTheme
|
|
14
|
+
import { styled, useTheme } from '@mui/material/styles/index.js';
|
|
15
15
|
import React from 'react';
|
|
16
16
|
|
|
17
17
|
import type {
|
|
@@ -19,30 +19,21 @@ import type {
|
|
|
19
19
|
TableDensity,
|
|
20
20
|
TableProps,
|
|
21
21
|
TableStripeColor} from './Table.types';
|
|
22
|
-
import {
|
|
23
|
-
|
|
22
|
+
import {
|
|
23
|
+
TABLE_DEFAULTS,
|
|
24
|
+
definedProps,
|
|
25
|
+
scrollerStyle,
|
|
26
|
+
tableDomProps,
|
|
27
|
+
tableRowHeight,
|
|
28
|
+
virtualHeight,
|
|
29
|
+
} from './Table.helpers';
|
|
30
|
+
import { useTableSelection, useVirtualScrolling } from './Table.hooks';
|
|
24
31
|
import { EnhancedTableBody, EnhancedTableHeader } from './TableParts';
|
|
25
32
|
import { EmptyRow, NoDataPlaceholder } from './TableStates';
|
|
26
33
|
import {
|
|
27
34
|
tableStyles } from './Table.styles';
|
|
28
35
|
import { rem } from '../../../tokens/relative';
|
|
29
36
|
|
|
30
|
-
/** The scroll box's height: a number is design px, 400 unless the caller says otherwise. */
|
|
31
|
-
const scrollHeight = (theme: Theme, containerHeight: number | string | undefined): string => {
|
|
32
|
-
const box = containerHeight || 400;
|
|
33
|
-
return typeof box === 'number' ? rem(theme, box) : box;
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
// Define pulse animation
|
|
37
|
-
const StyledTableContainer = styled(TableContainer, {
|
|
38
|
-
shouldForwardProp: (prop) => !['virtualScrolling', 'containerHeight'].includes(prop as string) })<{
|
|
39
|
-
virtualScrolling?: boolean;
|
|
40
|
-
containerHeight?: number | string;
|
|
41
|
-
}>(({ theme, virtualScrolling, containerHeight }) => ({
|
|
42
|
-
...(virtualScrolling && {
|
|
43
|
-
height: scrollHeight(theme, containerHeight),
|
|
44
|
-
overflow: 'auto' }) }));
|
|
45
|
-
|
|
46
37
|
// Helper function to get stripe color from theme
|
|
47
38
|
const StyledTable = styled(MuiTable, {
|
|
48
39
|
shouldForwardProp: (prop) =>
|
|
@@ -91,7 +82,7 @@ const TableShell: React.FC<{
|
|
|
91
82
|
header,
|
|
92
83
|
rest,
|
|
93
84
|
children }) => (
|
|
94
|
-
<
|
|
85
|
+
<TableContainer>
|
|
95
86
|
<StyledTable
|
|
96
87
|
ref={innerRef}
|
|
97
88
|
customVariant={variant}
|
|
@@ -106,7 +97,7 @@ const TableShell: React.FC<{
|
|
|
106
97
|
{header}
|
|
107
98
|
{children}
|
|
108
99
|
</StyledTable>
|
|
109
|
-
</
|
|
100
|
+
</TableContainer>
|
|
110
101
|
);
|
|
111
102
|
|
|
112
103
|
const SKELETON_ROW_COUNT = 5;
|
|
@@ -177,8 +168,8 @@ const ColumnToggleMenu: React.FC<{
|
|
|
177
168
|
</Box>
|
|
178
169
|
);
|
|
179
170
|
|
|
180
|
-
// The populated table. Local because
|
|
181
|
-
//
|
|
171
|
+
// The populated table. Local because StyledTable cannot cross a module
|
|
172
|
+
// boundary (TS2742).
|
|
182
173
|
const columnsFor = (resolved: TableProps, selection: Selection): ColumnConfig[] =>
|
|
183
174
|
(resolved.responsive ? selection.visibleColumns : resolved.columns) ?? [];
|
|
184
175
|
|
|
@@ -192,15 +183,27 @@ const showsColumnToggle = (resolved: TableProps, selection: Selection): boolean
|
|
|
192
183
|
selection.hiddenColumns.length > 0,
|
|
193
184
|
);
|
|
194
185
|
|
|
186
|
+
// The virtual window lives here, with the one scroller whose offset drives it;
|
|
187
|
+
// the header's ref lets it subtract the height the `<thead>` pushes the body down.
|
|
195
188
|
const AdvancedTable: React.FC<RendererProps> = ({ resolved: p, selection, innerRef, rest }) => {
|
|
189
|
+
const theme = useTheme();
|
|
196
190
|
const finalColumns = columnsFor(p, selection);
|
|
197
191
|
const showToggle = showsColumnToggle(p, selection);
|
|
192
|
+
const headRef = React.useRef<globalThis.HTMLTableSectionElement>(null);
|
|
193
|
+
const windowHeight = virtualHeight(p);
|
|
194
|
+
const { visibleItems, handleScroll } = useVirtualScrolling(
|
|
195
|
+
p.data ?? [],
|
|
196
|
+
tableRowHeight(p.rowHeight) || 40,
|
|
197
|
+
windowHeight ?? 400,
|
|
198
|
+
p.overscan,
|
|
199
|
+
headRef,
|
|
200
|
+
);
|
|
198
201
|
|
|
199
202
|
return (
|
|
200
203
|
<Box position="relative">
|
|
201
|
-
<
|
|
202
|
-
|
|
203
|
-
|
|
204
|
+
<TableContainer
|
|
205
|
+
style={scrollerStyle(theme, p)}
|
|
206
|
+
onScroll={windowHeight ? handleScroll : undefined}
|
|
204
207
|
>
|
|
205
208
|
<StyledTable
|
|
206
209
|
ref={innerRef}
|
|
@@ -224,6 +227,7 @@ const AdvancedTable: React.FC<RendererProps> = ({ resolved: p, selection, innerR
|
|
|
224
227
|
onSelectAll={selection.handleSelectAll}
|
|
225
228
|
density={p.density}
|
|
226
229
|
stickyHeader={p.stickyHeader}
|
|
230
|
+
headRef={headRef}
|
|
227
231
|
/>
|
|
228
232
|
<EnhancedTableBody
|
|
229
233
|
data={p.data ?? []}
|
|
@@ -240,12 +244,11 @@ const AdvancedTable: React.FC<RendererProps> = ({ resolved: p, selection, innerR
|
|
|
240
244
|
renderRow={p.renderRow}
|
|
241
245
|
renderCell={p.renderCell}
|
|
242
246
|
virtualScrolling={p.virtualScrolling}
|
|
243
|
-
|
|
247
|
+
virtualWindow={windowHeight ? visibleItems : undefined}
|
|
244
248
|
rowHeight={p.rowHeight}
|
|
245
|
-
overscan={p.overscan}
|
|
246
249
|
/>
|
|
247
250
|
</StyledTable>
|
|
248
|
-
</
|
|
251
|
+
</TableContainer>
|
|
249
252
|
|
|
250
253
|
{showToggle && (
|
|
251
254
|
<ColumnToggleMenu
|
|
@@ -329,7 +332,6 @@ export const Table = React.forwardRef<globalThis.HTMLTableElement, TableProps>(
|
|
|
329
332
|
emptyStateComponent,
|
|
330
333
|
emptyText,
|
|
331
334
|
children,
|
|
332
|
-
...props
|
|
333
335
|
} = resolved;
|
|
334
336
|
|
|
335
337
|
const selection = useTableSelection({
|
|
@@ -341,7 +343,8 @@ export const Table = React.forwardRef<globalThis.HTMLTableElement, TableProps>(
|
|
|
341
343
|
rowKeyExtractor: resolved.rowKeyExtractor,
|
|
342
344
|
onSelectionChange: resolved.onSelectionChange });
|
|
343
345
|
|
|
344
|
-
|
|
346
|
+
// Only MUI's and the DOM's own props reach the `<table>` (FUT-2658).
|
|
347
|
+
const rest = tableDomProps(tableProps);
|
|
345
348
|
const renderer: RendererProps = { resolved, selection, innerRef: ref, rest };
|
|
346
349
|
const finalColumns = responsive ? selection.visibleColumns : columns;
|
|
347
350
|
const shell = buildShell({ ...renderer, finalColumns });
|