@codecademy/gamut 67.6.4 → 67.6.5-alpha.6a44f3.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 (36) hide show
  1. package/dist/BarChart/BarChartProvider.d.ts +19 -0
  2. package/dist/BarChart/BarChartProvider.js +31 -0
  3. package/dist/BarChart/BarRow/elements.d.ts +713 -0
  4. package/dist/BarChart/BarRow/elements.js +89 -0
  5. package/dist/BarChart/BarRow/index.d.ts +26 -0
  6. package/dist/BarChart/BarRow/index.js +254 -0
  7. package/dist/BarChart/GENERIC_EXAMPLE.d.ts +14 -0
  8. package/dist/BarChart/GENERIC_EXAMPLE.js +333 -0
  9. package/dist/BarChart/index.d.ts +4 -0
  10. package/dist/BarChart/index.js +156 -0
  11. package/dist/BarChart/layout/GridLines.d.ts +7 -0
  12. package/dist/BarChart/layout/GridLines.js +78 -0
  13. package/dist/BarChart/layout/ScaleChartHeader.d.ts +10 -0
  14. package/dist/BarChart/layout/ScaleChartHeader.js +89 -0
  15. package/dist/BarChart/layout/VerticalSpacer.d.ts +6 -0
  16. package/dist/BarChart/layout/VerticalSpacer.js +56 -0
  17. package/dist/BarChart/shared/elements.d.ts +7 -0
  18. package/dist/BarChart/shared/elements.js +12 -0
  19. package/dist/BarChart/shared/styles.d.ts +4 -0
  20. package/dist/BarChart/shared/styles.js +4 -0
  21. package/dist/BarChart/shared/translations.d.ts +17 -0
  22. package/dist/BarChart/shared/translations.js +16 -0
  23. package/dist/BarChart/shared/types.d.ts +88 -0
  24. package/dist/BarChart/shared/types.js +1 -0
  25. package/dist/BarChart/utils/hooks.d.ts +93 -0
  26. package/dist/BarChart/utils/hooks.js +301 -0
  27. package/dist/BarChart/utils/index.d.ts +86 -0
  28. package/dist/BarChart/utils/index.js +165 -0
  29. package/dist/ConnectedForm/utils.d.ts +1 -1
  30. package/dist/Form/SelectDropdown/styles.d.ts +1 -1
  31. package/dist/Form/elements/Form.d.ts +1 -1
  32. package/dist/Form/inputs/Select.js +6 -5
  33. package/dist/List/elements.d.ts +1 -1
  34. package/dist/index.d.ts +1 -0
  35. package/dist/index.js +1 -0
  36. package/package.json +2 -2
@@ -0,0 +1,89 @@
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 { motion } from 'framer-motion';
5
+ import { Box } from '../../Box';
6
+ import { barListItemPadding } from '../shared/styles';
7
+ const rowBaseStyles = css({
8
+ alignItems: 'center',
9
+ bg: 'transparent',
10
+ border: 'none',
11
+ cursor: 'inherit',
12
+ display: 'flex',
13
+ flexDirection: {
14
+ _: 'column',
15
+ xs: 'row'
16
+ },
17
+ p: barListItemPadding,
18
+ position: 'relative',
19
+ textDecoration: 'none',
20
+ width: '100%',
21
+ '&:focus': {
22
+ outline: 'none'
23
+ },
24
+ '&:focus-visible': {
25
+ outline: '2px solid',
26
+ outlineColor: 'primary',
27
+ outlineOffset: '2px'
28
+ }
29
+ });
30
+ const interactiveStyles = css({
31
+ cursor: 'pointer',
32
+ '&:hover': {
33
+ bg: 'background-hover'
34
+ }
35
+ });
36
+ export const RowWrapper = /*#__PURE__*/_styled('span', {
37
+ target: "e15ycbyh4",
38
+ label: "RowWrapper"
39
+ })(rowBaseStyles, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9CYXJSb3cvZWxlbWVudHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9DMEIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0JhckNoYXJ0L0JhclJvdy9lbGVtZW50cy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MsIHN0eWxlZE9wdGlvbnMgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgbW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5cbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uL0JveCc7XG5pbXBvcnQgeyBiYXJMaXN0SXRlbVBhZGRpbmcgfSBmcm9tICcuLi9zaGFyZWQvc3R5bGVzJztcblxuY29uc3Qgcm93QmFzZVN0eWxlcyA9IGNzcyh7XG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBiZzogJ3RyYW5zcGFyZW50JyxcbiAgYm9yZGVyOiAnbm9uZScsXG4gIGN1cnNvcjogJ2luaGVyaXQnLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGZsZXhEaXJlY3Rpb246IHsgXzogJ2NvbHVtbicsIHhzOiAncm93JyB9LFxuXG4gIHA6IGJhckxpc3RJdGVtUGFkZGluZyxcbiAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gIHRleHREZWNvcmF0aW9uOiAnbm9uZScsXG4gIHdpZHRoOiAnMTAwJScsXG4gICcmOmZvY3VzJzoge1xuICAgIG91dGxpbmU6ICdub25lJyxcbiAgfSxcbiAgJyY6Zm9jdXMtdmlzaWJsZSc6IHtcbiAgICBvdXRsaW5lOiAnMnB4IHNvbGlkJyxcbiAgICBvdXRsaW5lQ29sb3I6ICdwcmltYXJ5JyxcbiAgICBvdXRsaW5lT2Zmc2V0OiAnMnB4JyxcbiAgfSxcbn0pO1xuXG5jb25zdCBpbnRlcmFjdGl2ZVN0eWxlcyA9IGNzcyh7XG4gIGN1cnNvcjogJ3BvaW50ZXInLFxuICAnJjpob3Zlcic6IHtcbiAgICBiZzogJ2JhY2tncm91bmQtaG92ZXInLFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBSb3dXcmFwcGVyID0gc3R5bGVkKCdzcGFuJykocm93QmFzZVN0eWxlcyk7XG5leHBvcnQgY29uc3QgUm93QnV0dG9uID0gc3R5bGVkKCdidXR0b24nLCBzdHlsZWRPcHRpb25zPCdidXR0b24nPigpKShcbiAgcm93QmFzZVN0eWxlcyxcbiAgaW50ZXJhY3RpdmVTdHlsZXNcbik7XG5leHBvcnQgY29uc3QgUm93QW5jaG9yID0gc3R5bGVkKCdhJywgc3R5bGVkT3B0aW9uczwnYSc+KCkpKFxuICByb3dCYXNlU3R5bGVzLFxuICBpbnRlcmFjdGl2ZVN0eWxlc1xuKTtcblxuZXhwb3J0IGNvbnN0IEJhcldyYXBwZXIgPSBzdHlsZWQoQm94KShcbiAgY3NzKHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBib3JkZXJSYWRpdXM6IHsgXzogJ21kJyBhcyBhbnksIHhzOiAneGwnIH0sXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXg6IHsgXzogJ25vbmUnLCB4czogMSB9LFxuICAgIGhlaWdodDogeyBfOiA4LCB4czogMjQgfSxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgd2lkdGg6IHsgXzogJzEwMCUnLCB4czogJ2F1dG8nIH0sXG4gICAgbXQ6IHsgXzogOCwgeHM6IDAgfSxcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBib3JkZXJSYWRpdXM6ICdpbmhlcml0JyxcbiAgICBib3JkZXJTdHlsZTogJ3NvbGlkJyxcbiAgICBib3JkZXJXaWR0aDogJzFweCcsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxlZnQ6IDAsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gIH0pXG4pO1xuIl19 */");
40
+ export const RowButton = /*#__PURE__*/_styled('button', _extends({}, {
41
+ target: "e15ycbyh3",
42
+ label: "RowButton"
43
+ }, styledOptions()))(rowBaseStyles, interactiveStyles, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9CYXJSb3cvZWxlbWVudHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFDeUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0JhckNoYXJ0L0JhclJvdy9lbGVtZW50cy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MsIHN0eWxlZE9wdGlvbnMgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgbW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5cbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uL0JveCc7XG5pbXBvcnQgeyBiYXJMaXN0SXRlbVBhZGRpbmcgfSBmcm9tICcuLi9zaGFyZWQvc3R5bGVzJztcblxuY29uc3Qgcm93QmFzZVN0eWxlcyA9IGNzcyh7XG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBiZzogJ3RyYW5zcGFyZW50JyxcbiAgYm9yZGVyOiAnbm9uZScsXG4gIGN1cnNvcjogJ2luaGVyaXQnLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGZsZXhEaXJlY3Rpb246IHsgXzogJ2NvbHVtbicsIHhzOiAncm93JyB9LFxuXG4gIHA6IGJhckxpc3RJdGVtUGFkZGluZyxcbiAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gIHRleHREZWNvcmF0aW9uOiAnbm9uZScsXG4gIHdpZHRoOiAnMTAwJScsXG4gICcmOmZvY3VzJzoge1xuICAgIG91dGxpbmU6ICdub25lJyxcbiAgfSxcbiAgJyY6Zm9jdXMtdmlzaWJsZSc6IHtcbiAgICBvdXRsaW5lOiAnMnB4IHNvbGlkJyxcbiAgICBvdXRsaW5lQ29sb3I6ICdwcmltYXJ5JyxcbiAgICBvdXRsaW5lT2Zmc2V0OiAnMnB4JyxcbiAgfSxcbn0pO1xuXG5jb25zdCBpbnRlcmFjdGl2ZVN0eWxlcyA9IGNzcyh7XG4gIGN1cnNvcjogJ3BvaW50ZXInLFxuICAnJjpob3Zlcic6IHtcbiAgICBiZzogJ2JhY2tncm91bmQtaG92ZXInLFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBSb3dXcmFwcGVyID0gc3R5bGVkKCdzcGFuJykocm93QmFzZVN0eWxlcyk7XG5leHBvcnQgY29uc3QgUm93QnV0dG9uID0gc3R5bGVkKCdidXR0b24nLCBzdHlsZWRPcHRpb25zPCdidXR0b24nPigpKShcbiAgcm93QmFzZVN0eWxlcyxcbiAgaW50ZXJhY3RpdmVTdHlsZXNcbik7XG5leHBvcnQgY29uc3QgUm93QW5jaG9yID0gc3R5bGVkKCdhJywgc3R5bGVkT3B0aW9uczwnYSc+KCkpKFxuICByb3dCYXNlU3R5bGVzLFxuICBpbnRlcmFjdGl2ZVN0eWxlc1xuKTtcblxuZXhwb3J0IGNvbnN0IEJhcldyYXBwZXIgPSBzdHlsZWQoQm94KShcbiAgY3NzKHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBib3JkZXJSYWRpdXM6IHsgXzogJ21kJyBhcyBhbnksIHhzOiAneGwnIH0sXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXg6IHsgXzogJ25vbmUnLCB4czogMSB9LFxuICAgIGhlaWdodDogeyBfOiA4LCB4czogMjQgfSxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgd2lkdGg6IHsgXzogJzEwMCUnLCB4czogJ2F1dG8nIH0sXG4gICAgbXQ6IHsgXzogOCwgeHM6IDAgfSxcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBib3JkZXJSYWRpdXM6ICdpbmhlcml0JyxcbiAgICBib3JkZXJTdHlsZTogJ3NvbGlkJyxcbiAgICBib3JkZXJXaWR0aDogJzFweCcsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxlZnQ6IDAsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gIH0pXG4pO1xuIl19 */");
44
+ export const RowAnchor = /*#__PURE__*/_styled('a', _extends({}, {
45
+ target: "e15ycbyh2",
46
+ label: "RowAnchor"
47
+ }, styledOptions()))(rowBaseStyles, interactiveStyles, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9CYXJSb3cvZWxlbWVudHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlDeUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0JhckNoYXJ0L0JhclJvdy9lbGVtZW50cy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MsIHN0eWxlZE9wdGlvbnMgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgbW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5cbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uL0JveCc7XG5pbXBvcnQgeyBiYXJMaXN0SXRlbVBhZGRpbmcgfSBmcm9tICcuLi9zaGFyZWQvc3R5bGVzJztcblxuY29uc3Qgcm93QmFzZVN0eWxlcyA9IGNzcyh7XG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBiZzogJ3RyYW5zcGFyZW50JyxcbiAgYm9yZGVyOiAnbm9uZScsXG4gIGN1cnNvcjogJ2luaGVyaXQnLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGZsZXhEaXJlY3Rpb246IHsgXzogJ2NvbHVtbicsIHhzOiAncm93JyB9LFxuXG4gIHA6IGJhckxpc3RJdGVtUGFkZGluZyxcbiAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gIHRleHREZWNvcmF0aW9uOiAnbm9uZScsXG4gIHdpZHRoOiAnMTAwJScsXG4gICcmOmZvY3VzJzoge1xuICAgIG91dGxpbmU6ICdub25lJyxcbiAgfSxcbiAgJyY6Zm9jdXMtdmlzaWJsZSc6IHtcbiAgICBvdXRsaW5lOiAnMnB4IHNvbGlkJyxcbiAgICBvdXRsaW5lQ29sb3I6ICdwcmltYXJ5JyxcbiAgICBvdXRsaW5lT2Zmc2V0OiAnMnB4JyxcbiAgfSxcbn0pO1xuXG5jb25zdCBpbnRlcmFjdGl2ZVN0eWxlcyA9IGNzcyh7XG4gIGN1cnNvcjogJ3BvaW50ZXInLFxuICAnJjpob3Zlcic6IHtcbiAgICBiZzogJ2JhY2tncm91bmQtaG92ZXInLFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBSb3dXcmFwcGVyID0gc3R5bGVkKCdzcGFuJykocm93QmFzZVN0eWxlcyk7XG5leHBvcnQgY29uc3QgUm93QnV0dG9uID0gc3R5bGVkKCdidXR0b24nLCBzdHlsZWRPcHRpb25zPCdidXR0b24nPigpKShcbiAgcm93QmFzZVN0eWxlcyxcbiAgaW50ZXJhY3RpdmVTdHlsZXNcbik7XG5leHBvcnQgY29uc3QgUm93QW5jaG9yID0gc3R5bGVkKCdhJywgc3R5bGVkT3B0aW9uczwnYSc+KCkpKFxuICByb3dCYXNlU3R5bGVzLFxuICBpbnRlcmFjdGl2ZVN0eWxlc1xuKTtcblxuZXhwb3J0IGNvbnN0IEJhcldyYXBwZXIgPSBzdHlsZWQoQm94KShcbiAgY3NzKHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBib3JkZXJSYWRpdXM6IHsgXzogJ21kJyBhcyBhbnksIHhzOiAneGwnIH0sXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXg6IHsgXzogJ25vbmUnLCB4czogMSB9LFxuICAgIGhlaWdodDogeyBfOiA4LCB4czogMjQgfSxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgd2lkdGg6IHsgXzogJzEwMCUnLCB4czogJ2F1dG8nIH0sXG4gICAgbXQ6IHsgXzogOCwgeHM6IDAgfSxcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBib3JkZXJSYWRpdXM6ICdpbmhlcml0JyxcbiAgICBib3JkZXJTdHlsZTogJ3NvbGlkJyxcbiAgICBib3JkZXJXaWR0aDogJzFweCcsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxlZnQ6IDAsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gIH0pXG4pO1xuIl19 */");
48
+ export const BarWrapper = /*#__PURE__*/_styled(Box, {
49
+ target: "e15ycbyh1",
50
+ label: "BarWrapper"
51
+ })(css({
52
+ alignItems: 'center',
53
+ borderRadius: {
54
+ _: 'md',
55
+ xs: 'xl'
56
+ },
57
+ display: 'flex',
58
+ flex: {
59
+ _: 'none',
60
+ xs: 1
61
+ },
62
+ height: {
63
+ _: 8,
64
+ xs: 24
65
+ },
66
+ overflow: 'hidden',
67
+ position: 'relative',
68
+ width: {
69
+ _: '100%',
70
+ xs: 'auto'
71
+ },
72
+ mt: {
73
+ _: 8,
74
+ xs: 0
75
+ }
76
+ }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9CYXJSb3cvZWxlbWVudHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThDMEIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0JhckNoYXJ0L0JhclJvdy9lbGVtZW50cy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MsIHN0eWxlZE9wdGlvbnMgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgbW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5cbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uL0JveCc7XG5pbXBvcnQgeyBiYXJMaXN0SXRlbVBhZGRpbmcgfSBmcm9tICcuLi9zaGFyZWQvc3R5bGVzJztcblxuY29uc3Qgcm93QmFzZVN0eWxlcyA9IGNzcyh7XG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBiZzogJ3RyYW5zcGFyZW50JyxcbiAgYm9yZGVyOiAnbm9uZScsXG4gIGN1cnNvcjogJ2luaGVyaXQnLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGZsZXhEaXJlY3Rpb246IHsgXzogJ2NvbHVtbicsIHhzOiAncm93JyB9LFxuXG4gIHA6IGJhckxpc3RJdGVtUGFkZGluZyxcbiAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gIHRleHREZWNvcmF0aW9uOiAnbm9uZScsXG4gIHdpZHRoOiAnMTAwJScsXG4gICcmOmZvY3VzJzoge1xuICAgIG91dGxpbmU6ICdub25lJyxcbiAgfSxcbiAgJyY6Zm9jdXMtdmlzaWJsZSc6IHtcbiAgICBvdXRsaW5lOiAnMnB4IHNvbGlkJyxcbiAgICBvdXRsaW5lQ29sb3I6ICdwcmltYXJ5JyxcbiAgICBvdXRsaW5lT2Zmc2V0OiAnMnB4JyxcbiAgfSxcbn0pO1xuXG5jb25zdCBpbnRlcmFjdGl2ZVN0eWxlcyA9IGNzcyh7XG4gIGN1cnNvcjogJ3BvaW50ZXInLFxuICAnJjpob3Zlcic6IHtcbiAgICBiZzogJ2JhY2tncm91bmQtaG92ZXInLFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBSb3dXcmFwcGVyID0gc3R5bGVkKCdzcGFuJykocm93QmFzZVN0eWxlcyk7XG5leHBvcnQgY29uc3QgUm93QnV0dG9uID0gc3R5bGVkKCdidXR0b24nLCBzdHlsZWRPcHRpb25zPCdidXR0b24nPigpKShcbiAgcm93QmFzZVN0eWxlcyxcbiAgaW50ZXJhY3RpdmVTdHlsZXNcbik7XG5leHBvcnQgY29uc3QgUm93QW5jaG9yID0gc3R5bGVkKCdhJywgc3R5bGVkT3B0aW9uczwnYSc+KCkpKFxuICByb3dCYXNlU3R5bGVzLFxuICBpbnRlcmFjdGl2ZVN0eWxlc1xuKTtcblxuZXhwb3J0IGNvbnN0IEJhcldyYXBwZXIgPSBzdHlsZWQoQm94KShcbiAgY3NzKHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBib3JkZXJSYWRpdXM6IHsgXzogJ21kJyBhcyBhbnksIHhzOiAneGwnIH0sXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXg6IHsgXzogJ25vbmUnLCB4czogMSB9LFxuICAgIGhlaWdodDogeyBfOiA4LCB4czogMjQgfSxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgd2lkdGg6IHsgXzogJzEwMCUnLCB4czogJ2F1dG8nIH0sXG4gICAgbXQ6IHsgXzogOCwgeHM6IDAgfSxcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBib3JkZXJSYWRpdXM6ICdpbmhlcml0JyxcbiAgICBib3JkZXJTdHlsZTogJ3NvbGlkJyxcbiAgICBib3JkZXJXaWR0aDogJzFweCcsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxlZnQ6IDAsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gIH0pXG4pO1xuIl19 */");
77
+ export const Bar = /*#__PURE__*/_styled(motion.create(Box), {
78
+ target: "e15ycbyh0",
79
+ label: "Bar"
80
+ })(css({
81
+ alignItems: 'center',
82
+ borderRadius: 'inherit',
83
+ borderStyle: 'solid',
84
+ borderWidth: '1px',
85
+ display: 'flex',
86
+ height: '100%',
87
+ left: 0,
88
+ position: 'absolute'
89
+ }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CYXJDaGFydC9CYXJSb3cvZWxlbWVudHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTREbUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0JhckNoYXJ0L0JhclJvdy9lbGVtZW50cy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MsIHN0eWxlZE9wdGlvbnMgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgbW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5cbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uL0JveCc7XG5pbXBvcnQgeyBiYXJMaXN0SXRlbVBhZGRpbmcgfSBmcm9tICcuLi9zaGFyZWQvc3R5bGVzJztcblxuY29uc3Qgcm93QmFzZVN0eWxlcyA9IGNzcyh7XG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBiZzogJ3RyYW5zcGFyZW50JyxcbiAgYm9yZGVyOiAnbm9uZScsXG4gIGN1cnNvcjogJ2luaGVyaXQnLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGZsZXhEaXJlY3Rpb246IHsgXzogJ2NvbHVtbicsIHhzOiAncm93JyB9LFxuXG4gIHA6IGJhckxpc3RJdGVtUGFkZGluZyxcbiAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gIHRleHREZWNvcmF0aW9uOiAnbm9uZScsXG4gIHdpZHRoOiAnMTAwJScsXG4gICcmOmZvY3VzJzoge1xuICAgIG91dGxpbmU6ICdub25lJyxcbiAgfSxcbiAgJyY6Zm9jdXMtdmlzaWJsZSc6IHtcbiAgICBvdXRsaW5lOiAnMnB4IHNvbGlkJyxcbiAgICBvdXRsaW5lQ29sb3I6ICdwcmltYXJ5JyxcbiAgICBvdXRsaW5lT2Zmc2V0OiAnMnB4JyxcbiAgfSxcbn0pO1xuXG5jb25zdCBpbnRlcmFjdGl2ZVN0eWxlcyA9IGNzcyh7XG4gIGN1cnNvcjogJ3BvaW50ZXInLFxuICAnJjpob3Zlcic6IHtcbiAgICBiZzogJ2JhY2tncm91bmQtaG92ZXInLFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBSb3dXcmFwcGVyID0gc3R5bGVkKCdzcGFuJykocm93QmFzZVN0eWxlcyk7XG5leHBvcnQgY29uc3QgUm93QnV0dG9uID0gc3R5bGVkKCdidXR0b24nLCBzdHlsZWRPcHRpb25zPCdidXR0b24nPigpKShcbiAgcm93QmFzZVN0eWxlcyxcbiAgaW50ZXJhY3RpdmVTdHlsZXNcbik7XG5leHBvcnQgY29uc3QgUm93QW5jaG9yID0gc3R5bGVkKCdhJywgc3R5bGVkT3B0aW9uczwnYSc+KCkpKFxuICByb3dCYXNlU3R5bGVzLFxuICBpbnRlcmFjdGl2ZVN0eWxlc1xuKTtcblxuZXhwb3J0IGNvbnN0IEJhcldyYXBwZXIgPSBzdHlsZWQoQm94KShcbiAgY3NzKHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBib3JkZXJSYWRpdXM6IHsgXzogJ21kJyBhcyBhbnksIHhzOiAneGwnIH0sXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXg6IHsgXzogJ25vbmUnLCB4czogMSB9LFxuICAgIGhlaWdodDogeyBfOiA4LCB4czogMjQgfSxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgd2lkdGg6IHsgXzogJzEwMCUnLCB4czogJ2F1dG8nIH0sXG4gICAgbXQ6IHsgXzogOCwgeHM6IDAgfSxcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBCYXIgPSBzdHlsZWQobW90aW9uLmNyZWF0ZShCb3gpKShcbiAgY3NzKHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBib3JkZXJSYWRpdXM6ICdpbmhlcml0JyxcbiAgICBib3JkZXJTdHlsZTogJ3NvbGlkJyxcbiAgICBib3JkZXJXaWR0aDogJzFweCcsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxlZnQ6IDAsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gIH0pXG4pO1xuIl19 */");
@@ -0,0 +1,26 @@
1
+ import { MouseEventHandler } from 'react';
2
+ import { BarProps } from '../shared/types';
3
+ export type BarRowProps = BarProps & {
4
+ index?: number;
5
+ };
6
+ export declare const BarRow: import("react").ForwardRefExoticComponent<(Omit<{
7
+ yLabel: string;
8
+ seriesOneValue: number;
9
+ seriesTwoValue?: number | undefined;
10
+ icon?: import("react").ComponentType<import("@codecademy/gamut-icons").GamutIconProps> | undefined;
11
+ } & Record<string, unknown> & {
12
+ onClick?: undefined;
13
+ href?: undefined;
14
+ } & {
15
+ index?: number | undefined;
16
+ }, "ref"> | Omit<{
17
+ yLabel: string;
18
+ seriesOneValue: number;
19
+ seriesTwoValue?: number | undefined;
20
+ icon?: import("react").ComponentType<import("@codecademy/gamut-icons").GamutIconProps> | undefined;
21
+ } & Record<string, unknown> & {
22
+ onClick?: MouseEventHandler<HTMLButtonElement> | (MouseEventHandler<HTMLButtonElement> & MouseEventHandler<HTMLAnchorElement>) | undefined;
23
+ href?: string | undefined;
24
+ } & {
25
+ index?: number | undefined;
26
+ }, "ref">) & import("react").RefAttributes<HTMLDivElement | HTMLAnchorElement | HTMLButtonElement>>;
@@ -0,0 +1,254 @@
1
+ import { MiniArrowRightIcon } from '@codecademy/gamut-icons';
2
+ import { forwardRef, useMemo, useRef } from 'react';
3
+ import { Box, FlexBox } from '../../Box';
4
+ import { Text } from '../../Typography';
5
+ import { iconPadding, iconWidth, minBarWidth } from '../shared/styles';
6
+ import { calculateBarWidth, getValuesSummary } from '../utils';
7
+ import { useBarBorderColor, useBarChartContext, useMeasureLeftLabelWidth, useMeasureRightLabelWidth } from '../utils/hooks';
8
+ import { Bar, BarWrapper, RowAnchor, RowButton, RowWrapper } from './elements';
9
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
10
+ export const BarRow = /*#__PURE__*/forwardRef(({
11
+ yLabel,
12
+ seriesOneValue,
13
+ seriesTwoValue,
14
+ icon: Icon,
15
+ onClick,
16
+ href,
17
+ index = 0
18
+ }, ref) => {
19
+ const {
20
+ minRange,
21
+ maxRange,
22
+ unit,
23
+ styleConfig,
24
+ animate,
25
+ widestLeftLabelWidth,
26
+ widestRightLabelWidth,
27
+ translations
28
+ } = useBarChartContext();
29
+ const {
30
+ textColor,
31
+ backgroundBarColor,
32
+ foregroundBarColor,
33
+ seriesOneLabel,
34
+ seriesTwoLabel
35
+ } = styleConfig;
36
+ const labelRef = useRef(null);
37
+ const rightLabelRef = useRef(null);
38
+ useMeasureLeftLabelWidth({
39
+ ref: labelRef
40
+ });
41
+ useMeasureRightLabelWidth({
42
+ ref: rightLabelRef
43
+ });
44
+ const getBorderColor = useBarBorderColor();
45
+ const isStacked = seriesTwoValue !== undefined;
46
+ const displayValue = isStacked ? seriesTwoValue : seriesOneValue;
47
+ const {
48
+ backgroundBorderColor,
49
+ foregroundBorderColor
50
+ } = useMemo(() => ({
51
+ backgroundBorderColor: getBorderColor(backgroundBarColor),
52
+ foregroundBorderColor: isStacked ? getBorderColor(foregroundBarColor) : undefined
53
+ }), [getBorderColor, backgroundBarColor, isStacked, foregroundBarColor]);
54
+ const {
55
+ bgWidthStr,
56
+ fgWidthStr
57
+ } = useMemo(() => {
58
+ const bgWidth = calculateBarWidth({
59
+ value: displayValue,
60
+ minRange,
61
+ maxRange
62
+ });
63
+ const fgWidth = isStacked ? calculateBarWidth({
64
+ value: seriesOneValue,
65
+ minRange,
66
+ maxRange
67
+ }) : 0;
68
+ return {
69
+ bgWidthStr: `${Math.max(minBarWidth, bgWidth)}%`,
70
+ fgWidthStr: `${Math.max(minBarWidth, fgWidth)}%`
71
+ };
72
+ }, [displayValue, isStacked, seriesOneValue, minRange, maxRange]);
73
+ const valuesSummary = useMemo(() => getValuesSummary({
74
+ isInteractive: !!(href || onClick),
75
+ seriesOneValue,
76
+ seriesTwoValue,
77
+ unit,
78
+ yLabel,
79
+ translations
80
+ }), [href, onClick, seriesOneValue, seriesTwoValue, unit, yLabel, translations]);
81
+ const animationDelay = animate ? index * 0.1 : 0;
82
+ const widthValue = widestLeftLabelWidth === null ? 'min-content' : widestLeftLabelWidth;
83
+ const rightWidthValue = widestRightLabelWidth === null ? 'min-content' : widestRightLabelWidth;
84
+ const labelsContainer = useMemo(() => /*#__PURE__*/_jsxs(FlexBox, {
85
+ alignItems: "center",
86
+ display: {
87
+ _: 'flex',
88
+ xs: 'none'
89
+ },
90
+ gap: 8,
91
+ justifyContent: "space-between",
92
+ width: "100%",
93
+ children: [/*#__PURE__*/_jsxs(FlexBox, {
94
+ alignItems: "center",
95
+ color: textColor,
96
+ flexShrink: 0,
97
+ children: [Icon && /*#__PURE__*/_jsx(Icon, {
98
+ mr: iconPadding,
99
+ size: iconWidth
100
+ }), /*#__PURE__*/_jsx(Text, {
101
+ fontWeight: "bold",
102
+ truncate: "ellipsis",
103
+ truncateLines: 1,
104
+ whiteSpace: "nowrap",
105
+ children: yLabel
106
+ })]
107
+ }), /*#__PURE__*/_jsxs(FlexBox, {
108
+ alignItems: "center",
109
+ flexShrink: 0,
110
+ gap: 8,
111
+ justifyContent: "flex-end",
112
+ children: [isStacked && /*#__PURE__*/_jsxs(_Fragment, {
113
+ children: [/*#__PURE__*/_jsxs(Text, {
114
+ color: seriesOneLabel,
115
+ variant: "p-small",
116
+ whiteSpace: "nowrap",
117
+ children: [seriesOneValue.toLocaleString(translations.locale), unit && ` ${unit}`]
118
+ }), /*#__PURE__*/_jsx(MiniArrowRightIcon, {
119
+ color: seriesOneLabel,
120
+ size: 16
121
+ })]
122
+ }), /*#__PURE__*/_jsxs(Text, {
123
+ color: isStacked ? seriesTwoLabel : seriesOneLabel,
124
+ fontWeight: isStacked ? 'bold' : 'normal',
125
+ variant: "p-small",
126
+ whiteSpace: "nowrap",
127
+ children: [displayValue.toLocaleString(translations.locale), unit && ` ${unit}`]
128
+ })]
129
+ })]
130
+ }), [textColor, Icon, yLabel, isStacked, seriesOneValue, seriesOneLabel, seriesTwoLabel, displayValue, unit, translations.locale]);
131
+ const leftLabel = useMemo(() => /*#__PURE__*/_jsxs(FlexBox, {
132
+ alignItems: "center",
133
+ color: textColor,
134
+ display: {
135
+ _: 'none',
136
+ xs: 'flex'
137
+ },
138
+ flexShrink: 0,
139
+ pr: {
140
+ _: 0,
141
+ xs: 24
142
+ },
143
+ ref: labelRef,
144
+ width: {
145
+ _: 'auto',
146
+ xs: widthValue
147
+ },
148
+ children: [Icon && /*#__PURE__*/_jsx(Icon, {
149
+ mr: 12,
150
+ size: 24
151
+ }), /*#__PURE__*/_jsx(Text, {
152
+ fontWeight: "bold",
153
+ truncate: "ellipsis",
154
+ truncateLines: 1,
155
+ whiteSpace: "nowrap",
156
+ children: yLabel
157
+ })]
158
+ }), [textColor, Icon, yLabel, widthValue]);
159
+ const rightLabel = useMemo(() => /*#__PURE__*/_jsxs(FlexBox, {
160
+ alignItems: "center",
161
+ display: {
162
+ _: 'none',
163
+ xs: 'flex'
164
+ },
165
+ flexShrink: 0,
166
+ justifyContent: "flex-end",
167
+ pl: {
168
+ _: 0,
169
+ xs: 24
170
+ },
171
+ ref: rightLabelRef,
172
+ width: {
173
+ _: 'auto',
174
+ xs: rightWidthValue
175
+ },
176
+ children: [isStacked && /*#__PURE__*/_jsxs(_Fragment, {
177
+ children: [/*#__PURE__*/_jsxs(Text, {
178
+ color: seriesOneLabel,
179
+ variant: "p-small",
180
+ whiteSpace: "nowrap",
181
+ children: [seriesOneValue.toLocaleString(translations.locale), unit && ` ${unit}`]
182
+ }), /*#__PURE__*/_jsx(MiniArrowRightIcon, {
183
+ color: seriesOneLabel,
184
+ mx: 12,
185
+ size: 16
186
+ })]
187
+ }), /*#__PURE__*/_jsxs(Text, {
188
+ color: isStacked ? seriesTwoLabel : seriesOneLabel,
189
+ fontWeight: isStacked ? 'bold' : 'normal',
190
+ variant: "p-small",
191
+ whiteSpace: "nowrap",
192
+ children: [displayValue.toLocaleString(translations.locale), unit && ` ${unit}`]
193
+ })]
194
+ }), [isStacked, seriesOneValue, seriesOneLabel, seriesTwoLabel, displayValue, unit, translations.locale, rightWidthValue]);
195
+ const rowContent = useMemo(() => /*#__PURE__*/_jsxs(_Fragment, {
196
+ children: [labelsContainer, leftLabel, /*#__PURE__*/_jsxs(BarWrapper, {
197
+ children: [/*#__PURE__*/_jsx(Bar, {
198
+ animate: animate ? {
199
+ width: bgWidthStr
200
+ } : undefined,
201
+ bg: backgroundBarColor,
202
+ borderColor: backgroundBorderColor,
203
+ "data-testid": "background-bar",
204
+ initial: animate ? {
205
+ width: '0%'
206
+ } : undefined,
207
+ transition: {
208
+ duration: 0.5,
209
+ delay: animationDelay
210
+ },
211
+ width: !animate ? bgWidthStr : undefined
212
+ }), isStacked && /*#__PURE__*/_jsx(Bar, {
213
+ animate: animate ? {
214
+ width: fgWidthStr
215
+ } : undefined,
216
+ bg: foregroundBarColor,
217
+ borderColor: foregroundBorderColor,
218
+ "data-testid": "foreground-bar",
219
+ initial: animate ? {
220
+ width: '0%'
221
+ } : undefined,
222
+ transition: {
223
+ duration: 0.5,
224
+ delay: animationDelay + 0.25
225
+ },
226
+ width: !animate ? fgWidthStr : undefined
227
+ })]
228
+ }), rightLabel]
229
+ }), [labelsContainer, leftLabel, animate, bgWidthStr, backgroundBarColor, backgroundBorderColor, animationDelay, isStacked, fgWidthStr, foregroundBarColor, foregroundBorderColor, rightLabel]);
230
+ const content = href ? /*#__PURE__*/_jsx(RowAnchor, {
231
+ "aria-label": valuesSummary,
232
+ href: href,
233
+ ref: ref,
234
+ onClick: onClick,
235
+ children: rowContent
236
+ }) : onClick ? /*#__PURE__*/_jsx(RowButton, {
237
+ "aria-label": valuesSummary,
238
+ ref: ref,
239
+ onClick: onClick,
240
+ children: rowContent
241
+ }) : /*#__PURE__*/_jsx(_Fragment, {
242
+ children: /*#__PURE__*/_jsxs(RowWrapper, {
243
+ ref: ref,
244
+ children: [/*#__PURE__*/_jsx(Text, {
245
+ screenreader: true,
246
+ children: valuesSummary
247
+ }), " ", rowContent]
248
+ })
249
+ });
250
+ return /*#__PURE__*/_jsx(Box, {
251
+ as: "li",
252
+ children: content
253
+ });
254
+ });
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Generic Type Example for BarChart with Custom Sorting
3
+ *
4
+ * This file demonstrates how the generic types work with custom properties.
5
+ * TypeScript will automatically infer the bar type from barValues, and
6
+ * sort functions will receive the correct type with custom properties.
7
+ *
8
+ * THIS WILL BE DELETED BEFORE SHIPPING
9
+ */
10
+ export declare const DateSortingExample: () => import("react/jsx-runtime").JSX.Element;
11
+ export declare const CategorySortingExample: () => import("react/jsx-runtime").JSX.Element;
12
+ export declare const ComplexSortingExample: () => import("react/jsx-runtime").JSX.Element;
13
+ export declare const ExplicitTypeExample: () => import("react/jsx-runtime").JSX.Element;
14
+ export declare const WrongCategorySortingExample: () => import("react/jsx-runtime").JSX.Element;