revas 1.0.3 → 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 (84) 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 -1978
  15. package/dist/revas.js.map +1 -1
  16. package/package.json +56 -46
  17. package/common.d.ts +0 -1
  18. package/common.js +0 -1
  19. package/dist/revas.common.js +0 -1872
  20. package/dist/revas.common.js.map +0 -1
  21. package/dist/revas.es.js +0 -1943
  22. package/dist/revas.es.js.map +0 -1
  23. package/dist/types/develop/App.d.ts +0 -8
  24. package/dist/types/develop/Intro/About.d.ts +0 -2
  25. package/dist/types/develop/Intro/Animation.d.ts +0 -2
  26. package/dist/types/develop/Intro/Component.d.ts +0 -2
  27. package/dist/types/develop/Intro/Entry.d.ts +0 -6
  28. package/dist/types/develop/Intro/Gesture.d.ts +0 -2
  29. package/dist/types/develop/Intro/Interactable.d.ts +0 -10
  30. package/dist/types/develop/Intro/Navbar.d.ts +0 -6
  31. package/dist/types/develop/Intro/Panel.d.ts +0 -14
  32. package/dist/types/develop/Intro/Style.d.ts +0 -2
  33. package/dist/types/develop/Intro/index.d.ts +0 -2
  34. package/dist/types/develop/Music/Player.d.ts +0 -79
  35. package/dist/types/develop/Music/data.d.ts +0 -8
  36. package/dist/types/develop/Music/index.d.ts +0 -23
  37. package/dist/types/develop/Music/styles.d.ts +0 -19
  38. package/dist/types/develop/Timeline/data.d.ts +0 -5
  39. package/dist/types/develop/Timeline/index.d.ts +0 -11
  40. package/dist/types/develop/common/back.d.ts +0 -2
  41. package/dist/types/develop/common/simple-router.d.ts +0 -44
  42. package/dist/types/develop/serviceWorker.d.ts +0 -7
  43. package/dist/types/index.d.ts +0 -1
  44. package/dist/types/revas/common.d.ts +0 -24
  45. package/dist/types/revas/components/Context.d.ts +0 -12
  46. package/dist/types/revas/components/Image.d.ts +0 -20
  47. package/dist/types/revas/components/LinearGradient.d.ts +0 -38
  48. package/dist/types/revas/components/ListView.d.ts +0 -22
  49. package/dist/types/revas/components/ScrollView.d.ts +0 -43
  50. package/dist/types/revas/components/Text.d.ts +0 -16
  51. package/dist/types/revas/components/Touchable.d.ts +0 -34
  52. package/dist/types/revas/components/View.d.ts +0 -3
  53. package/dist/types/revas/components/common/Scroller.d.ts +0 -35
  54. package/dist/types/revas/components/common/drawImage.d.ts +0 -3
  55. package/dist/types/revas/components/common/drawText.d.ts +0 -17
  56. package/dist/types/revas/components/common/imageLoader.d.ts +0 -2
  57. package/dist/types/revas/core/Animated.d.ts +0 -59
  58. package/dist/types/revas/core/Canvas.d.ts +0 -17
  59. package/dist/types/revas/core/Container.d.ts +0 -18
  60. package/dist/types/revas/core/Node.d.ts +0 -46
  61. package/dist/types/revas/core/css-layout/index.d.ts +0 -9
  62. package/dist/types/revas/core/draw.d.ts +0 -4
  63. package/dist/types/revas/core/offscreen.d.ts +0 -11
  64. package/dist/types/revas/core/reconciler.d.ts +0 -5
  65. package/dist/types/revas/core/touch.d.ts +0 -3
  66. package/dist/types/revas/core/utils.d.ts +0 -22
  67. package/dist/types/revas/core/yoga-layout/index.d.ts +0 -3
  68. package/dist/types/revas/core/yoga-layout/init.d.ts +0 -3
  69. package/dist/types/revas/core/yoga-layout/style.d.ts +0 -3
  70. package/dist/types/revas/index.d.ts +0 -2
  71. package/dist/types/revas/web/index.d.ts +0 -1
  72. package/dist/types/revas/web/render.d.ts +0 -7
  73. package/doc/API.md +0 -241
  74. package/doc/README-zh.md +0 -266
  75. package/public/favicon.ico +0 -0
  76. package/public/index.html +0 -64
  77. package/public/logo192.png +0 -0
  78. package/public/logo512.png +0 -0
  79. package/public/manifest.json +0 -25
  80. package/public/robots.txt +0 -2
  81. package/public/stats.min.js +0 -5
  82. package/public/touch-emulator.js +0 -363
  83. package/rollup.config.ts +0 -44
  84. package/tsconfig.json +0 -30
package/README.md CHANGED
@@ -14,10 +14,14 @@
14
14
  <a target="_blank" href="https://github.com/pinqy520/revas/blob/master/doc/API.md">Document</a> | <a target="_blank" href="https://github.com/pinqy520/revas/blob/master/doc/README-zh.md">中文文档</a> | <a target="_blank" href="https://pinqy520.github.io/demo/revas-pwa/" rel="nofollow">Live DEMO</a> | <a target="_blank" href="https://github.com/pinqy520/revas/blob/master/src/develop/App.tsx">DEMO Code</a>
15
15
  </p>
16
16
 
17
+ ## Requirements
18
+
19
+ - **React 19.x** (peer dependency)
20
+
17
21
  ## Install
18
22
 
19
23
  ``` bash
20
- $ yarn add revas react
24
+ $ pnpm add revas react@19
21
25
  ```
22
26
  ## Usage
23
27
 
@@ -75,5 +79,61 @@ export class Widget extends React.Component {
75
79
  <img src="https://user-images.githubusercontent.com/5719833/81006150-9b8f3300-8e81-11ea-8cb1-08de6550ea03.png" />
76
80
  </p>
77
81
 
82
+ ## Upgrading from v1.x to v2.x
83
+
84
+ Revas 2.0 is a major upgrade with breaking changes:
85
+
86
+ ### Breaking Changes
87
+
88
+ | Change | v1.x | v2.x |
89
+ |--------|------|------|
90
+ | React version | React 17.x | **React 19.x** (required) |
91
+ | Layout engine | `yoga-layout-wasm` (async) | `yoga-layout` 3.x (sync) |
92
+ | Module format | CJS + ESM | ESM-first with CJS fallback |
93
+
94
+ ### What You Need to Do
95
+
96
+ 1. **Upgrade React** to version 19.x:
97
+ ```bash
98
+ pnpm add react@19 react-dom@19
99
+ ```
100
+
101
+ 2. **Update imports** (if using `/common` export):
102
+ ```js
103
+ // No changes needed - API is the same
104
+ import { View, Text } from 'revas'
105
+ import { View, Text } from 'revas/common'
106
+ ```
107
+
108
+ ### Layout Engine Changes
109
+
110
+ The layout engine has been upgraded from `yoga-layout-wasm` to `yoga-layout` 3.x:
111
+
112
+ - **For most users**: No changes needed. The style API remains the same.
113
+ - **Performance**: Layout calculation is now synchronous (no async initialization).
114
+ - **Bundle size**: Slightly larger due to WASM being bundled differently.
115
+
116
+ **Supported Flexbox properties** (unchanged):
117
+ - Layout: `flex`, `flexDirection`, `justifyContent`, `alignItems`, `alignSelf`, `flexWrap`
118
+ - Sizing: `width`, `height`, `minWidth`, `maxWidth`, `minHeight`, `maxHeight`
119
+ - Spacing: `padding`, `margin`, `borderWidth`
120
+ - Positioning: `position` (`relative`, `absolute`, `static`), `top`, `left`, `right`, `bottom`
121
+
122
+ For full style reference, see [style.ts](https://github.com/pinqy520/revas/blob/master/src/revas/core/yoga-layout/style.ts).
123
+
124
+ ### For Custom Canvas Platforms
125
+
126
+ If you're using Revas on custom platforms (WeChat mini-games, ByteDance games), the `revas/common` export now uses synchronous yoga-layout. Remove any async initialization code:
127
+
128
+ ```js
129
+ // v1.x (old)
130
+ import { initYoga } from 'revas/common'
131
+ await initYoga() // ❌ No longer needed
132
+
133
+ // v2.x (new)
134
+ import { render } from 'revas/common'
135
+ render(...) // ✅ Works immediately
136
+ ```
137
+
78
138
  ## Other Framework
79
139
  - Vue - [huruji/vuvas](https://github.com/huruji/vuvas) by [@huruji](https://github.com/huruji)