@react-native-motion-kit/text-motion 0.0.0-stage → 0.1.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 (252) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/LICENSE +20 -0
  3. package/README.ko.md +698 -0
  4. package/README.md +696 -2
  5. package/lib/module/accessibility/index.js +4 -0
  6. package/lib/module/accessibility/index.js.map +1 -0
  7. package/lib/module/accessibility/policies.js +39 -0
  8. package/lib/module/accessibility/policies.js.map +1 -0
  9. package/lib/module/controls/brand.js +4 -0
  10. package/lib/module/controls/brand.js.map +1 -0
  11. package/lib/module/controls/controls.js +28 -0
  12. package/lib/module/controls/controls.js.map +1 -0
  13. package/lib/module/controls/descriptors.js +55 -0
  14. package/lib/module/controls/descriptors.js.map +1 -0
  15. package/lib/module/controls/index.js +4 -0
  16. package/lib/module/controls/index.js.map +1 -0
  17. package/lib/module/effects/compose.js +48 -0
  18. package/lib/module/effects/compose.js.map +1 -0
  19. package/lib/module/effects/fade.js +15 -0
  20. package/lib/module/effects/fade.js.map +1 -0
  21. package/lib/module/effects/index.js +12 -0
  22. package/lib/module/effects/index.js.map +1 -0
  23. package/lib/module/effects/lineReveal.js +17 -0
  24. package/lib/module/effects/lineReveal.js.map +1 -0
  25. package/lib/module/effects/pulse.js +14 -0
  26. package/lib/module/effects/pulse.js.map +1 -0
  27. package/lib/module/effects/rise.js +14 -0
  28. package/lib/module/effects/rise.js.map +1 -0
  29. package/lib/module/effects/scale.js +15 -0
  30. package/lib/module/effects/scale.js.map +1 -0
  31. package/lib/module/effects/shake.js +14 -0
  32. package/lib/module/effects/shake.js.map +1 -0
  33. package/lib/module/effects/slide.js +15 -0
  34. package/lib/module/effects/slide.js.map +1 -0
  35. package/lib/module/effects/typewriter.js +19 -0
  36. package/lib/module/effects/typewriter.js.map +1 -0
  37. package/lib/module/effects/validation.js +10 -0
  38. package/lib/module/effects/validation.js.map +1 -0
  39. package/lib/module/index.js +10 -0
  40. package/lib/module/index.js.map +1 -0
  41. package/lib/module/package.json +1 -0
  42. package/lib/module/presets/index.js +35 -0
  43. package/lib/module/presets/index.js.map +1 -0
  44. package/lib/module/recipe/component.js +60 -0
  45. package/lib/module/recipe/component.js.map +1 -0
  46. package/lib/module/recipe/defineTextMotion.js +9 -0
  47. package/lib/module/recipe/defineTextMotion.js.map +1 -0
  48. package/lib/module/recipe/descriptors.js +60 -0
  49. package/lib/module/recipe/descriptors.js.map +1 -0
  50. package/lib/module/recipe/index.js +5 -0
  51. package/lib/module/recipe/index.js.map +1 -0
  52. package/lib/module/recipe/recipe.js +163 -0
  53. package/lib/module/recipe/recipe.js.map +1 -0
  54. package/lib/module/renderers/index.js +5 -0
  55. package/lib/module/renderers/index.js.map +1 -0
  56. package/lib/module/renderers/nativeText.js +494 -0
  57. package/lib/module/renderers/nativeText.js.map +1 -0
  58. package/lib/module/renderers/nativeTextControls.js +96 -0
  59. package/lib/module/renderers/nativeTextControls.js.map +1 -0
  60. package/lib/module/renderers/nativeTextLineLayout.js +290 -0
  61. package/lib/module/renderers/nativeTextLineLayout.js.map +1 -0
  62. package/lib/module/renderers/nativeTextPlayback.js +91 -0
  63. package/lib/module/renderers/nativeTextPlayback.js.map +1 -0
  64. package/lib/module/renderers/overlayText.js +543 -0
  65. package/lib/module/renderers/overlayText.js.map +1 -0
  66. package/lib/module/renderers/overlayTextLayout.js +182 -0
  67. package/lib/module/renderers/overlayTextLayout.js.map +1 -0
  68. package/lib/module/renderers/rendererMotion.js +264 -0
  69. package/lib/module/renderers/rendererMotion.js.map +1 -0
  70. package/lib/module/split/createToken.js +19 -0
  71. package/lib/module/split/createToken.js.map +1 -0
  72. package/lib/module/split/custom.js +57 -0
  73. package/lib/module/split/custom.js.map +1 -0
  74. package/lib/module/split/graphemes.js +25 -0
  75. package/lib/module/split/graphemes.js.map +1 -0
  76. package/lib/module/split/index.js +7 -0
  77. package/lib/module/split/index.js.map +1 -0
  78. package/lib/module/split/lines.js +43 -0
  79. package/lib/module/split/lines.js.map +1 -0
  80. package/lib/module/split/segmenter.js +74 -0
  81. package/lib/module/split/segmenter.js.map +1 -0
  82. package/lib/module/split/words.js +28 -0
  83. package/lib/module/split/words.js.map +1 -0
  84. package/lib/module/timeline/index.js +7 -0
  85. package/lib/module/timeline/index.js.map +1 -0
  86. package/lib/module/timeline/parallel.js +21 -0
  87. package/lib/module/timeline/parallel.js.map +1 -0
  88. package/lib/module/timeline/sequence.js +18 -0
  89. package/lib/module/timeline/sequence.js.map +1 -0
  90. package/lib/module/timeline/stagger.js +43 -0
  91. package/lib/module/timeline/stagger.js.map +1 -0
  92. package/lib/module/timeline/validation.js +24 -0
  93. package/lib/module/timeline/validation.js.map +1 -0
  94. package/lib/module/timeline/wave.js +25 -0
  95. package/lib/module/timeline/wave.js.map +1 -0
  96. package/lib/module/types/index.js +4 -0
  97. package/lib/module/types/index.js.map +1 -0
  98. package/lib/module/types/recipe.js +4 -0
  99. package/lib/module/types/recipe.js.map +1 -0
  100. package/lib/module/types/renderer.js +27 -0
  101. package/lib/module/types/renderer.js.map +1 -0
  102. package/lib/module/types/token.js +2 -0
  103. package/lib/module/types/token.js.map +1 -0
  104. package/lib/typescript/package.json +1 -0
  105. package/lib/typescript/src/accessibility/index.d.ts +2 -0
  106. package/lib/typescript/src/accessibility/index.d.ts.map +1 -0
  107. package/lib/typescript/src/accessibility/policies.d.ts +13 -0
  108. package/lib/typescript/src/accessibility/policies.d.ts.map +1 -0
  109. package/lib/typescript/src/controls/brand.d.ts +2 -0
  110. package/lib/typescript/src/controls/brand.d.ts.map +1 -0
  111. package/lib/typescript/src/controls/controls.d.ts +28 -0
  112. package/lib/typescript/src/controls/controls.d.ts.map +1 -0
  113. package/lib/typescript/src/controls/descriptors.d.ts +14 -0
  114. package/lib/typescript/src/controls/descriptors.d.ts.map +1 -0
  115. package/lib/typescript/src/controls/index.d.ts +3 -0
  116. package/lib/typescript/src/controls/index.d.ts.map +1 -0
  117. package/lib/typescript/src/effects/compose.d.ts +11 -0
  118. package/lib/typescript/src/effects/compose.d.ts.map +1 -0
  119. package/lib/typescript/src/effects/fade.d.ts +10 -0
  120. package/lib/typescript/src/effects/fade.d.ts.map +1 -0
  121. package/lib/typescript/src/effects/index.d.ts +10 -0
  122. package/lib/typescript/src/effects/index.d.ts.map +1 -0
  123. package/lib/typescript/src/effects/lineReveal.d.ts +11 -0
  124. package/lib/typescript/src/effects/lineReveal.d.ts.map +1 -0
  125. package/lib/typescript/src/effects/pulse.d.ts +8 -0
  126. package/lib/typescript/src/effects/pulse.d.ts.map +1 -0
  127. package/lib/typescript/src/effects/rise.d.ts +8 -0
  128. package/lib/typescript/src/effects/rise.d.ts.map +1 -0
  129. package/lib/typescript/src/effects/scale.d.ts +10 -0
  130. package/lib/typescript/src/effects/scale.d.ts.map +1 -0
  131. package/lib/typescript/src/effects/shake.d.ts +8 -0
  132. package/lib/typescript/src/effects/shake.d.ts.map +1 -0
  133. package/lib/typescript/src/effects/slide.d.ts +10 -0
  134. package/lib/typescript/src/effects/slide.d.ts.map +1 -0
  135. package/lib/typescript/src/effects/typewriter.d.ts +13 -0
  136. package/lib/typescript/src/effects/typewriter.d.ts.map +1 -0
  137. package/lib/typescript/src/effects/validation.d.ts +2 -0
  138. package/lib/typescript/src/effects/validation.d.ts.map +1 -0
  139. package/lib/typescript/src/index.d.ts +15 -0
  140. package/lib/typescript/src/index.d.ts.map +1 -0
  141. package/lib/typescript/src/presets/index.d.ts +10 -0
  142. package/lib/typescript/src/presets/index.d.ts.map +1 -0
  143. package/lib/typescript/src/recipe/component.d.ts +3 -0
  144. package/lib/typescript/src/recipe/component.d.ts.map +1 -0
  145. package/lib/typescript/src/recipe/defineTextMotion.d.ts +4 -0
  146. package/lib/typescript/src/recipe/defineTextMotion.d.ts.map +1 -0
  147. package/lib/typescript/src/recipe/descriptors.d.ts +15 -0
  148. package/lib/typescript/src/recipe/descriptors.d.ts.map +1 -0
  149. package/lib/typescript/src/recipe/index.d.ts +4 -0
  150. package/lib/typescript/src/recipe/index.d.ts.map +1 -0
  151. package/lib/typescript/src/recipe/recipe.d.ts +67 -0
  152. package/lib/typescript/src/recipe/recipe.d.ts.map +1 -0
  153. package/lib/typescript/src/renderers/index.d.ts +3 -0
  154. package/lib/typescript/src/renderers/index.d.ts.map +1 -0
  155. package/lib/typescript/src/renderers/nativeText.d.ts +13 -0
  156. package/lib/typescript/src/renderers/nativeText.d.ts.map +1 -0
  157. package/lib/typescript/src/renderers/nativeTextControls.d.ts +16 -0
  158. package/lib/typescript/src/renderers/nativeTextControls.d.ts.map +1 -0
  159. package/lib/typescript/src/renderers/nativeTextLineLayout.d.ts +84 -0
  160. package/lib/typescript/src/renderers/nativeTextLineLayout.d.ts.map +1 -0
  161. package/lib/typescript/src/renderers/nativeTextPlayback.d.ts +21 -0
  162. package/lib/typescript/src/renderers/nativeTextPlayback.d.ts.map +1 -0
  163. package/lib/typescript/src/renderers/overlayText.d.ts +13 -0
  164. package/lib/typescript/src/renderers/overlayText.d.ts.map +1 -0
  165. package/lib/typescript/src/renderers/overlayTextLayout.d.ts +36 -0
  166. package/lib/typescript/src/renderers/overlayTextLayout.d.ts.map +1 -0
  167. package/lib/typescript/src/renderers/rendererMotion.d.ts +53 -0
  168. package/lib/typescript/src/renderers/rendererMotion.d.ts.map +1 -0
  169. package/lib/typescript/src/split/createToken.d.ts +11 -0
  170. package/lib/typescript/src/split/createToken.d.ts.map +1 -0
  171. package/lib/typescript/src/split/custom.d.ts +17 -0
  172. package/lib/typescript/src/split/custom.d.ts.map +1 -0
  173. package/lib/typescript/src/split/graphemes.d.ts +4 -0
  174. package/lib/typescript/src/split/graphemes.d.ts.map +1 -0
  175. package/lib/typescript/src/split/index.d.ts +5 -0
  176. package/lib/typescript/src/split/index.d.ts.map +1 -0
  177. package/lib/typescript/src/split/lines.d.ts +4 -0
  178. package/lib/typescript/src/split/lines.d.ts.map +1 -0
  179. package/lib/typescript/src/split/segmenter.d.ts +18 -0
  180. package/lib/typescript/src/split/segmenter.d.ts.map +1 -0
  181. package/lib/typescript/src/split/words.d.ts +4 -0
  182. package/lib/typescript/src/split/words.d.ts.map +1 -0
  183. package/lib/typescript/src/timeline/index.d.ts +5 -0
  184. package/lib/typescript/src/timeline/index.d.ts.map +1 -0
  185. package/lib/typescript/src/timeline/parallel.d.ts +4 -0
  186. package/lib/typescript/src/timeline/parallel.d.ts.map +1 -0
  187. package/lib/typescript/src/timeline/sequence.d.ts +4 -0
  188. package/lib/typescript/src/timeline/sequence.d.ts.map +1 -0
  189. package/lib/typescript/src/timeline/stagger.d.ts +11 -0
  190. package/lib/typescript/src/timeline/stagger.d.ts.map +1 -0
  191. package/lib/typescript/src/timeline/validation.d.ts +4 -0
  192. package/lib/typescript/src/timeline/validation.d.ts.map +1 -0
  193. package/lib/typescript/src/timeline/wave.d.ts +11 -0
  194. package/lib/typescript/src/timeline/wave.d.ts.map +1 -0
  195. package/lib/typescript/src/types/index.d.ts +6 -0
  196. package/lib/typescript/src/types/index.d.ts.map +1 -0
  197. package/lib/typescript/src/types/recipe.d.ts +123 -0
  198. package/lib/typescript/src/types/recipe.d.ts.map +1 -0
  199. package/lib/typescript/src/types/renderer.d.ts +51 -0
  200. package/lib/typescript/src/types/renderer.d.ts.map +1 -0
  201. package/lib/typescript/src/types/token.d.ts +35 -0
  202. package/lib/typescript/src/types/token.d.ts.map +1 -0
  203. package/package.json +116 -3
  204. package/src/accessibility/index.ts +7 -0
  205. package/src/accessibility/policies.ts +60 -0
  206. package/src/controls/brand.ts +3 -0
  207. package/src/controls/controls.ts +41 -0
  208. package/src/controls/descriptors.ts +83 -0
  209. package/src/controls/index.ts +2 -0
  210. package/src/effects/compose.ts +98 -0
  211. package/src/effects/fade.ts +22 -0
  212. package/src/effects/index.ts +9 -0
  213. package/src/effects/lineReveal.ts +28 -0
  214. package/src/effects/pulse.ts +19 -0
  215. package/src/effects/rise.ts +19 -0
  216. package/src/effects/scale.ts +22 -0
  217. package/src/effects/shake.ts +19 -0
  218. package/src/effects/slide.ts +22 -0
  219. package/src/effects/typewriter.ts +16 -0
  220. package/src/effects/validation.ts +9 -0
  221. package/src/index.tsx +46 -0
  222. package/src/presets/index.ts +42 -0
  223. package/src/recipe/component.tsx +88 -0
  224. package/src/recipe/defineTextMotion.ts +6 -0
  225. package/src/recipe/descriptors.ts +158 -0
  226. package/src/recipe/index.ts +3 -0
  227. package/src/recipe/recipe.ts +359 -0
  228. package/src/renderers/index.ts +2 -0
  229. package/src/renderers/nativeText.tsx +813 -0
  230. package/src/renderers/nativeTextControls.ts +131 -0
  231. package/src/renderers/nativeTextLineLayout.ts +495 -0
  232. package/src/renderers/nativeTextPlayback.ts +204 -0
  233. package/src/renderers/overlayText.tsx +945 -0
  234. package/src/renderers/overlayTextLayout.ts +312 -0
  235. package/src/renderers/rendererMotion.ts +483 -0
  236. package/src/split/createToken.ts +26 -0
  237. package/src/split/custom.ts +92 -0
  238. package/src/split/graphemes.ts +27 -0
  239. package/src/split/index.ts +9 -0
  240. package/src/split/lines.ts +35 -0
  241. package/src/split/segmenter.ts +111 -0
  242. package/src/split/words.ts +28 -0
  243. package/src/timeline/index.ts +4 -0
  244. package/src/timeline/parallel.ts +30 -0
  245. package/src/timeline/sequence.ts +29 -0
  246. package/src/timeline/stagger.ts +60 -0
  247. package/src/timeline/validation.ts +29 -0
  248. package/src/timeline/wave.ts +34 -0
  249. package/src/types/index.ts +34 -0
  250. package/src/types/recipe.ts +195 -0
  251. package/src/types/renderer.ts +91 -0
  252. package/src/types/token.ts +39 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useLayoutEffect","useRef","createElement","_createElement","StyleSheet","Text","View","createAnimatedComponent","useAnimatedStyle","useReducedMotion","useSharedValue","createHiddenTokenAccessibilityProps","createParentAccessibilityProps","parentLabelPolicy","resolveAccessibleText","createTextMotionRendererHandle","useNativeTextControlsPlayback","areNativeTextPlaybackRunsEqual","createNativeTextPlaybackRun","clampTextMotionProgress","createTextMotionControlledProgressPlan","createTextMotionControlledTimelineSpan","createTextMotionDelaySecondsByItemIndex","createTextMotionItemMotion","createTextMotionProgressAnimation","createTextMotionStyleTransformStatePair","readTextMotionProgressForAnimatedStyle","shouldRenderTextMotionFinalState","jsx","_jsx","AnimatedView","TEXT_ALIGN_TO_JUSTIFY_CONTENT","auto","center","justify","left","right","NATIVE_TEXT_LINE_BREAK_PATTERN","NATIVE_TEXT_LINE_BREAK_MARKER_STYLE","flexBasis","height","width","NATIVE_TEXT_BLANK_LINE_SPACER_STYLE","opacity","NATIVE_TEXT_BLANK_LINE_SPACER_TEXT","NATIVE_TEXT_ANIMATED_TOKEN_CONTAINER_STYLE","overflow","shouldAnimateToken","token","text","trim","length","createMotionIndexByTokenId","tokens","motionTokens","filter","motionIndexByTokenId","Map","map","motionIndex","id","motionCount","createTokenDelaySecondsByMotionIndex","recipe","count","createTokenMotion","styleState","delaySecondsByMotionIndex","createControlledProgressPlan","totalTimelineSpan","createNativeTextTextFragment","textFragmentIndex","kind","key","createNativeTextLineBreakFragment","lineBreakIndex","preservesLineHeight","hasNativeTextLineContent","replace","hasNativeTextLineContentAfter","sourceText","sourceIndex","slice","createNativeTextTokenRenderFragments","currentLineHasText","includes","fragments","lineBreaks","Array","from","matchAll","initialAccumulator","cursor","result","reduce","accumulator","lineBreak","start","index","lineBreakEnd","textBeforeLineBreak","textFragment","lineHasText","hasTextAfterLineBreak","sourceRange","trailingText","createNativeTextRenderFragments","tokenResult","fragment","renderIndex","createNativeTextFragmentTestID","prefix","undefined","createNativeTextLineBreakTestID","StaticNativeTextToken","children","style","tokenProps","splitAnimatedTokenProps","accessibilityElementsHidden","accessible","importantForAccessibility","testID","textProps","containerProps","AnimatedNativeTextTokenContent","useNativeTextAnimatedStyle","options","controlled","progress","renderFinalState","tokenMotion","initialOpacity","initial","initialScale","scale","initialTranslateX","translateX","initialTranslateY","translateY","targetOpacity","target","targetScale","targetTranslateX","targetTranslateY","pulseScale","revealOnStart","itemDelaySeconds","controlledProgressPlan","current","clampedCurrent","baseScale","pulseProgress","Math","abs","pulseMultiplier","transform","ControlledAnimatedNativeTextToken","controlledProgress","reducedMotion","reducedMotionEnabled","animatedStyle","UncontrolledAnimatedNativeTextToken","controls","playbackText","playbackRun","previousPlaybackRun","value","createProgressAnimation","NativeTextToken","props","_tokenMotion","NativeTextLineBreak","textStyle","tokenTextProps","resolveJustifyContent","textAlign","flatten","createContainerStyle","flexDirection","flexWrap","justifyContent","createContainerProps","parentAccessibilityProps","accessibilityActions","accessibilityHint","accessibilityLabel","accessibilityLanguage","accessibilityRole","accessibilityState","accessibilityValue","nativeID","onAccessibilityAction","createTokenTextProps","allowFontScaling","maxFontSizeMultiplier","createNativeTextRendererComponent","NativeTextRenderer","policy","accessibility","tokenAccessibilityProps","effects","externalProgress","Error","testIDPrefix","get","commonTokenProps","displayName","nativeText","capabilities","motionUnit","Component"],"sourceRoot":"../../../src","sources":["renderers/nativeText.tsx"],"mappings":";;AAAA,SAASA,eAAe,EAAEC,MAAM,EAAAC,aAAA,IAAAC,cAAA,QAA4C,OAAO;AACnF,SACEC,UAAU,EACVC,IAAI,EACJC,IAAI,QAKC,cAAc;AACrB,SACEC,uBAAuB,EACvBC,gBAAgB,EAChBC,gBAAgB,EAChBC,cAAc,QAET,yBAAyB;AAOhC,SACEC,mCAAmC,EACnCC,8BAA8B,EAC9BC,iBAAiB,EACjBC,qBAAqB,QAChB,2BAAkB;AACzB,SAASC,8BAA8B,QAAQ,0BAAuB;AACtE,SAASC,6BAA6B,QAAQ,yBAAsB;AACpE,SACEC,8BAA8B,EAC9BC,2BAA2B,QAEtB,yBAAsB;AAC7B,SACEC,uBAAuB,EACvBC,sCAAsC,EACtCC,sCAAsC,EACtCC,uCAAuC,EACvCC,0BAA0B,EAC1BC,iCAAiC,EACjCC,uCAAuC,EACvCC,sCAAsC,EACtCC,gCAAgC,QAI3B,qBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAkH1B,MAAMC,YAAY,GAAGvB,uBAAuB,CAACD,IAAI,CAAC;AAElD,MAAMyB,6BAA6B,GAAG;EACpCC,IAAI,EAAE,YAAY;EAClBC,MAAM,EAAE,QAAQ;EAChBC,OAAO,EAAE,YAAY;EACrBC,IAAI,EAAE,YAAY;EAClBC,KAAK,EAAE;AACT,CAA6F;AAE7F,MAAMC,8BAA8B,GAAG,UAAU;AACjD,MAAMC,mCAAmC,GAAG;EAC1CC,SAAS,EAAE,MAAM;EACjBC,MAAM,EAAE,CAAC;EACTC,KAAK,EAAE;AACT,CAA8B;AAC9B,MAAMC,mCAAmC,GAAG;EAC1CH,SAAS,EAAE,MAAM;EACjBI,OAAO,EAAE,CAAC;EACVF,KAAK,EAAE;AACT,CAA8B;AAC9B,MAAMG,kCAAkC,GAAG,GAAG;AAC9C,MAAMC,0CAA0C,GAAG;EACjDC,QAAQ,EAAE;AACZ,CAA8B;AAE9B,SAASC,kBAAkBA,CAACC,KAAsB,EAAW;EAC3D,OAAOA,KAAK,CAACC,IAAI,CAACC,IAAI,CAAC,CAAC,CAACC,MAAM,GAAG,CAAC;AACrC;AAEA,SAASC,0BAA0BA,CAACC,MAAkC,EAAE;EACtE,MAAMC,YAAY,GAAGD,MAAM,CAACE,MAAM,CAACR,kBAAkB,CAAC;EACtD,MAAMS,oBAAoB,GAAG,IAAIC,GAAG,CAClCH,YAAY,CAACI,GAAG,CAAmB,CAACV,KAAK,EAAEW,WAAW,KAAK,CAACX,KAAK,CAACY,EAAE,EAAED,WAAW,CAAC,CACpF,CAAC;EAED,OAAO;IACLE,WAAW,EAAEP,YAAY,CAACH,MAAM;IAChCK;EACF,CAAC;AACH;AAEA,SAASM,oCAAoCA,CAC3CC,MAAyC,EACzCC,KAAa,EACM;EACnB,OAAO1C,uCAAuC,CAACyC,MAAM,EAAEC,KAAK,CAAC;AAC/D;AAEA,SAASC,iBAAiBA,CACxBF,MAAyC,EACzCJ,WAAmB,EACnBO,UAA6C,EAC7CC,yBAA4C,EACtB;EACtB,OAAO5C,0BAA0B,CAC/BwC,MAAM,EACNG,UAAU,EACVC,yBAAyB,CAACR,WAAW,CAAC,IAAI,CAC5C,CAAC;AACH;AAEA,SAASS,4BAA4BA,CACnCT,WAAmB,EACnBQ,yBAA4C,EAC5CE,iBAAyB,EACS;EAClC,OAAOjD,sCAAsC,CAC3CuC,WAAW,EACXQ,yBAAyB,EACzBE,iBACF,CAAC;AACH;AAEA,SAASC,4BAA4BA,CACnCtB,KAAsB,EACtBC,IAAY,EACZsB,iBAAyB,EACU;EACnC,OAAO;IACLC,IAAI,EAAE,MAAM;IACZC,GAAG,EAAEF,iBAAiB,KAAK,CAAC,GAAGvB,KAAK,CAACY,EAAE,GAAG,GAAGZ,KAAK,CAACY,EAAE,SAASW,iBAAiB,EAAE;IACjFtB,IAAI;IACJsB,iBAAiB;IACjBvB;EACF,CAAC;AACH;AAEA,SAAS0B,iCAAiCA,CACxC1B,KAAsB,EACtB2B,cAAsB,EACtBC,mBAA4B,EACY;EACxC,OAAO;IACLJ,IAAI,EAAE,YAAY;IAClBC,GAAG,EAAE,GAAGzB,KAAK,CAACY,EAAE,eAAee,cAAc,EAAE;IAC/CC;EACF,CAAC;AACH;AAEA,SAASC,wBAAwBA,CAAC5B,IAAY,EAAW;EACvD,OAAOA,IAAI,CAAC6B,OAAO,CAACzC,8BAA8B,EAAE,EAAE,CAAC,CAACc,MAAM,GAAG,CAAC;AACpE;AAEA,SAAS4B,6BAA6BA,CAACC,UAAkB,EAAEC,WAAmB,EAAW;EACvF,OAAOJ,wBAAwB,CAACG,UAAU,CAACE,KAAK,CAACD,WAAW,CAAC,CAAC;AAChE;AAEA,SAASE,oCAAoCA,CAC3CnC,KAAsB,EACtBgC,UAAkB,EAClBI,kBAA2B,EAI3B;EACA,IAAI,CAACpC,KAAK,CAACC,IAAI,CAACoC,QAAQ,CAAC,IAAI,CAAC,EAAE;IAC9B,OAAO;MACLD,kBAAkB,EAAEA,kBAAkB,IAAIpC,KAAK,CAACC,IAAI,CAACE,MAAM,GAAG,CAAC;MAC/DmC,SAAS,EAAE,CAAChB,4BAA4B,CAACtB,KAAK,EAAEA,KAAK,CAACC,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;EACH;EAEA,MAAMsC,UAAU,GAAGC,KAAK,CAACC,IAAI,CAACzC,KAAK,CAACC,IAAI,CAACyC,QAAQ,CAACrD,8BAA8B,CAAC,CAAC;EAElF,MAAMsD,kBAAkB,GAAG;IACzBC,MAAM,EAAE,CAAC;IACTR,kBAAkB;IAClBE,SAAS,EAAE,EAAqC;IAChDf,iBAAiB,EAAE;EACrB,CAAC;EACD,MAAMsB,MAAM,GAAGN,UAAU,CAACO,MAAM,CAAC,CAACC,WAAW,EAAEC,SAAS,EAAErB,cAAc,KAAK;IAC3E,MAAMsB,KAAK,GAAGD,SAAS,CAACE,KAAK,IAAIH,WAAW,CAACH,MAAM;IACnD,MAAMO,YAAY,GAAGF,KAAK,GAAGD,SAAS,CAAC,CAAC,CAAC,CAAC7C,MAAM;IAChD,MAAMiD,mBAAmB,GAAGpD,KAAK,CAACC,IAAI,CAACiC,KAAK,CAACa,WAAW,CAACH,MAAM,EAAEK,KAAK,CAAC;IACvE,MAAMI,YAAY,GAChBD,mBAAmB,CAACjD,MAAM,GAAG,CAAC,GAC1B,CAACmB,4BAA4B,CAACtB,KAAK,EAAEoD,mBAAmB,EAAEL,WAAW,CAACxB,iBAAiB,CAAC,CAAC,GACzF,EAAE;IACR,MAAM+B,WAAW,GAAGP,WAAW,CAACX,kBAAkB,IAAIgB,mBAAmB,CAACjD,MAAM,GAAG,CAAC;IACpF,MAAMoD,qBAAqB,GAAGxB,6BAA6B,CACzDC,UAAU,EACVhC,KAAK,CAACwD,WAAW,CAACP,KAAK,GAAGE,YAC5B,CAAC;IAED,OAAO;MACLP,MAAM,EAAEO,YAAY;MACpBf,kBAAkB,EAAE,KAAK;MACzBE,SAAS,EAAE,CACT,GAAGS,WAAW,CAACT,SAAS,EACxB,GAAGe,YAAY,EACf3B,iCAAiC,CAC/B1B,KAAK,EACL2B,cAAc,EACd,CAAC2B,WAAW,IAAI,CAACC,qBACnB,CAAC,CACF;MACDhC,iBAAiB,EAAEwB,WAAW,CAACxB,iBAAiB,GAAG8B,YAAY,CAAClD;IAClE,CAAC;EACH,CAAC,EAAEwC,kBAAkB,CAAC;EACtB,MAAMc,YAAY,GAAGzD,KAAK,CAACC,IAAI,CAACiC,KAAK,CAACW,MAAM,CAACD,MAAM,CAAC;EAEpD,IAAIa,YAAY,CAACtD,MAAM,KAAK,CAAC,EAAE;IAC7B,OAAO;MACLiC,kBAAkB,EAAES,MAAM,CAACT,kBAAkB;MAC7CE,SAAS,EAAEO,MAAM,CAACP;IACpB,CAAC;EACH;EAEA,OAAO;IACLF,kBAAkB,EAAE,IAAI;IACxBE,SAAS,EAAE,CACT,GAAGO,MAAM,CAACP,SAAS,EACnBhB,4BAA4B,CAACtB,KAAK,EAAEyD,YAAY,EAAEZ,MAAM,CAACtB,iBAAiB,CAAC;EAE/E,CAAC;AACH;AAEA,SAASmC,+BAA+BA,CACtCrD,MAAkC,EAClC2B,UAAkB,EACmB;EACrC,MAAMa,MAAM,GAAGxC,MAAM,CAACyC,MAAM,CAC1B,CAACC,WAAW,EAAE/C,KAAK,KAAK;IACtB,MAAM2D,WAAW,GAAGxB,oCAAoC,CACtDnC,KAAK,EACLgC,UAAU,EACVe,WAAW,CAACX,kBACd,CAAC;IAED,OAAO;MACLA,kBAAkB,EAAEuB,WAAW,CAACvB,kBAAkB;MAClDE,SAAS,EAAE,CAAC,GAAGS,WAAW,CAACT,SAAS,EAAE,GAAGqB,WAAW,CAACrB,SAAS;IAChE,CAAC;EACH,CAAC,EACD;IACEF,kBAAkB,EAAE,KAAK;IACzBE,SAAS,EAAE;EACb,CACF,CAAC;EAED,OAAOO,MAAM,CAACP,SAAS,CAAC5B,GAAG,CAAC,CAACkD,QAAQ,EAAEC,WAAW,MAAM;IACtD,GAAGD,QAAQ;IACXC;EACF,CAAC,CAAC,CAAC;AACL;AAEA,SAASC,8BAA8BA,CACrCC,MAA0B,EAC1BH,QAAsC,EAClB;EACpB,IAAI,CAACG,MAAM,EAAE;IACX,OAAOC,SAAS;EAClB;EAEA,IAAIJ,QAAQ,CAACrC,iBAAiB,KAAK,CAAC,EAAE;IACpC,OAAO,GAAGwC,MAAM,IAAIH,QAAQ,CAAC5D,KAAK,CAACkD,KAAK,EAAE;EAC5C;EAEA,OAAO,GAAGa,MAAM,IAAIH,QAAQ,CAAC5D,KAAK,CAACkD,KAAK,IAAIU,QAAQ,CAACrC,iBAAiB,EAAE;AAC1E;AAEA,SAAS0C,+BAA+BA,CACtCF,MAA0B,EAC1BH,QAA2C,EACvB;EACpB,OAAOG,MAAM,GAAG,GAAGA,MAAM,eAAeH,QAAQ,CAACC,WAAW,EAAE,GAAGG,SAAS;AAC5E;AAEA,SAASE,qBAAqBA,CAAC;EAAEC,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAA8B,CAAC,EAAE;EACpF,oBACExF,IAAA,CAACxB,IAAI;IAAA,GAAKgH,UAAU;IAAED,KAAK,EAAEA,KAAM;IAAAD,QAAA,EAChCA;EAAQ,CACL,CAAC;AAEX;AAEA,SAASG,uBAAuBA,CAAC;EAC/BC,2BAA2B;EAC3BC,UAAU;EACVC,yBAAyB;EACzBC,MAAM;EACN,GAAGC;AACc,CAAC,EAAE;EACpB,OAAO;IACLC,cAAc,EAAE;MACdL,2BAA2B;MAC3BC,UAAU;MACVC,yBAAyB;MACzBC;IACF,CAAiD;IACjDC;EACF,CAAC;AACH;AAEA,SAASE,8BAA8BA,CAAC;EAAEV,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAA8B,CAAC,EAAE;EAC7F,oBACExF,IAAA,CAACxB,IAAI;IAAA,GAAKgH,UAAU;IAAED,KAAK,EAAEA,KAAM;IAAAD,QAAA,EAChCA;EAAQ,CACL,CAAC;AAEX;AAEA,SAASW,0BAA0BA,CAACC,OAAuC,EAAE;EAC3E,MAAM;IAAEC,UAAU;IAAEC,QAAQ;IAAEC,gBAAgB;IAAEC;EAAY,CAAC,GAAGJ,OAAO;EACvE,MAAMK,cAAc,GAAGD,WAAW,CAACE,OAAO,CAAC1F,OAAO;EAClD,MAAM2F,YAAY,GAAGH,WAAW,CAACE,OAAO,CAACE,KAAK;EAC9C,MAAMC,iBAAiB,GAAGL,WAAW,CAACE,OAAO,CAACI,UAAU;EACxD,MAAMC,iBAAiB,GAAGP,WAAW,CAACE,OAAO,CAACM,UAAU;EACxD,MAAMC,aAAa,GAAGT,WAAW,CAACU,MAAM,CAAClG,OAAO;EAChD,MAAMmG,WAAW,GAAGX,WAAW,CAACU,MAAM,CAACN,KAAK;EAC5C,MAAMQ,gBAAgB,GAAGZ,WAAW,CAACU,MAAM,CAACJ,UAAU;EACtD,MAAMO,gBAAgB,GAAGb,WAAW,CAACU,MAAM,CAACF,UAAU;EACtD,MAAMM,UAAU,GAAGd,WAAW,CAACc,UAAU;EACzC,MAAMC,aAAa,GAAGf,WAAW,CAACe,aAAa,KAAK,IAAI;EACxD,MAAMC,gBAAgB,GAAGnB,UAAU,GAAGD,OAAO,CAACqB,sBAAsB,CAACD,gBAAgB,GAAG,CAAC;EACzF,MAAM9E,iBAAiB,GAAG2D,UAAU,GAAGD,OAAO,CAACqB,sBAAsB,CAAC/E,iBAAiB,GAAG,CAAC;EAE3F,OAAO7D,gBAAgB,CAAC,MAAM;IAC5B,MAAM6I,OAAO,GAAG3H,sCAAsC,CAAC;MACrD0H,sBAAsB,EAAEpB,UAAU,GAC9B;QACEmB,gBAAgB;QAChB9E;MACF,CAAC,GACD2C,SAAS;MACbiB,QAAQ;MACRC;IACF,CAAC,CAAC;IACF,MAAMoB,cAAc,GAAGnI,uBAAuB,CAACkI,OAAO,CAAC;IACvD,MAAME,SAAS,GAAGjB,YAAY,GAAG,CAACQ,WAAW,GAAGR,YAAY,IAAIe,OAAO;IACvE,MAAMG,aAAa,GAAG,CAAC,GAAGC,IAAI,CAACC,GAAG,CAACJ,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAMK,eAAe,GAAG,CAAC,GAAG,CAACV,UAAU,GAAG,CAAC,IAAIO,aAAa;IAE5D,OAAO;MACL7G,OAAO,EACLuG,aAAa,IAAIG,OAAO,IAAI,CAAC,GACzB,CAAC,GACDjB,cAAc,GAAG,CAACQ,aAAa,GAAGR,cAAc,IAAIiB,OAAO;MACjEO,SAAS,EAAE,CACT;QACEnB,UAAU,EAAED,iBAAiB,GAAG,CAACO,gBAAgB,GAAGP,iBAAiB,IAAIa;MAC3E,CAAC,EACD;QACEV,UAAU,EAAED,iBAAiB,GAAG,CAACM,gBAAgB,GAAGN,iBAAiB,IAAIW;MAC3E,CAAC,EACD;QACEd,KAAK,EAAEgB,SAAS,GAAGI;MACrB,CAAC;IAEL,CAAC;EACH,CAAC,EAAE,CACDvB,cAAc,EACdE,YAAY,EACZE,iBAAiB,EACjBE,iBAAiB,EACjBV,UAAU,EACVC,QAAQ,EACRgB,UAAU,EACVf,gBAAgB,EAChBgB,aAAa,EACbN,aAAa,EACbE,WAAW,EACXC,gBAAgB,EAChBC,gBAAgB,EAChBG,gBAAgB,EAChB9E,iBAAiB,CAClB,CAAC;AACJ;AAEA,SAASwF,iCAAiCA,CAAC;EACzC1C,QAAQ;EACR2C,kBAAkB;EAClBV,sBAAsB;EACtBhC,KAAK;EACLe,WAAW;EACX,GAAGd;AACmC,CAAC,EAAE;EACzC,MAAM0C,aAAa,GAAG5B,WAAW,CAAC4B,aAAa;EAC/C,MAAMC,oBAAoB,GAAGvJ,gBAAgB,CAAC,CAAC;EAC/C,MAAMyH,gBAAgB,GAAGvG,gCAAgC,CAACqI,oBAAoB,EAAED,aAAa,CAAC;EAC9F,MAAM;IAAEnC,cAAc;IAAED;EAAU,CAAC,GAAGL,uBAAuB,CAACD,UAAU,CAAC;EACzE,MAAM4C,aAAa,GAAGnC,0BAA0B,CAAC;IAC/CE,UAAU,EAAE,IAAI;IAChBoB,sBAAsB;IACtBnB,QAAQ,EAAE6B,kBAAkB;IAC5B5B,gBAAgB;IAChBC;EACF,CAAC,CAAC;EAEF,oBACEtG,IAAA,CAACC,YAAY;IAAA,GACP8F,cAAc;IAClBR,KAAK,EAAE,CAACvE,0CAA0C,EAAEoH,aAAa,CAA0B;IAAA9C,QAAA,eAE3FtF,IAAA,CAACgG,8BAA8B;MAAA,GAAKF,SAAS;MAAEP,KAAK,EAAEA,KAAM;MAAAD,QAAA,EACzDA;IAAQ,CACqB;EAAC,CACrB,CAAC;AAEnB;AAEA,SAAS+C,mCAAmCA,CAAC;EAC3C/C,QAAQ;EACRgD,QAAQ;EACRC,YAAY;EACZhD,KAAK;EACLe,WAAW;EACX,GAAGd;AACqC,CAAC,EAAE;EAC3C,MAAM0C,aAAa,GAAG5B,WAAW,CAAC4B,aAAa;EAC/C,MAAMC,oBAAoB,GAAGvJ,gBAAgB,CAAC,CAAC;EAC/C,MAAMyH,gBAAgB,GAAGvG,gCAAgC,CAACqI,oBAAoB,EAAED,aAAa,CAAC;EAC9F,MAAM9B,QAAQ,GAAGvH,cAAc,CAACwH,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;EACzD,MAAMmC,WAAW,GAAGnJ,2BAA2B,CAACiH,WAAW,EAAED,gBAAgB,EAAEkC,YAAY,CAAC;EAC5F,MAAME,mBAAmB,GAAGrK,MAAM,CAAoC+G,SAAS,CAAC;EAChF,MAAM;IAAEY,cAAc;IAAED;EAAU,CAAC,GAAGL,uBAAuB,CAACD,UAAU,CAAC;EACzE,MAAM4C,aAAa,GAAGnC,0BAA0B,CAAC;IAC/CE,UAAU,EAAE,KAAK;IACjBC,QAAQ;IACRC,gBAAgB;IAChBC;EACF,CAAC,CAAC;EAEFnI,eAAe,CAAC,MAAM;IACpB,IAAIiB,8BAA8B,CAACqJ,mBAAmB,CAACjB,OAAO,EAAEgB,WAAW,CAAC,EAAE;MAC5E;IACF;IAEAC,mBAAmB,CAACjB,OAAO,GAAGgB,WAAW;IAEzC,IAAIA,WAAW,CAACnC,gBAAgB,EAAE;MAChCD,QAAQ,CAACsC,KAAK,GAAG,CAAC;MAClB;IACF;IAEAtC,QAAQ,CAACsC,KAAK,GAAG,CAAC;IAClBtC,QAAQ,CAACsC,KAAK,GAAG/I,iCAAiC,CAAC6I,WAAW,CAAC;EACjE,CAAC,CAAC;EAEFrJ,6BAA6B,CAAC;IAC5BmJ,QAAQ;IACRK,uBAAuB,EAAEhJ,iCAAiC;IAC1DyG,QAAQ;IACRC,gBAAgB;IAChBC;EACF,CAAC,CAAC;EAEF,oBACEtG,IAAA,CAACC,YAAY;IAAA,GACP8F,cAAc;IAClBR,KAAK,EAAE,CAACvE,0CAA0C,EAAEoH,aAAa,CAA0B;IAAA9C,QAAA,eAE3FtF,IAAA,CAACgG,8BAA8B;MAAA,GAAKF,SAAS;MAAEP,KAAK,EAAEA,KAAM;MAAAD,QAAA,EACzDA;IAAQ,CACqB;EAAC,CACrB,CAAC;AAEnB;AAEA,SAASsD,eAAeA,CAACC,KAA2B,EAAE;EACpD,IAAI,CAACA,KAAK,CAACvC,WAAW,EAAE;IACtB,MAAM;MAAEA,WAAW,EAAEwC,YAAY;MAAE,GAAGtD;IAAW,CAAC,GAAGqD,KAAK;IAE1D,oBAAO7I,IAAA,CAACqF,qBAAqB;MAAA,GAAKG;IAAU,CAAG,CAAC;EAClD;EAEA,IAAI,oBAAoB,IAAIqD,KAAK,EAAE;IACjC,MAAM;MAAEZ,kBAAkB;MAAEV,sBAAsB;MAAEjB,WAAW;MAAE,GAAGd;IAAW,CAAC,GAAGqD,KAAK;IAExF,oBACE7I,IAAA,CAACgI,iCAAiC;MAAA,GAC5BxC,UAAU;MACdyC,kBAAkB,EAAEA,kBAAmB;MACvCV,sBAAsB,EAAEA,sBAAuB;MAC/CjB,WAAW,EAAEA;IAAY,CAC1B,CAAC;EAEN;EAEA,MAAM;IAAEgC,QAAQ;IAAEC,YAAY;IAAEjC,WAAW;IAAE,GAAGd;EAAW,CAAC,GAAGqD,KAAK;EAEpE,oBACE7I,IAAA,CAACqI,mCAAmC;IAAA,GAC9B7C,UAAU;IACd8C,QAAQ,EAAEA,QAAS;IACnBC,YAAY,EAAEA,YAAa;IAC3BjC,WAAW,EAAEA;EAAY,CAC1B,CAAC;AAEN;AAEA,SAASyC,mBAAmBA,CAAC;EAC3BhG,mBAAmB;EACnB8C,MAAM;EACNmD,SAAS;EACTC;AAMF,CAAC,EAAE;EACD,IAAIlG,mBAAmB,EAAE;IACvB,oBACE/C,IAAA,CAACxB,IAAI;MAAA,GACCyK,cAAc;MAClBvD,2BAA2B;MAC3BC,UAAU,EAAE,KAAM;MAClBC,yBAAyB,EAAC,qBAAqB;MAC/CL,KAAK,EAAE,CAACyD,SAAS,EAAEnI,mCAAmC,CAAE;MACxDgF,MAAM,EAAEA,MAAO;MAAAP,QAAA,EAEdvE;IAAkC,CAC/B,CAAC;EAEX;EAEA,oBACEf,IAAA,CAACvB,IAAI;IACHiH,2BAA2B;IAC3BC,UAAU,EAAE,KAAM;IAClBC,yBAAyB,EAAC,qBAAqB;IAC/CL,KAAK,EAAE9E,mCAAoC;IAC3CoF,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN;AAEA,SAASqD,qBAAqBA,CAAC3D,KAA2B,EAA+B;EACvF,MAAM4D,SAAS,GAAG5K,UAAU,CAAC6K,OAAO,CAAC7D,KAAK,CAAC,EAAE4D,SAAS;EAEtD,OAAOA,SAAS,GAAGjJ,6BAA6B,CAACiJ,SAAS,CAAC,GAAG,YAAY;AAC5E;AAEA,SAASE,oBAAoBA,CAAC9D,KAA2B,EAAwB;EAC/E,OAAO;IACL+D,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,MAAM;IAChBC,cAAc,EAAEN,qBAAqB,CAAC3D,KAAK;EAC7C,CAAC;AACH;AAEA,SAASkE,oBAAoBA,CAC3B3D,SAAmD,EACnD4D,wBAA2E,EACjD;EAC1B,OAAO;IACLC,oBAAoB,EAAE7D,SAAS,EAAE6D,oBAAoB;IACrDC,iBAAiB,EAAE9D,SAAS,EAAE8D,iBAAiB;IAC/CC,kBAAkB,EAChB/D,SAAS,EAAE+D,kBAAkB,IAAIH,wBAAwB,CAACG,kBAAkB;IAC9EC,qBAAqB,EAAEhE,SAAS,EAAEgE,qBAAqB;IACvDC,iBAAiB,EAAEjE,SAAS,EAAEiE,iBAAiB;IAC/CC,kBAAkB,EAAElE,SAAS,EAAEkE,kBAAkB;IACjDC,kBAAkB,EAAEnE,SAAS,EAAEmE,kBAAkB;IACjDtE,UAAU,EAAE+D,wBAAwB,CAAC/D,UAAU;IAC/CuE,QAAQ,EAAEpE,SAAS,EAAEoE,QAAQ;IAC7BC,qBAAqB,EAAErE,SAAS,EAAEqE,qBAAqB;IACvDtE,MAAM,EAAEC,SAAS,EAAED;EACrB,CAAC;AACH;AAEA,SAASuE,oBAAoBA,CAC3BtE,SAAmD,EACzB;EAC1B,OAAO;IACLuE,gBAAgB,EAAEvE,SAAS,EAAEuE,gBAAgB;IAC7CC,qBAAqB,EAAExE,SAAS,EAAEwE;EACpC,CAAC;AACH;AAEA,SAASC,iCAAiCA,CACxCrE,OAAkC,EACM;EACxC,SAASsE,kBAAkBA,CAAC;IAAElF,QAAQ;IAAEpD,MAAM;IAAE4D,SAAS;IAAEtE;EAAgC,CAAC,EAAE;IAC5F,MAAMJ,IAAI,GAAG,OAAOkE,QAAQ,KAAK,QAAQ,GAAGA,QAAQ,GAAG,EAAE;IACzD,MAAM0D,SAAS,GAAGlD,SAAS,EAAEP,KAAK;IAClC,MAAMkF,MAAM,GAAGvI,MAAM,CAACwI,aAAa,IAAI1L,iBAAiB,CAAC,CAAC;IAC1D,MAAM6K,kBAAkB,GAAG5K,qBAAqB,CAACmC,IAAI,EAAEI,MAAM,CAAC;IAC9D,MAAMkI,wBAAwB,GAAG3K,8BAA8B,CAAC0L,MAAM,EAAEZ,kBAAkB,CAAC;IAC3F,MAAMc,uBAAuB,GAAG7L,mCAAmC,CAAC2L,MAAM,CAAC;IAC3E,MAAM1E,cAAc,GAAG0D,oBAAoB,CAAC3D,SAAS,EAAE4D,wBAAwB,CAAC;IAChF,MAAMT,cAAc,GAAGmB,oBAAoB,CAACtE,SAAS,CAAC;IACtD,MAAMzD,UAAU,GAAGzC,uCAAuC,CAACsC,MAAM,CAAC0I,OAAO,EAAE,cAAc,CAAC;IAC1F,MAAM;MAAE5I,WAAW;MAAEL;IAAqB,CAAC,GAAGJ,0BAA0B,CAACC,MAAM,CAAC;IAChF,MAAMc,yBAAyB,GAAGL,oCAAoC,CAACC,MAAM,EAAEF,WAAW,CAAC;IAC3F,MAAMQ,iBAAiB,GAAGhD,sCAAsC,CAAC8C,yBAAyB,CAAC;IAC3F,MAAMuI,gBAAgB,GAAG/E,SAAS,EAAEM,QAAQ;IAC5C,MAAMkC,QAAQ,GAAGxC,SAAS,EAAEwC,QAAQ;IACpC,MAAM7E,SAAS,GAAGoB,+BAA+B,CAACrD,MAAM,EAAEJ,IAAI,CAAC;IAE/D,IAAIyJ,gBAAgB,IAAIvC,QAAQ,EAAE;MAChC,MAAM,IAAIwC,KAAK,CACb,+JACF,CAAC;IACH;IAEA,oBACE9K,IAAA,CAACvB,IAAI;MAAA,GAAKsH,cAAc;MAAER,KAAK,EAAE8D,oBAAoB,CAACL,SAAS,CAAE;MAAA1D,QAAA,EAC9D7B,SAAS,CAAC5B,GAAG,CAAEkD,QAAQ,IAAK;QAC3B,IAAIA,QAAQ,CAACpC,IAAI,KAAK,YAAY,EAAE;UAClC,oBACE3C,IAAA,CAAC+I,mBAAmB;YAElBhG,mBAAmB,EAAEgC,QAAQ,CAAChC,mBAAoB;YAClD8C,MAAM,EAAET,+BAA+B,CAACc,OAAO,CAAC6E,YAAY,EAAEhG,QAAQ,CAAE;YACxEiE,SAAS,EAAEA,SAAU;YACrBC,cAAc,EAAEA;UAAe,GAJ1BlE,QAAQ,CAACnC,GAKf,CAAC;QAEN;QAEA,MAAMzB,KAAK,GAAG4D,QAAQ,CAAC5D,KAAK;QAC5B,MAAMW,WAAW,GAAGH,oBAAoB,CAACqJ,GAAG,CAAC7J,KAAK,CAACY,EAAE,CAAC;QACtD,MAAMkJ,gBAAgB,GAAG;UACvB,GAAGN,uBAAuB;UAC1B,GAAG1B,cAAc;UACjB1D,KAAK,EAAEyD,SAAS;UAChBnD,MAAM,EAAEZ,8BAA8B,CAACiB,OAAO,CAAC6E,YAAY,EAAEhG,QAAQ;QACvE,CAAC;QAED,IAAI,OAAOjD,WAAW,KAAK,QAAQ,EAAE;UACnC,oBACExD,cAAA,CAACsK,eAAe;YAAA,GAAKqC,gBAAgB;YAAErI,GAAG,EAAEmC,QAAQ,CAACnC;UAAI,GACtDmC,QAAQ,CAAC3D,IACK,CAAC;QAEtB;QAEA,MAAMkF,WAAW,GAAGlE,iBAAiB,CACnCF,MAAM,EACNJ,WAAW,EACXO,UAAU,EACVC,yBACF,CAAC;QAED,IAAI,CAACuI,gBAAgB,EAAE;UACrB,oBACEvM,cAAA,CAACsK,eAAe;YAAA,GACVqC,gBAAgB;YACpB3C,QAAQ,EAAEA,QAAS;YACnB1F,GAAG,EAAEmC,QAAQ,CAACnC,GAAI;YAClB2F,YAAY,EAAExD,QAAQ,CAAC3D,IAAK;YAC5BkF,WAAW,EAAEA;UAAY,GAExBvB,QAAQ,CAAC3D,IACK,CAAC;QAEtB;QAEA,oBACE9C,cAAA,CAACsK,eAAe;UAAA,GACVqC,gBAAgB;UACpBhD,kBAAkB,EAAE4C,gBAAiB;UACrCtD,sBAAsB,EAAEhF,4BAA4B,CAClDT,WAAW,EACXQ,yBAAyB,EACzBE,iBACF,CAAE;UACFI,GAAG,EAAEmC,QAAQ,CAACnC,GAAI;UAClB0D,WAAW,EAAEA;QAAY,GAExBvB,QAAQ,CAAC3D,IACK,CAAC;MAEtB,CAAC;IAAC,CACE,CAAC;EAEX;EAEAoJ,kBAAkB,CAACU,WAAW,GAAG,oBAAoB;EAErD,OAAOV,kBAAkB;AAC3B;;AAEA;AACA,OAAO,SAASW,UAAUA,CACxBjF,OAAkC,GAAG,CAAC,CAAC,EAIvC;EACA,OAAOhH,8BAA8B,CAAC;IACpCyD,IAAI,EAAE,YAAY;IAClByI,YAAY,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAChDC,UAAU,EAAE,cAAc;IAC1BC,SAAS,EAAEf,iCAAiC,CAACrE,OAAO;EACtD,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ import { useLayoutEffect, useRef } from 'react';
4
+ import { cancelAnimation } from 'react-native-reanimated';
5
+ import { readTextMotionControlsDescriptor } from "../controls/descriptors.js";
6
+ import { clampTextMotionProgress } from "./rendererMotion.js";
7
+ function resetOwnedProgress(progress, renderFinalState) {
8
+ cancelAnimation(progress);
9
+ progress.value = renderFinalState ? 1 : 0;
10
+ }
11
+ function stopOwnedProgress(progress, renderFinalState) {
12
+ cancelAnimation(progress);
13
+ if (renderFinalState) {
14
+ progress.value = 1;
15
+ }
16
+ }
17
+ function replayOwnedProgress({
18
+ createProgressAnimation,
19
+ progress,
20
+ renderFinalState,
21
+ tokenMotion
22
+ }) {
23
+ resetOwnedProgress(progress, renderFinalState);
24
+ if (renderFinalState) {
25
+ return;
26
+ }
27
+ progress.value = createProgressAnimation(tokenMotion);
28
+ }
29
+ function playOwnedProgress({
30
+ createProgressAnimation,
31
+ progress,
32
+ renderFinalState,
33
+ tokenMotion
34
+ }) {
35
+ stopOwnedProgress(progress, renderFinalState);
36
+ if (renderFinalState) {
37
+ return;
38
+ }
39
+ const currentProgress = clampTextMotionProgress(progress.value);
40
+ const delayMs = currentProgress <= 0 ? tokenMotion.delayMs : 0;
41
+ progress.value = createProgressAnimation({
42
+ ...tokenMotion,
43
+ delayMs
44
+ });
45
+ }
46
+ const playbackCommandHandlers = {
47
+ play: playOwnedProgress,
48
+ replay: replayOwnedProgress,
49
+ reset({
50
+ progress,
51
+ renderFinalState
52
+ }) {
53
+ resetOwnedProgress(progress, renderFinalState);
54
+ },
55
+ stop({
56
+ progress,
57
+ renderFinalState
58
+ }) {
59
+ stopOwnedProgress(progress, renderFinalState);
60
+ }
61
+ };
62
+ function applyNativeTextOwnedPlaybackCommand(command, options) {
63
+ playbackCommandHandlers[command.kind](options);
64
+ }
65
+ export function useNativeTextControlsPlayback({
66
+ controls,
67
+ createProgressAnimation,
68
+ progress,
69
+ renderFinalState,
70
+ tokenMotion
71
+ }) {
72
+ const playbackState = useRef({
73
+ createProgressAnimation,
74
+ progress,
75
+ renderFinalState,
76
+ tokenMotion
77
+ });
78
+ useLayoutEffect(() => {
79
+ playbackState.current = {
80
+ createProgressAnimation,
81
+ progress,
82
+ renderFinalState,
83
+ tokenMotion
84
+ };
85
+ }, [createProgressAnimation, progress, renderFinalState, tokenMotion]);
86
+ useLayoutEffect(() => {
87
+ if (!controls) {
88
+ return undefined;
89
+ }
90
+ const descriptor = readTextMotionControlsDescriptor(controls);
91
+ return descriptor.subscribe(command => {
92
+ applyNativeTextOwnedPlaybackCommand(command, playbackState.current);
93
+ });
94
+ }, [controls]);
95
+ }
96
+ //# sourceMappingURL=nativeTextControls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useLayoutEffect","useRef","cancelAnimation","readTextMotionControlsDescriptor","clampTextMotionProgress","resetOwnedProgress","progress","renderFinalState","value","stopOwnedProgress","replayOwnedProgress","createProgressAnimation","tokenMotion","playOwnedProgress","currentProgress","delayMs","playbackCommandHandlers","play","replay","reset","stop","applyNativeTextOwnedPlaybackCommand","command","options","kind","useNativeTextControlsPlayback","controls","playbackState","current","undefined","descriptor","subscribe"],"sourceRoot":"../../../src","sources":["renderers/nativeTextControls.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,290 @@
1
+ "use strict";
2
+
3
+ import { StyleSheet } from 'react-native';
4
+ const LAYOUT_TEXT_STYLE_KEYS = ['fontFamily', 'fontSize', 'fontStyle', 'fontVariant', 'fontWeight', 'includeFontPadding', 'letterSpacing', 'lineHeight', 'textAlign', 'textTransform', 'writingDirection'];
5
+ const NATIVE_TEXT_LINE_LAYOUT_INVALIDATION_REASONS = ['font-scale', 'initial', 'line-text', 'style', 'text', 'width'];
6
+ function createNativeTextLineLayoutFailure(reason, message, details = {}) {
7
+ return {
8
+ ok: false,
9
+ reason,
10
+ message,
11
+ ...details
12
+ };
13
+ }
14
+ function createNativeTextLineRange(text, lineText, lineIndex, cursor) {
15
+ if (lineText.length === 0 && text.length === 0 && cursor === 0) {
16
+ return {
17
+ ok: true,
18
+ value: {
19
+ index: lineIndex,
20
+ sourceRange: {
21
+ end: 0,
22
+ start: 0
23
+ },
24
+ text: lineText
25
+ }
26
+ };
27
+ }
28
+ if (lineText.length === 0) {
29
+ return createNativeTextLineLayoutFailure('empty-line-text-unsupported', 'nativeText line layout cannot map an empty rendered line to a stable source range yet.', {
30
+ lineIndex,
31
+ sourceRange: {
32
+ end: cursor,
33
+ start: cursor
34
+ }
35
+ });
36
+ }
37
+ const start = text.indexOf(lineText, cursor);
38
+ if (start < 0) {
39
+ return createNativeTextLineLayoutFailure('line-text-not-found', 'nativeText line layout could not find the rendered line text after the previous source range.', {
40
+ lineIndex,
41
+ sourceRange: {
42
+ end: cursor,
43
+ start: cursor
44
+ }
45
+ });
46
+ }
47
+ return {
48
+ ok: true,
49
+ value: {
50
+ index: lineIndex,
51
+ sourceRange: {
52
+ end: start + lineText.length,
53
+ start
54
+ },
55
+ text: lineText
56
+ }
57
+ };
58
+ }
59
+ function rangesIntersect(first, second) {
60
+ return first.start < second.end && second.start < first.end;
61
+ }
62
+ function rangeContainsRange(outer, inner) {
63
+ return inner.start >= outer.start && inner.end <= outer.end;
64
+ }
65
+ function findWhitespaceSeparatorLineIndex(sourceRange, lineRanges) {
66
+ const previousIndex = lineRanges.reduce((match, lineRange, index) => lineRange.sourceRange.end <= sourceRange.start ? index : match, undefined);
67
+ if (typeof previousIndex === 'number') {
68
+ return previousIndex;
69
+ }
70
+ const firstLine = lineRanges[0];
71
+ if (firstLine && sourceRange.end <= firstLine.sourceRange.start) {
72
+ return 0;
73
+ }
74
+ return undefined;
75
+ }
76
+ function findLineIndexForToken(token, lineRanges) {
77
+ if (token.sourceRange.start === token.sourceRange.end) {
78
+ return {
79
+ ok: true,
80
+ value: undefined
81
+ };
82
+ }
83
+ const intersectingIndexes = lineRanges.flatMap((lineRange, index) => rangesIntersect(token.sourceRange, lineRange.sourceRange) ? [index] : []);
84
+ if (intersectingIndexes.length > 1) {
85
+ return createNativeTextLineLayoutFailure('token-crosses-line', 'nativeText line layout cannot silently assign one token to multiple rendered lines.', {
86
+ sourceRange: token.sourceRange,
87
+ tokenId: token.id
88
+ });
89
+ }
90
+ const lineIndex = intersectingIndexes[0];
91
+ if (typeof lineIndex === 'number') {
92
+ const lineRange = lineRanges[lineIndex];
93
+ if (lineRange && rangeContainsRange(lineRange.sourceRange, token.sourceRange)) {
94
+ return {
95
+ ok: true,
96
+ value: lineIndex
97
+ };
98
+ }
99
+ return createNativeTextLineLayoutFailure('token-crosses-line', 'nativeText line layout found a partial token and requires deterministic handling before stable line support.', {
100
+ lineIndex,
101
+ sourceRange: token.sourceRange,
102
+ tokenId: token.id
103
+ });
104
+ }
105
+ if (token.text.trim().length === 0) {
106
+ return {
107
+ ok: true,
108
+ value: findWhitespaceSeparatorLineIndex(token.sourceRange, lineRanges)
109
+ };
110
+ }
111
+ return createNativeTextLineLayoutFailure('token-outside-lines', 'nativeText line layout found a non-whitespace token outside all rendered line ranges.', {
112
+ sourceRange: token.sourceRange,
113
+ tokenId: token.id
114
+ });
115
+ }
116
+ function createStyleSnapshot(style) {
117
+ const flattenedStyle = StyleSheet.flatten(style) ?? {};
118
+ return LAYOUT_TEXT_STYLE_KEYS.reduce((snapshot, key) => {
119
+ const value = flattenedStyle[key];
120
+ if (value === undefined) {
121
+ return snapshot;
122
+ }
123
+ return {
124
+ ...snapshot,
125
+ [key]: value
126
+ };
127
+ }, {});
128
+ }
129
+ function normalizeFiniteNumber(value) {
130
+ return Number.isFinite(value) ? value : null;
131
+ }
132
+ function createInitialInvalidationsByReason() {
133
+ return NATIVE_TEXT_LINE_LAYOUT_INVALIDATION_REASONS.reduce((invalidations, reason) => ({
134
+ ...invalidations,
135
+ [reason]: 0
136
+ }), {
137
+ 'font-scale': 0,
138
+ initial: 0,
139
+ 'line-text': 0,
140
+ style: 0,
141
+ text: 0,
142
+ width: 0
143
+ });
144
+ }
145
+ export function createNativeTextLineRanges(text, renderedLines) {
146
+ const result = {
147
+ cursor: 0,
148
+ lines: [],
149
+ ok: true
150
+ };
151
+
152
+ // Keep this accumulator mutable so source mapping stays linear for stress probes.
153
+ for (const [lineIndex, renderedLine] of renderedLines.entries()) {
154
+ const lineRange = createNativeTextLineRange(text, renderedLine.text, lineIndex, result.cursor);
155
+ if (!lineRange.ok) {
156
+ return lineRange;
157
+ }
158
+ result.cursor = lineRange.value.sourceRange.end;
159
+ result.lines.push(lineRange.value);
160
+ }
161
+ if (text.length > 0 && result.lines.length === 0) {
162
+ return createNativeTextLineLayoutFailure('line-text-not-found', 'nativeText line layout needs rendered line data for non-empty text.', {
163
+ sourceRange: {
164
+ end: 0,
165
+ start: 0
166
+ }
167
+ });
168
+ }
169
+ return {
170
+ ok: true,
171
+ value: result.lines
172
+ };
173
+ }
174
+ export function groupNativeTextTokensByLineRanges(tokens, lineRanges) {
175
+ const groups = lineRanges.map(line => ({
176
+ line,
177
+ tokens: []
178
+ }));
179
+ for (const token of tokens) {
180
+ const lineIndex = findLineIndexForToken(token, lineRanges);
181
+ if (!lineIndex.ok) {
182
+ return lineIndex;
183
+ }
184
+ if (typeof lineIndex.value !== 'number') {
185
+ continue;
186
+ }
187
+ const group = groups[lineIndex.value];
188
+ if (!group) {
189
+ return createNativeTextLineLayoutFailure('token-outside-lines', 'nativeText line layout resolved a token to a missing line group.', {
190
+ sourceRange: token.sourceRange,
191
+ tokenId: token.id
192
+ });
193
+ }
194
+ group.tokens.push(token);
195
+ }
196
+ return {
197
+ ok: true,
198
+ value: groups.map(({
199
+ line,
200
+ tokens: groupTokens
201
+ }) => ({
202
+ line,
203
+ text: groupTokens.map(token => token.text).join(''),
204
+ tokens: groupTokens
205
+ }))
206
+ };
207
+ }
208
+ export function evaluateNativeTextLineLayoutCompatibility(groups) {
209
+ const mismatch = groups.find(group => group.text !== group.line.text);
210
+ if (mismatch) {
211
+ return {
212
+ actualText: mismatch.text,
213
+ expectedText: mismatch.line.text,
214
+ lineIndex: mismatch.line.index,
215
+ reason: 'line-group-text-mismatch',
216
+ status: 'no-go'
217
+ };
218
+ }
219
+ return {
220
+ lineCount: groups.length,
221
+ status: 'go',
222
+ tokenCount: groups.reduce((count, group) => count + group.tokens.length, 0)
223
+ };
224
+ }
225
+ export function createNativeTextLineLayoutSignature({
226
+ allowFontScaling,
227
+ maxFontSizeMultiplier,
228
+ measuredWidth,
229
+ renderedLines,
230
+ style,
231
+ text
232
+ }) {
233
+ return JSON.stringify({
234
+ allowFontScaling,
235
+ maxFontSizeMultiplier,
236
+ measuredWidth: normalizeFiniteNumber(measuredWidth),
237
+ renderedLines: renderedLines.map(line => ({
238
+ height: normalizeFiniteNumber(line.height),
239
+ text: line.text,
240
+ width: normalizeFiniteNumber(line.width),
241
+ x: normalizeFiniteNumber(line.x),
242
+ y: normalizeFiniteNumber(line.y)
243
+ })),
244
+ style: createStyleSnapshot(style),
245
+ text
246
+ });
247
+ }
248
+ export function createNativeTextLineLayoutProbeSnapshot(initial) {
249
+ return {
250
+ acceptedMappingUpdates: initial?.acceptedMappingUpdates ?? 0,
251
+ invalidationsByReason: createInitialInvalidationsByReason(),
252
+ lineCount: initial?.lineCount ?? 0,
253
+ mappingComputations: initial?.mappingComputations ?? 0,
254
+ onTextLayoutCalls: initial?.onTextLayoutCalls ?? 0,
255
+ rejectedIdenticalPayloads: initial?.rejectedIdenticalPayloads ?? 0,
256
+ signature: initial?.signature,
257
+ tokenCount: initial?.tokenCount ?? 0
258
+ };
259
+ }
260
+ export function recordNativeTextLineLayoutMeasurement(snapshot, measurement) {
261
+ if (snapshot.signature === measurement.signature) {
262
+ return {
263
+ accepted: false,
264
+ snapshot: {
265
+ ...snapshot,
266
+ lineCount: measurement.lineCount,
267
+ onTextLayoutCalls: snapshot.onTextLayoutCalls + 1,
268
+ rejectedIdenticalPayloads: snapshot.rejectedIdenticalPayloads + 1,
269
+ tokenCount: measurement.tokenCount
270
+ }
271
+ };
272
+ }
273
+ return {
274
+ accepted: true,
275
+ snapshot: {
276
+ ...snapshot,
277
+ acceptedMappingUpdates: snapshot.acceptedMappingUpdates + 1,
278
+ invalidationsByReason: {
279
+ ...snapshot.invalidationsByReason,
280
+ [measurement.invalidationReason]: snapshot.invalidationsByReason[measurement.invalidationReason] + 1
281
+ },
282
+ lineCount: measurement.lineCount,
283
+ mappingComputations: snapshot.mappingComputations + 1,
284
+ onTextLayoutCalls: snapshot.onTextLayoutCalls + 1,
285
+ signature: measurement.signature,
286
+ tokenCount: measurement.tokenCount
287
+ }
288
+ };
289
+ }
290
+ //# sourceMappingURL=nativeTextLineLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StyleSheet","LAYOUT_TEXT_STYLE_KEYS","NATIVE_TEXT_LINE_LAYOUT_INVALIDATION_REASONS","createNativeTextLineLayoutFailure","reason","message","details","ok","createNativeTextLineRange","text","lineText","lineIndex","cursor","length","value","index","sourceRange","end","start","indexOf","rangesIntersect","first","second","rangeContainsRange","outer","inner","findWhitespaceSeparatorLineIndex","lineRanges","previousIndex","reduce","match","lineRange","undefined","firstLine","findLineIndexForToken","token","intersectingIndexes","flatMap","tokenId","id","trim","createStyleSnapshot","style","flattenedStyle","flatten","snapshot","key","normalizeFiniteNumber","Number","isFinite","createInitialInvalidationsByReason","invalidations","initial","width","createNativeTextLineRanges","renderedLines","result","lines","renderedLine","entries","push","groupNativeTextTokensByLineRanges","tokens","groups","map","line","group","groupTokens","join","evaluateNativeTextLineLayoutCompatibility","mismatch","find","actualText","expectedText","status","lineCount","tokenCount","count","createNativeTextLineLayoutSignature","allowFontScaling","maxFontSizeMultiplier","measuredWidth","JSON","stringify","height","x","y","createNativeTextLineLayoutProbeSnapshot","acceptedMappingUpdates","invalidationsByReason","mappingComputations","onTextLayoutCalls","rejectedIdenticalPayloads","signature","recordNativeTextLineLayoutMeasurement","measurement","accepted","invalidationReason"],"sourceRoot":"../../../src","sources":["renderers/nativeTextLineLayout.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAwC,cAAc;AAIzE,MAAMC,sBAAsB,GAAG,CAC7B,YAAY,EACZ,UAAU,EACV,WAAW,EACX,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,eAAe,EACf,kBAAkB,CAC6B;AAEjD,MAAMC,4CAA4C,GAAG,CACnD,YAAY,EACZ,SAAS,EACT,WAAW,EACX,OAAO,EACP,MAAM,EACN,OAAO,CACC;AAyGV,SAASC,iCAAiCA,CACxCC,MAAyC,EACzCC,OAAe,EACfC,OAAgE,GAAG,CAAC,CAAC,EAClC;EACnC,OAAO;IACLC,EAAE,EAAE,KAAK;IACTH,MAAM;IACNC,OAAO;IACP,GAAGC;EACL,CAAC;AACH;AAEA,SAASE,yBAAyBA,CAChCC,IAAY,EACZC,QAAgB,EAChBC,SAAiB,EACjBC,MAAc,EACmC;EACjD,IAAIF,QAAQ,CAACG,MAAM,KAAK,CAAC,IAAIJ,IAAI,CAACI,MAAM,KAAK,CAAC,IAAID,MAAM,KAAK,CAAC,EAAE;IAC9D,OAAO;MACLL,EAAE,EAAE,IAAI;MACRO,KAAK,EAAE;QACLC,KAAK,EAAEJ,SAAS;QAChBK,WAAW,EAAE;UAAEC,GAAG,EAAE,CAAC;UAAEC,KAAK,EAAE;QAAE,CAAC;QACjCT,IAAI,EAAEC;MACR;IACF,CAAC;EACH;EAEA,IAAIA,QAAQ,CAACG,MAAM,KAAK,CAAC,EAAE;IACzB,OAAOV,iCAAiC,CACtC,6BAA6B,EAC7B,wFAAwF,EACxF;MAAEQ,SAAS;MAAEK,WAAW,EAAE;QAAEC,GAAG,EAAEL,MAAM;QAAEM,KAAK,EAAEN;MAAO;IAAE,CAC3D,CAAC;EACH;EAEA,MAAMM,KAAK,GAAGT,IAAI,CAACU,OAAO,CAACT,QAAQ,EAAEE,MAAM,CAAC;EAE5C,IAAIM,KAAK,GAAG,CAAC,EAAE;IACb,OAAOf,iCAAiC,CACtC,qBAAqB,EACrB,+FAA+F,EAC/F;MAAEQ,SAAS;MAAEK,WAAW,EAAE;QAAEC,GAAG,EAAEL,MAAM;QAAEM,KAAK,EAAEN;MAAO;IAAE,CAC3D,CAAC;EACH;EAEA,OAAO;IACLL,EAAE,EAAE,IAAI;IACRO,KAAK,EAAE;MACLC,KAAK,EAAEJ,SAAS;MAChBK,WAAW,EAAE;QAAEC,GAAG,EAAEC,KAAK,GAAGR,QAAQ,CAACG,MAAM;QAAEK;MAAM,CAAC;MACpDT,IAAI,EAAEC;IACR;EACF,CAAC;AACH;AAEA,SAASU,eAAeA,CAACC,KAA4B,EAAEC,MAA6B,EAAW;EAC7F,OAAOD,KAAK,CAACH,KAAK,GAAGI,MAAM,CAACL,GAAG,IAAIK,MAAM,CAACJ,KAAK,GAAGG,KAAK,CAACJ,GAAG;AAC7D;AAEA,SAASM,kBAAkBA,CAACC,KAA4B,EAAEC,KAA4B,EAAW;EAC/F,OAAOA,KAAK,CAACP,KAAK,IAAIM,KAAK,CAACN,KAAK,IAAIO,KAAK,CAACR,GAAG,IAAIO,KAAK,CAACP,GAAG;AAC7D;AAEA,SAASS,gCAAgCA,CACvCV,WAAkC,EAClCW,UAA0C,EACtB;EACpB,MAAMC,aAAa,GAAGD,UAAU,CAACE,MAAM,CACrC,CAACC,KAAK,EAAEC,SAAS,EAAEhB,KAAK,KAAMgB,SAAS,CAACf,WAAW,CAACC,GAAG,IAAID,WAAW,CAACE,KAAK,GAAGH,KAAK,GAAGe,KAAM,EAC7FE,SACF,CAAC;EAED,IAAI,OAAOJ,aAAa,KAAK,QAAQ,EAAE;IACrC,OAAOA,aAAa;EACtB;EAEA,MAAMK,SAAS,GAAGN,UAAU,CAAC,CAAC,CAAC;EAE/B,IAAIM,SAAS,IAAIjB,WAAW,CAACC,GAAG,IAAIgB,SAAS,CAACjB,WAAW,CAACE,KAAK,EAAE;IAC/D,OAAO,CAAC;EACV;EAEA,OAAOc,SAAS;AAClB;AAEA,SAASE,qBAAqBA,CAC5BC,KAAsB,EACtBR,UAA0C,EACM;EAChD,IAAIQ,KAAK,CAACnB,WAAW,CAACE,KAAK,KAAKiB,KAAK,CAACnB,WAAW,CAACC,GAAG,EAAE;IACrD,OAAO;MAAEV,EAAE,EAAE,IAAI;MAAEO,KAAK,EAAEkB;IAAU,CAAC;EACvC;EAEA,MAAMI,mBAAmB,GAAGT,UAAU,CAACU,OAAO,CAAC,CAACN,SAAS,EAAEhB,KAAK,KAC9DK,eAAe,CAACe,KAAK,CAACnB,WAAW,EAAEe,SAAS,CAACf,WAAW,CAAC,GAAG,CAACD,KAAK,CAAC,GAAG,EACxE,CAAC;EAED,IAAIqB,mBAAmB,CAACvB,MAAM,GAAG,CAAC,EAAE;IAClC,OAAOV,iCAAiC,CACtC,oBAAoB,EACpB,qFAAqF,EACrF;MAAEa,WAAW,EAAEmB,KAAK,CAACnB,WAAW;MAAEsB,OAAO,EAAEH,KAAK,CAACI;IAAG,CACtD,CAAC;EACH;EAEA,MAAM5B,SAAS,GAAGyB,mBAAmB,CAAC,CAAC,CAAC;EAExC,IAAI,OAAOzB,SAAS,KAAK,QAAQ,EAAE;IACjC,MAAMoB,SAAS,GAAGJ,UAAU,CAAChB,SAAS,CAAC;IAEvC,IAAIoB,SAAS,IAAIR,kBAAkB,CAACQ,SAAS,CAACf,WAAW,EAAEmB,KAAK,CAACnB,WAAW,CAAC,EAAE;MAC7E,OAAO;QAAET,EAAE,EAAE,IAAI;QAAEO,KAAK,EAAEH;MAAU,CAAC;IACvC;IAEA,OAAOR,iCAAiC,CACtC,oBAAoB,EACpB,8GAA8G,EAC9G;MAAEQ,SAAS;MAAEK,WAAW,EAAEmB,KAAK,CAACnB,WAAW;MAAEsB,OAAO,EAAEH,KAAK,CAACI;IAAG,CACjE,CAAC;EACH;EAEA,IAAIJ,KAAK,CAAC1B,IAAI,CAAC+B,IAAI,CAAC,CAAC,CAAC3B,MAAM,KAAK,CAAC,EAAE;IAClC,OAAO;MACLN,EAAE,EAAE,IAAI;MACRO,KAAK,EAAEY,gCAAgC,CAACS,KAAK,CAACnB,WAAW,EAAEW,UAAU;IACvE,CAAC;EACH;EAEA,OAAOxB,iCAAiC,CACtC,qBAAqB,EACrB,uFAAuF,EACvF;IAAEa,WAAW,EAAEmB,KAAK,CAACnB,WAAW;IAAEsB,OAAO,EAAEH,KAAK,CAACI;EAAG,CACtD,CAAC;AACH;AAEA,SAASE,mBAAmBA,CAACC,KAA2B,EAAqC;EAC3F,MAAMC,cAAc,GAAG3C,UAAU,CAAC4C,OAAO,CAACF,KAAK,CAAC,IAAI,CAAC,CAAC;EAEtD,OAAOzC,sBAAsB,CAAC4B,MAAM,CAAoC,CAACgB,QAAQ,EAAEC,GAAG,KAAK;IACzF,MAAMhC,KAAK,GAAG6B,cAAc,CAACG,GAAG,CAAC;IAEjC,IAAIhC,KAAK,KAAKkB,SAAS,EAAE;MACvB,OAAOa,QAAQ;IACjB;IAEA,OAAO;MACL,GAAGA,QAAQ;MACX,CAACC,GAAG,GAAGhC;IACT,CAAC;EACH,CAAC,EAAE,CAAC,CAAC,CAAC;AACR;AAEA,SAASiC,qBAAqBA,CAACjC,KAAa,EAAiB;EAC3D,OAAOkC,MAAM,CAACC,QAAQ,CAACnC,KAAK,CAAC,GAAGA,KAAK,GAAG,IAAI;AAC9C;AAEA,SAASoC,kCAAkCA,CAAA,EAGzC;EACA,OAAOhD,4CAA4C,CAAC2B,MAAM,CAGxD,CAACsB,aAAa,EAAE/C,MAAM,MAAM;IAC1B,GAAG+C,aAAa;IAChB,CAAC/C,MAAM,GAAG;EACZ,CAAC,CAAC,EACF;IACE,YAAY,EAAE,CAAC;IACfgD,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,CAAC;IACdV,KAAK,EAAE,CAAC;IACRjC,IAAI,EAAE,CAAC;IACP4C,KAAK,EAAE;EACT,CACF,CAAC;AACH;AAEA,OAAO,SAASC,0BAA0BA,CACxC7C,IAAY,EACZ8C,aAA8D,EACF;EAC5D,MAAMC,MAAsC,GAAG;IAAE5C,MAAM,EAAE,CAAC;IAAE6C,KAAK,EAAE,EAAE;IAAElD,EAAE,EAAE;EAAK,CAAC;;EAEjF;EACA,KAAK,MAAM,CAACI,SAAS,EAAE+C,YAAY,CAAC,IAAIH,aAAa,CAACI,OAAO,CAAC,CAAC,EAAE;IAC/D,MAAM5B,SAAS,GAAGvB,yBAAyB,CAACC,IAAI,EAAEiD,YAAY,CAACjD,IAAI,EAAEE,SAAS,EAAE6C,MAAM,CAAC5C,MAAM,CAAC;IAE9F,IAAI,CAACmB,SAAS,CAACxB,EAAE,EAAE;MACjB,OAAOwB,SAAS;IAClB;IAEAyB,MAAM,CAAC5C,MAAM,GAAGmB,SAAS,CAACjB,KAAK,CAACE,WAAW,CAACC,GAAG;IAC/CuC,MAAM,CAACC,KAAK,CAACG,IAAI,CAAC7B,SAAS,CAACjB,KAAK,CAAC;EACpC;EAEA,IAAIL,IAAI,CAACI,MAAM,GAAG,CAAC,IAAI2C,MAAM,CAACC,KAAK,CAAC5C,MAAM,KAAK,CAAC,EAAE;IAChD,OAAOV,iCAAiC,CACtC,qBAAqB,EACrB,qEAAqE,EACrE;MAAEa,WAAW,EAAE;QAAEC,GAAG,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE;IAAE,CACtC,CAAC;EACH;EAEA,OAAO;IACLX,EAAE,EAAE,IAAI;IACRO,KAAK,EAAE0C,MAAM,CAACC;EAChB,CAAC;AACH;AAEA,OAAO,SAASI,iCAAiCA,CAC/CC,MAAkC,EAClCnC,UAA0C,EACuB;EACjE,MAAMoC,MAAkE,GAAGpC,UAAU,CAACqC,GAAG,CACtFC,IAAI,KAAM;IACTA,IAAI;IACJH,MAAM,EAAE;EACV,CAAC,CACH,CAAC;EAED,KAAK,MAAM3B,KAAK,IAAI2B,MAAM,EAAE;IAC1B,MAAMnD,SAAS,GAAGuB,qBAAqB,CAACC,KAAK,EAAER,UAAU,CAAC;IAE1D,IAAI,CAAChB,SAAS,CAACJ,EAAE,EAAE;MACjB,OAAOI,SAAS;IAClB;IAEA,IAAI,OAAOA,SAAS,CAACG,KAAK,KAAK,QAAQ,EAAE;MACvC;IACF;IAEA,MAAMoD,KAAK,GAAGH,MAAM,CAACpD,SAAS,CAACG,KAAK,CAAC;IAErC,IAAI,CAACoD,KAAK,EAAE;MACV,OAAO/D,iCAAiC,CACtC,qBAAqB,EACrB,kEAAkE,EAClE;QAAEa,WAAW,EAAEmB,KAAK,CAACnB,WAAW;QAAEsB,OAAO,EAAEH,KAAK,CAACI;MAAG,CACtD,CAAC;IACH;IAEA2B,KAAK,CAACJ,MAAM,CAACF,IAAI,CAACzB,KAAK,CAAC;EAC1B;EAEA,OAAO;IACL5B,EAAE,EAAE,IAAI;IACRO,KAAK,EAAEiD,MAAM,CAACC,GAAG,CAAC,CAAC;MAAEC,IAAI;MAAEH,MAAM,EAAEK;IAAY,CAAC,MAAM;MACpDF,IAAI;MACJxD,IAAI,EAAE0D,WAAW,CAACH,GAAG,CAAE7B,KAAK,IAAKA,KAAK,CAAC1B,IAAI,CAAC,CAAC2D,IAAI,CAAC,EAAE,CAAC;MACrDN,MAAM,EAAEK;IACV,CAAC,CAAC;EACJ,CAAC;AACH;AAEA,OAAO,SAASE,yCAAyCA,CACvDN,MAA2C,EACF;EACzC,MAAMO,QAAQ,GAAGP,MAAM,CAACQ,IAAI,CAAEL,KAAK,IAAKA,KAAK,CAACzD,IAAI,KAAKyD,KAAK,CAACD,IAAI,CAACxD,IAAI,CAAC;EAEvE,IAAI6D,QAAQ,EAAE;IACZ,OAAO;MACLE,UAAU,EAAEF,QAAQ,CAAC7D,IAAI;MACzBgE,YAAY,EAAEH,QAAQ,CAACL,IAAI,CAACxD,IAAI;MAChCE,SAAS,EAAE2D,QAAQ,CAACL,IAAI,CAAClD,KAAK;MAC9BX,MAAM,EAAE,0BAA0B;MAClCsE,MAAM,EAAE;IACV,CAAC;EACH;EAEA,OAAO;IACLC,SAAS,EAAEZ,MAAM,CAAClD,MAAM;IACxB6D,MAAM,EAAE,IAAI;IACZE,UAAU,EAAEb,MAAM,CAAClC,MAAM,CAAC,CAACgD,KAAK,EAAEX,KAAK,KAAKW,KAAK,GAAGX,KAAK,CAACJ,MAAM,CAACjD,MAAM,EAAE,CAAC;EAC5E,CAAC;AACH;AAEA,OAAO,SAASiE,mCAAmCA,CAAC;EAClDC,gBAAgB;EAChBC,qBAAqB;EACrBC,aAAa;EACb1B,aAAa;EACbb,KAAK;EACLjC;AACkC,CAAC,EAAU;EAC7C,OAAOyE,IAAI,CAACC,SAAS,CAAC;IACpBJ,gBAAgB;IAChBC,qBAAqB;IACrBC,aAAa,EAAElC,qBAAqB,CAACkC,aAAa,CAAC;IACnD1B,aAAa,EAAEA,aAAa,CAACS,GAAG,CAAEC,IAAI,KAAM;MAC1CmB,MAAM,EAAErC,qBAAqB,CAACkB,IAAI,CAACmB,MAAM,CAAC;MAC1C3E,IAAI,EAAEwD,IAAI,CAACxD,IAAI;MACf4C,KAAK,EAAEN,qBAAqB,CAACkB,IAAI,CAACZ,KAAK,CAAC;MACxCgC,CAAC,EAAEtC,qBAAqB,CAACkB,IAAI,CAACoB,CAAC,CAAC;MAChCC,CAAC,EAAEvC,qBAAqB,CAACkB,IAAI,CAACqB,CAAC;IACjC,CAAC,CAAC,CAAC;IACH5C,KAAK,EAAED,mBAAmB,CAACC,KAAK,CAAC;IACjCjC;EACF,CAAC,CAAC;AACJ;AAEA,OAAO,SAAS8E,uCAAuCA,CACrDnC,OAWC,EACkC;EACnC,OAAO;IACLoC,sBAAsB,EAAEpC,OAAO,EAAEoC,sBAAsB,IAAI,CAAC;IAC5DC,qBAAqB,EAAEvC,kCAAkC,CAAC,CAAC;IAC3DyB,SAAS,EAAEvB,OAAO,EAAEuB,SAAS,IAAI,CAAC;IAClCe,mBAAmB,EAAEtC,OAAO,EAAEsC,mBAAmB,IAAI,CAAC;IACtDC,iBAAiB,EAAEvC,OAAO,EAAEuC,iBAAiB,IAAI,CAAC;IAClDC,yBAAyB,EAAExC,OAAO,EAAEwC,yBAAyB,IAAI,CAAC;IAClEC,SAAS,EAAEzC,OAAO,EAAEyC,SAAS;IAC7BjB,UAAU,EAAExB,OAAO,EAAEwB,UAAU,IAAI;EACrC,CAAC;AACH;AAEA,OAAO,SAASkB,qCAAqCA,CACnDjD,QAA2C,EAC3CkD,WAA4C,EACX;EACjC,IAAIlD,QAAQ,CAACgD,SAAS,KAAKE,WAAW,CAACF,SAAS,EAAE;IAChD,OAAO;MACLG,QAAQ,EAAE,KAAK;MACfnD,QAAQ,EAAE;QACR,GAAGA,QAAQ;QACX8B,SAAS,EAAEoB,WAAW,CAACpB,SAAS;QAChCgB,iBAAiB,EAAE9C,QAAQ,CAAC8C,iBAAiB,GAAG,CAAC;QACjDC,yBAAyB,EAAE/C,QAAQ,CAAC+C,yBAAyB,GAAG,CAAC;QACjEhB,UAAU,EAAEmB,WAAW,CAACnB;MAC1B;IACF,CAAC;EACH;EAEA,OAAO;IACLoB,QAAQ,EAAE,IAAI;IACdnD,QAAQ,EAAE;MACR,GAAGA,QAAQ;MACX2C,sBAAsB,EAAE3C,QAAQ,CAAC2C,sBAAsB,GAAG,CAAC;MAC3DC,qBAAqB,EAAE;QACrB,GAAG5C,QAAQ,CAAC4C,qBAAqB;QACjC,CAACM,WAAW,CAACE,kBAAkB,GAC7BpD,QAAQ,CAAC4C,qBAAqB,CAACM,WAAW,CAACE,kBAAkB,CAAC,GAAG;MACrE,CAAC;MACDtB,SAAS,EAAEoB,WAAW,CAACpB,SAAS;MAChCe,mBAAmB,EAAE7C,QAAQ,CAAC6C,mBAAmB,GAAG,CAAC;MACrDC,iBAAiB,EAAE9C,QAAQ,CAAC8C,iBAAiB,GAAG,CAAC;MACjDE,SAAS,EAAEE,WAAW,CAACF,SAAS;MAChCjB,UAAU,EAAEmB,WAAW,CAACnB;IAC1B;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ function isNativeTextMotionOptionRecord(value) {
4
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
5
+ }
6
+ function createMotionOptionSnapshotValue(value) {
7
+ // Reanimated config objects are compared structurally; function-valued options stay reference-sensitive.
8
+ if (Array.isArray(value)) {
9
+ return value.map(createMotionOptionSnapshotValue);
10
+ }
11
+ if (isNativeTextMotionOptionRecord(value)) {
12
+ return Object.fromEntries(Object.entries(value).map(([key, nestedValue]) => [key, createMotionOptionSnapshotValue(nestedValue)]));
13
+ }
14
+ return value;
15
+ }
16
+ function createMotionOptionsSnapshot(options) {
17
+ if (!options) {
18
+ return undefined;
19
+ }
20
+ return Object.fromEntries(Object.entries(options).map(([key, value]) => [key, createMotionOptionSnapshotValue(value)]));
21
+ }
22
+ function createMotionSnapshot(motion) {
23
+ if (!motion) {
24
+ return undefined;
25
+ }
26
+ return {
27
+ kind: motion.kind,
28
+ options: createMotionOptionsSnapshot(motion.options)
29
+ };
30
+ }
31
+ export function createNativeTextPlaybackRun(tokenMotion, renderFinalState, text) {
32
+ return {
33
+ ...tokenMotion,
34
+ motionSnapshot: createMotionSnapshot(tokenMotion.motion),
35
+ renderFinalState,
36
+ text
37
+ };
38
+ }
39
+ function areNativeTextStyleStatesEqual(left, right) {
40
+ return Object.is(left.opacity, right.opacity) && Object.is(left.scale, right.scale) && Object.is(left.translateX, right.translateX) && Object.is(left.translateY, right.translateY);
41
+ }
42
+ function areMotionOptionsSnapshotsEqual(left, right) {
43
+ if (!left || !right) {
44
+ return left === right;
45
+ }
46
+ const leftKeys = Object.keys(left);
47
+ const rightKeys = Object.keys(right);
48
+ if (leftKeys.length !== rightKeys.length) {
49
+ return false;
50
+ }
51
+ return leftKeys.every(key => Object.prototype.hasOwnProperty.call(right, key) && areMotionOptionSnapshotValuesEqual(left[key], right[key]));
52
+ }
53
+ function areMotionOptionArraysEqual(left, right) {
54
+ if (left.length !== right.length) {
55
+ return false;
56
+ }
57
+ return left.every((value, index) => areMotionOptionSnapshotValuesEqual(value, right[index]));
58
+ }
59
+ function areMotionOptionRecordsEqual(left, right) {
60
+ const leftKeys = Object.keys(left);
61
+ const rightKeys = Object.keys(right);
62
+ if (leftKeys.length !== rightKeys.length) {
63
+ return false;
64
+ }
65
+ return leftKeys.every(key => Object.prototype.hasOwnProperty.call(right, key) && areMotionOptionSnapshotValuesEqual(left[key], right[key]));
66
+ }
67
+ function areMotionOptionSnapshotValuesEqual(left, right) {
68
+ if (Object.is(left, right)) {
69
+ return true;
70
+ }
71
+ if (Array.isArray(left) && Array.isArray(right)) {
72
+ return areMotionOptionArraysEqual(left, right);
73
+ }
74
+ if (isNativeTextMotionOptionRecord(left) && isNativeTextMotionOptionRecord(right)) {
75
+ return areMotionOptionRecordsEqual(left, right);
76
+ }
77
+ return false;
78
+ }
79
+ function areMotionSnapshotsEqual(left, right) {
80
+ if (!left || !right) {
81
+ return left === right;
82
+ }
83
+ return left.kind === right.kind && areMotionOptionsSnapshotsEqual(left.options, right.options);
84
+ }
85
+ export function areNativeTextPlaybackRunsEqual(left, right) {
86
+ if (!left) {
87
+ return false;
88
+ }
89
+ return Object.is(left.delayMs, right.delayMs) && Object.is(left.pulseScale, right.pulseScale) && left.reducedMotion === right.reducedMotion && left.revealOnStart === right.revealOnStart && left.renderFinalState === right.renderFinalState && left.text === right.text && areNativeTextStyleStatesEqual(left.initial, right.initial) && areNativeTextStyleStatesEqual(left.target, right.target) && areMotionSnapshotsEqual(left.motionSnapshot, right.motionSnapshot);
90
+ }
91
+ //# sourceMappingURL=nativeTextPlayback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isNativeTextMotionOptionRecord","value","Array","isArray","createMotionOptionSnapshotValue","map","Object","fromEntries","entries","key","nestedValue","createMotionOptionsSnapshot","options","undefined","createMotionSnapshot","motion","kind","createNativeTextPlaybackRun","tokenMotion","renderFinalState","text","motionSnapshot","areNativeTextStyleStatesEqual","left","right","is","opacity","scale","translateX","translateY","areMotionOptionsSnapshotsEqual","leftKeys","keys","rightKeys","length","every","prototype","hasOwnProperty","call","areMotionOptionSnapshotValuesEqual","areMotionOptionArraysEqual","index","areMotionOptionRecordsEqual","areMotionSnapshotsEqual","areNativeTextPlaybackRunsEqual","delayMs","pulseScale","reducedMotion","revealOnStart","initial","target"],"sourceRoot":"../../../src","sources":["renderers/nativeTextPlayback.ts"],"mappings":";;AA+BA,SAASA,8BAA8BA,CAACC,KAAc,EAAoC;EACxF,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC;AAC7E;AAEA,SAASG,+BAA+BA,CAACH,KAAc,EAAuC;EAC5F;EACA,IAAIC,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,EAAE;IACxB,OAAOA,KAAK,CAACI,GAAG,CAACD,+BAA+B,CAAC;EACnD;EAEA,IAAIJ,8BAA8B,CAACC,KAAK,CAAC,EAAE;IACzC,OAAOK,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACP,KAAK,CAAC,CAACI,GAAG,CAAC,CAAC,CAACI,GAAG,EAAEC,WAAW,CAAC,KAAK,CAChDD,GAAG,EACHL,+BAA+B,CAACM,WAAW,CAAC,CAC7C,CACH,CAAC;EACH;EAEA,OAAOT,KAAK;AACd;AAEA,SAASU,2BAA2BA,CAClCC,OAA0C,EACG;EAC7C,IAAI,CAACA,OAAO,EAAE;IACZ,OAAOC,SAAS;EAClB;EAEA,OAAOP,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACI,OAAO,CAAC,CAACP,GAAG,CAAC,CAAC,CAACI,GAAG,EAAER,KAAK,CAAC,KAAK,CAACQ,GAAG,EAAEL,+BAA+B,CAACH,KAAK,CAAC,CAAC,CAC7F,CAAC;AACH;AAEA,SAASa,oBAAoBA,CAC3BC,MAA0C,EACJ;EACtC,IAAI,CAACA,MAAM,EAAE;IACX,OAAOF,SAAS;EAClB;EAEA,OAAO;IACLG,IAAI,EAAED,MAAM,CAACC,IAAI;IACjBJ,OAAO,EAAED,2BAA2B,CAACI,MAAM,CAACH,OAAO;EACrD,CAAC;AACH;AAEA,OAAO,SAASK,2BAA2BA,CACzCC,WAAkC,EAClCC,gBAAyB,EACzBC,IAAY,EACW;EACvB,OAAO;IACL,GAAGF,WAAW;IACdG,cAAc,EAAEP,oBAAoB,CAACI,WAAW,CAACH,MAAM,CAAC;IACxDI,gBAAgB;IAChBC;EACF,CAAC;AACH;AAEA,SAASE,6BAA6BA,CACpCC,IAA0B,EAC1BC,KAA2B,EAClB;EACT,OACElB,MAAM,CAACmB,EAAE,CAACF,IAAI,CAACG,OAAO,EAAEF,KAAK,CAACE,OAAO,CAAC,IACtCpB,MAAM,CAACmB,EAAE,CAACF,IAAI,CAACI,KAAK,EAAEH,KAAK,CAACG,KAAK,CAAC,IAClCrB,MAAM,CAACmB,EAAE,CAACF,IAAI,CAACK,UAAU,EAAEJ,KAAK,CAACI,UAAU,CAAC,IAC5CtB,MAAM,CAACmB,EAAE,CAACF,IAAI,CAACM,UAAU,EAAEL,KAAK,CAACK,UAAU,CAAC;AAEhD;AAEA,SAASC,8BAA8BA,CACrCP,IAAiD,EACjDC,KAAkD,EACzC;EACT,IAAI,CAACD,IAAI,IAAI,CAACC,KAAK,EAAE;IACnB,OAAOD,IAAI,KAAKC,KAAK;EACvB;EAEA,MAAMO,QAAQ,GAAGzB,MAAM,CAAC0B,IAAI,CAACT,IAAI,CAAC;EAClC,MAAMU,SAAS,GAAG3B,MAAM,CAAC0B,IAAI,CAACR,KAAK,CAAC;EAEpC,IAAIO,QAAQ,CAACG,MAAM,KAAKD,SAAS,CAACC,MAAM,EAAE;IACxC,OAAO,KAAK;EACd;EAEA,OAAOH,QAAQ,CAACI,KAAK,CAClB1B,GAAG,IACFH,MAAM,CAAC8B,SAAS,CAACC,cAAc,CAACC,IAAI,CAACd,KAAK,EAAEf,GAAG,CAAC,IAChD8B,kCAAkC,CAAChB,IAAI,CAACd,GAAG,CAAC,EAAEe,KAAK,CAACf,GAAG,CAAC,CAC5D,CAAC;AACH;AAEA,SAAS+B,0BAA0BA,CACjCjB,IAAoD,EACpDC,KAAqD,EAC5C;EACT,IAAID,IAAI,CAACW,MAAM,KAAKV,KAAK,CAACU,MAAM,EAAE;IAChC,OAAO,KAAK;EACd;EAEA,OAAOX,IAAI,CAACY,KAAK,CAAC,CAAClC,KAAK,EAAEwC,KAAK,KAAKF,kCAAkC,CAACtC,KAAK,EAAEuB,KAAK,CAACiB,KAAK,CAAC,CAAC,CAAC;AAC9F;AAEA,SAASC,2BAA2BA,CAClCnB,IAAqE,EACrEC,KAAsE,EAC7D;EACT,MAAMO,QAAQ,GAAGzB,MAAM,CAAC0B,IAAI,CAACT,IAAI,CAAC;EAClC,MAAMU,SAAS,GAAG3B,MAAM,CAAC0B,IAAI,CAACR,KAAK,CAAC;EAEpC,IAAIO,QAAQ,CAACG,MAAM,KAAKD,SAAS,CAACC,MAAM,EAAE;IACxC,OAAO,KAAK;EACd;EAEA,OAAOH,QAAQ,CAACI,KAAK,CAClB1B,GAAG,IACFH,MAAM,CAAC8B,SAAS,CAACC,cAAc,CAACC,IAAI,CAACd,KAAK,EAAEf,GAAG,CAAC,IAChD8B,kCAAkC,CAAChB,IAAI,CAACd,GAAG,CAAC,EAAEe,KAAK,CAACf,GAAG,CAAC,CAC5D,CAAC;AACH;AAEA,SAAS8B,kCAAkCA,CACzChB,IAAqD,EACrDC,KAAsD,EAC7C;EACT,IAAIlB,MAAM,CAACmB,EAAE,CAACF,IAAI,EAAEC,KAAK,CAAC,EAAE;IAC1B,OAAO,IAAI;EACb;EAEA,IAAItB,KAAK,CAACC,OAAO,CAACoB,IAAI,CAAC,IAAIrB,KAAK,CAACC,OAAO,CAACqB,KAAK,CAAC,EAAE;IAC/C,OAAOgB,0BAA0B,CAACjB,IAAI,EAAEC,KAAK,CAAC;EAChD;EAEA,IAAIxB,8BAA8B,CAACuB,IAAI,CAAC,IAAIvB,8BAA8B,CAACwB,KAAK,CAAC,EAAE;IACjF,OAAOkB,2BAA2B,CAACnB,IAAI,EAAEC,KAAK,CAAC;EACjD;EAEA,OAAO,KAAK;AACd;AAEA,SAASmB,uBAAuBA,CAC9BpB,IAA0C,EAC1CC,KAA2C,EAClC;EACT,IAAI,CAACD,IAAI,IAAI,CAACC,KAAK,EAAE;IACnB,OAAOD,IAAI,KAAKC,KAAK;EACvB;EAEA,OAAOD,IAAI,CAACP,IAAI,KAAKQ,KAAK,CAACR,IAAI,IAAIc,8BAA8B,CAACP,IAAI,CAACX,OAAO,EAAEY,KAAK,CAACZ,OAAO,CAAC;AAChG;AAEA,OAAO,SAASgC,8BAA8BA,CAC5CrB,IAAuC,EACvCC,KAA4B,EACnB;EACT,IAAI,CAACD,IAAI,EAAE;IACT,OAAO,KAAK;EACd;EAEA,OACEjB,MAAM,CAACmB,EAAE,CAACF,IAAI,CAACsB,OAAO,EAAErB,KAAK,CAACqB,OAAO,CAAC,IACtCvC,MAAM,CAACmB,EAAE,CAACF,IAAI,CAACuB,UAAU,EAAEtB,KAAK,CAACsB,UAAU,CAAC,IAC5CvB,IAAI,CAACwB,aAAa,KAAKvB,KAAK,CAACuB,aAAa,IAC1CxB,IAAI,CAACyB,aAAa,KAAKxB,KAAK,CAACwB,aAAa,IAC1CzB,IAAI,CAACJ,gBAAgB,KAAKK,KAAK,CAACL,gBAAgB,IAChDI,IAAI,CAACH,IAAI,KAAKI,KAAK,CAACJ,IAAI,IACxBE,6BAA6B,CAACC,IAAI,CAAC0B,OAAO,EAAEzB,KAAK,CAACyB,OAAO,CAAC,IAC1D3B,6BAA6B,CAACC,IAAI,CAAC2B,MAAM,EAAE1B,KAAK,CAAC0B,MAAM,CAAC,IACxDP,uBAAuB,CAACpB,IAAI,CAACF,cAAc,EAAEG,KAAK,CAACH,cAAc,CAAC;AAEtE","ignoreList":[]}