@cloudscape-design/components 3.0.1387 → 3.0.1389

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 (183) hide show
  1. package/checkbox/internal.d.ts.map +1 -1
  2. package/checkbox/internal.js +1 -1
  3. package/checkbox/internal.js.map +1 -1
  4. package/checkbox/styles.css.js +3 -7
  5. package/checkbox/styles.scoped.css +5 -19
  6. package/checkbox/styles.selectors.js +3 -7
  7. package/index.d.ts +6 -0
  8. package/index.d.ts.map +1 -1
  9. package/index.js +6 -0
  10. package/index.js.map +1 -1
  11. package/internal/base-component/styles.scoped.css +1 -1
  12. package/internal/components/abstract-switch/styles.css.js +13 -13
  13. package/internal/components/abstract-switch/styles.scoped.css +23 -23
  14. package/internal/components/abstract-switch/styles.selectors.js +13 -13
  15. package/internal/components/radio-button/index.d.ts.map +1 -1
  16. package/internal/components/radio-button/index.js +2 -2
  17. package/internal/components/radio-button/index.js.map +1 -1
  18. package/internal/environment.js +2 -2
  19. package/internal/environment.json +2 -2
  20. package/internal/manifest.json +1 -1
  21. package/manifest.json +2 -2
  22. package/package.json +19 -1
  23. package/radio-button/interfaces.d.ts +14 -0
  24. package/radio-button/interfaces.d.ts.map +1 -1
  25. package/radio-button/interfaces.js.map +1 -1
  26. package/table/body-cell/styles.css.js +47 -46
  27. package/table/body-cell/styles.scoped.css +376 -376
  28. package/table/body-cell/styles.selectors.js +47 -46
  29. package/table/body-cell/td-element.d.ts.map +1 -1
  30. package/table/body-cell/td-element.js +12 -12
  31. package/table/body-cell/td-element.js.map +1 -1
  32. package/table/header-cell/styles.css.js +39 -38
  33. package/table/header-cell/styles.scoped.css +80 -80
  34. package/table/header-cell/styles.selectors.js +39 -38
  35. package/table/header-cell/th-element.d.ts.map +1 -1
  36. package/table/header-cell/th-element.js +18 -8
  37. package/table/header-cell/th-element.js.map +1 -1
  38. package/table/internal.d.ts.map +1 -1
  39. package/table/internal.js +9 -3
  40. package/table/internal.js.map +1 -1
  41. package/table/sticky-columns/use-sticky-columns.d.ts.map +1 -1
  42. package/table/sticky-columns/use-sticky-columns.js +13 -3
  43. package/table/sticky-columns/use-sticky-columns.js.map +1 -1
  44. package/table-body/index.d.ts +4 -0
  45. package/table-body/index.d.ts.map +1 -0
  46. package/table-body/index.js +14 -0
  47. package/table-body/index.js.map +1 -0
  48. package/table-body/interfaces.d.ts +17 -0
  49. package/table-body/interfaces.d.ts.map +1 -0
  50. package/table-body/interfaces.js +2 -0
  51. package/table-body/interfaces.js.map +1 -0
  52. package/table-body/internal.d.ts +10 -0
  53. package/table-body/internal.d.ts.map +1 -0
  54. package/table-body/internal.js +13 -0
  55. package/table-body/internal.js.map +1 -0
  56. package/table-body/styles.css.js +7 -0
  57. package/table-body/styles.scoped.css +11 -0
  58. package/table-body/styles.selectors.js +8 -0
  59. package/table-body-cell/index.d.ts +4 -0
  60. package/table-body-cell/index.d.ts.map +1 -0
  61. package/table-body-cell/index.js +17 -0
  62. package/table-body-cell/index.js.map +1 -0
  63. package/table-body-cell/interfaces.d.ts +20 -0
  64. package/table-body-cell/interfaces.d.ts.map +1 -0
  65. package/table-body-cell/interfaces.js +2 -0
  66. package/table-body-cell/interfaces.js.map +1 -0
  67. package/table-body-cell/internal.d.ts +25 -0
  68. package/table-body-cell/internal.d.ts.map +1 -0
  69. package/table-body-cell/internal.js +36 -0
  70. package/table-body-cell/internal.js.map +1 -0
  71. package/table-body-cell/styles.css.js +7 -0
  72. package/table-body-cell/styles.scoped.css +38 -0
  73. package/table-body-cell/styles.selectors.js +8 -0
  74. package/table-head/index.d.ts +4 -0
  75. package/table-head/index.d.ts.map +1 -0
  76. package/table-head/index.js +14 -0
  77. package/table-head/index.js.map +1 -0
  78. package/table-head/interfaces.d.ts +7 -0
  79. package/table-head/interfaces.d.ts.map +1 -0
  80. package/table-head/interfaces.js +2 -0
  81. package/table-head/interfaces.js.map +1 -0
  82. package/table-head/internal.d.ts +8 -0
  83. package/table-head/internal.d.ts.map +1 -0
  84. package/table-head/internal.js +13 -0
  85. package/table-head/internal.js.map +1 -0
  86. package/table-head/styles.css.js +7 -0
  87. package/table-head/styles.scoped.css +11 -0
  88. package/table-head/styles.selectors.js +8 -0
  89. package/table-header-cell/index.d.ts +4 -0
  90. package/table-header-cell/index.d.ts.map +1 -0
  91. package/table-header-cell/index.js +16 -0
  92. package/table-header-cell/index.js.map +1 -0
  93. package/table-header-cell/interfaces.d.ts +21 -0
  94. package/table-header-cell/interfaces.d.ts.map +1 -0
  95. package/table-header-cell/interfaces.js +2 -0
  96. package/table-header-cell/interfaces.js.map +1 -0
  97. package/table-header-cell/internal.d.ts +17 -0
  98. package/table-header-cell/internal.d.ts.map +1 -0
  99. package/table-header-cell/internal.js +33 -0
  100. package/table-header-cell/internal.js.map +1 -0
  101. package/table-header-cell/styles.css.js +11 -0
  102. package/table-header-cell/styles.scoped.css +49 -0
  103. package/table-header-cell/styles.selectors.js +12 -0
  104. package/table-root/context.d.ts +9 -0
  105. package/table-root/context.d.ts.map +1 -0
  106. package/table-root/context.js +16 -0
  107. package/table-root/context.js.map +1 -0
  108. package/table-root/grid-template-columns.d.ts +2 -0
  109. package/table-root/grid-template-columns.d.ts.map +1 -0
  110. package/table-root/grid-template-columns.js +34 -0
  111. package/table-root/grid-template-columns.js.map +1 -0
  112. package/table-root/index.d.ts +7 -0
  113. package/table-root/index.d.ts.map +1 -0
  114. package/table-root/index.js +17 -0
  115. package/table-root/index.js.map +1 -0
  116. package/table-root/interfaces.d.ts +63 -0
  117. package/table-root/interfaces.d.ts.map +1 -0
  118. package/table-root/interfaces.js +2 -0
  119. package/table-root/interfaces.js.map +1 -0
  120. package/table-root/internal.d.ts +13 -0
  121. package/table-root/internal.d.ts.map +1 -0
  122. package/table-root/internal.js +58 -0
  123. package/table-root/internal.js.map +1 -0
  124. package/table-root/styles.css.js +10 -0
  125. package/table-root/styles.scoped.css +71 -0
  126. package/table-root/styles.selectors.js +11 -0
  127. package/table-row/index.d.ts +4 -0
  128. package/table-row/index.d.ts.map +1 -0
  129. package/table-row/index.js +16 -0
  130. package/table-row/index.js.map +1 -0
  131. package/table-row/interfaces.d.ts +38 -0
  132. package/table-row/interfaces.d.ts.map +1 -0
  133. package/table-row/interfaces.js +2 -0
  134. package/table-row/interfaces.js.map +1 -0
  135. package/table-row/internal.d.ts +15 -0
  136. package/table-row/internal.d.ts.map +1 -0
  137. package/table-row/internal.js +13 -0
  138. package/table-row/internal.js.map +1 -0
  139. package/table-row/styles.css.js +7 -0
  140. package/table-row/styles.scoped.css +42 -0
  141. package/table-row/styles.selectors.js +8 -0
  142. package/test-utils/dom/index.d.ts +168 -0
  143. package/test-utils/dom/index.js +116 -1
  144. package/test-utils/dom/index.js.map +1 -1
  145. package/test-utils/dom/table-body/index.d.ts +4 -0
  146. package/test-utils/dom/table-body/index.js +11 -0
  147. package/test-utils/dom/table-body/index.js.map +1 -0
  148. package/test-utils/dom/table-body-cell/index.d.ts +4 -0
  149. package/test-utils/dom/table-body-cell/index.js +11 -0
  150. package/test-utils/dom/table-body-cell/index.js.map +1 -0
  151. package/test-utils/dom/table-head/index.d.ts +4 -0
  152. package/test-utils/dom/table-head/index.js +11 -0
  153. package/test-utils/dom/table-head/index.js.map +1 -0
  154. package/test-utils/dom/table-header-cell/index.d.ts +4 -0
  155. package/test-utils/dom/table-header-cell/index.js +11 -0
  156. package/test-utils/dom/table-header-cell/index.js.map +1 -0
  157. package/test-utils/dom/table-root/index.d.ts +4 -0
  158. package/test-utils/dom/table-root/index.js +11 -0
  159. package/test-utils/dom/table-root/index.js.map +1 -0
  160. package/test-utils/dom/table-row/index.d.ts +4 -0
  161. package/test-utils/dom/table-row/index.js +11 -0
  162. package/test-utils/dom/table-row/index.js.map +1 -0
  163. package/test-utils/selectors/index.d.ts +108 -0
  164. package/test-utils/selectors/index.js +86 -1
  165. package/test-utils/selectors/index.js.map +1 -1
  166. package/test-utils/selectors/table-body/index.d.ts +4 -0
  167. package/test-utils/selectors/table-body/index.js +11 -0
  168. package/test-utils/selectors/table-body/index.js.map +1 -0
  169. package/test-utils/selectors/table-body-cell/index.d.ts +4 -0
  170. package/test-utils/selectors/table-body-cell/index.js +11 -0
  171. package/test-utils/selectors/table-body-cell/index.js.map +1 -0
  172. package/test-utils/selectors/table-head/index.d.ts +4 -0
  173. package/test-utils/selectors/table-head/index.js +11 -0
  174. package/test-utils/selectors/table-head/index.js.map +1 -0
  175. package/test-utils/selectors/table-header-cell/index.d.ts +4 -0
  176. package/test-utils/selectors/table-header-cell/index.js +11 -0
  177. package/test-utils/selectors/table-header-cell/index.js.map +1 -0
  178. package/test-utils/selectors/table-root/index.d.ts +4 -0
  179. package/test-utils/selectors/table-root/index.js +11 -0
  180. package/test-utils/selectors/table-root/index.js.map +1 -0
  181. package/test-utils/selectors/table-row/index.d.ts +4 -0
  182. package/test-utils/selectors/table-row/index.js +11 -0
  183. package/test-utils/selectors/table-row/index.js.map +1 -0
@@ -1 +1 @@
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 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/border 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 // `lastInsetInline*` / `boundaryInline*` flags 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 and border 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 mergeBoundaryState(\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 positionState.boundaryInlineStart === boundaryState.boundaryInlineStart &&\n positionState.boundaryInlineEnd === boundaryState.boundaryInlineEnd\n ) {\n return positionState;\n }\n return {\n ...positionState,\n lastInsetInlineStart: positionState.lastInsetInlineStart || boundaryState.lastInsetInlineStart,\n lastInsetInlineEnd: positionState.lastInsetInlineEnd || boundaryState.lastInsetInlineEnd,\n boundaryInlineStart: positionState.boundaryInlineStart || boundaryState.boundaryInlineStart,\n boundaryInlineEnd: positionState.boundaryInlineEnd || boundaryState.boundaryInlineEnd,\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 mergeBoundaryState(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 = mergeBoundaryState(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 boundaryInlineStart: lastLeftStickyColumnIndex === index,\n boundaryInlineEnd: 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// The first sticky cell gets extra padding when the table is scrolled (see padInlineStart), which is then included in\n// the measured sticky width. A lower minimum applies in that case, so that applying the padding cannot disable the\n// feature. The difference must not be smaller than the padding in any theme or density mode. Removing the padding can\n// disable the feature within a range of wrapper widths up to that difference (largest for tables with selection, where\n// the padding is set but does not change the cell width).\nconst MINIMUM_SCROLLABLE_SPACE_WHILE_STUCK = MINIMUM_SCROLLABLE_SPACE - 24;\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 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/border 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 // `lastInsetInline*` / `boundaryInline*` flags 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 and border 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 mergeBoundaryState(\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 positionState.boundaryInlineStart === boundaryState.boundaryInlineStart &&\n positionState.boundaryInlineEnd === boundaryState.boundaryInlineEnd\n ) {\n return positionState;\n }\n return {\n ...positionState,\n lastInsetInlineStart: positionState.lastInsetInlineStart || boundaryState.lastInsetInlineStart,\n lastInsetInlineEnd: positionState.lastInsetInlineEnd || boundaryState.lastInsetInlineEnd,\n boundaryInlineStart: positionState.boundaryInlineStart || boundaryState.boundaryInlineStart,\n boundaryInlineEnd: positionState.boundaryInlineEnd || boundaryState.boundaryInlineEnd,\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 mergeBoundaryState(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 = mergeBoundaryState(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 boundaryInlineStart: lastLeftStickyColumnIndex === index,\n boundaryInlineEnd: 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 tablePaddingInlineStart = parseFloat(getComputedStyle(props.table).paddingInlineStart) || 0;\n const tablePaddingInlineEnd = parseFloat(getComputedStyle(props.table).paddingInlineEnd) || 0;\n const tablePaddings = tablePaddingInlineStart + tablePaddingInlineEnd;\n const isFirstCellPadded = this.get().cellState.get(props.visibleColumns[0])?.padInlineStart ?? false;\n const minimumScrollableSpace = isFirstCellPadded ? MINIMUM_SCROLLABLE_SPACE_WHILE_STUCK : MINIMUM_SCROLLABLE_SPACE;\n const hasEnoughScrollableSpace = minimumScrollableSpace < wrapperWidth - totalStickySpace - tablePaddings;\n if (!hasEnoughScrollableSpace) {\n return false;\n }\n\n return true;\n };\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import { TableBodyProps } from './interfaces';
2
+ export { TableBodyProps };
3
+ declare function TableBody(props: TableBodyProps): JSX.Element;
4
+ export default TableBody;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/table-body/index.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,iBAAS,SAAS,CAAC,KAAK,EAAE,cAAc,eAGvC;AAGD,eAAe,SAAS,CAAC"}
@@ -0,0 +1,14 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ 'use client';
4
+ import React from 'react';
5
+ import useBaseComponent from '../internal/hooks/use-base-component';
6
+ import { applyDisplayName } from '../internal/utils/apply-display-name';
7
+ import InternalTableBody from './internal';
8
+ function TableBody(props) {
9
+ const baseComponentProps = useBaseComponent('TableBody');
10
+ return React.createElement(InternalTableBody, { ...props, ...baseComponentProps });
11
+ }
12
+ applyDisplayName(TableBody, 'TableBody');
13
+ export default TableBody;
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/table-body/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,YAAY,CAAC;AACb,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,iBAAiB,MAAM,YAAY,CAAC;AAI3C,SAAS,SAAS,CAAC,KAAqB;IACtC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACzD,OAAO,oBAAC,iBAAiB,OAAK,KAAK,KAAM,kBAAkB,GAAI,CAAC;AAClE,CAAC;AAED,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACzC,eAAe,SAAS,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n'use client';\nimport React from 'react';\n\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { TableBodyProps } from './interfaces';\nimport InternalTableBody from './internal';\n\nexport { TableBodyProps };\n\nfunction TableBody(props: TableBodyProps) {\n const baseComponentProps = useBaseComponent('TableBody');\n return <InternalTableBody {...props} {...baseComponentProps} />;\n}\n\napplyDisplayName(TableBody, 'TableBody');\nexport default TableBody;\n"]}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { BaseComponentProps } from '../types/base-component';
3
+ export interface TableBodyProps extends BaseComponentProps {
4
+ /**
5
+ * Applies inline styles to the body element. Use this to enable row positioning, for example for
6
+ * virtualization or draggable rows. It is not supported to use this for general styling purposes.
7
+ */
8
+ positionStyle?: TableBodyProps.PositionStyle;
9
+ /** The body rows. */
10
+ children?: React.ReactNode;
11
+ }
12
+ export declare namespace TableBodyProps {
13
+ interface PositionStyle {
14
+ position?: React.CSSProperties['position'];
15
+ height?: React.CSSProperties['height'];
16
+ }
17
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/table-body/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD;;;OAGG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC;IAC7C,qBAAqB;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,yBAAiB,cAAc,CAAC;IAC9B,UAAiB,aAAa;QAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;KACxC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/table-body/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport { BaseComponentProps } from '../types/base-component';\n\nexport interface TableBodyProps extends BaseComponentProps {\n /**\n * Applies inline styles to the body element. Use this to enable row positioning, for example for\n * virtualization or draggable rows. It is not supported to use this for general styling purposes.\n */\n positionStyle?: TableBodyProps.PositionStyle;\n /** The body rows. */\n children?: React.ReactNode;\n}\n\nexport namespace TableBodyProps {\n export interface PositionStyle {\n position?: React.CSSProperties['position'];\n height?: React.CSSProperties['height'];\n }\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import { InternalBaseComponentProps } from '../internal/hooks/use-base-component';
2
+ import { TableBodyProps } from './interfaces';
3
+ interface InternalTableBodyProps extends TableBodyProps, InternalBaseComponentProps {}
4
+ export default function InternalTableBody({
5
+ children,
6
+ positionStyle,
7
+ __internalRootRef,
8
+ ...rest
9
+ }: InternalTableBodyProps): JSX.Element;
10
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/table-body/internal.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,UAAU,sBAAuB,SAAQ,cAAc,EAAE,0BAA0B;CAAG;AAEtF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,GAAG,IAAI,EACR,EAAE,sBAAsB,eAcxB"}
@@ -0,0 +1,13 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import React from 'react';
4
+ import clsx from 'clsx';
5
+ import { getBaseProps } from '../internal/base-component';
6
+ import { useTableContext } from '../table-root/context';
7
+ import styles from './styles.css.js';
8
+ export default function InternalTableBody({ children, positionStyle, __internalRootRef, ...rest }) {
9
+ const { isGrid } = useTableContext();
10
+ const { className, ...restBaseProps } = getBaseProps(rest);
11
+ return (React.createElement("tbody", { ref: __internalRootRef, className: clsx(className, styles.body, isGrid && styles['body-grid']), ...restBaseProps, role: isGrid ? 'rowgroup' : undefined, style: positionStyle }, children));
12
+ }
13
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/table-body/internal.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAIrC,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,GAAG,IAAI,EACgB;IACvB,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3D,OAAO,CACL,+BACE,GAAG,EAAE,iBAAiB,EACtB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,KAClE,aAAa,EACjB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EACrC,KAAK,EAAE,aAAoC,IAE1C,QAAQ,CACH,CACT,CAAC;AACJ,CAAC","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 { getBaseProps } from '../internal/base-component';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useTableContext } from '../table-root/context';\nimport { TableBodyProps } from './interfaces';\n\nimport styles from './styles.css.js';\n\ninterface InternalTableBodyProps extends TableBodyProps, InternalBaseComponentProps {}\n\nexport default function InternalTableBody({\n children,\n positionStyle,\n __internalRootRef,\n ...rest\n}: InternalTableBodyProps) {\n const { isGrid } = useTableContext();\n const { className, ...restBaseProps } = getBaseProps(rest);\n return (\n <tbody\n ref={__internalRootRef}\n className={clsx(className, styles.body, isGrid && styles['body-grid'])}\n {...restBaseProps}\n role={isGrid ? 'rowgroup' : undefined}\n style={positionStyle as React.CSSProperties}\n >\n {children}\n </tbody>\n );\n}\n"]}
@@ -0,0 +1,7 @@
1
+
2
+ import './styles.scoped.css';
3
+ export default {
4
+ "body": "awsui_body_1i6l7_dceuf_5",
5
+ "body-grid": "awsui_body-grid_1i6l7_dceuf_9"
6
+ };
7
+
@@ -0,0 +1,11 @@
1
+ /*
2
+ Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ .awsui_body_1i6l7_dceuf_5:not(#\9) {
6
+ position: relative;
7
+ }
8
+
9
+ .awsui_body-grid_1i6l7_dceuf_9:not(#\9) {
10
+ display: block;
11
+ }
@@ -0,0 +1,8 @@
1
+
2
+ // es-module interop with Babel and Typescript
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ module.exports.default = {
5
+ "body": "awsui_body_1i6l7_dceuf_5",
6
+ "body-grid": "awsui_body-grid_1i6l7_dceuf_9"
7
+ };
8
+
@@ -0,0 +1,4 @@
1
+ import { TableBodyCellProps } from './interfaces';
2
+ export { TableBodyCellProps };
3
+ declare function TableBodyCell(props: TableBodyCellProps): JSX.Element;
4
+ export default TableBodyCell;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/table-body-cell/index.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,iBAAS,aAAa,CAAC,KAAK,EAAE,kBAAkB,eAM/C;AAGD,eAAe,aAAa,CAAC"}
@@ -0,0 +1,17 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ 'use client';
4
+ import React from 'react';
5
+ import useBaseComponent from '../internal/hooks/use-base-component';
6
+ import { applyDisplayName } from '../internal/utils/apply-display-name';
7
+ import { InternalTableBodyCell } from './internal';
8
+ function TableBodyCell(props) {
9
+ const { __internalRootRef } = useBaseComponent('TableBodyCell', {
10
+ props: { disablePaddings: props.disablePaddings, isRowHeader: props.isRowHeader, colSpan: props.colSpan },
11
+ });
12
+ const { isRowHeader, ...rest } = props;
13
+ return React.createElement(InternalTableBodyCell, { ...rest, tag: isRowHeader ? 'th' : 'td', ref: __internalRootRef });
14
+ }
15
+ applyDisplayName(TableBodyCell, 'TableBodyCell');
16
+ export default TableBodyCell;
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/table-body-cell/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,YAAY,CAAC;AACb,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAInD,SAAS,aAAa,CAAC,KAAyB;IAC9C,MAAM,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,CAAC,eAAe,EAAE;QAC9D,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;KAC1G,CAAC,CAAC;IACH,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACvC,OAAO,oBAAC,qBAAqB,OAAK,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,iBAAiB,GAAI,CAAC;AACrG,CAAC;AAED,gBAAgB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;AACjD,eAAe,aAAa,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n'use client';\nimport React from 'react';\n\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { TableBodyCellProps } from './interfaces';\nimport { InternalTableBodyCell } from './internal';\n\nexport { TableBodyCellProps };\n\nfunction TableBodyCell(props: TableBodyCellProps) {\n const { __internalRootRef } = useBaseComponent('TableBodyCell', {\n props: { disablePaddings: props.disablePaddings, isRowHeader: props.isRowHeader, colSpan: props.colSpan },\n });\n const { isRowHeader, ...rest } = props;\n return <InternalTableBodyCell {...rest} tag={isRowHeader ? 'th' : 'td'} ref={__internalRootRef} />;\n}\n\napplyDisplayName(TableBodyCell, 'TableBodyCell');\nexport default TableBodyCell;\n"]}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { BaseComponentProps } from '../types/base-component';
3
+ /** Renders a single data cell, or a row header when `isRowHeader` is set. */
4
+ export interface TableBodyCellProps extends BaseComponentProps {
5
+ /**
6
+ * Renders the cell as a row header (`<th scope="row">`) instead of a data cell (`<td>`). A row header
7
+ * keeps the data-cell styling; use it for the cell that names its row. Defaults to `false`.
8
+ */
9
+ isRowHeader?: boolean;
10
+ /**
11
+ * Removes the cell's built-in padding so you can compose your own spacing. Defaults to `false`.
12
+ */
13
+ disablePaddings?: boolean;
14
+ /**
15
+ * Makes the cell span the given number of columns.
16
+ */
17
+ colSpan?: number;
18
+ /** The cell content. */
19
+ children?: React.ReactNode;
20
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/table-body-cell/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,6EAA6E;AAC7E,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/table-body-cell/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport { BaseComponentProps } from '../types/base-component';\n\n/** Renders a single data cell, or a row header when `isRowHeader` is set. */\nexport interface TableBodyCellProps extends BaseComponentProps {\n /**\n * Renders the cell as a row header (`<th scope=\"row\">`) instead of a data cell (`<td>`). A row header\n * keeps the data-cell styling; use it for the cell that names its row. Defaults to `false`.\n */\n isRowHeader?: boolean;\n /**\n * Removes the cell's built-in padding so you can compose your own spacing. Defaults to `false`.\n */\n disablePaddings?: boolean;\n /**\n * Makes the cell span the given number of columns.\n */\n colSpan?: number;\n /** The cell content. */\n children?: React.ReactNode;\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { NativeAttributes } from '../types/native-attributes';
3
+ import { TableBodyCellProps } from './interfaces';
4
+ export type InternalTableBodyCellProps = Omit<TableBodyCellProps, 'isRowHeader'> & {
5
+ tag: 'td' | 'th';
6
+ style?: React.CSSProperties;
7
+ wrapLines?: boolean;
8
+ nativeAttributes?: NativeAttributes<React.ThHTMLAttributes<HTMLTableCellElement>>;
9
+ tabIndex?: number;
10
+ onClick?: React.MouseEventHandler<HTMLTableCellElement>;
11
+ onFocus?: React.FocusEventHandler<HTMLTableCellElement>;
12
+ onBlur?: React.FocusEventHandler<HTMLTableCellElement>;
13
+ beforeContent?: React.ReactNode;
14
+ };
15
+ export declare const InternalTableBodyCell: React.ForwardRefExoticComponent<Omit<TableBodyCellProps, "isRowHeader"> & {
16
+ tag: "td" | "th";
17
+ style?: React.CSSProperties;
18
+ wrapLines?: boolean;
19
+ nativeAttributes?: NativeAttributes<React.ThHTMLAttributes<HTMLTableCellElement>>;
20
+ tabIndex?: number;
21
+ onClick?: React.MouseEventHandler<HTMLTableCellElement>;
22
+ onFocus?: React.FocusEventHandler<HTMLTableCellElement>;
23
+ onBlur?: React.FocusEventHandler<HTMLTableCellElement>;
24
+ beforeContent?: React.ReactNode;
25
+ } & React.RefAttributes<HTMLTableCellElement>>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/table-body-cell/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAKlD,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,GAAG;IACjF,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;IACxD,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;IACxD,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;IACvD,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,qBAAqB;SAb3B,IAAI,GAAG,IAAI;YACR,KAAK,CAAC,aAAa;gBACf,OAAO;uBAGA,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;eACtE,MAAM;cACP,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,CAAC;cAC7C,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,CAAC;aAC9C,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,CAAC;oBACtC,KAAK,CAAC,SAAS;8CAqEhC,CAAC"}
@@ -0,0 +1,36 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import React from 'react';
4
+ import clsx from 'clsx';
5
+ import { getBaseProps } from '../internal/base-component';
6
+ import { useVisualRefresh } from '../internal/hooks/use-visual-mode';
7
+ import { useTableContext } from '../table-root/context';
8
+ import bodyCellStyles from '../table/body-cell/styles.css.js';
9
+ import styles from './styles.css.js';
10
+ export const InternalTableBodyCell = React.forwardRef((props, ref) => {
11
+ var _a;
12
+ const { tag, style, wrapLines, disablePaddings, colSpan, nativeAttributes, tabIndex, onClick, onFocus, onBlur, beforeContent, children, } = props;
13
+ const { className, ...restBaseProps } = getBaseProps(props);
14
+ const { isGrid } = useTableContext();
15
+ const isVisualRefresh = useVisualRefresh();
16
+ // Within a body cell a `<th>` is always a row header (column headers use InternalTableHeaderCell).
17
+ const isRowHeader = tag === 'th';
18
+ // In grid mode the native colspan is inert, so span the tracks with grid-column and mark the span with aria-colspan.
19
+ const gridColumnStyle = isGrid && colSpan ? { gridColumn: `span ${colSpan}` } : undefined;
20
+ const mergedNativeAttributes = {
21
+ ...nativeAttributes,
22
+ // A row header is a `<th scope="row">` in either layout mode.
23
+ ...(isRowHeader ? { scope: 'row' } : undefined),
24
+ // Grid mode drops the implicit cell role, so set it explicitly; a role from nativeAttributes wins.
25
+ ...(isGrid ? { role: (_a = nativeAttributes === null || nativeAttributes === void 0 ? void 0 : nativeAttributes.role) !== null && _a !== void 0 ? _a : (isRowHeader ? 'rowheader' : 'cell') } : undefined),
26
+ ...(isGrid && colSpan ? { 'aria-colspan': colSpan } : undefined),
27
+ };
28
+ const Element = tag;
29
+ return (React.createElement(Element, { ref: ref, ...restBaseProps, style: gridColumnStyle ? { ...style, ...gridColumnStyle } : style, colSpan: isGrid ? undefined : colSpan, className: clsx(bodyCellStyles['body-cell'], className, styles.cell, isGrid && styles['cell-grid'],
30
+ // Gated on runtime VR mode: this substrate is shared with the existing Table, which still supports
31
+ // runtime classic visual mode (non-VR). Atomic tables render VR-only, so useVisualRefresh() is true there.
32
+ isVisualRefresh && bodyCellStyles['is-visual-refresh']), onClick: onClick, onFocus: onFocus, onBlur: onBlur, ...mergedNativeAttributes, tabIndex: tabIndex },
33
+ beforeContent,
34
+ React.createElement("div", { className: clsx(bodyCellStyles['body-cell-content'], wrapLines && bodyCellStyles['body-cell-wrap'], !disablePaddings && bodyCellStyles['with-paddings']) }, children)));
35
+ });
36
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/table-body-cell/internal.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 { getBaseProps } from '../internal/base-component';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { useTableContext } from '../table-root/context';\nimport { NativeAttributes } from '../types/native-attributes';\nimport { TableBodyCellProps } from './interfaces';\n\nimport bodyCellStyles from '../table/body-cell/styles.css.js';\nimport styles from './styles.css.js';\n\nexport type InternalTableBodyCellProps = Omit<TableBodyCellProps, 'isRowHeader'> & {\n tag: 'td' | 'th';\n style?: React.CSSProperties;\n wrapLines?: boolean;\n // Non-base native attributes injected by internal callers (the existing Table's td-element): role and\n // sizing. Base props (className/id/data-*) flow directly and are read via getBaseProps.\n nativeAttributes?: NativeAttributes<React.ThHTMLAttributes<HTMLTableCellElement>>;\n tabIndex?: number;\n onClick?: React.MouseEventHandler<HTMLTableCellElement>;\n onFocus?: React.FocusEventHandler<HTMLTableCellElement>;\n onBlur?: React.FocusEventHandler<HTMLTableCellElement>;\n beforeContent?: React.ReactNode;\n};\n\nexport const InternalTableBodyCell = React.forwardRef<HTMLTableCellElement, InternalTableBodyCellProps>(\n (props, ref) => {\n const {\n tag,\n style,\n wrapLines,\n disablePaddings,\n colSpan,\n nativeAttributes,\n tabIndex,\n onClick,\n onFocus,\n onBlur,\n beforeContent,\n children,\n } = props;\n const { className, ...restBaseProps } = getBaseProps(props);\n const { isGrid } = useTableContext();\n const isVisualRefresh = useVisualRefresh();\n // Within a body cell a `<th>` is always a row header (column headers use InternalTableHeaderCell).\n const isRowHeader = tag === 'th';\n // In grid mode the native colspan is inert, so span the tracks with grid-column and mark the span with aria-colspan.\n const gridColumnStyle = isGrid && colSpan ? { gridColumn: `span ${colSpan}` } : undefined;\n const mergedNativeAttributes = {\n ...nativeAttributes,\n // A row header is a `<th scope=\"row\">` in either layout mode.\n ...(isRowHeader ? { scope: 'row' as const } : undefined),\n // Grid mode drops the implicit cell role, so set it explicitly; a role from nativeAttributes wins.\n ...(isGrid ? { role: nativeAttributes?.role ?? (isRowHeader ? 'rowheader' : 'cell') } : undefined),\n ...(isGrid && colSpan ? { 'aria-colspan': colSpan } : undefined),\n };\n const Element = tag;\n return (\n <Element\n ref={ref}\n {...restBaseProps}\n style={gridColumnStyle ? { ...style, ...gridColumnStyle } : style}\n colSpan={isGrid ? undefined : colSpan}\n className={clsx(\n bodyCellStyles['body-cell'],\n className,\n styles.cell,\n isGrid && styles['cell-grid'],\n // Gated on runtime VR mode: this substrate is shared with the existing Table, which still supports\n // runtime classic visual mode (non-VR). Atomic tables render VR-only, so useVisualRefresh() is true there.\n isVisualRefresh && bodyCellStyles['is-visual-refresh']\n )}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n {...mergedNativeAttributes}\n tabIndex={tabIndex}\n >\n {beforeContent}\n <div\n className={clsx(\n bodyCellStyles['body-cell-content'],\n wrapLines && bodyCellStyles['body-cell-wrap'],\n !disablePaddings && bodyCellStyles['with-paddings']\n )}\n >\n {children}\n </div>\n </Element>\n );\n }\n);\n"]}
@@ -0,0 +1,7 @@
1
+
2
+ import './styles.scoped.css';
3
+ export default {
4
+ "cell": "awsui_cell_2seex_mp7p2_5",
5
+ "cell-grid": "awsui_cell-grid_2seex_mp7p2_33"
6
+ };
7
+
@@ -0,0 +1,38 @@
1
+ /*
2
+ Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ .awsui_cell_2seex_mp7p2_5:not(#\9) {
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ [data-awsui-selected] > .awsui_cell_2seex_mp7p2_5:not(#\9) {
10
+ background-color: var(--color-background-item-selected-dotkup, #f0fbff);
11
+ }
12
+
13
+ [data-awsui-shaded] > .awsui_cell_2seex_mp7p2_5:not(#\9) {
14
+ background-color: var(--color-background-cell-shaded-twxsbz, #f6f6f9);
15
+ }
16
+
17
+ tr:not(#\9):has(+ [data-awsui-shaded]) > .awsui_cell_2seex_mp7p2_5 {
18
+ border-block-end-color: var(--color-border-cell-shaded-f2b4hq, #dedee3);
19
+ }
20
+
21
+ [data-awsui-shaded]:not(#\9):not(:last-child) > .awsui_cell_2seex_mp7p2_5 {
22
+ border-block-end-color: var(--color-border-cell-shaded-f2b4hq, #dedee3);
23
+ }
24
+
25
+ [data-awsui-selected]:not(#\9):has(+ [data-awsui-selected]) > .awsui_cell_2seex_mp7p2_5 {
26
+ border-block-end-color: transparent;
27
+ }
28
+
29
+ tr:not(#\9):not([data-awsui-selected]):has(+ [data-awsui-selected]) > .awsui_cell_2seex_mp7p2_5 {
30
+ border-block-end-color: transparent;
31
+ }
32
+
33
+ .awsui_cell-grid_2seex_mp7p2_33:not(#\9) {
34
+ min-inline-size: 0;
35
+ align-self: stretch;
36
+ display: grid;
37
+ align-items: center;
38
+ }
@@ -0,0 +1,8 @@
1
+
2
+ // es-module interop with Babel and Typescript
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ module.exports.default = {
5
+ "cell": "awsui_cell_2seex_mp7p2_5",
6
+ "cell-grid": "awsui_cell-grid_2seex_mp7p2_33"
7
+ };
8
+
@@ -0,0 +1,4 @@
1
+ import { TableHeadProps } from './interfaces';
2
+ export { TableHeadProps };
3
+ declare function TableHead(props: TableHeadProps): JSX.Element;
4
+ export default TableHead;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/table-head/index.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,iBAAS,SAAS,CAAC,KAAK,EAAE,cAAc,eAGvC;AAGD,eAAe,SAAS,CAAC"}
@@ -0,0 +1,14 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ 'use client';
4
+ import React from 'react';
5
+ import useBaseComponent from '../internal/hooks/use-base-component';
6
+ import { applyDisplayName } from '../internal/utils/apply-display-name';
7
+ import InternalTableHead from './internal';
8
+ function TableHead(props) {
9
+ const baseComponentProps = useBaseComponent('TableHead');
10
+ return React.createElement(InternalTableHead, { ...props, ...baseComponentProps });
11
+ }
12
+ applyDisplayName(TableHead, 'TableHead');
13
+ export default TableHead;
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/table-head/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,YAAY,CAAC;AACb,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,iBAAiB,MAAM,YAAY,CAAC;AAI3C,SAAS,SAAS,CAAC,KAAqB;IACtC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACzD,OAAO,oBAAC,iBAAiB,OAAK,KAAK,KAAM,kBAAkB,GAAI,CAAC;AAClE,CAAC;AAED,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACzC,eAAe,SAAS,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n'use client';\nimport React from 'react';\n\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { TableHeadProps } from './interfaces';\nimport InternalTableHead from './internal';\n\nexport { TableHeadProps };\n\nfunction TableHead(props: TableHeadProps) {\n const baseComponentProps = useBaseComponent('TableHead');\n return <InternalTableHead {...props} {...baseComponentProps} />;\n}\n\napplyDisplayName(TableHead, 'TableHead');\nexport default TableHead;\n"]}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { BaseComponentProps } from '../types/base-component';
3
+ /** Renders the table head. Its child is a single `TableRow` of `TableHeaderCell`s. */
4
+ export interface TableHeadProps extends BaseComponentProps {
5
+ /** The header row: a `TableRow` whose cells are `TableHeaderCell` components. */
6
+ children?: React.ReactNode;
7
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/table-head/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,sFAAsF;AACtF,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,iFAAiF;IACjF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/table-head/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport { BaseComponentProps } from '../types/base-component';\n\n/** Renders the table head. Its child is a single `TableRow` of `TableHeaderCell`s. */\nexport interface TableHeadProps extends BaseComponentProps {\n /** The header row: a `TableRow` whose cells are `TableHeaderCell` components. */\n children?: React.ReactNode;\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { InternalBaseComponentProps } from '../internal/hooks/use-base-component';
2
+ import { TableHeadProps } from './interfaces';
3
+ export interface InternalTableHeadProps extends TableHeadProps, InternalBaseComponentProps {}
4
+ export default function InternalTableHead({
5
+ children,
6
+ __internalRootRef,
7
+ ...rest
8
+ }: InternalTableHeadProps): JSX.Element;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/table-head/internal.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,WAAW,sBAAuB,SAAQ,cAAc,EAAE,0BAA0B;CAAG;AAE7F,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAAE,EAAE,sBAAsB,eAazG"}
@@ -0,0 +1,13 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import React from 'react';
4
+ import clsx from 'clsx';
5
+ import { getBaseProps } from '../internal/base-component';
6
+ import { useTableContext } from '../table-root/context';
7
+ import styles from './styles.css.js';
8
+ export default function InternalTableHead({ children, __internalRootRef, ...rest }) {
9
+ const { isGrid } = useTableContext();
10
+ const { className, ...restBaseProps } = getBaseProps(rest);
11
+ return (React.createElement("thead", { ref: __internalRootRef, className: clsx(className, styles.head, isGrid && styles['head-grid']), ...restBaseProps, role: isGrid ? 'rowgroup' : undefined }, children));
12
+ }
13
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/table-head/internal.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAIrC,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAA0B;IACxG,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3D,OAAO,CACL,+BACE,GAAG,EAAE,iBAAiB,EACtB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,KAClE,aAAa,EACjB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,IAEpC,QAAQ,CACH,CACT,CAAC;AACJ,CAAC","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 { getBaseProps } from '../internal/base-component';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useTableContext } from '../table-root/context';\nimport { TableHeadProps } from './interfaces';\n\nimport styles from './styles.css.js';\n\nexport interface InternalTableHeadProps extends TableHeadProps, InternalBaseComponentProps {}\n\nexport default function InternalTableHead({ children, __internalRootRef, ...rest }: InternalTableHeadProps) {\n const { isGrid } = useTableContext();\n const { className, ...restBaseProps } = getBaseProps(rest);\n return (\n <thead\n ref={__internalRootRef}\n className={clsx(className, styles.head, isGrid && styles['head-grid'])}\n {...restBaseProps}\n role={isGrid ? 'rowgroup' : undefined}\n >\n {children}\n </thead>\n );\n}\n"]}
@@ -0,0 +1,7 @@
1
+
2
+ import './styles.scoped.css';
3
+ export default {
4
+ "head": "awsui_head_1otu2_ixe2a_5",
5
+ "head-grid": "awsui_head-grid_1otu2_ixe2a_9"
6
+ };
7
+
@@ -0,0 +1,11 @@
1
+ /*
2
+ Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ .awsui_head_1otu2_ixe2a_5:not(#\9) {
6
+ position: relative;
7
+ }
8
+
9
+ .awsui_head-grid_1otu2_ixe2a_9:not(#\9) {
10
+ display: block;
11
+ }
@@ -0,0 +1,8 @@
1
+
2
+ // es-module interop with Babel and Typescript
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ module.exports.default = {
5
+ "head": "awsui_head_1otu2_ixe2a_5",
6
+ "head-grid": "awsui_head-grid_1otu2_ixe2a_9"
7
+ };
8
+
@@ -0,0 +1,4 @@
1
+ import { TableHeaderCellProps } from './interfaces';
2
+ export { TableHeaderCellProps };
3
+ declare function TableHeaderCell(props: TableHeaderCellProps): JSX.Element;
4
+ export default TableHeaderCell;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/table-header-cell/index.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC,iBAAS,eAAe,CAAC,KAAK,EAAE,oBAAoB,eAKnD;AAGD,eAAe,eAAe,CAAC"}