@builder.io/sdk-react-native 1.0.31-0 → 1.0.31

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 (261) hide show
  1. package/lib/browser/commonjs/blocks/symbol/symbol.js +1 -0
  2. package/lib/browser/commonjs/blocks/symbol/symbol.js.map +1 -1
  3. package/lib/browser/commonjs/components/content/content.js +1 -0
  4. package/lib/browser/commonjs/components/content/content.js.map +1 -1
  5. package/lib/browser/commonjs/constants/sdk-version.js +1 -1
  6. package/lib/browser/module/blocks/symbol/symbol.js +1 -0
  7. package/lib/browser/module/blocks/symbol/symbol.js.map +1 -1
  8. package/lib/browser/module/components/content/content.js +1 -0
  9. package/lib/browser/module/components/content/content.js.map +1 -1
  10. package/lib/browser/module/constants/sdk-version.js +1 -1
  11. package/lib/browser/typescript/blocks/symbol/symbol.d.ts.map +1 -1
  12. package/lib/browser/typescript/components/content/content.d.ts.map +1 -1
  13. package/lib/browser/typescript/constants/sdk-version.d.ts +1 -1
  14. package/lib/browser/typescript/context/types.d.ts +1 -0
  15. package/lib/browser/typescript/context/types.d.ts.map +1 -1
  16. package/lib/edge/commonjs/blocks/symbol/symbol.js +1 -0
  17. package/lib/edge/commonjs/blocks/symbol/symbol.js.map +1 -1
  18. package/lib/edge/commonjs/components/content/content.js +1 -0
  19. package/lib/edge/commonjs/components/content/content.js.map +1 -1
  20. package/lib/edge/commonjs/constants/sdk-version.js +1 -1
  21. package/lib/edge/module/blocks/symbol/symbol.js +1 -0
  22. package/lib/edge/module/blocks/symbol/symbol.js.map +1 -1
  23. package/lib/edge/module/components/content/content.js +1 -0
  24. package/lib/edge/module/components/content/content.js.map +1 -1
  25. package/lib/edge/module/constants/sdk-version.js +1 -1
  26. package/lib/edge/typescript/blocks/symbol/symbol.d.ts.map +1 -1
  27. package/lib/edge/typescript/components/content/content.d.ts.map +1 -1
  28. package/lib/edge/typescript/constants/sdk-version.d.ts +1 -1
  29. package/lib/edge/typescript/context/types.d.ts +1 -0
  30. package/lib/edge/typescript/context/types.d.ts.map +1 -1
  31. package/lib/node/commonjs/blocks/symbol/symbol.js +1 -0
  32. package/lib/node/commonjs/blocks/symbol/symbol.js.map +1 -1
  33. package/lib/node/commonjs/components/content/content.js +1 -0
  34. package/lib/node/commonjs/components/content/content.js.map +1 -1
  35. package/lib/node/commonjs/constants/sdk-version.js +1 -1
  36. package/lib/node/module/blocks/symbol/symbol.js +1 -0
  37. package/lib/node/module/blocks/symbol/symbol.js.map +1 -1
  38. package/lib/node/module/components/content/content.js +1 -0
  39. package/lib/node/module/components/content/content.js.map +1 -1
  40. package/lib/node/module/constants/sdk-version.js +1 -1
  41. package/lib/node/typescript/blocks/symbol/symbol.d.ts.map +1 -1
  42. package/lib/node/typescript/components/content/content.d.ts.map +1 -1
  43. package/lib/node/typescript/constants/sdk-version.d.ts +1 -1
  44. package/lib/node/typescript/context/types.d.ts +1 -0
  45. package/lib/node/typescript/context/types.d.ts.map +1 -1
  46. package/package.json +5 -9
  47. package/lib/node/index.cjs +0 -6910
  48. package/lib/node/index.mjs +0 -7477
  49. package/src/blocks/BaseText.tsx +0 -17
  50. package/src/blocks/accordion/accordion.tsx +0 -181
  51. package/src/blocks/accordion/accordion.types.ts +0 -12
  52. package/src/blocks/accordion/component-info.ts +0 -124
  53. package/src/blocks/accordion/helpers.ts +0 -3
  54. package/src/blocks/accordion/index.ts +0 -1
  55. package/src/blocks/button/button.tsx +0 -56
  56. package/src/blocks/button/button.types.ts +0 -7
  57. package/src/blocks/button/component-info.ts +0 -35
  58. package/src/blocks/button/index.ts +0 -1
  59. package/src/blocks/columns/columns.tsx +0 -199
  60. package/src/blocks/columns/columns.types.ts +0 -14
  61. package/src/blocks/columns/component-info.ts +0 -219
  62. package/src/blocks/columns/helpers.ts +0 -3
  63. package/src/blocks/columns/index.ts +0 -1
  64. package/src/blocks/custom-code/component-info.ts +0 -24
  65. package/src/blocks/custom-code/custom-code.tsx +0 -71
  66. package/src/blocks/custom-code/index.ts +0 -1
  67. package/src/blocks/embed/component-info.ts +0 -38
  68. package/src/blocks/embed/embed.tsx +0 -62
  69. package/src/blocks/embed/helpers.ts +0 -2
  70. package/src/blocks/embed/index.ts +0 -1
  71. package/src/blocks/form/form/component-info.ts +0 -233
  72. package/src/blocks/form/form/form.tsx +0 -324
  73. package/src/blocks/form/form/index.ts +0 -1
  74. package/src/blocks/form/input/component-info.ts +0 -47
  75. package/src/blocks/form/input/index.ts +0 -1
  76. package/src/blocks/form/input/input.tsx +0 -49
  77. package/src/blocks/form/select/component-info.ts +0 -44
  78. package/src/blocks/form/select/index.ts +0 -1
  79. package/src/blocks/form/select/select.tsx +0 -54
  80. package/src/blocks/form/submit-button/component-info.ts +0 -27
  81. package/src/blocks/form/submit-button/index.ts +0 -1
  82. package/src/blocks/form/submit-button/submit-button.tsx +0 -34
  83. package/src/blocks/fragment/component-info.ts +0 -8
  84. package/src/blocks/fragment/fragment.tsx +0 -18
  85. package/src/blocks/fragment/fragment.types.ts +0 -5
  86. package/src/blocks/fragment/index.ts +0 -1
  87. package/src/blocks/helpers.ts +0 -43
  88. package/src/blocks/image/component-info.ts +0 -124
  89. package/src/blocks/image/image.helpers.ts +0 -47
  90. package/src/blocks/image/image.tsx +0 -65
  91. package/src/blocks/image/image.types.ts +0 -19
  92. package/src/blocks/image/index.ts +0 -1
  93. package/src/blocks/img/component-info.ts +0 -16
  94. package/src/blocks/img/img.tsx +0 -55
  95. package/src/blocks/img/index.ts +0 -1
  96. package/src/blocks/raw-text/component-info.ts +0 -11
  97. package/src/blocks/raw-text/index.ts +0 -1
  98. package/src/blocks/raw-text/raw-text.tsx +0 -1
  99. package/src/blocks/section/component-info.ts +0 -41
  100. package/src/blocks/section/index.ts +0 -1
  101. package/src/blocks/section/section.tsx +0 -39
  102. package/src/blocks/section/section.types.ts +0 -6
  103. package/src/blocks/slot/component-info.ts +0 -15
  104. package/src/blocks/slot/index.ts +0 -1
  105. package/src/blocks/slot/slot.tsx +0 -42
  106. package/src/blocks/symbol/component-info.ts +0 -35
  107. package/src/blocks/symbol/index.ts +0 -1
  108. package/src/blocks/symbol/symbol.helpers.ts +0 -47
  109. package/src/blocks/symbol/symbol.tsx +0 -99
  110. package/src/blocks/symbol/symbol.types.ts +0 -17
  111. package/src/blocks/tabs/component-info.ts +0 -139
  112. package/src/blocks/tabs/index.ts +0 -1
  113. package/src/blocks/tabs/tabs.tsx +0 -79
  114. package/src/blocks/tabs/tabs.types.ts +0 -13
  115. package/src/blocks/text/component-info.ts +0 -20
  116. package/src/blocks/text/index.ts +0 -1
  117. package/src/blocks/text/text.tsx +0 -105
  118. package/src/blocks/text/text.types.ts +0 -4
  119. package/src/blocks/textarea/component-info.ts +0 -38
  120. package/src/blocks/textarea/index.ts +0 -1
  121. package/src/blocks/textarea/textarea.tsx +0 -41
  122. package/src/blocks/video/component-info.ts +0 -83
  123. package/src/blocks/video/index.ts +0 -1
  124. package/src/blocks/video/video.tsx +0 -70
  125. package/src/blocks/video/video.types.ts +0 -21
  126. package/src/components/block/animator.ts +0 -220
  127. package/src/components/block/block.helpers.ts +0 -106
  128. package/src/components/block/block.tsx +0 -235
  129. package/src/components/block/components/block-styles.tsx +0 -136
  130. package/src/components/block/components/block-wrapper.tsx +0 -53
  131. package/src/components/block/components/component-ref/component-ref.helpers.ts +0 -55
  132. package/src/components/block/components/component-ref/component-ref.tsx +0 -66
  133. package/src/components/block/components/interactive-element.tsx +0 -53
  134. package/src/components/block/components/repeated-block.tsx +0 -37
  135. package/src/components/block/types.ts +0 -6
  136. package/src/components/blocks/blocks-wrapper.tsx +0 -93
  137. package/src/components/blocks/blocks.tsx +0 -57
  138. package/src/components/blocks/blocks.types.ts +0 -7
  139. package/src/components/blocks/index.ts +0 -1
  140. package/src/components/content/components/enable-editor.tsx +0 -471
  141. package/src/components/content/components/styles.helpers.ts +0 -101
  142. package/src/components/content/components/styles.tsx +0 -42
  143. package/src/components/content/content.helpers.ts +0 -40
  144. package/src/components/content/content.tsx +0 -150
  145. package/src/components/content/content.types.ts +0 -13
  146. package/src/components/content/contentProps.types.ts +0 -17
  147. package/src/components/content/index.ts +0 -1
  148. package/src/components/content/wrap-component-ref.ts +0 -6
  149. package/src/components/content-variants/content-variants.tsx +0 -146
  150. package/src/components/content-variants/content-variants.types.ts +0 -84
  151. package/src/components/content-variants/helpers.ts +0 -72
  152. package/src/components/content-variants/index.ts +0 -1
  153. package/src/components/content-variants/inlined-fns.ts +0 -22
  154. package/src/components/dynamic-div.tsx +0 -30
  155. package/src/components/dynamic-renderer/dynamic-renderer.helpers.ts +0 -7
  156. package/src/components/dynamic-renderer/dynamic-renderer.tsx +0 -47
  157. package/src/components/error-boundary.tsx +0 -38
  158. package/src/components/inlined-script.tsx +0 -10
  159. package/src/components/inlined-styles.tsx +0 -10
  160. package/src/constants/builder-registered-components.ts +0 -59
  161. package/src/constants/device-sizes.ts +0 -59
  162. package/src/constants/extra-components.ts +0 -1
  163. package/src/constants/sdk-version.ts +0 -1
  164. package/src/constants/target.ts +0 -3
  165. package/src/context/builder.context.ts +0 -15
  166. package/src/context/components.context.ts +0 -3
  167. package/src/context/index.ts +0 -1
  168. package/src/context/types.ts +0 -37
  169. package/src/functions/apply-patch-with-mutation.ts +0 -61
  170. package/src/functions/camel-to-kebab-case.ts +0 -1
  171. package/src/functions/deopt.ts +0 -6
  172. package/src/functions/evaluate/browser-runtime/browser.ts +0 -61
  173. package/src/functions/evaluate/browser-runtime/index.ts +0 -1
  174. package/src/functions/evaluate/choose-eval.ts +0 -23
  175. package/src/functions/evaluate/edge-runtime/acorn-interpreter.ts +0 -2891
  176. package/src/functions/evaluate/edge-runtime/edge-runtime.ts +0 -96
  177. package/src/functions/evaluate/edge-runtime/index.ts +0 -1
  178. package/src/functions/evaluate/evaluate.ts +0 -76
  179. package/src/functions/evaluate/helpers.ts +0 -56
  180. package/src/functions/evaluate/index.ts +0 -1
  181. package/src/functions/evaluate/node-runtime/index.ts +0 -1
  182. package/src/functions/evaluate/node-runtime/init.ts +0 -33
  183. package/src/functions/evaluate/node-runtime/node-runtime.ts +0 -176
  184. package/src/functions/evaluate/node-runtime/safeDynamicRequire.ts +0 -24
  185. package/src/functions/evaluate/placeholder-runtime.ts +0 -4
  186. package/src/functions/evaluate/should-force-browser-runtime-in-node.ts +0 -16
  187. package/src/functions/event-handler-name.ts +0 -4
  188. package/src/functions/extract-text-styles.ts +0 -24
  189. package/src/functions/fast-clone.ts +0 -4
  190. package/src/functions/fetch-builder-props.ts +0 -75
  191. package/src/functions/get-block-actions-handler.ts +0 -17
  192. package/src/functions/get-block-actions.ts +0 -35
  193. package/src/functions/get-block-component-options.ts +0 -11
  194. package/src/functions/get-block-properties.ts +0 -62
  195. package/src/functions/get-builder-search-params/index.ts +0 -33
  196. package/src/functions/get-class-prop-name.ts +0 -15
  197. package/src/functions/get-content/generate-content-url.ts +0 -88
  198. package/src/functions/get-content/index.ts +0 -99
  199. package/src/functions/get-content/types.ts +0 -157
  200. package/src/functions/get-env.ts +0 -5
  201. package/src/functions/get-fetch.ts +0 -11
  202. package/src/functions/get-global-this.ts +0 -16
  203. package/src/functions/get-processed-block.ts +0 -70
  204. package/src/functions/get-style.ts +0 -38
  205. package/src/functions/get.ts +0 -4
  206. package/src/functions/is-browser.ts +0 -3
  207. package/src/functions/is-edge-runtime.ts +0 -9
  208. package/src/functions/is-editing.ts +0 -8
  209. package/src/functions/is-from-trusted-host.ts +0 -8
  210. package/src/functions/is-iframe.ts +0 -4
  211. package/src/functions/is-node-runtime.ts +0 -8
  212. package/src/functions/is-previewing.ts +0 -16
  213. package/src/functions/on-change.ts +0 -29
  214. package/src/functions/register-component.ts +0 -30
  215. package/src/functions/register.ts +0 -44
  216. package/src/functions/set-editor-settings.ts +0 -15
  217. package/src/functions/set.ts +0 -14
  218. package/src/functions/track/helpers.ts +0 -51
  219. package/src/functions/track/index.ts +0 -131
  220. package/src/functions/track/interaction.ts +0 -63
  221. package/src/functions/transform-block-properties.ts +0 -33
  222. package/src/functions/transform-block.ts +0 -30
  223. package/src/functions/transform-style-property.ts +0 -296
  224. package/src/helpers/ab-tests.ts +0 -166
  225. package/src/helpers/canTrack.ts +0 -2
  226. package/src/helpers/cookie.ts +0 -97
  227. package/src/helpers/css.ts +0 -33
  228. package/src/helpers/flatten.ts +0 -41
  229. package/src/helpers/localStorage.ts +0 -36
  230. package/src/helpers/logger.ts +0 -7
  231. package/src/helpers/nullable.ts +0 -2
  232. package/src/helpers/omit.ts +0 -7
  233. package/src/helpers/preview-lru-cache/get.ts +0 -4
  234. package/src/helpers/preview-lru-cache/helpers.ts +0 -1
  235. package/src/helpers/preview-lru-cache/init.ts +0 -7
  236. package/src/helpers/preview-lru-cache/set.ts +0 -12
  237. package/src/helpers/preview-lru-cache/types.ts +0 -1
  238. package/src/helpers/search/search.ts +0 -18
  239. package/src/helpers/sessionId.ts +0 -37
  240. package/src/helpers/subscribe-to-editor.ts +0 -95
  241. package/src/helpers/time.ts +0 -2
  242. package/src/helpers/url.ts +0 -15
  243. package/src/helpers/uuid.ts +0 -17
  244. package/src/helpers/visitorId.ts +0 -37
  245. package/src/index-helpers/blocks-exports.ts +0 -16
  246. package/src/index-helpers/top-of-file.ts +0 -2
  247. package/src/index.ts +0 -15
  248. package/src/scripts/init-editing.ts +0 -119
  249. package/src/server-index.ts +0 -43
  250. package/src/types/api-version.ts +0 -2
  251. package/src/types/builder-block.ts +0 -89
  252. package/src/types/builder-content.ts +0 -47
  253. package/src/types/builder-props.ts +0 -12
  254. package/src/types/can-track.ts +0 -3
  255. package/src/types/components.ts +0 -119
  256. package/src/types/deep-partial.ts +0 -1
  257. package/src/types/element.ts +0 -57
  258. package/src/types/enforced-partials.ts +0 -19
  259. package/src/types/input.ts +0 -123
  260. package/src/types/targets.ts +0 -1
  261. package/src/types/typescript.ts +0 -9
@@ -1,99 +0,0 @@
1
- import * as React from "react";
2
- import {
3
- FlatList,
4
- ScrollView,
5
- View,
6
- StyleSheet,
7
- Image,
8
- Text,
9
- Pressable,
10
- TextInput,
11
- } from "react-native";
12
- import { useState, useEffect } from "react";
13
- import ContentVariants from "../../components/content-variants/index";
14
- import type { BuilderContent } from "../../types/builder-content";
15
- import { filterAttrs } from "../helpers";
16
- import DynamicDiv from "../../components/dynamic-div";
17
- import { getClassPropName } from "../../functions/get-class-prop-name";
18
- import type { Nullable } from "../../types/typescript";
19
- import { setAttrs } from "../helpers";
20
- import { fetchSymbolContent } from "./symbol.helpers";
21
- import type { SymbolProps } from "./symbol.types";
22
-
23
- function Symbol(props: SymbolProps) {
24
- function blocksWrapper() {
25
- return View;
26
- }
27
-
28
- function contentWrapper() {
29
- return View;
30
- }
31
-
32
- function className() {
33
- return [
34
- ...[],
35
- "builder-symbol",
36
- props.symbol?.inline ? "builder-inline-symbol" : undefined,
37
- props.symbol?.dynamic || props.dynamic
38
- ? "builder-dynamic-symbol"
39
- : undefined,
40
- ]
41
- .filter(Boolean)
42
- .join(" ");
43
- }
44
-
45
- const [contentToUse, setContentToUse] = useState(() => props.symbol?.content);
46
-
47
- function setContent() {
48
- if (contentToUse) return;
49
- fetchSymbolContent({
50
- symbol: props.symbol,
51
- builderContextValue: props.builderContext,
52
- }).then((newContent) => {
53
- if (newContent) {
54
- setContentToUse(newContent);
55
- }
56
- });
57
- }
58
-
59
- useEffect(() => {}, []);
60
-
61
- useEffect(() => {
62
- setContent();
63
- }, [props.symbol]);
64
-
65
- return (
66
- <View
67
- {...{}}
68
- {...props.attributes}
69
- {...{
70
- dataSet: {
71
- class: className(),
72
- },
73
- }}
74
- >
75
- <ContentVariants
76
- isNestedRender
77
- apiVersion={props.builderContext.apiVersion}
78
- apiKey={props.builderContext.apiKey!}
79
- context={{
80
- ...props.builderContext.context,
81
- symbolId: props.builderBlock?.id,
82
- }}
83
- customComponents={Object.values(props.builderComponents)}
84
- data={{
85
- ...props.symbol?.data,
86
- ...props.builderContext.localState,
87
- ...contentToUse?.data?.state,
88
- }}
89
- model={props.symbol?.model}
90
- content={contentToUse}
91
- linkComponent={props.builderLinkComponent}
92
- blocksWrapper={blocksWrapper()}
93
- contentWrapper={contentWrapper()}
94
- />
95
- </View>
96
- );
97
- }
98
-
99
- export default Symbol;
@@ -1,17 +0,0 @@
1
- import type { BuilderContent } from '../../types/builder-content';
2
- import type { BuilderComponentsProp, BuilderDataProps, BuilderLinkComponentProp } from '../../types/builder-props';
3
- interface SymbolInfo {
4
- model?: string;
5
- entry?: string;
6
- data?: any;
7
- content?: BuilderContent;
8
- inline?: boolean;
9
- dynamic?: boolean;
10
- }
11
- export interface SymbolProps extends BuilderComponentsProp, BuilderDataProps, BuilderLinkComponentProp {
12
- symbol?: SymbolInfo;
13
- dataOnly?: boolean;
14
- dynamic?: boolean;
15
- attributes?: any;
16
- inheritState?: boolean;
17
- }
@@ -1,139 +0,0 @@
1
- import type { ComponentInfo } from '../../types/components';
2
- const defaultTab = {
3
- '@type': '@builder.io/sdk:Element',
4
- responsiveStyles: {
5
- large: {
6
- paddingLeft: '20px',
7
- paddingRight: '20px',
8
- paddingTop: '10px',
9
- paddingBottom: '10px',
10
- minWidth: '100px',
11
- textAlign: 'center',
12
- display: 'flex',
13
- flexDirection: 'column',
14
- cursor: 'pointer',
15
- userSelect: 'none'
16
- }
17
- },
18
- component: {
19
- name: 'Text',
20
- options: {
21
- text: 'New tab'
22
- }
23
- }
24
- };
25
- const defaultElement = {
26
- '@type': '@builder.io/sdk:Element',
27
- responsiveStyles: {
28
- large: {
29
- height: '200px',
30
- display: 'flex',
31
- marginTop: '20px',
32
- flexDirection: 'column'
33
- }
34
- },
35
- component: {
36
- name: 'Text',
37
- options: {
38
- text: 'New tab content '
39
- }
40
- }
41
- };
42
- export const componentInfo: ComponentInfo = {
43
- name: 'Builder: Tabs',
44
- inputs: [{
45
- name: 'tabs',
46
- type: 'list',
47
- broadcast: true,
48
- subFields: [{
49
- name: 'label',
50
- type: 'uiBlocks',
51
- hideFromUI: true,
52
- defaultValue: [defaultTab]
53
- }, {
54
- name: 'content',
55
- type: 'uiBlocks',
56
- hideFromUI: true,
57
- defaultValue: [defaultElement]
58
- }],
59
- defaultValue: [{
60
- label: [{
61
- ...defaultTab,
62
- component: {
63
- name: 'Text',
64
- options: {
65
- text: 'Tab 1'
66
- }
67
- }
68
- }],
69
- content: [{
70
- ...defaultElement,
71
- component: {
72
- name: 'Text',
73
- options: {
74
- text: 'Tab 1 content'
75
- }
76
- }
77
- }]
78
- }, {
79
- label: [{
80
- ...defaultTab,
81
- component: {
82
- name: 'Text',
83
- options: {
84
- text: 'Tab 2'
85
- }
86
- }
87
- }],
88
- content: [{
89
- ...defaultElement,
90
- component: {
91
- name: 'Text',
92
- options: {
93
- text: 'Tab 2 content'
94
- }
95
- }
96
- }]
97
- }]
98
- }, {
99
- name: 'activeTabStyle',
100
- type: 'uiStyle',
101
- helperText: 'CSS styles for the active tab',
102
- defaultValue: {
103
- backgroundColor: 'rgba(0, 0, 0, 0.1)'
104
- }
105
- }, {
106
- name: 'defaultActiveTab',
107
- type: 'number',
108
- helperText: 'Default tab to open to. Set to "1" for the first tab, "2" for the second, or choose "0" for none',
109
- defaultValue: 1,
110
- advanced: true
111
- }, {
112
- name: 'collapsible',
113
- type: 'boolean',
114
- helperText: 'If on, clicking an open tab closes it so no tabs are active',
115
- defaultValue: false,
116
- advanced: true
117
- }, {
118
- name: 'tabHeaderLayout',
119
- type: 'enum',
120
- helperText: 'Change the layout of the tab headers (uses justify-content)',
121
- defaultValue: 'flex-start',
122
- enum: [{
123
- label: 'Center',
124
- value: 'center'
125
- }, {
126
- label: 'Space between',
127
- value: 'space-between'
128
- }, {
129
- label: 'Space around',
130
- value: 'space-around'
131
- }, {
132
- label: 'Left',
133
- value: 'flex-start'
134
- }, {
135
- label: 'Right',
136
- value: 'flex-end'
137
- }]
138
- }]
139
- }
@@ -1 +0,0 @@
1
- export { default } from './tabs'
@@ -1,79 +0,0 @@
1
- import * as React from "react";
2
- import {
3
- FlatList,
4
- ScrollView,
5
- View,
6
- StyleSheet,
7
- Image,
8
- Text,
9
- Pressable,
10
- TextInput,
11
- } from "react-native";
12
- import { useState } from "react";
13
- import Blocks from "../../components/blocks/blocks";
14
- import type { BuilderBlock } from "../../types/builder-block";
15
- import type { TabsProps } from "./tabs.types";
16
-
17
- function Tabs(props: TabsProps) {
18
- const [activeTab, setActiveTab] = useState(() =>
19
- props.defaultActiveTab ? props.defaultActiveTab - 1 : 0
20
- );
21
-
22
- function activeTabContent(active: number) {
23
- return props.tabs && props.tabs[active].content;
24
- }
25
-
26
- function onClick(index: number) {
27
- if (index === activeTab && props.collapsible) {
28
- setActiveTab(-1);
29
- } else {
30
- setActiveTab(index);
31
- }
32
- }
33
-
34
- return (
35
- <View>
36
- <View
37
- style={{
38
- display: "flex",
39
- flexDirection: "row" as "row" | "column" | "column-reverse",
40
- justifyContent: props.tabHeaderLayout || "flex-start",
41
- overflow: "scroll" as "scroll" | "visible" | "hidden",
42
- }}
43
- >
44
- {props.tabs?.map((tab, index) => (
45
- <Pressable
46
- key={index}
47
- style={{
48
- ...(activeTab === index ? props.activeTabStyle : {}),
49
- }}
50
- onPress={(event) => onClick(index)}
51
- >
52
- <Blocks
53
- parent={props.builderBlock.id}
54
- path={`component.options.tabs.${index}.label`}
55
- blocks={tab.label}
56
- context={props.builderContext}
57
- registeredComponents={props.builderComponents}
58
- linkComponent={props.builderLinkComponent}
59
- />
60
- </Pressable>
61
- ))}
62
- </View>
63
- {activeTabContent(activeTab) ? (
64
- <View>
65
- <Blocks
66
- parent={props.builderBlock.id}
67
- path={`component.options.tabs.${activeTab}.content`}
68
- blocks={activeTabContent(activeTab)}
69
- context={props.builderContext}
70
- registeredComponents={props.builderComponents}
71
- linkComponent={props.builderLinkComponent}
72
- />
73
- </View>
74
- ) : null}
75
- </View>
76
- );
77
- }
78
-
79
- export default Tabs;
@@ -1,13 +0,0 @@
1
- import type { BuilderBlock } from '../../types/builder-block';
2
- import type { BuilderComponentsProp, BuilderDataProps, BuilderLinkComponentProp } from '../../types/builder-props';
3
- export interface TabsProps extends BuilderComponentsProp, BuilderLinkComponentProp, BuilderDataProps {
4
- tabs: {
5
- label: BuilderBlock[];
6
- content: BuilderBlock[];
7
- }[];
8
- builderBlock: BuilderBlock;
9
- defaultActiveTab?: number;
10
- collapsible?: boolean;
11
- tabHeaderLayout?: 'center' | 'flex-start' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';
12
- activeTabStyle?: any;
13
- }
@@ -1,20 +0,0 @@
1
- import type { ComponentInfo } from '../../types/components';
2
- export const componentInfo: ComponentInfo = {
3
- name: 'Text',
4
- static: true,
5
- isRSC: true,
6
- image: 'https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-text_fields-24px%20(1).svg?alt=media&token=12177b73-0ee3-42ca-98c6-0dd003de1929',
7
- inputs: [{
8
- name: 'text',
9
- type: 'html',
10
- required: true,
11
- autoFocus: true,
12
- bubble: true,
13
- defaultValue: 'Enter some text...'
14
- }],
15
- defaultStyles: {
16
- lineHeight: 'normal',
17
- height: 'auto',
18
- textAlign: 'center'
19
- }
20
- }
@@ -1 +0,0 @@
1
- export { default } from './text'
@@ -1,105 +0,0 @@
1
- import * as React from 'react';
2
- import { useWindowDimensions } from 'react-native';
3
- import { RenderHTML } from 'react-native-render-html';
4
- import BuilderContext from '../../context/builder.context';
5
- import { checkIsDefined } from '../../helpers/nullable';
6
- /**
7
- * @typedef {{}} BuilderBlock
8
- */
9
-
10
- /**
11
- *
12
- * @param {string} string
13
- * @returns {string}
14
- */
15
- function camelToKebabCase(string) {
16
- return string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, '$1-$2').toLowerCase();
17
- }
18
-
19
- /**
20
- *
21
- * @param {object} object
22
- * @param {string[]} keys
23
- * @returns {object}
24
- */
25
- function pick(object, keys) {
26
- return keys.reduce((obj, key) => {
27
- // eslint-disable-next-line no-prototype-builtins
28
- if (object && object.hasOwnProperty(key)) {
29
- obj[key] = object[key];
30
- }
31
- return obj;
32
- }, {});
33
- }
34
-
35
- const PICK_STYLES = ['textAlign'];
36
-
37
- /**
38
- * @param {BuilderBlock} block
39
- * @returns
40
- */
41
- function getBlockStyles(block) {
42
- // TODO: responsive CSS using react native viewport width hooks
43
- const styles = {
44
- ...block.responsiveStyles?.large,
45
- ...block.styles,
46
- };
47
-
48
- if (block.responsiveStyles?.medium) {
49
- Object.assign(styles, block.responsiveStyles.medium);
50
- }
51
- if (block.responsiveStyles?.small) {
52
- Object.assign(styles, block.responsiveStyles.small);
53
- }
54
-
55
- return styles;
56
- }
57
-
58
- /**
59
- *
60
- * @param {BuilderBlock} block
61
- * @param {any} inheritedStyles
62
- * @returns
63
- */
64
- function getCss(block, inheritedStyles) {
65
- const styleObject = {
66
- ...inheritedStyles,
67
- ...pick(getBlockStyles(block), PICK_STYLES),
68
- };
69
- if (!styleObject) {
70
- return '';
71
- }
72
-
73
- let str = ``;
74
-
75
- for (const key in styleObject) {
76
- const value = styleObject[key];
77
- if (typeof value === 'string') {
78
- str += `${camelToKebabCase(key)}: ${value};`;
79
- }
80
- }
81
-
82
- return str;
83
- }
84
-
85
- /**
86
- *
87
- * @param {{ text: string; builderBlock: BuilderBlock}} props
88
- * @returns
89
- */
90
- export default function Text(props) {
91
- const { width } = useWindowDimensions();
92
- const builderContext = React.useContext(BuilderContext);
93
-
94
- return (
95
- <RenderHTML
96
- contentWidth={width}
97
- source={{
98
- html: `<div style="${getCss(
99
- props.builderBlock,
100
- builderContext.inheritedStyles
101
- )}">${checkIsDefined(props.text) ? String(props.text) : ''}</div>`,
102
- }}
103
- />
104
- );
105
- }
@@ -1,4 +0,0 @@
1
- import type { BuilderDataProps } from '../../types/builder-props';
2
- export type TextProps = {
3
- text?: string;
4
- } & BuilderDataProps
@@ -1,38 +0,0 @@
1
- import type { ComponentInfo } from '../../types/components';
2
- export const componentInfo: ComponentInfo = {
3
- name: 'Form:TextArea',
4
- image: 'https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Ff74a2f3de58c4c3e939204e5b6b8f6c3',
5
- inputs: [{
6
- advanced: true,
7
- name: 'value',
8
- type: 'string'
9
- }, {
10
- name: 'name',
11
- type: 'string',
12
- required: true,
13
- helperText: 'Every input in a form needs a unique name describing what it gets, e.g. "email"'
14
- }, {
15
- name: 'defaultValue',
16
- type: 'string'
17
- }, {
18
- name: 'placeholder',
19
- type: 'string',
20
- defaultValue: 'Hello there'
21
- }, {
22
- name: 'required',
23
- type: 'boolean',
24
- defaultValue: false
25
- }],
26
- defaultStyles: {
27
- paddingTop: '10px',
28
- paddingBottom: '10px',
29
- paddingLeft: '10px',
30
- paddingRight: '10px',
31
- borderRadius: '3px',
32
- borderWidth: '1px',
33
- borderStyle: 'solid',
34
- borderColor: '#ccc'
35
- },
36
- static: true,
37
- noWrap: true
38
- }
@@ -1 +0,0 @@
1
- export { default } from './textarea'
@@ -1,41 +0,0 @@
1
- import * as React from "react";
2
- import {
3
- FlatList,
4
- ScrollView,
5
- View,
6
- StyleSheet,
7
- Image,
8
- Text,
9
- Pressable,
10
- TextInput,
11
- } from "react-native";
12
-
13
- /**
14
- * This import is used by the Svelte SDK. Do not remove.
15
- */
16
-
17
- export interface TextareaProps {
18
- attributes?: any;
19
- name?: string;
20
- value?: string;
21
- defaultValue?: string;
22
- placeholder?: string;
23
- }
24
-
25
- import { filterAttrs } from "../helpers";
26
- import { setAttrs } from "../helpers";
27
-
28
- function Textarea(props: TextareaProps) {
29
- return (
30
- <View
31
- {...{}}
32
- {...props.attributes}
33
- placeholder={props.placeholder}
34
- name={props.name}
35
- value={props.value}
36
- defaultValue={props.defaultValue}
37
- />
38
- );
39
- }
40
-
41
- export default Textarea;
@@ -1,83 +0,0 @@
1
- import type { ComponentInfo } from '../../types/components';
2
- export const componentInfo: ComponentInfo = {
3
- name: 'Video',
4
- canHaveChildren: true,
5
- defaultStyles: {
6
- minHeight: '20px',
7
- minWidth: '20px'
8
- },
9
- image: 'https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-videocam-24px%20(1).svg?alt=media&token=49a84e4a-b20e-4977-a650-047f986874bb',
10
- inputs: [{
11
- name: 'video',
12
- type: 'file',
13
- allowedFileTypes: ['mp4'],
14
- bubble: true,
15
- defaultValue: 'https://cdn.builder.io/o/assets%2FYJIGb4i01jvw0SRdL5Bt%2Fd27731a526464deba0016216f5f9e570%2Fcompressed?apiKey=YJIGb4i01jvw0SRdL5Bt&token=d27731a526464deba0016216f5f9e570&alt=media&optimized=true',
16
- required: true
17
- }, {
18
- name: 'posterImage',
19
- type: 'file',
20
- allowedFileTypes: ['jpeg', 'png'],
21
- helperText: 'Image to show before the video plays'
22
- }, {
23
- name: 'autoPlay',
24
- type: 'boolean',
25
- defaultValue: true
26
- }, {
27
- name: 'controls',
28
- type: 'boolean',
29
- defaultValue: false
30
- }, {
31
- name: 'muted',
32
- type: 'boolean',
33
- defaultValue: true
34
- }, {
35
- name: 'loop',
36
- type: 'boolean',
37
- defaultValue: true
38
- }, {
39
- name: 'playsInline',
40
- type: 'boolean',
41
- defaultValue: true
42
- }, {
43
- name: 'fit',
44
- type: 'text',
45
- defaultValue: 'cover',
46
- enum: ['contain', 'cover', 'fill', 'auto']
47
- }, {
48
- name: 'preload',
49
- type: 'text',
50
- defaultValue: 'metadata',
51
- enum: ['auto', 'metadata', 'none']
52
- }, {
53
- name: 'fitContent',
54
- type: 'boolean',
55
- helperText: 'When child blocks are provided, fit to them instead of using the aspect ratio',
56
- defaultValue: true,
57
- advanced: true
58
- }, {
59
- name: 'position',
60
- type: 'text',
61
- defaultValue: 'center',
62
- enum: ['center', 'top', 'left', 'right', 'bottom', 'top left', 'top right', 'bottom left', 'bottom right']
63
- }, {
64
- name: 'height',
65
- type: 'number',
66
- advanced: true
67
- }, {
68
- name: 'width',
69
- type: 'number',
70
- advanced: true
71
- }, {
72
- name: 'aspectRatio',
73
- type: 'number',
74
- advanced: true,
75
- defaultValue: 0.7004048582995948
76
- }, {
77
- name: 'lazyLoad',
78
- type: 'boolean',
79
- helperText: 'Load this video "lazily" - as in only when a user scrolls near the video. Recommended for optmized performance and bandwidth consumption',
80
- defaultValue: true,
81
- advanced: true
82
- }]
83
- }
@@ -1 +0,0 @@
1
- export { default } from './video'