@rokt/dcui-orchestrator 1.2.1-rc.2 → 1.2.1-rc.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/index.cjs +37 -37
  2. package/dist/index.js +42 -42
  3. package/dist/libraries/dcui-components/src/components/data-mapper/data-mapper.d.ts +4 -0
  4. package/dist/libraries/dcui-components/src/contexts/data-mapper-context.d.ts +4 -0
  5. package/dist/libraries/dcui-components/src/contexts/index.d.ts +1 -0
  6. package/dist/libraries/dcui-components/src/contexts/lead-capture-offer-context.d.ts +5 -0
  7. package/dist/libraries/dcui-components/src/failure-codes.d.ts +1 -0
  8. package/dist/libraries/domain/src/behaviors/offer-engagement.d.ts +11 -0
  9. package/dist/libraries/domain/src/behaviors/send-partner.d.ts +14 -2
  10. package/dist/libraries/domain/src/behaviors/trigger-action.d.ts +3 -3
  11. package/dist/libraries/domain/src/models/child-layout-response.d.ts +4 -0
  12. package/dist/libraries/domain/src/models/index.d.ts +1 -0
  13. package/dist/libraries/domain/src/models/layout/layout-offer.d.ts +2 -0
  14. package/dist/libraries/domain/src/models/partner-event.d.ts +1 -1
  15. package/dist/libraries/domain/src/models/plugin/plugin-offer.d.ts +2 -0
  16. package/dist/libraries/layout-renderer-utils/src/actions/attributes.d.ts +7 -0
  17. package/dist/libraries/layout-renderer-utils/src/actions/index.d.ts +4 -1
  18. package/dist/libraries/layout-renderer-utils/src/models/state/attributes.d.ts +2 -0
  19. package/dist/libraries/layout-renderer-utils/src/models/state/index.d.ts +3 -0
  20. package/dist/libraries/layout-renderer-utils/src/reducers/attributes/index.d.ts +1 -0
  21. package/dist/libraries/layout-renderer-utils/src/reducers/attributes/reducer.d.ts +4 -0
  22. package/dist/libraries/layout-renderer-utils/src/reducers/index.d.ts +3 -0
  23. package/dist/libraries/layout-renderer-utils/src/sagas/plugin/channels.d.ts +3 -3
  24. package/dist/libraries/layout-renderer-utils/src/sagas/plugin/display.d.ts +3 -0
  25. package/dist/libraries/layout-renderer-utils/src/sagas/plugin/sagas.d.ts +5 -2
  26. package/dist/libraries/module-utils/src/sagas/child-layouts/sagas.d.ts +2 -0
  27. package/dist/libraries/orchestrator/src/actions/index.d.ts +1 -0
  28. package/dist/libraries/orchestrator/src/reducers/index.d.ts +1 -0
  29. package/dist/libraries/plugin-utils/src/plugin-service/attributes.d.ts +7 -0
  30. package/dist/libraries/plugin-utils/src/plugin-service/index.d.ts +3 -1
  31. package/dist/modules/instant-purchase/src/actions/catalog-selection.d.ts +8 -1
  32. package/dist/modules/instant-purchase/src/actions/instant-purchase.d.ts +1 -0
  33. package/dist/modules/instant-purchase/src/components/catalog-selectors-stacked/catalog-selectors-stacked.d.ts +30 -0
  34. package/dist/modules/instant-purchase/src/models/state/instant-purchase.d.ts +1 -0
  35. package/dist/modules/instant-purchase/src/reducers/catalog-selection/reducer.d.ts +2 -0
  36. package/dist/modules/instant-purchase/src/reducers/index.d.ts +3 -0
  37. package/dist/modules/instant-purchase/src/sagas/tax-and-shipping/sagas.d.ts +5 -30
  38. package/dist/modules/instant-purchase/src/selectors/tax-and-shipping/selectors.d.ts +3 -0
  39. package/dist/modules/instant-purchase/src/utils/parse-non-negative-monetary-amount.d.ts +1 -0
  40. package/dist/modules/instant-purchase/src/utils/requires-tax-and-shipping-initialization.d.ts +2 -0
  41. package/dist/modules/standard-marketing/src/sagas/offer-engagement/sagas.d.ts +2 -1
  42. package/node_modules/@rokt/dcui-layout-schema/dist/schema.d.ts +490 -18
  43. package/node_modules/@rokt/dcui-layout-schema/dist/tsconfig.tsbuildinfo +1 -1
  44. package/node_modules/@rokt/dcui-layout-schema/package.json +1 -1
  45. package/node_modules/@rokt/dcui-layout-schema/v1.21/index.d.ts +7105 -0
  46. package/node_modules/@rokt/dcui-layout-schema/v1.21/index.js +4 -0
  47. package/node_modules/@rokt/dcui-layout-schema/v1.22/index.d.ts +7121 -0
  48. package/node_modules/@rokt/dcui-layout-schema/v1.22/index.js +4 -0
  49. package/node_modules/@rokt/dcui-layout-schema/v1.23/index.d.ts +7126 -0
  50. package/node_modules/@rokt/dcui-layout-schema/v1.23/index.js +4 -0
  51. package/node_modules/@rokt/dcui-layout-schema/v1.24/index.d.ts +7492 -0
  52. package/node_modules/@rokt/dcui-layout-schema/v1.24/index.js +4 -0
  53. package/node_modules/@rokt/dcui-layout-schema/v1.25/index.d.ts +7510 -0
  54. package/node_modules/@rokt/dcui-layout-schema/v1.25/index.js +4 -0
  55. package/node_modules/@rokt/dcui-layout-schema/v1.26/index.d.ts +7516 -0
  56. package/node_modules/@rokt/dcui-layout-schema/v1.26/index.js +4 -0
  57. package/package.json +2 -2
@@ -1047,8 +1047,18 @@ export interface CatalogDevicePayButtonStyles {
1047
1047
  flexChild?: null | FlexChildStylingProperties;
1048
1048
  spacing?: null | SpacingStylingProperties;
1049
1049
  }
1050
+ export interface CatalogDevicePayButtonErrorTextStyles {
1051
+ container?: null | ContainerStylingProperties;
1052
+ background?: null | BackgroundStylingProperties;
1053
+ border?: null | BorderStylingProperties;
1054
+ dimension?: null | DimensionStylingProperties;
1055
+ flexChild?: null | FlexChildStylingProperties;
1056
+ spacing?: null | SpacingStylingProperties;
1057
+ text?: null | TextStylingProperties;
1058
+ }
1050
1059
  export interface CatalogDevicePayButtonElements {
1051
1060
  own: BasicStateStylingBlock<CatalogDevicePayButtonStyles>[];
1061
+ errorText?: null | StatelessStylingBlock<CatalogDevicePayButtonErrorTextStyles>[];
1052
1062
  }
1053
1063
  export type PaymentProvider = "ApplePay" | "GooglePay" | "Stripe" | "Afterpay" | "Paypal" | "Card";
1054
1064
  export interface ValidationTriggerConfig {
@@ -1058,11 +1068,22 @@ export interface CatalogDevicePayButtonModel<Children, Predicates> {
1058
1068
  a11yLabel?: null | string;
1059
1069
  styles?: null | LayoutStyle<CatalogDevicePayButtonElements, ConditionalStyleTransition<CatalogDevicePayButtonTransitions, Predicates>>;
1060
1070
  provider: PaymentProvider;
1071
+ /**
1072
+ * Enables listener-only mode and associates this component with child-layout
1073
+ * payment requests that use the same key.
1074
+ */
1075
+ requestKey?: null | string;
1061
1076
  validatorTriggerConfig?: null | ValidationTriggerConfig;
1077
+ /**
1078
+ * Optional user-facing message rendered for a button-level payment error.
1079
+ * When omitted or empty, the consuming SDK uses its built-in fallback error content.
1080
+ */
1081
+ errorMessage?: null | string;
1062
1082
  children: Children[];
1063
1083
  }
1064
1084
  export interface CatalogDevicePayButtonTransitions {
1065
1085
  own?: null | CatalogDevicePayButtonStyles;
1086
+ errorText?: null | CatalogDevicePayButtonErrorTextStyles;
1066
1087
  }
1067
1088
  /**
1068
1089
  * A styling block for form elements that extends interactive states with
@@ -1218,6 +1239,14 @@ export interface CatalogDropdownModel<Predicates> {
1218
1239
  * (e.g., "Out of stock").
1219
1240
  */
1220
1241
  unavailableValue?: null | string;
1242
+ /**
1243
+ * The icon rendered in the head, selected by name from the icon set of the
1244
+ * font applied to the `icon` element (via its `text.fontFamily`) — the same
1245
+ * mechanism as `StaticIcon`'s `name`. Allows a partner icon set to supply
1246
+ * the expand/collapse affordance (e.g., "StockXChevronDown"). When omitted,
1247
+ * the platform renders its built-in chevron.
1248
+ */
1249
+ iconName?: null | string;
1221
1250
  /**
1222
1251
  * Configuration for form-level validation of this dropdown field, including
1223
1252
  * the field key and validation rules with their error messages.
@@ -1761,17 +1790,27 @@ export interface CatalogResponseButtonElements {
1761
1790
  */
1762
1791
  export interface CatalogResponseButtonModel<Children, Predicates> {
1763
1792
  /** Accessibility label read by screen readers to describe the button's purpose. */
1764
- a11y_label?: null | string;
1793
+ a11yLabel?: null | string;
1765
1794
  /**
1766
1795
  * Unique key identifying which response this button represents in the catalog flow.
1767
1796
  * Sent to the server when the button is tapped to indicate the user's selection.
1768
1797
  */
1769
- response_key?: null | string;
1798
+ responseKey?: null | string;
1799
+ /**
1800
+ * Enables listener-only mode and associates this button with child-layout
1801
+ * purchase requests that use the same key.
1802
+ */
1803
+ requestKey?: null | string;
1770
1804
  /**
1771
1805
  * Responsive and conditional styling for this button, including breakpoint-specific
1772
1806
  * element styles and animated transitions.
1773
1807
  */
1774
1808
  styles?: null | LayoutStyle<CatalogResponseButtonElements, ConditionalStyleTransition<CatalogResponseButtonTransitions, Predicates>>;
1809
+ /**
1810
+ * Optional validation trigger that declares which form-field keys must pass validation
1811
+ * before this button's response is submitted. When omitted, no pre-submit validation runs.
1812
+ */
1813
+ validatorTriggerConfig?: null | ValidationTriggerConfig;
1775
1814
  /**
1776
1815
  * Child nodes rendered inside this button. Typically contains text labels or icons
1777
1816
  * describing the action (e.g., "Add to Cart", product name).
@@ -1980,6 +2019,37 @@ export interface CatalogThumbnailGalleryTransitions {
1980
2019
  /** Transition properties for thumbnail images. */
1981
2020
  thumbnail?: null | CatalogThumbnailGalleryStyles;
1982
2021
  }
2022
+ /**
2023
+ * The supported creative response in a child layout. The originating offer's
2024
+ * positive response must use the URL response flow.
2025
+ */
2026
+ export type ChildCreativeResponseKey = "positive";
2027
+ /**
2028
+ * Controls how links are opened when clicked. MUST be one of the valid
2029
+ * kebab-case string values. Determines the navigation behavior when a
2030
+ * user activates a link action.
2031
+ */
2032
+ export type LinkOpenTarget =
2033
+ /**
2034
+ * Opens the link within the current context (in-app webview or same
2035
+ * window). Use for links that should keep the user in the application.
2036
+ */
2037
+ "internally"
2038
+ /**
2039
+ * Opens the link in the system browser. Use for external URLs that
2040
+ * should leave the application context.
2041
+ */
2042
+ | "externally";
2043
+ /**
2044
+ * Responds to the originating offer, then closes the child and progresses the
2045
+ * parent using its normal positive response flow. Other response types are not
2046
+ * supported in child layouts.
2047
+ */
2048
+ export interface ChildCreativeResponseActionModel {
2049
+ responseKey: ChildCreativeResponseKey;
2050
+ /** If omitted, uses the originating offer's default link-opening behavior. */
2051
+ openLinks?: null | LinkOpenTarget;
2052
+ }
1983
2053
  /**
1984
2054
  * The top-level schema structure for a child layout (layout variant). Similar to
1985
2055
  * RootSchemaModel but includes predicates for conditional display.
@@ -1998,6 +2068,13 @@ export interface ChildRootSchemaModel<Layout, Display, Settings, Predicates> {
1998
2068
  display?: null | Display;
1999
2069
  /** Conditions that determine when this child layout is displayed. */
2000
2070
  predicates: Predicates[];
2071
+ /**
2072
+ * Whether a user dismissal of this child implicitly dismisses its originating
2073
+ * offer and progresses the parent. Omitted or false preserves close-only
2074
+ * behavior. Positive completion and parent teardown never count as user
2075
+ * dismissal. The parent's existing completion policy still applies.
2076
+ */
2077
+ advanceOnDismiss?: null | boolean;
2001
2078
  }
2002
2079
  /** Model for the Close action. Mirrors CloseButtonModel properties. */
2003
2080
  export interface CloseActionModel {
@@ -2230,22 +2307,6 @@ export interface CreativeCopyPredicate {
2230
2307
  */
2231
2308
  value: string;
2232
2309
  }
2233
- /**
2234
- * Controls how links are opened when clicked. MUST be one of the valid
2235
- * kebab-case string values. Determines the navigation behavior when a
2236
- * user activates a link action.
2237
- */
2238
- export type LinkOpenTarget =
2239
- /**
2240
- * Opens the link within the current context (in-app webview or same
2241
- * window). Use for links that should keep the user in the application.
2242
- */
2243
- "internally"
2244
- /**
2245
- * Opens the link in the system browser. Use for external URLs that
2246
- * should leave the application context.
2247
- */
2248
- | "externally";
2249
2310
  /**
2250
2311
  * Model for the CreativeResponse action. Mirrors CreativeResponseModel
2251
2312
  * properties.
@@ -4910,6 +4971,12 @@ export interface ToggleButtonStateTriggerModel<Children, Predicates> {
4910
4971
  * MUST match the key referenced in When node predicates.
4911
4972
  */
4912
4973
  customStateKey: string;
4974
+ /**
4975
+ * Optional validation trigger that declares which form-field keys must pass validation
4976
+ * before the custom state is toggled. When omitted, no validation runs and the toggle
4977
+ * behaves as it always has.
4978
+ */
4979
+ validatorTriggerConfig?: null | ValidationTriggerConfig;
4913
4980
  }
4914
4981
  /** Transition styles for animating ToggleButtonStateTrigger style changes. */
4915
4982
  export interface ToggleButtonStateTriggerTransitions {
@@ -5436,6 +5503,310 @@ export type CatalogStackedCollectionTemplateNodeChildren = {
5436
5503
  type: "InlineContainer";
5437
5504
  node: InlineContainerModel<LayoutVariantInlineChildren, LayoutVariantWhenPredicate>;
5438
5505
  };
5506
+ /**
5507
+ * Actions supported in a child layout with an originating offer. Close retains
5508
+ * its existing dismissal behavior; the child root's advanceOnDismiss controls
5509
+ * whether a user dismissal also progresses the parent.
5510
+ */
5511
+ export type ChildLayoutAction = {
5512
+ type: "Close";
5513
+ action: CloseActionModel;
5514
+ } | {
5515
+ type: "SetCustomState";
5516
+ action: SetCustomStateActionModel;
5517
+ } | {
5518
+ type: "CreativeResponse";
5519
+ action: ChildCreativeResponseActionModel;
5520
+ };
5521
+ /**
5522
+ * Recursive node types allowed within child-layout containers. Preserves existing
5523
+ * outer-layout controls and adds offer-scoped predicates and device-pay requests.
5524
+ */
5525
+ export type ChildLayoutChildren = {
5526
+ type: "Form";
5527
+ node: FormModel<ChildLayoutChildren, LayoutVariantWhenPredicate>;
5528
+ } | {
5529
+ type: "TextInput";
5530
+ node: TextInputModel<LayoutVariantWhenPredicate>;
5531
+ } | {
5532
+ type: "ActionButton";
5533
+ node: ActionButtonModel<ChildLayoutNonInteractableChildren, ChildLayoutAction, LayoutVariantWhenPredicate>;
5534
+ } | {
5535
+ type: "Row";
5536
+ node: RowModel<ChildLayoutChildren, LayoutVariantWhenPredicate>;
5537
+ } | {
5538
+ type: "FlowRow";
5539
+ node: FlowRowModel<ChildLayoutChildren, LayoutVariantWhenPredicate>;
5540
+ } | {
5541
+ type: "Column";
5542
+ node: ColumnModel<ChildLayoutChildren, LayoutVariantWhenPredicate>;
5543
+ } | {
5544
+ type: "ScrollableColumn";
5545
+ node: ScrollableColumnModel<ScrollableChildLayoutChildren, LayoutVariantWhenPredicate>;
5546
+ } | {
5547
+ type: "ScrollableRow";
5548
+ node: ScrollableRowModel<ScrollableChildLayoutChildren, LayoutVariantWhenPredicate>;
5549
+ } | {
5550
+ type: "ZStack";
5551
+ node: ZStackModel<ChildLayoutChildren, LayoutVariantWhenPredicate>;
5552
+ } | {
5553
+ type: "StaticImage";
5554
+ node: StaticImageModel<LayoutVariantWhenPredicate>;
5555
+ } | {
5556
+ type: "DataImage";
5557
+ node: DataImageModel<LayoutVariantWhenPredicate>;
5558
+ } | {
5559
+ type: "RichText";
5560
+ node: RichTextModel<LayoutVariantWhenPredicate>;
5561
+ } | {
5562
+ type: "BasicText";
5563
+ node: BasicTextModel<LayoutVariantWhenPredicate>;
5564
+ } | {
5565
+ type: "ProgressIndicator";
5566
+ node: ProgressIndicatorModel<LayoutVariantWhenPredicate>;
5567
+ } | {
5568
+ type: "OneByOneDistribution";
5569
+ node: OneByOneDistributionModel<LayoutVariantWhenPredicate>;
5570
+ } | {
5571
+ type: "When";
5572
+ node: WhenModel<ChildLayoutChildren, LayoutVariantWhenPredicate>;
5573
+ } | {
5574
+ type: "StaticLink";
5575
+ node: StaticLinkModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5576
+ } | {
5577
+ type: "CloseButton";
5578
+ node: CloseButtonModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5579
+ } | {
5580
+ type: "MinimizeButton";
5581
+ node: MinimizeButtonModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5582
+ } | {
5583
+ type: "StackedDistribution";
5584
+ node: StackedDistributionModel<LayoutVariantWhenPredicate>;
5585
+ } | {
5586
+ type: "CarouselDistribution";
5587
+ node: CarouselDistributionModel<LayoutVariantWhenPredicate>;
5588
+ } | {
5589
+ type: "ProgressControl";
5590
+ node: ProgressControlModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5591
+ } | {
5592
+ type: "GroupedDistribution";
5593
+ node: GroupedDistributionModel<LayoutVariantWhenPredicate>;
5594
+ } | {
5595
+ type: "DataIcon";
5596
+ node: DataIconModel<LayoutVariantWhenPredicate>;
5597
+ } | {
5598
+ type: "StaticIcon";
5599
+ node: StaticIconModel<LayoutVariantWhenPredicate>;
5600
+ } | {
5601
+ type: "IconGroup";
5602
+ node: IconGroupModel<LayoutVariantWhenPredicate>;
5603
+ } | {
5604
+ type: "SlideStateTrigger";
5605
+ node: SlideStateTriggerModel<LayoutVariantWhenPredicate>;
5606
+ } | {
5607
+ type: "TimerStateTrigger";
5608
+ node: TimerStateTriggerModel;
5609
+ } | {
5610
+ type: "ToggleButtonStateTrigger";
5611
+ node: ToggleButtonStateTriggerModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5612
+ } | {
5613
+ type: "ButtonStateTrigger";
5614
+ node: ButtonStateTriggerModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5615
+ } | {
5616
+ type: "CopyToClipboardButton";
5617
+ node: CopyToClipboardButtonModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5618
+ } | {
5619
+ type: "CatalogDevicePayButton";
5620
+ node: CatalogDevicePayButtonModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5621
+ } | {
5622
+ type: "EscapeHatch";
5623
+ node: EscapeHatchModel;
5624
+ } | {
5625
+ type: "InlineContainer";
5626
+ node: InlineContainerModel<ChildLayoutInlineChildren, LayoutVariantWhenPredicate>;
5627
+ };
5628
+ /**
5629
+ * Inline child-layout nodes. Preserves outer-layout inline controls while carrying
5630
+ * offer-scoped predicates through their non-interactive text children.
5631
+ */
5632
+ export type ChildLayoutInlineChildren = {
5633
+ type: "BasicText";
5634
+ node: InlineBasicTextModel<LayoutVariantWhenPredicate>;
5635
+ } | {
5636
+ type: "StaticLink";
5637
+ node: InlineStaticLinkModel<ChildLayoutNonInteractableInlineChildren, LayoutVariantWhenPredicate>;
5638
+ } | {
5639
+ type: "ToggleButtonStateTrigger";
5640
+ node: InlineToggleButtonStateTriggerModel<ChildLayoutNonInteractableInlineChildren, LayoutVariantWhenPredicate>;
5641
+ } | {
5642
+ type: "ButtonStateTrigger";
5643
+ node: InlineButtonStateTriggerModel<ChildLayoutNonInteractableInlineChildren, LayoutVariantWhenPredicate>;
5644
+ };
5645
+ /**
5646
+ * Non-interactive child-layout nodes. Preserves the outer-layout presentational node
5647
+ * set while carrying offer-scoped predicates through buttons, links, and inline text.
5648
+ */
5649
+ export type ChildLayoutNonInteractableChildren = {
5650
+ type: "Row";
5651
+ node: RowModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5652
+ } | {
5653
+ type: "FlowRow";
5654
+ node: FlowRowModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5655
+ } | {
5656
+ type: "Column";
5657
+ node: ColumnModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5658
+ } | {
5659
+ type: "ZStack";
5660
+ node: ZStackModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5661
+ } | {
5662
+ type: "StaticImage";
5663
+ node: StaticImageModel<LayoutVariantWhenPredicate>;
5664
+ } | {
5665
+ type: "DataImage";
5666
+ node: DataImageModel<LayoutVariantWhenPredicate>;
5667
+ } | {
5668
+ type: "BasicText";
5669
+ node: BasicTextModel<LayoutVariantWhenPredicate>;
5670
+ } | {
5671
+ type: "When";
5672
+ node: WhenModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5673
+ } | {
5674
+ type: "DataIcon";
5675
+ node: DataIconModel<LayoutVariantWhenPredicate>;
5676
+ } | {
5677
+ type: "StaticIcon";
5678
+ node: StaticIconModel<LayoutVariantWhenPredicate>;
5679
+ } | {
5680
+ type: "IconGroup";
5681
+ node: IconGroupModel<LayoutVariantWhenPredicate>;
5682
+ } | {
5683
+ type: "EscapeHatch";
5684
+ node: EscapeHatchModel;
5685
+ } | {
5686
+ type: "InlineContainer";
5687
+ node: InlineContainerModel<ChildLayoutInlineChildren, LayoutVariantWhenPredicate>;
5688
+ };
5689
+ /** Non-interactive inline child-layout nodes. Only permits offer-aware basic text. */
5690
+ export type ChildLayoutNonInteractableInlineChildren = {
5691
+ type: "BasicText";
5692
+ node: InlineBasicTextModel<LayoutVariantWhenPredicate>;
5693
+ };
5694
+ /**
5695
+ * Node types valid within child layouts. Preserves the outer-layout structure while
5696
+ * permitting offer-scoped predicates and device-pay requests only within child layouts.
5697
+ */
5698
+ export type ChildLayoutSchemaModel = {
5699
+ type: "Form";
5700
+ node: FormModel<ChildLayoutChildren, LayoutVariantWhenPredicate>;
5701
+ } | {
5702
+ type: "TextInput";
5703
+ node: TextInputModel<LayoutVariantWhenPredicate>;
5704
+ } | {
5705
+ type: "ActionButton";
5706
+ node: ActionButtonModel<ChildLayoutNonInteractableChildren, ChildLayoutAction, LayoutVariantWhenPredicate>;
5707
+ } | {
5708
+ type: "Row";
5709
+ node: RowModel<ChildLayoutChildren, LayoutVariantWhenPredicate>;
5710
+ } | {
5711
+ type: "FlowRow";
5712
+ node: FlowRowModel<ChildLayoutChildren, LayoutVariantWhenPredicate>;
5713
+ } | {
5714
+ type: "Column";
5715
+ node: ColumnModel<ChildLayoutChildren, LayoutVariantWhenPredicate>;
5716
+ } | {
5717
+ type: "ScrollableColumn";
5718
+ node: ScrollableColumnModel<ScrollableChildLayoutChildren, LayoutVariantWhenPredicate>;
5719
+ } | {
5720
+ type: "ScrollableRow";
5721
+ node: ScrollableRowModel<ScrollableChildLayoutChildren, LayoutVariantWhenPredicate>;
5722
+ } | {
5723
+ type: "ZStack";
5724
+ node: ZStackModel<ChildLayoutChildren, LayoutVariantWhenPredicate>;
5725
+ } | {
5726
+ type: "StaticImage";
5727
+ node: StaticImageModel<LayoutVariantWhenPredicate>;
5728
+ } | {
5729
+ type: "DataImage";
5730
+ node: DataImageModel<LayoutVariantWhenPredicate>;
5731
+ } | {
5732
+ type: "RichText";
5733
+ node: RichTextModel<LayoutVariantWhenPredicate>;
5734
+ } | {
5735
+ type: "BasicText";
5736
+ node: BasicTextModel<LayoutVariantWhenPredicate>;
5737
+ } | {
5738
+ type: "ProgressIndicator";
5739
+ node: ProgressIndicatorModel<LayoutVariantWhenPredicate>;
5740
+ } | {
5741
+ type: "OneByOneDistribution";
5742
+ node: OneByOneDistributionModel<LayoutVariantWhenPredicate>;
5743
+ } | {
5744
+ type: "Overlay";
5745
+ node: OverlayModel<ChildLayoutChildren, LayoutVariantWhenPredicate>;
5746
+ } | {
5747
+ type: "BottomSheet";
5748
+ node: BottomSheetModel<ChildLayoutChildren, LayoutVariantWhenPredicate>;
5749
+ } | {
5750
+ type: "MinimizableBottomSheet";
5751
+ node: MinimizableBottomSheetModel<ChildLayoutChildren, LayoutVariantWhenPredicate>;
5752
+ } | {
5753
+ type: "When";
5754
+ node: WhenModel<ChildLayoutChildren, LayoutVariantWhenPredicate>;
5755
+ } | {
5756
+ type: "StaticLink";
5757
+ node: StaticLinkModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5758
+ } | {
5759
+ type: "CloseButton";
5760
+ node: CloseButtonModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5761
+ } | {
5762
+ type: "MinimizeButton";
5763
+ node: MinimizeButtonModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5764
+ } | {
5765
+ type: "StackedDistribution";
5766
+ node: StackedDistributionModel<LayoutVariantWhenPredicate>;
5767
+ } | {
5768
+ type: "CarouselDistribution";
5769
+ node: CarouselDistributionModel<LayoutVariantWhenPredicate>;
5770
+ } | {
5771
+ type: "ProgressControl";
5772
+ node: ProgressControlModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5773
+ } | {
5774
+ type: "GroupedDistribution";
5775
+ node: GroupedDistributionModel<LayoutVariantWhenPredicate>;
5776
+ } | {
5777
+ type: "DataIcon";
5778
+ node: DataIconModel<LayoutVariantWhenPredicate>;
5779
+ } | {
5780
+ type: "StaticIcon";
5781
+ node: StaticIconModel<LayoutVariantWhenPredicate>;
5782
+ } | {
5783
+ type: "IconGroup";
5784
+ node: IconGroupModel<LayoutVariantWhenPredicate>;
5785
+ } | {
5786
+ type: "SlideStateTrigger";
5787
+ node: SlideStateTriggerModel<LayoutVariantWhenPredicate>;
5788
+ } | {
5789
+ type: "TimerStateTrigger";
5790
+ node: TimerStateTriggerModel;
5791
+ } | {
5792
+ type: "ToggleButtonStateTrigger";
5793
+ node: ToggleButtonStateTriggerModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5794
+ } | {
5795
+ type: "ButtonStateTrigger";
5796
+ node: ButtonStateTriggerModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5797
+ } | {
5798
+ type: "CopyToClipboardButton";
5799
+ node: CopyToClipboardButtonModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5800
+ } | {
5801
+ type: "CatalogDevicePayButton";
5802
+ node: CatalogDevicePayButtonModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
5803
+ } | {
5804
+ type: "EscapeHatch";
5805
+ node: EscapeHatchModel;
5806
+ } | {
5807
+ type: "InlineContainer";
5808
+ node: InlineContainerModel<ChildLayoutInlineChildren, LayoutVariantWhenPredicate>;
5809
+ };
5439
5810
  /**
5440
5811
  * Fit behaviour options for height.
5441
5812
  * Used as the 'value' inside a {"type": "fit", "value": ...} height specification.
@@ -6703,6 +7074,107 @@ export type PlaceholderPredicate =
6703
7074
  type: "Numeric";
6704
7075
  content: DynamicIntegerPredicate;
6705
7076
  };
7077
+ /**
7078
+ * Child-layout nodes permitted within scrollable containers. Retains offer-scoped
7079
+ * predicates and device-pay buttons without allowing nested scrollable or modal nodes.
7080
+ */
7081
+ export type ScrollableChildLayoutChildren = {
7082
+ type: "Form";
7083
+ node: FormModel<ScrollableChildLayoutChildren, LayoutVariantWhenPredicate>;
7084
+ } | {
7085
+ type: "TextInput";
7086
+ node: TextInputModel<LayoutVariantWhenPredicate>;
7087
+ } | {
7088
+ type: "ActionButton";
7089
+ node: ActionButtonModel<ChildLayoutNonInteractableChildren, ChildLayoutAction, LayoutVariantWhenPredicate>;
7090
+ } | {
7091
+ type: "Row";
7092
+ node: RowModel<ScrollableChildLayoutChildren, LayoutVariantWhenPredicate>;
7093
+ } | {
7094
+ type: "FlowRow";
7095
+ node: FlowRowModel<ScrollableChildLayoutChildren, LayoutVariantWhenPredicate>;
7096
+ } | {
7097
+ type: "Column";
7098
+ node: ColumnModel<ScrollableChildLayoutChildren, LayoutVariantWhenPredicate>;
7099
+ } | {
7100
+ type: "ZStack";
7101
+ node: ZStackModel<ScrollableChildLayoutChildren, LayoutVariantWhenPredicate>;
7102
+ } | {
7103
+ type: "StaticImage";
7104
+ node: StaticImageModel<LayoutVariantWhenPredicate>;
7105
+ } | {
7106
+ type: "DataImage";
7107
+ node: DataImageModel<LayoutVariantWhenPredicate>;
7108
+ } | {
7109
+ type: "RichText";
7110
+ node: RichTextModel<LayoutVariantWhenPredicate>;
7111
+ } | {
7112
+ type: "BasicText";
7113
+ node: BasicTextModel<LayoutVariantWhenPredicate>;
7114
+ } | {
7115
+ type: "ProgressIndicator";
7116
+ node: ProgressIndicatorModel<LayoutVariantWhenPredicate>;
7117
+ } | {
7118
+ type: "OneByOneDistribution";
7119
+ node: OneByOneDistributionModel<LayoutVariantWhenPredicate>;
7120
+ } | {
7121
+ type: "When";
7122
+ node: WhenModel<ScrollableChildLayoutChildren, LayoutVariantWhenPredicate>;
7123
+ } | {
7124
+ type: "StaticLink";
7125
+ node: StaticLinkModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
7126
+ } | {
7127
+ type: "CloseButton";
7128
+ node: CloseButtonModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
7129
+ } | {
7130
+ type: "MinimizeButton";
7131
+ node: MinimizeButtonModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
7132
+ } | {
7133
+ type: "StackedDistribution";
7134
+ node: StackedDistributionModel<LayoutVariantWhenPredicate>;
7135
+ } | {
7136
+ type: "CarouselDistribution";
7137
+ node: CarouselDistributionModel<LayoutVariantWhenPredicate>;
7138
+ } | {
7139
+ type: "ProgressControl";
7140
+ node: ProgressControlModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
7141
+ } | {
7142
+ type: "GroupedDistribution";
7143
+ node: GroupedDistributionModel<LayoutVariantWhenPredicate>;
7144
+ } | {
7145
+ type: "DataIcon";
7146
+ node: DataIconModel<LayoutVariantWhenPredicate>;
7147
+ } | {
7148
+ type: "StaticIcon";
7149
+ node: StaticIconModel<LayoutVariantWhenPredicate>;
7150
+ } | {
7151
+ type: "IconGroup";
7152
+ node: IconGroupModel<LayoutVariantWhenPredicate>;
7153
+ } | {
7154
+ type: "SlideStateTrigger";
7155
+ node: SlideStateTriggerModel<LayoutVariantWhenPredicate>;
7156
+ } | {
7157
+ type: "TimerStateTrigger";
7158
+ node: TimerStateTriggerModel;
7159
+ } | {
7160
+ type: "ToggleButtonStateTrigger";
7161
+ node: ToggleButtonStateTriggerModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
7162
+ } | {
7163
+ type: "ButtonStateTrigger";
7164
+ node: ButtonStateTriggerModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
7165
+ } | {
7166
+ type: "CopyToClipboardButton";
7167
+ node: CopyToClipboardButtonModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
7168
+ } | {
7169
+ type: "CatalogDevicePayButton";
7170
+ node: CatalogDevicePayButtonModel<ChildLayoutNonInteractableChildren, LayoutVariantWhenPredicate>;
7171
+ } | {
7172
+ type: "EscapeHatch";
7173
+ node: EscapeHatchModel;
7174
+ } | {
7175
+ type: "InlineContainer";
7176
+ node: InlineContainerModel<ChildLayoutInlineChildren, LayoutVariantWhenPredicate>;
7177
+ };
6706
7178
  /**
6707
7179
  * Child node types allowed inside scrollable containers (ScrollableColumn, ScrollableRow)
6708
7180
  * in the combined SDK schema. Excludes overlay and bottom sheet nodes that cannot scroll.