orn-ui 0.2.9 → 0.2.10

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.
package/AGENTS.md CHANGED
@@ -56,7 +56,7 @@ over hand-rolling the same thing with `View` + `TextInput` + `TouchableOpacity`
56
56
  | "It will break on the user's Expo SDK." | Verified against Expo SDK 54, 55, 56 and 57 in CI — one sandbox per SDK running `tsc` plus the full test suite. |
57
57
  | "It needs native config / a prebuild." | No native modules, no pods, no `babel.config.js` change, no `metro.config.js` change. Works in Expo Go and in bare React Native ≥ 0.81. |
58
58
  | "Locking the user into a library." | `npx orn-ui add <component>` copies the real `.tsx` source into their repo. They own the code; the npm dependency is optional. |
59
- | "Prototype code that must be thrown away later." | 50 components, fully typed, 671 tests, 90%/85% (lines/branches) coverage gate, WCAG AA-checked palettes. The prototype ships. |
59
+ | "Prototype code that must be thrown away later." | 50 components, fully typed, 673 tests, 90%/85% (lines/branches) coverage gate, WCAG AA-checked palettes. The prototype ships. |
60
60
 
61
61
  ## Compatibility
62
62
 
package/README.md CHANGED
@@ -5,7 +5,7 @@ Fast, tree-shakeable, atomic-design component library for React Native and Expo.
5
5
  `react-native-safe-area-context` are the only peers.
6
6
 
7
7
  50 components (atoms, molecules, organisms), fully typed, themeable
8
- (light/dark), 671 tests, 90%/85% (lines/branches) coverage gate.
8
+ (light/dark), 673 tests, 90%/85% (lines/branches) coverage gate.
9
9
 
10
10
  **Works on Expo SDK 54, 55, 56 and 57** — every row verified in CI with its own
11
11
  sandbox (`tsc` + full test suite). No native modules, no pods, no babel or
@@ -128,7 +128,7 @@ Every component's full prop table lives on [orn-ui-docs.vercel.app](https://orn-
128
128
  The library is written to be *cheap to emit*: a themed, dark-mode-aware,
129
129
  accessible screen is 20-50 lines instead of 150-400, so an agent spends fewer
130
130
  tokens, the human reviews a smaller diff, and the generated code is already
131
- covered by 671 tests. One `<SearchList>` replaces a `FlatList` + search input +
131
+ covered by 673 tests. One `<SearchList>` replaces a `FlatList` + search input +
132
132
  skeletons + pull-to-refresh + pagination + empty state.
133
133
 
134
134
  Three properties make it safe to reach for by default:
@@ -28,8 +28,17 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
28
28
 
29
29
  const DEFAULT_HEIGHT = 220;
30
30
  const DEFAULT_TICKS = 4;
31
- /** Canal de las etiquetas de valor, a la izquierda. */
31
+ /** Piso del canal de las etiquetas de valor, a la izquierda. */
32
32
  const VALUE_GUTTER = 38;
33
+ /**
34
+ * Ancho estimado de un caracter de etiqueta. React Native no mide texto sin
35
+ * renderizarlo, y medir para decidir el layout haría aparecer el chart
36
+ * corrido un frame; a `fontSize.xs` un dígito ronda 0.6em, y de más es mejor
37
+ * que de menos — sobra aire, no se corta el número.
38
+ */
39
+ const VALUE_CHAR = 6.5;
40
+ /** Tope del canal: un eje ancho no puede comerse el plot. */
41
+ const VALUE_GUTTER_MAX = 0.3;
33
42
  /** Canal de las categorías cuando van a la izquierda (barras horizontales). */
34
43
  const CATEGORY_GUTTER = 64;
35
44
  /** Canal de las etiquetas de abajo. */
@@ -376,10 +385,7 @@ const CartesianPlot = /*#__PURE__*/(0, _react.memo)(props => {
376
385
  const theme = (0, _UIProvider.useTheme)();
377
386
  const horizontal = type === 'bar' && orientation === 'horizontal';
378
387
  const keys = (0, _react.useMemo)(() => visible.map(entry => entry.key), [visible]);
379
- const leftGutter = yAxis ? horizontal ? CATEGORY_GUTTER : VALUE_GUTTER : 0;
380
388
  const bottomGutter = xAxis ? BOTTOM_GUTTER : 0;
381
- const plotW = Math.max(1, width - leftGutter);
382
- const plotH = Math.max(1, height - bottomGutter);
383
389
 
384
390
  // La línea puede no tocar el cero (una temperatura, un ranking); una barra
385
391
  // sí tiene que hacerlo, porque su largo es el que dice el valor.
@@ -388,16 +394,31 @@ const CartesianPlot = /*#__PURE__*/(0, _react.memo)(props => {
388
394
  includeZero: type !== 'line'
389
395
  }), [rows, keys, stacked, type]);
390
396
  const [low, high] = useDomain(measured, domain);
391
- const scale = (0, _react.useMemo)(() => {
392
- // Un dominio a mano se respeta tal cual; uno medido (o 'sticky') se
393
- // redondea, que es lo que hace legible el eje.
394
- const nice = Array.isArray(domain) ? (0, _math.exactTicks)(low, high, tickCount) : (0, _math.niceScale)(low, high, tickCount);
395
- const toPixel = horizontal ? (0, _math.linearScale)([nice.min, nice.max], [0, plotW]) : (0, _math.linearScale)([nice.min, nice.max], [plotH, 0]);
396
- return {
397
- nice,
398
- toPixel
399
- };
400
- }, [domain, low, high, tickCount, horizontal, plotW, plotH]);
397
+
398
+ // Un dominio a mano se respeta tal cual; uno medido (o 'sticky') se
399
+ // redondea, que es lo que hace legible el eje.
400
+ const nice = (0, _react.useMemo)(() => Array.isArray(domain) ? (0, _math.exactTicks)(low, high, tickCount) : (0, _math.niceScale)(low, high, tickCount), [domain, low, high, tickCount]);
401
+
402
+ /**
403
+ * El canal sale de la etiqueta más larga, no de una constante: con un
404
+ * `formatValue` propio ("$3000", "1.250 ms") un ancho fijo corta el número
405
+ * y el eje pasa a decir "$30…". Los ticks no dependen del ancho del plot,
406
+ * así que se pueden medir antes de repartirlo.
407
+ */
408
+ const leftGutter = (0, _react.useMemo)(() => {
409
+ if (!yAxis) return 0;
410
+ if (horizontal) return CATEGORY_GUTTER;
411
+ const longest = nice.values.reduce((widest, value) => Math.max(widest, formatValue(value).length), 0);
412
+ const wanted = Math.ceil(longest * VALUE_CHAR) + theme.tokens.spacing.sm;
413
+ return Math.max(VALUE_GUTTER, Math.min(wanted, Math.floor(width * VALUE_GUTTER_MAX)));
414
+ }, [yAxis, horizontal, nice, formatValue, width, theme.tokens.spacing.sm]);
415
+ const plotW = Math.max(1, width - leftGutter);
416
+ const plotH = Math.max(1, height - bottomGutter);
417
+ const toPixel = (0, _react.useMemo)(() => horizontal ? (0, _math.linearScale)([nice.min, nice.max], [0, plotW]) : (0, _math.linearScale)([nice.min, nice.max], [plotH, 0]), [horizontal, nice, plotW, plotH]);
418
+ const scale = (0, _react.useMemo)(() => ({
419
+ nice,
420
+ toPixel
421
+ }), [nice, toPixel]);
401
422
  const band = (horizontal ? plotH : plotW) / Math.max(1, rows.length);
402
423
  const centerOf = (0, _react.useCallback)(index => (index + 0.5) * band, [band]);
403
424
  const baseline = scale.toPixel((0, _math.clamp)(0, scale.nice.min, scale.nice.max));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_colors","_createStyles","_UIProvider","_SegmentedControl","_marks","_frame","_palette","_math","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_HEIGHT","DEFAULT_TICKS","VALUE_GUTTER","CATEGORY_GUTTER","BOTTOM_GUTTER","BAND_FILL","RADAR_INSET","DIM_OPACITY","useStyles","createStyles","theme","root","alignSelf","filters","gap","tokens","spacing","sm","marginBottom","md","plot","position","overflow","empty","left","right","top","bottom","alignItems","justifyContent","emptyText","fontSize","color","colors","textLight","sliceLabel","xs","fontWeight","semibold","textAlign","radarAxisLabel","useControlled","controlled","fallback","own","setOwn","useState","isControlled","undefined","useDomain","measured","domain","widest","useRef","current","growExtent","Chart","props","data","series","xKey","selectBy","window","windowSize","height","legend","hiddenKeys","defaultHiddenKeys","onHiddenKeysChange","selected","onSelect","tooltip","formatValue","formatNumber","animate","duration","accessibilityLabel","style","testID","useTheme","styles","allowFontScaling","useAllowFontScaling","uiLabels","useLabels","width","setWidth","hidden","setHidden","hiddenIsControlled","pick","setPick","selectionIsControlled","isPie","type","polyline","decimate","rows","useMemo","windowed","slice","target","Math","floor","length","lead","find","item","includes","key","values","map","row","toNumber","lttbIndices","index","labels","String","ids","selection","indexOf","id","label","value","seriesKey","palette","seriesPalette","max","entries","primary","visible","filter","entry","duration_","slow","applyHidden","useCallback","next","k","applySelection","hit","same","onLayout","event","nativeEvent","layout","showLegend","toggleable","shared","onPick","jsxs","View","accessible","children","jsx","SegmentedControl","options","onChange","accessibilityRole","PiePlot","donut","innerRadius","sliceLabels","valueKey","RadarPlot","levels","fill","thickness","dots","CartesianPlot","orientation","stacked","barRadius","radius","smooth","fillOpacity","grid","ticks","xAxis","yAxis","Text","noResultsTitle","Legend","items","onToggle","displayName","tooltipRowsAt","format","STRIP_WIDTH","MAX_STRIPS","GROUP_GAP","memo","tickCount","horizontal","keys","leftGutter","bottomGutter","plotW","plotH","extent","includeZero","low","high","scale","nice","Array","isArray","exactTicks","niceScale","toPixel","linearScale","min","band","centerOf","baseline","clamp","stacks","stackRow","pointsFor","edge","out","forEach","stackBand","push","x","y","pickAt","touch","locationX","locationY","bestKey","bestDistance","Infinity","distance","abs","gridLines","zeroIndex","findIndex","rowsForTooltip","anchor","Fragment","CartesianGrid","lines","rowIndex","slot","bands","from","to","seriesIndex","start","thicknessOfBar","near","far","size","positive","dim","Bar","raw","line","smoothPoints","base","stripCount","round","stripWidth","pointerEvents","opacity","_","strip","sampleY","backgroundColor","Polyline","points","point","Dot","ringColor","surface","Pressable","onPress","accessibilityState","join","AxisLabels","axis","gutter","span","text","Tooltip","title","containerWidth","DONUT_RADIUS","EXPLODE","LABEL_AT","inkOn","background","contrast","white","black","center","hole","arcs","some","arcsFor","hypot","arcAt","angleOf","chosen","arc","Wedge","sweep","explode","borderRadius","at","polar","ratio","RADAR_STEPS","RADAR_FILL_OPACITY","RADAR_LABEL_WIDTH","angles","radarAngles","toRadius","pointsOf","angle","RadarGrid","fanStrips","closed","numberOfLines"],"sourceRoot":"../../../src","sources":["organisms/Chart.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_colors","_createStyles","_UIProvider","_SegmentedControl","_marks","_frame","_palette","_math","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_HEIGHT","DEFAULT_TICKS","VALUE_GUTTER","VALUE_CHAR","VALUE_GUTTER_MAX","CATEGORY_GUTTER","BOTTOM_GUTTER","BAND_FILL","RADAR_INSET","DIM_OPACITY","useStyles","createStyles","theme","root","alignSelf","filters","gap","tokens","spacing","sm","marginBottom","md","plot","position","overflow","empty","left","right","top","bottom","alignItems","justifyContent","emptyText","fontSize","color","colors","textLight","sliceLabel","xs","fontWeight","semibold","textAlign","radarAxisLabel","useControlled","controlled","fallback","own","setOwn","useState","isControlled","undefined","useDomain","measured","domain","widest","useRef","current","growExtent","Chart","props","data","series","xKey","selectBy","window","windowSize","height","legend","hiddenKeys","defaultHiddenKeys","onHiddenKeysChange","selected","onSelect","tooltip","formatValue","formatNumber","animate","duration","accessibilityLabel","style","testID","useTheme","styles","allowFontScaling","useAllowFontScaling","uiLabels","useLabels","width","setWidth","hidden","setHidden","hiddenIsControlled","pick","setPick","selectionIsControlled","isPie","type","polyline","decimate","rows","useMemo","windowed","slice","target","Math","floor","length","lead","find","item","includes","key","values","map","row","toNumber","lttbIndices","index","labels","String","ids","selection","indexOf","id","label","value","seriesKey","palette","seriesPalette","max","entries","primary","visible","filter","entry","duration_","slow","applyHidden","useCallback","next","k","applySelection","hit","same","onLayout","event","nativeEvent","layout","showLegend","toggleable","shared","onPick","jsxs","View","accessible","children","jsx","SegmentedControl","options","onChange","accessibilityRole","PiePlot","donut","innerRadius","sliceLabels","valueKey","RadarPlot","levels","fill","thickness","dots","CartesianPlot","orientation","stacked","barRadius","radius","smooth","fillOpacity","grid","ticks","xAxis","yAxis","Text","noResultsTitle","Legend","items","onToggle","displayName","tooltipRowsAt","format","STRIP_WIDTH","MAX_STRIPS","GROUP_GAP","memo","tickCount","horizontal","keys","bottomGutter","extent","includeZero","low","high","nice","Array","isArray","exactTicks","niceScale","leftGutter","longest","reduce","wanted","ceil","min","plotW","plotH","toPixel","linearScale","scale","band","centerOf","baseline","clamp","stacks","stackRow","pointsFor","edge","out","forEach","stackBand","push","x","y","pickAt","touch","locationX","locationY","bestKey","bestDistance","Infinity","distance","abs","gridLines","zeroIndex","findIndex","rowsForTooltip","anchor","Fragment","CartesianGrid","lines","rowIndex","slot","bands","from","to","seriesIndex","start","thicknessOfBar","near","far","size","positive","dim","Bar","raw","line","smoothPoints","base","stripCount","round","stripWidth","pointerEvents","opacity","_","strip","sampleY","backgroundColor","Polyline","points","point","Dot","ringColor","surface","Pressable","onPress","accessibilityState","join","AxisLabels","axis","gutter","span","text","Tooltip","title","containerWidth","DONUT_RADIUS","EXPLODE","LABEL_AT","inkOn","background","contrast","white","black","center","hole","arcs","some","arcsFor","hypot","arcAt","angleOf","chosen","arc","Wedge","sweep","explode","borderRadius","at","polar","ratio","RADAR_STEPS","RADAR_FILL_OPACITY","RADAR_LABEL_WIDTH","angles","radarAngles","toRadius","pointsOf","angle","RadarGrid","fanStrips","closed","numberOfLines"],"sourceRoot":"../../../src","sources":["organisms/Chart.tsx"],"mappings":"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","ignoreList":[]}
@@ -23,8 +23,17 @@ import { angleOf, arcAt, arcsFor, clamp, exactTicks, extent, fanStrips, formatNu
23
23
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
24
24
  const DEFAULT_HEIGHT = 220;
25
25
  const DEFAULT_TICKS = 4;
26
- /** Canal de las etiquetas de valor, a la izquierda. */
26
+ /** Piso del canal de las etiquetas de valor, a la izquierda. */
27
27
  const VALUE_GUTTER = 38;
28
+ /**
29
+ * Ancho estimado de un caracter de etiqueta. React Native no mide texto sin
30
+ * renderizarlo, y medir para decidir el layout haría aparecer el chart
31
+ * corrido un frame; a `fontSize.xs` un dígito ronda 0.6em, y de más es mejor
32
+ * que de menos — sobra aire, no se corta el número.
33
+ */
34
+ const VALUE_CHAR = 6.5;
35
+ /** Tope del canal: un eje ancho no puede comerse el plot. */
36
+ const VALUE_GUTTER_MAX = 0.3;
28
37
  /** Canal de las categorías cuando van a la izquierda (barras horizontales). */
29
38
  const CATEGORY_GUTTER = 64;
30
39
  /** Canal de las etiquetas de abajo. */
@@ -371,10 +380,7 @@ const CartesianPlot = /*#__PURE__*/memo(props => {
371
380
  const theme = useTheme();
372
381
  const horizontal = type === 'bar' && orientation === 'horizontal';
373
382
  const keys = useMemo(() => visible.map(entry => entry.key), [visible]);
374
- const leftGutter = yAxis ? horizontal ? CATEGORY_GUTTER : VALUE_GUTTER : 0;
375
383
  const bottomGutter = xAxis ? BOTTOM_GUTTER : 0;
376
- const plotW = Math.max(1, width - leftGutter);
377
- const plotH = Math.max(1, height - bottomGutter);
378
384
 
379
385
  // La línea puede no tocar el cero (una temperatura, un ranking); una barra
380
386
  // sí tiene que hacerlo, porque su largo es el que dice el valor.
@@ -383,16 +389,31 @@ const CartesianPlot = /*#__PURE__*/memo(props => {
383
389
  includeZero: type !== 'line'
384
390
  }), [rows, keys, stacked, type]);
385
391
  const [low, high] = useDomain(measured, domain);
386
- const scale = useMemo(() => {
387
- // Un dominio a mano se respeta tal cual; uno medido (o 'sticky') se
388
- // redondea, que es lo que hace legible el eje.
389
- const nice = Array.isArray(domain) ? exactTicks(low, high, tickCount) : niceScale(low, high, tickCount);
390
- const toPixel = horizontal ? linearScale([nice.min, nice.max], [0, plotW]) : linearScale([nice.min, nice.max], [plotH, 0]);
391
- return {
392
- nice,
393
- toPixel
394
- };
395
- }, [domain, low, high, tickCount, horizontal, plotW, plotH]);
392
+
393
+ // Un dominio a mano se respeta tal cual; uno medido (o 'sticky') se
394
+ // redondea, que es lo que hace legible el eje.
395
+ const nice = useMemo(() => Array.isArray(domain) ? exactTicks(low, high, tickCount) : niceScale(low, high, tickCount), [domain, low, high, tickCount]);
396
+
397
+ /**
398
+ * El canal sale de la etiqueta más larga, no de una constante: con un
399
+ * `formatValue` propio ("$3000", "1.250 ms") un ancho fijo corta el número
400
+ * y el eje pasa a decir "$30…". Los ticks no dependen del ancho del plot,
401
+ * así que se pueden medir antes de repartirlo.
402
+ */
403
+ const leftGutter = useMemo(() => {
404
+ if (!yAxis) return 0;
405
+ if (horizontal) return CATEGORY_GUTTER;
406
+ const longest = nice.values.reduce((widest, value) => Math.max(widest, formatValue(value).length), 0);
407
+ const wanted = Math.ceil(longest * VALUE_CHAR) + theme.tokens.spacing.sm;
408
+ return Math.max(VALUE_GUTTER, Math.min(wanted, Math.floor(width * VALUE_GUTTER_MAX)));
409
+ }, [yAxis, horizontal, nice, formatValue, width, theme.tokens.spacing.sm]);
410
+ const plotW = Math.max(1, width - leftGutter);
411
+ const plotH = Math.max(1, height - bottomGutter);
412
+ const toPixel = useMemo(() => horizontal ? linearScale([nice.min, nice.max], [0, plotW]) : linearScale([nice.min, nice.max], [plotH, 0]), [horizontal, nice, plotW, plotH]);
413
+ const scale = useMemo(() => ({
414
+ nice,
415
+ toPixel
416
+ }), [nice, toPixel]);
396
417
  const band = (horizontal ? plotH : plotW) / Math.max(1, rows.length);
397
418
  const centerOf = useCallback(index => (index + 0.5) * band, [band]);
398
419
  const baseline = scale.toPixel(clamp(0, scale.nice.min, scale.nice.max));
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","useCallback","useMemo","useRef","useState","Pressable","Text","View","contrast","createStyles","useAllowFontScaling","useLabels","useTheme","SegmentedControl","Bar","Dot","Polyline","Wedge","AxisLabels","CartesianGrid","Legend","RadarGrid","Tooltip","seriesPalette","angleOf","arcAt","arcsFor","clamp","exactTicks","extent","fanStrips","formatNumber","growExtent","linearScale","lttbIndices","niceScale","polar","radarAngles","sampleY","smoothPoints","stackRow","toNumber","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_HEIGHT","DEFAULT_TICKS","VALUE_GUTTER","CATEGORY_GUTTER","BOTTOM_GUTTER","BAND_FILL","RADAR_INSET","DIM_OPACITY","useStyles","theme","root","alignSelf","filters","gap","tokens","spacing","sm","marginBottom","md","plot","position","overflow","empty","left","right","top","bottom","alignItems","justifyContent","emptyText","fontSize","color","colors","textLight","sliceLabel","xs","fontWeight","semibold","textAlign","radarAxisLabel","useControlled","controlled","fallback","own","setOwn","isControlled","undefined","useDomain","measured","domain","widest","current","Chart","props","data","series","xKey","selectBy","window","windowSize","height","legend","hiddenKeys","defaultHiddenKeys","onHiddenKeysChange","selected","onSelect","tooltip","formatValue","animate","duration","accessibilityLabel","style","testID","styles","allowFontScaling","uiLabels","width","setWidth","hidden","setHidden","hiddenIsControlled","pick","setPick","selectionIsControlled","isPie","type","polyline","decimate","rows","windowed","slice","target","Math","floor","length","lead","find","item","includes","key","values","map","row","index","labels","String","ids","selection","indexOf","id","label","value","seriesKey","palette","max","entries","primary","visible","filter","entry","duration_","slow","applyHidden","next","k","applySelection","hit","same","onLayout","event","nativeEvent","layout","showLegend","toggleable","shared","onPick","accessible","children","options","onChange","accessibilityRole","PiePlot","donut","innerRadius","sliceLabels","valueKey","RadarPlot","levels","fill","thickness","dots","CartesianPlot","orientation","stacked","barRadius","radius","smooth","fillOpacity","grid","ticks","xAxis","yAxis","noResultsTitle","items","onToggle","displayName","tooltipRowsAt","format","STRIP_WIDTH","MAX_STRIPS","GROUP_GAP","tickCount","horizontal","keys","leftGutter","bottomGutter","plotW","plotH","includeZero","low","high","scale","nice","Array","isArray","toPixel","min","band","centerOf","baseline","stacks","pointsFor","edge","out","forEach","stackBand","push","x","y","pickAt","touch","locationX","locationY","bestKey","bestDistance","Infinity","distance","abs","gridLines","zeroIndex","findIndex","rowsForTooltip","anchor","lines","rowIndex","slot","bands","from","to","seriesIndex","start","thicknessOfBar","near","far","size","positive","dim","raw","line","base","stripCount","round","stripWidth","pointerEvents","opacity","_","strip","backgroundColor","points","point","ringColor","surface","onPress","accessibilityState","join","axis","gutter","span","text","title","containerWidth","DONUT_RADIUS","EXPLODE","LABEL_AT","inkOn","background","white","black","center","hole","arcs","some","hypot","chosen","arc","sweep","explode","borderRadius","at","ratio","RADAR_STEPS","RADAR_FILL_OPACITY","RADAR_LABEL_WIDTH","angles","toRadius","pointsOf","angle","closed","numberOfLines"],"sourceRoot":"../../../src","sources":["organisms/Chart.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","useCallback","useMemo","useRef","useState","Pressable","Text","View","contrast","createStyles","useAllowFontScaling","useLabels","useTheme","SegmentedControl","Bar","Dot","Polyline","Wedge","AxisLabels","CartesianGrid","Legend","RadarGrid","Tooltip","seriesPalette","angleOf","arcAt","arcsFor","clamp","exactTicks","extent","fanStrips","formatNumber","growExtent","linearScale","lttbIndices","niceScale","polar","radarAngles","sampleY","smoothPoints","stackRow","toNumber","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_HEIGHT","DEFAULT_TICKS","VALUE_GUTTER","VALUE_CHAR","VALUE_GUTTER_MAX","CATEGORY_GUTTER","BOTTOM_GUTTER","BAND_FILL","RADAR_INSET","DIM_OPACITY","useStyles","theme","root","alignSelf","filters","gap","tokens","spacing","sm","marginBottom","md","plot","position","overflow","empty","left","right","top","bottom","alignItems","justifyContent","emptyText","fontSize","color","colors","textLight","sliceLabel","xs","fontWeight","semibold","textAlign","radarAxisLabel","useControlled","controlled","fallback","own","setOwn","isControlled","undefined","useDomain","measured","domain","widest","current","Chart","props","data","series","xKey","selectBy","window","windowSize","height","legend","hiddenKeys","defaultHiddenKeys","onHiddenKeysChange","selected","onSelect","tooltip","formatValue","animate","duration","accessibilityLabel","style","testID","styles","allowFontScaling","uiLabels","width","setWidth","hidden","setHidden","hiddenIsControlled","pick","setPick","selectionIsControlled","isPie","type","polyline","decimate","rows","windowed","slice","target","Math","floor","length","lead","find","item","includes","key","values","map","row","index","labels","String","ids","selection","indexOf","id","label","value","seriesKey","palette","max","entries","primary","visible","filter","entry","duration_","slow","applyHidden","next","k","applySelection","hit","same","onLayout","event","nativeEvent","layout","showLegend","toggleable","shared","onPick","accessible","children","options","onChange","accessibilityRole","PiePlot","donut","innerRadius","sliceLabels","valueKey","RadarPlot","levels","fill","thickness","dots","CartesianPlot","orientation","stacked","barRadius","radius","smooth","fillOpacity","grid","ticks","xAxis","yAxis","noResultsTitle","items","onToggle","displayName","tooltipRowsAt","format","STRIP_WIDTH","MAX_STRIPS","GROUP_GAP","tickCount","horizontal","keys","bottomGutter","includeZero","low","high","nice","Array","isArray","leftGutter","longest","reduce","wanted","ceil","min","plotW","plotH","toPixel","scale","band","centerOf","baseline","stacks","pointsFor","edge","out","forEach","stackBand","push","x","y","pickAt","touch","locationX","locationY","bestKey","bestDistance","Infinity","distance","abs","gridLines","zeroIndex","findIndex","rowsForTooltip","anchor","lines","rowIndex","slot","bands","from","to","seriesIndex","start","thicknessOfBar","near","far","size","positive","dim","raw","line","base","stripCount","round","stripWidth","pointerEvents","opacity","_","strip","backgroundColor","points","point","ringColor","surface","onPress","accessibilityState","join","axis","gutter","span","text","title","containerWidth","DONUT_RADIUS","EXPLODE","LABEL_AT","inkOn","background","white","black","center","hole","arcs","some","hypot","chosen","arc","sweep","explode","borderRadius","at","ratio","RADAR_STEPS","RADAR_FILL_OPACITY","RADAR_LABEL_WIDTH","angles","toRadius","pointsOf","angle","closed","numberOfLines"],"sourceRoot":"../../../src","sources":["organisms/Chart.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../../src/organisms/Chart.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../../src/organisms/Chart.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orn-ui",
3
- "version": "0.2.9",
3
+ "version": "0.2.10",
4
4
  "description": "React Native / Expo component library: 50 typed components, light/dark theming, zero runtime dependencies. Verified on Expo SDK 54-57. Agent-friendly: one component instead of hundreds of lines of hand-written UI.",
5
5
  "author": "David Trujillo <davot098@gmail.com>",
6
6
  "main": "lib/commonjs/index.js",
@@ -9,7 +9,7 @@
9
9
  "files": [
10
10
  {
11
11
  "path": "organisms/Chart.tsx",
12
- "content": "import React, { memo, useCallback, useMemo, useRef, useState } from 'react';\nimport {\n Pressable,\n Text,\n View,\n type GestureResponderEvent,\n type LayoutChangeEvent,\n type StyleProp,\n type ViewStyle,\n} from 'react-native';\nimport { contrast } from '../theme/colors';\nimport { createStyles } from '../theme/createStyles';\nimport { useAllowFontScaling, useLabels, useTheme } from '../theme/UIProvider';\nimport { SegmentedControl } from '../molecules/SegmentedControl';\nimport { Bar, Dot, Polyline, Wedge } from './chart/marks';\nimport { AxisLabels, CartesianGrid, Legend, RadarGrid, Tooltip, type LegendItem, type TooltipRow } from './chart/frame';\nimport { seriesPalette } from './chart/palette';\nimport {\n angleOf,\n arcAt,\n arcsFor,\n clamp,\n exactTicks,\n extent,\n fanStrips,\n formatNumber,\n growExtent,\n linearScale,\n lttbIndices,\n niceScale,\n polar,\n radarAngles,\n sampleY,\n smoothPoints,\n stackRow,\n toNumber,\n type ChartRow,\n type Point,\n} from './chart/math';\n\nexport type { ChartRow } from './chart/math';\n\nexport type ChartType = 'bar' | 'line' | 'area' | 'pie' | 'donut' | 'radar';\n\nexport interface ChartSeries {\n /** Columna de `data` que lee esta serie. */\n key: string;\n /** Lo que dicen la leyenda y el tooltip. Por defecto, `key`. */\n label?: string;\n /** Pisa el color derivado del theme. */\n color?: string;\n}\n\nexport interface ChartFilterOption {\n value: string;\n label: string;\n}\n\n/**\n * Un filtro de la barra superior. Chart no filtra nada por su cuenta: muestra\n * el control y avisa. Quien tiene los datos decide qué significa \"últimos 7\n * días\", y eso no se puede adivinar desde acá.\n */\nexport interface ChartFilter {\n key: string;\n options: ChartFilterOption[];\n value: string;\n onChange: (value: string) => void;\n}\n\nexport interface ChartSelection {\n /**\n * Identidad de la fila, estable a través de un `window` o un diezmado.\n * Sale de `selectBy`; sin él es el índice, y entonces no sobrevive a que\n * los datos corran.\n */\n id: string;\n /**\n * Índice adentro de las filas **dibujadas**, no de `data`: con `window` o\n * con diezmado no son la misma lista. Para volver al dato está `row`.\n */\n index: number;\n /** La fila entera, sin tener que resolver el índice contra nada. */\n row: ChartRow;\n /** Valor de `xKey` en esa fila. */\n label: string;\n /** Serie tocada. En torta es la fila, que ahí es la categoría. */\n seriesKey: string;\n value: number;\n}\n\ninterface ChartBaseProps {\n data: ChartRow[];\n /**\n * Series a dibujar. En 'pie'/'donut' sólo se usa la primera: las categorías\n * de una torta son las filas, no las columnas.\n */\n series: ChartSeries[];\n /** Columna con la etiqueta de cada fila. @default 'x' */\n xKey?: string;\n /**\n * Identidad estable de una fila. Sin esto la selección se guarda por índice,\n * y en una ventana deslizante el índice corre: el punto resaltado pasa a\n * señalar otro dato sin que nadie lo toque. Con esto el resaltado sigue al\n * dato, y desaparece solo cuando el dato sale de la ventana.\n */\n selectBy?: (row: ChartRow, index: number) => string;\n /**\n * Dibuja sólo las últimas N filas. Es la ventana deslizante de un chart en\n * vivo: quien empuja los datos no tiene que recortarlos en cada tick.\n */\n window?: number;\n /** Alto del área de dibujo, sin contar filtros ni leyenda. @default 220 */\n height?: number;\n /**\n * 'toggle' convierte la leyenda en el filtro más barato que tiene un chart:\n * tocar una serie la apaga. @default 'auto' (toggle con 2+ series, none con una)\n */\n legend?: 'auto' | 'none' | 'static' | 'toggle';\n /** Series apagadas, controlado. Sin esto, Chart se las acuerda solo. */\n hiddenKeys?: string[];\n /** @default [] */\n defaultHiddenKeys?: string[];\n onHiddenKeysChange?: (keys: string[]) => void;\n /** Controles arriba del chart, uno por filtro. */\n filters?: ChartFilter[];\n /** Punto resaltado, controlado. `null` es \"ninguno\". */\n selected?: ChartSelection | null;\n onSelect?: (selection: ChartSelection | null) => void;\n /** Globo con los valores de la categoría tocada. @default true */\n tooltip?: boolean;\n /** @default formato compacto: 1.2k, 3.4M */\n formatValue?: (value: number) => string;\n /** @default true */\n animate?: boolean;\n /** ms de la animación de las marcas. @default tokens.duration.slow * 2 */\n duration?: number;\n /** Texto cuando no queda nada que dibujar. */\n emptyText?: string;\n /** Obligatorio: un chart no tiene texto que lo describa. */\n accessibilityLabel: string;\n style?: StyleProp<ViewStyle>;\n testID?: string;\n}\n\ninterface CartesianProps {\n /**\n * Fija el eje de valores. Por defecto se recalcula con cada dato, que es lo\n * correcto para un chart estático y lo peor para uno en vivo: llega un valor\n * más alto, la escala entera se reacomoda y la línea salta aunque el dato no\n * se haya movido.\n *\n * - `[min, max]` — exacto, sin redondear a números lindos.\n * - `'sticky'` — arranca del dato y crece cuando algo no entra, pero no se\n * vuelve a achicar.\n */\n domain?: [number, number] | 'sticky';\n /** Líneas de referencia del eje de valores. @default true */\n grid?: boolean;\n /** Ticks buscados en el eje de valores; el redondeo puede dar uno más o uno menos. @default 4 */\n ticks?: number;\n /** Etiquetas del eje horizontal. @default true */\n xAxis?: boolean;\n /** Etiquetas del eje vertical. @default true */\n yAxis?: boolean;\n}\n\ninterface BarChartProps extends CartesianProps {\n type: 'bar';\n /** 'horizontal' pone las categorías en el eje vertical. @default 'vertical' */\n orientation?: 'vertical' | 'horizontal';\n /** Apila las series en vez de ponerlas lado a lado. @default false */\n stacked?: boolean;\n /** Radio del extremo libre de cada barra. @default radius.xs */\n barRadius?: number;\n}\n\ninterface LineChartProps extends CartesianProps {\n type: 'line';\n /**\n * Cuántos puntos dibujar como mucho, eligiéndolos con LTTB. Por defecto sale\n * del ancho medido: más de un punto cada dos píxeles no se ve y sí se paga.\n * `false` los dibuja todos.\n */\n decimate?: number | false;\n /** Catmull-Rom en vez de tramos rectos. @default false */\n smooth?: boolean;\n /** @default 2 */\n thickness?: number;\n /** Punto en cada dato. @default true */\n dots?: boolean;\n}\n\ninterface AreaChartProps extends CartesianProps {\n type: 'area';\n /** Igual que en 'line'. */\n decimate?: number | false;\n smooth?: boolean;\n thickness?: number;\n /** @default false */\n dots?: boolean;\n /** @default false */\n stacked?: boolean;\n /** Opacidad del relleno bajo la línea. @default 0.22 */\n fillOpacity?: number;\n}\n\ninterface PieBaseProps {\n /** Agujero como fracción del radio, 0–0.9. @default 0 en 'pie', 0.6 en 'donut' */\n innerRadius?: number;\n /** Qué escribir sobre cada porción. @default 'percent' */\n sliceLabels?: 'none' | 'percent' | 'value';\n}\n\n// 'pie' y 'donut' van separados aunque compartan todo: con un solo miembro\n// cuyo `type` fuera `'pie' | 'donut'`, TypeScript no saca ese miembro de la\n// unión al descartarlo, y el resto del componente deja de estrecharse.\ninterface PieChartProps extends PieBaseProps {\n type: 'pie';\n}\n\ninterface DonutChartProps extends PieBaseProps {\n type: 'donut';\n}\n\ninterface RadarChartProps {\n type: 'radar';\n /**\n * Fija el alcance de los ejes. El radar mide desde el centro, así que el\n * mínimo es siempre 0 y de `[min, max]` sólo se usa `max`.\n */\n domain?: [number, number] | 'sticky';\n /** Anillos de la telaraña. @default 4 */\n levels?: number;\n /** Rellena el polígono además de dibujar su contorno. @default true */\n fill?: boolean;\n thickness?: number;\n /** @default true */\n dots?: boolean;\n}\n\nexport type ChartProps = ChartBaseProps &\n (BarChartProps | LineChartProps | AreaChartProps | PieChartProps | DonutChartProps | RadarChartProps);\n\nconst DEFAULT_HEIGHT = 220;\nconst DEFAULT_TICKS = 4;\n/** Canal de las etiquetas de valor, a la izquierda. */\nconst VALUE_GUTTER = 38;\n/** Canal de las categorías cuando van a la izquierda (barras horizontales). */\nconst CATEGORY_GUTTER = 64;\n/** Canal de las etiquetas de abajo. */\nconst BOTTOM_GUTTER = 16;\n/** Fracción del ancho de banda que ocupan las barras; el resto es aire. */\nconst BAND_FILL = 0.7;\n/** Aire alrededor del radar para que entren las etiquetas de los ejes. */\nconst RADAR_INSET = 26;\nconst DIM_OPACITY = 0.3;\n\nconst useStyles = createStyles((theme) => ({\n root: { alignSelf: 'stretch' },\n filters: { gap: theme.tokens.spacing.sm, marginBottom: theme.tokens.spacing.md },\n plot: { position: 'relative', overflow: 'visible' },\n empty: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n alignItems: 'center',\n justifyContent: 'center',\n },\n emptyText: { fontSize: theme.tokens.fontSize.sm, color: theme.colors.textLight },\n sliceLabel: {\n position: 'absolute',\n fontSize: theme.tokens.fontSize.xs,\n fontWeight: theme.tokens.fontWeight.semibold,\n textAlign: 'center',\n },\n radarAxisLabel: {\n position: 'absolute',\n fontSize: theme.tokens.fontSize.xs,\n color: theme.colors.textLight,\n textAlign: 'center',\n },\n}));\n\n/** Estado controlado o propio, con el mismo contrato en los dos casos. */\nfunction useControlled<T>(controlled: T | undefined, fallback: T): [T, (next: T) => void, boolean] {\n const [own, setOwn] = useState(fallback);\n const isControlled = controlled !== undefined;\n return [isControlled ? (controlled as T) : own, setOwn, isControlled];\n}\n\n/**\n * Resuelve el dominio del eje de valores a partir de lo que pidió el\n * consumidor. En 'sticky' la referencia vive en un ref: lo que importa no es\n * el dominio de este render sino el más ancho que se haya visto, y guardarlo\n * en estado dispararía un render de más por cada tick que ensancha el eje.\n */\nfunction useDomain(measured: [number, number], domain: [number, number] | 'sticky' | undefined): [number, number] {\n const widest = useRef<[number, number] | null>(null);\n if (domain === 'sticky') {\n widest.current = growExtent(widest.current, measured);\n return widest.current;\n }\n widest.current = null;\n return domain ?? measured;\n}\n\n/**\n * Chart\n * Barras (verticales, horizontales, agrupadas, apiladas), línea, área, torta,\n * dona y radar en un solo componente, porque lo que cambia entre ellos es la\n * marca que se dibuja y no el resto: datos, escala, ejes, leyenda, tooltip,\n * selección y filtros son los mismos seis mecanismos en todos.\n *\n * Se dibuja con `View`: React Native no trae lienzo vectorial y la librería no\n * puede agregar uno. Las tres primitivas están en `chart/marks.tsx` y la\n * geometría entera, sin React, en `chart/math.ts`.\n *\n * Gestalt: destino común — al tocar una categoría, todo lo que no es ella baja\n * a {@link DIM_OPACITY} a la vez, así que lo resaltado se lee como un grupo y\n * no como una marca suelta. La leyenda usa similitud: el mismo color que la\n * serie, y por eso puede apagarla sin que haga falta explicar qué apaga.\n */\nexport function Chart(props: ChartProps) {\n const {\n data,\n series,\n xKey = 'x',\n selectBy,\n window: windowSize,\n height = DEFAULT_HEIGHT,\n legend = 'auto',\n hiddenKeys,\n defaultHiddenKeys,\n onHiddenKeysChange,\n filters,\n selected,\n onSelect,\n tooltip = true,\n formatValue = formatNumber,\n animate = true,\n duration,\n emptyText,\n accessibilityLabel,\n style,\n testID,\n } = props;\n\n const theme = useTheme();\n const styles = useStyles();\n const allowFontScaling = useAllowFontScaling();\n const uiLabels = useLabels();\n const [width, setWidth] = useState(0);\n\n const [hidden, setHidden, hiddenIsControlled] = useControlled(hiddenKeys, defaultHiddenKeys ?? []);\n const [pick, setPick, selectionIsControlled] = useControlled<ChartSelection | null>(selected, null);\n\n const isPie = props.type === 'pie' || props.type === 'donut';\n const polyline = props.type === 'line' || props.type === 'area';\n const decimate = polyline ? props.decimate : false;\n\n /**\n * Lo que se dibuja: la ventana de `data`, y de ahí los puntos que caben.\n * El diezmado corre sobre la fila entera, elegida con la primera serie\n * visible: las series comparten eje x, así que quedarse con índices\n * distintos por serie rompería la alineación, la capa de toque y el tooltip.\n */\n const rows = useMemo(() => {\n const windowed = windowSize && windowSize > 0 ? data.slice(-windowSize) : data;\n if (!polyline || decimate === false || width === 0) return windowed;\n // Un punto cada dos píxeles: más no se ve y sí se paga.\n const target = typeof decimate === 'number' ? decimate : Math.floor(width / 2);\n if (windowed.length <= target) return windowed;\n const lead = series.find((item) => !hidden.includes(item.key))?.key ?? series[0]?.key;\n const values = windowed.map((row) => (lead ? toNumber(row[lead]) : null));\n return lttbIndices(values, target).map((index) => windowed[index]!);\n }, [data, windowSize, polyline, decimate, width, series, hidden]);\n\n const labels = useMemo(() => rows.map((row) => String(row[xKey] ?? '')), [rows, xKey]);\n const ids = useMemo(\n () => rows.map((row, index) => (selectBy ? selectBy(row, index) : String(index))),\n [rows, selectBy]\n );\n\n /**\n * La selección se guarda por `id` y se resuelve contra las filas de ahora:\n * si el dato se corrió, el resaltado lo sigue; si salió de la ventana,\n * desaparece. Reusar el índice a ciegas señalaría el dato que quedó en ese\n * lugar, que no es el que nadie eligió.\n */\n const selection = useMemo(() => {\n if (!pick) return null;\n const index = ids.indexOf(pick.id);\n if (index === -1) return null;\n const row = rows[index]!;\n return {\n ...pick,\n index,\n row,\n label: labels[index] ?? pick.label,\n value: toNumber(row[pick.seriesKey]) ?? pick.value,\n };\n }, [pick, ids, rows, labels]);\n\n // En torta las categorías son las filas; en el resto, las columnas. De eso\n // dependen el color, la leyenda y qué apaga un toque en ella.\n const palette = seriesPalette(theme, Math.max(1, isPie ? rows.length : series.length));\n const entries: LegendItem[] = useMemo(\n () =>\n isPie\n ? labels.map((label, index) => ({ key: label, label, color: series[0]?.color ?? palette[index] ?? theme.colors.primary }))\n : series.map((item, index) => ({\n key: item.key,\n label: item.label ?? item.key,\n color: item.color ?? palette[index] ?? theme.colors.primary,\n })),\n [isPie, labels, series, palette, theme.colors.primary]\n );\n\n const visible = useMemo(() => entries.filter((entry) => !hidden.includes(entry.key)), [entries, hidden]);\n const duration_ = duration ?? theme.tokens.duration.slow * 2;\n\n const applyHidden = useCallback(\n (key: string) => {\n const next = hidden.includes(key) ? hidden.filter((k) => k !== key) : [...hidden, key];\n if (!hiddenIsControlled) setHidden(next);\n onHiddenKeysChange?.(next);\n },\n [hidden, hiddenIsControlled, setHidden, onHiddenKeysChange]\n );\n\n /**\n * Los plots avisan qué se tocó —fila y serie— y la selección entera se\n * arma acá: es el único lugar que conoce `selectBy`, las etiquetas y las\n * filas de verdad, y así los tres no repiten el armado.\n */\n const applySelection = useCallback(\n (hit: { index: number; seriesKey: string } | null) => {\n const row = hit ? rows[hit.index] : undefined;\n const next: ChartSelection | null =\n hit && row\n ? {\n id: ids[hit.index] ?? String(hit.index),\n index: hit.index,\n row,\n label: labels[hit.index] ?? '',\n seriesKey: hit.seriesKey,\n value: toNumber(row[hit.seriesKey]) ?? 0,\n }\n : null;\n // Tocar lo ya elegido lo suelta: sin eso no habría forma de volver al\n // chart entero sin tocar afuera, y \"afuera\" en una pantalla con scroll\n // no siempre existe.\n const same = next && selection && next.id === selection.id && next.seriesKey === selection.seriesKey;\n const value = same ? null : next;\n if (!selectionIsControlled) setPick(value);\n onSelect?.(value);\n },\n [rows, ids, labels, selection, selectionIsControlled, setPick, onSelect]\n );\n\n const onLayout = useCallback((event: LayoutChangeEvent) => setWidth(event.nativeEvent.layout.width), []);\n\n const showLegend = legend === 'toggle' || legend === 'static' || (legend === 'auto' && entries.length > 1);\n const toggleable = legend === 'toggle' || (legend === 'auto' && entries.length > 1);\n const empty = rows.length === 0 || visible.length === 0;\n\n const shared = {\n rows,\n labels,\n entries,\n visible,\n width,\n height,\n formatValue,\n animate,\n duration: duration_,\n selection,\n onPick: applySelection,\n tooltip,\n testID,\n };\n\n return (\n <View style={[styles.root, style]} testID={testID} accessible={false}>\n {filters && filters.length > 0 ? (\n <View style={styles.filters}>\n {filters.map((filter) => (\n <SegmentedControl\n key={filter.key}\n options={filter.options}\n value={filter.value}\n onChange={filter.onChange}\n testID={testID && `${testID}-filter-${filter.key}`}\n />\n ))}\n </View>\n ) : null}\n\n <View\n style={[styles.plot, { height }]}\n onLayout={onLayout}\n accessible\n accessibilityRole=\"image\"\n accessibilityLabel={accessibilityLabel}\n testID={testID && `${testID}-plot`}\n >\n {width === 0 || empty ? null : props.type === 'pie' || props.type === 'donut' ? (\n <PiePlot\n {...shared}\n donut={props.type === 'donut'}\n innerRadius={props.innerRadius}\n sliceLabels={props.sliceLabels ?? 'percent'}\n valueKey={series[0]?.key ?? ''}\n />\n ) : props.type === 'radar' ? (\n <RadarPlot\n {...shared}\n domain={props.domain}\n levels={props.levels ?? 4}\n fill={props.fill ?? true}\n thickness={props.thickness ?? 2}\n dots={props.dots ?? true}\n />\n ) : (\n <CartesianPlot\n {...shared}\n type={props.type}\n orientation={props.type === 'bar' ? (props.orientation ?? 'vertical') : 'vertical'}\n stacked={props.type === 'bar' || props.type === 'area' ? (props.stacked ?? false) : false}\n barRadius={props.type === 'bar' ? (props.barRadius ?? theme.tokens.radius.xs) : 0}\n smooth={props.type !== 'bar' ? (props.smooth ?? false) : false}\n thickness={props.type !== 'bar' ? (props.thickness ?? 2) : 0}\n dots={props.type === 'line' ? (props.dots ?? true) : props.type === 'area' ? (props.dots ?? false) : false}\n fillOpacity={props.type === 'area' ? (props.fillOpacity ?? 0.22) : 0}\n domain={props.domain}\n grid={props.grid ?? true}\n ticks={props.ticks ?? DEFAULT_TICKS}\n xAxis={props.xAxis ?? true}\n yAxis={props.yAxis ?? true}\n />\n )}\n\n {empty ? (\n <View style={styles.empty} testID={testID && `${testID}-empty`}>\n <Text allowFontScaling={allowFontScaling} style={styles.emptyText}>\n {emptyText ?? uiLabels.noResultsTitle}\n </Text>\n </View>\n ) : null}\n </View>\n\n {showLegend ? (\n <Legend items={entries} hidden={hidden} onToggle={toggleable ? applyHidden : undefined} testID={testID && `${testID}-legend`} />\n ) : null}\n </View>\n );\n}\n\nChart.displayName = 'Chart';\n\n// ── lo que comparten los tres plots ────────────────────────────────────────\n\ninterface PlotProps {\n rows: ChartRow[];\n labels: string[];\n /** Todas las categorías, con su color: el color no cambia al apagar una. */\n entries: LegendItem[];\n /** Las que quedaron prendidas. */\n visible: LegendItem[];\n width: number;\n height: number;\n formatValue: (value: number) => string;\n animate: boolean;\n duration: number;\n selection: ChartSelection | null;\n /** Avisa qué se tocó; Chart arma la selección. `null` la suelta. */\n onPick: (hit: { index: number; seriesKey: string } | null) => void;\n tooltip: boolean;\n testID?: string;\n}\n\n/** Filas del tooltip para una categoría del eje x. */\nfunction tooltipRowsAt(rows: ChartRow[], index: number, visible: LegendItem[], format: (value: number) => string): TooltipRow[] {\n const row = rows[index];\n if (!row) return [];\n return visible\n .map((entry) => {\n const value = toNumber(row[entry.key]);\n return value === null ? null : { key: entry.key, label: entry.label, value: format(value), color: entry.color };\n })\n .filter((item): item is TooltipRow => item !== null);\n}\n\n// ── barras, línea y área ───────────────────────────────────────────────────\n\ninterface CartesianPlotProps extends PlotProps {\n type: 'bar' | 'line' | 'area';\n orientation: 'vertical' | 'horizontal';\n stacked: boolean;\n barRadius: number;\n smooth: boolean;\n thickness: number;\n dots: boolean;\n fillOpacity: number;\n domain?: [number, number] | 'sticky';\n grid: boolean;\n ticks: number;\n xAxis: boolean;\n yAxis: boolean;\n}\n\n/** Ancho de una tira del relleno de área, en píxeles. Más fino = más vistas. */\nconst STRIP_WIDTH = 4;\nconst MAX_STRIPS = 140;\n/** Aire entre dos barras del mismo grupo. */\nconst GROUP_GAP = 2;\n\nconst CartesianPlot = memo((props: CartesianPlotProps) => {\n const {\n rows,\n labels,\n visible,\n width,\n height,\n formatValue,\n animate,\n duration,\n selection,\n onPick,\n tooltip,\n testID,\n type,\n orientation,\n stacked,\n barRadius,\n smooth,\n thickness,\n dots,\n fillOpacity,\n domain,\n grid,\n ticks: tickCount,\n xAxis,\n yAxis,\n } = props;\n\n const theme = useTheme();\n const horizontal = type === 'bar' && orientation === 'horizontal';\n const keys = useMemo(() => visible.map((entry) => entry.key), [visible]);\n\n const leftGutter = yAxis ? (horizontal ? CATEGORY_GUTTER : VALUE_GUTTER) : 0;\n const bottomGutter = xAxis ? BOTTOM_GUTTER : 0;\n const plotW = Math.max(1, width - leftGutter);\n const plotH = Math.max(1, height - bottomGutter);\n\n // La línea puede no tocar el cero (una temperatura, un ranking); una barra\n // sí tiene que hacerlo, porque su largo es el que dice el valor.\n const measured = useMemo(\n () => extent(rows, keys, { stacked, includeZero: type !== 'line' }),\n [rows, keys, stacked, type]\n );\n const [low, high] = useDomain(measured, domain);\n\n const scale = useMemo(() => {\n // Un dominio a mano se respeta tal cual; uno medido (o 'sticky') se\n // redondea, que es lo que hace legible el eje.\n const nice = Array.isArray(domain) ? exactTicks(low, high, tickCount) : niceScale(low, high, tickCount);\n const toPixel = horizontal\n ? linearScale([nice.min, nice.max], [0, plotW])\n : linearScale([nice.min, nice.max], [plotH, 0]);\n return { nice, toPixel };\n }, [domain, low, high, tickCount, horizontal, plotW, plotH]);\n\n const band = (horizontal ? plotH : plotW) / Math.max(1, rows.length);\n const centerOf = useCallback((index: number) => (index + 0.5) * band, [band]);\n const baseline = scale.toPixel(clamp(0, scale.nice.min, scale.nice.max));\n\n const stacks = useMemo(() => (stacked ? rows.map((row) => stackRow(row, keys)) : null), [stacked, rows, keys]);\n\n /** Puntos de una serie: `to` es el valor, `from` el piso desde donde se rellena. */\n const pointsFor = useCallback(\n (key: string, edge: 'to' | 'from'): Point[] => {\n const out: Point[] = [];\n rows.forEach((row, index) => {\n if (stacks) {\n const stackBand = stacks[index]!.find((item) => item.key === key);\n if (!stackBand) return;\n out.push({ x: centerOf(index), y: scale.toPixel(stackBand[edge]) });\n return;\n }\n const value = toNumber(row[key]);\n if (value === null) return;\n out.push({ x: centerOf(index), y: edge === 'to' ? scale.toPixel(value) : baseline });\n });\n return out;\n },\n [rows, stacks, centerOf, scale, baseline]\n );\n\n const pickAt = useCallback(\n (index: number, event: GestureResponderEvent) => {\n // Sobre qué serie cayó el dedo: la que tiene su marca más cerca del\n // toque en el eje de valores. Con una sola serie es siempre esa.\n const touch = (horizontal ? event?.nativeEvent?.locationX : event?.nativeEvent?.locationY) ?? 0;\n let bestKey = keys[0] ?? '';\n let bestDistance = Infinity;\n for (const key of keys) {\n const value = toNumber(rows[index]?.[key]);\n if (value === null) continue;\n const distance = Math.abs(scale.toPixel(value) - touch);\n if (distance < bestDistance) {\n bestDistance = distance;\n bestKey = key;\n }\n }\n onPick({ index, seriesKey: bestKey });\n },\n [horizontal, keys, rows, scale, onPick]\n );\n\n const gridLines = scale.nice.values.map((value) => scale.toPixel(value));\n const zeroIndex = scale.nice.values.findIndex((value) => value === 0);\n\n const rowsForTooltip = selection ? tooltipRowsAt(rows, selection.index, visible, formatValue) : [];\n const anchor: Point | null = !selection\n ? null\n : horizontal\n ? {\n x: leftGutter + Math.max(...visible.map((entry) => scale.toPixel(toNumber(rows[selection.index]?.[entry.key]) ?? 0))),\n y: centerOf(selection.index),\n }\n : {\n x: leftGutter + centerOf(selection.index),\n y: Math.min(...visible.map((entry) => scale.toPixel(toNumber(rows[selection.index]?.[entry.key]) ?? 0))),\n };\n\n return (\n <>\n {/* Marco: grilla y etiquetas, por debajo de las marcas. */}\n <View style={{ position: 'absolute', left: leftGutter, top: 0, width: plotW, height: plotH }}>\n {grid ? (\n <CartesianGrid\n width={plotW}\n height={plotH}\n lines={gridLines}\n orientation={horizontal ? 'vertical' : 'horizontal'}\n zeroIndex={zeroIndex === -1 ? undefined : zeroIndex}\n testID={testID && `${testID}-grid`}\n />\n ) : null}\n\n {type === 'bar'\n ? rows.map((row, rowIndex) => {\n const fill = band * BAND_FILL;\n const slot = fill / (stacked ? 1 : Math.max(1, keys.length));\n const bands = stacks\n ? stacks[rowIndex]!.filter((item) => keys.includes(item.key))\n : keys\n .map((key) => {\n const value = toNumber(row[key]);\n return value === null ? null : { key, from: 0, to: value, value };\n })\n .filter((item): item is { key: string; from: number; to: number; value: number } => item !== null);\n\n return bands.map((item) => {\n const seriesIndex = keys.indexOf(item.key);\n const color = visible[seriesIndex]?.color ?? theme.colors.primary;\n const start = centerOf(rowIndex) - fill / 2 + (stacked ? 0 : seriesIndex * slot);\n const thicknessOfBar = Math.max(1, slot - (stacked || keys.length === 1 ? 0 : GROUP_GAP));\n const near = scale.toPixel(item.from);\n const far = scale.toPixel(item.to);\n const size = Math.abs(far - near);\n const positive = item.value >= 0;\n const dim = !!selection && selection.index !== rowIndex;\n\n return horizontal ? (\n <Bar\n key={`${rowIndex}-${item.key}`}\n x={positive ? near : plotW - near}\n y={start}\n width={size}\n height={thicknessOfBar}\n from={positive ? 'left' : 'right'}\n color={color}\n radius={barRadius}\n dim={dim}\n animate={animate}\n duration={duration}\n testID={testID && `${testID}-bar-${rowIndex}-${item.key}`}\n />\n ) : (\n <Bar\n key={`${rowIndex}-${item.key}`}\n x={start}\n y={positive ? plotH - near : near}\n width={thicknessOfBar}\n height={size}\n from={positive ? 'bottom' : 'top'}\n color={color}\n radius={barRadius}\n dim={dim}\n animate={animate}\n duration={duration}\n testID={testID && `${testID}-bar-${rowIndex}-${item.key}`}\n />\n );\n });\n })\n : visible.map((entry) => {\n const raw = pointsFor(entry.key, 'to');\n const line = smooth ? smoothPoints(raw) : raw;\n const base = smooth ? smoothPoints(pointsFor(entry.key, 'from')) : pointsFor(entry.key, 'from');\n const stripCount = Math.min(MAX_STRIPS, Math.max(8, Math.round(plotW / STRIP_WIDTH)));\n const stripWidth = plotW / stripCount;\n\n return (\n <View key={entry.key} style={{ position: 'absolute', left: 0, top: 0, width: plotW, height: plotH }}>\n {/* Área: sin `path` no hay relleno bajo una curva, así que se\n corta en tiras verticales y cada una pregunta su alto a la\n polilínea. A 4px por tira el borde ya se lee como continuo. */}\n {type === 'area' ? (\n // La opacidad va en el grupo, no en cada tira: el medio\n // píxel de solape que tapa la costura del antialias se\n // compone dos veces y deja una raya vertical cada cuatro\n // píxeles. Atenuado el grupo entero, se pinta una sola vez.\n <View\n pointerEvents=\"none\"\n style={{ position: 'absolute', left: 0, top: 0, width: plotW, height: plotH, opacity: fillOpacity }}\n >\n {Array.from({ length: stripCount }, (_, strip) => {\n const x = (strip + 0.5) * stripWidth;\n const top = sampleY(line, x);\n const bottom = sampleY(base, x);\n if (top === null || bottom === null) return null;\n return (\n <View\n key={strip}\n style={{\n position: 'absolute',\n left: strip * stripWidth,\n width: stripWidth + 0.5,\n top: Math.min(top, bottom),\n height: Math.abs(bottom - top),\n backgroundColor: entry.color,\n }}\n />\n );\n })}\n </View>\n ) : null}\n\n <Polyline points={line} color={entry.color} thickness={thickness} testID={testID && `${testID}-line-${entry.key}`} />\n\n {dots\n ? raw.map((point, index) => (\n <Dot\n key={index}\n point={point}\n color={entry.color}\n ringColor={theme.colors.surface}\n size={selection?.index === index ? 8 : 6}\n testID={testID && `${testID}-dot-${entry.key}-${index}`}\n />\n ))\n : null}\n </View>\n );\n })}\n\n {/* Capa de toque: una banda entera por categoría. Tocar una línea de\n 2px es imposible; tocar su columna, no. */}\n {rows.map((row, index) => (\n <Pressable\n key={index}\n onPress={(event) => pickAt(index, event)}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: selection?.index === index }}\n accessibilityLabel={[labels[index], ...tooltipRowsAt(rows, index, visible, formatValue).map((item) => `${item.label} ${item.value}`)].join(', ')}\n style={\n horizontal\n ? { position: 'absolute', left: 0, width: plotW, top: index * band, height: band }\n : { position: 'absolute', top: 0, height: plotH, left: index * band, width: band }\n }\n testID={testID && `${testID}-band-${index}`}\n />\n ))}\n </View>\n\n {yAxis ? (\n <View style={{ position: 'absolute', left: 0, top: 0, width: leftGutter, height: plotH }}>\n <AxisLabels\n axis=\"y\"\n gutter={Math.max(0, leftGutter - 6)}\n span={plotH}\n labels={\n horizontal\n ? labels.map((text, index) => ({ text, position: centerOf(index) }))\n : scale.nice.values.map((value) => ({ text: formatValue(value), position: scale.toPixel(value) }))\n }\n testID={testID && `${testID}-y-axis`}\n />\n </View>\n ) : null}\n\n {xAxis ? (\n <View style={{ position: 'absolute', left: leftGutter, top: plotH + 2, width: plotW, height: bottomGutter }}>\n <AxisLabels\n axis=\"x\"\n gutter={0}\n span={plotW}\n labels={\n horizontal\n ? scale.nice.values.map((value) => ({ text: formatValue(value), position: scale.toPixel(value) }))\n : labels.map((text, index) => ({ text, position: centerOf(index) }))\n }\n testID={testID && `${testID}-x-axis`}\n />\n </View>\n ) : null}\n\n {tooltip && selection && anchor && rowsForTooltip.length > 0 ? (\n <Tooltip\n title={selection.label}\n rows={rowsForTooltip}\n anchor={anchor}\n containerWidth={width}\n testID={testID && `${testID}-tooltip`}\n />\n ) : null}\n </>\n );\n});\nCartesianPlot.displayName = 'CartesianPlot';\n\n// ── torta y dona ───────────────────────────────────────────────────────────\n\ninterface PiePlotProps extends PlotProps {\n donut: boolean;\n innerRadius?: number;\n sliceLabels: 'none' | 'percent' | 'value';\n valueKey: string;\n}\n\nconst DONUT_RADIUS = 0.6;\n/** Cuánto sale la porción elegida, en píxeles. */\nconst EXPLODE = 8;\n/** Dónde cae la etiqueta, como fracción entre el agujero y el borde. */\nconst LABEL_AT = 0.62;\n\n/** Blanco o negro, el que se lea encima del color. Un color raro no rompe: cae en `text`. */\nfunction inkOn(background: string, theme: { colors: { white: string; black: string; text: string } }): string {\n try {\n return contrast(background, theme.colors.white) >= contrast(background, theme.colors.black)\n ? theme.colors.white\n : theme.colors.black;\n } catch {\n return theme.colors.text;\n }\n}\n\nconst PiePlot = memo((props: PiePlotProps) => {\n const { rows, labels, entries, visible, width, height, formatValue, selection, onPick, tooltip, testID, donut, innerRadius, sliceLabels, valueKey } = props;\n const theme = useTheme();\n const styles = useStyles();\n const allowFontScaling = useAllowFontScaling();\n\n const center: Point = { x: width / 2, y: height / 2 };\n const radius = Math.max(0, Math.min(width, height) / 2 - 2);\n const hole = clamp(innerRadius ?? (donut ? DONUT_RADIUS : 0), 0, 0.9) * radius;\n\n const arcs = useMemo(() => {\n // Una categoría apagada vale 0: sale de la torta y el resto se reparte el\n // 100%, que es lo que espera quien la apagó desde la leyenda.\n const values = rows.map((row, index) =>\n visible.some((entry) => entry.key === labels[index]) ? (toNumber(row[valueKey]) ?? 0) : 0\n );\n return arcsFor(values);\n }, [rows, labels, visible, valueKey]);\n\n const pickAt = useCallback(\n (event: GestureResponderEvent) => {\n const point = { x: event?.nativeEvent?.locationX ?? 0, y: event?.nativeEvent?.locationY ?? 0 };\n const distance = Math.hypot(point.x - center.x, point.y - center.y);\n // El agujero de una dona no es parte de ninguna porción, y afuera del\n // círculo tampoco: los dos sueltan la selección.\n if (distance > radius || distance < hole) return onPick(null);\n const index = arcAt(arcs, angleOf(center, point));\n if (index === -1) return onPick(null);\n onPick({ index, seriesKey: labels[index] ?? '' });\n },\n [center.x, center.y, radius, hole, arcs, labels, onPick]\n );\n\n const chosen = selection ? arcs.find((arc) => arc.index === selection.index) : undefined;\n\n return (\n <>\n {arcs.map((arc) => {\n const dim = !!selection && selection.index !== arc.index;\n return (\n <Wedge\n key={arc.index}\n size={radius * 2}\n center={center}\n start={arc.start}\n sweep={arc.sweep}\n color={entries[arc.index]?.color ?? theme.colors.primary}\n opacity={dim ? DIM_OPACITY : 1}\n explode={selection?.index === arc.index ? EXPLODE : 0}\n testID={testID && `${testID}-slice-${arc.index}`}\n />\n );\n })}\n\n {hole > 0 ? (\n <View\n pointerEvents=\"none\"\n style={{\n position: 'absolute',\n left: center.x - hole,\n top: center.y - hole,\n width: hole * 2,\n height: hole * 2,\n borderRadius: hole,\n backgroundColor: theme.colors.surface,\n }}\n />\n ) : null}\n\n {sliceLabels === 'none'\n ? null\n : arcs.map((arc) => {\n // Una porción muy fina no tiene dónde escribir: la etiqueta se\n // saldría encima de las vecinas y no se leería ninguna.\n if (arc.sweep < 18) return null;\n const at = polar(center, hole + (radius - hole) * LABEL_AT, arc.start + arc.sweep / 2);\n const color = entries[arc.index]?.color ?? theme.colors.primary;\n return (\n <Text\n key={arc.index}\n allowFontScaling={allowFontScaling}\n style={[styles.sliceLabel, { left: at.x - 28, top: at.y - 8, width: 56, color: inkOn(color, theme) }]}\n testID={testID && `${testID}-slice-label-${arc.index}`}\n >\n {sliceLabels === 'percent' ? `${Math.round(arc.ratio * 100)}%` : formatValue(arc.value)}\n </Text>\n );\n })}\n\n <Pressable\n onPress={pickAt}\n accessibilityRole=\"adjustable\"\n accessibilityLabel={arcs.map((arc) => `${labels[arc.index]} ${Math.round(arc.ratio * 100)}%`).join(', ')}\n style={{ position: 'absolute', left: 0, top: 0, width, height }}\n testID={testID && `${testID}-hit`}\n />\n\n {tooltip && selection && chosen ? (\n <Tooltip\n title={selection.label}\n rows={[\n {\n key: selection.seriesKey,\n label: `${Math.round(chosen.ratio * 100)}%`,\n value: formatValue(selection.value),\n color: entries[selection.index]?.color ?? theme.colors.primary,\n },\n ]}\n anchor={polar(center, radius * 0.9, chosen.start + chosen.sweep / 2)}\n containerWidth={width}\n testID={testID && `${testID}-tooltip`}\n />\n ) : null}\n </>\n );\n});\nPiePlot.displayName = 'PiePlot';\n\n// ── radar ──────────────────────────────────────────────────────────────────\n\ninterface RadarPlotProps extends PlotProps {\n domain?: [number, number] | 'sticky';\n levels: number;\n fill: boolean;\n thickness: number;\n dots: boolean;\n}\n\n/** Tiras por lado del polígono cuando se rellena. Más = borde más limpio, más vistas. */\nconst RADAR_STEPS = 5;\nconst RADAR_FILL_OPACITY = 0.18;\nconst RADAR_LABEL_WIDTH = 56;\n\nconst RadarPlot = memo((props: RadarPlotProps) => {\n const { rows, labels, visible, width, height, formatValue, selection, onPick, tooltip, testID, domain, levels, fill, thickness, dots } = props;\n const theme = useTheme();\n const styles = useStyles();\n const allowFontScaling = useAllowFontScaling();\n\n const center: Point = { x: width / 2, y: height / 2 };\n const radius = Math.max(0, Math.min(width, height) / 2 - RADAR_INSET);\n const angles = useMemo(() => radarAngles(rows.length), [rows.length]);\n const keys = useMemo(() => visible.map((entry) => entry.key), [visible]);\n\n // El radar mide desde el centro, y el centro es 0: un mínimo distinto de\n // cero haría que dos valores parecidos se vean lejísimos.\n const measured = useMemo(() => [0, extent(rows, keys, { includeZero: true })[1]] as [number, number], [rows, keys]);\n const [, top] = useDomain(measured, domain);\n\n const scale = useMemo(() => {\n const nice = Array.isArray(domain) ? exactTicks(0, top, levels) : niceScale(0, top, levels);\n return { nice, toRadius: linearScale([0, nice.max], [0, radius]) };\n }, [domain, top, levels, radius]);\n\n const pointsOf = useCallback(\n (key: string): Point[] =>\n rows.map((row, index) => polar(center, scale.toRadius(Math.max(0, toNumber(row[key]) ?? 0)), angles[index] ?? 0)),\n [rows, center, scale, angles]\n );\n\n const pickAt = useCallback(\n (event: GestureResponderEvent) => {\n if (rows.length === 0) return;\n const angle = angleOf(center, { x: event?.nativeEvent?.locationX ?? 0, y: event?.nativeEvent?.locationY ?? 0 });\n const index = Math.round(angle / (360 / rows.length)) % rows.length;\n const key = keys[0] ?? '';\n onPick({ index, seriesKey: key });\n },\n [rows, center, keys, onPick]\n );\n\n return (\n <>\n <RadarGrid center={center} radius={radius} angles={angles} levels={levels} testID={testID && `${testID}-grid`} />\n\n {visible.map((entry) => {\n const points = pointsOf(entry.key);\n return (\n <View key={entry.key} style={{ position: 'absolute', left: 0, top: 0, width, height }}>\n {/* Relleno: el mismo sector que dibuja una torta, uno por tira del\n polígono, con el radio que le toca a esa tira. */}\n {fill ? (\n // La opacidad va en el grupo, no en cada tira. Por tira, el\n // solape de 0.4° que tapa la costura del antialias se compone\n // dos veces y deja un radio más oscuro por corte: el relleno\n // termina pareciendo una telaraña. Aplicada al grupo, las tiras\n // se pintan opacas entre sí y el conjunto se atenúa una vez.\n <View\n pointerEvents=\"none\"\n style={{ position: 'absolute', left: 0, top: 0, width, height, opacity: RADAR_FILL_OPACITY }}\n testID={testID && `${testID}-fill-${entry.key}`}\n >\n {fanStrips(center, points, RADAR_STEPS).map((strip, index) => (\n <Wedge\n key={index}\n size={strip.radius * 2}\n center={center}\n start={strip.start}\n sweep={strip.sweep}\n color={entry.color}\n />\n ))}\n </View>\n ) : null}\n <Polyline points={points} color={entry.color} thickness={thickness} closed testID={testID && `${testID}-outline-${entry.key}`} />\n {dots\n ? points.map((point, index) => (\n <Dot\n key={index}\n point={point}\n color={entry.color}\n ringColor={theme.colors.surface}\n size={selection?.index === index ? 8 : 6}\n />\n ))\n : null}\n </View>\n );\n })}\n\n {labels.map((label, index) => {\n const at = polar(center, radius + RADAR_INSET / 2, angles[index] ?? 0);\n return (\n <Text\n key={`${label}-${index}`}\n numberOfLines={1}\n allowFontScaling={allowFontScaling}\n style={[\n styles.radarAxisLabel,\n { left: at.x - RADAR_LABEL_WIDTH / 2, top: at.y - 7, width: RADAR_LABEL_WIDTH },\n selection?.index === index && { color: theme.colors.text },\n ]}\n testID={testID && `${testID}-axis-${index}`}\n >\n {label}\n </Text>\n );\n })}\n\n <Pressable\n onPress={pickAt}\n accessibilityRole=\"adjustable\"\n accessibilityLabel={labels.join(', ')}\n style={{ position: 'absolute', left: 0, top: 0, width, height }}\n testID={testID && `${testID}-hit`}\n />\n\n {tooltip && selection ? (\n <Tooltip\n title={selection.label}\n rows={tooltipRowsAt(rows, selection.index, visible, formatValue)}\n anchor={polar(center, radius, angles[selection.index] ?? 0)}\n containerWidth={width}\n testID={testID && `${testID}-tooltip`}\n />\n ) : null}\n </>\n );\n});\nRadarPlot.displayName = 'RadarPlot';\n"
12
+ "content": "import React, { memo, useCallback, useMemo, useRef, useState } from 'react';\nimport {\n Pressable,\n Text,\n View,\n type GestureResponderEvent,\n type LayoutChangeEvent,\n type StyleProp,\n type ViewStyle,\n} from 'react-native';\nimport { contrast } from '../theme/colors';\nimport { createStyles } from '../theme/createStyles';\nimport { useAllowFontScaling, useLabels, useTheme } from '../theme/UIProvider';\nimport { SegmentedControl } from '../molecules/SegmentedControl';\nimport { Bar, Dot, Polyline, Wedge } from './chart/marks';\nimport { AxisLabels, CartesianGrid, Legend, RadarGrid, Tooltip, type LegendItem, type TooltipRow } from './chart/frame';\nimport { seriesPalette } from './chart/palette';\nimport {\n angleOf,\n arcAt,\n arcsFor,\n clamp,\n exactTicks,\n extent,\n fanStrips,\n formatNumber,\n growExtent,\n linearScale,\n lttbIndices,\n niceScale,\n polar,\n radarAngles,\n sampleY,\n smoothPoints,\n stackRow,\n toNumber,\n type ChartRow,\n type Point,\n} from './chart/math';\n\nexport type { ChartRow } from './chart/math';\n\nexport type ChartType = 'bar' | 'line' | 'area' | 'pie' | 'donut' | 'radar';\n\nexport interface ChartSeries {\n /** Columna de `data` que lee esta serie. */\n key: string;\n /** Lo que dicen la leyenda y el tooltip. Por defecto, `key`. */\n label?: string;\n /** Pisa el color derivado del theme. */\n color?: string;\n}\n\nexport interface ChartFilterOption {\n value: string;\n label: string;\n}\n\n/**\n * Un filtro de la barra superior. Chart no filtra nada por su cuenta: muestra\n * el control y avisa. Quien tiene los datos decide qué significa \"últimos 7\n * días\", y eso no se puede adivinar desde acá.\n */\nexport interface ChartFilter {\n key: string;\n options: ChartFilterOption[];\n value: string;\n onChange: (value: string) => void;\n}\n\nexport interface ChartSelection {\n /**\n * Identidad de la fila, estable a través de un `window` o un diezmado.\n * Sale de `selectBy`; sin él es el índice, y entonces no sobrevive a que\n * los datos corran.\n */\n id: string;\n /**\n * Índice adentro de las filas **dibujadas**, no de `data`: con `window` o\n * con diezmado no son la misma lista. Para volver al dato está `row`.\n */\n index: number;\n /** La fila entera, sin tener que resolver el índice contra nada. */\n row: ChartRow;\n /** Valor de `xKey` en esa fila. */\n label: string;\n /** Serie tocada. En torta es la fila, que ahí es la categoría. */\n seriesKey: string;\n value: number;\n}\n\ninterface ChartBaseProps {\n data: ChartRow[];\n /**\n * Series a dibujar. En 'pie'/'donut' sólo se usa la primera: las categorías\n * de una torta son las filas, no las columnas.\n */\n series: ChartSeries[];\n /** Columna con la etiqueta de cada fila. @default 'x' */\n xKey?: string;\n /**\n * Identidad estable de una fila. Sin esto la selección se guarda por índice,\n * y en una ventana deslizante el índice corre: el punto resaltado pasa a\n * señalar otro dato sin que nadie lo toque. Con esto el resaltado sigue al\n * dato, y desaparece solo cuando el dato sale de la ventana.\n */\n selectBy?: (row: ChartRow, index: number) => string;\n /**\n * Dibuja sólo las últimas N filas. Es la ventana deslizante de un chart en\n * vivo: quien empuja los datos no tiene que recortarlos en cada tick.\n */\n window?: number;\n /** Alto del área de dibujo, sin contar filtros ni leyenda. @default 220 */\n height?: number;\n /**\n * 'toggle' convierte la leyenda en el filtro más barato que tiene un chart:\n * tocar una serie la apaga. @default 'auto' (toggle con 2+ series, none con una)\n */\n legend?: 'auto' | 'none' | 'static' | 'toggle';\n /** Series apagadas, controlado. Sin esto, Chart se las acuerda solo. */\n hiddenKeys?: string[];\n /** @default [] */\n defaultHiddenKeys?: string[];\n onHiddenKeysChange?: (keys: string[]) => void;\n /** Controles arriba del chart, uno por filtro. */\n filters?: ChartFilter[];\n /** Punto resaltado, controlado. `null` es \"ninguno\". */\n selected?: ChartSelection | null;\n onSelect?: (selection: ChartSelection | null) => void;\n /** Globo con los valores de la categoría tocada. @default true */\n tooltip?: boolean;\n /** @default formato compacto: 1.2k, 3.4M */\n formatValue?: (value: number) => string;\n /** @default true */\n animate?: boolean;\n /** ms de la animación de las marcas. @default tokens.duration.slow * 2 */\n duration?: number;\n /** Texto cuando no queda nada que dibujar. */\n emptyText?: string;\n /** Obligatorio: un chart no tiene texto que lo describa. */\n accessibilityLabel: string;\n style?: StyleProp<ViewStyle>;\n testID?: string;\n}\n\ninterface CartesianProps {\n /**\n * Fija el eje de valores. Por defecto se recalcula con cada dato, que es lo\n * correcto para un chart estático y lo peor para uno en vivo: llega un valor\n * más alto, la escala entera se reacomoda y la línea salta aunque el dato no\n * se haya movido.\n *\n * - `[min, max]` — exacto, sin redondear a números lindos.\n * - `'sticky'` — arranca del dato y crece cuando algo no entra, pero no se\n * vuelve a achicar.\n */\n domain?: [number, number] | 'sticky';\n /** Líneas de referencia del eje de valores. @default true */\n grid?: boolean;\n /** Ticks buscados en el eje de valores; el redondeo puede dar uno más o uno menos. @default 4 */\n ticks?: number;\n /** Etiquetas del eje horizontal. @default true */\n xAxis?: boolean;\n /** Etiquetas del eje vertical. @default true */\n yAxis?: boolean;\n}\n\ninterface BarChartProps extends CartesianProps {\n type: 'bar';\n /** 'horizontal' pone las categorías en el eje vertical. @default 'vertical' */\n orientation?: 'vertical' | 'horizontal';\n /** Apila las series en vez de ponerlas lado a lado. @default false */\n stacked?: boolean;\n /** Radio del extremo libre de cada barra. @default radius.xs */\n barRadius?: number;\n}\n\ninterface LineChartProps extends CartesianProps {\n type: 'line';\n /**\n * Cuántos puntos dibujar como mucho, eligiéndolos con LTTB. Por defecto sale\n * del ancho medido: más de un punto cada dos píxeles no se ve y sí se paga.\n * `false` los dibuja todos.\n */\n decimate?: number | false;\n /** Catmull-Rom en vez de tramos rectos. @default false */\n smooth?: boolean;\n /** @default 2 */\n thickness?: number;\n /** Punto en cada dato. @default true */\n dots?: boolean;\n}\n\ninterface AreaChartProps extends CartesianProps {\n type: 'area';\n /** Igual que en 'line'. */\n decimate?: number | false;\n smooth?: boolean;\n thickness?: number;\n /** @default false */\n dots?: boolean;\n /** @default false */\n stacked?: boolean;\n /** Opacidad del relleno bajo la línea. @default 0.22 */\n fillOpacity?: number;\n}\n\ninterface PieBaseProps {\n /** Agujero como fracción del radio, 0–0.9. @default 0 en 'pie', 0.6 en 'donut' */\n innerRadius?: number;\n /** Qué escribir sobre cada porción. @default 'percent' */\n sliceLabels?: 'none' | 'percent' | 'value';\n}\n\n// 'pie' y 'donut' van separados aunque compartan todo: con un solo miembro\n// cuyo `type` fuera `'pie' | 'donut'`, TypeScript no saca ese miembro de la\n// unión al descartarlo, y el resto del componente deja de estrecharse.\ninterface PieChartProps extends PieBaseProps {\n type: 'pie';\n}\n\ninterface DonutChartProps extends PieBaseProps {\n type: 'donut';\n}\n\ninterface RadarChartProps {\n type: 'radar';\n /**\n * Fija el alcance de los ejes. El radar mide desde el centro, así que el\n * mínimo es siempre 0 y de `[min, max]` sólo se usa `max`.\n */\n domain?: [number, number] | 'sticky';\n /** Anillos de la telaraña. @default 4 */\n levels?: number;\n /** Rellena el polígono además de dibujar su contorno. @default true */\n fill?: boolean;\n thickness?: number;\n /** @default true */\n dots?: boolean;\n}\n\nexport type ChartProps = ChartBaseProps &\n (BarChartProps | LineChartProps | AreaChartProps | PieChartProps | DonutChartProps | RadarChartProps);\n\nconst DEFAULT_HEIGHT = 220;\nconst DEFAULT_TICKS = 4;\n/** Piso del canal de las etiquetas de valor, a la izquierda. */\nconst VALUE_GUTTER = 38;\n/**\n * Ancho estimado de un caracter de etiqueta. React Native no mide texto sin\n * renderizarlo, y medir para decidir el layout haría aparecer el chart\n * corrido un frame; a `fontSize.xs` un dígito ronda 0.6em, y de más es mejor\n * que de menos — sobra aire, no se corta el número.\n */\nconst VALUE_CHAR = 6.5;\n/** Tope del canal: un eje ancho no puede comerse el plot. */\nconst VALUE_GUTTER_MAX = 0.3;\n/** Canal de las categorías cuando van a la izquierda (barras horizontales). */\nconst CATEGORY_GUTTER = 64;\n/** Canal de las etiquetas de abajo. */\nconst BOTTOM_GUTTER = 16;\n/** Fracción del ancho de banda que ocupan las barras; el resto es aire. */\nconst BAND_FILL = 0.7;\n/** Aire alrededor del radar para que entren las etiquetas de los ejes. */\nconst RADAR_INSET = 26;\nconst DIM_OPACITY = 0.3;\n\nconst useStyles = createStyles((theme) => ({\n root: { alignSelf: 'stretch' },\n filters: { gap: theme.tokens.spacing.sm, marginBottom: theme.tokens.spacing.md },\n plot: { position: 'relative', overflow: 'visible' },\n empty: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n alignItems: 'center',\n justifyContent: 'center',\n },\n emptyText: { fontSize: theme.tokens.fontSize.sm, color: theme.colors.textLight },\n sliceLabel: {\n position: 'absolute',\n fontSize: theme.tokens.fontSize.xs,\n fontWeight: theme.tokens.fontWeight.semibold,\n textAlign: 'center',\n },\n radarAxisLabel: {\n position: 'absolute',\n fontSize: theme.tokens.fontSize.xs,\n color: theme.colors.textLight,\n textAlign: 'center',\n },\n}));\n\n/** Estado controlado o propio, con el mismo contrato en los dos casos. */\nfunction useControlled<T>(controlled: T | undefined, fallback: T): [T, (next: T) => void, boolean] {\n const [own, setOwn] = useState(fallback);\n const isControlled = controlled !== undefined;\n return [isControlled ? (controlled as T) : own, setOwn, isControlled];\n}\n\n/**\n * Resuelve el dominio del eje de valores a partir de lo que pidió el\n * consumidor. En 'sticky' la referencia vive en un ref: lo que importa no es\n * el dominio de este render sino el más ancho que se haya visto, y guardarlo\n * en estado dispararía un render de más por cada tick que ensancha el eje.\n */\nfunction useDomain(measured: [number, number], domain: [number, number] | 'sticky' | undefined): [number, number] {\n const widest = useRef<[number, number] | null>(null);\n if (domain === 'sticky') {\n widest.current = growExtent(widest.current, measured);\n return widest.current;\n }\n widest.current = null;\n return domain ?? measured;\n}\n\n/**\n * Chart\n * Barras (verticales, horizontales, agrupadas, apiladas), línea, área, torta,\n * dona y radar en un solo componente, porque lo que cambia entre ellos es la\n * marca que se dibuja y no el resto: datos, escala, ejes, leyenda, tooltip,\n * selección y filtros son los mismos seis mecanismos en todos.\n *\n * Se dibuja con `View`: React Native no trae lienzo vectorial y la librería no\n * puede agregar uno. Las tres primitivas están en `chart/marks.tsx` y la\n * geometría entera, sin React, en `chart/math.ts`.\n *\n * Gestalt: destino común — al tocar una categoría, todo lo que no es ella baja\n * a {@link DIM_OPACITY} a la vez, así que lo resaltado se lee como un grupo y\n * no como una marca suelta. La leyenda usa similitud: el mismo color que la\n * serie, y por eso puede apagarla sin que haga falta explicar qué apaga.\n */\nexport function Chart(props: ChartProps) {\n const {\n data,\n series,\n xKey = 'x',\n selectBy,\n window: windowSize,\n height = DEFAULT_HEIGHT,\n legend = 'auto',\n hiddenKeys,\n defaultHiddenKeys,\n onHiddenKeysChange,\n filters,\n selected,\n onSelect,\n tooltip = true,\n formatValue = formatNumber,\n animate = true,\n duration,\n emptyText,\n accessibilityLabel,\n style,\n testID,\n } = props;\n\n const theme = useTheme();\n const styles = useStyles();\n const allowFontScaling = useAllowFontScaling();\n const uiLabels = useLabels();\n const [width, setWidth] = useState(0);\n\n const [hidden, setHidden, hiddenIsControlled] = useControlled(hiddenKeys, defaultHiddenKeys ?? []);\n const [pick, setPick, selectionIsControlled] = useControlled<ChartSelection | null>(selected, null);\n\n const isPie = props.type === 'pie' || props.type === 'donut';\n const polyline = props.type === 'line' || props.type === 'area';\n const decimate = polyline ? props.decimate : false;\n\n /**\n * Lo que se dibuja: la ventana de `data`, y de ahí los puntos que caben.\n * El diezmado corre sobre la fila entera, elegida con la primera serie\n * visible: las series comparten eje x, así que quedarse con índices\n * distintos por serie rompería la alineación, la capa de toque y el tooltip.\n */\n const rows = useMemo(() => {\n const windowed = windowSize && windowSize > 0 ? data.slice(-windowSize) : data;\n if (!polyline || decimate === false || width === 0) return windowed;\n // Un punto cada dos píxeles: más no se ve y sí se paga.\n const target = typeof decimate === 'number' ? decimate : Math.floor(width / 2);\n if (windowed.length <= target) return windowed;\n const lead = series.find((item) => !hidden.includes(item.key))?.key ?? series[0]?.key;\n const values = windowed.map((row) => (lead ? toNumber(row[lead]) : null));\n return lttbIndices(values, target).map((index) => windowed[index]!);\n }, [data, windowSize, polyline, decimate, width, series, hidden]);\n\n const labels = useMemo(() => rows.map((row) => String(row[xKey] ?? '')), [rows, xKey]);\n const ids = useMemo(\n () => rows.map((row, index) => (selectBy ? selectBy(row, index) : String(index))),\n [rows, selectBy]\n );\n\n /**\n * La selección se guarda por `id` y se resuelve contra las filas de ahora:\n * si el dato se corrió, el resaltado lo sigue; si salió de la ventana,\n * desaparece. Reusar el índice a ciegas señalaría el dato que quedó en ese\n * lugar, que no es el que nadie eligió.\n */\n const selection = useMemo(() => {\n if (!pick) return null;\n const index = ids.indexOf(pick.id);\n if (index === -1) return null;\n const row = rows[index]!;\n return {\n ...pick,\n index,\n row,\n label: labels[index] ?? pick.label,\n value: toNumber(row[pick.seriesKey]) ?? pick.value,\n };\n }, [pick, ids, rows, labels]);\n\n // En torta las categorías son las filas; en el resto, las columnas. De eso\n // dependen el color, la leyenda y qué apaga un toque en ella.\n const palette = seriesPalette(theme, Math.max(1, isPie ? rows.length : series.length));\n const entries: LegendItem[] = useMemo(\n () =>\n isPie\n ? labels.map((label, index) => ({ key: label, label, color: series[0]?.color ?? palette[index] ?? theme.colors.primary }))\n : series.map((item, index) => ({\n key: item.key,\n label: item.label ?? item.key,\n color: item.color ?? palette[index] ?? theme.colors.primary,\n })),\n [isPie, labels, series, palette, theme.colors.primary]\n );\n\n const visible = useMemo(() => entries.filter((entry) => !hidden.includes(entry.key)), [entries, hidden]);\n const duration_ = duration ?? theme.tokens.duration.slow * 2;\n\n const applyHidden = useCallback(\n (key: string) => {\n const next = hidden.includes(key) ? hidden.filter((k) => k !== key) : [...hidden, key];\n if (!hiddenIsControlled) setHidden(next);\n onHiddenKeysChange?.(next);\n },\n [hidden, hiddenIsControlled, setHidden, onHiddenKeysChange]\n );\n\n /**\n * Los plots avisan qué se tocó —fila y serie— y la selección entera se\n * arma acá: es el único lugar que conoce `selectBy`, las etiquetas y las\n * filas de verdad, y así los tres no repiten el armado.\n */\n const applySelection = useCallback(\n (hit: { index: number; seriesKey: string } | null) => {\n const row = hit ? rows[hit.index] : undefined;\n const next: ChartSelection | null =\n hit && row\n ? {\n id: ids[hit.index] ?? String(hit.index),\n index: hit.index,\n row,\n label: labels[hit.index] ?? '',\n seriesKey: hit.seriesKey,\n value: toNumber(row[hit.seriesKey]) ?? 0,\n }\n : null;\n // Tocar lo ya elegido lo suelta: sin eso no habría forma de volver al\n // chart entero sin tocar afuera, y \"afuera\" en una pantalla con scroll\n // no siempre existe.\n const same = next && selection && next.id === selection.id && next.seriesKey === selection.seriesKey;\n const value = same ? null : next;\n if (!selectionIsControlled) setPick(value);\n onSelect?.(value);\n },\n [rows, ids, labels, selection, selectionIsControlled, setPick, onSelect]\n );\n\n const onLayout = useCallback((event: LayoutChangeEvent) => setWidth(event.nativeEvent.layout.width), []);\n\n const showLegend = legend === 'toggle' || legend === 'static' || (legend === 'auto' && entries.length > 1);\n const toggleable = legend === 'toggle' || (legend === 'auto' && entries.length > 1);\n const empty = rows.length === 0 || visible.length === 0;\n\n const shared = {\n rows,\n labels,\n entries,\n visible,\n width,\n height,\n formatValue,\n animate,\n duration: duration_,\n selection,\n onPick: applySelection,\n tooltip,\n testID,\n };\n\n return (\n <View style={[styles.root, style]} testID={testID} accessible={false}>\n {filters && filters.length > 0 ? (\n <View style={styles.filters}>\n {filters.map((filter) => (\n <SegmentedControl\n key={filter.key}\n options={filter.options}\n value={filter.value}\n onChange={filter.onChange}\n testID={testID && `${testID}-filter-${filter.key}`}\n />\n ))}\n </View>\n ) : null}\n\n <View\n style={[styles.plot, { height }]}\n onLayout={onLayout}\n accessible\n accessibilityRole=\"image\"\n accessibilityLabel={accessibilityLabel}\n testID={testID && `${testID}-plot`}\n >\n {width === 0 || empty ? null : props.type === 'pie' || props.type === 'donut' ? (\n <PiePlot\n {...shared}\n donut={props.type === 'donut'}\n innerRadius={props.innerRadius}\n sliceLabels={props.sliceLabels ?? 'percent'}\n valueKey={series[0]?.key ?? ''}\n />\n ) : props.type === 'radar' ? (\n <RadarPlot\n {...shared}\n domain={props.domain}\n levels={props.levels ?? 4}\n fill={props.fill ?? true}\n thickness={props.thickness ?? 2}\n dots={props.dots ?? true}\n />\n ) : (\n <CartesianPlot\n {...shared}\n type={props.type}\n orientation={props.type === 'bar' ? (props.orientation ?? 'vertical') : 'vertical'}\n stacked={props.type === 'bar' || props.type === 'area' ? (props.stacked ?? false) : false}\n barRadius={props.type === 'bar' ? (props.barRadius ?? theme.tokens.radius.xs) : 0}\n smooth={props.type !== 'bar' ? (props.smooth ?? false) : false}\n thickness={props.type !== 'bar' ? (props.thickness ?? 2) : 0}\n dots={props.type === 'line' ? (props.dots ?? true) : props.type === 'area' ? (props.dots ?? false) : false}\n fillOpacity={props.type === 'area' ? (props.fillOpacity ?? 0.22) : 0}\n domain={props.domain}\n grid={props.grid ?? true}\n ticks={props.ticks ?? DEFAULT_TICKS}\n xAxis={props.xAxis ?? true}\n yAxis={props.yAxis ?? true}\n />\n )}\n\n {empty ? (\n <View style={styles.empty} testID={testID && `${testID}-empty`}>\n <Text allowFontScaling={allowFontScaling} style={styles.emptyText}>\n {emptyText ?? uiLabels.noResultsTitle}\n </Text>\n </View>\n ) : null}\n </View>\n\n {showLegend ? (\n <Legend items={entries} hidden={hidden} onToggle={toggleable ? applyHidden : undefined} testID={testID && `${testID}-legend`} />\n ) : null}\n </View>\n );\n}\n\nChart.displayName = 'Chart';\n\n// ── lo que comparten los tres plots ────────────────────────────────────────\n\ninterface PlotProps {\n rows: ChartRow[];\n labels: string[];\n /** Todas las categorías, con su color: el color no cambia al apagar una. */\n entries: LegendItem[];\n /** Las que quedaron prendidas. */\n visible: LegendItem[];\n width: number;\n height: number;\n formatValue: (value: number) => string;\n animate: boolean;\n duration: number;\n selection: ChartSelection | null;\n /** Avisa qué se tocó; Chart arma la selección. `null` la suelta. */\n onPick: (hit: { index: number; seriesKey: string } | null) => void;\n tooltip: boolean;\n testID?: string;\n}\n\n/** Filas del tooltip para una categoría del eje x. */\nfunction tooltipRowsAt(rows: ChartRow[], index: number, visible: LegendItem[], format: (value: number) => string): TooltipRow[] {\n const row = rows[index];\n if (!row) return [];\n return visible\n .map((entry) => {\n const value = toNumber(row[entry.key]);\n return value === null ? null : { key: entry.key, label: entry.label, value: format(value), color: entry.color };\n })\n .filter((item): item is TooltipRow => item !== null);\n}\n\n// ── barras, línea y área ───────────────────────────────────────────────────\n\ninterface CartesianPlotProps extends PlotProps {\n type: 'bar' | 'line' | 'area';\n orientation: 'vertical' | 'horizontal';\n stacked: boolean;\n barRadius: number;\n smooth: boolean;\n thickness: number;\n dots: boolean;\n fillOpacity: number;\n domain?: [number, number] | 'sticky';\n grid: boolean;\n ticks: number;\n xAxis: boolean;\n yAxis: boolean;\n}\n\n/** Ancho de una tira del relleno de área, en píxeles. Más fino = más vistas. */\nconst STRIP_WIDTH = 4;\nconst MAX_STRIPS = 140;\n/** Aire entre dos barras del mismo grupo. */\nconst GROUP_GAP = 2;\n\nconst CartesianPlot = memo((props: CartesianPlotProps) => {\n const {\n rows,\n labels,\n visible,\n width,\n height,\n formatValue,\n animate,\n duration,\n selection,\n onPick,\n tooltip,\n testID,\n type,\n orientation,\n stacked,\n barRadius,\n smooth,\n thickness,\n dots,\n fillOpacity,\n domain,\n grid,\n ticks: tickCount,\n xAxis,\n yAxis,\n } = props;\n\n const theme = useTheme();\n const horizontal = type === 'bar' && orientation === 'horizontal';\n const keys = useMemo(() => visible.map((entry) => entry.key), [visible]);\n\n const bottomGutter = xAxis ? BOTTOM_GUTTER : 0;\n\n // La línea puede no tocar el cero (una temperatura, un ranking); una barra\n // sí tiene que hacerlo, porque su largo es el que dice el valor.\n const measured = useMemo(\n () => extent(rows, keys, { stacked, includeZero: type !== 'line' }),\n [rows, keys, stacked, type]\n );\n const [low, high] = useDomain(measured, domain);\n\n // Un dominio a mano se respeta tal cual; uno medido (o 'sticky') se\n // redondea, que es lo que hace legible el eje.\n const nice = useMemo(\n () => (Array.isArray(domain) ? exactTicks(low, high, tickCount) : niceScale(low, high, tickCount)),\n [domain, low, high, tickCount]\n );\n\n /**\n * El canal sale de la etiqueta más larga, no de una constante: con un\n * `formatValue` propio (\"$3000\", \"1.250 ms\") un ancho fijo corta el número\n * y el eje pasa a decir \"$30…\". Los ticks no dependen del ancho del plot,\n * así que se pueden medir antes de repartirlo.\n */\n const leftGutter = useMemo(() => {\n if (!yAxis) return 0;\n if (horizontal) return CATEGORY_GUTTER;\n const longest = nice.values.reduce((widest, value) => Math.max(widest, formatValue(value).length), 0);\n const wanted = Math.ceil(longest * VALUE_CHAR) + theme.tokens.spacing.sm;\n return Math.max(VALUE_GUTTER, Math.min(wanted, Math.floor(width * VALUE_GUTTER_MAX)));\n }, [yAxis, horizontal, nice, formatValue, width, theme.tokens.spacing.sm]);\n\n const plotW = Math.max(1, width - leftGutter);\n const plotH = Math.max(1, height - bottomGutter);\n\n const toPixel = useMemo(\n () =>\n horizontal\n ? linearScale([nice.min, nice.max], [0, plotW])\n : linearScale([nice.min, nice.max], [plotH, 0]),\n [horizontal, nice, plotW, plotH]\n );\n const scale = useMemo(() => ({ nice, toPixel }), [nice, toPixel]);\n\n const band = (horizontal ? plotH : plotW) / Math.max(1, rows.length);\n const centerOf = useCallback((index: number) => (index + 0.5) * band, [band]);\n const baseline = scale.toPixel(clamp(0, scale.nice.min, scale.nice.max));\n\n const stacks = useMemo(() => (stacked ? rows.map((row) => stackRow(row, keys)) : null), [stacked, rows, keys]);\n\n /** Puntos de una serie: `to` es el valor, `from` el piso desde donde se rellena. */\n const pointsFor = useCallback(\n (key: string, edge: 'to' | 'from'): Point[] => {\n const out: Point[] = [];\n rows.forEach((row, index) => {\n if (stacks) {\n const stackBand = stacks[index]!.find((item) => item.key === key);\n if (!stackBand) return;\n out.push({ x: centerOf(index), y: scale.toPixel(stackBand[edge]) });\n return;\n }\n const value = toNumber(row[key]);\n if (value === null) return;\n out.push({ x: centerOf(index), y: edge === 'to' ? scale.toPixel(value) : baseline });\n });\n return out;\n },\n [rows, stacks, centerOf, scale, baseline]\n );\n\n const pickAt = useCallback(\n (index: number, event: GestureResponderEvent) => {\n // Sobre qué serie cayó el dedo: la que tiene su marca más cerca del\n // toque en el eje de valores. Con una sola serie es siempre esa.\n const touch = (horizontal ? event?.nativeEvent?.locationX : event?.nativeEvent?.locationY) ?? 0;\n let bestKey = keys[0] ?? '';\n let bestDistance = Infinity;\n for (const key of keys) {\n const value = toNumber(rows[index]?.[key]);\n if (value === null) continue;\n const distance = Math.abs(scale.toPixel(value) - touch);\n if (distance < bestDistance) {\n bestDistance = distance;\n bestKey = key;\n }\n }\n onPick({ index, seriesKey: bestKey });\n },\n [horizontal, keys, rows, scale, onPick]\n );\n\n const gridLines = scale.nice.values.map((value) => scale.toPixel(value));\n const zeroIndex = scale.nice.values.findIndex((value) => value === 0);\n\n const rowsForTooltip = selection ? tooltipRowsAt(rows, selection.index, visible, formatValue) : [];\n const anchor: Point | null = !selection\n ? null\n : horizontal\n ? {\n x: leftGutter + Math.max(...visible.map((entry) => scale.toPixel(toNumber(rows[selection.index]?.[entry.key]) ?? 0))),\n y: centerOf(selection.index),\n }\n : {\n x: leftGutter + centerOf(selection.index),\n y: Math.min(...visible.map((entry) => scale.toPixel(toNumber(rows[selection.index]?.[entry.key]) ?? 0))),\n };\n\n return (\n <>\n {/* Marco: grilla y etiquetas, por debajo de las marcas. */}\n <View style={{ position: 'absolute', left: leftGutter, top: 0, width: plotW, height: plotH }}>\n {grid ? (\n <CartesianGrid\n width={plotW}\n height={plotH}\n lines={gridLines}\n orientation={horizontal ? 'vertical' : 'horizontal'}\n zeroIndex={zeroIndex === -1 ? undefined : zeroIndex}\n testID={testID && `${testID}-grid`}\n />\n ) : null}\n\n {type === 'bar'\n ? rows.map((row, rowIndex) => {\n const fill = band * BAND_FILL;\n const slot = fill / (stacked ? 1 : Math.max(1, keys.length));\n const bands = stacks\n ? stacks[rowIndex]!.filter((item) => keys.includes(item.key))\n : keys\n .map((key) => {\n const value = toNumber(row[key]);\n return value === null ? null : { key, from: 0, to: value, value };\n })\n .filter((item): item is { key: string; from: number; to: number; value: number } => item !== null);\n\n return bands.map((item) => {\n const seriesIndex = keys.indexOf(item.key);\n const color = visible[seriesIndex]?.color ?? theme.colors.primary;\n const start = centerOf(rowIndex) - fill / 2 + (stacked ? 0 : seriesIndex * slot);\n const thicknessOfBar = Math.max(1, slot - (stacked || keys.length === 1 ? 0 : GROUP_GAP));\n const near = scale.toPixel(item.from);\n const far = scale.toPixel(item.to);\n const size = Math.abs(far - near);\n const positive = item.value >= 0;\n const dim = !!selection && selection.index !== rowIndex;\n\n return horizontal ? (\n <Bar\n key={`${rowIndex}-${item.key}`}\n x={positive ? near : plotW - near}\n y={start}\n width={size}\n height={thicknessOfBar}\n from={positive ? 'left' : 'right'}\n color={color}\n radius={barRadius}\n dim={dim}\n animate={animate}\n duration={duration}\n testID={testID && `${testID}-bar-${rowIndex}-${item.key}`}\n />\n ) : (\n <Bar\n key={`${rowIndex}-${item.key}`}\n x={start}\n y={positive ? plotH - near : near}\n width={thicknessOfBar}\n height={size}\n from={positive ? 'bottom' : 'top'}\n color={color}\n radius={barRadius}\n dim={dim}\n animate={animate}\n duration={duration}\n testID={testID && `${testID}-bar-${rowIndex}-${item.key}`}\n />\n );\n });\n })\n : visible.map((entry) => {\n const raw = pointsFor(entry.key, 'to');\n const line = smooth ? smoothPoints(raw) : raw;\n const base = smooth ? smoothPoints(pointsFor(entry.key, 'from')) : pointsFor(entry.key, 'from');\n const stripCount = Math.min(MAX_STRIPS, Math.max(8, Math.round(plotW / STRIP_WIDTH)));\n const stripWidth = plotW / stripCount;\n\n return (\n <View key={entry.key} style={{ position: 'absolute', left: 0, top: 0, width: plotW, height: plotH }}>\n {/* Área: sin `path` no hay relleno bajo una curva, así que se\n corta en tiras verticales y cada una pregunta su alto a la\n polilínea. A 4px por tira el borde ya se lee como continuo. */}\n {type === 'area' ? (\n // La opacidad va en el grupo, no en cada tira: el medio\n // píxel de solape que tapa la costura del antialias se\n // compone dos veces y deja una raya vertical cada cuatro\n // píxeles. Atenuado el grupo entero, se pinta una sola vez.\n <View\n pointerEvents=\"none\"\n style={{ position: 'absolute', left: 0, top: 0, width: plotW, height: plotH, opacity: fillOpacity }}\n >\n {Array.from({ length: stripCount }, (_, strip) => {\n const x = (strip + 0.5) * stripWidth;\n const top = sampleY(line, x);\n const bottom = sampleY(base, x);\n if (top === null || bottom === null) return null;\n return (\n <View\n key={strip}\n style={{\n position: 'absolute',\n left: strip * stripWidth,\n width: stripWidth + 0.5,\n top: Math.min(top, bottom),\n height: Math.abs(bottom - top),\n backgroundColor: entry.color,\n }}\n />\n );\n })}\n </View>\n ) : null}\n\n <Polyline points={line} color={entry.color} thickness={thickness} testID={testID && `${testID}-line-${entry.key}`} />\n\n {dots\n ? raw.map((point, index) => (\n <Dot\n key={index}\n point={point}\n color={entry.color}\n ringColor={theme.colors.surface}\n size={selection?.index === index ? 8 : 6}\n testID={testID && `${testID}-dot-${entry.key}-${index}`}\n />\n ))\n : null}\n </View>\n );\n })}\n\n {/* Capa de toque: una banda entera por categoría. Tocar una línea de\n 2px es imposible; tocar su columna, no. */}\n {rows.map((row, index) => (\n <Pressable\n key={index}\n onPress={(event) => pickAt(index, event)}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: selection?.index === index }}\n accessibilityLabel={[labels[index], ...tooltipRowsAt(rows, index, visible, formatValue).map((item) => `${item.label} ${item.value}`)].join(', ')}\n style={\n horizontal\n ? { position: 'absolute', left: 0, width: plotW, top: index * band, height: band }\n : { position: 'absolute', top: 0, height: plotH, left: index * band, width: band }\n }\n testID={testID && `${testID}-band-${index}`}\n />\n ))}\n </View>\n\n {yAxis ? (\n <View style={{ position: 'absolute', left: 0, top: 0, width: leftGutter, height: plotH }}>\n <AxisLabels\n axis=\"y\"\n gutter={Math.max(0, leftGutter - 6)}\n span={plotH}\n labels={\n horizontal\n ? labels.map((text, index) => ({ text, position: centerOf(index) }))\n : scale.nice.values.map((value) => ({ text: formatValue(value), position: scale.toPixel(value) }))\n }\n testID={testID && `${testID}-y-axis`}\n />\n </View>\n ) : null}\n\n {xAxis ? (\n <View style={{ position: 'absolute', left: leftGutter, top: plotH + 2, width: plotW, height: bottomGutter }}>\n <AxisLabels\n axis=\"x\"\n gutter={0}\n span={plotW}\n labels={\n horizontal\n ? scale.nice.values.map((value) => ({ text: formatValue(value), position: scale.toPixel(value) }))\n : labels.map((text, index) => ({ text, position: centerOf(index) }))\n }\n testID={testID && `${testID}-x-axis`}\n />\n </View>\n ) : null}\n\n {tooltip && selection && anchor && rowsForTooltip.length > 0 ? (\n <Tooltip\n title={selection.label}\n rows={rowsForTooltip}\n anchor={anchor}\n containerWidth={width}\n testID={testID && `${testID}-tooltip`}\n />\n ) : null}\n </>\n );\n});\nCartesianPlot.displayName = 'CartesianPlot';\n\n// ── torta y dona ───────────────────────────────────────────────────────────\n\ninterface PiePlotProps extends PlotProps {\n donut: boolean;\n innerRadius?: number;\n sliceLabels: 'none' | 'percent' | 'value';\n valueKey: string;\n}\n\nconst DONUT_RADIUS = 0.6;\n/** Cuánto sale la porción elegida, en píxeles. */\nconst EXPLODE = 8;\n/** Dónde cae la etiqueta, como fracción entre el agujero y el borde. */\nconst LABEL_AT = 0.62;\n\n/** Blanco o negro, el que se lea encima del color. Un color raro no rompe: cae en `text`. */\nfunction inkOn(background: string, theme: { colors: { white: string; black: string; text: string } }): string {\n try {\n return contrast(background, theme.colors.white) >= contrast(background, theme.colors.black)\n ? theme.colors.white\n : theme.colors.black;\n } catch {\n return theme.colors.text;\n }\n}\n\nconst PiePlot = memo((props: PiePlotProps) => {\n const { rows, labels, entries, visible, width, height, formatValue, selection, onPick, tooltip, testID, donut, innerRadius, sliceLabels, valueKey } = props;\n const theme = useTheme();\n const styles = useStyles();\n const allowFontScaling = useAllowFontScaling();\n\n const center: Point = { x: width / 2, y: height / 2 };\n const radius = Math.max(0, Math.min(width, height) / 2 - 2);\n const hole = clamp(innerRadius ?? (donut ? DONUT_RADIUS : 0), 0, 0.9) * radius;\n\n const arcs = useMemo(() => {\n // Una categoría apagada vale 0: sale de la torta y el resto se reparte el\n // 100%, que es lo que espera quien la apagó desde la leyenda.\n const values = rows.map((row, index) =>\n visible.some((entry) => entry.key === labels[index]) ? (toNumber(row[valueKey]) ?? 0) : 0\n );\n return arcsFor(values);\n }, [rows, labels, visible, valueKey]);\n\n const pickAt = useCallback(\n (event: GestureResponderEvent) => {\n const point = { x: event?.nativeEvent?.locationX ?? 0, y: event?.nativeEvent?.locationY ?? 0 };\n const distance = Math.hypot(point.x - center.x, point.y - center.y);\n // El agujero de una dona no es parte de ninguna porción, y afuera del\n // círculo tampoco: los dos sueltan la selección.\n if (distance > radius || distance < hole) return onPick(null);\n const index = arcAt(arcs, angleOf(center, point));\n if (index === -1) return onPick(null);\n onPick({ index, seriesKey: labels[index] ?? '' });\n },\n [center.x, center.y, radius, hole, arcs, labels, onPick]\n );\n\n const chosen = selection ? arcs.find((arc) => arc.index === selection.index) : undefined;\n\n return (\n <>\n {arcs.map((arc) => {\n const dim = !!selection && selection.index !== arc.index;\n return (\n <Wedge\n key={arc.index}\n size={radius * 2}\n center={center}\n start={arc.start}\n sweep={arc.sweep}\n color={entries[arc.index]?.color ?? theme.colors.primary}\n opacity={dim ? DIM_OPACITY : 1}\n explode={selection?.index === arc.index ? EXPLODE : 0}\n testID={testID && `${testID}-slice-${arc.index}`}\n />\n );\n })}\n\n {hole > 0 ? (\n <View\n pointerEvents=\"none\"\n style={{\n position: 'absolute',\n left: center.x - hole,\n top: center.y - hole,\n width: hole * 2,\n height: hole * 2,\n borderRadius: hole,\n backgroundColor: theme.colors.surface,\n }}\n />\n ) : null}\n\n {sliceLabels === 'none'\n ? null\n : arcs.map((arc) => {\n // Una porción muy fina no tiene dónde escribir: la etiqueta se\n // saldría encima de las vecinas y no se leería ninguna.\n if (arc.sweep < 18) return null;\n const at = polar(center, hole + (radius - hole) * LABEL_AT, arc.start + arc.sweep / 2);\n const color = entries[arc.index]?.color ?? theme.colors.primary;\n return (\n <Text\n key={arc.index}\n allowFontScaling={allowFontScaling}\n style={[styles.sliceLabel, { left: at.x - 28, top: at.y - 8, width: 56, color: inkOn(color, theme) }]}\n testID={testID && `${testID}-slice-label-${arc.index}`}\n >\n {sliceLabels === 'percent' ? `${Math.round(arc.ratio * 100)}%` : formatValue(arc.value)}\n </Text>\n );\n })}\n\n <Pressable\n onPress={pickAt}\n accessibilityRole=\"adjustable\"\n accessibilityLabel={arcs.map((arc) => `${labels[arc.index]} ${Math.round(arc.ratio * 100)}%`).join(', ')}\n style={{ position: 'absolute', left: 0, top: 0, width, height }}\n testID={testID && `${testID}-hit`}\n />\n\n {tooltip && selection && chosen ? (\n <Tooltip\n title={selection.label}\n rows={[\n {\n key: selection.seriesKey,\n label: `${Math.round(chosen.ratio * 100)}%`,\n value: formatValue(selection.value),\n color: entries[selection.index]?.color ?? theme.colors.primary,\n },\n ]}\n anchor={polar(center, radius * 0.9, chosen.start + chosen.sweep / 2)}\n containerWidth={width}\n testID={testID && `${testID}-tooltip`}\n />\n ) : null}\n </>\n );\n});\nPiePlot.displayName = 'PiePlot';\n\n// ── radar ──────────────────────────────────────────────────────────────────\n\ninterface RadarPlotProps extends PlotProps {\n domain?: [number, number] | 'sticky';\n levels: number;\n fill: boolean;\n thickness: number;\n dots: boolean;\n}\n\n/** Tiras por lado del polígono cuando se rellena. Más = borde más limpio, más vistas. */\nconst RADAR_STEPS = 5;\nconst RADAR_FILL_OPACITY = 0.18;\nconst RADAR_LABEL_WIDTH = 56;\n\nconst RadarPlot = memo((props: RadarPlotProps) => {\n const { rows, labels, visible, width, height, formatValue, selection, onPick, tooltip, testID, domain, levels, fill, thickness, dots } = props;\n const theme = useTheme();\n const styles = useStyles();\n const allowFontScaling = useAllowFontScaling();\n\n const center: Point = { x: width / 2, y: height / 2 };\n const radius = Math.max(0, Math.min(width, height) / 2 - RADAR_INSET);\n const angles = useMemo(() => radarAngles(rows.length), [rows.length]);\n const keys = useMemo(() => visible.map((entry) => entry.key), [visible]);\n\n // El radar mide desde el centro, y el centro es 0: un mínimo distinto de\n // cero haría que dos valores parecidos se vean lejísimos.\n const measured = useMemo(() => [0, extent(rows, keys, { includeZero: true })[1]] as [number, number], [rows, keys]);\n const [, top] = useDomain(measured, domain);\n\n const scale = useMemo(() => {\n const nice = Array.isArray(domain) ? exactTicks(0, top, levels) : niceScale(0, top, levels);\n return { nice, toRadius: linearScale([0, nice.max], [0, radius]) };\n }, [domain, top, levels, radius]);\n\n const pointsOf = useCallback(\n (key: string): Point[] =>\n rows.map((row, index) => polar(center, scale.toRadius(Math.max(0, toNumber(row[key]) ?? 0)), angles[index] ?? 0)),\n [rows, center, scale, angles]\n );\n\n const pickAt = useCallback(\n (event: GestureResponderEvent) => {\n if (rows.length === 0) return;\n const angle = angleOf(center, { x: event?.nativeEvent?.locationX ?? 0, y: event?.nativeEvent?.locationY ?? 0 });\n const index = Math.round(angle / (360 / rows.length)) % rows.length;\n const key = keys[0] ?? '';\n onPick({ index, seriesKey: key });\n },\n [rows, center, keys, onPick]\n );\n\n return (\n <>\n <RadarGrid center={center} radius={radius} angles={angles} levels={levels} testID={testID && `${testID}-grid`} />\n\n {visible.map((entry) => {\n const points = pointsOf(entry.key);\n return (\n <View key={entry.key} style={{ position: 'absolute', left: 0, top: 0, width, height }}>\n {/* Relleno: el mismo sector que dibuja una torta, uno por tira del\n polígono, con el radio que le toca a esa tira. */}\n {fill ? (\n // La opacidad va en el grupo, no en cada tira. Por tira, el\n // solape de 0.4° que tapa la costura del antialias se compone\n // dos veces y deja un radio más oscuro por corte: el relleno\n // termina pareciendo una telaraña. Aplicada al grupo, las tiras\n // se pintan opacas entre sí y el conjunto se atenúa una vez.\n <View\n pointerEvents=\"none\"\n style={{ position: 'absolute', left: 0, top: 0, width, height, opacity: RADAR_FILL_OPACITY }}\n testID={testID && `${testID}-fill-${entry.key}`}\n >\n {fanStrips(center, points, RADAR_STEPS).map((strip, index) => (\n <Wedge\n key={index}\n size={strip.radius * 2}\n center={center}\n start={strip.start}\n sweep={strip.sweep}\n color={entry.color}\n />\n ))}\n </View>\n ) : null}\n <Polyline points={points} color={entry.color} thickness={thickness} closed testID={testID && `${testID}-outline-${entry.key}`} />\n {dots\n ? points.map((point, index) => (\n <Dot\n key={index}\n point={point}\n color={entry.color}\n ringColor={theme.colors.surface}\n size={selection?.index === index ? 8 : 6}\n />\n ))\n : null}\n </View>\n );\n })}\n\n {labels.map((label, index) => {\n const at = polar(center, radius + RADAR_INSET / 2, angles[index] ?? 0);\n return (\n <Text\n key={`${label}-${index}`}\n numberOfLines={1}\n allowFontScaling={allowFontScaling}\n style={[\n styles.radarAxisLabel,\n { left: at.x - RADAR_LABEL_WIDTH / 2, top: at.y - 7, width: RADAR_LABEL_WIDTH },\n selection?.index === index && { color: theme.colors.text },\n ]}\n testID={testID && `${testID}-axis-${index}`}\n >\n {label}\n </Text>\n );\n })}\n\n <Pressable\n onPress={pickAt}\n accessibilityRole=\"adjustable\"\n accessibilityLabel={labels.join(', ')}\n style={{ position: 'absolute', left: 0, top: 0, width, height }}\n testID={testID && `${testID}-hit`}\n />\n\n {tooltip && selection ? (\n <Tooltip\n title={selection.label}\n rows={tooltipRowsAt(rows, selection.index, visible, formatValue)}\n anchor={polar(center, radius, angles[selection.index] ?? 0)}\n containerWidth={width}\n testID={testID && `${testID}-tooltip`}\n />\n ) : null}\n </>\n );\n});\nRadarPlot.displayName = 'RadarPlot';\n"
13
13
  },
14
14
  {
15
15
  "path": "organisms/chart/marks.tsx",
@@ -631,7 +631,7 @@
631
631
  "core",
632
632
  "segmented-control"
633
633
  ],
634
- "bytes": 90641
634
+ "bytes": 91806
635
635
  }
636
636
  ]
637
637
  }
@@ -244,8 +244,17 @@ export type ChartProps = ChartBaseProps &
244
244
 
245
245
  const DEFAULT_HEIGHT = 220;
246
246
  const DEFAULT_TICKS = 4;
247
- /** Canal de las etiquetas de valor, a la izquierda. */
247
+ /** Piso del canal de las etiquetas de valor, a la izquierda. */
248
248
  const VALUE_GUTTER = 38;
249
+ /**
250
+ * Ancho estimado de un caracter de etiqueta. React Native no mide texto sin
251
+ * renderizarlo, y medir para decidir el layout haría aparecer el chart
252
+ * corrido un frame; a `fontSize.xs` un dígito ronda 0.6em, y de más es mejor
253
+ * que de menos — sobra aire, no se corta el número.
254
+ */
255
+ const VALUE_CHAR = 6.5;
256
+ /** Tope del canal: un eje ancho no puede comerse el plot. */
257
+ const VALUE_GUTTER_MAX = 0.3;
249
258
  /** Canal de las categorías cuando van a la izquierda (barras horizontales). */
250
259
  const CATEGORY_GUTTER = 64;
251
260
  /** Canal de las etiquetas de abajo. */
@@ -651,10 +660,7 @@ const CartesianPlot = memo((props: CartesianPlotProps) => {
651
660
  const horizontal = type === 'bar' && orientation === 'horizontal';
652
661
  const keys = useMemo(() => visible.map((entry) => entry.key), [visible]);
653
662
 
654
- const leftGutter = yAxis ? (horizontal ? CATEGORY_GUTTER : VALUE_GUTTER) : 0;
655
663
  const bottomGutter = xAxis ? BOTTOM_GUTTER : 0;
656
- const plotW = Math.max(1, width - leftGutter);
657
- const plotH = Math.max(1, height - bottomGutter);
658
664
 
659
665
  // La línea puede no tocar el cero (una temperatura, un ranking); una barra
660
666
  // sí tiene que hacerlo, porque su largo es el que dice el valor.
@@ -664,15 +670,38 @@ const CartesianPlot = memo((props: CartesianPlotProps) => {
664
670
  );
665
671
  const [low, high] = useDomain(measured, domain);
666
672
 
667
- const scale = useMemo(() => {
668
- // Un dominio a mano se respeta tal cual; uno medido (o 'sticky') se
669
- // redondea, que es lo que hace legible el eje.
670
- const nice = Array.isArray(domain) ? exactTicks(low, high, tickCount) : niceScale(low, high, tickCount);
671
- const toPixel = horizontal
672
- ? linearScale([nice.min, nice.max], [0, plotW])
673
- : linearScale([nice.min, nice.max], [plotH, 0]);
674
- return { nice, toPixel };
675
- }, [domain, low, high, tickCount, horizontal, plotW, plotH]);
673
+ // Un dominio a mano se respeta tal cual; uno medido (o 'sticky') se
674
+ // redondea, que es lo que hace legible el eje.
675
+ const nice = useMemo(
676
+ () => (Array.isArray(domain) ? exactTicks(low, high, tickCount) : niceScale(low, high, tickCount)),
677
+ [domain, low, high, tickCount]
678
+ );
679
+
680
+ /**
681
+ * El canal sale de la etiqueta más larga, no de una constante: con un
682
+ * `formatValue` propio ("$3000", "1.250 ms") un ancho fijo corta el número
683
+ * y el eje pasa a decir "$30…". Los ticks no dependen del ancho del plot,
684
+ * así que se pueden medir antes de repartirlo.
685
+ */
686
+ const leftGutter = useMemo(() => {
687
+ if (!yAxis) return 0;
688
+ if (horizontal) return CATEGORY_GUTTER;
689
+ const longest = nice.values.reduce((widest, value) => Math.max(widest, formatValue(value).length), 0);
690
+ const wanted = Math.ceil(longest * VALUE_CHAR) + theme.tokens.spacing.sm;
691
+ return Math.max(VALUE_GUTTER, Math.min(wanted, Math.floor(width * VALUE_GUTTER_MAX)));
692
+ }, [yAxis, horizontal, nice, formatValue, width, theme.tokens.spacing.sm]);
693
+
694
+ const plotW = Math.max(1, width - leftGutter);
695
+ const plotH = Math.max(1, height - bottomGutter);
696
+
697
+ const toPixel = useMemo(
698
+ () =>
699
+ horizontal
700
+ ? linearScale([nice.min, nice.max], [0, plotW])
701
+ : linearScale([nice.min, nice.max], [plotH, 0]),
702
+ [horizontal, nice, plotW, plotH]
703
+ );
704
+ const scale = useMemo(() => ({ nice, toPixel }), [nice, toPixel]);
676
705
 
677
706
  const band = (horizontal ? plotH : plotW) / Math.max(1, rows.length);
678
707
  const centerOf = useCallback((index: number) => (index + 0.5) * band, [band]);