react-native-smooth-clip-view 0.2.9 → 0.4.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 (193) hide show
  1. package/README.md +132 -349
  2. package/android/build.gradle +8 -4
  3. package/android/proguard-rules.pro +3 -3
  4. package/android/src/main/cpp/SmoothClipAndroid.h +13 -6
  5. package/android/src/main/cpp/SmoothClipBindings.cpp +605 -123
  6. package/android/src/main/cpp/SmoothClipRegistry.cpp +975 -209
  7. package/android/src/main/java/com/smoothclipview/ClipGeometryNormalizer.kt +192 -118
  8. package/android/src/main/java/com/smoothclipview/SmoothClipBindings.kt +22 -4
  9. package/android/src/main/java/com/smoothclipview/SmoothClipModule.kt +81 -56
  10. package/android/src/main/java/com/smoothclipview/SmoothClipView.kt +449 -240
  11. package/android/src/main/java/com/smoothclipview/SmoothClipViewManager.kt +150 -38
  12. package/cpp/SmoothClipAnimationCurve.h +317 -397
  13. package/cpp/SmoothClipRegistry.h +84 -20
  14. package/cpp/SmoothClipSharedGeometry.h +131 -22
  15. package/cpp/SmoothClipVelocityTracker.h +16 -12
  16. package/ios/SmoothClipGeometry.h +188 -21
  17. package/ios/SmoothClipRegistry.mm +869 -368
  18. package/ios/SmoothClipRegistrySnapshot.h +13 -0
  19. package/ios/SmoothClipTurboModule.cpp +513 -156
  20. package/ios/SmoothClipTurboModule.h +123 -56
  21. package/ios/SmoothClipView.mm +1074 -449
  22. package/ios/SmoothClipViewRegistry.h +3 -7
  23. package/ios/reactnativesmoothclipview.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  24. package/ios/reactnativesmoothclipview.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  25. package/lib/module/NativeSmoothClipModule.js.map +1 -1
  26. package/lib/module/SmoothClipView.ios.js +94 -11
  27. package/lib/module/SmoothClipView.ios.js.map +1 -1
  28. package/lib/module/SmoothClipView.js +1 -46
  29. package/lib/module/SmoothClipView.js.map +1 -1
  30. package/lib/module/SmoothClipViewNativeComponent.ts +32 -12
  31. package/lib/module/capabilities.js +4 -0
  32. package/lib/module/capabilities.js.map +1 -0
  33. package/lib/module/capabilities.native.js +18 -0
  34. package/lib/module/capabilities.native.js.map +1 -0
  35. package/lib/module/capabilityTypes.js +2 -0
  36. package/lib/module/capabilityTypes.js.map +1 -0
  37. package/lib/module/controllerInternals.js +28 -0
  38. package/lib/module/controllerInternals.js.map +1 -0
  39. package/lib/module/controllerLifecycle.js +9 -0
  40. package/lib/module/controllerLifecycle.js.map +1 -0
  41. package/lib/module/controllerTypes.js +4 -0
  42. package/lib/module/controllerTypes.js.map +1 -0
  43. package/lib/module/controllers.android.js +4 -0
  44. package/lib/module/controllers.android.js.map +1 -0
  45. package/lib/module/controllers.ios.js +4 -0
  46. package/lib/module/controllers.ios.js.map +1 -0
  47. package/lib/module/controllers.js +4 -0
  48. package/lib/module/controllers.js.map +1 -0
  49. package/lib/module/controllers.native.js +89 -0
  50. package/lib/module/controllers.native.js.map +1 -0
  51. package/lib/module/geometry.js +180 -30
  52. package/lib/module/geometry.js.map +1 -1
  53. package/lib/module/groupTypes.js +4 -0
  54. package/lib/module/groupTypes.js.map +1 -0
  55. package/lib/module/groups.android.js +4 -0
  56. package/lib/module/groups.android.js.map +1 -0
  57. package/lib/module/groups.ios.js +4 -0
  58. package/lib/module/groups.ios.js.map +1 -0
  59. package/lib/module/groups.js +4 -0
  60. package/lib/module/groups.js.map +1 -0
  61. package/lib/module/groups.native.js +399 -0
  62. package/lib/module/groups.native.js.map +1 -0
  63. package/lib/module/ids.js +8 -0
  64. package/lib/module/ids.js.map +1 -0
  65. package/lib/module/index.js +4 -3
  66. package/lib/module/index.js.map +1 -1
  67. package/lib/module/nativeCompletion.js +37 -16
  68. package/lib/module/nativeCompletion.js.map +1 -1
  69. package/lib/module/presentationCodec.js +81 -0
  70. package/lib/module/presentationCodec.js.map +1 -0
  71. package/lib/typescript/src/NativeSmoothClipModule.d.ts +20 -4
  72. package/lib/typescript/src/NativeSmoothClipModule.d.ts.map +1 -1
  73. package/lib/typescript/src/SmoothClipView.d.ts +2 -10
  74. package/lib/typescript/src/SmoothClipView.d.ts.map +1 -1
  75. package/lib/typescript/src/SmoothClipView.ios.d.ts +139 -4
  76. package/lib/typescript/src/SmoothClipView.ios.d.ts.map +1 -1
  77. package/lib/typescript/src/SmoothClipViewNativeComponent.d.ts +16 -3
  78. package/lib/typescript/src/SmoothClipViewNativeComponent.d.ts.map +1 -1
  79. package/lib/typescript/src/capabilities.d.ts +3 -0
  80. package/lib/typescript/src/capabilities.d.ts.map +1 -0
  81. package/lib/typescript/src/capabilities.native.d.ts +3 -0
  82. package/lib/typescript/src/capabilities.native.d.ts.map +1 -0
  83. package/lib/typescript/src/capabilityTypes.d.ts +4 -0
  84. package/lib/typescript/src/capabilityTypes.d.ts.map +1 -0
  85. package/lib/typescript/src/controllerInternals.d.ts +14 -0
  86. package/lib/typescript/src/controllerInternals.d.ts.map +1 -0
  87. package/lib/typescript/src/controllerLifecycle.d.ts +3 -0
  88. package/lib/typescript/src/controllerLifecycle.d.ts.map +1 -0
  89. package/lib/typescript/src/controllerTypes.d.ts +62 -0
  90. package/lib/typescript/src/controllerTypes.d.ts.map +1 -0
  91. package/lib/typescript/src/controllers.android.d.ts +2 -0
  92. package/lib/typescript/src/controllers.android.d.ts.map +1 -0
  93. package/lib/typescript/src/controllers.d.ts +2 -0
  94. package/lib/typescript/src/controllers.d.ts.map +1 -0
  95. package/lib/typescript/src/controllers.ios.d.ts +2 -0
  96. package/lib/typescript/src/controllers.ios.d.ts.map +1 -0
  97. package/lib/typescript/src/controllers.native.d.ts +3 -0
  98. package/lib/typescript/src/controllers.native.d.ts.map +1 -0
  99. package/lib/typescript/src/geometry.d.ts +49 -5
  100. package/lib/typescript/src/geometry.d.ts.map +1 -1
  101. package/lib/typescript/src/groupTypes.d.ts +31 -0
  102. package/lib/typescript/src/groupTypes.d.ts.map +1 -0
  103. package/lib/typescript/src/groups.android.d.ts +2 -0
  104. package/lib/typescript/src/groups.android.d.ts.map +1 -0
  105. package/lib/typescript/src/groups.d.ts +2 -0
  106. package/lib/typescript/src/groups.d.ts.map +1 -0
  107. package/lib/typescript/src/groups.ios.d.ts +2 -0
  108. package/lib/typescript/src/groups.ios.d.ts.map +1 -0
  109. package/lib/typescript/src/groups.native.d.ts +3 -0
  110. package/lib/typescript/src/groups.native.d.ts.map +1 -0
  111. package/lib/typescript/src/ids.d.ts +2 -0
  112. package/lib/typescript/src/ids.d.ts.map +1 -0
  113. package/lib/typescript/src/index.d.ts +8 -5
  114. package/lib/typescript/src/index.d.ts.map +1 -1
  115. package/lib/typescript/src/nativeCompletion.d.ts +16 -6
  116. package/lib/typescript/src/nativeCompletion.d.ts.map +1 -1
  117. package/lib/typescript/src/presentationCodec.d.ts +10 -0
  118. package/lib/typescript/src/presentationCodec.d.ts.map +1 -0
  119. package/package.json +17 -13
  120. package/src/NativeSmoothClipModule.ts +80 -56
  121. package/src/SmoothClipView.ios.tsx +142 -16
  122. package/src/SmoothClipView.tsx +6 -76
  123. package/src/SmoothClipViewNativeComponent.ts +32 -12
  124. package/src/capabilities.native.ts +19 -0
  125. package/src/capabilities.ts +2 -0
  126. package/src/capabilityTypes.ts +3 -0
  127. package/src/controllerInternals.ts +52 -0
  128. package/src/controllerLifecycle.ts +6 -0
  129. package/src/controllerTypes.ts +87 -0
  130. package/src/controllers.android.ts +1 -0
  131. package/src/controllers.ios.ts +1 -0
  132. package/src/controllers.native.ts +104 -0
  133. package/src/controllers.ts +1 -0
  134. package/src/geometry.ts +293 -45
  135. package/src/groupTypes.ts +53 -0
  136. package/src/groups.android.ts +1 -0
  137. package/src/groups.ios.ts +1 -0
  138. package/src/groups.native.ts +604 -0
  139. package/src/groups.ts +1 -0
  140. package/src/ids.ts +6 -0
  141. package/src/index.ts +32 -12
  142. package/src/nativeCompletion.ts +67 -32
  143. package/src/presentationCodec.ts +134 -0
  144. package/lib/module/SmoothClipView.web.js +0 -54
  145. package/lib/module/SmoothClipView.web.js.map +0 -1
  146. package/lib/module/driverState.js +0 -110
  147. package/lib/module/driverState.js.map +0 -1
  148. package/lib/module/driverTypes.js +0 -4
  149. package/lib/module/driverTypes.js.map +0 -1
  150. package/lib/module/drivers.android.js +0 -6
  151. package/lib/module/drivers.android.js.map +0 -1
  152. package/lib/module/drivers.ios.js +0 -6
  153. package/lib/module/drivers.ios.js.map +0 -1
  154. package/lib/module/drivers.js +0 -284
  155. package/lib/module/drivers.js.map +0 -1
  156. package/lib/module/drivers.native.js +0 -556
  157. package/lib/module/drivers.native.js.map +0 -1
  158. package/lib/module/index.web.js +0 -8
  159. package/lib/module/index.web.js.map +0 -1
  160. package/lib/module/reactRequests.js +0 -56
  161. package/lib/module/reactRequests.js.map +0 -1
  162. package/lib/module/webClipPath.js +0 -25
  163. package/lib/module/webClipPath.js.map +0 -1
  164. package/lib/typescript/src/SmoothClipView.web.d.ts +0 -10
  165. package/lib/typescript/src/SmoothClipView.web.d.ts.map +0 -1
  166. package/lib/typescript/src/driverState.d.ts +0 -31
  167. package/lib/typescript/src/driverState.d.ts.map +0 -1
  168. package/lib/typescript/src/driverTypes.d.ts +0 -107
  169. package/lib/typescript/src/driverTypes.d.ts.map +0 -1
  170. package/lib/typescript/src/drivers.android.d.ts +0 -3
  171. package/lib/typescript/src/drivers.android.d.ts.map +0 -1
  172. package/lib/typescript/src/drivers.d.ts +0 -5
  173. package/lib/typescript/src/drivers.d.ts.map +0 -1
  174. package/lib/typescript/src/drivers.ios.d.ts +0 -3
  175. package/lib/typescript/src/drivers.ios.d.ts.map +0 -1
  176. package/lib/typescript/src/drivers.native.d.ts +0 -5
  177. package/lib/typescript/src/drivers.native.d.ts.map +0 -1
  178. package/lib/typescript/src/index.web.d.ts +0 -9
  179. package/lib/typescript/src/index.web.d.ts.map +0 -1
  180. package/lib/typescript/src/reactRequests.d.ts +0 -9
  181. package/lib/typescript/src/reactRequests.d.ts.map +0 -1
  182. package/lib/typescript/src/webClipPath.d.ts +0 -7
  183. package/lib/typescript/src/webClipPath.d.ts.map +0 -1
  184. package/src/SmoothClipView.web.tsx +0 -66
  185. package/src/driverState.ts +0 -158
  186. package/src/driverTypes.ts +0 -140
  187. package/src/drivers.android.ts +0 -8
  188. package/src/drivers.ios.ts +0 -8
  189. package/src/drivers.native.ts +0 -899
  190. package/src/drivers.ts +0 -427
  191. package/src/index.web.ts +0 -23
  192. package/src/reactRequests.ts +0 -76
  193. package/src/webClipPath.ts +0 -30
@@ -1,60 +1,210 @@
1
1
  "use strict";
2
2
 
3
- export function createClipPresentation(clip, contentTranslateX = 0, contentTranslateY = 0) {
3
+ /* eslint-disable no-bitwise -- React Native colors are converted to RRGGBBAA */
4
+
5
+ import { processColor } from 'react-native-reanimated';
6
+
7
+ /** One numeric outset shadow following React Native's `boxShadow` field names. */
8
+
9
+ const DEFAULT_SHADOW_COLOR = '#000000ff';
10
+ function isClipCurve(curve) {
11
+ 'worklet';
12
+
13
+ return curve === undefined || curve === 'circular' || curve === 'continuous';
14
+ }
15
+ function isFiniteOptionalNumber(value) {
16
+ 'worklet';
17
+
18
+ return value === undefined || Number.isFinite(value);
19
+ }
20
+ function canonicalizeClipBoxShadow(shadow) {
4
21
  'worklet';
5
22
 
23
+ if (shadow === undefined) return undefined;
24
+ const {
25
+ offsetX,
26
+ offsetY
27
+ } = shadow;
28
+ const blurRadius = shadow.blurRadius ?? 0;
29
+ const spreadDistance = shadow.spreadDistance ?? 0;
30
+ if (!Number.isFinite(offsetX) || !Number.isFinite(offsetY) || !Number.isFinite(blurRadius) || !Number.isFinite(spreadDistance)) {
31
+ return null;
32
+ }
33
+ const processedColor = shadow.color === undefined ? processColor(DEFAULT_SHADOW_COLOR) : processColor(shadow.color);
34
+ // Platform and dynamic colors cannot be represented by the scalar native
35
+ // animation protocol. Callers can resolve those colors before presenting.
36
+ if (typeof processedColor !== 'number') return null;
37
+ const unsignedProcessedColor = processedColor >>> 0;
38
+ const color = (unsignedProcessedColor << 8 | unsignedProcessedColor >>> 24) >>> 0;
6
39
  return {
7
- clip,
8
- contentTranslateX,
9
- contentTranslateY
40
+ color: color,
41
+ offsetX,
42
+ offsetY,
43
+ blurRadius: Math.max(0, blurRadius),
44
+ spreadDistance
10
45
  };
11
46
  }
47
+ function clipBoxShadowEquals(first, second) {
48
+ 'worklet';
49
+
50
+ if (first === undefined || second === undefined) return first === second;
51
+ const canonicalFirst = canonicalizeClipBoxShadow(first);
52
+ const canonicalSecond = canonicalizeClipBoxShadow(second);
53
+ return canonicalFirst !== null && canonicalFirst !== undefined && canonicalSecond !== null && canonicalSecond !== undefined && canonicalFirst.color === canonicalSecond.color && canonicalFirst.offsetX === canonicalSecond.offsetX && canonicalFirst.offsetY === canonicalSecond.offsetY && canonicalFirst.blurRadius === canonicalSecond.blurRadius && canonicalFirst.spreadDistance === canonicalSecond.spreadDistance;
54
+ }
12
55
  export function isFiniteClipGeometry(geometry) {
13
56
  'worklet';
14
57
 
15
- return Number.isFinite(geometry.x) && Number.isFinite(geometry.y) && Number.isFinite(geometry.width) && Number.isFinite(geometry.height) && Number.isFinite(geometry.radius);
58
+ const width = Math.max(0, geometry.width);
59
+ const height = Math.max(0, geometry.height);
60
+ return Number.isFinite(geometry.x) && Number.isFinite(geometry.y) && Number.isFinite(geometry.width) && Number.isFinite(geometry.height) && Number.isFinite(geometry.radius) && Number.isFinite(geometry.x + width) && Number.isFinite(geometry.y + height) && isFiniteOptionalNumber(geometry.topLeftRadius) && isFiniteOptionalNumber(geometry.topRightRadius) && isFiniteOptionalNumber(geometry.bottomRightRadius) && isFiniteOptionalNumber(geometry.bottomLeftRadius) && isClipCurve(geometry.curve);
61
+ }
62
+ function resolvedTopLeftRadius(geometry) {
63
+ 'worklet';
64
+
65
+ return geometry.topLeftRadius ?? geometry.radius;
66
+ }
67
+ function resolvedTopRightRadius(geometry) {
68
+ 'worklet';
69
+
70
+ return geometry.topRightRadius ?? geometry.radius;
71
+ }
72
+ function resolvedBottomRightRadius(geometry) {
73
+ 'worklet';
74
+
75
+ return geometry.bottomRightRadius ?? geometry.radius;
76
+ }
77
+ function resolvedBottomLeftRadius(geometry) {
78
+ 'worklet';
79
+
80
+ return geometry.bottomLeftRadius ?? geometry.radius;
81
+ }
82
+ function resolvedCurve(geometry) {
83
+ 'worklet';
84
+
85
+ return geometry.curve ?? 'circular';
16
86
  }
17
87
  export function clipGeometryEquals(first, second) {
18
88
  'worklet';
19
89
 
20
- return first !== null && first.x === second.x && first.y === second.y && first.width === second.width && first.height === second.height && first.radius === second.radius;
90
+ return first !== null && first.x === second.x && first.y === second.y && first.width === second.width && first.height === second.height && first.radius === second.radius && resolvedTopLeftRadius(first) === resolvedTopLeftRadius(second) && resolvedTopRightRadius(first) === resolvedTopRightRadius(second) && resolvedBottomRightRadius(first) === resolvedBottomRightRadius(second) && resolvedBottomLeftRadius(first) === resolvedBottomLeftRadius(second) && resolvedCurve(first) === resolvedCurve(second);
91
+ }
92
+ function resolvedContentScale(presentation) {
93
+ 'worklet';
94
+
95
+ return presentation.contentScale ?? 1;
21
96
  }
22
97
  export function isFiniteClipPresentation(presentation) {
23
98
  'worklet';
24
99
 
25
- return isFiniteClipGeometry(presentation.clip) && Number.isFinite(presentation.contentTranslateX) && Number.isFinite(presentation.contentTranslateY);
100
+ const contentScale = resolvedContentScale(presentation);
101
+ const shadow = canonicalizeClipBoxShadow(presentation.boxShadow);
102
+ return isFiniteClipGeometry(presentation.clip) && Number.isFinite(presentation.contentTranslateX) && Number.isFinite(presentation.contentTranslateY) && Number.isFinite(contentScale) && contentScale > 0 && shadow !== null;
26
103
  }
27
104
  export function clipPresentationEquals(first, second) {
28
105
  'worklet';
29
106
 
30
- return first !== null && clipGeometryEquals(first.clip, second.clip) && first.contentTranslateX === second.contentTranslateX && first.contentTranslateY === second.contentTranslateY;
107
+ return first !== null && clipGeometryEquals(first.clip, second.clip) && first.contentTranslateX === second.contentTranslateX && first.contentTranslateY === second.contentTranslateY && resolvedContentScale(first) === resolvedContentScale(second) && clipBoxShadowEquals(first.boxShadow, second.boxShadow);
31
108
  }
109
+ function createCanonicalClipGeometry(geometry, x, y, width, height) {
110
+ 'worklet';
32
111
 
33
- /**
34
- * Mirrors the native geometry contract for tests and non-native fallbacks.
35
- * Native remains authoritative because its bounds are the actual rendered size.
36
- */
37
- export function normalizeClipGeometry(geometry, bounds) {
38
- 'worklet';
39
-
40
- const values = [geometry.x, geometry.y, geometry.width, geometry.height, geometry.radius, bounds.width, bounds.height];
41
- if (!values.every(Number.isFinite)) return null;
42
- const boundsWidth = Math.max(0, bounds.width);
43
- const boundsHeight = Math.max(0, bounds.height);
44
- const requestedWidth = Math.max(0, geometry.width);
45
- const requestedHeight = Math.max(0, geometry.height);
46
- const left = Math.min(boundsWidth, Math.max(0, geometry.x));
47
- const top = Math.min(boundsHeight, Math.max(0, geometry.y));
48
- const right = Math.min(boundsWidth, Math.max(0, geometry.x + requestedWidth));
49
- const bottom = Math.min(boundsHeight, Math.max(0, geometry.y + requestedHeight));
50
- const width = Math.max(0, right - left);
51
- const height = Math.max(0, bottom - top);
112
+ const topLeftRadius = Math.max(0, resolvedTopLeftRadius(geometry));
113
+ const topRightRadius = Math.max(0, resolvedTopRightRadius(geometry));
114
+ const bottomRightRadius = Math.max(0, resolvedBottomRightRadius(geometry));
115
+ const bottomLeftRadius = Math.max(0, resolvedBottomLeftRadius(geometry));
116
+
117
+ // CSS corner-overlap reduction uses one common factor so all four corners
118
+ // retain their proportions when either pair exceeds the available edge.
119
+ let scale = 1;
120
+ const top = topLeftRadius + topRightRadius;
121
+ const right = topRightRadius + bottomRightRadius;
122
+ const bottom = bottomLeftRadius + bottomRightRadius;
123
+ const left = topLeftRadius + bottomLeftRadius;
124
+ if (top > 0) scale = Math.min(scale, width / top);
125
+ if (right > 0) scale = Math.min(scale, height / right);
126
+ if (bottom > 0) scale = Math.min(scale, width / bottom);
127
+ if (left > 0) scale = Math.min(scale, height / left);
128
+ scale = Math.max(0, Math.min(1, scale));
129
+ const canonicalTopLeftRadius = topLeftRadius * scale;
130
+ const canonicalTopRightRadius = topRightRadius * scale;
131
+ const canonicalBottomRightRadius = bottomRightRadius * scale;
132
+ const canonicalBottomLeftRadius = bottomLeftRadius * scale;
133
+ const radius = canonicalTopLeftRadius === canonicalTopRightRadius && canonicalTopRightRadius === canonicalBottomRightRadius && canonicalBottomRightRadius === canonicalBottomLeftRadius ? canonicalTopLeftRadius : 0;
52
134
  return {
53
- x: left,
54
- y: top,
135
+ x,
136
+ y,
55
137
  width,
56
138
  height,
57
- radius: Math.min(Math.max(0, geometry.radius), Math.min(width, height) / 2)
139
+ radius,
140
+ topLeftRadius: canonicalTopLeftRadius,
141
+ topRightRadius: canonicalTopRightRadius,
142
+ bottomRightRadius: canonicalBottomRightRadius,
143
+ bottomLeftRadius: canonicalBottomLeftRadius,
144
+ curve: resolvedCurve(geometry)
145
+ };
146
+ }
147
+
148
+ /**
149
+ * Expands presentation defaults and applies CSS proportional corner scaling.
150
+ */
151
+ export function canonicalizeClipGeometry(geometry) {
152
+ 'worklet';
153
+
154
+ if (!isFiniteClipGeometry(geometry)) return null;
155
+ const width = Math.max(0, geometry.width);
156
+ const height = Math.max(0, geometry.height);
157
+ return createCanonicalClipGeometry(geometry, geometry.x, geometry.y, width, height);
158
+ }
159
+ export function canonicalizeClipPresentation(presentation) {
160
+ 'worklet';
161
+
162
+ if (!isFiniteClipPresentation(presentation)) return null;
163
+ const clip = canonicalizeClipGeometry(presentation.clip);
164
+ if (clip === null) return null;
165
+ const boxShadow = canonicalizeClipBoxShadow(presentation.boxShadow);
166
+ if (boxShadow === null) return null;
167
+ return {
168
+ clip,
169
+ contentTranslateX: presentation.contentTranslateX,
170
+ contentTranslateY: presentation.contentTranslateY,
171
+ contentScale: resolvedContentScale(presentation),
172
+ ...(boxShadow === undefined ? {} : {
173
+ boxShadow
174
+ })
175
+ };
176
+ }
177
+
178
+ // Keep this below the canonicalization helpers so the worklet never closes
179
+ // over a helper declared later in this module.
180
+ export function createClipPresentation(clip, contentTranslateX = 0, contentTranslateY = 0, contentScale = 1, boxShadow) {
181
+ 'worklet';
182
+
183
+ const canonicalClip = canonicalizeClipGeometry(clip);
184
+ const canonicalShadow = canonicalizeClipBoxShadow(boxShadow);
185
+ return {
186
+ // Keep invalid input observably invalid so downstream validation remains
187
+ // atomic instead of accidentally sanitizing a required scalar.
188
+ clip: canonicalClip ?? {
189
+ x: clip.x,
190
+ y: clip.y,
191
+ width: clip.width,
192
+ height: clip.height,
193
+ radius: clip.radius,
194
+ topLeftRadius: resolvedTopLeftRadius(clip),
195
+ topRightRadius: resolvedTopRightRadius(clip),
196
+ bottomRightRadius: resolvedBottomRightRadius(clip),
197
+ bottomLeftRadius: resolvedBottomLeftRadius(clip),
198
+ curve: resolvedCurve(clip)
199
+ },
200
+ contentTranslateX,
201
+ contentTranslateY,
202
+ contentScale,
203
+ ...(canonicalShadow === undefined ? {} : {
204
+ // Match the geometry constructor's invalid-input behavior: retain the
205
+ // bad source value so the driver's atomic validation rejects it.
206
+ boxShadow: canonicalShadow ?? boxShadow
207
+ })
58
208
  };
59
209
  }
60
210
  //# sourceMappingURL=geometry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createClipPresentation","clip","contentTranslateX","contentTranslateY","isFiniteClipGeometry","geometry","Number","isFinite","x","y","width","height","radius","clipGeometryEquals","first","second","isFiniteClipPresentation","presentation","clipPresentationEquals","normalizeClipGeometry","bounds","values","every","boundsWidth","Math","max","boundsHeight","requestedWidth","requestedHeight","left","min","top","right","bottom"],"sourceRoot":"../../src","sources":["geometry.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["processColor","DEFAULT_SHADOW_COLOR","isClipCurve","curve","undefined","isFiniteOptionalNumber","value","Number","isFinite","canonicalizeClipBoxShadow","shadow","offsetX","offsetY","blurRadius","spreadDistance","processedColor","color","unsignedProcessedColor","Math","max","clipBoxShadowEquals","first","second","canonicalFirst","canonicalSecond","isFiniteClipGeometry","geometry","width","height","x","y","radius","topLeftRadius","topRightRadius","bottomRightRadius","bottomLeftRadius","resolvedTopLeftRadius","resolvedTopRightRadius","resolvedBottomRightRadius","resolvedBottomLeftRadius","resolvedCurve","clipGeometryEquals","resolvedContentScale","presentation","contentScale","isFiniteClipPresentation","boxShadow","clip","contentTranslateX","contentTranslateY","clipPresentationEquals","createCanonicalClipGeometry","scale","top","right","bottom","left","min","canonicalTopLeftRadius","canonicalTopRightRadius","canonicalBottomRightRadius","canonicalBottomLeftRadius","canonicalizeClipGeometry","canonicalizeClipPresentation","createClipPresentation","canonicalClip","canonicalShadow"],"sourceRoot":"../../src","sources":["geometry.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=groupTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["groupTypes.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { useSmoothClipGroup } from "./groups.native.js";
4
+ //# sourceMappingURL=groups.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSmoothClipGroup"],"sourceRoot":"../../src","sources":["groups.android.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,oBAAiB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { useSmoothClipGroup } from "./groups.native.js";
4
+ //# sourceMappingURL=groups.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSmoothClipGroup"],"sourceRoot":"../../src","sources":["groups.ios.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,oBAAiB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { useSmoothClipGroup } from "./groups.native.js";
4
+ //# sourceMappingURL=groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSmoothClipGroup"],"sourceRoot":"../../src","sources":["groups.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,oBAAiB","ignoreList":[]}