@codecademy/gamut 67.6.1-alpha.1bf8a5.0 → 67.6.1-alpha.21416d.0

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 (35) hide show
  1. package/dist/BarChart/Bar/elements.d.ts +1392 -0
  2. package/dist/BarChart/Bar/elements.js +59 -0
  3. package/dist/BarChart/Bar/index.d.ts +1 -0
  4. package/dist/BarChart/Bar/index.js +2 -0
  5. package/dist/BarChart/BarChartProvider.d.ts +33 -0
  6. package/dist/BarChart/BarChartProvider.js +39 -0
  7. package/dist/BarChart/BarRow.d.ts +6 -0
  8. package/dist/BarChart/BarRow.js +176 -0
  9. package/dist/BarChart/GridLines.d.ts +5 -0
  10. package/dist/BarChart/GridLines.js +45 -0
  11. package/dist/BarChart/ScaleChartHeader.d.ts +10 -0
  12. package/dist/BarChart/ScaleChartHeader.js +55 -0
  13. package/dist/BarChart/index.d.ts +4 -0
  14. package/dist/BarChart/index.js +68 -0
  15. package/dist/BarChart/types.d.ts +56 -0
  16. package/dist/BarChart/types.js +1 -0
  17. package/dist/BarChart/utils/index.d.ts +70 -0
  18. package/dist/BarChart/utils/index.js +140 -0
  19. package/dist/ConnectedForm/ConnectedFormGroup.d.ts +0 -5
  20. package/dist/ConnectedForm/ConnectedFormGroup.js +1 -1
  21. package/dist/Form/elements/FormGroupLabel.js +2 -8
  22. package/dist/GridForm/GridFormInputGroup/__fixtures__/renderers.d.ts +0 -4
  23. package/dist/GridForm/types.d.ts +0 -5
  24. package/dist/Tip/InfoTip/InfoTipButton.js +2 -5
  25. package/dist/Tip/InfoTip/elements.d.ts +12 -0
  26. package/dist/Tip/InfoTip/elements.js +9 -0
  27. package/dist/Tip/InfoTip/index.d.ts +0 -18
  28. package/dist/Tip/InfoTip/index.js +66 -37
  29. package/dist/Tip/__tests__/helpers.d.ts +26 -5
  30. package/dist/Tip/shared/FloatingTip.js +3 -3
  31. package/dist/Tip/shared/InlineTip.js +1 -4
  32. package/dist/Tip/shared/types.d.ts +1 -1
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.js +1 -0
  35. package/package.json +2 -2
@@ -0,0 +1,59 @@
1
+ import _styled from "@emotion/styled/base";
2
+ import { css } from '@codecademy/gamut-styles';
3
+ import { motion } from 'framer-motion';
4
+ import { Box } from '../../Box';
5
+ export const minBarWidth = 8;
6
+ const baseBarStyles = {
7
+ alignItems: 'center',
8
+ border: 1,
9
+ borderColor: 'border-primary',
10
+ borderRadius: 'inherit',
11
+ display: 'flex',
12
+ height: '100%',
13
+ left: 0,
14
+ position: 'absolute'
15
+ };
16
+
17
+ /**
18
+ * Animated bar element for background/total value display
19
+ */
20
+ export const BackgroundBar = /*#__PURE__*/_styled(motion.create(Box), {
21
+ target: "e1lnm2ux2",
22
+ label: "BackgroundBar"
23
+ })(css({
24
+ ...baseBarStyles
25
+ }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9CYXIvZWxlbWVudHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNCNkIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0JhckNoYXJ0L0Jhci9lbGVtZW50cy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgbW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5cbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uL0JveCc7XG5cbmV4cG9ydCBjb25zdCBtaW5CYXJXaWR0aCA9IDg7XG5cbmNvbnN0IGJhc2VCYXJTdHlsZXMgPSB7XG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBib3JkZXI6IDEsXG4gIGJvcmRlckNvbG9yOiAnYm9yZGVyLXByaW1hcnknLFxuICBib3JkZXJSYWRpdXM6ICdpbmhlcml0JyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBoZWlnaHQ6ICcxMDAlJyxcbiAgbGVmdDogMCxcbiAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEFuaW1hdGVkIGJhciBlbGVtZW50IGZvciBiYWNrZ3JvdW5kL3RvdGFsIHZhbHVlIGRpc3BsYXlcbiAqL1xuZXhwb3J0IGNvbnN0IEJhY2tncm91bmRCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICAuLi5iYXNlQmFyU3R5bGVzLFxuICB9KVxuKTtcblxuLyoqXG4gKiBGb3JlZ3JvdW5kIGJhciBmb3Igc3RhY2tlZCBkaXNwbGF5IChwcm9ncmVzcyB2YWx1ZSlcbiAqIENvbG9yIHNob3VsZCBiZSBwYXNzZWQgdmlhIGJnIHByb3AgZnJvbSBwYXJlbnRcbiAqL1xuZXhwb3J0IGNvbnN0IEZvcmVncm91bmRCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICAuLi5iYXNlQmFyU3R5bGVzLFxuICB9KVxuKTtcblxuLyoqXG4gKiBDb250YWluZXIgZm9yIGJhcnMgd2l0aCByZXNwb25zaXZlIGhlaWdodFxuICovXG5leHBvcnQgY29uc3QgQmFyV3JhcHBlciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgZmxleDogMSxcbiAgICBoZWlnaHQ6IHsgXzogMTIsIHNtOiAyMCB9LFxuICAgIGJvcmRlclJhZGl1czogeyBfOiAnbWQnLCBzbTogJ3hsJyB9LFxuICAgIHdpZHRoOiAnMTAwJScsXG4gIH0pXG4pO1xuIl19 */");
26
+
27
+ /**
28
+ * Foreground bar for stacked display (progress value)
29
+ * Color should be passed via bg prop from parent
30
+ */
31
+ export const ForegroundBar = /*#__PURE__*/_styled(motion.create(Box), {
32
+ target: "e1lnm2ux1",
33
+ label: "ForegroundBar"
34
+ })(css({
35
+ ...baseBarStyles
36
+ }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9CYXIvZWxlbWVudHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdDNkIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0JhckNoYXJ0L0Jhci9lbGVtZW50cy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgbW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5cbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uL0JveCc7XG5cbmV4cG9ydCBjb25zdCBtaW5CYXJXaWR0aCA9IDg7XG5cbmNvbnN0IGJhc2VCYXJTdHlsZXMgPSB7XG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBib3JkZXI6IDEsXG4gIGJvcmRlckNvbG9yOiAnYm9yZGVyLXByaW1hcnknLFxuICBib3JkZXJSYWRpdXM6ICdpbmhlcml0JyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBoZWlnaHQ6ICcxMDAlJyxcbiAgbGVmdDogMCxcbiAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEFuaW1hdGVkIGJhciBlbGVtZW50IGZvciBiYWNrZ3JvdW5kL3RvdGFsIHZhbHVlIGRpc3BsYXlcbiAqL1xuZXhwb3J0IGNvbnN0IEJhY2tncm91bmRCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICAuLi5iYXNlQmFyU3R5bGVzLFxuICB9KVxuKTtcblxuLyoqXG4gKiBGb3JlZ3JvdW5kIGJhciBmb3Igc3RhY2tlZCBkaXNwbGF5IChwcm9ncmVzcyB2YWx1ZSlcbiAqIENvbG9yIHNob3VsZCBiZSBwYXNzZWQgdmlhIGJnIHByb3AgZnJvbSBwYXJlbnRcbiAqL1xuZXhwb3J0IGNvbnN0IEZvcmVncm91bmRCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICAuLi5iYXNlQmFyU3R5bGVzLFxuICB9KVxuKTtcblxuLyoqXG4gKiBDb250YWluZXIgZm9yIGJhcnMgd2l0aCByZXNwb25zaXZlIGhlaWdodFxuICovXG5leHBvcnQgY29uc3QgQmFyV3JhcHBlciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgZmxleDogMSxcbiAgICBoZWlnaHQ6IHsgXzogMTIsIHNtOiAyMCB9LFxuICAgIGJvcmRlclJhZGl1czogeyBfOiAnbWQnLCBzbTogJ3hsJyB9LFxuICAgIHdpZHRoOiAnMTAwJScsXG4gIH0pXG4pO1xuIl19 */");
37
+
38
+ /**
39
+ * Container for bars with responsive height
40
+ */
41
+ export const BarWrapper = /*#__PURE__*/_styled(Box, {
42
+ target: "e1lnm2ux0",
43
+ label: "BarWrapper"
44
+ })(css({
45
+ display: 'flex',
46
+ overflow: 'hidden',
47
+ position: 'relative',
48
+ alignItems: 'center',
49
+ flex: 1,
50
+ height: {
51
+ _: 12,
52
+ sm: 20
53
+ },
54
+ borderRadius: {
55
+ _: 'md',
56
+ sm: 'xl'
57
+ },
58
+ width: '100%'
59
+ }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9CYXIvZWxlbWVudHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlDMEIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0JhckNoYXJ0L0Jhci9lbGVtZW50cy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgbW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5cbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uL0JveCc7XG5cbmV4cG9ydCBjb25zdCBtaW5CYXJXaWR0aCA9IDg7XG5cbmNvbnN0IGJhc2VCYXJTdHlsZXMgPSB7XG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBib3JkZXI6IDEsXG4gIGJvcmRlckNvbG9yOiAnYm9yZGVyLXByaW1hcnknLFxuICBib3JkZXJSYWRpdXM6ICdpbmhlcml0JyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBoZWlnaHQ6ICcxMDAlJyxcbiAgbGVmdDogMCxcbiAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEFuaW1hdGVkIGJhciBlbGVtZW50IGZvciBiYWNrZ3JvdW5kL3RvdGFsIHZhbHVlIGRpc3BsYXlcbiAqL1xuZXhwb3J0IGNvbnN0IEJhY2tncm91bmRCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICAuLi5iYXNlQmFyU3R5bGVzLFxuICB9KVxuKTtcblxuLyoqXG4gKiBGb3JlZ3JvdW5kIGJhciBmb3Igc3RhY2tlZCBkaXNwbGF5IChwcm9ncmVzcyB2YWx1ZSlcbiAqIENvbG9yIHNob3VsZCBiZSBwYXNzZWQgdmlhIGJnIHByb3AgZnJvbSBwYXJlbnRcbiAqL1xuZXhwb3J0IGNvbnN0IEZvcmVncm91bmRCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICAuLi5iYXNlQmFyU3R5bGVzLFxuICB9KVxuKTtcblxuLyoqXG4gKiBDb250YWluZXIgZm9yIGJhcnMgd2l0aCByZXNwb25zaXZlIGhlaWdodFxuICovXG5leHBvcnQgY29uc3QgQmFyV3JhcHBlciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgZmxleDogMSxcbiAgICBoZWlnaHQ6IHsgXzogMTIsIHNtOiAyMCB9LFxuICAgIGJvcmRlclJhZGl1czogeyBfOiAnbWQnLCBzbTogJ3hsJyB9LFxuICAgIHdpZHRoOiAnMTAwJScsXG4gIH0pXG4pO1xuIl19 */");
@@ -0,0 +1 @@
1
+ export * from './elements';
@@ -0,0 +1,2 @@
1
+ // Re-export bar elements
2
+ export * from './elements';
@@ -0,0 +1,33 @@
1
+ /// <reference types="react" />
2
+ import { BarChartStyles } from './types';
3
+ export interface BarChartContextProps {
4
+ minRange: number;
5
+ maxRange: number;
6
+ xScale: number;
7
+ unit: string;
8
+ styleConfig: Required<BarChartStyles>;
9
+ animate: boolean;
10
+ }
11
+ export declare const BarChartContext: import("react").Context<BarChartContextProps>;
12
+ export declare const BarChartProvider: import("react").Provider<BarChartContextProps>;
13
+ export declare function useBarChartContext(): BarChartContextProps;
14
+ export interface UseBarChartOptions {
15
+ minRange: number;
16
+ maxRange: number;
17
+ xScale?: number;
18
+ unit?: string;
19
+ styleConfig?: BarChartStyles;
20
+ animate?: boolean;
21
+ }
22
+ export declare function useBarChart({ minRange, maxRange, xScale, unit, styleConfig, animate, }: UseBarChartOptions): {
23
+ minRange: number;
24
+ maxRange: number;
25
+ xScale: number;
26
+ unit: string;
27
+ styleConfig: {
28
+ textColor: "text" | "background" | "primary" | "secondary" | "danger" | "interface" | "text-secondary" | "text-accent" | "text-disabled" | "feedback-error" | "feedback-success" | "feedback-warning" | "background-primary" | "background-disabled" | "background-error" | "background-success" | "background-warning" | "background-contrast" | "background-current" | "background-selected" | "background-hover" | "shadow-primary" | "shadow-secondary" | "primary-hover" | "primary-inverse" | "secondary-hover" | "danger-hover" | "interface-hover" | "border-primary" | "border-secondary" | "border-disabled" | "border-tertiary";
29
+ foregroundBarColor: "text" | "background" | "primary" | "secondary" | "danger" | "interface" | "text-secondary" | "text-accent" | "text-disabled" | "feedback-error" | "feedback-success" | "feedback-warning" | "background-primary" | "background-disabled" | "background-error" | "background-success" | "background-warning" | "background-contrast" | "background-current" | "background-selected" | "background-hover" | "shadow-primary" | "shadow-secondary" | "primary-hover" | "primary-inverse" | "secondary-hover" | "danger-hover" | "interface-hover" | "border-primary" | "border-secondary" | "border-disabled" | "border-tertiary";
30
+ backgroundBarColor: "text" | "background" | "primary" | "secondary" | "danger" | "interface" | "text-secondary" | "text-accent" | "text-disabled" | "feedback-error" | "feedback-success" | "feedback-warning" | "background-primary" | "background-disabled" | "background-error" | "background-success" | "background-warning" | "background-contrast" | "background-current" | "background-selected" | "background-hover" | "shadow-primary" | "shadow-secondary" | "primary-hover" | "primary-inverse" | "secondary-hover" | "danger-hover" | "interface-hover" | "border-primary" | "border-secondary" | "border-disabled" | "border-tertiary";
31
+ };
32
+ animate: boolean;
33
+ };
@@ -0,0 +1,39 @@
1
+ import { createContext, useContext, useMemo } from 'react';
2
+ const defaultStyleConfig = {
3
+ textColor: 'text',
4
+ foregroundBarColor: 'feedback-warning',
5
+ backgroundBarColor: 'background-primary'
6
+ };
7
+ export const BarChartContext = /*#__PURE__*/createContext({
8
+ minRange: 0,
9
+ maxRange: 100,
10
+ xScale: 10,
11
+ unit: '',
12
+ styleConfig: defaultStyleConfig,
13
+ animate: false
14
+ });
15
+ BarChartContext.displayName = 'BarChartContext';
16
+ export const BarChartProvider = BarChartContext.Provider;
17
+ export function useBarChartContext() {
18
+ return useContext(BarChartContext);
19
+ }
20
+ export function useBarChart({
21
+ minRange,
22
+ maxRange,
23
+ xScale,
24
+ unit = '',
25
+ styleConfig,
26
+ animate = false
27
+ }) {
28
+ return useMemo(() => ({
29
+ minRange,
30
+ maxRange,
31
+ xScale: xScale ?? Math.ceil((maxRange - minRange) / 5),
32
+ unit,
33
+ styleConfig: {
34
+ ...defaultStyleConfig,
35
+ ...styleConfig
36
+ },
37
+ animate
38
+ }), [minRange, maxRange, xScale, unit, styleConfig, animate]);
39
+ }
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { BarProps } from './types';
3
+ export interface BarRowProps extends BarProps {
4
+ index?: number;
5
+ }
6
+ export declare const BarRow: import("react").ForwardRefExoticComponent<BarRowProps & import("react").RefAttributes<HTMLDivElement | HTMLAnchorElement | HTMLButtonElement>>;
@@ -0,0 +1,176 @@
1
+ import _styled from "@emotion/styled/base";
2
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3
+ import { css, styledOptions } from '@codecademy/gamut-styles';
4
+ import { forwardRef } from 'react';
5
+ import { FlexBox } from '../Box';
6
+ import { Text } from '../Typography';
7
+ import { BackgroundBar, BarWrapper, ForegroundBar, minBarWidth } from './Bar/elements';
8
+ import { useBarChartContext } from './BarChartProvider';
9
+ import { calculateBarWidth, getValuesSummary } from './utils';
10
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
+ const rowBaseStyles = css({
12
+ display: 'flex',
13
+ alignItems: 'center',
14
+ width: '100%',
15
+ gap: 16,
16
+ py: 8,
17
+ px: 0,
18
+ bg: 'transparent',
19
+ border: 'none',
20
+ textDecoration: 'none',
21
+ cursor: 'inherit',
22
+ '&:focus': {
23
+ outline: 'none'
24
+ },
25
+ '&:focus-visible': {
26
+ outline: '2px solid',
27
+ outlineColor: 'primary',
28
+ outlineOffset: '2px'
29
+ }
30
+ });
31
+ const interactiveStyles = css({
32
+ cursor: 'pointer',
33
+ '&:hover': {
34
+ bg: 'background-hover'
35
+ }
36
+ });
37
+ const RowWrapper = /*#__PURE__*/_styled('div', _extends({}, {
38
+ target: "eew7ix72",
39
+ label: "RowWrapper"
40
+ }, styledOptions()))(rowBaseStyles, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9CYXJDaGFydC9CYXJSb3cudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRDbUIiLCJmaWxlIjoiLi4vLi4vc3JjL0JhckNoYXJ0L0JhclJvdy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MsIHN0eWxlZE9wdGlvbnMgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgTW91c2VFdmVudCwgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgRmxleEJveCB9IGZyb20gJy4uL0JveCc7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQge1xuICBCYWNrZ3JvdW5kQmFyLFxuICBCYXJXcmFwcGVyLFxuICBGb3JlZ3JvdW5kQmFyLFxuICBtaW5CYXJXaWR0aCxcbn0gZnJvbSAnLi9CYXIvZWxlbWVudHMnO1xuaW1wb3J0IHsgdXNlQmFyQ2hhcnRDb250ZXh0IH0gZnJvbSAnLi9CYXJDaGFydFByb3ZpZGVyJztcbmltcG9ydCB7IEJhclByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBjYWxjdWxhdGVCYXJXaWR0aCwgZ2V0VmFsdWVzU3VtbWFyeSB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCByb3dCYXNlU3R5bGVzID0gY3NzKHtcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgZ2FwOiAxNixcbiAgcHk6IDgsXG4gIHB4OiAwLFxuICBiZzogJ3RyYW5zcGFyZW50JyxcbiAgYm9yZGVyOiAnbm9uZScsXG4gIHRleHREZWNvcmF0aW9uOiAnbm9uZScsXG4gIGN1cnNvcjogJ2luaGVyaXQnLFxuICAnJjpmb2N1cyc6IHtcbiAgICBvdXRsaW5lOiAnbm9uZScsXG4gIH0sXG4gICcmOmZvY3VzLXZpc2libGUnOiB7XG4gICAgb3V0bGluZTogJzJweCBzb2xpZCcsXG4gICAgb3V0bGluZUNvbG9yOiAncHJpbWFyeScsXG4gICAgb3V0bGluZU9mZnNldDogJzJweCcsXG4gIH0sXG59KTtcblxuY29uc3QgaW50ZXJhY3RpdmVTdHlsZXMgPSBjc3Moe1xuICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgJyY6aG92ZXInOiB7XG4gICAgYmc6ICdiYWNrZ3JvdW5kLWhvdmVyJyxcbiAgfSxcbn0pO1xuXG5jb25zdCBSb3dXcmFwcGVyID0gc3R5bGVkKCdkaXYnLCBzdHlsZWRPcHRpb25zPCdkaXYnPigpKShyb3dCYXNlU3R5bGVzKTtcbmNvbnN0IFJvd0J1dHRvbiA9IHN0eWxlZCgnYnV0dG9uJywgc3R5bGVkT3B0aW9uczwnYnV0dG9uJz4oKSkoXG4gIHJvd0Jhc2VTdHlsZXMsXG4gIGludGVyYWN0aXZlU3R5bGVzXG4pO1xuY29uc3QgUm93QW5jaG9yID0gc3R5bGVkKCdhJywgc3R5bGVkT3B0aW9uczwnYSc+KCkpKFxuICByb3dCYXNlU3R5bGVzLFxuICBpbnRlcmFjdGl2ZVN0eWxlc1xuKTtcblxuZXhwb3J0IGludGVyZmFjZSBCYXJSb3dQcm9wcyBleHRlbmRzIEJhclByb3BzIHtcbiAgaW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBCYXJSb3cgPSBmb3J3YXJkUmVmPFxuICBIVE1MRGl2RWxlbWVudCB8IEhUTUxCdXR0b25FbGVtZW50IHwgSFRNTEFuY2hvckVsZW1lbnQsXG4gIEJhclJvd1Byb3BzXG4+KFxuICAoXG4gICAge1xuICAgICAgeUxhYmVsLFxuICAgICAgc2VyaWVzT25lVmFsdWUsXG4gICAgICBzZXJpZXNUd29WYWx1ZSxcbiAgICAgIGljb246IEljb24sXG4gICAgICBvbkNsaWNrLFxuICAgICAgaHJlZixcbiAgICAgIGluZGV4ID0gMCxcbiAgICB9LFxuICAgIHJlZlxuICApID0+IHtcbiAgICBjb25zdCB7IG1heFJhbmdlLCB1bml0LCBzdHlsZUNvbmZpZywgYW5pbWF0ZSB9ID0gdXNlQmFyQ2hhcnRDb250ZXh0KCk7XG5cbiAgICBjb25zdCBpc1N0YWNrZWQgPSBzZXJpZXNUd29WYWx1ZSAhPT0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IGlzU3RhY2tlZCA/IHNlcmllc1R3b1ZhbHVlIDogc2VyaWVzT25lVmFsdWU7XG5cbiAgICBjb25zdCBiYWNrZ3JvdW5kQmFyV2lkdGggPSBjYWxjdWxhdGVCYXJXaWR0aCh7XG4gICAgICB2YWx1ZTogZGlzcGxheVZhbHVlLFxuICAgICAgbWF4UmFuZ2UsXG4gICAgfSk7XG5cbiAgICBjb25zdCBmb3JlZ3JvdW5kQmFyV2lkdGggPSBpc1N0YWNrZWRcbiAgICAgID8gY2FsY3VsYXRlQmFyV2lkdGgoe1xuICAgICAgICAgIHZhbHVlOiBzZXJpZXNPbmVWYWx1ZSxcbiAgICAgICAgICBtYXhSYW5nZSxcbiAgICAgICAgfSlcbiAgICAgIDogMDtcblxuICAgIGNvbnN0IGJnV2lkdGhTdHIgPSBgJHtNYXRoLm1heChtaW5CYXJXaWR0aCwgYmFja2dyb3VuZEJhcldpZHRoKX0lYDtcbiAgICBjb25zdCBmZ1dpZHRoU3RyID0gYCR7TWF0aC5tYXgobWluQmFyV2lkdGgsIGZvcmVncm91bmRCYXJXaWR0aCl9JWA7XG5cbiAgICBjb25zdCB2YWx1ZXNTdW1tYXJ5ID0gZ2V0VmFsdWVzU3VtbWFyeSh7XG4gICAgICB5TGFiZWwsXG4gICAgICBzZXJpZXNPbmVWYWx1ZSxcbiAgICAgIHNlcmllc1R3b1ZhbHVlLFxuICAgICAgdW5pdCxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFuaW1hdGlvbkRlbGF5ID0gYW5pbWF0ZSA/IGluZGV4ICogMC4xIDogMDtcblxuICAgIGNvbnN0IHJvd0NvbnRlbnQgPSAoXG4gICAgICA8PlxuICAgICAgICA8RmxleEJveFxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGNvbG9yPXtzdHlsZUNvbmZpZy50ZXh0Q29sb3J9XG4gICAgICAgICAgZmxleFNocmluaz17MH1cbiAgICAgICAgICBnYXA9ezh9XG4gICAgICAgICAgbWluV2lkdGg9XCIyMDBweFwiXG4gICAgICAgID5cbiAgICAgICAgICB7SWNvbiAmJiA8SWNvbiBzaXplPXsxNn0gLz59XG4gICAgICAgICAgPFRleHQgZm9udFdlaWdodD0nYm9sZCcgdHJ1bmNhdGU9XCJlbGxpcHNpc1wiIHRydW5jYXRlTGluZXM9ezF9PlxuICAgICAgICAgICAge3lMYWJlbH1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgIDwvRmxleEJveD5cblxuICAgICAgICA8QmFyV3JhcHBlcj5cbiAgICAgICAgICA8QmFja2dyb3VuZEJhclxuICAgICAgICAgICAgYW5pbWF0ZT17YW5pbWF0ZSA/IHsgd2lkdGg6IGJnV2lkdGhTdHIgfSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGJnPXtzdHlsZUNvbmZpZy5iYWNrZ3JvdW5kQmFyQ29sb3J9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD1cImJhY2tncm91bmQtYmFyXCJcbiAgICAgICAgICAgIGluaXRpYWw9e2FuaW1hdGUgPyB7IHdpZHRoOiAnMCUnIH0gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICB0cmFuc2l0aW9uPXt7IGR1cmF0aW9uOiAwLjUsIGRlbGF5OiBhbmltYXRpb25EZWxheSB9fVxuICAgICAgICAgICAgd2lkdGg9eyFhbmltYXRlID8gYmdXaWR0aFN0ciA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtpc1N0YWNrZWQgJiYgKFxuICAgICAgICAgICAgPEZvcmVncm91bmRCYXJcbiAgICAgICAgICAgICAgYW5pbWF0ZT17YW5pbWF0ZSA/IHsgd2lkdGg6IGZnV2lkdGhTdHIgfSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgYmc9e3N0eWxlQ29uZmlnLmZvcmVncm91bmRCYXJDb2xvcn1cbiAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJmb3JlZ3JvdW5kLWJhclwiXG4gICAgICAgICAgICAgIGluaXRpYWw9e2FuaW1hdGUgPyB7IHdpZHRoOiAnMCUnIH0gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZHVyYXRpb246IDAuNSwgZGVsYXk6IGFuaW1hdGlvbkRlbGF5ICsgMC4yNSB9fVxuICAgICAgICAgICAgICB3aWR0aD17IWFuaW1hdGUgPyBmZ1dpZHRoU3RyIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L0JhcldyYXBwZXI+XG5cbiAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBmbGV4U2hyaW5rPXswfVxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiZmxleC1lbmRcIlxuICAgICAgICAgIG1pbldpZHRoPXt7IF86IDQwLCBzbTogNjAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxUZXh0IGNvbG9yPXtzdHlsZUNvbmZpZy50ZXh0Q29sb3J9IHZhcmlhbnQ9XCJwLXNtYWxsXCI+XG4gICAgICAgICAgICB7ZGlzcGxheVZhbHVlLnRvTG9jYWxlU3RyaW5nKCl9XG4gICAgICAgICAgICB7dW5pdCAmJiBgICR7dW5pdH1gfVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIGlmIChocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8bGk+XG4gICAgICAgICAgPFJvd0FuY2hvclxuICAgICAgICAgICAgYXJpYS1sYWJlbD17dmFsdWVzU3VtbWFyeX1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICByZWY9e3JlZiBhcyBNdXRhYmxlUmVmT2JqZWN0PEhUTUxBbmNob3JFbGVtZW50Pn1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cm93Q29udGVudH1cbiAgICAgICAgICA8L1Jvd0FuY2hvcj5cbiAgICAgICAgPC9saT5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKG9uQ2xpY2spIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxsaT5cbiAgICAgICAgICA8Um93QnV0dG9uXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXt2YWx1ZXNTdW1tYXJ5fVxuICAgICAgICAgICAgcmVmPXtyZWYgYXMgTXV0YWJsZVJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD59XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgICAgICBvbktleURvd249eyhlKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgIG9uQ2xpY2soZSBhcyB1bmtub3duIGFzIE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cm93Q29udGVudH1cbiAgICAgICAgICA8L1Jvd0J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxsaT5cbiAgICAgICAgPFJvd1dyYXBwZXJcbiAgICAgICAgICBhcmlhLWxhYmVsPXt2YWx1ZXNTdW1tYXJ5fVxuICAgICAgICAgIHJlZj17cmVmIGFzIE11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+fVxuICAgICAgICA+XG4gICAgICAgICAge3Jvd0NvbnRlbnR9XG4gICAgICAgIDwvUm93V3JhcHBlcj5cbiAgICAgIDwvbGk+XG4gICAgKTtcbiAgfVxuKTtcbiJdfQ== */");
41
+ const RowButton = /*#__PURE__*/_styled('button', _extends({}, {
42
+ target: "eew7ix71",
43
+ label: "RowButton"
44
+ }, styledOptions()))(rowBaseStyles, interactiveStyles, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9CYXJDaGFydC9CYXJSb3cudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZDa0IiLCJmaWxlIjoiLi4vLi4vc3JjL0JhckNoYXJ0L0JhclJvdy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MsIHN0eWxlZE9wdGlvbnMgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgTW91c2VFdmVudCwgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgRmxleEJveCB9IGZyb20gJy4uL0JveCc7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQge1xuICBCYWNrZ3JvdW5kQmFyLFxuICBCYXJXcmFwcGVyLFxuICBGb3JlZ3JvdW5kQmFyLFxuICBtaW5CYXJXaWR0aCxcbn0gZnJvbSAnLi9CYXIvZWxlbWVudHMnO1xuaW1wb3J0IHsgdXNlQmFyQ2hhcnRDb250ZXh0IH0gZnJvbSAnLi9CYXJDaGFydFByb3ZpZGVyJztcbmltcG9ydCB7IEJhclByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBjYWxjdWxhdGVCYXJXaWR0aCwgZ2V0VmFsdWVzU3VtbWFyeSB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCByb3dCYXNlU3R5bGVzID0gY3NzKHtcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgZ2FwOiAxNixcbiAgcHk6IDgsXG4gIHB4OiAwLFxuICBiZzogJ3RyYW5zcGFyZW50JyxcbiAgYm9yZGVyOiAnbm9uZScsXG4gIHRleHREZWNvcmF0aW9uOiAnbm9uZScsXG4gIGN1cnNvcjogJ2luaGVyaXQnLFxuICAnJjpmb2N1cyc6IHtcbiAgICBvdXRsaW5lOiAnbm9uZScsXG4gIH0sXG4gICcmOmZvY3VzLXZpc2libGUnOiB7XG4gICAgb3V0bGluZTogJzJweCBzb2xpZCcsXG4gICAgb3V0bGluZUNvbG9yOiAncHJpbWFyeScsXG4gICAgb3V0bGluZU9mZnNldDogJzJweCcsXG4gIH0sXG59KTtcblxuY29uc3QgaW50ZXJhY3RpdmVTdHlsZXMgPSBjc3Moe1xuICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgJyY6aG92ZXInOiB7XG4gICAgYmc6ICdiYWNrZ3JvdW5kLWhvdmVyJyxcbiAgfSxcbn0pO1xuXG5jb25zdCBSb3dXcmFwcGVyID0gc3R5bGVkKCdkaXYnLCBzdHlsZWRPcHRpb25zPCdkaXYnPigpKShyb3dCYXNlU3R5bGVzKTtcbmNvbnN0IFJvd0J1dHRvbiA9IHN0eWxlZCgnYnV0dG9uJywgc3R5bGVkT3B0aW9uczwnYnV0dG9uJz4oKSkoXG4gIHJvd0Jhc2VTdHlsZXMsXG4gIGludGVyYWN0aXZlU3R5bGVzXG4pO1xuY29uc3QgUm93QW5jaG9yID0gc3R5bGVkKCdhJywgc3R5bGVkT3B0aW9uczwnYSc+KCkpKFxuICByb3dCYXNlU3R5bGVzLFxuICBpbnRlcmFjdGl2ZVN0eWxlc1xuKTtcblxuZXhwb3J0IGludGVyZmFjZSBCYXJSb3dQcm9wcyBleHRlbmRzIEJhclByb3BzIHtcbiAgaW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBCYXJSb3cgPSBmb3J3YXJkUmVmPFxuICBIVE1MRGl2RWxlbWVudCB8IEhUTUxCdXR0b25FbGVtZW50IHwgSFRNTEFuY2hvckVsZW1lbnQsXG4gIEJhclJvd1Byb3BzXG4+KFxuICAoXG4gICAge1xuICAgICAgeUxhYmVsLFxuICAgICAgc2VyaWVzT25lVmFsdWUsXG4gICAgICBzZXJpZXNUd29WYWx1ZSxcbiAgICAgIGljb246IEljb24sXG4gICAgICBvbkNsaWNrLFxuICAgICAgaHJlZixcbiAgICAgIGluZGV4ID0gMCxcbiAgICB9LFxuICAgIHJlZlxuICApID0+IHtcbiAgICBjb25zdCB7IG1heFJhbmdlLCB1bml0LCBzdHlsZUNvbmZpZywgYW5pbWF0ZSB9ID0gdXNlQmFyQ2hhcnRDb250ZXh0KCk7XG5cbiAgICBjb25zdCBpc1N0YWNrZWQgPSBzZXJpZXNUd29WYWx1ZSAhPT0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IGlzU3RhY2tlZCA/IHNlcmllc1R3b1ZhbHVlIDogc2VyaWVzT25lVmFsdWU7XG5cbiAgICBjb25zdCBiYWNrZ3JvdW5kQmFyV2lkdGggPSBjYWxjdWxhdGVCYXJXaWR0aCh7XG4gICAgICB2YWx1ZTogZGlzcGxheVZhbHVlLFxuICAgICAgbWF4UmFuZ2UsXG4gICAgfSk7XG5cbiAgICBjb25zdCBmb3JlZ3JvdW5kQmFyV2lkdGggPSBpc1N0YWNrZWRcbiAgICAgID8gY2FsY3VsYXRlQmFyV2lkdGgoe1xuICAgICAgICAgIHZhbHVlOiBzZXJpZXNPbmVWYWx1ZSxcbiAgICAgICAgICBtYXhSYW5nZSxcbiAgICAgICAgfSlcbiAgICAgIDogMDtcblxuICAgIGNvbnN0IGJnV2lkdGhTdHIgPSBgJHtNYXRoLm1heChtaW5CYXJXaWR0aCwgYmFja2dyb3VuZEJhcldpZHRoKX0lYDtcbiAgICBjb25zdCBmZ1dpZHRoU3RyID0gYCR7TWF0aC5tYXgobWluQmFyV2lkdGgsIGZvcmVncm91bmRCYXJXaWR0aCl9JWA7XG5cbiAgICBjb25zdCB2YWx1ZXNTdW1tYXJ5ID0gZ2V0VmFsdWVzU3VtbWFyeSh7XG4gICAgICB5TGFiZWwsXG4gICAgICBzZXJpZXNPbmVWYWx1ZSxcbiAgICAgIHNlcmllc1R3b1ZhbHVlLFxuICAgICAgdW5pdCxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFuaW1hdGlvbkRlbGF5ID0gYW5pbWF0ZSA/IGluZGV4ICogMC4xIDogMDtcblxuICAgIGNvbnN0IHJvd0NvbnRlbnQgPSAoXG4gICAgICA8PlxuICAgICAgICA8RmxleEJveFxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGNvbG9yPXtzdHlsZUNvbmZpZy50ZXh0Q29sb3J9XG4gICAgICAgICAgZmxleFNocmluaz17MH1cbiAgICAgICAgICBnYXA9ezh9XG4gICAgICAgICAgbWluV2lkdGg9XCIyMDBweFwiXG4gICAgICAgID5cbiAgICAgICAgICB7SWNvbiAmJiA8SWNvbiBzaXplPXsxNn0gLz59XG4gICAgICAgICAgPFRleHQgZm9udFdlaWdodD0nYm9sZCcgdHJ1bmNhdGU9XCJlbGxpcHNpc1wiIHRydW5jYXRlTGluZXM9ezF9PlxuICAgICAgICAgICAge3lMYWJlbH1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgIDwvRmxleEJveD5cblxuICAgICAgICA8QmFyV3JhcHBlcj5cbiAgICAgICAgICA8QmFja2dyb3VuZEJhclxuICAgICAgICAgICAgYW5pbWF0ZT17YW5pbWF0ZSA/IHsgd2lkdGg6IGJnV2lkdGhTdHIgfSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGJnPXtzdHlsZUNvbmZpZy5iYWNrZ3JvdW5kQmFyQ29sb3J9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD1cImJhY2tncm91bmQtYmFyXCJcbiAgICAgICAgICAgIGluaXRpYWw9e2FuaW1hdGUgPyB7IHdpZHRoOiAnMCUnIH0gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICB0cmFuc2l0aW9uPXt7IGR1cmF0aW9uOiAwLjUsIGRlbGF5OiBhbmltYXRpb25EZWxheSB9fVxuICAgICAgICAgICAgd2lkdGg9eyFhbmltYXRlID8gYmdXaWR0aFN0ciA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtpc1N0YWNrZWQgJiYgKFxuICAgICAgICAgICAgPEZvcmVncm91bmRCYXJcbiAgICAgICAgICAgICAgYW5pbWF0ZT17YW5pbWF0ZSA/IHsgd2lkdGg6IGZnV2lkdGhTdHIgfSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgYmc9e3N0eWxlQ29uZmlnLmZvcmVncm91bmRCYXJDb2xvcn1cbiAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJmb3JlZ3JvdW5kLWJhclwiXG4gICAgICAgICAgICAgIGluaXRpYWw9e2FuaW1hdGUgPyB7IHdpZHRoOiAnMCUnIH0gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZHVyYXRpb246IDAuNSwgZGVsYXk6IGFuaW1hdGlvbkRlbGF5ICsgMC4yNSB9fVxuICAgICAgICAgICAgICB3aWR0aD17IWFuaW1hdGUgPyBmZ1dpZHRoU3RyIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L0JhcldyYXBwZXI+XG5cbiAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBmbGV4U2hyaW5rPXswfVxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiZmxleC1lbmRcIlxuICAgICAgICAgIG1pbldpZHRoPXt7IF86IDQwLCBzbTogNjAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxUZXh0IGNvbG9yPXtzdHlsZUNvbmZpZy50ZXh0Q29sb3J9IHZhcmlhbnQ9XCJwLXNtYWxsXCI+XG4gICAgICAgICAgICB7ZGlzcGxheVZhbHVlLnRvTG9jYWxlU3RyaW5nKCl9XG4gICAgICAgICAgICB7dW5pdCAmJiBgICR7dW5pdH1gfVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIGlmIChocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8bGk+XG4gICAgICAgICAgPFJvd0FuY2hvclxuICAgICAgICAgICAgYXJpYS1sYWJlbD17dmFsdWVzU3VtbWFyeX1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICByZWY9e3JlZiBhcyBNdXRhYmxlUmVmT2JqZWN0PEhUTUxBbmNob3JFbGVtZW50Pn1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cm93Q29udGVudH1cbiAgICAgICAgICA8L1Jvd0FuY2hvcj5cbiAgICAgICAgPC9saT5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKG9uQ2xpY2spIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxsaT5cbiAgICAgICAgICA8Um93QnV0dG9uXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXt2YWx1ZXNTdW1tYXJ5fVxuICAgICAgICAgICAgcmVmPXtyZWYgYXMgTXV0YWJsZVJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD59XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgICAgICBvbktleURvd249eyhlKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgIG9uQ2xpY2soZSBhcyB1bmtub3duIGFzIE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cm93Q29udGVudH1cbiAgICAgICAgICA8L1Jvd0J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxsaT5cbiAgICAgICAgPFJvd1dyYXBwZXJcbiAgICAgICAgICBhcmlhLWxhYmVsPXt2YWx1ZXNTdW1tYXJ5fVxuICAgICAgICAgIHJlZj17cmVmIGFzIE11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+fVxuICAgICAgICA+XG4gICAgICAgICAge3Jvd0NvbnRlbnR9XG4gICAgICAgIDwvUm93V3JhcHBlcj5cbiAgICAgIDwvbGk+XG4gICAgKTtcbiAgfVxuKTtcbiJdfQ== */");
45
+ const RowAnchor = /*#__PURE__*/_styled('a', _extends({}, {
46
+ target: "eew7ix70",
47
+ label: "RowAnchor"
48
+ }, styledOptions()))(rowBaseStyles, interactiveStyles, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9CYXJDaGFydC9CYXJSb3cudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlEa0IiLCJmaWxlIjoiLi4vLi4vc3JjL0JhckNoYXJ0L0JhclJvdy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MsIHN0eWxlZE9wdGlvbnMgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgTW91c2VFdmVudCwgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgRmxleEJveCB9IGZyb20gJy4uL0JveCc7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQge1xuICBCYWNrZ3JvdW5kQmFyLFxuICBCYXJXcmFwcGVyLFxuICBGb3JlZ3JvdW5kQmFyLFxuICBtaW5CYXJXaWR0aCxcbn0gZnJvbSAnLi9CYXIvZWxlbWVudHMnO1xuaW1wb3J0IHsgdXNlQmFyQ2hhcnRDb250ZXh0IH0gZnJvbSAnLi9CYXJDaGFydFByb3ZpZGVyJztcbmltcG9ydCB7IEJhclByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBjYWxjdWxhdGVCYXJXaWR0aCwgZ2V0VmFsdWVzU3VtbWFyeSB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCByb3dCYXNlU3R5bGVzID0gY3NzKHtcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgZ2FwOiAxNixcbiAgcHk6IDgsXG4gIHB4OiAwLFxuICBiZzogJ3RyYW5zcGFyZW50JyxcbiAgYm9yZGVyOiAnbm9uZScsXG4gIHRleHREZWNvcmF0aW9uOiAnbm9uZScsXG4gIGN1cnNvcjogJ2luaGVyaXQnLFxuICAnJjpmb2N1cyc6IHtcbiAgICBvdXRsaW5lOiAnbm9uZScsXG4gIH0sXG4gICcmOmZvY3VzLXZpc2libGUnOiB7XG4gICAgb3V0bGluZTogJzJweCBzb2xpZCcsXG4gICAgb3V0bGluZUNvbG9yOiAncHJpbWFyeScsXG4gICAgb3V0bGluZU9mZnNldDogJzJweCcsXG4gIH0sXG59KTtcblxuY29uc3QgaW50ZXJhY3RpdmVTdHlsZXMgPSBjc3Moe1xuICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgJyY6aG92ZXInOiB7XG4gICAgYmc6ICdiYWNrZ3JvdW5kLWhvdmVyJyxcbiAgfSxcbn0pO1xuXG5jb25zdCBSb3dXcmFwcGVyID0gc3R5bGVkKCdkaXYnLCBzdHlsZWRPcHRpb25zPCdkaXYnPigpKShyb3dCYXNlU3R5bGVzKTtcbmNvbnN0IFJvd0J1dHRvbiA9IHN0eWxlZCgnYnV0dG9uJywgc3R5bGVkT3B0aW9uczwnYnV0dG9uJz4oKSkoXG4gIHJvd0Jhc2VTdHlsZXMsXG4gIGludGVyYWN0aXZlU3R5bGVzXG4pO1xuY29uc3QgUm93QW5jaG9yID0gc3R5bGVkKCdhJywgc3R5bGVkT3B0aW9uczwnYSc+KCkpKFxuICByb3dCYXNlU3R5bGVzLFxuICBpbnRlcmFjdGl2ZVN0eWxlc1xuKTtcblxuZXhwb3J0IGludGVyZmFjZSBCYXJSb3dQcm9wcyBleHRlbmRzIEJhclByb3BzIHtcbiAgaW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBCYXJSb3cgPSBmb3J3YXJkUmVmPFxuICBIVE1MRGl2RWxlbWVudCB8IEhUTUxCdXR0b25FbGVtZW50IHwgSFRNTEFuY2hvckVsZW1lbnQsXG4gIEJhclJvd1Byb3BzXG4+KFxuICAoXG4gICAge1xuICAgICAgeUxhYmVsLFxuICAgICAgc2VyaWVzT25lVmFsdWUsXG4gICAgICBzZXJpZXNUd29WYWx1ZSxcbiAgICAgIGljb246IEljb24sXG4gICAgICBvbkNsaWNrLFxuICAgICAgaHJlZixcbiAgICAgIGluZGV4ID0gMCxcbiAgICB9LFxuICAgIHJlZlxuICApID0+IHtcbiAgICBjb25zdCB7IG1heFJhbmdlLCB1bml0LCBzdHlsZUNvbmZpZywgYW5pbWF0ZSB9ID0gdXNlQmFyQ2hhcnRDb250ZXh0KCk7XG5cbiAgICBjb25zdCBpc1N0YWNrZWQgPSBzZXJpZXNUd29WYWx1ZSAhPT0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IGlzU3RhY2tlZCA/IHNlcmllc1R3b1ZhbHVlIDogc2VyaWVzT25lVmFsdWU7XG5cbiAgICBjb25zdCBiYWNrZ3JvdW5kQmFyV2lkdGggPSBjYWxjdWxhdGVCYXJXaWR0aCh7XG4gICAgICB2YWx1ZTogZGlzcGxheVZhbHVlLFxuICAgICAgbWF4UmFuZ2UsXG4gICAgfSk7XG5cbiAgICBjb25zdCBmb3JlZ3JvdW5kQmFyV2lkdGggPSBpc1N0YWNrZWRcbiAgICAgID8gY2FsY3VsYXRlQmFyV2lkdGgoe1xuICAgICAgICAgIHZhbHVlOiBzZXJpZXNPbmVWYWx1ZSxcbiAgICAgICAgICBtYXhSYW5nZSxcbiAgICAgICAgfSlcbiAgICAgIDogMDtcblxuICAgIGNvbnN0IGJnV2lkdGhTdHIgPSBgJHtNYXRoLm1heChtaW5CYXJXaWR0aCwgYmFja2dyb3VuZEJhcldpZHRoKX0lYDtcbiAgICBjb25zdCBmZ1dpZHRoU3RyID0gYCR7TWF0aC5tYXgobWluQmFyV2lkdGgsIGZvcmVncm91bmRCYXJXaWR0aCl9JWA7XG5cbiAgICBjb25zdCB2YWx1ZXNTdW1tYXJ5ID0gZ2V0VmFsdWVzU3VtbWFyeSh7XG4gICAgICB5TGFiZWwsXG4gICAgICBzZXJpZXNPbmVWYWx1ZSxcbiAgICAgIHNlcmllc1R3b1ZhbHVlLFxuICAgICAgdW5pdCxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFuaW1hdGlvbkRlbGF5ID0gYW5pbWF0ZSA/IGluZGV4ICogMC4xIDogMDtcblxuICAgIGNvbnN0IHJvd0NvbnRlbnQgPSAoXG4gICAgICA8PlxuICAgICAgICA8RmxleEJveFxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGNvbG9yPXtzdHlsZUNvbmZpZy50ZXh0Q29sb3J9XG4gICAgICAgICAgZmxleFNocmluaz17MH1cbiAgICAgICAgICBnYXA9ezh9XG4gICAgICAgICAgbWluV2lkdGg9XCIyMDBweFwiXG4gICAgICAgID5cbiAgICAgICAgICB7SWNvbiAmJiA8SWNvbiBzaXplPXsxNn0gLz59XG4gICAgICAgICAgPFRleHQgZm9udFdlaWdodD0nYm9sZCcgdHJ1bmNhdGU9XCJlbGxpcHNpc1wiIHRydW5jYXRlTGluZXM9ezF9PlxuICAgICAgICAgICAge3lMYWJlbH1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgIDwvRmxleEJveD5cblxuICAgICAgICA8QmFyV3JhcHBlcj5cbiAgICAgICAgICA8QmFja2dyb3VuZEJhclxuICAgICAgICAgICAgYW5pbWF0ZT17YW5pbWF0ZSA/IHsgd2lkdGg6IGJnV2lkdGhTdHIgfSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGJnPXtzdHlsZUNvbmZpZy5iYWNrZ3JvdW5kQmFyQ29sb3J9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD1cImJhY2tncm91bmQtYmFyXCJcbiAgICAgICAgICAgIGluaXRpYWw9e2FuaW1hdGUgPyB7IHdpZHRoOiAnMCUnIH0gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICB0cmFuc2l0aW9uPXt7IGR1cmF0aW9uOiAwLjUsIGRlbGF5OiBhbmltYXRpb25EZWxheSB9fVxuICAgICAgICAgICAgd2lkdGg9eyFhbmltYXRlID8gYmdXaWR0aFN0ciA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtpc1N0YWNrZWQgJiYgKFxuICAgICAgICAgICAgPEZvcmVncm91bmRCYXJcbiAgICAgICAgICAgICAgYW5pbWF0ZT17YW5pbWF0ZSA/IHsgd2lkdGg6IGZnV2lkdGhTdHIgfSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgYmc9e3N0eWxlQ29uZmlnLmZvcmVncm91bmRCYXJDb2xvcn1cbiAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJmb3JlZ3JvdW5kLWJhclwiXG4gICAgICAgICAgICAgIGluaXRpYWw9e2FuaW1hdGUgPyB7IHdpZHRoOiAnMCUnIH0gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZHVyYXRpb246IDAuNSwgZGVsYXk6IGFuaW1hdGlvbkRlbGF5ICsgMC4yNSB9fVxuICAgICAgICAgICAgICB3aWR0aD17IWFuaW1hdGUgPyBmZ1dpZHRoU3RyIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L0JhcldyYXBwZXI+XG5cbiAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBmbGV4U2hyaW5rPXswfVxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiZmxleC1lbmRcIlxuICAgICAgICAgIG1pbldpZHRoPXt7IF86IDQwLCBzbTogNjAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxUZXh0IGNvbG9yPXtzdHlsZUNvbmZpZy50ZXh0Q29sb3J9IHZhcmlhbnQ9XCJwLXNtYWxsXCI+XG4gICAgICAgICAgICB7ZGlzcGxheVZhbHVlLnRvTG9jYWxlU3RyaW5nKCl9XG4gICAgICAgICAgICB7dW5pdCAmJiBgICR7dW5pdH1gfVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIGlmIChocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8bGk+XG4gICAgICAgICAgPFJvd0FuY2hvclxuICAgICAgICAgICAgYXJpYS1sYWJlbD17dmFsdWVzU3VtbWFyeX1cbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICByZWY9e3JlZiBhcyBNdXRhYmxlUmVmT2JqZWN0PEhUTUxBbmNob3JFbGVtZW50Pn1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cm93Q29udGVudH1cbiAgICAgICAgICA8L1Jvd0FuY2hvcj5cbiAgICAgICAgPC9saT5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKG9uQ2xpY2spIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxsaT5cbiAgICAgICAgICA8Um93QnV0dG9uXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXt2YWx1ZXNTdW1tYXJ5fVxuICAgICAgICAgICAgcmVmPXtyZWYgYXMgTXV0YWJsZVJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD59XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgICAgICBvbktleURvd249eyhlKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgIG9uQ2xpY2soZSBhcyB1bmtub3duIGFzIE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cm93Q29udGVudH1cbiAgICAgICAgICA8L1Jvd0J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxsaT5cbiAgICAgICAgPFJvd1dyYXBwZXJcbiAgICAgICAgICBhcmlhLWxhYmVsPXt2YWx1ZXNTdW1tYXJ5fVxuICAgICAgICAgIHJlZj17cmVmIGFzIE11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+fVxuICAgICAgICA+XG4gICAgICAgICAge3Jvd0NvbnRlbnR9XG4gICAgICAgIDwvUm93V3JhcHBlcj5cbiAgICAgIDwvbGk+XG4gICAgKTtcbiAgfVxuKTtcbiJdfQ== */");
49
+ export const BarRow = /*#__PURE__*/forwardRef(({
50
+ yLabel,
51
+ seriesOneValue,
52
+ seriesTwoValue,
53
+ icon: Icon,
54
+ onClick,
55
+ href,
56
+ index = 0
57
+ }, ref) => {
58
+ const {
59
+ maxRange,
60
+ unit,
61
+ styleConfig,
62
+ animate
63
+ } = useBarChartContext();
64
+ const isStacked = seriesTwoValue !== undefined;
65
+ const displayValue = isStacked ? seriesTwoValue : seriesOneValue;
66
+ const backgroundBarWidth = calculateBarWidth({
67
+ value: displayValue,
68
+ maxRange
69
+ });
70
+ const foregroundBarWidth = isStacked ? calculateBarWidth({
71
+ value: seriesOneValue,
72
+ maxRange
73
+ }) : 0;
74
+ const bgWidthStr = `${Math.max(minBarWidth, backgroundBarWidth)}%`;
75
+ const fgWidthStr = `${Math.max(minBarWidth, foregroundBarWidth)}%`;
76
+ const valuesSummary = getValuesSummary({
77
+ yLabel,
78
+ seriesOneValue,
79
+ seriesTwoValue,
80
+ unit
81
+ });
82
+ const animationDelay = animate ? index * 0.1 : 0;
83
+ const rowContent = /*#__PURE__*/_jsxs(_Fragment, {
84
+ children: [/*#__PURE__*/_jsxs(FlexBox, {
85
+ alignItems: "center",
86
+ color: styleConfig.textColor,
87
+ flexShrink: 0,
88
+ gap: 8,
89
+ minWidth: "200px",
90
+ children: [Icon && /*#__PURE__*/_jsx(Icon, {
91
+ size: 16
92
+ }), /*#__PURE__*/_jsx(Text, {
93
+ fontWeight: "bold",
94
+ truncate: "ellipsis",
95
+ truncateLines: 1,
96
+ children: yLabel
97
+ })]
98
+ }), /*#__PURE__*/_jsxs(BarWrapper, {
99
+ children: [/*#__PURE__*/_jsx(BackgroundBar, {
100
+ animate: animate ? {
101
+ width: bgWidthStr
102
+ } : undefined,
103
+ bg: styleConfig.backgroundBarColor,
104
+ "data-testid": "background-bar",
105
+ initial: animate ? {
106
+ width: '0%'
107
+ } : undefined,
108
+ transition: {
109
+ duration: 0.5,
110
+ delay: animationDelay
111
+ },
112
+ width: !animate ? bgWidthStr : undefined
113
+ }), isStacked && /*#__PURE__*/_jsx(ForegroundBar, {
114
+ animate: animate ? {
115
+ width: fgWidthStr
116
+ } : undefined,
117
+ bg: styleConfig.foregroundBarColor,
118
+ "data-testid": "foreground-bar",
119
+ initial: animate ? {
120
+ width: '0%'
121
+ } : undefined,
122
+ transition: {
123
+ duration: 0.5,
124
+ delay: animationDelay + 0.25
125
+ },
126
+ width: !animate ? fgWidthStr : undefined
127
+ })]
128
+ }), /*#__PURE__*/_jsx(FlexBox, {
129
+ alignItems: "center",
130
+ flexShrink: 0,
131
+ justifyContent: "flex-end",
132
+ minWidth: {
133
+ _: 40,
134
+ sm: 60
135
+ },
136
+ children: /*#__PURE__*/_jsxs(Text, {
137
+ color: styleConfig.textColor,
138
+ variant: "p-small",
139
+ children: [displayValue.toLocaleString(), unit && ` ${unit}`]
140
+ })
141
+ })]
142
+ });
143
+ if (href) {
144
+ return /*#__PURE__*/_jsx("li", {
145
+ children: /*#__PURE__*/_jsx(RowAnchor, {
146
+ "aria-label": valuesSummary,
147
+ href: href,
148
+ ref: ref,
149
+ children: rowContent
150
+ })
151
+ });
152
+ }
153
+ if (onClick) {
154
+ return /*#__PURE__*/_jsx("li", {
155
+ children: /*#__PURE__*/_jsx(RowButton, {
156
+ "aria-label": valuesSummary,
157
+ ref: ref,
158
+ type: "button",
159
+ onClick: onClick,
160
+ onKeyDown: e => {
161
+ if (e.key === 'Enter') {
162
+ onClick(e);
163
+ }
164
+ },
165
+ children: rowContent
166
+ })
167
+ });
168
+ }
169
+ return /*#__PURE__*/_jsx("li", {
170
+ children: /*#__PURE__*/_jsx(RowWrapper, {
171
+ "aria-label": valuesSummary,
172
+ ref: ref,
173
+ children: rowContent
174
+ })
175
+ });
176
+ });
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export interface GridLinesProps {
3
+ tickCount: number;
4
+ }
5
+ export declare const GridLines: React.FC<GridLinesProps>;
@@ -0,0 +1,45 @@
1
+ import _styled from "@emotion/styled/base";
2
+ import { css } from '@codecademy/gamut-styles';
3
+ import { Box } from '../Box';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ const GridLineContainer = /*#__PURE__*/_styled(Box, {
6
+ target: "e1y7txrp1",
7
+ label: "GridLineContainer"
8
+ })(css({
9
+ position: 'absolute',
10
+ top: 0,
11
+ left: 0,
12
+ right: 0,
13
+ bottom: 0,
14
+ display: {
15
+ _: 'none',
16
+ sm: 'flex'
17
+ },
18
+ pointerEvents: 'none',
19
+ zIndex: 0
20
+ }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9CYXJDaGFydC9HcmlkTGluZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUswQiIsImZpbGUiOiIuLi8uLi9zcmMvQmFyQ2hhcnQvR3JpZExpbmVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7IEJveCB9IGZyb20gJy4uL0JveCc7XG5cbmNvbnN0IEdyaWRMaW5lQ29udGFpbmVyID0gc3R5bGVkKEJveCkoXG4gIGNzcyh7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdG9wOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgcmlnaHQ6IDAsXG4gICAgYm90dG9tOiAwLFxuICAgIGRpc3BsYXk6IHsgXzogJ25vbmUnLCBzbTogJ2ZsZXgnIH0sXG4gICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgIHpJbmRleDogMCxcbiAgfSlcbik7XG5cbmNvbnN0IEdyaWRMaW5lID0gc3R5bGVkKEJveCkoXG4gIGNzcyh7XG4gICAgYm9yZGVyTGVmdDogMSxcbiAgICBib3JkZXJDb2xvckxlZnQ6ICdiYWNrZ3JvdW5kLWRpc2FibGVkJyxcbiAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICBmbGV4OiAxLFxuICAgICcmOmZpcnN0LW9mLXR5cGUnOiB7XG4gICAgICBib3JkZXJMZWZ0OiAnbm9uZScsXG4gICAgfSxcbiAgfSlcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZExpbmVzUHJvcHMge1xuICB0aWNrQ291bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IEdyaWRMaW5lczogUmVhY3QuRkM8R3JpZExpbmVzUHJvcHM+ID0gKHsgdGlja0NvdW50IH0pID0+IHtcbiAgY29uc3QgbGluZXMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aWNrQ291bnQgfSwgKF8sIGkpID0+IChcbiAgICA8R3JpZExpbmUgYXJpYS1oaWRkZW4ga2V5PXtpfSAvPlxuICApKTtcblxuICByZXR1cm4gPEdyaWRMaW5lQ29udGFpbmVyIGFyaWEtaGlkZGVuPntsaW5lc308L0dyaWRMaW5lQ29udGFpbmVyPjtcbn07XG4iXX0= */");
21
+ const GridLine = /*#__PURE__*/_styled(Box, {
22
+ target: "e1y7txrp0",
23
+ label: "GridLine"
24
+ })(css({
25
+ borderLeft: 1,
26
+ borderColorLeft: 'background-disabled',
27
+ height: '100%',
28
+ flex: 1,
29
+ '&:first-of-type': {
30
+ borderLeft: 'none'
31
+ }
32
+ }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9CYXJDaGFydC9HcmlkTGluZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCaUIiLCJmaWxlIjoiLi4vLi4vc3JjL0JhckNoYXJ0L0dyaWRMaW5lcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuXG5pbXBvcnQgeyBCb3ggfSBmcm9tICcuLi9Cb3gnO1xuXG5jb25zdCBHcmlkTGluZUNvbnRhaW5lciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHRvcDogMCxcbiAgICBsZWZ0OiAwLFxuICAgIHJpZ2h0OiAwLFxuICAgIGJvdHRvbTogMCxcbiAgICBkaXNwbGF5OiB7IF86ICdub25lJywgc206ICdmbGV4JyB9LFxuICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICB6SW5kZXg6IDAsXG4gIH0pXG4pO1xuXG5jb25zdCBHcmlkTGluZSA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGJvcmRlckxlZnQ6IDEsXG4gICAgYm9yZGVyQ29sb3JMZWZ0OiAnYmFja2dyb3VuZC1kaXNhYmxlZCcsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgZmxleDogMSxcbiAgICAnJjpmaXJzdC1vZi10eXBlJzoge1xuICAgICAgYm9yZGVyTGVmdDogJ25vbmUnLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRMaW5lc1Byb3BzIHtcbiAgdGlja0NvdW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBHcmlkTGluZXM6IFJlYWN0LkZDPEdyaWRMaW5lc1Byb3BzPiA9ICh7IHRpY2tDb3VudCB9KSA9PiB7XG4gIGNvbnN0IGxpbmVzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogdGlja0NvdW50IH0sIChfLCBpKSA9PiAoXG4gICAgPEdyaWRMaW5lIGFyaWEtaGlkZGVuIGtleT17aX0gLz5cbiAgKSk7XG5cbiAgcmV0dXJuIDxHcmlkTGluZUNvbnRhaW5lciBhcmlhLWhpZGRlbj57bGluZXN9PC9HcmlkTGluZUNvbnRhaW5lcj47XG59O1xuIl19 */");
33
+ export const GridLines = ({
34
+ tickCount
35
+ }) => {
36
+ const lines = Array.from({
37
+ length: tickCount
38
+ }, (_, i) => /*#__PURE__*/_jsx(GridLine, {
39
+ "aria-hidden": true
40
+ }, i));
41
+ return /*#__PURE__*/_jsx(GridLineContainer, {
42
+ "aria-hidden": true,
43
+ children: lines
44
+ });
45
+ };
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ export interface ScaleChartHeaderProps {
3
+ /** Minimum value on the scale */
4
+ min: number;
5
+ /** Maximum value on the scale */
6
+ max: number;
7
+ /** Number of labels to display */
8
+ labelCount: number;
9
+ }
10
+ export declare const ScaleChartHeader: React.FC<ScaleChartHeaderProps>;
@@ -0,0 +1,55 @@
1
+ import _styled from "@emotion/styled/base";
2
+ import { css } from '@codecademy/gamut-styles';
3
+ import { FlexBox } from '../Box';
4
+ import { Text } from '../Typography';
5
+ import { useBarChartContext } from './BarChartProvider';
6
+ import { formatNumberUSCompact, getLabel } from './utils';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ const StyledLabelText = /*#__PURE__*/_styled(Text, {
9
+ target: "egjxop0",
10
+ label: "StyledLabelText"
11
+ })(css({
12
+ flex: 1
13
+ }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9CYXJDaGFydC9TY2FsZUNoYXJ0SGVhZGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQndCIiwiZmlsZSI6Ii4uLy4uL3NyYy9CYXJDaGFydC9TY2FsZUNoYXJ0SGVhZGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7IEZsZXhCb3ggfSBmcm9tICcuLi9Cb3gnO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgdXNlQmFyQ2hhcnRDb250ZXh0IH0gZnJvbSAnLi9CYXJDaGFydFByb3ZpZGVyJztcbmltcG9ydCB7IGZvcm1hdE51bWJlclVTQ29tcGFjdCwgZ2V0TGFiZWwgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBTY2FsZUNoYXJ0SGVhZGVyUHJvcHMge1xuICAvKiogTWluaW11bSB2YWx1ZSBvbiB0aGUgc2NhbGUgKi9cbiAgbWluOiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIHZhbHVlIG9uIHRoZSBzY2FsZSAqL1xuICBtYXg6IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiBsYWJlbHMgdG8gZGlzcGxheSAqL1xuICBsYWJlbENvdW50OiBudW1iZXI7XG59XG5cbmNvbnN0IFN0eWxlZExhYmVsVGV4dCA9IHN0eWxlZChUZXh0KShcbiAgY3NzKHtcbiAgICBmbGV4OiAxLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNjYWxlQ2hhcnRIZWFkZXI6IFJlYWN0LkZDPFNjYWxlQ2hhcnRIZWFkZXJQcm9wcz4gPSAoe1xuICBsYWJlbENvdW50LFxuICBtYXgsXG59KSA9PiB7XG4gIGNvbnN0IHsgc3R5bGVDb25maWcgfSA9IHVzZUJhckNoYXJ0Q29udGV4dCgpO1xuXG4gIGNvbnN0IHNjYWxlTGFiZWxzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogbGFiZWxDb3VudCB9LCAoXywgaSkgPT4gKFxuICAgIDxTdHlsZWRMYWJlbFRleHRcbiAgICAgIGRhdGEtdGVzdGlkPVwiY2hhcnQtaGVhZGVyLWxhYmVsXCJcbiAgICAgIGtleT17aX1cbiAgICAgIHRleHRBbGlnbj1cImNlbnRlclwiXG4gICAgICB0ZXh0Q29sb3I9e3N0eWxlQ29uZmlnLnRleHRDb2xvcn1cbiAgICAgIHZhcmlhbnQ9XCJwLXNtYWxsXCJcbiAgICA+XG4gICAgICB7Zm9ybWF0TnVtYmVyVVNDb21wYWN0KHtcbiAgICAgICAgbnVtOiBnZXRMYWJlbCh7IGxhYmVsQ291bnQsIGxhYmVsSW5kZXg6IGksIG1heCB9KSxcbiAgICAgIH0pfVxuICAgIDwvU3R5bGVkTGFiZWxUZXh0PlxuICApKTtcblxuICByZXR1cm4gKFxuICAgIDxGbGV4Qm94XG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgZGlzcGxheT17eyBfOiAnbm9uZScsIHNtOiAnZmxleCcgfX1cbiAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICBtYj17OH1cbiAgICAgIHBsPXt7IF86IDY0LCBzbTogOTYgfX1cbiAgICAgIHByPXt7IF86IDQwLCBzbTogNjQgfX1cbiAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgPlxuICAgICAge3NjYWxlTGFiZWxzfVxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG4iXX0= */");
14
+ export const ScaleChartHeader = ({
15
+ labelCount,
16
+ max
17
+ }) => {
18
+ const {
19
+ styleConfig
20
+ } = useBarChartContext();
21
+ const scaleLabels = Array.from({
22
+ length: labelCount
23
+ }, (_, i) => /*#__PURE__*/_jsx(StyledLabelText, {
24
+ "data-testid": "chart-header-label",
25
+ textAlign: "center",
26
+ textColor: styleConfig.textColor,
27
+ variant: "p-small",
28
+ children: formatNumberUSCompact({
29
+ num: getLabel({
30
+ labelCount,
31
+ labelIndex: i,
32
+ max
33
+ })
34
+ })
35
+ }, i));
36
+ return /*#__PURE__*/_jsx(FlexBox, {
37
+ "aria-hidden": "true",
38
+ display: {
39
+ _: 'none',
40
+ sm: 'flex'
41
+ },
42
+ justifyContent: "space-between",
43
+ mb: 8,
44
+ pl: {
45
+ _: 64,
46
+ sm: 96
47
+ },
48
+ pr: {
49
+ _: 40,
50
+ sm: 64
51
+ },
52
+ width: "100%",
53
+ children: scaleLabels
54
+ });
55
+ };
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { BarChartProps } from './types';
3
+ export declare const BarChart: React.FC<BarChartProps>;
4
+ export * from './types';
@@ -0,0 +1,68 @@
1
+ import { useMemo } from 'react';
2
+ import { Box } from '../Box';
3
+ import { BarChartProvider, useBarChart } from './BarChartProvider';
4
+ import { BarRow } from './BarRow';
5
+ import { GridLines } from './GridLines';
6
+ import { ScaleChartHeader } from './ScaleChartHeader';
7
+ import { sortBars } from './utils';
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ export const BarChart = ({
10
+ 'aria-label': ariaLabel,
11
+ 'aria-labelledby': ariaLabelledBy,
12
+ animate = false,
13
+ barValues,
14
+ maxRange,
15
+ minRange,
16
+ order = 'ascending',
17
+ sortBy = 'none',
18
+ unit = '',
19
+ styleConfig,
20
+ xScale
21
+ }) => {
22
+ const contextValue = useBarChart({
23
+ minRange,
24
+ maxRange,
25
+ xScale,
26
+ unit,
27
+ styleConfig,
28
+ animate
29
+ });
30
+ const sortedBars = useMemo(() => sortBars({
31
+ bars: barValues,
32
+ sortBy,
33
+ order
34
+ }), [barValues, sortBy, order]);
35
+
36
+ // Calculate number of ticks for the scale header
37
+ const tickCount = Math.ceil((maxRange - minRange) / contextValue.xScale) + 1;
38
+ return /*#__PURE__*/_jsx(BarChartProvider, {
39
+ value: contextValue,
40
+ children: /*#__PURE__*/_jsxs(Box, {
41
+ position: "relative",
42
+ width: "100%",
43
+ children: [/*#__PURE__*/_jsx(ScaleChartHeader, {
44
+ labelCount: tickCount,
45
+ max: maxRange,
46
+ min: minRange
47
+ }), /*#__PURE__*/_jsxs(Box, {
48
+ position: "relative",
49
+ width: "100%",
50
+ children: [/*#__PURE__*/_jsx(GridLines, {
51
+ tickCount: tickCount
52
+ }), /*#__PURE__*/_jsx(Box, {
53
+ "aria-label": ariaLabel,
54
+ "aria-labelledby": ariaLabelledBy,
55
+ as: "ul",
56
+ listStyle: "none",
57
+ m: 0,
58
+ p: 0,
59
+ children: sortedBars.map((bar, index) => /*#__PURE__*/_jsx(BarRow, {
60
+ index: index,
61
+ ...bar
62
+ }, `${bar.yLabel}-${index}`))
63
+ })]
64
+ })]
65
+ })
66
+ });
67
+ };
68
+ export * from './types';
@@ -0,0 +1,56 @@
1
+ import { ColorAlias } from '@codecademy/gamut-styles';
2
+ import { GamutIconProps } from '@codecademy/gamut-icons';
3
+ import { HTMLProps } from 'react';
4
+ import { ButtonProps } from '../Button';
5
+ type BarChartAriaLabel = {
6
+ 'aria-label': string;
7
+ 'aria-labelledby'?: never;
8
+ };
9
+ type BarChartAriaLabelledBy = {
10
+ 'aria-label'?: never;
11
+ 'aria-labelledby': string;
12
+ };
13
+ type BarChartLabel = BarChartAriaLabel | BarChartAriaLabelledBy;
14
+ export type BarChartStyles = {
15
+ /** Color for text labels. Defaults to 'text' */
16
+ textColor?: ColorAlias;
17
+ /** Color for the foreground/progress bar. Defaults to 'feedback-warning' */
18
+ foregroundBarColor?: ColorAlias;
19
+ /** Color for the background/total bar. Defaults to 'paleBlue' */
20
+ backgroundBarColor?: ColorAlias;
21
+ };
22
+ export type BarProps = {
23
+ /** Label displayed on the y-axis for this bar */
24
+ yLabel: string;
25
+ /** The foreground/progress bar value (always shown) */
26
+ seriesOneValue: number;
27
+ /** The background/total bar value (optional - creates stacked effect when provided) */
28
+ seriesTwoValue?: number;
29
+ /** Optional icon to display next to the label */
30
+ icon?: React.ComponentType<GamutIconProps>;
31
+ /** Click handler - makes row interactive as a button */
32
+ onClick?: ButtonProps['onClick'];
33
+ /** Link href - makes row interactive as an anchor */
34
+ href?: HTMLProps<HTMLAnchorElement>['href'];
35
+ };
36
+ export type BarChartProps = BarChartLabel & {
37
+ /** Whether to animate bars on mount */
38
+ animate?: boolean;
39
+ /** Array of bar data to render */
40
+ barValues: BarProps[];
41
+ /** Maximum value for the x-axis scale */
42
+ maxRange: number;
43
+ /** Minimum value for the x-axis scale (usually 0) */
44
+ minRange: number;
45
+ /** Sort order for bars */
46
+ order?: 'ascending' | 'descending';
47
+ /** Property to sort bars by */
48
+ sortBy?: 'label' | 'value' | 'none';
49
+ /** Unit label to display (e.g., "XP") */
50
+ unit?: string;
51
+ /** Style configuration for colors */
52
+ styleConfig?: BarChartStyles;
53
+ /** Interval for x-axis scale markers */
54
+ xScale?: number;
55
+ };
56
+ export {};
@@ -0,0 +1 @@
1
+ export {};