@cloudscape-design/components-themeable 3.0.1312 → 3.0.1313

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 (109) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/button-dropdown/category-elements/styles.scss +5 -0
  3. package/lib/internal/scss/button-dropdown/styles.scss +14 -0
  4. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +1 -1
  5. package/lib/internal/scss/internal/styles/utils/theming.scss +6 -0
  6. package/lib/internal/scss/segmented-control/styles.scss +2 -2
  7. package/lib/internal/scss/steps/styles.scss +39 -0
  8. package/lib/internal/scss/table/header-cell/styles.scss +13 -2
  9. package/lib/internal/scss/table/resizer/styles.scss +9 -1
  10. package/lib/internal/scss/toggle/styles.scss +1 -1
  11. package/lib/internal/scss/toggle-button/styles.scss +7 -1
  12. package/lib/internal/scss/token/mixins.scss +4 -4
  13. package/lib/internal/scss/token/styles.scss +7 -0
  14. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.d.ts.map +1 -1
  15. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js +4 -2
  16. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
  17. package/lib/internal/template/button-dropdown/category-elements/mobile-expandable-category-element.d.ts.map +1 -1
  18. package/lib/internal/template/button-dropdown/category-elements/mobile-expandable-category-element.js +4 -2
  19. package/lib/internal/template/button-dropdown/category-elements/mobile-expandable-category-element.js.map +1 -1
  20. package/lib/internal/template/button-dropdown/category-elements/styles.css.js +19 -18
  21. package/lib/internal/template/button-dropdown/category-elements/styles.scoped.css +32 -28
  22. package/lib/internal/template/button-dropdown/category-elements/styles.selectors.js +19 -18
  23. package/lib/internal/template/button-dropdown/index.d.ts.map +1 -1
  24. package/lib/internal/template/button-dropdown/index.js +4 -3
  25. package/lib/internal/template/button-dropdown/index.js.map +1 -1
  26. package/lib/internal/template/button-dropdown/interfaces.d.ts +22 -0
  27. package/lib/internal/template/button-dropdown/interfaces.d.ts.map +1 -1
  28. package/lib/internal/template/button-dropdown/interfaces.js.map +1 -1
  29. package/lib/internal/template/button-dropdown/internal.d.ts.map +1 -1
  30. package/lib/internal/template/button-dropdown/internal.js +14 -6
  31. package/lib/internal/template/button-dropdown/internal.js.map +1 -1
  32. package/lib/internal/template/button-dropdown/styles.css.js +23 -22
  33. package/lib/internal/template/button-dropdown/styles.scoped.css +36 -30
  34. package/lib/internal/template/button-dropdown/styles.selectors.js +23 -22
  35. package/lib/internal/template/button-group/interfaces.d.ts +12 -1
  36. package/lib/internal/template/button-group/interfaces.d.ts.map +1 -1
  37. package/lib/internal/template/button-group/interfaces.js.map +1 -1
  38. package/lib/internal/template/button-group/menu-dropdown-item.d.ts.map +1 -1
  39. package/lib/internal/template/button-group/menu-dropdown-item.js +2 -1
  40. package/lib/internal/template/button-group/menu-dropdown-item.js.map +1 -1
  41. package/lib/internal/template/internal/base-component/styles.scoped.css +59 -1
  42. package/lib/internal/template/internal/components/checkbox-icon/index.d.ts.map +1 -1
  43. package/lib/internal/template/internal/components/checkbox-icon/index.js +11 -2
  44. package/lib/internal/template/internal/components/checkbox-icon/index.js.map +1 -1
  45. package/lib/internal/template/internal/environment.js +2 -2
  46. package/lib/internal/template/internal/environment.json +2 -2
  47. package/lib/internal/template/internal/generated/styles/tokens.d.ts +7 -0
  48. package/lib/internal/template/internal/generated/styles/tokens.js +7 -0
  49. package/lib/internal/template/internal/generated/theming/index.cjs +203 -0
  50. package/lib/internal/template/internal/generated/theming/index.cjs.d.ts +63 -0
  51. package/lib/internal/template/internal/generated/theming/index.d.ts +63 -0
  52. package/lib/internal/template/internal/generated/theming/index.js +203 -0
  53. package/lib/internal/template/internal/utils/throttle.d.ts.map +1 -1
  54. package/lib/internal/template/internal/utils/throttle.js +3 -1
  55. package/lib/internal/template/internal/utils/throttle.js.map +1 -1
  56. package/lib/internal/template/progress-bar/index.d.ts.map +1 -1
  57. package/lib/internal/template/progress-bar/index.js +1 -0
  58. package/lib/internal/template/progress-bar/index.js.map +1 -1
  59. package/lib/internal/template/segmented-control/styles.css.js +16 -16
  60. package/lib/internal/template/segmented-control/styles.scoped.css +34 -34
  61. package/lib/internal/template/segmented-control/styles.selectors.js +16 -16
  62. package/lib/internal/template/steps/internal.d.ts.map +1 -1
  63. package/lib/internal/template/steps/internal.js +20 -6
  64. package/lib/internal/template/steps/internal.js.map +1 -1
  65. package/lib/internal/template/steps/styles.css.js +12 -9
  66. package/lib/internal/template/steps/styles.scoped.css +43 -15
  67. package/lib/internal/template/steps/styles.selectors.js +12 -9
  68. package/lib/internal/template/table/header-cell/group-header-cell.d.ts.map +1 -1
  69. package/lib/internal/template/table/header-cell/group-header-cell.js +1 -1
  70. package/lib/internal/template/table/header-cell/group-header-cell.js.map +1 -1
  71. package/lib/internal/template/table/header-cell/index.d.ts.map +1 -1
  72. package/lib/internal/template/table/header-cell/index.js +2 -1
  73. package/lib/internal/template/table/header-cell/index.js.map +1 -1
  74. package/lib/internal/template/table/header-cell/styles.css.js +33 -33
  75. package/lib/internal/template/table/header-cell/styles.scoped.css +81 -74
  76. package/lib/internal/template/table/header-cell/styles.selectors.js +33 -33
  77. package/lib/internal/template/table/resizer/index.d.ts +4 -2
  78. package/lib/internal/template/table/resizer/index.d.ts.map +1 -1
  79. package/lib/internal/template/table/resizer/index.js +4 -4
  80. package/lib/internal/template/table/resizer/index.js.map +1 -1
  81. package/lib/internal/template/table/resizer/styles.css.js +17 -16
  82. package/lib/internal/template/table/resizer/styles.scoped.css +32 -24
  83. package/lib/internal/template/table/resizer/styles.selectors.js +17 -16
  84. package/lib/internal/template/table/selection/selection-cell.d.ts +2 -1
  85. package/lib/internal/template/table/selection/selection-cell.d.ts.map +1 -1
  86. package/lib/internal/template/table/selection/selection-cell.js +2 -2
  87. package/lib/internal/template/table/selection/selection-cell.js.map +1 -1
  88. package/lib/internal/template/table/thead.d.ts.map +1 -1
  89. package/lib/internal/template/table/thead.js +1 -1
  90. package/lib/internal/template/table/thead.js.map +1 -1
  91. package/lib/internal/template/toggle/styles.css.js +10 -10
  92. package/lib/internal/template/toggle/styles.scoped.css +18 -18
  93. package/lib/internal/template/toggle/styles.selectors.js +10 -10
  94. package/lib/internal/template/toggle-button/internal.d.ts.map +1 -1
  95. package/lib/internal/template/toggle-button/internal.js +3 -1
  96. package/lib/internal/template/toggle-button/internal.js.map +1 -1
  97. package/lib/internal/template/toggle-button/styles.css.js +4 -3
  98. package/lib/internal/template/toggle-button/styles.scoped.css +8 -3
  99. package/lib/internal/template/toggle-button/styles.selectors.js +4 -3
  100. package/lib/internal/template/token/dismiss-button.d.ts.map +1 -1
  101. package/lib/internal/template/token/dismiss-button.js +3 -1
  102. package/lib/internal/template/token/dismiss-button.js.map +1 -1
  103. package/lib/internal/template/token/internal.d.ts.map +1 -1
  104. package/lib/internal/template/token/internal.js +11 -3
  105. package/lib/internal/template/token/internal.js.map +1 -1
  106. package/lib/internal/template/token/styles.css.js +14 -14
  107. package/lib/internal/template/token/styles.scoped.css +33 -30
  108. package/lib/internal/template/token/styles.selectors.js +14 -14
  109. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"group-header-cell.d.ts","sourceRoot":"","sources":["../../../../src/table/header-cell/group-header-cell.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAKrD,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,sBAAsB,CAAC,EAAE,WAAW,CAAC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACN,MAAM,EACN,WAAW,EACX,WAAW,EACX,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,MAAM,EACN,SAAS,GACV,EAAE,yBAAyB,eAsE3B"}
1
+ {"version":3,"file":"group-header-cell.d.ts","sourceRoot":"","sources":["../../../../src/table/header-cell/group-header-cell.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAKrD,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,sBAAsB,CAAC,EAAE,WAAW,CAAC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACN,MAAM,EACN,WAAW,EACX,WAAW,EACX,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,MAAM,EACN,SAAS,GACV,EAAE,yBAAyB,eAuE3B"}
@@ -27,6 +27,6 @@ export function TableGroupHeaderCell({ group, colspan, rowspan, colIndex, groupI
27
27
  [styles['header-cell-fake-focus']]: focusedComponent === `group-header-${groupId}`,
28
28
  }), "aria-label": (_a = group.ariaLabel) === null || _a === void 0 ? void 0 : _a.call(group, { sorted: false, descending: false, disabled: true }), tabIndex: clickableHeaderTabIndex },
29
29
  React.createElement("div", { className: clsx(styles['header-cell-text'], wrapLines && styles['header-cell-text-wrap']), id: headerId }, group.header)),
30
- resizableColumns ? (React.createElement(Resizer, { tabIndex: tabIndex, focusId: `resize-group-${groupId}`, showFocusRing: focusedComponent === `resize-group-${groupId}`, onWidthUpdate: newWidth => updateGroupWidth(groupId, newWidth), onWidthUpdateCommit: onResizeFinish, ariaLabelledby: headerId, minWidth: groupMinWidth, roleDescription: resizerRoleDescription, tooltipText: resizerTooltipText, isBorderless: variant === 'full-page' || variant === 'embedded' || variant === 'borderless', isLast: isLast, dividerPosition: columnGroupId ? 'full' : 'bottom' })) : (React.createElement(Divider, { position: columnGroupId ? 'full' : 'bottom' }))));
30
+ resizableColumns ? (React.createElement(Resizer, { tabIndex: tabIndex, focusId: `resize-group-${groupId}`, showFocusRing: focusedComponent === `resize-group-${groupId}`, onWidthUpdate: newWidth => updateGroupWidth(groupId, newWidth), onWidthUpdateCommit: onResizeFinish, ariaLabelledby: headerId, minWidth: groupMinWidth, roleDescription: resizerRoleDescription, tooltipText: resizerTooltipText, isBorderless: variant === 'full-page' || variant === 'embedded' || variant === 'borderless', isLast: isLast, isGrouped: true, dividerPosition: columnGroupId ? 'full' : 'bottom' })) : (React.createElement(Divider, { position: columnGroupId ? 'full' : 'bottom', isGrouped: true }))));
31
31
  }
32
32
  //# sourceMappingURL=group-header-cell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"group-header-cell.js","sourceRoot":"","sources":["../../../../src/table/header-cell/group-header-cell.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, { useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useSingleTabStopNavigation } from '@cloudscape-design/component-toolkit/internal';\nimport { useUniqueId } from '@cloudscape-design/component-toolkit/internal';\n\nimport { TableProps } from '../interfaces';\nimport { Divider, Resizer } from '../resizer';\nimport { DEFAULT_COLUMN_WIDTH, useColumnWidths } from '../use-column-widths';\nimport { BaseHeaderCellProps } from './common-props';\nimport { TableThElement } from './th-element';\n\nimport styles from './styles.css.js';\n\nexport interface TableGroupHeaderCellProps extends BaseHeaderCellProps {\n group: TableProps.GroupDefinition;\n colspan: number;\n rowspan: number;\n groupId: string;\n updateGroupWidth: (groupId: PropertyKey, newWidth: number) => void;\n childColumnIds: PropertyKey[];\n firstChildColumnId?: PropertyKey;\n lastChildColumnId?: PropertyKey;\n columnGroupId?: string;\n stickyColumnId?: PropertyKey;\n stickyBoundaryColumnId?: PropertyKey;\n isLast?: boolean;\n}\n\nexport function TableGroupHeaderCell({\n group,\n colspan,\n rowspan,\n colIndex,\n groupId,\n resizableColumns,\n resizableStyle,\n onResizeFinish,\n updateGroupWidth,\n childColumnIds,\n focusedComponent,\n tabIndex,\n sticky,\n hidden,\n stripedRows,\n stickyState,\n cellRef,\n tableRole,\n resizerRoleDescription,\n resizerTooltipText,\n variant,\n tableVariant,\n columnGroupId,\n stickyColumnId,\n stickyBoundaryColumnId,\n isLast,\n wrapLines,\n}: TableGroupHeaderCellProps) {\n const headerId = useUniqueId('table-group-header-');\n const { columnWidths } = useColumnWidths();\n\n // Effective min = sum of non-rightmost children's current widths (fixed) + rightmost child's minWidth\n const lastChild = childColumnIds[childColumnIds.length - 1];\n const groupMinWidth = childColumnIds.reduce<number>((sum, id) => {\n if (id === lastChild) {\n return sum + DEFAULT_COLUMN_WIDTH;\n }\n return sum + (columnWidths.get(id) || DEFAULT_COLUMN_WIDTH);\n }, 0);\n const clickableHeaderRef = useRef<HTMLDivElement>(null);\n const { tabIndex: clickableHeaderTabIndex } = useSingleTabStopNavigation(clickableHeaderRef, { tabIndex });\n\n return (\n <TableThElement\n resizableStyle={resizableStyle}\n cellRef={cellRef}\n focusedComponent={focusedComponent}\n sticky={sticky}\n resizable={resizableColumns}\n hidden={hidden}\n stripedRows={stripedRows}\n colIndex={colIndex}\n columnId={stickyColumnId ?? groupId}\n stickyBoundaryColumnId={stickyBoundaryColumnId}\n stickyState={stickyState}\n tableRole={tableRole}\n variant={variant}\n tableVariant={tableVariant}\n colSpan={colspan}\n rowSpan={rowspan}\n scope=\"colgroup\"\n isLast={isLast}\n columnGroupId={columnGroupId}\n >\n <div\n ref={clickableHeaderRef}\n data-focus-id={`group-header-${groupId}`}\n className={clsx(styles['header-cell-content'], {\n [styles['header-cell-fake-focus']]: focusedComponent === `group-header-${groupId}`,\n })}\n aria-label={group.ariaLabel?.({ sorted: false, descending: false, disabled: true })}\n tabIndex={clickableHeaderTabIndex}\n >\n <div className={clsx(styles['header-cell-text'], wrapLines && styles['header-cell-text-wrap'])} id={headerId}>\n {group.header}\n </div>\n </div>\n {resizableColumns ? (\n <Resizer\n tabIndex={tabIndex}\n focusId={`resize-group-${groupId}`}\n showFocusRing={focusedComponent === `resize-group-${groupId}`}\n onWidthUpdate={newWidth => updateGroupWidth(groupId, newWidth)}\n onWidthUpdateCommit={onResizeFinish}\n ariaLabelledby={headerId}\n minWidth={groupMinWidth}\n roleDescription={resizerRoleDescription}\n tooltipText={resizerTooltipText}\n isBorderless={variant === 'full-page' || variant === 'embedded' || variant === 'borderless'}\n isLast={isLast}\n dividerPosition={columnGroupId ? 'full' : 'bottom'}\n />\n ) : (\n <Divider position={columnGroupId ? 'full' : 'bottom'} />\n )}\n </TableThElement>\n );\n}\n"]}
1
+ {"version":3,"file":"group-header-cell.js","sourceRoot":"","sources":["../../../../src/table/header-cell/group-header-cell.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, { useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useSingleTabStopNavigation } from '@cloudscape-design/component-toolkit/internal';\nimport { useUniqueId } from '@cloudscape-design/component-toolkit/internal';\n\nimport { TableProps } from '../interfaces';\nimport { Divider, Resizer } from '../resizer';\nimport { DEFAULT_COLUMN_WIDTH, useColumnWidths } from '../use-column-widths';\nimport { BaseHeaderCellProps } from './common-props';\nimport { TableThElement } from './th-element';\n\nimport styles from './styles.css.js';\n\nexport interface TableGroupHeaderCellProps extends BaseHeaderCellProps {\n group: TableProps.GroupDefinition;\n colspan: number;\n rowspan: number;\n groupId: string;\n updateGroupWidth: (groupId: PropertyKey, newWidth: number) => void;\n childColumnIds: PropertyKey[];\n firstChildColumnId?: PropertyKey;\n lastChildColumnId?: PropertyKey;\n columnGroupId?: string;\n stickyColumnId?: PropertyKey;\n stickyBoundaryColumnId?: PropertyKey;\n isLast?: boolean;\n}\n\nexport function TableGroupHeaderCell({\n group,\n colspan,\n rowspan,\n colIndex,\n groupId,\n resizableColumns,\n resizableStyle,\n onResizeFinish,\n updateGroupWidth,\n childColumnIds,\n focusedComponent,\n tabIndex,\n sticky,\n hidden,\n stripedRows,\n stickyState,\n cellRef,\n tableRole,\n resizerRoleDescription,\n resizerTooltipText,\n variant,\n tableVariant,\n columnGroupId,\n stickyColumnId,\n stickyBoundaryColumnId,\n isLast,\n wrapLines,\n}: TableGroupHeaderCellProps) {\n const headerId = useUniqueId('table-group-header-');\n const { columnWidths } = useColumnWidths();\n\n // Effective min = sum of non-rightmost children's current widths (fixed) + rightmost child's minWidth\n const lastChild = childColumnIds[childColumnIds.length - 1];\n const groupMinWidth = childColumnIds.reduce<number>((sum, id) => {\n if (id === lastChild) {\n return sum + DEFAULT_COLUMN_WIDTH;\n }\n return sum + (columnWidths.get(id) || DEFAULT_COLUMN_WIDTH);\n }, 0);\n const clickableHeaderRef = useRef<HTMLDivElement>(null);\n const { tabIndex: clickableHeaderTabIndex } = useSingleTabStopNavigation(clickableHeaderRef, { tabIndex });\n\n return (\n <TableThElement\n resizableStyle={resizableStyle}\n cellRef={cellRef}\n focusedComponent={focusedComponent}\n sticky={sticky}\n resizable={resizableColumns}\n hidden={hidden}\n stripedRows={stripedRows}\n colIndex={colIndex}\n columnId={stickyColumnId ?? groupId}\n stickyBoundaryColumnId={stickyBoundaryColumnId}\n stickyState={stickyState}\n tableRole={tableRole}\n variant={variant}\n tableVariant={tableVariant}\n colSpan={colspan}\n rowSpan={rowspan}\n scope=\"colgroup\"\n isLast={isLast}\n columnGroupId={columnGroupId}\n >\n <div\n ref={clickableHeaderRef}\n data-focus-id={`group-header-${groupId}`}\n className={clsx(styles['header-cell-content'], {\n [styles['header-cell-fake-focus']]: focusedComponent === `group-header-${groupId}`,\n })}\n aria-label={group.ariaLabel?.({ sorted: false, descending: false, disabled: true })}\n tabIndex={clickableHeaderTabIndex}\n >\n <div className={clsx(styles['header-cell-text'], wrapLines && styles['header-cell-text-wrap'])} id={headerId}>\n {group.header}\n </div>\n </div>\n {resizableColumns ? (\n <Resizer\n tabIndex={tabIndex}\n focusId={`resize-group-${groupId}`}\n showFocusRing={focusedComponent === `resize-group-${groupId}`}\n onWidthUpdate={newWidth => updateGroupWidth(groupId, newWidth)}\n onWidthUpdateCommit={onResizeFinish}\n ariaLabelledby={headerId}\n minWidth={groupMinWidth}\n roleDescription={resizerRoleDescription}\n tooltipText={resizerTooltipText}\n isBorderless={variant === 'full-page' || variant === 'embedded' || variant === 'borderless'}\n isLast={isLast}\n isGrouped={true}\n dividerPosition={columnGroupId ? 'full' : 'bottom'}\n />\n ) : (\n <Divider position={columnGroupId ? 'full' : 'bottom'} isGrouped={true} />\n )}\n </TableThElement>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/table/header-cell/index.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAOrD,MAAM,WAAW,oBAAoB,CAAC,QAAQ,CAAE,SAAQ,mBAAmB;IACzE,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACpD,YAAY,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,EACxC,QAAQ,EACR,MAAM,EACN,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,MAAM,EACN,WAAW,EACX,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,EACX,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,MAAM,EACN,YAAY,GACb,EAAE,oBAAoB,CAAC,QAAQ,CAAC,eAgJhC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/table/header-cell/index.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAOrD,MAAM,WAAW,oBAAoB,CAAC,QAAQ,CAAE,SAAQ,mBAAmB;IACzE,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACpD,YAAY,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,EACxC,QAAQ,EACR,MAAM,EACN,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,MAAM,EACN,WAAW,EACX,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,EACX,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,MAAM,EACN,YAAY,GACb,EAAE,oBAAoB,CAAC,QAAQ,CAAC,eAsJhC"}
@@ -19,6 +19,7 @@ export function TableHeaderCell({ tabIndex, column, activeSortingColumn, sorting
19
19
  const sortable = !!column.sortingComparator || !!column.sortingField;
20
20
  const sorted = !!activeSortingColumn && isSorted(column, activeSortingColumn);
21
21
  const sortingStatus = getSortingStatus(sortable, sorted, !!sortingDescending, !!sortingDisabled);
22
+ const isGrouped = !!columnGroupId || (rowSpan !== null && rowSpan !== void 0 ? rowSpan : 1) > 1;
22
23
  const handleClick = () => onClick({
23
24
  sortingColumn: column,
24
25
  isDescending: sorted ? !sortingDescending : false,
@@ -83,6 +84,6 @@ export function TableHeaderCell({ tabIndex, column, activeSortingColumn, sorting
83
84
  resizableColumns ? (React.createElement(Resizer, { tabIndex: tabIndex, focusId: `resize-control-${String(columnId)}`, showFocusRing: focusedComponent === `resize-control-${String(columnId)}`, onWidthUpdate: newWidth => updateColumn(columnId, newWidth), onWidthUpdateCommit: onResizeFinish, ariaLabelledby: headerId, minWidth: typeof column.minWidth === 'string' ? parseInt(column.minWidth) : column.minWidth, roleDescription: i18n('ariaLabels.resizerRoleDescription', resizerRoleDescription),
84
85
  // TODO: Replace with this when strings are available
85
86
  // tooltipText={i18n('ariaLabels.resizerTooltipText', resizerTooltipText)}
86
- tooltipText: resizerTooltipText, isBorderless: variant === 'full-page' || variant === 'embedded' || variant === 'borderless', isLast: isLast, dividerPosition: isLastChildOfGroup ? 'top' : undefined })) : (React.createElement(Divider, { className: styles['resize-divider'], position: isLastChildOfGroup ? 'top' : undefined }))));
87
+ tooltipText: resizerTooltipText, isBorderless: variant === 'full-page' || variant === 'embedded' || variant === 'borderless', isLast: isLast, isGrouped: isGrouped, dividerPosition: isLastChildOfGroup ? 'top' : undefined })) : (React.createElement(Divider, { className: styles['resize-divider'], position: isLastChildOfGroup ? 'top' : undefined, isGrouped: isGrouped }))));
87
88
  }
88
89
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/table/header-cell/index.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, { useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs, useResizeObserver, useUniqueId } from '@cloudscape-design/component-toolkit/internal';\nimport { useSingleTabStopNavigation } from '@cloudscape-design/component-toolkit/internal';\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { useInternalI18n } from '../../i18n/context';\nimport InternalIcon from '../../icon/internal';\nimport { KeyCode } from '../../internal/keycode';\nimport { GeneratedAnalyticsMetadataTableSort } from '../analytics-metadata/interfaces';\nimport { TableProps } from '../interfaces';\nimport { Divider, Resizer } from '../resizer';\nimport { BaseHeaderCellProps } from './common-props';\nimport { TableThElement } from './th-element';\nimport { getSortingIconName, getSortingStatus, isSorted } from './utils';\n\nimport analyticsSelectors from '../analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nexport interface TableHeaderCellProps<ItemType> extends BaseHeaderCellProps {\n column: TableProps.ColumnDefinition<ItemType>;\n activeSortingColumn?: TableProps.SortingColumn<ItemType>;\n sortingDescending?: boolean;\n sortingDisabled?: boolean;\n stuck?: boolean;\n onClick(detail: TableProps.SortingState<any>): void;\n updateColumn: (columnId: PropertyKey, newWidth: number) => void;\n isEditable?: boolean;\n columnId: PropertyKey;\n isExpandable?: boolean;\n hasDynamicContent?: boolean;\n colSpan?: number;\n rowSpan?: number;\n columnGroupId?: string;\n isLastChildOfGroup?: boolean;\n isLast?: boolean;\n}\n\nexport function TableHeaderCell<ItemType>({\n tabIndex,\n column,\n activeSortingColumn,\n sortingDescending,\n sortingDisabled,\n wrapLines,\n focusedComponent,\n stuck,\n sticky,\n hidden,\n stripedRows,\n onClick,\n colIndex,\n updateColumn,\n resizableColumns,\n resizableStyle,\n onResizeFinish,\n isEditable,\n columnId,\n stickyState,\n cellRef,\n tableRole,\n resizerRoleDescription,\n resizerTooltipText,\n isExpandable,\n hasDynamicContent,\n variant,\n colSpan,\n rowSpan,\n columnGroupId,\n isLastChildOfGroup,\n isLast,\n tableVariant,\n}: TableHeaderCellProps<ItemType>) {\n const i18n = useInternalI18n('table');\n const sortable = !!column.sortingComparator || !!column.sortingField;\n const sorted = !!activeSortingColumn && isSorted(column, activeSortingColumn);\n const sortingStatus = getSortingStatus(sortable, sorted, !!sortingDescending, !!sortingDisabled);\n const handleClick = () =>\n onClick({\n sortingColumn: column,\n isDescending: sorted ? !sortingDescending : false,\n });\n\n // Elements with role=\"button\" do not have the default behavior of <button>, where pressing\n // Enter or Space will trigger a click event. Therefore we need to add this ourselves.\n // The native <button> element cannot be used due to a misaligned implementation in Firefox:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=843003\n const handleKeyPress = ({ nativeEvent: e }: React.KeyboardEvent) => {\n if (e.keyCode === KeyCode.enter || e.keyCode === KeyCode.space) {\n e.preventDefault();\n handleClick();\n }\n };\n\n const headerId = useUniqueId('table-header-');\n\n const clickableHeaderRef = useRef<HTMLDivElement>(null);\n const { tabIndex: clickableHeaderTabIndex } = useSingleTabStopNavigation(clickableHeaderRef, { tabIndex });\n\n const cellRefObject = useRef<HTMLElement>(null);\n const cellRefCombined = useMergeRefs(cellRef, cellRefObject);\n\n // Keep sticky and non-sticky headers in sync for dynamic cell\n // content changes. This is only needed when:\n // - Column has dynamic content\n // - This is the non-sticky version of a sticky header (hidden === true)\n // - Columns are not resizable\n useResizeObserver(hasDynamicContent ? cellRefObject : () => null, entry => {\n updateColumn(columnId, entry.borderBoxWidth);\n });\n\n return (\n <TableThElement\n resizableStyle={resizableStyle}\n cellRef={cellRefCombined}\n sortingStatus={sortingStatus}\n sortingDisabled={sortingDisabled}\n focusedComponent={focusedComponent}\n stuck={stuck}\n sticky={sticky}\n resizable={resizableColumns}\n hidden={hidden}\n stripedRows={stripedRows}\n colIndex={colIndex}\n columnId={columnId}\n stickyState={stickyState}\n tableRole={tableRole}\n variant={variant}\n tableVariant={tableVariant}\n colSpan={colSpan}\n rowSpan={rowSpan}\n columnGroupId={columnGroupId}\n isLast={isLast}\n {...(sortingDisabled\n ? {}\n : getAnalyticsMetadataAttribute({\n action: 'sort',\n detail: {\n position: `${colIndex + 1}`,\n columnId: column.id ? `${column.id}` : '',\n label: `.${analyticsSelectors['header-cell-text']}`,\n sortingDescending: `${!sortingDescending}`,\n },\n } as GeneratedAnalyticsMetadataTableSort))}\n >\n <div\n ref={clickableHeaderRef}\n data-focus-id={`sorting-control-${String(columnId)}`}\n className={clsx(styles['header-cell-content'], {\n [styles['header-cell-fake-focus']]: focusedComponent === `sorting-control-${String(columnId)}`,\n [styles['header-cell-content-expandable']]: isExpandable,\n })}\n aria-label={\n column.ariaLabel\n ? column.ariaLabel({\n sorted: sorted,\n descending: sorted && !!sortingDescending,\n disabled: !!sortingDisabled,\n })\n : undefined\n }\n {...(sortingStatus && !sortingDisabled\n ? {\n onKeyPress: handleKeyPress,\n tabIndex: clickableHeaderTabIndex,\n role: 'button',\n onClick: handleClick,\n }\n : {})}\n >\n <div\n className={clsx(\n styles['header-cell-text'],\n analyticsSelectors['header-cell-text'],\n wrapLines && styles['header-cell-text-wrap']\n )}\n id={headerId}\n >\n {column.header}\n {isEditable ? (\n <span className={styles['edit-icon']}>\n <InternalIcon\n name=\"edit\"\n ariaLabel={i18n('columnDefinitions.editConfig.editIconAriaLabel', column.editConfig?.editIconAriaLabel)}\n />\n </span>\n ) : null}\n </div>\n {sortingStatus && (\n <span className={styles['sorting-icon']}>\n <InternalIcon name={getSortingIconName(sortingStatus)} />\n </span>\n )}\n </div>\n {resizableColumns ? (\n <Resizer\n tabIndex={tabIndex}\n focusId={`resize-control-${String(columnId)}`}\n showFocusRing={focusedComponent === `resize-control-${String(columnId)}`}\n onWidthUpdate={newWidth => updateColumn(columnId, newWidth)}\n onWidthUpdateCommit={onResizeFinish}\n ariaLabelledby={headerId}\n minWidth={typeof column.minWidth === 'string' ? parseInt(column.minWidth) : column.minWidth}\n roleDescription={i18n('ariaLabels.resizerRoleDescription', resizerRoleDescription)}\n // TODO: Replace with this when strings are available\n // tooltipText={i18n('ariaLabels.resizerTooltipText', resizerTooltipText)}\n tooltipText={resizerTooltipText}\n isBorderless={variant === 'full-page' || variant === 'embedded' || variant === 'borderless'}\n isLast={isLast}\n dividerPosition={isLastChildOfGroup ? 'top' : undefined}\n />\n ) : (\n <Divider className={styles['resize-divider']} position={isLastChildOfGroup ? 'top' : undefined} />\n )}\n </TableThElement>\n );\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/table/header-cell/index.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, { useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs, useResizeObserver, useUniqueId } from '@cloudscape-design/component-toolkit/internal';\nimport { useSingleTabStopNavigation } from '@cloudscape-design/component-toolkit/internal';\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { useInternalI18n } from '../../i18n/context';\nimport InternalIcon from '../../icon/internal';\nimport { KeyCode } from '../../internal/keycode';\nimport { GeneratedAnalyticsMetadataTableSort } from '../analytics-metadata/interfaces';\nimport { TableProps } from '../interfaces';\nimport { Divider, Resizer } from '../resizer';\nimport { BaseHeaderCellProps } from './common-props';\nimport { TableThElement } from './th-element';\nimport { getSortingIconName, getSortingStatus, isSorted } from './utils';\n\nimport analyticsSelectors from '../analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nexport interface TableHeaderCellProps<ItemType> extends BaseHeaderCellProps {\n column: TableProps.ColumnDefinition<ItemType>;\n activeSortingColumn?: TableProps.SortingColumn<ItemType>;\n sortingDescending?: boolean;\n sortingDisabled?: boolean;\n stuck?: boolean;\n onClick(detail: TableProps.SortingState<any>): void;\n updateColumn: (columnId: PropertyKey, newWidth: number) => void;\n isEditable?: boolean;\n columnId: PropertyKey;\n isExpandable?: boolean;\n hasDynamicContent?: boolean;\n colSpan?: number;\n rowSpan?: number;\n columnGroupId?: string;\n isLastChildOfGroup?: boolean;\n isLast?: boolean;\n}\n\nexport function TableHeaderCell<ItemType>({\n tabIndex,\n column,\n activeSortingColumn,\n sortingDescending,\n sortingDisabled,\n wrapLines,\n focusedComponent,\n stuck,\n sticky,\n hidden,\n stripedRows,\n onClick,\n colIndex,\n updateColumn,\n resizableColumns,\n resizableStyle,\n onResizeFinish,\n isEditable,\n columnId,\n stickyState,\n cellRef,\n tableRole,\n resizerRoleDescription,\n resizerTooltipText,\n isExpandable,\n hasDynamicContent,\n variant,\n colSpan,\n rowSpan,\n columnGroupId,\n isLastChildOfGroup,\n isLast,\n tableVariant,\n}: TableHeaderCellProps<ItemType>) {\n const i18n = useInternalI18n('table');\n const sortable = !!column.sortingComparator || !!column.sortingField;\n const sorted = !!activeSortingColumn && isSorted(column, activeSortingColumn);\n const sortingStatus = getSortingStatus(sortable, sorted, !!sortingDescending, !!sortingDisabled);\n const isGrouped = !!columnGroupId || (rowSpan ?? 1) > 1;\n const handleClick = () =>\n onClick({\n sortingColumn: column,\n isDescending: sorted ? !sortingDescending : false,\n });\n\n // Elements with role=\"button\" do not have the default behavior of <button>, where pressing\n // Enter or Space will trigger a click event. Therefore we need to add this ourselves.\n // The native <button> element cannot be used due to a misaligned implementation in Firefox:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=843003\n const handleKeyPress = ({ nativeEvent: e }: React.KeyboardEvent) => {\n if (e.keyCode === KeyCode.enter || e.keyCode === KeyCode.space) {\n e.preventDefault();\n handleClick();\n }\n };\n\n const headerId = useUniqueId('table-header-');\n\n const clickableHeaderRef = useRef<HTMLDivElement>(null);\n const { tabIndex: clickableHeaderTabIndex } = useSingleTabStopNavigation(clickableHeaderRef, { tabIndex });\n\n const cellRefObject = useRef<HTMLElement>(null);\n const cellRefCombined = useMergeRefs(cellRef, cellRefObject);\n\n // Keep sticky and non-sticky headers in sync for dynamic cell\n // content changes. This is only needed when:\n // - Column has dynamic content\n // - This is the non-sticky version of a sticky header (hidden === true)\n // - Columns are not resizable\n useResizeObserver(hasDynamicContent ? cellRefObject : () => null, entry => {\n updateColumn(columnId, entry.borderBoxWidth);\n });\n\n return (\n <TableThElement\n resizableStyle={resizableStyle}\n cellRef={cellRefCombined}\n sortingStatus={sortingStatus}\n sortingDisabled={sortingDisabled}\n focusedComponent={focusedComponent}\n stuck={stuck}\n sticky={sticky}\n resizable={resizableColumns}\n hidden={hidden}\n stripedRows={stripedRows}\n colIndex={colIndex}\n columnId={columnId}\n stickyState={stickyState}\n tableRole={tableRole}\n variant={variant}\n tableVariant={tableVariant}\n colSpan={colSpan}\n rowSpan={rowSpan}\n columnGroupId={columnGroupId}\n isLast={isLast}\n {...(sortingDisabled\n ? {}\n : getAnalyticsMetadataAttribute({\n action: 'sort',\n detail: {\n position: `${colIndex + 1}`,\n columnId: column.id ? `${column.id}` : '',\n label: `.${analyticsSelectors['header-cell-text']}`,\n sortingDescending: `${!sortingDescending}`,\n },\n } as GeneratedAnalyticsMetadataTableSort))}\n >\n <div\n ref={clickableHeaderRef}\n data-focus-id={`sorting-control-${String(columnId)}`}\n className={clsx(styles['header-cell-content'], {\n [styles['header-cell-fake-focus']]: focusedComponent === `sorting-control-${String(columnId)}`,\n [styles['header-cell-content-expandable']]: isExpandable,\n })}\n aria-label={\n column.ariaLabel\n ? column.ariaLabel({\n sorted: sorted,\n descending: sorted && !!sortingDescending,\n disabled: !!sortingDisabled,\n })\n : undefined\n }\n {...(sortingStatus && !sortingDisabled\n ? {\n onKeyPress: handleKeyPress,\n tabIndex: clickableHeaderTabIndex,\n role: 'button',\n onClick: handleClick,\n }\n : {})}\n >\n <div\n className={clsx(\n styles['header-cell-text'],\n analyticsSelectors['header-cell-text'],\n wrapLines && styles['header-cell-text-wrap']\n )}\n id={headerId}\n >\n {column.header}\n {isEditable ? (\n <span className={styles['edit-icon']}>\n <InternalIcon\n name=\"edit\"\n ariaLabel={i18n('columnDefinitions.editConfig.editIconAriaLabel', column.editConfig?.editIconAriaLabel)}\n />\n </span>\n ) : null}\n </div>\n {sortingStatus && (\n <span className={styles['sorting-icon']}>\n <InternalIcon name={getSortingIconName(sortingStatus)} />\n </span>\n )}\n </div>\n {resizableColumns ? (\n <Resizer\n tabIndex={tabIndex}\n focusId={`resize-control-${String(columnId)}`}\n showFocusRing={focusedComponent === `resize-control-${String(columnId)}`}\n onWidthUpdate={newWidth => updateColumn(columnId, newWidth)}\n onWidthUpdateCommit={onResizeFinish}\n ariaLabelledby={headerId}\n minWidth={typeof column.minWidth === 'string' ? parseInt(column.minWidth) : column.minWidth}\n roleDescription={i18n('ariaLabels.resizerRoleDescription', resizerRoleDescription)}\n // TODO: Replace with this when strings are available\n // tooltipText={i18n('ariaLabels.resizerTooltipText', resizerTooltipText)}\n tooltipText={resizerTooltipText}\n isBorderless={variant === 'full-page' || variant === 'embedded' || variant === 'borderless'}\n isLast={isLast}\n isGrouped={isGrouped}\n dividerPosition={isLastChildOfGroup ? 'top' : undefined}\n />\n ) : (\n <Divider\n className={styles['resize-divider']}\n position={isLastChildOfGroup ? 'top' : undefined}\n isGrouped={isGrouped}\n />\n )}\n </TableThElement>\n );\n}\n"]}
@@ -1,38 +1,38 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "header-cell": "awsui_header-cell_1spae_1gdol_149",
5
- "header-cell-fake-focus": "awsui_header-cell-fake-focus_1spae_1gdol_183",
6
- "header-cell-group": "awsui_header-cell-group_1spae_1gdol_204",
7
- "header-cell-grouped": "awsui_header-cell-grouped_1spae_1gdol_204",
8
- "header-cell-spans-rows": "awsui_header-cell-spans-rows_1spae_1gdol_204",
9
- "header-cell-sticky": "awsui_header-cell-sticky_1spae_1gdol_208",
10
- "header-cell-stuck": "awsui_header-cell-stuck_1spae_1gdol_211",
11
- "header-cell-variant-full-page": "awsui_header-cell-variant-full-page_1spae_1gdol_211",
12
- "header-cell-hidden": "awsui_header-cell-hidden_1spae_1gdol_217",
13
- "header-cell-variant-embedded": "awsui_header-cell-variant-embedded_1spae_1gdol_220",
14
- "is-visual-refresh": "awsui_is-visual-refresh_1spae_1gdol_220",
15
- "sticky-cell": "awsui_sticky-cell_1spae_1gdol_220",
16
- "header-cell-variant-borderless": "awsui_header-cell-variant-borderless_1spae_1gdol_220",
17
- "header-cell-sortable": "awsui_header-cell-sortable_1spae_1gdol_223",
18
- "table-variant-full-page": "awsui_table-variant-full-page_1spae_1gdol_244",
19
- "sticky-cell-pad-left": "awsui_sticky-cell-pad-left_1spae_1gdol_247",
20
- "has-selection": "awsui_has-selection_1spae_1gdol_247",
21
- "sticky-cell-last-inline-start": "awsui_sticky-cell-last-inline-start_1spae_1gdol_250",
22
- "resize-divider": "awsui_resize-divider_1spae_1gdol_255",
23
- "sticky-cell-last-inline-end": "awsui_sticky-cell-last-inline-end_1spae_1gdol_262",
24
- "sorting-icon": "awsui_sorting-icon_1spae_1gdol_272",
25
- "edit-icon": "awsui_edit-icon_1spae_1gdol_280",
26
- "header-cell-content": "awsui_header-cell-content_1spae_1gdol_286",
27
- "header-cell-content-expandable": "awsui_header-cell-content-expandable_1spae_1gdol_292",
28
- "header-cell-disabled": "awsui_header-cell-disabled_1spae_1gdol_347",
29
- "header-cell-sorted": "awsui_header-cell-sorted_1spae_1gdol_347",
30
- "header-cell-text": "awsui_header-cell-text_1spae_1gdol_378",
31
- "header-cell-text-wrap": "awsui_header-cell-text-wrap_1spae_1gdol_382",
32
- "header-cell-ascending": "awsui_header-cell-ascending_1spae_1gdol_388",
33
- "header-cell-descending": "awsui_header-cell-descending_1spae_1gdol_389",
34
- "has-striped-rows": "awsui_has-striped-rows_1spae_1gdol_503",
35
- "sticky-cell-pad-inline-start": "awsui_sticky-cell-pad-inline-start_1spae_1gdol_503",
36
- "header-cell-resizable": "awsui_header-cell-resizable_1spae_1gdol_515"
4
+ "header-cell": "awsui_header-cell_1spae_eevyv_149",
5
+ "header-cell-fake-focus": "awsui_header-cell-fake-focus_1spae_eevyv_183",
6
+ "header-cell-group": "awsui_header-cell-group_1spae_eevyv_204",
7
+ "header-cell-grouped": "awsui_header-cell-grouped_1spae_eevyv_204",
8
+ "header-cell-spans-rows": "awsui_header-cell-spans-rows_1spae_eevyv_204",
9
+ "resize-divider": "awsui_resize-divider_1spae_eevyv_209",
10
+ "header-cell-sticky": "awsui_header-cell-sticky_1spae_eevyv_212",
11
+ "header-cell-stuck": "awsui_header-cell-stuck_1spae_eevyv_218",
12
+ "header-cell-variant-full-page": "awsui_header-cell-variant-full-page_1spae_eevyv_218",
13
+ "header-cell-hidden": "awsui_header-cell-hidden_1spae_eevyv_224",
14
+ "header-cell-variant-embedded": "awsui_header-cell-variant-embedded_1spae_eevyv_227",
15
+ "is-visual-refresh": "awsui_is-visual-refresh_1spae_eevyv_227",
16
+ "sticky-cell": "awsui_sticky-cell_1spae_eevyv_227",
17
+ "header-cell-variant-borderless": "awsui_header-cell-variant-borderless_1spae_eevyv_227",
18
+ "header-cell-sortable": "awsui_header-cell-sortable_1spae_eevyv_230",
19
+ "table-variant-full-page": "awsui_table-variant-full-page_1spae_eevyv_251",
20
+ "sticky-cell-pad-left": "awsui_sticky-cell-pad-left_1spae_eevyv_254",
21
+ "has-selection": "awsui_has-selection_1spae_eevyv_254",
22
+ "sticky-cell-last-inline-start": "awsui_sticky-cell-last-inline-start_1spae_eevyv_257",
23
+ "sticky-cell-last-inline-end": "awsui_sticky-cell-last-inline-end_1spae_eevyv_269",
24
+ "sorting-icon": "awsui_sorting-icon_1spae_eevyv_279",
25
+ "edit-icon": "awsui_edit-icon_1spae_eevyv_287",
26
+ "header-cell-content": "awsui_header-cell-content_1spae_eevyv_293",
27
+ "header-cell-content-expandable": "awsui_header-cell-content-expandable_1spae_eevyv_299",
28
+ "header-cell-disabled": "awsui_header-cell-disabled_1spae_eevyv_354",
29
+ "header-cell-sorted": "awsui_header-cell-sorted_1spae_eevyv_354",
30
+ "header-cell-text": "awsui_header-cell-text_1spae_eevyv_385",
31
+ "header-cell-text-wrap": "awsui_header-cell-text-wrap_1spae_eevyv_389",
32
+ "header-cell-ascending": "awsui_header-cell-ascending_1spae_eevyv_395",
33
+ "header-cell-descending": "awsui_header-cell-descending_1spae_eevyv_396",
34
+ "has-striped-rows": "awsui_has-striped-rows_1spae_eevyv_510",
35
+ "sticky-cell-pad-inline-start": "awsui_sticky-cell-pad-inline-start_1spae_eevyv_510",
36
+ "header-cell-resizable": "awsui_header-cell-resizable_1spae_eevyv_522"
37
37
  };
38
38