@developer_tribe/react-builder 1.2.19 → 1.2.21

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 (162) hide show
  1. package/dist/attribute-analyser/style/web/useExtractTextStyle.d.ts +1 -1
  2. package/dist/build-components/BIcon/BIconProps.generated.d.ts +2 -0
  3. package/dist/build-components/BackgroundImage/BackgroundImageProps.generated.d.ts +2 -0
  4. package/dist/build-components/Button/ButtonProps.generated.d.ts +2 -0
  5. package/dist/build-components/Carousel/CarouselProps.generated.d.ts +2 -0
  6. package/dist/build-components/CarouselButtons/CarouselButtonsProps.generated.d.ts +2 -0
  7. package/dist/build-components/CarouselDots/CarouselDotsProps.generated.d.ts +2 -0
  8. package/dist/build-components/CarouselItem/CarouselItemProps.generated.d.ts +2 -0
  9. package/dist/build-components/CarouselProvider/CarouselProviderProps.generated.d.ts +2 -0
  10. package/dist/build-components/CountDown/CountDownProps.generated.d.ts +2 -0
  11. package/dist/build-components/Counter/CounterProps.generated.d.ts +2 -0
  12. package/dist/build-components/Image/ImageProps.generated.d.ts +2 -0
  13. package/dist/build-components/Main/MainProps.generated.d.ts +2 -0
  14. package/dist/build-components/Onboard/OnboardProps.generated.d.ts +2 -0
  15. package/dist/build-components/OnboardButton/OnboardButtonProps.generated.d.ts +2 -0
  16. package/dist/build-components/OnboardButtons/OnboardButtonsProps.generated.d.ts +2 -0
  17. package/dist/build-components/OnboardDot/OnboardDotProps.generated.d.ts +4 -1
  18. package/dist/build-components/OnboardFooter/OnboardFooterProps.generated.d.ts +2 -0
  19. package/dist/build-components/OnboardImage/OnboardImageProps.generated.d.ts +2 -0
  20. package/dist/build-components/OnboardItem/OnboardItemProps.generated.d.ts +2 -0
  21. package/dist/build-components/OnboardProvider/OnboardProviderProps.generated.d.ts +2 -0
  22. package/dist/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.d.ts +2 -0
  23. package/dist/build-components/OnboardTitle/OnboardTitleProps.generated.d.ts +2 -0
  24. package/dist/build-components/PaywallBackground/PaywallBackgroundProps.generated.d.ts +2 -0
  25. package/dist/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.d.ts +2 -0
  26. package/dist/build-components/PaywallCounter/PaywallCounterProps.generated.d.ts +2 -0
  27. package/dist/build-components/PaywallOptions/PaywallOptionsProps.generated.d.ts +2 -0
  28. package/dist/build-components/PaywallProvider/PaywallProviderProps.generated.d.ts +2 -0
  29. package/dist/build-components/PaywallSubscribeButton/PaywallSubscribeButtonProps.generated.d.ts +2 -0
  30. package/dist/build-components/RadioButton/RadioButtonProps.generated.d.ts +2 -0
  31. package/dist/build-components/Text/TextProps.generated.d.ts +2 -0
  32. package/dist/build-components/View/View.d.ts +1 -1
  33. package/dist/build-components/View/ViewProps.generated.d.ts +2 -0
  34. package/dist/build-components/patterns.generated.d.ts +310 -10
  35. package/dist/components/BuilderButton.d.ts +3 -1
  36. package/dist/index.cjs.js +4 -4
  37. package/dist/index.cjs.js.map +1 -1
  38. package/dist/index.esm.js +4 -4
  39. package/dist/index.esm.js.map +1 -1
  40. package/dist/index.web.cjs.js +6 -6
  41. package/dist/index.web.cjs.js.map +1 -1
  42. package/dist/index.web.esm.js +4 -4
  43. package/dist/index.web.esm.js.map +1 -1
  44. package/dist/store.d.ts +2 -0
  45. package/dist/styles.css +1 -1
  46. package/dist/utils/extractTextStyle/extractTextStyle.d.ts +1 -0
  47. package/package.json +1 -1
  48. package/scripts/migrate-patterns-to-v2.mjs +13 -8
  49. package/scripts/prebuild/icon-generator.js +34 -37
  50. package/src/assets/loading_animation.json +2587 -1
  51. package/src/assets/meta.json +1 -1
  52. package/src/assets/samples/carousel-sample.json +281 -199
  53. package/src/assets/samples/getSamples.ts +16 -1
  54. package/src/assets/samples/paywall-1.json +93 -77
  55. package/src/assets/samples/paywall-2.json +77 -77
  56. package/src/assets/samples/paywall-app-delete-offer.json +353 -0
  57. package/src/assets/samples/paywall-app-open-offer.json +353 -0
  58. package/src/assets/samples/paywall-back-offer.json +353 -0
  59. package/src/assets/samples/paywall-notification-offer.json +353 -0
  60. package/src/assets/samples/simple-1.json +13 -13
  61. package/src/assets/samples/simple-2.json +97 -97
  62. package/src/assets/samples/unmigrated-builder-1.1.1.json +25 -25
  63. package/src/assets/samples/unmigrated-builder1.json +1 -1
  64. package/src/assets/samples/unvalidated-builder1.json +15 -15
  65. package/src/assets/samples/unvalidated-crash1.json +4 -4
  66. package/src/assets/samples/vpn-onboard-1.json +122 -89
  67. package/src/assets/samples/vpn-onboard-2.json +119 -86
  68. package/src/assets/samples/vpn-onboard-3.json +125 -90
  69. package/src/assets/samples/vpn-onboard-4.json +125 -90
  70. package/src/assets/samples/vpn-onboard-5.json +161 -119
  71. package/src/assets/samples/vpn-onboard-6.json +122 -92
  72. package/src/attribute-analyser/style/web/useExtractTextStyle.ts +9 -2
  73. package/src/build-components/BIcon/BIconProps.generated.ts +2 -0
  74. package/src/build-components/BackgroundImage/BackgroundImageProps.generated.ts +2 -0
  75. package/src/build-components/Button/ButtonProps.generated.ts +2 -0
  76. package/src/build-components/Carousel/CarouselProps.generated.ts +2 -0
  77. package/src/build-components/Carousel/pattern.json +2 -8
  78. package/src/build-components/CarouselButtons/CarouselButtonsProps.generated.ts +2 -0
  79. package/src/build-components/CarouselButtons/pattern.json +2 -9
  80. package/src/build-components/CarouselDots/CarouselDots.tsx +112 -12
  81. package/src/build-components/CarouselDots/CarouselDotsProps.generated.ts +2 -0
  82. package/src/build-components/CarouselDots/pattern.json +1 -3
  83. package/src/build-components/CarouselItem/CarouselItemProps.generated.ts +2 -0
  84. package/src/build-components/CarouselItem/pattern.json +1 -3
  85. package/src/build-components/CarouselProvider/CarouselProvider.tsx +5 -44
  86. package/src/build-components/CarouselProvider/CarouselProviderProps.generated.ts +2 -0
  87. package/src/build-components/CarouselProvider/pattern.json +6 -0
  88. package/src/build-components/CountDown/CountDownProps.generated.ts +2 -0
  89. package/src/build-components/CountDown/pattern.json +0 -1
  90. package/src/build-components/Counter/CounterProps.generated.ts +2 -0
  91. package/src/build-components/Counter/pattern.json +0 -1
  92. package/src/build-components/Image/Image.tsx +1 -1
  93. package/src/build-components/Image/ImageProps.generated.ts +2 -0
  94. package/src/build-components/Main/MainProps.generated.ts +2 -0
  95. package/src/build-components/Main/pattern.json +1 -3
  96. package/src/build-components/Onboard/OnboardProps.generated.ts +2 -0
  97. package/src/build-components/Onboard/pattern.json +2 -6
  98. package/src/build-components/OnboardButton/OnboardButton.tsx +0 -4
  99. package/src/build-components/OnboardButton/OnboardButtonProps.generated.ts +2 -0
  100. package/src/build-components/OnboardButton/pattern.json +9 -14
  101. package/src/build-components/OnboardButtons/OnboardButtons.tsx +17 -20
  102. package/src/build-components/OnboardButtons/OnboardButtonsProps.generated.ts +2 -0
  103. package/src/build-components/OnboardButtons/pattern.json +15 -15
  104. package/src/build-components/OnboardDot/OnboardDot.tsx +73 -42
  105. package/src/build-components/OnboardDot/OnboardDotProps.generated.ts +4 -1
  106. package/src/build-components/OnboardDot/pattern.json +28 -10
  107. package/src/build-components/OnboardFooter/OnboardFooter.tsx +63 -51
  108. package/src/build-components/OnboardFooter/OnboardFooterProps.generated.ts +2 -0
  109. package/src/build-components/OnboardFooter/pattern.json +6 -3
  110. package/src/build-components/OnboardImage/OnboardImageProps.generated.ts +2 -0
  111. package/src/build-components/OnboardImage/pattern.json +1 -5
  112. package/src/build-components/OnboardItem/OnboardItemProps.generated.ts +2 -0
  113. package/src/build-components/OnboardItem/pattern.json +3 -11
  114. package/src/build-components/OnboardProvider/OnboardProviderProps.generated.ts +2 -0
  115. package/src/build-components/OnboardProvider/pattern.json +2 -8
  116. package/src/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.ts +2 -0
  117. package/src/build-components/OnboardSubtitle/pattern.json +1 -4
  118. package/src/build-components/OnboardTitle/OnboardTitleProps.generated.ts +2 -0
  119. package/src/build-components/OnboardTitle/pattern.json +1 -4
  120. package/src/build-components/PaywallBackground/PaywallBackgroundProps.generated.ts +2 -0
  121. package/src/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.ts +2 -0
  122. package/src/build-components/PaywallCloseButton/pattern.json +1 -3
  123. package/src/build-components/PaywallCounter/PaywallCounterProps.generated.ts +2 -0
  124. package/src/build-components/PaywallCounter/pattern.json +0 -1
  125. package/src/build-components/PaywallOptions/PaywallOptions.tsx +1 -1
  126. package/src/build-components/PaywallOptions/PaywallOptionsProps.generated.ts +2 -0
  127. package/src/build-components/PaywallOptions/pattern.json +1 -3
  128. package/src/build-components/PaywallProvider/PaywallProviderProps.generated.ts +2 -0
  129. package/src/build-components/PaywallProvider/pattern.json +1 -3
  130. package/src/build-components/PaywallSubscribeButton/PaywallSubscribeButtonProps.generated.ts +2 -0
  131. package/src/build-components/PaywallSubscribeButton/pattern.json +1 -3
  132. package/src/build-components/RadioButton/RadioButtonProps.generated.ts +2 -0
  133. package/src/build-components/RadioButton/pattern.json +1 -3
  134. package/src/build-components/RenderNode.generated.tsx +1 -1
  135. package/src/build-components/Text/TextProps.generated.ts +2 -0
  136. package/src/build-components/View/View.tsx +11 -7
  137. package/src/build-components/View/ViewProps.generated.ts +2 -0
  138. package/src/build-components/View/pattern.json +8 -0
  139. package/src/build-components/patterns.generated.ts +300 -10
  140. package/src/build-components/useNode.ts +20 -4
  141. package/src/components/Builder.tsx +98 -8
  142. package/src/components/BuilderButton.tsx +39 -7
  143. package/src/components/DeviceButton.tsx +5 -1
  144. package/src/pages/DebugJsonPage.tsx +109 -1
  145. package/src/pages/ProjectDebug.tsx +0 -1
  146. package/src/pages/ProjectPage.tsx +2 -2
  147. package/src/store.ts +8 -0
  148. package/src/styles/base/_global.scss +0 -5
  149. package/src/styles/components/_editor-shell.scss +18 -3
  150. package/src/styles/components/_onboard.scss +0 -17
  151. package/src/styles/foundation/_colors.scss +1 -4
  152. package/src/styles/foundation/_typography.scss +0 -1
  153. package/src/styles/layout/_builder.scss +20 -0
  154. package/src/styles/modals/_product-presets-modal.scss +0 -2
  155. package/src/styles/utilities/_carousel.scss +0 -32
  156. package/src/utils/analyseNodeByPatterns.ts +16 -6
  157. package/src/utils/extractTextStyle/extractTextStyle.ts +47 -13
  158. package/src/utils/extractViewStyle/extractViewStyle.ts +118 -39
  159. package/src/utils/logRenderStore.ts +7 -9
  160. package/src/utils/logger.ts +1 -5
  161. package/src/utils/novaToJson.ts +7 -3
  162. package/src/utils/repairNodeKeys.ts +1 -4
@@ -4,6 +4,7 @@ import type { NodeData } from '../../types/Node';
4
4
 
5
5
  export type ResizeModeOptionType = 'cover' | 'contain' | 'stretch' | 'center';
6
6
  export type FlexDirectionOptionType = 'row' | 'column';
7
+ export type FlexWrapOptionType = 'nowrap' | 'wrap' | 'wrap-reverse';
7
8
  export type AlignItemsOptionType =
8
9
  | 'flex-start'
9
10
  | 'center'
@@ -21,6 +22,7 @@ export type PositionOptionType = 'relative' | 'absolute';
21
22
 
22
23
  export interface PaywallBackgroundStyleGenerated {
23
24
  flexDirection?: FlexDirectionOptionType;
25
+ flexWrap?: FlexWrapOptionType;
24
26
  alignItems?: AlignItemsOptionType;
25
27
  justifyContent?: JustifyContentOptionType;
26
28
  gap?: string;
@@ -4,6 +4,7 @@ import type { NodeData } from '../../types/Node';
4
4
 
5
5
  export type TextAlignOptionType = 'left' | 'center' | 'right' | 'justify';
6
6
  export type FlexDirectionOptionType = 'row' | 'column';
7
+ export type FlexWrapOptionType = 'nowrap' | 'wrap' | 'wrap-reverse';
7
8
  export type AlignItemsOptionType =
8
9
  | 'flex-start'
9
10
  | 'center'
@@ -26,6 +27,7 @@ export interface PaywallCloseButtonStyleGenerated {
26
27
  fontWeight?: string;
27
28
  textAlign?: TextAlignOptionType;
28
29
  flexDirection?: FlexDirectionOptionType;
30
+ flexWrap?: FlexWrapOptionType;
29
31
  alignItems?: AlignItemsOptionType;
30
32
  justifyContent?: JustifyContentOptionType;
31
33
  gap?: string;
@@ -10,9 +10,7 @@
10
10
  }
11
11
  },
12
12
  "meta": {
13
- "desiredParent": [
14
- ">PaywallProvider"
15
- ],
13
+ "desiredParent": [">PaywallProvider"],
16
14
  "label": "Paywall Close Button",
17
15
  "description": "Paywall Close Button component.",
18
16
  "styles": {}
@@ -4,6 +4,7 @@ import type { NodeData } from '../../types/Node';
4
4
 
5
5
  export type TextAlignOptionType = 'left' | 'center' | 'right' | 'justify';
6
6
  export type FlexDirectionOptionType = 'row' | 'column';
7
+ export type FlexWrapOptionType = 'nowrap' | 'wrap' | 'wrap-reverse';
7
8
  export type AlignItemsOptionType =
8
9
  | 'flex-start'
9
10
  | 'center'
@@ -26,6 +27,7 @@ export interface PaywallCounterStyleGenerated {
26
27
  fontWeight?: string;
27
28
  textAlign?: TextAlignOptionType;
28
29
  flexDirection?: FlexDirectionOptionType;
30
+ flexWrap?: FlexWrapOptionType;
29
31
  alignItems?: AlignItemsOptionType;
30
32
  justifyContent?: JustifyContentOptionType;
31
33
  gap?: string;
@@ -1,4 +1,4 @@
1
- import React, { useId, useMemo } from 'react';
1
+ import React, { useMemo } from 'react';
2
2
  import type { PaywallOptionsComponentProps } from './PaywallOptionsProps.generated';
3
3
  import useNode from '../useNode';
4
4
  import { useLogRender } from '../../utils/useLogRender';
@@ -3,6 +3,7 @@
3
3
  import type { NodeData } from '../../types/Node';
4
4
 
5
5
  export type FlexDirectionOptionType = 'row' | 'column';
6
+ export type FlexWrapOptionType = 'nowrap' | 'wrap' | 'wrap-reverse';
6
7
  export type AlignItemsOptionType =
7
8
  | 'flex-start'
8
9
  | 'center'
@@ -20,6 +21,7 @@ export type PositionOptionType = 'relative' | 'absolute';
20
21
 
21
22
  export interface PaywallOptionsStyleGenerated {
22
23
  flexDirection?: FlexDirectionOptionType;
24
+ flexWrap?: FlexWrapOptionType;
23
25
  alignItems?: AlignItemsOptionType;
24
26
  justifyContent?: JustifyContentOptionType;
25
27
  gap?: string;
@@ -10,9 +10,7 @@
10
10
  }
11
11
  },
12
12
  "meta": {
13
- "desiredParent": [
14
- ">PaywallProvider"
15
- ],
13
+ "desiredParent": [">PaywallProvider"],
16
14
  "label": "Paywall Options",
17
15
  "description": "Paywall options selector component.",
18
16
  "styles": {}
@@ -3,6 +3,7 @@
3
3
  import type { NodeData } from '../../types/Node';
4
4
 
5
5
  export type FlexDirectionOptionType = 'row' | 'column';
6
+ export type FlexWrapOptionType = 'nowrap' | 'wrap' | 'wrap-reverse';
6
7
  export type AlignItemsOptionType =
7
8
  | 'flex-start'
8
9
  | 'center'
@@ -20,6 +21,7 @@ export type PositionOptionType = 'relative' | 'absolute';
20
21
 
21
22
  export interface PaywallProviderStyleGenerated {
22
23
  flexDirection?: FlexDirectionOptionType;
24
+ flexWrap?: FlexWrapOptionType;
23
25
  alignItems?: AlignItemsOptionType;
24
26
  justifyContent?: JustifyContentOptionType;
25
27
  gap?: string;
@@ -17,9 +17,7 @@
17
17
  }
18
18
  },
19
19
  "meta": {
20
- "desiredParent": [
21
- "all"
22
- ],
20
+ "desiredParent": ["all"],
23
21
  "label": "Paywall Provider",
24
22
  "description": "Provider/wrapper for paywall screen components.",
25
23
  "attributes": {
@@ -15,6 +15,7 @@ export type FontWeightOptionType =
15
15
  | '800'
16
16
  | '900';
17
17
  export type FlexDirectionOptionType = 'row' | 'column';
18
+ export type FlexWrapOptionType = 'nowrap' | 'wrap' | 'wrap-reverse';
18
19
  export type AlignItemsOptionType =
19
20
  | 'flex-start'
20
21
  | 'center'
@@ -35,6 +36,7 @@ export interface PaywallSubscribeButtonStyleGenerated {
35
36
  fontSize?: string;
36
37
  fontWeight?: FontWeightOptionType;
37
38
  flexDirection?: FlexDirectionOptionType;
39
+ flexWrap?: FlexWrapOptionType;
38
40
  alignItems?: AlignItemsOptionType;
39
41
  justifyContent?: JustifyContentOptionType;
40
42
  gap?: string;
@@ -23,9 +23,7 @@
23
23
  }
24
24
  },
25
25
  "meta": {
26
- "desiredParent": [
27
- ">PaywallProvider"
28
- ],
26
+ "desiredParent": [">PaywallProvider"],
29
27
  "label": "Paywall Subscribe Button",
30
28
  "description": "Paywall subscribe call-to-action button. Extends Button.",
31
29
  "styles": {}
@@ -3,6 +3,7 @@
3
3
  import type { NodeData } from '../../types/Node';
4
4
 
5
5
  export type FlexDirectionOptionType = 'row' | 'column';
6
+ export type FlexWrapOptionType = 'nowrap' | 'wrap' | 'wrap-reverse';
6
7
  export type AlignItemsOptionType =
7
8
  | 'flex-start'
8
9
  | 'center'
@@ -20,6 +21,7 @@ export type PositionOptionType = 'relative' | 'absolute';
20
21
 
21
22
  export interface RadioButtonStyleGenerated {
22
23
  flexDirection?: FlexDirectionOptionType;
24
+ flexWrap?: FlexWrapOptionType;
23
25
  alignItems?: AlignItemsOptionType;
24
26
  justifyContent?: JustifyContentOptionType;
25
27
  gap?: string;
@@ -13,9 +13,7 @@
13
13
  }
14
14
  },
15
15
  "meta": {
16
- "desiredParent": [
17
- "all"
18
- ],
16
+ "desiredParent": ["all"],
19
17
  "label": "Radio Button",
20
18
  "description": "Generic radio button icon.",
21
19
  "styles": {
@@ -74,7 +74,7 @@ import PaywallProvider from './PaywallProvider/PaywallProvider';
74
74
  import PaywallSubscribeButton from './PaywallSubscribeButton/PaywallSubscribeButton';
75
75
  import RadioButton from './RadioButton/RadioButton';
76
76
  import Text from './Text/Text';
77
- import { View } from './View/View';
77
+ import View from './View/View';
78
78
 
79
79
  type BuilderNode =
80
80
  | (BIconComponentProps['node'] & { type: 'BIcon' })
@@ -3,6 +3,7 @@
3
3
  import type { NodeData } from '../../types/Node';
4
4
 
5
5
  export type FlexDirectionOptionType = 'row' | 'column';
6
+ export type FlexWrapOptionType = 'nowrap' | 'wrap' | 'wrap-reverse';
6
7
  export type AlignItemsOptionType =
7
8
  | 'flex-start'
8
9
  | 'center'
@@ -21,6 +22,7 @@ export type TextAlignOptionType = 'left' | 'center' | 'right' | 'justify';
21
22
 
22
23
  export interface TextStyleGenerated {
23
24
  flexDirection?: FlexDirectionOptionType;
25
+ flexWrap?: FlexWrapOptionType;
24
26
  alignItems?: AlignItemsOptionType;
25
27
  justifyContent?: JustifyContentOptionType;
26
28
  gap?: string;
@@ -1,7 +1,7 @@
1
1
  import React, { useId } from 'react';
2
2
  import type { ViewComponentProps } from './ViewProps.generated';
3
3
  import RenderNode from '../RenderNode.generated';
4
- import { Node } from '../../types/Node';
4
+ import type { Node } from '../../types/Node';
5
5
  import useNode from '../useNode';
6
6
  import { useBuilderParams } from '../../components/BuilderProvider';
7
7
  import { useExtractViewStyle } from '../../attribute-analyser/style/web/useExtractViewStyle';
@@ -9,31 +9,35 @@ import { useLogRender } from '../../utils/useLogRender';
9
9
  import { isNodeSelected, SELECTED_OUTLINE_STYLE } from '../../utils/selection';
10
10
  import { useMergedStyle } from '../../utils/useMergedStyle';
11
11
 
12
- export function View({ node }: ViewComponentProps) {
12
+ function View({ node }: ViewComponentProps) {
13
13
  useLogRender('View');
14
14
  node = useNode(node);
15
+
15
16
  const generatedId = useId();
16
- const attributeName = node.sourceType ?? node.type ?? 'view';
17
+ const attributeName = node.sourceType ?? node.type ?? 'View';
17
18
  const attributeKey = node.key ?? generatedId;
19
+
18
20
  const { previewMode, selectedKey } = useBuilderParams();
21
+
19
22
  const baseStyle = useExtractViewStyle(node);
23
+
20
24
  const isSelected = isNodeSelected({
21
25
  previewMode: !!previewMode,
22
26
  current: selectedKey ? { key: selectedKey } : undefined,
23
27
  node,
24
28
  });
25
- const viewStyle = useMergedStyle(
29
+ const style = useMergedStyle(
26
30
  baseStyle,
27
31
  isSelected ? SELECTED_OUTLINE_STYLE : undefined,
28
32
  );
33
+
29
34
  return (
30
35
  <div
31
36
  attribute-name={attributeName}
32
37
  attribute-key={attributeKey}
33
- style={{ ...viewStyle, boxSizing: 'border-box' }}
34
- className="scroll-container"
38
+ style={style}
35
39
  >
36
- <RenderNode node={node.children as Node} />
40
+ {node.children && <RenderNode node={node.children as Node} />}
37
41
  </div>
38
42
  );
39
43
  }
@@ -3,6 +3,7 @@
3
3
  import type { NodeData } from '../../types/Node';
4
4
 
5
5
  export type FlexDirectionOptionType = 'row' | 'column';
6
+ export type FlexWrapOptionType = 'nowrap' | 'wrap' | 'wrap-reverse';
6
7
  export type AlignItemsOptionType =
7
8
  | 'flex-start'
8
9
  | 'center'
@@ -20,6 +21,7 @@ export type PositionOptionType = 'relative' | 'absolute';
20
21
 
21
22
  export interface ViewStyleGenerated {
22
23
  flexDirection?: FlexDirectionOptionType;
24
+ flexWrap?: FlexWrapOptionType;
23
25
  alignItems?: AlignItemsOptionType;
24
26
  justifyContent?: JustifyContentOptionType;
25
27
  gap?: string;
@@ -7,6 +7,7 @@
7
7
  "scrollable": "boolean",
8
8
  "style": {
9
9
  "flexDirection": ["row", "column"],
10
+ "flexWrap": ["nowrap", "wrap", "wrap-reverse"],
10
11
  "alignItems": [
11
12
  "flex-start",
12
13
  "center",
@@ -117,6 +118,13 @@
117
118
  "specialCategory": null,
118
119
  "sort": 4
119
120
  },
121
+ "flexWrap": {
122
+ "label": "Flex Wrap",
123
+ "description": "Controls whether flex items wrap to multiple lines.",
124
+ "category": "container",
125
+ "specialCategory": null,
126
+ "sort": 4.5
127
+ },
120
128
  "alignItems": {
121
129
  "label": "Align Items",
122
130
  "description": "Controls cross-axis alignment.",