revas 1.0.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/README.md +61 -1
  2. package/dist/chunk-JPUKLNW3.js +1710 -0
  3. package/dist/chunk-JPUKLNW3.js.map +1 -0
  4. package/dist/revas-common.cjs +1768 -0
  5. package/dist/revas-common.cjs.map +1 -0
  6. package/dist/revas-common.d.cts +363 -0
  7. package/dist/revas-common.d.ts +363 -0
  8. package/dist/revas-common.js +3 -0
  9. package/dist/revas-common.js.map +1 -0
  10. package/dist/revas.cjs +1881 -0
  11. package/dist/revas.cjs.map +1 -0
  12. package/dist/revas.d.cts +13 -0
  13. package/dist/revas.d.ts +13 -0
  14. package/dist/revas.js +108 -1967
  15. package/dist/revas.js.map +1 -1
  16. package/package.json +58 -45
  17. package/.eslintcache +0 -1
  18. package/common.d.ts +0 -1
  19. package/common.js +0 -1
  20. package/dist/revas.common.js +0 -1861
  21. package/dist/revas.common.js.map +0 -1
  22. package/dist/revas.es.js +0 -1932
  23. package/dist/revas.es.js.map +0 -1
  24. package/dist/types/develop/App.d.ts +0 -8
  25. package/dist/types/develop/Intro/About.d.ts +0 -2
  26. package/dist/types/develop/Intro/Animation.d.ts +0 -2
  27. package/dist/types/develop/Intro/Component.d.ts +0 -2
  28. package/dist/types/develop/Intro/Entry.d.ts +0 -6
  29. package/dist/types/develop/Intro/Gesture.d.ts +0 -2
  30. package/dist/types/develop/Intro/Interactable.d.ts +0 -10
  31. package/dist/types/develop/Intro/Navbar.d.ts +0 -6
  32. package/dist/types/develop/Intro/Panel.d.ts +0 -14
  33. package/dist/types/develop/Intro/Style.d.ts +0 -2
  34. package/dist/types/develop/Intro/index.d.ts +0 -2
  35. package/dist/types/develop/Music/Player.d.ts +0 -79
  36. package/dist/types/develop/Music/data.d.ts +0 -8
  37. package/dist/types/develop/Music/index.d.ts +0 -23
  38. package/dist/types/develop/Music/styles.d.ts +0 -19
  39. package/dist/types/develop/Timeline/data.d.ts +0 -5
  40. package/dist/types/develop/Timeline/index.d.ts +0 -11
  41. package/dist/types/develop/common/back.d.ts +0 -2
  42. package/dist/types/develop/common/simple-router.d.ts +0 -44
  43. package/dist/types/develop/serviceWorker.d.ts +0 -7
  44. package/dist/types/index.d.ts +0 -1
  45. package/dist/types/revas/common.d.ts +0 -24
  46. package/dist/types/revas/components/Context.d.ts +0 -12
  47. package/dist/types/revas/components/Image.d.ts +0 -20
  48. package/dist/types/revas/components/LinearGradient.d.ts +0 -38
  49. package/dist/types/revas/components/ListView.d.ts +0 -22
  50. package/dist/types/revas/components/ScrollView.d.ts +0 -43
  51. package/dist/types/revas/components/Text.d.ts +0 -16
  52. package/dist/types/revas/components/Touchable.d.ts +0 -34
  53. package/dist/types/revas/components/View.d.ts +0 -3
  54. package/dist/types/revas/components/common/Scroller.d.ts +0 -35
  55. package/dist/types/revas/components/common/drawImage.d.ts +0 -3
  56. package/dist/types/revas/components/common/drawText.d.ts +0 -17
  57. package/dist/types/revas/components/common/imageLoader.d.ts +0 -2
  58. package/dist/types/revas/core/Animated.d.ts +0 -59
  59. package/dist/types/revas/core/Canvas.d.ts +0 -17
  60. package/dist/types/revas/core/Container.d.ts +0 -18
  61. package/dist/types/revas/core/Node.d.ts +0 -46
  62. package/dist/types/revas/core/css-layout/index.d.ts +0 -9
  63. package/dist/types/revas/core/draw.d.ts +0 -4
  64. package/dist/types/revas/core/offscreen.d.ts +0 -11
  65. package/dist/types/revas/core/reconciler.d.ts +0 -5
  66. package/dist/types/revas/core/touch.d.ts +0 -3
  67. package/dist/types/revas/core/utils.d.ts +0 -22
  68. package/dist/types/revas/core/yoga-layout/index.d.ts +0 -3
  69. package/dist/types/revas/core/yoga-layout/init.d.ts +0 -3
  70. package/dist/types/revas/core/yoga-layout/style.d.ts +0 -3
  71. package/dist/types/revas/index.d.ts +0 -2
  72. package/dist/types/revas/web/index.d.ts +0 -1
  73. package/dist/types/revas/web/render.d.ts +0 -7
  74. package/doc/API.md +0 -241
  75. package/doc/README-zh.md +0 -266
  76. package/public/favicon.ico +0 -0
  77. package/public/index.html +0 -64
  78. package/public/logo192.png +0 -0
  79. package/public/logo512.png +0 -0
  80. package/public/manifest.json +0 -25
  81. package/public/robots.txt +0 -2
  82. package/public/stats.min.js +0 -5
  83. package/public/touch-emulator.js +0 -363
  84. package/rollup.config.ts +0 -44
  85. package/tsconfig.json +0 -30
@@ -0,0 +1,363 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+ import * as react_reconciler from 'react-reconciler';
4
+
5
+ declare class Frame {
6
+ x: number;
7
+ y: number;
8
+ width: number;
9
+ height: number;
10
+ constructor(x?: number, y?: number, width?: number, height?: number);
11
+ }
12
+ declare class Node<T = any> {
13
+ readonly type: string;
14
+ props: NodeProps & T;
15
+ readonly children: Node[];
16
+ frame: Frame;
17
+ parent?: Node;
18
+ constructor(type: string, props: NodeProps & T);
19
+ get $ready(): boolean;
20
+ }
21
+ interface RevasTouch {
22
+ identifier: number;
23
+ x: number;
24
+ y: number;
25
+ }
26
+ type RevasTouchType = 'touchstart' | 'touchmove' | 'touchend';
27
+ interface RevasTouchEvent {
28
+ type: RevasTouchType;
29
+ touches: {
30
+ [key: string]: RevasTouch;
31
+ };
32
+ timestamp: number;
33
+ [key: string]: any;
34
+ }
35
+ type RevasTouchEventListener = (event: RevasTouchEvent) => any;
36
+ interface BaseProps {
37
+ children?: ReactNode;
38
+ style?: any | any[];
39
+ cache?: string | boolean;
40
+ forceCache?: boolean;
41
+ }
42
+ interface NodeProps extends BaseProps {
43
+ onTouchStart?: RevasTouchEventListener;
44
+ onTouchMove?: RevasTouchEventListener;
45
+ onTouchEnd?: RevasTouchEventListener;
46
+ onLayout?: (frame: Frame) => any;
47
+ pointerEvents?: 'auto' | 'none' | 'box-none';
48
+ $ready?: boolean;
49
+ }
50
+
51
+ declare function View(props: NodeProps): React.ReactElement<NodeProps, string | React.JSXElementConstructor<any>>;
52
+
53
+ declare class RevasCanvas {
54
+ readonly transform: Transform;
55
+ constructor(context: CanvasRenderingContext2D);
56
+ get context(): CanvasRenderingContext2D;
57
+ get element(): HTMLCanvasElement;
58
+ }
59
+ declare class Transform {
60
+ readonly context: CanvasRenderingContext2D;
61
+ _stack: DOMMatrix[];
62
+ _canGetTransform: boolean;
63
+ constructor(context: CanvasRenderingContext2D);
64
+ save(): void;
65
+ restore(): void;
66
+ translate(x: number, y: number): void;
67
+ rotate(rad: number): void;
68
+ scale(sx: number, sy: number): void;
69
+ }
70
+
71
+ interface DrawTextOptions {
72
+ textStyle: any;
73
+ numberOfLines: number;
74
+ frame: Frame;
75
+ content: string;
76
+ }
77
+ type MeasureLine = {
78
+ width: number;
79
+ text: string;
80
+ };
81
+ type MeasureResult = [MeasureLine[], number];
82
+
83
+ type TextProps = {
84
+ numberOfLines?: number;
85
+ } & NodeProps;
86
+ declare class Text extends React.Component<TextProps> {
87
+ state: {
88
+ height: number;
89
+ };
90
+ _measured: MeasureResult;
91
+ _drawed?: DrawTextOptions;
92
+ drawText: (canvas: RevasCanvas, node: Node) => void;
93
+ render(): React.DOMElement<any, Element>;
94
+ }
95
+
96
+ declare function drawImage(canvas: RevasCanvas, node: Node, flags: any): void;
97
+
98
+ type ImageViewProps = {
99
+ src: string;
100
+ } & NodeProps;
101
+ declare function ImageView(props: ImageViewProps): React.ReactElement<{
102
+ style: any[];
103
+ $ready: boolean;
104
+ src: string;
105
+ onTouchStart?: RevasTouchEventListener;
106
+ onTouchMove?: RevasTouchEventListener;
107
+ onTouchEnd?: RevasTouchEventListener;
108
+ onLayout?: (frame: Frame) => any;
109
+ pointerEvents?: "auto" | "none" | "box-none";
110
+ children?: React.ReactNode;
111
+ cache?: string | boolean;
112
+ forceCache?: boolean;
113
+ customDrawer: typeof drawImage | undefined;
114
+ }, string | React.JSXElementConstructor<any>>;
115
+
116
+ declare abstract class AnimatedNode {
117
+ abstract getValue(observer?: Function): number;
118
+ interpolate(inRange: number[], outRange: number[], ease?: (t: number) => number): AnimatedInterpolate;
119
+ }
120
+ declare class AnimatedValue extends AnimatedNode {
121
+ private _value;
122
+ private _observer?;
123
+ constructor(_value: number);
124
+ setValue(value: number): void;
125
+ getValue(observer?: Function): number;
126
+ }
127
+ declare class AnimatedInterpolate extends AnimatedNode {
128
+ private source;
129
+ private inRange;
130
+ private outRange;
131
+ private ease;
132
+ constructor(source: AnimatedNode, inRange: number[], outRange: number[], ease: (t: number) => number);
133
+ getValue(observer?: Function): number;
134
+ }
135
+ type TimingConfig = {
136
+ to: number;
137
+ duration: number;
138
+ ease?: (t: number) => number;
139
+ };
140
+ declare class AnimatedTiming {
141
+ private value;
142
+ private config;
143
+ private _startTime;
144
+ private _startValue;
145
+ private _onEnd?;
146
+ private _next;
147
+ constructor(value: AnimatedValue, config: TimingConfig);
148
+ private get _ease();
149
+ start(onEnd?: Function): this;
150
+ stop(): this;
151
+ promise(): Promise<unknown>;
152
+ private _loop;
153
+ }
154
+ declare function timing(value: AnimatedValue, config: TimingConfig): AnimatedTiming;
155
+ declare const Easing: {
156
+ linear(t: number): number;
157
+ ease(t: number): number;
158
+ /**
159
+ * Runs an easing function forwards.
160
+ */
161
+ in(easing?: (t: number) => number): (t: number) => number;
162
+ /**
163
+ * Runs an easing function backwards.
164
+ */
165
+ out(easing?: (t: number) => number): (t: number) => number;
166
+ /**
167
+ * Makes any easing function symmetrical. The easing function will run
168
+ * forwards for half of the duration, then backwards for the rest of the
169
+ * duration.
170
+ */
171
+ inOut(easing?: (t: number) => number): (t: number) => number;
172
+ bounce(t: number): number;
173
+ elastic(bounciness?: number): (t: number) => number;
174
+ };
175
+
176
+ type TouchableProps = {
177
+ onPress: Function;
178
+ onPressIn?: Function;
179
+ onPressOut?: Function;
180
+ activeOpacity?: number;
181
+ } & BaseProps;
182
+ declare class Touchable extends React.Component<TouchableProps> {
183
+ static defaultProps: {
184
+ activeOpacity: number;
185
+ };
186
+ _style: {
187
+ opacity: AnimatedValue;
188
+ animated: boolean;
189
+ };
190
+ private _start?;
191
+ private _tid;
192
+ private _onTouchStart;
193
+ private _onTouchEnd;
194
+ render(): React.ReactElement<{
195
+ style: any[];
196
+ onPress: Function;
197
+ onPressIn?: Function;
198
+ onPressOut?: Function;
199
+ activeOpacity?: number;
200
+ children?: React.ReactNode;
201
+ cache?: string | boolean;
202
+ forceCache?: boolean;
203
+ onTouchStart: (e: RevasTouchEvent) => void;
204
+ onTouchEnd: (e: RevasTouchEvent) => void;
205
+ }, string | React.JSXElementConstructor<any>>;
206
+ }
207
+
208
+ type RevasScrollEventType = 'start' | 'scroll' | 'end' | 'none';
209
+ interface RevasScrollEvent {
210
+ type: RevasScrollEventType;
211
+ x: number;
212
+ y: number;
213
+ vx: number;
214
+ vy: number;
215
+ timestamp: number;
216
+ tid: string;
217
+ }
218
+
219
+ type ScrollViewOffset = {
220
+ x?: number;
221
+ y?: number;
222
+ };
223
+ type ScrollViewProps = {
224
+ horizontal?: boolean;
225
+ onScroll?: (e: RevasScrollEvent) => any;
226
+ onScrollStart?: (e: RevasScrollEvent) => any;
227
+ onScrollEnd?: (e: RevasScrollEvent) => any;
228
+ paging?: boolean | number;
229
+ offset?: ScrollViewOffset;
230
+ } & NodeProps;
231
+ declare class ScrollView extends React.Component<ScrollViewProps> {
232
+ private _height;
233
+ private _contentHeight;
234
+ private _width;
235
+ private _contentWidth;
236
+ private _innerStyle;
237
+ private _offset;
238
+ private _scroller;
239
+ componentWillUnmount(): void;
240
+ private _onLayout;
241
+ private _onContentLayout;
242
+ private _checkLayout;
243
+ render(): React.ReactElement<{
244
+ onLayout: (frame: Frame) => void;
245
+ onScroll?: (e: RevasScrollEvent) => any;
246
+ onScrollStart?: (e: RevasScrollEvent) => any;
247
+ onScrollEnd?: (e: RevasScrollEvent) => any;
248
+ paging?: boolean | number;
249
+ onTouchStart?: RevasTouchEventListener;
250
+ onTouchMove?: RevasTouchEventListener;
251
+ onTouchEnd?: RevasTouchEventListener;
252
+ pointerEvents?: "auto" | "none" | "box-none";
253
+ $ready?: boolean;
254
+ style?: any | any[];
255
+ cache?: string | boolean;
256
+ forceCache?: boolean;
257
+ }, string | React.JSXElementConstructor<any>>;
258
+ }
259
+
260
+ type ListViewProps<T = any> = {
261
+ data: T[];
262
+ renderItem: (item: T, index: number, data: T[]) => React.ReactNode;
263
+ itemHeight: number;
264
+ } & ScrollViewProps;
265
+ declare class ListView extends React.Component<ListViewProps<any>> {
266
+ state: {
267
+ start: number;
268
+ end: number;
269
+ };
270
+ private _height;
271
+ componentDidMount(): void;
272
+ private checkVisible;
273
+ private _onScroll;
274
+ private _onLayout;
275
+ renderItem: (item: any, i: number) => React.FunctionComponentElement<React.FragmentProps>;
276
+ render(): React.CElement<ScrollViewProps, ScrollView>;
277
+ }
278
+
279
+ type LinearGradientProps = {
280
+ start?: {
281
+ x: number;
282
+ y: number;
283
+ };
284
+ end?: {
285
+ x: number;
286
+ y: number;
287
+ };
288
+ colors: string[];
289
+ } & NodeProps;
290
+ declare function LinearGradient(props: LinearGradientProps): React.ReactElement<{
291
+ style: any[];
292
+ customDrawer: typeof drawGradient;
293
+ start?: {
294
+ x: number;
295
+ y: number;
296
+ };
297
+ end?: {
298
+ x: number;
299
+ y: number;
300
+ };
301
+ colors: string[];
302
+ onTouchStart?: RevasTouchEventListener;
303
+ onTouchMove?: RevasTouchEventListener;
304
+ onTouchEnd?: RevasTouchEventListener;
305
+ onLayout?: (frame: Frame) => any;
306
+ pointerEvents?: "auto" | "none" | "box-none";
307
+ $ready?: boolean;
308
+ children?: React.ReactNode;
309
+ cache?: string | boolean;
310
+ forceCache?: boolean;
311
+ }, string | React.JSXElementConstructor<any>>;
312
+ declare function drawGradient(canvas: RevasCanvas, node: Node): void;
313
+
314
+ interface AppContextType {
315
+ clientWidth: number;
316
+ clientHeight: number;
317
+ deviceRatio: number;
318
+ canvas?: RevasCanvas;
319
+ RTL?: boolean;
320
+ }
321
+ declare const AppContext: React.Context<AppContextType>;
322
+ declare function withContext<T>(comp: T): T;
323
+ declare function Root(props: AppContextType): React.FunctionComponentElement<React.ProviderProps<AppContextType>>;
324
+
325
+ declare class Container {
326
+ private _ready;
327
+ private _next;
328
+ private _reflow;
329
+ private _root?;
330
+ get canvas(): RevasCanvas | void;
331
+ get width(): number;
332
+ get height(): number;
333
+ get scale(): number;
334
+ setRoot(root?: Node<AppContextType>): void;
335
+ handleTouch: (evt: RevasTouchEvent) => void;
336
+ draw: (reflow?: boolean) => void;
337
+ private ready;
338
+ }
339
+
340
+ declare const RevasReconciler: react_reconciler.Reconciler<Container, Node<any>, never, unknown, Node<any>>;
341
+
342
+ declare function noop(): any;
343
+ declare const EMPTY_OBJECT: any;
344
+ declare const EMPTY_ARRAY: any[];
345
+ declare function flatten(array: any[]): any[];
346
+ declare const now: () => number;
347
+ declare function applyAnimated(style: any, callback?: Function): any;
348
+ declare function getMergedStyleFromNode(node: Node, callback?: Function): any;
349
+ declare function getFrameFromNode(node: Node): Frame;
350
+ declare function sortByZIndexAscending(a: Node, b: Node): number;
351
+ declare function clamp(n: number, min: number, max: number): number;
352
+ declare function getChars(str: string): readonly string[];
353
+ declare function getWords(str: string): readonly string[];
354
+ declare function setShadow(canvas: RevasCanvas, color: string, x?: number, y?: number, blur?: number): () => void;
355
+ declare function pushOpacity(canvas: RevasCanvas, opacity: number): typeof noop;
356
+ type RevasAdapter = {
357
+ createImage: () => HTMLImageElement;
358
+ createOffscreenCanvas?: (width: number, height: number) => RevasCanvas;
359
+ resetOffscreenCanvas?: (ctx: RevasCanvas, width: number, height: number) => RevasCanvas;
360
+ };
361
+ declare const adapter: RevasAdapter;
362
+
363
+ export { AnimatedInterpolate, AnimatedNode, AnimatedTiming, AnimatedValue, AppContext, type AppContextType, type BaseProps, Container, EMPTY_ARRAY, EMPTY_OBJECT, Easing, Frame, ImageView as Image, type ImageViewProps, LinearGradient, type LinearGradientProps, ListView, type ListViewProps, Node, type NodeProps, type RevasAdapter, RevasCanvas, type RevasScrollEvent, type RevasScrollEventType, type RevasTouch, type RevasTouchEvent, type RevasTouchEventListener, type RevasTouchType, Root, ScrollView, type ScrollViewOffset, type ScrollViewProps, Text, type TextProps, type TimingConfig, Touchable, type TouchableProps, Transform, View, adapter, applyAnimated, clamp, flatten, getChars, getFrameFromNode, getMergedStyleFromNode, getWords, noop, now, pushOpacity, RevasReconciler as renderer, setShadow, sortByZIndexAscending, timing, withContext };
@@ -0,0 +1,3 @@
1
+ export { AnimatedInterpolate, AnimatedNode, AnimatedTiming, AnimatedValue, AppContext, Container, EMPTY_ARRAY, EMPTY_OBJECT, Easing, Frame, ImageView as Image, LinearGradient, ListView, Node, RevasCanvas, Root, ScrollView, Text, Touchable, Transform, View, adapter, applyAnimated, clamp, flatten, getChars, getFrameFromNode, getMergedStyleFromNode, getWords, noop, now, pushOpacity, reconciler_default as renderer, setShadow, sortByZIndexAscending, timing, withContext } from './chunk-JPUKLNW3.js';
2
+ //# sourceMappingURL=revas-common.js.map
3
+ //# sourceMappingURL=revas-common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"revas-common.js"}