@oxyhq/bloom 0.6.11 → 0.6.12
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/README.md +3 -1
- package/lib/commonjs/index.js +36 -36
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +38 -38
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/loading/Loading.js +1 -1
- package/lib/commonjs/loading/Loading.web.js +237 -0
- package/lib/commonjs/loading/Loading.web.js.map +1 -0
- package/lib/commonjs/loading/SpinnerIcon.web.js +144 -0
- package/lib/commonjs/loading/SpinnerIcon.web.js.map +1 -0
- package/lib/commonjs/loading/index.js +2 -2
- package/lib/commonjs/loading/index.web.js +20 -0
- package/lib/commonjs/loading/index.web.js.map +1 -0
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +1 -1
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/loading/Loading.js +1 -1
- package/lib/module/loading/Loading.js.map +1 -1
- package/lib/module/loading/Loading.web.js +232 -0
- package/lib/module/loading/Loading.web.js.map +1 -0
- package/lib/module/loading/SpinnerIcon.web.js +138 -0
- package/lib/module/loading/SpinnerIcon.web.js.map +1 -0
- package/lib/module/loading/index.js +2 -2
- package/lib/module/loading/index.js.map +1 -1
- package/lib/module/loading/index.web.js +18 -0
- package/lib/module/loading/index.web.js.map +1 -0
- package/lib/typescript/commonjs/index.web.d.ts +1 -1
- package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/loading/Loading.web.d.ts +4 -0
- package/lib/typescript/commonjs/loading/Loading.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/loading/SpinnerIcon.web.d.ts +17 -0
- package/lib/typescript/commonjs/loading/SpinnerIcon.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/loading/index.web.d.ts +4 -0
- package/lib/typescript/commonjs/loading/index.web.d.ts.map +1 -0
- package/lib/typescript/module/index.web.d.ts +1 -1
- package/lib/typescript/module/index.web.d.ts.map +1 -1
- package/lib/typescript/module/loading/Loading.web.d.ts +4 -0
- package/lib/typescript/module/loading/Loading.web.d.ts.map +1 -0
- package/lib/typescript/module/loading/SpinnerIcon.web.d.ts +17 -0
- package/lib/typescript/module/loading/SpinnerIcon.web.d.ts.map +1 -0
- package/lib/typescript/module/loading/index.web.d.ts +4 -0
- package/lib/typescript/module/loading/index.web.d.ts.map +1 -0
- package/package.json +6 -1
- package/src/index.web.ts +1 -1
- package/src/loading/Loading.web.tsx +244 -0
- package/src/loading/SpinnerIcon.web.tsx +134 -0
- package/src/loading/index.web.ts +24 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { memo, useMemo } from 'react';
|
|
4
|
+
import { View, Text, StyleSheet } from 'react-native';
|
|
5
|
+
import { useTheme } from "../theme/use-theme.js";
|
|
6
|
+
import { animation } from "../styles/tokens.js";
|
|
7
|
+
import { SpinnerIcon } from "./SpinnerIcon.web.js";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
const SIZE_CONFIG = {
|
|
10
|
+
small: {
|
|
11
|
+
spinner: 20,
|
|
12
|
+
text: 13
|
|
13
|
+
},
|
|
14
|
+
medium: {
|
|
15
|
+
spinner: 24,
|
|
16
|
+
text: 15
|
|
17
|
+
},
|
|
18
|
+
large: {
|
|
19
|
+
spinner: 44,
|
|
20
|
+
text: 16
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
const SpinnerLoading = ({
|
|
24
|
+
size = 'medium',
|
|
25
|
+
color,
|
|
26
|
+
className,
|
|
27
|
+
text,
|
|
28
|
+
textStyle,
|
|
29
|
+
style,
|
|
30
|
+
showText = true,
|
|
31
|
+
iconSize,
|
|
32
|
+
spinnerIcon,
|
|
33
|
+
testID
|
|
34
|
+
}) => {
|
|
35
|
+
const theme = useTheme();
|
|
36
|
+
const sizeConfig = SIZE_CONFIG[size];
|
|
37
|
+
const effectiveIconSize = iconSize ?? sizeConfig.spinner;
|
|
38
|
+
const spinnerColor = className ? 'currentColor' : color ?? theme.colors.primary;
|
|
39
|
+
const textColor = color ?? theme.colors.textSecondary;
|
|
40
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
41
|
+
style: [styles.container, style],
|
|
42
|
+
testID: testID,
|
|
43
|
+
children: [spinnerIcon ?? /*#__PURE__*/_jsx(SpinnerIcon, {
|
|
44
|
+
size: effectiveIconSize,
|
|
45
|
+
color: spinnerColor,
|
|
46
|
+
className: className
|
|
47
|
+
}), showText && text && /*#__PURE__*/_jsx(Text, {
|
|
48
|
+
style: [styles.text, {
|
|
49
|
+
color: textColor,
|
|
50
|
+
fontSize: sizeConfig.text,
|
|
51
|
+
marginTop: 8
|
|
52
|
+
}, textStyle],
|
|
53
|
+
children: text
|
|
54
|
+
})]
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Web fork of the `top` variant.
|
|
60
|
+
*
|
|
61
|
+
* The native variant collapses/expands the container height and slides the
|
|
62
|
+
* spinner in/out with `react-native-reanimated`. Reanimated can't ship to a
|
|
63
|
+
* web bundle (its worklets Babel plugin has no web equivalent and importing it
|
|
64
|
+
* statically breaks the bundler), so this fork drives the same motion with CSS
|
|
65
|
+
* transitions — react-native-web emits `transition-*` style props to the DOM.
|
|
66
|
+
* The element stays mounted across `showLoading` toggles so both directions
|
|
67
|
+
* animate, exactly like the native `withTiming` on `height`, `opacity`, and
|
|
68
|
+
* `translateY`.
|
|
69
|
+
*/
|
|
70
|
+
const TopLoading = ({
|
|
71
|
+
size = 'medium',
|
|
72
|
+
color,
|
|
73
|
+
style,
|
|
74
|
+
showLoading = true,
|
|
75
|
+
iconSize,
|
|
76
|
+
heightOffset = 0,
|
|
77
|
+
spinnerIcon,
|
|
78
|
+
testID
|
|
79
|
+
}) => {
|
|
80
|
+
const theme = useTheme();
|
|
81
|
+
const sizeConfig = SIZE_CONFIG[size];
|
|
82
|
+
const effectiveIconSize = iconSize ?? sizeConfig.spinner;
|
|
83
|
+
const targetHeight = Math.max(0, effectiveIconSize + sizeConfig.spinner + heightOffset);
|
|
84
|
+
const spinnerColor = color ?? theme.colors.primary;
|
|
85
|
+
const duration = animation.duration.slow;
|
|
86
|
+
// `cubic-bezier(0.33, 1, 0.68, 1)` is the standard CSS approximation of
|
|
87
|
+
// reanimated's `Easing.out(Easing.cubic)` used by the native variant.
|
|
88
|
+
const easing = 'cubic-bezier(0.33, 1, 0.68, 1)';
|
|
89
|
+
const containerTransition = {
|
|
90
|
+
transitionProperty: 'height',
|
|
91
|
+
transitionDuration: `${duration}ms`,
|
|
92
|
+
transitionTimingFunction: easing
|
|
93
|
+
};
|
|
94
|
+
const innerTransition = {
|
|
95
|
+
transitionProperty: 'opacity, transform',
|
|
96
|
+
transitionDuration: `${duration}ms`,
|
|
97
|
+
transitionTimingFunction: easing
|
|
98
|
+
};
|
|
99
|
+
return /*#__PURE__*/_jsx(View, {
|
|
100
|
+
style: [styles.topContainer, {
|
|
101
|
+
height: showLoading ? targetHeight : 0
|
|
102
|
+
}, containerTransition],
|
|
103
|
+
testID: testID,
|
|
104
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
105
|
+
style: [styles.topLoadingView, {
|
|
106
|
+
height: targetHeight
|
|
107
|
+
}, {
|
|
108
|
+
opacity: showLoading ? 1 : 0,
|
|
109
|
+
transform: [{
|
|
110
|
+
translateY: showLoading ? 0 : -targetHeight
|
|
111
|
+
}]
|
|
112
|
+
}, innerTransition, style],
|
|
113
|
+
children: spinnerIcon ?? /*#__PURE__*/_jsx(SpinnerIcon, {
|
|
114
|
+
size: effectiveIconSize,
|
|
115
|
+
color: spinnerColor
|
|
116
|
+
})
|
|
117
|
+
})
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
const SkeletonLoading = ({
|
|
121
|
+
lines = 3,
|
|
122
|
+
width = '100%',
|
|
123
|
+
lineHeight = 16,
|
|
124
|
+
style,
|
|
125
|
+
testID
|
|
126
|
+
}) => {
|
|
127
|
+
const theme = useTheme();
|
|
128
|
+
const skeletonColor = theme.colors.backgroundSecondary;
|
|
129
|
+
const skeletonLines = useMemo(() => Array.from({
|
|
130
|
+
length: lines
|
|
131
|
+
}, (_, index) => /*#__PURE__*/_jsx(View, {
|
|
132
|
+
style: [styles.skeletonLine, {
|
|
133
|
+
width: typeof width === 'string' ? width : `${width}%`,
|
|
134
|
+
height: lineHeight,
|
|
135
|
+
backgroundColor: skeletonColor,
|
|
136
|
+
marginBottom: index < lines - 1 ? 8 : 0
|
|
137
|
+
}]
|
|
138
|
+
}, index)), [lines, width, lineHeight, skeletonColor]);
|
|
139
|
+
return /*#__PURE__*/_jsx(View, {
|
|
140
|
+
style: [styles.skeletonContainer, style],
|
|
141
|
+
testID: testID,
|
|
142
|
+
children: skeletonLines
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
const InlineLoading = ({
|
|
146
|
+
size = 'small',
|
|
147
|
+
color,
|
|
148
|
+
text,
|
|
149
|
+
style,
|
|
150
|
+
textStyle,
|
|
151
|
+
spinnerIcon,
|
|
152
|
+
testID
|
|
153
|
+
}) => {
|
|
154
|
+
const theme = useTheme();
|
|
155
|
+
const sizeConfig = SIZE_CONFIG[size];
|
|
156
|
+
const spinnerColor = color ?? theme.colors.primary;
|
|
157
|
+
const textColor = theme.colors.textSecondary;
|
|
158
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
159
|
+
style: [styles.inlineContainer, style],
|
|
160
|
+
testID: testID,
|
|
161
|
+
children: [spinnerIcon ?? /*#__PURE__*/_jsx(SpinnerIcon, {
|
|
162
|
+
size: SIZE_CONFIG.small.spinner,
|
|
163
|
+
color: spinnerColor
|
|
164
|
+
}), text && /*#__PURE__*/_jsx(Text, {
|
|
165
|
+
style: [{
|
|
166
|
+
color: textColor,
|
|
167
|
+
fontSize: sizeConfig.text,
|
|
168
|
+
marginLeft: 8
|
|
169
|
+
}, textStyle],
|
|
170
|
+
children: text
|
|
171
|
+
})]
|
|
172
|
+
});
|
|
173
|
+
};
|
|
174
|
+
const LoadingComponent = props => {
|
|
175
|
+
const variant = props.variant ?? 'spinner';
|
|
176
|
+
switch (variant) {
|
|
177
|
+
case 'top':
|
|
178
|
+
return /*#__PURE__*/_jsx(TopLoading, {
|
|
179
|
+
...props
|
|
180
|
+
});
|
|
181
|
+
case 'skeleton':
|
|
182
|
+
return /*#__PURE__*/_jsx(SkeletonLoading, {
|
|
183
|
+
...props
|
|
184
|
+
});
|
|
185
|
+
case 'inline':
|
|
186
|
+
return /*#__PURE__*/_jsx(InlineLoading, {
|
|
187
|
+
...props
|
|
188
|
+
});
|
|
189
|
+
case 'spinner':
|
|
190
|
+
default:
|
|
191
|
+
return /*#__PURE__*/_jsx(SpinnerLoading, {
|
|
192
|
+
...props
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
export const Loading = /*#__PURE__*/memo(LoadingComponent);
|
|
197
|
+
Loading.displayName = 'Loading';
|
|
198
|
+
const styles = StyleSheet.create({
|
|
199
|
+
container: {
|
|
200
|
+
alignItems: 'center',
|
|
201
|
+
justifyContent: 'center',
|
|
202
|
+
padding: 16
|
|
203
|
+
},
|
|
204
|
+
text: {
|
|
205
|
+
textAlign: 'center'
|
|
206
|
+
},
|
|
207
|
+
topContainer: {
|
|
208
|
+
width: '100%',
|
|
209
|
+
position: 'relative',
|
|
210
|
+
overflow: 'hidden'
|
|
211
|
+
},
|
|
212
|
+
topLoadingView: {
|
|
213
|
+
width: '100%',
|
|
214
|
+
alignItems: 'center',
|
|
215
|
+
justifyContent: 'center',
|
|
216
|
+
position: 'absolute',
|
|
217
|
+
top: 0,
|
|
218
|
+
left: 0
|
|
219
|
+
},
|
|
220
|
+
skeletonContainer: {
|
|
221
|
+
width: '100%'
|
|
222
|
+
},
|
|
223
|
+
skeletonLine: {
|
|
224
|
+
borderRadius: 4
|
|
225
|
+
},
|
|
226
|
+
inlineContainer: {
|
|
227
|
+
flexDirection: 'row',
|
|
228
|
+
alignItems: 'center',
|
|
229
|
+
justifyContent: 'center'
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
//# sourceMappingURL=Loading.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","memo","useMemo","View","Text","StyleSheet","useTheme","animation","SpinnerIcon","jsx","_jsx","jsxs","_jsxs","SIZE_CONFIG","small","spinner","text","medium","large","SpinnerLoading","size","color","className","textStyle","style","showText","iconSize","spinnerIcon","testID","theme","sizeConfig","effectiveIconSize","spinnerColor","colors","primary","textColor","textSecondary","styles","container","children","fontSize","marginTop","TopLoading","showLoading","heightOffset","targetHeight","Math","max","duration","slow","easing","containerTransition","transitionProperty","transitionDuration","transitionTimingFunction","innerTransition","topContainer","height","topLoadingView","opacity","transform","translateY","SkeletonLoading","lines","width","lineHeight","skeletonColor","backgroundSecondary","skeletonLines","Array","from","length","_","index","skeletonLine","backgroundColor","marginBottom","skeletonContainer","InlineLoading","inlineContainer","marginLeft","LoadingComponent","props","variant","Loading","displayName","create","alignItems","justifyContent","padding","textAlign","position","overflow","top","left","borderRadius","flexDirection"],"sourceRoot":"../../../src","sources":["loading/Loading.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useEffect } from 'react';
|
|
4
|
+
import { StyleSheet, View } from 'react-native';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
/**
|
|
7
|
+
* iOS-style spinner — 8 rotating blades with an opacity-gradient trail.
|
|
8
|
+
*
|
|
9
|
+
* Web fork of `./SpinnerIcon`. The native variant draws the blades with
|
|
10
|
+
* `react-native-svg` and spins them with `react-native-reanimated`. Neither
|
|
11
|
+
* dependency exists in a plain web bundle (and importing reanimated statically
|
|
12
|
+
* breaks any web bundler — its Babel worklets plugin has no web equivalent), so
|
|
13
|
+
* this fork renders the blades as plain `View`s and spins the container with a
|
|
14
|
+
* CSS `@keyframes` rotation injected once into `<head>`.
|
|
15
|
+
*
|
|
16
|
+
* The geometry mirrors the native SVG exactly. The SVG draws each blade on a
|
|
17
|
+
* 100×100 canvas as a `28×10` rounded rect with its top-left at `(67, 45)` —
|
|
18
|
+
* i.e. a blade whose centre sits `31` units to the right of the canvas centre
|
|
19
|
+
* `(50, 50)` — then rotates copies of it about the centre at
|
|
20
|
+
* `-90…225°` in `45°` steps with opacities `0…0.875`. Here each blade is a
|
|
21
|
+
* `View` centred on the container, then `rotate(θ) translateX(radius)` places
|
|
22
|
+
* its centre at distance `radius` from the container centre at angle `θ`. All
|
|
23
|
+
* lengths scale by `size / 100` so any `size` is pixel-identical to native.
|
|
24
|
+
*/
|
|
25
|
+
const SVG_CANVAS = 100;
|
|
26
|
+
const BLADE_WIDTH = 28;
|
|
27
|
+
const BLADE_HEIGHT = 10;
|
|
28
|
+
/** Distance from canvas centre to a blade's centre: (67 + 28/2) − 50 = 31. */
|
|
29
|
+
const BLADE_RADIUS = 31;
|
|
30
|
+
const BLADE_RADIUS_CORNER = BLADE_HEIGHT / 2;
|
|
31
|
+
|
|
32
|
+
/** Angle (deg) / opacity for each of the 8 blades, matching the native SVG. */
|
|
33
|
+
const BLADES = [{
|
|
34
|
+
angle: -90,
|
|
35
|
+
opacity: 0
|
|
36
|
+
}, {
|
|
37
|
+
angle: -45,
|
|
38
|
+
opacity: 0.125
|
|
39
|
+
}, {
|
|
40
|
+
angle: 0,
|
|
41
|
+
opacity: 0.25
|
|
42
|
+
}, {
|
|
43
|
+
angle: 45,
|
|
44
|
+
opacity: 0.375
|
|
45
|
+
}, {
|
|
46
|
+
angle: 90,
|
|
47
|
+
opacity: 0.5
|
|
48
|
+
}, {
|
|
49
|
+
angle: 135,
|
|
50
|
+
opacity: 0.625
|
|
51
|
+
}, {
|
|
52
|
+
angle: 180,
|
|
53
|
+
opacity: 0.75
|
|
54
|
+
}, {
|
|
55
|
+
angle: 225,
|
|
56
|
+
opacity: 0.875
|
|
57
|
+
}];
|
|
58
|
+
const SPIN_DURATION_MS = 400;
|
|
59
|
+
const KEYFRAMES_ID = 'bloom-spinner-keyframes';
|
|
60
|
+
const SPIN_ANIMATION_NAME = 'bloomSpinnerRotate';
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* CSS keyframes powering the spin. Injected once into `<head>` (keyed by id so
|
|
64
|
+
* multiple spinners and re-mounts don't duplicate the rule). Mirrors the
|
|
65
|
+
* native `withRepeat(withTiming(360, { duration: 400, easing: linear }))`.
|
|
66
|
+
*/
|
|
67
|
+
export const BLOOM_SPINNER_CSS = `
|
|
68
|
+
@keyframes ${SPIN_ANIMATION_NAME} { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
|
|
69
|
+
`;
|
|
70
|
+
function useKeyframes() {
|
|
71
|
+
useEffect(() => {
|
|
72
|
+
if (typeof document === 'undefined') return;
|
|
73
|
+
if (document.getElementById(KEYFRAMES_ID)) return;
|
|
74
|
+
const style = document.createElement('style');
|
|
75
|
+
style.id = KEYFRAMES_ID;
|
|
76
|
+
style.textContent = BLOOM_SPINNER_CSS;
|
|
77
|
+
document.head.appendChild(style);
|
|
78
|
+
}, []);
|
|
79
|
+
}
|
|
80
|
+
export const SpinnerIcon = ({
|
|
81
|
+
color = 'currentColor',
|
|
82
|
+
size = 26,
|
|
83
|
+
className,
|
|
84
|
+
style
|
|
85
|
+
}) => {
|
|
86
|
+
useKeyframes();
|
|
87
|
+
const scale = size / SVG_CANVAS;
|
|
88
|
+
const bladeWidth = BLADE_WIDTH * scale;
|
|
89
|
+
const bladeHeight = BLADE_HEIGHT * scale;
|
|
90
|
+
const bladeRadius = BLADE_RADIUS * scale;
|
|
91
|
+
const bladeCorner = BLADE_RADIUS_CORNER * scale;
|
|
92
|
+
return /*#__PURE__*/_jsx(View, {
|
|
93
|
+
...(className ? {
|
|
94
|
+
className
|
|
95
|
+
} : {}),
|
|
96
|
+
// `animation` is a real CSS prop on web; react-native-web passes it
|
|
97
|
+
// through to the DOM node. Typed as a cast because RN's ViewStyle has no
|
|
98
|
+
// `animation` key.
|
|
99
|
+
style: [styles.container, {
|
|
100
|
+
width: size,
|
|
101
|
+
height: size
|
|
102
|
+
}, {
|
|
103
|
+
animation: `${SPIN_ANIMATION_NAME} ${SPIN_DURATION_MS}ms linear infinite`
|
|
104
|
+
}, style],
|
|
105
|
+
children: BLADES.map(({
|
|
106
|
+
angle,
|
|
107
|
+
opacity
|
|
108
|
+
}) => /*#__PURE__*/_jsx(View, {
|
|
109
|
+
style: [styles.blade, {
|
|
110
|
+
width: bladeWidth,
|
|
111
|
+
height: bladeHeight,
|
|
112
|
+
borderRadius: bladeCorner,
|
|
113
|
+
backgroundColor: color,
|
|
114
|
+
opacity,
|
|
115
|
+
marginLeft: -bladeWidth / 2,
|
|
116
|
+
marginTop: -bladeHeight / 2,
|
|
117
|
+
transform: [{
|
|
118
|
+
rotate: `${angle}deg`
|
|
119
|
+
}, {
|
|
120
|
+
translateX: bladeRadius
|
|
121
|
+
}]
|
|
122
|
+
}]
|
|
123
|
+
}, angle))
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
SpinnerIcon.displayName = 'SpinnerIcon';
|
|
127
|
+
const styles = StyleSheet.create({
|
|
128
|
+
container: {
|
|
129
|
+
alignItems: 'center',
|
|
130
|
+
justifyContent: 'center'
|
|
131
|
+
},
|
|
132
|
+
blade: {
|
|
133
|
+
position: 'absolute',
|
|
134
|
+
top: '50%',
|
|
135
|
+
left: '50%'
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
//# sourceMappingURL=SpinnerIcon.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useEffect","StyleSheet","View","jsx","_jsx","SVG_CANVAS","BLADE_WIDTH","BLADE_HEIGHT","BLADE_RADIUS","BLADE_RADIUS_CORNER","BLADES","angle","opacity","SPIN_DURATION_MS","KEYFRAMES_ID","SPIN_ANIMATION_NAME","BLOOM_SPINNER_CSS","useKeyframes","document","getElementById","style","createElement","id","textContent","head","appendChild","SpinnerIcon","color","size","className","scale","bladeWidth","bladeHeight","bladeRadius","bladeCorner","styles","container","width","height","animation","children","map","blade","borderRadius","backgroundColor","marginLeft","marginTop","transform","rotate","translateX","displayName","create","alignItems","justifyContent","position","top","left"],"sourceRoot":"../../../src","sources":["loading/SpinnerIcon.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Loading","SpinnerIcon"],"sourceRoot":"../../../src","sources":["loading/index.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,
|
|
1
|
+
{"version":3,"names":["Loading","SpinnerIcon"],"sourceRoot":"../../../src","sources":["loading/index.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,WAAW;AACnC,SAASC,WAAW,QAAQ,eAAe","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Web variant of the `./loading` barrel.
|
|
4
|
+
//
|
|
5
|
+
// The default barrel (`./index.ts`) re-exports from `./Loading` and
|
|
6
|
+
// `./SpinnerIcon`, which statically import `react-native-reanimated` (and lazily
|
|
7
|
+
// `react-native-svg`). Reanimated has no web build — its worklets Babel plugin
|
|
8
|
+
// is native-only and importing it statically breaks every web bundler (Vite,
|
|
9
|
+
// webpack, Metro-web). The web forks (`./Loading.web`, `./SpinnerIcon.web`)
|
|
10
|
+
// render the same components with CSS keyframes/transitions and no native deps.
|
|
11
|
+
//
|
|
12
|
+
// Web bundlers select this file via the `"browser"` export condition in
|
|
13
|
+
// `package.json`'s `exports['./loading']`; native bundlers fall through to the
|
|
14
|
+
// React Native build above. Types are platform-agnostic, so they come straight
|
|
15
|
+
// from `./types`.
|
|
16
|
+
export { Loading } from "./Loading.web.js";
|
|
17
|
+
export { SpinnerIcon } from "./SpinnerIcon.web.js";
|
|
18
|
+
//# sourceMappingURL=index.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Loading","SpinnerIcon"],"sourceRoot":"../../../src","sources":["loading/index.web.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,kBAAe;AACvC,SAASC,WAAW,QAAQ,sBAAmB","ignoreList":[]}
|
|
@@ -19,7 +19,7 @@ export * from './collapsible';
|
|
|
19
19
|
export { ErrorBoundary } from './error-boundary';
|
|
20
20
|
export type { ErrorBoundaryProps, ErrorBoundaryFallback, ErrorBoundaryFallbackContext, } from './error-boundary';
|
|
21
21
|
export * from './avatar';
|
|
22
|
-
export * from './loading';
|
|
22
|
+
export * from './loading/index.web';
|
|
23
23
|
export * as PromptInput from './prompt-input';
|
|
24
24
|
export * from './switch';
|
|
25
25
|
export { toast, type Toast } from './toast/index.web';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"AAMA,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,KAAK,KAAK,IAAI,SAAS,EAAE,KAAK,IAAI,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGhG,cAAc,oBAAoB,CAAC;AACnC,OAAO,EACL,MAAM,EACN,cAAc,EACd,+BAA+B,EAC/B,mBAAmB,EACnB,KAAK,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Loading.web.d.ts","sourceRoot":"","sources":["../../../../src/loading/Loading.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAM7C,OAAO,KAAK,EACV,YAAY,EAKb,MAAM,SAAS,CAAC;AAmMjB,eAAO,MAAM,OAAO,0CAAyB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ViewStyle } from 'react-native';
|
|
3
|
+
interface SpinnerIconProps {
|
|
4
|
+
size?: number;
|
|
5
|
+
color?: string;
|
|
6
|
+
className?: string;
|
|
7
|
+
style?: ViewStyle;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* CSS keyframes powering the spin. Injected once into `<head>` (keyed by id so
|
|
11
|
+
* multiple spinners and re-mounts don't duplicate the rule). Mirrors the
|
|
12
|
+
* native `withRepeat(withTiming(360, { duration: 400, easing: linear }))`.
|
|
13
|
+
*/
|
|
14
|
+
export declare const BLOOM_SPINNER_CSS = "\n@keyframes bloomSpinnerRotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }\n";
|
|
15
|
+
export declare const SpinnerIcon: React.FC<SpinnerIconProps>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=SpinnerIcon.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpinnerIcon.web.d.ts","sourceRoot":"","sources":["../../../../src/loading/SpinnerIcon.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhE,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AA4CD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,8GAE7B,CAAC;AAaF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA+ClD,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { Loading } from './Loading.web';
|
|
2
|
+
export { SpinnerIcon } from './SpinnerIcon.web';
|
|
3
|
+
export type { LoadingProps, LoadingVariant, LoadingSize, SpinnerLoadingProps, TopLoadingProps, SkeletonLoadingProps, InlineLoadingProps, } from './types';
|
|
4
|
+
//# sourceMappingURL=index.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/loading/index.web.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
|
|
@@ -19,7 +19,7 @@ export * from './collapsible';
|
|
|
19
19
|
export { ErrorBoundary } from './error-boundary';
|
|
20
20
|
export type { ErrorBoundaryProps, ErrorBoundaryFallback, ErrorBoundaryFallbackContext, } from './error-boundary';
|
|
21
21
|
export * from './avatar';
|
|
22
|
-
export * from './loading';
|
|
22
|
+
export * from './loading/index.web';
|
|
23
23
|
export * as PromptInput from './prompt-input';
|
|
24
24
|
export * from './switch';
|
|
25
25
|
export { toast, type Toast } from './toast/index.web';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"AAMA,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,KAAK,KAAK,IAAI,SAAS,EAAE,KAAK,IAAI,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGhG,cAAc,oBAAoB,CAAC;AACnC,OAAO,EACL,MAAM,EACN,cAAc,EACd,+BAA+B,EAC/B,mBAAmB,EACnB,KAAK,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Loading.web.d.ts","sourceRoot":"","sources":["../../../../src/loading/Loading.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAM7C,OAAO,KAAK,EACV,YAAY,EAKb,MAAM,SAAS,CAAC;AAmMjB,eAAO,MAAM,OAAO,0CAAyB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ViewStyle } from 'react-native';
|
|
3
|
+
interface SpinnerIconProps {
|
|
4
|
+
size?: number;
|
|
5
|
+
color?: string;
|
|
6
|
+
className?: string;
|
|
7
|
+
style?: ViewStyle;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* CSS keyframes powering the spin. Injected once into `<head>` (keyed by id so
|
|
11
|
+
* multiple spinners and re-mounts don't duplicate the rule). Mirrors the
|
|
12
|
+
* native `withRepeat(withTiming(360, { duration: 400, easing: linear }))`.
|
|
13
|
+
*/
|
|
14
|
+
export declare const BLOOM_SPINNER_CSS = "\n@keyframes bloomSpinnerRotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }\n";
|
|
15
|
+
export declare const SpinnerIcon: React.FC<SpinnerIconProps>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=SpinnerIcon.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpinnerIcon.web.d.ts","sourceRoot":"","sources":["../../../../src/loading/SpinnerIcon.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhE,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AA4CD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,8GAE7B,CAAC;AAaF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA+ClD,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { Loading } from './Loading.web';
|
|
2
|
+
export { SpinnerIcon } from './SpinnerIcon.web';
|
|
3
|
+
export type { LoadingProps, LoadingVariant, LoadingSize, SpinnerLoadingProps, TopLoadingProps, SkeletonLoadingProps, InlineLoadingProps, } from './types';
|
|
4
|
+
//# sourceMappingURL=index.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/loading/index.web.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxyhq/bloom",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.12",
|
|
4
4
|
"description": "Bloom UI — Oxy ecosystem component library for React Native + Expo + Web",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -172,6 +172,11 @@
|
|
|
172
172
|
},
|
|
173
173
|
"./loading": {
|
|
174
174
|
"react-native": "./src/loading/index.ts",
|
|
175
|
+
"browser": {
|
|
176
|
+
"types": "./lib/typescript/module/loading/index.web.d.ts",
|
|
177
|
+
"import": "./lib/module/loading/index.web.js",
|
|
178
|
+
"require": "./lib/commonjs/loading/index.web.js"
|
|
179
|
+
},
|
|
175
180
|
"import": {
|
|
176
181
|
"types": "./lib/typescript/module/loading/index.d.ts",
|
|
177
182
|
"default": "./lib/module/loading/index.js"
|
package/src/index.web.ts
CHANGED
|
@@ -54,7 +54,7 @@ export type {
|
|
|
54
54
|
ErrorBoundaryFallbackContext,
|
|
55
55
|
} from './error-boundary';
|
|
56
56
|
export * from './avatar';
|
|
57
|
-
export * from './loading';
|
|
57
|
+
export * from './loading/index.web';
|
|
58
58
|
export * as PromptInput from './prompt-input';
|
|
59
59
|
export * from './switch';
|
|
60
60
|
export { toast, type Toast } from './toast/index.web';
|