@getrheo/rheo-skill 2.2.0 → 2.3.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.
@@ -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.union([external_exports.enum(WIDTH_PRESETS), external_exports.number().int().min(0).max(2e3)]);
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
- /** Multiplier (0–1) applied to the resolved background color alpha only; text stays fully opaque unless `opacity` is set. */
4259
- backgroundOpacity: external_exports.number().min(0).max(1).optional()
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(
@@ -4396,7 +4442,7 @@ var ButtonActionSchema = external_exports.discriminatedUnion("kind", [
4396
4442
  }),
4397
4443
  external_exports.object({ kind: external_exports.literal("request_app_review") })
4398
4444
  ]);
4399
- var TEXT_INPUT_TYPES = ["plain", "email", "phone", "url", "multiline"];
4445
+ var TEXT_INPUT_TYPES = ["plain", "email", "phone", "url", "number", "multiline"];
4400
4446
  var TextInputTypeSchema = external_exports.enum(TEXT_INPUT_TYPES);
4401
4447
  var COUNTER_DISPLAY_KINDS = ["number", "time"];
4402
4448
  var COUNTER_TIME_FORMATS = ["mm_ss", "hh_mm_ss", "dd_hh_mm_ss"];
@@ -4461,7 +4507,8 @@ var ProgressLayerSchema = external_exports.object({
4461
4507
  kind: external_exports.literal("progress"),
4462
4508
  trackColor: ThemedColorSchema.optional(),
4463
4509
  fillColor: ThemedColorSchema.optional(),
4464
- style: CommonStyleSchema.optional()
4510
+ style: CommonStyleSchema.optional(),
4511
+ styleBreakpoints: CommonStyleBreakpointsSchema
4465
4512
  });
4466
4513
  var LoaderOnCompleteSchema = external_exports.discriminatedUnion("mode", [
4467
4514
  external_exports.object({ mode: external_exports.literal("none") }),
@@ -4481,7 +4528,8 @@ var LoaderLayerSchema = external_exports.object({
4481
4528
  fillColor: ThemedColorSchema.optional(),
4482
4529
  /** Horizontal alignment of the bar or ring within the layer box (default start). */
4483
4530
  align: external_exports.enum(["start", "center", "end"]).optional(),
4484
- style: CommonStyleSchema.optional()
4531
+ style: CommonStyleSchema.optional(),
4532
+ styleBreakpoints: CommonStyleBreakpointsSchema
4485
4533
  }).superRefine((data, ctx) => {
4486
4534
  if (data.variant !== "circular") return;
4487
4535
  const w = data.style?.width;
@@ -4518,27 +4566,39 @@ var CheckboxLayerSchema = external_exports.object({
4518
4566
  styleBreakpoints: CommonStyleBreakpointsSchema
4519
4567
  });
4520
4568
  var lazyLayer2 = () => layerSchemaStore.schema;
4521
- var StackLayerSchema = external_exports.object({
4522
- ...baseLayerShape,
4523
- kind: external_exports.literal("stack"),
4524
- style: CommonStyleSchema.optional(),
4525
- styleBreakpoints: CommonStyleBreakpointsSchema,
4526
- stackLayoutBreakpoints: StackLayoutBreakpointsSchema,
4527
- selectedStyle: CommonStyleSchema.optional(),
4528
- direction: external_exports.enum(["vertical", "horizontal"]),
4529
- gap: external_exports.number().int().min(0).optional(),
4530
- align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
4531
- justify: external_exports.enum(["start", "center", "end"]).optional(),
4532
- distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
4533
- wrap: external_exports.boolean().optional(),
4534
- children: external_exports.lazy(() => external_exports.array(lazyLayer2()))
4535
- });
4569
+ var migrateStackJustifyForParse = (raw) => {
4570
+ if (!raw || typeof raw !== "object") return raw;
4571
+ const o = { ...raw };
4572
+ if (o.justify != null && o.distribution == null) o.distribution = o.justify;
4573
+ delete o.justify;
4574
+ return o;
4575
+ };
4576
+ var StackLayerSchema = external_exports.preprocess(
4577
+ migrateStackJustifyForParse,
4578
+ external_exports.object({
4579
+ ...baseLayerShape,
4580
+ kind: external_exports.literal("stack"),
4581
+ style: CommonStyleSchema.optional(),
4582
+ styleBreakpoints: CommonStyleBreakpointsSchema,
4583
+ stackLayoutBreakpoints: StackLayoutBreakpointsSchema,
4584
+ selectedStyle: CommonStyleSchema.optional(),
4585
+ selectedStyleBreakpoints: CommonStyleBreakpointsSchema,
4586
+ direction: external_exports.enum(["vertical", "horizontal"]),
4587
+ gap: external_exports.number().int().min(0).optional(),
4588
+ align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
4589
+ distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
4590
+ wrap: external_exports.boolean().optional(),
4591
+ children: external_exports.lazy(() => external_exports.array(lazyLayer2()))
4592
+ })
4593
+ );
4536
4594
  var TextLayerSchema = external_exports.object({
4537
4595
  ...baseLayerShape,
4538
4596
  kind: external_exports.literal("text"),
4539
4597
  text: LocalizedTextSchema,
4540
4598
  style: TextStyleSchema.optional(),
4541
- styleBreakpoints: TextStyleBreakpointsSchema
4599
+ styleBreakpoints: TextStyleBreakpointsSchema,
4600
+ /** Merged on top of resolved `style` when this layer is inside a selected choice option. */
4601
+ selectedStyle: TextStyleSchema.optional()
4542
4602
  });
4543
4603
  var migrateLegacyHyperlinkForParse = (raw) => {
4544
4604
  if (!raw || typeof raw !== "object") return raw;
@@ -4577,7 +4637,8 @@ var HyperlinkLayerSchemaInner = external_exports.object({
4577
4637
  distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
4578
4638
  wrap: external_exports.boolean().optional(),
4579
4639
  style: CommonStyleSchema.optional(),
4580
- styleBreakpoints: CommonStyleBreakpointsSchema
4640
+ styleBreakpoints: CommonStyleBreakpointsSchema,
4641
+ hyperlinkLayoutBreakpoints: StackLayoutBreakpointsSchema
4581
4642
  }).superRefine((data, ctx) => {
4582
4643
  const p = parseHyperlinkHref(data.href.trim());
4583
4644
  if (!p.ok) {
@@ -4598,7 +4659,8 @@ var ImageLayerSchema = external_exports.object({
4598
4659
  media: MediaReferenceSchema.optional(),
4599
4660
  alt: external_exports.string().max(280).optional(),
4600
4661
  style: ImageStyleSchema.optional(),
4601
- styleBreakpoints: ImageStyleBreakpointsSchema
4662
+ styleBreakpoints: ImageStyleBreakpointsSchema,
4663
+ selectedStyle: ImageStyleSchema.optional()
4602
4664
  });
4603
4665
  var LottieLayerSchema = external_exports.object({
4604
4666
  ...baseLayerShape,
@@ -4609,7 +4671,8 @@ var LottieLayerSchema = external_exports.object({
4609
4671
  triggerLayerId: external_exports.string().min(1).optional(),
4610
4672
  onComplete: LoaderOnCompleteSchema.optional(),
4611
4673
  style: ImageStyleSchema.optional(),
4612
- styleBreakpoints: ImageStyleBreakpointsSchema
4674
+ styleBreakpoints: ImageStyleBreakpointsSchema,
4675
+ selectedStyle: ImageStyleSchema.optional()
4613
4676
  });
4614
4677
  var VideoLayerSchema = external_exports.object({
4615
4678
  ...baseLayerShape,
@@ -4621,7 +4684,8 @@ var VideoLayerSchema = external_exports.object({
4621
4684
  onComplete: LoaderOnCompleteSchema.optional(),
4622
4685
  audioEnabled: external_exports.boolean().optional(),
4623
4686
  style: ImageStyleSchema.optional(),
4624
- styleBreakpoints: ImageStyleBreakpointsSchema
4687
+ styleBreakpoints: ImageStyleBreakpointsSchema,
4688
+ selectedStyle: ImageStyleSchema.optional()
4625
4689
  });
4626
4690
  var IconLayerSchema = external_exports.object({
4627
4691
  ...baseLayerShape,
@@ -4629,7 +4693,8 @@ var IconLayerSchema = external_exports.object({
4629
4693
  family: external_exports.enum(ICON_FAMILIES),
4630
4694
  iconName: external_exports.string().min(1).max(128),
4631
4695
  style: IconStyleSchema.optional(),
4632
- styleBreakpoints: IconStyleBreakpointsSchema
4696
+ styleBreakpoints: IconStyleBreakpointsSchema,
4697
+ selectedStyle: IconStyleSchema.optional()
4633
4698
  });
4634
4699
  var lazyLayer3 = () => layerSchemaStore.schema;
4635
4700
  var OAuthProviderPresetLayerSchema = external_exports.object({
@@ -4783,6 +4848,7 @@ var OAuthLoginLayerSchemaValidated = external_exports.object({
4783
4848
  ),
4784
4849
  gap: external_exports.number().int().min(0).optional(),
4785
4850
  align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
4851
+ authLayoutBreakpoints: AuthLayoutBreakpointsSchema,
4786
4852
  style: CommonStyleSchema.optional(),
4787
4853
  styleBreakpoints: CommonStyleBreakpointsSchema
4788
4854
  });
@@ -4934,6 +5000,7 @@ var EmailPasswordAuthLayerSchemaValidated = external_exports.object({
4934
5000
  ),
4935
5001
  gap: external_exports.number().int().min(0).optional(),
4936
5002
  align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
5003
+ authLayoutBreakpoints: AuthLayoutBreakpointsSchema,
4937
5004
  style: CommonStyleSchema.optional(),
4938
5005
  styleBreakpoints: CommonStyleBreakpointsSchema
4939
5006
  }).superRefine(refineEmailPasswordAuthChildren);
@@ -4967,7 +5034,8 @@ var SingleChoiceLayerSchema = external_exports.object({
4967
5034
  gap: external_exports.number().int().min(0).optional(),
4968
5035
  columns: external_exports.number().int().min(1).max(12).optional(),
4969
5036
  style: CommonStyleSchema.optional(),
4970
- styleBreakpoints: CommonStyleBreakpointsSchema
5037
+ styleBreakpoints: CommonStyleBreakpointsSchema,
5038
+ choiceLayoutBreakpoints: ChoiceLayoutBreakpointsSchema
4971
5039
  });
4972
5040
  var MultipleChoiceLayerSchema = external_exports.object({
4973
5041
  ...baseLayerShape,
@@ -4984,8 +5052,19 @@ var MultipleChoiceLayerSchema = external_exports.object({
4984
5052
  gap: external_exports.number().int().min(0).optional(),
4985
5053
  columns: external_exports.number().int().min(1).max(12).optional(),
4986
5054
  style: CommonStyleSchema.optional(),
4987
- styleBreakpoints: CommonStyleBreakpointsSchema
5055
+ styleBreakpoints: CommonStyleBreakpointsSchema,
5056
+ choiceLayoutBreakpoints: ChoiceLayoutBreakpointsSchema
4988
5057
  });
5058
+ var TextInputFieldStyleSchema = external_exports.object({
5059
+ fontFamily: external_exports.string().min(1).max(128).optional(),
5060
+ fontSize: external_exports.number().int().min(8).max(96).optional(),
5061
+ fontWeight: external_exports.number().int().min(100).max(900).optional(),
5062
+ color: ThemedColorSchema.optional(),
5063
+ align: external_exports.enum(["left", "center", "right"]).optional(),
5064
+ lineHeight: external_exports.number().min(0.8).max(3).optional(),
5065
+ letterSpacing: external_exports.number().min(-0.5).max(1).optional(),
5066
+ opacity: external_exports.number().min(0).max(1).optional()
5067
+ }).partial();
4989
5068
  var TextInputLayerSchema = external_exports.object({
4990
5069
  ...baseLayerShape,
4991
5070
  kind: external_exports.literal("text_input"),
@@ -4997,7 +5076,10 @@ var TextInputLayerSchema = external_exports.object({
4997
5076
  maxLength: external_exports.number().int().positive().max(2e3).optional(),
4998
5077
  classification: FieldClassificationSchema,
4999
5078
  children: external_exports.lazy(() => external_exports.array(lazyLayer5())).optional(),
5000
- style: CommonStyleSchema.optional()
5079
+ /** Typography for the native input's typed text. */
5080
+ fieldStyle: TextInputFieldStyleSchema.optional(),
5081
+ style: CommonStyleSchema.optional(),
5082
+ styleBreakpoints: CommonStyleBreakpointsSchema
5001
5083
  });
5002
5084
  var ScaleInputLabelStyleSchema = external_exports.object({
5003
5085
  fontFamily: external_exports.string().min(1).max(128).optional(),
@@ -5006,6 +5088,7 @@ var ScaleInputLabelStyleSchema = external_exports.object({
5006
5088
  color: ThemedColorSchema.optional(),
5007
5089
  align: external_exports.enum(["left", "center", "right"]).optional(),
5008
5090
  lineHeight: external_exports.number().min(0.8).max(3).optional(),
5091
+ letterSpacing: external_exports.number().min(-0.5).max(1).optional(),
5009
5092
  opacity: external_exports.number().min(0).max(1).optional()
5010
5093
  }).partial();
5011
5094
  var ScaleInputLayerSchema = external_exports.object({
@@ -5028,7 +5111,40 @@ var ScaleInputLayerSchema = external_exports.object({
5028
5111
  thumbSize: external_exports.number().int().min(8).max(48).optional(),
5029
5112
  thumbColor: ThemedColorSchema.optional(),
5030
5113
  children: external_exports.lazy(() => external_exports.array(lazyLayer5())).optional(),
5031
- style: CommonStyleSchema.optional()
5114
+ style: CommonStyleSchema.optional(),
5115
+ styleBreakpoints: CommonStyleBreakpointsSchema
5116
+ });
5117
+ var WheelPickerOptionSchema = external_exports.object({
5118
+ optionId: external_exports.string().min(1).max(64),
5119
+ label: LocalizedTextSchema
5120
+ });
5121
+ var WheelPickerItemStyleSchema = external_exports.object({
5122
+ fontFamily: external_exports.string().min(1).max(128).optional(),
5123
+ fontSize: external_exports.number().int().min(8).max(96).optional(),
5124
+ fontWeight: external_exports.number().int().min(100).max(900).optional(),
5125
+ color: ThemedColorSchema.optional(),
5126
+ opacity: external_exports.number().min(0).max(1).optional()
5127
+ }).partial();
5128
+ var WheelPickerLayerSchema = external_exports.object({
5129
+ ...baseLayerShape,
5130
+ kind: external_exports.literal("wheel_picker"),
5131
+ fieldKey: FieldKeySchema,
5132
+ mode: external_exports.enum(["options", "date"]).optional(),
5133
+ options: external_exports.array(WheelPickerOptionSchema).min(2).optional(),
5134
+ defaultOptionId: external_exports.string().optional(),
5135
+ datePart: external_exports.enum(["year", "month", "day"]).optional(),
5136
+ minYear: external_exports.number().int().min(1e3).max(9999).optional(),
5137
+ maxYear: external_exports.number().int().min(1e3).max(9999).optional(),
5138
+ defaultValue: external_exports.string().optional(),
5139
+ placeholder: LocalizedTextSchema.optional(),
5140
+ itemHeight: external_exports.number().int().min(28).max(72).optional(),
5141
+ visibleItemCount: external_exports.number().int().min(3).max(9).optional(),
5142
+ selectionBackgroundColor: ThemedColorSchema.optional(),
5143
+ itemStyle: WheelPickerItemStyleSchema.optional(),
5144
+ selectedItemStyle: WheelPickerItemStyleSchema.optional(),
5145
+ children: external_exports.lazy(() => external_exports.array(lazyLayer5())).optional(),
5146
+ style: CommonStyleSchema.optional(),
5147
+ styleBreakpoints: CommonStyleBreakpointsSchema
5032
5148
  });
5033
5149
  var CarouselIndicatorsStyleSchema = external_exports.object({
5034
5150
  width: external_exports.number().int().min(1).max(64).optional(),
@@ -5064,7 +5180,8 @@ var CarouselLayerSchema = external_exports.object({
5064
5180
  autoAdvanceMs: external_exports.number().int().min(500).max(6e4).optional(),
5065
5181
  pageControl: CarouselPageControlSchema.optional(),
5066
5182
  style: CommonStyleSchema.optional(),
5067
- styleBreakpoints: CommonStyleBreakpointsSchema
5183
+ styleBreakpoints: CommonStyleBreakpointsSchema,
5184
+ carouselLayoutBreakpoints: CarouselLayoutBreakpointsSchema
5068
5185
  });
5069
5186
  layerSchemaStore.schema = external_exports.lazy(
5070
5187
  () => external_exports.union([
@@ -5085,6 +5202,7 @@ layerSchemaStore.schema = external_exports.lazy(
5085
5202
  MultipleChoiceLayerSchema,
5086
5203
  TextInputLayerSchema,
5087
5204
  ScaleInputLayerSchema,
5205
+ WheelPickerLayerSchema,
5088
5206
  OAuthLoginLayerSchema,
5089
5207
  OAuthProviderPresetLayerSchema,
5090
5208
  OAuthProviderCustomLayerSchema,
@@ -5095,7 +5213,7 @@ layerSchemaStore.schema = external_exports.lazy(
5095
5213
  ])
5096
5214
  );
5097
5215
  var LayerSchema = layerSchemaStore.schema;
5098
- var isInputLayer = (l) => l.kind === "single_choice" || l.kind === "multiple_choice" || l.kind === "text_input" || l.kind === "scale_input";
5216
+ var isInputLayer = (l) => l.kind === "single_choice" || l.kind === "multiple_choice" || l.kind === "text_input" || l.kind === "scale_input" || l.kind === "wheel_picker";
5099
5217
 
5100
5218
  // ../../node_modules/@getrheo/contracts/dist/localized.js
5101
5219
  var LocaleCode2 = external_exports.string().regex(/^[a-z]{2}(-[A-Z]{2})?$/, 'locale must be like "en" or "en-US"');
@@ -5248,7 +5366,10 @@ var ThemedColorModesSchema2 = external_exports.object({
5248
5366
  var ThemedColorSchema2 = external_exports.union([external_exports.string().min(1), ThemedColorModesSchema2]);
5249
5367
  var LAYOUT_FRACTION_PRESETS2 = ["1/2", "1/3", "2/3", "1/4", "3/4"];
5250
5368
  var WIDTH_PRESETS2 = ["auto", "full", ...LAYOUT_FRACTION_PRESETS2];
5251
- var WidthValueSchema2 = external_exports.union([external_exports.enum(WIDTH_PRESETS2), external_exports.number().int().min(0).max(2e3)]);
5369
+ var WidthValueSchema2 = external_exports.preprocess(
5370
+ (value) => value === "fill" ? "full" : value,
5371
+ external_exports.union([external_exports.enum(WIDTH_PRESETS2), external_exports.number().int().min(0).max(2e3)])
5372
+ );
5252
5373
  var HEIGHT_PRESETS2 = ["auto", "full", "fill", ...LAYOUT_FRACTION_PRESETS2];
5253
5374
  var CommonLayoutHeightSchema2 = external_exports.union([
5254
5375
  external_exports.enum(HEIGHT_PRESETS2),
@@ -5281,6 +5402,8 @@ var CommonStyleSchema2 = external_exports.object({
5281
5402
  border: BorderSchema2.optional(),
5282
5403
  shadow: DropShadowSchema2.optional(),
5283
5404
  opacity: external_exports.number().min(0).max(1).optional(),
5405
+ /** Multiplier (0–1) applied to the resolved background color alpha only; children stay fully opaque unless `opacity` is set. */
5406
+ backgroundOpacity: external_exports.number().min(0).max(1).optional(),
5284
5407
  width: WidthValueSchema2.optional(),
5285
5408
  /** Omit for normal flow; `'absolute'` removes the layer from flex flow (non-root only). */
5286
5409
  position: external_exports.literal("absolute").optional(),
@@ -5291,6 +5414,11 @@ var CommonStyleSchema2 = external_exports.object({
5291
5414
  rotate: external_exports.number().min(-360).max(360).optional(),
5292
5415
  /** Cross-axis size: `auto` (hug), `full`/`fill` (parent height), fractions, or fixed px. */
5293
5416
  height: CommonLayoutHeightSchema2.optional(),
5417
+ /** Optional size clamps (px); applied on the flex shell / wrapper like width/height. */
5418
+ minWidth: NonNegativePxSchema2.max(2e3).optional(),
5419
+ maxWidth: NonNegativePxSchema2.max(2e3).optional(),
5420
+ minHeight: NonNegativePxSchema2.max(2e3).optional(),
5421
+ maxHeight: NonNegativePxSchema2.max(2e3).optional(),
5294
5422
  /** Stroke thickness in px for layers that render a stroke primitive (e.g. loader ring). */
5295
5423
  strokeWidth: external_exports.number().int().min(0).max(64).optional()
5296
5424
  }).partial();
@@ -5304,9 +5432,10 @@ var TextStyleSchema2 = CommonStyleSchema2.extend({
5304
5432
  fontWeight: external_exports.number().int().min(100).max(900).optional(),
5305
5433
  color: ThemedColorSchema2.optional(),
5306
5434
  align: external_exports.enum(["left", "center", "right"]).optional(),
5435
+ /** Unitless line-height multiplier (CSS `line-height` without units). */
5307
5436
  lineHeight: external_exports.number().min(0.8).max(3).optional(),
5308
- /** Multiplier (0–1) applied to the resolved background color alpha only; text stays fully opaque unless `opacity` is set. */
5309
- backgroundOpacity: external_exports.number().min(0).max(1).optional()
5437
+ /** Extra spacing between characters as a multiple of `fontSize` (CSS `em`; negative values tighten). */
5438
+ letterSpacing: external_exports.number().min(-0.5).max(1).optional()
5310
5439
  });
5311
5440
  var ImageStyleSchema2 = CommonStyleSchema2.extend({
5312
5441
  fit: external_exports.enum(["cover", "contain", "fill"]).optional(),
@@ -5381,6 +5510,41 @@ var ButtonLayoutBreakpointsSchema2 = external_exports.object({
5381
5510
  xl: ButtonLayoutBreakpointPatchSchema2.optional(),
5382
5511
  "2xl": ButtonLayoutBreakpointPatchSchema2.optional()
5383
5512
  }).partial().optional();
5513
+ var AuthLayoutBreakpointPatchSchema2 = external_exports.object({
5514
+ gap: NonNegativePxSchema2.optional(),
5515
+ align: external_exports.enum(["start", "center", "end", "stretch"]).optional()
5516
+ }).partial();
5517
+ var AuthLayoutBreakpointsSchema2 = external_exports.object({
5518
+ sm: AuthLayoutBreakpointPatchSchema2.optional(),
5519
+ md: AuthLayoutBreakpointPatchSchema2.optional(),
5520
+ lg: AuthLayoutBreakpointPatchSchema2.optional(),
5521
+ xl: AuthLayoutBreakpointPatchSchema2.optional(),
5522
+ "2xl": AuthLayoutBreakpointPatchSchema2.optional()
5523
+ }).partial().optional();
5524
+ var ChoiceLayoutBreakpointPatchSchema2 = external_exports.object({
5525
+ direction: external_exports.enum(["vertical", "horizontal"]).optional(),
5526
+ gap: NonNegativePxSchema2.optional(),
5527
+ columns: external_exports.number().int().min(1).max(6).optional()
5528
+ }).partial();
5529
+ var ChoiceLayoutBreakpointsSchema2 = external_exports.object({
5530
+ sm: ChoiceLayoutBreakpointPatchSchema2.optional(),
5531
+ md: ChoiceLayoutBreakpointPatchSchema2.optional(),
5532
+ lg: ChoiceLayoutBreakpointPatchSchema2.optional(),
5533
+ xl: ChoiceLayoutBreakpointPatchSchema2.optional(),
5534
+ "2xl": ChoiceLayoutBreakpointPatchSchema2.optional()
5535
+ }).partial().optional();
5536
+ var CarouselLayoutBreakpointPatchSchema2 = external_exports.object({
5537
+ pageAlignment: external_exports.enum(["top", "center", "bottom"]).optional(),
5538
+ pageSpacing: NonNegativePxSchema2.optional(),
5539
+ pagePeek: NonNegativePxSchema2.optional()
5540
+ }).partial();
5541
+ var CarouselLayoutBreakpointsSchema2 = external_exports.object({
5542
+ sm: CarouselLayoutBreakpointPatchSchema2.optional(),
5543
+ md: CarouselLayoutBreakpointPatchSchema2.optional(),
5544
+ lg: CarouselLayoutBreakpointPatchSchema2.optional(),
5545
+ xl: CarouselLayoutBreakpointPatchSchema2.optional(),
5546
+ "2xl": CarouselLayoutBreakpointPatchSchema2.optional()
5547
+ }).partial().optional();
5384
5548
  var DecisionNodeJumpIdSchema2 = external_exports.string().min(1).max(64).regex(/^dec_[a-z0-9_]+$/i);
5385
5549
  var ExternalSurfaceJumpIdSchema2 = external_exports.string().min(1).max(64).regex(/^surf_[a-z0-9_]+$/i);
5386
5550
  var FlowGraphNodeJumpTargetSchema2 = ScreenIdSchema2.or(DecisionNodeJumpIdSchema2).or(
@@ -5446,7 +5610,7 @@ var ButtonActionSchema2 = external_exports.discriminatedUnion("kind", [
5446
5610
  }),
5447
5611
  external_exports.object({ kind: external_exports.literal("request_app_review") })
5448
5612
  ]);
5449
- var TEXT_INPUT_TYPES2 = ["plain", "email", "phone", "url", "multiline"];
5613
+ var TEXT_INPUT_TYPES2 = ["plain", "email", "phone", "url", "number", "multiline"];
5450
5614
  var TextInputTypeSchema2 = external_exports.enum(TEXT_INPUT_TYPES2);
5451
5615
  var COUNTER_DISPLAY_KINDS2 = ["number", "time"];
5452
5616
  var COUNTER_TIME_FORMATS2 = ["mm_ss", "hh_mm_ss", "dd_hh_mm_ss"];
@@ -5511,7 +5675,8 @@ var ProgressLayerSchema2 = external_exports.object({
5511
5675
  kind: external_exports.literal("progress"),
5512
5676
  trackColor: ThemedColorSchema2.optional(),
5513
5677
  fillColor: ThemedColorSchema2.optional(),
5514
- style: CommonStyleSchema2.optional()
5678
+ style: CommonStyleSchema2.optional(),
5679
+ styleBreakpoints: CommonStyleBreakpointsSchema2
5515
5680
  });
5516
5681
  var LoaderOnCompleteSchema2 = external_exports.discriminatedUnion("mode", [
5517
5682
  external_exports.object({ mode: external_exports.literal("none") }),
@@ -5531,7 +5696,8 @@ var LoaderLayerSchema2 = external_exports.object({
5531
5696
  fillColor: ThemedColorSchema2.optional(),
5532
5697
  /** Horizontal alignment of the bar or ring within the layer box (default start). */
5533
5698
  align: external_exports.enum(["start", "center", "end"]).optional(),
5534
- style: CommonStyleSchema2.optional()
5699
+ style: CommonStyleSchema2.optional(),
5700
+ styleBreakpoints: CommonStyleBreakpointsSchema2
5535
5701
  }).superRefine((data, ctx) => {
5536
5702
  if (data.variant !== "circular") return;
5537
5703
  const w = data.style?.width;
@@ -5568,27 +5734,39 @@ var CheckboxLayerSchema2 = external_exports.object({
5568
5734
  styleBreakpoints: CommonStyleBreakpointsSchema2
5569
5735
  });
5570
5736
  var lazyLayer22 = () => layerSchemaStore2.schema;
5571
- var StackLayerSchema2 = external_exports.object({
5572
- ...baseLayerShape2,
5573
- kind: external_exports.literal("stack"),
5574
- style: CommonStyleSchema2.optional(),
5575
- styleBreakpoints: CommonStyleBreakpointsSchema2,
5576
- stackLayoutBreakpoints: StackLayoutBreakpointsSchema2,
5577
- selectedStyle: CommonStyleSchema2.optional(),
5578
- direction: external_exports.enum(["vertical", "horizontal"]),
5579
- gap: external_exports.number().int().min(0).optional(),
5580
- align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
5581
- justify: external_exports.enum(["start", "center", "end"]).optional(),
5582
- distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
5583
- wrap: external_exports.boolean().optional(),
5584
- children: external_exports.lazy(() => external_exports.array(lazyLayer22()))
5585
- });
5737
+ var migrateStackJustifyForParse2 = (raw) => {
5738
+ if (!raw || typeof raw !== "object") return raw;
5739
+ const o = { ...raw };
5740
+ if (o.justify != null && o.distribution == null) o.distribution = o.justify;
5741
+ delete o.justify;
5742
+ return o;
5743
+ };
5744
+ var StackLayerSchema2 = external_exports.preprocess(
5745
+ migrateStackJustifyForParse2,
5746
+ external_exports.object({
5747
+ ...baseLayerShape2,
5748
+ kind: external_exports.literal("stack"),
5749
+ style: CommonStyleSchema2.optional(),
5750
+ styleBreakpoints: CommonStyleBreakpointsSchema2,
5751
+ stackLayoutBreakpoints: StackLayoutBreakpointsSchema2,
5752
+ selectedStyle: CommonStyleSchema2.optional(),
5753
+ selectedStyleBreakpoints: CommonStyleBreakpointsSchema2,
5754
+ direction: external_exports.enum(["vertical", "horizontal"]),
5755
+ gap: external_exports.number().int().min(0).optional(),
5756
+ align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
5757
+ distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
5758
+ wrap: external_exports.boolean().optional(),
5759
+ children: external_exports.lazy(() => external_exports.array(lazyLayer22()))
5760
+ })
5761
+ );
5586
5762
  var TextLayerSchema2 = external_exports.object({
5587
5763
  ...baseLayerShape2,
5588
5764
  kind: external_exports.literal("text"),
5589
5765
  text: LocalizedTextSchema3,
5590
5766
  style: TextStyleSchema2.optional(),
5591
- styleBreakpoints: TextStyleBreakpointsSchema2
5767
+ styleBreakpoints: TextStyleBreakpointsSchema2,
5768
+ /** Merged on top of resolved `style` when this layer is inside a selected choice option. */
5769
+ selectedStyle: TextStyleSchema2.optional()
5592
5770
  });
5593
5771
  var migrateLegacyHyperlinkForParse2 = (raw) => {
5594
5772
  if (!raw || typeof raw !== "object") return raw;
@@ -5627,7 +5805,8 @@ var HyperlinkLayerSchemaInner2 = external_exports.object({
5627
5805
  distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
5628
5806
  wrap: external_exports.boolean().optional(),
5629
5807
  style: CommonStyleSchema2.optional(),
5630
- styleBreakpoints: CommonStyleBreakpointsSchema2
5808
+ styleBreakpoints: CommonStyleBreakpointsSchema2,
5809
+ hyperlinkLayoutBreakpoints: StackLayoutBreakpointsSchema2
5631
5810
  }).superRefine((data, ctx) => {
5632
5811
  const p = parseHyperlinkHref2(data.href.trim());
5633
5812
  if (!p.ok) {
@@ -5648,7 +5827,8 @@ var ImageLayerSchema2 = external_exports.object({
5648
5827
  media: MediaReferenceSchema2.optional(),
5649
5828
  alt: external_exports.string().max(280).optional(),
5650
5829
  style: ImageStyleSchema2.optional(),
5651
- styleBreakpoints: ImageStyleBreakpointsSchema2
5830
+ styleBreakpoints: ImageStyleBreakpointsSchema2,
5831
+ selectedStyle: ImageStyleSchema2.optional()
5652
5832
  });
5653
5833
  var LottieLayerSchema2 = external_exports.object({
5654
5834
  ...baseLayerShape2,
@@ -5659,7 +5839,8 @@ var LottieLayerSchema2 = external_exports.object({
5659
5839
  triggerLayerId: external_exports.string().min(1).optional(),
5660
5840
  onComplete: LoaderOnCompleteSchema2.optional(),
5661
5841
  style: ImageStyleSchema2.optional(),
5662
- styleBreakpoints: ImageStyleBreakpointsSchema2
5842
+ styleBreakpoints: ImageStyleBreakpointsSchema2,
5843
+ selectedStyle: ImageStyleSchema2.optional()
5663
5844
  });
5664
5845
  var VideoLayerSchema2 = external_exports.object({
5665
5846
  ...baseLayerShape2,
@@ -5671,7 +5852,8 @@ var VideoLayerSchema2 = external_exports.object({
5671
5852
  onComplete: LoaderOnCompleteSchema2.optional(),
5672
5853
  audioEnabled: external_exports.boolean().optional(),
5673
5854
  style: ImageStyleSchema2.optional(),
5674
- styleBreakpoints: ImageStyleBreakpointsSchema2
5855
+ styleBreakpoints: ImageStyleBreakpointsSchema2,
5856
+ selectedStyle: ImageStyleSchema2.optional()
5675
5857
  });
5676
5858
  var IconLayerSchema2 = external_exports.object({
5677
5859
  ...baseLayerShape2,
@@ -5679,7 +5861,8 @@ var IconLayerSchema2 = external_exports.object({
5679
5861
  family: external_exports.enum(ICON_FAMILIES2),
5680
5862
  iconName: external_exports.string().min(1).max(128),
5681
5863
  style: IconStyleSchema2.optional(),
5682
- styleBreakpoints: IconStyleBreakpointsSchema2
5864
+ styleBreakpoints: IconStyleBreakpointsSchema2,
5865
+ selectedStyle: IconStyleSchema2.optional()
5683
5866
  });
5684
5867
  var lazyLayer32 = () => layerSchemaStore2.schema;
5685
5868
  var OAuthProviderPresetLayerSchema2 = external_exports.object({
@@ -5833,6 +6016,7 @@ var OAuthLoginLayerSchemaValidated2 = external_exports.object({
5833
6016
  ),
5834
6017
  gap: external_exports.number().int().min(0).optional(),
5835
6018
  align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
6019
+ authLayoutBreakpoints: AuthLayoutBreakpointsSchema2,
5836
6020
  style: CommonStyleSchema2.optional(),
5837
6021
  styleBreakpoints: CommonStyleBreakpointsSchema2
5838
6022
  });
@@ -5984,6 +6168,7 @@ var EmailPasswordAuthLayerSchemaValidated2 = external_exports.object({
5984
6168
  ),
5985
6169
  gap: external_exports.number().int().min(0).optional(),
5986
6170
  align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
6171
+ authLayoutBreakpoints: AuthLayoutBreakpointsSchema2,
5987
6172
  style: CommonStyleSchema2.optional(),
5988
6173
  styleBreakpoints: CommonStyleBreakpointsSchema2
5989
6174
  }).superRefine(refineEmailPasswordAuthChildren2);
@@ -6017,7 +6202,8 @@ var SingleChoiceLayerSchema2 = external_exports.object({
6017
6202
  gap: external_exports.number().int().min(0).optional(),
6018
6203
  columns: external_exports.number().int().min(1).max(12).optional(),
6019
6204
  style: CommonStyleSchema2.optional(),
6020
- styleBreakpoints: CommonStyleBreakpointsSchema2
6205
+ styleBreakpoints: CommonStyleBreakpointsSchema2,
6206
+ choiceLayoutBreakpoints: ChoiceLayoutBreakpointsSchema2
6021
6207
  });
6022
6208
  var MultipleChoiceLayerSchema2 = external_exports.object({
6023
6209
  ...baseLayerShape2,
@@ -6034,8 +6220,19 @@ var MultipleChoiceLayerSchema2 = external_exports.object({
6034
6220
  gap: external_exports.number().int().min(0).optional(),
6035
6221
  columns: external_exports.number().int().min(1).max(12).optional(),
6036
6222
  style: CommonStyleSchema2.optional(),
6037
- styleBreakpoints: CommonStyleBreakpointsSchema2
6223
+ styleBreakpoints: CommonStyleBreakpointsSchema2,
6224
+ choiceLayoutBreakpoints: ChoiceLayoutBreakpointsSchema2
6038
6225
  });
6226
+ var TextInputFieldStyleSchema2 = external_exports.object({
6227
+ fontFamily: external_exports.string().min(1).max(128).optional(),
6228
+ fontSize: external_exports.number().int().min(8).max(96).optional(),
6229
+ fontWeight: external_exports.number().int().min(100).max(900).optional(),
6230
+ color: ThemedColorSchema2.optional(),
6231
+ align: external_exports.enum(["left", "center", "right"]).optional(),
6232
+ lineHeight: external_exports.number().min(0.8).max(3).optional(),
6233
+ letterSpacing: external_exports.number().min(-0.5).max(1).optional(),
6234
+ opacity: external_exports.number().min(0).max(1).optional()
6235
+ }).partial();
6039
6236
  var TextInputLayerSchema2 = external_exports.object({
6040
6237
  ...baseLayerShape2,
6041
6238
  kind: external_exports.literal("text_input"),
@@ -6047,7 +6244,10 @@ var TextInputLayerSchema2 = external_exports.object({
6047
6244
  maxLength: external_exports.number().int().positive().max(2e3).optional(),
6048
6245
  classification: FieldClassificationSchema2,
6049
6246
  children: external_exports.lazy(() => external_exports.array(lazyLayer52())).optional(),
6050
- style: CommonStyleSchema2.optional()
6247
+ /** Typography for the native input's typed text. */
6248
+ fieldStyle: TextInputFieldStyleSchema2.optional(),
6249
+ style: CommonStyleSchema2.optional(),
6250
+ styleBreakpoints: CommonStyleBreakpointsSchema2
6051
6251
  });
6052
6252
  var ScaleInputLabelStyleSchema2 = external_exports.object({
6053
6253
  fontFamily: external_exports.string().min(1).max(128).optional(),
@@ -6056,6 +6256,7 @@ var ScaleInputLabelStyleSchema2 = external_exports.object({
6056
6256
  color: ThemedColorSchema2.optional(),
6057
6257
  align: external_exports.enum(["left", "center", "right"]).optional(),
6058
6258
  lineHeight: external_exports.number().min(0.8).max(3).optional(),
6259
+ letterSpacing: external_exports.number().min(-0.5).max(1).optional(),
6059
6260
  opacity: external_exports.number().min(0).max(1).optional()
6060
6261
  }).partial();
6061
6262
  var ScaleInputLayerSchema2 = external_exports.object({
@@ -6078,7 +6279,40 @@ var ScaleInputLayerSchema2 = external_exports.object({
6078
6279
  thumbSize: external_exports.number().int().min(8).max(48).optional(),
6079
6280
  thumbColor: ThemedColorSchema2.optional(),
6080
6281
  children: external_exports.lazy(() => external_exports.array(lazyLayer52())).optional(),
6081
- style: CommonStyleSchema2.optional()
6282
+ style: CommonStyleSchema2.optional(),
6283
+ styleBreakpoints: CommonStyleBreakpointsSchema2
6284
+ });
6285
+ var WheelPickerOptionSchema2 = external_exports.object({
6286
+ optionId: external_exports.string().min(1).max(64),
6287
+ label: LocalizedTextSchema3
6288
+ });
6289
+ var WheelPickerItemStyleSchema2 = external_exports.object({
6290
+ fontFamily: external_exports.string().min(1).max(128).optional(),
6291
+ fontSize: external_exports.number().int().min(8).max(96).optional(),
6292
+ fontWeight: external_exports.number().int().min(100).max(900).optional(),
6293
+ color: ThemedColorSchema2.optional(),
6294
+ opacity: external_exports.number().min(0).max(1).optional()
6295
+ }).partial();
6296
+ var WheelPickerLayerSchema2 = external_exports.object({
6297
+ ...baseLayerShape2,
6298
+ kind: external_exports.literal("wheel_picker"),
6299
+ fieldKey: FieldKeySchema2,
6300
+ mode: external_exports.enum(["options", "date"]).optional(),
6301
+ options: external_exports.array(WheelPickerOptionSchema2).min(2).optional(),
6302
+ defaultOptionId: external_exports.string().optional(),
6303
+ datePart: external_exports.enum(["year", "month", "day"]).optional(),
6304
+ minYear: external_exports.number().int().min(1e3).max(9999).optional(),
6305
+ maxYear: external_exports.number().int().min(1e3).max(9999).optional(),
6306
+ defaultValue: external_exports.string().optional(),
6307
+ placeholder: LocalizedTextSchema3.optional(),
6308
+ itemHeight: external_exports.number().int().min(28).max(72).optional(),
6309
+ visibleItemCount: external_exports.number().int().min(3).max(9).optional(),
6310
+ selectionBackgroundColor: ThemedColorSchema2.optional(),
6311
+ itemStyle: WheelPickerItemStyleSchema2.optional(),
6312
+ selectedItemStyle: WheelPickerItemStyleSchema2.optional(),
6313
+ children: external_exports.lazy(() => external_exports.array(lazyLayer52())).optional(),
6314
+ style: CommonStyleSchema2.optional(),
6315
+ styleBreakpoints: CommonStyleBreakpointsSchema2
6082
6316
  });
6083
6317
  var CarouselIndicatorsStyleSchema2 = external_exports.object({
6084
6318
  width: external_exports.number().int().min(1).max(64).optional(),
@@ -6114,7 +6348,8 @@ var CarouselLayerSchema2 = external_exports.object({
6114
6348
  autoAdvanceMs: external_exports.number().int().min(500).max(6e4).optional(),
6115
6349
  pageControl: CarouselPageControlSchema2.optional(),
6116
6350
  style: CommonStyleSchema2.optional(),
6117
- styleBreakpoints: CommonStyleBreakpointsSchema2
6351
+ styleBreakpoints: CommonStyleBreakpointsSchema2,
6352
+ carouselLayoutBreakpoints: CarouselLayoutBreakpointsSchema2
6118
6353
  });
6119
6354
  layerSchemaStore2.schema = external_exports.lazy(
6120
6355
  () => external_exports.union([
@@ -6135,6 +6370,7 @@ layerSchemaStore2.schema = external_exports.lazy(
6135
6370
  MultipleChoiceLayerSchema2,
6136
6371
  TextInputLayerSchema2,
6137
6372
  ScaleInputLayerSchema2,
6373
+ WheelPickerLayerSchema2,
6138
6374
  OAuthLoginLayerSchema2,
6139
6375
  OAuthProviderPresetLayerSchema2,
6140
6376
  OAuthProviderCustomLayerSchema2,
@@ -6417,7 +6653,10 @@ var ThemedColorModesSchema3 = external_exports.object({
6417
6653
  var ThemedColorSchema3 = external_exports.union([external_exports.string().min(1), ThemedColorModesSchema3]);
6418
6654
  var LAYOUT_FRACTION_PRESETS3 = ["1/2", "1/3", "2/3", "1/4", "3/4"];
6419
6655
  var WIDTH_PRESETS3 = ["auto", "full", ...LAYOUT_FRACTION_PRESETS3];
6420
- var WidthValueSchema3 = external_exports.union([external_exports.enum(WIDTH_PRESETS3), external_exports.number().int().min(0).max(2e3)]);
6656
+ var WidthValueSchema3 = external_exports.preprocess(
6657
+ (value) => value === "fill" ? "full" : value,
6658
+ external_exports.union([external_exports.enum(WIDTH_PRESETS3), external_exports.number().int().min(0).max(2e3)])
6659
+ );
6421
6660
  var HEIGHT_PRESETS3 = ["auto", "full", "fill", ...LAYOUT_FRACTION_PRESETS3];
6422
6661
  var CommonLayoutHeightSchema3 = external_exports.union([
6423
6662
  external_exports.enum(HEIGHT_PRESETS3),
@@ -6450,6 +6689,8 @@ var CommonStyleSchema3 = external_exports.object({
6450
6689
  border: BorderSchema3.optional(),
6451
6690
  shadow: DropShadowSchema3.optional(),
6452
6691
  opacity: external_exports.number().min(0).max(1).optional(),
6692
+ /** Multiplier (0–1) applied to the resolved background color alpha only; children stay fully opaque unless `opacity` is set. */
6693
+ backgroundOpacity: external_exports.number().min(0).max(1).optional(),
6453
6694
  width: WidthValueSchema3.optional(),
6454
6695
  /** Omit for normal flow; `'absolute'` removes the layer from flex flow (non-root only). */
6455
6696
  position: external_exports.literal("absolute").optional(),
@@ -6460,6 +6701,11 @@ var CommonStyleSchema3 = external_exports.object({
6460
6701
  rotate: external_exports.number().min(-360).max(360).optional(),
6461
6702
  /** Cross-axis size: `auto` (hug), `full`/`fill` (parent height), fractions, or fixed px. */
6462
6703
  height: CommonLayoutHeightSchema3.optional(),
6704
+ /** Optional size clamps (px); applied on the flex shell / wrapper like width/height. */
6705
+ minWidth: NonNegativePxSchema3.max(2e3).optional(),
6706
+ maxWidth: NonNegativePxSchema3.max(2e3).optional(),
6707
+ minHeight: NonNegativePxSchema3.max(2e3).optional(),
6708
+ maxHeight: NonNegativePxSchema3.max(2e3).optional(),
6463
6709
  /** Stroke thickness in px for layers that render a stroke primitive (e.g. loader ring). */
6464
6710
  strokeWidth: external_exports.number().int().min(0).max(64).optional()
6465
6711
  }).partial();
@@ -6473,9 +6719,10 @@ var TextStyleSchema3 = CommonStyleSchema3.extend({
6473
6719
  fontWeight: external_exports.number().int().min(100).max(900).optional(),
6474
6720
  color: ThemedColorSchema3.optional(),
6475
6721
  align: external_exports.enum(["left", "center", "right"]).optional(),
6722
+ /** Unitless line-height multiplier (CSS `line-height` without units). */
6476
6723
  lineHeight: external_exports.number().min(0.8).max(3).optional(),
6477
- /** Multiplier (0–1) applied to the resolved background color alpha only; text stays fully opaque unless `opacity` is set. */
6478
- backgroundOpacity: external_exports.number().min(0).max(1).optional()
6724
+ /** Extra spacing between characters as a multiple of `fontSize` (CSS `em`; negative values tighten). */
6725
+ letterSpacing: external_exports.number().min(-0.5).max(1).optional()
6479
6726
  });
6480
6727
  var ImageStyleSchema3 = CommonStyleSchema3.extend({
6481
6728
  fit: external_exports.enum(["cover", "contain", "fill"]).optional(),
@@ -6550,6 +6797,41 @@ var ButtonLayoutBreakpointsSchema3 = external_exports.object({
6550
6797
  xl: ButtonLayoutBreakpointPatchSchema3.optional(),
6551
6798
  "2xl": ButtonLayoutBreakpointPatchSchema3.optional()
6552
6799
  }).partial().optional();
6800
+ var AuthLayoutBreakpointPatchSchema3 = external_exports.object({
6801
+ gap: NonNegativePxSchema3.optional(),
6802
+ align: external_exports.enum(["start", "center", "end", "stretch"]).optional()
6803
+ }).partial();
6804
+ var AuthLayoutBreakpointsSchema3 = external_exports.object({
6805
+ sm: AuthLayoutBreakpointPatchSchema3.optional(),
6806
+ md: AuthLayoutBreakpointPatchSchema3.optional(),
6807
+ lg: AuthLayoutBreakpointPatchSchema3.optional(),
6808
+ xl: AuthLayoutBreakpointPatchSchema3.optional(),
6809
+ "2xl": AuthLayoutBreakpointPatchSchema3.optional()
6810
+ }).partial().optional();
6811
+ var ChoiceLayoutBreakpointPatchSchema3 = external_exports.object({
6812
+ direction: external_exports.enum(["vertical", "horizontal"]).optional(),
6813
+ gap: NonNegativePxSchema3.optional(),
6814
+ columns: external_exports.number().int().min(1).max(6).optional()
6815
+ }).partial();
6816
+ var ChoiceLayoutBreakpointsSchema3 = external_exports.object({
6817
+ sm: ChoiceLayoutBreakpointPatchSchema3.optional(),
6818
+ md: ChoiceLayoutBreakpointPatchSchema3.optional(),
6819
+ lg: ChoiceLayoutBreakpointPatchSchema3.optional(),
6820
+ xl: ChoiceLayoutBreakpointPatchSchema3.optional(),
6821
+ "2xl": ChoiceLayoutBreakpointPatchSchema3.optional()
6822
+ }).partial().optional();
6823
+ var CarouselLayoutBreakpointPatchSchema3 = external_exports.object({
6824
+ pageAlignment: external_exports.enum(["top", "center", "bottom"]).optional(),
6825
+ pageSpacing: NonNegativePxSchema3.optional(),
6826
+ pagePeek: NonNegativePxSchema3.optional()
6827
+ }).partial();
6828
+ var CarouselLayoutBreakpointsSchema3 = external_exports.object({
6829
+ sm: CarouselLayoutBreakpointPatchSchema3.optional(),
6830
+ md: CarouselLayoutBreakpointPatchSchema3.optional(),
6831
+ lg: CarouselLayoutBreakpointPatchSchema3.optional(),
6832
+ xl: CarouselLayoutBreakpointPatchSchema3.optional(),
6833
+ "2xl": CarouselLayoutBreakpointPatchSchema3.optional()
6834
+ }).partial().optional();
6553
6835
  var DecisionNodeJumpIdSchema3 = external_exports.string().min(1).max(64).regex(/^dec_[a-z0-9_]+$/i);
6554
6836
  var ExternalSurfaceJumpIdSchema3 = external_exports.string().min(1).max(64).regex(/^surf_[a-z0-9_]+$/i);
6555
6837
  var FlowGraphNodeJumpTargetSchema3 = ScreenIdSchema3.or(DecisionNodeJumpIdSchema3).or(
@@ -6617,7 +6899,7 @@ var ButtonActionSchema3 = external_exports.discriminatedUnion("kind", [
6617
6899
  }),
6618
6900
  external_exports.object({ kind: external_exports.literal("request_app_review") })
6619
6901
  ]);
6620
- var TEXT_INPUT_TYPES3 = ["plain", "email", "phone", "url", "multiline"];
6902
+ var TEXT_INPUT_TYPES3 = ["plain", "email", "phone", "url", "number", "multiline"];
6621
6903
  var TextInputTypeSchema3 = external_exports.enum(TEXT_INPUT_TYPES3);
6622
6904
  var COUNTER_DISPLAY_KINDS3 = ["number", "time"];
6623
6905
  var COUNTER_TIME_FORMATS3 = ["mm_ss", "hh_mm_ss", "dd_hh_mm_ss"];
@@ -6682,7 +6964,8 @@ var ProgressLayerSchema3 = external_exports.object({
6682
6964
  kind: external_exports.literal("progress"),
6683
6965
  trackColor: ThemedColorSchema3.optional(),
6684
6966
  fillColor: ThemedColorSchema3.optional(),
6685
- style: CommonStyleSchema3.optional()
6967
+ style: CommonStyleSchema3.optional(),
6968
+ styleBreakpoints: CommonStyleBreakpointsSchema3
6686
6969
  });
6687
6970
  var LoaderOnCompleteSchema3 = external_exports.discriminatedUnion("mode", [
6688
6971
  external_exports.object({ mode: external_exports.literal("none") }),
@@ -6702,7 +6985,8 @@ var LoaderLayerSchema3 = external_exports.object({
6702
6985
  fillColor: ThemedColorSchema3.optional(),
6703
6986
  /** Horizontal alignment of the bar or ring within the layer box (default start). */
6704
6987
  align: external_exports.enum(["start", "center", "end"]).optional(),
6705
- style: CommonStyleSchema3.optional()
6988
+ style: CommonStyleSchema3.optional(),
6989
+ styleBreakpoints: CommonStyleBreakpointsSchema3
6706
6990
  }).superRefine((data, ctx) => {
6707
6991
  if (data.variant !== "circular") return;
6708
6992
  const w = data.style?.width;
@@ -6739,27 +7023,39 @@ var CheckboxLayerSchema3 = external_exports.object({
6739
7023
  styleBreakpoints: CommonStyleBreakpointsSchema3
6740
7024
  });
6741
7025
  var lazyLayer23 = () => layerSchemaStore3.schema;
6742
- var StackLayerSchema3 = external_exports.object({
6743
- ...baseLayerShape3,
6744
- kind: external_exports.literal("stack"),
6745
- style: CommonStyleSchema3.optional(),
6746
- styleBreakpoints: CommonStyleBreakpointsSchema3,
6747
- stackLayoutBreakpoints: StackLayoutBreakpointsSchema3,
6748
- selectedStyle: CommonStyleSchema3.optional(),
6749
- direction: external_exports.enum(["vertical", "horizontal"]),
6750
- gap: external_exports.number().int().min(0).optional(),
6751
- align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
6752
- justify: external_exports.enum(["start", "center", "end"]).optional(),
6753
- distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
6754
- wrap: external_exports.boolean().optional(),
6755
- children: external_exports.lazy(() => external_exports.array(lazyLayer23()))
6756
- });
7026
+ var migrateStackJustifyForParse3 = (raw) => {
7027
+ if (!raw || typeof raw !== "object") return raw;
7028
+ const o = { ...raw };
7029
+ if (o.justify != null && o.distribution == null) o.distribution = o.justify;
7030
+ delete o.justify;
7031
+ return o;
7032
+ };
7033
+ var StackLayerSchema3 = external_exports.preprocess(
7034
+ migrateStackJustifyForParse3,
7035
+ external_exports.object({
7036
+ ...baseLayerShape3,
7037
+ kind: external_exports.literal("stack"),
7038
+ style: CommonStyleSchema3.optional(),
7039
+ styleBreakpoints: CommonStyleBreakpointsSchema3,
7040
+ stackLayoutBreakpoints: StackLayoutBreakpointsSchema3,
7041
+ selectedStyle: CommonStyleSchema3.optional(),
7042
+ selectedStyleBreakpoints: CommonStyleBreakpointsSchema3,
7043
+ direction: external_exports.enum(["vertical", "horizontal"]),
7044
+ gap: external_exports.number().int().min(0).optional(),
7045
+ align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
7046
+ distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
7047
+ wrap: external_exports.boolean().optional(),
7048
+ children: external_exports.lazy(() => external_exports.array(lazyLayer23()))
7049
+ })
7050
+ );
6757
7051
  var TextLayerSchema3 = external_exports.object({
6758
7052
  ...baseLayerShape3,
6759
7053
  kind: external_exports.literal("text"),
6760
7054
  text: LocalizedTextSchema4,
6761
7055
  style: TextStyleSchema3.optional(),
6762
- styleBreakpoints: TextStyleBreakpointsSchema3
7056
+ styleBreakpoints: TextStyleBreakpointsSchema3,
7057
+ /** Merged on top of resolved `style` when this layer is inside a selected choice option. */
7058
+ selectedStyle: TextStyleSchema3.optional()
6763
7059
  });
6764
7060
  var migrateLegacyHyperlinkForParse3 = (raw) => {
6765
7061
  if (!raw || typeof raw !== "object") return raw;
@@ -6798,7 +7094,8 @@ var HyperlinkLayerSchemaInner3 = external_exports.object({
6798
7094
  distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
6799
7095
  wrap: external_exports.boolean().optional(),
6800
7096
  style: CommonStyleSchema3.optional(),
6801
- styleBreakpoints: CommonStyleBreakpointsSchema3
7097
+ styleBreakpoints: CommonStyleBreakpointsSchema3,
7098
+ hyperlinkLayoutBreakpoints: StackLayoutBreakpointsSchema3
6802
7099
  }).superRefine((data, ctx) => {
6803
7100
  const p = parseHyperlinkHref3(data.href.trim());
6804
7101
  if (!p.ok) {
@@ -6819,7 +7116,8 @@ var ImageLayerSchema3 = external_exports.object({
6819
7116
  media: MediaReferenceSchema3.optional(),
6820
7117
  alt: external_exports.string().max(280).optional(),
6821
7118
  style: ImageStyleSchema3.optional(),
6822
- styleBreakpoints: ImageStyleBreakpointsSchema3
7119
+ styleBreakpoints: ImageStyleBreakpointsSchema3,
7120
+ selectedStyle: ImageStyleSchema3.optional()
6823
7121
  });
6824
7122
  var LottieLayerSchema3 = external_exports.object({
6825
7123
  ...baseLayerShape3,
@@ -6830,7 +7128,8 @@ var LottieLayerSchema3 = external_exports.object({
6830
7128
  triggerLayerId: external_exports.string().min(1).optional(),
6831
7129
  onComplete: LoaderOnCompleteSchema3.optional(),
6832
7130
  style: ImageStyleSchema3.optional(),
6833
- styleBreakpoints: ImageStyleBreakpointsSchema3
7131
+ styleBreakpoints: ImageStyleBreakpointsSchema3,
7132
+ selectedStyle: ImageStyleSchema3.optional()
6834
7133
  });
6835
7134
  var VideoLayerSchema3 = external_exports.object({
6836
7135
  ...baseLayerShape3,
@@ -6842,7 +7141,8 @@ var VideoLayerSchema3 = external_exports.object({
6842
7141
  onComplete: LoaderOnCompleteSchema3.optional(),
6843
7142
  audioEnabled: external_exports.boolean().optional(),
6844
7143
  style: ImageStyleSchema3.optional(),
6845
- styleBreakpoints: ImageStyleBreakpointsSchema3
7144
+ styleBreakpoints: ImageStyleBreakpointsSchema3,
7145
+ selectedStyle: ImageStyleSchema3.optional()
6846
7146
  });
6847
7147
  var IconLayerSchema3 = external_exports.object({
6848
7148
  ...baseLayerShape3,
@@ -6850,7 +7150,8 @@ var IconLayerSchema3 = external_exports.object({
6850
7150
  family: external_exports.enum(ICON_FAMILIES3),
6851
7151
  iconName: external_exports.string().min(1).max(128),
6852
7152
  style: IconStyleSchema3.optional(),
6853
- styleBreakpoints: IconStyleBreakpointsSchema3
7153
+ styleBreakpoints: IconStyleBreakpointsSchema3,
7154
+ selectedStyle: IconStyleSchema3.optional()
6854
7155
  });
6855
7156
  var lazyLayer33 = () => layerSchemaStore3.schema;
6856
7157
  var OAuthProviderPresetLayerSchema3 = external_exports.object({
@@ -7004,6 +7305,7 @@ var OAuthLoginLayerSchemaValidated3 = external_exports.object({
7004
7305
  ),
7005
7306
  gap: external_exports.number().int().min(0).optional(),
7006
7307
  align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
7308
+ authLayoutBreakpoints: AuthLayoutBreakpointsSchema3,
7007
7309
  style: CommonStyleSchema3.optional(),
7008
7310
  styleBreakpoints: CommonStyleBreakpointsSchema3
7009
7311
  });
@@ -7152,6 +7454,7 @@ var EmailPasswordAuthLayerSchemaValidated3 = external_exports.object({
7152
7454
  ),
7153
7455
  gap: external_exports.number().int().min(0).optional(),
7154
7456
  align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
7457
+ authLayoutBreakpoints: AuthLayoutBreakpointsSchema3,
7155
7458
  style: CommonStyleSchema3.optional(),
7156
7459
  styleBreakpoints: CommonStyleBreakpointsSchema3
7157
7460
  }).superRefine(refineEmailPasswordAuthChildren3);
@@ -7232,7 +7535,8 @@ var SingleChoiceLayerSchema3 = external_exports.object({
7232
7535
  gap: external_exports.number().int().min(0).optional(),
7233
7536
  columns: external_exports.number().int().min(1).max(12).optional(),
7234
7537
  style: CommonStyleSchema3.optional(),
7235
- styleBreakpoints: CommonStyleBreakpointsSchema3
7538
+ styleBreakpoints: CommonStyleBreakpointsSchema3,
7539
+ choiceLayoutBreakpoints: ChoiceLayoutBreakpointsSchema3
7236
7540
  });
7237
7541
  var MultipleChoiceLayerSchema3 = external_exports.object({
7238
7542
  ...baseLayerShape3,
@@ -7249,9 +7553,20 @@ var MultipleChoiceLayerSchema3 = external_exports.object({
7249
7553
  gap: external_exports.number().int().min(0).optional(),
7250
7554
  columns: external_exports.number().int().min(1).max(12).optional(),
7251
7555
  style: CommonStyleSchema3.optional(),
7252
- styleBreakpoints: CommonStyleBreakpointsSchema3
7556
+ styleBreakpoints: CommonStyleBreakpointsSchema3,
7557
+ choiceLayoutBreakpoints: ChoiceLayoutBreakpointsSchema3
7253
7558
  });
7254
7559
  var validateChoiceChildrenAndBindings = ChoiceChildrenAndBindingsRefinement;
7560
+ var TextInputFieldStyleSchema3 = external_exports.object({
7561
+ fontFamily: external_exports.string().min(1).max(128).optional(),
7562
+ fontSize: external_exports.number().int().min(8).max(96).optional(),
7563
+ fontWeight: external_exports.number().int().min(100).max(900).optional(),
7564
+ color: ThemedColorSchema3.optional(),
7565
+ align: external_exports.enum(["left", "center", "right"]).optional(),
7566
+ lineHeight: external_exports.number().min(0.8).max(3).optional(),
7567
+ letterSpacing: external_exports.number().min(-0.5).max(1).optional(),
7568
+ opacity: external_exports.number().min(0).max(1).optional()
7569
+ }).partial();
7255
7570
  var TextInputLayerSchema3 = external_exports.object({
7256
7571
  ...baseLayerShape3,
7257
7572
  kind: external_exports.literal("text_input"),
@@ -7263,7 +7578,10 @@ var TextInputLayerSchema3 = external_exports.object({
7263
7578
  maxLength: external_exports.number().int().positive().max(2e3).optional(),
7264
7579
  classification: FieldClassificationSchema3,
7265
7580
  children: external_exports.lazy(() => external_exports.array(lazyLayer53())).optional(),
7266
- style: CommonStyleSchema3.optional()
7581
+ /** Typography for the native input's typed text. */
7582
+ fieldStyle: TextInputFieldStyleSchema3.optional(),
7583
+ style: CommonStyleSchema3.optional(),
7584
+ styleBreakpoints: CommonStyleBreakpointsSchema3
7267
7585
  });
7268
7586
  var ScaleInputLabelStyleSchema3 = external_exports.object({
7269
7587
  fontFamily: external_exports.string().min(1).max(128).optional(),
@@ -7272,6 +7590,7 @@ var ScaleInputLabelStyleSchema3 = external_exports.object({
7272
7590
  color: ThemedColorSchema3.optional(),
7273
7591
  align: external_exports.enum(["left", "center", "right"]).optional(),
7274
7592
  lineHeight: external_exports.number().min(0.8).max(3).optional(),
7593
+ letterSpacing: external_exports.number().min(-0.5).max(1).optional(),
7275
7594
  opacity: external_exports.number().min(0).max(1).optional()
7276
7595
  }).partial();
7277
7596
  var ScaleInputLayerSchema3 = external_exports.object({
@@ -7294,7 +7613,40 @@ var ScaleInputLayerSchema3 = external_exports.object({
7294
7613
  thumbSize: external_exports.number().int().min(8).max(48).optional(),
7295
7614
  thumbColor: ThemedColorSchema3.optional(),
7296
7615
  children: external_exports.lazy(() => external_exports.array(lazyLayer53())).optional(),
7297
- style: CommonStyleSchema3.optional()
7616
+ style: CommonStyleSchema3.optional(),
7617
+ styleBreakpoints: CommonStyleBreakpointsSchema3
7618
+ });
7619
+ var WheelPickerOptionSchema3 = external_exports.object({
7620
+ optionId: external_exports.string().min(1).max(64),
7621
+ label: LocalizedTextSchema4
7622
+ });
7623
+ var WheelPickerItemStyleSchema3 = external_exports.object({
7624
+ fontFamily: external_exports.string().min(1).max(128).optional(),
7625
+ fontSize: external_exports.number().int().min(8).max(96).optional(),
7626
+ fontWeight: external_exports.number().int().min(100).max(900).optional(),
7627
+ color: ThemedColorSchema3.optional(),
7628
+ opacity: external_exports.number().min(0).max(1).optional()
7629
+ }).partial();
7630
+ var WheelPickerLayerSchema3 = external_exports.object({
7631
+ ...baseLayerShape3,
7632
+ kind: external_exports.literal("wheel_picker"),
7633
+ fieldKey: FieldKeySchema3,
7634
+ mode: external_exports.enum(["options", "date"]).optional(),
7635
+ options: external_exports.array(WheelPickerOptionSchema3).min(2).optional(),
7636
+ defaultOptionId: external_exports.string().optional(),
7637
+ datePart: external_exports.enum(["year", "month", "day"]).optional(),
7638
+ minYear: external_exports.number().int().min(1e3).max(9999).optional(),
7639
+ maxYear: external_exports.number().int().min(1e3).max(9999).optional(),
7640
+ defaultValue: external_exports.string().optional(),
7641
+ placeholder: LocalizedTextSchema4.optional(),
7642
+ itemHeight: external_exports.number().int().min(28).max(72).optional(),
7643
+ visibleItemCount: external_exports.number().int().min(3).max(9).optional(),
7644
+ selectionBackgroundColor: ThemedColorSchema3.optional(),
7645
+ itemStyle: WheelPickerItemStyleSchema3.optional(),
7646
+ selectedItemStyle: WheelPickerItemStyleSchema3.optional(),
7647
+ children: external_exports.lazy(() => external_exports.array(lazyLayer53())).optional(),
7648
+ style: CommonStyleSchema3.optional(),
7649
+ styleBreakpoints: CommonStyleBreakpointsSchema3
7298
7650
  });
7299
7651
  var CarouselIndicatorsStyleSchema3 = external_exports.object({
7300
7652
  width: external_exports.number().int().min(1).max(64).optional(),
@@ -7330,7 +7682,8 @@ var CarouselLayerSchema3 = external_exports.object({
7330
7682
  autoAdvanceMs: external_exports.number().int().min(500).max(6e4).optional(),
7331
7683
  pageControl: CarouselPageControlSchema3.optional(),
7332
7684
  style: CommonStyleSchema3.optional(),
7333
- styleBreakpoints: CommonStyleBreakpointsSchema3
7685
+ styleBreakpoints: CommonStyleBreakpointsSchema3,
7686
+ carouselLayoutBreakpoints: CarouselLayoutBreakpointsSchema3
7334
7687
  });
7335
7688
  layerSchemaStore3.schema = external_exports.lazy(
7336
7689
  () => external_exports.union([
@@ -7351,6 +7704,7 @@ layerSchemaStore3.schema = external_exports.lazy(
7351
7704
  MultipleChoiceLayerSchema3,
7352
7705
  TextInputLayerSchema3,
7353
7706
  ScaleInputLayerSchema3,
7707
+ WheelPickerLayerSchema3,
7354
7708
  OAuthLoginLayerSchema3,
7355
7709
  OAuthProviderPresetLayerSchema3,
7356
7710
  OAuthProviderCustomLayerSchema3,
@@ -7392,6 +7746,7 @@ var layerHasAbsolutePositionAuthored = (layer) => {
7392
7746
  return commonStyleHasAbsolutePosition(layer.style, void 0);
7393
7747
  case "text_input":
7394
7748
  case "scale_input":
7749
+ case "wheel_picker":
7395
7750
  return commonStyleHasAbsolutePosition(layer.style, void 0);
7396
7751
  case "oauth_provider":
7397
7752
  if (layer.variant === "preset") {
@@ -7416,7 +7771,7 @@ var layerHasAbsolutePositionAuthored = (layer) => {
7416
7771
  return false;
7417
7772
  }
7418
7773
  };
7419
- var isInputLayer2 = (l) => l.kind === "single_choice" || l.kind === "multiple_choice" || l.kind === "text_input" || l.kind === "scale_input";
7774
+ var isInputLayer2 = (l) => l.kind === "single_choice" || l.kind === "multiple_choice" || l.kind === "text_input" || l.kind === "scale_input" || l.kind === "wheel_picker";
7420
7775
  var ANIMATABLE_PROPERTIES = [
7421
7776
  "opacity",
7422
7777
  "translateX",
@@ -8536,9 +8891,20 @@ var SdkResolveResponseSchema = external_exports.object({
8536
8891
  var SdkResolveAllResponseSchema = external_exports.object({
8537
8892
  channels: external_exports.array(SdkResolveResponseSchema)
8538
8893
  });
8539
- var SdkResolveAssignmentSchema = SdkResolveResponseSchema.omit({
8540
- manifest: true,
8541
- mediaMap: true
8894
+ var SdkResolveAssignmentSchema = external_exports.object({
8895
+ flowId: external_exports.string().uuid(),
8896
+ versionId: external_exports.string().uuid(),
8897
+ versionNumber: external_exports.number().int().positive(),
8898
+ assignmentVersion: external_exports.number().int().nonnegative(),
8899
+ environment: external_exports.enum(["test", "live"]),
8900
+ channelId: external_exports.string(),
8901
+ experimentId: external_exports.string().uuid().nullable(),
8902
+ variantId: external_exports.string().nullable(),
8903
+ branding: BrandingSchema.optional(),
8904
+ features: external_exports.object({
8905
+ attribution: external_exports.boolean()
8906
+ }).optional(),
8907
+ integrations: ResolvedAppIntegrationsSchema
8542
8908
  });
8543
8909
  var FlowTerminalCorrelationSchema = external_exports.object({
8544
8910
  channelId: external_exports.string(),
@@ -8861,7 +9227,10 @@ var ThemedColorModesSchema4 = external_exports.object({
8861
9227
  var ThemedColorSchema4 = external_exports.union([external_exports.string().min(1), ThemedColorModesSchema4]);
8862
9228
  var LAYOUT_FRACTION_PRESETS4 = ["1/2", "1/3", "2/3", "1/4", "3/4"];
8863
9229
  var WIDTH_PRESETS4 = ["auto", "full", ...LAYOUT_FRACTION_PRESETS4];
8864
- var WidthValueSchema4 = external_exports.union([external_exports.enum(WIDTH_PRESETS4), external_exports.number().int().min(0).max(2e3)]);
9230
+ var WidthValueSchema4 = external_exports.preprocess(
9231
+ (value) => value === "fill" ? "full" : value,
9232
+ external_exports.union([external_exports.enum(WIDTH_PRESETS4), external_exports.number().int().min(0).max(2e3)])
9233
+ );
8865
9234
  var HEIGHT_PRESETS4 = ["auto", "full", "fill", ...LAYOUT_FRACTION_PRESETS4];
8866
9235
  var CommonLayoutHeightSchema4 = external_exports.union([
8867
9236
  external_exports.enum(HEIGHT_PRESETS4),
@@ -8894,6 +9263,8 @@ var CommonStyleSchema4 = external_exports.object({
8894
9263
  border: BorderSchema4.optional(),
8895
9264
  shadow: DropShadowSchema4.optional(),
8896
9265
  opacity: external_exports.number().min(0).max(1).optional(),
9266
+ /** Multiplier (0–1) applied to the resolved background color alpha only; children stay fully opaque unless `opacity` is set. */
9267
+ backgroundOpacity: external_exports.number().min(0).max(1).optional(),
8897
9268
  width: WidthValueSchema4.optional(),
8898
9269
  /** Omit for normal flow; `'absolute'` removes the layer from flex flow (non-root only). */
8899
9270
  position: external_exports.literal("absolute").optional(),
@@ -8904,6 +9275,11 @@ var CommonStyleSchema4 = external_exports.object({
8904
9275
  rotate: external_exports.number().min(-360).max(360).optional(),
8905
9276
  /** Cross-axis size: `auto` (hug), `full`/`fill` (parent height), fractions, or fixed px. */
8906
9277
  height: CommonLayoutHeightSchema4.optional(),
9278
+ /** Optional size clamps (px); applied on the flex shell / wrapper like width/height. */
9279
+ minWidth: NonNegativePxSchema4.max(2e3).optional(),
9280
+ maxWidth: NonNegativePxSchema4.max(2e3).optional(),
9281
+ minHeight: NonNegativePxSchema4.max(2e3).optional(),
9282
+ maxHeight: NonNegativePxSchema4.max(2e3).optional(),
8907
9283
  /** Stroke thickness in px for layers that render a stroke primitive (e.g. loader ring). */
8908
9284
  strokeWidth: external_exports.number().int().min(0).max(64).optional()
8909
9285
  }).partial();
@@ -8917,9 +9293,10 @@ var TextStyleSchema4 = CommonStyleSchema4.extend({
8917
9293
  fontWeight: external_exports.number().int().min(100).max(900).optional(),
8918
9294
  color: ThemedColorSchema4.optional(),
8919
9295
  align: external_exports.enum(["left", "center", "right"]).optional(),
9296
+ /** Unitless line-height multiplier (CSS `line-height` without units). */
8920
9297
  lineHeight: external_exports.number().min(0.8).max(3).optional(),
8921
- /** Multiplier (0–1) applied to the resolved background color alpha only; text stays fully opaque unless `opacity` is set. */
8922
- backgroundOpacity: external_exports.number().min(0).max(1).optional()
9298
+ /** Extra spacing between characters as a multiple of `fontSize` (CSS `em`; negative values tighten). */
9299
+ letterSpacing: external_exports.number().min(-0.5).max(1).optional()
8923
9300
  });
8924
9301
  var ImageStyleSchema4 = CommonStyleSchema4.extend({
8925
9302
  fit: external_exports.enum(["cover", "contain", "fill"]).optional(),
@@ -8994,6 +9371,41 @@ var ButtonLayoutBreakpointsSchema4 = external_exports.object({
8994
9371
  xl: ButtonLayoutBreakpointPatchSchema4.optional(),
8995
9372
  "2xl": ButtonLayoutBreakpointPatchSchema4.optional()
8996
9373
  }).partial().optional();
9374
+ var AuthLayoutBreakpointPatchSchema4 = external_exports.object({
9375
+ gap: NonNegativePxSchema4.optional(),
9376
+ align: external_exports.enum(["start", "center", "end", "stretch"]).optional()
9377
+ }).partial();
9378
+ var AuthLayoutBreakpointsSchema4 = external_exports.object({
9379
+ sm: AuthLayoutBreakpointPatchSchema4.optional(),
9380
+ md: AuthLayoutBreakpointPatchSchema4.optional(),
9381
+ lg: AuthLayoutBreakpointPatchSchema4.optional(),
9382
+ xl: AuthLayoutBreakpointPatchSchema4.optional(),
9383
+ "2xl": AuthLayoutBreakpointPatchSchema4.optional()
9384
+ }).partial().optional();
9385
+ var ChoiceLayoutBreakpointPatchSchema4 = external_exports.object({
9386
+ direction: external_exports.enum(["vertical", "horizontal"]).optional(),
9387
+ gap: NonNegativePxSchema4.optional(),
9388
+ columns: external_exports.number().int().min(1).max(6).optional()
9389
+ }).partial();
9390
+ var ChoiceLayoutBreakpointsSchema4 = external_exports.object({
9391
+ sm: ChoiceLayoutBreakpointPatchSchema4.optional(),
9392
+ md: ChoiceLayoutBreakpointPatchSchema4.optional(),
9393
+ lg: ChoiceLayoutBreakpointPatchSchema4.optional(),
9394
+ xl: ChoiceLayoutBreakpointPatchSchema4.optional(),
9395
+ "2xl": ChoiceLayoutBreakpointPatchSchema4.optional()
9396
+ }).partial().optional();
9397
+ var CarouselLayoutBreakpointPatchSchema4 = external_exports.object({
9398
+ pageAlignment: external_exports.enum(["top", "center", "bottom"]).optional(),
9399
+ pageSpacing: NonNegativePxSchema4.optional(),
9400
+ pagePeek: NonNegativePxSchema4.optional()
9401
+ }).partial();
9402
+ var CarouselLayoutBreakpointsSchema4 = external_exports.object({
9403
+ sm: CarouselLayoutBreakpointPatchSchema4.optional(),
9404
+ md: CarouselLayoutBreakpointPatchSchema4.optional(),
9405
+ lg: CarouselLayoutBreakpointPatchSchema4.optional(),
9406
+ xl: CarouselLayoutBreakpointPatchSchema4.optional(),
9407
+ "2xl": CarouselLayoutBreakpointPatchSchema4.optional()
9408
+ }).partial().optional();
8997
9409
  var DecisionNodeJumpIdSchema4 = external_exports.string().min(1).max(64).regex(/^dec_[a-z0-9_]+$/i);
8998
9410
  var ExternalSurfaceJumpIdSchema4 = external_exports.string().min(1).max(64).regex(/^surf_[a-z0-9_]+$/i);
8999
9411
  var FlowGraphNodeJumpTargetSchema4 = ScreenIdSchema4.or(DecisionNodeJumpIdSchema4).or(
@@ -9059,7 +9471,7 @@ var ButtonActionSchema4 = external_exports.discriminatedUnion("kind", [
9059
9471
  }),
9060
9472
  external_exports.object({ kind: external_exports.literal("request_app_review") })
9061
9473
  ]);
9062
- var TEXT_INPUT_TYPES4 = ["plain", "email", "phone", "url", "multiline"];
9474
+ var TEXT_INPUT_TYPES4 = ["plain", "email", "phone", "url", "number", "multiline"];
9063
9475
  var TextInputTypeSchema4 = external_exports.enum(TEXT_INPUT_TYPES4);
9064
9476
  var COUNTER_DISPLAY_KINDS4 = ["number", "time"];
9065
9477
  var COUNTER_TIME_FORMATS4 = ["mm_ss", "hh_mm_ss", "dd_hh_mm_ss"];
@@ -9124,7 +9536,8 @@ var ProgressLayerSchema4 = external_exports.object({
9124
9536
  kind: external_exports.literal("progress"),
9125
9537
  trackColor: ThemedColorSchema4.optional(),
9126
9538
  fillColor: ThemedColorSchema4.optional(),
9127
- style: CommonStyleSchema4.optional()
9539
+ style: CommonStyleSchema4.optional(),
9540
+ styleBreakpoints: CommonStyleBreakpointsSchema4
9128
9541
  });
9129
9542
  var LoaderOnCompleteSchema4 = external_exports.discriminatedUnion("mode", [
9130
9543
  external_exports.object({ mode: external_exports.literal("none") }),
@@ -9144,7 +9557,8 @@ var LoaderLayerSchema4 = external_exports.object({
9144
9557
  fillColor: ThemedColorSchema4.optional(),
9145
9558
  /** Horizontal alignment of the bar or ring within the layer box (default start). */
9146
9559
  align: external_exports.enum(["start", "center", "end"]).optional(),
9147
- style: CommonStyleSchema4.optional()
9560
+ style: CommonStyleSchema4.optional(),
9561
+ styleBreakpoints: CommonStyleBreakpointsSchema4
9148
9562
  }).superRefine((data, ctx) => {
9149
9563
  if (data.variant !== "circular") return;
9150
9564
  const w = data.style?.width;
@@ -9181,27 +9595,39 @@ var CheckboxLayerSchema4 = external_exports.object({
9181
9595
  styleBreakpoints: CommonStyleBreakpointsSchema4
9182
9596
  });
9183
9597
  var lazyLayer24 = () => layerSchemaStore4.schema;
9184
- var StackLayerSchema4 = external_exports.object({
9185
- ...baseLayerShape4,
9186
- kind: external_exports.literal("stack"),
9187
- style: CommonStyleSchema4.optional(),
9188
- styleBreakpoints: CommonStyleBreakpointsSchema4,
9189
- stackLayoutBreakpoints: StackLayoutBreakpointsSchema4,
9190
- selectedStyle: CommonStyleSchema4.optional(),
9191
- direction: external_exports.enum(["vertical", "horizontal"]),
9192
- gap: external_exports.number().int().min(0).optional(),
9193
- align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
9194
- justify: external_exports.enum(["start", "center", "end"]).optional(),
9195
- distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
9196
- wrap: external_exports.boolean().optional(),
9197
- children: external_exports.lazy(() => external_exports.array(lazyLayer24()))
9198
- });
9598
+ var migrateStackJustifyForParse4 = (raw) => {
9599
+ if (!raw || typeof raw !== "object") return raw;
9600
+ const o = { ...raw };
9601
+ if (o.justify != null && o.distribution == null) o.distribution = o.justify;
9602
+ delete o.justify;
9603
+ return o;
9604
+ };
9605
+ var StackLayerSchema4 = external_exports.preprocess(
9606
+ migrateStackJustifyForParse4,
9607
+ external_exports.object({
9608
+ ...baseLayerShape4,
9609
+ kind: external_exports.literal("stack"),
9610
+ style: CommonStyleSchema4.optional(),
9611
+ styleBreakpoints: CommonStyleBreakpointsSchema4,
9612
+ stackLayoutBreakpoints: StackLayoutBreakpointsSchema4,
9613
+ selectedStyle: CommonStyleSchema4.optional(),
9614
+ selectedStyleBreakpoints: CommonStyleBreakpointsSchema4,
9615
+ direction: external_exports.enum(["vertical", "horizontal"]),
9616
+ gap: external_exports.number().int().min(0).optional(),
9617
+ align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
9618
+ distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
9619
+ wrap: external_exports.boolean().optional(),
9620
+ children: external_exports.lazy(() => external_exports.array(lazyLayer24()))
9621
+ })
9622
+ );
9199
9623
  var TextLayerSchema4 = external_exports.object({
9200
9624
  ...baseLayerShape4,
9201
9625
  kind: external_exports.literal("text"),
9202
9626
  text: LocalizedTextSchema5,
9203
9627
  style: TextStyleSchema4.optional(),
9204
- styleBreakpoints: TextStyleBreakpointsSchema4
9628
+ styleBreakpoints: TextStyleBreakpointsSchema4,
9629
+ /** Merged on top of resolved `style` when this layer is inside a selected choice option. */
9630
+ selectedStyle: TextStyleSchema4.optional()
9205
9631
  });
9206
9632
  var migrateLegacyHyperlinkForParse4 = (raw) => {
9207
9633
  if (!raw || typeof raw !== "object") return raw;
@@ -9240,7 +9666,8 @@ var HyperlinkLayerSchemaInner4 = external_exports.object({
9240
9666
  distribution: external_exports.enum(["start", "center", "end", "between", "around"]).optional(),
9241
9667
  wrap: external_exports.boolean().optional(),
9242
9668
  style: CommonStyleSchema4.optional(),
9243
- styleBreakpoints: CommonStyleBreakpointsSchema4
9669
+ styleBreakpoints: CommonStyleBreakpointsSchema4,
9670
+ hyperlinkLayoutBreakpoints: StackLayoutBreakpointsSchema4
9244
9671
  }).superRefine((data, ctx) => {
9245
9672
  const p = parseHyperlinkHref4(data.href.trim());
9246
9673
  if (!p.ok) {
@@ -9261,7 +9688,8 @@ var ImageLayerSchema4 = external_exports.object({
9261
9688
  media: MediaReferenceSchema4.optional(),
9262
9689
  alt: external_exports.string().max(280).optional(),
9263
9690
  style: ImageStyleSchema4.optional(),
9264
- styleBreakpoints: ImageStyleBreakpointsSchema4
9691
+ styleBreakpoints: ImageStyleBreakpointsSchema4,
9692
+ selectedStyle: ImageStyleSchema4.optional()
9265
9693
  });
9266
9694
  var LottieLayerSchema4 = external_exports.object({
9267
9695
  ...baseLayerShape4,
@@ -9272,7 +9700,8 @@ var LottieLayerSchema4 = external_exports.object({
9272
9700
  triggerLayerId: external_exports.string().min(1).optional(),
9273
9701
  onComplete: LoaderOnCompleteSchema4.optional(),
9274
9702
  style: ImageStyleSchema4.optional(),
9275
- styleBreakpoints: ImageStyleBreakpointsSchema4
9703
+ styleBreakpoints: ImageStyleBreakpointsSchema4,
9704
+ selectedStyle: ImageStyleSchema4.optional()
9276
9705
  });
9277
9706
  var VideoLayerSchema4 = external_exports.object({
9278
9707
  ...baseLayerShape4,
@@ -9284,7 +9713,8 @@ var VideoLayerSchema4 = external_exports.object({
9284
9713
  onComplete: LoaderOnCompleteSchema4.optional(),
9285
9714
  audioEnabled: external_exports.boolean().optional(),
9286
9715
  style: ImageStyleSchema4.optional(),
9287
- styleBreakpoints: ImageStyleBreakpointsSchema4
9716
+ styleBreakpoints: ImageStyleBreakpointsSchema4,
9717
+ selectedStyle: ImageStyleSchema4.optional()
9288
9718
  });
9289
9719
  var IconLayerSchema4 = external_exports.object({
9290
9720
  ...baseLayerShape4,
@@ -9292,7 +9722,8 @@ var IconLayerSchema4 = external_exports.object({
9292
9722
  family: external_exports.enum(ICON_FAMILIES4),
9293
9723
  iconName: external_exports.string().min(1).max(128),
9294
9724
  style: IconStyleSchema4.optional(),
9295
- styleBreakpoints: IconStyleBreakpointsSchema4
9725
+ styleBreakpoints: IconStyleBreakpointsSchema4,
9726
+ selectedStyle: IconStyleSchema4.optional()
9296
9727
  });
9297
9728
  var lazyLayer34 = () => layerSchemaStore4.schema;
9298
9729
  var OAuthProviderPresetLayerSchema4 = external_exports.object({
@@ -9446,6 +9877,7 @@ var OAuthLoginLayerSchemaValidated4 = external_exports.object({
9446
9877
  ),
9447
9878
  gap: external_exports.number().int().min(0).optional(),
9448
9879
  align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
9880
+ authLayoutBreakpoints: AuthLayoutBreakpointsSchema4,
9449
9881
  style: CommonStyleSchema4.optional(),
9450
9882
  styleBreakpoints: CommonStyleBreakpointsSchema4
9451
9883
  });
@@ -9597,6 +10029,7 @@ var EmailPasswordAuthLayerSchemaValidated4 = external_exports.object({
9597
10029
  ),
9598
10030
  gap: external_exports.number().int().min(0).optional(),
9599
10031
  align: external_exports.enum(["start", "center", "end", "stretch"]).optional(),
10032
+ authLayoutBreakpoints: AuthLayoutBreakpointsSchema4,
9600
10033
  style: CommonStyleSchema4.optional(),
9601
10034
  styleBreakpoints: CommonStyleBreakpointsSchema4
9602
10035
  }).superRefine(refineEmailPasswordAuthChildren4);
@@ -9630,7 +10063,8 @@ var SingleChoiceLayerSchema4 = external_exports.object({
9630
10063
  gap: external_exports.number().int().min(0).optional(),
9631
10064
  columns: external_exports.number().int().min(1).max(12).optional(),
9632
10065
  style: CommonStyleSchema4.optional(),
9633
- styleBreakpoints: CommonStyleBreakpointsSchema4
10066
+ styleBreakpoints: CommonStyleBreakpointsSchema4,
10067
+ choiceLayoutBreakpoints: ChoiceLayoutBreakpointsSchema4
9634
10068
  });
9635
10069
  var MultipleChoiceLayerSchema4 = external_exports.object({
9636
10070
  ...baseLayerShape4,
@@ -9647,8 +10081,19 @@ var MultipleChoiceLayerSchema4 = external_exports.object({
9647
10081
  gap: external_exports.number().int().min(0).optional(),
9648
10082
  columns: external_exports.number().int().min(1).max(12).optional(),
9649
10083
  style: CommonStyleSchema4.optional(),
9650
- styleBreakpoints: CommonStyleBreakpointsSchema4
10084
+ styleBreakpoints: CommonStyleBreakpointsSchema4,
10085
+ choiceLayoutBreakpoints: ChoiceLayoutBreakpointsSchema4
9651
10086
  });
10087
+ var TextInputFieldStyleSchema4 = external_exports.object({
10088
+ fontFamily: external_exports.string().min(1).max(128).optional(),
10089
+ fontSize: external_exports.number().int().min(8).max(96).optional(),
10090
+ fontWeight: external_exports.number().int().min(100).max(900).optional(),
10091
+ color: ThemedColorSchema4.optional(),
10092
+ align: external_exports.enum(["left", "center", "right"]).optional(),
10093
+ lineHeight: external_exports.number().min(0.8).max(3).optional(),
10094
+ letterSpacing: external_exports.number().min(-0.5).max(1).optional(),
10095
+ opacity: external_exports.number().min(0).max(1).optional()
10096
+ }).partial();
9652
10097
  var TextInputLayerSchema4 = external_exports.object({
9653
10098
  ...baseLayerShape4,
9654
10099
  kind: external_exports.literal("text_input"),
@@ -9660,7 +10105,10 @@ var TextInputLayerSchema4 = external_exports.object({
9660
10105
  maxLength: external_exports.number().int().positive().max(2e3).optional(),
9661
10106
  classification: FieldClassificationSchema5,
9662
10107
  children: external_exports.lazy(() => external_exports.array(lazyLayer54())).optional(),
9663
- style: CommonStyleSchema4.optional()
10108
+ /** Typography for the native input's typed text. */
10109
+ fieldStyle: TextInputFieldStyleSchema4.optional(),
10110
+ style: CommonStyleSchema4.optional(),
10111
+ styleBreakpoints: CommonStyleBreakpointsSchema4
9664
10112
  });
9665
10113
  var ScaleInputLabelStyleSchema4 = external_exports.object({
9666
10114
  fontFamily: external_exports.string().min(1).max(128).optional(),
@@ -9669,6 +10117,7 @@ var ScaleInputLabelStyleSchema4 = external_exports.object({
9669
10117
  color: ThemedColorSchema4.optional(),
9670
10118
  align: external_exports.enum(["left", "center", "right"]).optional(),
9671
10119
  lineHeight: external_exports.number().min(0.8).max(3).optional(),
10120
+ letterSpacing: external_exports.number().min(-0.5).max(1).optional(),
9672
10121
  opacity: external_exports.number().min(0).max(1).optional()
9673
10122
  }).partial();
9674
10123
  var ScaleInputLayerSchema4 = external_exports.object({
@@ -9691,7 +10140,40 @@ var ScaleInputLayerSchema4 = external_exports.object({
9691
10140
  thumbSize: external_exports.number().int().min(8).max(48).optional(),
9692
10141
  thumbColor: ThemedColorSchema4.optional(),
9693
10142
  children: external_exports.lazy(() => external_exports.array(lazyLayer54())).optional(),
9694
- style: CommonStyleSchema4.optional()
10143
+ style: CommonStyleSchema4.optional(),
10144
+ styleBreakpoints: CommonStyleBreakpointsSchema4
10145
+ });
10146
+ var WheelPickerOptionSchema4 = external_exports.object({
10147
+ optionId: external_exports.string().min(1).max(64),
10148
+ label: LocalizedTextSchema5
10149
+ });
10150
+ var WheelPickerItemStyleSchema4 = external_exports.object({
10151
+ fontFamily: external_exports.string().min(1).max(128).optional(),
10152
+ fontSize: external_exports.number().int().min(8).max(96).optional(),
10153
+ fontWeight: external_exports.number().int().min(100).max(900).optional(),
10154
+ color: ThemedColorSchema4.optional(),
10155
+ opacity: external_exports.number().min(0).max(1).optional()
10156
+ }).partial();
10157
+ var WheelPickerLayerSchema4 = external_exports.object({
10158
+ ...baseLayerShape4,
10159
+ kind: external_exports.literal("wheel_picker"),
10160
+ fieldKey: FieldKeySchema5,
10161
+ mode: external_exports.enum(["options", "date"]).optional(),
10162
+ options: external_exports.array(WheelPickerOptionSchema4).min(2).optional(),
10163
+ defaultOptionId: external_exports.string().optional(),
10164
+ datePart: external_exports.enum(["year", "month", "day"]).optional(),
10165
+ minYear: external_exports.number().int().min(1e3).max(9999).optional(),
10166
+ maxYear: external_exports.number().int().min(1e3).max(9999).optional(),
10167
+ defaultValue: external_exports.string().optional(),
10168
+ placeholder: LocalizedTextSchema5.optional(),
10169
+ itemHeight: external_exports.number().int().min(28).max(72).optional(),
10170
+ visibleItemCount: external_exports.number().int().min(3).max(9).optional(),
10171
+ selectionBackgroundColor: ThemedColorSchema4.optional(),
10172
+ itemStyle: WheelPickerItemStyleSchema4.optional(),
10173
+ selectedItemStyle: WheelPickerItemStyleSchema4.optional(),
10174
+ children: external_exports.lazy(() => external_exports.array(lazyLayer54())).optional(),
10175
+ style: CommonStyleSchema4.optional(),
10176
+ styleBreakpoints: CommonStyleBreakpointsSchema4
9695
10177
  });
9696
10178
  var CarouselIndicatorsStyleSchema4 = external_exports.object({
9697
10179
  width: external_exports.number().int().min(1).max(64).optional(),
@@ -9727,7 +10209,8 @@ var CarouselLayerSchema4 = external_exports.object({
9727
10209
  autoAdvanceMs: external_exports.number().int().min(500).max(6e4).optional(),
9728
10210
  pageControl: CarouselPageControlSchema4.optional(),
9729
10211
  style: CommonStyleSchema4.optional(),
9730
- styleBreakpoints: CommonStyleBreakpointsSchema4
10212
+ styleBreakpoints: CommonStyleBreakpointsSchema4,
10213
+ carouselLayoutBreakpoints: CarouselLayoutBreakpointsSchema4
9731
10214
  });
9732
10215
  layerSchemaStore4.schema = external_exports.lazy(
9733
10216
  () => external_exports.union([
@@ -9748,6 +10231,7 @@ layerSchemaStore4.schema = external_exports.lazy(
9748
10231
  MultipleChoiceLayerSchema4,
9749
10232
  TextInputLayerSchema4,
9750
10233
  ScaleInputLayerSchema4,
10234
+ WheelPickerLayerSchema4,
9751
10235
  OAuthLoginLayerSchema4,
9752
10236
  OAuthProviderPresetLayerSchema4,
9753
10237
  OAuthProviderCustomLayerSchema4,
@@ -10047,7 +10531,7 @@ var walkLayers = (root, fn) => {
10047
10531
  else if (l.kind === "hyperlink") l.children.forEach((c) => visit(c, depth + 1));
10048
10532
  else if (l.kind === "single_choice" || l.kind === "multiple_choice") {
10049
10533
  l.children.forEach((c) => visit(c, depth + 1));
10050
- } else if (l.kind === "text_input" || l.kind === "scale_input") {
10534
+ } else if (l.kind === "text_input" || l.kind === "scale_input" || l.kind === "wheel_picker") {
10051
10535
  l.children?.forEach((c) => visit(c, depth + 1));
10052
10536
  } else if (l.kind === "oauth_login") {
10053
10537
  l.children.forEach((c) => visit(c, depth + 1));
@@ -10381,7 +10865,7 @@ var collectFlowBuilderIssues = (manifest) => {
10381
10865
  }
10382
10866
  if (isInputLayer(l)) {
10383
10867
  inputCount += 1;
10384
- if (l.kind === "multiple_choice" || l.kind === "text_input" || l.kind === "scale_input") {
10868
+ if (l.kind === "multiple_choice" || l.kind === "text_input" || l.kind === "scale_input" || l.kind === "wheel_picker") {
10385
10869
  needsManualSubmit = true;
10386
10870
  }
10387
10871
  const key = l.fieldKey;
@@ -10571,7 +11055,7 @@ var collectFlowBuilderIssues = (manifest) => {
10571
11055
  }
10572
11056
  if (needsManualSubmit && !hasContinueButton) {
10573
11057
  issues.push(
10574
- `Screen "${screen.name || screen.id}" has a multiple_choice, text_input, or scale_input but no Button with action "continue". Add a Continue button so users can submit.`
11058
+ `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
11059
  );
10576
11060
  }
10577
11061
  }
@@ -10794,6 +11278,28 @@ var scanLayer = (issues, screen, layer, branding) => {
10794
11278
  checkThemed(issues, stepId, id, "fillColor", layer.fillColor, false, branding);
10795
11279
  checkThemed(issues, stepId, id, "thumbColor", layer.thumbColor, false, branding);
10796
11280
  return;
11281
+ case "wheel_picker":
11282
+ walkCommonBreakpoints(issues, stepId, id, layer.style, void 0, branding);
11283
+ checkThemed(
11284
+ issues,
11285
+ stepId,
11286
+ id,
11287
+ "selectionBackgroundColor",
11288
+ layer.selectionBackgroundColor,
11289
+ false,
11290
+ branding
11291
+ );
11292
+ checkThemed(issues, stepId, id, "itemStyle.color", layer.itemStyle?.color, false, branding);
11293
+ checkThemed(
11294
+ issues,
11295
+ stepId,
11296
+ id,
11297
+ "selectedItemStyle.color",
11298
+ layer.selectedItemStyle?.color,
11299
+ false,
11300
+ branding
11301
+ );
11302
+ return;
10797
11303
  case "oauth_login":
10798
11304
  walkCommonBreakpoints(issues, stepId, id, layer.style, layer.styleBreakpoints, branding);
10799
11305
  return;
@@ -11202,7 +11708,7 @@ var defaultLayoutStyleForKind = (kind) => {
11202
11708
  case "video":
11203
11709
  return LAYOUT_FULL_FIXED_H160;
11204
11710
  case "icon":
11205
- return LAYOUT_HUG_HUG;
11711
+ return { width: 24, height: 24 };
11206
11712
  case "button":
11207
11713
  case "back_button":
11208
11714
  case "oauth_provider":
@@ -11210,6 +11716,7 @@ var defaultLayoutStyleForKind = (kind) => {
11210
11716
  return LAYOUT_FULL_HUG;
11211
11717
  case "text_input":
11212
11718
  case "scale_input":
11719
+ case "wheel_picker":
11213
11720
  case "email_password_auth":
11214
11721
  case "email_password_field":
11215
11722
  case "oauth_login":
@@ -11424,7 +11931,7 @@ var walkLayers2 = (root, fn) => {
11424
11931
  else if (l.kind === "hyperlink") l.children.forEach((c) => visit(c, depth + 1));
11425
11932
  else if (l.kind === "single_choice" || l.kind === "multiple_choice") {
11426
11933
  l.children.forEach((c) => visit(c, depth + 1));
11427
- } else if (l.kind === "text_input" || l.kind === "scale_input") {
11934
+ } else if (l.kind === "text_input" || l.kind === "scale_input" || l.kind === "wheel_picker") {
11428
11935
  l.children?.forEach((c) => visit(c, depth + 1));
11429
11936
  } else if (l.kind === "oauth_login") {
11430
11937
  l.children.forEach((c) => visit(c, depth + 1));
@@ -13375,7 +13882,7 @@ var analyzeLayout = (files) => {
13375
13882
  confidence: "high",
13376
13883
  file: file.path,
13377
13884
  evidence: aligns.join("; "),
13378
- recommendation: 'Map RN/Tailwind centering to parent `stack.align: "center"` and `stack.justify: "center"`. Center hero images inside vertical body stacks. Use `style.align: "center"` on text layers.'
13885
+ 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
13886
  });
13380
13887
  }
13381
13888
  if (CENTER_CLASS_RE.test(file.content) && /kind:\s*['"]image['"]|Image\b/.test(file.content)) {
@@ -14032,7 +14539,7 @@ var LayerIntentSchema = external_exports.lazy(
14032
14539
  kind: external_exports.literal("text_input"),
14033
14540
  fieldKey: external_exports.string().min(1),
14034
14541
  placeholder: LocalizedOrStringSchema.optional(),
14035
- inputType: external_exports.enum(["plain", "email", "phone", "url", "multiline"]).optional(),
14542
+ inputType: external_exports.enum(["plain", "email", "phone", "url", "number", "multiline"]).optional(),
14036
14543
  required: external_exports.boolean().optional(),
14037
14544
  minLength: external_exports.number().int().min(0).max(2e3).optional(),
14038
14545
  maxLength: external_exports.number().int().positive().max(2e3).optional(),
@@ -14444,8 +14951,8 @@ var buildStack = (intent, ctx) => {
14444
14951
  };
14445
14952
  if (intent.gap !== void 0) out.gap = intent.gap;
14446
14953
  if (intent.align) out.align = intent.align;
14447
- if (intent.justify) out.justify = intent.justify;
14448
- if (intent.distribution) out.distribution = intent.distribution;
14954
+ const distribution = intent.distribution ?? intent.justify;
14955
+ if (distribution) out.distribution = distribution;
14449
14956
  if (intent.wrap !== void 0) out.wrap = intent.wrap;
14450
14957
  if (intent.selectedStyle && Object.keys(intent.selectedStyle).length > 0) {
14451
14958
  out.selectedStyle = intent.selectedStyle;
@@ -14516,7 +15023,8 @@ var buildCarousel = (intent, ctx) => {
14516
15023
  };
14517
15024
  if (slide.gap !== void 0) out2.gap = slide.gap;
14518
15025
  if (slide.align) out2.align = slide.align;
14519
- if (slide.justify) out2.justify = slide.justify;
15026
+ const distribution = slide.distribution ?? slide.justify;
15027
+ if (distribution) out2.distribution = distribution;
14520
15028
  return withStyle(out2, slide.style);
14521
15029
  });
14522
15030
  const out = { id, kind: "carousel", slides };