orn-ui 0.2.8 → 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 +6 -2
- package/README.md +6 -6
- package/lib/commonjs/atoms/ShinyText.js +188 -0
- package/lib/commonjs/atoms/ShinyText.js.map +1 -0
- package/lib/commonjs/atoms/index.js +7 -0
- package/lib/commonjs/atoms/index.js.map +1 -1
- package/lib/commonjs/organisms/Chart.js +968 -0
- package/lib/commonjs/organisms/Chart.js.map +1 -0
- package/lib/commonjs/organisms/OptionWheel.js +408 -0
- package/lib/commonjs/organisms/OptionWheel.js.map +1 -0
- package/lib/commonjs/organisms/Timeline.js +420 -0
- package/lib/commonjs/organisms/Timeline.js.map +1 -0
- package/lib/commonjs/organisms/chart/frame.js +373 -0
- package/lib/commonjs/organisms/chart/frame.js.map +1 -0
- package/lib/commonjs/organisms/chart/marks.js +316 -0
- package/lib/commonjs/organisms/chart/marks.js.map +1 -0
- package/lib/commonjs/organisms/chart/math.js +468 -0
- package/lib/commonjs/organisms/chart/math.js.map +1 -0
- package/lib/commonjs/organisms/chart/palette.js +120 -0
- package/lib/commonjs/organisms/chart/palette.js.map +1 -0
- package/lib/commonjs/organisms/index.js +21 -0
- package/lib/commonjs/organisms/index.js.map +1 -1
- package/lib/module/atoms/ShinyText.js +183 -0
- package/lib/module/atoms/ShinyText.js.map +1 -0
- package/lib/module/atoms/index.js +1 -0
- package/lib/module/atoms/index.js.map +1 -1
- package/lib/module/organisms/Chart.js +963 -0
- package/lib/module/organisms/Chart.js.map +1 -0
- package/lib/module/organisms/OptionWheel.js +403 -0
- package/lib/module/organisms/OptionWheel.js.map +1 -0
- package/lib/module/organisms/Timeline.js +415 -0
- package/lib/module/organisms/Timeline.js.map +1 -0
- package/lib/module/organisms/chart/frame.js +367 -0
- package/lib/module/organisms/chart/frame.js.map +1 -0
- package/lib/module/organisms/chart/marks.js +310 -0
- package/lib/module/organisms/chart/marks.js.map +1 -0
- package/lib/module/organisms/chart/math.js +445 -0
- package/lib/module/organisms/chart/math.js.map +1 -0
- package/lib/module/organisms/chart/palette.js +114 -0
- package/lib/module/organisms/chart/palette.js.map +1 -0
- package/lib/module/organisms/index.js +3 -0
- package/lib/module/organisms/index.js.map +1 -1
- package/lib/typescript/atoms/ShinyText.d.ts +48 -0
- package/lib/typescript/atoms/ShinyText.d.ts.map +1 -0
- package/lib/typescript/atoms/index.d.ts +2 -0
- package/lib/typescript/atoms/index.d.ts.map +1 -1
- package/lib/typescript/organisms/Chart.d.ts +208 -0
- package/lib/typescript/organisms/Chart.d.ts.map +1 -0
- package/lib/typescript/organisms/OptionWheel.d.ts +78 -0
- package/lib/typescript/organisms/OptionWheel.d.ts.map +1 -0
- package/lib/typescript/organisms/Timeline.d.ts +61 -0
- package/lib/typescript/organisms/Timeline.d.ts.map +1 -0
- package/lib/typescript/organisms/chart/frame.d.ts +85 -0
- package/lib/typescript/organisms/chart/frame.d.ts.map +1 -0
- package/lib/typescript/organisms/chart/marks.d.ts +88 -0
- package/lib/typescript/organisms/chart/marks.d.ts.map +1 -0
- package/lib/typescript/organisms/chart/math.d.ts +161 -0
- package/lib/typescript/organisms/chart/math.d.ts.map +1 -0
- package/lib/typescript/organisms/chart/palette.d.ts +6 -0
- package/lib/typescript/organisms/chart/palette.d.ts.map +1 -0
- package/lib/typescript/organisms/index.d.ts +6 -0
- package/lib/typescript/organisms/index.d.ts.map +1 -1
- package/llms.txt +3 -3
- package/package.json +23 -2
- package/registry/chart.json +35 -0
- package/registry/index.json +53 -0
- package/registry/manifest.json +28 -0
- package/registry/option-wheel.json +19 -0
- package/registry/shiny-text.json +19 -0
- package/registry/timeline.json +20 -0
- package/src/atoms/ShinyText.tsx +226 -0
- package/src/atoms/index.ts +2 -0
- package/src/organisms/Chart.tsx +1252 -0
- package/src/organisms/OptionWheel.tsx +476 -0
- package/src/organisms/Timeline.tsx +467 -0
- package/src/organisms/chart/frame.tsx +349 -0
- package/src/organisms/chart/marks.tsx +295 -0
- package/src/organisms/chart/math.ts +475 -0
- package/src/organisms/chart/palette.ts +112 -0
- package/src/organisms/index.ts +14 -0
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Wedge = exports.Polyline = exports.Dot = exports.Bar = void 0;
|
|
7
|
+
exports.useAnimatedNumber = useAnimatedNumber;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _reactNative = require("react-native");
|
|
10
|
+
var _math = require("./math");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
|
+
/**
|
|
14
|
+
* Las marcas de Chart: lo único que sabe dibujar el componente.
|
|
15
|
+
*
|
|
16
|
+
* React Native no trae un lienzo vectorial y la librería no puede agregar uno
|
|
17
|
+
* (cero dependencias), así que las tres primitivas de acá se componen con
|
|
18
|
+
* `View` y bastan para los seis tipos de chart:
|
|
19
|
+
*
|
|
20
|
+
* | primitiva | la usan |
|
|
21
|
+
* |------------|-----------------------------------------------------|
|
|
22
|
+
* | `Bar` | barras verticales y horizontales, agrupadas o apiladas |
|
|
23
|
+
* | `Polyline` | línea, contorno del radar, grilla del radar, ejes |
|
|
24
|
+
* | `Wedge` | torta, dona y el relleno del radar |
|
|
25
|
+
*
|
|
26
|
+
* Son puras: no escuchan toques ni conocen la escala. Quien toca es la capa de
|
|
27
|
+
* hit-test de Chart.tsx, que cubre columnas enteras en vez de la marca —
|
|
28
|
+
* una línea de 2px no es un blanco táctil.
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Valor que persigue a `target` en vez de saltar. Un filtro que cambia los
|
|
33
|
+
* datos mueve la barra desde donde estaba, y ese movimiento es lo que dice
|
|
34
|
+
* "es la misma barra con otro número" en lugar de "es otro chart".
|
|
35
|
+
*/
|
|
36
|
+
function useAnimatedNumber(target, animate, duration) {
|
|
37
|
+
const value = (0, _react.useRef)(new _reactNative.Animated.Value(animate ? 0 : target)).current;
|
|
38
|
+
(0, _react.useEffect)(() => {
|
|
39
|
+
if (!animate) {
|
|
40
|
+
value.setValue(target);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const animation = _reactNative.Animated.timing(value, {
|
|
44
|
+
toValue: target,
|
|
45
|
+
duration,
|
|
46
|
+
easing: _reactNative.Easing.out(_reactNative.Easing.cubic),
|
|
47
|
+
// Geometría, no transform: `height`/`top` son props de layout y el
|
|
48
|
+
// driver nativo no las toca. Es el precio de que la barra pueda crecer
|
|
49
|
+
// desde su base con valores negativos sin recalcular el origen.
|
|
50
|
+
useNativeDriver: false
|
|
51
|
+
});
|
|
52
|
+
animation.start();
|
|
53
|
+
return () => animation.stop();
|
|
54
|
+
}, [target, animate, duration, value]);
|
|
55
|
+
return value;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// ── barra ──────────────────────────────────────────────────────────────────
|
|
59
|
+
|
|
60
|
+
const DIM_OPACITY = 0.32;
|
|
61
|
+
const Bar = exports.Bar = /*#__PURE__*/(0, _react.memo)(({
|
|
62
|
+
x,
|
|
63
|
+
y,
|
|
64
|
+
width,
|
|
65
|
+
height,
|
|
66
|
+
color,
|
|
67
|
+
from,
|
|
68
|
+
radius = 0,
|
|
69
|
+
dim = false,
|
|
70
|
+
animate = true,
|
|
71
|
+
duration = 400,
|
|
72
|
+
testID
|
|
73
|
+
}) => {
|
|
74
|
+
const vertical = from === 'bottom' || from === 'top';
|
|
75
|
+
const grown = useAnimatedNumber(vertical ? height : width, animate, duration);
|
|
76
|
+
|
|
77
|
+
// El extremo que se mueve es el opuesto a la base: una barra que nace
|
|
78
|
+
// abajo mantiene fijo su borde inferior y sube el superior.
|
|
79
|
+
const box = vertical ? {
|
|
80
|
+
left: x,
|
|
81
|
+
width,
|
|
82
|
+
height: grown,
|
|
83
|
+
...(from === 'bottom' ? {
|
|
84
|
+
bottom: y
|
|
85
|
+
} : {
|
|
86
|
+
top: y
|
|
87
|
+
})
|
|
88
|
+
} : {
|
|
89
|
+
top: y,
|
|
90
|
+
height,
|
|
91
|
+
width: grown,
|
|
92
|
+
...(from === 'left' ? {
|
|
93
|
+
left: x
|
|
94
|
+
} : {
|
|
95
|
+
right: x
|
|
96
|
+
})
|
|
97
|
+
};
|
|
98
|
+
const corners = radius <= 0 ? {} : from === 'bottom' ? {
|
|
99
|
+
borderTopLeftRadius: radius,
|
|
100
|
+
borderTopRightRadius: radius
|
|
101
|
+
} : from === 'top' ? {
|
|
102
|
+
borderBottomLeftRadius: radius,
|
|
103
|
+
borderBottomRightRadius: radius
|
|
104
|
+
} : from === 'left' ? {
|
|
105
|
+
borderTopRightRadius: radius,
|
|
106
|
+
borderBottomRightRadius: radius
|
|
107
|
+
} : {
|
|
108
|
+
borderTopLeftRadius: radius,
|
|
109
|
+
borderBottomLeftRadius: radius
|
|
110
|
+
};
|
|
111
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
|
|
112
|
+
testID: testID,
|
|
113
|
+
pointerEvents: "none",
|
|
114
|
+
style: [{
|
|
115
|
+
position: 'absolute',
|
|
116
|
+
backgroundColor: color,
|
|
117
|
+
opacity: dim ? DIM_OPACITY : 1
|
|
118
|
+
}, corners, box]
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
Bar.displayName = 'Bar';
|
|
122
|
+
|
|
123
|
+
// ── polilínea ──────────────────────────────────────────────────────────────
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Una línea es un rectángulo fino rotado sobre su centro, uno por tramo. Con
|
|
127
|
+
* `smoothPoints` los tramos son tantos que la poligonal se lee como curva.
|
|
128
|
+
*
|
|
129
|
+
* Los extremos quedan a tope, no redondeados: un `borderRadius` por tramo
|
|
130
|
+
* multiplicaría las vistas y a 2px de grosor nadie ve la diferencia.
|
|
131
|
+
*/
|
|
132
|
+
const Polyline = exports.Polyline = /*#__PURE__*/(0, _react.memo)(({
|
|
133
|
+
points,
|
|
134
|
+
color,
|
|
135
|
+
thickness = 2,
|
|
136
|
+
closed = false,
|
|
137
|
+
opacity = 1,
|
|
138
|
+
testID
|
|
139
|
+
}) => {
|
|
140
|
+
if (points.length < 2) return null;
|
|
141
|
+
const path = closed ? [...points, points[0]] : points;
|
|
142
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
143
|
+
testID: testID,
|
|
144
|
+
pointerEvents: "none",
|
|
145
|
+
style: {
|
|
146
|
+
position: 'absolute',
|
|
147
|
+
left: 0,
|
|
148
|
+
top: 0,
|
|
149
|
+
right: 0,
|
|
150
|
+
bottom: 0,
|
|
151
|
+
opacity
|
|
152
|
+
},
|
|
153
|
+
children: path.slice(0, -1).map((point, index) => {
|
|
154
|
+
const box = (0, _math.segmentBox)(point, path[index + 1], thickness);
|
|
155
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
156
|
+
style: {
|
|
157
|
+
position: 'absolute',
|
|
158
|
+
left: box.left,
|
|
159
|
+
top: box.top,
|
|
160
|
+
width: box.width,
|
|
161
|
+
height: box.height,
|
|
162
|
+
backgroundColor: color,
|
|
163
|
+
transform: [{
|
|
164
|
+
rotate: `${box.rotate}deg`
|
|
165
|
+
}]
|
|
166
|
+
}
|
|
167
|
+
}, index);
|
|
168
|
+
})
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
Polyline.displayName = 'Polyline';
|
|
172
|
+
const Dot = exports.Dot = /*#__PURE__*/(0, _react.memo)(({
|
|
173
|
+
point,
|
|
174
|
+
color,
|
|
175
|
+
size = 7,
|
|
176
|
+
ringColor,
|
|
177
|
+
ringWidth = 2,
|
|
178
|
+
testID
|
|
179
|
+
}) => {
|
|
180
|
+
const outer = size + (ringColor ? ringWidth * 2 : 0);
|
|
181
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
182
|
+
testID: testID,
|
|
183
|
+
pointerEvents: "none",
|
|
184
|
+
style: {
|
|
185
|
+
position: 'absolute',
|
|
186
|
+
left: point.x - outer / 2,
|
|
187
|
+
top: point.y - outer / 2,
|
|
188
|
+
width: outer,
|
|
189
|
+
height: outer,
|
|
190
|
+
borderRadius: outer / 2,
|
|
191
|
+
backgroundColor: color,
|
|
192
|
+
borderWidth: ringColor ? ringWidth : 0,
|
|
193
|
+
borderColor: ringColor
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
Dot.displayName = 'Dot';
|
|
198
|
+
|
|
199
|
+
// ── porción ────────────────────────────────────────────────────────────────
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Sector de hasta 180°, sin curvas ni máscaras. Tres cajas:
|
|
203
|
+
*
|
|
204
|
+
* 1. un recorte fijo a la mitad derecha (`overflow: 'hidden'`), que es el
|
|
205
|
+
* sector 0°–180°;
|
|
206
|
+
* 2. adentro, un cuadrado `size` × `size` centrado en el centro del círculo,
|
|
207
|
+
* que es lo que gira — al rotar sobre su propio centro, rota sobre el
|
|
208
|
+
* centro del círculo sin necesidad de `transformOrigin`;
|
|
209
|
+
* 3. adentro del cuadrado, **medio disco**, no un disco entero: un rectángulo
|
|
210
|
+
* de media caja con las dos esquinas de afuera redondeadas al radio.
|
|
211
|
+
*
|
|
212
|
+
* El medio disco es lo que hace que la rotación signifique algo. Con un disco
|
|
213
|
+
* completo el recorte deja siempre la misma media luna —rotar un círculo
|
|
214
|
+
* sólido no lo cambia—, y toda porción, sea de 5° o de 180°, sale igual de
|
|
215
|
+
* ancha: 180°.
|
|
216
|
+
*
|
|
217
|
+
* Girado `sweep - 180`, el medio disco cubre de `sweep - 180` a `sweep`, y lo
|
|
218
|
+
* que sobrevive al recorte es exactamente 0°–`sweep`.
|
|
219
|
+
*/
|
|
220
|
+
const Half = ({
|
|
221
|
+
size,
|
|
222
|
+
sweep,
|
|
223
|
+
color
|
|
224
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
225
|
+
style: {
|
|
226
|
+
position: 'absolute',
|
|
227
|
+
left: size / 2,
|
|
228
|
+
top: 0,
|
|
229
|
+
width: size / 2,
|
|
230
|
+
height: size,
|
|
231
|
+
overflow: 'hidden'
|
|
232
|
+
},
|
|
233
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
234
|
+
style: {
|
|
235
|
+
position: 'absolute',
|
|
236
|
+
left: -size / 2,
|
|
237
|
+
top: 0,
|
|
238
|
+
width: size,
|
|
239
|
+
height: size,
|
|
240
|
+
transform: [{
|
|
241
|
+
rotate: `${sweep - 180}deg`
|
|
242
|
+
}]
|
|
243
|
+
},
|
|
244
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
245
|
+
style: {
|
|
246
|
+
position: 'absolute',
|
|
247
|
+
left: size / 2,
|
|
248
|
+
top: 0,
|
|
249
|
+
width: size / 2,
|
|
250
|
+
height: size,
|
|
251
|
+
backgroundColor: color,
|
|
252
|
+
borderTopRightRadius: size / 2,
|
|
253
|
+
borderBottomRightRadius: size / 2
|
|
254
|
+
}
|
|
255
|
+
})
|
|
256
|
+
})
|
|
257
|
+
});
|
|
258
|
+
const FULL_CIRCLE = 359.9;
|
|
259
|
+
const Wedge = exports.Wedge = /*#__PURE__*/(0, _react.memo)(({
|
|
260
|
+
size,
|
|
261
|
+
start,
|
|
262
|
+
sweep,
|
|
263
|
+
color,
|
|
264
|
+
opacity = 1,
|
|
265
|
+
explode = 0,
|
|
266
|
+
center,
|
|
267
|
+
testID
|
|
268
|
+
}) => {
|
|
269
|
+
if (sweep <= 0 || size <= 0) return null;
|
|
270
|
+
// 360° exactos dejan las dos mitades a 180°, y la de arriba tapa a la de
|
|
271
|
+
// abajo por una rendija de antialias. Un pelo menos no se ve y no pasa.
|
|
272
|
+
const total = Math.min(sweep, FULL_CIRCLE);
|
|
273
|
+
const first = Math.min(total, 180);
|
|
274
|
+
const second = total - first;
|
|
275
|
+
const bisector = (start + total / 2) * (Math.PI / 180);
|
|
276
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
277
|
+
testID: testID,
|
|
278
|
+
pointerEvents: "none",
|
|
279
|
+
style: {
|
|
280
|
+
position: 'absolute',
|
|
281
|
+
left: (center?.x ?? size / 2) - size / 2,
|
|
282
|
+
top: (center?.y ?? size / 2) - size / 2,
|
|
283
|
+
width: size,
|
|
284
|
+
height: size,
|
|
285
|
+
opacity,
|
|
286
|
+
transform: [{
|
|
287
|
+
translateX: explode * Math.sin(bisector)
|
|
288
|
+
}, {
|
|
289
|
+
translateY: -explode * Math.cos(bisector)
|
|
290
|
+
}, {
|
|
291
|
+
rotate: `${start}deg`
|
|
292
|
+
}]
|
|
293
|
+
},
|
|
294
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Half, {
|
|
295
|
+
size: size,
|
|
296
|
+
sweep: first,
|
|
297
|
+
color: color
|
|
298
|
+
}), second > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
299
|
+
style: {
|
|
300
|
+
position: 'absolute',
|
|
301
|
+
width: size,
|
|
302
|
+
height: size,
|
|
303
|
+
transform: [{
|
|
304
|
+
rotate: '180deg'
|
|
305
|
+
}]
|
|
306
|
+
},
|
|
307
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Half, {
|
|
308
|
+
size: size,
|
|
309
|
+
sweep: second,
|
|
310
|
+
color: color
|
|
311
|
+
})
|
|
312
|
+
}) : null]
|
|
313
|
+
});
|
|
314
|
+
});
|
|
315
|
+
Wedge.displayName = 'Wedge';
|
|
316
|
+
//# sourceMappingURL=marks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_math","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useAnimatedNumber","target","animate","duration","value","useRef","Animated","Value","current","useEffect","setValue","animation","timing","toValue","easing","Easing","out","cubic","useNativeDriver","start","stop","DIM_OPACITY","Bar","exports","memo","x","y","width","height","color","from","radius","dim","testID","vertical","grown","box","left","bottom","top","right","corners","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","jsx","View","pointerEvents","style","position","backgroundColor","opacity","displayName","Polyline","points","thickness","closed","length","path","children","slice","map","point","index","segmentBox","transform","rotate","Dot","size","ringColor","ringWidth","outer","borderRadius","borderWidth","borderColor","Half","sweep","overflow","FULL_CIRCLE","Wedge","explode","center","total","Math","min","first","second","bisector","PI","jsxs","translateX","sin","translateY","cos"],"sourceRoot":"../../../../src","sources":["organisms/chart/marks.tsx"],"mappings":"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","ignoreList":[]}
|