orn-ui 0.2.7 → 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/AGENTS.md +25 -3
  2. package/README.md +9 -8
  3. package/lib/commonjs/atoms/Gradient.js +111 -0
  4. package/lib/commonjs/atoms/Gradient.js.map +1 -0
  5. package/lib/commonjs/atoms/ShinyText.js +188 -0
  6. package/lib/commonjs/atoms/ShinyText.js.map +1 -0
  7. package/lib/commonjs/atoms/index.js +14 -0
  8. package/lib/commonjs/atoms/index.js.map +1 -1
  9. package/lib/commonjs/organisms/Chart.js +947 -0
  10. package/lib/commonjs/organisms/Chart.js.map +1 -0
  11. package/lib/commonjs/organisms/OptionWheel.js +408 -0
  12. package/lib/commonjs/organisms/OptionWheel.js.map +1 -0
  13. package/lib/commonjs/organisms/Slides.js +406 -0
  14. package/lib/commonjs/organisms/Slides.js.map +1 -0
  15. package/lib/commonjs/organisms/Timeline.js +420 -0
  16. package/lib/commonjs/organisms/Timeline.js.map +1 -0
  17. package/lib/commonjs/organisms/chart/frame.js +373 -0
  18. package/lib/commonjs/organisms/chart/frame.js.map +1 -0
  19. package/lib/commonjs/organisms/chart/marks.js +316 -0
  20. package/lib/commonjs/organisms/chart/marks.js.map +1 -0
  21. package/lib/commonjs/organisms/chart/math.js +468 -0
  22. package/lib/commonjs/organisms/chart/math.js.map +1 -0
  23. package/lib/commonjs/organisms/chart/palette.js +120 -0
  24. package/lib/commonjs/organisms/chart/palette.js.map +1 -0
  25. package/lib/commonjs/organisms/index.js +28 -0
  26. package/lib/commonjs/organisms/index.js.map +1 -1
  27. package/lib/commonjs/organisms/useSlides.js +186 -0
  28. package/lib/commonjs/organisms/useSlides.js.map +1 -0
  29. package/lib/module/atoms/Gradient.js +106 -0
  30. package/lib/module/atoms/Gradient.js.map +1 -0
  31. package/lib/module/atoms/ShinyText.js +183 -0
  32. package/lib/module/atoms/ShinyText.js.map +1 -0
  33. package/lib/module/atoms/index.js +2 -0
  34. package/lib/module/atoms/index.js.map +1 -1
  35. package/lib/module/organisms/Chart.js +942 -0
  36. package/lib/module/organisms/Chart.js.map +1 -0
  37. package/lib/module/organisms/OptionWheel.js +403 -0
  38. package/lib/module/organisms/OptionWheel.js.map +1 -0
  39. package/lib/module/organisms/Slides.js +401 -0
  40. package/lib/module/organisms/Slides.js.map +1 -0
  41. package/lib/module/organisms/Timeline.js +415 -0
  42. package/lib/module/organisms/Timeline.js.map +1 -0
  43. package/lib/module/organisms/chart/frame.js +367 -0
  44. package/lib/module/organisms/chart/frame.js.map +1 -0
  45. package/lib/module/organisms/chart/marks.js +310 -0
  46. package/lib/module/organisms/chart/marks.js.map +1 -0
  47. package/lib/module/organisms/chart/math.js +445 -0
  48. package/lib/module/organisms/chart/math.js.map +1 -0
  49. package/lib/module/organisms/chart/palette.js +114 -0
  50. package/lib/module/organisms/chart/palette.js.map +1 -0
  51. package/lib/module/organisms/index.js +4 -0
  52. package/lib/module/organisms/index.js.map +1 -1
  53. package/lib/module/organisms/useSlides.js +182 -0
  54. package/lib/module/organisms/useSlides.js.map +1 -0
  55. package/lib/typescript/atoms/Gradient.d.ts +37 -0
  56. package/lib/typescript/atoms/Gradient.d.ts.map +1 -0
  57. package/lib/typescript/atoms/ShinyText.d.ts +48 -0
  58. package/lib/typescript/atoms/ShinyText.d.ts.map +1 -0
  59. package/lib/typescript/atoms/index.d.ts +4 -0
  60. package/lib/typescript/atoms/index.d.ts.map +1 -1
  61. package/lib/typescript/organisms/Chart.d.ts +208 -0
  62. package/lib/typescript/organisms/Chart.d.ts.map +1 -0
  63. package/lib/typescript/organisms/OptionWheel.d.ts +78 -0
  64. package/lib/typescript/organisms/OptionWheel.d.ts.map +1 -0
  65. package/lib/typescript/organisms/Slides.d.ts +69 -0
  66. package/lib/typescript/organisms/Slides.d.ts.map +1 -0
  67. package/lib/typescript/organisms/Timeline.d.ts +61 -0
  68. package/lib/typescript/organisms/Timeline.d.ts.map +1 -0
  69. package/lib/typescript/organisms/chart/frame.d.ts +85 -0
  70. package/lib/typescript/organisms/chart/frame.d.ts.map +1 -0
  71. package/lib/typescript/organisms/chart/marks.d.ts +88 -0
  72. package/lib/typescript/organisms/chart/marks.d.ts.map +1 -0
  73. package/lib/typescript/organisms/chart/math.d.ts +161 -0
  74. package/lib/typescript/organisms/chart/math.d.ts.map +1 -0
  75. package/lib/typescript/organisms/chart/palette.d.ts +6 -0
  76. package/lib/typescript/organisms/chart/palette.d.ts.map +1 -0
  77. package/lib/typescript/organisms/index.d.ts +8 -0
  78. package/lib/typescript/organisms/index.d.ts.map +1 -1
  79. package/lib/typescript/organisms/useSlides.d.ts +52 -0
  80. package/lib/typescript/organisms/useSlides.d.ts.map +1 -0
  81. package/llms.txt +6 -5
  82. package/package.json +33 -2
  83. package/registry/chart.json +35 -0
  84. package/registry/gradient.json +18 -0
  85. package/registry/index.json +79 -0
  86. package/registry/manifest.json +42 -0
  87. package/registry/option-wheel.json +19 -0
  88. package/registry/shiny-text.json +19 -0
  89. package/registry/slides.json +24 -0
  90. package/registry/timeline.json +20 -0
  91. package/src/atoms/Gradient.tsx +99 -0
  92. package/src/atoms/ShinyText.tsx +226 -0
  93. package/src/atoms/index.ts +4 -0
  94. package/src/organisms/Chart.tsx +1223 -0
  95. package/src/organisms/OptionWheel.tsx +476 -0
  96. package/src/organisms/Slides.tsx +413 -0
  97. package/src/organisms/Timeline.tsx +467 -0
  98. package/src/organisms/chart/frame.tsx +349 -0
  99. package/src/organisms/chart/marks.tsx +295 -0
  100. package/src/organisms/chart/math.ts +475 -0
  101. package/src/organisms/chart/palette.ts +112 -0
  102. package/src/organisms/index.ts +22 -0
  103. package/src/organisms/useSlides.ts +220 -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":[]}