@12-apps/ui 6.39.1 → 6.39.3

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.
Files changed (85) hide show
  1. package/dist/_internal/components/data-display/LazyImage/LazyImage.js +1 -1
  2. package/dist/_internal/components/data-display/Table/Table.helpers.js +10 -3
  3. package/dist/_internal/components/data-display/Table/Table.hooks.js +1 -1
  4. package/dist/_internal/components/data-display/Table/Table.js +4 -4
  5. package/dist/_internal/components/data-display/Table/TableParts.hooks.js +2 -3
  6. package/dist/_internal/components/data-display/Table/TableParts.js +2 -3
  7. package/dist/_internal/components/data-display/index.js +5 -5
  8. package/dist/_internal/components/index.js +11 -11
  9. package/dist/_internal/components/layout/Separator/Separator.js +2 -2
  10. package/dist/_internal/components/layout/Separator/Separator.styles.js +3 -1
  11. package/dist/_internal/components/layout/index.js +2 -2
  12. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +15 -1
  13. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +17 -4
  14. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +15 -2
  15. package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +16 -3
  16. package/dist/_internal/components/utility/index.js +17 -4
  17. package/dist/_internal/social-login-button/social-login-button.js +3 -3
  18. package/dist/{chunk-3FNXOCBD.js → chunk-5CQ5HYJW.js} +2 -2
  19. package/dist/{chunk-YZVR5ROE.js → chunk-5HQNHZ6Z.js} +12 -10
  20. package/dist/chunk-5HQNHZ6Z.js.map +1 -0
  21. package/dist/{chunk-3YOXVNO4.js → chunk-BOGTTXPA.js} +32 -30
  22. package/dist/chunk-BOGTTXPA.js.map +1 -0
  23. package/dist/{chunk-MC4KYGSX.js → chunk-GFQ4U6WZ.js} +3 -5
  24. package/dist/chunk-GFQ4U6WZ.js.map +1 -0
  25. package/dist/{chunk-5LWB4BYX.js → chunk-RGT6DM5W.js} +21 -47
  26. package/dist/chunk-RGT6DM5W.js.map +1 -0
  27. package/dist/{chunk-FF2D7V7T.js → chunk-SDK5LPPC.js} +13 -10
  28. package/dist/chunk-SDK5LPPC.js.map +1 -0
  29. package/dist/{chunk-D46SLMCX.js → chunk-SYNB3IIB.js} +12 -1
  30. package/dist/chunk-SYNB3IIB.js.map +1 -0
  31. package/dist/{chunk-SNURSSTN.js → chunk-VLOUXTEM.js} +3 -3
  32. package/dist/{chunk-V5KKBMAT.js → chunk-VXQOSADY.js} +6 -3
  33. package/dist/{chunk-V5KKBMAT.js.map → chunk-VXQOSADY.js.map} +1 -1
  34. package/dist/{chunk-BVLMKSHX.js → chunk-WDVNRW3Q.js} +2 -2
  35. package/dist/chunk-XS3REOPN.js +86 -0
  36. package/dist/chunk-XS3REOPN.js.map +1 -0
  37. package/dist/{chunk-IG23YZZR.js → chunk-XSSCSRUX.js} +7 -4
  38. package/dist/chunk-XSSCSRUX.js.map +1 -0
  39. package/dist/data-display/LazyImage.js +1 -1
  40. package/dist/data-display/Table.js +4 -4
  41. package/dist/layout/Separator.js +2 -2
  42. package/dist/social-login-button.js +3 -3
  43. package/dist/types/components/data-display/LazyImage/LazyImage.d.ts.map +1 -1
  44. package/dist/types/components/data-display/LazyImage/LazyImage.types.d.ts +15 -3
  45. package/dist/types/components/data-display/LazyImage/LazyImage.types.d.ts.map +1 -1
  46. package/dist/types/components/data-display/Table/Table.d.ts.map +1 -1
  47. package/dist/types/components/data-display/Table/Table.helpers.d.ts +20 -0
  48. package/dist/types/components/data-display/Table/Table.helpers.d.ts.map +1 -1
  49. package/dist/types/components/data-display/Table/Table.hooks.d.ts +8 -11
  50. package/dist/types/components/data-display/Table/Table.hooks.d.ts.map +1 -1
  51. package/dist/types/components/data-display/Table/Table.types.d.ts +17 -2
  52. package/dist/types/components/data-display/Table/Table.types.d.ts.map +1 -1
  53. package/dist/types/components/data-display/Table/TableParts.d.ts.map +1 -1
  54. package/dist/types/components/layout/Separator/Separator.d.ts.map +1 -1
  55. package/dist/types/components/layout/Separator/Separator.styles.d.ts +21 -0
  56. package/dist/types/components/layout/Separator/Separator.styles.d.ts.map +1 -1
  57. package/dist/types/components/utility/WorkflowStep/WorkflowStep.helpers.d.ts +6 -1
  58. package/dist/types/components/utility/WorkflowStep/WorkflowStep.helpers.d.ts.map +1 -1
  59. package/dist/types/components/utility/WorkflowStep/WorkflowStep.parts.d.ts.map +1 -1
  60. package/dist/utility/WorkflowStep.js +17 -4
  61. package/package.json +1 -1
  62. package/src/components/data-display/LazyImage/LazyImage.md +22 -15
  63. package/src/components/data-display/LazyImage/LazyImage.tsx +26 -9
  64. package/src/components/data-display/LazyImage/LazyImage.types.ts +15 -3
  65. package/src/components/data-display/Table/Table.helpers.ts +93 -0
  66. package/src/components/data-display/Table/Table.hooks.ts +20 -11
  67. package/src/components/data-display/Table/Table.tsx +34 -31
  68. package/src/components/data-display/Table/Table.types.ts +18 -2
  69. package/src/components/data-display/Table/TableParts.tsx +23 -52
  70. package/src/components/layout/Separator/Separator.styles.ts +32 -0
  71. package/src/components/layout/Separator/Separator.tsx +4 -2
  72. package/src/components/utility/WorkflowStep/WorkflowStep.helpers.ts +9 -3
  73. package/src/components/utility/WorkflowStep/WorkflowStep.parts.tsx +1 -5
  74. package/dist/chunk-3YOXVNO4.js.map +0 -1
  75. package/dist/chunk-5LWB4BYX.js.map +0 -1
  76. package/dist/chunk-D46SLMCX.js.map +0 -1
  77. package/dist/chunk-FF2D7V7T.js.map +0 -1
  78. package/dist/chunk-IG23YZZR.js.map +0 -1
  79. package/dist/chunk-JWZJSXI5.js +0 -29
  80. package/dist/chunk-JWZJSXI5.js.map +0 -1
  81. package/dist/chunk-MC4KYGSX.js.map +0 -1
  82. package/dist/chunk-YZVR5ROE.js.map +0 -1
  83. /package/dist/{chunk-3FNXOCBD.js.map → chunk-5CQ5HYJW.js.map} +0 -0
  84. /package/dist/{chunk-SNURSSTN.js.map → chunk-VLOUXTEM.js.map} +0 -0
  85. /package/dist/{chunk-BVLMKSHX.js.map → chunk-WDVNRW3Q.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  LazyImage
3
- } from "../../../../chunk-FF2D7V7T.js";
3
+ } from "../../../../chunk-SDK5LPPC.js";
4
4
  import "../../../../chunk-HCT5ELST.js";
5
5
  import "../../../../chunk-724ZONOL.js";
6
6
  import "../../../../chunk-BEGTLELZ.js";
@@ -1,12 +1,19 @@
1
1
  import {
2
2
  TABLE_DEFAULTS,
3
3
  definedProps,
4
- tableRowHeight
5
- } from "../../../../chunk-JWZJSXI5.js";
4
+ scrollerStyle,
5
+ tableDomProps,
6
+ tableRowHeight,
7
+ virtualHeight
8
+ } from "../../../../chunk-XS3REOPN.js";
9
+ import "../../../../chunk-YKCAJ2TN.js";
6
10
  import "../../../../chunk-PZ5AY32C.js";
7
11
  export {
8
12
  TABLE_DEFAULTS,
9
13
  definedProps,
10
- tableRowHeight
14
+ scrollerStyle,
15
+ tableDomProps,
16
+ tableRowHeight,
17
+ virtualHeight
11
18
  };
12
19
  //# sourceMappingURL=Table.helpers.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  useTableSelection,
3
3
  useVirtualScrolling
4
- } from "../../../../chunk-YZVR5ROE.js";
4
+ } from "../../../../chunk-5HQNHZ6Z.js";
5
5
  import "../../../../chunk-YKCAJ2TN.js";
6
6
  import "../../../../chunk-PZ5AY32C.js";
7
7
  export {
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  Table
3
- } from "../../../../chunk-3YOXVNO4.js";
3
+ } from "../../../../chunk-BOGTTXPA.js";
4
4
  import "../../../../chunk-POV2KL2P.js";
5
+ import "../../../../chunk-5HQNHZ6Z.js";
5
6
  import "../../../../chunk-XIXR2L3L.js";
6
- import "../../../../chunk-5LWB4BYX.js";
7
- import "../../../../chunk-YZVR5ROE.js";
8
- import "../../../../chunk-JWZJSXI5.js";
7
+ import "../../../../chunk-RGT6DM5W.js";
8
+ import "../../../../chunk-XS3REOPN.js";
9
9
  import "../../../../chunk-YKCAJ2TN.js";
10
10
  import "../../../../chunk-PZ5AY32C.js";
11
11
  export {
@@ -1,8 +1,7 @@
1
1
  import {
2
2
  useTableRowRenderer
3
- } from "../../../../chunk-5LWB4BYX.js";
4
- import "../../../../chunk-YZVR5ROE.js";
5
- import "../../../../chunk-JWZJSXI5.js";
3
+ } from "../../../../chunk-RGT6DM5W.js";
4
+ import "../../../../chunk-XS3REOPN.js";
6
5
  import "../../../../chunk-YKCAJ2TN.js";
7
6
  import "../../../../chunk-PZ5AY32C.js";
8
7
  export {
@@ -2,9 +2,8 @@ import {
2
2
  EnhancedTableBody,
3
3
  EnhancedTableHeader,
4
4
  TableDataRow
5
- } from "../../../../chunk-5LWB4BYX.js";
6
- import "../../../../chunk-YZVR5ROE.js";
7
- import "../../../../chunk-JWZJSXI5.js";
5
+ } from "../../../../chunk-RGT6DM5W.js";
6
+ import "../../../../chunk-XS3REOPN.js";
8
7
  import "../../../../chunk-YKCAJ2TN.js";
9
8
  import "../../../../chunk-PZ5AY32C.js";
10
9
  export {
@@ -31,12 +31,12 @@ import "../../../chunk-IM4DMKH4.js";
31
31
  import "../../../chunk-WG2WFANT.js";
32
32
  import {
33
33
  Table
34
- } from "../../../chunk-3YOXVNO4.js";
34
+ } from "../../../chunk-BOGTTXPA.js";
35
35
  import "../../../chunk-POV2KL2P.js";
36
+ import "../../../chunk-5HQNHZ6Z.js";
36
37
  import "../../../chunk-XIXR2L3L.js";
37
- import "../../../chunk-5LWB4BYX.js";
38
- import "../../../chunk-YZVR5ROE.js";
39
- import "../../../chunk-JWZJSXI5.js";
38
+ import "../../../chunk-RGT6DM5W.js";
39
+ import "../../../chunk-XS3REOPN.js";
40
40
  import "../../../chunk-JBE3LH4C.js";
41
41
  import {
42
42
  Timeline
@@ -91,7 +91,7 @@ import "../../../chunk-S5UY5U73.js";
91
91
  import "../../../chunk-5ZFO7ROE.js";
92
92
  import {
93
93
  LazyImage
94
- } from "../../../chunk-FF2D7V7T.js";
94
+ } from "../../../chunk-SDK5LPPC.js";
95
95
  import "../../../chunk-HCT5ELST.js";
96
96
  import "../../../chunk-724ZONOL.js";
97
97
  import "../../../chunk-UM35GGCS.js";
@@ -13,10 +13,10 @@ import "../../chunk-SS4MHTGU.js";
13
13
  import "../../chunk-IO36MEBD.js";
14
14
  import {
15
15
  WorkflowStep
16
- } from "../../chunk-SNURSSTN.js";
17
- import "../../chunk-BVLMKSHX.js";
18
- import "../../chunk-MC4KYGSX.js";
19
- import "../../chunk-V5KKBMAT.js";
16
+ } from "../../chunk-VLOUXTEM.js";
17
+ import "../../chunk-WDVNRW3Q.js";
18
+ import "../../chunk-GFQ4U6WZ.js";
19
+ import "../../chunk-VXQOSADY.js";
20
20
  import "../../chunk-H2PTB6FD.js";
21
21
  import {
22
22
  AnimatedIcon
@@ -417,12 +417,12 @@ import "../../chunk-IM4DMKH4.js";
417
417
  import "../../chunk-WG2WFANT.js";
418
418
  import {
419
419
  Table
420
- } from "../../chunk-3YOXVNO4.js";
420
+ } from "../../chunk-BOGTTXPA.js";
421
421
  import "../../chunk-POV2KL2P.js";
422
+ import "../../chunk-5HQNHZ6Z.js";
422
423
  import "../../chunk-XIXR2L3L.js";
423
- import "../../chunk-5LWB4BYX.js";
424
- import "../../chunk-YZVR5ROE.js";
425
- import "../../chunk-JWZJSXI5.js";
424
+ import "../../chunk-RGT6DM5W.js";
425
+ import "../../chunk-XS3REOPN.js";
426
426
  import "../../chunk-JBE3LH4C.js";
427
427
  import {
428
428
  Timeline
@@ -477,7 +477,7 @@ import "../../chunk-S5UY5U73.js";
477
477
  import "../../chunk-5ZFO7ROE.js";
478
478
  import {
479
479
  LazyImage
480
- } from "../../chunk-FF2D7V7T.js";
480
+ } from "../../chunk-SDK5LPPC.js";
481
481
  import "../../chunk-HCT5ELST.js";
482
482
  import "../../chunk-724ZONOL.js";
483
483
  import "../../chunk-UM35GGCS.js";
@@ -767,8 +767,8 @@ import "../../chunk-LKMMJKXU.js";
767
767
  import "../../chunk-CMMPGAMJ.js";
768
768
  import {
769
769
  Separator
770
- } from "../../chunk-IG23YZZR.js";
771
- import "../../chunk-D46SLMCX.js";
770
+ } from "../../chunk-XSSCSRUX.js";
771
+ import "../../chunk-SYNB3IIB.js";
772
772
  import {
773
773
  Avatar,
774
774
  AvatarGroup
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Separator
3
- } from "../../../../chunk-IG23YZZR.js";
4
- import "../../../../chunk-D46SLMCX.js";
3
+ } from "../../../../chunk-XSSCSRUX.js";
4
+ import "../../../../chunk-SYNB3IIB.js";
5
5
  import "../../../../chunk-PZBK3F52.js";
6
6
  import "../../../../chunk-YKCAJ2TN.js";
7
7
  import "../../../../chunk-PZ5AY32C.js";
@@ -1,12 +1,14 @@
1
1
  import {
2
+ labelledSeparatorLayout,
2
3
  separatorBlockMargin,
3
4
  separatorMargin,
4
5
  separatorStyles
5
- } from "../../../../chunk-D46SLMCX.js";
6
+ } from "../../../../chunk-SYNB3IIB.js";
6
7
  import "../../../../chunk-PZBK3F52.js";
7
8
  import "../../../../chunk-YKCAJ2TN.js";
8
9
  import "../../../../chunk-PZ5AY32C.js";
9
10
  export {
11
+ labelledSeparatorLayout,
10
12
  separatorBlockMargin,
11
13
  separatorMargin,
12
14
  separatorStyles
@@ -103,8 +103,8 @@ import "../../../chunk-7WDPC46N.js";
103
103
  import "../../../chunk-CMMPGAMJ.js";
104
104
  import {
105
105
  Separator
106
- } from "../../../chunk-IG23YZZR.js";
107
- import "../../../chunk-D46SLMCX.js";
106
+ } from "../../../chunk-XSSCSRUX.js";
107
+ import "../../../chunk-SYNB3IIB.js";
108
108
  import "../../../chunk-2GSIEDGN.js";
109
109
  import {
110
110
  Card,
@@ -4,10 +4,24 @@ import {
4
4
  stepColors,
5
5
  stepPalette,
6
6
  withDerivedStatus
7
- } from "../../../../chunk-V5KKBMAT.js";
7
+ } from "../../../../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";
24
+ import "../../../../chunk-YKCAJ2TN.js";
11
25
  import "../../../../chunk-PZ5AY32C.js";
12
26
  export {
13
27
  indicatorSizeFor,
@@ -1,10 +1,23 @@
1
1
  import {
2
2
  WorkflowStep,
3
3
  WorkflowStep_default
4
- } from "../../../../chunk-SNURSSTN.js";
5
- import "../../../../chunk-BVLMKSHX.js";
6
- import "../../../../chunk-MC4KYGSX.js";
7
- import "../../../../chunk-V5KKBMAT.js";
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";
@@ -3,8 +3,21 @@ import {
3
3
  StepContentComponent,
4
4
  StepIndicatorComponent,
5
5
  StepItemRow
6
- } from "../../../../chunk-MC4KYGSX.js";
7
- import "../../../../chunk-V5KKBMAT.js";
6
+ } from "../../../../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";
@@ -1,8 +1,21 @@
1
1
  import {
2
2
  StepRow
3
- } from "../../../../chunk-BVLMKSHX.js";
4
- import "../../../../chunk-MC4KYGSX.js";
5
- import "../../../../chunk-V5KKBMAT.js";
3
+ } from "../../../../chunk-WDVNRW3Q.js";
4
+ import "../../../../chunk-GFQ4U6WZ.js";
5
+ import "../../../../chunk-VXQOSADY.js";
6
+ import "../../../../chunk-TCAQOUIB.js";
7
+ import "../../../../chunk-7ZPUN7TV.js";
8
+ import "../../../../chunk-PT6TCWIW.js";
9
+ import "../../../../chunk-CGO452DC.js";
10
+ import "../../../../chunk-GDN2LUTZ.js";
11
+ import "../../../../chunk-7FDU3FIN.js";
12
+ import "../../../../chunk-EPEJMTCQ.js";
13
+ import "../../../../chunk-PE4ZW3IA.js";
14
+ import "../../../../chunk-2BYKTBDL.js";
15
+ import "../../../../chunk-AG66JBNH.js";
16
+ import "../../../../chunk-FZXKH2ZT.js";
17
+ import "../../../../chunk-PZBK3F52.js";
18
+ import "../../../../chunk-26X4CZVR.js";
6
19
  import "../../../../chunk-FQ6UW7IY.js";
7
20
  import "../../../../chunk-6JAIFIPW.js";
8
21
  import "../../../../chunk-N3GAFIXG.js";
@@ -2,10 +2,10 @@ import "../../../chunk-SS4MHTGU.js";
2
2
  import "../../../chunk-IO36MEBD.js";
3
3
  import {
4
4
  WorkflowStep
5
- } from "../../../chunk-SNURSSTN.js";
6
- import "../../../chunk-BVLMKSHX.js";
7
- import "../../../chunk-MC4KYGSX.js";
8
- import "../../../chunk-V5KKBMAT.js";
5
+ } from "../../../chunk-VLOUXTEM.js";
6
+ import "../../../chunk-WDVNRW3Q.js";
7
+ import "../../../chunk-GFQ4U6WZ.js";
8
+ import "../../../chunk-VXQOSADY.js";
9
9
  import "../../../chunk-H2PTB6FD.js";
10
10
  import {
11
11
  AnimatedIcon
@@ -59,6 +59,19 @@ import {
59
59
  useMeasuredWidth
60
60
  } from "../../../chunk-Y4KKS6WL.js";
61
61
  import "../../../chunk-HPK33ACY.js";
62
+ import "../../../chunk-TCAQOUIB.js";
63
+ import "../../../chunk-7ZPUN7TV.js";
64
+ import "../../../chunk-PT6TCWIW.js";
65
+ import "../../../chunk-CGO452DC.js";
66
+ import "../../../chunk-GDN2LUTZ.js";
67
+ import "../../../chunk-7FDU3FIN.js";
68
+ import "../../../chunk-EPEJMTCQ.js";
69
+ import "../../../chunk-PE4ZW3IA.js";
70
+ import "../../../chunk-2BYKTBDL.js";
71
+ import "../../../chunk-AG66JBNH.js";
72
+ import "../../../chunk-FZXKH2ZT.js";
73
+ import "../../../chunk-PZBK3F52.js";
74
+ import "../../../chunk-26X4CZVR.js";
62
75
  import "../../../chunk-FQ6UW7IY.js";
63
76
  import "../../../chunk-6JAIFIPW.js";
64
77
  import "../../../chunk-N3GAFIXG.js";
@@ -5,15 +5,15 @@ import {
5
5
  GoogleIcon,
6
6
  SocialLoginButton,
7
7
  SocialLoginContainer
8
- } from "../../chunk-3FNXOCBD.js";
8
+ } from "../../chunk-5CQ5HYJW.js";
9
9
  import "../../chunk-INGPH3YQ.js";
10
10
  import "../../chunk-6GP2DOOO.js";
11
11
  import "../../chunk-IJFAF3A7.js";
12
12
  import "../../chunk-5JSRM7WC.js";
13
13
  import "../../chunk-LKMMJKXU.js";
14
14
  import "../../chunk-CMMPGAMJ.js";
15
- import "../../chunk-IG23YZZR.js";
16
- import "../../chunk-D46SLMCX.js";
15
+ import "../../chunk-XSSCSRUX.js";
16
+ import "../../chunk-SYNB3IIB.js";
17
17
  import "../../chunk-VUHLNYAE.js";
18
18
  import "../../chunk-2GSIEDGN.js";
19
19
  import "../../chunk-WN5PNP6F.js";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-IJFAF3A7.js";
7
7
  import {
8
8
  Separator
9
- } from "./chunk-IG23YZZR.js";
9
+ } from "./chunk-XSSCSRUX.js";
10
10
  import {
11
11
  Card,
12
12
  CardContent
@@ -217,4 +217,4 @@ export {
217
217
  SocialLoginButton,
218
218
  SocialLoginContainer
219
219
  };
220
- //# sourceMappingURL=chunk-3FNXOCBD.js.map
220
+ //# sourceMappingURL=chunk-5CQ5HYJW.js.map
@@ -7,15 +7,16 @@ import {
7
7
  import { useTheme } from "@mui/material/styles/index.js";
8
8
  import useMediaQuery from "@mui/material/useMediaQuery/index.js";
9
9
  import { useCallback, useEffect, useMemo, useState } from "react";
10
- var useVirtualScrolling = (data, rowHeight, containerHeight, overscan = 5) => {
10
+ var useVirtualScrolling = (data, rowHeight, containerHeight, overscan = 5, headerRef) => {
11
11
  const theme = useTheme();
12
- const [scrollTop, setScrollTop] = useState(0);
12
+ const [scroll, setScroll] = useState({ scrollTop: 0, headerPx: 0 });
13
13
  const visibleItems = useMemo(() => {
14
14
  const pitch = remPx(theme, rowHeight);
15
- const startIndex = Math.floor(scrollTop / pitch);
15
+ const bodyScrollTop = Math.max(0, scroll.scrollTop - scroll.headerPx);
16
+ const startIndex = Math.floor(bodyScrollTop / pitch);
16
17
  const endIndex = Math.min(
17
18
  data.length,
18
- Math.ceil((scrollTop + remPx(theme, containerHeight)) / pitch)
19
+ Math.ceil((bodyScrollTop + remPx(theme, containerHeight)) / pitch)
19
20
  );
20
21
  const start = Math.max(0, startIndex - overscan);
21
22
  const end = Math.min(data.length, endIndex + overscan);
@@ -23,15 +24,16 @@ var useVirtualScrolling = (data, rowHeight, containerHeight, overscan = 5) => {
23
24
  startIndex: start,
24
25
  endIndex: end,
25
26
  items: data.slice(start, end),
26
- /** Every row at the scaled pitch, as CSS. */
27
27
  totalHeight: rem(theme, data.length * rowHeight),
28
- /** Where the first mounted row sits, in design px. */
29
28
  offsetY: start * rowHeight
30
29
  };
31
- }, [data, rowHeight, containerHeight, scrollTop, overscan, theme]);
30
+ }, [data, rowHeight, containerHeight, scroll, overscan, theme]);
32
31
  const handleScroll = useCallback((e) => {
33
- setScrollTop(e.currentTarget.scrollTop);
34
- }, []);
32
+ setScroll({
33
+ scrollTop: e.currentTarget.scrollTop,
34
+ headerPx: headerRef?.current?.offsetHeight ?? 0
35
+ });
36
+ }, [headerRef]);
35
37
  return { visibleItems, handleScroll };
36
38
  };
37
39
  var useResponsive = (columns, columnPriorities) => {
@@ -117,4 +119,4 @@ export {
117
119
  useVirtualScrolling,
118
120
  useTableSelection
119
121
  };
120
- //# sourceMappingURL=chunk-YZVR5ROE.js.map
122
+ //# sourceMappingURL=chunk-5HQNHZ6Z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/Table/Table.hooks.ts"],"sourcesContent":["import { useTheme } from '@mui/material/styles/index.js';\nimport useMediaQuery from '@mui/material/useMediaQuery/index.js';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { rem, remPx } from '../../../tokens/relative';\n\nimport type { ColumnConfig, TableProps, VirtualWindow } from './Table.types';\n\n/**\n * The virtual window. `rowHeight` and `containerHeight` are design px: the\n * window is computed in the px `scrollTop` is measured in (`remPx`), and what it\n * hands back to draw with stays in design px (`offsetY`) or is CSS already\n * (`totalHeight`), so the rows and the window share one pitch at any type scale.\n *\n * The scroller holds the header as well as the body, so the `<tbody>` starts\n * the header's height into it. `handleScroll` measures that height from\n * `headerRef` in the same live px as `scrollTop`, and the window subtracts it\n * before dividing by the pitch (FUT-2658).\n */\nexport const useVirtualScrolling = (\n data: Record<string, unknown>[],\n rowHeight: number,\n containerHeight: number,\n overscan: number = 5,\n headerRef?: React.RefObject<HTMLElement | null>,\n) => {\n const theme = useTheme();\n // Both live px, as the browser measures them.\n const [scroll, setScroll] = useState({ scrollTop: 0, headerPx: 0 });\n \n const visibleItems = useMemo((): VirtualWindow => {\n const pitch = remPx(theme, rowHeight);\n const bodyScrollTop = Math.max(0, scroll.scrollTop - scroll.headerPx);\n const startIndex = Math.floor(bodyScrollTop / pitch);\n const endIndex = Math.min(\n data.length,\n Math.ceil((bodyScrollTop + remPx(theme, containerHeight)) / pitch)\n );\n \n const start = Math.max(0, startIndex - overscan);\n const end = Math.min(data.length, endIndex + overscan);\n \n return {\n startIndex: start,\n endIndex: end,\n items: data.slice(start, end),\n totalHeight: rem(theme, data.length * rowHeight),\n offsetY: start * rowHeight,\n };\n }, [data, rowHeight, containerHeight, scroll, overscan, theme]);\n\n const handleScroll = useCallback((e: React.UIEvent<HTMLDivElement>) => {\n setScroll({\n scrollTop: e.currentTarget.scrollTop,\n headerPx: headerRef?.current?.offsetHeight ?? 0,\n });\n }, [headerRef]);\n\n return { visibleItems, handleScroll };\n};\n\n// Responsive Hook\n\nconst useResponsive = (\n columns: ColumnConfig[],\n columnPriorities?: number[]\n) => {\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('md'));\n const isTablet = useMediaQuery(theme.breakpoints.down('lg'));\n \n const [hiddenColumns, setHiddenColumns] = useState<number[]>([]);\n const [columnMenuAnchor, setColumnMenuAnchor] = useState<null | HTMLElement>(null);\n\n useEffect(() => {\n if (!columnPriorities) return;\n \n let columnsToHide: number[] = [];\n \n if (isMobile) {\n // Hide lowest priority columns on mobile\n columnsToHide = columnPriorities\n .map((priority, index) => ({ priority, index }))\n .sort((a, b) => b.priority - a.priority)\n .slice(0, Math.floor(columns.length / 2))\n .map(item => item.index);\n } else if (isTablet) {\n // Hide some columns on tablet\n columnsToHide = columnPriorities\n .map((priority, index) => ({ priority, index }))\n .sort((a, b) => b.priority - a.priority)\n .slice(0, Math.floor(columns.length / 3))\n .map(item => item.index);\n }\n \n setHiddenColumns(columnsToHide);\n }, [isMobile, isTablet, columnPriorities, columns.length]);\n\n const visibleColumns = columns.filter((_, index) => !hiddenColumns.includes(index));\n\n return {\n visibleColumns,\n hiddenColumns,\n isMobile,\n columnMenuAnchor,\n setColumnMenuAnchor,\n setHiddenColumns,\n };\n};\n\n// Enhanced Table Header Component\n// Visible/hidden column split for responsive mode, plus row selection.\nexport const useTableSelection = ({\n columns,\n data,\n responsive,\n columnPriorities,\n selectedRows,\n rowKeyExtractor,\n onSelectionChange,\n}: {\n columns?: ColumnConfig[];\n data: TableProps['data'];\n responsive?: boolean;\n columnPriorities?: number[];\n selectedRows: (string | number)[];\n rowKeyExtractor?: (row: Record<string, unknown>, index: number) => string | number;\n onSelectionChange?: TableProps['onSelectionChange'];\n}) => {\n \n // Use responsive hook if responsive mode is enabled\n const {\n visibleColumns,\n hiddenColumns,\n isMobile,\n columnMenuAnchor,\n setColumnMenuAnchor,\n setHiddenColumns,\n } = useResponsive(\n columns || [],\n responsive ? columnPriorities : undefined\n );\n\n // Handle selection changes\n const handleSelectionChange = useCallback((rowKey: string | number, selected: boolean) => {\n if (!onSelectionChange) return;\n \n let newSelection: (string | number)[];\n if (selected) {\n newSelection = [...selectedRows, rowKey];\n } else {\n newSelection = selectedRows.filter(key => key !== rowKey);\n }\n onSelectionChange(newSelection);\n }, [selectedRows, onSelectionChange]);\n\n const handleSelectAll = useCallback((selected: boolean) => {\n if (!onSelectionChange || !data) return;\n \n if (selected) {\n const allKeys = data.map((rowData, index) => \n rowKeyExtractor ? rowKeyExtractor(rowData, index) : (rowData.id as string | number) || index\n );\n onSelectionChange(allKeys);\n } else {\n onSelectionChange([]);\n }\n }, [data, onSelectionChange, rowKeyExtractor]);\n\n // Loading state\n\n return {\n visibleColumns,\n hiddenColumns,\n isMobile,\n columnMenuAnchor,\n setColumnMenuAnchor,\n setHiddenColumns,\n handleSelectionChange,\n handleSelectAll,\n };\n};\n"],"mappings":"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","names":[]}
@@ -1,6 +1,10 @@
1
1
  import {
2
2
  tableStyles
3
3
  } from "./chunk-POV2KL2P.js";
4
+ import {
5
+ useTableSelection,
6
+ useVirtualScrolling
7
+ } from "./chunk-5HQNHZ6Z.js";
4
8
  import {
5
9
  EmptyRow,
6
10
  NoDataPlaceholder
@@ -8,14 +12,15 @@ import {
8
12
  import {
9
13
  EnhancedTableBody,
10
14
  EnhancedTableHeader
11
- } from "./chunk-5LWB4BYX.js";
12
- import {
13
- useTableSelection
14
- } from "./chunk-YZVR5ROE.js";
15
+ } from "./chunk-RGT6DM5W.js";
15
16
  import {
16
17
  TABLE_DEFAULTS,
17
- definedProps
18
- } from "./chunk-JWZJSXI5.js";
18
+ definedProps,
19
+ scrollerStyle,
20
+ tableDomProps,
21
+ tableRowHeight,
22
+ virtualHeight
23
+ } from "./chunk-XS3REOPN.js";
19
24
  import {
20
25
  rem
21
26
  } from "./chunk-YKCAJ2TN.js";
@@ -37,18 +42,6 @@ import TableRow from "@mui/material/TableRow/index.js";
37
42
  import { styled, useTheme } from "@mui/material/styles/index.js";
38
43
  import React from "react";
39
44
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
40
- var scrollHeight = (theme, containerHeight) => {
41
- const box = containerHeight || 400;
42
- return typeof box === "number" ? rem(theme, box) : box;
43
- };
44
- var StyledTableContainer = styled(TableContainer, {
45
- shouldForwardProp: (prop) => !["virtualScrolling", "containerHeight"].includes(prop)
46
- })(({ theme, virtualScrolling, containerHeight }) => ({
47
- ...virtualScrolling && {
48
- height: scrollHeight(theme, containerHeight),
49
- overflow: "auto"
50
- }
51
- }));
52
45
  var StyledTable = styled(MuiTable, {
53
46
  shouldForwardProp: (prop) => !["customVariant", "glow", "pulse", "hoverable", "density", "stickyHeader", "stripeColor"].includes(prop)
54
47
  })(({ theme, customVariant, glow, pulse, hoverable, density, stickyHeader, stripeColor = "neutral" }) => {
@@ -75,7 +68,7 @@ var TableShell = ({
75
68
  header,
76
69
  rest,
77
70
  children
78
- }) => /* @__PURE__ */ jsx(StyledTableContainer, { children: /* @__PURE__ */ jsxs(
71
+ }) => /* @__PURE__ */ jsx(TableContainer, { children: /* @__PURE__ */ jsxs(
79
72
  StyledTable,
80
73
  {
81
74
  ref: innerRef,
@@ -122,14 +115,24 @@ var showsColumnToggle = (resolved, selection) => Boolean(
122
115
  resolved.responsive && selection.isMobile && resolved.showColumnToggle && selection.hiddenColumns.length > 0
123
116
  );
124
117
  var AdvancedTable = ({ resolved: p, selection, innerRef, rest }) => {
118
+ const theme = useTheme();
125
119
  const finalColumns = columnsFor(p, selection);
126
120
  const showToggle = showsColumnToggle(p, selection);
121
+ const headRef = React.useRef(null);
122
+ const windowHeight = virtualHeight(p);
123
+ const { visibleItems, handleScroll } = useVirtualScrolling(
124
+ p.data ?? [],
125
+ tableRowHeight(p.rowHeight) || 40,
126
+ windowHeight ?? 400,
127
+ p.overscan,
128
+ headRef
129
+ );
127
130
  return /* @__PURE__ */ jsxs(Box, { position: "relative", children: [
128
131
  /* @__PURE__ */ jsx(
129
- StyledTableContainer,
132
+ TableContainer,
130
133
  {
131
- virtualScrolling: p.virtualScrolling,
132
- containerHeight: p.containerHeight,
134
+ style: scrollerStyle(theme, p),
135
+ onScroll: windowHeight ? handleScroll : void 0,
133
136
  children: /* @__PURE__ */ jsxs(
134
137
  StyledTable,
135
138
  {
@@ -155,7 +158,8 @@ var AdvancedTable = ({ resolved: p, selection, innerRef, rest }) => {
155
158
  selectedRows: p.selectedRows,
156
159
  onSelectAll: selection.handleSelectAll,
157
160
  density: p.density,
158
- stickyHeader: p.stickyHeader
161
+ stickyHeader: p.stickyHeader,
162
+ headRef
159
163
  }
160
164
  ),
161
165
  /* @__PURE__ */ jsx(
@@ -175,9 +179,8 @@ var AdvancedTable = ({ resolved: p, selection, innerRef, rest }) => {
175
179
  renderRow: p.renderRow,
176
180
  renderCell: p.renderCell,
177
181
  virtualScrolling: p.virtualScrolling,
178
- containerHeight: typeof p.containerHeight === "number" ? p.containerHeight : void 0,
179
- rowHeight: p.rowHeight,
180
- overscan: p.overscan
182
+ virtualWindow: windowHeight ? visibleItems : void 0,
183
+ rowHeight: p.rowHeight
181
184
  }
182
185
  )
183
186
  ]
@@ -242,8 +245,7 @@ var Table = React.forwardRef(
242
245
  loadingComponent,
243
246
  emptyStateComponent,
244
247
  emptyText,
245
- children,
246
- ...props
248
+ children
247
249
  } = resolved;
248
250
  const selection = useTableSelection({
249
251
  columns,
@@ -254,7 +256,7 @@ var Table = React.forwardRef(
254
256
  rowKeyExtractor: resolved.rowKeyExtractor,
255
257
  onSelectionChange: resolved.onSelectionChange
256
258
  });
257
- const rest = props;
259
+ const rest = tableDomProps(tableProps);
258
260
  const renderer = { resolved, selection, innerRef: ref, rest };
259
261
  const finalColumns = responsive ? selection.visibleColumns : columns;
260
262
  const shell = buildShell({ ...renderer, finalColumns });
@@ -295,4 +297,4 @@ Table.displayName = "Table";
295
297
  export {
296
298
  Table
297
299
  };
298
- //# sourceMappingURL=chunk-3YOXVNO4.js.map
300
+ //# sourceMappingURL=chunk-BOGTTXPA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/Table/Table.tsx"],"sourcesContent":["import MoreVertIcon from '@mui/icons-material/MoreVert';\nimport Box from '@mui/material/Box/index.js';\nimport FormControlLabel from '@mui/material/FormControlLabel/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport Menu from '@mui/material/Menu/index.js';\nimport MenuItem from '@mui/material/MenuItem/index.js';\nimport Skeleton from '@mui/material/Skeleton/index.js';\nimport Switch from '@mui/material/Switch/index.js';\nimport MuiTable from '@mui/material/Table/index.js';\nimport TableBody from '@mui/material/TableBody/index.js';\nimport TableCell from '@mui/material/TableCell/index.js';\nimport TableContainer from '@mui/material/TableContainer/index.js';\nimport TableRow from '@mui/material/TableRow/index.js';\nimport { styled, useTheme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport type {\n ColumnConfig,\n TableDensity,\n TableProps,\n TableStripeColor} from './Table.types';\nimport {\n TABLE_DEFAULTS,\n definedProps,\n scrollerStyle,\n tableDomProps,\n tableRowHeight,\n virtualHeight,\n} from './Table.helpers';\nimport { useTableSelection, useVirtualScrolling } from './Table.hooks';\nimport { EnhancedTableBody, EnhancedTableHeader } from './TableParts';\nimport { EmptyRow, NoDataPlaceholder } from './TableStates';\nimport {\n tableStyles } from './Table.styles';\nimport { rem } from '../../../tokens/relative';\n\n// Helper function to get stripe color from theme\nconst StyledTable = styled(MuiTable, {\n shouldForwardProp: (prop) =>\n !['customVariant', 'glow', 'pulse', 'hoverable', 'density', 'stickyHeader', 'stripeColor'].includes(prop as string) })<{\n customVariant?: string;\n glow?: boolean;\n pulse?: boolean;\n hoverable?: boolean;\n density?: TableDensity;\n stickyHeader?: boolean;\n stripeColor?: TableStripeColor;\n}>(({ theme, customVariant, glow, pulse, hoverable, density, stickyHeader, stripeColor = 'neutral' }) => {\n return tableStyles({\n theme,\n customVariant,\n glow,\n pulse,\n hoverable,\n density,\n stickyHeader,\n stripeColor });\n});\n\n// Virtual Scrolling Hook\nconst TableShell: React.FC<{\n innerRef: React.Ref<globalThis.HTMLTableElement>;\n variant?: string;\n stripeColor?: TableStripeColor;\n glow?: boolean;\n pulse?: boolean;\n hoverable?: boolean;\n density?: TableDensity;\n stickyHeader?: boolean;\n header: React.ReactNode;\n rest: Record<string, unknown>;\n children: React.ReactNode;\n}> = ({\n innerRef,\n variant,\n stripeColor,\n glow,\n pulse,\n hoverable,\n density,\n stickyHeader,\n header,\n rest,\n children }) => (\n <TableContainer>\n <StyledTable\n ref={innerRef}\n customVariant={variant}\n stripeColor={stripeColor}\n glow={glow}\n pulse={pulse}\n hoverable={hoverable}\n density={density}\n stickyHeader={stickyHeader}\n {...rest}\n >\n {header}\n {children}\n </StyledTable>\n </TableContainer>\n);\n\nconst SKELETON_ROW_COUNT = 5;\n\nconst LoadingSkeletonRows: React.FC<{ columns?: ColumnConfig[] }> = ({ columns }) => {\n const theme = useTheme();\n return (\n <>\n {Array.from({ length: SKELETON_ROW_COUNT }, (_, index) => (\n <TableRow key={index}>\n {columns?.map((column) => (\n <TableCell key={column.key}>\n <Skeleton height={rem(theme, 20)} />\n </TableCell>\n ))}\n </TableRow>\n ))}\n </>\n );\n};\n\nexport type TableShellProps = Omit<React.ComponentProps<typeof TableShell>, 'children'>;\n\ntype Selection = ReturnType<typeof useTableSelection>;\n\ninterface RendererProps {\n resolved: TableProps;\n selection: Selection;\n innerRef: React.Ref<globalThis.HTMLTableElement>;\n rest: Record<string, unknown>;\n}\n\n// The column-visibility control, shown only when responsive mode has actually\n// hidden something on a narrow viewport.\nconst ColumnToggleMenu: React.FC<{\n columns: ColumnConfig[];\n hiddenColumns: number[];\n anchor: HTMLElement | null;\n setAnchor: (element: HTMLElement | null) => void;\n setHiddenColumns: (next: number[]) => void;\n}> = ({ columns, hiddenColumns, anchor, setAnchor, setHiddenColumns }) => (\n <Box position=\"absolute\" top={8} right={8}>\n <IconButton onClick={(event) => setAnchor(event.currentTarget)} size=\"small\">\n <MoreVertIcon />\n </IconButton>\n <Menu anchorEl={anchor} open={Boolean(anchor)} onClose={() => setAnchor(null)}>\n {columns.map((column, index) => (\n <MenuItem key={column.key}>\n <FormControlLabel\n control={\n <Switch\n checked={!hiddenColumns.includes(index)}\n onChange={(event) =>\n setHiddenColumns(\n event.target.checked\n ? hiddenColumns.filter((i: number) => i !== index)\n : [...hiddenColumns, index],\n )\n }\n size=\"small\"\n />\n }\n label={column.label}\n />\n </MenuItem>\n ))}\n </Menu>\n </Box>\n);\n\n// The populated table. Local because StyledTable cannot cross a module\n// boundary (TS2742).\nconst columnsFor = (resolved: TableProps, selection: Selection): ColumnConfig[] =>\n (resolved.responsive ? selection.visibleColumns : resolved.columns) ?? [];\n\n// The toggle only earns its place when responsive mode has actually hidden\n// something on a narrow viewport.\nconst showsColumnToggle = (resolved: TableProps, selection: Selection): boolean =>\n Boolean(\n resolved.responsive &&\n selection.isMobile &&\n resolved.showColumnToggle &&\n selection.hiddenColumns.length > 0,\n );\n\n// The virtual window lives here, with the one scroller whose offset drives it;\n// the header's ref lets it subtract the height the `<thead>` pushes the body down.\nconst AdvancedTable: React.FC<RendererProps> = ({ resolved: p, selection, innerRef, rest }) => {\n const theme = useTheme();\n const finalColumns = columnsFor(p, selection);\n const showToggle = showsColumnToggle(p, selection);\n const headRef = React.useRef<globalThis.HTMLTableSectionElement>(null);\n const windowHeight = virtualHeight(p);\n const { visibleItems, handleScroll } = useVirtualScrolling(\n p.data ?? [],\n tableRowHeight(p.rowHeight) || 40,\n windowHeight ?? 400,\n p.overscan,\n headRef,\n );\n\n return (\n <Box position=\"relative\">\n <TableContainer\n style={scrollerStyle(theme, p)}\n onScroll={windowHeight ? handleScroll : undefined}\n >\n <StyledTable\n ref={innerRef}\n customVariant={p.variant}\n stripeColor={p.stripeColor}\n glow={p.glow}\n pulse={p.pulse}\n hoverable={p.hoverable}\n density={p.density}\n stickyHeader={p.stickyHeader}\n {...rest}\n >\n <EnhancedTableHeader\n columns={finalColumns}\n data={p.data ?? []}\n sortable={p.sortable}\n sortConfig={p.sortConfig}\n onSortChange={p.onSortChange}\n selectable={p.selectable}\n selectedRows={p.selectedRows}\n onSelectAll={selection.handleSelectAll}\n density={p.density}\n stickyHeader={p.stickyHeader}\n headRef={headRef}\n />\n <EnhancedTableBody\n data={p.data ?? []}\n columns={finalColumns}\n selectedRows={p.selectedRows}\n onRowClick={p.onRowClick}\n onRowFocus={p.onRowFocus}\n onRowBlur={p.onRowBlur}\n onSelectionChange={selection.handleSelectionChange}\n rowKeyExtractor={p.rowKeyExtractor}\n density={p.density}\n selectable={p.selectable}\n hoverable={p.hoverable}\n renderRow={p.renderRow}\n renderCell={p.renderCell}\n virtualScrolling={p.virtualScrolling}\n virtualWindow={windowHeight ? visibleItems : undefined}\n rowHeight={p.rowHeight}\n />\n </StyledTable>\n </TableContainer>\n\n {showToggle && (\n <ColumnToggleMenu\n columns={p.columns ?? []}\n hiddenColumns={selection.hiddenColumns}\n anchor={selection.columnMenuAnchor}\n setAnchor={selection.setColumnMenuAnchor}\n setHiddenColumns={selection.setHiddenColumns}\n />\n )}\n </Box>\n );\n};\n\n// The loading and empty states render the same shell as the populated table, so\n// they share TableShell rather than repeating it three times.\nconst buildShell = ({\n resolved,\n selection,\n innerRef,\n rest,\n finalColumns }: RendererProps & { finalColumns?: ColumnConfig[] }) => ({\n innerRef,\n variant: resolved.variant,\n stripeColor: resolved.stripeColor,\n glow: resolved.glow,\n pulse: resolved.pulse,\n hoverable: resolved.hoverable,\n density: resolved.density,\n stickyHeader: resolved.stickyHeader,\n header: resolved.columns ? (\n <EnhancedTableHeader\n columns={finalColumns ?? []}\n data={[]}\n sortable={resolved.sortable}\n sortConfig={resolved.sortConfig}\n onSortChange={resolved.onSortChange}\n selectable={resolved.selectable}\n selectedRows={resolved.selectedRows}\n onSelectAll={selection.handleSelectAll}\n density={resolved.density}\n stickyHeader={resolved.stickyHeader}\n />\n ) : null,\n rest: rest as Record<string, unknown> });\n\nconst TableLoadingState: React.FC<{\n shell: TableShellProps;\n loadingComponent?: React.ReactNode;\n columns?: ColumnConfig[];\n}> = ({ shell, loadingComponent, columns }) => (\n <TableShell {...shell}>\n <TableBody data-testid=\"table-loading\">\n {loadingComponent || <LoadingSkeletonRows columns={columns} />}\n </TableBody>\n </TableShell>\n);\n\nconst TableEmptyState: React.FC<{\n shell: TableShellProps;\n emptyStateComponent?: React.ReactNode;\n emptyText: string;\n colSpan: number;\n}> = ({ shell, emptyStateComponent, emptyText, colSpan }) => (\n <TableShell {...shell}>\n <EmptyRow colSpan={colSpan}>\n {emptyStateComponent || <NoDataPlaceholder emptyText={emptyText} />}\n </EmptyRow>\n </TableShell>\n);\n\nexport const Table = React.forwardRef<globalThis.HTMLTableElement, TableProps>(\n (tableProps, ref) => {\n const resolved = { ...TABLE_DEFAULTS, ...definedProps(tableProps) } as TableProps;\n const {\n columns,\n data,\n responsive,\n loading,\n loadingComponent,\n emptyStateComponent,\n emptyText,\n children,\n } = resolved;\n\n const selection = useTableSelection({\n columns,\n data,\n responsive,\n columnPriorities: resolved.columnPriorities,\n selectedRows: resolved.selectedRows ?? [],\n rowKeyExtractor: resolved.rowKeyExtractor,\n onSelectionChange: resolved.onSelectionChange });\n\n // Only MUI's and the DOM's own props reach the `<table>` (FUT-2658).\n const rest = tableDomProps(tableProps);\n const renderer: RendererProps = { resolved, selection, innerRef: ref, rest };\n const finalColumns = responsive ? selection.visibleColumns : columns;\n const shell = buildShell({ ...renderer, finalColumns });\n\n if (loading) {\n return (\n <TableLoadingState shell={shell} loadingComponent={loadingComponent} columns={columns} />\n );\n }\n\n if (data && data.length === 0) {\n return (\n <TableEmptyState\n shell={shell}\n emptyStateComponent={emptyStateComponent}\n emptyText={emptyText}\n colSpan={finalColumns?.length || 1}\n />\n );\n }\n\n if (columns && data) return <AdvancedTable {...renderer} />;\n\n // Basic table (backward compatibility)\n return (\n <StyledTable\n ref={ref}\n customVariant={resolved.variant}\n stripeColor={resolved.stripeColor}\n glow={resolved.glow}\n pulse={resolved.pulse}\n hoverable={resolved.hoverable}\n density={resolved.density}\n stickyHeader={resolved.stickyHeader}\n {...rest}\n >\n {children}\n </StyledTable>\n );\n },\n);\n\nTable.displayName = 'Table';"],"mappings":"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","names":[]}