@fluentui-react-native/experimental-shimmer 0.13.19 → 0.14.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.
- package/CHANGELOG.md +39 -0
- package/SPEC.md +2 -2
- package/lib/Shimmer.d.ts +7 -2
- package/lib/Shimmer.d.ts.map +1 -1
- package/lib/Shimmer.js +151 -90
- package/lib/Shimmer.js.map +1 -1
- package/lib/Shimmer.styling.d.ts +1 -1
- package/lib/Shimmer.styling.js +29 -26
- package/lib/Shimmer.styling.win32.d.ts +1 -1
- package/lib/Shimmer.styling.win32.js +36 -24
- package/lib/Shimmer.test.d.ts +1 -1
- package/lib/Shimmer.test.js +48 -44
- package/lib/Shimmer.test.js.map +1 -1
- package/lib/Shimmer.types.d.ts +10 -2
- package/lib/Shimmer.types.js +1 -1
- package/lib/Shimmer.types.shared.d.ts +123 -123
- package/lib/Shimmer.types.shared.js +1 -1
- package/lib/Shimmer.types.win32.d.ts +26 -26
- package/lib/Shimmer.types.win32.js +1 -1
- package/lib/Shimmer.win32.d.ts +7 -2
- package/lib/Shimmer.win32.d.ts.map +1 -1
- package/lib/Shimmer.win32.js +138 -114
- package/lib/Shimmer.win32.js.map +1 -1
- package/lib/ShimmerTokens.android.d.ts +1 -1
- package/lib/ShimmerTokens.android.js +8 -8
- package/lib/ShimmerTokens.android.js.map +1 -1
- package/lib/ShimmerTokens.d.ts +1 -1
- package/lib/ShimmerTokens.ios.d.ts +1 -1
- package/lib/ShimmerTokens.ios.js +8 -8
- package/lib/ShimmerTokens.ios.js.map +1 -1
- package/lib/ShimmerTokens.js +9 -9
- package/lib/ShimmerTokens.js.map +1 -1
- package/lib/ShimmerTokens.win32.d.ts +1 -1
- package/lib/ShimmerTokens.win32.js +10 -10
- package/lib/ShimmerTokens.win32.js.map +1 -1
- package/lib/SvgShapeToPath.d.ts +1 -1
- package/lib/SvgShapeToPath.js +134 -120
- package/lib/SvgShapeToPath.js.map +1 -1
- package/lib/Win32ShimmerNativeComponent.d.ts +5 -5
- package/lib/Win32ShimmerNativeComponent.d.ts.map +1 -1
- package/lib/Win32ShimmerNativeComponent.js +3 -3
- package/lib/Win32ShimmerNativeComponent.js.map +1 -1
- package/lib/consts.android.d.ts +1 -1
- package/lib/consts.android.js +1 -1
- package/lib/consts.d.ts +1 -1
- package/lib/consts.ios.d.ts +1 -1
- package/lib/consts.ios.js +1 -1
- package/lib/consts.js +1 -1
- package/lib/consts.win32.d.ts +1 -1
- package/lib/consts.win32.js +1 -1
- package/lib/index.d.ts +10 -2
- package/lib/index.js +1 -1
- package/lib-commonjs/Shimmer.d.ts +7 -2
- package/lib-commonjs/Shimmer.d.ts.map +1 -1
- package/lib-commonjs/Shimmer.js +164 -101
- package/lib-commonjs/Shimmer.js.map +1 -1
- package/lib-commonjs/Shimmer.styling.d.ts +1 -1
- package/lib-commonjs/Shimmer.styling.js +34 -31
- package/lib-commonjs/Shimmer.styling.win32.d.ts +1 -1
- package/lib-commonjs/Shimmer.styling.win32.js +41 -29
- package/lib-commonjs/Shimmer.test.d.ts +1 -1
- package/lib-commonjs/Shimmer.test.js +102 -71
- package/lib-commonjs/Shimmer.test.js.map +1 -1
- package/lib-commonjs/Shimmer.types.d.ts +10 -2
- package/lib-commonjs/Shimmer.types.js +10 -5
- package/lib-commonjs/Shimmer.types.js.map +1 -1
- package/lib-commonjs/Shimmer.types.shared.d.ts +123 -123
- package/lib-commonjs/Shimmer.types.shared.js +3 -3
- package/lib-commonjs/Shimmer.types.win32.d.ts +26 -26
- package/lib-commonjs/Shimmer.types.win32.js +10 -5
- package/lib-commonjs/Shimmer.types.win32.js.map +1 -1
- package/lib-commonjs/Shimmer.win32.d.ts +7 -2
- package/lib-commonjs/Shimmer.win32.d.ts.map +1 -1
- package/lib-commonjs/Shimmer.win32.js +166 -128
- package/lib-commonjs/Shimmer.win32.js.map +1 -1
- package/lib-commonjs/ShimmerTokens.android.d.ts +1 -1
- package/lib-commonjs/ShimmerTokens.android.js +11 -11
- package/lib-commonjs/ShimmerTokens.android.js.map +1 -1
- package/lib-commonjs/ShimmerTokens.d.ts +1 -1
- package/lib-commonjs/ShimmerTokens.ios.d.ts +1 -1
- package/lib-commonjs/ShimmerTokens.ios.js +11 -11
- package/lib-commonjs/ShimmerTokens.ios.js.map +1 -1
- package/lib-commonjs/ShimmerTokens.js +13 -13
- package/lib-commonjs/ShimmerTokens.js.map +1 -1
- package/lib-commonjs/ShimmerTokens.win32.d.ts +1 -1
- package/lib-commonjs/ShimmerTokens.win32.js +13 -13
- package/lib-commonjs/ShimmerTokens.win32.js.map +1 -1
- package/lib-commonjs/SvgShapeToPath.d.ts +1 -1
- package/lib-commonjs/SvgShapeToPath.js +138 -125
- package/lib-commonjs/SvgShapeToPath.js.map +1 -1
- package/lib-commonjs/Win32ShimmerNativeComponent.d.ts +5 -5
- package/lib-commonjs/Win32ShimmerNativeComponent.d.ts.map +1 -1
- package/lib-commonjs/Win32ShimmerNativeComponent.js +5 -8
- package/lib-commonjs/Win32ShimmerNativeComponent.js.map +1 -1
- package/lib-commonjs/consts.android.d.ts +1 -1
- package/lib-commonjs/consts.android.js +3 -3
- package/lib-commonjs/consts.d.ts +1 -1
- package/lib-commonjs/consts.ios.d.ts +1 -1
- package/lib-commonjs/consts.ios.js +3 -3
- package/lib-commonjs/consts.js +3 -3
- package/lib-commonjs/consts.win32.d.ts +1 -1
- package/lib-commonjs/consts.win32.js +3 -3
- package/lib-commonjs/index.d.ts +10 -2
- package/lib-commonjs/index.js +36 -11
- package/lib-commonjs/index.js.map +1 -1
- package/package.json +63 -62
- package/src/Shimmer.test.tsx +16 -13
- package/src/Shimmer.tsx +3 -4
- package/src/Shimmer.win32.tsx +1 -3
- package/src/Win32ShimmerNativeComponent.ts +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,44 @@
|
|
|
1
1
|
# Change Log - @fluentui-react-native/experimental-shimmer
|
|
2
2
|
|
|
3
|
+
## 0.14.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- d7adbdd: # Migration from Beachball to Changesets
|
|
8
|
+
|
|
9
|
+
This changeset represents the migration from Beachball to Changesets for version management and consolidates all changes from 440+ beachball change files that were in the `change/` directory.
|
|
10
|
+
|
|
11
|
+
All 75 affected packages receive a minor version bump to acknowledge the accumulated changes from the beachball era.
|
|
12
|
+
|
|
13
|
+
## What Changed
|
|
14
|
+
|
|
15
|
+
Going forward, all version management uses Changesets via `yarn changeset`. The following beachball infrastructure has been removed:
|
|
16
|
+
|
|
17
|
+
- ❌ 440+ beachball change files from `change/` directory
|
|
18
|
+
- ❌ `beachball` package dependency
|
|
19
|
+
- ❌ Beachball scripts from `package.json`
|
|
20
|
+
- ❌ `beachball.config.js` configuration file
|
|
21
|
+
- ❌ Beachball publish steps from Azure Pipelines
|
|
22
|
+
|
|
23
|
+
## New Workflow
|
|
24
|
+
|
|
25
|
+
✅ **Create changes**: Run `yarn changeset` to document changes
|
|
26
|
+
✅ **Version bump PRs**: Automatically created by GitHub Actions
|
|
27
|
+
✅ **Publishing**: Handled by Azure Pipelines using `changeset publish`
|
|
28
|
+
✅ **Validation**: CI validates changesets and blocks major version bumps
|
|
29
|
+
|
|
30
|
+
For details, see `CHANGESETS_SETUP.md` and `CONTRIBUTING.md`.
|
|
31
|
+
|
|
32
|
+
### Patch Changes
|
|
33
|
+
|
|
34
|
+
- d1d8c26: We were pinning @types/react and react-native-macos via resolutions. This fixes that which uncovered a bunch of type inconsistencies that needed to be addressed.
|
|
35
|
+
- Updated dependencies [d7adbdd]
|
|
36
|
+
- Updated dependencies [d1d8c26]
|
|
37
|
+
- @fluentui-react-native/framework@0.15.0
|
|
38
|
+
- @fluentui-react-native/theming-utils@0.27.0
|
|
39
|
+
- @fluentui-react-native/tokens@0.24.0
|
|
40
|
+
- @fluentui-react-native/use-styling@0.14.0
|
|
41
|
+
|
|
3
42
|
<!-- This log was last generated on Tue, 05 Aug 2025 18:50:43 GMT and should not be manually modified. -->
|
|
4
43
|
|
|
5
44
|
<!-- Start content -->
|
package/SPEC.md
CHANGED
|
@@ -57,7 +57,7 @@ function shimmerRects(): Array<ShimmerRectElement | ShimmerCircleElement> {
|
|
|
57
57
|
<Shimmer elements={shimmerRects()} style={{ width: 300, height: 100 }} />;
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
More examples on the [Test pages for the Shimmer](../../../apps/
|
|
60
|
+
More examples on the [Test pages for the Shimmer](../../../apps/tester-core/src/TestComponents/Shimmer). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md).
|
|
61
61
|
|
|
62
62
|
## Visual Examples
|
|
63
63
|
|
|
@@ -109,7 +109,7 @@ export interface ShimmerCircleElement {
|
|
|
109
109
|
* Radius of the circle element.
|
|
110
110
|
* @defaultValue 12
|
|
111
111
|
*/
|
|
112
|
-
radius?:
|
|
112
|
+
radius?: AnimatableNumericValue | string;
|
|
113
113
|
|
|
114
114
|
/**
|
|
115
115
|
* Note: cx and cy should be optional properties [or removed], with relative positioning being the default [or only] positioning mechanism.
|
package/lib/Shimmer.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import type { ShimmerProps } from './Shimmer.types';
|
|
2
|
-
export declare const Shimmer: import(
|
|
3
|
-
|
|
2
|
+
export declare const Shimmer: import('@fluentui-react-native/framework').ComposableComponent<
|
|
3
|
+
ShimmerProps,
|
|
4
|
+
import('./Shimmer.types.shared').ShimmerSlotProps,
|
|
5
|
+
import('./Shimmer.types.shared').ShimmerTokens,
|
|
6
|
+
import('@fluentui-react-native/framework-base').ObjectBase
|
|
7
|
+
>;
|
|
8
|
+
//# sourceMappingURL=Shimmer.d.ts.map
|
package/lib/Shimmer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shimmer.d.ts","sourceRoot":"","sources":["../src/Shimmer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Shimmer.d.ts","sourceRoot":"","sources":["../src/Shimmer.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,iBAAiB,CAAC;AAIjE,eAAO,MAAM,OAAO,6OAmIlB,CAAC"}
|
package/lib/Shimmer.js
CHANGED
|
@@ -1,99 +1,160 @@
|
|
|
1
|
-
|
|
2
|
-
/** @
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from '@fluentui-react-native/framework-base/jsx-runtime';
|
|
2
|
+
/** @jsxImportSource @fluentui-react-native/framework-base */
|
|
3
3
|
import { useRef, useEffect, useMemo, useCallback } from 'react';
|
|
4
4
|
import { Animated, I18nManager } from 'react-native';
|
|
5
|
-
import { compose, mergeProps,
|
|
5
|
+
import { compose, mergeProps, buildUseStyling } from '@fluentui-react-native/framework';
|
|
6
6
|
import assertNever from 'assert-never';
|
|
7
7
|
import { Circle, ClipPath, Defs, LinearGradient, Rect, Stop, Svg, G } from 'react-native-svg';
|
|
8
8
|
import { stylingSettings } from './Shimmer.styling';
|
|
9
9
|
import { shimmerName } from './Shimmer.types';
|
|
10
10
|
const useStyling = buildUseStyling(stylingSettings);
|
|
11
11
|
export const Shimmer = compose({
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
|
|
12
|
+
displayName: shimmerName,
|
|
13
|
+
...stylingSettings,
|
|
14
|
+
slots: {
|
|
15
|
+
root: Svg,
|
|
16
|
+
},
|
|
17
|
+
useRender: (props, useSlots) => {
|
|
18
|
+
const Slots = useSlots(props);
|
|
19
|
+
props = mergeProps(props, Slots.root({}).props);
|
|
20
|
+
const AnimatedLinearGradient = Animated.createAnimatedComponent(LinearGradient);
|
|
21
|
+
const tokens = useStyling(props).root;
|
|
22
|
+
const memoizedShimmerData = useMemo(
|
|
23
|
+
() => ({
|
|
24
|
+
angle: props.angle ? props.angle : tokens['angle'],
|
|
25
|
+
backgroundColor: props?.style?.['backgroundColor'] ? props?.style['backgroundColor'] : tokens['backgroundColor'] ?? 'transparent',
|
|
26
|
+
containerBorderRadius: props?.style?.['borderRadius'] ? props?.style['borderRadius'] : 0,
|
|
27
|
+
containerWidth: props?.style?.['width'] ? props?.style['width'] : '100%',
|
|
28
|
+
containerHeight: props?.style?.['height'] ? props?.style['height'] : '100%',
|
|
29
|
+
delay: props.delay ? props.delay : tokens['delay'],
|
|
30
|
+
duration: props.duration ? props.duration : tokens['duration'],
|
|
31
|
+
shimmerColor: props.shimmerColor ? props.shimmerColor : tokens['shimmerColor'],
|
|
32
|
+
shimmerColorOpacity: tokens['shimmerColorOpacity'],
|
|
33
|
+
shimmerWaveColor: props.shimmerWaveColor ? props.shimmerWaveColor : tokens['shimmerWaveColor'],
|
|
34
|
+
shimmerWaveColorOpacity: tokens['shimmerWaveColorOpacity'],
|
|
35
|
+
}),
|
|
36
|
+
[
|
|
37
|
+
props.angle,
|
|
38
|
+
props.backgroundColor,
|
|
39
|
+
props.delay,
|
|
40
|
+
props.duration,
|
|
41
|
+
props.shimmerColor,
|
|
42
|
+
props.shimmerColorOpacity,
|
|
43
|
+
props.shimmerWaveColor,
|
|
44
|
+
props.shimmerWaveColorOpacity,
|
|
45
|
+
props.style,
|
|
46
|
+
],
|
|
47
|
+
);
|
|
48
|
+
/* The shimmer animation is implemented using a LinearGradient which travels from left to right.
|
|
49
|
+
* Different angles are handled by rotating this gradient.
|
|
50
|
+
* The startValue is used to control the start position of the gradient animation, it is set as -2 to make sure it is starts off the screen for any angle.
|
|
51
|
+
* Similarly the endValue is set to 3 to make sure the gradient animation exits the entire screen for any angle.
|
|
52
|
+
* In RTL, startValue and endValue are flipped to ensure that the animation moves from right to left.
|
|
53
|
+
*/
|
|
54
|
+
const startValue = I18nManager.isRTL ? 3 : -2;
|
|
55
|
+
const endValue = I18nManager.isRTL ? -2 : 3;
|
|
56
|
+
const x1 = useRef(new Animated.Value(startValue)).current;
|
|
57
|
+
const shimmerAnimation = useCallback(() => {
|
|
58
|
+
Animated.loop(
|
|
59
|
+
Animated.timing(x1, {
|
|
60
|
+
toValue: endValue,
|
|
61
|
+
duration: memoizedShimmerData.duration,
|
|
62
|
+
delay: memoizedShimmerData.delay,
|
|
63
|
+
useNativeDriver: true,
|
|
64
|
+
}),
|
|
65
|
+
).start();
|
|
66
|
+
}, [memoizedShimmerData.delay, memoizedShimmerData.duration]);
|
|
67
|
+
useEffect(() => {
|
|
68
|
+
shimmerAnimation();
|
|
69
|
+
});
|
|
70
|
+
return (rest) => {
|
|
71
|
+
const { elements, ...mergedProps } = mergeProps(props, rest);
|
|
72
|
+
const rows = [];
|
|
73
|
+
if (elements) {
|
|
74
|
+
for (let i = 0; i < elements.length; i++) {
|
|
75
|
+
const element = elements[i];
|
|
76
|
+
if (element.type == 'rect') {
|
|
77
|
+
rows.push(
|
|
78
|
+
_jsx(
|
|
79
|
+
Rect,
|
|
80
|
+
{
|
|
81
|
+
width: element.width,
|
|
82
|
+
height: element.height,
|
|
83
|
+
x: element.x,
|
|
84
|
+
y: element.y,
|
|
85
|
+
rx: element.borderRadiusX,
|
|
86
|
+
ry: element.borderRadiusY,
|
|
87
|
+
},
|
|
88
|
+
i,
|
|
89
|
+
),
|
|
90
|
+
);
|
|
91
|
+
} else if (element.type == 'circle') {
|
|
92
|
+
rows.push(_jsx(Circle, { r: element.radius, cx: element.cx, cy: element.cy }, i));
|
|
93
|
+
} else {
|
|
94
|
+
assertNever(element);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// Flip the SVG if we are running in RTL
|
|
99
|
+
const rtlTransfrom = I18nManager.isRTL
|
|
100
|
+
? { translateX: memoizedShimmerData.containerWidth, scaleX: -1 }
|
|
101
|
+
: { translateX: undefined, scaleX: undefined };
|
|
102
|
+
return _jsxs(Slots.root, {
|
|
103
|
+
...mergedProps,
|
|
104
|
+
children: [
|
|
105
|
+
_jsxs(Defs, {
|
|
106
|
+
children: [
|
|
107
|
+
_jsxs(AnimatedLinearGradient, {
|
|
108
|
+
id: 'gradient',
|
|
109
|
+
x1: x1,
|
|
110
|
+
x2: '-1',
|
|
111
|
+
gradientTransform: `rotate(${memoizedShimmerData.angle})`,
|
|
112
|
+
children: [
|
|
113
|
+
_jsx(Stop, {
|
|
114
|
+
offset: '10%',
|
|
115
|
+
stopColor: memoizedShimmerData.shimmerColor,
|
|
116
|
+
stopOpacity: memoizedShimmerData.shimmerColorOpacity,
|
|
117
|
+
}),
|
|
118
|
+
_jsx(Stop, {
|
|
119
|
+
offset: '20%',
|
|
120
|
+
stopColor: memoizedShimmerData.shimmerWaveColor,
|
|
121
|
+
stopOpacity: memoizedShimmerData.shimmerWaveColorOpacity,
|
|
122
|
+
}),
|
|
123
|
+
_jsx(Stop, {
|
|
124
|
+
offset: '30%',
|
|
125
|
+
stopColor: memoizedShimmerData.shimmerColor,
|
|
126
|
+
stopOpacity: memoizedShimmerData.shimmerColorOpacity,
|
|
127
|
+
}),
|
|
128
|
+
],
|
|
129
|
+
}),
|
|
130
|
+
_jsx(ClipPath, { id: 'shimmerView', children: rows }),
|
|
131
|
+
],
|
|
132
|
+
}),
|
|
133
|
+
_jsxs(G, {
|
|
134
|
+
transformProps: rtlTransfrom,
|
|
135
|
+
children: [
|
|
136
|
+
_jsx(Rect, {
|
|
137
|
+
x: '0',
|
|
138
|
+
y: '0',
|
|
139
|
+
width: memoizedShimmerData.containerWidth,
|
|
140
|
+
height: memoizedShimmerData.containerHeight,
|
|
141
|
+
fill: memoizedShimmerData.backgroundColor,
|
|
142
|
+
rx: memoizedShimmerData.containerBorderRadius,
|
|
143
|
+
}),
|
|
144
|
+
_jsx(Rect, {
|
|
145
|
+
x: '0',
|
|
146
|
+
y: '0',
|
|
147
|
+
width: memoizedShimmerData.containerWidth,
|
|
148
|
+
height: memoizedShimmerData.containerHeight,
|
|
149
|
+
fill: 'url(#gradient)',
|
|
150
|
+
rx: memoizedShimmerData.containerBorderRadius,
|
|
151
|
+
clipPath: 'url(#shimmerView)',
|
|
152
|
+
}),
|
|
153
|
+
],
|
|
154
|
+
}),
|
|
155
|
+
],
|
|
156
|
+
});
|
|
157
|
+
};
|
|
158
|
+
},
|
|
98
159
|
});
|
|
99
|
-
//# sourceMappingURL=Shimmer.js.map
|
|
160
|
+
//# sourceMappingURL=Shimmer.js.map
|
package/lib/Shimmer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shimmer.js","sourceRoot":"","sources":["../src/Shimmer.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"Shimmer.js","sourceRoot":"","sources":["../src/Shimmer.tsx"],"names":[],"mappings":"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"}
|
package/lib/Shimmer.styling.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { UseStylingOptions } from '@fluentui-react-native/framework';
|
|
2
2
|
import type { ShimmerProps, ShimmerSlotProps, ShimmerTokens } from './Shimmer.types';
|
|
3
3
|
export declare const stylingSettings: UseStylingOptions<ShimmerProps, ShimmerSlotProps, ShimmerTokens>;
|
|
4
|
-
//# sourceMappingURL=Shimmer.styling.d.ts.map
|
|
4
|
+
//# sourceMappingURL=Shimmer.styling.d.ts.map
|
package/lib/Shimmer.styling.js
CHANGED
|
@@ -2,30 +2,33 @@ import { buildProps } from '@fluentui-react-native/framework';
|
|
|
2
2
|
import { shimmerName } from './Shimmer.types';
|
|
3
3
|
import { defaultShimmerTokens } from './ShimmerTokens';
|
|
4
4
|
export const stylingSettings = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
5
|
+
tokens: [defaultShimmerTokens, shimmerName],
|
|
6
|
+
tokensThatAreAlsoProps: 'all',
|
|
7
|
+
slotProps: {
|
|
8
|
+
root: buildProps(
|
|
9
|
+
(tokens) => ({
|
|
10
|
+
accessibilityRole: 'progressbar',
|
|
11
|
+
accessible: true,
|
|
12
|
+
style: { overflow: 'hidden', backgroundColor: tokens.backgroundColor },
|
|
13
|
+
angle: tokens.angle,
|
|
14
|
+
delay: tokens.delay,
|
|
15
|
+
duration: tokens.duration,
|
|
16
|
+
shimmerColor: tokens.shimmerColor,
|
|
17
|
+
shimmerColorOpacity: tokens.shimmerColorOpacity,
|
|
18
|
+
shimmerWaveColor: tokens.shimmerWaveColor,
|
|
19
|
+
shimmerWaveColorOpacity: tokens.shimmerWaveColorOpacity,
|
|
20
|
+
}),
|
|
21
|
+
[
|
|
22
|
+
'angle',
|
|
23
|
+
'delay',
|
|
24
|
+
'duration',
|
|
25
|
+
'shimmerColor',
|
|
26
|
+
'shimmerColorOpacity',
|
|
27
|
+
'shimmerWaveColor',
|
|
28
|
+
'shimmerWaveColorOpacity',
|
|
29
|
+
'backgroundColor',
|
|
30
|
+
],
|
|
31
|
+
),
|
|
32
|
+
},
|
|
30
33
|
};
|
|
31
|
-
//# sourceMappingURL=Shimmer.styling.js.map
|
|
34
|
+
//# sourceMappingURL=Shimmer.styling.js.map
|
|
@@ -5,4 +5,4 @@ import type { ShimmerSlotProps } from './Shimmer.types.win32';
|
|
|
5
5
|
* tell the styling hook how to build up the tokens
|
|
6
6
|
*/
|
|
7
7
|
export declare const stylingSettings: UseStylingOptions<ShimmerProps, ShimmerSlotProps, ShimmerTokens>;
|
|
8
|
-
//# sourceMappingURL=Shimmer.styling.win32.d.ts.map
|
|
8
|
+
//# sourceMappingURL=Shimmer.styling.win32.d.ts.map
|
|
@@ -5,28 +5,40 @@ import { defaultShimmerTokens } from './ShimmerTokens.win32';
|
|
|
5
5
|
* tell the styling hook how to build up the tokens
|
|
6
6
|
*/
|
|
7
7
|
export const stylingSettings = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
8
|
+
tokens: [defaultShimmerTokens, shimmerName],
|
|
9
|
+
tokensThatAreAlsoProps: 'all',
|
|
10
|
+
slotProps: {
|
|
11
|
+
root: buildProps(
|
|
12
|
+
(tokens) => ({
|
|
13
|
+
accessibilityRole: 'progressbar',
|
|
14
|
+
accessible: true,
|
|
15
|
+
style: { overflow: 'hidden', backgroundColor: tokens.backgroundColor },
|
|
16
|
+
}),
|
|
17
|
+
['backgroundColor'],
|
|
18
|
+
),
|
|
19
|
+
shimmerWaveContainer: buildProps(
|
|
20
|
+
(tokens) => ({
|
|
21
|
+
delay: tokens.delay,
|
|
22
|
+
duration: tokens.duration,
|
|
23
|
+
shimmerColor: tokens.shimmerColor,
|
|
24
|
+
}),
|
|
25
|
+
['delay', 'duration', 'shimmerColor'],
|
|
26
|
+
),
|
|
27
|
+
shimmerWave: buildProps(
|
|
28
|
+
(tokens) => ({
|
|
29
|
+
angle: tokens.angle,
|
|
30
|
+
shimmerColor: tokens.shimmerColor,
|
|
31
|
+
shimmerWaveColor: tokens.shimmerWaveColor,
|
|
32
|
+
shimmerWaveWidth: tokens.shimmerWaveWidth,
|
|
33
|
+
}),
|
|
34
|
+
['angle', 'shimmerColor', 'shimmerWaveColor', 'shimmerWaveWidth'],
|
|
35
|
+
),
|
|
36
|
+
clippingMask: buildProps(
|
|
37
|
+
(tokens) => ({
|
|
38
|
+
backgroundColor: tokens.backgroundColor,
|
|
39
|
+
}),
|
|
40
|
+
['backgroundColor'],
|
|
41
|
+
),
|
|
42
|
+
},
|
|
31
43
|
};
|
|
32
|
-
//# sourceMappingURL=Shimmer.styling.win32.js.map
|
|
44
|
+
//# sourceMappingURL=Shimmer.styling.win32.js.map
|
package/lib/Shimmer.test.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=Shimmer.test.d.ts.map
|
|
2
|
+
//# sourceMappingURL=Shimmer.test.d.ts.map
|
package/lib/Shimmer.test.js
CHANGED
|
@@ -1,53 +1,57 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx as _jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { act } from 'react';
|
|
2
3
|
import * as renderer from 'react-test-renderer';
|
|
3
4
|
import { Shimmer } from './Shimmer';
|
|
4
5
|
function shimmerRects() {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
6
|
+
return [
|
|
7
|
+
{
|
|
8
|
+
type: 'rect',
|
|
9
|
+
borderRadiusX: 3,
|
|
10
|
+
borderRadiusY: 3,
|
|
11
|
+
width: 100,
|
|
12
|
+
height: 20,
|
|
13
|
+
x: 90,
|
|
14
|
+
y: 70,
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
type: 'rect',
|
|
18
|
+
borderRadiusX: 3,
|
|
19
|
+
borderRadiusY: 3,
|
|
20
|
+
width: 150,
|
|
21
|
+
height: 20,
|
|
22
|
+
x: 90,
|
|
23
|
+
y: 42,
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
type: 'rect',
|
|
27
|
+
borderRadiusX: 3,
|
|
28
|
+
borderRadiusY: 3,
|
|
29
|
+
width: 200,
|
|
30
|
+
height: 20,
|
|
31
|
+
x: 90,
|
|
32
|
+
y: 15,
|
|
33
|
+
},
|
|
34
|
+
];
|
|
34
35
|
}
|
|
35
36
|
const style = { width: 300, height: 100 };
|
|
37
|
+
// mocks out setTimeout and other timer functions with mock functions, test will fail without this as we're using Animated API
|
|
38
|
+
jest.useFakeTimers();
|
|
36
39
|
describe('Shimmer component tests', () => {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
it('Shimmer default', async () => {
|
|
41
|
+
let component;
|
|
42
|
+
act(() => {
|
|
43
|
+
component = renderer.create(_jsx(Shimmer, { elements: shimmerRects() }));
|
|
41
44
|
});
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
expect(tree).toMatchSnapshot();
|
|
50
|
-
await renderer.act(async () => null);
|
|
45
|
+
expect(component.toJSON()).toMatchSnapshot();
|
|
46
|
+
await act(async () => null);
|
|
47
|
+
});
|
|
48
|
+
it('Shimmer with style prop', async () => {
|
|
49
|
+
let component;
|
|
50
|
+
act(() => {
|
|
51
|
+
component = renderer.create(_jsx(Shimmer, { elements: shimmerRects(), style: style }));
|
|
51
52
|
});
|
|
53
|
+
expect(component.toJSON()).toMatchSnapshot();
|
|
54
|
+
await act(async () => null);
|
|
55
|
+
});
|
|
52
56
|
});
|
|
53
|
-
//# sourceMappingURL=Shimmer.test.js.map
|
|
57
|
+
//# sourceMappingURL=Shimmer.test.js.map
|
package/lib/Shimmer.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shimmer.test.js","sourceRoot":"","sources":["../src/Shimmer.test.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Shimmer.test.js","sourceRoot":"","sources":["../src/Shimmer.test.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,SAAS,YAAY,GAAqD;IACxE,OAAO;QACL;YACE,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC;YAChB,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,EAAE;YACV,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,EAAE;SACN;QACD;YACE,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC;YAChB,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,EAAE;YACV,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,EAAE;SACN;QACD;YACE,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC;YAChB,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,EAAE;YACV,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,EAAE;SACN;KACF,CAAC;AAAA,CACH;AAED,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAE1C,8HAA8H;AAC9H,IAAI,CAAC,aAAa,EAAE,CAAC;AAErB,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC;IACxC,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAAC;QAChC,IAAI,SAAqC,CAAC;QAC1C,GAAG,CAAC,GAAG,EAAE,CAAC;YACR,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAC,OAAO,IAAC,QAAQ,EAAE,YAAY,EAAE,GAAI,CAAC,CAAC;QAAA,CACpE,CAAC,CAAC;QACH,MAAM,CAAC,SAAU,CAAC,MAAM,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;IAAA,CAC7B,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE,CAAC;QACxC,IAAI,SAAqC,CAAC;QAC1C,GAAG,CAAC,GAAG,EAAE,CAAC;YACR,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAC,OAAO,IAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC;QAAA,CAClF,CAAC,CAAC;QACH,MAAM,CAAC,SAAU,CAAC,MAAM,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;IAAA,CAC7B,CAAC,CAAC;AAAA,CACJ,CAAC,CAAC"}
|