@threlte/flex 0.0.2 → 0.0.4
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/dist/Box/Box.svelte +9 -3
- package/dist/Box/Box.svelte.d.ts +17 -61
- package/dist/Flex/Flex.svelte +1 -1
- package/dist/Flex/Flex.svelte.d.ts +15 -60
- package/dist/Flex/InnerFlex.svelte.d.ts +13 -20
- package/dist/Flex/Innerflex.svelte.d.ts +34 -0
- package/dist/parsers/tailwindParser.js +35 -1
- package/package.json +2 -2
package/dist/Box/Box.svelte
CHANGED
|
@@ -19,6 +19,12 @@ onDestroy(() => {
|
|
|
19
19
|
});
|
|
20
20
|
let computedWidth = 1;
|
|
21
21
|
let computedHeight = 1;
|
|
22
|
+
/**
|
|
23
|
+
* Untrack contentGroup
|
|
24
|
+
*/
|
|
25
|
+
const getContentGroup = () => {
|
|
26
|
+
return contentGroup;
|
|
27
|
+
};
|
|
22
28
|
// after the parent has been reflowed, we can use the calculated layout to set the properties of the box
|
|
23
29
|
onEvent('reflow:after', () => {
|
|
24
30
|
computedWidth =
|
|
@@ -29,9 +35,9 @@ onEvent('reflow:after', () => {
|
|
|
29
35
|
typeof $$restProps.height === 'number'
|
|
30
36
|
? $$restProps.height
|
|
31
37
|
: node.getComputedHeight() / $scaleFactor;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
38
|
+
getContentGroup().position[$mainAxis] = computedWidth / 2;
|
|
39
|
+
getContentGroup().position[$crossAxis] = -computedHeight / 2;
|
|
40
|
+
getContentGroup().position[$depthAxis] = 0;
|
|
35
41
|
});
|
|
36
42
|
</script>
|
|
37
43
|
|
package/dist/Box/Box.svelte.d.ts
CHANGED
|
@@ -1,62 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
node?: any;
|
|
8
|
-
alignItems?: string | number | symbol | undefined;
|
|
9
|
-
alignSelf?: string | number | symbol | undefined;
|
|
10
|
-
alignContent?: string | number | symbol | undefined;
|
|
11
|
-
justifyContent?: string | number | symbol | undefined;
|
|
12
|
-
flexDirection?: string | number | symbol | undefined;
|
|
13
|
-
flexWrap?: string | number | symbol | undefined;
|
|
14
|
-
flex?: unknown;
|
|
15
|
-
flexBasis?: unknown;
|
|
16
|
-
flexGrow?: unknown;
|
|
17
|
-
flexShrink?: unknown;
|
|
18
|
-
height?: unknown;
|
|
19
|
-
width?: unknown;
|
|
20
|
-
maxHeight?: unknown;
|
|
21
|
-
maxWidth?: unknown;
|
|
22
|
-
minHeight?: unknown;
|
|
23
|
-
minWidth?: unknown;
|
|
24
|
-
top?: unknown;
|
|
25
|
-
right?: unknown;
|
|
26
|
-
bottom?: unknown;
|
|
27
|
-
left?: unknown;
|
|
28
|
-
padding?: unknown;
|
|
29
|
-
paddingTop?: unknown;
|
|
30
|
-
paddingRight?: unknown;
|
|
31
|
-
paddingBottom?: unknown;
|
|
32
|
-
paddingLeft?: unknown;
|
|
33
|
-
margin?: unknown;
|
|
34
|
-
marginTop?: unknown;
|
|
35
|
-
marginRight?: unknown;
|
|
36
|
-
marginBottom?: unknown;
|
|
37
|
-
marginLeft?: unknown;
|
|
38
|
-
gap?: unknown;
|
|
39
|
-
gapColumn?: unknown;
|
|
40
|
-
gapRow?: unknown;
|
|
41
|
-
aspectRatio?: unknown;
|
|
42
|
-
order?: number | undefined;
|
|
43
|
-
class?: string | undefined;
|
|
44
|
-
};
|
|
45
|
-
events: {
|
|
46
|
-
[evt: string]: CustomEvent<any>;
|
|
47
|
-
};
|
|
48
|
-
slots: {
|
|
49
|
-
default: {
|
|
50
|
-
width: number;
|
|
51
|
-
height: number;
|
|
52
|
-
};
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
export type BoxProps = typeof __propDef.props;
|
|
56
|
-
export type BoxEvents = typeof __propDef.events;
|
|
57
|
-
export type BoxSlots = typeof __propDef.slots;
|
|
58
|
-
export default class Box extends SvelteComponentTyped<BoxProps, BoxEvents, BoxSlots> {
|
|
59
|
-
get group(): Group;
|
|
60
|
-
get contentGroup(): Group;
|
|
1
|
+
import { SvelteComponent } from 'svelte'
|
|
2
|
+
import type { NodeProps } from '../lib/props'
|
|
3
|
+
|
|
4
|
+
type BoxProps = NodeProps & {
|
|
5
|
+
order?: number
|
|
6
|
+
class?: string
|
|
61
7
|
}
|
|
62
|
-
|
|
8
|
+
|
|
9
|
+
type BoxEvents = {}
|
|
10
|
+
|
|
11
|
+
type BoxSlots = {
|
|
12
|
+
default: {
|
|
13
|
+
width: number
|
|
14
|
+
height: number
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export default class Box extends SvelteComponent<BoxProps, BoxEvents, BoxSlots> {}
|
package/dist/Flex/Flex.svelte
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script>import { forwardEventHandlers } from '@threlte/core';
|
|
2
2
|
import { loadYoga } from 'yoga-layout';
|
|
3
|
-
import InnerFlex from './
|
|
3
|
+
import InnerFlex from './Innerflex.svelte';
|
|
4
4
|
let yoga;
|
|
5
5
|
const initialize = async () => {
|
|
6
6
|
yoga = await loadYoga();
|
|
@@ -1,61 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
direction?: string | number | symbol | undefined;
|
|
15
|
-
flexBasis?: unknown;
|
|
16
|
-
flexDirection?: string | number | symbol | undefined;
|
|
17
|
-
flexGrow?: unknown;
|
|
18
|
-
flexShrink?: unknown;
|
|
19
|
-
flexWrap?: string | number | symbol | undefined;
|
|
20
|
-
gap?: unknown;
|
|
21
|
-
justifyContent?: string | number | symbol | undefined;
|
|
22
|
-
margin?: unknown;
|
|
23
|
-
marginBottom?: unknown;
|
|
24
|
-
marginLeft?: unknown;
|
|
25
|
-
marginRight?: unknown;
|
|
26
|
-
marginTop?: unknown;
|
|
27
|
-
maxHeight?: unknown;
|
|
28
|
-
maxWidth?: unknown;
|
|
29
|
-
minHeight?: unknown;
|
|
30
|
-
minWidth?: unknown;
|
|
31
|
-
padding?: unknown;
|
|
32
|
-
paddingBottom?: unknown;
|
|
33
|
-
paddingLeft?: unknown;
|
|
34
|
-
paddingRight?: unknown;
|
|
35
|
-
paddingTop?: unknown;
|
|
36
|
-
right?: unknown;
|
|
37
|
-
class?: string | undefined;
|
|
38
|
-
plane?: import("../lib/props").FlexPlane | undefined;
|
|
39
|
-
gapColumn?: unknown;
|
|
40
|
-
gapRow?: unknown;
|
|
41
|
-
scaleFactor?: number | undefined;
|
|
42
|
-
classParser?: import("../lib/props").ClassParser | undefined;
|
|
43
|
-
};
|
|
44
|
-
slots: {
|
|
45
|
-
default: {
|
|
46
|
-
reflow: () => void;
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
events: {
|
|
50
|
-
reflow: {
|
|
51
|
-
width: number;
|
|
52
|
-
height: number;
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
export type FlexProps = typeof __propDef.props;
|
|
57
|
-
export type FlexEvents = typeof __propDef.events;
|
|
58
|
-
export type FlexSlots = typeof __propDef.slots;
|
|
59
|
-
export default class Flex extends SvelteComponentTyped<FlexProps, FlexEvents, FlexSlots> {
|
|
1
|
+
import { SvelteComponent } from 'svelte'
|
|
2
|
+
import type { ComponentEvents, ComponentProps } from 'svelte'
|
|
3
|
+
import type InnerFlex from './InnerFlex.svelte'
|
|
4
|
+
|
|
5
|
+
type FlexProps = Omit<ComponentProps<InnerFlex>, 'yoga'>
|
|
6
|
+
|
|
7
|
+
type FlexEvents = ComponentEvents<InnerFlex>
|
|
8
|
+
|
|
9
|
+
// Currently, there's no svelte helper to get the slots of a component.
|
|
10
|
+
type FlexSlots = {
|
|
11
|
+
default: {
|
|
12
|
+
reflow: () => void
|
|
13
|
+
}
|
|
60
14
|
}
|
|
61
|
-
|
|
15
|
+
|
|
16
|
+
export default class Flex extends SvelteComponent<FlexProps, FlexEvents, FlexSlots> {}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import type { InnerFlexEvents, InnerFlexProps, InnerFlexSlots } from './Innerflex.svelte';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
5
5
|
alignItems?: string | number | symbol | undefined;
|
|
@@ -37,27 +37,20 @@ declare const __propDef: {
|
|
|
37
37
|
gapRow?: unknown;
|
|
38
38
|
aspectRatio?: unknown;
|
|
39
39
|
yoga: Yoga;
|
|
40
|
-
plane?: FlexPlane | undefined;
|
|
40
|
+
plane?: import("../lib/props").FlexPlane | undefined;
|
|
41
41
|
direction?: string | number | symbol | undefined;
|
|
42
42
|
scaleFactor?: number | undefined;
|
|
43
43
|
class?: string | undefined;
|
|
44
|
-
classParser?: ClassParser | undefined;
|
|
45
|
-
};
|
|
46
|
-
slots: {
|
|
47
|
-
default: {
|
|
48
|
-
reflow: () => void;
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
|
-
events: {
|
|
52
|
-
reflow: {
|
|
53
|
-
width: number;
|
|
54
|
-
height: number;
|
|
55
|
-
};
|
|
44
|
+
classParser?: import("../lib/props").ClassParser | undefined;
|
|
56
45
|
};
|
|
46
|
+
slots: InnerFlexSlots;
|
|
47
|
+
events: InnerFlexEvents;
|
|
57
48
|
};
|
|
58
|
-
|
|
59
|
-
export
|
|
60
|
-
|
|
61
|
-
export
|
|
49
|
+
type InnerFlexProps_ = typeof __propDef.props;
|
|
50
|
+
export { InnerFlexProps_ as InnerFlexProps };
|
|
51
|
+
type InnerFlexEvents_ = typeof __propDef.events;
|
|
52
|
+
export { InnerFlexEvents_ as InnerFlexEvents };
|
|
53
|
+
type InnerFlexSlots_ = typeof __propDef.slots;
|
|
54
|
+
export { InnerFlexSlots_ as InnerFlexSlots };
|
|
55
|
+
export default class InnerFlex extends SvelteComponent<InnerFlexProps, InnerFlexEvents, InnerFlexSlots> {
|
|
62
56
|
}
|
|
63
|
-
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { SvelteComponent } from 'svelte'
|
|
2
|
+
import type { Direction, Yoga } from 'yoga-layout'
|
|
3
|
+
import type { NodeProps } from '../lib/props'
|
|
4
|
+
import type { ClassParser, FlexPlane } from '../lib/props'
|
|
5
|
+
|
|
6
|
+
type InnerFlexProps = NodeProps & {
|
|
7
|
+
yoga: Yoga
|
|
8
|
+
width?: number
|
|
9
|
+
height?: number
|
|
10
|
+
plane?: FlexPlane
|
|
11
|
+
direction?: keyof typeof Direction
|
|
12
|
+
scaleFactor?: number
|
|
13
|
+
class?: string
|
|
14
|
+
classParser?: ClassParser
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
type InnerFlexEvents = {
|
|
18
|
+
reflow: {
|
|
19
|
+
width: number
|
|
20
|
+
height: number
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
type InnerFlexSlots = {
|
|
25
|
+
default: {
|
|
26
|
+
reflow: () => void
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export default class InnerFlex extends SvelteComponent<
|
|
31
|
+
InnerFlexProps,
|
|
32
|
+
InnerFlexEvents,
|
|
33
|
+
InnerFlexSlots
|
|
34
|
+
> {}
|
|
@@ -127,19 +127,25 @@ export const tailwindParser = createClassParser((string) => {
|
|
|
127
127
|
switch (className) {
|
|
128
128
|
case 'flex-row':
|
|
129
129
|
styles.flexDirection = 'Row';
|
|
130
|
+
break;
|
|
130
131
|
case 'flex-row-reverse':
|
|
131
132
|
styles.flexDirection = 'RowReverse';
|
|
133
|
+
break;
|
|
132
134
|
case 'flex-col':
|
|
133
135
|
styles.flexDirection = 'Column';
|
|
136
|
+
break;
|
|
134
137
|
case 'flex-col-reverse':
|
|
135
138
|
styles.flexDirection = 'ColumnReverse';
|
|
136
|
-
|
|
139
|
+
break;
|
|
137
140
|
case 'flex-wrap':
|
|
138
141
|
styles.flexWrap = 'Wrap';
|
|
142
|
+
break;
|
|
139
143
|
case 'flex-wrap-reverse':
|
|
140
144
|
styles.flexWrap = 'WrapReverse';
|
|
145
|
+
break;
|
|
141
146
|
case 'flex-nowrap':
|
|
142
147
|
styles.flexWrap = 'NoWrap';
|
|
148
|
+
break;
|
|
143
149
|
default:
|
|
144
150
|
// flex shorthand
|
|
145
151
|
const [, value] = className.split('-');
|
|
@@ -151,16 +157,22 @@ export const tailwindParser = createClassParser((string) => {
|
|
|
151
157
|
switch (className) {
|
|
152
158
|
case 'justify-start':
|
|
153
159
|
styles.justifyContent = 'FlexStart';
|
|
160
|
+
break;
|
|
154
161
|
case 'justify-end':
|
|
155
162
|
styles.justifyContent = 'FlexEnd';
|
|
163
|
+
break;
|
|
156
164
|
case 'justify-center':
|
|
157
165
|
styles.justifyContent = 'Center';
|
|
166
|
+
break;
|
|
158
167
|
case 'justify-between':
|
|
159
168
|
styles.justifyContent = 'SpaceBetween';
|
|
169
|
+
break;
|
|
160
170
|
case 'justify-around':
|
|
161
171
|
styles.justifyContent = 'SpaceAround';
|
|
172
|
+
break;
|
|
162
173
|
case 'justify-evenly':
|
|
163
174
|
styles.justifyContent = 'SpaceEvenly';
|
|
175
|
+
break;
|
|
164
176
|
}
|
|
165
177
|
}
|
|
166
178
|
// align-items
|
|
@@ -168,14 +180,19 @@ export const tailwindParser = createClassParser((string) => {
|
|
|
168
180
|
switch (className) {
|
|
169
181
|
case 'items-start':
|
|
170
182
|
styles.alignItems = 'FlexStart';
|
|
183
|
+
break;
|
|
171
184
|
case 'items-end':
|
|
172
185
|
styles.alignItems = 'FlexEnd';
|
|
186
|
+
break;
|
|
173
187
|
case 'items-center':
|
|
174
188
|
styles.alignItems = 'Center';
|
|
189
|
+
break;
|
|
175
190
|
case 'items-baseline':
|
|
176
191
|
styles.alignItems = 'Baseline';
|
|
192
|
+
break;
|
|
177
193
|
case 'items-stretch':
|
|
178
194
|
styles.alignItems = 'Stretch';
|
|
195
|
+
break;
|
|
179
196
|
}
|
|
180
197
|
}
|
|
181
198
|
// align-content
|
|
@@ -183,20 +200,28 @@ export const tailwindParser = createClassParser((string) => {
|
|
|
183
200
|
switch (className) {
|
|
184
201
|
case 'content-normal':
|
|
185
202
|
styles.alignContent = 'Auto';
|
|
203
|
+
break;
|
|
186
204
|
case 'content-start':
|
|
187
205
|
styles.alignContent = 'FlexStart';
|
|
206
|
+
break;
|
|
188
207
|
case 'content-end':
|
|
189
208
|
styles.alignContent = 'FlexEnd';
|
|
209
|
+
break;
|
|
190
210
|
case 'content-center':
|
|
191
211
|
styles.alignContent = 'Center';
|
|
212
|
+
break;
|
|
192
213
|
case 'content-between':
|
|
193
214
|
styles.alignContent = 'SpaceBetween';
|
|
215
|
+
break;
|
|
194
216
|
case 'content-around':
|
|
195
217
|
styles.alignContent = 'SpaceAround';
|
|
218
|
+
break;
|
|
196
219
|
case 'content-stretch':
|
|
197
220
|
styles.alignContent = 'Stretch';
|
|
221
|
+
break;
|
|
198
222
|
case 'content-baseline':
|
|
199
223
|
styles.alignContent = 'Baseline';
|
|
224
|
+
break;
|
|
200
225
|
}
|
|
201
226
|
}
|
|
202
227
|
// align-self
|
|
@@ -204,16 +229,22 @@ export const tailwindParser = createClassParser((string) => {
|
|
|
204
229
|
switch (className) {
|
|
205
230
|
case 'self-auto':
|
|
206
231
|
styles.alignSelf = 'Auto';
|
|
232
|
+
break;
|
|
207
233
|
case 'self-start':
|
|
208
234
|
styles.alignSelf = 'FlexStart';
|
|
235
|
+
break;
|
|
209
236
|
case 'self-end':
|
|
210
237
|
styles.alignSelf = 'FlexEnd';
|
|
238
|
+
break;
|
|
211
239
|
case 'self-center':
|
|
212
240
|
styles.alignSelf = 'Center';
|
|
241
|
+
break;
|
|
213
242
|
case 'self-stretch':
|
|
214
243
|
styles.alignSelf = 'Stretch';
|
|
244
|
+
break;
|
|
215
245
|
case 'self-baseline':
|
|
216
246
|
styles.alignSelf = 'Baseline';
|
|
247
|
+
break;
|
|
217
248
|
}
|
|
218
249
|
}
|
|
219
250
|
// Gaps
|
|
@@ -251,10 +282,13 @@ export const tailwindParser = createClassParser((string) => {
|
|
|
251
282
|
switch (className) {
|
|
252
283
|
case 'aspect-square':
|
|
253
284
|
styles.aspectRatio = 1;
|
|
285
|
+
break;
|
|
254
286
|
case 'aspect-landscape':
|
|
255
287
|
styles.aspectRatio = 16 / 9;
|
|
288
|
+
break;
|
|
256
289
|
case 'aspect-portrait':
|
|
257
290
|
styles.aspectRatio = 9 / 16;
|
|
291
|
+
break;
|
|
258
292
|
default:
|
|
259
293
|
const [, value] = className.split('-');
|
|
260
294
|
const [width, height] = value.split('/');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@threlte/flex",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"author": "Grischa Erbe <hello@legrisch.com> (https://legrisch.com)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"devDependencies": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"typescript": "^5.0.0",
|
|
29
29
|
"vite": "^4.3.6",
|
|
30
30
|
"@threlte/core": "6.0.8",
|
|
31
|
-
"@threlte/extras": "5.
|
|
31
|
+
"@threlte/extras": "5.7.0"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"mitt": "^3.0.1",
|