@rokt/dcui-orchestrator 0.2.1-rc.5 → 0.2.1-rc.7

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 (18) hide show
  1. package/dist/index.cjs +17 -17
  2. package/dist/index.js +16 -16
  3. package/dist/modules/add-to-cart/src/components/catalog-partner-event-button/catalog-partner-event-button.d.ts +8 -0
  4. package/dist/modules/instant-purchase/src/actions/instant-purchase.d.ts +1 -6
  5. package/dist/modules/instant-purchase/src/components/catalog-drop-down/catalog-drop-down.d.ts +3 -6
  6. package/dist/modules/instant-purchase/src/components/catalog-response-button/catalog-response-button.d.ts +5 -1
  7. package/dist/modules/instant-purchase/src/components/catalog-variation-selection-button/catalog-variation-selection-button.d.ts +2 -0
  8. package/dist/modules/instant-purchase/src/components/checkbox/checkbox.d.ts +78 -0
  9. package/dist/modules/instant-purchase/src/models/state/instant-purchase.d.ts +0 -3
  10. package/dist/modules/instant-purchase/src/reducers/index.d.ts +1 -3
  11. package/dist/modules/instant-purchase/src/reducers/instant-purchase/index.d.ts +0 -1
  12. package/dist/modules/instant-purchase/src/validators/index.d.ts +3 -0
  13. package/dist/modules/instant-purchase/src/validators/types.d.ts +8 -0
  14. package/dist/modules/instant-purchase/src/validators/utils.d.ts +3 -0
  15. package/dist/modules/instant-purchase/src/validators/validator-provider.d.ts +24 -0
  16. package/package.json +1 -1
  17. package/dist/modules/instant-purchase/src/reducers/instant-purchase/variation-selection-required/index.d.ts +0 -1
  18. package/dist/modules/instant-purchase/src/reducers/instant-purchase/variation-selection-required/reducer.d.ts +0 -4
@@ -0,0 +1,8 @@
1
+ import { CatalogResponseButtonModel, NonInteractableChildren, WhenPredicate } from '@rokt/dcui-layout-schema';
2
+ export interface CatalogPartnerEventButtonProps {
3
+ schema: CatalogResponseButtonModel<NonInteractableChildren, WhenPredicate> & {
4
+ partnerEventName?: string;
5
+ };
6
+ testId?: string;
7
+ }
8
+ export declare function CatalogPartnerEventButton(props: CatalogPartnerEventButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import { PluginCatalogItem, UpsellItem } from '../../../../libraries/domain/src/models';
2
2
  import { InstantPurchase } from '@rokt/partner-integration';
3
- import { FulfillmentDetailsState, VariationSelectionRequiredState } from '../models';
3
+ import { FulfillmentDetailsState } from '../models';
4
4
  export type InitiateInstantPurchasePayload = {
5
5
  catalogItem: PluginCatalogItem;
6
6
  quantity: number;
@@ -57,9 +57,4 @@ export type SetFulfillmentDetails = {
57
57
  type: typeof SET_FULFILLMENT_DETAILS;
58
58
  payload: FulfillmentDetailsState;
59
59
  };
60
- export declare const SET_VARIATION_SELECTION_REQUIRED = "INSTANT_PURCHASE/SET_VARIATION_SELECTION_REQUIRED";
61
- export type SetVariationSelectionRequired = {
62
- type: typeof SET_VARIATION_SELECTION_REQUIRED;
63
- payload: VariationSelectionRequiredState | null;
64
- };
65
60
  export type InstantPurchaseActions = InitiateInstantPurchase;
@@ -1,5 +1,6 @@
1
1
  import { BackgroundStylingProperties, BasicStateStylingBlock, BorderStylingProperties, ConditionalStyleTransition, ContainerStylingProperties, DimensionStylingProperties, FlexChildStylingProperties, LayoutStyle, NonInteractableChildren, SpacingStylingProperties, TextStylingProperties, WhenPredicate } from '@rokt/dcui-layout-schema';
2
- import { PluginCatalogItem } from '../../../../../libraries/domain/src/models';
2
+ import { ValidatorFieldConfig } from '../../validators';
3
+ export type CatalogDropDownValidators = 'required';
3
4
  export interface CatalogDropDownStyles {
4
5
  container?: null | ContainerStylingProperties;
5
6
  background?: null | BackgroundStylingProperties;
@@ -21,17 +22,13 @@ export interface CatalogDropDownElements {
21
22
  dropDownListElement?: null | BasicStateStylingBlock<CatalogDropDownStyles>[];
22
23
  errorContentContainerStyles?: null | BasicStateStylingBlock<CatalogDropDownStyles>[];
23
24
  }
24
- export interface CatalogDropDownOptionData {
25
- catalogItem: PluginCatalogItem;
26
- index: number;
27
- }
28
25
  interface CatalogDropDownModel<NonInteractableChildren, Predicates> {
29
26
  styles?: null | LayoutStyle<CatalogDropDownElements, ConditionalStyleTransition<CatalogDropDownTransitions, Predicates>>;
30
27
  openTemplate: NonInteractableChildren;
31
28
  closedTemplate: NonInteractableChildren;
32
29
  closedDefaultTemplate: NonInteractableChildren;
33
30
  requiredSelectionErrorTemplate?: NonInteractableChildren;
34
- options: CatalogDropDownOptionData[];
31
+ validatorFieldConfig?: ValidatorFieldConfig<CatalogDropDownValidators>;
35
32
  }
36
33
  export interface CatalogDropDownProps {
37
34
  /**
@@ -1,4 +1,8 @@
1
1
  import { CatalogResponseButtonModel, NonInteractableChildren, WhenPredicate } from '@rokt/dcui-layout-schema';
2
+ import { ValidatorTriggerConfig } from '../../validators';
3
+ export interface CatalogResponseValidatorButtonModel<NonInteractableChildren, WhenPredicate> extends CatalogResponseButtonModel<NonInteractableChildren, WhenPredicate> {
4
+ validatorTriggerConfig?: ValidatorTriggerConfig;
5
+ }
2
6
  export interface CatalogResponseButtonProps {
3
7
  /**
4
8
  * - `children`: it can accept below nodes,
@@ -32,7 +36,7 @@ export interface CatalogResponseButtonProps {
32
36
  * - `background`
33
37
  * - `border`
34
38
  */
35
- schema: CatalogResponseButtonModel<NonInteractableChildren, WhenPredicate>;
39
+ schema: CatalogResponseValidatorButtonModel<NonInteractableChildren, WhenPredicate>;
36
40
  testId?: string;
37
41
  }
38
42
  /**The CatalogResponse is a button node that generate a Call-to-Action button
@@ -1,4 +1,5 @@
1
1
  import { ContainerStylingProperties, BorderStylingProperties, DimensionStylingProperties, FlexChildStylingProperties, SpacingStylingProperties, BasicStateStylingBlock, LayoutStyle, ConditionalStyleTransition, WhenPredicate, NonInteractableChildren } from '@rokt/dcui-layout-schema';
2
+ import { ValidatorTriggerConfig } from '../../validators';
2
3
  export interface CatalogVariationSelectionButtonStyles {
3
4
  container?: null | ContainerStylingProperties;
4
5
  border?: null | BorderStylingProperties;
@@ -17,6 +18,7 @@ export interface CatalogVariationSelectionButtonModel<Children, Predicates> {
17
18
  children: Children[];
18
19
  customStateKey: string;
19
20
  customStateValue: number;
21
+ validatorTriggerConfig?: ValidatorTriggerConfig;
20
22
  a11yLabel?: null | string;
21
23
  }
22
24
  export interface CatalogVariationSelectionButtonProps {
@@ -0,0 +1,78 @@
1
+ import { BackgroundStylingProperties, BasicStateStylingBlock, BorderStylingProperties, ConditionalStyleTransition, DimensionStylingProperties, ContainerStylingProperties, FlexChildStylingProperties, LayoutStyle, SpacingStylingProperties, WhenPredicate, NonInteractableChildren } from '@rokt/dcui-layout-schema';
2
+ import { ValidatorFieldConfig } from '../../validators';
3
+ export type CheckboxValidators = 'required';
4
+ export interface CheckboxStyles {
5
+ container?: null | ContainerStylingProperties;
6
+ background?: null | BackgroundStylingProperties;
7
+ border?: null | BorderStylingProperties;
8
+ dimension?: null | DimensionStylingProperties;
9
+ flexChild?: null | FlexChildStylingProperties;
10
+ spacing?: null | SpacingStylingProperties;
11
+ }
12
+ export interface CheckboxTransitions {
13
+ own?: null | CheckboxStyles;
14
+ }
15
+ export interface CheckboxElements {
16
+ own: BasicStateStylingBlock<CheckboxStyles>[];
17
+ checkbox?: BasicStateStylingBlock<CheckboxStyles>[];
18
+ label?: BasicStateStylingBlock<CheckboxStyles>[];
19
+ checkboxContainerError?: BasicStateStylingBlock<CheckboxStyles>[];
20
+ checkboxError?: BasicStateStylingBlock<CheckboxStyles>[];
21
+ labelError?: BasicStateStylingBlock<CheckboxStyles>[];
22
+ errorContent?: BasicStateStylingBlock<CheckboxStyles>[];
23
+ }
24
+ export interface CheckboxModel<Predicates> {
25
+ styles?: null | LayoutStyle<CheckboxElements, ConditionalStyleTransition<CheckboxTransitions, Predicates>>;
26
+ checkboxColor?: string;
27
+ value?: boolean;
28
+ labelTemplate?: NonInteractableChildren[];
29
+ errorContentTemplate?: NonInteractableChildren[];
30
+ validatorFieldConfig?: ValidatorFieldConfig<CheckboxValidators>;
31
+ }
32
+ export interface CheckboxProps {
33
+ /**
34
+ * - `labelTemplate`, `errorContentTemplate`: it can accept below nodes,
35
+ * * `Row`
36
+ * * `FlowRow
37
+ * * `Column`
38
+ * * `ZStack`
39
+ * * `BasicText`
40
+ * * `StaticImage`
41
+ * * `DataImage`
42
+ * * `When`
43
+ * * `DataIcon`
44
+ * * `StaticIcon`
45
+ * * `EscapeHatch`
46
+ * - `checkboxColor`:
47
+ * * `string`
48
+ * - `value`:
49
+ * * `boolean`
50
+ * - `styles`:
51
+ * * `elements`:
52
+ * * `own`, `checkbox`, `label`, `checkboxContainerError`,
53
+ * `checkboxError`, `labelError`, `errorContent`:
54
+ * - `container`
55
+ * - `background`
56
+ * - `border`
57
+ * - `dimension`
58
+ * - `flexChild`
59
+ * - `spacing`
60
+ * * `transitions`:
61
+ * - `type`: 'Conditional'
62
+ * - `transition`:
63
+ * * `predicates`: WhenPredicate[]
64
+ * * `duration`: number
65
+ * * `value`:
66
+ * * `own`, `checkbox`, `label`, `checkboxContainerError`,
67
+ * `checkboxError`, `labelError`, `errorContent`:
68
+ * - `container`
69
+ * - `background`
70
+ * - `border`
71
+ * - `dimension`
72
+ * - `flexChild`
73
+ * - `spacing`
74
+ */
75
+ schema: CheckboxModel<WhenPredicate>;
76
+ testId?: string;
77
+ }
78
+ export declare function Checkbox(props: CheckboxProps): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,3 @@
1
1
  import { RequestFulfillmentDetails, PaymentRequestDetails } from '../../../../../libraries/domain/src/models';
2
2
  export type FulfillmentDetailsState = Partial<RequestFulfillmentDetails> | null;
3
3
  export type PaymentDetailsState = Partial<PaymentRequestDetails> | null;
4
- export type VariationSelectionTypes = 'variationColor' | 'variationSize' | 'variationUnits' | 'variationCount';
5
- export type VariationSelectionRequiredType = VariationSelectionTypes | 'default';
6
- export type VariationSelectionRequiredState = VariationSelectionRequiredType | null;
@@ -1,13 +1,12 @@
1
1
  import { GlobalActions } from '../../../../libraries/domain/src/behaviors';
2
2
  import { ChildLayoutActions, childLayoutsReducer, ChildLayoutsState, StaticData, staticDataReducer, DynamicData, dynamicDataReducer } from '@rokt/module-utils';
3
- import { CatalogSelectionState, FulfillmentDetailsState, VariationSelectionRequiredState } from '../models';
3
+ import { CatalogSelectionState, FulfillmentDetailsState } from '../models';
4
4
  export type AppState = {
5
5
  staticData: StaticData;
6
6
  selectedItem: CatalogSelectionState;
7
7
  dynamicData: DynamicData;
8
8
  childLayouts: ChildLayoutsState;
9
9
  fulfillmentDetails: FulfillmentDetailsState;
10
- variationSelectionRequired: VariationSelectionRequiredState;
11
10
  };
12
11
  export type StateActions = GlobalActions | ChildLayoutActions;
13
12
  export declare const appReducers: {
@@ -16,6 +15,5 @@ export declare const appReducers: {
16
15
  dynamicData: typeof dynamicDataReducer;
17
16
  childLayouts: typeof childLayoutsReducer;
18
17
  fulfillmentDetails: (state: FulfillmentDetailsState | undefined, action: import("redux").AnyAction) => FulfillmentDetailsState;
19
- variationSelectionRequired: (state: VariationSelectionRequiredState | undefined, action: import("redux").AnyAction) => VariationSelectionRequiredState;
20
18
  };
21
19
  export declare function makeAppInitialState(data?: Partial<AppState>): AppState;
@@ -1,3 +1,2 @@
1
1
  export * from './fulfillment-details';
2
2
  export * from './utils';
3
- export * from './variation-selection-required';
@@ -0,0 +1,3 @@
1
+ export * from './validator-provider';
2
+ export * from './types';
3
+ export * from './utils';
@@ -0,0 +1,8 @@
1
+ export interface ValidatorTriggerConfig {
2
+ validatorFieldKeys: string[];
3
+ }
4
+ export interface ValidatorFieldConfig<Validators extends string> {
5
+ validationFieldKey: string;
6
+ validators: Validators[];
7
+ validateOnChange?: boolean;
8
+ }
@@ -0,0 +1,3 @@
1
+ import { Validator } from './validator-provider';
2
+ import { ValidatorFieldConfig } from './types';
3
+ export declare function getActiveValidators<ValidatorType extends string>(validatorFunctions: Record<ValidatorType, Validator>, validatorFieldConfig: ValidatorFieldConfig<ValidatorType> | undefined): Validator[];
@@ -0,0 +1,24 @@
1
+ import { ReactNode } from 'react';
2
+ export type Validator = () => boolean;
3
+ export interface ValidatorFieldData {
4
+ validators: Validator[];
5
+ isValid: boolean;
6
+ }
7
+ export type ValidatorMap = Record<string, ValidatorFieldData>;
8
+ export interface ValidatorContextType {
9
+ registerValidators: (validatorFieldKey: string, validators: Validator[]) => void;
10
+ validateFieldKeys: (validatorFieldKey: string[]) => boolean;
11
+ getFieldKeyValidity: (validatorFieldKey: string) => boolean;
12
+ }
13
+ export declare const ValidatorContext: import("react").Context<ValidatorContextType | null>;
14
+ /**
15
+ * React context provider that manages validation across multiple nodes.
16
+ * Stores a map of validator functions keyed by identifiers, tracks
17
+ * each node's validity, and exposes methods to register validators,
18
+ * validate nodes, and check validity.
19
+ */
20
+ export declare function ValidatorProvider(props: {
21
+ children: ReactNode;
22
+ }): import("react/jsx-runtime").JSX.Element;
23
+ export declare function useValidator(): ValidatorContextType;
24
+ export declare function useRegisterValidators(validationFieldKey: string | undefined, validators: Validator[]): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rokt/dcui-orchestrator",
3
- "version": "0.2.1-rc.5",
3
+ "version": "0.2.1-rc.7",
4
4
  "description": "Rokt's DCUI rendering process",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
@@ -1,4 +0,0 @@
1
- import { AnyAction } from '@reduxjs/toolkit';
2
- import { VariationSelectionRequiredState } from '../../../models';
3
- export declare function makeInitialVariationSelectionRequiredState(): VariationSelectionRequiredState;
4
- export declare const variationSelectionRequiredReducer: (state: VariationSelectionRequiredState | undefined, action: AnyAction) => VariationSelectionRequiredState;