@developer_tribe/react-builder 1.2.34 → 1.2.36
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.
- package/dist/RenderPage.d.ts +0 -12
- package/dist/attributes-editor/Field.d.ts +2 -1
- package/dist/attributes-editor/SizeField.d.ts +2 -1
- package/dist/attributes-editor/attributesEditorUtils.d.ts +2 -1
- package/dist/build-components/BIcon/BIcon.d.ts +0 -3
- package/dist/build-components/BIcon/BIconProps.generated.d.ts +1 -0
- package/dist/build-components/Button/Button.d.ts +0 -3
- package/dist/build-components/CarouselItem/CarouselItem.d.ts +0 -3
- package/dist/build-components/CountDown/CountDownProps.generated.d.ts +1 -1
- package/dist/build-components/OnboardButton/OnboardButton.d.ts +0 -3
- package/dist/build-components/OnboardDot/OnboardDot.d.ts +0 -3
- package/dist/build-components/OnboardFooter/OnboardFooterProps.generated.d.ts +1 -0
- package/dist/build-components/OnboardItem/OnboardItemProps.generated.d.ts +0 -3
- package/dist/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.d.ts +1 -0
- package/dist/build-components/OnboardTitle/OnboardTitleProps.generated.d.ts +1 -0
- package/dist/build-components/PaywallCloseButton/PaywallCloseButton.d.ts +0 -3
- package/dist/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.d.ts +1 -0
- package/dist/build-components/PriceTag/PriceTagProps.generated.d.ts +1 -0
- package/dist/build-components/Pricing/PricingProps.generated.d.ts +1 -0
- package/dist/build-components/Promo/PromoProps.generated.d.ts +1 -0
- package/dist/build-components/Text/TextProps.generated.d.ts +1 -0
- package/dist/build-components/patterns.generated.d.ts +9798 -10468
- package/dist/components/Breadcrumb.d.ts +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.web.cjs.js +3 -3
- package/dist/index.web.cjs.js.map +1 -1
- package/dist/index.web.esm.js +3 -3
- package/dist/index.web.esm.js.map +1 -1
- package/dist/migrations/migratePipe.d.ts +2 -1
- package/dist/migrations/semver.d.ts +0 -7
- package/dist/pages/DebugJsonPage.d.ts +2 -1
- package/dist/pages/ProjectDebug.d.ts +2 -1
- package/dist/pages/ProjectMigrationPage.d.ts +2 -1
- package/dist/pages/ProjectPage.d.ts +2 -1
- package/dist/pages/ProjectValidationPage.d.ts +2 -1
- package/dist/pages/tabs/SideTool.d.ts +0 -7
- package/dist/utils/parseColor.d.ts +1 -1
- package/package.json +1 -1
- package/scripts/prebuild/assets/prompt_scheme.md +5 -11
- package/scripts/prebuild/generate-prompt-schemes.js +11 -8
- package/scripts/prebuild/utils/validateAllComponentsOrThrow.js +50 -0
- package/scripts/prebuild/utils/validatePatternJson.js +73 -0
- package/src/RenderPage.tsx +1 -7
- package/src/assets/meta.json +1 -1
- package/src/assets/prompt-scheme-onboard.generated.ts +1 -1
- package/src/assets/prompt-scheme-paywall.generated.ts +1 -1
- package/src/attributes-editor/Field.tsx +1 -1
- package/src/attributes-editor/SizeField.tsx +1 -1
- package/src/attributes-editor/attributesEditorUtils.ts +1 -1
- package/src/attributes-editor/useAttributesEditorModel.ts +16 -15
- package/src/build-components/BIcon/BIcon.tsx +0 -2
- package/src/build-components/BIcon/BIconProps.generated.ts +1 -0
- package/src/build-components/BackgroundImage/pattern.json +8 -9
- package/src/build-components/Button/Button.tsx +0 -2
- package/src/build-components/CarouselDots/CarouselDots.tsx +1 -1
- package/src/build-components/CarouselDots/pattern.json +1 -1
- package/src/build-components/CarouselItem/CarouselItem.tsx +0 -2
- package/src/build-components/CountDown/CountDownProps.generated.ts +1 -1
- package/src/build-components/OnboardButton/OnboardButton.tsx +1 -4
- package/src/build-components/OnboardButtons/pattern.json +2 -4
- package/src/build-components/OnboardDot/OnboardDot.tsx +10 -10
- package/src/build-components/OnboardDot/pattern.json +2 -3
- package/src/build-components/OnboardFooter/OnboardFooter.tsx +8 -13
- package/src/build-components/OnboardFooter/OnboardFooterProps.generated.ts +1 -0
- package/src/build-components/OnboardItem/OnboardItemProps.generated.ts +0 -3
- package/src/build-components/OnboardItem/pattern.json +27 -23
- package/src/build-components/OnboardProvider/pattern.json +29 -27
- package/src/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.ts +1 -0
- package/src/build-components/OnboardTitle/OnboardTitleProps.generated.ts +1 -0
- package/src/build-components/PaywallCloseButton/PaywallCloseButton.tsx +0 -2
- package/src/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.ts +1 -0
- package/src/build-components/PriceTag/PriceTagProps.generated.ts +1 -0
- package/src/build-components/Pricing/PricingProps.generated.ts +1 -0
- package/src/build-components/Promo/PromoProps.generated.ts +1 -0
- package/src/build-components/RadioButton/pattern.json +2 -4
- package/src/build-components/Separator/pattern.json +24 -24
- package/src/build-components/Text/TextProps.generated.ts +1 -0
- package/src/build-components/Text/pattern.json +2 -1
- package/src/build-components/View/pattern.json +265 -265
- package/src/build-components/patterns.generated.ts +10019 -10689
- package/src/components/Breadcrumb.tsx +1 -1
- package/src/migrations/migratePipe.ts +1 -1
- package/src/migrations/semver.ts +3 -3
- package/src/modals/MockableFeatureModal.tsx +3 -1
- package/src/modals/PromptManagerModal.tsx +1 -7
- package/src/pages/DebugJsonPage.tsx +1 -1
- package/src/pages/ProjectDebug.tsx +1 -1
- package/src/pages/ProjectMigrationPage.tsx +1 -1
- package/src/pages/ProjectPage.tsx +1 -1
- package/src/pages/ProjectValidationPage.tsx +1 -1
- package/src/pages/tabs/SideTool.tsx +1 -1
- package/src/utils/nodeXml.ts +2 -4
- package/src/utils/parseColor.ts +5 -6
|
@@ -81,22 +81,14 @@ export function useAttributesEditorModel({
|
|
|
81
81
|
|
|
82
82
|
const isStyleKeyForWrite = useCallback(
|
|
83
83
|
(name: string) => {
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
// Primary: is this key explicitly declared under schema.styles (nested)?
|
|
85
|
+
const nestedStyles = (schema as Record<string, unknown>).styles;
|
|
86
|
+
if (isPlainObject(nestedStyles) && name in nestedStyles) return true;
|
|
87
|
+
// Fallback: global View+Text style keys (inherited properties not in own schema)
|
|
86
88
|
return styleAttributeKeys.has(name);
|
|
87
89
|
},
|
|
88
|
-
[
|
|
90
|
+
[schema, styleAttributeKeys],
|
|
89
91
|
);
|
|
90
|
-
const isStyleKeyForRead = useCallback(
|
|
91
|
-
(name: string) => {
|
|
92
|
-
if (isStyleKeyForWrite(name)) return true;
|
|
93
|
-
return !!(
|
|
94
|
-
styleBag && Object.prototype.hasOwnProperty.call(styleBag, name)
|
|
95
|
-
);
|
|
96
|
-
},
|
|
97
|
-
[isStyleKeyForWrite, styleBag],
|
|
98
|
-
);
|
|
99
|
-
|
|
100
92
|
const legacyFlatStyleKeys = useMemo(
|
|
101
93
|
() => findLegacyFlatStyleKeys(attributes, isStyleKeyForWrite),
|
|
102
94
|
[attributes, isStyleKeyForWrite],
|
|
@@ -136,12 +128,12 @@ export function useAttributesEditorModel({
|
|
|
136
128
|
|
|
137
129
|
const getAttributeValue = useCallback(
|
|
138
130
|
(name: string) => {
|
|
139
|
-
if (
|
|
131
|
+
if (isStyleKeyForWrite(name)) {
|
|
140
132
|
return styleBag?.[name];
|
|
141
133
|
}
|
|
142
134
|
return (attributes as Record<string, unknown>)?.[name];
|
|
143
135
|
},
|
|
144
|
-
[attributes,
|
|
136
|
+
[attributes, isStyleKeyForWrite, styleBag],
|
|
145
137
|
);
|
|
146
138
|
|
|
147
139
|
const projectColorsForPicker = useMemo<ProjectColors | undefined>(
|
|
@@ -379,6 +371,15 @@ export function useAttributesEditorModel({
|
|
|
379
371
|
if (name in nextAttrs) delete nextAttrs[name];
|
|
380
372
|
} else {
|
|
381
373
|
nextAttrs[name] = val;
|
|
374
|
+
// If this key was previously misplaced inside styles bag (e.g. due to a
|
|
375
|
+
// past editor bug), clean it up so there is no stale duplicate.
|
|
376
|
+
if (isPlainObject(nextAttrs.styles) && name in nextAttrs.styles) {
|
|
377
|
+
const cleanedStyles = { ...nextAttrs.styles };
|
|
378
|
+
delete cleanedStyles[name];
|
|
379
|
+
nextAttrs.styles = Object.keys(cleanedStyles).length
|
|
380
|
+
? cleanedStyles
|
|
381
|
+
: undefined;
|
|
382
|
+
}
|
|
382
383
|
}
|
|
383
384
|
const next: NodeData<NodeDefaultAttribute> = {
|
|
384
385
|
...baseData,
|
|
@@ -27,15 +27,7 @@
|
|
|
27
27
|
"desiredParent": ["all", "background"],
|
|
28
28
|
"label": "Background Image",
|
|
29
29
|
"description": "Background image.",
|
|
30
|
-
"styles": {
|
|
31
|
-
"resizeMode": {
|
|
32
|
-
"label": "Resize Mode",
|
|
33
|
-
"description": "How the image fits its container.",
|
|
34
|
-
"category": "style",
|
|
35
|
-
"specialCategory": null,
|
|
36
|
-
"sort": 4
|
|
37
|
-
}
|
|
38
|
-
},
|
|
30
|
+
"styles": {},
|
|
39
31
|
"attributes": {
|
|
40
32
|
"src": {
|
|
41
33
|
"label": "Src",
|
|
@@ -43,6 +35,13 @@
|
|
|
43
35
|
"category": "other",
|
|
44
36
|
"specialCategory": null,
|
|
45
37
|
"sort": 1
|
|
38
|
+
},
|
|
39
|
+
"resizeMode": {
|
|
40
|
+
"label": "Resize Mode",
|
|
41
|
+
"description": "How the image fits its container.",
|
|
42
|
+
"category": "other",
|
|
43
|
+
"specialCategory": null,
|
|
44
|
+
"sort": 4
|
|
46
45
|
}
|
|
47
46
|
}
|
|
48
47
|
},
|
|
@@ -134,7 +134,7 @@ function CarouselDots({ node }: CarouselDotsComponentProps) {
|
|
|
134
134
|
style={{
|
|
135
135
|
width: dotSize,
|
|
136
136
|
height: dotSize,
|
|
137
|
-
backgroundColor: dotColor,
|
|
137
|
+
backgroundColor: dotColor ?? undefined,
|
|
138
138
|
opacity: isDotSelected ? 1 : inactiveDotOpacity,
|
|
139
139
|
borderRadius: '9999px',
|
|
140
140
|
border: 0,
|
|
@@ -24,6 +24,7 @@ export interface CountDownStyleGenerated {
|
|
|
24
24
|
fontSize?: string;
|
|
25
25
|
fontFamily?: string;
|
|
26
26
|
fontWeight?: string;
|
|
27
|
+
textAlign?: never;
|
|
27
28
|
flexDirection?: FlexDirectionOptionType;
|
|
28
29
|
flexWrap?: FlexWrapOptionType;
|
|
29
30
|
alignItems?: AlignItemsOptionType;
|
|
@@ -58,7 +59,6 @@ export interface CountDownStyleGenerated {
|
|
|
58
59
|
left?: string;
|
|
59
60
|
right?: string;
|
|
60
61
|
zIndex?: number;
|
|
61
|
-
textAlign?: never;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
export interface CountDownPropsGenerated {
|
|
@@ -11,7 +11,6 @@ import { useExtractViewStyle } from '../../attribute-analyser/style/web/useExtra
|
|
|
11
11
|
import { useMockOSContext, useMockPermission } from '../../mockOS';
|
|
12
12
|
import { useLocalize } from '../../hooks/useLocalize';
|
|
13
13
|
import { parseColor } from '../../utils/parseColor';
|
|
14
|
-
import { getStyleBag, toAttributeRecord } from '../../utils/attributeStyle';
|
|
15
14
|
|
|
16
15
|
export function OnboardButton({ node }: OnboardButtonComponentProps) {
|
|
17
16
|
useLogRender('OnboardButton');
|
|
@@ -76,7 +75,7 @@ export function OnboardButton({ node }: OnboardButtonComponentProps) {
|
|
|
76
75
|
onClick={handleClick}
|
|
77
76
|
style={{
|
|
78
77
|
...viewStyle,
|
|
79
|
-
color: textColor,
|
|
78
|
+
color: textColor ?? undefined,
|
|
80
79
|
border: 'none',
|
|
81
80
|
display: 'flex',
|
|
82
81
|
justifyContent: 'center',
|
|
@@ -87,5 +86,3 @@ export function OnboardButton({ node }: OnboardButtonComponentProps) {
|
|
|
87
86
|
</button>
|
|
88
87
|
);
|
|
89
88
|
}
|
|
90
|
-
|
|
91
|
-
export default React.memo(OnboardButton);
|
|
@@ -31,16 +31,14 @@
|
|
|
31
31
|
"desiredParent": ["=OnboardItem"],
|
|
32
32
|
"label": "Onboard Buttons",
|
|
33
33
|
"description": "Wrapper for onboarding button set.",
|
|
34
|
-
"
|
|
34
|
+
"attributes": {
|
|
35
35
|
"seperatorColor": {
|
|
36
36
|
"label": "Seperator Color",
|
|
37
37
|
"description": "Color of the divider line.",
|
|
38
38
|
"category": "style",
|
|
39
39
|
"specialCategory": null,
|
|
40
40
|
"sort": 5
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
"attributes": {
|
|
41
|
+
},
|
|
44
42
|
"buttonType": {
|
|
45
43
|
"label": "Button Type",
|
|
46
44
|
"description": "Which onboard button to show.",
|
|
@@ -21,10 +21,12 @@ export function OnboardDot({ node }: OnboardDotComponentProps) {
|
|
|
21
21
|
const attributeKey = node.key ?? generatedId;
|
|
22
22
|
const attrs = node.attributes;
|
|
23
23
|
const attrRecord = toAttributeRecord(attrs);
|
|
24
|
+
// Backward compat: existing JSON may still have these in styles bag (old editor bug).
|
|
25
|
+
// handleAttributeChange will clean them up on next edit.
|
|
24
26
|
const stylesBag = getStyleBag(attrs);
|
|
25
27
|
const dotType =
|
|
26
|
-
(stylesBag?.dotType as string | undefined) ??
|
|
27
28
|
(attrRecord.dotType as string | undefined) ??
|
|
29
|
+
(stylesBag?.dotType as string | undefined) ??
|
|
28
30
|
'normal_dot';
|
|
29
31
|
const {
|
|
30
32
|
previewMode,
|
|
@@ -35,15 +37,15 @@ export function OnboardDot({ node }: OnboardDotComponentProps) {
|
|
|
35
37
|
} = useBuilderParams();
|
|
36
38
|
// OnboardDot specific attributes
|
|
37
39
|
const inactiveDotOpacity =
|
|
38
|
-
(stylesBag?.inactive_dot_opacity as number | undefined) ??
|
|
39
40
|
(attrRecord.inactive_dot_opacity as number | undefined) ??
|
|
41
|
+
(stylesBag?.inactive_dot_opacity as number | undefined) ??
|
|
40
42
|
0.3;
|
|
41
43
|
const inactiveDotColorOverride =
|
|
42
|
-
(
|
|
43
|
-
(
|
|
44
|
+
(attrRecord.inactive_dot_color as string | undefined) ??
|
|
45
|
+
(stylesBag?.inactive_dot_color as string | undefined);
|
|
44
46
|
const activeDotColor =
|
|
45
|
-
(
|
|
46
|
-
(
|
|
47
|
+
(attrRecord.active_dot_color as string | undefined) ??
|
|
48
|
+
(stylesBag?.active_dot_color as string | undefined);
|
|
47
49
|
const resolvedActiveDotColor = useMemo(
|
|
48
50
|
() => parseColor(activeDotColor, { theme, projectColors }),
|
|
49
51
|
[activeDotColor, theme, projectColors],
|
|
@@ -69,8 +71,8 @@ export function OnboardDot({ node }: OnboardDotComponentProps) {
|
|
|
69
71
|
isSelected ? SELECTED_OUTLINE_STYLE : undefined,
|
|
70
72
|
);
|
|
71
73
|
const dotThicknessRaw =
|
|
72
|
-
(
|
|
73
|
-
(
|
|
74
|
+
(attrRecord.dot_thickness as string | number | undefined) ??
|
|
75
|
+
(stylesBag?.dot_thickness as string | number | undefined);
|
|
74
76
|
const dotSizeCss = useMemo((): string => {
|
|
75
77
|
const parsed = parseSize(dotThicknessRaw, baseSize);
|
|
76
78
|
if (parsed === undefined) return '10px';
|
|
@@ -160,5 +162,3 @@ export function OnboardDot({ node }: OnboardDotComponentProps) {
|
|
|
160
162
|
</div>
|
|
161
163
|
);
|
|
162
164
|
}
|
|
163
|
-
|
|
164
|
-
export default React.memo(OnboardDot);
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"specialCategory": null,
|
|
50
50
|
"sort": 1
|
|
51
51
|
},
|
|
52
|
-
|
|
52
|
+
"dot_thickness": {
|
|
53
53
|
"label": "Dot Thickness",
|
|
54
54
|
"description": "Dot size/diameter.",
|
|
55
55
|
"category": "style",
|
|
@@ -77,7 +77,6 @@
|
|
|
77
77
|
"specialCategory": null,
|
|
78
78
|
"sort": 5
|
|
79
79
|
}
|
|
80
|
-
|
|
80
|
+
}
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
-
|
|
@@ -9,7 +9,7 @@ import { isNodeSelected, SELECTED_OUTLINE_STYLE } from '../../utils/selection';
|
|
|
9
9
|
import { useMergedStyle } from '../../utils/useMergedStyle';
|
|
10
10
|
import { defaultLocalization } from '../../types/PreviewConfig';
|
|
11
11
|
import { parseColor } from '../../utils/parseColor';
|
|
12
|
-
import {
|
|
12
|
+
import { toAttributeRecord } from '../../utils/attributeStyle';
|
|
13
13
|
|
|
14
14
|
type Segment =
|
|
15
15
|
| { type: 'text'; value: string }
|
|
@@ -94,6 +94,7 @@ function buildSegments(
|
|
|
94
94
|
function OnboardFooter({ node }: OnboardFooterComponentProps) {
|
|
95
95
|
useLogRender('OnboardFooter');
|
|
96
96
|
node = useNode(node);
|
|
97
|
+
console.log('node', node);
|
|
97
98
|
const attributeName = node.sourceType ?? node.type ?? 'OnboardFooter';
|
|
98
99
|
const {
|
|
99
100
|
localization: builderLocalization,
|
|
@@ -110,18 +111,12 @@ function OnboardFooter({ node }: OnboardFooterComponentProps) {
|
|
|
110
111
|
|
|
111
112
|
const attrs = node?.attributes;
|
|
112
113
|
const attrRecord = toAttributeRecord(attrs);
|
|
113
|
-
const styleBag = getStyleBag(attrs);
|
|
114
114
|
const text = t(attrs?.textLocalizationKey);
|
|
115
115
|
const textStyle = useExtractTextStyle(node, true);
|
|
116
116
|
const viewStyle = useExtractViewStyle(node);
|
|
117
117
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
// but legacy JSON may have them at the top level.
|
|
121
|
-
const rawFirstColor = (attrRecord.linkedWordFirstColor ??
|
|
122
|
-
styleBag?.linkedWordFirstColor) as string | undefined;
|
|
123
|
-
const rawSecondColor = (attrRecord.linkedWordSecondColor ??
|
|
124
|
-
styleBag?.linkedWordSecondColor) as string | undefined;
|
|
118
|
+
const rawFirstColor = attrRecord.linkedWordFirstColor as string | undefined;
|
|
119
|
+
const rawSecondColor = attrRecord.linkedWordSecondColor as string | undefined;
|
|
125
120
|
|
|
126
121
|
// Parse colors for linked words
|
|
127
122
|
const parsedFirstColor = useMemo(
|
|
@@ -169,12 +164,12 @@ function OnboardFooter({ node }: OnboardFooterComponentProps) {
|
|
|
169
164
|
const { segments, matchCount } = buildSegments(text, [
|
|
170
165
|
{
|
|
171
166
|
value: firstText,
|
|
172
|
-
color: parsedFirstColor,
|
|
167
|
+
color: parsedFirstColor ?? undefined,
|
|
173
168
|
page: attrs?.linkedWordFirstPage,
|
|
174
169
|
},
|
|
175
170
|
{
|
|
176
171
|
value: secondText,
|
|
177
|
-
color: parsedSecondColor,
|
|
172
|
+
color: parsedSecondColor ?? undefined,
|
|
178
173
|
page: attrs?.linkedWordSecondPage,
|
|
179
174
|
},
|
|
180
175
|
]);
|
|
@@ -209,7 +204,7 @@ function OnboardFooter({ node }: OnboardFooterComponentProps) {
|
|
|
209
204
|
<span
|
|
210
205
|
style={{
|
|
211
206
|
...mergedTextStyle,
|
|
212
|
-
color: parsedFirstColor,
|
|
207
|
+
color: parsedFirstColor ?? undefined,
|
|
213
208
|
}}
|
|
214
209
|
onClick={() => handleClick(attrs?.linkedWordFirstPage)}
|
|
215
210
|
>
|
|
@@ -220,7 +215,7 @@ function OnboardFooter({ node }: OnboardFooterComponentProps) {
|
|
|
220
215
|
<span
|
|
221
216
|
style={{
|
|
222
217
|
...mergedTextStyle,
|
|
223
|
-
color: parsedSecondColor,
|
|
218
|
+
color: parsedSecondColor ?? undefined,
|
|
224
219
|
}}
|
|
225
220
|
onClick={() => handleClick(attrs?.linkedWordSecondPage)}
|
|
226
221
|
>
|
|
@@ -8,9 +8,11 @@
|
|
|
8
8
|
"extends": "View",
|
|
9
9
|
"attributes": {
|
|
10
10
|
"display": ["flex", "block"],
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
"styles": {
|
|
12
|
+
"gap": "size",
|
|
13
|
+
"flexDirection": ["row", "column"],
|
|
14
|
+
"paddingHorizontal": "size"
|
|
15
|
+
}
|
|
14
16
|
}
|
|
15
17
|
},
|
|
16
18
|
"defaults": {
|
|
@@ -34,26 +36,28 @@
|
|
|
34
36
|
"specialCategory": null,
|
|
35
37
|
"sort": 1
|
|
36
38
|
},
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
39
|
+
"styles": {
|
|
40
|
+
"gap": {
|
|
41
|
+
"label": "Gap",
|
|
42
|
+
"description": "Space between child blocks.",
|
|
43
|
+
"category": "container",
|
|
44
|
+
"specialCategory": null,
|
|
45
|
+
"sort": 2
|
|
46
|
+
},
|
|
47
|
+
"flexDirection": {
|
|
48
|
+
"label": "Flex Direction",
|
|
49
|
+
"description": "Order of child stacking.",
|
|
50
|
+
"category": "container",
|
|
51
|
+
"specialCategory": null,
|
|
52
|
+
"sort": 3
|
|
53
|
+
},
|
|
54
|
+
"paddingHorizontal": {
|
|
55
|
+
"label": "Padding Horizontal",
|
|
56
|
+
"description": "Left and right padding.",
|
|
57
|
+
"category": "container",
|
|
58
|
+
"specialCategory": "padding",
|
|
59
|
+
"sort": 4
|
|
60
|
+
}
|
|
57
61
|
}
|
|
58
62
|
}
|
|
59
63
|
}
|
|
@@ -30,33 +30,35 @@
|
|
|
30
30
|
"specialCategory": null,
|
|
31
31
|
"sort": -10
|
|
32
32
|
},
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
33
|
+
"styles": {
|
|
34
|
+
"paddingTop": {
|
|
35
|
+
"label": "Padding Top",
|
|
36
|
+
"description": "Top padding for the provider.",
|
|
37
|
+
"category": "container",
|
|
38
|
+
"specialCategory": "padding",
|
|
39
|
+
"sort": 1
|
|
40
|
+
},
|
|
41
|
+
"paddingRight": {
|
|
42
|
+
"label": "Padding Right",
|
|
43
|
+
"description": "Right padding for the provider.",
|
|
44
|
+
"category": "container",
|
|
45
|
+
"specialCategory": "padding",
|
|
46
|
+
"sort": 2
|
|
47
|
+
},
|
|
48
|
+
"paddingBottom": {
|
|
49
|
+
"label": "Padding Bottom",
|
|
50
|
+
"description": "Bottom padding for the provider.",
|
|
51
|
+
"category": "container",
|
|
52
|
+
"specialCategory": "padding",
|
|
53
|
+
"sort": 3
|
|
54
|
+
},
|
|
55
|
+
"paddingLeft": {
|
|
56
|
+
"label": "Padding Left",
|
|
57
|
+
"description": "Left padding for the provider.",
|
|
58
|
+
"category": "container",
|
|
59
|
+
"specialCategory": "padding",
|
|
60
|
+
"sort": 4
|
|
61
|
+
}
|
|
60
62
|
}
|
|
61
63
|
}
|
|
62
64
|
}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"desiredParent": ["all"],
|
|
17
17
|
"label": "Radio Button",
|
|
18
18
|
"description": "Generic radio button icon.",
|
|
19
|
-
"
|
|
19
|
+
"attributes": {
|
|
20
20
|
"color": {
|
|
21
21
|
"label": "Color",
|
|
22
22
|
"description": "Radio color.",
|
|
@@ -30,9 +30,7 @@
|
|
|
30
30
|
"category": "style",
|
|
31
31
|
"specialCategory": null,
|
|
32
32
|
"sort": 2
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
"attributes": {
|
|
33
|
+
},
|
|
36
34
|
"selected": {
|
|
37
35
|
"label": "Selected",
|
|
38
36
|
"description": "Whether the radio is selected.",
|
|
@@ -21,31 +21,31 @@
|
|
|
21
21
|
"desiredParent": ["all"],
|
|
22
22
|
"label": "Separator",
|
|
23
23
|
"description": "Horizontal line separator.",
|
|
24
|
-
"styles": {
|
|
25
|
-
"backgroundColor": {
|
|
26
|
-
"label": "Color",
|
|
27
|
-
"description": "Separator line color.",
|
|
28
|
-
"category": "style",
|
|
29
|
-
"specialCategory": null,
|
|
30
|
-
"sort": 1
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
24
|
"attributes": {
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
25
|
+
"styles": {
|
|
26
|
+
"backgroundColor": {
|
|
27
|
+
"label": "Color",
|
|
28
|
+
"description": "Separator line color.",
|
|
29
|
+
"category": "style",
|
|
30
|
+
"specialCategory": null,
|
|
31
|
+
"sort": 1
|
|
32
|
+
},
|
|
33
|
+
"width": {
|
|
34
|
+
"label": "Width",
|
|
35
|
+
"description": "Separator width.",
|
|
36
|
+
"category": "container",
|
|
37
|
+
"specialCategory": null,
|
|
38
|
+
"sort": 1,
|
|
39
|
+
"preferredScale": "s"
|
|
40
|
+
},
|
|
41
|
+
"height": {
|
|
42
|
+
"label": "Height",
|
|
43
|
+
"description": "Separator thickness.",
|
|
44
|
+
"category": "container",
|
|
45
|
+
"specialCategory": null,
|
|
46
|
+
"sort": 2,
|
|
47
|
+
"preferredScale": "vs"
|
|
48
|
+
}
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
},
|