@wise/dynamic-flow-types 3.5.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/main.js CHANGED
@@ -425,6 +425,21 @@ var reviewLayoutCallToActionSchema = import_zod.z.lazy(
425
425
  behavior: behaviorSchema.optional()
426
426
  })
427
427
  );
428
+ var tabsLayoutSchema = import_zod.z.lazy(
429
+ () => import_zod.z.object({
430
+ type: import_zod.z.literal("tabs"),
431
+ tabs: import_zod.z.array(tabsLayoutTabSchema),
432
+ control: import_zod.z.string().optional(),
433
+ margin: sizeSchema.optional()
434
+ })
435
+ );
436
+ var tabsLayoutTabSchema = import_zod.z.lazy(
437
+ () => import_zod.z.object({
438
+ title: import_zod.z.string(),
439
+ components: import_zod.z.array(layoutSchema),
440
+ tag: import_zod.z.string().optional()
441
+ })
442
+ );
428
443
  var alertLayoutSchema = import_zod.z.lazy(
429
444
  () => import_zod.z.object({
430
445
  type: import_zod.z.literal("alert"),
@@ -556,7 +571,8 @@ var layoutSchema = import_zod.z.lazy(
556
571
  reviewLayoutSchema,
557
572
  searchLayoutSchema,
558
573
  sectionLayoutSchema,
559
- statusListLayoutSchema
574
+ statusListLayoutSchema,
575
+ tabsLayoutSchema
560
576
  ])
561
577
  );
562
578
  var itemCallToActionSchema = import_zod.z.lazy(
package/build/main.mjs CHANGED
@@ -397,6 +397,21 @@ var reviewLayoutCallToActionSchema = z.lazy(
397
397
  behavior: behaviorSchema.optional()
398
398
  })
399
399
  );
400
+ var tabsLayoutSchema = z.lazy(
401
+ () => z.object({
402
+ type: z.literal("tabs"),
403
+ tabs: z.array(tabsLayoutTabSchema),
404
+ control: z.string().optional(),
405
+ margin: sizeSchema.optional()
406
+ })
407
+ );
408
+ var tabsLayoutTabSchema = z.lazy(
409
+ () => z.object({
410
+ title: z.string(),
411
+ components: z.array(layoutSchema),
412
+ tag: z.string().optional()
413
+ })
414
+ );
400
415
  var alertLayoutSchema = z.lazy(
401
416
  () => z.object({
402
417
  type: z.literal("alert"),
@@ -528,7 +543,8 @@ var layoutSchema = z.lazy(
528
543
  reviewLayoutSchema,
529
544
  searchLayoutSchema,
530
545
  sectionLayoutSchema,
531
- statusListLayoutSchema
546
+ statusListLayoutSchema,
547
+ tabsLayoutSchema
532
548
  ])
533
549
  );
534
550
  var itemCallToActionSchema = z.lazy(
@@ -55,6 +55,8 @@ export type { SectionLayoutCallToAction } from './layout/SectionLayoutCallToActi
55
55
  export type { StatusListLayout } from './layout/StatusListLayout';
56
56
  export type { StatusListLayoutItem } from './layout/StatusListLayoutItem';
57
57
  export type { StatusListLayoutStatus } from './layout/StatusListLayoutStatus';
58
+ export type { TabsLayout } from './layout/TabsLayout';
59
+ export type { TabsLayoutTab } from './layout/TabsLayoutTab';
58
60
  export type FormLayout = GeneratedFormLayout & {
59
61
  schema?: Reference;
60
62
  };
@@ -18,7 +18,8 @@ import type { ReviewLayout } from './ReviewLayout';
18
18
  import type { SearchLayout } from './SearchLayout';
19
19
  import type { SectionLayout } from './SectionLayout';
20
20
  import type { StatusListLayout } from './StatusListLayout';
21
+ import type { TabsLayout } from './TabsLayout';
21
22
  /**
22
23
  * Layouts allow you to display information to the user and customise how a step is structured.
23
24
  */
24
- export type Layout = AlertLayout | BoxLayout | ButtonLayout | ColumnsLayout | DecisionLayout | DividerLayout | FormLayout | HeadingLayout | ImageLayout | InfoLayout | InstructionsLayout | ListLayout | LoadingIndicatorLayout | MarkdownLayout | ModalLayout | ParagraphLayout | ReviewLayout | SearchLayout | SectionLayout | StatusListLayout;
25
+ export type Layout = AlertLayout | BoxLayout | ButtonLayout | ColumnsLayout | DecisionLayout | DividerLayout | FormLayout | HeadingLayout | ImageLayout | InfoLayout | InstructionsLayout | ListLayout | LoadingIndicatorLayout | MarkdownLayout | ModalLayout | ParagraphLayout | ReviewLayout | SearchLayout | SectionLayout | StatusListLayout | TabsLayout;
@@ -0,0 +1,23 @@
1
+ import type { TabsLayoutTab } from './TabsLayoutTab';
2
+ import type { Size } from '../misc/Size';
3
+ /**
4
+ * A container divided into groups of layout components with each group being visible upon user-selection
5
+ */
6
+ export type TabsLayout = {
7
+ /**
8
+ * It must be 'tabs'.
9
+ */
10
+ type: 'tabs';
11
+ /**
12
+ * The tabs to be selected
13
+ */
14
+ tabs: TabsLayoutTab[];
15
+ /**
16
+ * Specify a particular control to use to represent the layout. If the control is unknown, it will be ignored.
17
+ */
18
+ control?: string;
19
+ /**
20
+ * The vertical margin to apply after this component. Defaults to `md`.
21
+ */
22
+ margin?: Size;
23
+ };
@@ -0,0 +1,18 @@
1
+ import type { Layout } from './Layout';
2
+ /**
3
+ * Represents a single Tab with a title and list of components
4
+ */
5
+ export type TabsLayoutTab = {
6
+ /**
7
+ * A user-facing title.
8
+ */
9
+ title: string;
10
+ /**
11
+ * The components to be displayed when this tab is selected.
12
+ */
13
+ components: Layout[];
14
+ /**
15
+ * An optional identifier to be used in custom renderers.
16
+ */
17
+ tag?: string;
18
+ };
@@ -32,9 +32,10 @@ import type { SectionRendererProps } from './SectionRendererProps';
32
32
  import type { SelectInputRendererProps } from './SelectInputRendererProps';
33
33
  import type { StatusListRendererProps } from './StatusListRendererProps';
34
34
  import type { AnalyticsEventDispatcher, LoadingState, StepRendererProps } from './StepRendererProps';
35
+ import { TabsRendererProps } from './TabsRendererProps';
35
36
  import type { TextInputRendererProps } from './TextInputRendererProps';
36
37
  import type { UploadInputRendererProps } from './UploadInputRendererProps';
37
- export type RendererProps = AlertRendererProps | CheckboxInputRendererProps | BoxRendererProps | ButtonRendererProps | ColumnsRendererProps | CoreContainerRendererProps | DateInputRendererProps | DecisionRendererProps | DividerRendererProps | ExternalConfirmationRendererProps | FormRendererProps | HeadingRendererProps | HiddenRendererProps | ImageRendererProps | InstructionsRendererProps | IntegerInputRendererProps | ListRendererProps | LoadingIndicatorRendererProps | MarkdownRendererProps | ModalRendererProps | ModalContentRendererProps | MultiSelectInputRendererProps | MultiUploadInputRendererProps | NumberInputRendererProps | ParagraphRendererProps | RepeatableRendererProps | ReviewRendererProps | RootRendererProps | SearchRendererProps | FormSectionRendererProps | SelectInputRendererProps | SectionRendererProps | StatusListRendererProps | StepRendererProps | TextInputRendererProps | UploadInputRendererProps;
38
+ export type RendererProps = AlertRendererProps | CheckboxInputRendererProps | BoxRendererProps | ButtonRendererProps | ColumnsRendererProps | CoreContainerRendererProps | DateInputRendererProps | DecisionRendererProps | DividerRendererProps | ExternalConfirmationRendererProps | FormRendererProps | HeadingRendererProps | HiddenRendererProps | ImageRendererProps | InstructionsRendererProps | IntegerInputRendererProps | ListRendererProps | LoadingIndicatorRendererProps | MarkdownRendererProps | ModalRendererProps | ModalContentRendererProps | MultiSelectInputRendererProps | MultiUploadInputRendererProps | NumberInputRendererProps | ParagraphRendererProps | RepeatableRendererProps | ReviewRendererProps | RootRendererProps | SearchRendererProps | FormSectionRendererProps | SelectInputRendererProps | SectionRendererProps | StatusListRendererProps | StepRendererProps | TabsRendererProps | TextInputRendererProps | UploadInputRendererProps;
38
39
  export type Renderer<P extends RendererProps> = {
39
40
  canRenderType: P['type'];
40
41
  canRender?: (props: P) => boolean;
@@ -44,7 +45,7 @@ export type RendererContext = {
44
45
  render: RenderFunction;
45
46
  };
46
47
  export type RenderFunction = (props: RendererProps | null) => JSX.Element | null;
47
- export type Renderers = readonly (Renderer<StepRendererProps> | Renderer<CoreContainerRendererProps> | Renderer<AlertRendererProps> | Renderer<BoxRendererProps> | Renderer<ColumnsRendererProps> | Renderer<DecisionRendererProps> | Renderer<DividerRendererProps> | Renderer<ExternalConfirmationRendererProps> | Renderer<FormRendererProps> | Renderer<HeadingRendererProps> | Renderer<InstructionsRendererProps> | Renderer<ListRendererProps> | Renderer<LoadingIndicatorRendererProps> | Renderer<MarkdownRendererProps> | Renderer<ImageRendererProps> | Renderer<ModalRendererProps> | Renderer<ModalContentRendererProps> | Renderer<ParagraphRendererProps> | Renderer<ReviewRendererProps> | Renderer<SearchRendererProps> | Renderer<StatusListRendererProps> | Renderer<CheckboxInputRendererProps> | Renderer<ButtonRendererProps> | Renderer<DateInputRendererProps> | Renderer<HiddenRendererProps> | Renderer<IntegerInputRendererProps> | Renderer<NumberInputRendererProps> | Renderer<RepeatableRendererProps> | Renderer<RootRendererProps> | Renderer<FormSectionRendererProps> | Renderer<SelectInputRendererProps> | Renderer<SectionRendererProps> | Renderer<MultiSelectInputRendererProps> | Renderer<TextInputRendererProps> | Renderer<UploadInputRendererProps> | Renderer<MultiUploadInputRendererProps>)[];
48
+ export type Renderers = readonly (Renderer<StepRendererProps> | Renderer<CoreContainerRendererProps> | Renderer<AlertRendererProps> | Renderer<BoxRendererProps> | Renderer<ColumnsRendererProps> | Renderer<DecisionRendererProps> | Renderer<DividerRendererProps> | Renderer<ExternalConfirmationRendererProps> | Renderer<FormRendererProps> | Renderer<HeadingRendererProps> | Renderer<InstructionsRendererProps> | Renderer<ListRendererProps> | Renderer<LoadingIndicatorRendererProps> | Renderer<MarkdownRendererProps> | Renderer<ImageRendererProps> | Renderer<ModalRendererProps> | Renderer<ModalContentRendererProps> | Renderer<ParagraphRendererProps> | Renderer<ReviewRendererProps> | Renderer<SearchRendererProps> | Renderer<StatusListRendererProps> | Renderer<CheckboxInputRendererProps> | Renderer<ButtonRendererProps> | Renderer<DateInputRendererProps> | Renderer<HiddenRendererProps> | Renderer<IntegerInputRendererProps> | Renderer<NumberInputRendererProps> | Renderer<RepeatableRendererProps> | Renderer<RootRendererProps> | Renderer<FormSectionRendererProps> | Renderer<SelectInputRendererProps> | Renderer<SectionRendererProps> | Renderer<MultiSelectInputRendererProps> | Renderer<TabsRendererProps> | Renderer<TextInputRendererProps> | Renderer<UploadInputRendererProps> | Renderer<MultiUploadInputRendererProps>)[];
48
49
  export type BaseRendererProps = {
49
50
  uid: string;
50
51
  render: RenderFunction;
@@ -0,0 +1,15 @@
1
+ import { ReactNode } from 'react';
2
+ import { Margin } from './constants';
3
+ import { BaseRendererProps, RendererProps } from './RendererProps';
4
+ export type TabsRendererProps = BaseRendererProps & {
5
+ type: 'tabs';
6
+ control?: string;
7
+ margin: Margin;
8
+ tabs: Tab[];
9
+ };
10
+ export type Tab = {
11
+ title: string;
12
+ children: ReactNode;
13
+ childrenProps: RendererProps[];
14
+ tag?: string;
15
+ };
@@ -32,6 +32,7 @@ export type { ErrorSearchState, NoResultsSearchState, PendingSearchState, Result
32
32
  export type { SectionRendererProps } from './SectionRendererProps';
33
33
  export type { SelectInputRendererOption, SelectInputRendererProps, } from './SelectInputRendererProps';
34
34
  export type { StatusListItem, StatusListItemStatus, StatusListRendererProps, } from './StatusListRendererProps';
35
+ export type { TabsRendererProps, Tab } from './TabsRendererProps';
35
36
  export type { AnalyticsEventDispatcher, LoadingState, StepRendererProps, } from './StepRendererProps';
36
37
  export type { TextInputRendererProps } from './TextInputRendererProps';
37
38
  export type { UploadInputRendererProps } from './UploadInputRendererProps';
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import type { JsonElement, AdditionalInfo, Behavior, ReviewLayoutCallToAction, AlertLayout, AlertLayoutCallToAction, ListLayout, ListLayoutCallToAction, ListLayoutItem, DecisionLayout, DecisionLayoutOption, SectionLayoutCallToAction, StatusListLayout, StatusListLayoutItem, SectionLayout, Layout, ItemCallToAction, BoxLayout, ButtonLayout, ColumnsLayout, ModalLayout, ReviewLayout, ReviewLayoutField, ModalLayoutContent, ModalResponseBody, Step, Schema, Polling, LinkHandler, AllOfSchema, ArraySchema, BlobSchema, BooleanSchema, ConstSchema, IntegerSchema, NumberSchema, ObjectSchema, OneOfSchema, StringSchema, ArraySchemaList, PersistAsync, ArraySchemaTuple, PollingOnError, ModalBehavior } from '../next';
2
+ import type { JsonElement, AdditionalInfo, Behavior, ReviewLayoutCallToAction, TabsLayout, TabsLayoutTab, AlertLayout, AlertLayoutCallToAction, ListLayout, ListLayoutCallToAction, ListLayoutItem, DecisionLayout, DecisionLayoutOption, SectionLayoutCallToAction, StatusListLayout, StatusListLayoutItem, SectionLayout, Layout, ItemCallToAction, BoxLayout, ButtonLayout, ColumnsLayout, ModalLayout, ReviewLayout, ReviewLayoutField, ModalLayoutContent, ModalResponseBody, Step, Schema, Polling, LinkHandler, AllOfSchema, ArraySchema, BlobSchema, BooleanSchema, ConstSchema, IntegerSchema, NumberSchema, ObjectSchema, OneOfSchema, StringSchema, ArraySchemaList, PersistAsync, ArraySchemaTuple, PollingOnError, ModalBehavior } from '../next';
3
3
  export declare const imageSchema: z.ZodObject<{
4
4
  text: z.ZodOptional<z.ZodString>;
5
5
  url: z.ZodOptional<z.ZodString>;
@@ -2213,6 +2213,8 @@ export declare const searchResponseBodySchema: z.ZodObject<{
2213
2213
  export declare const additionalInfoSchema: z.ZodSchema<AdditionalInfo>;
2214
2214
  export declare const behaviorSchema: z.ZodSchema<Behavior>;
2215
2215
  export declare const reviewLayoutCallToActionSchema: z.ZodSchema<ReviewLayoutCallToAction>;
2216
+ export declare const tabsLayoutSchema: z.ZodSchema<TabsLayout>;
2217
+ export declare const tabsLayoutTabSchema: z.ZodSchema<TabsLayoutTab>;
2216
2218
  export declare const alertLayoutSchema: z.ZodSchema<AlertLayout>;
2217
2219
  export declare const alertLayoutCallToActionSchema: z.ZodSchema<AlertLayoutCallToAction>;
2218
2220
  export declare const listLayoutSchema: z.ZodSchema<ListLayout>;
@@ -32,11 +32,13 @@ import type {
32
32
  DecisionLayout,
33
33
  DecisionLayoutOption,
34
34
  ReviewLayoutCallToAction,
35
+ TabsLayoutTab,
35
36
  ModalLayout,
36
37
  StatusListLayout,
37
38
  ReviewLayoutField,
38
39
  SectionLayoutCallToAction,
39
40
  AlertLayoutCallToAction,
41
+ TabsLayout,
40
42
  ListLayoutCallToAction,
41
43
  SectionLayout,
42
44
  ButtonLayout,
@@ -540,6 +542,7 @@ export const layoutSchema: z.ZodSchema<Layout> = z.lazy(() =>
540
542
  searchLayoutSchema,
541
543
  sectionLayoutSchema,
542
544
  statusListLayoutSchema,
545
+ tabsLayoutSchema,
543
546
  ]),
544
547
  );
545
548
 
@@ -1012,6 +1015,14 @@ export const reviewLayoutCallToActionSchema: z.ZodSchema<ReviewLayoutCallToActio
1012
1015
  }),
1013
1016
  );
1014
1017
 
1018
+ export const tabsLayoutTabSchema: z.ZodSchema<TabsLayoutTab> = z.lazy(() =>
1019
+ z.object({
1020
+ title: z.string(),
1021
+ components: z.array(layoutSchema),
1022
+ tag: z.string().optional(),
1023
+ }),
1024
+ );
1025
+
1015
1026
  export const modalLayoutSchema: z.ZodSchema<ModalLayout> = z.lazy(() =>
1016
1027
  z.object({
1017
1028
  type: z.literal('modal'),
@@ -1063,6 +1074,15 @@ export const alertLayoutCallToActionSchema: z.ZodSchema<AlertLayoutCallToAction>
1063
1074
  }),
1064
1075
  );
1065
1076
 
1077
+ export const tabsLayoutSchema: z.ZodSchema<TabsLayout> = z.lazy(() =>
1078
+ z.object({
1079
+ type: z.literal('tabs'),
1080
+ tabs: z.array(tabsLayoutTabSchema),
1081
+ control: z.string().optional(),
1082
+ margin: sizeSchema.optional(),
1083
+ }),
1084
+ );
1085
+
1066
1086
  export const listLayoutCallToActionSchema: z.ZodSchema<ListLayoutCallToAction> = z.lazy(() =>
1067
1087
  z.object({
1068
1088
  title: z.string(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wise/dynamic-flow-types",
3
- "version": "3.5.0",
3
+ "version": "3.6.0",
4
4
  "description": "Dynamic Flow TypeScript Types",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {