@cloudscape-design/components 3.0.294 → 3.0.296

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 (155) hide show
  1. package/alert/internal.d.ts.map +1 -1
  2. package/alert/internal.js +1 -1
  3. package/alert/internal.js.map +1 -1
  4. package/area-chart/elements/use-highlight-details.d.ts.map +1 -1
  5. package/area-chart/elements/use-highlight-details.js +3 -1
  6. package/area-chart/elements/use-highlight-details.js.map +1 -1
  7. package/area-chart/interfaces.d.ts +1 -0
  8. package/area-chart/interfaces.d.ts.map +1 -1
  9. package/area-chart/interfaces.js.map +1 -1
  10. package/breadcrumb-group/index.d.ts +1 -1
  11. package/breadcrumb-group/index.d.ts.map +1 -1
  12. package/breadcrumb-group/index.js +2 -2
  13. package/breadcrumb-group/index.js.map +1 -1
  14. package/breadcrumb-group/internal.d.ts +1 -2
  15. package/breadcrumb-group/internal.d.ts.map +1 -1
  16. package/breadcrumb-group/internal.js +8 -1
  17. package/breadcrumb-group/internal.js.map +1 -1
  18. package/breadcrumb-group/item/item.d.ts.map +1 -1
  19. package/breadcrumb-group/item/item.js +9 -6
  20. package/breadcrumb-group/item/item.js.map +1 -1
  21. package/button/internal.d.ts.map +1 -1
  22. package/button/internal.js +6 -1
  23. package/button/internal.js.map +1 -1
  24. package/cards/index.d.ts.map +1 -1
  25. package/cards/index.js +6 -1
  26. package/cards/index.js.map +1 -1
  27. package/code-editor/index.d.ts.map +1 -1
  28. package/code-editor/index.js +18 -16
  29. package/code-editor/index.js.map +1 -1
  30. package/code-editor/interfaces.d.ts +1 -1
  31. package/code-editor/interfaces.d.ts.map +1 -1
  32. package/code-editor/interfaces.js.map +1 -1
  33. package/code-editor/pane.d.ts +2 -2
  34. package/code-editor/pane.d.ts.map +1 -1
  35. package/code-editor/pane.js +8 -5
  36. package/code-editor/pane.js.map +1 -1
  37. package/code-editor/preferences-modal.d.ts +7 -7
  38. package/code-editor/preferences-modal.d.ts.map +1 -1
  39. package/code-editor/preferences-modal.js.map +1 -1
  40. package/code-editor/status-bar.d.ts +2 -2
  41. package/code-editor/status-bar.d.ts.map +1 -1
  42. package/code-editor/status-bar.js +5 -3
  43. package/code-editor/status-bar.js.map +1 -1
  44. package/container/index.d.ts.map +1 -1
  45. package/container/index.js +3 -1
  46. package/container/index.js.map +1 -1
  47. package/container/internal.d.ts.map +1 -1
  48. package/container/internal.js +4 -2
  49. package/container/internal.js.map +1 -1
  50. package/form/index.d.ts.map +1 -1
  51. package/form/index.js +5 -1
  52. package/form/index.js.map +1 -1
  53. package/form/internal.d.ts.map +1 -1
  54. package/form/internal.js +11 -2
  55. package/form/internal.js.map +1 -1
  56. package/form-field/internal.d.ts.map +1 -1
  57. package/form-field/internal.js +28 -2
  58. package/form-field/internal.js.map +1 -1
  59. package/header/internal.d.ts.map +1 -1
  60. package/header/internal.js +1 -1
  61. package/header/internal.js.map +1 -1
  62. package/help-panel/index.d.ts.map +1 -1
  63. package/help-panel/index.js +3 -1
  64. package/help-panel/index.js.map +1 -1
  65. package/internal/analytics/hooks/use-funnel.d.ts.map +1 -1
  66. package/internal/analytics/hooks/use-funnel.js +17 -11
  67. package/internal/analytics/hooks/use-funnel.js.map +1 -1
  68. package/internal/components/cartesian-chart/bottom-labels.d.ts.map +1 -1
  69. package/internal/components/cartesian-chart/bottom-labels.js +3 -1
  70. package/internal/components/cartesian-chart/bottom-labels.js.map +1 -1
  71. package/internal/components/cartesian-chart/interfaces.d.ts +4 -0
  72. package/internal/components/cartesian-chart/interfaces.d.ts.map +1 -1
  73. package/internal/components/cartesian-chart/interfaces.js.map +1 -1
  74. package/internal/components/cartesian-chart/left-labels.d.ts.map +1 -1
  75. package/internal/components/cartesian-chart/left-labels.js +3 -1
  76. package/internal/components/cartesian-chart/left-labels.js.map +1 -1
  77. package/internal/components/chart-filter/index.d.ts.map +1 -1
  78. package/internal/components/chart-filter/index.js +4 -2
  79. package/internal/components/chart-filter/index.js.map +1 -1
  80. package/internal/components/chart-legend/index.d.ts.map +1 -1
  81. package/internal/components/chart-legend/index.js +3 -1
  82. package/internal/components/chart-legend/index.js.map +1 -1
  83. package/internal/components/chart-plot/index.d.ts.map +1 -1
  84. package/internal/components/chart-plot/index.js +3 -1
  85. package/internal/components/chart-plot/index.js.map +1 -1
  86. package/internal/components/chart-status-container/index.d.ts.map +1 -1
  87. package/internal/components/chart-status-container/index.js +7 -4
  88. package/internal/components/chart-status-container/index.js.map +1 -1
  89. package/internal/components/token-list/token-limit-toggle.d.ts.map +1 -1
  90. package/internal/components/token-list/token-limit-toggle.js +4 -2
  91. package/internal/components/token-list/token-limit-toggle.js.map +1 -1
  92. package/internal/environment.js +1 -1
  93. package/internal/i18n/testing.d.ts +8 -0
  94. package/internal/i18n/testing.d.ts.map +1 -0
  95. package/internal/i18n/testing.js +8 -0
  96. package/internal/i18n/testing.js.map +1 -0
  97. package/internal/manifest.json +1 -1
  98. package/link/internal.d.ts.map +1 -1
  99. package/link/internal.js +39 -2
  100. package/link/internal.js.map +1 -1
  101. package/multiselect/internal.d.ts.map +1 -1
  102. package/multiselect/internal.js +3 -1
  103. package/multiselect/internal.js.map +1 -1
  104. package/package.json +1 -1
  105. package/pie-chart/interfaces.d.ts +4 -0
  106. package/pie-chart/interfaces.d.ts.map +1 -1
  107. package/pie-chart/interfaces.js.map +1 -1
  108. package/pie-chart/pie-chart.d.ts.map +1 -1
  109. package/pie-chart/pie-chart.js +3 -1
  110. package/pie-chart/pie-chart.js.map +1 -1
  111. package/pie-chart/segments.d.ts.map +1 -1
  112. package/pie-chart/segments.js +3 -1
  113. package/pie-chart/segments.js.map +1 -1
  114. package/pie-chart/utils.d.ts +2 -1
  115. package/pie-chart/utils.d.ts.map +1 -1
  116. package/pie-chart/utils.js +3 -3
  117. package/pie-chart/utils.js.map +1 -1
  118. package/popover/body.d.ts.map +1 -1
  119. package/popover/body.js +3 -1
  120. package/popover/body.js.map +1 -1
  121. package/popover/interfaces.d.ts +1 -0
  122. package/popover/interfaces.d.ts.map +1 -1
  123. package/popover/interfaces.js.map +1 -1
  124. package/table/styles.css.js +35 -33
  125. package/table/styles.scoped.css +49 -43
  126. package/table/styles.selectors.js +35 -33
  127. package/table/use-sticky-scrollbar.d.ts +1 -0
  128. package/table/use-sticky-scrollbar.d.ts.map +1 -1
  129. package/table/use-sticky-scrollbar.js +10 -36
  130. package/table/use-sticky-scrollbar.js.map +1 -1
  131. package/tabs/interfaces.d.ts +2 -2
  132. package/tabs/interfaces.d.ts.map +1 -1
  133. package/tabs/interfaces.js.map +1 -1
  134. package/tabs/tab-header-bar.d.ts.map +1 -1
  135. package/tabs/tab-header-bar.js +4 -2
  136. package/tabs/tab-header-bar.js.map +1 -1
  137. package/tiles/interfaces.d.ts +4 -0
  138. package/tiles/interfaces.d.ts.map +1 -1
  139. package/tiles/interfaces.js.map +1 -1
  140. package/tiles/internal.d.ts.map +1 -1
  141. package/tiles/internal.js +2 -2
  142. package/tiles/internal.js.map +1 -1
  143. package/top-navigation/interfaces.d.ts +2 -0
  144. package/top-navigation/interfaces.d.ts.map +1 -1
  145. package/top-navigation/interfaces.js.map +1 -1
  146. package/top-navigation/parts/overflow-menu/menu-item.d.ts +1 -0
  147. package/top-navigation/parts/overflow-menu/menu-item.d.ts.map +1 -1
  148. package/top-navigation/parts/overflow-menu/menu-item.js +2 -0
  149. package/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
  150. package/top-navigation/parts/overflow-menu/views/submenu.d.ts.map +1 -1
  151. package/top-navigation/parts/overflow-menu/views/submenu.js +1 -0
  152. package/top-navigation/parts/overflow-menu/views/submenu.js.map +1 -1
  153. package/top-navigation/parts/overflow-menu/views/utilities.d.ts.map +1 -1
  154. package/top-navigation/parts/overflow-menu/views/utilities.js +1 -1
  155. package/top-navigation/parts/overflow-menu/views/utilities.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"segments.js","sourceRoot":"lib/default/","sources":["pie-chart/segments.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,GAAG,EAAe,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,IAAI,MAAM,MAAM,CAAC;AAgBxB,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAgC,EAC9D,OAAO,EACP,kBAAkB,EAClB,IAAI,EACJ,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,WAAW,EACX,WAAW,EACX,UAAU,GACO;IACjB,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IAErC,MAAM,EAAE,UAAU,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;QACzD,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC;QACtC,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;QACnE,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,IAAI,CAAC,CAAC;QAElD,MAAM,UAAU,GAAG,GAAG,EAAwC;aAC3D,WAAW,CAAC,WAAW,CAAC;aACxB,WAAW,CAAC,MAAM,CAAC;aACnB,YAAY,CAAC,YAAY,CAAC,CAAC;QAE9B,MAAM,qBAAqB,GAAG,GAAG,EAAwC;aACtE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;aACvB,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE3B,OAAO;YACL,UAAU;YACV,qBAAqB;SACtB,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAE/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;YAC3B,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,kBAAkB,EAAE;gBAC3C,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC/D,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;aAC9C;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAE9C,OAAO,CACL,2BAAG,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACnB,MAAM,aAAa,GAAG,kBAAkB,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YAC9D,MAAM,QAAQ,GAAG,kBAAkB,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC;YAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;YAC/C,MAAM,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;YAClE,OAAO,CACL,2BACE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EACrB,WAAW,EAAE,CAAC,CAAC,EAAE;oBACf,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACxB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACrB,CAAC,EACD,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAC1C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBAC9B,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,aAAa;oBAC/C,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,QAAQ;iBACtC,CAAC,EACF,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,gBACtC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EACnE,IAAI,EAAC,QAAQ,0BACS,0BAA0B;gBAEhD,8BAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,aAAa,iBAAc,MAAM,GAAG;gBAChG,8BACE,CAAC,EAAE,eAAe,EAClB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EACtB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,kBAAkB,CAAC,iBACpD,MAAM,GAClB,CACA,CACL,CAAC;QACJ,CAAC,CAAC;QAEF,gDAAY,QAAQ,IAAE,GAAG,EAAE,eAAe,EAAE,CAAC,EAAC,GAAG,EAAC,OAAO,EAAC,GAAG,iBAAa,MAAM,IAAG,CACjF,CACL,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useMemo } from 'react';\nimport { arc, PieArcDatum } from 'd3-shape';\n\nimport { PieChartProps } from './interfaces';\nimport { dimensionsBySize, refreshDimensionsBySize } from './utils';\nimport { InternalChartDatum } from './pie-chart';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport styles from './styles.css.js';\nimport clsx from 'clsx';\n\ninterface SegmentsProps<T> {\n pieData: Array<PieArcDatum<InternalChartDatum<T>>>;\n highlightedSegment: T | null;\n size: NonNullable<PieChartProps['size']>;\n variant: PieChartProps['variant'];\n focusedSegmentRef: React.RefObject<SVGGElement>;\n popoverTrackRef: React.RefObject<SVGCircleElement>;\n segmentAriaRoleDescription?: string;\n\n onMouseDown: (datum: InternalChartDatum<T>) => void;\n onMouseOver: (datum: InternalChartDatum<T>) => void;\n onMouseOut: (event: React.MouseEvent<SVGElement>) => void;\n}\n\nexport default function Segments<T extends PieChartProps.Datum>({\n pieData,\n highlightedSegment,\n size,\n variant,\n focusedSegmentRef,\n popoverTrackRef,\n segmentAriaRoleDescription,\n onMouseDown,\n onMouseOver,\n onMouseOut,\n}: SegmentsProps<T>) {\n const isRefresh = useVisualRefresh();\n\n const { arcFactory, highlightedArcFactory } = useMemo(() => {\n const dimensions = isRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];\n const radius = dimensions.outerRadius;\n const innerRadius = variant === 'pie' ? 0 : dimensions.innerRadius;\n const cornerRadius = dimensions.cornerRadius || 0;\n\n const arcFactory = arc<PieArcDatum<InternalChartDatum<any>>>()\n .innerRadius(innerRadius)\n .outerRadius(radius)\n .cornerRadius(cornerRadius);\n\n const highlightedArcFactory = arc<PieArcDatum<InternalChartDatum<any>>>()\n .innerRadius(radius + 4)\n .outerRadius(radius + 6);\n\n return {\n arcFactory,\n highlightedArcFactory,\n };\n }, [size, variant, isRefresh]);\n\n const centroid = useMemo(() => {\n for (const datum of pieData) {\n if (datum.data.datum === highlightedSegment) {\n const [centroidLeft, centroidTop] = arcFactory.centroid(datum);\n return { cx: centroidLeft, cy: centroidTop };\n }\n }\n return null;\n }, [highlightedSegment, pieData, arcFactory]);\n\n return (\n <g onMouseLeave={event => onMouseOut(event)}>\n {pieData.map(datum => {\n const isHighlighted = highlightedSegment === datum.data.datum;\n const isDimmed = highlightedSegment !== null && !isHighlighted;\n const arcPath = arcFactory(datum) || undefined;\n const highlightedPath = highlightedArcFactory(datum) || undefined;\n return (\n <g\n key={datum.data.index}\n onMouseDown={e => {\n onMouseDown(datum.data);\n e.preventDefault();\n }}\n onMouseOver={() => onMouseOver(datum.data)}\n className={clsx(styles.segment, {\n [styles['segment--highlighted']]: isHighlighted,\n [styles['segment--dimmed']]: isDimmed,\n })}\n ref={isHighlighted ? focusedSegmentRef : undefined}\n aria-label={`${datum.data.datum.title} (${datum.data.datum.value})`}\n role=\"button\"\n aria-roledescription={segmentAriaRoleDescription}\n >\n <path d={arcPath} fill={datum.data.color} className={styles.segment__path} aria-hidden=\"true\" />\n <path\n d={highlightedPath}\n fill={datum.data.color}\n className={clsx(styles.segment__path, styles.segment__highlight)}\n aria-hidden=\"true\"\n />\n </g>\n );\n })}\n\n <circle {...centroid} ref={popoverTrackRef} r=\"1\" opacity=\"0\" aria-hidden=\"true\" />\n </g>\n );\n}\n"]}
1
+ {"version":3,"file":"segments.js","sourceRoot":"lib/default/","sources":["pie-chart/segments.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, { useMemo } from 'react';\nimport { arc, PieArcDatum } from 'd3-shape';\n\nimport { PieChartProps } from './interfaces';\nimport { dimensionsBySize, refreshDimensionsBySize } from './utils';\nimport { InternalChartDatum } from './pie-chart';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport styles from './styles.css.js';\nimport clsx from 'clsx';\nimport { useInternalI18n } from '../internal/i18n/context';\n\ninterface SegmentsProps<T> {\n pieData: Array<PieArcDatum<InternalChartDatum<T>>>;\n highlightedSegment: T | null;\n size: NonNullable<PieChartProps['size']>;\n variant: PieChartProps['variant'];\n focusedSegmentRef: React.RefObject<SVGGElement>;\n popoverTrackRef: React.RefObject<SVGCircleElement>;\n segmentAriaRoleDescription?: string;\n\n onMouseDown: (datum: InternalChartDatum<T>) => void;\n onMouseOver: (datum: InternalChartDatum<T>) => void;\n onMouseOut: (event: React.MouseEvent<SVGElement>) => void;\n}\n\nexport default function Segments<T extends PieChartProps.Datum>({\n pieData,\n highlightedSegment,\n size,\n variant,\n focusedSegmentRef,\n popoverTrackRef,\n segmentAriaRoleDescription,\n onMouseDown,\n onMouseOver,\n onMouseOut,\n}: SegmentsProps<T>) {\n const i18n = useInternalI18n('pie-chart');\n const isRefresh = useVisualRefresh();\n\n const { arcFactory, highlightedArcFactory } = useMemo(() => {\n const dimensions = isRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];\n const radius = dimensions.outerRadius;\n const innerRadius = variant === 'pie' ? 0 : dimensions.innerRadius;\n const cornerRadius = dimensions.cornerRadius || 0;\n\n const arcFactory = arc<PieArcDatum<InternalChartDatum<any>>>()\n .innerRadius(innerRadius)\n .outerRadius(radius)\n .cornerRadius(cornerRadius);\n\n const highlightedArcFactory = arc<PieArcDatum<InternalChartDatum<any>>>()\n .innerRadius(radius + 4)\n .outerRadius(radius + 6);\n\n return {\n arcFactory,\n highlightedArcFactory,\n };\n }, [size, variant, isRefresh]);\n\n const centroid = useMemo(() => {\n for (const datum of pieData) {\n if (datum.data.datum === highlightedSegment) {\n const [centroidLeft, centroidTop] = arcFactory.centroid(datum);\n return { cx: centroidLeft, cy: centroidTop };\n }\n }\n return null;\n }, [highlightedSegment, pieData, arcFactory]);\n\n return (\n <g onMouseLeave={event => onMouseOut(event)}>\n {pieData.map(datum => {\n const isHighlighted = highlightedSegment === datum.data.datum;\n const isDimmed = highlightedSegment !== null && !isHighlighted;\n const arcPath = arcFactory(datum) || undefined;\n const highlightedPath = highlightedArcFactory(datum) || undefined;\n return (\n <g\n key={datum.data.index}\n onMouseDown={e => {\n onMouseDown(datum.data);\n e.preventDefault();\n }}\n onMouseOver={() => onMouseOver(datum.data)}\n className={clsx(styles.segment, {\n [styles['segment--highlighted']]: isHighlighted,\n [styles['segment--dimmed']]: isDimmed,\n })}\n ref={isHighlighted ? focusedSegmentRef : undefined}\n aria-label={`${datum.data.datum.title} (${datum.data.datum.value})`}\n role=\"button\"\n aria-roledescription={i18n('i18nStrings.segmentAriaRoleDescription', segmentAriaRoleDescription)}\n >\n <path d={arcPath} fill={datum.data.color} className={styles.segment__path} aria-hidden=\"true\" />\n <path\n d={highlightedPath}\n fill={datum.data.color}\n className={clsx(styles.segment__path, styles.segment__highlight)}\n aria-hidden=\"true\"\n />\n </g>\n );\n })}\n\n <circle {...centroid} ref={popoverTrackRef} r=\"1\" opacity=\"0\" aria-hidden=\"true\" />\n </g>\n );\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import { ComponentFormatFunction } from '../internal/i18n/context';
1
2
  import { PieChartProps } from './interfaces';
2
3
  interface Dimension {
3
4
  innerRadius: number;
@@ -9,7 +10,7 @@ interface Dimension {
9
10
  }
10
11
  export declare const dimensionsBySize: Record<NonNullable<PieChartProps['size']>, Dimension>;
11
12
  export declare const refreshDimensionsBySize: Record<NonNullable<PieChartProps['size']>, Dimension>;
12
- export declare const defaultDetails: (i18nStrings: PieChartProps.I18nStrings) => (datum: PieChartProps.Datum, dataSum: number) => ({
13
+ export declare const defaultDetails: (i18n: ComponentFormatFunction, i18nStrings: PieChartProps.I18nStrings) => (datum: PieChartProps.Datum, dataSum: number) => ({
13
14
  key: string;
14
15
  value: number;
15
16
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"lib/default/","sources":["pie-chart/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,UAAU,SAAS;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAsBlF,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAgBzF,CAAC;AAEF,eAAO,MAAM,cAAc,gBACX,cAAc,WAAW,aAAa,cAAc,KAAK,WAAW,MAAM;;;;;;IAOrF,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,UACrB,WAAW,WAAW,CAAC,WACrB,MAAM;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,YACtB,OAAO,SAkElB,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"lib/default/","sources":["pie-chart/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,UAAU,SAAS;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAsBlF,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAgBzF,CAAC;AAEF,eAAO,MAAM,cAAc,SAClB,uBAAuB,eAAe,cAAc,WAAW,aAC9D,cAAc,KAAK,WAAW,MAAM;;;;;;IAOzC,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,UACrB,WAAW,WAAW,CAAC,WACrB,MAAM;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,YACtB,OAAO,SAkElB,CAAC"}
@@ -27,10 +27,10 @@ export const refreshDimensionsBySize = {
27
27
  medium: Object.assign(Object.assign({}, dimensionsBySize.medium), { innerRadius: 75, cornerRadius: 4 }),
28
28
  large: Object.assign(Object.assign({}, dimensionsBySize.large), { innerRadius: 105, cornerRadius: 5 }),
29
29
  };
30
- export const defaultDetails = (i18nStrings) => (datum, dataSum) => [
31
- { key: i18nStrings.detailsValue || '', value: datum.value },
30
+ export const defaultDetails = (i18n, i18nStrings) => (datum, dataSum) => [
31
+ { key: i18n('i18nStrings.detailsValue', i18nStrings.detailsValue) || '', value: datum.value },
32
32
  {
33
- key: i18nStrings.detailsPercentage || '',
33
+ key: i18n('i18nStrings.detailsPercentage', i18nStrings.detailsPercentage) || '',
34
34
  value: `${((datum.value * 100) / dataSum).toFixed(0)}%`,
35
35
  },
36
36
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"lib/default/","sources":["pie-chart/utils.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\nimport { PieChartProps } from './interfaces';\nimport styles from './styles.css.js';\n\ninterface Dimension {\n innerRadius: number;\n outerRadius: number;\n padding: number;\n paddingLabels: number;\n innerLabelPadding: number;\n cornerRadius?: number;\n}\n\nexport const dimensionsBySize: Record<NonNullable<PieChartProps['size']>, Dimension> = {\n small: {\n innerRadius: 33,\n outerRadius: 50,\n innerLabelPadding: 8,\n padding: 8, // = space-xs\n paddingLabels: 44, // = 2 * (size-lineHeight-body-100)\n },\n medium: {\n innerRadius: 66,\n outerRadius: 100,\n innerLabelPadding: 12,\n padding: 12, // = space-s\n paddingLabels: 44, // = 2 * (size-lineHeight-body-100)\n },\n large: {\n innerRadius: 93,\n outerRadius: 140,\n innerLabelPadding: 12,\n padding: 12, // = space-s\n paddingLabels: 44, // = 2 * (size-lineHeight-body-100)\n },\n};\n\nexport const refreshDimensionsBySize: Record<NonNullable<PieChartProps['size']>, Dimension> = {\n small: {\n ...dimensionsBySize.small,\n innerRadius: 38,\n cornerRadius: 3,\n },\n medium: {\n ...dimensionsBySize.medium,\n innerRadius: 75,\n cornerRadius: 4,\n },\n large: {\n ...dimensionsBySize.large,\n innerRadius: 105,\n cornerRadius: 5,\n },\n};\n\nexport const defaultDetails =\n (i18nStrings: PieChartProps.I18nStrings) => (datum: PieChartProps.Datum, dataSum: number) =>\n [\n { key: i18nStrings.detailsValue || '', value: datum.value },\n {\n key: i18nStrings.detailsPercentage || '',\n value: `${((datum.value * 100) / dataSum).toFixed(0)}%`,\n },\n ];\n\n/**\n * Adjusts the position of the given label nodes to avoid visual overlapping.\n * @param nodes List of label nodes of the entire chart (both left and right side)\n * @param markers Markers array that was calculated in <Labels>, but we just need the `endY` values\n * @param leftSide Boolean flag whether we are processing the left or right side of the chart labels\n */\nexport const balanceLabelNodes = (\n nodes: NodeListOf<SVGGElement>,\n markers: Array<{ endY: number }>,\n leftSide: boolean\n) => {\n const MARGIN = 10;\n\n let previousBBox: { x: number; y: number; height: number } | null = null;\n\n // When traversing the right side of labels, we start at the beginning of the array and go forwards.\n // For the left side, we need to traverse backwards from the end, so that overlapping nodes are pushed down in the right order.\n let i = leftSide ? nodes.length - 1 : 0;\n\n while ((leftSide && i >= 0) || (!leftSide && i < nodes.length)) {\n const node = nodes[i];\n\n // Currently using dataset attributes to determine the base position.\n // This implementation can be changed back to using `getBBox` when we drop IE11 support.\n // Unfortunately, there is no good alternative for `getBBox` that is supported by IE11.\n // `getBoundingClientRect` works for width and height calculations in SVG, but the x/y positions are inaccurate.\n const x = parseFloat(node.getAttribute('data-x') || '0');\n const y = parseFloat(node.getAttribute('data-y') || '0');\n const box = {\n x,\n y,\n height: node.getBoundingClientRect().height,\n };\n\n const marker = markers[i];\n\n if (leftSide) {\n i--;\n } else {\n i++;\n }\n\n if (!previousBBox) {\n previousBBox = box;\n node.setAttribute('transform', '');\n continue;\n }\n\n if ((!leftSide && box.x < 0) || (leftSide && box.x >= 0)) {\n // We have reached a label that is on the other side of the chart, so we're done.\n break;\n }\n\n node.setAttribute('transform', '');\n\n // Calculate how much the current node is overlapping with the previous one.\n const offset = previousBBox.y + previousBBox.height + MARGIN - box.y;\n\n if (offset > 0) {\n // Move the label down.\n node.setAttribute('transform', `translate(0 ${offset})`);\n\n // Adjust the attached line accordingly.\n const lineNode = node.parentNode?.querySelector(`.${styles['label-line']}`);\n if (lineNode) {\n const { endY } = marker;\n lineNode.setAttribute('y2', '' + (endY + offset));\n }\n\n // Update the position accordingly to inform the next label\n box.y += offset;\n }\n\n previousBBox = box;\n }\n};\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"lib/default/","sources":["pie-chart/utils.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\nimport { ComponentFormatFunction } from '../internal/i18n/context';\nimport { PieChartProps } from './interfaces';\nimport styles from './styles.css.js';\n\ninterface Dimension {\n innerRadius: number;\n outerRadius: number;\n padding: number;\n paddingLabels: number;\n innerLabelPadding: number;\n cornerRadius?: number;\n}\n\nexport const dimensionsBySize: Record<NonNullable<PieChartProps['size']>, Dimension> = {\n small: {\n innerRadius: 33,\n outerRadius: 50,\n innerLabelPadding: 8,\n padding: 8, // = space-xs\n paddingLabels: 44, // = 2 * (size-lineHeight-body-100)\n },\n medium: {\n innerRadius: 66,\n outerRadius: 100,\n innerLabelPadding: 12,\n padding: 12, // = space-s\n paddingLabels: 44, // = 2 * (size-lineHeight-body-100)\n },\n large: {\n innerRadius: 93,\n outerRadius: 140,\n innerLabelPadding: 12,\n padding: 12, // = space-s\n paddingLabels: 44, // = 2 * (size-lineHeight-body-100)\n },\n};\n\nexport const refreshDimensionsBySize: Record<NonNullable<PieChartProps['size']>, Dimension> = {\n small: {\n ...dimensionsBySize.small,\n innerRadius: 38,\n cornerRadius: 3,\n },\n medium: {\n ...dimensionsBySize.medium,\n innerRadius: 75,\n cornerRadius: 4,\n },\n large: {\n ...dimensionsBySize.large,\n innerRadius: 105,\n cornerRadius: 5,\n },\n};\n\nexport const defaultDetails =\n (i18n: ComponentFormatFunction, i18nStrings: PieChartProps.I18nStrings) =>\n (datum: PieChartProps.Datum, dataSum: number) =>\n [\n { key: i18n('i18nStrings.detailsValue', i18nStrings.detailsValue) || '', value: datum.value },\n {\n key: i18n('i18nStrings.detailsPercentage', i18nStrings.detailsPercentage) || '',\n value: `${((datum.value * 100) / dataSum).toFixed(0)}%`,\n },\n ];\n\n/**\n * Adjusts the position of the given label nodes to avoid visual overlapping.\n * @param nodes List of label nodes of the entire chart (both left and right side)\n * @param markers Markers array that was calculated in <Labels>, but we just need the `endY` values\n * @param leftSide Boolean flag whether we are processing the left or right side of the chart labels\n */\nexport const balanceLabelNodes = (\n nodes: NodeListOf<SVGGElement>,\n markers: Array<{ endY: number }>,\n leftSide: boolean\n) => {\n const MARGIN = 10;\n\n let previousBBox: { x: number; y: number; height: number } | null = null;\n\n // When traversing the right side of labels, we start at the beginning of the array and go forwards.\n // For the left side, we need to traverse backwards from the end, so that overlapping nodes are pushed down in the right order.\n let i = leftSide ? nodes.length - 1 : 0;\n\n while ((leftSide && i >= 0) || (!leftSide && i < nodes.length)) {\n const node = nodes[i];\n\n // Currently using dataset attributes to determine the base position.\n // This implementation can be changed back to using `getBBox` when we drop IE11 support.\n // Unfortunately, there is no good alternative for `getBBox` that is supported by IE11.\n // `getBoundingClientRect` works for width and height calculations in SVG, but the x/y positions are inaccurate.\n const x = parseFloat(node.getAttribute('data-x') || '0');\n const y = parseFloat(node.getAttribute('data-y') || '0');\n const box = {\n x,\n y,\n height: node.getBoundingClientRect().height,\n };\n\n const marker = markers[i];\n\n if (leftSide) {\n i--;\n } else {\n i++;\n }\n\n if (!previousBBox) {\n previousBBox = box;\n node.setAttribute('transform', '');\n continue;\n }\n\n if ((!leftSide && box.x < 0) || (leftSide && box.x >= 0)) {\n // We have reached a label that is on the other side of the chart, so we're done.\n break;\n }\n\n node.setAttribute('transform', '');\n\n // Calculate how much the current node is overlapping with the previous one.\n const offset = previousBBox.y + previousBBox.height + MARGIN - box.y;\n\n if (offset > 0) {\n // Move the label down.\n node.setAttribute('transform', `translate(0 ${offset})`);\n\n // Adjust the attached line accordingly.\n const lineNode = node.parentNode?.querySelector(`.${styles['label-line']}`);\n if (lineNode) {\n const { endY } = marker;\n lineNode.setAttribute('y2', '' + (endY + offset));\n }\n\n // Update the position accordingly to inform the next label\n box.y += offset;\n }\n\n previousBBox = box;\n }\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"body.d.ts","sourceRoot":"lib/default/","sources":["popover/body.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAW9D,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,SAAS,EAAE,MAAM,IAAI,CAAC;IAEtB,MAAM,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAErC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,aAAa,EAAE,iBAAiB,EAChC,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,SAAS,EACT,OAAO,EACP,eAAe,EACf,SAAS,EACT,cAAc,GACf,EAAE,gBAAgB,eA2ElB"}
1
+ {"version":3,"file":"body.d.ts","sourceRoot":"lib/default/","sources":["popover/body.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAY9D,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,SAAS,EAAE,MAAM,IAAI,CAAC;IAEtB,MAAM,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAErC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,aAAa,EAAE,iBAAiB,EAChC,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,SAAS,EACT,OAAO,EACP,eAAe,EACf,SAAS,EACT,cAAc,GACf,EAAE,gBAAgB,eA4ElB"}
package/popover/body.js CHANGED
@@ -7,7 +7,9 @@ import { useUniqueId } from '../internal/hooks/use-unique-id';
7
7
  import { InternalButton } from '../button/internal';
8
8
  import FocusLock from '../internal/components/focus-lock';
9
9
  import styles from './styles.css.js';
10
+ import { useInternalI18n } from '../internal/i18n/context';
10
11
  export default function PopoverBody({ dismissButton: showDismissButton, dismissAriaLabel, header, children, onDismiss, variant, overflowVisible, className, ariaLabelledby, }) {
12
+ const i18n = useInternalI18n('popover');
11
13
  const labelledById = useUniqueId('awsui-popover-');
12
14
  const dismissButtonFocused = useRef(false);
13
15
  const dismissButtonRef = useRef(null);
@@ -27,7 +29,7 @@ export default function PopoverBody({ dismissButton: showDismissButton, dismissA
27
29
  dismissButtonFocused.current = showDismissButton;
28
30
  }, [showDismissButton]);
29
31
  const dismissButton = (showDismissButton !== null && showDismissButton !== void 0 ? showDismissButton : null) && (React.createElement("div", { className: styles.dismiss },
30
- React.createElement(InternalButton, { variant: "icon", formAction: "none", iconName: "close", className: styles['dismiss-control'], ariaLabel: dismissAriaLabel, onClick: () => onDismiss(), ref: dismissButtonRef })));
32
+ React.createElement(InternalButton, { variant: "icon", formAction: "none", iconName: "close", className: styles['dismiss-control'], ariaLabel: i18n('dismissAriaLabel', dismissAriaLabel), onClick: () => onDismiss(), ref: dismissButtonRef })));
31
33
  const isDialog = showDismissButton;
32
34
  const shouldTrapFocus = showDismissButton && variant !== 'annotation';
33
35
  const dialogProps = isDialog
@@ -1 +1 @@
1
- {"version":3,"file":"body.js","sourceRoot":"lib/default/","sources":["popover/body.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, { useCallback, useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { KeyCode } from '../internal/keycode';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { ButtonProps } from '../button/interfaces';\nimport { InternalButton } from '../button/internal';\nimport FocusLock from '../internal/components/focus-lock';\n\nimport styles from './styles.css.js';\n\nexport interface PopoverBodyProps {\n dismissButton: boolean;\n dismissAriaLabel: string | undefined;\n onDismiss: () => void;\n\n header: React.ReactNode | undefined;\n children: React.ReactNode;\n variant?: 'annotation';\n overflowVisible?: 'content' | 'both';\n\n className?: string;\n ariaLabelledby?: string;\n}\n\nexport default function PopoverBody({\n dismissButton: showDismissButton,\n dismissAriaLabel,\n header,\n children,\n onDismiss,\n variant,\n overflowVisible,\n className,\n ariaLabelledby,\n}: PopoverBodyProps) {\n const labelledById = useUniqueId('awsui-popover-');\n const dismissButtonFocused = useRef(false);\n const dismissButtonRef = useRef<ButtonProps.Ref>(null);\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.escape) {\n onDismiss();\n }\n },\n [onDismiss]\n );\n\n // Implement our own auto-focus rather than using FocusLock's,\n // because we also want to focus the dismiss button when it\n // is added dyamically (e.g. in chart popovers)\n useEffect(() => {\n if (showDismissButton && !dismissButtonFocused.current) {\n dismissButtonRef.current?.focus({ preventScroll: true });\n }\n dismissButtonFocused.current = showDismissButton;\n }, [showDismissButton]);\n\n const dismissButton = (showDismissButton ?? null) && (\n <div className={styles.dismiss}>\n <InternalButton\n variant=\"icon\"\n formAction=\"none\"\n iconName=\"close\"\n className={styles['dismiss-control']}\n ariaLabel={dismissAriaLabel}\n onClick={() => onDismiss()}\n ref={dismissButtonRef}\n />\n </div>\n );\n\n const isDialog = showDismissButton;\n const shouldTrapFocus = showDismissButton && variant !== 'annotation';\n\n const dialogProps = isDialog\n ? {\n role: 'dialog',\n 'aria-modal': shouldTrapFocus ? true : undefined,\n 'aria-labelledby': ariaLabelledby ?? (header ? labelledById : undefined),\n }\n : {};\n\n return (\n <div\n className={clsx(styles.body, className, {\n [styles['body-overflow-visible']]: overflowVisible === 'both',\n })}\n onKeyDown={onKeyDown}\n {...dialogProps}\n >\n <FocusLock disabled={!shouldTrapFocus} autoFocus={false}>\n {header && (\n <div className={clsx(styles['header-row'], showDismissButton && styles['has-dismiss'])}>\n {dismissButton}\n <div className={styles.header} id={labelledById}>\n <h2>{header}</h2>\n </div>\n </div>\n )}\n <div className={!header && showDismissButton ? styles['has-dismiss'] : undefined}>\n {!header && dismissButton}\n <div className={clsx(styles.content, { [styles['content-overflow-visible']]: !!overflowVisible })}>\n {children}\n </div>\n </div>\n </FocusLock>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"body.js","sourceRoot":"lib/default/","sources":["popover/body.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, { useCallback, useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { KeyCode } from '../internal/keycode';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { ButtonProps } from '../button/interfaces';\nimport { InternalButton } from '../button/internal';\nimport FocusLock from '../internal/components/focus-lock';\n\nimport styles from './styles.css.js';\nimport { useInternalI18n } from '../internal/i18n/context';\n\nexport interface PopoverBodyProps {\n dismissButton: boolean;\n dismissAriaLabel: string | undefined;\n onDismiss: () => void;\n\n header: React.ReactNode | undefined;\n children: React.ReactNode;\n variant?: 'annotation';\n overflowVisible?: 'content' | 'both';\n\n className?: string;\n ariaLabelledby?: string;\n}\n\nexport default function PopoverBody({\n dismissButton: showDismissButton,\n dismissAriaLabel,\n header,\n children,\n onDismiss,\n variant,\n overflowVisible,\n className,\n ariaLabelledby,\n}: PopoverBodyProps) {\n const i18n = useInternalI18n('popover');\n const labelledById = useUniqueId('awsui-popover-');\n const dismissButtonFocused = useRef(false);\n const dismissButtonRef = useRef<ButtonProps.Ref>(null);\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.escape) {\n onDismiss();\n }\n },\n [onDismiss]\n );\n\n // Implement our own auto-focus rather than using FocusLock's,\n // because we also want to focus the dismiss button when it\n // is added dyamically (e.g. in chart popovers)\n useEffect(() => {\n if (showDismissButton && !dismissButtonFocused.current) {\n dismissButtonRef.current?.focus({ preventScroll: true });\n }\n dismissButtonFocused.current = showDismissButton;\n }, [showDismissButton]);\n\n const dismissButton = (showDismissButton ?? null) && (\n <div className={styles.dismiss}>\n <InternalButton\n variant=\"icon\"\n formAction=\"none\"\n iconName=\"close\"\n className={styles['dismiss-control']}\n ariaLabel={i18n('dismissAriaLabel', dismissAriaLabel)}\n onClick={() => onDismiss()}\n ref={dismissButtonRef}\n />\n </div>\n );\n\n const isDialog = showDismissButton;\n const shouldTrapFocus = showDismissButton && variant !== 'annotation';\n\n const dialogProps = isDialog\n ? {\n role: 'dialog',\n 'aria-modal': shouldTrapFocus ? true : undefined,\n 'aria-labelledby': ariaLabelledby ?? (header ? labelledById : undefined),\n }\n : {};\n\n return (\n <div\n className={clsx(styles.body, className, {\n [styles['body-overflow-visible']]: overflowVisible === 'both',\n })}\n onKeyDown={onKeyDown}\n {...dialogProps}\n >\n <FocusLock disabled={!shouldTrapFocus} autoFocus={false}>\n {header && (\n <div className={clsx(styles['header-row'], showDismissButton && styles['has-dismiss'])}>\n {dismissButton}\n <div className={styles.header} id={labelledById}>\n <h2>{header}</h2>\n </div>\n </div>\n )}\n <div className={!header && showDismissButton ? styles['has-dismiss'] : undefined}>\n {!header && dismissButton}\n <div className={clsx(styles.content, { [styles['content-overflow-visible']]: !!overflowVisible })}>\n {children}\n </div>\n </div>\n </FocusLock>\n </div>\n );\n}\n"]}
@@ -41,6 +41,7 @@ export interface PopoverProps extends BaseComponentProps {
41
41
  dismissButton?: boolean;
42
42
  /**
43
43
  * Adds an `aria-label` to the dismiss button for accessibility.
44
+ * @i18n
44
45
  */
45
46
  dismissAriaLabel?: string;
46
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"lib/default/","sources":["popover/interfaces.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,WAAW,YAAa,SAAQ,kBAAkB;IACtD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC;IAEjC;;OAEG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC;IAEzB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC;IAEvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,WAAW,GACX,cAAc,GACd,UAAU,GACV,aAAa,GACb,YAAY,GACZ,WAAW,GACX,UAAU,GACV,eAAe,GACf,cAAc,GACd,aAAa,CAAC;AAElB,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC;AAElD,yBAAiB,YAAY,CAAC;IAC5B,KAAY,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3D,KAAY,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAChD,KAAY,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;CAC7C"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"lib/default/","sources":["popover/interfaces.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,WAAW,YAAa,SAAQ,kBAAkB;IACtD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC;IAEjC;;OAEG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC;IAEzB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC;IAEvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,WAAW,GACX,cAAc,GACd,UAAU,GACV,aAAa,GACb,YAAY,GACZ,WAAW,GACX,UAAU,GACV,eAAe,GACf,cAAc,GACd,aAAa,CAAC;AAElB,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC;AAElD,yBAAiB,YAAY,CAAC;IAC5B,KAAY,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3D,KAAY,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAChD,KAAY,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;CAC7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"lib/default/","sources":["popover/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BaseComponentProps } from '../internal/base-component';\n\nexport interface PopoverProps extends BaseComponentProps {\n /**\n * Determines where the popover is displayed when opened, relative to the trigger.\n * If the popover doesn't have enough space to open in this direction, it\n * automatically chooses a better direction based on available space.\n */\n position?: PopoverProps.Position;\n\n /**\n * Determines the maximum width for the popover.\n */\n size?: PopoverProps.Size;\n\n /**\n * Expands the popover body to its maximum width regardless of content.\n * For example, use it when you need to place a column layout in the popover content.\n */\n fixedWidth?: boolean;\n\n /**\n * Specifies the type of content inside the trigger region. The following types are available:\n * - `text` - Use for inline text triggers.\n * - `custom` - Use for the [button](/components/button/) component.\n */\n triggerType?: PopoverProps.TriggerType;\n\n /**\n * Element that triggers the popover when selected by the user.\n * @displayname trigger\n */\n children?: React.ReactNode;\n\n /**\n * Specifies optional header text for the popover.\n */\n header?: string;\n\n /**\n * Content of the popover.\n */\n content?: React.ReactNode;\n\n /**\n * Determines whether the dismiss button is shown in the popover body.\n */\n dismissButton?: boolean;\n\n /**\n * Adds an `aria-label` to the dismiss button for accessibility.\n */\n dismissAriaLabel?: string;\n\n /**\n * By default, the popover is constrained to fit inside its parent\n * [stacking context](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context).\n * Enabling this property will allow the popover to be rendered in the root stack context using\n * [React Portals](https://reactjs.org/docs/portals.html).\n * Enable this setting if you need the popover to ignore its parent stacking context, such as in side navigation.\n *\n * Note: Using popover rendered with portal within a Modal is not supported.\n */\n renderWithPortal?: boolean;\n}\n\n/**\n * The position the popover is actually in, given space constraints.\n */\nexport type InternalPosition =\n | 'right-top'\n | 'right-bottom'\n | 'left-top'\n | 'left-bottom'\n | 'top-center'\n | 'top-right'\n | 'top-left'\n | 'bottom-center'\n | 'bottom-right'\n | 'bottom-left';\n\nexport interface Offset {\n left: number;\n top: number;\n}\n\nexport interface BoundingBox {\n width: number;\n height: number;\n}\n\nexport type BoundingOffset = BoundingBox & Offset;\n\nexport namespace PopoverProps {\n export type Position = 'top' | 'right' | 'bottom' | 'left';\n export type Size = 'small' | 'medium' | 'large';\n export type TriggerType = 'text' | 'custom';\n}\n"]}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"lib/default/","sources":["popover/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BaseComponentProps } from '../internal/base-component';\n\nexport interface PopoverProps extends BaseComponentProps {\n /**\n * Determines where the popover is displayed when opened, relative to the trigger.\n * If the popover doesn't have enough space to open in this direction, it\n * automatically chooses a better direction based on available space.\n */\n position?: PopoverProps.Position;\n\n /**\n * Determines the maximum width for the popover.\n */\n size?: PopoverProps.Size;\n\n /**\n * Expands the popover body to its maximum width regardless of content.\n * For example, use it when you need to place a column layout in the popover content.\n */\n fixedWidth?: boolean;\n\n /**\n * Specifies the type of content inside the trigger region. The following types are available:\n * - `text` - Use for inline text triggers.\n * - `custom` - Use for the [button](/components/button/) component.\n */\n triggerType?: PopoverProps.TriggerType;\n\n /**\n * Element that triggers the popover when selected by the user.\n * @displayname trigger\n */\n children?: React.ReactNode;\n\n /**\n * Specifies optional header text for the popover.\n */\n header?: string;\n\n /**\n * Content of the popover.\n */\n content?: React.ReactNode;\n\n /**\n * Determines whether the dismiss button is shown in the popover body.\n */\n dismissButton?: boolean;\n\n /**\n * Adds an `aria-label` to the dismiss button for accessibility.\n * @i18n\n */\n dismissAriaLabel?: string;\n\n /**\n * By default, the popover is constrained to fit inside its parent\n * [stacking context](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context).\n * Enabling this property will allow the popover to be rendered in the root stack context using\n * [React Portals](https://reactjs.org/docs/portals.html).\n * Enable this setting if you need the popover to ignore its parent stacking context, such as in side navigation.\n *\n * Note: Using popover rendered with portal within a Modal is not supported.\n */\n renderWithPortal?: boolean;\n}\n\n/**\n * The position the popover is actually in, given space constraints.\n */\nexport type InternalPosition =\n | 'right-top'\n | 'right-bottom'\n | 'left-top'\n | 'left-bottom'\n | 'top-center'\n | 'top-right'\n | 'top-left'\n | 'bottom-center'\n | 'bottom-right'\n | 'bottom-left';\n\nexport interface Offset {\n left: number;\n top: number;\n}\n\nexport interface BoundingBox {\n width: number;\n height: number;\n}\n\nexport type BoundingOffset = BoundingBox & Offset;\n\nexport namespace PopoverProps {\n export type Position = 'top' | 'right' | 'bottom' | 'left';\n export type Size = 'small' | 'medium' | 'large';\n export type TriggerType = 'text' | 'custom';\n}\n"]}
@@ -1,38 +1,40 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "root": "awsui_root_wih1l_o3ri9_97",
5
- "tools": "awsui_tools_wih1l_o3ri9_108",
6
- "tools-filtering": "awsui_tools-filtering_wih1l_o3ri9_114",
7
- "tools-align-right": "awsui_tools-align-right_wih1l_o3ri9_128",
8
- "tools-pagination": "awsui_tools-pagination_wih1l_o3ri9_132",
9
- "tools-preferences": "awsui_tools-preferences_wih1l_o3ri9_132",
10
- "tools-small": "awsui_tools-small_wih1l_o3ri9_138",
11
- "table": "awsui_table_wih1l_o3ri9_144",
12
- "table-layout-fixed": "awsui_table-layout-fixed_wih1l_o3ri9_150",
13
- "wrapper": "awsui_wrapper_wih1l_o3ri9_154",
14
- "variant-stacked": "awsui_variant-stacked_wih1l_o3ri9_162",
15
- "variant-container": "awsui_variant-container_wih1l_o3ri9_162",
16
- "variant-embedded": "awsui_variant-embedded_wih1l_o3ri9_166",
17
- "has-header": "awsui_has-header_wih1l_o3ri9_169",
18
- "has-footer": "awsui_has-footer_wih1l_o3ri9_172",
19
- "cell-merged": "awsui_cell-merged_wih1l_o3ri9_186",
20
- "cell-merged-content": "awsui_cell-merged-content_wih1l_o3ri9_197",
21
- "empty": "awsui_empty_wih1l_o3ri9_212",
22
- "loading": "awsui_loading_wih1l_o3ri9_216",
23
- "selection-control": "awsui_selection-control_wih1l_o3ri9_225",
24
- "selection-control-header": "awsui_selection-control-header_wih1l_o3ri9_232",
25
- "sticky-scrollbar": "awsui_sticky-scrollbar_wih1l_o3ri9_237",
26
- "sticky-scrollbar-content": "awsui_sticky-scrollbar-content_wih1l_o3ri9_247",
27
- "sticky-scrollbar-visible": "awsui_sticky-scrollbar-visible_wih1l_o3ri9_250",
28
- "dark-header": "awsui_dark-header_wih1l_o3ri9_258",
29
- "header-secondary": "awsui_header-secondary_wih1l_o3ri9_263",
30
- "table-has-header": "awsui_table-has-header_wih1l_o3ri9_279",
31
- "header-controls": "awsui_header-controls_wih1l_o3ri9_283",
32
- "footer-wrapper": "awsui_footer-wrapper_wih1l_o3ri9_297",
33
- "footer": "awsui_footer_wih1l_o3ri9_297",
34
- "thead-active": "awsui_thead-active_wih1l_o3ri9_306",
35
- "row": "awsui_row_wih1l_o3ri9_307",
36
- "row-selected": "awsui_row-selected_wih1l_o3ri9_308"
4
+ "root": "awsui_root_wih1l_16d38_97",
5
+ "tools": "awsui_tools_wih1l_16d38_108",
6
+ "tools-filtering": "awsui_tools-filtering_wih1l_16d38_114",
7
+ "tools-align-right": "awsui_tools-align-right_wih1l_16d38_128",
8
+ "tools-pagination": "awsui_tools-pagination_wih1l_16d38_132",
9
+ "tools-preferences": "awsui_tools-preferences_wih1l_16d38_132",
10
+ "tools-small": "awsui_tools-small_wih1l_16d38_138",
11
+ "table": "awsui_table_wih1l_16d38_144",
12
+ "table-layout-fixed": "awsui_table-layout-fixed_wih1l_16d38_150",
13
+ "wrapper": "awsui_wrapper_wih1l_16d38_154",
14
+ "variant-stacked": "awsui_variant-stacked_wih1l_16d38_163",
15
+ "variant-container": "awsui_variant-container_wih1l_16d38_163",
16
+ "variant-embedded": "awsui_variant-embedded_wih1l_16d38_167",
17
+ "variant-borderless": "awsui_variant-borderless_wih1l_16d38_167",
18
+ "has-header": "awsui_has-header_wih1l_16d38_170",
19
+ "has-footer": "awsui_has-footer_wih1l_16d38_173",
20
+ "cell-merged": "awsui_cell-merged_wih1l_16d38_190",
21
+ "cell-merged-content": "awsui_cell-merged-content_wih1l_16d38_201",
22
+ "empty": "awsui_empty_wih1l_16d38_216",
23
+ "loading": "awsui_loading_wih1l_16d38_220",
24
+ "selection-control": "awsui_selection-control_wih1l_16d38_229",
25
+ "selection-control-header": "awsui_selection-control-header_wih1l_16d38_236",
26
+ "sticky-scrollbar": "awsui_sticky-scrollbar_wih1l_16d38_241",
27
+ "sticky-scrollbar-content": "awsui_sticky-scrollbar-content_wih1l_16d38_250",
28
+ "sticky-scrollbar-visible": "awsui_sticky-scrollbar-visible_wih1l_16d38_253",
29
+ "sticky-scrollbar-native-invisible": "awsui_sticky-scrollbar-native-invisible_wih1l_16d38_256",
30
+ "dark-header": "awsui_dark-header_wih1l_16d38_264",
31
+ "header-secondary": "awsui_header-secondary_wih1l_16d38_269",
32
+ "table-has-header": "awsui_table-has-header_wih1l_16d38_285",
33
+ "header-controls": "awsui_header-controls_wih1l_16d38_289",
34
+ "footer-wrapper": "awsui_footer-wrapper_wih1l_16d38_303",
35
+ "footer": "awsui_footer_wih1l_16d38_303",
36
+ "thead-active": "awsui_thead-active_wih1l_16d38_312",
37
+ "row": "awsui_row_wih1l_16d38_313",
38
+ "row-selected": "awsui_row-selected_wih1l_16d38_314"
37
39
  };
38
40
 
@@ -94,7 +94,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
94
94
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
95
95
  SPDX-License-Identifier: Apache-2.0
96
96
  */
97
- .awsui_root_wih1l_o3ri9_97:not(#\9) {
97
+ .awsui_root_wih1l_16d38_97:not(#\9) {
98
98
  font-size: var(--font-body-m-size-cqtcam, 14px);
99
99
  line-height: var(--font-body-m-line-height-83azrc, 22px);
100
100
  color: var(--color-text-body-default-01bwmw, #000716);
@@ -105,96 +105,100 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
105
105
  width: 100%;
106
106
  }
107
107
 
108
- .awsui_tools_wih1l_o3ri9_108:not(#\9) {
108
+ .awsui_tools_wih1l_16d38_108:not(#\9) {
109
109
  display: flex;
110
110
  align-items: flex-end;
111
111
  flex-wrap: wrap;
112
112
  padding: var(--space-scaled-xs-u0e7ft, 8px) 0 var(--space-scaled-xxs-ugy2pw, 4px);
113
113
  }
114
- .awsui_tools-filtering_wih1l_o3ri9_114:not(#\9) {
114
+ .awsui_tools-filtering_wih1l_16d38_114:not(#\9) {
115
115
  max-width: 100%;
116
116
  margin-right: var(--space-l-ds615y, 20px);
117
117
  }
118
118
  @supports (flex-basis: fit-content) {
119
- .awsui_tools-filtering_wih1l_o3ri9_114:not(#\9) {
119
+ .awsui_tools-filtering_wih1l_16d38_114:not(#\9) {
120
120
  flex: 1 1 fit-content;
121
121
  }
122
122
  }
123
123
  @supports not (flex-basis: fit-content) {
124
- .awsui_tools-filtering_wih1l_o3ri9_114:not(#\9) {
124
+ .awsui_tools-filtering_wih1l_16d38_114:not(#\9) {
125
125
  flex: 1 1 auto;
126
126
  }
127
127
  }
128
- .awsui_tools-align-right_wih1l_o3ri9_128:not(#\9) {
128
+ .awsui_tools-align-right_wih1l_16d38_128:not(#\9) {
129
129
  display: flex;
130
130
  margin-left: auto;
131
131
  }
132
- .awsui_tools-pagination_wih1l_o3ri9_132 + .awsui_tools-preferences_wih1l_o3ri9_132:not(#\9) {
132
+ .awsui_tools-pagination_wih1l_16d38_132 + .awsui_tools-preferences_wih1l_16d38_132:not(#\9) {
133
133
  border-left: var(--border-divider-section-width-g0ay3c, 2px) solid var(--color-border-divider-default-4spq70, #e9ebed);
134
134
  box-sizing: border-box;
135
135
  margin-left: var(--space-xs-inub5w, 8px);
136
136
  padding-left: var(--space-xs-inub5w, 8px);
137
137
  }
138
- .awsui_tools-small_wih1l_o3ri9_138 > .awsui_tools-filtering_wih1l_o3ri9_114:not(#\9) {
138
+ .awsui_tools-small_wih1l_16d38_138 > .awsui_tools-filtering_wih1l_16d38_114:not(#\9) {
139
139
  margin-right: 0;
140
140
  margin-bottom: var(--space-scaled-xs-u0e7ft, 8px);
141
141
  flex-basis: 100%;
142
142
  }
143
143
 
144
- .awsui_table_wih1l_o3ri9_144:not(#\9) {
144
+ .awsui_table_wih1l_16d38_144:not(#\9) {
145
145
  width: 100%;
146
146
  border-spacing: 0;
147
147
  position: relative;
148
148
  box-sizing: border-box;
149
149
  }
150
- .awsui_table-layout-fixed_wih1l_o3ri9_150:not(#\9) {
150
+ .awsui_table-layout-fixed_wih1l_16d38_150:not(#\9) {
151
151
  table-layout: fixed;
152
152
  }
153
153
 
154
- .awsui_wrapper_wih1l_o3ri9_154:not(#\9) {
154
+ .awsui_wrapper_wih1l_16d38_154:not(#\9) {
155
155
  position: relative;
156
156
  box-sizing: border-box;
157
157
  width: 100%;
158
158
  padding-top: var(--space-table-content-top-byyxhv, 12px);
159
159
  padding-bottom: var(--space-table-content-bottom-5ikgmo, 4px);
160
160
  overflow-x: auto;
161
+ scrollbar-width: none; /* Hide scrollbar in Firefox */
161
162
  }
162
- .awsui_wrapper_wih1l_o3ri9_154.awsui_variant-stacked_wih1l_o3ri9_162 > .awsui_table_wih1l_o3ri9_144:not(#\9), .awsui_wrapper_wih1l_o3ri9_154.awsui_variant-container_wih1l_o3ri9_162 > .awsui_table_wih1l_o3ri9_144:not(#\9) {
163
+ .awsui_wrapper_wih1l_16d38_154.awsui_variant-stacked_wih1l_16d38_163 > .awsui_table_wih1l_16d38_144:not(#\9), .awsui_wrapper_wih1l_16d38_154.awsui_variant-container_wih1l_16d38_163 > .awsui_table_wih1l_16d38_144:not(#\9) {
163
164
  padding-left: var(--space-table-horizontal-nhrpfz, 20px);
164
165
  padding-right: var(--space-table-horizontal-nhrpfz, 20px);
165
166
  }
166
- .awsui_wrapper_wih1l_o3ri9_154.awsui_variant-embedded_wih1l_o3ri9_166:not(#\9) {
167
+ .awsui_wrapper_wih1l_16d38_154.awsui_variant-embedded_wih1l_16d38_167:not(#\9), .awsui_wrapper_wih1l_16d38_154.awsui_variant-borderless_wih1l_16d38_167:not(#\9) {
167
168
  padding-bottom: var(--space-table-embedded-content-bottom-cw037k, 0px);
168
169
  }
169
- .awsui_wrapper_wih1l_o3ri9_154.awsui_has-header_wih1l_o3ri9_169:not(#\9) {
170
+ .awsui_wrapper_wih1l_16d38_154.awsui_has-header_wih1l_16d38_170:not(#\9) {
170
171
  padding-top: 0px;
171
172
  }
172
- .awsui_wrapper_wih1l_o3ri9_154.awsui_has-footer_wih1l_o3ri9_172:not(#\9) {
173
+ .awsui_wrapper_wih1l_16d38_154.awsui_has-footer_wih1l_16d38_173:not(#\9) {
173
174
  padding-bottom: 0px;
174
175
  }
175
- .awsui_wrapper_wih1l_o3ri9_154:not(#\9):not(.awsui_has-header_wih1l_o3ri9_169) {
176
+ .awsui_wrapper_wih1l_16d38_154:not(#\9):not(.awsui_has-header_wih1l_16d38_170) {
176
177
  border-top-right-radius: var(--border-radius-container-b3z48i, 16px);
177
178
  border-top-left-radius: var(--border-radius-container-b3z48i, 16px);
178
179
  }
179
- body[data-awsui-focus-visible=true] .awsui_wrapper_wih1l_o3ri9_154:not(#\9):focus {
180
+ .awsui_wrapper_wih1l_16d38_154:not(#\9)::-webkit-scrollbar {
181
+ display: none; /* Hide scrollbar in Safari and Chrome */
182
+ }
183
+ body[data-awsui-focus-visible=true] .awsui_wrapper_wih1l_16d38_154:not(#\9):focus {
180
184
  outline: 2px dotted transparent;
181
185
  outline-offset: 2px;
182
186
  border-radius: var(--border-radius-container-b3z48i, 16px);
183
187
  box-shadow: 0 0 0 2px var(--color-border-item-focused-nwfxo7, #0972d3);
184
188
  }
185
189
 
186
- .awsui_cell-merged_wih1l_o3ri9_186:not(#\9) {
190
+ .awsui_cell-merged_wih1l_16d38_190:not(#\9) {
187
191
  text-align: center;
188
192
  padding: 0;
189
193
  }
190
- .awsui_cell-merged_wih1l_o3ri9_186.awsui_has-footer_wih1l_o3ri9_172:not(#\9) {
194
+ .awsui_cell-merged_wih1l_16d38_190.awsui_has-footer_wih1l_16d38_173:not(#\9) {
191
195
  /*
192
196
  Add a bottom border to the body cell of an empty table as a separator between the
193
197
  table and the footer
194
198
  */
195
199
  border-bottom: var(--border-divider-section-width-g0ay3c, 2px) solid var(--color-border-divider-default-4spq70, #e9ebed);
196
200
  }
197
- .awsui_cell-merged-content_wih1l_o3ri9_197:not(#\9) {
201
+ .awsui_cell-merged-content_wih1l_16d38_201:not(#\9) {
198
202
  box-sizing: border-box;
199
203
  width: 100%;
200
204
  padding: var(--space-scaled-m-9q5ipc, 16px) var(--space-l-ds615y, 20px) var(--space-scaled-l-x5pubp, 20px);
@@ -202,18 +206,18 @@ body[data-awsui-focus-visible=true] .awsui_wrapper_wih1l_o3ri9_154:not(#\9):focu
202
206
  /* stylelint-enable plugin/no-unsupported-browser-features */
203
207
  }
204
208
  @supports (position: sticky) {
205
- .awsui_cell-merged-content_wih1l_o3ri9_197:not(#\9) {
209
+ .awsui_cell-merged-content_wih1l_16d38_201:not(#\9) {
206
210
  position: sticky;
207
211
  left: 0;
208
212
  margin: 0 calc(-2 * var(--space-table-horizontal-nhrpfz, 20px));
209
213
  }
210
214
  }
211
215
 
212
- .awsui_empty_wih1l_o3ri9_212:not(#\9) {
216
+ .awsui_empty_wih1l_16d38_216:not(#\9) {
213
217
  color: var(--color-text-empty-qnnj2s, #5f6b7a);
214
218
  }
215
219
 
216
- .awsui_loading_wih1l_o3ri9_216:not(#\9) {
220
+ .awsui_loading_wih1l_16d38_220:not(#\9) {
217
221
  /* used in test-utils */
218
222
  }
219
223
 
@@ -222,45 +226,47 @@ The min/max/width token values in Visual Refresh should align
222
226
  the table header and body cells selection control with the table
223
227
  filter search icon.
224
228
  */
225
- .awsui_selection-control_wih1l_o3ri9_225:not(#\9) {
229
+ .awsui_selection-control_wih1l_16d38_229:not(#\9) {
226
230
  box-sizing: border-box;
227
231
  max-width: var(--size-table-selection-horizontal-dshi7g, 40px);
228
232
  min-width: var(--size-table-selection-horizontal-dshi7g, 40px);
229
233
  position: relative;
230
234
  width: var(--size-table-selection-horizontal-dshi7g, 40px);
231
235
  }
232
- .awsui_selection-control_wih1l_o3ri9_225.awsui_selection-control-header_wih1l_o3ri9_232:not(#\9) {
236
+ .awsui_selection-control_wih1l_16d38_229.awsui_selection-control-header_wih1l_16d38_236:not(#\9) {
233
237
  padding: var(--space-scaled-xs-u0e7ft, 8px) var(--space-scaled-l-x5pubp, 20px);
234
238
  border-left: var(--border-item-width-4pi0dw, 2px) solid transparent;
235
239
  }
236
240
 
237
- .awsui_sticky-scrollbar_wih1l_o3ri9_237:not(#\9) {
241
+ .awsui_sticky-scrollbar_wih1l_16d38_241:not(#\9) {
238
242
  height: 15px;
239
- position: fixed;
243
+ position: sticky;
240
244
  display: none;
241
245
  overflow-x: auto;
242
246
  overflow-y: hidden;
243
- margin-top: -15px;
244
247
  bottom: 0;
245
248
  width: 100%;
246
249
  }
247
- .awsui_sticky-scrollbar-content_wih1l_o3ri9_247:not(#\9) {
250
+ .awsui_sticky-scrollbar-content_wih1l_16d38_250:not(#\9) {
248
251
  height: 15px;
249
252
  }
250
- .awsui_sticky-scrollbar-visible_wih1l_o3ri9_250:not(#\9) {
253
+ .awsui_sticky-scrollbar-visible_wih1l_16d38_253:not(#\9) {
251
254
  display: block;
252
255
  }
256
+ .awsui_sticky-scrollbar-native-invisible_wih1l_16d38_256:not(#\9) {
257
+ margin-top: -15px;
258
+ }
253
259
 
254
260
  /*
255
261
  The dynamic height dark header needs a background that will cover
256
262
  the default white background of the container component.
257
263
  */
258
- .awsui_dark-header_wih1l_o3ri9_258:not(#\9) {
264
+ .awsui_dark-header_wih1l_16d38_264:not(#\9) {
259
265
  background-color: var(--color-background-layout-main-iz43sl, #ffffff);
260
266
  color: var(--color-text-body-default-01bwmw, #000716);
261
267
  }
262
268
 
263
- .awsui_header-secondary_wih1l_o3ri9_263:not(#\9) {
269
+ .awsui_header-secondary_wih1l_16d38_269:not(#\9) {
264
270
  overflow: auto;
265
271
  -ms-overflow-style: none; /* Internet Explorer 10+ */
266
272
  scrollbar-width: none; /* Firefox */
@@ -269,42 +275,42 @@ the default white background of the container component.
269
275
  border-radius: 0;
270
276
  background: var(--color-background-table-header-shne10, #ffffff);
271
277
  }
272
- .awsui_header-secondary_wih1l_o3ri9_263.awsui_variant-stacked_wih1l_o3ri9_162 > .awsui_table_wih1l_o3ri9_144:not(#\9), .awsui_header-secondary_wih1l_o3ri9_263.awsui_variant-container_wih1l_o3ri9_162 > .awsui_table_wih1l_o3ri9_144:not(#\9) {
278
+ .awsui_header-secondary_wih1l_16d38_269.awsui_variant-stacked_wih1l_16d38_163 > .awsui_table_wih1l_16d38_144:not(#\9), .awsui_header-secondary_wih1l_16d38_269.awsui_variant-container_wih1l_16d38_163 > .awsui_table_wih1l_16d38_144:not(#\9) {
273
279
  padding-left: var(--space-table-horizontal-nhrpfz, 20px);
274
280
  padding-right: var(--space-table-horizontal-nhrpfz, 20px);
275
281
  }
276
- .awsui_header-secondary_wih1l_o3ri9_263:not(#\9)::-webkit-scrollbar {
282
+ .awsui_header-secondary_wih1l_16d38_269:not(#\9)::-webkit-scrollbar {
277
283
  display: none; /* Safari and Chrome */
278
284
  }
279
- .awsui_header-secondary_wih1l_o3ri9_263.awsui_table-has-header_wih1l_o3ri9_279:not(#\9) {
285
+ .awsui_header-secondary_wih1l_16d38_269.awsui_table-has-header_wih1l_16d38_285:not(#\9) {
280
286
  border-top: var(--border-divider-list-width-fsy9j8, 1px) solid var(--color-border-container-divider-qsuvq6, transparent);
281
287
  }
282
288
 
283
- .awsui_header-controls_wih1l_o3ri9_283:not(#\9) {
289
+ .awsui_header-controls_wih1l_16d38_289:not(#\9) {
284
290
  padding-top: var(--space-container-header-vertical-gho8eg, 12px);
285
291
  padding-bottom: var(--space-container-header-vertical-gho8eg, 12px);
286
292
  }
287
- .awsui_header-controls_wih1l_o3ri9_283.awsui_variant-stacked_wih1l_o3ri9_162:not(#\9), .awsui_header-controls_wih1l_o3ri9_283.awsui_variant-container_wih1l_o3ri9_162:not(#\9) {
293
+ .awsui_header-controls_wih1l_16d38_289.awsui_variant-stacked_wih1l_16d38_163:not(#\9), .awsui_header-controls_wih1l_16d38_289.awsui_variant-container_wih1l_16d38_163:not(#\9) {
288
294
  padding-left: calc(var(--space-table-horizontal-nhrpfz, 20px) + var(--space-table-header-horizontal-jj2vbh, 0px));
289
295
  padding-right: calc(var(--space-table-horizontal-nhrpfz, 20px) + var(--space-table-header-horizontal-jj2vbh, 0px));
290
296
  }
291
- .awsui_header-controls_wih1l_o3ri9_283.awsui_variant-embedded_wih1l_o3ri9_166:not(#\9) {
297
+ .awsui_header-controls_wih1l_16d38_289.awsui_variant-embedded_wih1l_16d38_167:not(#\9), .awsui_header-controls_wih1l_16d38_289.awsui_variant-borderless_wih1l_16d38_167:not(#\9) {
292
298
  padding-left: var(--space-table-header-horizontal-jj2vbh, 0px);
293
299
  padding-right: var(--space-table-header-horizontal-jj2vbh, 0px);
294
300
  padding-top: var(--space-table-embedded-header-top-8tml9f, 0px);
295
301
  }
296
302
 
297
- .awsui_footer-wrapper_wih1l_o3ri9_297.awsui_variant-stacked_wih1l_o3ri9_162:not(#\9), .awsui_footer-wrapper_wih1l_o3ri9_297.awsui_variant-container_wih1l_o3ri9_162:not(#\9) {
303
+ .awsui_footer-wrapper_wih1l_16d38_303.awsui_variant-stacked_wih1l_16d38_163:not(#\9), .awsui_footer-wrapper_wih1l_16d38_303.awsui_variant-container_wih1l_16d38_163:not(#\9) {
298
304
  padding-left: var(--space-table-horizontal-nhrpfz, 20px);
299
305
  padding-right: var(--space-table-horizontal-nhrpfz, 20px);
300
306
  }
301
307
 
302
- .awsui_footer_wih1l_o3ri9_297:not(#\9) {
308
+ .awsui_footer_wih1l_16d38_303:not(#\9) {
303
309
  padding: var(--space-scaled-s-gczsk7, 12px) var(--space-table-footer-horizontal-ezw6u7, 0px);
304
310
  }
305
311
 
306
- .awsui_thead-active_wih1l_o3ri9_306:not(#\9),
307
- .awsui_row_wih1l_o3ri9_307:not(#\9),
308
- .awsui_row-selected_wih1l_o3ri9_308:not(#\9) {
312
+ .awsui_thead-active_wih1l_16d38_312:not(#\9),
313
+ .awsui_row_wih1l_16d38_313:not(#\9),
314
+ .awsui_row-selected_wih1l_16d38_314:not(#\9) {
309
315
  /* used in test-utils */
310
316
  }