@getrheo/rheo-skill 2.2.0 → 2.4.0
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/README.md +1 -1
- package/package.json +3 -3
- package/rheo/SKILL.md +1 -1
- package/rheo/rheo-flow-import/SKILL.md +1 -1
- package/rheo/rheo-flow-import/references/capabilities.md +12 -2
- package/rheo/rheo-flow-import/references/carousel-import.md +64 -7
- package/rheo/rheo-flow-import/references/flow-spec.md +17 -7
- package/rheo/rheo-flow-import/references/import-workflow.md +3 -3
- package/rheo/rheo-flow-import/references/manifest-agent-profile-fallback.md +8 -4
- package/rheo/rheo-flow-import/references/manifest-rules.md +33 -9
- package/rheo/rheo-flow-import/references/publish-gates.md +5 -2
- package/rheo/rheo-flow-import/references/react-native-source-patterns.md +5 -3
- package/rheo/rheo-flow-import/references/swiftui-source-patterns.md +4 -2
- package/rheo/rheo-flow-import/scripts/lib/rheo-cli.mjs +1237 -377
|
@@ -4198,7 +4198,10 @@ var ThemedColorModesSchema = external_exports.object({
|
|
|
4198
4198
|
var ThemedColorSchema = external_exports.union([external_exports.string().min(1), ThemedColorModesSchema]);
|
|
4199
4199
|
var LAYOUT_FRACTION_PRESETS = ["1/2", "1/3", "2/3", "1/4", "3/4"];
|
|
4200
4200
|
var WIDTH_PRESETS = ["auto", "full", ...LAYOUT_FRACTION_PRESETS];
|
|
4201
|
-
var WidthValueSchema = external_exports.
|
|
4201
|
+
var WidthValueSchema = external_exports.preprocess(
|
|
4202
|
+
(value) => value === "fill" ? "full" : value,
|
|
4203
|
+
external_exports.union([external_exports.enum(WIDTH_PRESETS), external_exports.number().int().min(0).max(2e3)])
|
|
4204
|
+
);
|
|
4202
4205
|
var HEIGHT_PRESETS = ["auto", "full", "fill", ...LAYOUT_FRACTION_PRESETS];
|
|
4203
4206
|
var CommonLayoutHeightSchema = external_exports.union([
|
|
4204
4207
|
external_exports.enum(HEIGHT_PRESETS),
|
|
@@ -4231,6 +4234,8 @@ var CommonStyleSchema = external_exports.object({
|
|
|
4231
4234
|
border: BorderSchema.optional(),
|
|
4232
4235
|
shadow: DropShadowSchema.optional(),
|
|
4233
4236
|
opacity: external_exports.number().min(0).max(1).optional(),
|
|
4237
|
+
/** Multiplier (0–1) applied to the resolved background color alpha only; children stay fully opaque unless `opacity` is set. */
|
|
4238
|
+
backgroundOpacity: external_exports.number().min(0).max(1).optional(),
|
|
4234
4239
|
width: WidthValueSchema.optional(),
|
|
4235
4240
|
/** Omit for normal flow; `'absolute'` removes the layer from flex flow (non-root only). */
|
|
4236
4241
|
position: external_exports.literal("absolute").optional(),
|
|
@@ -4241,6 +4246,11 @@ var CommonStyleSchema = external_exports.object({
|
|
|
4241
4246
|
rotate: external_exports.number().min(-360).max(360).optional(),
|
|
4242
4247
|
/** Cross-axis size: `auto` (hug), `full`/`fill` (parent height), fractions, or fixed px. */
|
|
4243
4248
|
height: CommonLayoutHeightSchema.optional(),
|
|
4249
|
+
/** Optional size clamps (px); applied on the flex shell / wrapper like width/height. */
|
|
4250
|
+
minWidth: NonNegativePxSchema.max(2e3).optional(),
|
|
4251
|
+
maxWidth: NonNegativePxSchema.max(2e3).optional(),
|
|
4252
|
+
minHeight: NonNegativePxSchema.max(2e3).optional(),
|
|
4253
|
+
maxHeight: NonNegativePxSchema.max(2e3).optional(),
|
|
4244
4254
|
/** Stroke thickness in px for layers that render a stroke primitive (e.g. loader ring). */
|
|
4245
4255
|
strokeWidth: external_exports.number().int().min(0).max(64).optional()
|
|
4246
4256
|
}).partial();
|
|
@@ -4254,9 +4264,10 @@ var TextStyleSchema = CommonStyleSchema.extend({
|
|
|
4254
4264
|
fontWeight: external_exports.number().int().min(100).max(900).optional(),
|
|
4255
4265
|
color: ThemedColorSchema.optional(),
|
|
4256
4266
|
align: external_exports.enum(["left", "center", "right"]).optional(),
|
|
4267
|
+
/** Unitless line-height multiplier (CSS `line-height` without units). */
|
|
4257
4268
|
lineHeight: external_exports.number().min(0.8).max(3).optional(),
|
|
4258
|
-
/**
|
|
4259
|
-
|
|
4269
|
+
/** Extra spacing between characters as a multiple of `fontSize` (CSS `em`; negative values tighten). */
|
|
4270
|
+
letterSpacing: external_exports.number().min(-0.5).max(1).optional()
|
|
4260
4271
|
});
|
|
4261
4272
|
var ImageStyleSchema = CommonStyleSchema.extend({
|
|
4262
4273
|
fit: external_exports.enum(["cover", "contain", "fill"]).optional(),
|
|
@@ -4331,6 +4342,41 @@ var ButtonLayoutBreakpointsSchema = external_exports.object({
|
|
|
4331
4342
|
xl: ButtonLayoutBreakpointPatchSchema.optional(),
|
|
4332
4343
|
"2xl": ButtonLayoutBreakpointPatchSchema.optional()
|
|
4333
4344
|
}).partial().optional();
|
|
4345
|
+
var AuthLayoutBreakpointPatchSchema = external_exports.object({
|
|
4346
|
+
gap: NonNegativePxSchema.optional(),
|
|
4347
|
+
align: external_exports.enum(["start", "center", "end", "stretch"]).optional()
|
|
4348
|
+
}).partial();
|
|
4349
|
+
var AuthLayoutBreakpointsSchema = external_exports.object({
|
|
4350
|
+
sm: AuthLayoutBreakpointPatchSchema.optional(),
|
|
4351
|
+
md: AuthLayoutBreakpointPatchSchema.optional(),
|
|
4352
|
+
lg: AuthLayoutBreakpointPatchSchema.optional(),
|
|
4353
|
+
xl: AuthLayoutBreakpointPatchSchema.optional(),
|
|
4354
|
+
"2xl": AuthLayoutBreakpointPatchSchema.optional()
|
|
4355
|
+
}).partial().optional();
|
|
4356
|
+
var ChoiceLayoutBreakpointPatchSchema = external_exports.object({
|
|
4357
|
+
direction: external_exports.enum(["vertical", "horizontal"]).optional(),
|
|
4358
|
+
gap: NonNegativePxSchema.optional(),
|
|
4359
|
+
columns: external_exports.number().int().min(1).max(6).optional()
|
|
4360
|
+
}).partial();
|
|
4361
|
+
var ChoiceLayoutBreakpointsSchema = external_exports.object({
|
|
4362
|
+
sm: ChoiceLayoutBreakpointPatchSchema.optional(),
|
|
4363
|
+
md: ChoiceLayoutBreakpointPatchSchema.optional(),
|
|
4364
|
+
lg: ChoiceLayoutBreakpointPatchSchema.optional(),
|
|
4365
|
+
xl: ChoiceLayoutBreakpointPatchSchema.optional(),
|
|
4366
|
+
"2xl": ChoiceLayoutBreakpointPatchSchema.optional()
|
|
4367
|
+
}).partial().optional();
|
|
4368
|
+
var CarouselLayoutBreakpointPatchSchema = external_exports.object({
|
|
4369
|
+
pageAlignment: external_exports.enum(["top", "center", "bottom"]).optional(),
|
|
4370
|
+
pageSpacing: NonNegativePxSchema.optional(),
|
|
4371
|
+
pagePeek: NonNegativePxSchema.optional()
|
|
4372
|
+
}).partial();
|
|
4373
|
+
var CarouselLayoutBreakpointsSchema = external_exports.object({
|
|
4374
|
+
sm: CarouselLayoutBreakpointPatchSchema.optional(),
|
|
4375
|
+
md: CarouselLayoutBreakpointPatchSchema.optional(),
|
|
4376
|
+
lg: CarouselLayoutBreakpointPatchSchema.optional(),
|
|
4377
|
+
xl: CarouselLayoutBreakpointPatchSchema.optional(),
|
|
4378
|
+
"2xl": CarouselLayoutBreakpointPatchSchema.optional()
|
|
4379
|
+
}).partial().optional();
|
|
4334
4380
|
var DecisionNodeJumpIdSchema = external_exports.string().min(1).max(64).regex(/^dec_[a-z0-9_]+$/i);
|
|
4335
4381
|
var ExternalSurfaceJumpIdSchema = external_exports.string().min(1).max(64).regex(/^surf_[a-z0-9_]+$/i);
|
|
4336
4382
|
var FlowGraphNodeJumpTargetSchema = ScreenIdSchema.or(DecisionNodeJumpIdSchema).or(
|
|
@@ -4375,6 +4421,8 @@ var OsPermissionOutcomesSchema = external_exports.object({
|
|
|
4375
4421
|
}).strict();
|
|
4376
4422
|
var APP_REVIEW_OUTCOMES = ["not_shown", "dismissed"];
|
|
4377
4423
|
var AppReviewOutcomeSchema = external_exports.enum(APP_REVIEW_OUTCOMES);
|
|
4424
|
+
var CAROUSEL_ADVANCE_ON_LAST = ["noop", "complete"];
|
|
4425
|
+
var CarouselAdvanceOnLastSchema = external_exports.enum(CAROUSEL_ADVANCE_ON_LAST);
|
|
4378
4426
|
var ButtonActionSchema = external_exports.discriminatedUnion("kind", [
|
|
4379
4427
|
external_exports.object({ kind: external_exports.literal("none") }),
|
|
4380
4428
|
external_exports.object({ kind: external_exports.literal("continue") }),
|
|
@@ -4394,9 +4442,14 @@ var ButtonActionSchema = external_exports.discriminatedUnion("kind", [
|
|
|
4394
4442
|
kind: external_exports.literal("play_media"),
|
|
4395
4443
|
targetLayerIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
4396
4444
|
}),
|
|
4397
|
-
external_exports.object({ kind: external_exports.literal("request_app_review") })
|
|
4445
|
+
external_exports.object({ kind: external_exports.literal("request_app_review") }),
|
|
4446
|
+
external_exports.object({
|
|
4447
|
+
kind: external_exports.literal("advance_carousel"),
|
|
4448
|
+
targetLayerId: external_exports.string().min(1),
|
|
4449
|
+
onLast: CarouselAdvanceOnLastSchema.optional()
|
|
4450
|
+
})
|
|
4398
4451
|
]);
|
|
4399
|
-
var TEXT_INPUT_TYPES = ["plain", "email", "phone", "url", "multiline"];
|
|
4452
|
+
var TEXT_INPUT_TYPES = ["plain", "email", "phone", "url", "number", "multiline"];
|
|
4400
4453
|
var TextInputTypeSchema = external_exports.enum(TEXT_INPUT_TYPES);
|
|
4401
4454
|
var COUNTER_DISPLAY_KINDS = ["number", "time"];
|
|
4402
4455
|
var COUNTER_TIME_FORMATS = ["mm_ss", "hh_mm_ss", "dd_hh_mm_ss"];
|
|
@@ -4461,7 +4514,8 @@ var ProgressLayerSchema = external_exports.object({
|
|
|
4461
4514
|
kind: external_exports.literal("progress"),
|
|
4462
4515
|
trackColor: ThemedColorSchema.optional(),
|
|
4463
4516
|
fillColor: ThemedColorSchema.optional(),
|
|
4464
|
-
style: CommonStyleSchema.optional()
|
|
4517
|
+
style: CommonStyleSchema.optional(),
|
|
4518
|
+
styleBreakpoints: CommonStyleBreakpointsSchema
|
|
4465
4519
|
});
|
|
4466
4520
|
var LoaderOnCompleteSchema = external_exports.discriminatedUnion("mode", [
|
|
4467
4521
|
external_exports.object({ mode: external_exports.literal("none") }),
|
|
@@ -4481,7 +4535,8 @@ var LoaderLayerSchema = external_exports.object({
|
|
|
4481
4535
|
fillColor: ThemedColorSchema.optional(),
|
|
4482
4536
|
/** Horizontal alignment of the bar or ring within the layer box (default start). */
|
|
4483
4537
|
align: external_exports.enum(["start", "center", "end"]).optional(),
|
|
4484
|
-
style: CommonStyleSchema.optional()
|
|
4538
|
+
style: CommonStyleSchema.optional(),
|
|
4539
|
+
styleBreakpoints: CommonStyleBreakpointsSchema
|
|
4485
4540
|
}).superRefine((data, ctx) => {
|
|
4486
4541
|
if (data.variant !== "circular") return;
|
|
4487
4542
|
const w = data.style?.width;
|
|
@@ -4518,27 +4573,39 @@ var CheckboxLayerSchema = external_exports.object({
|
|
|
4518
4573
|
styleBreakpoints: CommonStyleBreakpointsSchema
|
|
4519
4574
|
});
|
|
4520
4575
|
var lazyLayer2 = () => layerSchemaStore.schema;
|
|
4521
|
-
var
|
|
4522
|
-
|
|
4523
|
-
|
|
4524
|
-
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
|
|
4533
|
-
|
|
4534
|
-
|
|
4535
|
-
|
|
4576
|
+
var migrateStackJustifyForParse = (raw) => {
|
|
4577
|
+
if (!raw || typeof raw !== "object") return raw;
|
|
4578
|
+
const o = { ...raw };
|
|
4579
|
+
if (o.justify != null && o.distribution == null) o.distribution = o.justify;
|
|
4580
|
+
delete o.justify;
|
|
4581
|
+
return o;
|
|
4582
|
+
};
|
|
4583
|
+
var StackLayerSchema = external_exports.preprocess(
|
|
4584
|
+
migrateStackJustifyForParse,
|
|
4585
|
+
external_exports.object({
|
|
4586
|
+
...baseLayerShape,
|
|
4587
|
+
kind: external_exports.literal("stack"),
|
|
4588
|
+
style: CommonStyleSchema.optional(),
|
|
4589
|
+
styleBreakpoints: CommonStyleBreakpointsSchema,
|
|
4590
|
+
stackLayoutBreakpoints: StackLayoutBreakpointsSchema,
|
|
4591
|
+
selectedStyle: CommonStyleSchema.optional(),
|
|
4592
|
+
selectedStyleBreakpoints: CommonStyleBreakpointsSchema,
|
|
4593
|
+
direction: external_exports.enum(["vertical", "horizontal"]),
|
|
4594
|
+
gap: external_exports.number().int().min(0).optional(),
|
|
4595
|
+
align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
|
|
4596
|
+
distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
|
|
4597
|
+
wrap: external_exports.boolean().optional(),
|
|
4598
|
+
children: external_exports.lazy(() => external_exports.array(lazyLayer2()))
|
|
4599
|
+
})
|
|
4600
|
+
);
|
|
4536
4601
|
var TextLayerSchema = external_exports.object({
|
|
4537
4602
|
...baseLayerShape,
|
|
4538
4603
|
kind: external_exports.literal("text"),
|
|
4539
4604
|
text: LocalizedTextSchema,
|
|
4540
4605
|
style: TextStyleSchema.optional(),
|
|
4541
|
-
styleBreakpoints: TextStyleBreakpointsSchema
|
|
4606
|
+
styleBreakpoints: TextStyleBreakpointsSchema,
|
|
4607
|
+
/** Merged on top of resolved `style` when this layer is inside a selected choice option. */
|
|
4608
|
+
selectedStyle: TextStyleSchema.optional()
|
|
4542
4609
|
});
|
|
4543
4610
|
var migrateLegacyHyperlinkForParse = (raw) => {
|
|
4544
4611
|
if (!raw || typeof raw !== "object") return raw;
|
|
@@ -4577,7 +4644,8 @@ var HyperlinkLayerSchemaInner = external_exports.object({
|
|
|
4577
4644
|
distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
|
|
4578
4645
|
wrap: external_exports.boolean().optional(),
|
|
4579
4646
|
style: CommonStyleSchema.optional(),
|
|
4580
|
-
styleBreakpoints: CommonStyleBreakpointsSchema
|
|
4647
|
+
styleBreakpoints: CommonStyleBreakpointsSchema,
|
|
4648
|
+
hyperlinkLayoutBreakpoints: StackLayoutBreakpointsSchema
|
|
4581
4649
|
}).superRefine((data, ctx) => {
|
|
4582
4650
|
const p = parseHyperlinkHref(data.href.trim());
|
|
4583
4651
|
if (!p.ok) {
|
|
@@ -4598,7 +4666,8 @@ var ImageLayerSchema = external_exports.object({
|
|
|
4598
4666
|
media: MediaReferenceSchema.optional(),
|
|
4599
4667
|
alt: external_exports.string().max(280).optional(),
|
|
4600
4668
|
style: ImageStyleSchema.optional(),
|
|
4601
|
-
styleBreakpoints: ImageStyleBreakpointsSchema
|
|
4669
|
+
styleBreakpoints: ImageStyleBreakpointsSchema,
|
|
4670
|
+
selectedStyle: ImageStyleSchema.optional()
|
|
4602
4671
|
});
|
|
4603
4672
|
var LottieLayerSchema = external_exports.object({
|
|
4604
4673
|
...baseLayerShape,
|
|
@@ -4609,7 +4678,8 @@ var LottieLayerSchema = external_exports.object({
|
|
|
4609
4678
|
triggerLayerId: external_exports.string().min(1).optional(),
|
|
4610
4679
|
onComplete: LoaderOnCompleteSchema.optional(),
|
|
4611
4680
|
style: ImageStyleSchema.optional(),
|
|
4612
|
-
styleBreakpoints: ImageStyleBreakpointsSchema
|
|
4681
|
+
styleBreakpoints: ImageStyleBreakpointsSchema,
|
|
4682
|
+
selectedStyle: ImageStyleSchema.optional()
|
|
4613
4683
|
});
|
|
4614
4684
|
var VideoLayerSchema = external_exports.object({
|
|
4615
4685
|
...baseLayerShape,
|
|
@@ -4621,7 +4691,8 @@ var VideoLayerSchema = external_exports.object({
|
|
|
4621
4691
|
onComplete: LoaderOnCompleteSchema.optional(),
|
|
4622
4692
|
audioEnabled: external_exports.boolean().optional(),
|
|
4623
4693
|
style: ImageStyleSchema.optional(),
|
|
4624
|
-
styleBreakpoints: ImageStyleBreakpointsSchema
|
|
4694
|
+
styleBreakpoints: ImageStyleBreakpointsSchema,
|
|
4695
|
+
selectedStyle: ImageStyleSchema.optional()
|
|
4625
4696
|
});
|
|
4626
4697
|
var IconLayerSchema = external_exports.object({
|
|
4627
4698
|
...baseLayerShape,
|
|
@@ -4629,7 +4700,8 @@ var IconLayerSchema = external_exports.object({
|
|
|
4629
4700
|
family: external_exports.enum(ICON_FAMILIES),
|
|
4630
4701
|
iconName: external_exports.string().min(1).max(128),
|
|
4631
4702
|
style: IconStyleSchema.optional(),
|
|
4632
|
-
styleBreakpoints: IconStyleBreakpointsSchema
|
|
4703
|
+
styleBreakpoints: IconStyleBreakpointsSchema,
|
|
4704
|
+
selectedStyle: IconStyleSchema.optional()
|
|
4633
4705
|
});
|
|
4634
4706
|
var lazyLayer3 = () => layerSchemaStore.schema;
|
|
4635
4707
|
var OAuthProviderPresetLayerSchema = external_exports.object({
|
|
@@ -4783,6 +4855,7 @@ var OAuthLoginLayerSchemaValidated = external_exports.object({
|
|
|
4783
4855
|
),
|
|
4784
4856
|
gap: external_exports.number().int().min(0).optional(),
|
|
4785
4857
|
align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
|
|
4858
|
+
authLayoutBreakpoints: AuthLayoutBreakpointsSchema,
|
|
4786
4859
|
style: CommonStyleSchema.optional(),
|
|
4787
4860
|
styleBreakpoints: CommonStyleBreakpointsSchema
|
|
4788
4861
|
});
|
|
@@ -4934,6 +5007,7 @@ var EmailPasswordAuthLayerSchemaValidated = external_exports.object({
|
|
|
4934
5007
|
),
|
|
4935
5008
|
gap: external_exports.number().int().min(0).optional(),
|
|
4936
5009
|
align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
|
|
5010
|
+
authLayoutBreakpoints: AuthLayoutBreakpointsSchema,
|
|
4937
5011
|
style: CommonStyleSchema.optional(),
|
|
4938
5012
|
styleBreakpoints: CommonStyleBreakpointsSchema
|
|
4939
5013
|
}).superRefine(refineEmailPasswordAuthChildren);
|
|
@@ -4967,7 +5041,8 @@ var SingleChoiceLayerSchema = external_exports.object({
|
|
|
4967
5041
|
gap: external_exports.number().int().min(0).optional(),
|
|
4968
5042
|
columns: external_exports.number().int().min(1).max(12).optional(),
|
|
4969
5043
|
style: CommonStyleSchema.optional(),
|
|
4970
|
-
styleBreakpoints: CommonStyleBreakpointsSchema
|
|
5044
|
+
styleBreakpoints: CommonStyleBreakpointsSchema,
|
|
5045
|
+
choiceLayoutBreakpoints: ChoiceLayoutBreakpointsSchema
|
|
4971
5046
|
});
|
|
4972
5047
|
var MultipleChoiceLayerSchema = external_exports.object({
|
|
4973
5048
|
...baseLayerShape,
|
|
@@ -4984,8 +5059,19 @@ var MultipleChoiceLayerSchema = external_exports.object({
|
|
|
4984
5059
|
gap: external_exports.number().int().min(0).optional(),
|
|
4985
5060
|
columns: external_exports.number().int().min(1).max(12).optional(),
|
|
4986
5061
|
style: CommonStyleSchema.optional(),
|
|
4987
|
-
styleBreakpoints: CommonStyleBreakpointsSchema
|
|
5062
|
+
styleBreakpoints: CommonStyleBreakpointsSchema,
|
|
5063
|
+
choiceLayoutBreakpoints: ChoiceLayoutBreakpointsSchema
|
|
4988
5064
|
});
|
|
5065
|
+
var TextInputFieldStyleSchema = external_exports.object({
|
|
5066
|
+
fontFamily: external_exports.string().min(1).max(128).optional(),
|
|
5067
|
+
fontSize: external_exports.number().int().min(8).max(96).optional(),
|
|
5068
|
+
fontWeight: external_exports.number().int().min(100).max(900).optional(),
|
|
5069
|
+
color: ThemedColorSchema.optional(),
|
|
5070
|
+
align: external_exports.enum(["left", "center", "right"]).optional(),
|
|
5071
|
+
lineHeight: external_exports.number().min(0.8).max(3).optional(),
|
|
5072
|
+
letterSpacing: external_exports.number().min(-0.5).max(1).optional(),
|
|
5073
|
+
opacity: external_exports.number().min(0).max(1).optional()
|
|
5074
|
+
}).partial();
|
|
4989
5075
|
var TextInputLayerSchema = external_exports.object({
|
|
4990
5076
|
...baseLayerShape,
|
|
4991
5077
|
kind: external_exports.literal("text_input"),
|
|
@@ -4997,7 +5083,10 @@ var TextInputLayerSchema = external_exports.object({
|
|
|
4997
5083
|
maxLength: external_exports.number().int().positive().max(2e3).optional(),
|
|
4998
5084
|
classification: FieldClassificationSchema,
|
|
4999
5085
|
children: external_exports.lazy(() => external_exports.array(lazyLayer5())).optional(),
|
|
5000
|
-
|
|
5086
|
+
/** Typography for the native input's typed text. */
|
|
5087
|
+
fieldStyle: TextInputFieldStyleSchema.optional(),
|
|
5088
|
+
style: CommonStyleSchema.optional(),
|
|
5089
|
+
styleBreakpoints: CommonStyleBreakpointsSchema
|
|
5001
5090
|
});
|
|
5002
5091
|
var ScaleInputLabelStyleSchema = external_exports.object({
|
|
5003
5092
|
fontFamily: external_exports.string().min(1).max(128).optional(),
|
|
@@ -5006,6 +5095,7 @@ var ScaleInputLabelStyleSchema = external_exports.object({
|
|
|
5006
5095
|
color: ThemedColorSchema.optional(),
|
|
5007
5096
|
align: external_exports.enum(["left", "center", "right"]).optional(),
|
|
5008
5097
|
lineHeight: external_exports.number().min(0.8).max(3).optional(),
|
|
5098
|
+
letterSpacing: external_exports.number().min(-0.5).max(1).optional(),
|
|
5009
5099
|
opacity: external_exports.number().min(0).max(1).optional()
|
|
5010
5100
|
}).partial();
|
|
5011
5101
|
var ScaleInputLayerSchema = external_exports.object({
|
|
@@ -5028,7 +5118,40 @@ var ScaleInputLayerSchema = external_exports.object({
|
|
|
5028
5118
|
thumbSize: external_exports.number().int().min(8).max(48).optional(),
|
|
5029
5119
|
thumbColor: ThemedColorSchema.optional(),
|
|
5030
5120
|
children: external_exports.lazy(() => external_exports.array(lazyLayer5())).optional(),
|
|
5031
|
-
style: CommonStyleSchema.optional()
|
|
5121
|
+
style: CommonStyleSchema.optional(),
|
|
5122
|
+
styleBreakpoints: CommonStyleBreakpointsSchema
|
|
5123
|
+
});
|
|
5124
|
+
var WheelPickerOptionSchema = external_exports.object({
|
|
5125
|
+
optionId: external_exports.string().min(1).max(64),
|
|
5126
|
+
label: LocalizedTextSchema
|
|
5127
|
+
});
|
|
5128
|
+
var WheelPickerItemStyleSchema = external_exports.object({
|
|
5129
|
+
fontFamily: external_exports.string().min(1).max(128).optional(),
|
|
5130
|
+
fontSize: external_exports.number().int().min(8).max(96).optional(),
|
|
5131
|
+
fontWeight: external_exports.number().int().min(100).max(900).optional(),
|
|
5132
|
+
color: ThemedColorSchema.optional(),
|
|
5133
|
+
opacity: external_exports.number().min(0).max(1).optional()
|
|
5134
|
+
}).partial();
|
|
5135
|
+
var WheelPickerLayerSchema = external_exports.object({
|
|
5136
|
+
...baseLayerShape,
|
|
5137
|
+
kind: external_exports.literal("wheel_picker"),
|
|
5138
|
+
fieldKey: FieldKeySchema,
|
|
5139
|
+
mode: external_exports.enum(["options", "date"]).optional(),
|
|
5140
|
+
options: external_exports.array(WheelPickerOptionSchema).min(2).optional(),
|
|
5141
|
+
defaultOptionId: external_exports.string().optional(),
|
|
5142
|
+
datePart: external_exports.enum(["year", "month", "day"]).optional(),
|
|
5143
|
+
minYear: external_exports.number().int().min(1e3).max(9999).optional(),
|
|
5144
|
+
maxYear: external_exports.number().int().min(1e3).max(9999).optional(),
|
|
5145
|
+
defaultValue: external_exports.string().optional(),
|
|
5146
|
+
placeholder: LocalizedTextSchema.optional(),
|
|
5147
|
+
itemHeight: external_exports.number().int().min(28).max(72).optional(),
|
|
5148
|
+
visibleItemCount: external_exports.number().int().min(3).max(9).optional(),
|
|
5149
|
+
selectionBackgroundColor: ThemedColorSchema.optional(),
|
|
5150
|
+
itemStyle: WheelPickerItemStyleSchema.optional(),
|
|
5151
|
+
selectedItemStyle: WheelPickerItemStyleSchema.optional(),
|
|
5152
|
+
children: external_exports.lazy(() => external_exports.array(lazyLayer5())).optional(),
|
|
5153
|
+
style: CommonStyleSchema.optional(),
|
|
5154
|
+
styleBreakpoints: CommonStyleBreakpointsSchema
|
|
5032
5155
|
});
|
|
5033
5156
|
var CarouselIndicatorsStyleSchema = external_exports.object({
|
|
5034
5157
|
width: external_exports.number().int().min(1).max(64).optional(),
|
|
@@ -5064,7 +5187,85 @@ var CarouselLayerSchema = external_exports.object({
|
|
|
5064
5187
|
autoAdvanceMs: external_exports.number().int().min(500).max(6e4).optional(),
|
|
5065
5188
|
pageControl: CarouselPageControlSchema.optional(),
|
|
5066
5189
|
style: CommonStyleSchema.optional(),
|
|
5067
|
-
styleBreakpoints: CommonStyleBreakpointsSchema
|
|
5190
|
+
styleBreakpoints: CommonStyleBreakpointsSchema,
|
|
5191
|
+
carouselLayoutBreakpoints: CarouselLayoutBreakpointsSchema
|
|
5192
|
+
});
|
|
5193
|
+
var DecisionBuiltinNameSchema = external_exports.enum(["locale", "platform"]);
|
|
5194
|
+
var DecisionVariableRefSchema = external_exports.discriminatedUnion("kind", [
|
|
5195
|
+
external_exports.object({ kind: external_exports.literal("builtin"), name: DecisionBuiltinNameSchema }),
|
|
5196
|
+
external_exports.object({ kind: external_exports.literal("sdk"), key: external_exports.string().min(1).max(128) }),
|
|
5197
|
+
external_exports.object({ kind: external_exports.literal("field"), fieldKey: external_exports.string().min(1).max(128) })
|
|
5198
|
+
]);
|
|
5199
|
+
var DecisionStringPredicateSchema = external_exports.discriminatedUnion("op", [
|
|
5200
|
+
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.string() }),
|
|
5201
|
+
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.string() }),
|
|
5202
|
+
external_exports.object({ op: external_exports.literal("contains"), value: external_exports.string() })
|
|
5203
|
+
]);
|
|
5204
|
+
var DecisionNumberPredicateSchema = external_exports.discriminatedUnion("op", [
|
|
5205
|
+
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.number() }),
|
|
5206
|
+
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.number() }),
|
|
5207
|
+
external_exports.object({ op: external_exports.literal("lt"), value: external_exports.number() }),
|
|
5208
|
+
external_exports.object({ op: external_exports.literal("lte"), value: external_exports.number() }),
|
|
5209
|
+
external_exports.object({ op: external_exports.literal("gt"), value: external_exports.number() }),
|
|
5210
|
+
external_exports.object({ op: external_exports.literal("gte"), value: external_exports.number() })
|
|
5211
|
+
]);
|
|
5212
|
+
var DecisionChoicePredicateSchema = external_exports.discriminatedUnion("op", [
|
|
5213
|
+
external_exports.object({ op: external_exports.literal("eq"), optionId: external_exports.string().min(1) }),
|
|
5214
|
+
external_exports.object({ op: external_exports.literal("one_of"), optionIds: external_exports.array(external_exports.string().min(1)).min(1) })
|
|
5215
|
+
]);
|
|
5216
|
+
var DecisionMultiPredicateSchema = external_exports.discriminatedUnion("op", [
|
|
5217
|
+
external_exports.object({
|
|
5218
|
+
op: external_exports.literal("intersects"),
|
|
5219
|
+
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
5220
|
+
}),
|
|
5221
|
+
external_exports.object({
|
|
5222
|
+
op: external_exports.literal("contains_all"),
|
|
5223
|
+
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
5224
|
+
}),
|
|
5225
|
+
external_exports.object({
|
|
5226
|
+
op: external_exports.literal("subset_of"),
|
|
5227
|
+
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
5228
|
+
})
|
|
5229
|
+
]);
|
|
5230
|
+
var DecisionBooleanPredicateSchema = external_exports.discriminatedUnion("op", [
|
|
5231
|
+
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.boolean() }),
|
|
5232
|
+
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.boolean() })
|
|
5233
|
+
]);
|
|
5234
|
+
var DecisionPredicatePayloadSchema = external_exports.discriminatedUnion("type", [
|
|
5235
|
+
external_exports.object({ type: external_exports.literal("string"), pred: DecisionStringPredicateSchema }),
|
|
5236
|
+
external_exports.object({ type: external_exports.literal("number"), pred: DecisionNumberPredicateSchema }),
|
|
5237
|
+
external_exports.object({ type: external_exports.literal("boolean"), pred: DecisionBooleanPredicateSchema }),
|
|
5238
|
+
external_exports.object({ type: external_exports.literal("choice"), pred: DecisionChoicePredicateSchema }),
|
|
5239
|
+
external_exports.object({ type: external_exports.literal("multi"), pred: DecisionMultiPredicateSchema })
|
|
5240
|
+
]);
|
|
5241
|
+
var DecisionExprSchema = external_exports.lazy(
|
|
5242
|
+
() => external_exports.discriminatedUnion("kind", [
|
|
5243
|
+
external_exports.object({ kind: external_exports.literal("empty") }),
|
|
5244
|
+
external_exports.object({
|
|
5245
|
+
kind: external_exports.literal("group"),
|
|
5246
|
+
op: external_exports.enum(["and", "or"]),
|
|
5247
|
+
children: external_exports.array(DecisionExprSchema).min(1)
|
|
5248
|
+
}),
|
|
5249
|
+
external_exports.object({
|
|
5250
|
+
kind: external_exports.literal("predicate"),
|
|
5251
|
+
variable: DecisionVariableRefSchema,
|
|
5252
|
+
predicate: DecisionPredicatePayloadSchema
|
|
5253
|
+
})
|
|
5254
|
+
])
|
|
5255
|
+
);
|
|
5256
|
+
var CONDITIONAL_MAX_CASES = 16;
|
|
5257
|
+
var ConditionalCaseSchema = external_exports.object({
|
|
5258
|
+
id: external_exports.string().min(1).max(80),
|
|
5259
|
+
name: external_exports.string().min(1).max(80).optional(),
|
|
5260
|
+
expression: DecisionExprSchema,
|
|
5261
|
+
rootLayerId: LayerIdSchema
|
|
5262
|
+
});
|
|
5263
|
+
var ConditionalLayerSchema = external_exports.object({
|
|
5264
|
+
...baseLayerShape,
|
|
5265
|
+
kind: external_exports.literal("conditional"),
|
|
5266
|
+
cases: external_exports.array(ConditionalCaseSchema).min(1).max(CONDITIONAL_MAX_CASES),
|
|
5267
|
+
elseRootLayerId: LayerIdSchema,
|
|
5268
|
+
children: external_exports.lazy(() => external_exports.array(StackLayerSchema).min(2))
|
|
5068
5269
|
});
|
|
5069
5270
|
layerSchemaStore.schema = external_exports.lazy(
|
|
5070
5271
|
() => external_exports.union([
|
|
@@ -5085,17 +5286,19 @@ layerSchemaStore.schema = external_exports.lazy(
|
|
|
5085
5286
|
MultipleChoiceLayerSchema,
|
|
5086
5287
|
TextInputLayerSchema,
|
|
5087
5288
|
ScaleInputLayerSchema,
|
|
5289
|
+
WheelPickerLayerSchema,
|
|
5088
5290
|
OAuthLoginLayerSchema,
|
|
5089
5291
|
OAuthProviderPresetLayerSchema,
|
|
5090
5292
|
OAuthProviderCustomLayerSchema,
|
|
5091
5293
|
EmailPasswordAuthLayerSchema,
|
|
5092
5294
|
EmailPasswordFieldLayerSchema,
|
|
5093
5295
|
EmailPasswordSubmitLayerSchema,
|
|
5094
|
-
CarouselLayerSchema
|
|
5296
|
+
CarouselLayerSchema,
|
|
5297
|
+
ConditionalLayerSchema
|
|
5095
5298
|
])
|
|
5096
5299
|
);
|
|
5097
5300
|
var LayerSchema = layerSchemaStore.schema;
|
|
5098
|
-
var isInputLayer = (l) => l.kind === "single_choice" || l.kind === "multiple_choice" || l.kind === "text_input" || l.kind === "scale_input";
|
|
5301
|
+
var isInputLayer = (l) => l.kind === "single_choice" || l.kind === "multiple_choice" || l.kind === "text_input" || l.kind === "scale_input" || l.kind === "wheel_picker";
|
|
5099
5302
|
|
|
5100
5303
|
// ../../node_modules/@getrheo/contracts/dist/localized.js
|
|
5101
5304
|
var LocaleCode2 = external_exports.string().regex(/^[a-z]{2}(-[A-Z]{2})?$/, 'locale must be like "en" or "en-US"');
|
|
@@ -5248,7 +5451,10 @@ var ThemedColorModesSchema2 = external_exports.object({
|
|
|
5248
5451
|
var ThemedColorSchema2 = external_exports.union([external_exports.string().min(1), ThemedColorModesSchema2]);
|
|
5249
5452
|
var LAYOUT_FRACTION_PRESETS2 = ["1/2", "1/3", "2/3", "1/4", "3/4"];
|
|
5250
5453
|
var WIDTH_PRESETS2 = ["auto", "full", ...LAYOUT_FRACTION_PRESETS2];
|
|
5251
|
-
var WidthValueSchema2 = external_exports.
|
|
5454
|
+
var WidthValueSchema2 = external_exports.preprocess(
|
|
5455
|
+
(value) => value === "fill" ? "full" : value,
|
|
5456
|
+
external_exports.union([external_exports.enum(WIDTH_PRESETS2), external_exports.number().int().min(0).max(2e3)])
|
|
5457
|
+
);
|
|
5252
5458
|
var HEIGHT_PRESETS2 = ["auto", "full", "fill", ...LAYOUT_FRACTION_PRESETS2];
|
|
5253
5459
|
var CommonLayoutHeightSchema2 = external_exports.union([
|
|
5254
5460
|
external_exports.enum(HEIGHT_PRESETS2),
|
|
@@ -5281,6 +5487,8 @@ var CommonStyleSchema2 = external_exports.object({
|
|
|
5281
5487
|
border: BorderSchema2.optional(),
|
|
5282
5488
|
shadow: DropShadowSchema2.optional(),
|
|
5283
5489
|
opacity: external_exports.number().min(0).max(1).optional(),
|
|
5490
|
+
/** Multiplier (0–1) applied to the resolved background color alpha only; children stay fully opaque unless `opacity` is set. */
|
|
5491
|
+
backgroundOpacity: external_exports.number().min(0).max(1).optional(),
|
|
5284
5492
|
width: WidthValueSchema2.optional(),
|
|
5285
5493
|
/** Omit for normal flow; `'absolute'` removes the layer from flex flow (non-root only). */
|
|
5286
5494
|
position: external_exports.literal("absolute").optional(),
|
|
@@ -5291,6 +5499,11 @@ var CommonStyleSchema2 = external_exports.object({
|
|
|
5291
5499
|
rotate: external_exports.number().min(-360).max(360).optional(),
|
|
5292
5500
|
/** Cross-axis size: `auto` (hug), `full`/`fill` (parent height), fractions, or fixed px. */
|
|
5293
5501
|
height: CommonLayoutHeightSchema2.optional(),
|
|
5502
|
+
/** Optional size clamps (px); applied on the flex shell / wrapper like width/height. */
|
|
5503
|
+
minWidth: NonNegativePxSchema2.max(2e3).optional(),
|
|
5504
|
+
maxWidth: NonNegativePxSchema2.max(2e3).optional(),
|
|
5505
|
+
minHeight: NonNegativePxSchema2.max(2e3).optional(),
|
|
5506
|
+
maxHeight: NonNegativePxSchema2.max(2e3).optional(),
|
|
5294
5507
|
/** Stroke thickness in px for layers that render a stroke primitive (e.g. loader ring). */
|
|
5295
5508
|
strokeWidth: external_exports.number().int().min(0).max(64).optional()
|
|
5296
5509
|
}).partial();
|
|
@@ -5304,9 +5517,10 @@ var TextStyleSchema2 = CommonStyleSchema2.extend({
|
|
|
5304
5517
|
fontWeight: external_exports.number().int().min(100).max(900).optional(),
|
|
5305
5518
|
color: ThemedColorSchema2.optional(),
|
|
5306
5519
|
align: external_exports.enum(["left", "center", "right"]).optional(),
|
|
5520
|
+
/** Unitless line-height multiplier (CSS `line-height` without units). */
|
|
5307
5521
|
lineHeight: external_exports.number().min(0.8).max(3).optional(),
|
|
5308
|
-
/**
|
|
5309
|
-
|
|
5522
|
+
/** Extra spacing between characters as a multiple of `fontSize` (CSS `em`; negative values tighten). */
|
|
5523
|
+
letterSpacing: external_exports.number().min(-0.5).max(1).optional()
|
|
5310
5524
|
});
|
|
5311
5525
|
var ImageStyleSchema2 = CommonStyleSchema2.extend({
|
|
5312
5526
|
fit: external_exports.enum(["cover", "contain", "fill"]).optional(),
|
|
@@ -5381,6 +5595,41 @@ var ButtonLayoutBreakpointsSchema2 = external_exports.object({
|
|
|
5381
5595
|
xl: ButtonLayoutBreakpointPatchSchema2.optional(),
|
|
5382
5596
|
"2xl": ButtonLayoutBreakpointPatchSchema2.optional()
|
|
5383
5597
|
}).partial().optional();
|
|
5598
|
+
var AuthLayoutBreakpointPatchSchema2 = external_exports.object({
|
|
5599
|
+
gap: NonNegativePxSchema2.optional(),
|
|
5600
|
+
align: external_exports.enum(["start", "center", "end", "stretch"]).optional()
|
|
5601
|
+
}).partial();
|
|
5602
|
+
var AuthLayoutBreakpointsSchema2 = external_exports.object({
|
|
5603
|
+
sm: AuthLayoutBreakpointPatchSchema2.optional(),
|
|
5604
|
+
md: AuthLayoutBreakpointPatchSchema2.optional(),
|
|
5605
|
+
lg: AuthLayoutBreakpointPatchSchema2.optional(),
|
|
5606
|
+
xl: AuthLayoutBreakpointPatchSchema2.optional(),
|
|
5607
|
+
"2xl": AuthLayoutBreakpointPatchSchema2.optional()
|
|
5608
|
+
}).partial().optional();
|
|
5609
|
+
var ChoiceLayoutBreakpointPatchSchema2 = external_exports.object({
|
|
5610
|
+
direction: external_exports.enum(["vertical", "horizontal"]).optional(),
|
|
5611
|
+
gap: NonNegativePxSchema2.optional(),
|
|
5612
|
+
columns: external_exports.number().int().min(1).max(6).optional()
|
|
5613
|
+
}).partial();
|
|
5614
|
+
var ChoiceLayoutBreakpointsSchema2 = external_exports.object({
|
|
5615
|
+
sm: ChoiceLayoutBreakpointPatchSchema2.optional(),
|
|
5616
|
+
md: ChoiceLayoutBreakpointPatchSchema2.optional(),
|
|
5617
|
+
lg: ChoiceLayoutBreakpointPatchSchema2.optional(),
|
|
5618
|
+
xl: ChoiceLayoutBreakpointPatchSchema2.optional(),
|
|
5619
|
+
"2xl": ChoiceLayoutBreakpointPatchSchema2.optional()
|
|
5620
|
+
}).partial().optional();
|
|
5621
|
+
var CarouselLayoutBreakpointPatchSchema2 = external_exports.object({
|
|
5622
|
+
pageAlignment: external_exports.enum(["top", "center", "bottom"]).optional(),
|
|
5623
|
+
pageSpacing: NonNegativePxSchema2.optional(),
|
|
5624
|
+
pagePeek: NonNegativePxSchema2.optional()
|
|
5625
|
+
}).partial();
|
|
5626
|
+
var CarouselLayoutBreakpointsSchema2 = external_exports.object({
|
|
5627
|
+
sm: CarouselLayoutBreakpointPatchSchema2.optional(),
|
|
5628
|
+
md: CarouselLayoutBreakpointPatchSchema2.optional(),
|
|
5629
|
+
lg: CarouselLayoutBreakpointPatchSchema2.optional(),
|
|
5630
|
+
xl: CarouselLayoutBreakpointPatchSchema2.optional(),
|
|
5631
|
+
"2xl": CarouselLayoutBreakpointPatchSchema2.optional()
|
|
5632
|
+
}).partial().optional();
|
|
5384
5633
|
var DecisionNodeJumpIdSchema2 = external_exports.string().min(1).max(64).regex(/^dec_[a-z0-9_]+$/i);
|
|
5385
5634
|
var ExternalSurfaceJumpIdSchema2 = external_exports.string().min(1).max(64).regex(/^surf_[a-z0-9_]+$/i);
|
|
5386
5635
|
var FlowGraphNodeJumpTargetSchema2 = ScreenIdSchema2.or(DecisionNodeJumpIdSchema2).or(
|
|
@@ -5425,6 +5674,8 @@ var OsPermissionOutcomesSchema2 = external_exports.object({
|
|
|
5425
5674
|
}).strict();
|
|
5426
5675
|
var APP_REVIEW_OUTCOMES2 = ["not_shown", "dismissed"];
|
|
5427
5676
|
external_exports.enum(APP_REVIEW_OUTCOMES2);
|
|
5677
|
+
var CAROUSEL_ADVANCE_ON_LAST2 = ["noop", "complete"];
|
|
5678
|
+
var CarouselAdvanceOnLastSchema2 = external_exports.enum(CAROUSEL_ADVANCE_ON_LAST2);
|
|
5428
5679
|
var ButtonActionSchema2 = external_exports.discriminatedUnion("kind", [
|
|
5429
5680
|
external_exports.object({ kind: external_exports.literal("none") }),
|
|
5430
5681
|
external_exports.object({ kind: external_exports.literal("continue") }),
|
|
@@ -5444,9 +5695,14 @@ var ButtonActionSchema2 = external_exports.discriminatedUnion("kind", [
|
|
|
5444
5695
|
kind: external_exports.literal("play_media"),
|
|
5445
5696
|
targetLayerIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
5446
5697
|
}),
|
|
5447
|
-
external_exports.object({ kind: external_exports.literal("request_app_review") })
|
|
5698
|
+
external_exports.object({ kind: external_exports.literal("request_app_review") }),
|
|
5699
|
+
external_exports.object({
|
|
5700
|
+
kind: external_exports.literal("advance_carousel"),
|
|
5701
|
+
targetLayerId: external_exports.string().min(1),
|
|
5702
|
+
onLast: CarouselAdvanceOnLastSchema2.optional()
|
|
5703
|
+
})
|
|
5448
5704
|
]);
|
|
5449
|
-
var TEXT_INPUT_TYPES2 = ["plain", "email", "phone", "url", "multiline"];
|
|
5705
|
+
var TEXT_INPUT_TYPES2 = ["plain", "email", "phone", "url", "number", "multiline"];
|
|
5450
5706
|
var TextInputTypeSchema2 = external_exports.enum(TEXT_INPUT_TYPES2);
|
|
5451
5707
|
var COUNTER_DISPLAY_KINDS2 = ["number", "time"];
|
|
5452
5708
|
var COUNTER_TIME_FORMATS2 = ["mm_ss", "hh_mm_ss", "dd_hh_mm_ss"];
|
|
@@ -5511,7 +5767,8 @@ var ProgressLayerSchema2 = external_exports.object({
|
|
|
5511
5767
|
kind: external_exports.literal("progress"),
|
|
5512
5768
|
trackColor: ThemedColorSchema2.optional(),
|
|
5513
5769
|
fillColor: ThemedColorSchema2.optional(),
|
|
5514
|
-
style: CommonStyleSchema2.optional()
|
|
5770
|
+
style: CommonStyleSchema2.optional(),
|
|
5771
|
+
styleBreakpoints: CommonStyleBreakpointsSchema2
|
|
5515
5772
|
});
|
|
5516
5773
|
var LoaderOnCompleteSchema2 = external_exports.discriminatedUnion("mode", [
|
|
5517
5774
|
external_exports.object({ mode: external_exports.literal("none") }),
|
|
@@ -5531,7 +5788,8 @@ var LoaderLayerSchema2 = external_exports.object({
|
|
|
5531
5788
|
fillColor: ThemedColorSchema2.optional(),
|
|
5532
5789
|
/** Horizontal alignment of the bar or ring within the layer box (default start). */
|
|
5533
5790
|
align: external_exports.enum(["start", "center", "end"]).optional(),
|
|
5534
|
-
style: CommonStyleSchema2.optional()
|
|
5791
|
+
style: CommonStyleSchema2.optional(),
|
|
5792
|
+
styleBreakpoints: CommonStyleBreakpointsSchema2
|
|
5535
5793
|
}).superRefine((data, ctx) => {
|
|
5536
5794
|
if (data.variant !== "circular") return;
|
|
5537
5795
|
const w = data.style?.width;
|
|
@@ -5568,27 +5826,39 @@ var CheckboxLayerSchema2 = external_exports.object({
|
|
|
5568
5826
|
styleBreakpoints: CommonStyleBreakpointsSchema2
|
|
5569
5827
|
});
|
|
5570
5828
|
var lazyLayer22 = () => layerSchemaStore2.schema;
|
|
5571
|
-
var
|
|
5572
|
-
|
|
5573
|
-
|
|
5574
|
-
|
|
5575
|
-
|
|
5576
|
-
|
|
5577
|
-
|
|
5578
|
-
|
|
5579
|
-
|
|
5580
|
-
|
|
5581
|
-
|
|
5582
|
-
|
|
5583
|
-
|
|
5584
|
-
|
|
5585
|
-
|
|
5829
|
+
var migrateStackJustifyForParse2 = (raw) => {
|
|
5830
|
+
if (!raw || typeof raw !== "object") return raw;
|
|
5831
|
+
const o = { ...raw };
|
|
5832
|
+
if (o.justify != null && o.distribution == null) o.distribution = o.justify;
|
|
5833
|
+
delete o.justify;
|
|
5834
|
+
return o;
|
|
5835
|
+
};
|
|
5836
|
+
var StackLayerSchema2 = external_exports.preprocess(
|
|
5837
|
+
migrateStackJustifyForParse2,
|
|
5838
|
+
external_exports.object({
|
|
5839
|
+
...baseLayerShape2,
|
|
5840
|
+
kind: external_exports.literal("stack"),
|
|
5841
|
+
style: CommonStyleSchema2.optional(),
|
|
5842
|
+
styleBreakpoints: CommonStyleBreakpointsSchema2,
|
|
5843
|
+
stackLayoutBreakpoints: StackLayoutBreakpointsSchema2,
|
|
5844
|
+
selectedStyle: CommonStyleSchema2.optional(),
|
|
5845
|
+
selectedStyleBreakpoints: CommonStyleBreakpointsSchema2,
|
|
5846
|
+
direction: external_exports.enum(["vertical", "horizontal"]),
|
|
5847
|
+
gap: external_exports.number().int().min(0).optional(),
|
|
5848
|
+
align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
|
|
5849
|
+
distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
|
|
5850
|
+
wrap: external_exports.boolean().optional(),
|
|
5851
|
+
children: external_exports.lazy(() => external_exports.array(lazyLayer22()))
|
|
5852
|
+
})
|
|
5853
|
+
);
|
|
5586
5854
|
var TextLayerSchema2 = external_exports.object({
|
|
5587
5855
|
...baseLayerShape2,
|
|
5588
5856
|
kind: external_exports.literal("text"),
|
|
5589
5857
|
text: LocalizedTextSchema3,
|
|
5590
5858
|
style: TextStyleSchema2.optional(),
|
|
5591
|
-
styleBreakpoints: TextStyleBreakpointsSchema2
|
|
5859
|
+
styleBreakpoints: TextStyleBreakpointsSchema2,
|
|
5860
|
+
/** Merged on top of resolved `style` when this layer is inside a selected choice option. */
|
|
5861
|
+
selectedStyle: TextStyleSchema2.optional()
|
|
5592
5862
|
});
|
|
5593
5863
|
var migrateLegacyHyperlinkForParse2 = (raw) => {
|
|
5594
5864
|
if (!raw || typeof raw !== "object") return raw;
|
|
@@ -5627,7 +5897,8 @@ var HyperlinkLayerSchemaInner2 = external_exports.object({
|
|
|
5627
5897
|
distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
|
|
5628
5898
|
wrap: external_exports.boolean().optional(),
|
|
5629
5899
|
style: CommonStyleSchema2.optional(),
|
|
5630
|
-
styleBreakpoints: CommonStyleBreakpointsSchema2
|
|
5900
|
+
styleBreakpoints: CommonStyleBreakpointsSchema2,
|
|
5901
|
+
hyperlinkLayoutBreakpoints: StackLayoutBreakpointsSchema2
|
|
5631
5902
|
}).superRefine((data, ctx) => {
|
|
5632
5903
|
const p = parseHyperlinkHref2(data.href.trim());
|
|
5633
5904
|
if (!p.ok) {
|
|
@@ -5648,7 +5919,8 @@ var ImageLayerSchema2 = external_exports.object({
|
|
|
5648
5919
|
media: MediaReferenceSchema2.optional(),
|
|
5649
5920
|
alt: external_exports.string().max(280).optional(),
|
|
5650
5921
|
style: ImageStyleSchema2.optional(),
|
|
5651
|
-
styleBreakpoints: ImageStyleBreakpointsSchema2
|
|
5922
|
+
styleBreakpoints: ImageStyleBreakpointsSchema2,
|
|
5923
|
+
selectedStyle: ImageStyleSchema2.optional()
|
|
5652
5924
|
});
|
|
5653
5925
|
var LottieLayerSchema2 = external_exports.object({
|
|
5654
5926
|
...baseLayerShape2,
|
|
@@ -5659,7 +5931,8 @@ var LottieLayerSchema2 = external_exports.object({
|
|
|
5659
5931
|
triggerLayerId: external_exports.string().min(1).optional(),
|
|
5660
5932
|
onComplete: LoaderOnCompleteSchema2.optional(),
|
|
5661
5933
|
style: ImageStyleSchema2.optional(),
|
|
5662
|
-
styleBreakpoints: ImageStyleBreakpointsSchema2
|
|
5934
|
+
styleBreakpoints: ImageStyleBreakpointsSchema2,
|
|
5935
|
+
selectedStyle: ImageStyleSchema2.optional()
|
|
5663
5936
|
});
|
|
5664
5937
|
var VideoLayerSchema2 = external_exports.object({
|
|
5665
5938
|
...baseLayerShape2,
|
|
@@ -5671,7 +5944,8 @@ var VideoLayerSchema2 = external_exports.object({
|
|
|
5671
5944
|
onComplete: LoaderOnCompleteSchema2.optional(),
|
|
5672
5945
|
audioEnabled: external_exports.boolean().optional(),
|
|
5673
5946
|
style: ImageStyleSchema2.optional(),
|
|
5674
|
-
styleBreakpoints: ImageStyleBreakpointsSchema2
|
|
5947
|
+
styleBreakpoints: ImageStyleBreakpointsSchema2,
|
|
5948
|
+
selectedStyle: ImageStyleSchema2.optional()
|
|
5675
5949
|
});
|
|
5676
5950
|
var IconLayerSchema2 = external_exports.object({
|
|
5677
5951
|
...baseLayerShape2,
|
|
@@ -5679,7 +5953,8 @@ var IconLayerSchema2 = external_exports.object({
|
|
|
5679
5953
|
family: external_exports.enum(ICON_FAMILIES2),
|
|
5680
5954
|
iconName: external_exports.string().min(1).max(128),
|
|
5681
5955
|
style: IconStyleSchema2.optional(),
|
|
5682
|
-
styleBreakpoints: IconStyleBreakpointsSchema2
|
|
5956
|
+
styleBreakpoints: IconStyleBreakpointsSchema2,
|
|
5957
|
+
selectedStyle: IconStyleSchema2.optional()
|
|
5683
5958
|
});
|
|
5684
5959
|
var lazyLayer32 = () => layerSchemaStore2.schema;
|
|
5685
5960
|
var OAuthProviderPresetLayerSchema2 = external_exports.object({
|
|
@@ -5833,6 +6108,7 @@ var OAuthLoginLayerSchemaValidated2 = external_exports.object({
|
|
|
5833
6108
|
),
|
|
5834
6109
|
gap: external_exports.number().int().min(0).optional(),
|
|
5835
6110
|
align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
|
|
6111
|
+
authLayoutBreakpoints: AuthLayoutBreakpointsSchema2,
|
|
5836
6112
|
style: CommonStyleSchema2.optional(),
|
|
5837
6113
|
styleBreakpoints: CommonStyleBreakpointsSchema2
|
|
5838
6114
|
});
|
|
@@ -5984,6 +6260,7 @@ var EmailPasswordAuthLayerSchemaValidated2 = external_exports.object({
|
|
|
5984
6260
|
),
|
|
5985
6261
|
gap: external_exports.number().int().min(0).optional(),
|
|
5986
6262
|
align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
|
|
6263
|
+
authLayoutBreakpoints: AuthLayoutBreakpointsSchema2,
|
|
5987
6264
|
style: CommonStyleSchema2.optional(),
|
|
5988
6265
|
styleBreakpoints: CommonStyleBreakpointsSchema2
|
|
5989
6266
|
}).superRefine(refineEmailPasswordAuthChildren2);
|
|
@@ -6017,7 +6294,8 @@ var SingleChoiceLayerSchema2 = external_exports.object({
|
|
|
6017
6294
|
gap: external_exports.number().int().min(0).optional(),
|
|
6018
6295
|
columns: external_exports.number().int().min(1).max(12).optional(),
|
|
6019
6296
|
style: CommonStyleSchema2.optional(),
|
|
6020
|
-
styleBreakpoints: CommonStyleBreakpointsSchema2
|
|
6297
|
+
styleBreakpoints: CommonStyleBreakpointsSchema2,
|
|
6298
|
+
choiceLayoutBreakpoints: ChoiceLayoutBreakpointsSchema2
|
|
6021
6299
|
});
|
|
6022
6300
|
var MultipleChoiceLayerSchema2 = external_exports.object({
|
|
6023
6301
|
...baseLayerShape2,
|
|
@@ -6034,8 +6312,19 @@ var MultipleChoiceLayerSchema2 = external_exports.object({
|
|
|
6034
6312
|
gap: external_exports.number().int().min(0).optional(),
|
|
6035
6313
|
columns: external_exports.number().int().min(1).max(12).optional(),
|
|
6036
6314
|
style: CommonStyleSchema2.optional(),
|
|
6037
|
-
styleBreakpoints: CommonStyleBreakpointsSchema2
|
|
6315
|
+
styleBreakpoints: CommonStyleBreakpointsSchema2,
|
|
6316
|
+
choiceLayoutBreakpoints: ChoiceLayoutBreakpointsSchema2
|
|
6038
6317
|
});
|
|
6318
|
+
var TextInputFieldStyleSchema2 = external_exports.object({
|
|
6319
|
+
fontFamily: external_exports.string().min(1).max(128).optional(),
|
|
6320
|
+
fontSize: external_exports.number().int().min(8).max(96).optional(),
|
|
6321
|
+
fontWeight: external_exports.number().int().min(100).max(900).optional(),
|
|
6322
|
+
color: ThemedColorSchema2.optional(),
|
|
6323
|
+
align: external_exports.enum(["left", "center", "right"]).optional(),
|
|
6324
|
+
lineHeight: external_exports.number().min(0.8).max(3).optional(),
|
|
6325
|
+
letterSpacing: external_exports.number().min(-0.5).max(1).optional(),
|
|
6326
|
+
opacity: external_exports.number().min(0).max(1).optional()
|
|
6327
|
+
}).partial();
|
|
6039
6328
|
var TextInputLayerSchema2 = external_exports.object({
|
|
6040
6329
|
...baseLayerShape2,
|
|
6041
6330
|
kind: external_exports.literal("text_input"),
|
|
@@ -6047,7 +6336,10 @@ var TextInputLayerSchema2 = external_exports.object({
|
|
|
6047
6336
|
maxLength: external_exports.number().int().positive().max(2e3).optional(),
|
|
6048
6337
|
classification: FieldClassificationSchema2,
|
|
6049
6338
|
children: external_exports.lazy(() => external_exports.array(lazyLayer52())).optional(),
|
|
6050
|
-
|
|
6339
|
+
/** Typography for the native input's typed text. */
|
|
6340
|
+
fieldStyle: TextInputFieldStyleSchema2.optional(),
|
|
6341
|
+
style: CommonStyleSchema2.optional(),
|
|
6342
|
+
styleBreakpoints: CommonStyleBreakpointsSchema2
|
|
6051
6343
|
});
|
|
6052
6344
|
var ScaleInputLabelStyleSchema2 = external_exports.object({
|
|
6053
6345
|
fontFamily: external_exports.string().min(1).max(128).optional(),
|
|
@@ -6056,6 +6348,7 @@ var ScaleInputLabelStyleSchema2 = external_exports.object({
|
|
|
6056
6348
|
color: ThemedColorSchema2.optional(),
|
|
6057
6349
|
align: external_exports.enum(["left", "center", "right"]).optional(),
|
|
6058
6350
|
lineHeight: external_exports.number().min(0.8).max(3).optional(),
|
|
6351
|
+
letterSpacing: external_exports.number().min(-0.5).max(1).optional(),
|
|
6059
6352
|
opacity: external_exports.number().min(0).max(1).optional()
|
|
6060
6353
|
}).partial();
|
|
6061
6354
|
var ScaleInputLayerSchema2 = external_exports.object({
|
|
@@ -6078,7 +6371,40 @@ var ScaleInputLayerSchema2 = external_exports.object({
|
|
|
6078
6371
|
thumbSize: external_exports.number().int().min(8).max(48).optional(),
|
|
6079
6372
|
thumbColor: ThemedColorSchema2.optional(),
|
|
6080
6373
|
children: external_exports.lazy(() => external_exports.array(lazyLayer52())).optional(),
|
|
6081
|
-
style: CommonStyleSchema2.optional()
|
|
6374
|
+
style: CommonStyleSchema2.optional(),
|
|
6375
|
+
styleBreakpoints: CommonStyleBreakpointsSchema2
|
|
6376
|
+
});
|
|
6377
|
+
var WheelPickerOptionSchema2 = external_exports.object({
|
|
6378
|
+
optionId: external_exports.string().min(1).max(64),
|
|
6379
|
+
label: LocalizedTextSchema3
|
|
6380
|
+
});
|
|
6381
|
+
var WheelPickerItemStyleSchema2 = external_exports.object({
|
|
6382
|
+
fontFamily: external_exports.string().min(1).max(128).optional(),
|
|
6383
|
+
fontSize: external_exports.number().int().min(8).max(96).optional(),
|
|
6384
|
+
fontWeight: external_exports.number().int().min(100).max(900).optional(),
|
|
6385
|
+
color: ThemedColorSchema2.optional(),
|
|
6386
|
+
opacity: external_exports.number().min(0).max(1).optional()
|
|
6387
|
+
}).partial();
|
|
6388
|
+
var WheelPickerLayerSchema2 = external_exports.object({
|
|
6389
|
+
...baseLayerShape2,
|
|
6390
|
+
kind: external_exports.literal("wheel_picker"),
|
|
6391
|
+
fieldKey: FieldKeySchema2,
|
|
6392
|
+
mode: external_exports.enum(["options", "date"]).optional(),
|
|
6393
|
+
options: external_exports.array(WheelPickerOptionSchema2).min(2).optional(),
|
|
6394
|
+
defaultOptionId: external_exports.string().optional(),
|
|
6395
|
+
datePart: external_exports.enum(["year", "month", "day"]).optional(),
|
|
6396
|
+
minYear: external_exports.number().int().min(1e3).max(9999).optional(),
|
|
6397
|
+
maxYear: external_exports.number().int().min(1e3).max(9999).optional(),
|
|
6398
|
+
defaultValue: external_exports.string().optional(),
|
|
6399
|
+
placeholder: LocalizedTextSchema3.optional(),
|
|
6400
|
+
itemHeight: external_exports.number().int().min(28).max(72).optional(),
|
|
6401
|
+
visibleItemCount: external_exports.number().int().min(3).max(9).optional(),
|
|
6402
|
+
selectionBackgroundColor: ThemedColorSchema2.optional(),
|
|
6403
|
+
itemStyle: WheelPickerItemStyleSchema2.optional(),
|
|
6404
|
+
selectedItemStyle: WheelPickerItemStyleSchema2.optional(),
|
|
6405
|
+
children: external_exports.lazy(() => external_exports.array(lazyLayer52())).optional(),
|
|
6406
|
+
style: CommonStyleSchema2.optional(),
|
|
6407
|
+
styleBreakpoints: CommonStyleBreakpointsSchema2
|
|
6082
6408
|
});
|
|
6083
6409
|
var CarouselIndicatorsStyleSchema2 = external_exports.object({
|
|
6084
6410
|
width: external_exports.number().int().min(1).max(64).optional(),
|
|
@@ -6114,53 +6440,21 @@ var CarouselLayerSchema2 = external_exports.object({
|
|
|
6114
6440
|
autoAdvanceMs: external_exports.number().int().min(500).max(6e4).optional(),
|
|
6115
6441
|
pageControl: CarouselPageControlSchema2.optional(),
|
|
6116
6442
|
style: CommonStyleSchema2.optional(),
|
|
6117
|
-
styleBreakpoints: CommonStyleBreakpointsSchema2
|
|
6443
|
+
styleBreakpoints: CommonStyleBreakpointsSchema2,
|
|
6444
|
+
carouselLayoutBreakpoints: CarouselLayoutBreakpointsSchema2
|
|
6118
6445
|
});
|
|
6119
|
-
|
|
6120
|
-
|
|
6121
|
-
|
|
6122
|
-
TextLayerSchema2,
|
|
6123
|
-
HyperlinkLayerSchema2,
|
|
6124
|
-
ImageLayerSchema2,
|
|
6125
|
-
LottieLayerSchema2,
|
|
6126
|
-
VideoLayerSchema2,
|
|
6127
|
-
IconLayerSchema2,
|
|
6128
|
-
ButtonLayerSchema2,
|
|
6129
|
-
BackButtonLayerSchema2,
|
|
6130
|
-
ProgressLayerSchema2,
|
|
6131
|
-
LoaderLayerSchema2,
|
|
6132
|
-
CounterLayerSchema2,
|
|
6133
|
-
CheckboxLayerSchema2,
|
|
6134
|
-
SingleChoiceLayerSchema2,
|
|
6135
|
-
MultipleChoiceLayerSchema2,
|
|
6136
|
-
TextInputLayerSchema2,
|
|
6137
|
-
ScaleInputLayerSchema2,
|
|
6138
|
-
OAuthLoginLayerSchema2,
|
|
6139
|
-
OAuthProviderPresetLayerSchema2,
|
|
6140
|
-
OAuthProviderCustomLayerSchema2,
|
|
6141
|
-
EmailPasswordAuthLayerSchema2,
|
|
6142
|
-
EmailPasswordFieldLayerSchema2,
|
|
6143
|
-
EmailPasswordSubmitLayerSchema2,
|
|
6144
|
-
CarouselLayerSchema2
|
|
6145
|
-
])
|
|
6146
|
-
);
|
|
6147
|
-
var DecisionNodeIdSchema = external_exports.string().min(1).max(64).regex(/^dec_[a-z0-9_]+$/i, "decision node id must look like dec_<id>");
|
|
6148
|
-
var ExternalSurfaceJumpIdSchema22 = external_exports.string().min(1).max(64).regex(/^surf_[a-z0-9_]+$/i, "external surface node id must look like surf_<id>");
|
|
6149
|
-
var EXTERNAL_SURFACE_NO_NEXT = "__onb_surface_no_next__";
|
|
6150
|
-
var ExternalSurfaceTerminalTargetSchema = external_exports.literal(EXTERNAL_SURFACE_NO_NEXT);
|
|
6151
|
-
var FlowJumpTargetSchema = ScreenIdSchema2.or(DecisionNodeIdSchema).or(ExternalSurfaceJumpIdSchema22).or(ExternalSurfaceTerminalTargetSchema).nullable();
|
|
6152
|
-
var DecisionBuiltinNameSchema = external_exports.enum(["locale", "platform"]);
|
|
6153
|
-
var DecisionVariableRefSchema = external_exports.discriminatedUnion("kind", [
|
|
6154
|
-
external_exports.object({ kind: external_exports.literal("builtin"), name: DecisionBuiltinNameSchema }),
|
|
6446
|
+
var DecisionBuiltinNameSchema2 = external_exports.enum(["locale", "platform"]);
|
|
6447
|
+
var DecisionVariableRefSchema2 = external_exports.discriminatedUnion("kind", [
|
|
6448
|
+
external_exports.object({ kind: external_exports.literal("builtin"), name: DecisionBuiltinNameSchema2 }),
|
|
6155
6449
|
external_exports.object({ kind: external_exports.literal("sdk"), key: external_exports.string().min(1).max(128) }),
|
|
6156
6450
|
external_exports.object({ kind: external_exports.literal("field"), fieldKey: external_exports.string().min(1).max(128) })
|
|
6157
6451
|
]);
|
|
6158
|
-
var
|
|
6452
|
+
var DecisionStringPredicateSchema2 = external_exports.discriminatedUnion("op", [
|
|
6159
6453
|
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.string() }),
|
|
6160
6454
|
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.string() }),
|
|
6161
6455
|
external_exports.object({ op: external_exports.literal("contains"), value: external_exports.string() })
|
|
6162
6456
|
]);
|
|
6163
|
-
var
|
|
6457
|
+
var DecisionNumberPredicateSchema2 = external_exports.discriminatedUnion("op", [
|
|
6164
6458
|
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.number() }),
|
|
6165
6459
|
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.number() }),
|
|
6166
6460
|
external_exports.object({ op: external_exports.literal("lt"), value: external_exports.number() }),
|
|
@@ -6168,11 +6462,11 @@ var DecisionNumberPredicateSchema = external_exports.discriminatedUnion("op", [
|
|
|
6168
6462
|
external_exports.object({ op: external_exports.literal("gt"), value: external_exports.number() }),
|
|
6169
6463
|
external_exports.object({ op: external_exports.literal("gte"), value: external_exports.number() })
|
|
6170
6464
|
]);
|
|
6171
|
-
var
|
|
6465
|
+
var DecisionChoicePredicateSchema2 = external_exports.discriminatedUnion("op", [
|
|
6172
6466
|
external_exports.object({ op: external_exports.literal("eq"), optionId: external_exports.string().min(1) }),
|
|
6173
6467
|
external_exports.object({ op: external_exports.literal("one_of"), optionIds: external_exports.array(external_exports.string().min(1)).min(1) })
|
|
6174
6468
|
]);
|
|
6175
|
-
var
|
|
6469
|
+
var DecisionMultiPredicateSchema2 = external_exports.discriminatedUnion("op", [
|
|
6176
6470
|
external_exports.object({
|
|
6177
6471
|
op: external_exports.literal("intersects"),
|
|
6178
6472
|
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
@@ -6186,45 +6480,32 @@ var DecisionMultiPredicateSchema = external_exports.discriminatedUnion("op", [
|
|
|
6186
6480
|
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
6187
6481
|
})
|
|
6188
6482
|
]);
|
|
6189
|
-
var
|
|
6483
|
+
var DecisionBooleanPredicateSchema2 = external_exports.discriminatedUnion("op", [
|
|
6190
6484
|
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.boolean() }),
|
|
6191
6485
|
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.boolean() })
|
|
6192
6486
|
]);
|
|
6193
|
-
var
|
|
6194
|
-
external_exports.object({ type: external_exports.literal("string"), pred:
|
|
6195
|
-
external_exports.object({ type: external_exports.literal("number"), pred:
|
|
6196
|
-
external_exports.object({ type: external_exports.literal("boolean"), pred:
|
|
6197
|
-
external_exports.object({ type: external_exports.literal("choice"), pred:
|
|
6198
|
-
external_exports.object({ type: external_exports.literal("multi"), pred:
|
|
6487
|
+
var DecisionPredicatePayloadSchema2 = external_exports.discriminatedUnion("type", [
|
|
6488
|
+
external_exports.object({ type: external_exports.literal("string"), pred: DecisionStringPredicateSchema2 }),
|
|
6489
|
+
external_exports.object({ type: external_exports.literal("number"), pred: DecisionNumberPredicateSchema2 }),
|
|
6490
|
+
external_exports.object({ type: external_exports.literal("boolean"), pred: DecisionBooleanPredicateSchema2 }),
|
|
6491
|
+
external_exports.object({ type: external_exports.literal("choice"), pred: DecisionChoicePredicateSchema2 }),
|
|
6492
|
+
external_exports.object({ type: external_exports.literal("multi"), pred: DecisionMultiPredicateSchema2 })
|
|
6199
6493
|
]);
|
|
6200
|
-
var
|
|
6494
|
+
var DecisionExprSchema2 = external_exports.lazy(
|
|
6201
6495
|
() => external_exports.discriminatedUnion("kind", [
|
|
6202
6496
|
external_exports.object({ kind: external_exports.literal("empty") }),
|
|
6203
6497
|
external_exports.object({
|
|
6204
6498
|
kind: external_exports.literal("group"),
|
|
6205
6499
|
op: external_exports.enum(["and", "or"]),
|
|
6206
|
-
children: external_exports.array(
|
|
6500
|
+
children: external_exports.array(DecisionExprSchema2).min(1)
|
|
6207
6501
|
}),
|
|
6208
6502
|
external_exports.object({
|
|
6209
6503
|
kind: external_exports.literal("predicate"),
|
|
6210
|
-
variable:
|
|
6211
|
-
predicate:
|
|
6504
|
+
variable: DecisionVariableRefSchema2,
|
|
6505
|
+
predicate: DecisionPredicatePayloadSchema2
|
|
6212
6506
|
})
|
|
6213
6507
|
])
|
|
6214
6508
|
);
|
|
6215
|
-
var DecisionCaseSchema = external_exports.object({
|
|
6216
|
-
id: external_exports.string().min(1).max(80),
|
|
6217
|
-
/** Display label in the editor (e.g. “Engaged users”). */
|
|
6218
|
-
name: external_exports.string().min(1).max(80).optional(),
|
|
6219
|
-
expression: DecisionExprSchema,
|
|
6220
|
-
next: FlowJumpTargetSchema
|
|
6221
|
-
});
|
|
6222
|
-
var DecisionNodeSchema = external_exports.object({
|
|
6223
|
-
id: DecisionNodeIdSchema,
|
|
6224
|
-
name: external_exports.string().min(1).max(80).optional(),
|
|
6225
|
-
cases: external_exports.array(DecisionCaseSchema).min(1).max(16),
|
|
6226
|
-
elseNext: FlowJumpTargetSchema
|
|
6227
|
-
});
|
|
6228
6509
|
var collectDecisionFieldKeys = (expr) => {
|
|
6229
6510
|
const out = [];
|
|
6230
6511
|
const walk = (e) => {
|
|
@@ -6238,6 +6519,73 @@ var collectDecisionFieldKeys = (expr) => {
|
|
|
6238
6519
|
walk(expr);
|
|
6239
6520
|
return out;
|
|
6240
6521
|
};
|
|
6522
|
+
var decisionExprHasPredicate = (expr) => {
|
|
6523
|
+
if (expr.kind === "empty") return false;
|
|
6524
|
+
if (expr.kind === "predicate") return true;
|
|
6525
|
+
return expr.children.some(decisionExprHasPredicate);
|
|
6526
|
+
};
|
|
6527
|
+
var CONDITIONAL_MAX_CASES2 = 16;
|
|
6528
|
+
var ConditionalCaseSchema2 = external_exports.object({
|
|
6529
|
+
id: external_exports.string().min(1).max(80),
|
|
6530
|
+
name: external_exports.string().min(1).max(80).optional(),
|
|
6531
|
+
expression: DecisionExprSchema2,
|
|
6532
|
+
rootLayerId: LayerIdSchema2
|
|
6533
|
+
});
|
|
6534
|
+
var ConditionalLayerSchema2 = external_exports.object({
|
|
6535
|
+
...baseLayerShape2,
|
|
6536
|
+
kind: external_exports.literal("conditional"),
|
|
6537
|
+
cases: external_exports.array(ConditionalCaseSchema2).min(1).max(CONDITIONAL_MAX_CASES2),
|
|
6538
|
+
elseRootLayerId: LayerIdSchema2,
|
|
6539
|
+
children: external_exports.lazy(() => external_exports.array(StackLayerSchema2).min(2))
|
|
6540
|
+
});
|
|
6541
|
+
layerSchemaStore2.schema = external_exports.lazy(
|
|
6542
|
+
() => external_exports.union([
|
|
6543
|
+
StackLayerSchema2,
|
|
6544
|
+
TextLayerSchema2,
|
|
6545
|
+
HyperlinkLayerSchema2,
|
|
6546
|
+
ImageLayerSchema2,
|
|
6547
|
+
LottieLayerSchema2,
|
|
6548
|
+
VideoLayerSchema2,
|
|
6549
|
+
IconLayerSchema2,
|
|
6550
|
+
ButtonLayerSchema2,
|
|
6551
|
+
BackButtonLayerSchema2,
|
|
6552
|
+
ProgressLayerSchema2,
|
|
6553
|
+
LoaderLayerSchema2,
|
|
6554
|
+
CounterLayerSchema2,
|
|
6555
|
+
CheckboxLayerSchema2,
|
|
6556
|
+
SingleChoiceLayerSchema2,
|
|
6557
|
+
MultipleChoiceLayerSchema2,
|
|
6558
|
+
TextInputLayerSchema2,
|
|
6559
|
+
ScaleInputLayerSchema2,
|
|
6560
|
+
WheelPickerLayerSchema2,
|
|
6561
|
+
OAuthLoginLayerSchema2,
|
|
6562
|
+
OAuthProviderPresetLayerSchema2,
|
|
6563
|
+
OAuthProviderCustomLayerSchema2,
|
|
6564
|
+
EmailPasswordAuthLayerSchema2,
|
|
6565
|
+
EmailPasswordFieldLayerSchema2,
|
|
6566
|
+
EmailPasswordSubmitLayerSchema2,
|
|
6567
|
+
CarouselLayerSchema2,
|
|
6568
|
+
ConditionalLayerSchema2
|
|
6569
|
+
])
|
|
6570
|
+
);
|
|
6571
|
+
var DecisionNodeIdSchema = external_exports.string().min(1).max(64).regex(/^dec_[a-z0-9_]+$/i, "decision node id must look like dec_<id>");
|
|
6572
|
+
var ExternalSurfaceJumpIdSchema22 = external_exports.string().min(1).max(64).regex(/^surf_[a-z0-9_]+$/i, "external surface node id must look like surf_<id>");
|
|
6573
|
+
var EXTERNAL_SURFACE_NO_NEXT = "__onb_surface_no_next__";
|
|
6574
|
+
var ExternalSurfaceTerminalTargetSchema = external_exports.literal(EXTERNAL_SURFACE_NO_NEXT);
|
|
6575
|
+
var FlowJumpTargetSchema = ScreenIdSchema2.or(DecisionNodeIdSchema).or(ExternalSurfaceJumpIdSchema22).or(ExternalSurfaceTerminalTargetSchema).nullable();
|
|
6576
|
+
var DecisionCaseSchema = external_exports.object({
|
|
6577
|
+
id: external_exports.string().min(1).max(80),
|
|
6578
|
+
/** Display label in the editor (e.g. “Engaged users”). */
|
|
6579
|
+
name: external_exports.string().min(1).max(80).optional(),
|
|
6580
|
+
expression: DecisionExprSchema2,
|
|
6581
|
+
next: FlowJumpTargetSchema
|
|
6582
|
+
});
|
|
6583
|
+
var DecisionNodeSchema = external_exports.object({
|
|
6584
|
+
id: DecisionNodeIdSchema,
|
|
6585
|
+
name: external_exports.string().min(1).max(80).optional(),
|
|
6586
|
+
cases: external_exports.array(DecisionCaseSchema).min(1).max(16),
|
|
6587
|
+
elseNext: FlowJumpTargetSchema
|
|
6588
|
+
});
|
|
6241
6589
|
var collectDecisionFieldKeysFromNode = (node) => {
|
|
6242
6590
|
const seen = /* @__PURE__ */ new Set();
|
|
6243
6591
|
for (const c of node.cases) {
|
|
@@ -6417,7 +6765,10 @@ var ThemedColorModesSchema3 = external_exports.object({
|
|
|
6417
6765
|
var ThemedColorSchema3 = external_exports.union([external_exports.string().min(1), ThemedColorModesSchema3]);
|
|
6418
6766
|
var LAYOUT_FRACTION_PRESETS3 = ["1/2", "1/3", "2/3", "1/4", "3/4"];
|
|
6419
6767
|
var WIDTH_PRESETS3 = ["auto", "full", ...LAYOUT_FRACTION_PRESETS3];
|
|
6420
|
-
var WidthValueSchema3 = external_exports.
|
|
6768
|
+
var WidthValueSchema3 = external_exports.preprocess(
|
|
6769
|
+
(value) => value === "fill" ? "full" : value,
|
|
6770
|
+
external_exports.union([external_exports.enum(WIDTH_PRESETS3), external_exports.number().int().min(0).max(2e3)])
|
|
6771
|
+
);
|
|
6421
6772
|
var HEIGHT_PRESETS3 = ["auto", "full", "fill", ...LAYOUT_FRACTION_PRESETS3];
|
|
6422
6773
|
var CommonLayoutHeightSchema3 = external_exports.union([
|
|
6423
6774
|
external_exports.enum(HEIGHT_PRESETS3),
|
|
@@ -6450,6 +6801,8 @@ var CommonStyleSchema3 = external_exports.object({
|
|
|
6450
6801
|
border: BorderSchema3.optional(),
|
|
6451
6802
|
shadow: DropShadowSchema3.optional(),
|
|
6452
6803
|
opacity: external_exports.number().min(0).max(1).optional(),
|
|
6804
|
+
/** Multiplier (0–1) applied to the resolved background color alpha only; children stay fully opaque unless `opacity` is set. */
|
|
6805
|
+
backgroundOpacity: external_exports.number().min(0).max(1).optional(),
|
|
6453
6806
|
width: WidthValueSchema3.optional(),
|
|
6454
6807
|
/** Omit for normal flow; `'absolute'` removes the layer from flex flow (non-root only). */
|
|
6455
6808
|
position: external_exports.literal("absolute").optional(),
|
|
@@ -6460,6 +6813,11 @@ var CommonStyleSchema3 = external_exports.object({
|
|
|
6460
6813
|
rotate: external_exports.number().min(-360).max(360).optional(),
|
|
6461
6814
|
/** Cross-axis size: `auto` (hug), `full`/`fill` (parent height), fractions, or fixed px. */
|
|
6462
6815
|
height: CommonLayoutHeightSchema3.optional(),
|
|
6816
|
+
/** Optional size clamps (px); applied on the flex shell / wrapper like width/height. */
|
|
6817
|
+
minWidth: NonNegativePxSchema3.max(2e3).optional(),
|
|
6818
|
+
maxWidth: NonNegativePxSchema3.max(2e3).optional(),
|
|
6819
|
+
minHeight: NonNegativePxSchema3.max(2e3).optional(),
|
|
6820
|
+
maxHeight: NonNegativePxSchema3.max(2e3).optional(),
|
|
6463
6821
|
/** Stroke thickness in px for layers that render a stroke primitive (e.g. loader ring). */
|
|
6464
6822
|
strokeWidth: external_exports.number().int().min(0).max(64).optional()
|
|
6465
6823
|
}).partial();
|
|
@@ -6473,9 +6831,10 @@ var TextStyleSchema3 = CommonStyleSchema3.extend({
|
|
|
6473
6831
|
fontWeight: external_exports.number().int().min(100).max(900).optional(),
|
|
6474
6832
|
color: ThemedColorSchema3.optional(),
|
|
6475
6833
|
align: external_exports.enum(["left", "center", "right"]).optional(),
|
|
6834
|
+
/** Unitless line-height multiplier (CSS `line-height` without units). */
|
|
6476
6835
|
lineHeight: external_exports.number().min(0.8).max(3).optional(),
|
|
6477
|
-
/**
|
|
6478
|
-
|
|
6836
|
+
/** Extra spacing between characters as a multiple of `fontSize` (CSS `em`; negative values tighten). */
|
|
6837
|
+
letterSpacing: external_exports.number().min(-0.5).max(1).optional()
|
|
6479
6838
|
});
|
|
6480
6839
|
var ImageStyleSchema3 = CommonStyleSchema3.extend({
|
|
6481
6840
|
fit: external_exports.enum(["cover", "contain", "fill"]).optional(),
|
|
@@ -6550,6 +6909,41 @@ var ButtonLayoutBreakpointsSchema3 = external_exports.object({
|
|
|
6550
6909
|
xl: ButtonLayoutBreakpointPatchSchema3.optional(),
|
|
6551
6910
|
"2xl": ButtonLayoutBreakpointPatchSchema3.optional()
|
|
6552
6911
|
}).partial().optional();
|
|
6912
|
+
var AuthLayoutBreakpointPatchSchema3 = external_exports.object({
|
|
6913
|
+
gap: NonNegativePxSchema3.optional(),
|
|
6914
|
+
align: external_exports.enum(["start", "center", "end", "stretch"]).optional()
|
|
6915
|
+
}).partial();
|
|
6916
|
+
var AuthLayoutBreakpointsSchema3 = external_exports.object({
|
|
6917
|
+
sm: AuthLayoutBreakpointPatchSchema3.optional(),
|
|
6918
|
+
md: AuthLayoutBreakpointPatchSchema3.optional(),
|
|
6919
|
+
lg: AuthLayoutBreakpointPatchSchema3.optional(),
|
|
6920
|
+
xl: AuthLayoutBreakpointPatchSchema3.optional(),
|
|
6921
|
+
"2xl": AuthLayoutBreakpointPatchSchema3.optional()
|
|
6922
|
+
}).partial().optional();
|
|
6923
|
+
var ChoiceLayoutBreakpointPatchSchema3 = external_exports.object({
|
|
6924
|
+
direction: external_exports.enum(["vertical", "horizontal"]).optional(),
|
|
6925
|
+
gap: NonNegativePxSchema3.optional(),
|
|
6926
|
+
columns: external_exports.number().int().min(1).max(6).optional()
|
|
6927
|
+
}).partial();
|
|
6928
|
+
var ChoiceLayoutBreakpointsSchema3 = external_exports.object({
|
|
6929
|
+
sm: ChoiceLayoutBreakpointPatchSchema3.optional(),
|
|
6930
|
+
md: ChoiceLayoutBreakpointPatchSchema3.optional(),
|
|
6931
|
+
lg: ChoiceLayoutBreakpointPatchSchema3.optional(),
|
|
6932
|
+
xl: ChoiceLayoutBreakpointPatchSchema3.optional(),
|
|
6933
|
+
"2xl": ChoiceLayoutBreakpointPatchSchema3.optional()
|
|
6934
|
+
}).partial().optional();
|
|
6935
|
+
var CarouselLayoutBreakpointPatchSchema3 = external_exports.object({
|
|
6936
|
+
pageAlignment: external_exports.enum(["top", "center", "bottom"]).optional(),
|
|
6937
|
+
pageSpacing: NonNegativePxSchema3.optional(),
|
|
6938
|
+
pagePeek: NonNegativePxSchema3.optional()
|
|
6939
|
+
}).partial();
|
|
6940
|
+
var CarouselLayoutBreakpointsSchema3 = external_exports.object({
|
|
6941
|
+
sm: CarouselLayoutBreakpointPatchSchema3.optional(),
|
|
6942
|
+
md: CarouselLayoutBreakpointPatchSchema3.optional(),
|
|
6943
|
+
lg: CarouselLayoutBreakpointPatchSchema3.optional(),
|
|
6944
|
+
xl: CarouselLayoutBreakpointPatchSchema3.optional(),
|
|
6945
|
+
"2xl": CarouselLayoutBreakpointPatchSchema3.optional()
|
|
6946
|
+
}).partial().optional();
|
|
6553
6947
|
var DecisionNodeJumpIdSchema3 = external_exports.string().min(1).max(64).regex(/^dec_[a-z0-9_]+$/i);
|
|
6554
6948
|
var ExternalSurfaceJumpIdSchema3 = external_exports.string().min(1).max(64).regex(/^surf_[a-z0-9_]+$/i);
|
|
6555
6949
|
var FlowGraphNodeJumpTargetSchema3 = ScreenIdSchema3.or(DecisionNodeJumpIdSchema3).or(
|
|
@@ -6596,6 +6990,8 @@ var OsPermissionOutcomesSchema3 = external_exports.object({
|
|
|
6596
6990
|
}).strict();
|
|
6597
6991
|
var APP_REVIEW_OUTCOMES3 = ["not_shown", "dismissed"];
|
|
6598
6992
|
var AppReviewOutcomeSchema2 = external_exports.enum(APP_REVIEW_OUTCOMES3);
|
|
6993
|
+
var CAROUSEL_ADVANCE_ON_LAST3 = ["noop", "complete"];
|
|
6994
|
+
var CarouselAdvanceOnLastSchema3 = external_exports.enum(CAROUSEL_ADVANCE_ON_LAST3);
|
|
6599
6995
|
var ButtonActionSchema3 = external_exports.discriminatedUnion("kind", [
|
|
6600
6996
|
external_exports.object({ kind: external_exports.literal("none") }),
|
|
6601
6997
|
external_exports.object({ kind: external_exports.literal("continue") }),
|
|
@@ -6615,9 +7011,14 @@ var ButtonActionSchema3 = external_exports.discriminatedUnion("kind", [
|
|
|
6615
7011
|
kind: external_exports.literal("play_media"),
|
|
6616
7012
|
targetLayerIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
6617
7013
|
}),
|
|
6618
|
-
external_exports.object({ kind: external_exports.literal("request_app_review") })
|
|
7014
|
+
external_exports.object({ kind: external_exports.literal("request_app_review") }),
|
|
7015
|
+
external_exports.object({
|
|
7016
|
+
kind: external_exports.literal("advance_carousel"),
|
|
7017
|
+
targetLayerId: external_exports.string().min(1),
|
|
7018
|
+
onLast: CarouselAdvanceOnLastSchema3.optional()
|
|
7019
|
+
})
|
|
6619
7020
|
]);
|
|
6620
|
-
var TEXT_INPUT_TYPES3 = ["plain", "email", "phone", "url", "multiline"];
|
|
7021
|
+
var TEXT_INPUT_TYPES3 = ["plain", "email", "phone", "url", "number", "multiline"];
|
|
6621
7022
|
var TextInputTypeSchema3 = external_exports.enum(TEXT_INPUT_TYPES3);
|
|
6622
7023
|
var COUNTER_DISPLAY_KINDS3 = ["number", "time"];
|
|
6623
7024
|
var COUNTER_TIME_FORMATS3 = ["mm_ss", "hh_mm_ss", "dd_hh_mm_ss"];
|
|
@@ -6682,7 +7083,8 @@ var ProgressLayerSchema3 = external_exports.object({
|
|
|
6682
7083
|
kind: external_exports.literal("progress"),
|
|
6683
7084
|
trackColor: ThemedColorSchema3.optional(),
|
|
6684
7085
|
fillColor: ThemedColorSchema3.optional(),
|
|
6685
|
-
style: CommonStyleSchema3.optional()
|
|
7086
|
+
style: CommonStyleSchema3.optional(),
|
|
7087
|
+
styleBreakpoints: CommonStyleBreakpointsSchema3
|
|
6686
7088
|
});
|
|
6687
7089
|
var LoaderOnCompleteSchema3 = external_exports.discriminatedUnion("mode", [
|
|
6688
7090
|
external_exports.object({ mode: external_exports.literal("none") }),
|
|
@@ -6702,7 +7104,8 @@ var LoaderLayerSchema3 = external_exports.object({
|
|
|
6702
7104
|
fillColor: ThemedColorSchema3.optional(),
|
|
6703
7105
|
/** Horizontal alignment of the bar or ring within the layer box (default start). */
|
|
6704
7106
|
align: external_exports.enum(["start", "center", "end"]).optional(),
|
|
6705
|
-
style: CommonStyleSchema3.optional()
|
|
7107
|
+
style: CommonStyleSchema3.optional(),
|
|
7108
|
+
styleBreakpoints: CommonStyleBreakpointsSchema3
|
|
6706
7109
|
}).superRefine((data, ctx) => {
|
|
6707
7110
|
if (data.variant !== "circular") return;
|
|
6708
7111
|
const w = data.style?.width;
|
|
@@ -6739,27 +7142,39 @@ var CheckboxLayerSchema3 = external_exports.object({
|
|
|
6739
7142
|
styleBreakpoints: CommonStyleBreakpointsSchema3
|
|
6740
7143
|
});
|
|
6741
7144
|
var lazyLayer23 = () => layerSchemaStore3.schema;
|
|
6742
|
-
var
|
|
6743
|
-
|
|
6744
|
-
|
|
6745
|
-
|
|
6746
|
-
|
|
6747
|
-
|
|
6748
|
-
|
|
6749
|
-
|
|
6750
|
-
|
|
6751
|
-
|
|
6752
|
-
|
|
6753
|
-
|
|
6754
|
-
|
|
6755
|
-
|
|
6756
|
-
|
|
7145
|
+
var migrateStackJustifyForParse3 = (raw) => {
|
|
7146
|
+
if (!raw || typeof raw !== "object") return raw;
|
|
7147
|
+
const o = { ...raw };
|
|
7148
|
+
if (o.justify != null && o.distribution == null) o.distribution = o.justify;
|
|
7149
|
+
delete o.justify;
|
|
7150
|
+
return o;
|
|
7151
|
+
};
|
|
7152
|
+
var StackLayerSchema3 = external_exports.preprocess(
|
|
7153
|
+
migrateStackJustifyForParse3,
|
|
7154
|
+
external_exports.object({
|
|
7155
|
+
...baseLayerShape3,
|
|
7156
|
+
kind: external_exports.literal("stack"),
|
|
7157
|
+
style: CommonStyleSchema3.optional(),
|
|
7158
|
+
styleBreakpoints: CommonStyleBreakpointsSchema3,
|
|
7159
|
+
stackLayoutBreakpoints: StackLayoutBreakpointsSchema3,
|
|
7160
|
+
selectedStyle: CommonStyleSchema3.optional(),
|
|
7161
|
+
selectedStyleBreakpoints: CommonStyleBreakpointsSchema3,
|
|
7162
|
+
direction: external_exports.enum(["vertical", "horizontal"]),
|
|
7163
|
+
gap: external_exports.number().int().min(0).optional(),
|
|
7164
|
+
align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
|
|
7165
|
+
distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
|
|
7166
|
+
wrap: external_exports.boolean().optional(),
|
|
7167
|
+
children: external_exports.lazy(() => external_exports.array(lazyLayer23()))
|
|
7168
|
+
})
|
|
7169
|
+
);
|
|
6757
7170
|
var TextLayerSchema3 = external_exports.object({
|
|
6758
7171
|
...baseLayerShape3,
|
|
6759
7172
|
kind: external_exports.literal("text"),
|
|
6760
7173
|
text: LocalizedTextSchema4,
|
|
6761
7174
|
style: TextStyleSchema3.optional(),
|
|
6762
|
-
styleBreakpoints: TextStyleBreakpointsSchema3
|
|
7175
|
+
styleBreakpoints: TextStyleBreakpointsSchema3,
|
|
7176
|
+
/** Merged on top of resolved `style` when this layer is inside a selected choice option. */
|
|
7177
|
+
selectedStyle: TextStyleSchema3.optional()
|
|
6763
7178
|
});
|
|
6764
7179
|
var migrateLegacyHyperlinkForParse3 = (raw) => {
|
|
6765
7180
|
if (!raw || typeof raw !== "object") return raw;
|
|
@@ -6798,7 +7213,8 @@ var HyperlinkLayerSchemaInner3 = external_exports.object({
|
|
|
6798
7213
|
distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
|
|
6799
7214
|
wrap: external_exports.boolean().optional(),
|
|
6800
7215
|
style: CommonStyleSchema3.optional(),
|
|
6801
|
-
styleBreakpoints: CommonStyleBreakpointsSchema3
|
|
7216
|
+
styleBreakpoints: CommonStyleBreakpointsSchema3,
|
|
7217
|
+
hyperlinkLayoutBreakpoints: StackLayoutBreakpointsSchema3
|
|
6802
7218
|
}).superRefine((data, ctx) => {
|
|
6803
7219
|
const p = parseHyperlinkHref3(data.href.trim());
|
|
6804
7220
|
if (!p.ok) {
|
|
@@ -6819,7 +7235,8 @@ var ImageLayerSchema3 = external_exports.object({
|
|
|
6819
7235
|
media: MediaReferenceSchema3.optional(),
|
|
6820
7236
|
alt: external_exports.string().max(280).optional(),
|
|
6821
7237
|
style: ImageStyleSchema3.optional(),
|
|
6822
|
-
styleBreakpoints: ImageStyleBreakpointsSchema3
|
|
7238
|
+
styleBreakpoints: ImageStyleBreakpointsSchema3,
|
|
7239
|
+
selectedStyle: ImageStyleSchema3.optional()
|
|
6823
7240
|
});
|
|
6824
7241
|
var LottieLayerSchema3 = external_exports.object({
|
|
6825
7242
|
...baseLayerShape3,
|
|
@@ -6830,7 +7247,8 @@ var LottieLayerSchema3 = external_exports.object({
|
|
|
6830
7247
|
triggerLayerId: external_exports.string().min(1).optional(),
|
|
6831
7248
|
onComplete: LoaderOnCompleteSchema3.optional(),
|
|
6832
7249
|
style: ImageStyleSchema3.optional(),
|
|
6833
|
-
styleBreakpoints: ImageStyleBreakpointsSchema3
|
|
7250
|
+
styleBreakpoints: ImageStyleBreakpointsSchema3,
|
|
7251
|
+
selectedStyle: ImageStyleSchema3.optional()
|
|
6834
7252
|
});
|
|
6835
7253
|
var VideoLayerSchema3 = external_exports.object({
|
|
6836
7254
|
...baseLayerShape3,
|
|
@@ -6842,7 +7260,8 @@ var VideoLayerSchema3 = external_exports.object({
|
|
|
6842
7260
|
onComplete: LoaderOnCompleteSchema3.optional(),
|
|
6843
7261
|
audioEnabled: external_exports.boolean().optional(),
|
|
6844
7262
|
style: ImageStyleSchema3.optional(),
|
|
6845
|
-
styleBreakpoints: ImageStyleBreakpointsSchema3
|
|
7263
|
+
styleBreakpoints: ImageStyleBreakpointsSchema3,
|
|
7264
|
+
selectedStyle: ImageStyleSchema3.optional()
|
|
6846
7265
|
});
|
|
6847
7266
|
var IconLayerSchema3 = external_exports.object({
|
|
6848
7267
|
...baseLayerShape3,
|
|
@@ -6850,7 +7269,8 @@ var IconLayerSchema3 = external_exports.object({
|
|
|
6850
7269
|
family: external_exports.enum(ICON_FAMILIES3),
|
|
6851
7270
|
iconName: external_exports.string().min(1).max(128),
|
|
6852
7271
|
style: IconStyleSchema3.optional(),
|
|
6853
|
-
styleBreakpoints: IconStyleBreakpointsSchema3
|
|
7272
|
+
styleBreakpoints: IconStyleBreakpointsSchema3,
|
|
7273
|
+
selectedStyle: IconStyleSchema3.optional()
|
|
6854
7274
|
});
|
|
6855
7275
|
var lazyLayer33 = () => layerSchemaStore3.schema;
|
|
6856
7276
|
var OAuthProviderPresetLayerSchema3 = external_exports.object({
|
|
@@ -7004,6 +7424,7 @@ var OAuthLoginLayerSchemaValidated3 = external_exports.object({
|
|
|
7004
7424
|
),
|
|
7005
7425
|
gap: external_exports.number().int().min(0).optional(),
|
|
7006
7426
|
align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
|
|
7427
|
+
authLayoutBreakpoints: AuthLayoutBreakpointsSchema3,
|
|
7007
7428
|
style: CommonStyleSchema3.optional(),
|
|
7008
7429
|
styleBreakpoints: CommonStyleBreakpointsSchema3
|
|
7009
7430
|
});
|
|
@@ -7152,6 +7573,7 @@ var EmailPasswordAuthLayerSchemaValidated3 = external_exports.object({
|
|
|
7152
7573
|
),
|
|
7153
7574
|
gap: external_exports.number().int().min(0).optional(),
|
|
7154
7575
|
align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
|
|
7576
|
+
authLayoutBreakpoints: AuthLayoutBreakpointsSchema3,
|
|
7155
7577
|
style: CommonStyleSchema3.optional(),
|
|
7156
7578
|
styleBreakpoints: CommonStyleBreakpointsSchema3
|
|
7157
7579
|
}).superRefine(refineEmailPasswordAuthChildren3);
|
|
@@ -7232,7 +7654,8 @@ var SingleChoiceLayerSchema3 = external_exports.object({
|
|
|
7232
7654
|
gap: external_exports.number().int().min(0).optional(),
|
|
7233
7655
|
columns: external_exports.number().int().min(1).max(12).optional(),
|
|
7234
7656
|
style: CommonStyleSchema3.optional(),
|
|
7235
|
-
styleBreakpoints: CommonStyleBreakpointsSchema3
|
|
7657
|
+
styleBreakpoints: CommonStyleBreakpointsSchema3,
|
|
7658
|
+
choiceLayoutBreakpoints: ChoiceLayoutBreakpointsSchema3
|
|
7236
7659
|
});
|
|
7237
7660
|
var MultipleChoiceLayerSchema3 = external_exports.object({
|
|
7238
7661
|
...baseLayerShape3,
|
|
@@ -7249,9 +7672,20 @@ var MultipleChoiceLayerSchema3 = external_exports.object({
|
|
|
7249
7672
|
gap: external_exports.number().int().min(0).optional(),
|
|
7250
7673
|
columns: external_exports.number().int().min(1).max(12).optional(),
|
|
7251
7674
|
style: CommonStyleSchema3.optional(),
|
|
7252
|
-
styleBreakpoints: CommonStyleBreakpointsSchema3
|
|
7675
|
+
styleBreakpoints: CommonStyleBreakpointsSchema3,
|
|
7676
|
+
choiceLayoutBreakpoints: ChoiceLayoutBreakpointsSchema3
|
|
7253
7677
|
});
|
|
7254
7678
|
var validateChoiceChildrenAndBindings = ChoiceChildrenAndBindingsRefinement;
|
|
7679
|
+
var TextInputFieldStyleSchema3 = external_exports.object({
|
|
7680
|
+
fontFamily: external_exports.string().min(1).max(128).optional(),
|
|
7681
|
+
fontSize: external_exports.number().int().min(8).max(96).optional(),
|
|
7682
|
+
fontWeight: external_exports.number().int().min(100).max(900).optional(),
|
|
7683
|
+
color: ThemedColorSchema3.optional(),
|
|
7684
|
+
align: external_exports.enum(["left", "center", "right"]).optional(),
|
|
7685
|
+
lineHeight: external_exports.number().min(0.8).max(3).optional(),
|
|
7686
|
+
letterSpacing: external_exports.number().min(-0.5).max(1).optional(),
|
|
7687
|
+
opacity: external_exports.number().min(0).max(1).optional()
|
|
7688
|
+
}).partial();
|
|
7255
7689
|
var TextInputLayerSchema3 = external_exports.object({
|
|
7256
7690
|
...baseLayerShape3,
|
|
7257
7691
|
kind: external_exports.literal("text_input"),
|
|
@@ -7263,7 +7697,10 @@ var TextInputLayerSchema3 = external_exports.object({
|
|
|
7263
7697
|
maxLength: external_exports.number().int().positive().max(2e3).optional(),
|
|
7264
7698
|
classification: FieldClassificationSchema3,
|
|
7265
7699
|
children: external_exports.lazy(() => external_exports.array(lazyLayer53())).optional(),
|
|
7266
|
-
|
|
7700
|
+
/** Typography for the native input's typed text. */
|
|
7701
|
+
fieldStyle: TextInputFieldStyleSchema3.optional(),
|
|
7702
|
+
style: CommonStyleSchema3.optional(),
|
|
7703
|
+
styleBreakpoints: CommonStyleBreakpointsSchema3
|
|
7267
7704
|
});
|
|
7268
7705
|
var ScaleInputLabelStyleSchema3 = external_exports.object({
|
|
7269
7706
|
fontFamily: external_exports.string().min(1).max(128).optional(),
|
|
@@ -7272,6 +7709,7 @@ var ScaleInputLabelStyleSchema3 = external_exports.object({
|
|
|
7272
7709
|
color: ThemedColorSchema3.optional(),
|
|
7273
7710
|
align: external_exports.enum(["left", "center", "right"]).optional(),
|
|
7274
7711
|
lineHeight: external_exports.number().min(0.8).max(3).optional(),
|
|
7712
|
+
letterSpacing: external_exports.number().min(-0.5).max(1).optional(),
|
|
7275
7713
|
opacity: external_exports.number().min(0).max(1).optional()
|
|
7276
7714
|
}).partial();
|
|
7277
7715
|
var ScaleInputLayerSchema3 = external_exports.object({
|
|
@@ -7294,7 +7732,40 @@ var ScaleInputLayerSchema3 = external_exports.object({
|
|
|
7294
7732
|
thumbSize: external_exports.number().int().min(8).max(48).optional(),
|
|
7295
7733
|
thumbColor: ThemedColorSchema3.optional(),
|
|
7296
7734
|
children: external_exports.lazy(() => external_exports.array(lazyLayer53())).optional(),
|
|
7297
|
-
style: CommonStyleSchema3.optional()
|
|
7735
|
+
style: CommonStyleSchema3.optional(),
|
|
7736
|
+
styleBreakpoints: CommonStyleBreakpointsSchema3
|
|
7737
|
+
});
|
|
7738
|
+
var WheelPickerOptionSchema3 = external_exports.object({
|
|
7739
|
+
optionId: external_exports.string().min(1).max(64),
|
|
7740
|
+
label: LocalizedTextSchema4
|
|
7741
|
+
});
|
|
7742
|
+
var WheelPickerItemStyleSchema3 = external_exports.object({
|
|
7743
|
+
fontFamily: external_exports.string().min(1).max(128).optional(),
|
|
7744
|
+
fontSize: external_exports.number().int().min(8).max(96).optional(),
|
|
7745
|
+
fontWeight: external_exports.number().int().min(100).max(900).optional(),
|
|
7746
|
+
color: ThemedColorSchema3.optional(),
|
|
7747
|
+
opacity: external_exports.number().min(0).max(1).optional()
|
|
7748
|
+
}).partial();
|
|
7749
|
+
var WheelPickerLayerSchema3 = external_exports.object({
|
|
7750
|
+
...baseLayerShape3,
|
|
7751
|
+
kind: external_exports.literal("wheel_picker"),
|
|
7752
|
+
fieldKey: FieldKeySchema3,
|
|
7753
|
+
mode: external_exports.enum(["options", "date"]).optional(),
|
|
7754
|
+
options: external_exports.array(WheelPickerOptionSchema3).min(2).optional(),
|
|
7755
|
+
defaultOptionId: external_exports.string().optional(),
|
|
7756
|
+
datePart: external_exports.enum(["year", "month", "day"]).optional(),
|
|
7757
|
+
minYear: external_exports.number().int().min(1e3).max(9999).optional(),
|
|
7758
|
+
maxYear: external_exports.number().int().min(1e3).max(9999).optional(),
|
|
7759
|
+
defaultValue: external_exports.string().optional(),
|
|
7760
|
+
placeholder: LocalizedTextSchema4.optional(),
|
|
7761
|
+
itemHeight: external_exports.number().int().min(28).max(72).optional(),
|
|
7762
|
+
visibleItemCount: external_exports.number().int().min(3).max(9).optional(),
|
|
7763
|
+
selectionBackgroundColor: ThemedColorSchema3.optional(),
|
|
7764
|
+
itemStyle: WheelPickerItemStyleSchema3.optional(),
|
|
7765
|
+
selectedItemStyle: WheelPickerItemStyleSchema3.optional(),
|
|
7766
|
+
children: external_exports.lazy(() => external_exports.array(lazyLayer53())).optional(),
|
|
7767
|
+
style: CommonStyleSchema3.optional(),
|
|
7768
|
+
styleBreakpoints: CommonStyleBreakpointsSchema3
|
|
7298
7769
|
});
|
|
7299
7770
|
var CarouselIndicatorsStyleSchema3 = external_exports.object({
|
|
7300
7771
|
width: external_exports.number().int().min(1).max(64).optional(),
|
|
@@ -7330,8 +7801,157 @@ var CarouselLayerSchema3 = external_exports.object({
|
|
|
7330
7801
|
autoAdvanceMs: external_exports.number().int().min(500).max(6e4).optional(),
|
|
7331
7802
|
pageControl: CarouselPageControlSchema3.optional(),
|
|
7332
7803
|
style: CommonStyleSchema3.optional(),
|
|
7333
|
-
styleBreakpoints: CommonStyleBreakpointsSchema3
|
|
7804
|
+
styleBreakpoints: CommonStyleBreakpointsSchema3,
|
|
7805
|
+
carouselLayoutBreakpoints: CarouselLayoutBreakpointsSchema3
|
|
7334
7806
|
});
|
|
7807
|
+
var DecisionBuiltinNameSchema3 = external_exports.enum(["locale", "platform"]);
|
|
7808
|
+
var DecisionVariableRefSchema3 = external_exports.discriminatedUnion("kind", [
|
|
7809
|
+
external_exports.object({ kind: external_exports.literal("builtin"), name: DecisionBuiltinNameSchema3 }),
|
|
7810
|
+
external_exports.object({ kind: external_exports.literal("sdk"), key: external_exports.string().min(1).max(128) }),
|
|
7811
|
+
external_exports.object({ kind: external_exports.literal("field"), fieldKey: external_exports.string().min(1).max(128) })
|
|
7812
|
+
]);
|
|
7813
|
+
var DecisionStringPredicateSchema3 = external_exports.discriminatedUnion("op", [
|
|
7814
|
+
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.string() }),
|
|
7815
|
+
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.string() }),
|
|
7816
|
+
external_exports.object({ op: external_exports.literal("contains"), value: external_exports.string() })
|
|
7817
|
+
]);
|
|
7818
|
+
var DecisionNumberPredicateSchema3 = external_exports.discriminatedUnion("op", [
|
|
7819
|
+
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.number() }),
|
|
7820
|
+
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.number() }),
|
|
7821
|
+
external_exports.object({ op: external_exports.literal("lt"), value: external_exports.number() }),
|
|
7822
|
+
external_exports.object({ op: external_exports.literal("lte"), value: external_exports.number() }),
|
|
7823
|
+
external_exports.object({ op: external_exports.literal("gt"), value: external_exports.number() }),
|
|
7824
|
+
external_exports.object({ op: external_exports.literal("gte"), value: external_exports.number() })
|
|
7825
|
+
]);
|
|
7826
|
+
var DecisionChoicePredicateSchema3 = external_exports.discriminatedUnion("op", [
|
|
7827
|
+
external_exports.object({ op: external_exports.literal("eq"), optionId: external_exports.string().min(1) }),
|
|
7828
|
+
external_exports.object({ op: external_exports.literal("one_of"), optionIds: external_exports.array(external_exports.string().min(1)).min(1) })
|
|
7829
|
+
]);
|
|
7830
|
+
var DecisionMultiPredicateSchema3 = external_exports.discriminatedUnion("op", [
|
|
7831
|
+
external_exports.object({
|
|
7832
|
+
op: external_exports.literal("intersects"),
|
|
7833
|
+
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
7834
|
+
}),
|
|
7835
|
+
external_exports.object({
|
|
7836
|
+
op: external_exports.literal("contains_all"),
|
|
7837
|
+
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
7838
|
+
}),
|
|
7839
|
+
external_exports.object({
|
|
7840
|
+
op: external_exports.literal("subset_of"),
|
|
7841
|
+
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
7842
|
+
})
|
|
7843
|
+
]);
|
|
7844
|
+
var DecisionBooleanPredicateSchema3 = external_exports.discriminatedUnion("op", [
|
|
7845
|
+
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.boolean() }),
|
|
7846
|
+
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.boolean() })
|
|
7847
|
+
]);
|
|
7848
|
+
var DecisionPredicatePayloadSchema3 = external_exports.discriminatedUnion("type", [
|
|
7849
|
+
external_exports.object({ type: external_exports.literal("string"), pred: DecisionStringPredicateSchema3 }),
|
|
7850
|
+
external_exports.object({ type: external_exports.literal("number"), pred: DecisionNumberPredicateSchema3 }),
|
|
7851
|
+
external_exports.object({ type: external_exports.literal("boolean"), pred: DecisionBooleanPredicateSchema3 }),
|
|
7852
|
+
external_exports.object({ type: external_exports.literal("choice"), pred: DecisionChoicePredicateSchema3 }),
|
|
7853
|
+
external_exports.object({ type: external_exports.literal("multi"), pred: DecisionMultiPredicateSchema3 })
|
|
7854
|
+
]);
|
|
7855
|
+
var DecisionExprSchema3 = external_exports.lazy(
|
|
7856
|
+
() => external_exports.discriminatedUnion("kind", [
|
|
7857
|
+
external_exports.object({ kind: external_exports.literal("empty") }),
|
|
7858
|
+
external_exports.object({
|
|
7859
|
+
kind: external_exports.literal("group"),
|
|
7860
|
+
op: external_exports.enum(["and", "or"]),
|
|
7861
|
+
children: external_exports.array(DecisionExprSchema3).min(1)
|
|
7862
|
+
}),
|
|
7863
|
+
external_exports.object({
|
|
7864
|
+
kind: external_exports.literal("predicate"),
|
|
7865
|
+
variable: DecisionVariableRefSchema3,
|
|
7866
|
+
predicate: DecisionPredicatePayloadSchema3
|
|
7867
|
+
})
|
|
7868
|
+
])
|
|
7869
|
+
);
|
|
7870
|
+
var collectDecisionSdkKeys = (expr) => {
|
|
7871
|
+
const out = [];
|
|
7872
|
+
const walk = (e) => {
|
|
7873
|
+
if (e.kind === "empty") return;
|
|
7874
|
+
if (e.kind === "predicate") {
|
|
7875
|
+
if (e.variable.kind === "sdk") out.push(e.variable.key);
|
|
7876
|
+
return;
|
|
7877
|
+
}
|
|
7878
|
+
for (const c of e.children) walk(c);
|
|
7879
|
+
};
|
|
7880
|
+
walk(expr);
|
|
7881
|
+
return out;
|
|
7882
|
+
};
|
|
7883
|
+
var collectDecisionFieldKeys2 = (expr) => {
|
|
7884
|
+
const out = [];
|
|
7885
|
+
const walk = (e) => {
|
|
7886
|
+
if (e.kind === "empty") return;
|
|
7887
|
+
if (e.kind === "predicate") {
|
|
7888
|
+
if (e.variable.kind === "field") out.push(e.variable.fieldKey);
|
|
7889
|
+
return;
|
|
7890
|
+
}
|
|
7891
|
+
for (const c of e.children) walk(c);
|
|
7892
|
+
};
|
|
7893
|
+
walk(expr);
|
|
7894
|
+
return out;
|
|
7895
|
+
};
|
|
7896
|
+
var CONDITIONAL_MAX_CASES3 = 16;
|
|
7897
|
+
var ConditionalCaseSchema3 = external_exports.object({
|
|
7898
|
+
id: external_exports.string().min(1).max(80),
|
|
7899
|
+
name: external_exports.string().min(1).max(80).optional(),
|
|
7900
|
+
expression: DecisionExprSchema3,
|
|
7901
|
+
rootLayerId: LayerIdSchema3
|
|
7902
|
+
});
|
|
7903
|
+
var ConditionalLayerSchema3 = external_exports.object({
|
|
7904
|
+
...baseLayerShape3,
|
|
7905
|
+
kind: external_exports.literal("conditional"),
|
|
7906
|
+
cases: external_exports.array(ConditionalCaseSchema3).min(1).max(CONDITIONAL_MAX_CASES3),
|
|
7907
|
+
elseRootLayerId: LayerIdSchema3,
|
|
7908
|
+
children: external_exports.lazy(() => external_exports.array(StackLayerSchema3).min(2))
|
|
7909
|
+
});
|
|
7910
|
+
var validateConditionalCasesAndBindings = (data, ctx) => {
|
|
7911
|
+
const childIds = new Set(data.children.map((c) => c.id));
|
|
7912
|
+
const boundRootIds = /* @__PURE__ */ new Set();
|
|
7913
|
+
const caseIds = /* @__PURE__ */ new Set();
|
|
7914
|
+
const claimRoot = (rootLayerId, path) => {
|
|
7915
|
+
if (!childIds.has(rootLayerId)) {
|
|
7916
|
+
ctx.addIssue({
|
|
7917
|
+
code: external_exports.ZodIssueCode.custom,
|
|
7918
|
+
message: `conditional rootLayerId "${rootLayerId}" does not match any direct child stack`,
|
|
7919
|
+
path
|
|
7920
|
+
});
|
|
7921
|
+
return;
|
|
7922
|
+
}
|
|
7923
|
+
if (boundRootIds.has(rootLayerId)) {
|
|
7924
|
+
ctx.addIssue({
|
|
7925
|
+
code: external_exports.ZodIssueCode.custom,
|
|
7926
|
+
message: `conditional child stack "${rootLayerId}" is bound to more than one branch`,
|
|
7927
|
+
path
|
|
7928
|
+
});
|
|
7929
|
+
return;
|
|
7930
|
+
}
|
|
7931
|
+
boundRootIds.add(rootLayerId);
|
|
7932
|
+
};
|
|
7933
|
+
data.cases.forEach((c, idx) => {
|
|
7934
|
+
if (caseIds.has(c.id)) {
|
|
7935
|
+
ctx.addIssue({
|
|
7936
|
+
code: external_exports.ZodIssueCode.custom,
|
|
7937
|
+
message: `duplicate conditional case id "${c.id}"`,
|
|
7938
|
+
path: ["cases", idx, "id"]
|
|
7939
|
+
});
|
|
7940
|
+
}
|
|
7941
|
+
caseIds.add(c.id);
|
|
7942
|
+
claimRoot(c.rootLayerId, ["cases", idx, "rootLayerId"]);
|
|
7943
|
+
});
|
|
7944
|
+
claimRoot(data.elseRootLayerId, ["elseRootLayerId"]);
|
|
7945
|
+
for (const child of data.children) {
|
|
7946
|
+
if (!boundRootIds.has(child.id)) {
|
|
7947
|
+
ctx.addIssue({
|
|
7948
|
+
code: external_exports.ZodIssueCode.custom,
|
|
7949
|
+
message: `conditional child stack "${child.id}" is not bound to a case or the else branch`,
|
|
7950
|
+
path: ["children"]
|
|
7951
|
+
});
|
|
7952
|
+
}
|
|
7953
|
+
}
|
|
7954
|
+
};
|
|
7335
7955
|
layerSchemaStore3.schema = external_exports.lazy(
|
|
7336
7956
|
() => external_exports.union([
|
|
7337
7957
|
StackLayerSchema3,
|
|
@@ -7351,17 +7971,45 @@ layerSchemaStore3.schema = external_exports.lazy(
|
|
|
7351
7971
|
MultipleChoiceLayerSchema3,
|
|
7352
7972
|
TextInputLayerSchema3,
|
|
7353
7973
|
ScaleInputLayerSchema3,
|
|
7974
|
+
WheelPickerLayerSchema3,
|
|
7354
7975
|
OAuthLoginLayerSchema3,
|
|
7355
7976
|
OAuthProviderPresetLayerSchema3,
|
|
7356
7977
|
OAuthProviderCustomLayerSchema3,
|
|
7357
7978
|
EmailPasswordAuthLayerSchema3,
|
|
7358
7979
|
EmailPasswordFieldLayerSchema3,
|
|
7359
7980
|
EmailPasswordSubmitLayerSchema3,
|
|
7360
|
-
CarouselLayerSchema3
|
|
7981
|
+
CarouselLayerSchema3,
|
|
7982
|
+
ConditionalLayerSchema3
|
|
7361
7983
|
])
|
|
7362
7984
|
);
|
|
7363
7985
|
var LayerSchema2 = layerSchemaStore3.schema;
|
|
7364
7986
|
var STYLE_BREAKPOINT_KEYS = ["sm", "md", "lg", "xl", "2xl"];
|
|
7987
|
+
var layerChildren = (layer) => {
|
|
7988
|
+
switch (layer.kind) {
|
|
7989
|
+
case "stack":
|
|
7990
|
+
case "conditional":
|
|
7991
|
+
case "button":
|
|
7992
|
+
case "back_button":
|
|
7993
|
+
case "hyperlink":
|
|
7994
|
+
case "single_choice":
|
|
7995
|
+
case "multiple_choice":
|
|
7996
|
+
case "oauth_login":
|
|
7997
|
+
case "email_password_auth":
|
|
7998
|
+
case "email_password_submit":
|
|
7999
|
+
return layer.children;
|
|
8000
|
+
case "carousel":
|
|
8001
|
+
return layer.slides;
|
|
8002
|
+
case "text_input":
|
|
8003
|
+
case "scale_input":
|
|
8004
|
+
case "wheel_picker":
|
|
8005
|
+
case "email_password_field":
|
|
8006
|
+
return layer.children ?? [];
|
|
8007
|
+
case "oauth_provider":
|
|
8008
|
+
return layer.variant === "custom" ? layer.children : [];
|
|
8009
|
+
default:
|
|
8010
|
+
return [];
|
|
8011
|
+
}
|
|
8012
|
+
};
|
|
7365
8013
|
var commonStyleHasAbsolutePosition = (style, breakpoints) => {
|
|
7366
8014
|
if (style?.position === "absolute") return true;
|
|
7367
8015
|
if (!breakpoints) return false;
|
|
@@ -7392,6 +8040,7 @@ var layerHasAbsolutePositionAuthored = (layer) => {
|
|
|
7392
8040
|
return commonStyleHasAbsolutePosition(layer.style, void 0);
|
|
7393
8041
|
case "text_input":
|
|
7394
8042
|
case "scale_input":
|
|
8043
|
+
case "wheel_picker":
|
|
7395
8044
|
return commonStyleHasAbsolutePosition(layer.style, void 0);
|
|
7396
8045
|
case "oauth_provider":
|
|
7397
8046
|
if (layer.variant === "preset") {
|
|
@@ -7416,7 +8065,7 @@ var layerHasAbsolutePositionAuthored = (layer) => {
|
|
|
7416
8065
|
return false;
|
|
7417
8066
|
}
|
|
7418
8067
|
};
|
|
7419
|
-
var isInputLayer2 = (l) => l.kind === "single_choice" || l.kind === "multiple_choice" || l.kind === "text_input" || l.kind === "scale_input";
|
|
8068
|
+
var isInputLayer2 = (l) => l.kind === "single_choice" || l.kind === "multiple_choice" || l.kind === "text_input" || l.kind === "scale_input" || l.kind === "wheel_picker";
|
|
7420
8069
|
var ANIMATABLE_PROPERTIES = [
|
|
7421
8070
|
"opacity",
|
|
7422
8071
|
"translateX",
|
|
@@ -7576,74 +8225,11 @@ var ExternalSurfaceJumpIdSchema23 = external_exports.string().min(1).max(64).reg
|
|
|
7576
8225
|
var EXTERNAL_SURFACE_NO_NEXT2 = "__onb_surface_no_next__";
|
|
7577
8226
|
var ExternalSurfaceTerminalTargetSchema2 = external_exports.literal(EXTERNAL_SURFACE_NO_NEXT2);
|
|
7578
8227
|
var FlowJumpTargetSchema2 = ScreenIdSchema3.or(DecisionNodeIdSchema2).or(ExternalSurfaceJumpIdSchema23).or(ExternalSurfaceTerminalTargetSchema2).nullable();
|
|
7579
|
-
var DecisionBuiltinNameSchema2 = external_exports.enum(["locale", "platform"]);
|
|
7580
|
-
var DecisionVariableRefSchema2 = external_exports.discriminatedUnion("kind", [
|
|
7581
|
-
external_exports.object({ kind: external_exports.literal("builtin"), name: DecisionBuiltinNameSchema2 }),
|
|
7582
|
-
external_exports.object({ kind: external_exports.literal("sdk"), key: external_exports.string().min(1).max(128) }),
|
|
7583
|
-
external_exports.object({ kind: external_exports.literal("field"), fieldKey: external_exports.string().min(1).max(128) })
|
|
7584
|
-
]);
|
|
7585
|
-
var DecisionStringPredicateSchema2 = external_exports.discriminatedUnion("op", [
|
|
7586
|
-
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.string() }),
|
|
7587
|
-
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.string() }),
|
|
7588
|
-
external_exports.object({ op: external_exports.literal("contains"), value: external_exports.string() })
|
|
7589
|
-
]);
|
|
7590
|
-
var DecisionNumberPredicateSchema2 = external_exports.discriminatedUnion("op", [
|
|
7591
|
-
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.number() }),
|
|
7592
|
-
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.number() }),
|
|
7593
|
-
external_exports.object({ op: external_exports.literal("lt"), value: external_exports.number() }),
|
|
7594
|
-
external_exports.object({ op: external_exports.literal("lte"), value: external_exports.number() }),
|
|
7595
|
-
external_exports.object({ op: external_exports.literal("gt"), value: external_exports.number() }),
|
|
7596
|
-
external_exports.object({ op: external_exports.literal("gte"), value: external_exports.number() })
|
|
7597
|
-
]);
|
|
7598
|
-
var DecisionChoicePredicateSchema2 = external_exports.discriminatedUnion("op", [
|
|
7599
|
-
external_exports.object({ op: external_exports.literal("eq"), optionId: external_exports.string().min(1) }),
|
|
7600
|
-
external_exports.object({ op: external_exports.literal("one_of"), optionIds: external_exports.array(external_exports.string().min(1)).min(1) })
|
|
7601
|
-
]);
|
|
7602
|
-
var DecisionMultiPredicateSchema2 = external_exports.discriminatedUnion("op", [
|
|
7603
|
-
external_exports.object({
|
|
7604
|
-
op: external_exports.literal("intersects"),
|
|
7605
|
-
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
7606
|
-
}),
|
|
7607
|
-
external_exports.object({
|
|
7608
|
-
op: external_exports.literal("contains_all"),
|
|
7609
|
-
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
7610
|
-
}),
|
|
7611
|
-
external_exports.object({
|
|
7612
|
-
op: external_exports.literal("subset_of"),
|
|
7613
|
-
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
7614
|
-
})
|
|
7615
|
-
]);
|
|
7616
|
-
var DecisionBooleanPredicateSchema2 = external_exports.discriminatedUnion("op", [
|
|
7617
|
-
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.boolean() }),
|
|
7618
|
-
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.boolean() })
|
|
7619
|
-
]);
|
|
7620
|
-
var DecisionPredicatePayloadSchema2 = external_exports.discriminatedUnion("type", [
|
|
7621
|
-
external_exports.object({ type: external_exports.literal("string"), pred: DecisionStringPredicateSchema2 }),
|
|
7622
|
-
external_exports.object({ type: external_exports.literal("number"), pred: DecisionNumberPredicateSchema2 }),
|
|
7623
|
-
external_exports.object({ type: external_exports.literal("boolean"), pred: DecisionBooleanPredicateSchema2 }),
|
|
7624
|
-
external_exports.object({ type: external_exports.literal("choice"), pred: DecisionChoicePredicateSchema2 }),
|
|
7625
|
-
external_exports.object({ type: external_exports.literal("multi"), pred: DecisionMultiPredicateSchema2 })
|
|
7626
|
-
]);
|
|
7627
|
-
var DecisionExprSchema2 = external_exports.lazy(
|
|
7628
|
-
() => external_exports.discriminatedUnion("kind", [
|
|
7629
|
-
external_exports.object({ kind: external_exports.literal("empty") }),
|
|
7630
|
-
external_exports.object({
|
|
7631
|
-
kind: external_exports.literal("group"),
|
|
7632
|
-
op: external_exports.enum(["and", "or"]),
|
|
7633
|
-
children: external_exports.array(DecisionExprSchema2).min(1)
|
|
7634
|
-
}),
|
|
7635
|
-
external_exports.object({
|
|
7636
|
-
kind: external_exports.literal("predicate"),
|
|
7637
|
-
variable: DecisionVariableRefSchema2,
|
|
7638
|
-
predicate: DecisionPredicatePayloadSchema2
|
|
7639
|
-
})
|
|
7640
|
-
])
|
|
7641
|
-
);
|
|
7642
8228
|
var DecisionCaseSchema2 = external_exports.object({
|
|
7643
8229
|
id: external_exports.string().min(1).max(80),
|
|
7644
8230
|
/** Display label in the editor (e.g. “Engaged users”). */
|
|
7645
8231
|
name: external_exports.string().min(1).max(80).optional(),
|
|
7646
|
-
expression:
|
|
8232
|
+
expression: DecisionExprSchema3,
|
|
7647
8233
|
next: FlowJumpTargetSchema2
|
|
7648
8234
|
});
|
|
7649
8235
|
var DecisionNodeSchema2 = external_exports.object({
|
|
@@ -7673,32 +8259,6 @@ var migrateLegacyDecisionNodeInPlace = (node) => {
|
|
|
7673
8259
|
];
|
|
7674
8260
|
node.elseNext = onFalse;
|
|
7675
8261
|
};
|
|
7676
|
-
var collectDecisionSdkKeys = (expr) => {
|
|
7677
|
-
const out = [];
|
|
7678
|
-
const walk = (e) => {
|
|
7679
|
-
if (e.kind === "empty") return;
|
|
7680
|
-
if (e.kind === "predicate") {
|
|
7681
|
-
if (e.variable.kind === "sdk") out.push(e.variable.key);
|
|
7682
|
-
return;
|
|
7683
|
-
}
|
|
7684
|
-
for (const c of e.children) walk(c);
|
|
7685
|
-
};
|
|
7686
|
-
walk(expr);
|
|
7687
|
-
return out;
|
|
7688
|
-
};
|
|
7689
|
-
var collectDecisionFieldKeys2 = (expr) => {
|
|
7690
|
-
const out = [];
|
|
7691
|
-
const walk = (e) => {
|
|
7692
|
-
if (e.kind === "empty") return;
|
|
7693
|
-
if (e.kind === "predicate") {
|
|
7694
|
-
if (e.variable.kind === "field") out.push(e.variable.fieldKey);
|
|
7695
|
-
return;
|
|
7696
|
-
}
|
|
7697
|
-
for (const c of e.children) walk(c);
|
|
7698
|
-
};
|
|
7699
|
-
walk(expr);
|
|
7700
|
-
return out;
|
|
7701
|
-
};
|
|
7702
8262
|
var collectDecisionFieldKeysFromNode2 = (node) => {
|
|
7703
8263
|
const seen = /* @__PURE__ */ new Set();
|
|
7704
8264
|
for (const c of node.cases) {
|
|
@@ -7747,6 +8307,8 @@ var walkScreenLayersWithLayoutContext = (screen, fn) => {
|
|
|
7747
8307
|
for (const c of l.children) visit(c, childCtx());
|
|
7748
8308
|
} else if (l.kind === "carousel") {
|
|
7749
8309
|
for (const s of l.slides) visit(s, childCtx());
|
|
8310
|
+
} else if (l.kind === "conditional") {
|
|
8311
|
+
for (const c of l.children) visit(c, childCtx());
|
|
7750
8312
|
} else if (l.kind === "button" || l.kind === "back_button") {
|
|
7751
8313
|
for (const c of l.children) visit(c, childCtx());
|
|
7752
8314
|
} else if (l.kind === "hyperlink") {
|
|
@@ -7784,6 +8346,7 @@ var walkScreenLayers = (screen, fn) => {
|
|
|
7784
8346
|
fn(l);
|
|
7785
8347
|
if (l.kind === "stack") l.children.forEach(visit);
|
|
7786
8348
|
else if (l.kind === "carousel") l.slides.forEach(visit);
|
|
8349
|
+
else if (l.kind === "conditional") l.children.forEach(visit);
|
|
7787
8350
|
else if (l.kind === "button") l.children.forEach(visit);
|
|
7788
8351
|
else if (l.kind === "back_button") l.children.forEach(visit);
|
|
7789
8352
|
else if (l.kind === "hyperlink") l.children.forEach(visit);
|
|
@@ -7807,6 +8370,57 @@ var walkScreenLayers = (screen, fn) => {
|
|
|
7807
8370
|
visit(screen.regions.body);
|
|
7808
8371
|
if (screen.regions.footer) visit(screen.regions.footer);
|
|
7809
8372
|
};
|
|
8373
|
+
var maxMatchesOnActivePath = (root, match) => {
|
|
8374
|
+
const self = match(root) ? 1 : 0;
|
|
8375
|
+
if (root.kind === "conditional") {
|
|
8376
|
+
let widest = 0;
|
|
8377
|
+
for (const branch of root.children) {
|
|
8378
|
+
widest = Math.max(widest, maxMatchesOnActivePath(branch, match));
|
|
8379
|
+
}
|
|
8380
|
+
return self + widest;
|
|
8381
|
+
}
|
|
8382
|
+
let total = 0;
|
|
8383
|
+
for (const child of layerChildren(root)) {
|
|
8384
|
+
total += maxMatchesOnActivePath(child, match);
|
|
8385
|
+
}
|
|
8386
|
+
return self + total;
|
|
8387
|
+
};
|
|
8388
|
+
var maxMatchesOnScreenActivePath = (screen, match) => {
|
|
8389
|
+
const { header, body, footer } = screen.regions;
|
|
8390
|
+
return (header ? maxMatchesOnActivePath(header, match) : 0) + maxMatchesOnActivePath(body, match) + (footer ? maxMatchesOnActivePath(footer, match) : 0);
|
|
8391
|
+
};
|
|
8392
|
+
var answerFieldKeyOf = (l) => {
|
|
8393
|
+
if (isInputLayer2(l)) return l.fieldKey;
|
|
8394
|
+
if (l.kind === "checkbox") return l.fieldKey;
|
|
8395
|
+
if (l.kind === "email_password_auth") return l.fieldKey;
|
|
8396
|
+
return null;
|
|
8397
|
+
};
|
|
8398
|
+
var conditionalFieldScopeViolations = (screen) => {
|
|
8399
|
+
const fieldOrderOnScreen = /* @__PURE__ */ new Map();
|
|
8400
|
+
const conditionals = [];
|
|
8401
|
+
let order = 0;
|
|
8402
|
+
walkScreenLayers(screen, (l) => {
|
|
8403
|
+
const fieldKey = answerFieldKeyOf(l);
|
|
8404
|
+
if (fieldKey != null && !fieldOrderOnScreen.has(fieldKey)) {
|
|
8405
|
+
fieldOrderOnScreen.set(fieldKey, order);
|
|
8406
|
+
}
|
|
8407
|
+
if (l.kind === "conditional") conditionals.push({ layer: l, order });
|
|
8408
|
+
order += 1;
|
|
8409
|
+
});
|
|
8410
|
+
const violations = [];
|
|
8411
|
+
for (const { layer, order: conditionalOrder } of conditionals) {
|
|
8412
|
+
layer.cases.forEach((c, caseIndex) => {
|
|
8413
|
+
for (const fieldKey of collectDecisionFieldKeys2(c.expression)) {
|
|
8414
|
+
const declaredAt = fieldOrderOnScreen.get(fieldKey);
|
|
8415
|
+
if (declaredAt === void 0) continue;
|
|
8416
|
+
if (declaredAt >= conditionalOrder) {
|
|
8417
|
+
violations.push({ conditionalId: layer.id, caseId: c.id, caseIndex, fieldKey });
|
|
8418
|
+
}
|
|
8419
|
+
}
|
|
8420
|
+
});
|
|
8421
|
+
}
|
|
8422
|
+
return violations;
|
|
8423
|
+
};
|
|
7810
8424
|
var ExternalSurfaceNodeIdSchema = external_exports.string().min(1).max(64).regex(/^surf_[a-z0-9_]+$/i, "external surface node id must look like surf_<id>");
|
|
7811
8425
|
var NORMALIZED_SURFACE_OUTCOMES = [
|
|
7812
8426
|
"purchase_completed",
|
|
@@ -7937,6 +8551,8 @@ var migrateLayerInPlace = (layer) => {
|
|
|
7937
8551
|
for (const c of l.children) migrateLayerInPlace(c);
|
|
7938
8552
|
} else if (l.kind === "carousel" && Array.isArray(l.slides)) {
|
|
7939
8553
|
for (const s of l.slides) migrateLayerInPlace(s);
|
|
8554
|
+
} else if (l.kind === "conditional" && Array.isArray(l.children)) {
|
|
8555
|
+
for (const c of l.children) migrateLayerInPlace(c);
|
|
7940
8556
|
} else if (l.kind === "button" && Array.isArray(l.children)) {
|
|
7941
8557
|
for (const c of l.children) migrateLayerInPlace(c);
|
|
7942
8558
|
} else if (l.kind === "back_button" && Array.isArray(l.children)) {
|
|
@@ -8138,8 +8754,8 @@ var refineManifestGraph = (manifest, ctx, jumpTargets) => {
|
|
|
8138
8754
|
};
|
|
8139
8755
|
var refineManifestScreens = (manifest, ctx, jumpTargets, screenIds, allFieldKeys) => {
|
|
8140
8756
|
const layerIds = /* @__PURE__ */ new Set();
|
|
8757
|
+
const sdkAllow = new Set(manifest.sdkAttributeKeys);
|
|
8141
8758
|
manifest.screens.forEach((screen, screenIdx) => {
|
|
8142
|
-
let inputCount = 0;
|
|
8143
8759
|
const layerIdsForScreen = /* @__PURE__ */ new Set();
|
|
8144
8760
|
walkScreenLayers(screen, (l) => {
|
|
8145
8761
|
layerIdsForScreen.add(l.id);
|
|
@@ -8154,7 +8770,6 @@ var refineManifestScreens = (manifest, ctx, jumpTargets, screenIds, allFieldKeys
|
|
|
8154
8770
|
}
|
|
8155
8771
|
layerIds.add(l.id);
|
|
8156
8772
|
if (isInputLayer2(l)) {
|
|
8157
|
-
inputCount += 1;
|
|
8158
8773
|
if (allFieldKeys.has(l.fieldKey)) {
|
|
8159
8774
|
ctx.addIssue({
|
|
8160
8775
|
code: external_exports.ZodIssueCode.custom,
|
|
@@ -8179,10 +8794,18 @@ var refineManifestScreens = (manifest, ctx, jumpTargets, screenIds, allFieldKeys
|
|
|
8179
8794
|
if (!allFieldKeys.has(fk)) allFieldKeys.set(fk, screen.id);
|
|
8180
8795
|
}
|
|
8181
8796
|
});
|
|
8182
|
-
|
|
8797
|
+
const inputsOnPath = maxMatchesOnScreenActivePath(screen, isInputLayer2);
|
|
8798
|
+
if (inputsOnPath > 1) {
|
|
8183
8799
|
ctx.addIssue({
|
|
8184
8800
|
code: external_exports.ZodIssueCode.custom,
|
|
8185
|
-
message: `screen "${screen.id}"
|
|
8801
|
+
message: `screen "${screen.id}" can show ${inputsOnPath} input layers at once (max 1 allowed)`,
|
|
8802
|
+
path: ["screens", screenIdx, "regions"]
|
|
8803
|
+
});
|
|
8804
|
+
}
|
|
8805
|
+
for (const v of conditionalFieldScopeViolations(screen)) {
|
|
8806
|
+
ctx.addIssue({
|
|
8807
|
+
code: external_exports.ZodIssueCode.custom,
|
|
8808
|
+
message: `conditional "${v.conditionalId}" case "${v.caseId}" reads fieldKey "${v.fieldKey}" that is answered at or after it on the same screen`,
|
|
8186
8809
|
path: ["screens", screenIdx, "regions"]
|
|
8187
8810
|
});
|
|
8188
8811
|
}
|
|
@@ -8251,6 +8874,21 @@ var refineManifestScreens = (manifest, ctx, jumpTargets, screenIds, allFieldKeys
|
|
|
8251
8874
|
}
|
|
8252
8875
|
}
|
|
8253
8876
|
}
|
|
8877
|
+
if (l.kind === "conditional") {
|
|
8878
|
+
validateConditionalCasesAndBindings(l, ctx);
|
|
8879
|
+
for (const c of l.cases) {
|
|
8880
|
+
for (const sk of collectDecisionSdkKeys(c.expression)) {
|
|
8881
|
+
if (isReservedSdkKey(sk)) continue;
|
|
8882
|
+
if (!sdkAllow.has(sk)) {
|
|
8883
|
+
ctx.addIssue({
|
|
8884
|
+
code: external_exports.ZodIssueCode.custom,
|
|
8885
|
+
message: `conditional "${l.id}" case "${c.id}" references sdk key "${sk}" not in sdkAttributeKeys`,
|
|
8886
|
+
path: ["screens", screenIdx]
|
|
8887
|
+
});
|
|
8888
|
+
}
|
|
8889
|
+
}
|
|
8890
|
+
}
|
|
8891
|
+
}
|
|
8254
8892
|
if (l.kind === "button" && l.action.kind === "go_to_step") {
|
|
8255
8893
|
if (!jumpTargets.has(l.action.screenId)) {
|
|
8256
8894
|
ctx.addIssue({
|
|
@@ -8402,6 +9040,22 @@ var refineFlowManifest = (manifest, ctx) => {
|
|
|
8402
9040
|
}
|
|
8403
9041
|
}
|
|
8404
9042
|
});
|
|
9043
|
+
manifest.screens.forEach((screen, screenIdx) => {
|
|
9044
|
+
walkScreenLayers(screen, (l) => {
|
|
9045
|
+
if (l.kind !== "conditional") return;
|
|
9046
|
+
for (const c of l.cases) {
|
|
9047
|
+
for (const fk of collectDecisionFieldKeys2(c.expression)) {
|
|
9048
|
+
if (!allFieldKeys.has(fk)) {
|
|
9049
|
+
ctx.addIssue({
|
|
9050
|
+
code: external_exports.ZodIssueCode.custom,
|
|
9051
|
+
message: `conditional "${l.id}" case "${c.id}" references unknown fieldKey "${fk}"`,
|
|
9052
|
+
path: ["screens", screenIdx, "regions"]
|
|
9053
|
+
});
|
|
9054
|
+
}
|
|
9055
|
+
}
|
|
9056
|
+
}
|
|
9057
|
+
});
|
|
9058
|
+
});
|
|
8405
9059
|
if (manifest.locales.length > 0 && !manifest.locales.includes(manifest.defaultLocale)) {
|
|
8406
9060
|
ctx.addIssue({
|
|
8407
9061
|
code: external_exports.ZodIssueCode.custom,
|
|
@@ -8484,7 +9138,10 @@ var FontStyleSchema = external_exports.object({
|
|
|
8484
9138
|
label: external_exports.string().max(40).optional(),
|
|
8485
9139
|
/** MediaAsset id of the uploaded font file. */
|
|
8486
9140
|
mediaAssetId: external_exports.string().uuid().optional(),
|
|
8487
|
-
/**
|
|
9141
|
+
/**
|
|
9142
|
+
* Access URL for the uploaded font file (denormalized for SDK consumption).
|
|
9143
|
+
* Freshly signed on SDK resolve and dashboard app reads; do not persist as long-lived.
|
|
9144
|
+
*/
|
|
8488
9145
|
url: external_exports.string().url().optional(),
|
|
8489
9146
|
/** Original filename — useful for display. */
|
|
8490
9147
|
filename: external_exports.string().max(200).optional()
|
|
@@ -8536,9 +9193,20 @@ var SdkResolveResponseSchema = external_exports.object({
|
|
|
8536
9193
|
var SdkResolveAllResponseSchema = external_exports.object({
|
|
8537
9194
|
channels: external_exports.array(SdkResolveResponseSchema)
|
|
8538
9195
|
});
|
|
8539
|
-
var SdkResolveAssignmentSchema =
|
|
8540
|
-
|
|
8541
|
-
|
|
9196
|
+
var SdkResolveAssignmentSchema = external_exports.object({
|
|
9197
|
+
flowId: external_exports.string().uuid(),
|
|
9198
|
+
versionId: external_exports.string().uuid(),
|
|
9199
|
+
versionNumber: external_exports.number().int().positive(),
|
|
9200
|
+
assignmentVersion: external_exports.number().int().nonnegative(),
|
|
9201
|
+
environment: external_exports.enum(["test", "live"]),
|
|
9202
|
+
channelId: external_exports.string(),
|
|
9203
|
+
experimentId: external_exports.string().uuid().nullable(),
|
|
9204
|
+
variantId: external_exports.string().nullable(),
|
|
9205
|
+
branding: BrandingSchema.optional(),
|
|
9206
|
+
features: external_exports.object({
|
|
9207
|
+
attribution: external_exports.boolean()
|
|
9208
|
+
}).optional(),
|
|
9209
|
+
integrations: ResolvedAppIntegrationsSchema
|
|
8542
9210
|
});
|
|
8543
9211
|
var FlowTerminalCorrelationSchema = external_exports.object({
|
|
8544
9212
|
channelId: external_exports.string(),
|
|
@@ -8861,7 +9529,10 @@ var ThemedColorModesSchema4 = external_exports.object({
|
|
|
8861
9529
|
var ThemedColorSchema4 = external_exports.union([external_exports.string().min(1), ThemedColorModesSchema4]);
|
|
8862
9530
|
var LAYOUT_FRACTION_PRESETS4 = ["1/2", "1/3", "2/3", "1/4", "3/4"];
|
|
8863
9531
|
var WIDTH_PRESETS4 = ["auto", "full", ...LAYOUT_FRACTION_PRESETS4];
|
|
8864
|
-
var WidthValueSchema4 = external_exports.
|
|
9532
|
+
var WidthValueSchema4 = external_exports.preprocess(
|
|
9533
|
+
(value) => value === "fill" ? "full" : value,
|
|
9534
|
+
external_exports.union([external_exports.enum(WIDTH_PRESETS4), external_exports.number().int().min(0).max(2e3)])
|
|
9535
|
+
);
|
|
8865
9536
|
var HEIGHT_PRESETS4 = ["auto", "full", "fill", ...LAYOUT_FRACTION_PRESETS4];
|
|
8866
9537
|
var CommonLayoutHeightSchema4 = external_exports.union([
|
|
8867
9538
|
external_exports.enum(HEIGHT_PRESETS4),
|
|
@@ -8894,6 +9565,8 @@ var CommonStyleSchema4 = external_exports.object({
|
|
|
8894
9565
|
border: BorderSchema4.optional(),
|
|
8895
9566
|
shadow: DropShadowSchema4.optional(),
|
|
8896
9567
|
opacity: external_exports.number().min(0).max(1).optional(),
|
|
9568
|
+
/** Multiplier (0–1) applied to the resolved background color alpha only; children stay fully opaque unless `opacity` is set. */
|
|
9569
|
+
backgroundOpacity: external_exports.number().min(0).max(1).optional(),
|
|
8897
9570
|
width: WidthValueSchema4.optional(),
|
|
8898
9571
|
/** Omit for normal flow; `'absolute'` removes the layer from flex flow (non-root only). */
|
|
8899
9572
|
position: external_exports.literal("absolute").optional(),
|
|
@@ -8904,6 +9577,11 @@ var CommonStyleSchema4 = external_exports.object({
|
|
|
8904
9577
|
rotate: external_exports.number().min(-360).max(360).optional(),
|
|
8905
9578
|
/** Cross-axis size: `auto` (hug), `full`/`fill` (parent height), fractions, or fixed px. */
|
|
8906
9579
|
height: CommonLayoutHeightSchema4.optional(),
|
|
9580
|
+
/** Optional size clamps (px); applied on the flex shell / wrapper like width/height. */
|
|
9581
|
+
minWidth: NonNegativePxSchema4.max(2e3).optional(),
|
|
9582
|
+
maxWidth: NonNegativePxSchema4.max(2e3).optional(),
|
|
9583
|
+
minHeight: NonNegativePxSchema4.max(2e3).optional(),
|
|
9584
|
+
maxHeight: NonNegativePxSchema4.max(2e3).optional(),
|
|
8907
9585
|
/** Stroke thickness in px for layers that render a stroke primitive (e.g. loader ring). */
|
|
8908
9586
|
strokeWidth: external_exports.number().int().min(0).max(64).optional()
|
|
8909
9587
|
}).partial();
|
|
@@ -8917,9 +9595,10 @@ var TextStyleSchema4 = CommonStyleSchema4.extend({
|
|
|
8917
9595
|
fontWeight: external_exports.number().int().min(100).max(900).optional(),
|
|
8918
9596
|
color: ThemedColorSchema4.optional(),
|
|
8919
9597
|
align: external_exports.enum(["left", "center", "right"]).optional(),
|
|
9598
|
+
/** Unitless line-height multiplier (CSS `line-height` without units). */
|
|
8920
9599
|
lineHeight: external_exports.number().min(0.8).max(3).optional(),
|
|
8921
|
-
/**
|
|
8922
|
-
|
|
9600
|
+
/** Extra spacing between characters as a multiple of `fontSize` (CSS `em`; negative values tighten). */
|
|
9601
|
+
letterSpacing: external_exports.number().min(-0.5).max(1).optional()
|
|
8923
9602
|
});
|
|
8924
9603
|
var ImageStyleSchema4 = CommonStyleSchema4.extend({
|
|
8925
9604
|
fit: external_exports.enum(["cover", "contain", "fill"]).optional(),
|
|
@@ -8994,6 +9673,41 @@ var ButtonLayoutBreakpointsSchema4 = external_exports.object({
|
|
|
8994
9673
|
xl: ButtonLayoutBreakpointPatchSchema4.optional(),
|
|
8995
9674
|
"2xl": ButtonLayoutBreakpointPatchSchema4.optional()
|
|
8996
9675
|
}).partial().optional();
|
|
9676
|
+
var AuthLayoutBreakpointPatchSchema4 = external_exports.object({
|
|
9677
|
+
gap: NonNegativePxSchema4.optional(),
|
|
9678
|
+
align: external_exports.enum(["start", "center", "end", "stretch"]).optional()
|
|
9679
|
+
}).partial();
|
|
9680
|
+
var AuthLayoutBreakpointsSchema4 = external_exports.object({
|
|
9681
|
+
sm: AuthLayoutBreakpointPatchSchema4.optional(),
|
|
9682
|
+
md: AuthLayoutBreakpointPatchSchema4.optional(),
|
|
9683
|
+
lg: AuthLayoutBreakpointPatchSchema4.optional(),
|
|
9684
|
+
xl: AuthLayoutBreakpointPatchSchema4.optional(),
|
|
9685
|
+
"2xl": AuthLayoutBreakpointPatchSchema4.optional()
|
|
9686
|
+
}).partial().optional();
|
|
9687
|
+
var ChoiceLayoutBreakpointPatchSchema4 = external_exports.object({
|
|
9688
|
+
direction: external_exports.enum(["vertical", "horizontal"]).optional(),
|
|
9689
|
+
gap: NonNegativePxSchema4.optional(),
|
|
9690
|
+
columns: external_exports.number().int().min(1).max(6).optional()
|
|
9691
|
+
}).partial();
|
|
9692
|
+
var ChoiceLayoutBreakpointsSchema4 = external_exports.object({
|
|
9693
|
+
sm: ChoiceLayoutBreakpointPatchSchema4.optional(),
|
|
9694
|
+
md: ChoiceLayoutBreakpointPatchSchema4.optional(),
|
|
9695
|
+
lg: ChoiceLayoutBreakpointPatchSchema4.optional(),
|
|
9696
|
+
xl: ChoiceLayoutBreakpointPatchSchema4.optional(),
|
|
9697
|
+
"2xl": ChoiceLayoutBreakpointPatchSchema4.optional()
|
|
9698
|
+
}).partial().optional();
|
|
9699
|
+
var CarouselLayoutBreakpointPatchSchema4 = external_exports.object({
|
|
9700
|
+
pageAlignment: external_exports.enum(["top", "center", "bottom"]).optional(),
|
|
9701
|
+
pageSpacing: NonNegativePxSchema4.optional(),
|
|
9702
|
+
pagePeek: NonNegativePxSchema4.optional()
|
|
9703
|
+
}).partial();
|
|
9704
|
+
var CarouselLayoutBreakpointsSchema4 = external_exports.object({
|
|
9705
|
+
sm: CarouselLayoutBreakpointPatchSchema4.optional(),
|
|
9706
|
+
md: CarouselLayoutBreakpointPatchSchema4.optional(),
|
|
9707
|
+
lg: CarouselLayoutBreakpointPatchSchema4.optional(),
|
|
9708
|
+
xl: CarouselLayoutBreakpointPatchSchema4.optional(),
|
|
9709
|
+
"2xl": CarouselLayoutBreakpointPatchSchema4.optional()
|
|
9710
|
+
}).partial().optional();
|
|
8997
9711
|
var DecisionNodeJumpIdSchema4 = external_exports.string().min(1).max(64).regex(/^dec_[a-z0-9_]+$/i);
|
|
8998
9712
|
var ExternalSurfaceJumpIdSchema4 = external_exports.string().min(1).max(64).regex(/^surf_[a-z0-9_]+$/i);
|
|
8999
9713
|
var FlowGraphNodeJumpTargetSchema4 = ScreenIdSchema4.or(DecisionNodeJumpIdSchema4).or(
|
|
@@ -9038,6 +9752,8 @@ var OsPermissionOutcomesSchema4 = external_exports.object({
|
|
|
9038
9752
|
}).strict();
|
|
9039
9753
|
var APP_REVIEW_OUTCOMES4 = ["not_shown", "dismissed"];
|
|
9040
9754
|
external_exports.enum(APP_REVIEW_OUTCOMES4);
|
|
9755
|
+
var CAROUSEL_ADVANCE_ON_LAST4 = ["noop", "complete"];
|
|
9756
|
+
var CarouselAdvanceOnLastSchema4 = external_exports.enum(CAROUSEL_ADVANCE_ON_LAST4);
|
|
9041
9757
|
var ButtonActionSchema4 = external_exports.discriminatedUnion("kind", [
|
|
9042
9758
|
external_exports.object({ kind: external_exports.literal("none") }),
|
|
9043
9759
|
external_exports.object({ kind: external_exports.literal("continue") }),
|
|
@@ -9057,9 +9773,14 @@ var ButtonActionSchema4 = external_exports.discriminatedUnion("kind", [
|
|
|
9057
9773
|
kind: external_exports.literal("play_media"),
|
|
9058
9774
|
targetLayerIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
9059
9775
|
}),
|
|
9060
|
-
external_exports.object({ kind: external_exports.literal("request_app_review") })
|
|
9776
|
+
external_exports.object({ kind: external_exports.literal("request_app_review") }),
|
|
9777
|
+
external_exports.object({
|
|
9778
|
+
kind: external_exports.literal("advance_carousel"),
|
|
9779
|
+
targetLayerId: external_exports.string().min(1),
|
|
9780
|
+
onLast: CarouselAdvanceOnLastSchema4.optional()
|
|
9781
|
+
})
|
|
9061
9782
|
]);
|
|
9062
|
-
var TEXT_INPUT_TYPES4 = ["plain", "email", "phone", "url", "multiline"];
|
|
9783
|
+
var TEXT_INPUT_TYPES4 = ["plain", "email", "phone", "url", "number", "multiline"];
|
|
9063
9784
|
var TextInputTypeSchema4 = external_exports.enum(TEXT_INPUT_TYPES4);
|
|
9064
9785
|
var COUNTER_DISPLAY_KINDS4 = ["number", "time"];
|
|
9065
9786
|
var COUNTER_TIME_FORMATS4 = ["mm_ss", "hh_mm_ss", "dd_hh_mm_ss"];
|
|
@@ -9124,7 +9845,8 @@ var ProgressLayerSchema4 = external_exports.object({
|
|
|
9124
9845
|
kind: external_exports.literal("progress"),
|
|
9125
9846
|
trackColor: ThemedColorSchema4.optional(),
|
|
9126
9847
|
fillColor: ThemedColorSchema4.optional(),
|
|
9127
|
-
style: CommonStyleSchema4.optional()
|
|
9848
|
+
style: CommonStyleSchema4.optional(),
|
|
9849
|
+
styleBreakpoints: CommonStyleBreakpointsSchema4
|
|
9128
9850
|
});
|
|
9129
9851
|
var LoaderOnCompleteSchema4 = external_exports.discriminatedUnion("mode", [
|
|
9130
9852
|
external_exports.object({ mode: external_exports.literal("none") }),
|
|
@@ -9144,7 +9866,8 @@ var LoaderLayerSchema4 = external_exports.object({
|
|
|
9144
9866
|
fillColor: ThemedColorSchema4.optional(),
|
|
9145
9867
|
/** Horizontal alignment of the bar or ring within the layer box (default start). */
|
|
9146
9868
|
align: external_exports.enum(["start", "center", "end"]).optional(),
|
|
9147
|
-
style: CommonStyleSchema4.optional()
|
|
9869
|
+
style: CommonStyleSchema4.optional(),
|
|
9870
|
+
styleBreakpoints: CommonStyleBreakpointsSchema4
|
|
9148
9871
|
}).superRefine((data, ctx) => {
|
|
9149
9872
|
if (data.variant !== "circular") return;
|
|
9150
9873
|
const w = data.style?.width;
|
|
@@ -9181,27 +9904,39 @@ var CheckboxLayerSchema4 = external_exports.object({
|
|
|
9181
9904
|
styleBreakpoints: CommonStyleBreakpointsSchema4
|
|
9182
9905
|
});
|
|
9183
9906
|
var lazyLayer24 = () => layerSchemaStore4.schema;
|
|
9184
|
-
var
|
|
9185
|
-
|
|
9186
|
-
|
|
9187
|
-
|
|
9188
|
-
|
|
9189
|
-
|
|
9190
|
-
|
|
9191
|
-
|
|
9192
|
-
|
|
9193
|
-
|
|
9194
|
-
|
|
9195
|
-
|
|
9196
|
-
|
|
9197
|
-
|
|
9198
|
-
|
|
9907
|
+
var migrateStackJustifyForParse4 = (raw) => {
|
|
9908
|
+
if (!raw || typeof raw !== "object") return raw;
|
|
9909
|
+
const o = { ...raw };
|
|
9910
|
+
if (o.justify != null && o.distribution == null) o.distribution = o.justify;
|
|
9911
|
+
delete o.justify;
|
|
9912
|
+
return o;
|
|
9913
|
+
};
|
|
9914
|
+
var StackLayerSchema4 = external_exports.preprocess(
|
|
9915
|
+
migrateStackJustifyForParse4,
|
|
9916
|
+
external_exports.object({
|
|
9917
|
+
...baseLayerShape4,
|
|
9918
|
+
kind: external_exports.literal("stack"),
|
|
9919
|
+
style: CommonStyleSchema4.optional(),
|
|
9920
|
+
styleBreakpoints: CommonStyleBreakpointsSchema4,
|
|
9921
|
+
stackLayoutBreakpoints: StackLayoutBreakpointsSchema4,
|
|
9922
|
+
selectedStyle: CommonStyleSchema4.optional(),
|
|
9923
|
+
selectedStyleBreakpoints: CommonStyleBreakpointsSchema4,
|
|
9924
|
+
direction: external_exports.enum(["vertical", "horizontal"]),
|
|
9925
|
+
gap: external_exports.number().int().min(0).optional(),
|
|
9926
|
+
align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
|
|
9927
|
+
distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
|
|
9928
|
+
wrap: external_exports.boolean().optional(),
|
|
9929
|
+
children: external_exports.lazy(() => external_exports.array(lazyLayer24()))
|
|
9930
|
+
})
|
|
9931
|
+
);
|
|
9199
9932
|
var TextLayerSchema4 = external_exports.object({
|
|
9200
9933
|
...baseLayerShape4,
|
|
9201
9934
|
kind: external_exports.literal("text"),
|
|
9202
9935
|
text: LocalizedTextSchema5,
|
|
9203
9936
|
style: TextStyleSchema4.optional(),
|
|
9204
|
-
styleBreakpoints: TextStyleBreakpointsSchema4
|
|
9937
|
+
styleBreakpoints: TextStyleBreakpointsSchema4,
|
|
9938
|
+
/** Merged on top of resolved `style` when this layer is inside a selected choice option. */
|
|
9939
|
+
selectedStyle: TextStyleSchema4.optional()
|
|
9205
9940
|
});
|
|
9206
9941
|
var migrateLegacyHyperlinkForParse4 = (raw) => {
|
|
9207
9942
|
if (!raw || typeof raw !== "object") return raw;
|
|
@@ -9240,7 +9975,8 @@ var HyperlinkLayerSchemaInner4 = external_exports.object({
|
|
|
9240
9975
|
distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
|
|
9241
9976
|
wrap: external_exports.boolean().optional(),
|
|
9242
9977
|
style: CommonStyleSchema4.optional(),
|
|
9243
|
-
styleBreakpoints: CommonStyleBreakpointsSchema4
|
|
9978
|
+
styleBreakpoints: CommonStyleBreakpointsSchema4,
|
|
9979
|
+
hyperlinkLayoutBreakpoints: StackLayoutBreakpointsSchema4
|
|
9244
9980
|
}).superRefine((data, ctx) => {
|
|
9245
9981
|
const p = parseHyperlinkHref4(data.href.trim());
|
|
9246
9982
|
if (!p.ok) {
|
|
@@ -9261,7 +9997,8 @@ var ImageLayerSchema4 = external_exports.object({
|
|
|
9261
9997
|
media: MediaReferenceSchema4.optional(),
|
|
9262
9998
|
alt: external_exports.string().max(280).optional(),
|
|
9263
9999
|
style: ImageStyleSchema4.optional(),
|
|
9264
|
-
styleBreakpoints: ImageStyleBreakpointsSchema4
|
|
10000
|
+
styleBreakpoints: ImageStyleBreakpointsSchema4,
|
|
10001
|
+
selectedStyle: ImageStyleSchema4.optional()
|
|
9265
10002
|
});
|
|
9266
10003
|
var LottieLayerSchema4 = external_exports.object({
|
|
9267
10004
|
...baseLayerShape4,
|
|
@@ -9272,7 +10009,8 @@ var LottieLayerSchema4 = external_exports.object({
|
|
|
9272
10009
|
triggerLayerId: external_exports.string().min(1).optional(),
|
|
9273
10010
|
onComplete: LoaderOnCompleteSchema4.optional(),
|
|
9274
10011
|
style: ImageStyleSchema4.optional(),
|
|
9275
|
-
styleBreakpoints: ImageStyleBreakpointsSchema4
|
|
10012
|
+
styleBreakpoints: ImageStyleBreakpointsSchema4,
|
|
10013
|
+
selectedStyle: ImageStyleSchema4.optional()
|
|
9276
10014
|
});
|
|
9277
10015
|
var VideoLayerSchema4 = external_exports.object({
|
|
9278
10016
|
...baseLayerShape4,
|
|
@@ -9284,7 +10022,8 @@ var VideoLayerSchema4 = external_exports.object({
|
|
|
9284
10022
|
onComplete: LoaderOnCompleteSchema4.optional(),
|
|
9285
10023
|
audioEnabled: external_exports.boolean().optional(),
|
|
9286
10024
|
style: ImageStyleSchema4.optional(),
|
|
9287
|
-
styleBreakpoints: ImageStyleBreakpointsSchema4
|
|
10025
|
+
styleBreakpoints: ImageStyleBreakpointsSchema4,
|
|
10026
|
+
selectedStyle: ImageStyleSchema4.optional()
|
|
9288
10027
|
});
|
|
9289
10028
|
var IconLayerSchema4 = external_exports.object({
|
|
9290
10029
|
...baseLayerShape4,
|
|
@@ -9292,7 +10031,8 @@ var IconLayerSchema4 = external_exports.object({
|
|
|
9292
10031
|
family: external_exports.enum(ICON_FAMILIES4),
|
|
9293
10032
|
iconName: external_exports.string().min(1).max(128),
|
|
9294
10033
|
style: IconStyleSchema4.optional(),
|
|
9295
|
-
styleBreakpoints: IconStyleBreakpointsSchema4
|
|
10034
|
+
styleBreakpoints: IconStyleBreakpointsSchema4,
|
|
10035
|
+
selectedStyle: IconStyleSchema4.optional()
|
|
9296
10036
|
});
|
|
9297
10037
|
var lazyLayer34 = () => layerSchemaStore4.schema;
|
|
9298
10038
|
var OAuthProviderPresetLayerSchema4 = external_exports.object({
|
|
@@ -9446,6 +10186,7 @@ var OAuthLoginLayerSchemaValidated4 = external_exports.object({
|
|
|
9446
10186
|
),
|
|
9447
10187
|
gap: external_exports.number().int().min(0).optional(),
|
|
9448
10188
|
align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
|
|
10189
|
+
authLayoutBreakpoints: AuthLayoutBreakpointsSchema4,
|
|
9449
10190
|
style: CommonStyleSchema4.optional(),
|
|
9450
10191
|
styleBreakpoints: CommonStyleBreakpointsSchema4
|
|
9451
10192
|
});
|
|
@@ -9597,6 +10338,7 @@ var EmailPasswordAuthLayerSchemaValidated4 = external_exports.object({
|
|
|
9597
10338
|
),
|
|
9598
10339
|
gap: external_exports.number().int().min(0).optional(),
|
|
9599
10340
|
align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
|
|
10341
|
+
authLayoutBreakpoints: AuthLayoutBreakpointsSchema4,
|
|
9600
10342
|
style: CommonStyleSchema4.optional(),
|
|
9601
10343
|
styleBreakpoints: CommonStyleBreakpointsSchema4
|
|
9602
10344
|
}).superRefine(refineEmailPasswordAuthChildren4);
|
|
@@ -9630,7 +10372,8 @@ var SingleChoiceLayerSchema4 = external_exports.object({
|
|
|
9630
10372
|
gap: external_exports.number().int().min(0).optional(),
|
|
9631
10373
|
columns: external_exports.number().int().min(1).max(12).optional(),
|
|
9632
10374
|
style: CommonStyleSchema4.optional(),
|
|
9633
|
-
styleBreakpoints: CommonStyleBreakpointsSchema4
|
|
10375
|
+
styleBreakpoints: CommonStyleBreakpointsSchema4,
|
|
10376
|
+
choiceLayoutBreakpoints: ChoiceLayoutBreakpointsSchema4
|
|
9634
10377
|
});
|
|
9635
10378
|
var MultipleChoiceLayerSchema4 = external_exports.object({
|
|
9636
10379
|
...baseLayerShape4,
|
|
@@ -9647,8 +10390,19 @@ var MultipleChoiceLayerSchema4 = external_exports.object({
|
|
|
9647
10390
|
gap: external_exports.number().int().min(0).optional(),
|
|
9648
10391
|
columns: external_exports.number().int().min(1).max(12).optional(),
|
|
9649
10392
|
style: CommonStyleSchema4.optional(),
|
|
9650
|
-
styleBreakpoints: CommonStyleBreakpointsSchema4
|
|
10393
|
+
styleBreakpoints: CommonStyleBreakpointsSchema4,
|
|
10394
|
+
choiceLayoutBreakpoints: ChoiceLayoutBreakpointsSchema4
|
|
9651
10395
|
});
|
|
10396
|
+
var TextInputFieldStyleSchema4 = external_exports.object({
|
|
10397
|
+
fontFamily: external_exports.string().min(1).max(128).optional(),
|
|
10398
|
+
fontSize: external_exports.number().int().min(8).max(96).optional(),
|
|
10399
|
+
fontWeight: external_exports.number().int().min(100).max(900).optional(),
|
|
10400
|
+
color: ThemedColorSchema4.optional(),
|
|
10401
|
+
align: external_exports.enum(["left", "center", "right"]).optional(),
|
|
10402
|
+
lineHeight: external_exports.number().min(0.8).max(3).optional(),
|
|
10403
|
+
letterSpacing: external_exports.number().min(-0.5).max(1).optional(),
|
|
10404
|
+
opacity: external_exports.number().min(0).max(1).optional()
|
|
10405
|
+
}).partial();
|
|
9652
10406
|
var TextInputLayerSchema4 = external_exports.object({
|
|
9653
10407
|
...baseLayerShape4,
|
|
9654
10408
|
kind: external_exports.literal("text_input"),
|
|
@@ -9660,7 +10414,10 @@ var TextInputLayerSchema4 = external_exports.object({
|
|
|
9660
10414
|
maxLength: external_exports.number().int().positive().max(2e3).optional(),
|
|
9661
10415
|
classification: FieldClassificationSchema5,
|
|
9662
10416
|
children: external_exports.lazy(() => external_exports.array(lazyLayer54())).optional(),
|
|
9663
|
-
|
|
10417
|
+
/** Typography for the native input's typed text. */
|
|
10418
|
+
fieldStyle: TextInputFieldStyleSchema4.optional(),
|
|
10419
|
+
style: CommonStyleSchema4.optional(),
|
|
10420
|
+
styleBreakpoints: CommonStyleBreakpointsSchema4
|
|
9664
10421
|
});
|
|
9665
10422
|
var ScaleInputLabelStyleSchema4 = external_exports.object({
|
|
9666
10423
|
fontFamily: external_exports.string().min(1).max(128).optional(),
|
|
@@ -9669,6 +10426,7 @@ var ScaleInputLabelStyleSchema4 = external_exports.object({
|
|
|
9669
10426
|
color: ThemedColorSchema4.optional(),
|
|
9670
10427
|
align: external_exports.enum(["left", "center", "right"]).optional(),
|
|
9671
10428
|
lineHeight: external_exports.number().min(0.8).max(3).optional(),
|
|
10429
|
+
letterSpacing: external_exports.number().min(-0.5).max(1).optional(),
|
|
9672
10430
|
opacity: external_exports.number().min(0).max(1).optional()
|
|
9673
10431
|
}).partial();
|
|
9674
10432
|
var ScaleInputLayerSchema4 = external_exports.object({
|
|
@@ -9691,7 +10449,40 @@ var ScaleInputLayerSchema4 = external_exports.object({
|
|
|
9691
10449
|
thumbSize: external_exports.number().int().min(8).max(48).optional(),
|
|
9692
10450
|
thumbColor: ThemedColorSchema4.optional(),
|
|
9693
10451
|
children: external_exports.lazy(() => external_exports.array(lazyLayer54())).optional(),
|
|
9694
|
-
style: CommonStyleSchema4.optional()
|
|
10452
|
+
style: CommonStyleSchema4.optional(),
|
|
10453
|
+
styleBreakpoints: CommonStyleBreakpointsSchema4
|
|
10454
|
+
});
|
|
10455
|
+
var WheelPickerOptionSchema4 = external_exports.object({
|
|
10456
|
+
optionId: external_exports.string().min(1).max(64),
|
|
10457
|
+
label: LocalizedTextSchema5
|
|
10458
|
+
});
|
|
10459
|
+
var WheelPickerItemStyleSchema4 = external_exports.object({
|
|
10460
|
+
fontFamily: external_exports.string().min(1).max(128).optional(),
|
|
10461
|
+
fontSize: external_exports.number().int().min(8).max(96).optional(),
|
|
10462
|
+
fontWeight: external_exports.number().int().min(100).max(900).optional(),
|
|
10463
|
+
color: ThemedColorSchema4.optional(),
|
|
10464
|
+
opacity: external_exports.number().min(0).max(1).optional()
|
|
10465
|
+
}).partial();
|
|
10466
|
+
var WheelPickerLayerSchema4 = external_exports.object({
|
|
10467
|
+
...baseLayerShape4,
|
|
10468
|
+
kind: external_exports.literal("wheel_picker"),
|
|
10469
|
+
fieldKey: FieldKeySchema5,
|
|
10470
|
+
mode: external_exports.enum(["options", "date"]).optional(),
|
|
10471
|
+
options: external_exports.array(WheelPickerOptionSchema4).min(2).optional(),
|
|
10472
|
+
defaultOptionId: external_exports.string().optional(),
|
|
10473
|
+
datePart: external_exports.enum(["year", "month", "day"]).optional(),
|
|
10474
|
+
minYear: external_exports.number().int().min(1e3).max(9999).optional(),
|
|
10475
|
+
maxYear: external_exports.number().int().min(1e3).max(9999).optional(),
|
|
10476
|
+
defaultValue: external_exports.string().optional(),
|
|
10477
|
+
placeholder: LocalizedTextSchema5.optional(),
|
|
10478
|
+
itemHeight: external_exports.number().int().min(28).max(72).optional(),
|
|
10479
|
+
visibleItemCount: external_exports.number().int().min(3).max(9).optional(),
|
|
10480
|
+
selectionBackgroundColor: ThemedColorSchema4.optional(),
|
|
10481
|
+
itemStyle: WheelPickerItemStyleSchema4.optional(),
|
|
10482
|
+
selectedItemStyle: WheelPickerItemStyleSchema4.optional(),
|
|
10483
|
+
children: external_exports.lazy(() => external_exports.array(lazyLayer54())).optional(),
|
|
10484
|
+
style: CommonStyleSchema4.optional(),
|
|
10485
|
+
styleBreakpoints: CommonStyleBreakpointsSchema4
|
|
9695
10486
|
});
|
|
9696
10487
|
var CarouselIndicatorsStyleSchema4 = external_exports.object({
|
|
9697
10488
|
width: external_exports.number().int().min(1).max(64).optional(),
|
|
@@ -9727,7 +10518,85 @@ var CarouselLayerSchema4 = external_exports.object({
|
|
|
9727
10518
|
autoAdvanceMs: external_exports.number().int().min(500).max(6e4).optional(),
|
|
9728
10519
|
pageControl: CarouselPageControlSchema4.optional(),
|
|
9729
10520
|
style: CommonStyleSchema4.optional(),
|
|
9730
|
-
styleBreakpoints: CommonStyleBreakpointsSchema4
|
|
10521
|
+
styleBreakpoints: CommonStyleBreakpointsSchema4,
|
|
10522
|
+
carouselLayoutBreakpoints: CarouselLayoutBreakpointsSchema4
|
|
10523
|
+
});
|
|
10524
|
+
var DecisionBuiltinNameSchema4 = external_exports.enum(["locale", "platform"]);
|
|
10525
|
+
var DecisionVariableRefSchema4 = external_exports.discriminatedUnion("kind", [
|
|
10526
|
+
external_exports.object({ kind: external_exports.literal("builtin"), name: DecisionBuiltinNameSchema4 }),
|
|
10527
|
+
external_exports.object({ kind: external_exports.literal("sdk"), key: external_exports.string().min(1).max(128) }),
|
|
10528
|
+
external_exports.object({ kind: external_exports.literal("field"), fieldKey: external_exports.string().min(1).max(128) })
|
|
10529
|
+
]);
|
|
10530
|
+
var DecisionStringPredicateSchema4 = external_exports.discriminatedUnion("op", [
|
|
10531
|
+
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.string() }),
|
|
10532
|
+
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.string() }),
|
|
10533
|
+
external_exports.object({ op: external_exports.literal("contains"), value: external_exports.string() })
|
|
10534
|
+
]);
|
|
10535
|
+
var DecisionNumberPredicateSchema4 = external_exports.discriminatedUnion("op", [
|
|
10536
|
+
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.number() }),
|
|
10537
|
+
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.number() }),
|
|
10538
|
+
external_exports.object({ op: external_exports.literal("lt"), value: external_exports.number() }),
|
|
10539
|
+
external_exports.object({ op: external_exports.literal("lte"), value: external_exports.number() }),
|
|
10540
|
+
external_exports.object({ op: external_exports.literal("gt"), value: external_exports.number() }),
|
|
10541
|
+
external_exports.object({ op: external_exports.literal("gte"), value: external_exports.number() })
|
|
10542
|
+
]);
|
|
10543
|
+
var DecisionChoicePredicateSchema4 = external_exports.discriminatedUnion("op", [
|
|
10544
|
+
external_exports.object({ op: external_exports.literal("eq"), optionId: external_exports.string().min(1) }),
|
|
10545
|
+
external_exports.object({ op: external_exports.literal("one_of"), optionIds: external_exports.array(external_exports.string().min(1)).min(1) })
|
|
10546
|
+
]);
|
|
10547
|
+
var DecisionMultiPredicateSchema4 = external_exports.discriminatedUnion("op", [
|
|
10548
|
+
external_exports.object({
|
|
10549
|
+
op: external_exports.literal("intersects"),
|
|
10550
|
+
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
10551
|
+
}),
|
|
10552
|
+
external_exports.object({
|
|
10553
|
+
op: external_exports.literal("contains_all"),
|
|
10554
|
+
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
10555
|
+
}),
|
|
10556
|
+
external_exports.object({
|
|
10557
|
+
op: external_exports.literal("subset_of"),
|
|
10558
|
+
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
10559
|
+
})
|
|
10560
|
+
]);
|
|
10561
|
+
var DecisionBooleanPredicateSchema4 = external_exports.discriminatedUnion("op", [
|
|
10562
|
+
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.boolean() }),
|
|
10563
|
+
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.boolean() })
|
|
10564
|
+
]);
|
|
10565
|
+
var DecisionPredicatePayloadSchema4 = external_exports.discriminatedUnion("type", [
|
|
10566
|
+
external_exports.object({ type: external_exports.literal("string"), pred: DecisionStringPredicateSchema4 }),
|
|
10567
|
+
external_exports.object({ type: external_exports.literal("number"), pred: DecisionNumberPredicateSchema4 }),
|
|
10568
|
+
external_exports.object({ type: external_exports.literal("boolean"), pred: DecisionBooleanPredicateSchema4 }),
|
|
10569
|
+
external_exports.object({ type: external_exports.literal("choice"), pred: DecisionChoicePredicateSchema4 }),
|
|
10570
|
+
external_exports.object({ type: external_exports.literal("multi"), pred: DecisionMultiPredicateSchema4 })
|
|
10571
|
+
]);
|
|
10572
|
+
var DecisionExprSchema4 = external_exports.lazy(
|
|
10573
|
+
() => external_exports.discriminatedUnion("kind", [
|
|
10574
|
+
external_exports.object({ kind: external_exports.literal("empty") }),
|
|
10575
|
+
external_exports.object({
|
|
10576
|
+
kind: external_exports.literal("group"),
|
|
10577
|
+
op: external_exports.enum(["and", "or"]),
|
|
10578
|
+
children: external_exports.array(DecisionExprSchema4).min(1)
|
|
10579
|
+
}),
|
|
10580
|
+
external_exports.object({
|
|
10581
|
+
kind: external_exports.literal("predicate"),
|
|
10582
|
+
variable: DecisionVariableRefSchema4,
|
|
10583
|
+
predicate: DecisionPredicatePayloadSchema4
|
|
10584
|
+
})
|
|
10585
|
+
])
|
|
10586
|
+
);
|
|
10587
|
+
var CONDITIONAL_MAX_CASES4 = 16;
|
|
10588
|
+
var ConditionalCaseSchema4 = external_exports.object({
|
|
10589
|
+
id: external_exports.string().min(1).max(80),
|
|
10590
|
+
name: external_exports.string().min(1).max(80).optional(),
|
|
10591
|
+
expression: DecisionExprSchema4,
|
|
10592
|
+
rootLayerId: LayerIdSchema4
|
|
10593
|
+
});
|
|
10594
|
+
var ConditionalLayerSchema4 = external_exports.object({
|
|
10595
|
+
...baseLayerShape4,
|
|
10596
|
+
kind: external_exports.literal("conditional"),
|
|
10597
|
+
cases: external_exports.array(ConditionalCaseSchema4).min(1).max(CONDITIONAL_MAX_CASES4),
|
|
10598
|
+
elseRootLayerId: LayerIdSchema4,
|
|
10599
|
+
children: external_exports.lazy(() => external_exports.array(StackLayerSchema4).min(2))
|
|
9731
10600
|
});
|
|
9732
10601
|
layerSchemaStore4.schema = external_exports.lazy(
|
|
9733
10602
|
() => external_exports.union([
|
|
@@ -9748,13 +10617,15 @@ layerSchemaStore4.schema = external_exports.lazy(
|
|
|
9748
10617
|
MultipleChoiceLayerSchema4,
|
|
9749
10618
|
TextInputLayerSchema4,
|
|
9750
10619
|
ScaleInputLayerSchema4,
|
|
10620
|
+
WheelPickerLayerSchema4,
|
|
9751
10621
|
OAuthLoginLayerSchema4,
|
|
9752
10622
|
OAuthProviderPresetLayerSchema4,
|
|
9753
10623
|
OAuthProviderCustomLayerSchema4,
|
|
9754
10624
|
EmailPasswordAuthLayerSchema4,
|
|
9755
10625
|
EmailPasswordFieldLayerSchema4,
|
|
9756
10626
|
EmailPasswordSubmitLayerSchema4,
|
|
9757
|
-
CarouselLayerSchema4
|
|
10627
|
+
CarouselLayerSchema4,
|
|
10628
|
+
ConditionalLayerSchema4
|
|
9758
10629
|
])
|
|
9759
10630
|
);
|
|
9760
10631
|
var ScreenBackgroundFitSchema2 = external_exports.enum(["cover", "contain", "fill"]);
|
|
@@ -9820,74 +10691,11 @@ var ExternalSurfaceJumpIdSchema24 = external_exports.string().min(1).max(64).reg
|
|
|
9820
10691
|
var EXTERNAL_SURFACE_NO_NEXT3 = "__onb_surface_no_next__";
|
|
9821
10692
|
var ExternalSurfaceTerminalTargetSchema3 = external_exports.literal(EXTERNAL_SURFACE_NO_NEXT3);
|
|
9822
10693
|
var FlowJumpTargetSchema3 = ScreenIdSchema4.or(DecisionNodeIdSchema3).or(ExternalSurfaceJumpIdSchema24).or(ExternalSurfaceTerminalTargetSchema3).nullable();
|
|
9823
|
-
var DecisionBuiltinNameSchema3 = external_exports.enum(["locale", "platform"]);
|
|
9824
|
-
var DecisionVariableRefSchema3 = external_exports.discriminatedUnion("kind", [
|
|
9825
|
-
external_exports.object({ kind: external_exports.literal("builtin"), name: DecisionBuiltinNameSchema3 }),
|
|
9826
|
-
external_exports.object({ kind: external_exports.literal("sdk"), key: external_exports.string().min(1).max(128) }),
|
|
9827
|
-
external_exports.object({ kind: external_exports.literal("field"), fieldKey: external_exports.string().min(1).max(128) })
|
|
9828
|
-
]);
|
|
9829
|
-
var DecisionStringPredicateSchema3 = external_exports.discriminatedUnion("op", [
|
|
9830
|
-
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.string() }),
|
|
9831
|
-
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.string() }),
|
|
9832
|
-
external_exports.object({ op: external_exports.literal("contains"), value: external_exports.string() })
|
|
9833
|
-
]);
|
|
9834
|
-
var DecisionNumberPredicateSchema3 = external_exports.discriminatedUnion("op", [
|
|
9835
|
-
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.number() }),
|
|
9836
|
-
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.number() }),
|
|
9837
|
-
external_exports.object({ op: external_exports.literal("lt"), value: external_exports.number() }),
|
|
9838
|
-
external_exports.object({ op: external_exports.literal("lte"), value: external_exports.number() }),
|
|
9839
|
-
external_exports.object({ op: external_exports.literal("gt"), value: external_exports.number() }),
|
|
9840
|
-
external_exports.object({ op: external_exports.literal("gte"), value: external_exports.number() })
|
|
9841
|
-
]);
|
|
9842
|
-
var DecisionChoicePredicateSchema3 = external_exports.discriminatedUnion("op", [
|
|
9843
|
-
external_exports.object({ op: external_exports.literal("eq"), optionId: external_exports.string().min(1) }),
|
|
9844
|
-
external_exports.object({ op: external_exports.literal("one_of"), optionIds: external_exports.array(external_exports.string().min(1)).min(1) })
|
|
9845
|
-
]);
|
|
9846
|
-
var DecisionMultiPredicateSchema3 = external_exports.discriminatedUnion("op", [
|
|
9847
|
-
external_exports.object({
|
|
9848
|
-
op: external_exports.literal("intersects"),
|
|
9849
|
-
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
9850
|
-
}),
|
|
9851
|
-
external_exports.object({
|
|
9852
|
-
op: external_exports.literal("contains_all"),
|
|
9853
|
-
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
9854
|
-
}),
|
|
9855
|
-
external_exports.object({
|
|
9856
|
-
op: external_exports.literal("subset_of"),
|
|
9857
|
-
optionIds: external_exports.array(external_exports.string().min(1)).min(1)
|
|
9858
|
-
})
|
|
9859
|
-
]);
|
|
9860
|
-
var DecisionBooleanPredicateSchema3 = external_exports.discriminatedUnion("op", [
|
|
9861
|
-
external_exports.object({ op: external_exports.literal("eq"), value: external_exports.boolean() }),
|
|
9862
|
-
external_exports.object({ op: external_exports.literal("neq"), value: external_exports.boolean() })
|
|
9863
|
-
]);
|
|
9864
|
-
var DecisionPredicatePayloadSchema3 = external_exports.discriminatedUnion("type", [
|
|
9865
|
-
external_exports.object({ type: external_exports.literal("string"), pred: DecisionStringPredicateSchema3 }),
|
|
9866
|
-
external_exports.object({ type: external_exports.literal("number"), pred: DecisionNumberPredicateSchema3 }),
|
|
9867
|
-
external_exports.object({ type: external_exports.literal("boolean"), pred: DecisionBooleanPredicateSchema3 }),
|
|
9868
|
-
external_exports.object({ type: external_exports.literal("choice"), pred: DecisionChoicePredicateSchema3 }),
|
|
9869
|
-
external_exports.object({ type: external_exports.literal("multi"), pred: DecisionMultiPredicateSchema3 })
|
|
9870
|
-
]);
|
|
9871
|
-
var DecisionExprSchema3 = external_exports.lazy(
|
|
9872
|
-
() => external_exports.discriminatedUnion("kind", [
|
|
9873
|
-
external_exports.object({ kind: external_exports.literal("empty") }),
|
|
9874
|
-
external_exports.object({
|
|
9875
|
-
kind: external_exports.literal("group"),
|
|
9876
|
-
op: external_exports.enum(["and", "or"]),
|
|
9877
|
-
children: external_exports.array(DecisionExprSchema3).min(1)
|
|
9878
|
-
}),
|
|
9879
|
-
external_exports.object({
|
|
9880
|
-
kind: external_exports.literal("predicate"),
|
|
9881
|
-
variable: DecisionVariableRefSchema3,
|
|
9882
|
-
predicate: DecisionPredicatePayloadSchema3
|
|
9883
|
-
})
|
|
9884
|
-
])
|
|
9885
|
-
);
|
|
9886
10694
|
var DecisionCaseSchema3 = external_exports.object({
|
|
9887
10695
|
id: external_exports.string().min(1).max(80),
|
|
9888
10696
|
/** Display label in the editor (e.g. “Engaged users”). */
|
|
9889
10697
|
name: external_exports.string().min(1).max(80).optional(),
|
|
9890
|
-
expression:
|
|
10698
|
+
expression: DecisionExprSchema4,
|
|
9891
10699
|
next: FlowJumpTargetSchema3
|
|
9892
10700
|
});
|
|
9893
10701
|
external_exports.object({
|
|
@@ -10042,12 +10850,13 @@ var walkLayers = (root, fn) => {
|
|
|
10042
10850
|
fn(l, depth);
|
|
10043
10851
|
if (l.kind === "stack") l.children.forEach((c) => visit(c, depth + 1));
|
|
10044
10852
|
else if (l.kind === "carousel") l.slides.forEach((c) => visit(c, depth + 1));
|
|
10853
|
+
else if (l.kind === "conditional") l.children.forEach((c) => visit(c, depth + 1));
|
|
10045
10854
|
else if (l.kind === "button") l.children.forEach((c) => visit(c, depth + 1));
|
|
10046
10855
|
else if (l.kind === "back_button") l.children.forEach((c) => visit(c, depth + 1));
|
|
10047
10856
|
else if (l.kind === "hyperlink") l.children.forEach((c) => visit(c, depth + 1));
|
|
10048
10857
|
else if (l.kind === "single_choice" || l.kind === "multiple_choice") {
|
|
10049
10858
|
l.children.forEach((c) => visit(c, depth + 1));
|
|
10050
|
-
} else if (l.kind === "text_input" || l.kind === "scale_input") {
|
|
10859
|
+
} else if (l.kind === "text_input" || l.kind === "scale_input" || l.kind === "wheel_picker") {
|
|
10051
10860
|
l.children?.forEach((c) => visit(c, depth + 1));
|
|
10052
10861
|
} else if (l.kind === "oauth_login") {
|
|
10053
10862
|
l.children.forEach((c) => visit(c, depth + 1));
|
|
@@ -10237,6 +11046,18 @@ var validatePublishable = (manifest) => {
|
|
|
10237
11046
|
code: "screen.unreachable"
|
|
10238
11047
|
});
|
|
10239
11048
|
}
|
|
11049
|
+
walkScreen(screen, (l) => {
|
|
11050
|
+
if (l.kind !== "conditional") return;
|
|
11051
|
+
for (const c of l.cases) {
|
|
11052
|
+
if (decisionExprHasPredicate(c.expression)) continue;
|
|
11053
|
+
issues.push({
|
|
11054
|
+
stepId: screen.id,
|
|
11055
|
+
path: ["screens", screen.id, "layers", l.id, "cases", c.id],
|
|
11056
|
+
message: `conditional "${l.name ?? l.id}" branch "${c.name ?? c.id}" needs at least one rule before publishing`,
|
|
11057
|
+
code: "conditional.incomplete_cases"
|
|
11058
|
+
});
|
|
11059
|
+
}
|
|
11060
|
+
});
|
|
10240
11061
|
}
|
|
10241
11062
|
for (const sn of manifest.externalSurfaceNodes ?? []) {
|
|
10242
11063
|
if (manifest.entryScreenId != null && !reachable.has(sn.id)) {
|
|
@@ -10319,11 +11140,13 @@ var collectFlowBuilderIssues = (manifest) => {
|
|
|
10319
11140
|
const screenLabel = screen.name || screen.id;
|
|
10320
11141
|
const mediaLayerIds = /* @__PURE__ */ new Set();
|
|
10321
11142
|
const buttonLayerIds = /* @__PURE__ */ new Set();
|
|
11143
|
+
const carouselLayerIds = /* @__PURE__ */ new Set();
|
|
10322
11144
|
const shellPlaybackId = screenBackgroundPlaybackId(screen.id);
|
|
10323
11145
|
const shellFill = screen.containerStyle?.backgroundFill;
|
|
10324
11146
|
const shellVideoFill = shellFill?.kind === "video" ? shellFill : void 0;
|
|
10325
11147
|
walkScreen(screen, (l) => {
|
|
10326
11148
|
if (l.kind === "button") buttonLayerIds.add(l.id);
|
|
11149
|
+
if (l.kind === "carousel") carouselLayerIds.add(l.id);
|
|
10327
11150
|
});
|
|
10328
11151
|
if (shellFill?.kind === "image" || shellFill?.kind === "video") {
|
|
10329
11152
|
if (!shellFill.media?.mediaAssetId) {
|
|
@@ -10381,7 +11204,7 @@ var collectFlowBuilderIssues = (manifest) => {
|
|
|
10381
11204
|
}
|
|
10382
11205
|
if (isInputLayer(l)) {
|
|
10383
11206
|
inputCount += 1;
|
|
10384
|
-
if (l.kind === "multiple_choice" || l.kind === "text_input" || l.kind === "scale_input") {
|
|
11207
|
+
if (l.kind === "multiple_choice" || l.kind === "text_input" || l.kind === "scale_input" || l.kind === "wheel_picker") {
|
|
10385
11208
|
needsManualSubmit = true;
|
|
10386
11209
|
}
|
|
10387
11210
|
const key = l.fieldKey;
|
|
@@ -10538,6 +11361,13 @@ var collectFlowBuilderIssues = (manifest) => {
|
|
|
10538
11361
|
}
|
|
10539
11362
|
}
|
|
10540
11363
|
}
|
|
11364
|
+
if (l.kind === "button" && l.action.kind === "advance_carousel") {
|
|
11365
|
+
if (!carouselLayerIds.has(l.action.targetLayerId)) {
|
|
11366
|
+
issues.push(
|
|
11367
|
+
`Button "${l.name || l.id}" on screen "${screenLabel}" advance-carousel target "${l.action.targetLayerId}" must be a carousel layer on this screen.`
|
|
11368
|
+
);
|
|
11369
|
+
}
|
|
11370
|
+
}
|
|
10541
11371
|
});
|
|
10542
11372
|
if (oauthLoginLayerCount > 0 && inputCount > 0) {
|
|
10543
11373
|
issues.push(
|
|
@@ -10571,7 +11401,7 @@ var collectFlowBuilderIssues = (manifest) => {
|
|
|
10571
11401
|
}
|
|
10572
11402
|
if (needsManualSubmit && !hasContinueButton) {
|
|
10573
11403
|
issues.push(
|
|
10574
|
-
`Screen "${screen.name || screen.id}" has a multiple_choice, text_input, or
|
|
11404
|
+
`Screen "${screen.name || screen.id}" has a multiple_choice, text_input, scale_input, or wheel_picker but no Button with action "continue". Add a Continue button so users can submit.`
|
|
10575
11405
|
);
|
|
10576
11406
|
}
|
|
10577
11407
|
}
|
|
@@ -10794,6 +11624,28 @@ var scanLayer = (issues, screen, layer, branding) => {
|
|
|
10794
11624
|
checkThemed(issues, stepId, id, "fillColor", layer.fillColor, false, branding);
|
|
10795
11625
|
checkThemed(issues, stepId, id, "thumbColor", layer.thumbColor, false, branding);
|
|
10796
11626
|
return;
|
|
11627
|
+
case "wheel_picker":
|
|
11628
|
+
walkCommonBreakpoints(issues, stepId, id, layer.style, void 0, branding);
|
|
11629
|
+
checkThemed(
|
|
11630
|
+
issues,
|
|
11631
|
+
stepId,
|
|
11632
|
+
id,
|
|
11633
|
+
"selectionBackgroundColor",
|
|
11634
|
+
layer.selectionBackgroundColor,
|
|
11635
|
+
false,
|
|
11636
|
+
branding
|
|
11637
|
+
);
|
|
11638
|
+
checkThemed(issues, stepId, id, "itemStyle.color", layer.itemStyle?.color, false, branding);
|
|
11639
|
+
checkThemed(
|
|
11640
|
+
issues,
|
|
11641
|
+
stepId,
|
|
11642
|
+
id,
|
|
11643
|
+
"selectedItemStyle.color",
|
|
11644
|
+
layer.selectedItemStyle?.color,
|
|
11645
|
+
false,
|
|
11646
|
+
branding
|
|
11647
|
+
);
|
|
11648
|
+
return;
|
|
10797
11649
|
case "oauth_login":
|
|
10798
11650
|
walkCommonBreakpoints(issues, stepId, id, layer.style, layer.styleBreakpoints, branding);
|
|
10799
11651
|
return;
|
|
@@ -11202,7 +12054,7 @@ var defaultLayoutStyleForKind = (kind) => {
|
|
|
11202
12054
|
case "video":
|
|
11203
12055
|
return LAYOUT_FULL_FIXED_H160;
|
|
11204
12056
|
case "icon":
|
|
11205
|
-
return
|
|
12057
|
+
return { width: 24, height: 24 };
|
|
11206
12058
|
case "button":
|
|
11207
12059
|
case "back_button":
|
|
11208
12060
|
case "oauth_provider":
|
|
@@ -11210,6 +12062,7 @@ var defaultLayoutStyleForKind = (kind) => {
|
|
|
11210
12062
|
return LAYOUT_FULL_HUG;
|
|
11211
12063
|
case "text_input":
|
|
11212
12064
|
case "scale_input":
|
|
12065
|
+
case "wheel_picker":
|
|
11213
12066
|
case "email_password_auth":
|
|
11214
12067
|
case "email_password_field":
|
|
11215
12068
|
case "oauth_login":
|
|
@@ -11419,12 +12272,13 @@ var walkLayers2 = (root, fn) => {
|
|
|
11419
12272
|
fn(l, depth);
|
|
11420
12273
|
if (l.kind === "stack") l.children.forEach((c) => visit(c, depth + 1));
|
|
11421
12274
|
else if (l.kind === "carousel") l.slides.forEach((c) => visit(c, depth + 1));
|
|
12275
|
+
else if (l.kind === "conditional") l.children.forEach((c) => visit(c, depth + 1));
|
|
11422
12276
|
else if (l.kind === "button") l.children.forEach((c) => visit(c, depth + 1));
|
|
11423
12277
|
else if (l.kind === "back_button") l.children.forEach((c) => visit(c, depth + 1));
|
|
11424
12278
|
else if (l.kind === "hyperlink") l.children.forEach((c) => visit(c, depth + 1));
|
|
11425
12279
|
else if (l.kind === "single_choice" || l.kind === "multiple_choice") {
|
|
11426
12280
|
l.children.forEach((c) => visit(c, depth + 1));
|
|
11427
|
-
} else if (l.kind === "text_input" || l.kind === "scale_input") {
|
|
12281
|
+
} else if (l.kind === "text_input" || l.kind === "scale_input" || l.kind === "wheel_picker") {
|
|
11428
12282
|
l.children?.forEach((c) => visit(c, depth + 1));
|
|
11429
12283
|
} else if (l.kind === "oauth_login") {
|
|
11430
12284
|
l.children.forEach((c) => visit(c, depth + 1));
|
|
@@ -12348,7 +13202,7 @@ var analyzeBackgrounds = (files) => {
|
|
|
12348
13202
|
};
|
|
12349
13203
|
|
|
12350
13204
|
// src/audit/analyzers/carouselAnalyzer.ts
|
|
12351
|
-
var CAROUSEL_NO_DUPLICATE_FOOTER =
|
|
13205
|
+
var CAROUSEL_NO_DUPLICATE_FOOTER = 'Carousels swipe by default (optional pageControl dots). Do not add buttons that only mimic paging; when the source has an explicit Next control, give it action.kind "advance_carousel" targeting that carousel. Use regions.footer for CTAs that advance the next screen in the flow, or single-slide carousels.';
|
|
12352
13206
|
var CAROUSEL_PATTERNS = [
|
|
12353
13207
|
[
|
|
12354
13208
|
/\binfoSteps\b/,
|
|
@@ -13375,7 +14229,7 @@ var analyzeLayout = (files) => {
|
|
|
13375
14229
|
confidence: "high",
|
|
13376
14230
|
file: file.path,
|
|
13377
14231
|
evidence: aligns.join("; "),
|
|
13378
|
-
recommendation: 'Map RN/Tailwind centering to parent `stack.align: "center"` and `stack.
|
|
14232
|
+
recommendation: 'Map RN/Tailwind centering to parent `stack.align: "center"` and `stack.distribution: "center"`. Center hero images inside vertical body stacks. Use `style.align: "center"` on text layers.'
|
|
13379
14233
|
});
|
|
13380
14234
|
}
|
|
13381
14235
|
if (CENTER_CLASS_RE.test(file.content) && /kind:\s*['"]image['"]|Image\b/.test(file.content)) {
|
|
@@ -13442,7 +14296,7 @@ var analyzeRegions = (files) => {
|
|
|
13442
14296
|
confidence: "high",
|
|
13443
14297
|
file: file.path,
|
|
13444
14298
|
evidence: `Footer/sticky CTA marker: ${footer}`,
|
|
13445
|
-
recommendation: carouselPager ?
|
|
14299
|
+
recommendation: carouselPager ? 'If this footer only advances in-screen pager pages (infoSteps/currentInfoStep), either drop it (swipe already pages the carousel) or keep it as a button with action.kind "advance_carousel" targeting that carousel. Use regions.footer for CTAs that advance the next screen in the flow.' : "Use regions.footer for sticky bottom CTAs instead of placing them at the end of body."
|
|
13446
14300
|
});
|
|
13447
14301
|
}
|
|
13448
14302
|
const body = hasAny(file.content, bodyPatterns);
|
|
@@ -13711,7 +14565,7 @@ var renderAuditMarkdown = (report) => {
|
|
|
13711
14565
|
"- Use high-confidence region findings when choosing `regions.header`, `regions.body`, and `regions.footer`.",
|
|
13712
14566
|
hasStyle ? "- Populate `manifest.theme` and per-layer `style` from style-token evidence. Set `style.color` on text for colored screens." : "- No style-token evidence found \u2014 ask the user for theme sources before using black-and-white defaults.",
|
|
13713
14567
|
hasGradient ? "- Apply gradient evidence to `screen.containerStyle.backgroundFill.color` using `linear-gradient(...)` CSS strings." : "- Map screen-level background findings before adding generic body layers.",
|
|
13714
|
-
hasCarousel ? '- **Carousel required:** emit `kind: "carousel"` with one slide stack per pager page. Swipe
|
|
14568
|
+
hasCarousel ? '- **Carousel required:** emit `kind: "carousel"` with one slide stack per pager page. Swipe by default \u2014 only add a paging button when the source has an explicit Next control, using `action.kind: "advance_carousel"`. Bundle every slide asset.' : "- No carousel markers detected \u2014 still verify multi-slide routes manually.",
|
|
13715
14569
|
hasFonts ? "- **Fonts required:** copy `.ttf`/`.otf`/`.woff`/`.woff2` under `assets/fonts/`, add `rheo-import.fonts.json`, set `manifest.theme.fontFamily`. **Never** put font files in `rheo-import.assets.json` (see `references/font-import.md`)." : "- If custom fonts appear later in review, bundle them in `rheo-import.fonts.json` only \u2014 never in `rheo-import.assets.json`.",
|
|
13716
14570
|
hasChoiceStates ? "- **Choice selected state:** each option stack needs `style` (default) and `selectedStyle` (selected), including border/background/text colors." : "- Verify single_choice / multiple_choice option stacks for `selectedStyle` when source uses selected ternaries.",
|
|
13717
14571
|
hasAnimation ? "- **Motion (intake Q6=yes + Grow+ plan):** apply `screen.animations`, `screen.stagger`, and conservative `restingMotion` from animation audit findings. Use `--suggest-animations` JSON for clip shapes. Omit unmapped springs/gestures." : "- **Motion:** if intake Q6=yes, re-scan entry scope; if Q6=no or plan lacks animations, omit all `animations`, `stagger`, and `restingMotion` fields.",
|
|
@@ -13896,7 +14750,12 @@ var ActionObjectSchema = external_exports.discriminatedUnion("kind", [
|
|
|
13896
14750
|
blocked: external_exports.string().min(1)
|
|
13897
14751
|
})
|
|
13898
14752
|
}),
|
|
13899
|
-
external_exports.object({ kind: external_exports.literal("play_media"), targetLayerIds: external_exports.array(external_exports.string().min(1)).min(1) })
|
|
14753
|
+
external_exports.object({ kind: external_exports.literal("play_media"), targetLayerIds: external_exports.array(external_exports.string().min(1)).min(1) }),
|
|
14754
|
+
external_exports.object({
|
|
14755
|
+
kind: external_exports.literal("advance_carousel"),
|
|
14756
|
+
targetLayerId: external_exports.string().min(1),
|
|
14757
|
+
onLast: external_exports.enum(["noop", "complete"]).optional()
|
|
14758
|
+
})
|
|
13900
14759
|
]);
|
|
13901
14760
|
var ButtonActionSpecSchema = external_exports.union([
|
|
13902
14761
|
external_exports.enum(["none", "continue", "skip", "end_flow", "go_back_one_screen", "request_app_review"]),
|
|
@@ -14032,7 +14891,7 @@ var LayerIntentSchema = external_exports.lazy(
|
|
|
14032
14891
|
kind: external_exports.literal("text_input"),
|
|
14033
14892
|
fieldKey: external_exports.string().min(1),
|
|
14034
14893
|
placeholder: LocalizedOrStringSchema.optional(),
|
|
14035
|
-
inputType: external_exports.enum(["plain", "email", "phone", "url", "multiline"]).optional(),
|
|
14894
|
+
inputType: external_exports.enum(["plain", "email", "phone", "url", "number", "multiline"]).optional(),
|
|
14036
14895
|
required: external_exports.boolean().optional(),
|
|
14037
14896
|
minLength: external_exports.number().int().min(0).max(2e3).optional(),
|
|
14038
14897
|
maxLength: external_exports.number().int().positive().max(2e3).optional(),
|
|
@@ -14444,8 +15303,8 @@ var buildStack = (intent, ctx) => {
|
|
|
14444
15303
|
};
|
|
14445
15304
|
if (intent.gap !== void 0) out.gap = intent.gap;
|
|
14446
15305
|
if (intent.align) out.align = intent.align;
|
|
14447
|
-
|
|
14448
|
-
if (
|
|
15306
|
+
const distribution = intent.distribution ?? intent.justify;
|
|
15307
|
+
if (distribution) out.distribution = distribution;
|
|
14449
15308
|
if (intent.wrap !== void 0) out.wrap = intent.wrap;
|
|
14450
15309
|
if (intent.selectedStyle && Object.keys(intent.selectedStyle).length > 0) {
|
|
14451
15310
|
out.selectedStyle = intent.selectedStyle;
|
|
@@ -14516,7 +15375,8 @@ var buildCarousel = (intent, ctx) => {
|
|
|
14516
15375
|
};
|
|
14517
15376
|
if (slide.gap !== void 0) out2.gap = slide.gap;
|
|
14518
15377
|
if (slide.align) out2.align = slide.align;
|
|
14519
|
-
|
|
15378
|
+
const distribution = slide.distribution ?? slide.justify;
|
|
15379
|
+
if (distribution) out2.distribution = distribution;
|
|
14520
15380
|
return withStyle(out2, slide.style);
|
|
14521
15381
|
});
|
|
14522
15382
|
const out = { id, kind: "carousel", slides };
|