@cloudscape-design/components-themeable 3.0.1311 → 3.0.1312

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 (139) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/app-layout/visual-refresh/drawers.scss +16 -0
  3. package/lib/internal/scss/app-layout/visual-refresh/navigation.scss +1 -1
  4. package/lib/internal/scss/app-layout/visual-refresh/tools.scss +4 -0
  5. package/lib/internal/scss/app-layout/visual-refresh-toolbar/drawer/styles.scss +1 -1
  6. package/lib/internal/scss/app-layout/visual-refresh-toolbar/navigation/styles.scss +1 -1
  7. package/lib/internal/scss/button-dropdown/styles.scss +4 -0
  8. package/lib/internal/scss/expandable-section/styles.scss +17 -0
  9. package/lib/internal/scss/internal/components/button-trigger/styles.scss +7 -0
  10. package/lib/internal/scss/internal/components/drag-handle/styles.scss +5 -1
  11. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +1 -1
  12. package/lib/internal/scss/status-indicator/styles.scss +36 -0
  13. package/lib/internal/scss/table/header-cell/styles.scss +1 -1
  14. package/lib/internal/scss/tree-view/tree-item/styles.scss +10 -0
  15. package/lib/internal/template/app-layout/runtime-drawer/index.js +1 -1
  16. package/lib/internal/template/app-layout/runtime-drawer/index.js.map +1 -1
  17. package/lib/internal/template/app-layout/visual-refresh/drawers.d.ts.map +1 -1
  18. package/lib/internal/template/app-layout/visual-refresh/drawers.js +3 -0
  19. package/lib/internal/template/app-layout/visual-refresh/drawers.js.map +1 -1
  20. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +87 -86
  21. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +176 -164
  22. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +87 -86
  23. package/lib/internal/template/app-layout/visual-refresh/tools.d.ts.map +1 -1
  24. package/lib/internal/template/app-layout/visual-refresh/tools.js +2 -0
  25. package/lib/internal/template/app-layout/visual-refresh/tools.js.map +1 -1
  26. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.css.js +32 -32
  27. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +84 -84
  28. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +32 -32
  29. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.css.js +4 -4
  30. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +6 -6
  31. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +4 -4
  32. package/lib/internal/template/breadcrumb-group/implementation.d.ts.map +1 -1
  33. package/lib/internal/template/breadcrumb-group/implementation.js +2 -2
  34. package/lib/internal/template/breadcrumb-group/implementation.js.map +1 -1
  35. package/lib/internal/template/breadcrumb-group/item/item.d.ts.map +1 -1
  36. package/lib/internal/template/breadcrumb-group/item/item.js +2 -1
  37. package/lib/internal/template/breadcrumb-group/item/item.js.map +1 -1
  38. package/lib/internal/template/button/internal.d.ts +3 -0
  39. package/lib/internal/template/button/internal.d.ts.map +1 -1
  40. package/lib/internal/template/button/internal.js +2 -2
  41. package/lib/internal/template/button/internal.js.map +1 -1
  42. package/lib/internal/template/button-dropdown/internal.d.ts.map +1 -1
  43. package/lib/internal/template/button-dropdown/internal.js +4 -3
  44. package/lib/internal/template/button-dropdown/internal.js.map +1 -1
  45. package/lib/internal/template/button-dropdown/styles.css.js +22 -21
  46. package/lib/internal/template/button-dropdown/styles.scoped.css +33 -29
  47. package/lib/internal/template/button-dropdown/styles.selectors.js +22 -21
  48. package/lib/internal/template/button-group/icon-toggle-button-item.js +1 -1
  49. package/lib/internal/template/button-group/icon-toggle-button-item.js.map +1 -1
  50. package/lib/internal/template/dropdown/internal.d.ts.map +1 -1
  51. package/lib/internal/template/dropdown/internal.js +14 -2
  52. package/lib/internal/template/dropdown/internal.js.map +1 -1
  53. package/lib/internal/template/expandable-section/expandable-section-header.d.ts.map +1 -1
  54. package/lib/internal/template/expandable-section/expandable-section-header.js +5 -5
  55. package/lib/internal/template/expandable-section/expandable-section-header.js.map +1 -1
  56. package/lib/internal/template/expandable-section/styles.css.js +36 -35
  57. package/lib/internal/template/expandable-section/styles.scoped.css +81 -66
  58. package/lib/internal/template/expandable-section/styles.selectors.js +36 -35
  59. package/lib/internal/template/icon/generated/icons.d.ts +1 -0
  60. package/lib/internal/template/icon/generated/icons.d.ts.map +1 -1
  61. package/lib/internal/template/icon/generated/icons.js +2 -0
  62. package/lib/internal/template/icon/generated/icons.js.map +1 -1
  63. package/lib/internal/template/icon-provider/interfaces.d.ts +1 -1
  64. package/lib/internal/template/icon-provider/interfaces.d.ts.map +1 -1
  65. package/lib/internal/template/icon-provider/interfaces.js.map +1 -1
  66. package/lib/internal/template/internal/base-component/styles.scoped.css +7 -1
  67. package/lib/internal/template/internal/components/button-trigger/index.d.ts.map +1 -1
  68. package/lib/internal/template/internal/components/button-trigger/index.js +3 -2
  69. package/lib/internal/template/internal/components/button-trigger/index.js.map +1 -1
  70. package/lib/internal/template/internal/components/button-trigger/styles.css.js +15 -14
  71. package/lib/internal/template/internal/components/button-trigger/styles.scoped.css +35 -29
  72. package/lib/internal/template/internal/components/button-trigger/styles.selectors.js +15 -14
  73. package/lib/internal/template/internal/components/drag-handle/styles.css.js +14 -14
  74. package/lib/internal/template/internal/components/drag-handle/styles.scoped.css +20 -19
  75. package/lib/internal/template/internal/components/drag-handle/styles.selectors.js +14 -14
  76. package/lib/internal/template/internal/components/drag-handle-wrapper/index.d.ts.map +1 -1
  77. package/lib/internal/template/internal/components/drag-handle-wrapper/index.js +6 -3
  78. package/lib/internal/template/internal/components/drag-handle-wrapper/index.js.map +1 -1
  79. package/lib/internal/template/internal/components/drag-handle-wrapper/portal-overlay.d.ts +2 -1
  80. package/lib/internal/template/internal/components/drag-handle-wrapper/portal-overlay.d.ts.map +1 -1
  81. package/lib/internal/template/internal/components/drag-handle-wrapper/portal-overlay.js +2 -2
  82. package/lib/internal/template/internal/components/drag-handle-wrapper/portal-overlay.js.map +1 -1
  83. package/lib/internal/template/internal/components/expand-toggle-button/index.js +2 -2
  84. package/lib/internal/template/internal/components/expand-toggle-button/index.js.map +1 -1
  85. package/lib/internal/template/internal/environment.js +2 -2
  86. package/lib/internal/template/internal/environment.json +2 -2
  87. package/lib/internal/template/internal/generated/styles/tokens.d.ts +1 -0
  88. package/lib/internal/template/internal/generated/styles/tokens.js +1 -0
  89. package/lib/internal/template/internal/generated/theming/index.cjs +33 -0
  90. package/lib/internal/template/internal/generated/theming/index.cjs.d.ts +9 -0
  91. package/lib/internal/template/internal/generated/theming/index.d.ts +9 -0
  92. package/lib/internal/template/internal/generated/theming/index.js +33 -0
  93. package/lib/internal/template/internal/hooks/use-mouse-down-target.js +2 -2
  94. package/lib/internal/template/internal/hooks/use-mouse-down-target.js.map +1 -1
  95. package/lib/internal/template/internal/hooks/use-portal-mode-classes/index.d.ts.map +1 -1
  96. package/lib/internal/template/internal/hooks/use-portal-mode-classes/index.js +4 -2
  97. package/lib/internal/template/internal/hooks/use-portal-mode-classes/index.js.map +1 -1
  98. package/lib/internal/template/internal/hooks/use-visual-mode/index.d.ts +1 -0
  99. package/lib/internal/template/internal/hooks/use-visual-mode/index.d.ts.map +1 -1
  100. package/lib/internal/template/internal/hooks/use-visual-mode/index.js +2 -1
  101. package/lib/internal/template/internal/hooks/use-visual-mode/index.js.map +1 -1
  102. package/lib/internal/template/status-indicator/internal.d.ts.map +1 -1
  103. package/lib/internal/template/status-indicator/internal.js +4 -3
  104. package/lib/internal/template/status-indicator/internal.js.map +1 -1
  105. package/lib/internal/template/status-indicator/styles.css.js +25 -24
  106. package/lib/internal/template/status-indicator/styles.scoped.css +75 -40
  107. package/lib/internal/template/status-indicator/styles.selectors.js +25 -24
  108. package/lib/internal/template/table/header-cell/group-header-cell.d.ts.map +1 -1
  109. package/lib/internal/template/table/header-cell/group-header-cell.js +3 -15
  110. package/lib/internal/template/table/header-cell/group-header-cell.js.map +1 -1
  111. package/lib/internal/template/table/header-cell/styles.css.js +33 -33
  112. package/lib/internal/template/table/header-cell/styles.scoped.css +73 -73
  113. package/lib/internal/template/table/header-cell/styles.selectors.js +33 -33
  114. package/lib/internal/template/table/header-cell/th-element.d.ts +6 -5
  115. package/lib/internal/template/table/header-cell/th-element.d.ts.map +1 -1
  116. package/lib/internal/template/table/header-cell/th-element.js +4 -3
  117. package/lib/internal/template/table/header-cell/th-element.js.map +1 -1
  118. package/lib/internal/template/table/sticky-columns/use-sticky-columns.d.ts +2 -1
  119. package/lib/internal/template/table/sticky-columns/use-sticky-columns.d.ts.map +1 -1
  120. package/lib/internal/template/table/sticky-columns/use-sticky-columns.js +31 -7
  121. package/lib/internal/template/table/sticky-columns/use-sticky-columns.js.map +1 -1
  122. package/lib/internal/template/table/thead.d.ts.map +1 -1
  123. package/lib/internal/template/table/thead.js +1 -1
  124. package/lib/internal/template/table/thead.js.map +1 -1
  125. package/lib/internal/template/test-utils/dom/table/index.js +1 -1
  126. package/lib/internal/template/test-utils/dom/table/index.js.map +1 -1
  127. package/lib/internal/template/test-utils/selectors/table/index.js +1 -1
  128. package/lib/internal/template/test-utils/selectors/table/index.js.map +1 -1
  129. package/lib/internal/template/theming/index.d.ts +2 -0
  130. package/lib/internal/template/theming/index.d.ts.map +1 -1
  131. package/lib/internal/template/theming/index.js +55 -0
  132. package/lib/internal/template/theming/index.js.map +1 -1
  133. package/lib/internal/template/tree-view/tree-item/index.d.ts.map +1 -1
  134. package/lib/internal/template/tree-view/tree-item/index.js +2 -1
  135. package/lib/internal/template/tree-view/tree-item/index.js.map +1 -1
  136. package/lib/internal/template/tree-view/tree-item/styles.css.js +10 -9
  137. package/lib/internal/template/tree-view/tree-item/styles.scoped.css +19 -12
  138. package/lib/internal/template/tree-view/tree-item/styles.selectors.js +10 -9
  139. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"use-sticky-columns.d.ts","sourceRoot":"","sources":["../../../../src/table/sticky-columns/use-sticky-columns.ts"],"names":[],"mappings":"AAGA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAMvE,OAAmB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAEL,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,cAAc,CAAC;AAOtB,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAC9C,KAAK,EAAE;QACL,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAC/B,CAAC;IACF,IAAI,EAAE;QACJ,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,GAAG,WAAW,KAAK,IAAI,CAAC;KACjE,CAAC;CACH;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,EAAE,kBAAkB,GAAG,kBAAkB,CAgGzC;AAED,UAAU,wBAAwB;IAChC,aAAa,EAAE,kBAAkB,CAAC;IAClC,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,CAAC,MAAM,EAAE,IAAI,GAAG,sBAAsB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClF;AAED,UAAU,gBAAgB;IACxB,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,EACb,QAAQ,EACR,YAAY,GACb,EAAE,wBAAwB,GAAG,gBAAgB,CA8D7C"}
1
+ {"version":3,"file":"use-sticky-columns.d.ts","sourceRoot":"","sources":["../../../../src/table/sticky-columns/use-sticky-columns.ts"],"names":[],"mappings":"AAGA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAMvE,OAAmB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAEL,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,cAAc,CAAC;AAOtB,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAC9C,KAAK,EAAE;QACL,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAC/B,CAAC;IACF,IAAI,EAAE;QACJ,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,GAAG,WAAW,KAAK,IAAI,CAAC;KACjE,CAAC;CACH;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,EAAE,kBAAkB,GAAG,kBAAkB,CAgGzC;AAED,UAAU,wBAAwB;IAChC,aAAa,EAAE,kBAAkB,CAAC;IAClC,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,CAAC,MAAM,EAAE,IAAI,GAAG,sBAAsB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMjF,gBAAgB,CAAC,EAAE,WAAW,CAAC;CAChC;AAED,UAAU,gBAAgB;IACxB,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAwBD,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,gBAAgB,GACjB,EAAE,wBAAwB,GAAG,gBAAgB,CAqE7C"}
@@ -88,8 +88,24 @@ export function useStickyColumns({ visibleColumns, stickyColumnsFirst, stickyCol
88
88
  refs: { wrapper: setWrapper, table: setTable, cell: setCell },
89
89
  };
90
90
  }
91
- export function useStickyCellStyles({ stickyColumns, columnId, getClassName, }) {
92
- var _a;
91
+ // Merges the boundary leaf's shadow flags into the position leaf's cell state.
92
+ // Returns the position state untouched when there is no boundary column or no boundary state.
93
+ function mergeBoundaryShadow(positionState, boundaryState) {
94
+ if (!positionState || !boundaryState) {
95
+ return positionState;
96
+ }
97
+ if (positionState.lastInsetInlineStart === boundaryState.lastInsetInlineStart &&
98
+ positionState.lastInsetInlineEnd === boundaryState.lastInsetInlineEnd) {
99
+ return positionState;
100
+ }
101
+ return {
102
+ ...positionState,
103
+ lastInsetInlineStart: positionState.lastInsetInlineStart || boundaryState.lastInsetInlineStart,
104
+ lastInsetInlineEnd: positionState.lastInsetInlineEnd || boundaryState.lastInsetInlineEnd,
105
+ };
106
+ }
107
+ export function useStickyCellStyles({ stickyColumns, columnId, getClassName, boundaryColumnId, }) {
108
+ var _a, _b, _c;
93
109
  const setCell = stickyColumns.refs.cell;
94
110
  // unsubscribeRef to hold the function to unsubscribe from the store's updates
95
111
  const unsubscribeRef = useRef(null);
@@ -102,7 +118,12 @@ export function useStickyCellStyles({ stickyColumns, columnId, getClassName, })
102
118
  // Update cellRef and the store's state to point to the new DOM node
103
119
  setCell(columnId, cellElement);
104
120
  // Update cell styles imperatively to avoid unnecessary re-renders.
105
- const selector = (state) => { var _a; return (_a = state.cellState.get(columnId)) !== null && _a !== void 0 ? _a : null; };
121
+ const selector = (state) => {
122
+ var _a, _b;
123
+ const positionState = (_a = state.cellState.get(columnId)) !== null && _a !== void 0 ? _a : null;
124
+ const boundaryState = boundaryColumnId !== undefined ? ((_b = state.cellState.get(boundaryColumnId)) !== null && _b !== void 0 ? _b : null) : null;
125
+ return mergeBoundaryShadow(positionState, boundaryState);
126
+ };
106
127
  const updateCellStyles = (state, prev) => {
107
128
  if (isCellStatesEqual(state, prev)) {
108
129
  return;
@@ -133,13 +154,16 @@ export function useStickyCellStyles({ stickyColumns, columnId, getClassName, })
133
154
  },
134
155
  // getClassName is expected to be pure
135
156
  // eslint-disable-next-line react-hooks/exhaustive-deps
136
- [columnId, setCell, stickyColumns.store]);
157
+ [columnId, boundaryColumnId, setCell, stickyColumns.store]);
137
158
  // Provide cell styles as props so that a re-render won't cause invalidation.
138
- const cellStyles = stickyColumns.store.get().cellState.get(columnId);
159
+ const storeState = stickyColumns.store.get();
160
+ const positionStyles = (_a = storeState.cellState.get(columnId)) !== null && _a !== void 0 ? _a : null;
161
+ const boundaryStyles = boundaryColumnId !== undefined ? ((_b = storeState.cellState.get(boundaryColumnId)) !== null && _b !== void 0 ? _b : null) : null;
162
+ const mergedStyles = mergeBoundaryShadow(positionStyles, boundaryStyles);
139
163
  return {
140
164
  ref: refCallback,
141
- className: cellStyles ? clsx(getClassName(cellStyles)) : undefined,
142
- style: (_a = cellStyles === null || cellStyles === void 0 ? void 0 : cellStyles.offset) !== null && _a !== void 0 ? _a : undefined,
165
+ className: mergedStyles ? clsx(getClassName(mergedStyles)) : undefined,
166
+ style: (_c = positionStyles === null || positionStyles === void 0 ? void 0 : positionStyles.offset) !== null && _c !== void 0 ? _c : undefined,
143
167
  };
144
168
  }
145
169
  class StickyColumnsStore extends AsyncStore {
@@ -1 +1 @@
1
- {"version":3,"file":"use-sticky-columns.js","sourceRoot":"","sources":["../../../../src/table/sticky-columns/use-sticky-columns.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACvE,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AACrG,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAEnH,OAAO,UAAkC,MAAM,8BAA8B,CAAC;AAQ9E,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAErF,uHAAuH;AACvH,iGAAiG;AACjG,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAcrC,MAAM,UAAU,gBAAgB,CAAC,EAC/B,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GACE;IACnB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAc,IAAI,CAA+C,CAAC;IAC3F,MAAM,QAAQ,GAAG,MAAM,CAAc,IAAI,CAA+C,CAAC;IACzF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,GAAG,EAA4B,CAAC,CAAC;IAE7D,MAAM,gBAAgB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,CAAC,CAAC;IAEpE,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,GAAG,EAAE;QAChD,IAAI,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC3C,KAAK,CAAC,gBAAgB,CAAC;gBACrB,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,KAAK,EAAE,QAAQ,CAAC,OAAO;gBACvB,KAAK,EAAE,QAAQ,CAAC,OAAO;gBACvB,cAAc;gBACd,kBAAkB;gBAClB,iBAAiB;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,iBAAiB,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAElD,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAEhD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC3C,KAAK,CAAC,gBAAgB,CAAC;gBACrB,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,KAAK,EAAE,QAAQ,CAAC,OAAO;gBACvB,KAAK,EAAE,QAAQ,CAAC,OAAO;gBACvB,cAAc;gBACd,kBAAkB;gBAClB,iBAAiB;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC;IAEnE,sEAAsE;IACtE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,KAAyB,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;QAEnE,MAAM,mBAAmB,GAAG,CAAC,KAAgC,EAAE,IAA+B,EAAE,EAAE;YAChG,IAAI,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;gBACtC,OAAO;YACT,CAAC;YAED,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACvB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC;gBAC1F,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,GAAG,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACxF,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CACpE,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAC7D,CAAC;QACF,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE9B,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,IAAwB,EAAE,EAAE;QAC3B,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,IAAI,IAAI,gBAAgB,EAAE,CAAC;YAC7B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACtD,CAAC;QACD,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;IAC5B,CAAC,EACD,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CACvC,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,IAAwB,EAAE,EAAE;QACxD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,QAAqB,EAAE,IAAwB,EAAE,EAAE;QAC9E,IAAI,IAAI,EAAE,CAAC;YACT,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,KAAK;QACL,KAAK,EAAE;YACL,gFAAgF;YAChF,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS;SACxE;QACD,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;KAC9D,CAAC;AACJ,CAAC;AAcD,MAAM,UAAU,mBAAmB,CAAC,EAClC,aAAa,EACb,QAAQ,EACR,YAAY,GACa;;IACzB,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;IAExC,8EAA8E;IAC9E,MAAM,cAAc,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAC;IAEzD,sEAAsE;IACtE,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,WAA+B,EAAE,EAAE;QAClC,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC3B,kFAAkF;YAClF,cAAc,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,oEAAoE;QACpE,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAE/B,mEAAmE;QACnE,MAAM,QAAQ,GAAG,CAAC,KAAyB,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,mCAAI,IAAI,CAAA,EAAA,CAAC;QAEtF,MAAM,gBAAgB,GAAG,CAAC,KAAoC,EAAE,IAAmC,EAAE,EAAE;YACrG,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACnC,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;wBACnB,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACjC,CAAC;yBAAM,CAAC;wBACN,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,WAAW,CAAC,KAAK,CAAC,gBAAgB;oBAChC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,gBAAgB,MAAK,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,WAAW,CAAC,KAAK,CAAC,cAAc;oBAC9B,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,cAAc,MAAK,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACzF,CAAC;QACH,CAAC,CAAC;QAEF,6FAA6F;QAC7F,mDAAmD;QACnD,IAAI,WAAW,EAAE,CAAC;YAChB,cAAc,CAAC,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE;gBACvF,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,uDAAuD;IACvD,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CACzC,CAAC;IAEF,6EAA6E;IAC7E,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrE,OAAO;QACL,GAAG,EAAE,WAAW;QAChB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QAClE,KAAK,EAAE,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,mCAAI,SAAS;KACvC,CAAC;AACJ,CAAC;AAWD,MAAM,kBAAmB,SAAQ,UAA8B;IAU7D;QACE,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,wBAAwB,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAVpG,gBAAW,GAAgB;YACjC,OAAO,EAAE,IAAI,GAAG,EAAE;YAClB,sBAAsB,EAAE,CAAC;YACzB,oBAAoB,EAAE,CAAC;SACxB,CAAC;QACM,4BAAuB,GAAG,KAAK,CAAC;QAChC,0BAAqB,GAAG,KAAK,CAAC;QAC9B,mBAAc,GAAG,KAAK,CAAC;QAwCvB,uBAAkB,GAAG,CAAC,KAA4B,EAA4C,EAAE;YACtG,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,yBAAyB,GAAG,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC;YAC/D,MAAM,0BAA0B,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC;YAEzF,OAAO,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;;gBAC1D,IAAI,UAAU,GAAG,YAAY,CAAC;gBAC9B,IAAI,KAAK,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;oBACrC,UAAU,GAAG,cAAc,CAAC;gBAC9B,CAAC;qBAAM,IAAI,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;oBAC1E,UAAU,GAAG,YAAY,CAAC;gBAC5B,CAAC;gBAED,IAAI,CAAC,SAAS,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;oBAC9C,OAAO,GAAG,CAAC;gBACb,CAAC;gBAED,iFAAiF;gBACjF,MAAM,aAAa,GAAG,KAAK,KAAK,CAAC,CAAC;gBAClC,MAAM,sBAAsB,GAAG,MAAA,MAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,KAAK,mCAAI,CAAC,CAAC;gBAClF,MAAM,uBAAuB,GAAG,MAAA,MAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,IAAI,mCAAI,CAAC,CAAC;gBAElF,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAChB,cAAc,EAAE,aAAa,IAAI,IAAI,CAAC,cAAc;oBACpD,oBAAoB,EAAE,IAAI,CAAC,uBAAuB,IAAI,yBAAyB,KAAK,KAAK;oBACzF,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,IAAI,0BAA0B,KAAK,KAAK;oBACtF,MAAM,EAAE;wBACN,gBAAgB,EAAE,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;wBACpF,cAAc,EAAE,UAAU,KAAK,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS;qBAClF;iBACF,CAAC,CAAC;gBACH,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,IAAI,GAAG,EAAuC,CAAC,CAAC;QACrD,CAAC,CAAC;QAEM,sBAAiB,GAAG,CAAC,KAA4B,EAAQ,EAAE;YACjE,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC,CAAC;QAEM,cAAS,GAAG,CAAC,KAA4B,EAAW,EAAE;YAC5D,MAAM,eAAe,GAAG,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,iBAAiB,KAAK,CAAC,CAAC;YACjF,IAAI,eAAe,EAAE,CAAC;gBACpB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,YAAY,GAAG,4BAA4B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;YAC5E,MAAM,UAAU,GAAG,4BAA4B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;YACxE,MAAM,mBAAmB,GAAG,UAAU,GAAG,YAAY,CAAC;YACtD,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC;YACzG,MAAM,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACpF,MAAM,iBAAiB,GAAG,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACtF,MAAM,wBAAwB,GAC5B,gBAAgB,GAAG,wBAAwB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,YAAY,CAAC;YACpG,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;IAlGF,CAAC;IAEM,gBAAgB,CAAC,KAA4B;QAClD,MAAM,gBAAgB,GAAG,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAChF,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;QAE3D,IAAI,gBAAgB,IAAI,gBAAgB,EAAE,CAAC;YACzC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;gBACd,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;gBACzC,YAAY,EAAE;oBACZ,wBAAwB,EAAE,IAAI,CAAC,WAAW,CAAC,sBAAsB;oBACjE,sBAAsB,EAAE,IAAI,CAAC,WAAW,CAAC,oBAAoB;iBAC9D;aACF,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,KAA4B;QAC/C,MAAM,wBAAwB,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QACrD,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QACrD,MAAM,uBAAuB,GAAG,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClG,MAAM,qBAAqB,GAAG,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE9F,IAAI,CAAC,uBAAuB,GAAG,wBAAwB,GAAG,uBAAuB,CAAC;QAElF,sIAAsI;QACtI,8HAA8H;QAC9H,IAAI,CAAC,qBAAqB;YACxB,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,qBAAqB,CAAC;QAExG,IAAI,CAAC,cAAc,GAAG,uBAAuB,KAAK,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC;IACtF,CAAC;CAiEF","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useResizeObserver, useStableCallback } from '@cloudscape-design/component-toolkit/internal';\nimport { getLogicalBoundingClientRect, getScrollInlineStart } from '@cloudscape-design/component-toolkit/internal';\n\nimport AsyncStore, { ReadonlyAsyncStore } from '../../area-chart/async-store';\nimport {\n CellOffsets,\n StickyColumnsCellState,\n StickyColumnsProps,\n StickyColumnsState,\n StickyColumnsWrapperState,\n} from './interfaces';\nimport { isCellStatesEqual, isWrapperStatesEqual, updateCellOffsets } from './utils';\n\n// We allow the table to have a minimum of 148px of available space besides the sum of the widths of the sticky columns\n// This value is an UX recommendation and is approximately 1/3 of our smallest breakpoint (465px)\nconst MINIMUM_SCROLLABLE_SPACE = 148;\n\nexport interface StickyColumnsModel {\n store: ReadonlyAsyncStore<StickyColumnsState>;\n style: {\n wrapper?: React.CSSProperties;\n };\n refs: {\n table: React.RefCallback<HTMLElement>;\n wrapper: React.RefCallback<HTMLElement>;\n cell: (columnId: PropertyKey, node: null | HTMLElement) => void;\n };\n}\n\nexport function useStickyColumns({\n visibleColumns,\n stickyColumnsFirst,\n stickyColumnsLast,\n}: StickyColumnsProps): StickyColumnsModel {\n const store = useMemo(() => new StickyColumnsStore(), []);\n const wrapperRef = useRef<HTMLElement>(null) as React.MutableRefObject<null | HTMLElement>;\n const tableRef = useRef<HTMLElement>(null) as React.MutableRefObject<null | HTMLElement>;\n const cellsRef = useRef(new Map<PropertyKey, HTMLElement>());\n\n const hasStickyColumns = stickyColumnsFirst + stickyColumnsLast > 0;\n\n const updateStickyStyles = useStableCallback(() => {\n if (wrapperRef.current && tableRef.current) {\n store.updateCellStyles({\n wrapper: wrapperRef.current,\n table: tableRef.current,\n cells: cellsRef.current,\n visibleColumns,\n stickyColumnsFirst,\n stickyColumnsLast,\n });\n }\n });\n\n useResizeObserver(wrapperRef, updateStickyStyles);\n\n useResizeObserver(tableRef, updateStickyStyles);\n\n useEffect(() => {\n if (wrapperRef.current && tableRef.current) {\n store.updateCellStyles({\n wrapper: wrapperRef.current,\n table: tableRef.current,\n cells: cellsRef.current,\n visibleColumns,\n stickyColumnsFirst,\n stickyColumnsLast,\n });\n }\n }, [store, stickyColumnsFirst, stickyColumnsLast, visibleColumns]);\n\n // Update wrapper styles imperatively to avoid unnecessary re-renders.\n useEffect(() => {\n if (!hasStickyColumns) {\n return;\n }\n\n const selector = (state: StickyColumnsState) => state.wrapperState;\n\n const updateWrapperStyles = (state: StickyColumnsWrapperState, prev: StickyColumnsWrapperState) => {\n if (isWrapperStatesEqual(state, prev)) {\n return;\n }\n\n if (wrapperRef.current) {\n wrapperRef.current.style.scrollPaddingInlineStart = state.scrollPaddingInlineStart + 'px';\n wrapperRef.current.style.scrollPaddingInlineEnd = state.scrollPaddingInlineEnd + 'px';\n }\n };\n\n const unsubscribe = store.subscribe(selector, (newState, prevState) =>\n updateWrapperStyles(selector(newState), selector(prevState))\n );\n return unsubscribe;\n }, [store, hasStickyColumns]);\n\n const setWrapper = useCallback(\n (node: null | HTMLElement) => {\n if (wrapperRef.current) {\n wrapperRef.current.removeEventListener('scroll', updateStickyStyles);\n }\n if (node && hasStickyColumns) {\n node.addEventListener('scroll', updateStickyStyles);\n }\n wrapperRef.current = node;\n },\n [hasStickyColumns, updateStickyStyles]\n );\n\n const setTable = useCallback((node: null | HTMLElement) => {\n tableRef.current = node;\n }, []);\n\n const setCell = useCallback((columnId: PropertyKey, node: null | HTMLElement) => {\n if (node) {\n cellsRef.current.set(columnId, node);\n } else {\n cellsRef.current.delete(columnId);\n }\n }, []);\n\n return {\n store,\n style: {\n // Provide wrapper styles as props so that a re-render won't cause invalidation.\n wrapper: hasStickyColumns ? { ...store.get().wrapperState } : undefined,\n },\n refs: { wrapper: setWrapper, table: setTable, cell: setCell },\n };\n}\n\ninterface UseStickyCellStylesProps {\n stickyColumns: StickyColumnsModel;\n columnId: PropertyKey;\n getClassName: (styles: null | StickyColumnsCellState) => Record<string, boolean>;\n}\n\ninterface StickyCellStyles {\n ref: React.RefCallback<HTMLElement>;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function useStickyCellStyles({\n stickyColumns,\n columnId,\n getClassName,\n}: UseStickyCellStylesProps): StickyCellStyles {\n const setCell = stickyColumns.refs.cell;\n\n // unsubscribeRef to hold the function to unsubscribe from the store's updates\n const unsubscribeRef = useRef<null | (() => void)>(null);\n\n // refCallback updates the cell ref and sets up the store subscription\n const refCallback = useCallback(\n (cellElement: null | HTMLElement) => {\n if (unsubscribeRef.current) {\n // Unsubscribe before we do any updates to avoid leaving any subscriptions hanging\n unsubscribeRef.current();\n }\n\n // Update cellRef and the store's state to point to the new DOM node\n setCell(columnId, cellElement);\n\n // Update cell styles imperatively to avoid unnecessary re-renders.\n const selector = (state: StickyColumnsState) => state.cellState.get(columnId) ?? null;\n\n const updateCellStyles = (state: null | StickyColumnsCellState, prev: null | StickyColumnsCellState) => {\n if (isCellStatesEqual(state, prev)) {\n return;\n }\n\n const className = getClassName(state);\n if (cellElement) {\n Object.keys(className).forEach(key => {\n if (className[key]) {\n cellElement.classList.add(key);\n } else {\n cellElement.classList.remove(key);\n }\n });\n cellElement.style.insetInlineStart =\n state?.offset.insetInlineStart !== undefined ? `${state.offset.insetInlineStart}px` : '';\n cellElement.style.insetInlineEnd =\n state?.offset.insetInlineEnd !== undefined ? `${state.offset.insetInlineEnd}px` : '';\n }\n };\n\n // If the node is not null (i.e., the table cell is being mounted or updated, not unmounted),\n // set up a new subscription to the store's updates\n if (cellElement) {\n unsubscribeRef.current = stickyColumns.store.subscribe(selector, (newState, prevState) => {\n updateCellStyles(selector(newState), selector(prevState));\n });\n }\n },\n\n // getClassName is expected to be pure\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [columnId, setCell, stickyColumns.store]\n );\n\n // Provide cell styles as props so that a re-render won't cause invalidation.\n const cellStyles = stickyColumns.store.get().cellState.get(columnId);\n return {\n ref: refCallback,\n className: cellStyles ? clsx(getClassName(cellStyles)) : undefined,\n style: cellStyles?.offset ?? undefined,\n };\n}\n\ninterface UpdateCellStylesProps {\n wrapper: HTMLElement;\n table: HTMLElement;\n cells: Map<PropertyKey, HTMLElement>;\n visibleColumns: readonly PropertyKey[];\n stickyColumnsFirst: number;\n stickyColumnsLast: number;\n}\n\nclass StickyColumnsStore extends AsyncStore<StickyColumnsState> {\n private cellOffsets: CellOffsets = {\n offsets: new Map(),\n stickyWidthInlineStart: 0,\n stickyWidthInlineEnd: 0,\n };\n private isStuckToTheInlineStart = false;\n private isStuckToTheInlineEnd = false;\n private padInlineStart = false;\n\n constructor() {\n super({ cellState: new Map(), wrapperState: { scrollPaddingInlineStart: 0, scrollPaddingInlineEnd: 0 } });\n }\n\n public updateCellStyles(props: UpdateCellStylesProps) {\n const hasStickyColumns = props.stickyColumnsFirst + props.stickyColumnsLast > 0;\n const hadStickyColumns = this.cellOffsets.offsets.size > 0;\n\n if (hasStickyColumns || hadStickyColumns) {\n this.updateScroll(props);\n this.updateCellOffsets(props);\n this.set(() => ({\n cellState: this.generateCellStyles(props),\n wrapperState: {\n scrollPaddingInlineStart: this.cellOffsets.stickyWidthInlineStart,\n scrollPaddingInlineEnd: this.cellOffsets.stickyWidthInlineEnd,\n },\n }));\n }\n }\n\n private updateScroll(props: UpdateCellStylesProps) {\n const wrapperScrollInlineStart = getScrollInlineStart(props.wrapper);\n const wrapperScrollWidth = props.wrapper.scrollWidth;\n const wrapperClientWidth = props.wrapper.clientWidth;\n const tablePaddingInlineStart = parseFloat(getComputedStyle(props.table).paddingInlineStart) || 0;\n const tablePaddingInlineEnd = parseFloat(getComputedStyle(props.table).paddingInlineEnd) || 0;\n\n this.isStuckToTheInlineStart = wrapperScrollInlineStart > tablePaddingInlineStart;\n\n // Math.ceil() is used here to address an edge-case in certain browsers, where they return non-integer wrapperScrollInlineStart values\n // which are lower than expected (sub-pixel difference), resulting in the table always being in the \"stuck to the right\" state\n this.isStuckToTheInlineEnd =\n Math.ceil(wrapperScrollInlineStart) < wrapperScrollWidth - wrapperClientWidth - tablePaddingInlineEnd;\n\n this.padInlineStart = tablePaddingInlineStart !== 0 && this.isStuckToTheInlineStart;\n }\n\n private generateCellStyles = (props: UpdateCellStylesProps): Map<PropertyKey, StickyColumnsCellState> => {\n const isEnabled = this.isEnabled(props);\n const lastLeftStickyColumnIndex = props.stickyColumnsFirst - 1;\n const lastRightStickyColumnIndex = props.visibleColumns.length - props.stickyColumnsLast;\n\n return props.visibleColumns.reduce((acc, columnId, index) => {\n let stickySide = 'non-sticky';\n if (index < props.stickyColumnsFirst) {\n stickySide = 'inline-start';\n } else if (index >= props.visibleColumns.length - props.stickyColumnsLast) {\n stickySide = 'inline-end';\n }\n\n if (!isEnabled || stickySide === 'non-sticky') {\n return acc;\n }\n\n // Determine the offset of the sticky column using the `cellOffsets` state object\n const isFirstColumn = index === 0;\n const stickyColumnOffsetLeft = this.cellOffsets.offsets.get(columnId)?.first ?? 0;\n const stickyColumnOffsetRight = this.cellOffsets.offsets.get(columnId)?.last ?? 0;\n\n acc.set(columnId, {\n padInlineStart: isFirstColumn && this.padInlineStart,\n lastInsetInlineStart: this.isStuckToTheInlineStart && lastLeftStickyColumnIndex === index,\n lastInsetInlineEnd: this.isStuckToTheInlineEnd && lastRightStickyColumnIndex === index,\n offset: {\n insetInlineStart: stickySide === 'inline-start' ? stickyColumnOffsetLeft : undefined,\n insetInlineEnd: stickySide === 'inline-end' ? stickyColumnOffsetRight : undefined,\n },\n });\n return acc;\n }, new Map<PropertyKey, StickyColumnsCellState>());\n };\n\n private updateCellOffsets = (props: UpdateCellStylesProps): void => {\n this.cellOffsets = updateCellOffsets(props.cells, props);\n };\n\n private isEnabled = (props: UpdateCellStylesProps): boolean => {\n const noStickyColumns = props.stickyColumnsFirst + props.stickyColumnsLast === 0;\n if (noStickyColumns) {\n return false;\n }\n\n const wrapperWidth = getLogicalBoundingClientRect(props.wrapper).inlineSize;\n const tableWidth = getLogicalBoundingClientRect(props.table).inlineSize;\n const isWrapperScrollable = tableWidth > wrapperWidth;\n if (!isWrapperScrollable) {\n return false;\n }\n\n const totalStickySpace = this.cellOffsets.stickyWidthInlineStart + this.cellOffsets.stickyWidthInlineEnd;\n const tablePaddingLeft = parseFloat(getComputedStyle(props.table).paddingLeft) || 0;\n const tablePaddingRight = parseFloat(getComputedStyle(props.table).paddingRight) || 0;\n const hasEnoughScrollableSpace =\n totalStickySpace + MINIMUM_SCROLLABLE_SPACE + tablePaddingLeft + tablePaddingRight < wrapperWidth;\n if (!hasEnoughScrollableSpace) {\n return false;\n }\n\n return true;\n };\n}\n"]}
1
+ {"version":3,"file":"use-sticky-columns.js","sourceRoot":"","sources":["../../../../src/table/sticky-columns/use-sticky-columns.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useResizeObserver, useStableCallback } from '@cloudscape-design/component-toolkit/internal';\nimport { getLogicalBoundingClientRect, getScrollInlineStart } from '@cloudscape-design/component-toolkit/internal';\n\nimport AsyncStore, { ReadonlyAsyncStore } from '../../area-chart/async-store';\nimport {\n CellOffsets,\n StickyColumnsCellState,\n StickyColumnsProps,\n StickyColumnsState,\n StickyColumnsWrapperState,\n} from './interfaces';\nimport { isCellStatesEqual, isWrapperStatesEqual, updateCellOffsets } from './utils';\n\n// We allow the table to have a minimum of 148px of available space besides the sum of the widths of the sticky columns\n// This value is an UX recommendation and is approximately 1/3 of our smallest breakpoint (465px)\nconst MINIMUM_SCROLLABLE_SPACE = 148;\n\nexport interface StickyColumnsModel {\n store: ReadonlyAsyncStore<StickyColumnsState>;\n style: {\n wrapper?: React.CSSProperties;\n };\n refs: {\n table: React.RefCallback<HTMLElement>;\n wrapper: React.RefCallback<HTMLElement>;\n cell: (columnId: PropertyKey, node: null | HTMLElement) => void;\n };\n}\n\nexport function useStickyColumns({\n visibleColumns,\n stickyColumnsFirst,\n stickyColumnsLast,\n}: StickyColumnsProps): StickyColumnsModel {\n const store = useMemo(() => new StickyColumnsStore(), []);\n const wrapperRef = useRef<HTMLElement>(null) as React.MutableRefObject<null | HTMLElement>;\n const tableRef = useRef<HTMLElement>(null) as React.MutableRefObject<null | HTMLElement>;\n const cellsRef = useRef(new Map<PropertyKey, HTMLElement>());\n\n const hasStickyColumns = stickyColumnsFirst + stickyColumnsLast > 0;\n\n const updateStickyStyles = useStableCallback(() => {\n if (wrapperRef.current && tableRef.current) {\n store.updateCellStyles({\n wrapper: wrapperRef.current,\n table: tableRef.current,\n cells: cellsRef.current,\n visibleColumns,\n stickyColumnsFirst,\n stickyColumnsLast,\n });\n }\n });\n\n useResizeObserver(wrapperRef, updateStickyStyles);\n\n useResizeObserver(tableRef, updateStickyStyles);\n\n useEffect(() => {\n if (wrapperRef.current && tableRef.current) {\n store.updateCellStyles({\n wrapper: wrapperRef.current,\n table: tableRef.current,\n cells: cellsRef.current,\n visibleColumns,\n stickyColumnsFirst,\n stickyColumnsLast,\n });\n }\n }, [store, stickyColumnsFirst, stickyColumnsLast, visibleColumns]);\n\n // Update wrapper styles imperatively to avoid unnecessary re-renders.\n useEffect(() => {\n if (!hasStickyColumns) {\n return;\n }\n\n const selector = (state: StickyColumnsState) => state.wrapperState;\n\n const updateWrapperStyles = (state: StickyColumnsWrapperState, prev: StickyColumnsWrapperState) => {\n if (isWrapperStatesEqual(state, prev)) {\n return;\n }\n\n if (wrapperRef.current) {\n wrapperRef.current.style.scrollPaddingInlineStart = state.scrollPaddingInlineStart + 'px';\n wrapperRef.current.style.scrollPaddingInlineEnd = state.scrollPaddingInlineEnd + 'px';\n }\n };\n\n const unsubscribe = store.subscribe(selector, (newState, prevState) =>\n updateWrapperStyles(selector(newState), selector(prevState))\n );\n return unsubscribe;\n }, [store, hasStickyColumns]);\n\n const setWrapper = useCallback(\n (node: null | HTMLElement) => {\n if (wrapperRef.current) {\n wrapperRef.current.removeEventListener('scroll', updateStickyStyles);\n }\n if (node && hasStickyColumns) {\n node.addEventListener('scroll', updateStickyStyles);\n }\n wrapperRef.current = node;\n },\n [hasStickyColumns, updateStickyStyles]\n );\n\n const setTable = useCallback((node: null | HTMLElement) => {\n tableRef.current = node;\n }, []);\n\n const setCell = useCallback((columnId: PropertyKey, node: null | HTMLElement) => {\n if (node) {\n cellsRef.current.set(columnId, node);\n } else {\n cellsRef.current.delete(columnId);\n }\n }, []);\n\n return {\n store,\n style: {\n // Provide wrapper styles as props so that a re-render won't cause invalidation.\n wrapper: hasStickyColumns ? { ...store.get().wrapperState } : undefined,\n },\n refs: { wrapper: setWrapper, table: setTable, cell: setCell },\n };\n}\n\ninterface UseStickyCellStylesProps {\n stickyColumns: StickyColumnsModel;\n columnId: PropertyKey;\n getClassName: (styles: null | StickyColumnsCellState) => Record<string, boolean>;\n // Optional column to inherit the boundary shadow flags from. Used by group header cells\n // that span multiple leaves: the cell's offset is owned by `columnId` (one of its child\n // leaves), but the boundary shadow lives on a different leaf (the group's boundary child).\n // The hook keeps a single subscription/writer and merges the boundary leaf's\n // `lastInsetInlineStart` / `lastInsetInlineEnd` into the cell state passed to getClassName.\n boundaryColumnId?: PropertyKey;\n}\n\ninterface StickyCellStyles {\n ref: React.RefCallback<HTMLElement>;\n className?: string;\n style?: React.CSSProperties;\n}\n\n// Merges the boundary leaf's shadow flags into the position leaf's cell state.\n// Returns the position state untouched when there is no boundary column or no boundary state.\nfunction mergeBoundaryShadow(\n positionState: null | StickyColumnsCellState,\n boundaryState: null | StickyColumnsCellState\n): null | StickyColumnsCellState {\n if (!positionState || !boundaryState) {\n return positionState;\n }\n if (\n positionState.lastInsetInlineStart === boundaryState.lastInsetInlineStart &&\n positionState.lastInsetInlineEnd === boundaryState.lastInsetInlineEnd\n ) {\n return positionState;\n }\n return {\n ...positionState,\n lastInsetInlineStart: positionState.lastInsetInlineStart || boundaryState.lastInsetInlineStart,\n lastInsetInlineEnd: positionState.lastInsetInlineEnd || boundaryState.lastInsetInlineEnd,\n };\n}\n\nexport function useStickyCellStyles({\n stickyColumns,\n columnId,\n getClassName,\n boundaryColumnId,\n}: UseStickyCellStylesProps): StickyCellStyles {\n const setCell = stickyColumns.refs.cell;\n\n // unsubscribeRef to hold the function to unsubscribe from the store's updates\n const unsubscribeRef = useRef<null | (() => void)>(null);\n\n // refCallback updates the cell ref and sets up the store subscription\n const refCallback = useCallback(\n (cellElement: null | HTMLElement) => {\n if (unsubscribeRef.current) {\n // Unsubscribe before we do any updates to avoid leaving any subscriptions hanging\n unsubscribeRef.current();\n }\n\n // Update cellRef and the store's state to point to the new DOM node\n setCell(columnId, cellElement);\n\n // Update cell styles imperatively to avoid unnecessary re-renders.\n const selector = (state: StickyColumnsState) => {\n const positionState = state.cellState.get(columnId) ?? null;\n const boundaryState = boundaryColumnId !== undefined ? (state.cellState.get(boundaryColumnId) ?? null) : null;\n return mergeBoundaryShadow(positionState, boundaryState);\n };\n\n const updateCellStyles = (state: null | StickyColumnsCellState, prev: null | StickyColumnsCellState) => {\n if (isCellStatesEqual(state, prev)) {\n return;\n }\n\n const className = getClassName(state);\n if (cellElement) {\n Object.keys(className).forEach(key => {\n if (className[key]) {\n cellElement.classList.add(key);\n } else {\n cellElement.classList.remove(key);\n }\n });\n cellElement.style.insetInlineStart =\n state?.offset.insetInlineStart !== undefined ? `${state.offset.insetInlineStart}px` : '';\n cellElement.style.insetInlineEnd =\n state?.offset.insetInlineEnd !== undefined ? `${state.offset.insetInlineEnd}px` : '';\n }\n };\n\n // If the node is not null (i.e., the table cell is being mounted or updated, not unmounted),\n // set up a new subscription to the store's updates\n if (cellElement) {\n unsubscribeRef.current = stickyColumns.store.subscribe(selector, (newState, prevState) => {\n updateCellStyles(selector(newState), selector(prevState));\n });\n }\n },\n\n // getClassName is expected to be pure\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [columnId, boundaryColumnId, setCell, stickyColumns.store]\n );\n\n // Provide cell styles as props so that a re-render won't cause invalidation.\n const storeState = stickyColumns.store.get();\n const positionStyles = storeState.cellState.get(columnId) ?? null;\n const boundaryStyles = boundaryColumnId !== undefined ? (storeState.cellState.get(boundaryColumnId) ?? null) : null;\n const mergedStyles = mergeBoundaryShadow(positionStyles, boundaryStyles);\n return {\n ref: refCallback,\n className: mergedStyles ? clsx(getClassName(mergedStyles)) : undefined,\n style: positionStyles?.offset ?? undefined,\n };\n}\n\ninterface UpdateCellStylesProps {\n wrapper: HTMLElement;\n table: HTMLElement;\n cells: Map<PropertyKey, HTMLElement>;\n visibleColumns: readonly PropertyKey[];\n stickyColumnsFirst: number;\n stickyColumnsLast: number;\n}\n\nclass StickyColumnsStore extends AsyncStore<StickyColumnsState> {\n private cellOffsets: CellOffsets = {\n offsets: new Map(),\n stickyWidthInlineStart: 0,\n stickyWidthInlineEnd: 0,\n };\n private isStuckToTheInlineStart = false;\n private isStuckToTheInlineEnd = false;\n private padInlineStart = false;\n\n constructor() {\n super({ cellState: new Map(), wrapperState: { scrollPaddingInlineStart: 0, scrollPaddingInlineEnd: 0 } });\n }\n\n public updateCellStyles(props: UpdateCellStylesProps) {\n const hasStickyColumns = props.stickyColumnsFirst + props.stickyColumnsLast > 0;\n const hadStickyColumns = this.cellOffsets.offsets.size > 0;\n\n if (hasStickyColumns || hadStickyColumns) {\n this.updateScroll(props);\n this.updateCellOffsets(props);\n this.set(() => ({\n cellState: this.generateCellStyles(props),\n wrapperState: {\n scrollPaddingInlineStart: this.cellOffsets.stickyWidthInlineStart,\n scrollPaddingInlineEnd: this.cellOffsets.stickyWidthInlineEnd,\n },\n }));\n }\n }\n\n private updateScroll(props: UpdateCellStylesProps) {\n const wrapperScrollInlineStart = getScrollInlineStart(props.wrapper);\n const wrapperScrollWidth = props.wrapper.scrollWidth;\n const wrapperClientWidth = props.wrapper.clientWidth;\n const tablePaddingInlineStart = parseFloat(getComputedStyle(props.table).paddingInlineStart) || 0;\n const tablePaddingInlineEnd = parseFloat(getComputedStyle(props.table).paddingInlineEnd) || 0;\n\n this.isStuckToTheInlineStart = wrapperScrollInlineStart > tablePaddingInlineStart;\n\n // Math.ceil() is used here to address an edge-case in certain browsers, where they return non-integer wrapperScrollInlineStart values\n // which are lower than expected (sub-pixel difference), resulting in the table always being in the \"stuck to the right\" state\n this.isStuckToTheInlineEnd =\n Math.ceil(wrapperScrollInlineStart) < wrapperScrollWidth - wrapperClientWidth - tablePaddingInlineEnd;\n\n this.padInlineStart = tablePaddingInlineStart !== 0 && this.isStuckToTheInlineStart;\n }\n\n private generateCellStyles = (props: UpdateCellStylesProps): Map<PropertyKey, StickyColumnsCellState> => {\n const isEnabled = this.isEnabled(props);\n const lastLeftStickyColumnIndex = props.stickyColumnsFirst - 1;\n const lastRightStickyColumnIndex = props.visibleColumns.length - props.stickyColumnsLast;\n\n return props.visibleColumns.reduce((acc, columnId, index) => {\n let stickySide = 'non-sticky';\n if (index < props.stickyColumnsFirst) {\n stickySide = 'inline-start';\n } else if (index >= props.visibleColumns.length - props.stickyColumnsLast) {\n stickySide = 'inline-end';\n }\n\n if (!isEnabled || stickySide === 'non-sticky') {\n return acc;\n }\n\n // Determine the offset of the sticky column using the `cellOffsets` state object\n const isFirstColumn = index === 0;\n const stickyColumnOffsetLeft = this.cellOffsets.offsets.get(columnId)?.first ?? 0;\n const stickyColumnOffsetRight = this.cellOffsets.offsets.get(columnId)?.last ?? 0;\n\n acc.set(columnId, {\n padInlineStart: isFirstColumn && this.padInlineStart,\n lastInsetInlineStart: this.isStuckToTheInlineStart && lastLeftStickyColumnIndex === index,\n lastInsetInlineEnd: this.isStuckToTheInlineEnd && lastRightStickyColumnIndex === index,\n offset: {\n insetInlineStart: stickySide === 'inline-start' ? stickyColumnOffsetLeft : undefined,\n insetInlineEnd: stickySide === 'inline-end' ? stickyColumnOffsetRight : undefined,\n },\n });\n return acc;\n }, new Map<PropertyKey, StickyColumnsCellState>());\n };\n\n private updateCellOffsets = (props: UpdateCellStylesProps): void => {\n this.cellOffsets = updateCellOffsets(props.cells, props);\n };\n\n private isEnabled = (props: UpdateCellStylesProps): boolean => {\n const noStickyColumns = props.stickyColumnsFirst + props.stickyColumnsLast === 0;\n if (noStickyColumns) {\n return false;\n }\n\n const wrapperWidth = getLogicalBoundingClientRect(props.wrapper).inlineSize;\n const tableWidth = getLogicalBoundingClientRect(props.table).inlineSize;\n const isWrapperScrollable = tableWidth > wrapperWidth;\n if (!isWrapperScrollable) {\n return false;\n }\n\n const totalStickySpace = this.cellOffsets.stickyWidthInlineStart + this.cellOffsets.stickyWidthInlineEnd;\n const tablePaddingLeft = parseFloat(getComputedStyle(props.table).paddingLeft) || 0;\n const tablePaddingRight = parseFloat(getComputedStyle(props.table).paddingRight) || 0;\n const hasEnoughScrollableSpace =\n totalStickySpace + MINIMUM_SCROLLABLE_SPACE + tablePaddingLeft + tablePaddingRight < wrapperWidth;\n if (!hasEnoughScrollableSpace) {\n return false;\n }\n\n return true;\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"thead.d.ts","sourceRoot":"","sources":["../../../src/table/thead.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAA0B,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAEvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAgB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAA8B,SAAS,EAAE,MAAM,cAAc,CAAC;AAMrE,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,SAAS,GAAG,qBAAqB,CAAC;IACjD,iBAAiB,EAAE,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,gBAAgB,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAC7D,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC7C,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACzD,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC;IAClC,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,gBAAgB,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,kBAAkB,CAAC;IAC7C,WAAW,EAAE,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACtG,cAAc,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC9D,eAAe,EAAE,yBAAyB,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IACrF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,kBAAkB,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,WAAW,CAAC;IAC/B,gBAAgB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;IAC5D,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,QAAA,MAAM,KAAK,wFA2XV,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"thead.d.ts","sourceRoot":"","sources":["../../../src/table/thead.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAA0B,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAEvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAgB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAA8B,SAAS,EAAE,MAAM,cAAc,CAAC;AAMrE,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,SAAS,GAAG,qBAAqB,CAAC;IACjD,iBAAiB,EAAE,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,gBAAgB,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAC7D,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC7C,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACzD,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC;IAClC,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,gBAAgB,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,kBAAkB,CAAC;IAC7C,WAAW,EAAE,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACtG,cAAc,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC9D,eAAe,EAAE,yBAAyB,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IACrF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,kBAAkB,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,WAAW,CAAC;IAC/B,gBAAgB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;IAC5D,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,QAAA,MAAM,KAAK,wFA4XV,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -132,7 +132,7 @@ const Thead = React.forwardRef(({ selectionType, getSelectAllProps, columnDefini
132
132
  }, childColumnIds: leftChildIds, firstChildColumnId: leftChildIds[0], lastChildColumnId: leftChildIds[leftChildIds.length - 1], cellRef: isSplitFirst ? node => setCell(sticky, col.id, node) : () => { }, isLast: false, stickyColumnId: isSplitFirst ? childIds[0] : undefined, stickyBoundaryColumnId: isSplitFirst ? leftChildIds[leftChildIds.length - 1] : undefined }),
133
133
  React.createElement(TableGroupHeaderCell, { ...sharedGroupCellProps, colspan: rightColspan, colIndex: selectionType ? rightColIndex + 1 : rightColIndex, groupId: rightGroupId, resizableStyle: getColumnStyles(sticky, col.id), updateGroupWidth: (_, newWidth) => {
134
134
  handleSplitGroupResize(rightChildIds, newWidth);
135
- }, childColumnIds: rightChildIds, firstChildColumnId: rightChildIds[0], lastChildColumnId: rightChildIds[rightChildIds.length - 1], cellRef: !isSplitFirst ? node => setCell(sticky, col.id, node) : () => { }, resizerRoleDescription: resizerRoleDescription, resizerTooltipText: resizerTooltipText, isLast: rightColIndex + rightColspan === totalColumns, stickyColumnId: !isSplitFirst ? childIds[childIds.length - 1] : undefined })));
135
+ }, childColumnIds: rightChildIds, firstChildColumnId: rightChildIds[0], lastChildColumnId: rightChildIds[rightChildIds.length - 1], cellRef: !isSplitFirst ? node => setCell(sticky, col.id, node) : () => { }, resizerRoleDescription: resizerRoleDescription, resizerTooltipText: resizerTooltipText, isLast: rightColIndex + rightColspan === totalColumns, stickyColumnId: !isSplitFirst ? childIds[childIds.length - 1] : undefined, stickyBoundaryColumnId: !isSplitFirst ? rightChildIds[0] : undefined })));
136
136
  }
137
137
  // Determine if the entire group is sticky (all children on one side)
138
138
  const isFullyStickyFirst = stickyColumnsFirst > 0 && col.colIndex + col.colSpan - 1 < stickyColumnsFirst;
@@ -1 +1 @@
1
- {"version":3,"file":"thead.js","sourceRoot":"","sources":["../../../src/table/thead.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport { findUpUntil } from '@cloudscape-design/component-toolkit/dom';\n\nimport { fireNonCancelableEvent, NonCancelableEventHandler } from '../internal/events';\nimport { getGroupColumnIds, getGroupSplit } from './column-groups/split-utils';\nimport { ColumnGroupsLayout } from './column-groups/utils';\nimport { TableHeaderCell } from './header-cell';\nimport { TableGroupHeaderCell } from './header-cell/group-header-cell';\nimport { InternalSelectionType, TableProps } from './interfaces';\nimport { focusMarkers, ItemSelectionProps } from './selection';\nimport { TableHeaderSelectionCell } from './selection/selection-cell';\nimport { StickyColumnsModel } from './sticky-columns';\nimport { getTableHeaderRowRoleProps, TableRole } from './table-role';\nimport { DEFAULT_COLUMN_WIDTH, useColumnWidths } from './use-column-widths';\nimport { getColumnKey } from './utils';\n\nimport styles from './styles.css.js';\n\nexport interface TheadProps {\n selectionType: undefined | InternalSelectionType;\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<any>>;\n groupDefinitions?: ReadonlyArray<TableProps.GroupDefinition>;\n columnGroupsLayout?: ColumnGroupsLayout<any>;\n sortingColumn: TableProps.SortingColumn<any> | undefined;\n sortingDescending: boolean | undefined;\n sortingDisabled: boolean | undefined;\n variant: TableProps.Variant;\n tableVariant?: TableProps.Variant;\n wrapLines: boolean | undefined;\n resizableColumns: boolean | undefined;\n getSelectAllProps?: () => ItemSelectionProps;\n onFocusMove: ((sourceElement: HTMLElement, fromIndex: number, direction: -1 | 1) => void) | undefined;\n onResizeFinish: (newWidths: Map<PropertyKey, number>) => void;\n onSortingChange: NonCancelableEventHandler<TableProps.SortingState<any>> | undefined;\n sticky?: boolean;\n hidden?: boolean;\n stuck?: boolean;\n singleSelectionHeaderAriaLabel?: string;\n resizerRoleDescription?: string;\n resizerTooltipText?: string;\n stripedRows?: boolean;\n stickyState: StickyColumnsModel;\n stickyColumnsFirst: number;\n stickyColumnsLast: number;\n selectionColumnId: PropertyKey;\n focusedComponent?: null | string;\n onFocusedComponentChange?: (focusId: null | string) => void;\n tableRole: TableRole;\n isExpandable?: boolean;\n setLastUserAction: (name: string) => void;\n}\n\nconst Thead = React.forwardRef(\n (\n {\n selectionType,\n getSelectAllProps,\n columnDefinitions,\n columnGroupsLayout,\n sortingColumn,\n sortingDisabled,\n sortingDescending,\n resizableColumns,\n variant,\n tableVariant,\n wrapLines,\n onFocusMove,\n onSortingChange,\n onResizeFinish,\n singleSelectionHeaderAriaLabel,\n stripedRows,\n sticky = false,\n hidden = false,\n stuck = false,\n stickyState,\n stickyColumnsFirst,\n stickyColumnsLast,\n selectionColumnId,\n focusedComponent,\n onFocusedComponentChange,\n tableRole,\n resizerRoleDescription,\n resizerTooltipText,\n isExpandable,\n setLastUserAction,\n }: TheadProps,\n outerRef: React.Ref<HTMLTableRowElement>\n ) => {\n const { getColumnStyles, columnWidths, updateColumn, updateGroup, setCell } = useColumnWidths();\n\n const handleSplitGroupResize = (columnIds: string[], newWidth: number) => {\n const lastColumn = columnIds[columnIds.length - 1];\n if (lastColumn) {\n const currentGroupWidth = columnIds.reduce(\n (sum, id) => sum + (columnWidths.get(id) || DEFAULT_COLUMN_WIDTH),\n 0\n );\n const delta = newWidth - currentGroupWidth;\n const currentColumnWidth = columnWidths.get(lastColumn) || DEFAULT_COLUMN_WIDTH;\n updateColumn(lastColumn, currentColumnWidth + delta);\n }\n };\n\n const commonCellProps = {\n stuck,\n sticky,\n hidden,\n stripedRows,\n tableRole,\n variant,\n tableVariant,\n stickyState,\n wrapLines,\n };\n\n const sharedTrProps = {\n onFocus: (event: React.FocusEvent) => {\n const focusControlElement = findUpUntil(\n event.target as HTMLElement,\n element => !!element.getAttribute('data-focus-id')\n );\n const focusId = focusControlElement?.getAttribute('data-focus-id') ?? null;\n onFocusedComponentChange?.(focusId);\n },\n onBlur: () => onFocusedComponentChange?.(null),\n };\n\n // No grouping - render single row\n if (!columnGroupsLayout || columnGroupsLayout.rows.length <= 1) {\n return (\n <thead className={clsx(!hidden && styles['thead-active'])}>\n <tr\n {...focusMarkers.all}\n ref={outerRef}\n aria-rowindex={1}\n {...getTableHeaderRowRoleProps({ tableRole })}\n {...sharedTrProps}\n >\n {selectionType ? (\n <TableHeaderSelectionCell\n {...commonCellProps}\n focusedComponent={focusedComponent}\n columnId={selectionColumnId}\n cellRef={node => setCell(sticky, selectionColumnId, node)}\n getSelectAllProps={getSelectAllProps}\n onFocusMove={onFocusMove}\n singleSelectionHeaderAriaLabel={singleSelectionHeaderAriaLabel}\n />\n ) : null}\n\n {columnDefinitions.map((column, colIndex) => {\n const columnId = getColumnKey(column, colIndex);\n return (\n <TableHeaderCell\n {...commonCellProps}\n key={columnId}\n tabIndex={sticky ? -1 : 0}\n focusedComponent={focusedComponent}\n column={column}\n activeSortingColumn={sortingColumn}\n sortingDescending={sortingDescending}\n sortingDisabled={sortingDisabled}\n wrapLines={wrapLines}\n colIndex={selectionType ? colIndex + 1 : colIndex}\n columnId={columnId}\n updateColumn={updateColumn}\n onResizeFinish={() => onResizeFinish(columnWidths)}\n resizableColumns={resizableColumns}\n resizableStyle={getColumnStyles(sticky, columnId)}\n onClick={detail => {\n setLastUserAction('sorting');\n fireNonCancelableEvent(onSortingChange, detail);\n }}\n isEditable={!!column.editConfig}\n cellRef={node => setCell(sticky, columnId, node)}\n tableRole={tableRole}\n resizerRoleDescription={resizerRoleDescription}\n resizerTooltipText={resizerTooltipText}\n isExpandable={colIndex === 0 && isExpandable}\n hasDynamicContent={hidden && !resizableColumns && column.hasDynamicContent}\n isLast={colIndex === columnDefinitions.length - 1}\n />\n );\n })}\n </tr>\n </thead>\n );\n }\n\n // Grouped columns\n const totalColumns = columnDefinitions.length;\n return (\n <thead className={clsx(!hidden && styles['thead-active'])}>\n {columnGroupsLayout.rows.map((row, rowIndex) => (\n <tr\n key={rowIndex}\n {...(rowIndex === 0 ? focusMarkers.all : {})}\n ref={rowIndex === 0 ? outerRef : undefined}\n aria-rowindex={rowIndex + 1}\n data-group-level={rowIndex}\n {...getTableHeaderRowRoleProps({ tableRole, rowIndex })}\n {...sharedTrProps}\n >\n {/* Selection column — render once in the first row with rowSpan covering all header rows */}\n {selectionType && rowIndex === 0 ? (\n <TableHeaderSelectionCell\n {...commonCellProps}\n focusedComponent={focusedComponent}\n columnId={selectionColumnId}\n cellRef={node => setCell(sticky, selectionColumnId, node)}\n getSelectAllProps={getSelectAllProps}\n onFocusMove={onFocusMove}\n singleSelectionHeaderAriaLabel={singleSelectionHeaderAriaLabel}\n rowSpan={columnGroupsLayout.rows.length}\n />\n ) : null}\n\n {row.columns.map((col, colIndexInRow) => {\n // A cell is the last child of its parent group when the next rendered cell\n // in the same row belongs to a different top-level parent, i.e. they don't\n // share the same immediate parent group.\n const nextCol = row.columns[colIndexInRow + 1];\n const thisParent = col.parentGroupIds[col.parentGroupIds.length - 1] ?? null;\n const nextParent = nextCol ? (nextCol.parentGroupIds[nextCol.parentGroupIds.length - 1] ?? null) : null;\n // A column is also considered last-child-of-group when the sticky boundary\n // bisects its parent group just after this column — visually it's the rightmost\n // column of the sticky half, so its resizer should span full-height like a\n // normal last-child-of-group.\n const isColumnAtStickyFirstBoundary =\n !col.isGroup &&\n thisParent !== null &&\n stickyColumnsFirst > 0 &&\n col.colIndex === stickyColumnsFirst - 1;\n const isColumnAtStickyLastBoundary =\n !col.isGroup &&\n thisParent !== null &&\n stickyColumnsLast > 0 &&\n col.colIndex === columnDefinitions.length - stickyColumnsLast - 1;\n const isLastChildOfGroup =\n (thisParent !== null && thisParent !== nextParent) ||\n isColumnAtStickyFirstBoundary ||\n isColumnAtStickyLastBoundary;\n\n if (col.isGroup) {\n // Group header cell\n const groupDefinition = col.groupDefinition!;\n const childIds = getGroupColumnIds(columnGroupsLayout!, col.id);\n const sharedGroupCellProps = {\n ...commonCellProps,\n tabIndex: sticky ? -1 : 0,\n focusedComponent,\n group: groupDefinition,\n rowspan: col.rowSpan,\n resizableColumns,\n onResizeFinish: () => onResizeFinish(columnWidths),\n columnGroupId:\n col.parentGroupIds.length > 0 ? col.parentGroupIds[col.parentGroupIds.length - 1] : undefined,\n };\n const splitFirst = getGroupSplit({\n col,\n stickyCount: stickyColumnsFirst,\n side: 'first',\n totalColumns,\n });\n const splitLast = getGroupSplit({\n col,\n stickyCount: stickyColumnsLast,\n side: 'last',\n totalColumns,\n });\n const split = splitFirst.stickyColspan > 0 ? splitFirst : splitLast;\n const isSplit = split.stickyColspan > 0;\n\n if (isSplit) {\n // Group is bisected by the sticky boundary — render two <th> elements.\n // Both halves get resizers. Each resizes its own rightmost column child.\n const isSplitFirst = splitFirst.stickyColspan > 0;\n\n // Left half is sticky for 'first', non-sticky for 'last'\n const leftColspan = isSplitFirst ? split.stickyColspan : split.staticColspan;\n const leftColIndex = col.colIndex;\n const leftGroupId = isSplitFirst ? col.id : `${col.id}__split`;\n const leftChildIds = childIds.slice(0, leftColspan);\n\n // Right half is non-sticky for 'first', sticky for 'last'\n const rightColspan = isSplitFirst ? split.staticColspan : split.stickyColspan;\n const rightColIndex = col.colIndex + leftColspan;\n const rightGroupId = isSplitFirst ? `${col.id}__split` : col.id;\n const rightChildIds = childIds.slice(leftColspan);\n\n return (\n <React.Fragment key={col.id}>\n {/* Left half */}\n <TableGroupHeaderCell\n {...sharedGroupCellProps}\n colspan={leftColspan}\n colIndex={selectionType ? leftColIndex + 1 : leftColIndex}\n groupId={leftGroupId}\n resizableStyle={undefined}\n updateGroupWidth={(_, newWidth) => {\n handleSplitGroupResize(leftChildIds, newWidth);\n }}\n childColumnIds={leftChildIds}\n firstChildColumnId={leftChildIds[0]}\n lastChildColumnId={leftChildIds[leftChildIds.length - 1]}\n cellRef={isSplitFirst ? node => setCell(sticky, col.id, node) : () => {}}\n isLast={false}\n stickyColumnId={isSplitFirst ? childIds[0] : undefined}\n stickyBoundaryColumnId={isSplitFirst ? leftChildIds[leftChildIds.length - 1] : undefined}\n />\n\n {/* Right half */}\n <TableGroupHeaderCell\n {...sharedGroupCellProps}\n colspan={rightColspan}\n colIndex={selectionType ? rightColIndex + 1 : rightColIndex}\n groupId={rightGroupId}\n resizableStyle={getColumnStyles(sticky, col.id)}\n updateGroupWidth={(_, newWidth) => {\n handleSplitGroupResize(rightChildIds, newWidth);\n }}\n childColumnIds={rightChildIds}\n firstChildColumnId={rightChildIds[0]}\n lastChildColumnId={rightChildIds[rightChildIds.length - 1]}\n cellRef={!isSplitFirst ? node => setCell(sticky, col.id, node) : () => {}}\n resizerRoleDescription={resizerRoleDescription}\n resizerTooltipText={resizerTooltipText}\n isLast={rightColIndex + rightColspan === totalColumns}\n stickyColumnId={!isSplitFirst ? childIds[childIds.length - 1] : undefined}\n />\n </React.Fragment>\n );\n }\n\n // Determine if the entire group is sticky (all children on one side)\n const isFullyStickyFirst =\n stickyColumnsFirst > 0 && col.colIndex + col.colSpan - 1 < stickyColumnsFirst;\n const isFullyStickyLast =\n stickyColumnsLast > 0 && col.colIndex >= columnDefinitions.length - stickyColumnsLast;\n const fullyStickyColumnId = isFullyStickyFirst\n ? childIds[0]\n : isFullyStickyLast\n ? childIds[childIds.length - 1]\n : undefined;\n\n // When the group's last child is the sticky-first boundary, the group\n // needs the shadow from that child (but offset from the first child).\n const isAtStickyFirstBoundary =\n isFullyStickyFirst && col.colIndex + col.colSpan - 1 === stickyColumnsFirst - 1;\n const isAtStickyLastBoundary =\n isFullyStickyLast && col.colIndex === columnDefinitions.length - stickyColumnsLast;\n const fullyStickyBoundaryColumnId = isAtStickyFirstBoundary\n ? childIds[childIds.length - 1]\n : isAtStickyLastBoundary\n ? childIds[0]\n : undefined;\n\n return (\n <TableGroupHeaderCell\n {...sharedGroupCellProps}\n key={col.id}\n colspan={col.colSpan}\n colIndex={selectionType ? col.colIndex + 1 : col.colIndex}\n groupId={col.id}\n resizableStyle={getColumnStyles(sticky, col.id)}\n updateGroupWidth={(groupId, newWidth) => {\n updateGroup(groupId, newWidth);\n }}\n childColumnIds={childIds}\n firstChildColumnId={childIds[0]}\n lastChildColumnId={childIds[childIds.length - 1]}\n cellRef={node => setCell(sticky, col.id, node)}\n resizerRoleDescription={resizerRoleDescription}\n resizerTooltipText={resizerTooltipText}\n isLast={col.colIndex + col.colSpan === totalColumns}\n stickyColumnId={fullyStickyColumnId}\n stickyBoundaryColumnId={fullyStickyBoundaryColumnId}\n />\n );\n } else {\n // Regular column cell\n const column = col.columnDefinition!;\n const columnId = col.id;\n const colIndex = col.colIndex;\n\n return (\n <TableHeaderCell\n {...commonCellProps}\n key={columnId}\n tabIndex={sticky ? -1 : 0}\n focusedComponent={focusedComponent}\n column={column}\n activeSortingColumn={sortingColumn}\n sortingDescending={sortingDescending}\n sortingDisabled={sortingDisabled}\n wrapLines={wrapLines}\n colIndex={selectionType ? colIndex + 1 : colIndex}\n columnId={columnId}\n updateColumn={updateColumn}\n onResizeFinish={() => onResizeFinish(columnWidths)}\n resizableColumns={resizableColumns}\n resizableStyle={getColumnStyles(sticky, columnId)}\n onClick={detail => {\n setLastUserAction('sorting');\n fireNonCancelableEvent(onSortingChange, detail);\n }}\n isEditable={!!column.editConfig}\n cellRef={node => {\n setCell(sticky, columnId, node);\n }}\n tableRole={tableRole}\n resizerRoleDescription={resizerRoleDescription}\n resizerTooltipText={resizerTooltipText}\n isExpandable={colIndex === 0 && isExpandable}\n hasDynamicContent={hidden && !resizableColumns && column.hasDynamicContent}\n colSpan={col.colSpan}\n rowSpan={col.rowSpan}\n isLastChildOfGroup={isLastChildOfGroup}\n isLast={col.colIndex + col.colSpan === totalColumns}\n columnGroupId={\n col.parentGroupIds.length > 0 ? col.parentGroupIds[col.parentGroupIds.length - 1] : undefined\n }\n />\n );\n }\n })}\n </tr>\n ))}\n </thead>\n );\n }\n);\n\nexport default Thead;\n"]}
1
+ {"version":3,"file":"thead.js","sourceRoot":"","sources":["../../../src/table/thead.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport { findUpUntil } from '@cloudscape-design/component-toolkit/dom';\n\nimport { fireNonCancelableEvent, NonCancelableEventHandler } from '../internal/events';\nimport { getGroupColumnIds, getGroupSplit } from './column-groups/split-utils';\nimport { ColumnGroupsLayout } from './column-groups/utils';\nimport { TableHeaderCell } from './header-cell';\nimport { TableGroupHeaderCell } from './header-cell/group-header-cell';\nimport { InternalSelectionType, TableProps } from './interfaces';\nimport { focusMarkers, ItemSelectionProps } from './selection';\nimport { TableHeaderSelectionCell } from './selection/selection-cell';\nimport { StickyColumnsModel } from './sticky-columns';\nimport { getTableHeaderRowRoleProps, TableRole } from './table-role';\nimport { DEFAULT_COLUMN_WIDTH, useColumnWidths } from './use-column-widths';\nimport { getColumnKey } from './utils';\n\nimport styles from './styles.css.js';\n\nexport interface TheadProps {\n selectionType: undefined | InternalSelectionType;\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<any>>;\n groupDefinitions?: ReadonlyArray<TableProps.GroupDefinition>;\n columnGroupsLayout?: ColumnGroupsLayout<any>;\n sortingColumn: TableProps.SortingColumn<any> | undefined;\n sortingDescending: boolean | undefined;\n sortingDisabled: boolean | undefined;\n variant: TableProps.Variant;\n tableVariant?: TableProps.Variant;\n wrapLines: boolean | undefined;\n resizableColumns: boolean | undefined;\n getSelectAllProps?: () => ItemSelectionProps;\n onFocusMove: ((sourceElement: HTMLElement, fromIndex: number, direction: -1 | 1) => void) | undefined;\n onResizeFinish: (newWidths: Map<PropertyKey, number>) => void;\n onSortingChange: NonCancelableEventHandler<TableProps.SortingState<any>> | undefined;\n sticky?: boolean;\n hidden?: boolean;\n stuck?: boolean;\n singleSelectionHeaderAriaLabel?: string;\n resizerRoleDescription?: string;\n resizerTooltipText?: string;\n stripedRows?: boolean;\n stickyState: StickyColumnsModel;\n stickyColumnsFirst: number;\n stickyColumnsLast: number;\n selectionColumnId: PropertyKey;\n focusedComponent?: null | string;\n onFocusedComponentChange?: (focusId: null | string) => void;\n tableRole: TableRole;\n isExpandable?: boolean;\n setLastUserAction: (name: string) => void;\n}\n\nconst Thead = React.forwardRef(\n (\n {\n selectionType,\n getSelectAllProps,\n columnDefinitions,\n columnGroupsLayout,\n sortingColumn,\n sortingDisabled,\n sortingDescending,\n resizableColumns,\n variant,\n tableVariant,\n wrapLines,\n onFocusMove,\n onSortingChange,\n onResizeFinish,\n singleSelectionHeaderAriaLabel,\n stripedRows,\n sticky = false,\n hidden = false,\n stuck = false,\n stickyState,\n stickyColumnsFirst,\n stickyColumnsLast,\n selectionColumnId,\n focusedComponent,\n onFocusedComponentChange,\n tableRole,\n resizerRoleDescription,\n resizerTooltipText,\n isExpandable,\n setLastUserAction,\n }: TheadProps,\n outerRef: React.Ref<HTMLTableRowElement>\n ) => {\n const { getColumnStyles, columnWidths, updateColumn, updateGroup, setCell } = useColumnWidths();\n\n const handleSplitGroupResize = (columnIds: string[], newWidth: number) => {\n const lastColumn = columnIds[columnIds.length - 1];\n if (lastColumn) {\n const currentGroupWidth = columnIds.reduce(\n (sum, id) => sum + (columnWidths.get(id) || DEFAULT_COLUMN_WIDTH),\n 0\n );\n const delta = newWidth - currentGroupWidth;\n const currentColumnWidth = columnWidths.get(lastColumn) || DEFAULT_COLUMN_WIDTH;\n updateColumn(lastColumn, currentColumnWidth + delta);\n }\n };\n\n const commonCellProps = {\n stuck,\n sticky,\n hidden,\n stripedRows,\n tableRole,\n variant,\n tableVariant,\n stickyState,\n wrapLines,\n };\n\n const sharedTrProps = {\n onFocus: (event: React.FocusEvent) => {\n const focusControlElement = findUpUntil(\n event.target as HTMLElement,\n element => !!element.getAttribute('data-focus-id')\n );\n const focusId = focusControlElement?.getAttribute('data-focus-id') ?? null;\n onFocusedComponentChange?.(focusId);\n },\n onBlur: () => onFocusedComponentChange?.(null),\n };\n\n // No grouping - render single row\n if (!columnGroupsLayout || columnGroupsLayout.rows.length <= 1) {\n return (\n <thead className={clsx(!hidden && styles['thead-active'])}>\n <tr\n {...focusMarkers.all}\n ref={outerRef}\n aria-rowindex={1}\n {...getTableHeaderRowRoleProps({ tableRole })}\n {...sharedTrProps}\n >\n {selectionType ? (\n <TableHeaderSelectionCell\n {...commonCellProps}\n focusedComponent={focusedComponent}\n columnId={selectionColumnId}\n cellRef={node => setCell(sticky, selectionColumnId, node)}\n getSelectAllProps={getSelectAllProps}\n onFocusMove={onFocusMove}\n singleSelectionHeaderAriaLabel={singleSelectionHeaderAriaLabel}\n />\n ) : null}\n\n {columnDefinitions.map((column, colIndex) => {\n const columnId = getColumnKey(column, colIndex);\n return (\n <TableHeaderCell\n {...commonCellProps}\n key={columnId}\n tabIndex={sticky ? -1 : 0}\n focusedComponent={focusedComponent}\n column={column}\n activeSortingColumn={sortingColumn}\n sortingDescending={sortingDescending}\n sortingDisabled={sortingDisabled}\n wrapLines={wrapLines}\n colIndex={selectionType ? colIndex + 1 : colIndex}\n columnId={columnId}\n updateColumn={updateColumn}\n onResizeFinish={() => onResizeFinish(columnWidths)}\n resizableColumns={resizableColumns}\n resizableStyle={getColumnStyles(sticky, columnId)}\n onClick={detail => {\n setLastUserAction('sorting');\n fireNonCancelableEvent(onSortingChange, detail);\n }}\n isEditable={!!column.editConfig}\n cellRef={node => setCell(sticky, columnId, node)}\n tableRole={tableRole}\n resizerRoleDescription={resizerRoleDescription}\n resizerTooltipText={resizerTooltipText}\n isExpandable={colIndex === 0 && isExpandable}\n hasDynamicContent={hidden && !resizableColumns && column.hasDynamicContent}\n isLast={colIndex === columnDefinitions.length - 1}\n />\n );\n })}\n </tr>\n </thead>\n );\n }\n\n // Grouped columns\n const totalColumns = columnDefinitions.length;\n return (\n <thead className={clsx(!hidden && styles['thead-active'])}>\n {columnGroupsLayout.rows.map((row, rowIndex) => (\n <tr\n key={rowIndex}\n {...(rowIndex === 0 ? focusMarkers.all : {})}\n ref={rowIndex === 0 ? outerRef : undefined}\n aria-rowindex={rowIndex + 1}\n data-group-level={rowIndex}\n {...getTableHeaderRowRoleProps({ tableRole, rowIndex })}\n {...sharedTrProps}\n >\n {/* Selection column — render once in the first row with rowSpan covering all header rows */}\n {selectionType && rowIndex === 0 ? (\n <TableHeaderSelectionCell\n {...commonCellProps}\n focusedComponent={focusedComponent}\n columnId={selectionColumnId}\n cellRef={node => setCell(sticky, selectionColumnId, node)}\n getSelectAllProps={getSelectAllProps}\n onFocusMove={onFocusMove}\n singleSelectionHeaderAriaLabel={singleSelectionHeaderAriaLabel}\n rowSpan={columnGroupsLayout.rows.length}\n />\n ) : null}\n\n {row.columns.map((col, colIndexInRow) => {\n // A cell is the last child of its parent group when the next rendered cell\n // in the same row belongs to a different top-level parent, i.e. they don't\n // share the same immediate parent group.\n const nextCol = row.columns[colIndexInRow + 1];\n const thisParent = col.parentGroupIds[col.parentGroupIds.length - 1] ?? null;\n const nextParent = nextCol ? (nextCol.parentGroupIds[nextCol.parentGroupIds.length - 1] ?? null) : null;\n // A column is also considered last-child-of-group when the sticky boundary\n // bisects its parent group just after this column — visually it's the rightmost\n // column of the sticky half, so its resizer should span full-height like a\n // normal last-child-of-group.\n const isColumnAtStickyFirstBoundary =\n !col.isGroup &&\n thisParent !== null &&\n stickyColumnsFirst > 0 &&\n col.colIndex === stickyColumnsFirst - 1;\n const isColumnAtStickyLastBoundary =\n !col.isGroup &&\n thisParent !== null &&\n stickyColumnsLast > 0 &&\n col.colIndex === columnDefinitions.length - stickyColumnsLast - 1;\n const isLastChildOfGroup =\n (thisParent !== null && thisParent !== nextParent) ||\n isColumnAtStickyFirstBoundary ||\n isColumnAtStickyLastBoundary;\n\n if (col.isGroup) {\n // Group header cell\n const groupDefinition = col.groupDefinition!;\n const childIds = getGroupColumnIds(columnGroupsLayout!, col.id);\n const sharedGroupCellProps = {\n ...commonCellProps,\n tabIndex: sticky ? -1 : 0,\n focusedComponent,\n group: groupDefinition,\n rowspan: col.rowSpan,\n resizableColumns,\n onResizeFinish: () => onResizeFinish(columnWidths),\n columnGroupId:\n col.parentGroupIds.length > 0 ? col.parentGroupIds[col.parentGroupIds.length - 1] : undefined,\n };\n const splitFirst = getGroupSplit({\n col,\n stickyCount: stickyColumnsFirst,\n side: 'first',\n totalColumns,\n });\n const splitLast = getGroupSplit({\n col,\n stickyCount: stickyColumnsLast,\n side: 'last',\n totalColumns,\n });\n const split = splitFirst.stickyColspan > 0 ? splitFirst : splitLast;\n const isSplit = split.stickyColspan > 0;\n\n if (isSplit) {\n // Group is bisected by the sticky boundary — render two <th> elements.\n // Both halves get resizers. Each resizes its own rightmost column child.\n const isSplitFirst = splitFirst.stickyColspan > 0;\n\n // Left half is sticky for 'first', non-sticky for 'last'\n const leftColspan = isSplitFirst ? split.stickyColspan : split.staticColspan;\n const leftColIndex = col.colIndex;\n const leftGroupId = isSplitFirst ? col.id : `${col.id}__split`;\n const leftChildIds = childIds.slice(0, leftColspan);\n\n // Right half is non-sticky for 'first', sticky for 'last'\n const rightColspan = isSplitFirst ? split.staticColspan : split.stickyColspan;\n const rightColIndex = col.colIndex + leftColspan;\n const rightGroupId = isSplitFirst ? `${col.id}__split` : col.id;\n const rightChildIds = childIds.slice(leftColspan);\n\n return (\n <React.Fragment key={col.id}>\n {/* Left half */}\n <TableGroupHeaderCell\n {...sharedGroupCellProps}\n colspan={leftColspan}\n colIndex={selectionType ? leftColIndex + 1 : leftColIndex}\n groupId={leftGroupId}\n resizableStyle={undefined}\n updateGroupWidth={(_, newWidth) => {\n handleSplitGroupResize(leftChildIds, newWidth);\n }}\n childColumnIds={leftChildIds}\n firstChildColumnId={leftChildIds[0]}\n lastChildColumnId={leftChildIds[leftChildIds.length - 1]}\n cellRef={isSplitFirst ? node => setCell(sticky, col.id, node) : () => {}}\n isLast={false}\n stickyColumnId={isSplitFirst ? childIds[0] : undefined}\n stickyBoundaryColumnId={isSplitFirst ? leftChildIds[leftChildIds.length - 1] : undefined}\n />\n\n {/* Right half */}\n <TableGroupHeaderCell\n {...sharedGroupCellProps}\n colspan={rightColspan}\n colIndex={selectionType ? rightColIndex + 1 : rightColIndex}\n groupId={rightGroupId}\n resizableStyle={getColumnStyles(sticky, col.id)}\n updateGroupWidth={(_, newWidth) => {\n handleSplitGroupResize(rightChildIds, newWidth);\n }}\n childColumnIds={rightChildIds}\n firstChildColumnId={rightChildIds[0]}\n lastChildColumnId={rightChildIds[rightChildIds.length - 1]}\n cellRef={!isSplitFirst ? node => setCell(sticky, col.id, node) : () => {}}\n resizerRoleDescription={resizerRoleDescription}\n resizerTooltipText={resizerTooltipText}\n isLast={rightColIndex + rightColspan === totalColumns}\n stickyColumnId={!isSplitFirst ? childIds[childIds.length - 1] : undefined}\n stickyBoundaryColumnId={!isSplitFirst ? rightChildIds[0] : undefined}\n />\n </React.Fragment>\n );\n }\n\n // Determine if the entire group is sticky (all children on one side)\n const isFullyStickyFirst =\n stickyColumnsFirst > 0 && col.colIndex + col.colSpan - 1 < stickyColumnsFirst;\n const isFullyStickyLast =\n stickyColumnsLast > 0 && col.colIndex >= columnDefinitions.length - stickyColumnsLast;\n const fullyStickyColumnId = isFullyStickyFirst\n ? childIds[0]\n : isFullyStickyLast\n ? childIds[childIds.length - 1]\n : undefined;\n\n // When the group's last child is the sticky-first boundary, the group\n // needs the shadow from that child (but offset from the first child).\n const isAtStickyFirstBoundary =\n isFullyStickyFirst && col.colIndex + col.colSpan - 1 === stickyColumnsFirst - 1;\n const isAtStickyLastBoundary =\n isFullyStickyLast && col.colIndex === columnDefinitions.length - stickyColumnsLast;\n const fullyStickyBoundaryColumnId = isAtStickyFirstBoundary\n ? childIds[childIds.length - 1]\n : isAtStickyLastBoundary\n ? childIds[0]\n : undefined;\n\n return (\n <TableGroupHeaderCell\n {...sharedGroupCellProps}\n key={col.id}\n colspan={col.colSpan}\n colIndex={selectionType ? col.colIndex + 1 : col.colIndex}\n groupId={col.id}\n resizableStyle={getColumnStyles(sticky, col.id)}\n updateGroupWidth={(groupId, newWidth) => {\n updateGroup(groupId, newWidth);\n }}\n childColumnIds={childIds}\n firstChildColumnId={childIds[0]}\n lastChildColumnId={childIds[childIds.length - 1]}\n cellRef={node => setCell(sticky, col.id, node)}\n resizerRoleDescription={resizerRoleDescription}\n resizerTooltipText={resizerTooltipText}\n isLast={col.colIndex + col.colSpan === totalColumns}\n stickyColumnId={fullyStickyColumnId}\n stickyBoundaryColumnId={fullyStickyBoundaryColumnId}\n />\n );\n } else {\n // Regular column cell\n const column = col.columnDefinition!;\n const columnId = col.id;\n const colIndex = col.colIndex;\n\n return (\n <TableHeaderCell\n {...commonCellProps}\n key={columnId}\n tabIndex={sticky ? -1 : 0}\n focusedComponent={focusedComponent}\n column={column}\n activeSortingColumn={sortingColumn}\n sortingDescending={sortingDescending}\n sortingDisabled={sortingDisabled}\n wrapLines={wrapLines}\n colIndex={selectionType ? colIndex + 1 : colIndex}\n columnId={columnId}\n updateColumn={updateColumn}\n onResizeFinish={() => onResizeFinish(columnWidths)}\n resizableColumns={resizableColumns}\n resizableStyle={getColumnStyles(sticky, columnId)}\n onClick={detail => {\n setLastUserAction('sorting');\n fireNonCancelableEvent(onSortingChange, detail);\n }}\n isEditable={!!column.editConfig}\n cellRef={node => {\n setCell(sticky, columnId, node);\n }}\n tableRole={tableRole}\n resizerRoleDescription={resizerRoleDescription}\n resizerTooltipText={resizerTooltipText}\n isExpandable={colIndex === 0 && isExpandable}\n hasDynamicContent={hidden && !resizableColumns && column.hasDynamicContent}\n colSpan={col.colSpan}\n rowSpan={col.rowSpan}\n isLastChildOfGroup={isLastChildOfGroup}\n isLast={col.colIndex + col.colSpan === totalColumns}\n columnGroupId={\n col.parentGroupIds.length > 0 ? col.parentGroupIds[col.parentGroupIds.length - 1] : undefined\n }\n />\n );\n }\n })}\n </tr>\n ))}\n </thead>\n );\n }\n);\n\nexport default Thead;\n"]}
@@ -91,7 +91,7 @@ class TableWrapper extends dom_1.ComponentWrapper {
91
91
  return (_b = (_a = this.findBodyCell(rowIndex, columnIndex)) === null || _a === void 0 ? void 0 : _a.find(`.${styles_selectors_js_8.default['body-cell-counter']}`)) !== null && _b !== void 0 ? _b : null;
92
92
  }
93
93
  findRows() {
94
- return this.findNativeTable().findAllByClassName(styles_selectors_js_7.default.row);
94
+ return this.findNativeTable().findAll(`tr.${styles_selectors_js_7.default.row}:not([aria-hidden])`);
95
95
  }
96
96
  findSelectedRows() {
97
97
  return this.findAllByClassName(styles_selectors_js_7.default['row-selected']);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/table/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/table/index.ts"],"names":[],"mappings":"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"}
@@ -85,7 +85,7 @@ class TableWrapper extends selectors_1.ComponentWrapper {
85
85
  return (_b = (_a = this.findBodyCell(rowIndex, columnIndex)) === null || _a === void 0 ? void 0 : _a.find(`.${styles_selectors_js_8.default['body-cell-counter']}`)) !== null && _b !== void 0 ? _b : null;
86
86
  }
87
87
  findRows() {
88
- return this.findNativeTable().findAllByClassName(styles_selectors_js_7.default.row);
88
+ return this.findNativeTable().findAll(`tr.${styles_selectors_js_7.default.row}:not([aria-hidden])`);
89
89
  }
90
90
  findSelectedRows() {
91
91
  return this.findAllByClassName(styles_selectors_js_7.default['row-selected']);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/table/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/table/index.ts"],"names":[],"mappings":"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"}
@@ -13,4 +13,6 @@ export interface GenerateThemeStylesheetParams {
13
13
  baseThemeId?: string;
14
14
  }
15
15
  export declare function generateThemeStylesheet({ theme, baseThemeId }: GenerateThemeStylesheetParams): string;
16
+ export declare function setGlobalTheme(theme: Theme): void;
17
+ export declare function applyGlobalTheme(): ApplyThemeResult;
16
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theming/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAU,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,MAAM,KAAK,GAAG,aAAa,CAAC;AAClC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,gBAAgB,GAAG,gBAAgB,CAMrF;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,uBAAuB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,6BAA6B,GAAG,MAAM,CAMrG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theming/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAU,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,MAAM,KAAK,GAAG,aAAa,CAAC;AAClC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,gBAAgB,GAAG,gBAAgB,CAMrF;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,uBAAuB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,6BAA6B,GAAG,MAAM,CAMrG;AAoBD,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAOjD;AAOD,wBAAgB,gBAAgB,IAAI,gBAAgB,CAmCnD"}
@@ -17,4 +17,59 @@ export function generateThemeStylesheet({ theme, baseThemeId }) {
17
17
  baseThemeId,
18
18
  });
19
19
  }
20
+ const themeStorageKey = Symbol.for('awsui-global-theme');
21
+ const themeChangeEvent = 'awsui-global-theme-change';
22
+ function getTopWindow() {
23
+ try {
24
+ if (window.top && window.top.document) {
25
+ return window.top;
26
+ }
27
+ }
28
+ catch {
29
+ // Cross-origin access error — fall back to current window.
30
+ }
31
+ return window;
32
+ }
33
+ export function setGlobalTheme(theme) {
34
+ if (typeof window === 'undefined') {
35
+ return;
36
+ }
37
+ const topWindow = getTopWindow();
38
+ topWindow[themeStorageKey] = theme;
39
+ topWindow.dispatchEvent(new Event(themeChangeEvent));
40
+ }
41
+ function getGlobalTheme() {
42
+ const topWindow = getTopWindow();
43
+ return topWindow[themeStorageKey];
44
+ }
45
+ export function applyGlobalTheme() {
46
+ if (typeof window === 'undefined') {
47
+ return { reset: () => { } };
48
+ }
49
+ const topWindow = getTopWindow();
50
+ let currentReset;
51
+ function apply() {
52
+ currentReset === null || currentReset === void 0 ? void 0 : currentReset();
53
+ currentReset = undefined;
54
+ const theme = getGlobalTheme();
55
+ if (theme) {
56
+ const result = applyTheme({ theme });
57
+ currentReset = result.reset;
58
+ }
59
+ }
60
+ // Apply the current global theme immediately.
61
+ apply();
62
+ // Listen for future global theme changes.
63
+ const listener = () => {
64
+ apply();
65
+ };
66
+ topWindow.addEventListener(themeChangeEvent, listener);
67
+ return {
68
+ reset: () => {
69
+ currentReset === null || currentReset === void 0 ? void 0 : currentReset();
70
+ currentReset = undefined;
71
+ topWindow.removeEventListener(themeChangeEvent, listener);
72
+ },
73
+ };
74
+ }
20
75
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/theming/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,YAAY,CAAC;AACb,OAAO,EACL,UAAU,IAAI,cAAc,EAC5B,uBAAuB,IAAI,2BAA2B,GACvD,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAiB,MAAM,+BAA+B,CAAC;AAYtE,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAoB;IACjE,OAAO,cAAc,CAAC;QACpB,QAAQ,EAAE,KAAK;QACf,MAAM;QACN,WAAW;KACZ,CAAC,CAAC;AACL,CAAC;AAOD,MAAM,UAAU,uBAAuB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAiC;IAC3F,OAAO,2BAA2B,CAAC;QACjC,QAAQ,EAAE,KAAK;QACf,MAAM;QACN,WAAW;KACZ,CAAC,CAAC;AACL,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n'use client';\nimport {\n applyTheme as coreApplyTheme,\n generateThemeStylesheet as coreGenerateThemeStylesheet,\n} from '@cloudscape-design/theming-runtime';\n\nimport { preset, TypedOverride } from '../internal/generated/theming';\n\nexport type Theme = TypedOverride;\nexport interface ApplyThemeParams {\n theme: Theme;\n baseThemeId?: string;\n}\n\nexport interface ApplyThemeResult {\n reset: () => void;\n}\n\nexport function applyTheme({ theme, baseThemeId }: ApplyThemeParams): ApplyThemeResult {\n return coreApplyTheme({\n override: theme,\n preset,\n baseThemeId,\n });\n}\n\nexport interface GenerateThemeStylesheetParams {\n theme: Theme;\n baseThemeId?: string;\n}\n\nexport function generateThemeStylesheet({ theme, baseThemeId }: GenerateThemeStylesheetParams): string {\n return coreGenerateThemeStylesheet({\n override: theme,\n preset,\n baseThemeId,\n });\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/theming/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,YAAY,CAAC;AACb,OAAO,EACL,UAAU,IAAI,cAAc,EAC5B,uBAAuB,IAAI,2BAA2B,GACvD,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAiB,MAAM,+BAA+B,CAAC;AAYtE,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAoB;IACjE,OAAO,cAAc,CAAC;QACpB,QAAQ,EAAE,KAAK;QACf,MAAM;QACN,WAAW;KACZ,CAAC,CAAC;AACL,CAAC;AAOD,MAAM,UAAU,uBAAuB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAiC;IAC3F,OAAO,2BAA2B,CAAC;QACjC,QAAQ,EAAE,KAAK;QACf,MAAM;QACN,WAAW;KACZ,CAAC,CAAC;AACL,CAAC;AAED,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACzD,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AAMrD,SAAS,YAAY;IACnB,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC,GAAsB,CAAC;QACvC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;IAC7D,CAAC;IACD,OAAO,MAAyB,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;IACD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,SAAS,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;IACnC,SAAS,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,cAAc;IACrB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,OAAO,SAAS,CAAC,eAAe,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,IAAI,YAAsC,CAAC;IAE3C,SAAS,KAAK;QACZ,YAAY,aAAZ,YAAY,uBAAZ,YAAY,EAAI,CAAC;QACjB,YAAY,GAAG,SAAS,CAAC;QACzB,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;QAE/B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACrC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,KAAK,EAAE,CAAC;IAER,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,KAAK,EAAE,CAAC;IACV,CAAC,CAAC;IACF,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAEvD,OAAO;QACL,KAAK,EAAE,GAAG,EAAE;YACV,YAAY,aAAZ,YAAY,uBAAZ,YAAY,EAAI,CAAC;YACjB,YAAY,GAAG,SAAS,CAAC;YACzB,SAAS,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n'use client';\nimport {\n applyTheme as coreApplyTheme,\n generateThemeStylesheet as coreGenerateThemeStylesheet,\n} from '@cloudscape-design/theming-runtime';\n\nimport { preset, TypedOverride } from '../internal/generated/theming';\n\nexport type Theme = TypedOverride;\nexport interface ApplyThemeParams {\n theme: Theme;\n baseThemeId?: string;\n}\n\nexport interface ApplyThemeResult {\n reset: () => void;\n}\n\nexport function applyTheme({ theme, baseThemeId }: ApplyThemeParams): ApplyThemeResult {\n return coreApplyTheme({\n override: theme,\n preset,\n baseThemeId,\n });\n}\n\nexport interface GenerateThemeStylesheetParams {\n theme: Theme;\n baseThemeId?: string;\n}\n\nexport function generateThemeStylesheet({ theme, baseThemeId }: GenerateThemeStylesheetParams): string {\n return coreGenerateThemeStylesheet({\n override: theme,\n preset,\n baseThemeId,\n });\n}\n\nconst themeStorageKey = Symbol.for('awsui-global-theme');\nconst themeChangeEvent = 'awsui-global-theme-change';\n\ninterface WindowWithTheme extends Window {\n [themeStorageKey]?: Theme;\n}\n\nfunction getTopWindow(): WindowWithTheme {\n try {\n if (window.top && window.top.document) {\n return window.top as WindowWithTheme;\n }\n } catch {\n // Cross-origin access error — fall back to current window.\n }\n return window as WindowWithTheme;\n}\n\nexport function setGlobalTheme(theme: Theme): void {\n if (typeof window === 'undefined') {\n return;\n }\n const topWindow = getTopWindow();\n topWindow[themeStorageKey] = theme;\n topWindow.dispatchEvent(new Event(themeChangeEvent));\n}\n\nfunction getGlobalTheme(): Theme | undefined {\n const topWindow = getTopWindow();\n return topWindow[themeStorageKey];\n}\n\nexport function applyGlobalTheme(): ApplyThemeResult {\n if (typeof window === 'undefined') {\n return { reset: () => {} };\n }\n\n const topWindow = getTopWindow();\n let currentReset: (() => void) | undefined;\n\n function apply() {\n currentReset?.();\n currentReset = undefined;\n const theme = getGlobalTheme();\n\n if (theme) {\n const result = applyTheme({ theme });\n currentReset = result.reset;\n }\n }\n\n // Apply the current global theme immediately.\n apply();\n\n // Listen for future global theme changes.\n const listener = () => {\n apply();\n };\n topWindow.addEventListener(themeChangeEvent, listener);\n\n return {\n reset: () => {\n currentReset?.();\n currentReset = undefined;\n topWindow.removeEventListener(themeChangeEvent, listener);\n },\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tree-view/tree-item/index.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAO9C,UAAU,qBAAqB,CAAC,CAAC,CAC/B,SAAQ,IAAI,CACV,aAAa,EACX,eAAe,GACf,YAAY,GACZ,WAAW,GACX,iBAAiB,GACjB,sBAAsB,GACtB,aAAa,GACb,gBAAgB,CACnB;IACD,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAClE,sBAAsB,EAAE;QACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;CACH;AAED,QAAA,MAAM,gBAAgB,GAAI,CAAC,EAAG,yKAa3B,qBAAqB,CAAC,CAAC,CAAC,gBA0G1B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tree-view/tree-item/index.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAO9C,UAAU,qBAAqB,CAAC,CAAC,CAC/B,SAAQ,IAAI,CACV,aAAa,EACX,eAAe,GACf,YAAY,GACZ,WAAW,GACX,iBAAiB,GACjB,sBAAsB,GACtB,aAAa,GACb,gBAAgB,CACnB;IACD,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAClE,sBAAsB,EAAE;QACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;CACH;AAED,QAAA,MAAM,gBAAgB,GAAI,CAAC,EAAG,yKAa3B,qBAAqB,CAAC,CAAC,CAAC,gBA0G1B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -2,6 +2,7 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import React from 'react';
4
4
  import clsx from 'clsx';
5
+ import { isThemeActive, Theme } from '@cloudscape-design/component-toolkit/internal';
5
6
  import { useInternalI18n } from '../../i18n/context';
6
7
  import { ExpandToggleButton } from '../../internal/components/expand-toggle-button';
7
8
  import InternalStructuredItem from '../../internal/components/structured-item';
@@ -30,7 +31,7 @@ const InternalTreeItem = ({ item, index, level, i18nStrings, expandedItems = [],
30
31
  ? content
31
32
  : '';
32
33
  return (React.createElement("li", { role: "treeitem", id: id, className: clsx(styles.treeitem, testUtilStyles.treeitem, level > 1 && styles.offset, isExpandable && [testUtilStyles.expandable], isExpanded && [testUtilStyles.expanded]), "aria-expanded": isExpandable ? isExpanded : undefined, "aria-level": level, "data-testid": `awsui-treeitem-${id}`, "data-awsui-tree-item-index": allVisibleItemsIndices[id] },
33
- React.createElement("div", { className: styles['treeitem-content-wrapper'] },
34
+ React.createElement("div", { className: clsx(styles['treeitem-content-wrapper'], isThemeActive(Theme.OneTheme) && styles['one-theme']) },
34
35
  React.createElement("div", { className: styles['expand-toggle-wrapper'] },
35
36
  React.createElement("div", { className: styles.toggle }, isExpandable ? (React.createElement(ExpandToggleButton, { isExpanded: isExpanded, customIcon: customIcon, expandButtonLabel: joinStrings(i18n('i18nStrings.expandButtonLabel', (_a = i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.expandButtonLabel) === null || _a === void 0 ? void 0 : _a.call(i18nStrings, item)), itemLabelToAnnounce), collapseButtonLabel: joinStrings(i18n('i18nStrings.collapseButtonLabel', (_b = i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.collapseButtonLabel) === null || _b === void 0 ? void 0 : _b.call(i18nStrings, item)), itemLabelToAnnounce), onExpandableItemToggle: () => onItemToggle({ id, item, expanded: !isExpanded }), className: styles['tree-item-focus-target'], disableFocusHighlight: true })) : (React.createElement(FocusTarget, { ariaLabel: itemLabelToAnnounce })))),
36
37
  showVerticalConnectorLines && React.createElement(VerticalConnector, { variant: "grid" }),