onejs-react 0.1.5 → 0.1.6
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/package.json +2 -2
- package/src/style-parser.ts +38 -0
- package/src/types.ts +64 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "onejs-react",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"description": "React 19 renderer for OneJS (Unity UI Toolkit)",
|
|
5
5
|
"main": "src/index.ts",
|
|
6
6
|
"types": "src/index.ts",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
],
|
|
18
18
|
"repository": {
|
|
19
19
|
"type": "git",
|
|
20
|
-
"url": "https://github.com/Singtaa/onejs-react"
|
|
20
|
+
"url": "git+https://github.com/Singtaa/onejs-react.git"
|
|
21
21
|
},
|
|
22
22
|
"author": "Singtaa",
|
|
23
23
|
"scripts": {
|
package/src/style-parser.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
declare const CS: {
|
|
10
10
|
UnityEngine: {
|
|
11
11
|
Color: new (r: number, g: number, b: number, a: number) => CSColor;
|
|
12
|
+
FontStyle: Record<string, number>;
|
|
12
13
|
UIElements: {
|
|
13
14
|
Length: new (value: number, unit?: number) => CSLength;
|
|
14
15
|
LengthUnit: { Pixel: number; Percent: number };
|
|
@@ -24,6 +25,9 @@ declare const CS: {
|
|
|
24
25
|
Visibility: Record<string, number>;
|
|
25
26
|
WhiteSpace: Record<string, number>;
|
|
26
27
|
TextAnchor: Record<string, number>;
|
|
28
|
+
TextOverflow: Record<string, number>;
|
|
29
|
+
TextOverflowPosition: Record<string, number>;
|
|
30
|
+
OverflowClipBox: Record<string, number>;
|
|
27
31
|
};
|
|
28
32
|
};
|
|
29
33
|
};
|
|
@@ -78,17 +82,20 @@ const LENGTH_PROPERTIES = new Set([
|
|
|
78
82
|
"borderWidth", "borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth",
|
|
79
83
|
"borderRadius", "borderTopLeftRadius", "borderTopRightRadius", "borderBottomLeftRadius", "borderBottomRightRadius",
|
|
80
84
|
"fontSize",
|
|
85
|
+
"letterSpacing", "wordSpacing", "unityTextOutlineWidth", "unityParagraphSpacing",
|
|
81
86
|
])
|
|
82
87
|
|
|
83
88
|
// Style properties that expect color values
|
|
84
89
|
const COLOR_PROPERTIES = new Set([
|
|
85
90
|
"color", "backgroundColor",
|
|
86
91
|
"borderColor", "borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor",
|
|
92
|
+
"unityTextOutlineColor", "unityBackgroundImageTintColor",
|
|
87
93
|
])
|
|
88
94
|
|
|
89
95
|
// Style properties that are plain numbers (no Length wrapper needed)
|
|
90
96
|
const NUMBER_PROPERTIES = new Set([
|
|
91
97
|
"flexGrow", "flexShrink", "opacity",
|
|
98
|
+
"unitySliceTop", "unitySliceRight", "unitySliceBottom", "unitySliceLeft", "unitySliceScale",
|
|
92
99
|
])
|
|
93
100
|
|
|
94
101
|
// Enum property mappings: React style value -> Unity enum value
|
|
@@ -186,6 +193,37 @@ const ENUM_MAPPINGS: Record<string, { enum: () => Record<string, number>, values
|
|
|
186
193
|
"nowrap": "NoWrap",
|
|
187
194
|
}
|
|
188
195
|
},
|
|
196
|
+
unityFontStyleAndWeight: {
|
|
197
|
+
enum: () => CS.UnityEngine.FontStyle,
|
|
198
|
+
values: {
|
|
199
|
+
"normal": "Normal",
|
|
200
|
+
"bold": "Bold",
|
|
201
|
+
"italic": "Italic",
|
|
202
|
+
"bold-and-italic": "BoldAndItalic",
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
textOverflow: {
|
|
206
|
+
enum: () => CS.UnityEngine.UIElements.TextOverflow,
|
|
207
|
+
values: {
|
|
208
|
+
"clip": "Clip",
|
|
209
|
+
"ellipsis": "Ellipsis",
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
unityTextOverflowPosition: {
|
|
213
|
+
enum: () => CS.UnityEngine.UIElements.TextOverflowPosition,
|
|
214
|
+
values: {
|
|
215
|
+
"end": "End",
|
|
216
|
+
"start": "Start",
|
|
217
|
+
"middle": "Middle",
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
unityOverflowClipBox: {
|
|
221
|
+
enum: () => CS.UnityEngine.UIElements.OverflowClipBox,
|
|
222
|
+
values: {
|
|
223
|
+
"padding-box": "PaddingBox",
|
|
224
|
+
"content-box": "ContentBox",
|
|
225
|
+
}
|
|
226
|
+
},
|
|
189
227
|
}
|
|
190
228
|
|
|
191
229
|
/**
|
package/src/types.ts
CHANGED
|
@@ -127,6 +127,70 @@ export interface ViewStyle {
|
|
|
127
127
|
/** Text alignment. Note: Use USS class or stylesheet for -unity-font-style (italic/bold) */
|
|
128
128
|
unityTextAlign?: 'upper-left' | 'upper-center' | 'upper-right' | 'middle-left' | 'middle-center' | 'middle-right' | 'lower-left' | 'lower-center' | 'lower-right';
|
|
129
129
|
whiteSpace?: 'normal' | 'nowrap';
|
|
130
|
+
|
|
131
|
+
// Typography
|
|
132
|
+
/** C# Font object */
|
|
133
|
+
unityFont?: any;
|
|
134
|
+
/** C# FontDefinition object */
|
|
135
|
+
unityFontDefinition?: any;
|
|
136
|
+
/** Font style and weight */
|
|
137
|
+
unityFontStyleAndWeight?: 'normal' | 'bold' | 'italic' | 'bold-and-italic';
|
|
138
|
+
/** Spacing between characters */
|
|
139
|
+
letterSpacing?: StyleLength;
|
|
140
|
+
/** Spacing between words */
|
|
141
|
+
wordSpacing?: StyleLength;
|
|
142
|
+
/** Spacing between paragraphs */
|
|
143
|
+
unityParagraphSpacing?: StyleLength;
|
|
144
|
+
/** Text outline color */
|
|
145
|
+
unityTextOutlineColor?: StyleColor;
|
|
146
|
+
/** Text outline width */
|
|
147
|
+
unityTextOutlineWidth?: StyleLength;
|
|
148
|
+
/** How overflowing text is handled */
|
|
149
|
+
textOverflow?: 'clip' | 'ellipsis';
|
|
150
|
+
/** Position of text overflow indicator */
|
|
151
|
+
unityTextOverflowPosition?: 'end' | 'start' | 'middle';
|
|
152
|
+
|
|
153
|
+
// Background (additional)
|
|
154
|
+
/** Tint color applied to the background image */
|
|
155
|
+
unityBackgroundImageTintColor?: StyleColor;
|
|
156
|
+
|
|
157
|
+
// Slicing
|
|
158
|
+
/** 9-slice top inset */
|
|
159
|
+
unitySliceTop?: number;
|
|
160
|
+
/** 9-slice right inset */
|
|
161
|
+
unitySliceRight?: number;
|
|
162
|
+
/** 9-slice bottom inset */
|
|
163
|
+
unitySliceBottom?: number;
|
|
164
|
+
/** 9-slice left inset */
|
|
165
|
+
unitySliceLeft?: number;
|
|
166
|
+
/** Scale applied to 9-slice borders */
|
|
167
|
+
unitySliceScale?: number;
|
|
168
|
+
|
|
169
|
+
// Transform
|
|
170
|
+
/** Rotation transform. Pass a C# Rotate struct. */
|
|
171
|
+
rotate?: any;
|
|
172
|
+
/** Scale transform. Pass a C# Scale struct. */
|
|
173
|
+
scale?: any;
|
|
174
|
+
/** Translation transform. Pass a C# Translate struct. */
|
|
175
|
+
translate?: any;
|
|
176
|
+
/** Transform origin point. Pass a C# TransformOrigin struct. */
|
|
177
|
+
transformOrigin?: any;
|
|
178
|
+
|
|
179
|
+
// Transition
|
|
180
|
+
/** Delay before transitions start. Pass a C# StyleList. */
|
|
181
|
+
transitionDelay?: any;
|
|
182
|
+
/** Duration of transitions. Pass a C# StyleList. */
|
|
183
|
+
transitionDuration?: any;
|
|
184
|
+
/** Properties to transition. Pass a C# StyleList. */
|
|
185
|
+
transitionProperty?: any;
|
|
186
|
+
/** Timing functions for transitions. Pass a C# StyleList. */
|
|
187
|
+
transitionTimingFunction?: any;
|
|
188
|
+
|
|
189
|
+
// Other
|
|
190
|
+
/** Overflow clipping box */
|
|
191
|
+
unityOverflowClipBox?: 'padding-box' | 'content-box';
|
|
192
|
+
/** Cursor style. Pass a C# Cursor struct. */
|
|
193
|
+
cursor?: any;
|
|
130
194
|
}
|
|
131
195
|
|
|
132
196
|
// Event types
|