react-native-divkit 0.1.0-alpha.3 → 0.1.0-alpha.6

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 (35) hide show
  1. package/dist/DivKit.d.ts +4 -1
  2. package/dist/DivKit.d.ts.map +1 -1
  3. package/dist/DivKit.js +35 -4
  4. package/dist/DivKit.js.map +1 -1
  5. package/dist/components/container/DivContainer.d.ts +0 -14
  6. package/dist/components/container/DivContainer.d.ts.map +1 -1
  7. package/dist/components/container/DivContainer.js +24 -34
  8. package/dist/components/container/DivContainer.js.map +1 -1
  9. package/dist/components/text/DivText.d.ts.map +1 -1
  10. package/dist/components/text/DivText.js +17 -7
  11. package/dist/components/text/DivText.js.map +1 -1
  12. package/dist/components/utilities/Outer.d.ts.map +1 -1
  13. package/dist/components/utilities/Outer.js +28 -15
  14. package/dist/components/utilities/Outer.js.map +1 -1
  15. package/dist/context/LayoutParamsContext.d.ts +4 -0
  16. package/dist/context/LayoutParamsContext.d.ts.map +1 -0
  17. package/dist/context/LayoutParamsContext.js +6 -0
  18. package/dist/context/LayoutParamsContext.js.map +1 -0
  19. package/dist/expressions/globalVariablesController.d.ts +13 -0
  20. package/dist/expressions/globalVariablesController.d.ts.map +1 -0
  21. package/dist/expressions/globalVariablesController.js +33 -0
  22. package/dist/expressions/globalVariablesController.js.map +1 -0
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +2 -0
  26. package/dist/index.js.map +1 -1
  27. package/package.json +5 -2
  28. package/src/DivKit.tsx +49 -4
  29. package/src/components/container/DivContainer.tsx +28 -34
  30. package/src/components/text/DivText.tsx +21 -7
  31. package/src/components/utilities/Outer.tsx +28 -15
  32. package/src/context/LayoutParamsContext.tsx +8 -0
  33. package/src/expressions/globalVariablesController.ts +39 -0
  34. package/src/index.ts +3 -0
  35. package/src/types/text.d.ts +4 -2
package/dist/DivKit.d.ts CHANGED
@@ -20,6 +20,7 @@
20
20
  import React from 'react';
21
21
  import { type ViewStyle } from 'react-native';
22
22
  import type { Action, DivJson, Direction } from '../typings/common';
23
+ import { GlobalVariablesController } from './expressions/globalVariablesController';
23
24
  import { type WrappedError } from './utils/wrapError';
24
25
  /**
25
26
  * Callback for logging statistics
@@ -58,11 +59,13 @@ export interface DivKitProps {
58
59
  style?: ViewStyle;
59
60
  /** Component ID (for debugging) */
60
61
  id?: string;
62
+ /** Global variables controller for sharing variables across DivKit instances */
63
+ globalVariablesController?: GlobalVariablesController;
61
64
  }
62
65
  /**
63
66
  * DivKit - Main component
64
67
  *
65
68
  * Renders DivKit JSON as React Native components
66
69
  */
67
- export declare function DivKit({ data, onStat, onCustomAction, onError, direction, platform, style, id }: DivKitProps): React.JSX.Element;
70
+ export declare function DivKit({ data, onStat, onCustomAction, onError, direction, platform, style, id, globalVariablesController }: DivKitProps): React.JSX.Element;
68
71
  //# sourceMappingURL=DivKit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DivKit.d.ts","sourceRoot":"","sources":["../src/DivKit.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAuC,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAe,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAUjF,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQjE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,uBAAuB;IACvB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvB,sCAAsC;IACtC,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB,kCAAkC;IAClC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAEtC,0BAA0B;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB,sCAAsC;IACtC,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAE/B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,mCAAmC;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,EACnB,IAAI,EACJ,MAAM,EACN,cAAc,EACd,OAAO,EACP,SAAiB,EACjB,QAAkB,EAClB,KAAK,EACL,EAAW,EACd,EAAE,WAAW,qBA2db"}
1
+ {"version":3,"file":"DivKit.d.ts","sourceRoot":"","sources":["../src/DivKit.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAe,SAAS,EAAE,MAAM,mBAAmB,CAAC;AASjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAEpF,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQjE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,uBAAuB;IACvB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvB,sCAAsC;IACtC,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB,kCAAkC;IAClC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAEtC,0BAA0B;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB,sCAAsC;IACtC,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAE/B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,mCAAmC;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,gFAAgF;IAChF,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;CACzD;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,EACnB,IAAI,EACJ,MAAM,EACN,cAAc,EACd,OAAO,EACP,SAAiB,EACjB,QAAkB,EAClB,KAAK,EACL,EAAW,EACX,yBAAyB,EAC5B,EAAE,WAAW,qBAmgBb"}
package/dist/DivKit.js CHANGED
@@ -17,13 +17,14 @@
17
17
  * - Custom components
18
18
  * - Extensions
19
19
  */
20
- import React, { useMemo, useCallback, useRef } from 'react';
20
+ import React, { useMemo, useCallback, useRef, useEffect } from 'react';
21
21
  import { View, StyleSheet } from 'react-native';
22
22
  import { DivKitContext } from './context/DivKitContext';
23
23
  import { ActionContext } from './context/ActionContext';
24
24
  import { StateContext } from './context/StateContext';
25
25
  import { DivComponent } from './components/DivComponent';
26
26
  import { createVariable } from './expressions/variable';
27
+ import { GlobalVariablesController } from './expressions/globalVariablesController';
27
28
  import { applyTemplatesRecursively } from './utils/applyTemplate';
28
29
  import { wrapError } from './utils/wrapError';
29
30
  import { arrayInsert, arrayRemove, arraySet } from './actions/array';
@@ -37,7 +38,7 @@ import { parse } from './expressions/expressions';
37
38
  *
38
39
  * Renders DivKit JSON as React Native components
39
40
  */
40
- export function DivKit({ data, onStat, onCustomAction, onError, direction = 'ltr', platform = 'touch', style, id = 'root' }) {
41
+ export function DivKit({ data, onStat, onCustomAction, onError, direction = 'ltr', platform = 'touch', style, id = 'root', globalVariablesController }) {
41
42
  const componentIdCounter = useRef(0);
42
43
  const componentsMap = useRef(new Map());
43
44
  const statesMap = useRef(new Map());
@@ -81,16 +82,33 @@ export function DivKit({ data, onStat, onCustomAction, onError, direction = 'ltr
81
82
  initialVariables: card.variables || []
82
83
  };
83
84
  }, [data, logError]);
84
- // Initialize variables
85
+ // Create or reuse variables controller
86
+ const variablesController = useMemo(() => globalVariablesController || new GlobalVariablesController(), [globalVariablesController]);
87
+ const globalVariables = variablesController.getVariables();
88
+ // Initialize variables: local (from JSON) + global, local has precedence
85
89
  const variables = useMemo(() => {
90
+ const localVariables = new Map();
91
+ // Combined map: local and global variables, with local in precedence
86
92
  const map = new Map();
93
+ // First, add global variables
94
+ for (const [varName, variable] of globalVariables) {
95
+ map.set(varName, variable);
96
+ }
97
+ // Then, add local variables (from card JSON) — they override globals
87
98
  initialVariables.forEach((varData) => {
88
99
  try {
89
100
  // Skip property variables for MVP (complex feature)
90
101
  if (varData.type === 'property') {
91
102
  return;
92
103
  }
104
+ if (localVariables.has(varData.name)) {
105
+ logError(wrapError(new Error('Duplicate variable'), {
106
+ additional: { name: varData.name }
107
+ }));
108
+ return;
109
+ }
93
110
  const variable = createVariable(varData.name, varData.type, varData.value);
111
+ localVariables.set(varData.name, variable);
94
112
  map.set(varData.name, variable);
95
113
  }
96
114
  catch (err) {
@@ -103,7 +121,20 @@ export function DivKit({ data, onStat, onCustomAction, onError, direction = 'ltr
103
121
  }
104
122
  });
105
123
  return map;
106
- }, [initialVariables, logError]);
124
+ }, [initialVariables, globalVariables, logError]);
125
+ // Subscribe to new global variables added after initialization
126
+ useEffect(() => {
127
+ const store = variablesController.getLastAddedVariableStore();
128
+ const unsubscribe = store.subscribe((newVarName) => {
129
+ if (newVarName && !variables.has(newVarName)) {
130
+ const varInstance = globalVariables.get(newVarName);
131
+ if (varInstance) {
132
+ variables.set(newVarName, varInstance);
133
+ }
134
+ }
135
+ });
136
+ return unsubscribe;
137
+ }, [variablesController, variables, globalVariables]);
107
138
  // Generate unique component IDs
108
139
  const genId = useCallback((key) => {
109
140
  return `${key}_${componentIdCounter.current++}`;
@@ -1 +1 @@
1
- {"version":3,"file":"DivKit.js","sourceRoot":"","sources":["../src/DivKit.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DivKit.js","sourceRoot":"","sources":["../src/DivKit.tsx"],"names":[],"mappings":"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"}
@@ -6,20 +6,6 @@ export interface DivContainerProps {
6
6
  }
7
7
  /**
8
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
9
  * Based on Web Container.svelte
24
10
  */
25
11
  export declare function DivContainer({ componentContext }: DivContainerProps): React.JSX.Element;
@@ -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;AAOpF,MAAM,WAAW,iBAAiB;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;CACxD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,qBAkHnE"}
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,qBAwHnE"}
@@ -4,22 +4,9 @@ import { Outer } from '../utilities/Outer';
4
4
  import { DivComponent } from '../DivComponent';
5
5
  import { useDerivedFromVarsSimple } from '../../hooks/useDerivedFromVars';
6
6
  import { useDivKitContext } from '../../context/DivKitContext';
7
+ import { LayoutParamsContext } from '../../context/LayoutParamsContext';
7
8
  /**
8
9
  * 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
10
  * Based on Web Container.svelte
24
11
  */
25
12
  export function DivContainer({ componentContext }) {
@@ -30,11 +17,10 @@ export function DivContainer({ componentContext }) {
30
17
  const contentAlignmentHorizontal = useDerivedFromVarsSimple(json.content_alignment_horizontal || 'start', variables || new Map());
31
18
  const contentAlignmentVertical = useDerivedFromVarsSimple(json.content_alignment_vertical || 'top', variables || new Map());
32
19
  const itemSpacing = useDerivedFromVarsSimple(json.item_spacing || 0, variables || new Map());
33
- // Build container style
20
+ // Build container style — passed to Outer via style prop
21
+ // Outer's View becomes the flex container directly (Background is absolute-positioned)
34
22
  const containerStyle = useMemo(() => {
35
- const style = {
36
- display: 'flex'
37
- };
23
+ const style = {};
38
24
  // Orientation -> flexDirection
39
25
  if (orientation === 'horizontal') {
40
26
  style.flexDirection = 'row';
@@ -43,32 +29,37 @@ export function DivContainer({ componentContext }) {
43
29
  style.flexDirection = 'column';
44
30
  }
45
31
  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
32
  style.position = 'relative';
50
33
  }
51
- // Content alignment horizontal
52
- // Maps to justifyContent for row, alignItems for column
34
+ // Content alignment
53
35
  if (orientation === 'horizontal') {
54
- // Horizontal orientation: content_alignment_horizontal -> justifyContent
55
36
  style.justifyContent = mapContentAlignmentToJustify(contentAlignmentHorizontal, direction);
56
- // content_alignment_vertical -> alignItems (cross axis)
57
37
  style.alignItems = mapContentAlignmentToAlign(contentAlignmentVertical);
58
38
  }
59
39
  else if (orientation === 'vertical') {
60
- // Vertical orientation: content_alignment_vertical -> justifyContent
61
40
  style.justifyContent = mapContentAlignmentToJustify(contentAlignmentVertical, direction);
62
- // content_alignment_horizontal -> alignItems (cross axis)
63
41
  style.alignItems = mapContentAlignmentToAlign(contentAlignmentHorizontal, direction);
64
42
  }
65
- // Item spacing (gap between items)
66
- // React Native 0.71+ supports gap property
43
+ // Item spacing
67
44
  if (itemSpacing && itemSpacing > 0 && orientation !== 'overlap') {
68
45
  style.gap = itemSpacing;
69
46
  }
70
47
  return style;
71
48
  }, [orientation, contentAlignmentHorizontal, contentAlignmentVertical, itemSpacing, direction]);
49
+ // LayoutParams for children — tells Outer how to handle flex sizing
50
+ const childLayoutParams = useMemo(() => {
51
+ const params = {};
52
+ if (orientation === 'overlap') {
53
+ params.overlapParent = true;
54
+ }
55
+ if (orientation === 'horizontal') {
56
+ params.parentContainerOrientation = 'horizontal';
57
+ }
58
+ else if (orientation === 'vertical') {
59
+ params.parentContainerOrientation = 'vertical';
60
+ }
61
+ return params;
62
+ }, [orientation]);
72
63
  // For overlap mode, we need to position children absolutely
73
64
  const childWrapperStyle = useMemo(() => {
74
65
  if (orientation === 'overlap') {
@@ -82,9 +73,6 @@ export function DivContainer({ componentContext }) {
82
73
  }
83
74
  return undefined;
84
75
  }, [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
76
  const renderChildren = () => {
89
77
  if (!json.items || json.items.length === 0) {
90
78
  return null;
@@ -106,8 +94,10 @@ export function DivContainer({ componentContext }) {
106
94
  return child;
107
95
  });
108
96
  };
109
- return (<Outer componentContext={componentContext}>
110
- <View style={containerStyle}>{renderChildren()}</View>
97
+ return (<Outer componentContext={componentContext} style={containerStyle}>
98
+ <LayoutParamsContext.Provider value={childLayoutParams}>
99
+ {renderChildren()}
100
+ </LayoutParamsContext.Provider>
111
101
  </Outer>);
112
102
  }
113
103
  /**
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DivText.d.ts","sourceRoot":"","sources":["../../../src/components/text/DivText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAwB,MAAM,kBAAkB,CAAC;AAK1E,MAAM,WAAW,YAAY;IACzB,gBAAgB,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,EAAE,gBAAgB,EAAE,EAAE,YAAY,qBA6IzD"}
1
+ {"version":3,"file":"DivText.d.ts","sourceRoot":"","sources":["../../../src/components/text/DivText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAsC,MAAM,kBAAkB,CAAC;AAKxF,MAAM,WAAW,YAAY;IACzB,gBAAgB,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,EAAE,gBAAgB,EAAE,EAAE,YAAY,qBA2JzD"}
@@ -1,5 +1,5 @@
1
1
  import React, { useMemo } from 'react';
2
- import { Text } from 'react-native';
2
+ import { PixelRatio, Text } from 'react-native';
3
3
  import { Outer } from '../utilities/Outer';
4
4
  import { useDerivedFromVarsSimple } from '../../hooks/useDerivedFromVars';
5
5
  import { useDivKitContext } from '../../context/DivKitContext';
@@ -31,13 +31,25 @@ export function DivText({ componentContext }) {
31
31
  const fontSize = useDerivedFromVarsSimple(json.font_size || 12, variables || new Map());
32
32
  const textColor = useDerivedFromVarsSimple(json.text_color || '#000000', variables || new Map());
33
33
  const textAlignmentHorizontal = useDerivedFromVarsSimple(json.text_alignment_horizontal || 'start', variables || new Map());
34
+ const fontSizeUnit = useDerivedFromVarsSimple(json.font_size_unit || 'sp', variables || new Map());
34
35
  const maxLines = useDerivedFromVarsSimple(json.max_lines, variables || new Map());
36
+ // Convert size value based on font_size_unit
37
+ // sp = scalable pixels (allowFontScaling handles this in RN)
38
+ // dp = density-independent pixels (RN default unit)
39
+ // px = physical pixels (need to divide by PixelRatio)
40
+ const convertSize = (value) => {
41
+ if (fontSizeUnit === 'px') {
42
+ return value / PixelRatio.get();
43
+ }
44
+ return value;
45
+ };
46
+ const allowFontScaling = fontSizeUnit === 'sp';
35
47
  // Build text style
36
48
  const textStyle = useMemo(() => {
37
49
  const style = {};
38
50
  // Font size
39
51
  if (fontSize) {
40
- style.fontSize = fontSize;
52
+ style.fontSize = convertSize(fontSize);
41
53
  }
42
54
  // Text color
43
55
  if (textColor) {
@@ -64,9 +76,7 @@ export function DivText({ componentContext }) {
64
76
  }
65
77
  // Line height
66
78
  if (json.line_height && fontSize) {
67
- // DivKit line_height is in pixels, React Native expects ratio or pixels
68
- // Convert to ratio: line_height / font_size
69
- style.lineHeight = json.line_height;
79
+ style.lineHeight = convertSize(json.line_height);
70
80
  }
71
81
  // Letter spacing
72
82
  if (json.letter_spacing !== undefined) {
@@ -109,6 +119,7 @@ export function DivText({ componentContext }) {
109
119
  return style;
110
120
  }, [
111
121
  fontSize,
122
+ fontSizeUnit,
112
123
  textColor,
113
124
  textAlignmentHorizontal,
114
125
  json.font_weight,
@@ -134,8 +145,7 @@ export function DivText({ componentContext }) {
134
145
  // Vertical alignment is handled by Outer component via alignment props
135
146
  // For text, we primarily care about horizontal alignment which is in textStyle
136
147
  return (<Outer componentContext={componentContext}>
137
- <Text style={textStyle} numberOfLines={numberOfLines} ellipsizeMode={ellipsizeMode} allowFontScaling={false} // DivKit has fixed sizes
138
- >
148
+ <Text style={textStyle} numberOfLines={numberOfLines} ellipsizeMode={ellipsizeMode} allowFontScaling={allowFontScaling}>
139
149
  {text}
140
150
  </Text>
141
151
  </Outer>);
@@ -1 +1 @@
1
- {"version":3,"file":"DivText.js","sourceRoot":"","sources":["../../../src/components/text/DivText.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DivText.js","sourceRoot":"","sources":["../../../src/components/text/DivText.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,EAAW,MAAM,OAAO,CAAC;AAClD,OAAO,EAAmB,SAAS,EAAc,MAAM,cAAc,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AASpD,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,4BAmNf"}
1
+ {"version":3,"file":"Outer.d.ts","sourceRoot":"","sources":["../../../src/components/utilities/Outer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAClD,OAAO,EAAmB,SAAS,EAAc,MAAM,cAAc,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAUpD,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,4BA+Nf"}
@@ -3,6 +3,7 @@ import { View, Pressable, StyleSheet } from 'react-native';
3
3
  import { useDerivedFromVarsSimple } from '../../hooks/useDerivedFromVars';
4
4
  import { useActionHandler, useHasActions } from '../../hooks/useAction';
5
5
  import { useDivKitContext } from '../../context/DivKitContext';
6
+ import { useLayoutParams } from '../../context/LayoutParamsContext';
6
7
  import { Background } from './Background';
7
8
  /**
8
9
  * Outer component - base wrapper for all DivKit components
@@ -12,18 +13,19 @@ import { Background } from './Background';
12
13
  */
13
14
  export function Outer({ componentContext, children, style: customStyle }) {
14
15
  const { direction } = useDivKitContext();
16
+ const layoutParams = useLayoutParams();
15
17
  const { json, variables } = componentContext;
16
18
  // Only use reactive hooks for truly dynamic properties (visibility, alpha)
17
19
  // For MVP, other properties are read directly from JSON (can be enhanced later)
18
20
  const visibility = useDerivedFromVarsSimple(json.visibility || 'visible', variables || new Map());
19
21
  const alpha = useDerivedFromVarsSimple(json.alpha !== undefined ? json.alpha : 1, variables || new Map());
20
- // Extract properties directly from JSON for MVP (non-reactive)
21
- const paddings = json.paddings;
22
- const margins = json.margins;
22
+ // Paddings and margins need expression evaluation (e.g. @{safeAreaTop})
23
+ const paddings = useDerivedFromVarsSimple(json.paddings, variables || new Map());
24
+ const margins = useDerivedFromVarsSimple(json.margins, variables || new Map());
23
25
  const background = json.background;
24
- const border = json.border;
25
- const width = json.width;
26
- const height = json.height;
26
+ const border = useDerivedFromVarsSimple(json.border, variables || new Map());
27
+ const width = useDerivedFromVarsSimple(json.width, variables || new Map());
28
+ const height = useDerivedFromVarsSimple(json.height, variables || new Map());
27
29
  // Actions - use type assertion for now (will be refined in component implementations)
28
30
  const jsonAny = json;
29
31
  const actions = jsonAny.actions || (jsonAny.action ? [jsonAny.action] : []);
@@ -44,27 +46,32 @@ export function Outer({ componentContext, children, style: customStyle }) {
44
46
  styles.opacity = Math.max(0, Math.min(1, alpha));
45
47
  }
46
48
  // Width
49
+ const parentOrientation = layoutParams.parentContainerOrientation;
47
50
  if (width) {
48
51
  const widthVal = width;
49
52
  if (widthVal.type === 'fixed') {
50
53
  styles.width = widthVal.value;
51
54
  }
52
55
  else if (widthVal.type === 'match_parent') {
53
- // Use alignSelf: 'stretch' instead of width: '100%' so that
54
- // margins are subtracted from the available space rather than
55
- // added on top of 100%, which would cause overflow.
56
56
  styles.alignSelf = 'stretch';
57
- styles.flexGrow = widthVal.weight || 1;
57
+ // flexGrow only on the main axis (horizontal parent)
58
+ if (parentOrientation === 'horizontal') {
59
+ styles.flexGrow = widthVal.weight || 1;
60
+ styles.flexShrink = 1;
61
+ }
58
62
  }
59
63
  else if (widthVal.type === 'wrap_content') {
60
64
  styles.alignSelf = 'flex-start';
61
- // React Native default is wrap_content-like for View
62
65
  }
63
66
  }
64
67
  else {
65
68
  // Default: match_parent
66
69
  styles.alignSelf = 'stretch';
67
- styles.flexGrow = 1;
70
+ // flexGrow only on the main axis (horizontal parent) or outside a container
71
+ if (!parentOrientation || parentOrientation === 'horizontal') {
72
+ styles.flexGrow = 1;
73
+ styles.flexShrink = 1;
74
+ }
68
75
  }
69
76
  // Height
70
77
  if (height) {
@@ -73,8 +80,14 @@ export function Outer({ componentContext, children, style: customStyle }) {
73
80
  styles.height = heightVal.value;
74
81
  }
75
82
  else if (heightVal.type === 'match_parent') {
76
- styles.height = '100%';
77
- styles.flexGrow = heightVal.weight || 1;
83
+ // flexGrow only on the main axis (vertical parent)
84
+ if (parentOrientation === 'vertical') {
85
+ styles.flexGrow = heightVal.weight || 1;
86
+ }
87
+ else {
88
+ // Cross axis — stretch via alignSelf or explicit height
89
+ styles.alignSelf = 'stretch';
90
+ }
78
91
  }
79
92
  // wrap_content is default in React Native
80
93
  }
@@ -190,7 +203,7 @@ export function Outer({ componentContext, children, style: customStyle }) {
190
203
  }
191
204
  }
192
205
  return styles;
193
- }, [visibility, alpha, width, height, paddings, margins, background, border, direction]);
206
+ }, [visibility, alpha, width, height, paddings, margins, background, border, direction, layoutParams]);
194
207
  const finalStyle = useMemo(() => {
195
208
  return StyleSheet.flatten([containerStyle, customStyle]);
196
209
  }, [containerStyle, customStyle]);
@@ -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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"}
@@ -0,0 +1,4 @@
1
+ import type { LayoutParams } from '../types/layoutParams';
2
+ export declare const LayoutParamsContext: import("react").Context<LayoutParams>;
3
+ export declare function useLayoutParams(): LayoutParams;
4
+ //# sourceMappingURL=LayoutParamsContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutParamsContext.d.ts","sourceRoot":"","sources":["../../src/context/LayoutParamsContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,eAAO,MAAM,mBAAmB,uCAAkC,CAAC;AAEnE,wBAAgB,eAAe,IAAI,YAAY,CAE9C"}
@@ -0,0 +1,6 @@
1
+ import { createContext, useContext } from 'react';
2
+ export const LayoutParamsContext = createContext({});
3
+ export function useLayoutParams() {
4
+ return useContext(LayoutParamsContext);
5
+ }
6
+ //# sourceMappingURL=LayoutParamsContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutParamsContext.js","sourceRoot":"","sources":["../../src/context/LayoutParamsContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGlD,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAe,EAAE,CAAC,CAAC;AAEnE,MAAM,UAAU,eAAe;IAC3B,OAAO,UAAU,CAAC,mBAAmB,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Observable } from '../stores/createObservable';
2
+ import type { Variable } from './variable';
3
+ export declare class GlobalVariablesController {
4
+ private _vars;
5
+ private _lastAddedVariable;
6
+ setVariable(variable: Variable): void;
7
+ getVariable(variableName: string): Variable | undefined;
8
+ list(): IterableIterator<Variable>;
9
+ getVariables(): Map<string, Variable>;
10
+ getLastAddedVariableStore(): Observable<string>;
11
+ }
12
+ export declare function createGlobalVariablesController(): GlobalVariablesController;
13
+ //# sourceMappingURL=globalVariablesController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalVariablesController.d.ts","sourceRoot":"","sources":["../../src/expressions/globalVariablesController.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,qBAAa,yBAAyB;IAClC,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,kBAAkB,CAAoC;IAE9D,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAWrC,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIvD,IAAI,IAAI,gBAAgB,CAAC,QAAQ,CAAC;IAIlC,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;IAIrC,yBAAyB,IAAI,UAAU,CAAC,MAAM,CAAC;CAGlD;AAED,wBAAgB,+BAA+B,IAAI,yBAAyB,CAE3E"}
@@ -0,0 +1,33 @@
1
+ import { writable } from '../stores/createObservable';
2
+ export class GlobalVariablesController {
3
+ constructor() {
4
+ this._vars = new Map();
5
+ this._lastAddedVariable = writable('');
6
+ }
7
+ setVariable(variable) {
8
+ const name = variable.getName();
9
+ if (this._vars.has(name)) {
10
+ throw new Error('Variable with the same name already exist');
11
+ }
12
+ else {
13
+ this._vars.set(name, variable);
14
+ this._lastAddedVariable.set(name);
15
+ }
16
+ }
17
+ getVariable(variableName) {
18
+ return this._vars.get(variableName);
19
+ }
20
+ list() {
21
+ return this._vars.values();
22
+ }
23
+ getVariables() {
24
+ return this._vars;
25
+ }
26
+ getLastAddedVariableStore() {
27
+ return this._lastAddedVariable;
28
+ }
29
+ }
30
+ export function createGlobalVariablesController() {
31
+ return new GlobalVariablesController();
32
+ }
33
+ //# sourceMappingURL=globalVariablesController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalVariablesController.js","sourceRoot":"","sources":["../../src/expressions/globalVariablesController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAItD,MAAM,OAAO,yBAAyB;IAAtC;QACY,UAAK,GAA0B,IAAI,GAAG,EAAE,CAAC;QACzC,uBAAkB,GAAuB,QAAQ,CAAC,EAAE,CAAC,CAAC;IA4BlE,CAAC;IA1BG,WAAW,CAAC,QAAkB;QAC1B,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEhC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC/B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,YAAoB;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,IAAI;QACA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,yBAAyB;QACrB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;CACJ;AAED,MAAM,UAAU,+BAA+B;IAC3C,OAAO,IAAI,yBAAyB,EAAE,CAAC;AAC3C,CAAC"}
package/dist/index.d.ts CHANGED
@@ -19,6 +19,7 @@ export type { DivBaseData } from './types/base';
19
19
  export type { ComponentContext } from './types/componentContext';
20
20
  export { createVariable, Variable, StringVariable, IntegerVariable, NumberVariable, BooleanVariable, ColorVariable, UrlVariable, DictVariable, ArrayVariable } from './expressions/variable';
21
21
  export type { VariableType, VariableValue } from './expressions/variable';
22
+ export { createGlobalVariablesController, GlobalVariablesController } from './expressions/globalVariablesController';
22
23
  export { useDivKitContext, DivKitContext } from './context/DivKitContext';
23
24
  export type { DivKitContextValue } from './context/DivKitContext';
24
25
  export { useDerivedFromVars, useDerivedFromVarsSimple } from './hooks/useDerivedFromVars';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG/F,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEvH,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EACH,cAAc,EACd,QAAQ,EACR,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EAChB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG1E,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE1E,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5G,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG3F,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG/F,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEvH,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EACH,cAAc,EACd,QAAQ,EACR,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EAChB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG1E,OAAO,EAAE,+BAA+B,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAGrH,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE1E,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5G,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG3F,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -16,6 +16,8 @@
16
16
  export { DivKit } from './DivKit';
17
17
  // Variables
18
18
  export { createVariable, Variable, StringVariable, IntegerVariable, NumberVariable, BooleanVariable, ColorVariable, UrlVariable, DictVariable, ArrayVariable } from './expressions/variable';
19
+ // Global variables controller
20
+ export { createGlobalVariablesController, GlobalVariablesController } from './expressions/globalVariablesController';
19
21
  // Context hooks (for advanced usage)
20
22
  export { useDivKitContext, DivKitContext } from './context/DivKitContext';
21
23
  // Hooks (for custom components)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,iBAAiB;AACjB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAUlC,YAAY;AACZ,OAAO,EACH,cAAc,EACd,QAAQ,EACR,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EAChB,MAAM,wBAAwB,CAAC;AAIhC,qCAAqC;AACrC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI1E,gCAAgC;AAChC,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5G,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE3F,6BAA6B;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,iBAAiB;AACjB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAUlC,YAAY;AACZ,OAAO,EACH,cAAc,EACd,QAAQ,EACR,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EAChB,MAAM,wBAAwB,CAAC;AAIhC,8BAA8B;AAC9B,OAAO,EAAE,+BAA+B,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAErH,qCAAqC;AACrC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI1E,gCAAgC;AAChC,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5G,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE3F,6BAA6B;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-divkit",
3
- "version": "0.1.0-alpha.3",
3
+ "version": "0.1.0-alpha.6",
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",
@@ -40,6 +40,7 @@
40
40
  "react-native-svg": "^15.15.2"
41
41
  },
42
42
  "devDependencies": {
43
+ "@babel/runtime": "^7.28.6",
43
44
  "@testing-library/react-native": "^12.0.0",
44
45
  "@types/jest": "^29.0.0",
45
46
  "@types/react": "^18.2.0",
@@ -48,12 +49,14 @@
48
49
  "@typescript-eslint/parser": "^5.59.0",
49
50
  "eslint": "^8.47.0",
50
51
  "jest": "^29.0.0",
52
+ "react": "^18.2.0",
53
+ "react-native": "^0.72.6",
51
54
  "react-test-renderer": "^18.2.0",
52
55
  "ts-jest": "^29.0.0",
53
56
  "typescript": "^5.7.0"
54
57
  },
55
58
  "repository": {
56
59
  "type": "git",
57
- "url": "https://github.com/rpulatov/react-native-divkit.git"
60
+ "url": "git+https://github.com/rpulatov/react-native-divkit.git"
58
61
  }
59
62
  }
package/src/DivKit.tsx CHANGED
@@ -18,7 +18,7 @@
18
18
  * - Extensions
19
19
  */
20
20
 
21
- import React, { useMemo, useCallback, useRef } from 'react';
21
+ import React, { useMemo, useCallback, useRef, useEffect } from 'react';
22
22
  import { View, StyleSheet, type ViewStyle } from 'react-native';
23
23
  import type { Action, DivJson, DivVariable, Direction } from '../typings/common';
24
24
  import type { DivBaseData } from './types/base';
@@ -29,6 +29,7 @@ import { ActionContext, type ActionContextValue } from './context/ActionContext'
29
29
  import { StateContext, type StateContextValue, type StateSetter } from './context/StateContext';
30
30
  import { DivComponent } from './components/DivComponent';
31
31
  import { createVariable, Variable, type VariableType } from './expressions/variable';
32
+ import { GlobalVariablesController } from './expressions/globalVariablesController';
32
33
  import { applyTemplatesRecursively } from './utils/applyTemplate';
33
34
  import { wrapError, type WrappedError } from './utils/wrapError';
34
35
  import { arrayInsert, arrayRemove, arraySet } from './actions/array';
@@ -80,6 +81,9 @@ export interface DivKitProps {
80
81
 
81
82
  /** Component ID (for debugging) */
82
83
  id?: string;
84
+
85
+ /** Global variables controller for sharing variables across DivKit instances */
86
+ globalVariablesController?: GlobalVariablesController;
83
87
  }
84
88
 
85
89
  /**
@@ -95,7 +99,8 @@ export function DivKit({
95
99
  direction = 'ltr',
96
100
  platform = 'touch',
97
101
  style,
98
- id = 'root'
102
+ id = 'root',
103
+ globalVariablesController
99
104
  }: DivKitProps) {
100
105
  const componentIdCounter = useRef(0);
101
106
  const componentsMap = useRef<Map<string, ComponentContext>>(new Map());
@@ -149,10 +154,26 @@ export function DivKit({
149
154
  };
150
155
  }, [data, logError]);
151
156
 
152
- // Initialize variables
157
+ // Create or reuse variables controller
158
+ const variablesController = useMemo(
159
+ () => globalVariablesController || new GlobalVariablesController(),
160
+ [globalVariablesController]
161
+ );
162
+
163
+ const globalVariables = variablesController.getVariables();
164
+
165
+ // Initialize variables: local (from JSON) + global, local has precedence
153
166
  const variables = useMemo(() => {
167
+ const localVariables = new Map<string, Variable>();
168
+ // Combined map: local and global variables, with local in precedence
154
169
  const map = new Map<string, Variable>();
155
170
 
171
+ // First, add global variables
172
+ for (const [varName, variable] of globalVariables) {
173
+ map.set(varName, variable);
174
+ }
175
+
176
+ // Then, add local variables (from card JSON) — they override globals
156
177
  initialVariables.forEach((varData: DivVariable) => {
157
178
  try {
158
179
  // Skip property variables for MVP (complex feature)
@@ -160,7 +181,17 @@ export function DivKit({
160
181
  return;
161
182
  }
162
183
 
184
+ if (localVariables.has(varData.name)) {
185
+ logError(
186
+ wrapError(new Error('Duplicate variable'), {
187
+ additional: { name: varData.name }
188
+ })
189
+ );
190
+ return;
191
+ }
192
+
163
193
  const variable = createVariable(varData.name, varData.type as VariableType, varData.value);
194
+ localVariables.set(varData.name, variable);
164
195
  map.set(varData.name, variable);
165
196
  } catch (err) {
166
197
  logError(
@@ -175,7 +206,21 @@ export function DivKit({
175
206
  });
176
207
 
177
208
  return map;
178
- }, [initialVariables, logError]);
209
+ }, [initialVariables, globalVariables, logError]);
210
+
211
+ // Subscribe to new global variables added after initialization
212
+ useEffect(() => {
213
+ const store = variablesController.getLastAddedVariableStore();
214
+ const unsubscribe = store.subscribe((newVarName: string) => {
215
+ if (newVarName && !variables.has(newVarName)) {
216
+ const varInstance = globalVariables.get(newVarName);
217
+ if (varInstance) {
218
+ variables.set(newVarName, varInstance);
219
+ }
220
+ }
221
+ });
222
+ return unsubscribe;
223
+ }, [variablesController, variables, globalVariables]);
179
224
 
180
225
  // Generate unique component IDs
181
226
  const genId = useCallback((key: string): string => {
@@ -3,10 +3,12 @@ import { View, ViewStyle } from 'react-native';
3
3
  import type { ComponentContext } from '../../types/componentContext';
4
4
  import type { DivContainerData, ContainerOrientation } from '../../types/container';
5
5
  import type { ContentAlignmentHorizontal, ContentAlignmentVertical } from '../../types/alignment';
6
+ import type { LayoutParams } from '../../types/layoutParams';
6
7
  import { Outer } from '../utilities/Outer';
7
8
  import { DivComponent } from '../DivComponent';
8
9
  import { useDerivedFromVarsSimple } from '../../hooks/useDerivedFromVars';
9
10
  import { useDivKitContext } from '../../context/DivKitContext';
11
+ import { LayoutParamsContext } from '../../context/LayoutParamsContext';
10
12
 
11
13
  export interface DivContainerProps {
12
14
  componentContext: ComponentContext<DivContainerData>;
@@ -14,20 +16,6 @@ export interface DivContainerProps {
14
16
 
15
17
  /**
16
18
  * DivContainer component - renders a flex container with child items
17
- * MVP implementation with basic features:
18
- * - Vertical/horizontal/overlap orientation
19
- * - Content alignment (horizontal & vertical)
20
- * - Item spacing (gap)
21
- * - Flex layout with proper alignment
22
- *
23
- * Deferred for post-MVP:
24
- * - Wrap layout mode
25
- * - Separators (show_at_start, show_between, show_at_end)
26
- * - Line separators (for wrap mode)
27
- * - Aspect ratio constraints
28
- * - Item builder (dynamic items from data)
29
- * - Clip to bounds
30
- *
31
19
  * Based on Web Container.svelte
32
20
  */
33
21
  export function DivContainer({ componentContext }: DivContainerProps) {
@@ -52,11 +40,10 @@ export function DivContainer({ componentContext }: DivContainerProps) {
52
40
 
53
41
  const itemSpacing = useDerivedFromVarsSimple<number>(json.item_spacing || 0, variables || new Map());
54
42
 
55
- // Build container style
43
+ // Build container style — passed to Outer via style prop
44
+ // Outer's View becomes the flex container directly (Background is absolute-positioned)
56
45
  const containerStyle = useMemo((): ViewStyle => {
57
- const style: ViewStyle = {
58
- display: 'flex'
59
- };
46
+ const style: ViewStyle = {};
60
47
 
61
48
  // Orientation -> flexDirection
62
49
  if (orientation === 'horizontal') {
@@ -64,28 +51,19 @@ export function DivContainer({ componentContext }: DivContainerProps) {
64
51
  } else if (orientation === 'vertical') {
65
52
  style.flexDirection = 'column';
66
53
  } else if (orientation === 'overlap') {
67
- // Overlap is like CSS position: relative with absolute children
68
- // In React Native, this is achieved differently
69
- // For MVP, we'll use a simple approach with View
70
54
  style.position = 'relative';
71
55
  }
72
56
 
73
- // Content alignment horizontal
74
- // Maps to justifyContent for row, alignItems for column
57
+ // Content alignment
75
58
  if (orientation === 'horizontal') {
76
- // Horizontal orientation: content_alignment_horizontal -> justifyContent
77
59
  style.justifyContent = mapContentAlignmentToJustify(contentAlignmentHorizontal, direction);
78
- // content_alignment_vertical -> alignItems (cross axis)
79
60
  style.alignItems = mapContentAlignmentToAlign(contentAlignmentVertical);
80
61
  } else if (orientation === 'vertical') {
81
- // Vertical orientation: content_alignment_vertical -> justifyContent
82
62
  style.justifyContent = mapContentAlignmentToJustify(contentAlignmentVertical, direction);
83
- // content_alignment_horizontal -> alignItems (cross axis)
84
63
  style.alignItems = mapContentAlignmentToAlign(contentAlignmentHorizontal, direction);
85
64
  }
86
65
 
87
- // Item spacing (gap between items)
88
- // React Native 0.71+ supports gap property
66
+ // Item spacing
89
67
  if (itemSpacing && itemSpacing > 0 && orientation !== 'overlap') {
90
68
  style.gap = itemSpacing;
91
69
  }
@@ -93,6 +71,23 @@ export function DivContainer({ componentContext }: DivContainerProps) {
93
71
  return style;
94
72
  }, [orientation, contentAlignmentHorizontal, contentAlignmentVertical, itemSpacing, direction]);
95
73
 
74
+ // LayoutParams for children — tells Outer how to handle flex sizing
75
+ const childLayoutParams = useMemo((): LayoutParams => {
76
+ const params: LayoutParams = {};
77
+
78
+ if (orientation === 'overlap') {
79
+ params.overlapParent = true;
80
+ }
81
+
82
+ if (orientation === 'horizontal') {
83
+ params.parentContainerOrientation = 'horizontal';
84
+ } else if (orientation === 'vertical') {
85
+ params.parentContainerOrientation = 'vertical';
86
+ }
87
+
88
+ return params;
89
+ }, [orientation]);
90
+
96
91
  // For overlap mode, we need to position children absolutely
97
92
  const childWrapperStyle = useMemo((): ViewStyle | undefined => {
98
93
  if (orientation === 'overlap') {
@@ -107,9 +102,6 @@ export function DivContainer({ componentContext }: DivContainerProps) {
107
102
  return undefined;
108
103
  }, [orientation]);
109
104
 
110
- // Render children
111
- // We'll import DivComponent dynamically or assume it's available
112
- // For now, we'll use a placeholder and fix this in the integration phase
113
105
  const renderChildren = () => {
114
106
  if (!json.items || json.items.length === 0) {
115
107
  return null;
@@ -140,8 +132,10 @@ export function DivContainer({ componentContext }: DivContainerProps) {
140
132
  };
141
133
 
142
134
  return (
143
- <Outer componentContext={componentContext}>
144
- <View style={containerStyle}>{renderChildren()}</View>
135
+ <Outer componentContext={componentContext} style={containerStyle}>
136
+ <LayoutParamsContext.Provider value={childLayoutParams}>
137
+ {renderChildren()}
138
+ </LayoutParamsContext.Provider>
145
139
  </Outer>
146
140
  );
147
141
  }
@@ -1,7 +1,7 @@
1
1
  import React, { useMemo } from 'react';
2
- import { Text, TextStyle } from 'react-native';
2
+ import { PixelRatio, Text, TextStyle } from 'react-native';
3
3
  import type { ComponentContext } from '../../types/componentContext';
4
- import type { DivTextData, FontWeight, Truncate } from '../../types/text';
4
+ import type { DivTextData, FontSizeUnit, FontWeight, Truncate } from '../../types/text';
5
5
  import { Outer } from '../utilities/Outer';
6
6
  import { useDerivedFromVarsSimple } from '../../hooks/useDerivedFromVars';
7
7
  import { useDivKitContext } from '../../context/DivKitContext';
@@ -46,15 +46,30 @@ export function DivText({ componentContext }: DivTextProps) {
46
46
  variables || new Map()
47
47
  );
48
48
 
49
+ const fontSizeUnit = useDerivedFromVarsSimple<FontSizeUnit>(json.font_size_unit || 'sp', variables || new Map());
50
+
49
51
  const maxLines = useDerivedFromVarsSimple<number | undefined>(json.max_lines, variables || new Map());
50
52
 
53
+ // Convert size value based on font_size_unit
54
+ // sp = scalable pixels (allowFontScaling handles this in RN)
55
+ // dp = density-independent pixels (RN default unit)
56
+ // px = physical pixels (need to divide by PixelRatio)
57
+ const convertSize = (value: number): number => {
58
+ if (fontSizeUnit === 'px') {
59
+ return value / PixelRatio.get();
60
+ }
61
+ return value;
62
+ };
63
+
64
+ const allowFontScaling = fontSizeUnit === 'sp';
65
+
51
66
  // Build text style
52
67
  const textStyle = useMemo((): TextStyle => {
53
68
  const style: TextStyle = {};
54
69
 
55
70
  // Font size
56
71
  if (fontSize) {
57
- style.fontSize = fontSize;
72
+ style.fontSize = convertSize(fontSize);
58
73
  }
59
74
 
60
75
  // Text color
@@ -84,9 +99,7 @@ export function DivText({ componentContext }: DivTextProps) {
84
99
 
85
100
  // Line height
86
101
  if (json.line_height && fontSize) {
87
- // DivKit line_height is in pixels, React Native expects ratio or pixels
88
- // Convert to ratio: line_height / font_size
89
- style.lineHeight = json.line_height;
102
+ style.lineHeight = convertSize(json.line_height);
90
103
  }
91
104
 
92
105
  // Letter spacing
@@ -131,6 +144,7 @@ export function DivText({ componentContext }: DivTextProps) {
131
144
  return style;
132
145
  }, [
133
146
  fontSize,
147
+ fontSizeUnit,
134
148
  textColor,
135
149
  textAlignmentHorizontal,
136
150
  json.font_weight,
@@ -165,7 +179,7 @@ export function DivText({ componentContext }: DivTextProps) {
165
179
  style={textStyle}
166
180
  numberOfLines={numberOfLines}
167
181
  ellipsizeMode={ellipsizeMode}
168
- allowFontScaling={false} // DivKit has fixed sizes
182
+ allowFontScaling={allowFontScaling}
169
183
  >
170
184
  {text}
171
185
  </Text>
@@ -8,6 +8,7 @@ import type { MaybeMissing } from '../../expressions/json';
8
8
  import { useDerivedFromVarsSimple } from '../../hooks/useDerivedFromVars';
9
9
  import { useActionHandler, useHasActions } from '../../hooks/useAction';
10
10
  import { useDivKitContext } from '../../context/DivKitContext';
11
+ import { useLayoutParams } from '../../context/LayoutParamsContext';
11
12
  import { Background } from './Background';
12
13
 
13
14
  export interface OuterProps<T extends DivBaseData = DivBaseData> {
@@ -28,6 +29,7 @@ export function Outer<T extends DivBaseData = DivBaseData>({
28
29
  style: customStyle
29
30
  }: OuterProps<T>) {
30
31
  const { direction } = useDivKitContext();
32
+ const layoutParams = useLayoutParams();
31
33
  const { json, variables } = componentContext;
32
34
 
33
35
  // Only use reactive hooks for truly dynamic properties (visibility, alpha)
@@ -35,13 +37,13 @@ export function Outer<T extends DivBaseData = DivBaseData>({
35
37
  const visibility = useDerivedFromVarsSimple<Visibility>(json.visibility || 'visible', variables || new Map());
36
38
  const alpha = useDerivedFromVarsSimple<number>(json.alpha !== undefined ? json.alpha : 1, variables || new Map());
37
39
 
38
- // Extract properties directly from JSON for MVP (non-reactive)
39
- const paddings = json.paddings;
40
- const margins = json.margins;
40
+ // Paddings and margins need expression evaluation (e.g. @{safeAreaTop})
41
+ const paddings = useDerivedFromVarsSimple(json.paddings, variables || new Map());
42
+ const margins = useDerivedFromVarsSimple(json.margins, variables || new Map());
41
43
  const background = json.background;
42
- const border = json.border;
43
- const width = json.width;
44
- const height = json.height;
44
+ const border = useDerivedFromVarsSimple(json.border, variables || new Map());
45
+ const width = useDerivedFromVarsSimple(json.width, variables || new Map());
46
+ const height = useDerivedFromVarsSimple(json.height, variables || new Map());
45
47
 
46
48
  // Actions - use type assertion for now (will be refined in component implementations)
47
49
  const jsonAny = json as any;
@@ -66,24 +68,30 @@ export function Outer<T extends DivBaseData = DivBaseData>({
66
68
  }
67
69
 
68
70
  // Width
71
+ const parentOrientation = layoutParams.parentContainerOrientation;
72
+
69
73
  if (width) {
70
74
  const widthVal = width as MaybeMissing<any>;
71
75
  if (widthVal.type === 'fixed') {
72
76
  styles.width = (widthVal as FixedSize).value;
73
77
  } else if (widthVal.type === 'match_parent') {
74
- // Use alignSelf: 'stretch' instead of width: '100%' so that
75
- // margins are subtracted from the available space rather than
76
- // added on top of 100%, which would cause overflow.
77
78
  styles.alignSelf = 'stretch';
78
- styles.flexGrow = (widthVal as MatchParentSize).weight || 1;
79
+ // flexGrow only on the main axis (horizontal parent)
80
+ if (parentOrientation === 'horizontal') {
81
+ styles.flexGrow = (widthVal as MatchParentSize).weight || 1;
82
+ styles.flexShrink = 1;
83
+ }
79
84
  } else if (widthVal.type === 'wrap_content') {
80
85
  styles.alignSelf = 'flex-start';
81
- // React Native default is wrap_content-like for View
82
86
  }
83
87
  } else {
84
88
  // Default: match_parent
85
89
  styles.alignSelf = 'stretch';
86
- styles.flexGrow = 1;
90
+ // flexGrow only on the main axis (horizontal parent) or outside a container
91
+ if (!parentOrientation || parentOrientation === 'horizontal') {
92
+ styles.flexGrow = 1;
93
+ styles.flexShrink = 1;
94
+ }
87
95
  }
88
96
 
89
97
  // Height
@@ -92,8 +100,13 @@ export function Outer<T extends DivBaseData = DivBaseData>({
92
100
  if (heightVal.type === 'fixed') {
93
101
  styles.height = (heightVal as FixedSize).value;
94
102
  } else if (heightVal.type === 'match_parent') {
95
- styles.height = '100%';
96
- styles.flexGrow = (heightVal as MatchParentSize).weight || 1;
103
+ // flexGrow only on the main axis (vertical parent)
104
+ if (parentOrientation === 'vertical') {
105
+ styles.flexGrow = (heightVal as MatchParentSize).weight || 1;
106
+ } else {
107
+ // Cross axis — stretch via alignSelf or explicit height
108
+ styles.alignSelf = 'stretch';
109
+ }
97
110
  }
98
111
  // wrap_content is default in React Native
99
112
  }
@@ -204,7 +217,7 @@ export function Outer<T extends DivBaseData = DivBaseData>({
204
217
  }
205
218
 
206
219
  return styles;
207
- }, [visibility, alpha, width, height, paddings, margins, background, border, direction]);
220
+ }, [visibility, alpha, width, height, paddings, margins, background, border, direction, layoutParams]);
208
221
 
209
222
  const finalStyle = useMemo(() => {
210
223
  return StyleSheet.flatten([containerStyle, customStyle]);
@@ -0,0 +1,8 @@
1
+ import { createContext, useContext } from 'react';
2
+ import type { LayoutParams } from '../types/layoutParams';
3
+
4
+ export const LayoutParamsContext = createContext<LayoutParams>({});
5
+
6
+ export function useLayoutParams(): LayoutParams {
7
+ return useContext(LayoutParamsContext);
8
+ }
@@ -0,0 +1,39 @@
1
+ import { writable } from '../stores/createObservable';
2
+ import type { Observable } from '../stores/createObservable';
3
+ import type { Variable } from './variable';
4
+
5
+ export class GlobalVariablesController {
6
+ private _vars: Map<string, Variable> = new Map();
7
+ private _lastAddedVariable: Observable<string> = writable('');
8
+
9
+ setVariable(variable: Variable): void {
10
+ const name = variable.getName();
11
+
12
+ if (this._vars.has(name)) {
13
+ throw new Error('Variable with the same name already exist');
14
+ } else {
15
+ this._vars.set(name, variable);
16
+ this._lastAddedVariable.set(name);
17
+ }
18
+ }
19
+
20
+ getVariable(variableName: string): Variable | undefined {
21
+ return this._vars.get(variableName);
22
+ }
23
+
24
+ list(): IterableIterator<Variable> {
25
+ return this._vars.values();
26
+ }
27
+
28
+ getVariables(): Map<string, Variable> {
29
+ return this._vars;
30
+ }
31
+
32
+ getLastAddedVariableStore(): Observable<string> {
33
+ return this._lastAddedVariable;
34
+ }
35
+ }
36
+
37
+ export function createGlobalVariablesController(): GlobalVariablesController {
38
+ return new GlobalVariablesController();
39
+ }
package/src/index.ts CHANGED
@@ -40,6 +40,9 @@ export {
40
40
 
41
41
  export type { VariableType, VariableValue } from './expressions/variable';
42
42
 
43
+ // Global variables controller
44
+ export { createGlobalVariablesController, GlobalVariablesController } from './expressions/globalVariablesController';
45
+
43
46
  // Context hooks (for advanced usage)
44
47
  export { useDivKitContext, DivKitContext } from './context/DivKitContext';
45
48
 
@@ -12,6 +12,8 @@ import type { FontVariationSettings } from './fontVariationSettings';
12
12
 
13
13
  export type FontWeight = 'light' | 'regular' | 'medium' | 'bold';
14
14
 
15
+ export type FontSizeUnit = 'dp' | 'sp' | 'px';
16
+
15
17
  export type LineStyle = 'none' | 'single';
16
18
 
17
19
  export type Truncate = 'none' | 'end';
@@ -19,7 +21,7 @@ export type Truncate = 'none' | 'end';
19
21
  export interface TextStyles {
20
22
  font_size?: number;
21
23
  font_family?: string;
22
- // font_size_unit
24
+ font_size_unit?: FontSizeUnit;
23
25
  font_feature_settings?: string;
24
26
  letter_spacing?: number;
25
27
  font_weight?: FontWeight;
@@ -109,7 +111,7 @@ export interface TextEllipsis {
109
111
 
110
112
  export interface DivTextData extends DivBaseData, DivActionableData, TextStyles {
111
113
  type: 'text';
112
- // font_size_unit;
114
+ font_size_unit?: FontSizeUnit;
113
115
  max_lines?: number;
114
116
  // min_hidden_lines;
115
117
  auto_ellipsize?: BooleanInt;