react-native-divkit 1.6.2 → 1.6.3

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.
@@ -1 +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;AASpF,MAAM,WAAW,iBAAiB;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;CACxD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,qBA0InE"}
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;AASpF,MAAM,WAAW,iBAAiB;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;CACxD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,qBAwJnE"}
@@ -54,6 +54,11 @@ export function DivContainer({ componentContext }) {
54
54
  }
55
55
  if (orientation === 'horizontal') {
56
56
  params.parentContainerOrientation = 'horizontal';
57
+ // If this horizontal container wraps its own content, children with default
58
+ // (match_parent) width should NOT use flexGrow — they should wrap their content too.
59
+ if (json.width?.type === 'wrap_content') {
60
+ params.parentHorizontalWrapContent = true;
61
+ }
57
62
  }
58
63
  else if (orientation === 'vertical') {
59
64
  params.parentContainerOrientation = 'vertical';
@@ -75,9 +80,15 @@ export function DivContainer({ componentContext }) {
75
80
  }
76
81
  return params;
77
82
  }, [orientation, contentAlignmentHorizontal, contentAlignmentVertical]);
78
- // For overlap mode, we need to position children absolutely
79
- const childWrapperStyle = useMemo(() => {
80
- if (orientation === 'overlap') {
83
+ // For overlap mode, build a per-child absolute wrapper style
84
+ // justifyContent / alignItems position the child within the full-area overlay
85
+ const getOverlapWrapperStyle = useMemo(() => {
86
+ if (orientation !== 'overlap')
87
+ return undefined;
88
+ return (item) => {
89
+ // Child's own alignment takes priority over container's content alignment
90
+ const alignV = item.alignment_vertical || contentAlignmentVertical || 'top';
91
+ const alignH = item.alignment_horizontal || contentAlignmentHorizontal || 'start';
81
92
  return {
82
93
  position: 'absolute',
83
94
  top: 0,
@@ -85,10 +96,11 @@ export function DivContainer({ componentContext }) {
85
96
  right: 0,
86
97
  bottom: 0,
87
98
  flexDirection: 'column',
99
+ justifyContent: mapContentAlignmentToJustify(alignV, direction),
100
+ alignItems: mapContentAlignmentToAlign(alignH, direction),
88
101
  };
89
- }
90
- return undefined;
91
- }, [orientation]);
102
+ };
103
+ }, [orientation, contentAlignmentVertical, contentAlignmentHorizontal, direction]);
92
104
  const renderChildren = () => {
93
105
  if (!json.items || json.items.length === 0) {
94
106
  return null;
@@ -101,9 +113,11 @@ export function DivContainer({ componentContext }) {
101
113
  return null;
102
114
  }
103
115
  const child = <DivComponent key={item.id || `item-${index}`} componentContext={childContext}/>;
104
- // Wrap in positioned View for overlap mode
105
- if (orientation === 'overlap' && childWrapperStyle) {
106
- return (<View key={item.id || `item-${index}`} style={childWrapperStyle}>
116
+ // Wrap in positioned View for overlap mode (all except first child).
117
+ // The first child stays in normal flow to establish the container's size;
118
+ // subsequent children are absolutely positioned on top of it.
119
+ if (orientation === 'overlap' && index > 0 && getOverlapWrapperStyle) {
120
+ return (<View key={item.id || `item-${index}`} style={getOverlapWrapperStyle(item)}>
107
121
  {child}
108
122
  </View>);
109
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DivContainer.js","sourceRoot":"","sources":["../../../src/components/container/DivContainer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DivContainer.js","sourceRoot":"","sources":["../../../src/components/container/DivContainer.tsx"],"names":[],"mappings":"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"}
@@ -6,21 +6,25 @@ export interface DivImageProps {
6
6
  }
7
7
  /**
8
8
  * DivImage component - renders images from network URLs
9
- * MVP implementation with basic features:
9
+ *
10
+ * Implemented:
10
11
  * - Network image loading
11
12
  * - Scaling modes (fill, fit, stretch, no_scale)
12
13
  * - Placeholder color while loading
13
- * - Content alignment (horizontal & vertical)
14
- * - Aspect ratio
14
+ * - content_alignment_horizontal / content_alignment_vertical
15
+ * - no_scale: exact positioning via getSize + container flex
16
+ * - fit/fill: best-effort via container flex (resizeMode always centers internally)
17
+ * - aspect: { ratio } — explicit aspect ratio
18
+ * - height: wrap_content — natural size via getSize
15
19
  *
16
20
  * Deferred for post-MVP:
17
- * - GIF support (requires native module or library)
18
- * - Image preview (blur-up technique)
21
+ * - GIF animation support (requires native module or library)
22
+ * - Image preview / blur-up (preview field)
19
23
  * - Tint color and tint modes
20
24
  * - Image filters (blur, etc.)
21
- * - Appearance animations
22
- * - High priority preview
23
- * - Preload required flag
25
+ * - Appearance animations (appearance_animation)
26
+ * - High priority preview (high_priority_preview_show)
27
+ * - Preload required (preload_required)
24
28
  * - react-native-fast-image integration
25
29
  *
26
30
  * Based on Web Image.svelte
@@ -1 +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,qBA+H3D"}
1
+ {"version":3,"file":"DivImage.d.ts","sourceRoot":"","sources":["../../../src/components/image/DivImage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQtD,MAAM,WAAW,aAAa;IAC1B,gBAAgB,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;CACpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,QAAQ,CAAC,EAAE,gBAAgB,EAAE,EAAE,aAAa,qBAiK3D"}
@@ -1,25 +1,30 @@
1
- import React, { useMemo, useState } from 'react';
1
+ import React, { useMemo, useState, useEffect } from 'react';
2
2
  import { Image, View, ActivityIndicator } from 'react-native';
3
3
  import { Outer } from '../utilities/Outer';
4
4
  import { useDerivedFromVarsSimple } from '../../hooks/useDerivedFromVars';
5
5
  import { wrapError } from '../../utils/wrapError';
6
+ import { alignHToFlex, alignVToFlex } from '../../utils/correctImageAlignment';
6
7
  /**
7
8
  * DivImage component - renders images from network URLs
8
- * MVP implementation with basic features:
9
+ *
10
+ * Implemented:
9
11
  * - Network image loading
10
12
  * - Scaling modes (fill, fit, stretch, no_scale)
11
13
  * - Placeholder color while loading
12
- * - Content alignment (horizontal & vertical)
13
- * - Aspect ratio
14
+ * - content_alignment_horizontal / content_alignment_vertical
15
+ * - no_scale: exact positioning via getSize + container flex
16
+ * - fit/fill: best-effort via container flex (resizeMode always centers internally)
17
+ * - aspect: { ratio } — explicit aspect ratio
18
+ * - height: wrap_content — natural size via getSize
14
19
  *
15
20
  * Deferred for post-MVP:
16
- * - GIF support (requires native module or library)
17
- * - Image preview (blur-up technique)
21
+ * - GIF animation support (requires native module or library)
22
+ * - Image preview / blur-up (preview field)
18
23
  * - Tint color and tint modes
19
24
  * - Image filters (blur, etc.)
20
- * - Appearance animations
21
- * - High priority preview
22
- * - Preload required flag
25
+ * - Appearance animations (appearance_animation)
26
+ * - High priority preview (high_priority_preview_show)
27
+ * - Preload required (preload_required)
23
28
  * - react-native-fast-image integration
24
29
  *
25
30
  * Based on Web Image.svelte
@@ -28,52 +33,71 @@ export function DivImage({ componentContext }) {
28
33
  const { json, variables } = componentContext;
29
34
  const [loading, setLoading] = useState(true);
30
35
  const [error, setError] = useState(false);
36
+ const [naturalSize, setNaturalSize] = useState(null);
31
37
  // Reactive properties
32
38
  const imageUrl = useDerivedFromVarsSimple(json.image_url || json.gif_url, variables || new Map());
33
39
  const scale = useDerivedFromVarsSimple(json.scale || 'fill', variables || new Map());
34
40
  const placeholderColor = useDerivedFromVarsSimple(json.placeholder_color, variables || new Map());
41
+ const contentAlignH = useDerivedFromVarsSimple(json.content_alignment_horizontal || 'center', variables || new Map());
42
+ const contentAlignV = useDerivedFromVarsSimple(json.content_alignment_vertical || 'center', variables || new Map());
43
+ const isHeightWrapContent = json.height?.type === 'wrap_content';
44
+ const aspectRatio = json.aspect?.ratio;
45
+ // Fetch natural image dimensions when needed:
46
+ // - wrap_content without explicit aspect (to set container height)
47
+ // - no_scale mode (to size Image to natural dims so container alignment works)
48
+ const needsNaturalSize = (isHeightWrapContent && !aspectRatio) || scale === 'no_scale';
49
+ useEffect(() => {
50
+ if (needsNaturalSize && imageUrl) {
51
+ Image.getSize(imageUrl, (w, h) => setNaturalSize({ width: w, height: h }), (_error) => { });
52
+ }
53
+ else {
54
+ setNaturalSize(null);
55
+ }
56
+ }, [imageUrl, needsNaturalSize]);
57
+ // Effective aspect ratio for container sizing (wrap_content case only)
58
+ const effectiveAspectRatio = aspectRatio ?? ((isHeightWrapContent && naturalSize) ? naturalSize.width / naturalSize.height : undefined);
35
59
  // Map DivKit scale to React Native resizeMode
36
60
  const resizeMode = useMemo(() => {
37
61
  switch (scale) {
38
62
  case 'fill':
39
- return 'cover'; // Fills the area, may crop
63
+ return 'cover';
40
64
  case 'fit':
41
- return 'contain'; // Fits within area, no crop
65
+ return 'contain';
42
66
  case 'stretch':
43
- return 'stretch'; // Stretches to fill, may distort
67
+ return 'stretch';
44
68
  case 'no_scale':
45
- return 'center'; // Original size, centered
69
+ return 'center';
46
70
  default:
47
71
  return 'cover';
48
72
  }
49
73
  }, [scale]);
50
- // Container style (for placeholder and loading)
74
+ // Container style
51
75
  const containerStyle = useMemo(() => {
52
76
  const style = {
53
- overflow: 'hidden'
77
+ overflow: 'hidden',
78
+ alignItems: alignHToFlex(contentAlignH),
79
+ justifyContent: alignVToFlex(contentAlignV),
54
80
  };
55
- // Placeholder background
56
81
  if (placeholderColor && loading) {
57
82
  style.backgroundColor = placeholderColor;
58
83
  }
59
- // Aspect ratio
60
- if (json.aspect?.ratio) {
61
- style.aspectRatio = json.aspect.ratio;
84
+ if (effectiveAspectRatio !== undefined) {
85
+ style.aspectRatio = effectiveAspectRatio;
62
86
  }
63
87
  return style;
64
- }, [placeholderColor, loading, json.aspect]);
88
+ }, [placeholderColor, loading, effectiveAspectRatio, contentAlignH, contentAlignV]);
65
89
  // Image style
66
90
  const imageStyle = useMemo(() => {
67
- const style = {
68
- width: '100%',
69
- height: '100%'
70
- };
71
- // Aspect ratio
72
- if (json.aspect?.ratio) {
73
- style.aspectRatio = json.aspect.ratio;
91
+ // no_scale: size to natural dimensions so container alignment has effect
92
+ if (scale === 'no_scale' && naturalSize) {
93
+ return { width: naturalSize.width, height: naturalSize.height };
74
94
  }
75
- return style;
76
- }, [json.aspect]);
95
+ // wrap_content without known size yet: zero height until getSize resolves
96
+ if (isHeightWrapContent && effectiveAspectRatio === undefined) {
97
+ return { width: '100%', height: 0 };
98
+ }
99
+ return { width: '100%', height: '100%' };
100
+ }, [scale, naturalSize, isHeightWrapContent, effectiveAspectRatio]);
77
101
  const handleLoadEnd = () => {
78
102
  setLoading(false);
79
103
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DivImage.js","sourceRoot":"","sources":["../../../src/components/image/DivImage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DivImage.js","sourceRoot":"","sources":["../../../src/components/image/DivImage.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Outer.d.ts","sourceRoot":"","sources":["../../../src/components/utilities/Outer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAgC,MAAM,OAAO,CAAC;AACvE,OAAO,EAA6B,SAAS,EAAsC,MAAM,cAAc,CAAC;AACxG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAqGpD,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW;IAC3D,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,EACvD,gBAAgB,EAChB,QAAQ,EACR,KAAK,EAAE,WAAW,EACrB,EAAE,UAAU,CAAC,CAAC,CAAC,4BAiaf"}
1
+ {"version":3,"file":"Outer.d.ts","sourceRoot":"","sources":["../../../src/components/utilities/Outer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAgC,MAAM,OAAO,CAAC;AACvE,OAAO,EAA6B,SAAS,EAAsC,MAAM,cAAc,CAAC;AACxG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAqGpD,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW;IAC3D,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,EACvD,gBAAgB,EAChB,QAAQ,EACR,KAAK,EAAE,WAAW,EACrB,EAAE,UAAU,CAAC,CAAC,CAAC,4BAqaf"}
@@ -211,10 +211,22 @@ export function Outer({ componentContext, children, style: customStyle }) {
211
211
  }
212
212
  }
213
213
  else {
214
- styles.alignSelf = 'stretch';
215
- if (!parentOrientation || parentOrientation === 'horizontal') {
216
- styles.flexGrow = 1;
217
- styles.flexShrink = 1;
214
+ // Default width = match_parent — same logic as explicit match_parent
215
+ if (parentOrientation === 'horizontal') {
216
+ if (layoutParams.parentHorizontalWrapContent) {
217
+ // match_parent inside wrap_content horizontal container = wrap content
218
+ // (can't grow into a parent that has no fixed width itself)
219
+ }
220
+ else {
221
+ // Width is main axis in row layout — use flexGrow, not alignSelf stretch
222
+ styles.flexGrow = 1;
223
+ styles.flexShrink = 1;
224
+ styles.flexBasis = 0;
225
+ }
226
+ }
227
+ else {
228
+ // Width is cross axis in column layout (or unknown) — stretch
229
+ styles.alignSelf = 'stretch';
218
230
  }
219
231
  }
220
232
  // Height
@@ -252,7 +264,8 @@ export function Outer({ componentContext, children, style: customStyle }) {
252
264
  }
253
265
  // Overlap positioning: wrapper is absolute + flexDirection: column
254
266
  if (isOverlap) {
255
- const widthType = width ? width.type : undefined;
267
+ // undefined width means match_parent (default per DivKit spec)
268
+ const widthType = width ? width.type : 'match_parent';
256
269
  const heightType = height ? height.type : undefined;
257
270
  // Horizontal: alignSelf controls cross-axis (horizontal) in column wrapper
258
271
  if (widthType === 'match_parent') {
@@ -262,20 +275,11 @@ export function Outer({ componentContext, children, style: customStyle }) {
262
275
  styles.alignSelf = effectiveHAlign;
263
276
  }
264
277
  // Vertical: main axis in column wrapper
278
+ // justifyContent on the wrapper handles positioning; only match_parent needs flexGrow
265
279
  if (heightType === 'match_parent') {
266
280
  styles.flexGrow = 1;
267
281
  styles.flexBasis = 0;
268
282
  }
269
- else {
270
- // Use margin auto trick for vertical positioning
271
- if (effectiveVAlign === 'center') {
272
- styles.marginTop = 'auto';
273
- styles.marginBottom = 'auto';
274
- }
275
- else if (effectiveVAlign === 'flex-end') {
276
- styles.marginTop = 'auto';
277
- }
278
- }
279
283
  }
280
284
  // Paddings
281
285
  if (paddings) {
@@ -1 +1 @@
1
- {"version":3,"file":"Outer.js","sourceRoot":"","sources":["../../../src/components/utilities/Outer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Outer.js","sourceRoot":"","sources":["../../../src/components/utilities/Outer.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"applyTemplate.d.ts","sourceRoot":"","sources":["../../src/utils/applyTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGrE,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,EAC3C,IAAI,EAAE,CAAC,EACP,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GACzC;IACC,IAAI,EAAE,CAAC,CAAC;IACR,eAAe,EAAE,eAAe,CAAC;CACpC,CAAC;AAuFF,wBAAgB,yBAAyB,CACrC,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GACxC,GAAG,CAmCL"}
1
+ {"version":3,"file":"applyTemplate.d.ts","sourceRoot":"","sources":["../../src/utils/applyTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGrE,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,EAC3C,IAAI,EAAE,CAAC,EACP,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GACzC;IACC,IAAI,EAAE,CAAC,CAAC;IACR,eAAe,EAAE,eAAe,CAAC;CACpC,CAAC;AAuFF,wBAAgB,yBAAyB,CACrC,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GACxC,GAAG,CAiDL"}
@@ -68,11 +68,22 @@ export function applyTemplatesRecursively(json, templates, logError) {
68
68
  return json.map(item => applyTemplatesRecursively(item, templates, logError));
69
69
  }
70
70
  let resolvedJson = json;
71
- // Attempt expansion if type matches a template
71
+ // Attempt expansion if type matches a template (loop for chained templates, like Web)
72
72
  if (json.type && templates[json.type]) {
73
73
  try {
74
- const res = applyTemplate(json, {}, templates, logError);
75
- resolvedJson = res.json;
74
+ const usedTypes = new Set([json.type]);
75
+ let current = json;
76
+ let context = {};
77
+ while (current.type && templates[current.type]) {
78
+ const res = applyTemplate(current, context, templates, logError);
79
+ current = res.json;
80
+ context = res.templateContext;
81
+ if (usedTypes.has(current.type)) {
82
+ break; // circular reference guard
83
+ }
84
+ usedTypes.add(current.type);
85
+ }
86
+ resolvedJson = current;
76
87
  }
77
88
  catch (_e) {
78
89
  // Expansion failed
@@ -1 +1 @@
1
- {"version":3,"file":"applyTemplate.js","sourceRoot":"","sources":["../../src/utils/applyTemplate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"applyTemplate.js","sourceRoot":"","sources":["../../src/utils/applyTemplate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Maps DivKit content_alignment_horizontal to React Native flex alignment.
3
+ * Analogous to web's correctImagePosition utility.
4
+ */
5
+ export declare function alignHToFlex(align: string): 'flex-start' | 'center' | 'flex-end';
6
+ /**
7
+ * Maps DivKit content_alignment_vertical to React Native flex alignment.
8
+ */
9
+ export declare function alignVToFlex(align: string): 'flex-start' | 'center' | 'flex-end';
10
+ //# sourceMappingURL=correctImageAlignment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correctImageAlignment.d.ts","sourceRoot":"","sources":["../../src/utils/correctImageAlignment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,UAAU,CAQhF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,UAAU,CAMhF"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Maps DivKit content_alignment_horizontal to React Native flex alignment.
3
+ * Analogous to web's correctImagePosition utility.
4
+ */
5
+ export function alignHToFlex(align) {
6
+ switch (align) {
7
+ case 'left':
8
+ case 'start': return 'flex-start';
9
+ case 'right':
10
+ case 'end': return 'flex-end';
11
+ default: return 'center';
12
+ }
13
+ }
14
+ /**
15
+ * Maps DivKit content_alignment_vertical to React Native flex alignment.
16
+ */
17
+ export function alignVToFlex(align) {
18
+ switch (align) {
19
+ case 'top': return 'flex-start';
20
+ case 'bottom': return 'flex-end';
21
+ default: return 'center';
22
+ }
23
+ }
24
+ //# sourceMappingURL=correctImageAlignment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correctImageAlignment.js","sourceRoot":"","sources":["../../src/utils/correctImageAlignment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,QAAQ,KAAK,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC,CAAC,OAAO,YAAY,CAAC;QAClC,KAAK,OAAO,CAAC;QACb,KAAK,KAAK,CAAC,CAAC,OAAO,UAAU,CAAC;QAC9B,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC;IAC7B,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,QAAQ,KAAK,EAAE,CAAC;QACZ,KAAK,KAAK,CAAC,CAAC,OAAO,YAAY,CAAC;QAChC,KAAK,QAAQ,CAAC,CAAC,OAAO,UAAU,CAAC;QACjC,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC;IAC7B,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-divkit",
3
- "version": "1.6.2",
3
+ "version": "1.6.3",
4
4
  "description": "DivKit renderer for React Native - Server-driven UI framework",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -81,6 +81,11 @@ export function DivContainer({ componentContext }: DivContainerProps) {
81
81
 
82
82
  if (orientation === 'horizontal') {
83
83
  params.parentContainerOrientation = 'horizontal';
84
+ // If this horizontal container wraps its own content, children with default
85
+ // (match_parent) width should NOT use flexGrow — they should wrap their content too.
86
+ if ((json as any).width?.type === 'wrap_content') {
87
+ params.parentHorizontalWrapContent = true;
88
+ }
84
89
  } else if (orientation === 'vertical') {
85
90
  params.parentContainerOrientation = 'vertical';
86
91
  }
@@ -105,9 +110,15 @@ export function DivContainer({ componentContext }: DivContainerProps) {
105
110
  return params;
106
111
  }, [orientation, contentAlignmentHorizontal, contentAlignmentVertical]);
107
112
 
108
- // For overlap mode, we need to position children absolutely
109
- const childWrapperStyle = useMemo((): ViewStyle | undefined => {
110
- if (orientation === 'overlap') {
113
+ // For overlap mode, build a per-child absolute wrapper style
114
+ // justifyContent / alignItems position the child within the full-area overlay
115
+ const getOverlapWrapperStyle = useMemo(() => {
116
+ if (orientation !== 'overlap') return undefined;
117
+
118
+ return (item: any): ViewStyle => {
119
+ // Child's own alignment takes priority over container's content alignment
120
+ const alignV: string = item.alignment_vertical || contentAlignmentVertical || 'top';
121
+ const alignH: string = item.alignment_horizontal || contentAlignmentHorizontal || 'start';
111
122
  return {
112
123
  position: 'absolute',
113
124
  top: 0,
@@ -115,10 +126,11 @@ export function DivContainer({ componentContext }: DivContainerProps) {
115
126
  right: 0,
116
127
  bottom: 0,
117
128
  flexDirection: 'column',
129
+ justifyContent: mapContentAlignmentToJustify(alignV as any, direction),
130
+ alignItems: mapContentAlignmentToAlign(alignH as any, direction),
118
131
  };
119
- }
120
- return undefined;
121
- }, [orientation]);
132
+ };
133
+ }, [orientation, contentAlignmentVertical, contentAlignmentHorizontal, direction]);
122
134
 
123
135
  const renderChildren = () => {
124
136
  if (!json.items || json.items.length === 0) {
@@ -136,10 +148,12 @@ export function DivContainer({ componentContext }: DivContainerProps) {
136
148
 
137
149
  const child = <DivComponent key={item.id || `item-${index}`} componentContext={childContext} />;
138
150
 
139
- // Wrap in positioned View for overlap mode
140
- if (orientation === 'overlap' && childWrapperStyle) {
151
+ // Wrap in positioned View for overlap mode (all except first child).
152
+ // The first child stays in normal flow to establish the container's size;
153
+ // subsequent children are absolutely positioned on top of it.
154
+ if (orientation === 'overlap' && index > 0 && getOverlapWrapperStyle) {
141
155
  return (
142
- <View key={item.id || `item-${index}`} style={childWrapperStyle}>
156
+ <View key={item.id || `item-${index}`} style={getOverlapWrapperStyle(item)}>
143
157
  {child}
144
158
  </View>
145
159
  );
@@ -1,4 +1,4 @@
1
- import React, { useMemo, useState } from 'react';
1
+ import React, { useMemo, useState, useEffect } from 'react';
2
2
  import { Image, View, ViewStyle, ImageStyle, ActivityIndicator } from 'react-native';
3
3
  import type { ComponentContext } from '../../types/componentContext';
4
4
  import type { DivImageData } from '../../types/image';
@@ -6,6 +6,8 @@ import type { ImageScale } from '../../types/imageScale';
6
6
  import { Outer } from '../utilities/Outer';
7
7
  import { useDerivedFromVarsSimple } from '../../hooks/useDerivedFromVars';
8
8
  import { wrapError } from '../../utils/wrapError';
9
+ import { alignHToFlex, alignVToFlex } from '../../utils/correctImageAlignment';
10
+
9
11
 
10
12
  export interface DivImageProps {
11
13
  componentContext: ComponentContext<DivImageData>;
@@ -13,21 +15,25 @@ export interface DivImageProps {
13
15
 
14
16
  /**
15
17
  * DivImage component - renders images from network URLs
16
- * MVP implementation with basic features:
18
+ *
19
+ * Implemented:
17
20
  * - Network image loading
18
21
  * - Scaling modes (fill, fit, stretch, no_scale)
19
22
  * - Placeholder color while loading
20
- * - Content alignment (horizontal & vertical)
21
- * - Aspect ratio
23
+ * - content_alignment_horizontal / content_alignment_vertical
24
+ * - no_scale: exact positioning via getSize + container flex
25
+ * - fit/fill: best-effort via container flex (resizeMode always centers internally)
26
+ * - aspect: { ratio } — explicit aspect ratio
27
+ * - height: wrap_content — natural size via getSize
22
28
  *
23
29
  * Deferred for post-MVP:
24
- * - GIF support (requires native module or library)
25
- * - Image preview (blur-up technique)
30
+ * - GIF animation support (requires native module or library)
31
+ * - Image preview / blur-up (preview field)
26
32
  * - Tint color and tint modes
27
33
  * - Image filters (blur, etc.)
28
- * - Appearance animations
29
- * - High priority preview
30
- * - Preload required flag
34
+ * - Appearance animations (appearance_animation)
35
+ * - High priority preview (high_priority_preview_show)
36
+ * - Preload required (preload_required)
31
37
  * - react-native-fast-image integration
32
38
  *
33
39
  * Based on Web Image.svelte
@@ -36,6 +42,7 @@ export function DivImage({ componentContext }: DivImageProps) {
36
42
  const { json, variables } = componentContext;
37
43
  const [loading, setLoading] = useState(true);
38
44
  const [error, setError] = useState(false);
45
+ const [naturalSize, setNaturalSize] = useState<{ width: number; height: number } | null>(null);
39
46
 
40
47
  // Reactive properties
41
48
  const imageUrl = useDerivedFromVarsSimple<string | undefined>(
@@ -50,55 +57,88 @@ export function DivImage({ componentContext }: DivImageProps) {
50
57
  variables || new Map()
51
58
  );
52
59
 
60
+ const contentAlignH = useDerivedFromVarsSimple<string>(
61
+ json.content_alignment_horizontal || 'center',
62
+ variables || new Map()
63
+ );
64
+
65
+ const contentAlignV = useDerivedFromVarsSimple<string>(
66
+ json.content_alignment_vertical || 'center',
67
+ variables || new Map()
68
+ );
69
+
70
+ const isHeightWrapContent = json.height?.type === 'wrap_content';
71
+ const aspectRatio = json.aspect?.ratio;
72
+
73
+ // Fetch natural image dimensions when needed:
74
+ // - wrap_content without explicit aspect (to set container height)
75
+ // - no_scale mode (to size Image to natural dims so container alignment works)
76
+ const needsNaturalSize = (isHeightWrapContent && !aspectRatio) || scale === 'no_scale';
77
+
78
+ useEffect(() => {
79
+ if (needsNaturalSize && imageUrl) {
80
+ Image.getSize(
81
+ imageUrl,
82
+ (w, h) => setNaturalSize({ width: w, height: h }),
83
+ (_error: unknown) => { /* ignore getSize errors */ }
84
+ );
85
+ } else {
86
+ setNaturalSize(null);
87
+ }
88
+ }, [imageUrl, needsNaturalSize]);
89
+
90
+ // Effective aspect ratio for container sizing (wrap_content case only)
91
+ const effectiveAspectRatio = aspectRatio ?? (
92
+ (isHeightWrapContent && naturalSize) ? naturalSize.width / naturalSize.height : undefined
93
+ );
94
+
53
95
  // Map DivKit scale to React Native resizeMode
54
96
  const resizeMode = useMemo((): ImageStyle['resizeMode'] => {
55
97
  switch (scale) {
56
98
  case 'fill':
57
- return 'cover'; // Fills the area, may crop
99
+ return 'cover';
58
100
  case 'fit':
59
- return 'contain'; // Fits within area, no crop
101
+ return 'contain';
60
102
  case 'stretch':
61
- return 'stretch'; // Stretches to fill, may distort
103
+ return 'stretch';
62
104
  case 'no_scale':
63
- return 'center'; // Original size, centered
105
+ return 'center';
64
106
  default:
65
107
  return 'cover';
66
108
  }
67
109
  }, [scale]);
68
110
 
69
- // Container style (for placeholder and loading)
111
+ // Container style
70
112
  const containerStyle = useMemo((): ViewStyle => {
71
113
  const style: ViewStyle = {
72
- overflow: 'hidden'
114
+ overflow: 'hidden',
115
+ alignItems: alignHToFlex(contentAlignH as string),
116
+ justifyContent: alignVToFlex(contentAlignV as string),
73
117
  };
74
118
 
75
- // Placeholder background
76
119
  if (placeholderColor && loading) {
77
120
  style.backgroundColor = placeholderColor;
78
121
  }
79
122
 
80
- // Aspect ratio
81
- if (json.aspect?.ratio) {
82
- style.aspectRatio = json.aspect.ratio;
123
+ if (effectiveAspectRatio !== undefined) {
124
+ style.aspectRatio = effectiveAspectRatio;
83
125
  }
84
126
 
85
127
  return style;
86
- }, [placeholderColor, loading, json.aspect]);
128
+ }, [placeholderColor, loading, effectiveAspectRatio, contentAlignH, contentAlignV]);
87
129
 
88
130
  // Image style
89
131
  const imageStyle = useMemo((): ImageStyle => {
90
- const style: ImageStyle = {
91
- width: '100%',
92
- height: '100%'
93
- };
94
-
95
- // Aspect ratio
96
- if (json.aspect?.ratio) {
97
- style.aspectRatio = json.aspect.ratio;
132
+ // no_scale: size to natural dimensions so container alignment has effect
133
+ if (scale === 'no_scale' && naturalSize) {
134
+ return { width: naturalSize.width, height: naturalSize.height };
98
135
  }
99
-
100
- return style;
101
- }, [json.aspect]);
136
+ // wrap_content without known size yet: zero height until getSize resolves
137
+ if (isHeightWrapContent && effectiveAspectRatio === undefined) {
138
+ return { width: '100%', height: 0 };
139
+ }
140
+ return { width: '100%', height: '100%' };
141
+ }, [scale, naturalSize, isHeightWrapContent, effectiveAspectRatio]);
102
142
 
103
143
  const handleLoadEnd = () => {
104
144
  setLoading(false);
@@ -265,10 +265,20 @@ export function Outer<T extends DivBaseData = DivBaseData>({
265
265
  }
266
266
  }
267
267
  } else {
268
- styles.alignSelf = 'stretch';
269
- if (!parentOrientation || parentOrientation === 'horizontal') {
270
- styles.flexGrow = 1;
271
- styles.flexShrink = 1;
268
+ // Default width = match_parent — same logic as explicit match_parent
269
+ if (parentOrientation === 'horizontal') {
270
+ if (layoutParams.parentHorizontalWrapContent) {
271
+ // match_parent inside wrap_content horizontal container = wrap content
272
+ // (can't grow into a parent that has no fixed width itself)
273
+ } else {
274
+ // Width is main axis in row layout — use flexGrow, not alignSelf stretch
275
+ styles.flexGrow = 1;
276
+ styles.flexShrink = 1;
277
+ styles.flexBasis = 0;
278
+ }
279
+ } else {
280
+ // Width is cross axis in column layout (or unknown) — stretch
281
+ styles.alignSelf = 'stretch';
272
282
  }
273
283
  }
274
284
 
@@ -305,7 +315,8 @@ export function Outer<T extends DivBaseData = DivBaseData>({
305
315
 
306
316
  // Overlap positioning: wrapper is absolute + flexDirection: column
307
317
  if (isOverlap) {
308
- const widthType = width ? (width as any).type : undefined;
318
+ // undefined width means match_parent (default per DivKit spec)
319
+ const widthType = width ? (width as any).type : 'match_parent';
309
320
  const heightType = height ? (height as any).type : undefined;
310
321
 
311
322
  // Horizontal: alignSelf controls cross-axis (horizontal) in column wrapper
@@ -316,17 +327,10 @@ export function Outer<T extends DivBaseData = DivBaseData>({
316
327
  }
317
328
 
318
329
  // Vertical: main axis in column wrapper
330
+ // justifyContent on the wrapper handles positioning; only match_parent needs flexGrow
319
331
  if (heightType === 'match_parent') {
320
332
  styles.flexGrow = 1;
321
333
  styles.flexBasis = 0;
322
- } else {
323
- // Use margin auto trick for vertical positioning
324
- if (effectiveVAlign === 'center') {
325
- styles.marginTop = 'auto';
326
- styles.marginBottom = 'auto';
327
- } else if (effectiveVAlign === 'flex-end') {
328
- styles.marginTop = 'auto';
329
- }
330
334
  }
331
335
  }
332
336
 
@@ -112,11 +112,25 @@ export function applyTemplatesRecursively(
112
112
 
113
113
  let resolvedJson = json;
114
114
 
115
- // Attempt expansion if type matches a template
115
+ // Attempt expansion if type matches a template (loop for chained templates, like Web)
116
116
  if (json.type && templates[json.type]) {
117
117
  try {
118
- const res = applyTemplate(json, {}, templates, logError);
119
- resolvedJson = res.json;
118
+ const usedTypes = new Set([json.type]);
119
+ let current = json;
120
+ let context = {};
121
+
122
+ while (current.type && templates[current.type]) {
123
+ const res = applyTemplate(current, context, templates, logError);
124
+ current = res.json;
125
+ context = res.templateContext;
126
+
127
+ if (usedTypes.has(current.type)) {
128
+ break; // circular reference guard
129
+ }
130
+ usedTypes.add(current.type);
131
+ }
132
+
133
+ resolvedJson = current;
120
134
  } catch (_e) {
121
135
  // Expansion failed
122
136
  }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Maps DivKit content_alignment_horizontal to React Native flex alignment.
3
+ * Analogous to web's correctImagePosition utility.
4
+ */
5
+ export function alignHToFlex(align: string): 'flex-start' | 'center' | 'flex-end' {
6
+ switch (align) {
7
+ case 'left':
8
+ case 'start': return 'flex-start';
9
+ case 'right':
10
+ case 'end': return 'flex-end';
11
+ default: return 'center';
12
+ }
13
+ }
14
+
15
+ /**
16
+ * Maps DivKit content_alignment_vertical to React Native flex alignment.
17
+ */
18
+ export function alignVToFlex(align: string): 'flex-start' | 'center' | 'flex-end' {
19
+ switch (align) {
20
+ case 'top': return 'flex-start';
21
+ case 'bottom': return 'flex-end';
22
+ default: return 'center';
23
+ }
24
+ }