react-native-divkit 0.1.0-alpha.1

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 (322) hide show
  1. package/LICENSE +176 -0
  2. package/README.md +340 -0
  3. package/dist/DivKit.d.ts +68 -0
  4. package/dist/DivKit.d.ts.map +1 -0
  5. package/dist/DivKit.js +400 -0
  6. package/dist/DivKit.js.map +1 -0
  7. package/dist/actions/array.d.ts +8 -0
  8. package/dist/actions/array.d.ts.map +1 -0
  9. package/dist/actions/array.js +139 -0
  10. package/dist/actions/array.js.map +1 -0
  11. package/dist/actions/copyToClipboard.d.ts +22 -0
  12. package/dist/actions/copyToClipboard.d.ts.map +1 -0
  13. package/dist/actions/copyToClipboard.js +63 -0
  14. package/dist/actions/copyToClipboard.js.map +1 -0
  15. package/dist/actions/dict.d.ts +6 -0
  16. package/dist/actions/dict.d.ts.map +1 -0
  17. package/dist/actions/dict.js +58 -0
  18. package/dist/actions/dict.js.map +1 -0
  19. package/dist/actions/index.d.ts +11 -0
  20. package/dist/actions/index.d.ts.map +1 -0
  21. package/dist/actions/index.js +11 -0
  22. package/dist/actions/index.js.map +1 -0
  23. package/dist/actions/updateStructure.d.ts +6 -0
  24. package/dist/actions/updateStructure.d.ts.map +1 -0
  25. package/dist/actions/updateStructure.js +116 -0
  26. package/dist/actions/updateStructure.js.map +1 -0
  27. package/dist/components/DivComponent.d.ts +29 -0
  28. package/dist/components/DivComponent.d.ts.map +1 -0
  29. package/dist/components/DivComponent.js +62 -0
  30. package/dist/components/DivComponent.js.map +1 -0
  31. package/dist/components/container/DivContainer.d.ts +26 -0
  32. package/dist/components/container/DivContainer.d.ts.map +1 -0
  33. package/dist/components/container/DivContainer.js +172 -0
  34. package/dist/components/container/DivContainer.js.map +1 -0
  35. package/dist/components/container/index.d.ts +3 -0
  36. package/dist/components/container/index.d.ts.map +1 -0
  37. package/dist/components/container/index.js +2 -0
  38. package/dist/components/container/index.js.map +1 -0
  39. package/dist/components/image/DivImage.d.ts +29 -0
  40. package/dist/components/image/DivImage.d.ts.map +1 -0
  41. package/dist/components/image/DivImage.js +122 -0
  42. package/dist/components/image/DivImage.js.map +1 -0
  43. package/dist/components/image/index.d.ts +3 -0
  44. package/dist/components/image/index.d.ts.map +1 -0
  45. package/dist/components/image/index.js +2 -0
  46. package/dist/components/image/index.js.map +1 -0
  47. package/dist/components/index.d.ts +14 -0
  48. package/dist/components/index.d.ts.map +1 -0
  49. package/dist/components/index.js +11 -0
  50. package/dist/components/index.js.map +1 -0
  51. package/dist/components/state/DivState.d.ts +26 -0
  52. package/dist/components/state/DivState.d.ts.map +1 -0
  53. package/dist/components/state/DivState.js +121 -0
  54. package/dist/components/state/DivState.js.map +1 -0
  55. package/dist/components/state/index.d.ts +3 -0
  56. package/dist/components/state/index.d.ts.map +1 -0
  57. package/dist/components/state/index.js +2 -0
  58. package/dist/components/state/index.js.map +1 -0
  59. package/dist/components/text/DivText.d.ts +28 -0
  60. package/dist/components/text/DivText.d.ts.map +1 -0
  61. package/dist/components/text/DivText.js +143 -0
  62. package/dist/components/text/DivText.js.map +1 -0
  63. package/dist/components/text/index.d.ts +3 -0
  64. package/dist/components/text/index.d.ts.map +1 -0
  65. package/dist/components/text/index.js +2 -0
  66. package/dist/components/text/index.js.map +1 -0
  67. package/dist/components/utilities/Outer.d.ts +17 -0
  68. package/dist/components/utilities/Outer.d.ts.map +1 -0
  69. package/dist/components/utilities/Outer.js +210 -0
  70. package/dist/components/utilities/Outer.js.map +1 -0
  71. package/dist/components/utilities/Unknown.d.ts +11 -0
  72. package/dist/components/utilities/Unknown.d.ts.map +1 -0
  73. package/dist/components/utilities/Unknown.js +50 -0
  74. package/dist/components/utilities/Unknown.js.map +1 -0
  75. package/dist/components/utilities/index.d.ts +5 -0
  76. package/dist/components/utilities/index.d.ts.map +1 -0
  77. package/dist/components/utilities/index.js +3 -0
  78. package/dist/components/utilities/index.js.map +1 -0
  79. package/dist/context/ActionContext.d.ts +25 -0
  80. package/dist/context/ActionContext.d.ts.map +1 -0
  81. package/dist/context/ActionContext.js +20 -0
  82. package/dist/context/ActionContext.js.map +1 -0
  83. package/dist/context/DivKitContext.d.ts +33 -0
  84. package/dist/context/DivKitContext.d.ts.map +1 -0
  85. package/dist/context/DivKitContext.js +14 -0
  86. package/dist/context/DivKitContext.js.map +1 -0
  87. package/dist/context/EnabledContext.d.ts +31 -0
  88. package/dist/context/EnabledContext.d.ts.map +1 -0
  89. package/dist/context/EnabledContext.js +31 -0
  90. package/dist/context/EnabledContext.js.map +1 -0
  91. package/dist/context/StateContext.d.ts +57 -0
  92. package/dist/context/StateContext.d.ts.map +1 -0
  93. package/dist/context/StateContext.js +20 -0
  94. package/dist/context/StateContext.js.map +1 -0
  95. package/dist/context/index.d.ts +9 -0
  96. package/dist/context/index.d.ts.map +1 -0
  97. package/dist/context/index.js +9 -0
  98. package/dist/context/index.js.map +1 -0
  99. package/dist/expressions/bigint.d.ts +8 -0
  100. package/dist/expressions/bigint.d.ts.map +1 -0
  101. package/dist/expressions/bigint.js +31 -0
  102. package/dist/expressions/bigint.js.map +1 -0
  103. package/dist/expressions/const.d.ts +15 -0
  104. package/dist/expressions/const.d.ts.map +1 -0
  105. package/dist/expressions/const.js +15 -0
  106. package/dist/expressions/const.js.map +1 -0
  107. package/dist/expressions/eval.d.ts +77 -0
  108. package/dist/expressions/eval.d.ts.map +1 -0
  109. package/dist/expressions/eval.js +459 -0
  110. package/dist/expressions/eval.js.map +1 -0
  111. package/dist/expressions/expressions.d.ts +7 -0
  112. package/dist/expressions/expressions.d.ts.map +1 -0
  113. package/dist/expressions/expressions.js +3191 -0
  114. package/dist/expressions/expressions.js.map +1 -0
  115. package/dist/expressions/funcs/array.d.ts +2 -0
  116. package/dist/expressions/funcs/array.d.ts.map +1 -0
  117. package/dist/expressions/funcs/array.js +381 -0
  118. package/dist/expressions/funcs/array.js.map +1 -0
  119. package/dist/expressions/funcs/colors.d.ts +2 -0
  120. package/dist/expressions/funcs/colors.d.ts.map +1 -0
  121. package/dist/expressions/funcs/colors.js +75 -0
  122. package/dist/expressions/funcs/colors.js.map +1 -0
  123. package/dist/expressions/funcs/customFuncs.d.ts +8 -0
  124. package/dist/expressions/funcs/customFuncs.d.ts.map +1 -0
  125. package/dist/expressions/funcs/customFuncs.js +114 -0
  126. package/dist/expressions/funcs/customFuncs.js.map +1 -0
  127. package/dist/expressions/funcs/datetime.d.ts +2 -0
  128. package/dist/expressions/funcs/datetime.d.ts.map +1 -0
  129. package/dist/expressions/funcs/datetime.js +182 -0
  130. package/dist/expressions/funcs/datetime.js.map +1 -0
  131. package/dist/expressions/funcs/dict.d.ts +2 -0
  132. package/dist/expressions/funcs/dict.d.ts.map +1 -0
  133. package/dist/expressions/funcs/dict.js +170 -0
  134. package/dist/expressions/funcs/dict.js.map +1 -0
  135. package/dist/expressions/funcs/funcs.d.ts +80 -0
  136. package/dist/expressions/funcs/funcs.d.ts.map +1 -0
  137. package/dist/expressions/funcs/funcs.js +146 -0
  138. package/dist/expressions/funcs/funcs.js.map +1 -0
  139. package/dist/expressions/funcs/index.d.ts +2 -0
  140. package/dist/expressions/funcs/index.d.ts.map +1 -0
  141. package/dist/expressions/funcs/index.js +23 -0
  142. package/dist/expressions/funcs/index.js.map +1 -0
  143. package/dist/expressions/funcs/interval.d.ts +2 -0
  144. package/dist/expressions/funcs/interval.d.ts.map +1 -0
  145. package/dist/expressions/funcs/interval.js +61 -0
  146. package/dist/expressions/funcs/interval.js.map +1 -0
  147. package/dist/expressions/funcs/math.d.ts +2 -0
  148. package/dist/expressions/funcs/math.d.ts.map +1 -0
  149. package/dist/expressions/funcs/math.js +324 -0
  150. package/dist/expressions/funcs/math.js.map +1 -0
  151. package/dist/expressions/funcs/std.d.ts +2 -0
  152. package/dist/expressions/funcs/std.d.ts.map +1 -0
  153. package/dist/expressions/funcs/std.js +293 -0
  154. package/dist/expressions/funcs/std.js.map +1 -0
  155. package/dist/expressions/funcs/stored.d.ts +4 -0
  156. package/dist/expressions/funcs/stored.d.ts.map +1 -0
  157. package/dist/expressions/funcs/stored.js +62 -0
  158. package/dist/expressions/funcs/stored.js.map +1 -0
  159. package/dist/expressions/funcs/strings.d.ts +2 -0
  160. package/dist/expressions/funcs/strings.d.ts.map +1 -0
  161. package/dist/expressions/funcs/strings.js +158 -0
  162. package/dist/expressions/funcs/strings.js.map +1 -0
  163. package/dist/expressions/funcs/trigonometry.d.ts +2 -0
  164. package/dist/expressions/funcs/trigonometry.d.ts.map +1 -0
  165. package/dist/expressions/funcs/trigonometry.js +92 -0
  166. package/dist/expressions/funcs/trigonometry.js.map +1 -0
  167. package/dist/expressions/json.d.ts +18 -0
  168. package/dist/expressions/json.d.ts.map +1 -0
  169. package/dist/expressions/json.js +271 -0
  170. package/dist/expressions/json.js.map +1 -0
  171. package/dist/expressions/parserCache.d.ts +4 -0
  172. package/dist/expressions/parserCache.d.ts.map +1 -0
  173. package/dist/expressions/parserCache.js +23 -0
  174. package/dist/expressions/parserCache.js.map +1 -0
  175. package/dist/expressions/simpleUnescapeString.d.ts +2 -0
  176. package/dist/expressions/simpleUnescapeString.d.ts.map +1 -0
  177. package/dist/expressions/simpleUnescapeString.js +61 -0
  178. package/dist/expressions/simpleUnescapeString.js.map +1 -0
  179. package/dist/expressions/utils.d.ts +29 -0
  180. package/dist/expressions/utils.d.ts.map +1 -0
  181. package/dist/expressions/utils.js +236 -0
  182. package/dist/expressions/utils.js.map +1 -0
  183. package/dist/expressions/variable.d.ts +82 -0
  184. package/dist/expressions/variable.d.ts.map +1 -0
  185. package/dist/expressions/variable.js +337 -0
  186. package/dist/expressions/variable.js.map +1 -0
  187. package/dist/expressions/walk.d.ts +7 -0
  188. package/dist/expressions/walk.d.ts.map +1 -0
  189. package/dist/expressions/walk.js +39 -0
  190. package/dist/expressions/walk.js.map +1 -0
  191. package/dist/hooks/index.d.ts +8 -0
  192. package/dist/hooks/index.d.ts.map +1 -0
  193. package/dist/hooks/index.js +11 -0
  194. package/dist/hooks/index.js.map +1 -0
  195. package/dist/hooks/useAction.d.ts +102 -0
  196. package/dist/hooks/useAction.d.ts.map +1 -0
  197. package/dist/hooks/useAction.js +116 -0
  198. package/dist/hooks/useAction.js.map +1 -0
  199. package/dist/hooks/useDerivedFromVars.d.ts +72 -0
  200. package/dist/hooks/useDerivedFromVars.d.ts.map +1 -0
  201. package/dist/hooks/useDerivedFromVars.js +100 -0
  202. package/dist/hooks/useDerivedFromVars.js.map +1 -0
  203. package/dist/hooks/useVariable.d.ts +86 -0
  204. package/dist/hooks/useVariable.d.ts.map +1 -0
  205. package/dist/hooks/useVariable.js +130 -0
  206. package/dist/hooks/useVariable.js.map +1 -0
  207. package/dist/index.d.ts +30 -0
  208. package/dist/index.d.ts.map +1 -0
  209. package/dist/index.js +28 -0
  210. package/dist/index.js.map +1 -0
  211. package/dist/stores/createObservable.d.ts +38 -0
  212. package/dist/stores/createObservable.d.ts.map +1 -0
  213. package/dist/stores/createObservable.js +49 -0
  214. package/dist/stores/createObservable.js.map +1 -0
  215. package/dist/utils/applyTemplate.d.ts +8 -0
  216. package/dist/utils/applyTemplate.d.ts.map +1 -0
  217. package/dist/utils/applyTemplate.js +94 -0
  218. package/dist/utils/applyTemplate.js.map +1 -0
  219. package/dist/utils/correctColor.d.ts +18 -0
  220. package/dist/utils/correctColor.d.ts.map +1 -0
  221. package/dist/utils/correctColor.js +79 -0
  222. package/dist/utils/correctColor.js.map +1 -0
  223. package/dist/utils/escapeRegExp.d.ts +2 -0
  224. package/dist/utils/escapeRegExp.d.ts.map +1 -0
  225. package/dist/utils/escapeRegExp.js +4 -0
  226. package/dist/utils/escapeRegExp.js.map +1 -0
  227. package/dist/utils/formatDate.d.ts +6 -0
  228. package/dist/utils/formatDate.d.ts.map +1 -0
  229. package/dist/utils/formatDate.js +325 -0
  230. package/dist/utils/formatDate.js.map +1 -0
  231. package/dist/utils/padLeft.d.ts +2 -0
  232. package/dist/utils/padLeft.d.ts.map +1 -0
  233. package/dist/utils/padLeft.js +7 -0
  234. package/dist/utils/padLeft.js.map +1 -0
  235. package/dist/utils/uniq.d.ts +2 -0
  236. package/dist/utils/uniq.d.ts.map +1 -0
  237. package/dist/utils/uniq.js +4 -0
  238. package/dist/utils/uniq.js.map +1 -0
  239. package/dist/utils/wrapError.d.ts +10 -0
  240. package/dist/utils/wrapError.d.ts.map +1 -0
  241. package/dist/utils/wrapError.js +9 -0
  242. package/dist/utils/wrapError.js.map +1 -0
  243. package/package.json +58 -0
  244. package/src/DivKit.tsx +542 -0
  245. package/src/actions/array.ts +170 -0
  246. package/src/actions/copyToClipboard.ts +82 -0
  247. package/src/actions/dict.ts +71 -0
  248. package/src/actions/index.ts +11 -0
  249. package/src/actions/updateStructure.ts +134 -0
  250. package/src/components/DivComponent.tsx +75 -0
  251. package/src/components/README.md +230 -0
  252. package/src/components/container/DivContainer.tsx +222 -0
  253. package/src/components/container/index.ts +2 -0
  254. package/src/components/image/DivImage.tsx +172 -0
  255. package/src/components/image/index.ts +2 -0
  256. package/src/components/index.ts +20 -0
  257. package/src/components/state/DivState.tsx +146 -0
  258. package/src/components/state/index.ts +2 -0
  259. package/src/components/text/DivText.tsx +186 -0
  260. package/src/components/text/index.ts +2 -0
  261. package/src/components/utilities/Outer.tsx +239 -0
  262. package/src/components/utilities/README.md +175 -0
  263. package/src/components/utilities/Unknown.tsx +60 -0
  264. package/src/components/utilities/index.ts +4 -0
  265. package/src/context/ActionContext.tsx +37 -0
  266. package/src/context/DivKitContext.tsx +54 -0
  267. package/src/context/EnabledContext.tsx +50 -0
  268. package/src/context/StateContext.tsx +75 -0
  269. package/src/context/index.ts +33 -0
  270. package/src/expressions/ast.d.ts +101 -0
  271. package/src/expressions/bigint.ts +38 -0
  272. package/src/expressions/const.ts +16 -0
  273. package/src/expressions/eval.ts +669 -0
  274. package/src/expressions/expressions.peggy +235 -0
  275. package/src/expressions/expressions.ts +2854 -0
  276. package/src/expressions/funcs/array.ts +412 -0
  277. package/src/expressions/funcs/colors.ts +100 -0
  278. package/src/expressions/funcs/customFuncs.ts +139 -0
  279. package/src/expressions/funcs/datetime.ts +232 -0
  280. package/src/expressions/funcs/dict.ts +207 -0
  281. package/src/expressions/funcs/funcs.ts +323 -0
  282. package/src/expressions/funcs/index.ts +23 -0
  283. package/src/expressions/funcs/interval.ts +76 -0
  284. package/src/expressions/funcs/math.ts +395 -0
  285. package/src/expressions/funcs/std.ts +392 -0
  286. package/src/expressions/funcs/stored.ts +62 -0
  287. package/src/expressions/funcs/strings.ts +200 -0
  288. package/src/expressions/funcs/trigonometry.ts +108 -0
  289. package/src/expressions/json.ts +367 -0
  290. package/src/expressions/parserCache.ts +32 -0
  291. package/src/expressions/simpleUnescapeString.ts +57 -0
  292. package/src/expressions/utils.ts +271 -0
  293. package/src/expressions/variable.ts +429 -0
  294. package/src/expressions/walk.ts +43 -0
  295. package/src/hooks/README.md +265 -0
  296. package/src/hooks/index.ts +28 -0
  297. package/src/hooks/useAction.ts +152 -0
  298. package/src/hooks/useDerivedFromVars.ts +187 -0
  299. package/src/hooks/useVariable.ts +157 -0
  300. package/src/index.ts +97 -0
  301. package/src/stores/createObservable.ts +64 -0
  302. package/src/types/alignment.d.ts +13 -0
  303. package/src/types/background.d.ts +71 -0
  304. package/src/types/base.d.ts +224 -0
  305. package/src/types/border.d.ts +46 -0
  306. package/src/types/componentContext.d.ts +98 -0
  307. package/src/types/container.d.ts +40 -0
  308. package/src/types/edgeInserts.d.ts +9 -0
  309. package/src/types/general.d.ts +3 -0
  310. package/src/types/image.d.ts +33 -0
  311. package/src/types/imageScale.d.ts +1 -0
  312. package/src/types/layoutParams.d.ts +27 -0
  313. package/src/types/sizes.d.ts +37 -0
  314. package/src/types/state.d.ts +19 -0
  315. package/src/types/text.d.ts +126 -0
  316. package/src/utils/applyTemplate.ts +145 -0
  317. package/src/utils/correctColor.ts +102 -0
  318. package/src/utils/escapeRegExp.ts +3 -0
  319. package/src/utils/formatDate.ts +385 -0
  320. package/src/utils/padLeft.ts +6 -0
  321. package/src/utils/uniq.ts +3 -0
  322. package/src/utils/wrapError.ts +21 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyToClipboard.js","sourceRoot":"","sources":["../../src/actions/copyToClipboard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU/C,iEAAiE;AACjE,IAAI,SAAyC,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,eAAoC;IAC9D,IAAI,eAAe,EAAE,CAAC;QAClB,SAAS,GAAG,eAAe,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kDAAkD;IAClD,IAAI,CAAC;QACD,mEAAmE;QACnE,8DAA8D;QAC9D,SAAS,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC,OAAO,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACL,iCAAiC;QACjC,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC3B,QAAuC,EACvC,WAAgD;IAEhD,IAAI,CAAC,CACD,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC;QAClG,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,CAChD,EAAE,CAAC;QACA,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAAE;YAC9C,UAAU,EAAE;gBACR,MAAM,EAAE,WAAW;aACtB;SACJ,CAAC,CAAC,CAAC;QACJ,OAAO;IACX,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,aAAa,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,qEAAqE,CAAC,EAAE;YACjG,UAAU,EAAE;gBACR,MAAM,EAAE,WAAW;aACtB;SACJ,CAAC,CAAC,CAAC;QACJ,OAAO;IACX,CAAC;IAED,IAAI,CAAC;QACD,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,EAAE;YAC7D,UAAU,EAAE;gBACR,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC;aAC7B;SACJ,CAAC,CAAC,CAAC;IACR,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ActionDictSetValue, WrappedError } from '../../typings/common';
2
+ import type { Variable } from '../../typings/variables';
3
+ import type { MaybeMissing } from '../expressions/json';
4
+ import type { ComponentContext } from '../types/componentContext';
5
+ export declare function dictSetValue(componentContext: ComponentContext | undefined, variables: Map<string, Variable>, logError: (error: WrappedError) => void, actionTyped: MaybeMissing<ActionDictSetValue>): void;
6
+ //# sourceMappingURL=dict.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dict.d.ts","sourceRoot":"","sources":["../../src/actions/dict.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,wBAAgB,YAAY,CACxB,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,EAC9C,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,EACvC,WAAW,EAAE,YAAY,CAAC,kBAAkB,CAAC,GAC9C,IAAI,CA0DN"}
@@ -0,0 +1,58 @@
1
+ import { convertTypedValue } from '../expressions/utils';
2
+ import { wrapError } from '../utils/wrapError';
3
+ export function dictSetValue(componentContext, variables, logError, actionTyped) {
4
+ const { variable_name: name, key, value } = actionTyped;
5
+ if (typeof key !== 'string') {
6
+ logError(wrapError(new Error('Incorrect dict_set_value action'), {
7
+ additional: {
8
+ name
9
+ }
10
+ }));
11
+ return;
12
+ }
13
+ if (!name) {
14
+ logError(wrapError(new Error(`Incorrect ${actionTyped.type} action`), {
15
+ additional: {
16
+ name
17
+ }
18
+ }));
19
+ return;
20
+ }
21
+ if (value && !value.type) {
22
+ logError(wrapError(new Error('Incorrect value type'), {
23
+ additional: {
24
+ name
25
+ }
26
+ }));
27
+ }
28
+ const variableInstance = componentContext?.getVariable(name) || variables.get(name);
29
+ if (!variableInstance) {
30
+ logError(wrapError(new Error('Cannot find variable'), {
31
+ additional: {
32
+ name
33
+ }
34
+ }));
35
+ return;
36
+ }
37
+ const type = variableInstance.getType();
38
+ if (type === 'dict') {
39
+ const dict = variableInstance.getValue();
40
+ const newDict = { ...dict };
41
+ if (value) {
42
+ newDict[key] = convertTypedValue(value);
43
+ }
44
+ else {
45
+ delete newDict[key];
46
+ }
47
+ variableInstance.setValue(newDict);
48
+ }
49
+ else {
50
+ logError(wrapError(new Error('Trying to set value into the non-dict'), {
51
+ additional: {
52
+ name,
53
+ type
54
+ }
55
+ }));
56
+ }
57
+ }
58
+ //# sourceMappingURL=dict.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dict.js","sourceRoot":"","sources":["../../src/actions/dict.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,UAAU,YAAY,CACxB,gBAA8C,EAC9C,SAAgC,EAChC,QAAuC,EACvC,WAA6C;IAE7C,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;IAExD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1B,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,EAAE;YAC7D,UAAU,EAAE;gBACR,IAAI;aACP;SACJ,CAAC,CAAC,CAAC;QACJ,OAAO;IACX,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,aAAa,WAAW,CAAC,IAAI,SAAS,CAAC,EAAE;YAClE,UAAU,EAAE;gBACR,IAAI;aACP;SACJ,CAAC,CAAC,CAAC;QACJ,OAAO;IACX,CAAC;IAED,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACvB,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,EAAE;YAClD,UAAU,EAAE;gBACR,IAAI;aACP;SACJ,CAAC,CAAC,CAAC;IACR,CAAC;IAED,MAAM,gBAAgB,GAAG,gBAAgB,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEpF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,EAAE;YAClD,UAAU,EAAE;gBACR,IAAI;aACP;SACJ,CAAC,CAAC,CAAC;QACJ,OAAO;IACX,CAAC;IAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC;IACxC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,EAA6B,CAAC;QACpE,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAC5B,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACJ,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QACD,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACJ,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,EAAE;YACnE,UAAU,EAAE;gBACR,IAAI;gBACJ,IAAI;aACP;SACJ,CAAC,CAAC,CAAC;IACR,CAAC;AACL,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Action handlers for DivKit React Native
3
+ *
4
+ * These handlers execute typed actions from DivKit JSON.
5
+ * Ported from Web implementation with React Native adaptations.
6
+ */
7
+ export { arrayInsert, arrayRemove, arraySet } from './array';
8
+ export { dictSetValue } from './dict';
9
+ export { copyToClipboard, initClipboard } from './copyToClipboard';
10
+ export { updateStructure } from './updateStructure';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Action handlers for DivKit React Native
3
+ *
4
+ * These handlers execute typed actions from DivKit JSON.
5
+ * Ported from Web implementation with React Native adaptations.
6
+ */
7
+ export { arrayInsert, arrayRemove, arraySet } from './array';
8
+ export { dictSetValue } from './dict';
9
+ export { copyToClipboard, initClipboard } from './copyToClipboard';
10
+ export { updateStructure } from './updateStructure';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ActionUpdateStructure, WrappedError } from '../../typings/common';
2
+ import type { Variable } from '../../typings/variables';
3
+ import type { MaybeMissing } from '../expressions/json';
4
+ import type { ComponentContext } from '../types/componentContext';
5
+ export declare function updateStructure(componentContext: ComponentContext | undefined, variables: Map<string, Variable>, logError: (error: WrappedError) => void, actionTyped: MaybeMissing<ActionUpdateStructure>): void;
6
+ //# sourceMappingURL=updateStructure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateStructure.d.ts","sourceRoot":"","sources":["../../src/actions/updateStructure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,wBAAgB,eAAe,CAC3B,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,EAC9C,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,EACvC,WAAW,EAAE,YAAY,CAAC,qBAAqB,CAAC,GACjD,IAAI,CAyHN"}
@@ -0,0 +1,116 @@
1
+ import { convertTypedValue } from '../expressions/utils';
2
+ import { wrapError } from '../utils/wrapError';
3
+ export function updateStructure(componentContext, variables, logError, actionTyped) {
4
+ const { variable_name: name, path, value } = actionTyped;
5
+ if (!value?.value) {
6
+ logError(wrapError(new Error('Missing value for an action'), {
7
+ additional: {
8
+ name
9
+ }
10
+ }));
11
+ return;
12
+ }
13
+ if (typeof path !== 'string' || !path || path.charAt(0) === '/' || path.charAt(path.length - 1) === '/') {
14
+ logError(wrapError(new Error(`Value '${path}' for key 'path' is not valid`), {
15
+ additional: {
16
+ name
17
+ }
18
+ }));
19
+ return;
20
+ }
21
+ if (!name) {
22
+ logError(wrapError(new Error(`Incorrect ${actionTyped.type} action`), {
23
+ additional: {
24
+ name
25
+ }
26
+ }));
27
+ return;
28
+ }
29
+ const variableInstance = componentContext?.getVariable(name) || variables.get(name);
30
+ if (!variableInstance) {
31
+ logError(wrapError(new Error('Cannot find variable'), {
32
+ additional: {
33
+ name
34
+ }
35
+ }));
36
+ return;
37
+ }
38
+ const type = variableInstance.getType();
39
+ if (type === 'dict' || type === 'array') {
40
+ const obj = variableInstance.getValue();
41
+ const processed = path.replace(/\/+/g, '/');
42
+ if (processed === '/') {
43
+ logError(wrapError(new Error(`Value '${path}' for key 'path' is not valid`), {
44
+ additional: {
45
+ name,
46
+ type,
47
+ path
48
+ }
49
+ }));
50
+ return;
51
+ }
52
+ const parts = processed.split('/');
53
+ const newObj = type === 'array' ? obj.slice() : { ...obj };
54
+ let temp = newObj;
55
+ for (let i = 0; i < parts.length; ++i) {
56
+ const part = parts[i];
57
+ if (!part) {
58
+ logError(wrapError(new Error('Path is empty'), {
59
+ additional: {
60
+ name,
61
+ type,
62
+ path
63
+ }
64
+ }));
65
+ return;
66
+ }
67
+ if (!temp || typeof temp !== 'object') {
68
+ logError(wrapError(new Error(`Element with path '${parts.slice(0, i).join('/')}' is not ${temp === undefined ? 'found' : 'a structure'}`), {
69
+ additional: {
70
+ name,
71
+ type,
72
+ path
73
+ }
74
+ }));
75
+ return;
76
+ }
77
+ if (Array.isArray(temp)) {
78
+ const int = Number(part);
79
+ if (Number.isNaN(int)) {
80
+ logError(wrapError(new Error(`Unable to use '${part}' as array index`), {
81
+ additional: {
82
+ name,
83
+ type,
84
+ path
85
+ }
86
+ }));
87
+ return;
88
+ }
89
+ if (i + 1 === parts.length && (int < 0 || int > temp.length)) {
90
+ logError(wrapError(new Error(`Position '${int}' is out of array bounds`), {
91
+ additional: {
92
+ name,
93
+ type,
94
+ path
95
+ }
96
+ }));
97
+ return;
98
+ }
99
+ }
100
+ if (i + 1 < parts.length) {
101
+ temp = temp[part];
102
+ }
103
+ }
104
+ temp[parts[parts.length - 1]] = convertTypedValue(value);
105
+ variableInstance.setValue(newObj);
106
+ }
107
+ else {
108
+ logError(wrapError(new Error('Action requires array or dictionary variable'), {
109
+ additional: {
110
+ name,
111
+ type
112
+ }
113
+ }));
114
+ }
115
+ }
116
+ //# sourceMappingURL=updateStructure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateStructure.js","sourceRoot":"","sources":["../../src/actions/updateStructure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import type { ComponentContext } from '../types/componentContext';
3
+ import type { DivBaseData } from '../types/base';
4
+ export interface DivComponentProps {
5
+ componentContext: ComponentContext<DivBaseData>;
6
+ }
7
+ /**
8
+ * DivComponent - Universal component router
9
+ * Routes to the appropriate component based on the `type` field
10
+ *
11
+ * MVP Components:
12
+ * - text: DivText
13
+ * - container: DivContainer
14
+ * - image: DivImage
15
+ * - gif: DivImage (treated as image)
16
+ * - state: DivState
17
+ *
18
+ * Deferred for post-MVP:
19
+ * - gallery, pager, tabs
20
+ * - slider, indicator
21
+ * - input, select, switch
22
+ * - video, custom
23
+ * - separator
24
+ * - grid
25
+ *
26
+ * Based on Web component resolution logic
27
+ */
28
+ export declare function DivComponent({ componentContext }: DivComponentProps): React.JSX.Element;
29
+ //# sourceMappingURL=DivComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DivComponent.d.ts","sourceRoot":"","sources":["../../src/components/DivComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAOjD,MAAM,WAAW,iBAAiB;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,qBAwCnE"}
@@ -0,0 +1,62 @@
1
+ import React from 'react';
2
+ import { DivText } from './text';
3
+ import { DivContainer } from './container';
4
+ import { DivImage } from './image';
5
+ import { DivState } from './state';
6
+ import { Unknown } from './utilities/Unknown';
7
+ /**
8
+ * DivComponent - Universal component router
9
+ * Routes to the appropriate component based on the `type` field
10
+ *
11
+ * MVP Components:
12
+ * - text: DivText
13
+ * - container: DivContainer
14
+ * - image: DivImage
15
+ * - gif: DivImage (treated as image)
16
+ * - state: DivState
17
+ *
18
+ * Deferred for post-MVP:
19
+ * - gallery, pager, tabs
20
+ * - slider, indicator
21
+ * - input, select, switch
22
+ * - video, custom
23
+ * - separator
24
+ * - grid
25
+ *
26
+ * Based on Web component resolution logic
27
+ */
28
+ export function DivComponent({ componentContext }) {
29
+ const { json } = componentContext;
30
+ if (!json || !json.type) {
31
+ return <Unknown type={json?.type || 'undefined'}/>;
32
+ }
33
+ // Route to appropriate component based on type
34
+ switch (json.type) {
35
+ case 'text':
36
+ return <DivText componentContext={componentContext}/>;
37
+ case 'container':
38
+ return <DivContainer componentContext={componentContext}/>;
39
+ case 'image':
40
+ case 'gif':
41
+ return <DivImage componentContext={componentContext}/>;
42
+ case 'state':
43
+ return <DivState componentContext={componentContext}/>;
44
+ // Future components (post-MVP)
45
+ case 'gallery':
46
+ case 'pager':
47
+ case 'tabs':
48
+ case 'slider':
49
+ case 'indicator':
50
+ case 'input':
51
+ case 'select':
52
+ case 'switch':
53
+ case 'video':
54
+ case 'custom':
55
+ case 'separator':
56
+ case 'grid':
57
+ return <Unknown type={json.type}/>;
58
+ default:
59
+ return <Unknown type={json.type}/>;
60
+ }
61
+ }
62
+ //# sourceMappingURL=DivComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DivComponent.js","sourceRoot":"","sources":["../../src/components/DivComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAM9C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,gBAAgB,EAAqB;IAChE,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC;IAElC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,WAAW,CAAC,EAAG,CAAC;IACxD,CAAC;IAED,+CAA+C;IAC/C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,MAAM;YACP,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,gBAAuB,CAAC,EAAG,CAAC;QAElE,KAAK,WAAW;YACZ,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,gBAAuB,CAAC,EAAG,CAAC;QAEvE,KAAK,OAAO,CAAC;QACb,KAAK,KAAK;YACN,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,gBAAuB,CAAC,EAAG,CAAC;QAEnE,KAAK,OAAO;YACR,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,gBAAuB,CAAC,EAAG,CAAC;QAEnE,+BAA+B;QAC/B,KAAK,SAAS,CAAC;QACf,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW,CAAC;QACjB,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW,CAAC;QACjB,KAAK,MAAM;YACP,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAG,CAAC;QAExC;YACI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAG,CAAC;IAC5C,CAAC;AACL,CAAC"}
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import type { ComponentContext } from '../../types/componentContext';
3
+ import type { DivContainerData } from '../../types/container';
4
+ export interface DivContainerProps {
5
+ componentContext: ComponentContext<DivContainerData>;
6
+ }
7
+ /**
8
+ * DivContainer component - renders a flex container with child items
9
+ * MVP implementation with basic features:
10
+ * - Vertical/horizontal/overlap orientation
11
+ * - Content alignment (horizontal & vertical)
12
+ * - Item spacing (gap)
13
+ * - Flex layout with proper alignment
14
+ *
15
+ * Deferred for post-MVP:
16
+ * - Wrap layout mode
17
+ * - Separators (show_at_start, show_between, show_at_end)
18
+ * - Line separators (for wrap mode)
19
+ * - Aspect ratio constraints
20
+ * - Item builder (dynamic items from data)
21
+ * - Clip to bounds
22
+ *
23
+ * Based on Web Container.svelte
24
+ */
25
+ export declare function DivContainer({ componentContext }: DivContainerProps): React.JSX.Element;
26
+ //# sourceMappingURL=DivContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DivContainer.d.ts","sourceRoot":"","sources":["../../../src/components/container/DivContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAwB,MAAM,uBAAuB,CAAC;AAOpF,MAAM,WAAW,iBAAiB;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;CACxD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,qBA4HnE"}
@@ -0,0 +1,172 @@
1
+ import React, { useMemo } from 'react';
2
+ import { View } from 'react-native';
3
+ import { Outer } from '../utilities/Outer';
4
+ import { DivComponent } from '../DivComponent';
5
+ import { useDerivedFromVarsSimple } from '../../hooks/useDerivedFromVars';
6
+ import { useDivKitContext } from '../../context/DivKitContext';
7
+ /**
8
+ * DivContainer component - renders a flex container with child items
9
+ * MVP implementation with basic features:
10
+ * - Vertical/horizontal/overlap orientation
11
+ * - Content alignment (horizontal & vertical)
12
+ * - Item spacing (gap)
13
+ * - Flex layout with proper alignment
14
+ *
15
+ * Deferred for post-MVP:
16
+ * - Wrap layout mode
17
+ * - Separators (show_at_start, show_between, show_at_end)
18
+ * - Line separators (for wrap mode)
19
+ * - Aspect ratio constraints
20
+ * - Item builder (dynamic items from data)
21
+ * - Clip to bounds
22
+ *
23
+ * Based on Web Container.svelte
24
+ */
25
+ export function DivContainer({ componentContext }) {
26
+ const { direction } = useDivKitContext();
27
+ const { json, variables } = componentContext;
28
+ // Reactive properties
29
+ const orientation = useDerivedFromVarsSimple(json.orientation || 'vertical', variables || new Map());
30
+ const contentAlignmentHorizontal = useDerivedFromVarsSimple(json.content_alignment_horizontal || 'start', variables || new Map());
31
+ const contentAlignmentVertical = useDerivedFromVarsSimple(json.content_alignment_vertical || 'top', variables || new Map());
32
+ const itemSpacing = useDerivedFromVarsSimple(json.item_spacing || 0, variables || new Map());
33
+ // Build container style
34
+ const containerStyle = useMemo(() => {
35
+ const style = {
36
+ display: 'flex'
37
+ };
38
+ // Orientation -> flexDirection
39
+ if (orientation === 'horizontal') {
40
+ style.flexDirection = 'row';
41
+ }
42
+ else if (orientation === 'vertical') {
43
+ style.flexDirection = 'column';
44
+ }
45
+ else if (orientation === 'overlap') {
46
+ // Overlap is like CSS position: relative with absolute children
47
+ // In React Native, this is achieved differently
48
+ // For MVP, we'll use a simple approach with View
49
+ style.position = 'relative';
50
+ }
51
+ // Content alignment horizontal
52
+ // Maps to justifyContent for row, alignItems for column
53
+ if (orientation === 'horizontal') {
54
+ // Horizontal orientation: content_alignment_horizontal -> justifyContent
55
+ style.justifyContent = mapContentAlignmentToJustify(contentAlignmentHorizontal, direction);
56
+ // content_alignment_vertical -> alignItems (cross axis)
57
+ style.alignItems = mapContentAlignmentToAlign(contentAlignmentVertical);
58
+ }
59
+ else if (orientation === 'vertical') {
60
+ // Vertical orientation: content_alignment_vertical -> justifyContent
61
+ style.justifyContent = mapContentAlignmentToJustify(contentAlignmentVertical, direction);
62
+ // content_alignment_horizontal -> alignItems (cross axis)
63
+ style.alignItems = mapContentAlignmentToAlign(contentAlignmentHorizontal, direction);
64
+ }
65
+ // Item spacing (gap between items)
66
+ // React Native 0.71+ supports gap property
67
+ if (itemSpacing && itemSpacing > 0 && orientation !== 'overlap') {
68
+ style.gap = itemSpacing;
69
+ }
70
+ return style;
71
+ }, [orientation, contentAlignmentHorizontal, contentAlignmentVertical, itemSpacing, direction]);
72
+ // For overlap mode, we need to position children absolutely
73
+ const childWrapperStyle = useMemo(() => {
74
+ if (orientation === 'overlap') {
75
+ return {
76
+ position: 'absolute',
77
+ top: 0,
78
+ left: 0,
79
+ right: 0,
80
+ bottom: 0
81
+ };
82
+ }
83
+ return undefined;
84
+ }, [orientation]);
85
+ // Render children
86
+ // We'll import DivComponent dynamically or assume it's available
87
+ // For now, we'll use a placeholder and fix this in the integration phase
88
+ const renderChildren = () => {
89
+ if (!json.items || json.items.length === 0) {
90
+ return null;
91
+ }
92
+ return json.items.map((item, index) => {
93
+ const childContext = componentContext.produceChildContext(item, {
94
+ path: index,
95
+ });
96
+ if (!childContext) {
97
+ return null;
98
+ }
99
+ const child = (<DivComponent key={item.id || `item-${index}`} componentContext={childContext}/>);
100
+ // Wrap in positioned View for overlap mode
101
+ if (orientation === 'overlap' && childWrapperStyle) {
102
+ return (<View key={item.id || `item-${index}`} style={childWrapperStyle}>
103
+ {child}
104
+ </View>);
105
+ }
106
+ return child;
107
+ });
108
+ };
109
+ return (<Outer componentContext={componentContext}>
110
+ <View style={containerStyle}>
111
+ {renderChildren()}
112
+ </View>
113
+ </Outer>);
114
+ }
115
+ /**
116
+ * Maps DivKit ContentAlignment to React Native justifyContent
117
+ * Used for main axis alignment
118
+ */
119
+ function mapContentAlignmentToJustify(alignment, _direction = 'ltr') {
120
+ if (!alignment)
121
+ return 'flex-start';
122
+ switch (alignment) {
123
+ case 'start':
124
+ case 'left':
125
+ case 'top':
126
+ return 'flex-start';
127
+ case 'center':
128
+ return 'center';
129
+ case 'end':
130
+ case 'right':
131
+ case 'bottom':
132
+ return 'flex-end';
133
+ case 'space-between':
134
+ return 'space-between';
135
+ case 'space-around':
136
+ return 'space-around';
137
+ case 'space-evenly':
138
+ return 'space-evenly';
139
+ default:
140
+ return 'flex-start';
141
+ }
142
+ }
143
+ /**
144
+ * Maps DivKit ContentAlignment to React Native alignItems
145
+ * Used for cross axis alignment
146
+ */
147
+ function mapContentAlignmentToAlign(alignment, _direction = 'ltr') {
148
+ if (!alignment)
149
+ return 'flex-start';
150
+ switch (alignment) {
151
+ case 'start':
152
+ case 'left':
153
+ case 'top':
154
+ return 'flex-start';
155
+ case 'center':
156
+ return 'center';
157
+ case 'end':
158
+ case 'right':
159
+ case 'bottom':
160
+ return 'flex-end';
161
+ case 'baseline':
162
+ return 'baseline';
163
+ // space-* values don't apply to cross axis
164
+ case 'space-between':
165
+ case 'space-around':
166
+ case 'space-evenly':
167
+ return 'flex-start';
168
+ default:
169
+ return 'flex-start';
170
+ }
171
+ }
172
+ //# sourceMappingURL=DivContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DivContainer.js","sourceRoot":"","sources":["../../../src/components/container/DivContainer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { DivContainer } from './DivContainer';
2
+ export type { DivContainerProps } from './DivContainer';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/container/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { DivContainer } from './DivContainer';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/container/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import type { ComponentContext } from '../../types/componentContext';
3
+ import type { DivImageData } from '../../types/image';
4
+ export interface DivImageProps {
5
+ componentContext: ComponentContext<DivImageData>;
6
+ }
7
+ /**
8
+ * DivImage component - renders images from network URLs
9
+ * MVP implementation with basic features:
10
+ * - Network image loading
11
+ * - Scaling modes (fill, fit, stretch, no_scale)
12
+ * - Placeholder color while loading
13
+ * - Content alignment (horizontal & vertical)
14
+ * - Aspect ratio
15
+ *
16
+ * Deferred for post-MVP:
17
+ * - GIF support (requires native module or library)
18
+ * - Image preview (blur-up technique)
19
+ * - Tint color and tint modes
20
+ * - Image filters (blur, etc.)
21
+ * - Appearance animations
22
+ * - High priority preview
23
+ * - Preload required flag
24
+ * - react-native-fast-image integration
25
+ *
26
+ * Based on Web Image.svelte
27
+ */
28
+ export declare function DivImage({ componentContext }: DivImageProps): React.JSX.Element;
29
+ //# sourceMappingURL=DivImage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DivImage.d.ts","sourceRoot":"","sources":["../../../src/components/image/DivImage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMtD,MAAM,WAAW,aAAa;IAC1B,gBAAgB,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;CACpD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,QAAQ,CAAC,EAAE,gBAAgB,EAAE,EAAE,aAAa,qBAyI3D"}