@codecademy/gamut 67.6.3-alpha.45eda4.0 → 67.6.3-alpha.46b8e8.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.
@@ -1,58 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9CYXIvZWxlbWVudHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNCNkIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0JhckNoYXJ0L0Jhci9lbGVtZW50cy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgbW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5cbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uL0JveCc7XG5cbmV4cG9ydCBjb25zdCBtaW5CYXJXaWR0aCA9IDg7XG5cbmNvbnN0IGJhc2VCYXJTdHlsZXMgPSB7XG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBib3JkZXI6IDEsXG4gIGJvcmRlckNvbG9yOiAnYm9yZGVyLXByaW1hcnknLFxuICBib3JkZXJSYWRpdXM6ICdpbmhlcml0JyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBoZWlnaHQ6ICcxMDAlJyxcbiAgbGVmdDogMCxcbiAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEFuaW1hdGVkIGJhciBlbGVtZW50IGZvciBiYWNrZ3JvdW5kL3RvdGFsIHZhbHVlIGRpc3BsYXlcbiAqL1xuZXhwb3J0IGNvbnN0IEJhY2tncm91bmRCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICAuLi5iYXNlQmFyU3R5bGVzLFxuICB9KVxuKTtcblxuLyoqXG4gKiBGb3JlZ3JvdW5kIGJhciBmb3Igc3RhY2tlZCBkaXNwbGF5IChwcm9ncmVzcyB2YWx1ZSlcbiAqIENvbG9yIHNob3VsZCBiZSBwYXNzZWQgdmlhIGJnIHByb3AgZnJvbSBwYXJlbnRcbiAqL1xuZXhwb3J0IGNvbnN0IEZvcmVncm91bmRCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICAuLi5iYXNlQmFyU3R5bGVzLFxuICB9KVxuKTtcblxuLyoqXG4gKiBDb250YWluZXIgZm9yIGJhcnMgd2l0aCByZXNwb25zaXZlIGhlaWdodFxuICovXG5leHBvcnQgY29uc3QgQmFyV3JhcHBlciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgZmxleDogMSxcbiAgICBoZWlnaHQ6IHsgXzogMTIsIHNtOiAyMCB9LFxuICAgIGJvcmRlclJhZGl1czogeyBfOiAnbWQnLCBzbTogJ3hsJyB9LFxuICB9KVxuKTtcbiJdfQ== */");
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9CYXIvZWxlbWVudHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdDNkIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0JhckNoYXJ0L0Jhci9lbGVtZW50cy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgbW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5cbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uL0JveCc7XG5cbmV4cG9ydCBjb25zdCBtaW5CYXJXaWR0aCA9IDg7XG5cbmNvbnN0IGJhc2VCYXJTdHlsZXMgPSB7XG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBib3JkZXI6IDEsXG4gIGJvcmRlckNvbG9yOiAnYm9yZGVyLXByaW1hcnknLFxuICBib3JkZXJSYWRpdXM6ICdpbmhlcml0JyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBoZWlnaHQ6ICcxMDAlJyxcbiAgbGVmdDogMCxcbiAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEFuaW1hdGVkIGJhciBlbGVtZW50IGZvciBiYWNrZ3JvdW5kL3RvdGFsIHZhbHVlIGRpc3BsYXlcbiAqL1xuZXhwb3J0IGNvbnN0IEJhY2tncm91bmRCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICAuLi5iYXNlQmFyU3R5bGVzLFxuICB9KVxuKTtcblxuLyoqXG4gKiBGb3JlZ3JvdW5kIGJhciBmb3Igc3RhY2tlZCBkaXNwbGF5IChwcm9ncmVzcyB2YWx1ZSlcbiAqIENvbG9yIHNob3VsZCBiZSBwYXNzZWQgdmlhIGJnIHByb3AgZnJvbSBwYXJlbnRcbiAqL1xuZXhwb3J0IGNvbnN0IEZvcmVncm91bmRCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICAuLi5iYXNlQmFyU3R5bGVzLFxuICB9KVxuKTtcblxuLyoqXG4gKiBDb250YWluZXIgZm9yIGJhcnMgd2l0aCByZXNwb25zaXZlIGhlaWdodFxuICovXG5leHBvcnQgY29uc3QgQmFyV3JhcHBlciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgZmxleDogMSxcbiAgICBoZWlnaHQ6IHsgXzogMTIsIHNtOiAyMCB9LFxuICAgIGJvcmRlclJhZGl1czogeyBfOiAnbWQnLCBzbTogJ3hsJyB9LFxuICB9KVxuKTtcbiJdfQ== */");
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
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9CYXIvZWxlbWVudHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlDMEIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0JhckNoYXJ0L0Jhci9lbGVtZW50cy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgbW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5cbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uL0JveCc7XG5cbmV4cG9ydCBjb25zdCBtaW5CYXJXaWR0aCA9IDg7XG5cbmNvbnN0IGJhc2VCYXJTdHlsZXMgPSB7XG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBib3JkZXI6IDEsXG4gIGJvcmRlckNvbG9yOiAnYm9yZGVyLXByaW1hcnknLFxuICBib3JkZXJSYWRpdXM6ICdpbmhlcml0JyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBoZWlnaHQ6ICcxMDAlJyxcbiAgbGVmdDogMCxcbiAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEFuaW1hdGVkIGJhciBlbGVtZW50IGZvciBiYWNrZ3JvdW5kL3RvdGFsIHZhbHVlIGRpc3BsYXlcbiAqL1xuZXhwb3J0IGNvbnN0IEJhY2tncm91bmRCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICAuLi5iYXNlQmFyU3R5bGVzLFxuICB9KVxuKTtcblxuLyoqXG4gKiBGb3JlZ3JvdW5kIGJhciBmb3Igc3RhY2tlZCBkaXNwbGF5IChwcm9ncmVzcyB2YWx1ZSlcbiAqIENvbG9yIHNob3VsZCBiZSBwYXNzZWQgdmlhIGJnIHByb3AgZnJvbSBwYXJlbnRcbiAqL1xuZXhwb3J0IGNvbnN0IEZvcmVncm91bmRCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICAuLi5iYXNlQmFyU3R5bGVzLFxuICB9KVxuKTtcblxuLyoqXG4gKiBDb250YWluZXIgZm9yIGJhcnMgd2l0aCByZXNwb25zaXZlIGhlaWdodFxuICovXG5leHBvcnQgY29uc3QgQmFyV3JhcHBlciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgZmxleDogMSxcbiAgICBoZWlnaHQ6IHsgXzogMTIsIHNtOiAyMCB9LFxuICAgIGJvcmRlclJhZGl1czogeyBfOiAnbWQnLCBzbTogJ3hsJyB9LFxuICB9KVxuKTtcbiJdfQ== */");
@@ -1 +0,0 @@
1
- export * from './elements';
@@ -1,2 +0,0 @@
1
- // Re-export bar elements
2
- export * from './elements';
@@ -1,12 +0,0 @@
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>;
@@ -1,16 +0,0 @@
1
- import { createContext } 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;
@@ -1,4 +0,0 @@
1
- /// <reference types="react" />
2
- import { BarChartProps } from './types';
3
- export declare const BarChart: React.FC<BarChartProps>;
4
- export * from './types';
@@ -1,73 +0,0 @@
1
- import { useMemo } from 'react';
2
- import { Box } from '../Box';
3
- import { Bar } from './Bar/Bar';
4
- import { BarChartProvider } from './BarChartProvider';
5
- import { GridLines } from './layout/GridLines';
6
- import { ScaleChartHeader } from './layout/ScaleChartHeader';
7
- import { sortBars, useBarChart } 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
- max: maxRange,
52
- min: minRange,
53
- tickCount: tickCount
54
- }), /*#__PURE__*/_jsx(Box, {
55
- "aria-label": ariaLabel,
56
- "aria-labelledby": ariaLabelledBy,
57
- as: "ul",
58
- listStyle: "none",
59
- m: 0,
60
- p: 0,
61
- children: sortedBars.map((bar, index) => {
62
- const uniqueKey = `${bar.yLabel}-${bar.seriesOneValue}-${bar.seriesTwoValue ?? ''}`;
63
- return /*#__PURE__*/_jsx(Bar, {
64
- index: index,
65
- ...bar
66
- }, uniqueKey);
67
- })
68
- })]
69
- })]
70
- })
71
- });
72
- };
73
- export * from './types';
@@ -1,7 +0,0 @@
1
- /// <reference types="react" />
2
- export interface GridLinesProps {
3
- tickCount: number;
4
- min: number;
5
- max: number;
6
- }
7
- export declare const GridLines: React.FC<GridLinesProps>;
@@ -1,77 +0,0 @@
1
- import _styled from "@emotion/styled/base";
2
- import { css } from '@codecademy/gamut-styles';
3
- import { Box } from '../../Box';
4
- import { useLabelPositions } from '../utils';
5
- import { VerticalSpacer } from './VerticalSpacer';
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- const GridLineWrapper = /*#__PURE__*/_styled(Box, {
8
- target: "ejng4zk2",
9
- label: "GridLineWrapper"
10
- })(css({
11
- position: 'absolute',
12
- top: 0,
13
- bottom: 0,
14
- left: 0,
15
- right: 0,
16
- pointerEvents: 'none',
17
- zIndex: 0
18
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9sYXlvdXQvR3JpZExpbmVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPd0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0JhckNoYXJ0L2xheW91dC9HcmlkTGluZXMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHsgQm94IH0gZnJvbSAnLi4vLi4vQm94JztcbmltcG9ydCB7IHVzZUxhYmVsUG9zaXRpb25zIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgVmVydGljYWxTcGFjZXIgfSBmcm9tICcuL1ZlcnRpY2FsU3BhY2VyJztcblxuY29uc3QgR3JpZExpbmVXcmFwcGVyID0gc3R5bGVkKEJveCkoXG4gIGNzcyh7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdG9wOiAwLFxuICAgIGJvdHRvbTogMCxcbiAgICBsZWZ0OiAwLFxuICAgIHJpZ2h0OiAwLFxuICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICB6SW5kZXg6IDAsXG4gIH0pXG4pO1xuXG5jb25zdCBHcmlkTGluZUNvbnRhaW5lciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGJvdHRvbTogMCxcbiAgICBkaXNwbGF5OiB7IF86ICdub25lJywgc206ICdibG9jaycgfSxcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICByaWdodDogMCxcbiAgICBib3JkZXJMZWZ0OiAxLFxuICAgIGJvcmRlclJpZ2h0OiAxLFxuICAgIGJvcmRlckNvbG9yOiAnYmFja2dyb3VuZC1kaXNhYmxlZCcsXG4gIH0pXG4pO1xuXG5jb25zdCBHcmlkTGluZSA9IHN0eWxlZChCb3gpPHsgcG9zaXRpb25QZXJjZW50OiBudW1iZXIgfT4oXG4gIGNzcyh7XG4gICAgYm9yZGVyTGVmdDogMSxcbiAgICBib3JkZXJDb2xvckxlZnQ6ICdiYWNrZ3JvdW5kLWRpc2FibGVkJyxcbiAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICB0b3A6IDAsXG4gICAgd2lkdGg6IDAsXG4gIH0pLFxuICAoeyBwb3NpdGlvblBlcmNlbnQgfSkgPT4gKHtcbiAgICBsZWZ0OiBgJHtwb3NpdGlvblBlcmNlbnR9JWAsXG4gICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtNTAlKScsXG4gIH0pXG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRMaW5lc1Byb3BzIHtcbiAgdGlja0NvdW50OiBudW1iZXI7XG4gIG1pbjogbnVtYmVyO1xuICBtYXg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IEdyaWRMaW5lczogUmVhY3QuRkM8R3JpZExpbmVzUHJvcHM+ID0gKHtcbiAgdGlja0NvdW50LFxuICBtaW4sXG4gIG1heCxcbn0pID0+IHtcbiAgY29uc3QgbGFiZWxQb3NpdGlvbnMgPSB1c2VMYWJlbFBvc2l0aW9ucyh7IG1pbiwgbWF4LCBjb3VudDogdGlja0NvdW50IH0pO1xuXG4gIGNvbnN0IGxpbmVzID0gbGFiZWxQb3NpdGlvbnMubWFwKCh7IHBvc2l0aW9uUGVyY2VudCwgdmFsdWUgfSkgPT4gKFxuICAgIDxHcmlkTGluZVxuICAgICAgYXJpYS1oaWRkZW5cbiAgICAgIGtleT17YGdyaWRsaW5lLSR7dmFsdWV9LSR7cG9zaXRpb25QZXJjZW50fWB9XG4gICAgICBwb3NpdGlvblBlcmNlbnQ9e3Bvc2l0aW9uUGVyY2VudH1cbiAgICAvPlxuICApKTtcblxuICByZXR1cm4gKFxuICAgIDxHcmlkTGluZVdyYXBwZXIgYXJpYS1oaWRkZW4+XG4gICAgICA8VmVydGljYWxTcGFjZXI+XG4gICAgICAgIDxHcmlkTGluZUNvbnRhaW5lcj57bGluZXN9PC9HcmlkTGluZUNvbnRhaW5lcj5cbiAgICAgIDwvVmVydGljYWxTcGFjZXI+XG4gICAgPC9HcmlkTGluZVdyYXBwZXI+XG4gICk7XG59O1xuIl19 */");
19
- const GridLineContainer = /*#__PURE__*/_styled(Box, {
20
- target: "ejng4zk1",
21
- label: "GridLineContainer"
22
- })(css({
23
- bottom: 0,
24
- display: {
25
- _: 'none',
26
- sm: 'block'
27
- },
28
- position: 'absolute',
29
- top: 0,
30
- left: 0,
31
- right: 0,
32
- borderLeft: 1,
33
- borderRight: 1,
34
- borderColor: 'background-disabled'
35
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9sYXlvdXQvR3JpZExpbmVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQjBCIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9CYXJDaGFydC9sYXlvdXQvR3JpZExpbmVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uL0JveCc7XG5pbXBvcnQgeyB1c2VMYWJlbFBvc2l0aW9ucyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFZlcnRpY2FsU3BhY2VyIH0gZnJvbSAnLi9WZXJ0aWNhbFNwYWNlcic7XG5cbmNvbnN0IEdyaWRMaW5lV3JhcHBlciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHRvcDogMCxcbiAgICBib3R0b206IDAsXG4gICAgbGVmdDogMCxcbiAgICByaWdodDogMCxcbiAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgekluZGV4OiAwLFxuICB9KVxuKTtcblxuY29uc3QgR3JpZExpbmVDb250YWluZXIgPSBzdHlsZWQoQm94KShcbiAgY3NzKHtcbiAgICBib3R0b206IDAsXG4gICAgZGlzcGxheTogeyBfOiAnbm9uZScsIHNtOiAnYmxvY2snIH0sXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdG9wOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgcmlnaHQ6IDAsXG4gICAgYm9yZGVyTGVmdDogMSxcbiAgICBib3JkZXJSaWdodDogMSxcbiAgICBib3JkZXJDb2xvcjogJ2JhY2tncm91bmQtZGlzYWJsZWQnLFxuICB9KVxuKTtcblxuY29uc3QgR3JpZExpbmUgPSBzdHlsZWQoQm94KTx7IHBvc2l0aW9uUGVyY2VudDogbnVtYmVyIH0+KFxuICBjc3Moe1xuICAgIGJvcmRlckxlZnQ6IDEsXG4gICAgYm9yZGVyQ29sb3JMZWZ0OiAnYmFja2dyb3VuZC1kaXNhYmxlZCcsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdG9wOiAwLFxuICAgIHdpZHRoOiAwLFxuICB9KSxcbiAgKHsgcG9zaXRpb25QZXJjZW50IH0pID0+ICh7XG4gICAgbGVmdDogYCR7cG9zaXRpb25QZXJjZW50fSVgLFxuICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTUwJSknLFxuICB9KVxuKTtcblxuZXhwb3J0IGludGVyZmFjZSBHcmlkTGluZXNQcm9wcyB7XG4gIHRpY2tDb3VudDogbnVtYmVyO1xuICBtaW46IG51bWJlcjtcbiAgbWF4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBHcmlkTGluZXM6IFJlYWN0LkZDPEdyaWRMaW5lc1Byb3BzPiA9ICh7XG4gIHRpY2tDb3VudCxcbiAgbWluLFxuICBtYXgsXG59KSA9PiB7XG4gIGNvbnN0IGxhYmVsUG9zaXRpb25zID0gdXNlTGFiZWxQb3NpdGlvbnMoeyBtaW4sIG1heCwgY291bnQ6IHRpY2tDb3VudCB9KTtcblxuICBjb25zdCBsaW5lcyA9IGxhYmVsUG9zaXRpb25zLm1hcCgoeyBwb3NpdGlvblBlcmNlbnQsIHZhbHVlIH0pID0+IChcbiAgICA8R3JpZExpbmVcbiAgICAgIGFyaWEtaGlkZGVuXG4gICAgICBrZXk9e2BncmlkbGluZS0ke3ZhbHVlfS0ke3Bvc2l0aW9uUGVyY2VudH1gfVxuICAgICAgcG9zaXRpb25QZXJjZW50PXtwb3NpdGlvblBlcmNlbnR9XG4gICAgLz5cbiAgKSk7XG5cbiAgcmV0dXJuIChcbiAgICA8R3JpZExpbmVXcmFwcGVyIGFyaWEtaGlkZGVuPlxuICAgICAgPFZlcnRpY2FsU3BhY2VyPlxuICAgICAgICA8R3JpZExpbmVDb250YWluZXI+e2xpbmVzfTwvR3JpZExpbmVDb250YWluZXI+XG4gICAgICA8L1ZlcnRpY2FsU3BhY2VyPlxuICAgIDwvR3JpZExpbmVXcmFwcGVyPlxuICApO1xufTtcbiJdfQ== */");
36
- const GridLine = /*#__PURE__*/_styled(Box, {
37
- target: "ejng4zk0",
38
- label: "GridLine"
39
- })(css({
40
- borderLeft: 1,
41
- borderColorLeft: 'background-disabled',
42
- height: '100%',
43
- position: 'absolute',
44
- top: 0,
45
- width: 0
46
- }), ({
47
- positionPercent
48
- }) => ({
49
- left: `${positionPercent}%`,
50
- transform: 'translateX(-50%)'
51
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9sYXlvdXQvR3JpZExpbmVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQ2lCIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9CYXJDaGFydC9sYXlvdXQvR3JpZExpbmVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uL0JveCc7XG5pbXBvcnQgeyB1c2VMYWJlbFBvc2l0aW9ucyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFZlcnRpY2FsU3BhY2VyIH0gZnJvbSAnLi9WZXJ0aWNhbFNwYWNlcic7XG5cbmNvbnN0IEdyaWRMaW5lV3JhcHBlciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHRvcDogMCxcbiAgICBib3R0b206IDAsXG4gICAgbGVmdDogMCxcbiAgICByaWdodDogMCxcbiAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgekluZGV4OiAwLFxuICB9KVxuKTtcblxuY29uc3QgR3JpZExpbmVDb250YWluZXIgPSBzdHlsZWQoQm94KShcbiAgY3NzKHtcbiAgICBib3R0b206IDAsXG4gICAgZGlzcGxheTogeyBfOiAnbm9uZScsIHNtOiAnYmxvY2snIH0sXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdG9wOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgcmlnaHQ6IDAsXG4gICAgYm9yZGVyTGVmdDogMSxcbiAgICBib3JkZXJSaWdodDogMSxcbiAgICBib3JkZXJDb2xvcjogJ2JhY2tncm91bmQtZGlzYWJsZWQnLFxuICB9KVxuKTtcblxuY29uc3QgR3JpZExpbmUgPSBzdHlsZWQoQm94KTx7IHBvc2l0aW9uUGVyY2VudDogbnVtYmVyIH0+KFxuICBjc3Moe1xuICAgIGJvcmRlckxlZnQ6IDEsXG4gICAgYm9yZGVyQ29sb3JMZWZ0OiAnYmFja2dyb3VuZC1kaXNhYmxlZCcsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdG9wOiAwLFxuICAgIHdpZHRoOiAwLFxuICB9KSxcbiAgKHsgcG9zaXRpb25QZXJjZW50IH0pID0+ICh7XG4gICAgbGVmdDogYCR7cG9zaXRpb25QZXJjZW50fSVgLFxuICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTUwJSknLFxuICB9KVxuKTtcblxuZXhwb3J0IGludGVyZmFjZSBHcmlkTGluZXNQcm9wcyB7XG4gIHRpY2tDb3VudDogbnVtYmVyO1xuICBtaW46IG51bWJlcjtcbiAgbWF4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBHcmlkTGluZXM6IFJlYWN0LkZDPEdyaWRMaW5lc1Byb3BzPiA9ICh7XG4gIHRpY2tDb3VudCxcbiAgbWluLFxuICBtYXgsXG59KSA9PiB7XG4gIGNvbnN0IGxhYmVsUG9zaXRpb25zID0gdXNlTGFiZWxQb3NpdGlvbnMoeyBtaW4sIG1heCwgY291bnQ6IHRpY2tDb3VudCB9KTtcblxuICBjb25zdCBsaW5lcyA9IGxhYmVsUG9zaXRpb25zLm1hcCgoeyBwb3NpdGlvblBlcmNlbnQsIHZhbHVlIH0pID0+IChcbiAgICA8R3JpZExpbmVcbiAgICAgIGFyaWEtaGlkZGVuXG4gICAgICBrZXk9e2BncmlkbGluZS0ke3ZhbHVlfS0ke3Bvc2l0aW9uUGVyY2VudH1gfVxuICAgICAgcG9zaXRpb25QZXJjZW50PXtwb3NpdGlvblBlcmNlbnR9XG4gICAgLz5cbiAgKSk7XG5cbiAgcmV0dXJuIChcbiAgICA8R3JpZExpbmVXcmFwcGVyIGFyaWEtaGlkZGVuPlxuICAgICAgPFZlcnRpY2FsU3BhY2VyPlxuICAgICAgICA8R3JpZExpbmVDb250YWluZXI+e2xpbmVzfTwvR3JpZExpbmVDb250YWluZXI+XG4gICAgICA8L1ZlcnRpY2FsU3BhY2VyPlxuICAgIDwvR3JpZExpbmVXcmFwcGVyPlxuICApO1xufTtcbiJdfQ== */");
52
- export const GridLines = ({
53
- tickCount,
54
- min,
55
- max
56
- }) => {
57
- const labelPositions = useLabelPositions({
58
- min,
59
- max,
60
- count: tickCount
61
- });
62
- const lines = labelPositions.map(({
63
- positionPercent,
64
- value
65
- }) => /*#__PURE__*/_jsx(GridLine, {
66
- "aria-hidden": true,
67
- positionPercent: positionPercent
68
- }, `gridline-${value}-${positionPercent}`));
69
- return /*#__PURE__*/_jsx(GridLineWrapper, {
70
- "aria-hidden": true,
71
- children: /*#__PURE__*/_jsx(VerticalSpacer, {
72
- children: /*#__PURE__*/_jsx(GridLineContainer, {
73
- children: lines
74
- })
75
- })
76
- });
77
- };
@@ -1,10 +0,0 @@
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>;
@@ -1,88 +0,0 @@
1
- import _styled from "@emotion/styled/base";
2
- import { css } from '@codecademy/gamut-styles';
3
- import { Box } from '../../Box';
4
- import { Text } from '../../Typography';
5
- import { formatNumberUSCompact, useBarChartContext, useLabelPositions } from '../utils';
6
- import { VerticalSpacer } from './VerticalSpacer';
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- const StyledLabelText = /*#__PURE__*/_styled(Text, {
9
- target: "e1ssd1i12",
10
- label: "StyledLabelText"
11
- })(css({
12
- position: 'absolute',
13
- whiteSpace: 'nowrap',
14
- margin: 0,
15
- padding: 0
16
- }), ({
17
- positionPercent,
18
- textAlign
19
- }) => {
20
- let transform = '';
21
- if (textAlign === 'left') {
22
- transform = 'translateX(0)';
23
- } else if (textAlign === 'right') {
24
- transform = 'translateX(-100%)';
25
- } else {
26
- transform = 'translateX(-50%)';
27
- }
28
- return {
29
- left: `${positionPercent}%`,
30
- transform
31
- };
32
- }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9sYXlvdXQvU2NhbGVDaGFydEhlYWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUJ3QiIsImZpbGUiOiIuLi8uLi8uLi9zcmMvQmFyQ2hhcnQvbGF5b3V0L1NjYWxlQ2hhcnRIZWFkZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHsgQm94IH0gZnJvbSAnLi4vLi4vQm94JztcbmltcG9ydCB7IFRleHQgfSBmcm9tICcuLi8uLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7XG4gIGZvcm1hdE51bWJlclVTQ29tcGFjdCxcbiAgdXNlQmFyQ2hhcnRDb250ZXh0LFxuICB1c2VMYWJlbFBvc2l0aW9ucyxcbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgVmVydGljYWxTcGFjZXIgfSBmcm9tICcuL1ZlcnRpY2FsU3BhY2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBTY2FsZUNoYXJ0SGVhZGVyUHJvcHMge1xuICAvKiogTWluaW11bSB2YWx1ZSBvbiB0aGUgc2NhbGUgKi9cbiAgbWluOiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIHZhbHVlIG9uIHRoZSBzY2FsZSAqL1xuICBtYXg6IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiBsYWJlbHMgdG8gZGlzcGxheSAqL1xuICBsYWJlbENvdW50OiBudW1iZXI7XG59XG5cbmNvbnN0IFN0eWxlZExhYmVsVGV4dCA9IHN0eWxlZChUZXh0KTx7XG4gIHBvc2l0aW9uUGVyY2VudDogbnVtYmVyO1xuICB0ZXh0QWxpZ246ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0Jztcbn0+KFxuICBjc3Moe1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIG1hcmdpbjogMCxcbiAgICBwYWRkaW5nOiAwLFxuICB9KSxcbiAgKHsgcG9zaXRpb25QZXJjZW50LCB0ZXh0QWxpZ24gfSkgPT4ge1xuICAgIGxldCB0cmFuc2Zvcm0gPSAnJztcbiAgICBpZiAodGV4dEFsaWduID09PSAnbGVmdCcpIHtcbiAgICAgIHRyYW5zZm9ybSA9ICd0cmFuc2xhdGVYKDApJztcbiAgICB9IGVsc2UgaWYgKHRleHRBbGlnbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgdHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVgoLTEwMCUpJztcbiAgICB9IGVsc2Uge1xuICAgICAgdHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVgoLTUwJSknO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgbGVmdDogYCR7cG9zaXRpb25QZXJjZW50fSVgLFxuICAgICAgdHJhbnNmb3JtLFxuICAgIH07XG4gIH1cbik7XG5cbmNvbnN0IFN0eWxlZEhlYWRlckNvbnRhaW5lciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICB9KVxuKTtcblxuY29uc3QgSGVhZGVyTGFiZWxBcmVhID0gc3R5bGVkKEJveCkoXG4gIGNzcyh7XG4gICAgbWluSGVpZ2h0OiAnMjRweCcsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2NhbGVDaGFydEhlYWRlcjogUmVhY3QuRkM8U2NhbGVDaGFydEhlYWRlclByb3BzPiA9ICh7XG4gIGxhYmVsQ291bnQsXG4gIG1pbixcbiAgbWF4LFxufSkgPT4ge1xuICBjb25zdCB7IHN0eWxlQ29uZmlnIH0gPSB1c2VCYXJDaGFydENvbnRleHQoKTtcbiAgY29uc3QgbGFiZWxQb3NpdGlvbnMgPSB1c2VMYWJlbFBvc2l0aW9ucyh7IG1pbiwgbWF4LCBjb3VudDogbGFiZWxDb3VudCB9KTtcblxuICBjb25zdCBzY2FsZUxhYmVscyA9IGxhYmVsUG9zaXRpb25zLm1hcCgoeyB2YWx1ZSwgcG9zaXRpb25QZXJjZW50IH0pID0+IChcbiAgICA8U3R5bGVkTGFiZWxUZXh0XG4gICAgICBkYXRhLXRlc3RpZD1cImNoYXJ0LWhlYWRlci1sYWJlbFwiXG4gICAgICBrZXk9e2BsYWJlbC0ke3ZhbHVlfS0ke3Bvc2l0aW9uUGVyY2VudH1gfVxuICAgICAgcG9zaXRpb25QZXJjZW50PXtwb3NpdGlvblBlcmNlbnR9XG4gICAgICB0ZXh0QWxpZ249XCJjZW50ZXJcIlxuICAgICAgdGV4dENvbG9yPXtzdHlsZUNvbmZpZy50ZXh0Q29sb3J9XG4gICAgICB2YXJpYW50PVwicC1zbWFsbFwiXG4gICAgPlxuICAgICAge2Zvcm1hdE51bWJlclVTQ29tcGFjdCh7XG4gICAgICAgIG51bTogdmFsdWUsXG4gICAgICB9KX1cbiAgICA8L1N0eWxlZExhYmVsVGV4dD5cbiAgKSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Qm94IG1iPXsxMn0gd2lkdGg9ezF9PlxuICAgICAgPFN0eWxlZEhlYWRlckNvbnRhaW5lclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICBkaXNwbGF5PXt7IF86ICdub25lJywgc206ICdibG9jaycgfX1cbiAgICAgID5cbiAgICAgICAgPFZlcnRpY2FsU3BhY2VyPlxuICAgICAgICAgIDxIZWFkZXJMYWJlbEFyZWE+e3NjYWxlTGFiZWxzfTwvSGVhZGVyTGFiZWxBcmVhPlxuICAgICAgICA8L1ZlcnRpY2FsU3BhY2VyPlxuICAgICAgPC9TdHlsZWRIZWFkZXJDb250YWluZXI+XG4gICAgPC9Cb3g+XG4gICk7XG59O1xuXG4iXX0= */");
33
- const StyledHeaderContainer = /*#__PURE__*/_styled(Box, {
34
- target: "e1ssd1i11",
35
- label: "StyledHeaderContainer"
36
- })(css({
37
- alignItems: 'center',
38
- position: 'relative'
39
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9sYXlvdXQvU2NhbGVDaGFydEhlYWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0M4QiIsImZpbGUiOiIuLi8uLi8uLi9zcmMvQmFyQ2hhcnQvbGF5b3V0L1NjYWxlQ2hhcnRIZWFkZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHsgQm94IH0gZnJvbSAnLi4vLi4vQm94JztcbmltcG9ydCB7IFRleHQgfSBmcm9tICcuLi8uLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7XG4gIGZvcm1hdE51bWJlclVTQ29tcGFjdCxcbiAgdXNlQmFyQ2hhcnRDb250ZXh0LFxuICB1c2VMYWJlbFBvc2l0aW9ucyxcbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgVmVydGljYWxTcGFjZXIgfSBmcm9tICcuL1ZlcnRpY2FsU3BhY2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBTY2FsZUNoYXJ0SGVhZGVyUHJvcHMge1xuICAvKiogTWluaW11bSB2YWx1ZSBvbiB0aGUgc2NhbGUgKi9cbiAgbWluOiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIHZhbHVlIG9uIHRoZSBzY2FsZSAqL1xuICBtYXg6IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiBsYWJlbHMgdG8gZGlzcGxheSAqL1xuICBsYWJlbENvdW50OiBudW1iZXI7XG59XG5cbmNvbnN0IFN0eWxlZExhYmVsVGV4dCA9IHN0eWxlZChUZXh0KTx7XG4gIHBvc2l0aW9uUGVyY2VudDogbnVtYmVyO1xuICB0ZXh0QWxpZ246ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0Jztcbn0+KFxuICBjc3Moe1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIG1hcmdpbjogMCxcbiAgICBwYWRkaW5nOiAwLFxuICB9KSxcbiAgKHsgcG9zaXRpb25QZXJjZW50LCB0ZXh0QWxpZ24gfSkgPT4ge1xuICAgIGxldCB0cmFuc2Zvcm0gPSAnJztcbiAgICBpZiAodGV4dEFsaWduID09PSAnbGVmdCcpIHtcbiAgICAgIHRyYW5zZm9ybSA9ICd0cmFuc2xhdGVYKDApJztcbiAgICB9IGVsc2UgaWYgKHRleHRBbGlnbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgdHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVgoLTEwMCUpJztcbiAgICB9IGVsc2Uge1xuICAgICAgdHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVgoLTUwJSknO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgbGVmdDogYCR7cG9zaXRpb25QZXJjZW50fSVgLFxuICAgICAgdHJhbnNmb3JtLFxuICAgIH07XG4gIH1cbik7XG5cbmNvbnN0IFN0eWxlZEhlYWRlckNvbnRhaW5lciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICB9KVxuKTtcblxuY29uc3QgSGVhZGVyTGFiZWxBcmVhID0gc3R5bGVkKEJveCkoXG4gIGNzcyh7XG4gICAgbWluSGVpZ2h0OiAnMjRweCcsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2NhbGVDaGFydEhlYWRlcjogUmVhY3QuRkM8U2NhbGVDaGFydEhlYWRlclByb3BzPiA9ICh7XG4gIGxhYmVsQ291bnQsXG4gIG1pbixcbiAgbWF4LFxufSkgPT4ge1xuICBjb25zdCB7IHN0eWxlQ29uZmlnIH0gPSB1c2VCYXJDaGFydENvbnRleHQoKTtcbiAgY29uc3QgbGFiZWxQb3NpdGlvbnMgPSB1c2VMYWJlbFBvc2l0aW9ucyh7IG1pbiwgbWF4LCBjb3VudDogbGFiZWxDb3VudCB9KTtcblxuICBjb25zdCBzY2FsZUxhYmVscyA9IGxhYmVsUG9zaXRpb25zLm1hcCgoeyB2YWx1ZSwgcG9zaXRpb25QZXJjZW50IH0pID0+IChcbiAgICA8U3R5bGVkTGFiZWxUZXh0XG4gICAgICBkYXRhLXRlc3RpZD1cImNoYXJ0LWhlYWRlci1sYWJlbFwiXG4gICAgICBrZXk9e2BsYWJlbC0ke3ZhbHVlfS0ke3Bvc2l0aW9uUGVyY2VudH1gfVxuICAgICAgcG9zaXRpb25QZXJjZW50PXtwb3NpdGlvblBlcmNlbnR9XG4gICAgICB0ZXh0QWxpZ249XCJjZW50ZXJcIlxuICAgICAgdGV4dENvbG9yPXtzdHlsZUNvbmZpZy50ZXh0Q29sb3J9XG4gICAgICB2YXJpYW50PVwicC1zbWFsbFwiXG4gICAgPlxuICAgICAge2Zvcm1hdE51bWJlclVTQ29tcGFjdCh7XG4gICAgICAgIG51bTogdmFsdWUsXG4gICAgICB9KX1cbiAgICA8L1N0eWxlZExhYmVsVGV4dD5cbiAgKSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Qm94IG1iPXsxMn0gd2lkdGg9ezF9PlxuICAgICAgPFN0eWxlZEhlYWRlckNvbnRhaW5lclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICBkaXNwbGF5PXt7IF86ICdub25lJywgc206ICdibG9jaycgfX1cbiAgICAgID5cbiAgICAgICAgPFZlcnRpY2FsU3BhY2VyPlxuICAgICAgICAgIDxIZWFkZXJMYWJlbEFyZWE+e3NjYWxlTGFiZWxzfTwvSGVhZGVyTGFiZWxBcmVhPlxuICAgICAgICA8L1ZlcnRpY2FsU3BhY2VyPlxuICAgICAgPC9TdHlsZWRIZWFkZXJDb250YWluZXI+XG4gICAgPC9Cb3g+XG4gICk7XG59O1xuXG4iXX0= */");
40
- const HeaderLabelArea = /*#__PURE__*/_styled(Box, {
41
- target: "e1ssd1i10",
42
- label: "HeaderLabelArea"
43
- })(css({
44
- minHeight: '24px'
45
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9sYXlvdXQvU2NhbGVDaGFydEhlYWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0R3QiIsImZpbGUiOiIuLi8uLi8uLi9zcmMvQmFyQ2hhcnQvbGF5b3V0L1NjYWxlQ2hhcnRIZWFkZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHsgQm94IH0gZnJvbSAnLi4vLi4vQm94JztcbmltcG9ydCB7IFRleHQgfSBmcm9tICcuLi8uLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7XG4gIGZvcm1hdE51bWJlclVTQ29tcGFjdCxcbiAgdXNlQmFyQ2hhcnRDb250ZXh0LFxuICB1c2VMYWJlbFBvc2l0aW9ucyxcbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgVmVydGljYWxTcGFjZXIgfSBmcm9tICcuL1ZlcnRpY2FsU3BhY2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBTY2FsZUNoYXJ0SGVhZGVyUHJvcHMge1xuICAvKiogTWluaW11bSB2YWx1ZSBvbiB0aGUgc2NhbGUgKi9cbiAgbWluOiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIHZhbHVlIG9uIHRoZSBzY2FsZSAqL1xuICBtYXg6IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiBsYWJlbHMgdG8gZGlzcGxheSAqL1xuICBsYWJlbENvdW50OiBudW1iZXI7XG59XG5cbmNvbnN0IFN0eWxlZExhYmVsVGV4dCA9IHN0eWxlZChUZXh0KTx7XG4gIHBvc2l0aW9uUGVyY2VudDogbnVtYmVyO1xuICB0ZXh0QWxpZ246ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0Jztcbn0+KFxuICBjc3Moe1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIG1hcmdpbjogMCxcbiAgICBwYWRkaW5nOiAwLFxuICB9KSxcbiAgKHsgcG9zaXRpb25QZXJjZW50LCB0ZXh0QWxpZ24gfSkgPT4ge1xuICAgIGxldCB0cmFuc2Zvcm0gPSAnJztcbiAgICBpZiAodGV4dEFsaWduID09PSAnbGVmdCcpIHtcbiAgICAgIHRyYW5zZm9ybSA9ICd0cmFuc2xhdGVYKDApJztcbiAgICB9IGVsc2UgaWYgKHRleHRBbGlnbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgdHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVgoLTEwMCUpJztcbiAgICB9IGVsc2Uge1xuICAgICAgdHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVgoLTUwJSknO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgbGVmdDogYCR7cG9zaXRpb25QZXJjZW50fSVgLFxuICAgICAgdHJhbnNmb3JtLFxuICAgIH07XG4gIH1cbik7XG5cbmNvbnN0IFN0eWxlZEhlYWRlckNvbnRhaW5lciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICB9KVxuKTtcblxuY29uc3QgSGVhZGVyTGFiZWxBcmVhID0gc3R5bGVkKEJveCkoXG4gIGNzcyh7XG4gICAgbWluSGVpZ2h0OiAnMjRweCcsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2NhbGVDaGFydEhlYWRlcjogUmVhY3QuRkM8U2NhbGVDaGFydEhlYWRlclByb3BzPiA9ICh7XG4gIGxhYmVsQ291bnQsXG4gIG1pbixcbiAgbWF4LFxufSkgPT4ge1xuICBjb25zdCB7IHN0eWxlQ29uZmlnIH0gPSB1c2VCYXJDaGFydENvbnRleHQoKTtcbiAgY29uc3QgbGFiZWxQb3NpdGlvbnMgPSB1c2VMYWJlbFBvc2l0aW9ucyh7IG1pbiwgbWF4LCBjb3VudDogbGFiZWxDb3VudCB9KTtcblxuICBjb25zdCBzY2FsZUxhYmVscyA9IGxhYmVsUG9zaXRpb25zLm1hcCgoeyB2YWx1ZSwgcG9zaXRpb25QZXJjZW50IH0pID0+IChcbiAgICA8U3R5bGVkTGFiZWxUZXh0XG4gICAgICBkYXRhLXRlc3RpZD1cImNoYXJ0LWhlYWRlci1sYWJlbFwiXG4gICAgICBrZXk9e2BsYWJlbC0ke3ZhbHVlfS0ke3Bvc2l0aW9uUGVyY2VudH1gfVxuICAgICAgcG9zaXRpb25QZXJjZW50PXtwb3NpdGlvblBlcmNlbnR9XG4gICAgICB0ZXh0QWxpZ249XCJjZW50ZXJcIlxuICAgICAgdGV4dENvbG9yPXtzdHlsZUNvbmZpZy50ZXh0Q29sb3J9XG4gICAgICB2YXJpYW50PVwicC1zbWFsbFwiXG4gICAgPlxuICAgICAge2Zvcm1hdE51bWJlclVTQ29tcGFjdCh7XG4gICAgICAgIG51bTogdmFsdWUsXG4gICAgICB9KX1cbiAgICA8L1N0eWxlZExhYmVsVGV4dD5cbiAgKSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Qm94IG1iPXsxMn0gd2lkdGg9ezF9PlxuICAgICAgPFN0eWxlZEhlYWRlckNvbnRhaW5lclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICBkaXNwbGF5PXt7IF86ICdub25lJywgc206ICdibG9jaycgfX1cbiAgICAgID5cbiAgICAgICAgPFZlcnRpY2FsU3BhY2VyPlxuICAgICAgICAgIDxIZWFkZXJMYWJlbEFyZWE+e3NjYWxlTGFiZWxzfTwvSGVhZGVyTGFiZWxBcmVhPlxuICAgICAgICA8L1ZlcnRpY2FsU3BhY2VyPlxuICAgICAgPC9TdHlsZWRIZWFkZXJDb250YWluZXI+XG4gICAgPC9Cb3g+XG4gICk7XG59O1xuXG4iXX0= */");
46
- export const ScaleChartHeader = ({
47
- labelCount,
48
- min,
49
- max
50
- }) => {
51
- const {
52
- styleConfig
53
- } = useBarChartContext();
54
- const labelPositions = useLabelPositions({
55
- min,
56
- max,
57
- count: labelCount
58
- });
59
- const scaleLabels = labelPositions.map(({
60
- value,
61
- positionPercent
62
- }) => /*#__PURE__*/_jsx(StyledLabelText, {
63
- "data-testid": "chart-header-label",
64
- positionPercent: positionPercent,
65
- textAlign: "center",
66
- textColor: styleConfig.textColor,
67
- variant: "p-small",
68
- children: formatNumberUSCompact({
69
- num: value
70
- })
71
- }, `label-${value}-${positionPercent}`));
72
- return /*#__PURE__*/_jsx(Box, {
73
- mb: 12,
74
- width: 1,
75
- children: /*#__PURE__*/_jsx(StyledHeaderContainer, {
76
- "aria-hidden": "true",
77
- display: {
78
- _: 'none',
79
- sm: 'block'
80
- },
81
- children: /*#__PURE__*/_jsx(VerticalSpacer, {
82
- children: /*#__PURE__*/_jsx(HeaderLabelArea, {
83
- children: scaleLabels
84
- })
85
- })
86
- })
87
- });
88
- };
@@ -1,6 +0,0 @@
1
- import { ReactNode } from 'react';
2
- export interface VerticalSpacerProps {
3
- children: ReactNode;
4
- className?: string;
5
- }
6
- export declare const VerticalSpacer: React.FC<VerticalSpacerProps>;
@@ -1,47 +0,0 @@
1
- import _styled from "@emotion/styled/base";
2
- import { css } from '@codecademy/gamut-styles';
3
- import { Box } from '../../Box';
4
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
- const SpacerContainer = /*#__PURE__*/_styled(Box, {
6
- target: "e1u3mkni3",
7
- label: "SpacerContainer"
8
- })(css({
9
- display: 'flex',
10
- width: '100%',
11
- height: '100%',
12
- gap: 0
13
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9sYXlvdXQvVmVydGljYWxTcGFjZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU13QiIsImZpbGUiOiIuLi8uLi8uLi9zcmMvQmFyQ2hhcnQvbGF5b3V0L1ZlcnRpY2FsU3BhY2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uL0JveCc7XG5cbmNvbnN0IFNwYWNlckNvbnRhaW5lciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGdhcDogMCxcbiAgfSlcbik7XG5cbmNvbnN0IExlZnRTcGFjZXIgPSBzdHlsZWQoQm94KShcbiAgY3NzKHtcbiAgICBmbGV4U2hyaW5rOiAwLFxuICAgIG1pbldpZHRoOiAnMjAwcHgnLFxuICAgIHBsOiAxNixcbiAgfSlcbik7XG5cbmNvbnN0IENvbnRlbnRBcmVhID0gc3R5bGVkKEJveCkoXG4gIGNzcyh7XG4gICAgZmxleDogMSxcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgfSlcbik7XG5cbmNvbnN0IFJpZ2h0U3BhY2VyID0gc3R5bGVkKEJveCkoXG4gIGNzcyh7XG4gICAgZmxleFNocmluazogMCxcbiAgICB3aWR0aDogJzE2MHB4JyxcbiAgfSlcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVydGljYWxTcGFjZXJQcm9wcyB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFZlcnRpY2FsU3BhY2VyOiBSZWFjdC5GQzxWZXJ0aWNhbFNwYWNlclByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG59KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPFNwYWNlckNvbnRhaW5lciBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICA8TGVmdFNwYWNlciAvPlxuICAgICAgPENvbnRlbnRBcmVhPntjaGlsZHJlbn08L0NvbnRlbnRBcmVhPlxuICAgICAgPFJpZ2h0U3BhY2VyIC8+XG4gICAgPC9TcGFjZXJDb250YWluZXI+XG4gICk7XG59O1xuXG4iXX0= */");
14
- const LeftSpacer = /*#__PURE__*/_styled(Box, {
15
- target: "e1u3mkni2",
16
- label: "LeftSpacer"
17
- })(css({
18
- flexShrink: 0,
19
- minWidth: '200px',
20
- pl: 16
21
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9sYXlvdXQvVmVydGljYWxTcGFjZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVtQiIsImZpbGUiOiIuLi8uLi8uLi9zcmMvQmFyQ2hhcnQvbGF5b3V0L1ZlcnRpY2FsU3BhY2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uL0JveCc7XG5cbmNvbnN0IFNwYWNlckNvbnRhaW5lciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGdhcDogMCxcbiAgfSlcbik7XG5cbmNvbnN0IExlZnRTcGFjZXIgPSBzdHlsZWQoQm94KShcbiAgY3NzKHtcbiAgICBmbGV4U2hyaW5rOiAwLFxuICAgIG1pbldpZHRoOiAnMjAwcHgnLFxuICAgIHBsOiAxNixcbiAgfSlcbik7XG5cbmNvbnN0IENvbnRlbnRBcmVhID0gc3R5bGVkKEJveCkoXG4gIGNzcyh7XG4gICAgZmxleDogMSxcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgfSlcbik7XG5cbmNvbnN0IFJpZ2h0U3BhY2VyID0gc3R5bGVkKEJveCkoXG4gIGNzcyh7XG4gICAgZmxleFNocmluazogMCxcbiAgICB3aWR0aDogJzE2MHB4JyxcbiAgfSlcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVydGljYWxTcGFjZXJQcm9wcyB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFZlcnRpY2FsU3BhY2VyOiBSZWFjdC5GQzxWZXJ0aWNhbFNwYWNlclByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG59KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPFNwYWNlckNvbnRhaW5lciBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICA8TGVmdFNwYWNlciAvPlxuICAgICAgPENvbnRlbnRBcmVhPntjaGlsZHJlbn08L0NvbnRlbnRBcmVhPlxuICAgICAgPFJpZ2h0U3BhY2VyIC8+XG4gICAgPC9TcGFjZXJDb250YWluZXI+XG4gICk7XG59O1xuXG4iXX0= */");
22
- const ContentArea = /*#__PURE__*/_styled(Box, {
23
- target: "e1u3mkni1",
24
- label: "ContentArea"
25
- })(css({
26
- flex: 1,
27
- position: 'relative',
28
- height: '100%'
29
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9sYXlvdXQvVmVydGljYWxTcGFjZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVCb0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0JhckNoYXJ0L2xheW91dC9WZXJ0aWNhbFNwYWNlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBCb3ggfSBmcm9tICcuLi8uLi9Cb3gnO1xuXG5jb25zdCBTcGFjZXJDb250YWluZXIgPSBzdHlsZWQoQm94KShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICBnYXA6IDAsXG4gIH0pXG4pO1xuXG5jb25zdCBMZWZ0U3BhY2VyID0gc3R5bGVkKEJveCkoXG4gIGNzcyh7XG4gICAgZmxleFNocmluazogMCxcbiAgICBtaW5XaWR0aDogJzIwMHB4JyxcbiAgICBwbDogMTYsXG4gIH0pXG4pO1xuXG5jb25zdCBDb250ZW50QXJlYSA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGZsZXg6IDEsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gIH0pXG4pO1xuXG5jb25zdCBSaWdodFNwYWNlciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGZsZXhTaHJpbms6IDAsXG4gICAgd2lkdGg6ICcxNjBweCcsXG4gIH0pXG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZlcnRpY2FsU3BhY2VyUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBWZXJ0aWNhbFNwYWNlcjogUmVhY3QuRkM8VmVydGljYWxTcGFjZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxufSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxTcGFjZXJDb250YWluZXIgY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAgPExlZnRTcGFjZXIgLz5cbiAgICAgIDxDb250ZW50QXJlYT57Y2hpbGRyZW59PC9Db250ZW50QXJlYT5cbiAgICAgIDxSaWdodFNwYWNlciAvPlxuICAgIDwvU3BhY2VyQ29udGFpbmVyPlxuICApO1xufTtcblxuIl19 */");
30
- const RightSpacer = /*#__PURE__*/_styled(Box, {
31
- target: "e1u3mkni0",
32
- label: "RightSpacer"
33
- })(css({
34
- flexShrink: 0,
35
- width: '160px'
36
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9sYXlvdXQvVmVydGljYWxTcGFjZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStCb0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0JhckNoYXJ0L2xheW91dC9WZXJ0aWNhbFNwYWNlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBCb3ggfSBmcm9tICcuLi8uLi9Cb3gnO1xuXG5jb25zdCBTcGFjZXJDb250YWluZXIgPSBzdHlsZWQoQm94KShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICBnYXA6IDAsXG4gIH0pXG4pO1xuXG5jb25zdCBMZWZ0U3BhY2VyID0gc3R5bGVkKEJveCkoXG4gIGNzcyh7XG4gICAgZmxleFNocmluazogMCxcbiAgICBtaW5XaWR0aDogJzIwMHB4JyxcbiAgICBwbDogMTYsXG4gIH0pXG4pO1xuXG5jb25zdCBDb250ZW50QXJlYSA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGZsZXg6IDEsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gIH0pXG4pO1xuXG5jb25zdCBSaWdodFNwYWNlciA9IHN0eWxlZChCb3gpKFxuICBjc3Moe1xuICAgIGZsZXhTaHJpbms6IDAsXG4gICAgd2lkdGg6ICcxNjBweCcsXG4gIH0pXG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZlcnRpY2FsU3BhY2VyUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBWZXJ0aWNhbFNwYWNlcjogUmVhY3QuRkM8VmVydGljYWxTcGFjZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxufSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxTcGFjZXJDb250YWluZXIgY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAgPExlZnRTcGFjZXIgLz5cbiAgICAgIDxDb250ZW50QXJlYT57Y2hpbGRyZW59PC9Db250ZW50QXJlYT5cbiAgICAgIDxSaWdodFNwYWNlciAvPlxuICAgIDwvU3BhY2VyQ29udGFpbmVyPlxuICApO1xufTtcblxuIl19 */");
37
- export const VerticalSpacer = ({
38
- children,
39
- className
40
- }) => {
41
- return /*#__PURE__*/_jsxs(SpacerContainer, {
42
- className: className,
43
- children: [/*#__PURE__*/_jsx(LeftSpacer, {}), /*#__PURE__*/_jsx(ContentArea, {
44
- children: children
45
- }), /*#__PURE__*/_jsx(RightSpacer, {})]
46
- });
47
- };
@@ -1,56 +0,0 @@
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 {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,36 +0,0 @@
1
- import { BarChartContextProps } from '../BarChartProvider';
2
- import { BarChartStyles } from '../types';
3
- export interface LabelPosition {
4
- value: number;
5
- positionPercent: number;
6
- }
7
- /**
8
- * Hook that calculates label positions for a given range and count
9
- * Returns an array of { value, positionPercent } objects
10
- */
11
- export declare const useLabelPositions: ({ min, max, count, }: {
12
- min: number;
13
- max: number;
14
- count: number;
15
- }) => LabelPosition[];
16
- export declare function useBarChartContext(): BarChartContextProps;
17
- export interface UseBarChartOptions {
18
- minRange: number;
19
- maxRange: number;
20
- xScale?: number;
21
- unit?: string;
22
- styleConfig?: BarChartStyles;
23
- animate?: boolean;
24
- }
25
- export declare function useBarChart({ minRange, maxRange, xScale, unit, styleConfig, animate, }: UseBarChartOptions): {
26
- minRange: number;
27
- maxRange: number;
28
- xScale: number;
29
- unit: string;
30
- styleConfig: {
31
- 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";
32
- 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";
33
- 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";
34
- };
35
- animate: boolean;
36
- };
@@ -1,61 +0,0 @@
1
- import { useContext, useMemo } from 'react';
2
- import { BarChartContext } from '../BarChartProvider';
3
- import { calculatePositionPercent, getLabel } from './index';
4
- const defaultStyleConfig = {
5
- textColor: 'text',
6
- foregroundBarColor: 'feedback-warning',
7
- backgroundBarColor: 'background-primary'
8
- };
9
-
10
- /**
11
- * Hook that calculates label positions for a given range and count
12
- * Returns an array of { value, positionPercent } objects
13
- */
14
- export const useLabelPositions = ({
15
- min,
16
- max,
17
- count
18
- }) => {
19
- return useMemo(() => Array.from({
20
- length: count
21
- }, (_, i) => {
22
- const value = getLabel({
23
- labelCount: count,
24
- labelIndex: i,
25
- min,
26
- max
27
- });
28
- const positionPercent = calculatePositionPercent({
29
- value,
30
- min,
31
- max
32
- });
33
- return {
34
- value,
35
- positionPercent
36
- };
37
- }), [min, max, count]);
38
- };
39
- export function useBarChartContext() {
40
- return useContext(BarChartContext);
41
- }
42
- export function useBarChart({
43
- minRange,
44
- maxRange,
45
- xScale,
46
- unit = '',
47
- styleConfig,
48
- animate = false
49
- }) {
50
- return useMemo(() => ({
51
- minRange,
52
- maxRange,
53
- xScale: xScale ?? Math.ceil((maxRange - minRange) / 5),
54
- unit,
55
- styleConfig: {
56
- ...defaultStyleConfig,
57
- ...styleConfig
58
- },
59
- animate
60
- }), [minRange, maxRange, xScale, unit, styleConfig, animate]);
61
- }