react-native-drax 0.11.0-alpha.2 → 1.0.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 (246) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +385 -227
  3. package/lib/module/DebugOverlay.js +121 -0
  4. package/lib/module/DebugOverlay.js.map +1 -0
  5. package/lib/module/Drax.js +36 -0
  6. package/lib/module/Drax.js.map +1 -0
  7. package/lib/module/DraxContext.js +6 -0
  8. package/lib/module/DraxContext.js.map +1 -0
  9. package/lib/module/DraxHandle.js +47 -0
  10. package/lib/module/DraxHandle.js.map +1 -0
  11. package/lib/module/DraxHandleContext.js +11 -0
  12. package/lib/module/DraxHandleContext.js.map +1 -0
  13. package/lib/module/DraxList.js +108 -0
  14. package/lib/module/DraxList.js.map +1 -0
  15. package/lib/module/DraxProvider.js +203 -0
  16. package/lib/module/DraxProvider.js.map +1 -0
  17. package/lib/module/DraxScrollView.js +167 -0
  18. package/lib/module/DraxScrollView.js.map +1 -0
  19. package/lib/module/DraxSubprovider.js +21 -0
  20. package/lib/module/DraxSubprovider.js.map +1 -0
  21. package/lib/module/DraxView.js +348 -0
  22. package/lib/module/DraxView.js.map +1 -0
  23. package/lib/module/HoverLayer.js +152 -0
  24. package/lib/module/HoverLayer.js.map +1 -0
  25. package/lib/module/SortableBoardContainer.js +386 -0
  26. package/lib/module/SortableBoardContainer.js.map +1 -0
  27. package/lib/module/SortableBoardContext.js +6 -0
  28. package/lib/module/SortableBoardContext.js.map +1 -0
  29. package/lib/module/SortableContainer.js +561 -0
  30. package/lib/module/SortableContainer.js.map +1 -0
  31. package/lib/module/SortableItem.js +226 -0
  32. package/lib/module/SortableItem.js.map +1 -0
  33. package/lib/module/SortableItemContext.js +38 -0
  34. package/lib/module/SortableItemContext.js.map +1 -0
  35. package/lib/module/compat/detectVersion.js +19 -0
  36. package/lib/module/compat/detectVersion.js.map +1 -0
  37. package/lib/module/compat/index.js +5 -0
  38. package/lib/module/compat/index.js.map +1 -0
  39. package/lib/module/compat/types.js +4 -0
  40. package/lib/module/compat/types.js.map +1 -0
  41. package/lib/module/compat/useDraxPanGesture.js +94 -0
  42. package/lib/module/compat/useDraxPanGesture.js.map +1 -0
  43. package/lib/module/hooks/index.js +5 -0
  44. package/lib/module/hooks/index.js.map +1 -0
  45. package/lib/module/hooks/useCallbackDispatch.js +681 -0
  46. package/lib/module/hooks/useCallbackDispatch.js.map +1 -0
  47. package/lib/module/hooks/useDragGesture.js +240 -0
  48. package/lib/module/hooks/useDragGesture.js.map +1 -0
  49. package/lib/module/hooks/useDraxContext.js +12 -0
  50. package/lib/module/hooks/useDraxContext.js.map +1 -0
  51. package/lib/module/hooks/useDraxId.js +13 -0
  52. package/lib/module/hooks/useDraxId.js.map +1 -0
  53. package/lib/module/hooks/useDraxMethods.js +73 -0
  54. package/lib/module/hooks/useDraxMethods.js.map +1 -0
  55. package/lib/module/hooks/useDraxScrollHandler.js +97 -0
  56. package/lib/module/hooks/useDraxScrollHandler.js.map +1 -0
  57. package/lib/module/hooks/useSortableBoard.js +37 -0
  58. package/lib/module/hooks/useSortableBoard.js.map +1 -0
  59. package/lib/module/hooks/useSortableList.js +824 -0
  60. package/lib/module/hooks/useSortableList.js.map +1 -0
  61. package/lib/module/hooks/useSpatialIndex.js +283 -0
  62. package/lib/module/hooks/useSpatialIndex.js.map +1 -0
  63. package/lib/module/hooks/useViewStyles.js +158 -0
  64. package/lib/module/hooks/useViewStyles.js.map +1 -0
  65. package/lib/module/hooks/useWebScrollFreeze.js +52 -0
  66. package/lib/module/hooks/useWebScrollFreeze.js.map +1 -0
  67. package/lib/module/index.js +37 -0
  68. package/lib/module/index.js.map +1 -0
  69. package/lib/module/math.js +222 -0
  70. package/lib/module/math.js.map +1 -0
  71. package/lib/module/package.json +1 -0
  72. package/lib/module/params.js +88 -0
  73. package/lib/module/params.js.map +1 -0
  74. package/lib/module/types.js +213 -0
  75. package/lib/module/types.js.map +1 -0
  76. package/lib/typescript/package.json +1 -0
  77. package/lib/typescript/src/DebugOverlay.d.ts +17 -0
  78. package/lib/typescript/src/DebugOverlay.d.ts.map +1 -0
  79. package/lib/typescript/src/Drax.d.ts +28 -0
  80. package/lib/typescript/src/Drax.d.ts.map +1 -0
  81. package/lib/typescript/src/DraxContext.d.ts +3 -0
  82. package/lib/typescript/src/DraxContext.d.ts.map +1 -0
  83. package/lib/typescript/src/DraxHandle.d.ts +25 -0
  84. package/lib/typescript/src/DraxHandle.d.ts.map +1 -0
  85. package/lib/typescript/src/DraxHandleContext.d.ts +12 -0
  86. package/lib/typescript/src/DraxHandleContext.d.ts.map +1 -0
  87. package/lib/typescript/src/DraxList.d.ts +66 -0
  88. package/lib/typescript/src/DraxList.d.ts.map +1 -0
  89. package/lib/typescript/src/DraxProvider.d.ts +4 -0
  90. package/lib/typescript/src/DraxProvider.d.ts.map +1 -0
  91. package/lib/typescript/src/DraxScrollView.d.ts +7 -0
  92. package/lib/typescript/src/DraxScrollView.d.ts.map +1 -0
  93. package/lib/typescript/src/DraxSubprovider.d.ts +4 -0
  94. package/lib/typescript/src/DraxSubprovider.d.ts.map +1 -0
  95. package/lib/typescript/src/DraxView.d.ts +4 -0
  96. package/lib/typescript/src/DraxView.d.ts.map +1 -0
  97. package/lib/typescript/src/HoverLayer.d.ts +38 -0
  98. package/lib/typescript/src/HoverLayer.d.ts.map +1 -0
  99. package/lib/typescript/src/SortableBoardContainer.d.ts +11 -0
  100. package/lib/typescript/src/SortableBoardContainer.d.ts.map +1 -0
  101. package/lib/typescript/src/SortableBoardContext.d.ts +4 -0
  102. package/lib/typescript/src/SortableBoardContext.d.ts.map +1 -0
  103. package/lib/typescript/src/SortableContainer.d.ts +13 -0
  104. package/lib/typescript/src/SortableContainer.d.ts.map +1 -0
  105. package/lib/typescript/src/SortableItem.d.ts +14 -0
  106. package/lib/typescript/src/SortableItem.d.ts.map +1 -0
  107. package/lib/typescript/src/SortableItemContext.d.ts +37 -0
  108. package/lib/typescript/src/SortableItemContext.d.ts.map +1 -0
  109. package/lib/typescript/src/compat/detectVersion.d.ts +2 -0
  110. package/lib/typescript/src/compat/detectVersion.d.ts.map +1 -0
  111. package/lib/typescript/src/compat/index.d.ts +4 -0
  112. package/lib/typescript/src/compat/index.d.ts.map +1 -0
  113. package/lib/typescript/src/compat/types.d.ts +33 -0
  114. package/lib/typescript/src/compat/types.d.ts.map +1 -0
  115. package/lib/typescript/src/compat/useDraxPanGesture.d.ts +8 -0
  116. package/lib/typescript/src/compat/useDraxPanGesture.d.ts.map +1 -0
  117. package/lib/typescript/src/hooks/index.d.ts +3 -0
  118. package/lib/typescript/src/hooks/index.d.ts.map +1 -0
  119. package/lib/typescript/src/hooks/useCallbackDispatch.d.ts +40 -0
  120. package/lib/typescript/src/hooks/useCallbackDispatch.d.ts.map +1 -0
  121. package/lib/typescript/src/hooks/useDragGesture.d.ts +17 -0
  122. package/lib/typescript/src/hooks/useDragGesture.d.ts.map +1 -0
  123. package/lib/typescript/src/hooks/useDraxContext.d.ts +2 -0
  124. package/lib/typescript/src/hooks/useDraxContext.d.ts.map +1 -0
  125. package/{build → lib/typescript/src}/hooks/useDraxId.d.ts +1 -0
  126. package/lib/typescript/src/hooks/useDraxId.d.ts.map +1 -0
  127. package/lib/typescript/src/hooks/useDraxMethods.d.ts +13 -0
  128. package/lib/typescript/src/hooks/useDraxMethods.d.ts.map +1 -0
  129. package/lib/typescript/src/hooks/useDraxScrollHandler.d.ts +27 -0
  130. package/lib/typescript/src/hooks/useDraxScrollHandler.d.ts.map +1 -0
  131. package/lib/typescript/src/hooks/useSortableBoard.d.ts +10 -0
  132. package/lib/typescript/src/hooks/useSortableBoard.d.ts.map +1 -0
  133. package/lib/typescript/src/hooks/useSortableList.d.ts +11 -0
  134. package/lib/typescript/src/hooks/useSortableList.d.ts.map +1 -0
  135. package/lib/typescript/src/hooks/useSpatialIndex.d.ts +22 -0
  136. package/lib/typescript/src/hooks/useSpatialIndex.d.ts.map +1 -0
  137. package/lib/typescript/src/hooks/useViewStyles.d.ts +183 -0
  138. package/lib/typescript/src/hooks/useViewStyles.d.ts.map +1 -0
  139. package/lib/typescript/src/hooks/useWebScrollFreeze.d.ts +14 -0
  140. package/lib/typescript/src/hooks/useWebScrollFreeze.d.ts.map +1 -0
  141. package/lib/typescript/src/index.d.ts +25 -0
  142. package/lib/typescript/src/index.d.ts.map +1 -0
  143. package/lib/typescript/src/math.d.ts +52 -0
  144. package/lib/typescript/src/math.d.ts.map +1 -0
  145. package/{build → lib/typescript/src}/params.d.ts +13 -9
  146. package/lib/typescript/src/params.d.ts.map +1 -0
  147. package/lib/typescript/src/types.d.ts +743 -0
  148. package/lib/typescript/src/types.d.ts.map +1 -0
  149. package/package.json +164 -34
  150. package/src/DebugOverlay.tsx +140 -0
  151. package/src/Drax.ts +33 -0
  152. package/src/DraxContext.ts +8 -0
  153. package/src/DraxHandle.tsx +52 -0
  154. package/src/DraxHandleContext.ts +15 -0
  155. package/src/DraxList.tsx +181 -0
  156. package/src/DraxProvider.tsx +224 -0
  157. package/src/DraxScrollView.tsx +180 -0
  158. package/src/DraxSubprovider.tsx +22 -0
  159. package/src/DraxView.tsx +430 -0
  160. package/src/HoverLayer.tsx +167 -0
  161. package/src/SortableBoardContainer.tsx +439 -0
  162. package/src/SortableBoardContext.ts +6 -0
  163. package/src/SortableContainer.tsx +642 -0
  164. package/src/SortableItem.tsx +264 -0
  165. package/src/SortableItemContext.ts +46 -0
  166. package/src/compat/detectVersion.ts +17 -0
  167. package/src/compat/index.ts +7 -0
  168. package/src/compat/types.ts +35 -0
  169. package/src/compat/useDraxPanGesture.ts +112 -0
  170. package/src/hooks/index.ts +2 -0
  171. package/src/hooks/useCallbackDispatch.tsx +823 -0
  172. package/src/hooks/useDragGesture.ts +273 -0
  173. package/src/hooks/useDraxContext.ts +11 -0
  174. package/src/hooks/useDraxId.ts +11 -0
  175. package/src/hooks/useDraxMethods.ts +71 -0
  176. package/src/hooks/useDraxScrollHandler.ts +121 -0
  177. package/src/hooks/useSortableBoard.ts +44 -0
  178. package/src/hooks/useSortableList.ts +868 -0
  179. package/src/hooks/useSpatialIndex.ts +336 -0
  180. package/src/hooks/useViewStyles.ts +180 -0
  181. package/src/hooks/useWebScrollFreeze.ts +60 -0
  182. package/src/index.ts +110 -0
  183. package/src/math.ts +251 -0
  184. package/src/params.ts +74 -0
  185. package/src/types.ts +919 -0
  186. package/.editorconfig +0 -15
  187. package/.eslintrc.js +0 -4
  188. package/.prettierrc +0 -16
  189. package/CHANGELOG.md +0 -270
  190. package/CODE-OF-CONDUCT.md +0 -85
  191. package/CONTRIBUTING.md +0 -15
  192. package/FUNDING.yml +0 -4
  193. package/build/AllHoverViews.d.ts +0 -0
  194. package/build/AllHoverViews.js +0 -30
  195. package/build/DraxContext.d.ts +0 -2
  196. package/build/DraxContext.js +0 -6
  197. package/build/DraxList.d.ts +0 -8
  198. package/build/DraxList.js +0 -512
  199. package/build/DraxListItem.d.ts +0 -7
  200. package/build/DraxListItem.js +0 -121
  201. package/build/DraxProvider.d.ts +0 -2
  202. package/build/DraxProvider.js +0 -704
  203. package/build/DraxScrollView.d.ts +0 -6
  204. package/build/DraxScrollView.js +0 -136
  205. package/build/DraxSubprovider.d.ts +0 -3
  206. package/build/DraxSubprovider.js +0 -18
  207. package/build/DraxView.d.ts +0 -8
  208. package/build/DraxView.js +0 -93
  209. package/build/HoverView.d.ts +0 -8
  210. package/build/HoverView.js +0 -40
  211. package/build/PanGestureDetector.d.ts +0 -3
  212. package/build/PanGestureDetector.js +0 -49
  213. package/build/hooks/index.d.ts +0 -4
  214. package/build/hooks/index.js +0 -11
  215. package/build/hooks/useContent.d.ts +0 -23
  216. package/build/hooks/useContent.js +0 -212
  217. package/build/hooks/useDraxContext.d.ts +0 -1
  218. package/build/hooks/useDraxContext.js +0 -13
  219. package/build/hooks/useDraxId.js +0 -13
  220. package/build/hooks/useDraxProtocol.d.ts +0 -5
  221. package/build/hooks/useDraxProtocol.js +0 -32
  222. package/build/hooks/useDraxRegistry.d.ts +0 -78
  223. package/build/hooks/useDraxRegistry.js +0 -714
  224. package/build/hooks/useDraxScrollHandler.d.ts +0 -25
  225. package/build/hooks/useDraxScrollHandler.js +0 -89
  226. package/build/hooks/useDraxState.d.ts +0 -10
  227. package/build/hooks/useDraxState.js +0 -132
  228. package/build/hooks/useMeasurements.d.ts +0 -9
  229. package/build/hooks/useMeasurements.js +0 -119
  230. package/build/hooks/useStatus.d.ts +0 -11
  231. package/build/hooks/useStatus.js +0 -96
  232. package/build/index.d.ts +0 -9
  233. package/build/index.js +0 -33
  234. package/build/math.d.ts +0 -22
  235. package/build/math.js +0 -68
  236. package/build/params.js +0 -27
  237. package/build/transform.d.ts +0 -11
  238. package/build/transform.js +0 -59
  239. package/build/types.d.ts +0 -807
  240. package/build/types.js +0 -46
  241. package/docs/concept.md +0 -79
  242. package/docs/images/color-drag-drop.gif +0 -0
  243. package/docs/images/deck-cards.gif +0 -0
  244. package/docs/images/drag-drop-events.jpg +0 -0
  245. package/docs/images/knight-moves.gif +0 -0
  246. package/docs/images/reorderable-list.gif +0 -0
@@ -0,0 +1,183 @@
1
+ import type { DraxViewStyleProps, DraxStyleProp } from '../types';
2
+ /**
3
+ * Provides animated styles for a DraxView.
4
+ *
5
+ * Key performance property: reads ONLY draggedIdSV, receiverIdSV, and dragPhaseSV.
6
+ * These change ~5 times per drag total (not per frame), so ALL views re-evaluate
7
+ * their styles only ~5 times per drag operation.
8
+ *
9
+ * hoverPositionSV is NOT read here — only HoverLayer reads it, ensuring only
10
+ * 1 component re-evaluates per frame during active drag.
11
+ */
12
+ export declare const useViewStyles: (id: string, styleProps: DraxViewStyleProps) => {
13
+ style: DraxStyleProp | undefined;
14
+ animatedDragStyle: import("react-native-reanimated/lib/typescript/hook/commonTypes").AnimatedStyleHandle<Readonly<Omit<Readonly<Omit<Readonly<{
15
+ display?: "none" | "flex" | "contents";
16
+ width?: import("react-native").DimensionValue;
17
+ height?: import("react-native").DimensionValue;
18
+ bottom?: import("react-native").DimensionValue;
19
+ end?: import("react-native").DimensionValue;
20
+ left?: import("react-native").DimensionValue;
21
+ right?: import("react-native").DimensionValue;
22
+ start?: import("react-native").DimensionValue;
23
+ top?: import("react-native").DimensionValue;
24
+ inset?: import("react-native").DimensionValue;
25
+ insetBlock?: import("react-native").DimensionValue;
26
+ insetBlockEnd?: import("react-native").DimensionValue;
27
+ insetBlockStart?: import("react-native").DimensionValue;
28
+ insetInline?: import("react-native").DimensionValue;
29
+ insetInlineEnd?: import("react-native").DimensionValue;
30
+ insetInlineStart?: import("react-native").DimensionValue;
31
+ minWidth?: import("react-native").DimensionValue;
32
+ maxWidth?: import("react-native").DimensionValue;
33
+ minHeight?: import("react-native").DimensionValue;
34
+ maxHeight?: import("react-native").DimensionValue;
35
+ margin?: import("react-native").DimensionValue;
36
+ marginBlock?: import("react-native").DimensionValue;
37
+ marginBlockEnd?: import("react-native").DimensionValue;
38
+ marginBlockStart?: import("react-native").DimensionValue;
39
+ marginBottom?: import("react-native").DimensionValue;
40
+ marginEnd?: import("react-native").DimensionValue;
41
+ marginHorizontal?: import("react-native").DimensionValue;
42
+ marginInline?: import("react-native").DimensionValue;
43
+ marginInlineEnd?: import("react-native").DimensionValue;
44
+ marginInlineStart?: import("react-native").DimensionValue;
45
+ marginLeft?: import("react-native").DimensionValue;
46
+ marginRight?: import("react-native").DimensionValue;
47
+ marginStart?: import("react-native").DimensionValue;
48
+ marginTop?: import("react-native").DimensionValue;
49
+ marginVertical?: import("react-native").DimensionValue;
50
+ padding?: import("react-native").DimensionValue;
51
+ paddingBlock?: import("react-native").DimensionValue;
52
+ paddingBlockEnd?: import("react-native").DimensionValue;
53
+ paddingBlockStart?: import("react-native").DimensionValue;
54
+ paddingBottom?: import("react-native").DimensionValue;
55
+ paddingEnd?: import("react-native").DimensionValue;
56
+ paddingHorizontal?: import("react-native").DimensionValue;
57
+ paddingInline?: import("react-native").DimensionValue;
58
+ paddingInlineEnd?: import("react-native").DimensionValue;
59
+ paddingInlineStart?: import("react-native").DimensionValue;
60
+ paddingLeft?: import("react-native").DimensionValue;
61
+ paddingRight?: import("react-native").DimensionValue;
62
+ paddingStart?: import("react-native").DimensionValue;
63
+ paddingTop?: import("react-native").DimensionValue;
64
+ paddingVertical?: import("react-native").DimensionValue;
65
+ borderWidth?: number;
66
+ borderBottomWidth?: number;
67
+ borderEndWidth?: number;
68
+ borderLeftWidth?: number;
69
+ borderRightWidth?: number;
70
+ borderStartWidth?: number;
71
+ borderTopWidth?: number;
72
+ position?: "absolute" | "relative" | "static";
73
+ flexDirection?: "row" | "row-reverse" | "column" | "column-reverse";
74
+ flexWrap?: "wrap" | "nowrap" | "wrap-reverse";
75
+ justifyContent?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly";
76
+ alignItems?: "flex-start" | "flex-end" | "center" | "stretch" | "baseline";
77
+ alignSelf?: "auto" | "flex-start" | "flex-end" | "center" | "stretch" | "baseline";
78
+ alignContent?: "flex-start" | "flex-end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly";
79
+ overflow?: "visible" | "hidden" | "scroll";
80
+ flex?: number;
81
+ flexGrow?: number;
82
+ flexShrink?: number;
83
+ flexBasis?: number | string;
84
+ aspectRatio?: number | string;
85
+ boxSizing?: "border-box" | "content-box";
86
+ zIndex?: number;
87
+ direction?: "inherit" | "ltr" | "rtl";
88
+ rowGap?: number | string;
89
+ columnGap?: number | string;
90
+ gap?: number | string;
91
+ }>, "shadowColor" | "shadowOffset" | "shadowOpacity" | "shadowRadius" | "transform" | "transformOrigin" | "backfaceVisibility" | "backgroundColor" | "borderColor" | "borderCurve" | "borderBottomColor" | "borderEndColor" | "borderLeftColor" | "borderRightColor" | "borderStartColor" | "borderTopColor" | "borderBlockColor" | "borderBlockEndColor" | "borderBlockStartColor" | "borderRadius" | "borderBottomEndRadius" | "borderBottomLeftRadius" | "borderBottomRightRadius" | "borderBottomStartRadius" | "borderEndEndRadius" | "borderEndStartRadius" | "borderStartEndRadius" | "borderStartStartRadius" | "borderTopEndRadius" | "borderTopLeftRadius" | "borderTopRightRadius" | "borderTopStartRadius" | "borderStyle" | "borderWidth" | "borderBottomWidth" | "borderEndWidth" | "borderLeftWidth" | "borderRightWidth" | "borderStartWidth" | "borderTopWidth" | "opacity" | "outlineColor" | "outlineOffset" | "outlineStyle" | "outlineWidth" | "elevation" | "pointerEvents" | "cursor" | "boxShadow" | "filter" | "mixBlendMode" | "experimental_backgroundImage" | "experimental_backgroundSize" | "experimental_backgroundPosition" | "experimental_backgroundRepeat" | "isolation"> & Omit<Readonly<Omit<Readonly<{
92
+ shadowColor?: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
93
+ shadowOffset?: Readonly<{
94
+ width?: number;
95
+ height?: number;
96
+ }>;
97
+ shadowOpacity?: number;
98
+ shadowRadius?: number;
99
+ }>, never> & Omit<Readonly<{}>, never>>, "transform" | "transformOrigin" | "backfaceVisibility" | "backgroundColor" | "borderColor" | "borderCurve" | "borderBottomColor" | "borderEndColor" | "borderLeftColor" | "borderRightColor" | "borderStartColor" | "borderTopColor" | "borderBlockColor" | "borderBlockEndColor" | "borderBlockStartColor" | "borderRadius" | "borderBottomEndRadius" | "borderBottomLeftRadius" | "borderBottomRightRadius" | "borderBottomStartRadius" | "borderEndEndRadius" | "borderEndStartRadius" | "borderStartEndRadius" | "borderStartStartRadius" | "borderTopEndRadius" | "borderTopLeftRadius" | "borderTopRightRadius" | "borderTopStartRadius" | "borderStyle" | "borderWidth" | "borderBottomWidth" | "borderEndWidth" | "borderLeftWidth" | "borderRightWidth" | "borderStartWidth" | "borderTopWidth" | "opacity" | "outlineColor" | "outlineOffset" | "outlineStyle" | "outlineWidth" | "elevation" | "pointerEvents" | "cursor" | "boxShadow" | "filter" | "mixBlendMode" | "experimental_backgroundImage" | "experimental_backgroundSize" | "experimental_backgroundPosition" | "experimental_backgroundRepeat" | "isolation"> & Omit<Readonly<{
100
+ transform?: ReadonlyArray<Readonly<import("react-native/types_generated/Libraries/StyleSheet/private/_TransformStyle").MaximumOneOf<import("react-native/types_generated/Libraries/StyleSheet/private/_TransformStyle").MergeUnion<{
101
+ readonly perspective: number | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node;
102
+ } | {
103
+ readonly rotate: string | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node;
104
+ } | {
105
+ readonly rotateX: string | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node;
106
+ } | {
107
+ readonly rotateY: string | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node;
108
+ } | {
109
+ readonly rotateZ: string | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node;
110
+ } | {
111
+ readonly scale: number | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node;
112
+ } | {
113
+ readonly scaleX: number | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node;
114
+ } | {
115
+ readonly scaleY: number | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node;
116
+ } | {
117
+ readonly translateX: number | string | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node;
118
+ } | {
119
+ readonly translateY: number | string | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node;
120
+ } | {
121
+ readonly translate: [number | string | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node, number | string | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node] | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node;
122
+ } | {
123
+ readonly skewX: string | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node;
124
+ } | {
125
+ readonly skewY: string | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node;
126
+ } | {
127
+ readonly matrix: ReadonlyArray<number | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node> | import("react-native/types_generated/Libraries/Animated/AnimatedExports").Node;
128
+ }>>>> | string;
129
+ transformOrigin?: [string | number, string | number, string | number] | string;
130
+ }>, "backfaceVisibility" | "backgroundColor" | "borderColor" | "borderCurve" | "borderBottomColor" | "borderEndColor" | "borderLeftColor" | "borderRightColor" | "borderStartColor" | "borderTopColor" | "borderBlockColor" | "borderBlockEndColor" | "borderBlockStartColor" | "borderRadius" | "borderBottomEndRadius" | "borderBottomLeftRadius" | "borderBottomRightRadius" | "borderBottomStartRadius" | "borderEndEndRadius" | "borderEndStartRadius" | "borderStartEndRadius" | "borderStartStartRadius" | "borderTopEndRadius" | "borderTopLeftRadius" | "borderTopRightRadius" | "borderTopStartRadius" | "borderStyle" | "borderWidth" | "borderBottomWidth" | "borderEndWidth" | "borderLeftWidth" | "borderRightWidth" | "borderStartWidth" | "borderTopWidth" | "opacity" | "outlineColor" | "outlineOffset" | "outlineStyle" | "outlineWidth" | "elevation" | "pointerEvents" | "cursor" | "boxShadow" | "filter" | "mixBlendMode" | "experimental_backgroundImage" | "experimental_backgroundSize" | "experimental_backgroundPosition" | "experimental_backgroundRepeat" | "isolation"> & Omit<Readonly<{
131
+ backfaceVisibility?: "visible" | "hidden";
132
+ backgroundColor?: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
133
+ borderColor?: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
134
+ borderCurve?: "circular" | "continuous";
135
+ borderBottomColor?: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
136
+ borderEndColor?: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
137
+ borderLeftColor?: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
138
+ borderRightColor?: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
139
+ borderStartColor?: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
140
+ borderTopColor?: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
141
+ borderBlockColor?: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
142
+ borderBlockEndColor?: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
143
+ borderBlockStartColor?: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
144
+ borderRadius?: number | string;
145
+ borderBottomEndRadius?: number | string;
146
+ borderBottomLeftRadius?: number | string;
147
+ borderBottomRightRadius?: number | string;
148
+ borderBottomStartRadius?: number | string;
149
+ borderEndEndRadius?: number | string;
150
+ borderEndStartRadius?: number | string;
151
+ borderStartEndRadius?: number | string;
152
+ borderStartStartRadius?: number | string;
153
+ borderTopEndRadius?: number | string;
154
+ borderTopLeftRadius?: number | string;
155
+ borderTopRightRadius?: number | string;
156
+ borderTopStartRadius?: number | string;
157
+ borderStyle?: "solid" | "dotted" | "dashed";
158
+ borderWidth?: number;
159
+ borderBottomWidth?: number;
160
+ borderEndWidth?: number;
161
+ borderLeftWidth?: number;
162
+ borderRightWidth?: number;
163
+ borderStartWidth?: number;
164
+ borderTopWidth?: number;
165
+ opacity?: number;
166
+ outlineColor?: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
167
+ outlineOffset?: number;
168
+ outlineStyle?: "solid" | "dotted" | "dashed";
169
+ outlineWidth?: number;
170
+ elevation?: number;
171
+ pointerEvents?: "auto" | "none" | "box-none" | "box-only";
172
+ cursor?: import("react-native").CursorValue;
173
+ boxShadow?: ReadonlyArray<import("react-native").BoxShadowValue> | string;
174
+ filter?: ReadonlyArray<import("react-native").FilterFunction> | string;
175
+ mixBlendMode?: "color" | "normal" | "multiply" | "screen" | "overlay" | "darken" | "lighten" | "color-dodge" | "color-burn" | "hard-light" | "soft-light" | "difference" | "exclusion" | "hue" | "saturation" | "luminosity";
176
+ experimental_backgroundImage?: ReadonlyArray<import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").BackgroundImageValue> | string;
177
+ experimental_backgroundSize?: ReadonlyArray<import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").BackgroundSizeValue> | string;
178
+ experimental_backgroundPosition?: ReadonlyArray<import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").BackgroundPositionValue> | string;
179
+ experimental_backgroundRepeat?: ReadonlyArray<import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").BackgroundRepeatValue> | string;
180
+ isolation?: "auto" | "isolate";
181
+ }>, never>>, never> & Omit<Readonly<{}>, never>>>;
182
+ };
183
+ //# sourceMappingURL=useViewStyles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useViewStyles.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useViewStyles.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGlE;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,EAAE,YAAY,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmK4pmB,CAAC;kBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA1DzvmB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { RefObject } from 'react';
2
+ /**
3
+ * On mobile web, RNGH sets touch-action:none on gesture views which blocks
4
+ * native scroll. We set touch-action:pan-y (via gesture config) to allow
5
+ * scroll before long-press. When drag activates, this hook freezes the
6
+ * scroll container (overflow:hidden) so scroll stops. On drag end, unfreeze.
7
+ *
8
+ * On native, this is a no-op.
9
+ */
10
+ export declare function useWebScrollFreeze(scrollRef: RefObject<object | null>): {
11
+ freeze: () => void;
12
+ unfreeze: () => void;
13
+ };
14
+ //# sourceMappingURL=useWebScrollFreeze.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWebScrollFreeze.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useWebScrollFreeze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAevC;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;;;EAoCrE"}
@@ -0,0 +1,25 @@
1
+ export { Drax } from './Drax';
2
+ export { DraxHandle } from './DraxHandle';
3
+ export { DraxList } from './DraxList';
4
+ export { DraxProvider } from './DraxProvider';
5
+ export { DraxScrollView } from './DraxScrollView';
6
+ export { DraxView } from './DraxView';
7
+ export { SortableContainer } from './SortableContainer';
8
+ export { SortableItem } from './SortableItem';
9
+ export { SortableBoardContainer } from './SortableBoardContainer';
10
+ export type { SortableBoardContainerProps } from './SortableBoardContainer';
11
+ export { useDraxContext } from './hooks/useDraxContext';
12
+ export { useDraxId } from './hooks/useDraxId';
13
+ export { useDraxMethods } from './hooks/useDraxMethods';
14
+ export { useItemContext } from './SortableItemContext';
15
+ export { useSortableList } from './hooks/useSortableList';
16
+ export { useSortableBoard } from './hooks/useSortableBoard';
17
+ export { snapToAlignment } from './math';
18
+ export type { SnapAlignment } from './math';
19
+ export type { Position, ViewDimensions, DraxViewMeasurements, DraxDragEventData, DraxDragEndEventData, DraxDragWithReceiverEventData, DraxDragWithReceiverEndEventData, DraxMonitorEventData, DraxMonitorEndEventData, DraxMonitorDragDropEventData, DraxEventViewData, DraxEventDraggedViewData, DraxEventReceiverViewData, DraxViewState, DraxTrackingStatus, DraxRenderContentProps, DraxRenderHoverContentProps, DraxStyleProp, DraxViewStyleProps, DraxViewRenderContent, DraxViewRenderHoverContent, DraxSnapbackTarget, DraxSnapData, DraxSnapEndEventData, CollisionAlgorithm, DraxViewProps, DraxProviderProps, DraxProviderDragEvent, DraxScrollViewProps, DraxAutoScrollProps, UseSortableListOptions, SortableListHandle, } from './types';
20
+ export type { SortableItemContextValue } from './SortableItemContext';
21
+ export type { SortableReorderEvent, SortableDragStartEvent, SortableDragPositionChangeEvent, SortableDragEndEvent, SortableReorderStrategy, SortableAnimationConfig, SortableAnimationPreset, SortableAnimationCustomConfig, SortableItemMeasurement, DropIndicatorProps, UseSortableBoardOptions, SortableBoardHandle, SortableBoardTransferEvent, } from './types';
22
+ export type { DraxListProps } from './DraxList';
23
+ export type { DraxHandleProps } from './DraxHandle';
24
+ export { DraxViewDragStatus, DraxViewReceiveStatus, DraxSnapbackTargetPreset, AutoScrollDirection, isPosition, } from './types';
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAG5E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAG5C,YAAY,EAEV,QAAQ,EACR,cAAc,EACd,oBAAoB,EAGpB,iBAAiB,EACjB,oBAAoB,EACpB,6BAA6B,EAC7B,gCAAgC,EAChC,oBAAoB,EACpB,uBAAuB,EACvB,4BAA4B,EAC5B,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EAGzB,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,2BAA2B,EAC3B,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAG1B,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EAGpB,kBAAkB,EAGlB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EAGnB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,+BAA+B,EAC/B,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,EACvB,kBAAkB,EAGlB,uBAAuB,EACvB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAEL,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EAGnB,UAAU,GACX,MAAM,SAAS,CAAC"}
@@ -0,0 +1,52 @@
1
+ import type { DraxViewMeasurements, HitTestResult, Position, SpatialEntry, ViewDimensions } from './types';
2
+ export declare const getRelativePosition: ({ x, y }: Position, { width, height, x: x0, y: y0 }: DraxViewMeasurements) => {
3
+ relativePosition: {
4
+ x: number;
5
+ y: number;
6
+ };
7
+ relativePositionRatio: {
8
+ x: number;
9
+ y: number;
10
+ };
11
+ };
12
+ export declare const generateRandomId: () => string;
13
+ /**
14
+ * Compute the absolute position of a spatial entry by walking the parent chain.
15
+ * Accounts for scroll offsets at each level.
16
+ */
17
+ export declare const computeAbsolutePositionWorklet: (entryIndex: number, entries: SpatialEntry[], scrollOffsets: Position[]) => Position;
18
+ /**
19
+ * Hit-test all views in the spatial index against a given absolute position.
20
+ * Runs entirely on the UI thread as a worklet.
21
+ * Returns the deepest receptive view and all monitoring views that contain the point.
22
+ *
23
+ * @param position - Center of the hover view (absolute)
24
+ * @param entries - Spatial index entries
25
+ * @param scrollOffsets - Scroll offsets per entry
26
+ * @param excludeId - ID of the dragged view (excluded from hit-testing)
27
+ * @param draggedDimensions - Optional dimensions of the dragged view (needed for intersect/contain)
28
+ */
29
+ export declare const hitTestWorklet: (position: Position, entries: SpatialEntry[], scrollOffsets: Position[], excludeId: string, draggedDimensions?: ViewDimensions) => HitTestResult;
30
+ /** Named alignment positions for snap targets within a receiver */
31
+ export type SnapAlignment = 'center' | 'top-left' | 'top-center' | 'top-right' | 'center-left' | 'center-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
32
+ /**
33
+ * Compute a snap target position that aligns a dragged view within a receiver
34
+ * at the specified alignment point, with an optional pixel offset.
35
+ *
36
+ * Use as the return value from onDragDrop/onReceiveDragDrop/onMonitorDragDrop:
37
+ * ```
38
+ * onReceiveDragDrop={({ dragged, receiver }) =>
39
+ * snapToAlignment(receiver.measurements, dragged.measurements, 'top-left', { x: 8, y: 8 })
40
+ * }
41
+ * ```
42
+ */
43
+ export declare const snapToAlignment: (receiver: {
44
+ x: number;
45
+ y: number;
46
+ width: number;
47
+ height: number;
48
+ }, dragged: {
49
+ width: number;
50
+ height: number;
51
+ } | undefined, alignment?: SnapAlignment, offset?: Position) => Position;
52
+ //# sourceMappingURL=math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../../src/math.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,mBAAmB,GAC9B,UAAU,QAAQ,EAClB,iCAAiC,oBAAoB;;;;;;;;;CAUtD,CAAC;AAEF,eAAO,MAAM,gBAAgB,cAC2D,CAAC;AAEzF;;;GAGG;AACH,eAAO,MAAM,8BAA8B,GACzC,YAAY,MAAM,EAClB,SAAS,YAAY,EAAE,EACvB,eAAe,QAAQ,EAAE,KACxB,QAmBF,CAAC;AAUF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,GACzB,UAAU,QAAQ,EAClB,SAAS,YAAY,EAAE,EACvB,eAAe,QAAQ,EAAE,EACzB,WAAW,MAAM,EACjB,oBAAoB,cAAc,KACjC,aA4FF,CAAC;AAIF,mEAAmE;AACnE,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,WAAW,GACX,aAAa,GACb,cAAc,GACd,aAAa,GACb,eAAe,GACf,cAAc,CAAC;AAEnB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACjE,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EACtD,YAAW,aAAwB,EACnC,SAAQ,QAAyB,KAChC,QA+CF,CAAC"}
@@ -16,12 +16,16 @@ export declare const defaultAutoScrollJumpRatio = 0.2;
16
16
  export declare const defaultAutoScrollBackThreshold = 0.1;
17
17
  /** Default drag-over minimum position threshold for auto-scroll forward, as a fraction relative to content width/length */
18
18
  export declare const defaultAutoScrollForwardThreshold = 0.9;
19
- export declare const INITIAL_REANIMATED_POSITION: {
20
- value: {
21
- x: number;
22
- y: number;
23
- };
24
- addListener(): void;
25
- removeListener(): void;
26
- modify(): void;
27
- };
19
+ /** Duration in milliseconds for list item shift/reorder animations */
20
+ export declare const ITEM_SHIFT_ANIMATION_DURATION = 200;
21
+ /** Resolved animation configuration for sortable item shifts */
22
+ export interface ResolvedAnimationConfig {
23
+ useSpring: boolean;
24
+ shiftDuration: number;
25
+ springDamping: number;
26
+ springStiffness: number;
27
+ springMass: number;
28
+ }
29
+ /** Resolve a SortableAnimationConfig (preset or custom) to concrete values */
30
+ export declare function resolveAnimationConfig(config: import('./types').SortableAnimationConfig | undefined): ResolvedAnimationConfig;
31
+ //# sourceMappingURL=params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../../src/params.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,gDAAgD;AAChD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C,wDAAwD;AACxD,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,2EAA2E;AAC3E,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD,qFAAqF;AACrF,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,uEAAuE;AACvE,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD,wFAAwF;AACxF,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,wHAAwH;AACxH,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD,2HAA2H;AAC3H,eAAO,MAAM,iCAAiC,MAAM,CAAC;AAErD,sEAAsE;AACtE,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD,gEAAgE;AAChE,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAmBD,8EAA8E;AAC9E,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,SAAS,EAAE,uBAAuB,GAAG,SAAS,GAC5D,uBAAuB,CAczB"}