@redsift/charts 11.7.0 → 11.8.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.
@@ -186,7 +186,7 @@ const computeTicks = _ref => {
186
186
  };
187
187
  };
188
188
 
189
- const _excluded = ["className", "disableAnimations", "grid", "length", "legend", "legendOffset", "legendPosition", "legendX", "legendY", "legendRotation", "legendStyle", "position", "scale", "tickPadding", "tickRotation", "tickSize", "tickValues", "tickFormat", "tickRemodelling", "variant", "x", "y", "chartWidth", "chartHeight", "sectionHeight", "textColor", "tickToColor"],
189
+ const _excluded = ["className", "disableAnimations", "grid", "length", "legend", "legendOffset", "legendPosition", "legendX", "legendY", "legendRotation", "legendStyle", "position", "scale", "tickPadding", "tickRotation", "tickSize", "tickValues", "tickFormat", "tickRemodelling", "tickStyle", "variant", "x", "y", "chartWidth", "chartHeight", "sectionHeight", "textColor", "tickToColor"],
190
190
  _excluded2 = ["length"];
191
191
  const COMPONENT_NAME = 'Axis';
192
192
  const CLASSNAME = 'redsift-axis';
@@ -212,6 +212,7 @@ const Axis = /*#__PURE__*/forwardRef((props, ref) => {
212
212
  tickValues,
213
213
  tickFormat,
214
214
  tickRemodelling,
215
+ tickStyle,
215
216
  variant = AxisVariant.default,
216
217
  x = 0,
217
218
  y = 0,
@@ -329,6 +330,7 @@ const Axis = /*#__PURE__*/forwardRef((props, ref) => {
329
330
  opacity: 0
330
331
  }
331
332
  }));
333
+ const tickStyles = tickStyle ? tickStyle(ticks) : [];
332
334
  return /*#__PURE__*/React__default.createElement(StyledAxis, _extends({
333
335
  "aria-hidden": "true",
334
336
  className: classNames(Axis.className, className),
@@ -337,7 +339,10 @@ const Axis = /*#__PURE__*/forwardRef((props, ref) => {
337
339
  transform: `translate(${x},${y})${axis === 'x' ? '' : ',rotate(180)'}`,
338
340
  ref: axisRef,
339
341
  $color: textColor
340
- }), variant === AxisVariant.default || variant === AxisVariant.tick || variant === AxisVariant.lineTick || variant === AxisVariant.tickValue ? transition((transitionProps, tick, _state, tickIndex) => {
342
+ }), variant === AxisVariant.default || variant === AxisVariant.tick || variant === AxisVariant.lineTick || variant === AxisVariant.tickValue || grid ? transition((transitionProps, tick, _state, tickIndex) => {
343
+ var _tickStyles$tickIndex, _tickStyles$tickIndex2, _tickStyles$tickIndex3;
344
+ let formattedTickValues = tickFormat ? tickFormat(tick.value) : tick.value;
345
+ formattedTickValues = Array.isArray(formattedTickValues) ? formattedTickValues : [formattedTickValues];
341
346
  return /*#__PURE__*/React__default.createElement(it.g, {
342
347
  className: `${Axis.className}__tick`,
343
348
  key: tickIndex,
@@ -353,23 +358,27 @@ const Axis = /*#__PURE__*/forwardRef((props, ref) => {
353
358
  y2: axis === 'x' ? gridLength * (position === 'bottom' ? -1 : 1) : tick.lineY,
354
359
  style: _objectSpread2(_objectSpread2({
355
360
  strokeDasharray: '4,4',
356
- opacity: 0.2,
357
- strokeWidth: 0.5
361
+ opacity: 0.2
358
362
  }, gridStyle), {}, {
359
- stroke: 'currentColor'
363
+ strokeWidth: tickStyles && tickStyles.length > 0 ? ((_tickStyles$tickIndex = tickStyles[tickIndex]) === null || _tickStyles$tickIndex === void 0 ? void 0 : _tickStyles$tickIndex.gridStrokeWidth) || 0.5 : gridStyle.strokeWidth || 0.5,
364
+ stroke: tickStyles && tickStyles.length > 0 ? ((_tickStyles$tickIndex2 = tickStyles[tickIndex]) === null || _tickStyles$tickIndex2 === void 0 ? void 0 : _tickStyles$tickIndex2.gridStroke) || 'currentColor' : gridStyle.stroke || 'currentColor'
360
365
  })
361
366
  }) : null, /*#__PURE__*/React__default.createElement("line", {
362
367
  className: `${Axis.className}-tick__line`,
363
368
  x1: 0,
364
369
  x2: tick.lineX,
365
370
  y1: 0,
366
- y2: tick.lineY
367
- }), variant === AxisVariant.default || variant === AxisVariant.tickValue ? /*#__PURE__*/React__default.createElement(it.text, {
371
+ y2: tick.lineY,
372
+ style: {
373
+ strokeWidth: tickStyles && tickStyles.length > 0 ? (_tickStyles$tickIndex3 = tickStyles[tickIndex]) === null || _tickStyles$tickIndex3 === void 0 ? void 0 : _tickStyles$tickIndex3.strokeWidth : 1
374
+ }
375
+ }), variant === AxisVariant.default || variant === AxisVariant.tickValue ? formattedTickValues.map((value, index) => /*#__PURE__*/React__default.createElement(it.text, {
376
+ key: value,
368
377
  dominantBaseline: textBaseline,
369
378
  textAnchor: textAlign,
370
- transform: transitionProps.textTransform,
379
+ transform: `translate(${tick.textX},${tick.textY + 14 * index}),rotate(${tickRotation})`,
371
380
  className: !textColor ? '' : tickToColor(tick, tickIndex) ? 'colored' : ''
372
- }, `${tickFormat ? tickFormat(tick.value) : tick.value}`) : null);
381
+ }, value)) : null);
373
382
  }) : null, variant === AxisVariant.default || variant === AxisVariant.line || variant === AxisVariant.lineTick ? /*#__PURE__*/React__default.createElement(it.line, {
374
383
  className: `${Axis.className}__line`,
375
384
  x1: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"Axis2.js","sources":["../../src/components/Axis/types.ts","../../src/components/Axis/styles.ts","../../src/components/Axis/computeTicks.ts","../../src/components/Axis/Axis.tsx"],"sourcesContent":["import { ComponentProps } from 'react';\nimport { ValueOf, Theme } from '@redsift/design-system';\nimport { AnyScale, NumericValue, ScaleValue, StringValue, TicksSpec } from '../../types';\n\n/**\n * Component variant.\n */\nexport const AxisVariant = {\n none: 'none',\n line: 'line',\n lineTick: 'lineTick',\n tick: 'tick',\n tickValue: 'tickValue',\n default: 'default',\n} as const;\nexport type AxisVariant = ValueOf<typeof AxisVariant>;\n\nexport const AxisPosition = {\n top: 'top',\n right: 'right',\n bottom: 'bottom',\n left: 'left',\n};\nexport type AxisPosition = ValueOf<typeof AxisPosition>;\n\n/**\n * Component props.\n */\nexport interface AxisProps extends Omit<ComponentProps<'g'>, 'scale'> {\n /** Disable animations. */\n disableAnimations?: boolean;\n format?: string;\n /** Whether to display grid or not. The length is mandatory and should usually be the length of the other axis. */\n grid?:\n | boolean\n | {\n length?: number;\n stroke?: string;\n strokeWidth?: number;\n strokeDasharray?: string;\n opacity?: number;\n };\n legend?: string;\n legendOffset?: number;\n legendPosition?: 'start' | 'middle' | 'end';\n legendX?: number;\n legendY?: number;\n legendRotation?: number;\n legendStyle?: React.CSSProperties;\n /** Length of the axis. */\n length?: number;\n /** Position of axis. top|bottom means this is an x axis, right|left means this is an y axis. */\n position?: AxisPosition;\n /** Scale (d3.js) used to generate the axis. */\n scale?: AnyScale;\n tickFormat?:\n | ((d: NumericValue) => string)\n | ((d: StringValue) => string)\n | ((d: Date) => string)\n | ((d: ScaleValue) => string);\n tickPadding?: number;\n tickRotation?: number;\n tickSize?: number;\n tickValues?: TicksSpec;\n tickRemodelling?: (tickValues: any[]) => any[];\n /** Variant. */\n variant?: AxisVariant;\n /** X position. */\n x?: number;\n /** Y position. */\n y?: number;\n /** Chart width, used for horizontal grid. */\n chartWidth?: number;\n /** Chart height, used for horizontal grid. */\n chartHeight?: number;\n /** Section height, used for horizontal grid within a section. */\n sectionHeight?: number;\n /** Color used for tick values. */\n textColor?: string;\n /** Custom method to choose which tick value to color if not all. */\n tickToColor?: (\n tick?: {\n textX: number;\n textY: number;\n lineX: number;\n lineY: number;\n x: number;\n y: number;\n key: string;\n value: ScaleValue;\n },\n index?: number\n ) => boolean;\n}\n\nexport type StyledAxisProps = Omit<AxisProps, 'areXLabelsRotated' | 'size' | 'scale'> & {\n $theme: Theme;\n $color?: string;\n};\n","import styled, { css } from 'styled-components';\nimport { StyledAxisProps } from './types';\nimport { animated } from '@react-spring/web';\nimport { Theme } from '@redsift/design-system';\n\n/**\n * Component style.\n */\nexport const StyledAxis = styled(animated.g)<StyledAxisProps>`\n .redsift-axis__line,\n .redsift-axis-tick__line {\n fill: none;\n ${({ $theme }) => css`\n stroke: var(--redsift-color-neutral-${$theme === Theme.dark ? 'white' : 'x-dark-grey'});\n `}\n shape-rendering: crispEdges;\n }\n\n text {\n font-family: var(--redsift-typography-font-family-poppins);\n ${({ $theme }) => css`\n fill: var(--redsift-color-neutral-${$theme === Theme.dark ? 'white' : 'x-dark-grey'});\n `}\n font-size: 10px;\n user-select: none;\n }\n\n text.colored {\n ${({ $theme, $color }) => css`\n fill: ${$color === 'green'\n ? '#029B57'\n : $color === 'red'\n ? '#CB0E0E'\n : `var(--redsift-color-neutral-${$theme === Theme.dark ? 'white' : 'x-dark-grey'})`};\n `}\n }\n`;\n","import { AnyScale, Coordinates, ScaleValue, ScaleWithBandwidth, TicksSpec } from '../../types';\n\nconst getScaleTicks = (scale: AnyScale, spec?: TicksSpec) => {\n // specific values\n if (Array.isArray(spec)) {\n return spec;\n }\n\n // continuous scales\n if ('ticks' in scale) {\n // default behaviour\n if (spec === undefined) {\n return scale.ticks();\n }\n\n // specific tick count\n if (typeof spec === 'number' && isFinite(spec) && Math.floor(spec) === spec) {\n return scale.ticks(spec);\n }\n\n if (typeof spec === 'function') {\n return scale.ticks();\n }\n }\n\n // non linear scale default\n return scale.domain();\n};\n\nexport const centerScale = (scale: ScaleWithBandwidth) => {\n const bandwidth = scale.bandwidth();\n\n if (bandwidth === 0) return scale;\n\n let offset = bandwidth / 2;\n if (scale.round()) {\n offset = Math.round(offset);\n }\n\n return <T extends ScaleValue>(d: T) => (scale(d) ?? 0) + offset;\n};\n\nexport const computeTicks = ({\n axis,\n scale,\n ticksPosition,\n tickValues,\n tickSize,\n tickPadding,\n tickRotation,\n tickRemodelling,\n}: {\n axis: 'x' | 'y';\n scale: AnyScale;\n ticksPosition?: 'after' | 'before';\n tickValues?: TicksSpec;\n tickSize: number;\n tickPadding: number;\n tickRotation: number;\n tickRemodelling?: (tickValues: any[]) => any[];\n}) => {\n const values = tickRemodelling ? tickRemodelling(getScaleTicks(scale, tickValues)) : getScaleTicks(scale, tickValues);\n\n const position = 'bandwidth' in scale ? centerScale(scale) : scale;\n const line = { lineX: 0, lineY: 0 };\n const text = { textX: 0, textY: 0 };\n\n const isRTL = typeof document === 'object' ? document.dir === 'rtl' : false;\n let translate: (value: ScaleValue) => Coordinates;\n let textAlign = 'middle';\n let textBaseline = 'central';\n\n if (axis === 'x') {\n translate = (d) => ({ x: position(d) ?? 0, y: 0 });\n\n line.lineY = tickSize * (ticksPosition === 'after' ? 1 : -1);\n text.textY = (tickSize + tickPadding) * (ticksPosition === 'after' ? 1 : -1);\n\n if (ticksPosition === 'after') {\n textBaseline = 'text-before-edge';\n } else {\n textBaseline = 'alphabetic';\n }\n\n if (tickRotation === 0) {\n textAlign = 'middle';\n } else if ((ticksPosition === 'after' && tickRotation < 0) || (ticksPosition === 'before' && tickRotation > 0)) {\n textAlign = isRTL ? 'start' : 'end';\n textBaseline = 'middle';\n } else if ((ticksPosition === 'after' && tickRotation > 0) || (ticksPosition === 'before' && tickRotation < 0)) {\n textAlign = isRTL ? 'end' : 'start';\n textBaseline = 'middle';\n }\n } else {\n translate = (d) => ({ x: 0, y: position(d) ?? 0 });\n\n line.lineX = tickSize * (ticksPosition === 'after' ? 1 : -1);\n text.textX = (tickSize + tickPadding) * (ticksPosition === 'after' ? 1 : -1);\n\n if (ticksPosition === 'after') {\n textAlign = 'start';\n } else {\n textAlign = 'end';\n }\n }\n\n const ticks = values.map((value: ScaleValue) => ({\n key: value instanceof Date ? `${value.valueOf()}` : `${value}`,\n value,\n ...translate(value),\n ...line,\n ...text,\n }));\n\n return {\n ticks,\n textAlign,\n textBaseline,\n };\n};\n","import React, { forwardRef, RefObject, useRef } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp, useTheme } from '@redsift/design-system';\n\nimport { AxisProps, AxisPosition, AxisVariant } from './types';\nimport { StyledAxis } from './styles';\nimport { animated, useSpring, useTransition } from '@react-spring/web';\nimport { computeTicks } from './computeTicks';\nimport { config } from '../../config';\nimport { AnyScale } from '@redsift/charts/types';\n\nconst COMPONENT_NAME = 'Axis';\nconst CLASSNAME = 'redsift-axis';\n\nexport const getAxisType = (position: AxisPosition) =>\n [AxisPosition.top, AxisPosition.bottom].includes(position) ? 'x' : 'y';\n\nexport const Axis: Comp<AxisProps, SVGGElement> = forwardRef((props, ref) => {\n const {\n className,\n disableAnimations,\n grid,\n length,\n legend,\n legendOffset = -32,\n legendPosition = 'end',\n legendX: propsLegendX,\n legendY: propsLegendY,\n legendRotation: propsLegendRotation,\n legendStyle,\n position = AxisPosition.bottom,\n scale,\n tickPadding = 5,\n tickRotation = 0,\n tickSize = 5,\n tickValues,\n tickFormat,\n tickRemodelling,\n variant = AxisVariant.default,\n x = 0,\n y = 0,\n chartWidth,\n chartHeight,\n sectionHeight,\n textColor,\n tickToColor = () => true,\n ...forwardedProps\n } = props;\n const theme = useTheme();\n const axis = getAxisType(position!);\n const { length: gridLength, ...gridStyle } =\n typeof grid === 'object'\n ? { length: axis === 'x' ? sectionHeight ?? chartHeight : chartWidth, ...grid }\n : grid === true\n ? {\n length: axis === 'x' ? sectionHeight ?? chartHeight : chartWidth,\n }\n : { length: 0 };\n\n const axisRef = (ref || useRef<SVGGElement>()) as RefObject<SVGGElement>;\n\n const animatedProps = useSpring({\n ...config,\n to: async (next: (props?: object) => Promise<void>) => {\n await next({\n lineX2: axis === 'x' ? length : 0,\n lineY2: axis === 'x' ? 0 : length,\n });\n },\n from: { lineX2: 0, lineY2: 0 },\n reset: false,\n });\n\n let legendNode = null;\n if (legend !== undefined) {\n let legendX = 0;\n let legendY = 0;\n let legendRotation = 0;\n let textAnchor;\n\n if (axis === 'y') {\n legendRotation = propsLegendRotation ?? 90;\n legendX = propsLegendX ?? legendOffset!;\n if (legendPosition === 'start') {\n textAnchor = 'start';\n legendY = propsLegendY ?? length!;\n } else if (legendPosition === 'middle') {\n textAnchor = 'middle';\n legendY = propsLegendY ?? length! / 2;\n } else if (legendPosition === 'end') {\n textAnchor = 'end';\n legendY = propsLegendY ?? legendY;\n }\n } else {\n legendY = propsLegendY ?? legendOffset!;\n if (legendPosition === 'start') {\n textAnchor = 'start';\n legendX = propsLegendX ?? legendX;\n } else if (legendPosition === 'middle') {\n textAnchor = 'middle';\n legendX = propsLegendX ?? length! / 2;\n } else if (legendPosition === 'end') {\n textAnchor = 'end';\n legendX = propsLegendX ?? length!;\n }\n }\n\n legendNode = (\n <>\n <text\n transform={`translate(${legendX}, ${legendY}) rotate(${legendRotation})`}\n textAnchor={textAnchor}\n style={{\n dominantBaseline: 'central',\n ...legendStyle,\n }}\n >\n {legend}\n </text>\n </>\n );\n }\n\n const { ticks, textAlign, textBaseline } = computeTicks({\n axis,\n scale: scale as AnyScale,\n ticksPosition: [AxisPosition.top, AxisPosition.left].includes(position!) ? 'before' : 'after',\n tickValues,\n tickSize: tickSize!,\n tickPadding: tickPadding!,\n tickRotation: tickRotation!,\n tickRemodelling,\n });\n\n const transition = useTransition<(typeof ticks)[0], { opacity: number; transform: string; textTransform: string }>(\n ticks,\n {\n ...config,\n keys: (tick) => tick.key,\n initial: (tick) => ({\n opacity: 1,\n transform: `translate(${tick.x},${axis === 'x' ? tick.y : (y || 0) - tick.y}),rotate(${\n axis === 'x' ? 0 : 180\n })`,\n textTransform: `translate(${tick.textX},${tick.textY}),rotate(${tickRotation})`,\n }),\n from: (tick) => ({\n opacity: 0,\n transform: `translate(${tick.x},${axis === 'x' ? tick.y : (y || 0) - tick.y}),rotate(${\n axis === 'x' ? 0 : 180\n })`,\n textTransform: `translate(${tick.textX},${tick.textY}),rotate(${tickRotation})`,\n }),\n enter: (tick) => ({\n opacity: 1,\n transform: `translate(${tick.x},${axis === 'x' ? tick.y : (y || 0) - tick.y}),rotate(${\n axis === 'x' ? 0 : 180\n })`,\n textTransform: `translate(${tick.textX},${tick.textY}),rotate(${tickRotation})`,\n }),\n update: (tick) => ({\n opacity: 1,\n transform: `translate(${tick.x},${axis === 'x' ? tick.y : (y || 0) - tick.y}),rotate(${\n axis === 'x' ? 0 : 180\n })`,\n textTransform: `translate(${tick.textX},${tick.textY}),rotate(${tickRotation})`,\n }),\n leave: {\n opacity: 0,\n },\n }\n );\n\n return (\n <StyledAxis\n aria-hidden=\"true\"\n className={classNames(Axis.className, className)}\n $theme={theme}\n {...forwardedProps}\n transform={`translate(${x},${y})${axis === 'x' ? '' : ',rotate(180)'}`}\n ref={axisRef}\n $color={textColor}\n >\n {variant === AxisVariant.default ||\n variant === AxisVariant.tick ||\n variant === AxisVariant.lineTick ||\n variant === AxisVariant.tickValue\n ? transition((transitionProps, tick, _state, tickIndex) => {\n return (\n <animated.g\n className={`${Axis.className}__tick`}\n key={tickIndex}\n transform={transitionProps.transform}\n style={{ opacity: transitionProps.opacity }}\n >\n {gridLength ? (\n <line\n className={`${Axis.className}-grid__line`}\n x1={axis === 'x' ? tick.lineX : 0}\n x2={axis === 'x' ? tick.lineX : gridLength! * (position === 'right' ? -1 : 1)}\n y1={axis === 'x' ? 0 : tick.lineY}\n y2={axis === 'x' ? gridLength! * (position === 'bottom' ? -1 : 1) : tick.lineY}\n style={{\n strokeDasharray: '4,4',\n opacity: 0.2,\n strokeWidth: 0.5,\n ...gridStyle,\n stroke: 'currentColor',\n }}\n />\n ) : null}\n <line className={`${Axis.className}-tick__line`} x1={0} x2={tick.lineX} y1={0} y2={tick.lineY} />\n {variant === AxisVariant.default || variant === AxisVariant.tickValue ? (\n <animated.text\n dominantBaseline={textBaseline}\n textAnchor={textAlign}\n transform={transitionProps.textTransform}\n className={!textColor ? '' : tickToColor(tick, tickIndex) ? 'colored' : ''}\n >\n {`${tickFormat ? tickFormat(tick.value as any) : tick.value}`}\n </animated.text>\n ) : null}\n </animated.g>\n );\n })\n : null}\n\n {variant === AxisVariant.default || variant === AxisVariant.line || variant === AxisVariant.lineTick ? (\n <animated.line\n className={`${Axis.className}__line`}\n x1={0}\n x2={config.immediate || disableAnimations ? (axis === 'x' ? length : 0) : animatedProps.lineX2}\n y1={0}\n y2={config.immediate || disableAnimations ? (axis === 'x' ? 0 : length) : animatedProps.lineY2}\n />\n ) : null}\n {legendNode}\n </StyledAxis>\n );\n});\nAxis.className = CLASSNAME;\nAxis.displayName = COMPONENT_NAME;\n"],"names":["AxisVariant","none","line","lineTick","tick","tickValue","default","AxisPosition","top","right","bottom","left","StyledAxis","styled","animated","g","_ref","$theme","css","Theme","dark","_ref2","_ref3","$color","getScaleTicks","scale","spec","Array","isArray","undefined","ticks","isFinite","Math","floor","domain","centerScale","bandwidth","offset","round","d","_scale","computeTicks","axis","ticksPosition","tickValues","tickSize","tickPadding","tickRotation","tickRemodelling","values","position","lineX","lineY","text","textX","textY","isRTL","document","dir","translate","textAlign","textBaseline","_position","x","y","_position2","map","value","_objectSpread","key","Date","valueOf","COMPONENT_NAME","CLASSNAME","getAxisType","includes","Axis","forwardRef","props","ref","className","disableAnimations","grid","length","legend","legendOffset","legendPosition","legendX","propsLegendX","legendY","propsLegendY","legendRotation","propsLegendRotation","legendStyle","tickFormat","variant","chartWidth","chartHeight","sectionHeight","textColor","tickToColor","forwardedProps","_objectWithoutProperties","_excluded","theme","useTheme","gridLength","gridStyle","_excluded2","axisRef","useRef","animatedProps","useSpring","config","to","next","lineX2","lineY2","from","reset","legendNode","textAnchor","React","createElement","Fragment","transform","style","dominantBaseline","transition","useTransition","keys","initial","opacity","textTransform","enter","update","leave","_extends","classNames","transitionProps","_state","tickIndex","x1","x2","y1","y2","strokeDasharray","strokeWidth","stroke","immediate","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"Axis2.js","sources":["../../src/components/Axis/types.ts","../../src/components/Axis/styles.ts","../../src/components/Axis/computeTicks.ts","../../src/components/Axis/Axis.tsx"],"sourcesContent":["import { ComponentProps } from 'react';\nimport { ValueOf, Theme } from '@redsift/design-system';\nimport { AnyScale, NumericValue, ScaleValue, StringValue, TicksSpec } from '../../types';\n\n/**\n * Component variant.\n */\nexport const AxisVariant = {\n none: 'none',\n line: 'line',\n lineTick: 'lineTick',\n tick: 'tick',\n tickValue: 'tickValue',\n default: 'default',\n} as const;\nexport type AxisVariant = ValueOf<typeof AxisVariant>;\n\nexport const AxisPosition = {\n top: 'top',\n right: 'right',\n bottom: 'bottom',\n left: 'left',\n};\nexport type AxisPosition = ValueOf<typeof AxisPosition>;\n\n/**\n * Component props.\n */\nexport interface AxisProps extends Omit<ComponentProps<'g'>, 'scale'> {\n /** Disable animations. */\n disableAnimations?: boolean;\n format?: string;\n /** Whether to display grid or not. The length is mandatory and should usually be the length of the other axis. */\n grid?:\n | boolean\n | {\n length?: number;\n stroke?: string;\n strokeWidth?: number;\n strokeDasharray?: string;\n opacity?: number;\n };\n legend?: string;\n legendOffset?: number;\n legendPosition?: 'start' | 'middle' | 'end';\n legendX?: number;\n legendY?: number;\n legendRotation?: number;\n legendStyle?: React.CSSProperties;\n /** Length of the axis. */\n length?: number;\n /** Position of axis. top|bottom means this is an x axis, right|left means this is an y axis. */\n position?: AxisPosition;\n /** Scale (d3.js) used to generate the axis. */\n scale?: AnyScale;\n tickFormat?:\n | ((d: NumericValue) => string | string[])\n | ((d: StringValue) => string | string[])\n | ((d: Date) => string | string[])\n | ((d: ScaleValue) => string | string[]);\n tickPadding?: number;\n tickRotation?: number;\n tickSize?: number;\n tickStyle?: (ticks: any[]) => {\n strokeWidth?: number;\n gridStrokeWidth?: number;\n gridStroke?: string;\n }[];\n tickValues?: TicksSpec;\n tickRemodelling?: (tickValues: any[]) => any[];\n /** Variant. */\n variant?: AxisVariant;\n /** X position. */\n x?: number;\n /** Y position. */\n y?: number;\n /** Chart width, used for horizontal grid. */\n chartWidth?: number;\n /** Chart height, used for horizontal grid. */\n chartHeight?: number;\n /** Section height, used for horizontal grid within a section. */\n sectionHeight?: number;\n /** Color used for tick values. */\n textColor?: string;\n /** Custom method to choose which tick value to color if not all. */\n tickToColor?: (\n tick?: {\n textX: number;\n textY: number;\n lineX: number;\n lineY: number;\n x: number;\n y: number;\n key: string;\n value: ScaleValue;\n },\n index?: number\n ) => boolean;\n}\n\nexport type StyledAxisProps = Omit<AxisProps, 'areXLabelsRotated' | 'size' | 'scale'> & {\n $theme: Theme;\n $color?: string;\n};\n","import styled, { css } from 'styled-components';\nimport { StyledAxisProps } from './types';\nimport { animated } from '@react-spring/web';\nimport { Theme } from '@redsift/design-system';\n\n/**\n * Component style.\n */\nexport const StyledAxis = styled(animated.g)<StyledAxisProps>`\n .redsift-axis__line,\n .redsift-axis-tick__line {\n fill: none;\n ${({ $theme }) => css`\n stroke: var(--redsift-color-neutral-${$theme === Theme.dark ? 'white' : 'x-dark-grey'});\n `}\n shape-rendering: crispEdges;\n }\n\n text {\n font-family: var(--redsift-typography-font-family-poppins);\n ${({ $theme }) => css`\n fill: var(--redsift-color-neutral-${$theme === Theme.dark ? 'white' : 'x-dark-grey'});\n `}\n font-size: 10px;\n user-select: none;\n }\n\n text.colored {\n ${({ $theme, $color }) => css`\n fill: ${$color === 'green'\n ? '#029B57'\n : $color === 'red'\n ? '#CB0E0E'\n : `var(--redsift-color-neutral-${$theme === Theme.dark ? 'white' : 'x-dark-grey'})`};\n `}\n }\n`;\n","import { AnyScale, Coordinates, ScaleValue, ScaleWithBandwidth, TicksSpec } from '../../types';\n\nconst getScaleTicks = (scale: AnyScale, spec?: TicksSpec) => {\n // specific values\n if (Array.isArray(spec)) {\n return spec;\n }\n\n // continuous scales\n if ('ticks' in scale) {\n // default behaviour\n if (spec === undefined) {\n return scale.ticks();\n }\n\n // specific tick count\n if (typeof spec === 'number' && isFinite(spec) && Math.floor(spec) === spec) {\n return scale.ticks(spec);\n }\n\n if (typeof spec === 'function') {\n return scale.ticks();\n }\n }\n\n // non linear scale default\n return scale.domain();\n};\n\nexport const centerScale = (scale: ScaleWithBandwidth) => {\n const bandwidth = scale.bandwidth();\n\n if (bandwidth === 0) return scale;\n\n let offset = bandwidth / 2;\n if (scale.round()) {\n offset = Math.round(offset);\n }\n\n return <T extends ScaleValue>(d: T) => (scale(d) ?? 0) + offset;\n};\n\nexport const computeTicks = ({\n axis,\n scale,\n ticksPosition,\n tickValues,\n tickSize,\n tickPadding,\n tickRotation,\n tickRemodelling,\n}: {\n axis: 'x' | 'y';\n scale: AnyScale;\n ticksPosition?: 'after' | 'before';\n tickValues?: TicksSpec;\n tickSize: number;\n tickPadding: number;\n tickRotation: number;\n tickRemodelling?: (tickValues: any[]) => any[];\n}) => {\n const values = tickRemodelling ? tickRemodelling(getScaleTicks(scale, tickValues)) : getScaleTicks(scale, tickValues);\n\n const position = 'bandwidth' in scale ? centerScale(scale) : scale;\n const line = { lineX: 0, lineY: 0 };\n const text = { textX: 0, textY: 0 };\n\n const isRTL = typeof document === 'object' ? document.dir === 'rtl' : false;\n let translate: (value: ScaleValue) => Coordinates;\n let textAlign = 'middle';\n let textBaseline = 'central';\n\n if (axis === 'x') {\n translate = (d) => ({ x: position(d) ?? 0, y: 0 });\n\n line.lineY = tickSize * (ticksPosition === 'after' ? 1 : -1);\n text.textY = (tickSize + tickPadding) * (ticksPosition === 'after' ? 1 : -1);\n\n if (ticksPosition === 'after') {\n textBaseline = 'text-before-edge';\n } else {\n textBaseline = 'alphabetic';\n }\n\n if (tickRotation === 0) {\n textAlign = 'middle';\n } else if ((ticksPosition === 'after' && tickRotation < 0) || (ticksPosition === 'before' && tickRotation > 0)) {\n textAlign = isRTL ? 'start' : 'end';\n textBaseline = 'middle';\n } else if ((ticksPosition === 'after' && tickRotation > 0) || (ticksPosition === 'before' && tickRotation < 0)) {\n textAlign = isRTL ? 'end' : 'start';\n textBaseline = 'middle';\n }\n } else {\n translate = (d) => ({ x: 0, y: position(d) ?? 0 });\n\n line.lineX = tickSize * (ticksPosition === 'after' ? 1 : -1);\n text.textX = (tickSize + tickPadding) * (ticksPosition === 'after' ? 1 : -1);\n\n if (ticksPosition === 'after') {\n textAlign = 'start';\n } else {\n textAlign = 'end';\n }\n }\n\n const ticks = values.map((value: ScaleValue) => ({\n key: value instanceof Date ? `${value.valueOf()}` : `${value}`,\n value,\n ...translate(value),\n ...line,\n ...text,\n }));\n\n return {\n ticks,\n textAlign,\n textBaseline,\n };\n};\n","import React, { forwardRef, RefObject, useRef } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp, useTheme } from '@redsift/design-system';\n\nimport { AxisProps, AxisPosition, AxisVariant } from './types';\nimport { StyledAxis } from './styles';\nimport { animated, useSpring, useTransition } from '@react-spring/web';\nimport { computeTicks } from './computeTicks';\nimport { config } from '../../config';\nimport { AnyScale } from '@redsift/charts/types';\n\nconst COMPONENT_NAME = 'Axis';\nconst CLASSNAME = 'redsift-axis';\n\nexport const getAxisType = (position: AxisPosition) =>\n [AxisPosition.top, AxisPosition.bottom].includes(position) ? 'x' : 'y';\n\nexport const Axis: Comp<AxisProps, SVGGElement> = forwardRef((props, ref) => {\n const {\n className,\n disableAnimations,\n grid,\n length,\n legend,\n legendOffset = -32,\n legendPosition = 'end',\n legendX: propsLegendX,\n legendY: propsLegendY,\n legendRotation: propsLegendRotation,\n legendStyle,\n position = AxisPosition.bottom,\n scale,\n tickPadding = 5,\n tickRotation = 0,\n tickSize = 5,\n tickValues,\n tickFormat,\n tickRemodelling,\n tickStyle,\n variant = AxisVariant.default,\n x = 0,\n y = 0,\n chartWidth,\n chartHeight,\n sectionHeight,\n textColor,\n tickToColor = () => true,\n ...forwardedProps\n } = props;\n const theme = useTheme();\n const axis = getAxisType(position!);\n const { length: gridLength, ...gridStyle } =\n typeof grid === 'object'\n ? { length: axis === 'x' ? sectionHeight ?? chartHeight : chartWidth, ...grid }\n : grid === true\n ? {\n length: axis === 'x' ? sectionHeight ?? chartHeight : chartWidth,\n }\n : { length: 0 };\n\n const axisRef = (ref || useRef<SVGGElement>()) as RefObject<SVGGElement>;\n\n const animatedProps = useSpring({\n ...config,\n to: async (next: (props?: object) => Promise<void>) => {\n await next({\n lineX2: axis === 'x' ? length : 0,\n lineY2: axis === 'x' ? 0 : length,\n });\n },\n from: { lineX2: 0, lineY2: 0 },\n reset: false,\n });\n\n let legendNode = null;\n if (legend !== undefined) {\n let legendX = 0;\n let legendY = 0;\n let legendRotation = 0;\n let textAnchor;\n\n if (axis === 'y') {\n legendRotation = propsLegendRotation ?? 90;\n legendX = propsLegendX ?? legendOffset!;\n if (legendPosition === 'start') {\n textAnchor = 'start';\n legendY = propsLegendY ?? length!;\n } else if (legendPosition === 'middle') {\n textAnchor = 'middle';\n legendY = propsLegendY ?? length! / 2;\n } else if (legendPosition === 'end') {\n textAnchor = 'end';\n legendY = propsLegendY ?? legendY;\n }\n } else {\n legendY = propsLegendY ?? legendOffset!;\n if (legendPosition === 'start') {\n textAnchor = 'start';\n legendX = propsLegendX ?? legendX;\n } else if (legendPosition === 'middle') {\n textAnchor = 'middle';\n legendX = propsLegendX ?? length! / 2;\n } else if (legendPosition === 'end') {\n textAnchor = 'end';\n legendX = propsLegendX ?? length!;\n }\n }\n\n legendNode = (\n <>\n <text\n transform={`translate(${legendX}, ${legendY}) rotate(${legendRotation})`}\n textAnchor={textAnchor}\n style={{\n dominantBaseline: 'central',\n ...legendStyle,\n }}\n >\n {legend}\n </text>\n </>\n );\n }\n\n const { ticks, textAlign, textBaseline } = computeTicks({\n axis,\n scale: scale as AnyScale,\n ticksPosition: [AxisPosition.top, AxisPosition.left].includes(position!) ? 'before' : 'after',\n tickValues,\n tickSize: tickSize!,\n tickPadding: tickPadding!,\n tickRotation: tickRotation!,\n tickRemodelling,\n });\n\n const transition = useTransition<(typeof ticks)[0], { opacity: number; transform: string; textTransform: string }>(\n ticks,\n {\n ...config,\n keys: (tick) => tick.key,\n initial: (tick) => ({\n opacity: 1,\n transform: `translate(${tick.x},${axis === 'x' ? tick.y : (y || 0) - tick.y}),rotate(${\n axis === 'x' ? 0 : 180\n })`,\n textTransform: `translate(${tick.textX},${tick.textY}),rotate(${tickRotation})`,\n }),\n from: (tick) => ({\n opacity: 0,\n transform: `translate(${tick.x},${axis === 'x' ? tick.y : (y || 0) - tick.y}),rotate(${\n axis === 'x' ? 0 : 180\n })`,\n textTransform: `translate(${tick.textX},${tick.textY}),rotate(${tickRotation})`,\n }),\n enter: (tick) => ({\n opacity: 1,\n transform: `translate(${tick.x},${axis === 'x' ? tick.y : (y || 0) - tick.y}),rotate(${\n axis === 'x' ? 0 : 180\n })`,\n textTransform: `translate(${tick.textX},${tick.textY}),rotate(${tickRotation})`,\n }),\n update: (tick) => ({\n opacity: 1,\n transform: `translate(${tick.x},${axis === 'x' ? tick.y : (y || 0) - tick.y}),rotate(${\n axis === 'x' ? 0 : 180\n })`,\n textTransform: `translate(${tick.textX},${tick.textY}),rotate(${tickRotation})`,\n }),\n leave: {\n opacity: 0,\n },\n }\n );\n\n const tickStyles = tickStyle ? tickStyle(ticks) : [];\n\n return (\n <StyledAxis\n aria-hidden=\"true\"\n className={classNames(Axis.className, className)}\n $theme={theme}\n {...forwardedProps}\n transform={`translate(${x},${y})${axis === 'x' ? '' : ',rotate(180)'}`}\n ref={axisRef}\n $color={textColor}\n >\n {variant === AxisVariant.default ||\n variant === AxisVariant.tick ||\n variant === AxisVariant.lineTick ||\n variant === AxisVariant.tickValue ||\n grid\n ? transition((transitionProps, tick, _state, tickIndex) => {\n let formattedTickValues = tickFormat ? tickFormat(tick.value as any) : tick.value;\n formattedTickValues = Array.isArray(formattedTickValues) ? formattedTickValues : [formattedTickValues];\n\n return (\n <animated.g\n className={`${Axis.className}__tick`}\n key={tickIndex}\n transform={transitionProps.transform}\n style={{ opacity: transitionProps.opacity }}\n >\n {gridLength ? (\n <line\n className={`${Axis.className}-grid__line`}\n x1={axis === 'x' ? tick.lineX : 0}\n x2={axis === 'x' ? tick.lineX : gridLength! * (position === 'right' ? -1 : 1)}\n y1={axis === 'x' ? 0 : tick.lineY}\n y2={axis === 'x' ? gridLength! * (position === 'bottom' ? -1 : 1) : tick.lineY}\n style={{\n strokeDasharray: '4,4',\n opacity: 0.2,\n ...gridStyle,\n strokeWidth:\n tickStyles && tickStyles.length > 0\n ? tickStyles[tickIndex]?.gridStrokeWidth || 0.5\n : gridStyle.strokeWidth || 0.5,\n stroke:\n tickStyles && tickStyles.length > 0\n ? tickStyles[tickIndex]?.gridStroke || 'currentColor'\n : gridStyle.stroke || 'currentColor',\n }}\n />\n ) : null}\n <line\n className={`${Axis.className}-tick__line`}\n x1={0}\n x2={tick.lineX}\n y1={0}\n y2={tick.lineY}\n style={{\n strokeWidth: tickStyles && tickStyles.length > 0 ? tickStyles[tickIndex]?.strokeWidth : 1,\n }}\n />\n {variant === AxisVariant.default || variant === AxisVariant.tickValue\n ? (formattedTickValues as string[]).map((value, index) => (\n <animated.text\n key={value}\n dominantBaseline={textBaseline}\n textAnchor={textAlign}\n transform={`translate(${tick.textX},${tick.textY + 14 * index}),rotate(${tickRotation})`}\n className={!textColor ? '' : tickToColor(tick, tickIndex) ? 'colored' : ''}\n >\n {value}\n </animated.text>\n ))\n : null}\n </animated.g>\n );\n })\n : null}\n\n {variant === AxisVariant.default || variant === AxisVariant.line || variant === AxisVariant.lineTick ? (\n <animated.line\n className={`${Axis.className}__line`}\n x1={0}\n x2={config.immediate || disableAnimations ? (axis === 'x' ? length : 0) : animatedProps.lineX2}\n y1={0}\n y2={config.immediate || disableAnimations ? (axis === 'x' ? 0 : length) : animatedProps.lineY2}\n />\n ) : null}\n {legendNode}\n </StyledAxis>\n );\n});\nAxis.className = CLASSNAME;\nAxis.displayName = COMPONENT_NAME;\n"],"names":["AxisVariant","none","line","lineTick","tick","tickValue","default","AxisPosition","top","right","bottom","left","StyledAxis","styled","animated","g","_ref","$theme","css","Theme","dark","_ref2","_ref3","$color","getScaleTicks","scale","spec","Array","isArray","undefined","ticks","isFinite","Math","floor","domain","centerScale","bandwidth","offset","round","d","_scale","computeTicks","axis","ticksPosition","tickValues","tickSize","tickPadding","tickRotation","tickRemodelling","values","position","lineX","lineY","text","textX","textY","isRTL","document","dir","translate","textAlign","textBaseline","_position","x","y","_position2","map","value","_objectSpread","key","Date","valueOf","COMPONENT_NAME","CLASSNAME","getAxisType","includes","Axis","forwardRef","props","ref","className","disableAnimations","grid","length","legend","legendOffset","legendPosition","legendX","propsLegendX","legendY","propsLegendY","legendRotation","propsLegendRotation","legendStyle","tickFormat","tickStyle","variant","chartWidth","chartHeight","sectionHeight","textColor","tickToColor","forwardedProps","_objectWithoutProperties","_excluded","theme","useTheme","gridLength","gridStyle","_excluded2","axisRef","useRef","animatedProps","useSpring","config","to","next","lineX2","lineY2","from","reset","legendNode","textAnchor","React","createElement","Fragment","transform","style","dominantBaseline","transition","useTransition","keys","initial","opacity","textTransform","enter","update","leave","tickStyles","_extends","classNames","transitionProps","_state","tickIndex","_tickStyles$tickIndex","_tickStyles$tickIndex2","_tickStyles$tickIndex3","formattedTickValues","x1","x2","y1","y2","strokeDasharray","strokeWidth","gridStrokeWidth","stroke","gridStroke","index","immediate","displayName"],"mappings":"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"}
@@ -4,7 +4,7 @@ import classNames from 'classnames';
4
4
  import { useTheme, useMessageFormatter, Flexbox, Text, isComponent, RedsiftColorGreenD1, RedsiftColorRedD1, RedsiftColorNeutralBlack, useId } from '@redsift/design-system';
5
5
  import { L as LegendVariant, T as TooltipVariant } from './legend2.js';
6
6
  import { C as ChartSize, g as getSortingMethod, i as isValidDate, u as useColor, m as mergeLegends, a as ColorTheme } from './theme.js';
7
- import { scaleLinear, sum, scaleBand, extent, scaleUtc, scalePoint, utcParse, scaleLog } from 'd3';
7
+ import { scaleLinear, sum, scaleBand, scaleOrdinal, extent, scaleUtc, scalePoint, utcParse, scaleLog } from 'd3';
8
8
  import styled, { css } from 'styled-components';
9
9
  import { C as ChartContainer, a as ChartContainerTitle, b as ChartContainerDescription } from './ChartContainer2.js';
10
10
  import { A as Axis, a as AxisVariant, g as getAxisType } from './Axis2.js';
@@ -274,6 +274,7 @@ const ChartTypeContext = /*#__PURE__*/React__default.createContext(undefined);
274
274
 
275
275
  const _excluded$5 = ["areXLabelsRotated", "barProps", "caping", "className", "data", "disableAnimations", "id", "isBarSelected", "getBarAnchorProps", "labelDecorator", "margins", "onBarClick", "orientation", "others", "size", "sortingMethod", "barRole", "colorTheme", "tooltipVariant", "xAxisVariant", "xAxisPlacement", "xAxisTickFormat", "xAxisTickPadding", "xAxisTickRotation", "xAxisTickSize", "xAxisTickValues", "yAxisVariant", "yAxisPlacement", "yAxisTickFormat", "yAxisTickPadding", "yAxisTickRotation", "yAxisTickSize", "yAxisTickValues"];
276
276
  const RenderedOrdinalBarChart = /*#__PURE__*/forwardRef((props, ref) => {
277
+ var _barProps$gap;
277
278
  const {
278
279
  areXLabelsRotated,
279
280
  barProps,
@@ -342,7 +343,7 @@ const RenderedOrdinalBarChart = /*#__PURE__*/forwardRef((props, ref) => {
342
343
  const chartHeight = height - margins.top - margins.bottom;
343
344
  const chartWidth = width - margins.left - margins.right;
344
345
  const numberOfRows = data.filter(datum => datum.value).length;
345
- const gap = 5;
346
+ const gap = (_barProps$gap = barProps === null || barProps === void 0 ? void 0 : barProps.gap) !== null && _barProps$gap !== void 0 ? _barProps$gap : 5;
346
347
  const barHeight = chartHeight / numberOfRows - gap;
347
348
  const barWidth = chartWidth / numberOfRows - gap;
348
349
  const total = sum(data, d => d.value);
@@ -521,7 +522,8 @@ const BarChartBars = /*#__PURE__*/forwardRef((props, ref) => {
521
522
  scaleY,
522
523
  tooltipVariant,
523
524
  tooltipDecorator,
524
- xScaleType
525
+ xScaleType,
526
+ regions
525
527
  } = useBarChartContext();
526
528
  const filteredBarChartBars = bars.filter(bar => bar.category === category && bar.value > 0);
527
529
  const categoryIndex = categories.indexOf(category);
@@ -540,6 +542,7 @@ const BarChartBars = /*#__PURE__*/forwardRef((props, ref) => {
540
542
  } : {}, forwardedProps, {
541
543
  ref: ref
542
544
  }), filteredBarChartBars.map((bar, index) => {
545
+ var _d3scaleOrdinal$domai;
543
546
  const to = {
544
547
  data: bar,
545
548
  category
@@ -547,11 +550,14 @@ const BarChartBars = /*#__PURE__*/forwardRef((props, ref) => {
547
550
  const from = cache.current ? {
548
551
  data: cache.current[index]
549
552
  } : undefined;
553
+ const region = regions === null || regions === void 0 ? void 0 : regions.find(r => {
554
+ return xScaleType === 'Date' || xScaleType === 'dateString' ? new Date(r.from).getTime() <= bar.key.getTime() && new Date(r.to).getTime() >= bar.key.getTime() : r.from <= bar.key && r.to >= bar.key;
555
+ });
550
556
  const groupedBars = bars.filter(b => {
551
557
  return xScaleType === 'Date' || xScaleType === 'dateString' ? b.key.getTime() === bar.key.getTime() : b.key === bar.key;
552
558
  });
553
559
  return [/*#__PURE__*/React__default.createElement(Bar, _extends({
554
- color: colorScale === null || colorScale === void 0 ? void 0 : colorScale(to.data.category),
560
+ color: region && region.colorTheme ? (_d3scaleOrdinal$domai = scaleOrdinal().domain(Object.keys(region.colorTheme)).range(Object.values(region.colorTheme))) === null || _d3scaleOrdinal$domai === void 0 ? void 0 : _d3scaleOrdinal$domai(to.data.category) : colorScale === null || colorScale === void 0 ? void 0 : colorScale(to.data.category),
555
561
  data: to,
556
562
  dataset: bars,
557
563
  groupedData: groupedBars,
@@ -571,7 +577,7 @@ const BarChartBars = /*#__PURE__*/forwardRef((props, ref) => {
571
577
  scale: scaleY,
572
578
  scalePosition: scaleX,
573
579
  tooltipVariant: tooltipVariant,
574
- tooltipDecorator: tooltipDecorator
580
+ tooltipDecorator: region && region.tooltipDecorator ? region.tooltipDecorator : tooltipDecorator
575
581
  }, barProps, {
576
582
  width: barProps !== null && barProps !== void 0 && barProps.width && typeof barProps.width === 'number' ? barProps.width : barWidth,
577
583
  height: undefined,
@@ -587,6 +593,7 @@ const BarChartGroupedTooltip = _ref => {
587
593
  categories,
588
594
  categoryDecorator,
589
595
  categoryColor,
596
+ children,
590
597
  datum,
591
598
  groupedData
592
599
  } = _ref;
@@ -646,7 +653,7 @@ const BarChartGroupedTooltip = _ref => {
646
653
  fontSize: "14px",
647
654
  lineHeight: "18px"
648
655
  }, value)) : null;
649
- })));
656
+ })), children);
650
657
  };
651
658
 
652
659
  const _excluded$3 = ["barProps", "children", "className", "data", "direction", "disableAnimations", "id", "getBarAnchorProps", "isBarSelected", "labelDecorator", "legendDecorator", "legendVariant", "legendProps", "margins", "onBarClick", "size", "sortingMethod", "barRole", "colorTheme", "tooltipVariant", "tooltipDecorator", "xAxisVariant", "xAxisPlacement", "xAxisTickFormat", "xAxisTickPadding", "xAxisTickRotation", "xAxisTickSize", "xAxisTickValues", "xAxisMinValue", "xAxisMaxValue", "xAxisTickRemodelling", "xAxisStartDateOffset", "xAxisEndDateOffset", "yAxisVariant", "yAxisPlacement", "yAxisTickFormat", "yAxisTickPadding", "yAxisTickRotation", "yAxisTickSize", "yAxisTickValues", "yAxisMinValue", "yAxisMaxValue", "yAxisTickRemodelling", "xScaleType", "yScaleLogBase", "dateParser"],
@@ -684,7 +691,7 @@ const reduceData = (hasCategory, data, reduceFn, initialValue) => {
684
691
  };
685
692
  const isSameKey = (key, previousKey, xScaleType) => xScaleType === 'Date' || xScaleType === 'dateString' ? key.getTime() === previousKey.getTime() : key === previousKey;
686
693
  const RenderedLinearBarChart = /*#__PURE__*/forwardRef((props, ref) => {
687
- var _chartDimensions$maxW, _chartDimensions$minW;
694
+ var _chartDimensions$maxW, _chartDimensions$minW, _barProps$gap;
688
695
  const {
689
696
  barProps,
690
697
  children,
@@ -770,7 +777,7 @@ const RenderedLinearBarChart = /*#__PURE__*/forwardRef((props, ref) => {
770
777
  const chartHeight = height - margins.top - margins.bottom;
771
778
  const chartWidth = width - margins.left - margins.right;
772
779
  const numberOfBars = filterData(hasCategory, data, datum => datum.value).length;
773
- const gap = 5;
780
+ const gap = (_barProps$gap = barProps === null || barProps === void 0 ? void 0 : barProps.gap) !== null && _barProps$gap !== void 0 ? _barProps$gap : 5;
774
781
  let barWidth = chartWidth / (numberOfBars * 2) - gap;
775
782
  const scaleX = (() => {
776
783
  if (xScaleType === 'number') {
@@ -880,7 +887,8 @@ const RenderedLinearBarChart = /*#__PURE__*/forwardRef((props, ref) => {
880
887
  if (!categories.includes(category)) {
881
888
  categories.push(category);
882
889
  }
883
- const formattedKey = xAxisTickFormat ? xAxisTickFormat(key) : key.toString();
890
+ let formattedKey = xAxisTickFormat ? xAxisTickFormat(key) : key.toString();
891
+ formattedKey = Array.isArray(formattedKey) ? formattedKey.join(' ') : formattedKey;
884
892
  let entry = acc.find(e => e.key === formattedKey);
885
893
  if (!entry) {
886
894
  entry = {
@@ -1088,7 +1096,8 @@ const RenderedLinearBarChart = /*#__PURE__*/forwardRef((props, ref) => {
1088
1096
  scope: "col"
1089
1097
  }, "Value"))),
1090
1098
  body: /*#__PURE__*/React__default.createElement("tbody", null, bars.map(datum => {
1091
- const key = xAxisTickFormat ? xAxisTickFormat(datum.key) : datum.key.toString();
1099
+ let key = xAxisTickFormat ? xAxisTickFormat(datum.key) : datum.key.toString();
1100
+ key = Array.isArray(key) ? key.join(' ') : key;
1092
1101
  return /*#__PURE__*/React__default.createElement("tr", {
1093
1102
  key: key
1094
1103
  }, /*#__PURE__*/React__default.createElement("th", {
@@ -1303,7 +1312,8 @@ const BarChartSection = /*#__PURE__*/forwardRef((props, ref) => {
1303
1312
  scaleX: scaleX,
1304
1313
  scaleY: scaleY,
1305
1314
  direction,
1306
- sectionHeight
1315
+ sectionHeight,
1316
+ regions
1307
1317
  })
1308
1318
  }, /*#__PURE__*/React__default.createElement(StyledBarChartSection, _extends({}, forwardedProps, {
1309
1319
  className: classNames(BarChartSection.className, className),
@@ -1340,8 +1350,8 @@ const BarChartSection = /*#__PURE__*/forwardRef((props, ref) => {
1340
1350
  y: 0,
1341
1351
  width: width,
1342
1352
  height: sectionHeight,
1343
- fill: region.color,
1344
- opacity: region.opacity || 0.05
1353
+ fill: region.backgroundColor || 'transparent',
1354
+ opacity: region.backgroundOpacity || 0.05
1345
1355
  });
1346
1356
  }) : null, title && /*#__PURE__*/React__default.createElement("text", {
1347
1357
  className: "title colored",
@@ -1355,13 +1365,14 @@ const BarChartSection = /*#__PURE__*/forwardRef((props, ref) => {
1355
1365
  BarChartSection.className = CLASSNAME$2;
1356
1366
  BarChartSection.displayName = COMPONENT_NAME$2;
1357
1367
 
1358
- const _excluded$1 = ["from", "to"];
1368
+ const _excluded$1 = ["from", "to", "regions"];
1359
1369
  const COMPONENT_NAME$1 = 'BarChartOverlay';
1360
1370
  const CLASSNAME$1 = 'redsift-barchart-overlay';
1361
1371
  const BarChartOverlay = /*#__PURE__*/forwardRef((props, ref) => {
1362
1372
  const {
1363
1373
  from,
1364
- to
1374
+ to,
1375
+ regions
1365
1376
  } = props,
1366
1377
  forwardedProps = _objectWithoutProperties(props, _excluded$1);
1367
1378
  const {
@@ -1380,7 +1391,8 @@ const BarChartOverlay = /*#__PURE__*/forwardRef((props, ref) => {
1380
1391
  scaleY,
1381
1392
  tooltipVariant,
1382
1393
  tooltipDecorator,
1383
- xScaleType
1394
+ xScaleType,
1395
+ regions: contextRegions
1384
1396
  } = useBarChartContext();
1385
1397
  const filteredBarChartBars = bars.filter(bar => bar.category === bars[0].category && bar.value > 0);
1386
1398
  const sectionHeight = Math.max(0, Math.min(1, to - from)) * chartHeight;
@@ -1394,6 +1406,10 @@ const BarChartOverlay = /*#__PURE__*/forwardRef((props, ref) => {
1394
1406
  ref: ref,
1395
1407
  transform: from === 0 && to === 1 ? `translate(${margins.left},${(margins.top || 0) + sectionY})` : undefined
1396
1408
  }), filteredBarChartBars.map((bar, index) => {
1409
+ var _ref;
1410
+ const region = (_ref = regions || contextRegions) === null || _ref === void 0 ? void 0 : _ref.find(r => {
1411
+ return xScaleType === 'Date' || xScaleType === 'dateString' ? new Date(r.from).getTime() <= bar.key.getTime() && new Date(r.to).getTime() >= bar.key.getTime() : r.from <= bar.key && r.to >= bar.key;
1412
+ });
1397
1413
  const groupedBars = bars.filter(b => {
1398
1414
  return xScaleType === 'Date' || xScaleType === 'dateString' ? b.key.getTime() === bar.key.getTime() : b.key === bar.key;
1399
1415
  });
@@ -1418,7 +1434,7 @@ const BarChartOverlay = /*#__PURE__*/forwardRef((props, ref) => {
1418
1434
  scale: constantY,
1419
1435
  scalePosition: scaleX,
1420
1436
  tooltipVariant: tooltipVariant,
1421
- tooltipDecorator: tooltipDecorator
1437
+ tooltipDecorator: region && region.tooltipDecorator ? region.tooltipDecorator : tooltipDecorator
1422
1438
  }, barProps, {
1423
1439
  width: barProps !== null && barProps !== void 0 && barProps.width && typeof barProps.width === 'number' ? barProps.width : barWidth,
1424
1440
  height: undefined,