@plitzi/plitzi-builder 0.32.5 → 0.32.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 (50) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/index.html +2 -4
  3. package/dist/modules/AI/components/ChatMessage/ChatMessage.d.ts +2 -2
  4. package/dist/modules/AI/components/ChatMessage/components/AIBrandPreview/AIBrandPreview.d.ts +1 -1
  5. package/dist/modules/AI/components/ChatMessage/components/AIBrandPreview/components/BrandHero/BrandHero.d.ts +1 -1
  6. package/dist/modules/AI/components/ChatMessage/components/AIBrandPreview/components/BrandTypography/BrandTypography.d.ts +1 -1
  7. package/dist/modules/AI/components/ChatMessage/components/AIBrandPreview/components/BrandVoice/BrandVoice.d.ts +1 -1
  8. package/dist/modules/AI/components/ChatMessage/components/AIColorPalettePreview/AIColorPalettePreview.d.ts +1 -1
  9. package/dist/modules/AI/components/ChatMessage/components/AIColorPalettePreview/components/ColorPaletteRow/ColorPaletteRow.d.ts +1 -1
  10. package/dist/modules/AI/components/ChatMessage/components/AIColorPalettePreview/helpers.d.ts +1 -1
  11. package/dist/modules/AI/components/ChatMessage/components/AIStyleGuidePreview/AIStyleGuidePreview.d.ts +1 -1
  12. package/dist/modules/AI/components/ChatMessage/components/AIStyleGuidePreview/components/ColorScaleRow/ColorScaleRow.d.ts +1 -1
  13. package/dist/modules/AI/components/ChatMessage/components/AIStyleGuidePreview/helpers.d.ts +1 -1
  14. package/dist/modules/AI/components/ChatMessage/components/AIWireframePreview/AIWireframePreview.d.ts +1 -1
  15. package/dist/modules/AI/components/ChatMessage/components/AssistantMessage/AssistantMessage.d.ts +2 -2
  16. package/dist/modules/AI/components/ChatMessage/helpers/extractToolVisual.d.ts +1 -5
  17. package/dist/modules/AI/components/ChatMessage/helpers/groupStepsIntoItems.d.ts +29 -0
  18. package/dist/modules/AI/components/ChatMessage/helpers/toolVisualTypes.d.ts +103 -0
  19. package/dist/modules/AI/components/ToolVisualRenderer/ToolVisualRenderer.d.ts +2 -2
  20. package/dist/modules/App/models/PageForm.d.ts +3 -1
  21. package/dist/modules/Builder/components/BuilderElementTools/ElementDefinitionSettings.d.ts +4 -1
  22. package/dist/modules/Builder/components/BuilderOverlay/OverlayButtonContainer.d.ts +2 -2
  23. package/dist/modules/Builder/components/BuilderOverlay/OverlaySpacing.d.ts +2 -2
  24. package/dist/modules/DataSource/BindingSelected.d.ts +2 -3
  25. package/dist/modules/DataSource/helpers/getBindingWarnings.d.ts +17 -0
  26. package/dist/modules/DataSource/helpers/getBindingWarnings.test.d.ts +1 -0
  27. package/dist/modules/DataSource/helpers/transformerString.d.ts +2 -5
  28. package/dist/modules/DataSource/models/BindingForm/BindingForm.d.ts +4 -7
  29. package/dist/modules/Interactions/Interactions.d.ts +2 -2
  30. package/dist/modules/Interactions/components/Workflow/WorkflowHeader.d.ts +7 -1
  31. package/dist/modules/Interactions/components/Workflow/helpers/nodeWarnings.d.ts +24 -0
  32. package/dist/modules/Interactions/components/Workflow/helpers/nodeWarnings.test.d.ts +1 -0
  33. package/dist/modules/Segments/SegmentsReducer.d.ts +9 -0
  34. package/dist/package.json.d.ts +20 -21
  35. package/dist/plitzi-builder-dev-vendor.js +6 -6
  36. package/dist/plitzi-builder-dev-vendor.js.gz +0 -0
  37. package/dist/plitzi-builder-dev-vendor.js.map +1 -1
  38. package/dist/plitzi-builder-dev-vendor.js.map.gz +0 -0
  39. package/dist/plitzi-builder-vendor.js +1 -1
  40. package/dist/plitzi-builder-vendor.js.gz +0 -0
  41. package/dist/plitzi-builder.css +2 -2
  42. package/dist/plitzi-builder.css.gz +0 -0
  43. package/dist/plitzi-builder.js +1395 -1236
  44. package/dist/plitzi-builder.js.gz +0 -0
  45. package/package.json +34 -35
  46. package/dist/modules/AI/components/ChatMessage/helpers/getBrandResult.d.ts +0 -37
  47. package/dist/modules/AI/components/ChatMessage/helpers/getColorPaletteResult.d.ts +0 -14
  48. package/dist/modules/AI/components/ChatMessage/helpers/getStagePreviewResult.d.ts +0 -11
  49. package/dist/modules/AI/components/ChatMessage/helpers/getStyleGuideResult.d.ts +0 -45
  50. package/dist/modules/AI/components/ChatMessage/helpers/getWireframeResult.d.ts +0 -12
package/CHANGELOG.md CHANGED
@@ -1,5 +1,47 @@
1
1
  # @plitzi/plitzi-builder
2
2
 
3
+ ## 0.32.7
4
+
5
+ ### Patch Changes
6
+
7
+ - v0.32.7
8
+ - Updated dependencies
9
+ - @plitzi/plitzi-sdk@0.32.7
10
+ - @plitzi/nexus@0.32.7
11
+ - @plitzi/sdk-auth@0.32.7
12
+ - @plitzi/sdk-collections@0.32.7
13
+ - @plitzi/sdk-dev-tools@0.32.7
14
+ - @plitzi/sdk-elements@0.32.7
15
+ - @plitzi/sdk-event-bridge@0.32.7
16
+ - @plitzi/sdk-interactions@0.32.7
17
+ - @plitzi/sdk-navigation@0.32.7
18
+ - @plitzi/sdk-plugins@0.32.7
19
+ - @plitzi/sdk-schema@0.32.7
20
+ - @plitzi/sdk-shared@0.32.7
21
+ - @plitzi/sdk-style@0.32.7
22
+ - @plitzi/sdk-variables@0.32.7
23
+
24
+ ## 0.32.6
25
+
26
+ ### Patch Changes
27
+
28
+ - v0.32.6
29
+ - Updated dependencies
30
+ - @plitzi/plitzi-sdk@0.32.6
31
+ - @plitzi/nexus@0.32.6
32
+ - @plitzi/sdk-auth@0.32.6
33
+ - @plitzi/sdk-collections@0.32.6
34
+ - @plitzi/sdk-dev-tools@0.32.6
35
+ - @plitzi/sdk-elements@0.32.6
36
+ - @plitzi/sdk-event-bridge@0.32.6
37
+ - @plitzi/sdk-interactions@0.32.6
38
+ - @plitzi/sdk-navigation@0.32.6
39
+ - @plitzi/sdk-plugins@0.32.6
40
+ - @plitzi/sdk-schema@0.32.6
41
+ - @plitzi/sdk-shared@0.32.6
42
+ - @plitzi/sdk-style@0.32.6
43
+ - @plitzi/sdk-variables@0.32.6
44
+
3
45
  ## 0.32.5
4
46
 
5
47
  ### Patch Changes
package/dist/index.html CHANGED
@@ -57,7 +57,7 @@
57
57
  'plitzi',
58
58
  {
59
59
  webKey:
60
- 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InNwYWNlSWQiOjF9LCJpc3MiOiJodHRwczovL3NlcnZlci5wbGl0emkubG9jYWwiLCJhdWQiOlsiaHR0cHM6Ly9hcHAucGxpdHppLmxvY2FsIiwiaHR0cHM6Ly9zc3IucGxpdHppLmxvY2FsOjQwMDAiLCJodHRwczovL3NlcnZlci5wbGl0emkubG9jYWwiLCJodHRwczovL2FwaS5wbGl0emkubG9jYWwiLCJodHRwczovL21jcC5wbGl0emkubG9jYWwiLCJodHRwczovL2FwcC5wbGl0emkubG9jYWw6MzAwMCIsImh0dHBzOi8vYXBwLnBsaXR6aS5sb2NhbDozMDAxIiwiaHR0cHM6Ly93ZWJzaXRlLnBsaXR6aS5hcHAiXSwidmVyc2lvbiI6MSwiZXhwIjoxNzg1ODI2MDcwLCJpYXQiOjE3ODMxOTYwNzQsIm5iZiI6MTc4MzE5NjA3NH0.RJb3-crFskL_qIG4yxvEtiQ-omXKNROR4dHBvny_-MI',
60
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InNwYWNlSWQiOjF9LCJpc3MiOiJodHRwczovL3NlcnZlci5wbGl0emkubG9jYWwiLCJhdWQiOlsiaHR0cHM6Ly9hcHAucGxpdHppLmxvY2FsIiwiaHR0cHM6Ly9zc3IucGxpdHppLmxvY2FsIiwiaHR0cHM6Ly9zZXJ2ZXIucGxpdHppLmxvY2FsIiwiaHR0cHM6Ly9hcGkucGxpdHppLmxvY2FsIiwiaHR0cHM6Ly9tY3AucGxpdHppLmxvY2FsIiwiaHR0cHM6Ly9hcHAucGxpdHppLmxvY2FsOjMwMDAiLCJodHRwczovL2FwcC5wbGl0emkubG9jYWw6MzAwMSIsImh0dHBzOi8vd2Vic2l0ZS5wbGl0emkuYXBwIl0sInZlcnNpb24iOjEsImV4cCI6MTc4NzUxNzU3OSwiaWF0IjoxNzg0ODg3NTgzLCJuYmYiOjE3ODQ4ODc1ODN9.p5IEtdMhZrpampKtiWVuAUI6keMAAqtXmpdgL10A-6k',
61
61
  environment: 'main',
62
62
  revision: 0,
63
63
  renderMode: 'raw',
@@ -67,9 +67,7 @@
67
67
  apiServer: 'https://api.plitzi.local',
68
68
  ssrServer: 'https://ssr.plitzi.local',
69
69
  // SDK
70
- nodeServer: 'https://server.plitzi.local',
71
- aiServer: 'https://mcp.plitzi.local',
72
- graphqlServer: 'https://server.plitzi.local',
70
+ serverUrl: 'https://server.plitzi.local',
73
71
  websocketServer: 'wss://server.plitzi.local',
74
72
  subscriptionServer: 'wss://server.plitzi.local/subscriptions'
75
73
  },
@@ -1,7 +1,7 @@
1
1
  import { AiMessage } from '../../types';
2
2
  export type ChatMessageProps = AiMessage & {
3
- stagePreviewVersion?: number;
3
+ previewConceptVersion?: number;
4
4
  wireframeVersion?: number;
5
5
  };
6
- declare const _default: import('react').MemoExoticComponent<({ id, role, content, irrelevant, queued, mode, usage, actions, attachments, steps, createdAt, stagePreviewVersion, wireframeVersion }: ChatMessageProps) => import("react").JSX.Element>;
6
+ declare const _default: import('react').MemoExoticComponent<({ id, role, content, irrelevant, queued, mode, usage, actions, attachments, steps, createdAt, previewConceptVersion, wireframeVersion }: ChatMessageProps) => import("react").JSX.Element>;
7
7
  export default _default;
@@ -1,4 +1,4 @@
1
- import { BrandData } from '../../helpers/getBrandResult';
1
+ import { BrandData } from '../../helpers/toolVisualTypes';
2
2
  import { AiMode } from '../../../../types';
3
3
  export type AIBrandPreviewProps = BrandData & {
4
4
  mode?: AiMode;
@@ -1,4 +1,4 @@
1
- import { BrandData } from '../../../../helpers/getBrandResult';
1
+ import { BrandData } from '../../../../helpers/toolVisualTypes';
2
2
  export type BrandHeroProps = {
3
3
  name: string;
4
4
  tagline?: string;
@@ -1,4 +1,4 @@
1
- import { BrandData } from '../../../../helpers/getBrandResult';
1
+ import { BrandData } from '../../../../helpers/toolVisualTypes';
2
2
  export type BrandTypographyProps = {
3
3
  typography: NonNullable<BrandData['typography']>;
4
4
  bg: string;
@@ -1,4 +1,4 @@
1
- import { BrandData } from '../../../../helpers/getBrandResult';
1
+ import { BrandData } from '../../../../helpers/toolVisualTypes';
2
2
  export type BrandVoiceProps = {
3
3
  voice: NonNullable<BrandData['voice']>;
4
4
  };
@@ -1,4 +1,4 @@
1
- import { ColorPaletteData } from '../../helpers/getColorPaletteResult';
1
+ import { ColorPaletteData } from '../../helpers/toolVisualTypes';
2
2
  import { AiMode } from '../../../../types';
3
3
  export type AIColorPalettePreviewProps = ColorPaletteData & {
4
4
  mode?: AiMode;
@@ -1,4 +1,4 @@
1
- import { ColorItem } from '../../../../helpers/getColorPaletteResult';
1
+ import { ColorItem } from '../../../../helpers/toolVisualTypes';
2
2
  export type ColorPaletteRowProps = {
3
3
  item: ColorItem;
4
4
  hex: string;
@@ -1,4 +1,4 @@
1
- import { ColorItem } from '../../helpers/getColorPaletteResult';
1
+ import { ColorItem } from '../../helpers/toolVisualTypes';
2
2
  export declare const ROLE_ORDER: string[];
3
3
  export declare const sortedColors: (colors: ColorItem[]) => ColorItem[];
4
4
  export declare const toVarName: (role: string | undefined, name: string) => string;
@@ -1,4 +1,4 @@
1
- import { StyleGuideData } from '../../helpers/getStyleGuideResult';
1
+ import { StyleGuideData } from '../../helpers/toolVisualTypes';
2
2
  import { AiMode } from '../../../../types';
3
3
  export type AIStyleGuidePreviewProps = StyleGuideData & {
4
4
  mode?: AiMode;
@@ -1,4 +1,4 @@
1
- import { ColorScale } from '../../../../helpers/getStyleGuideResult';
1
+ import { ColorScale } from '../../../../helpers/toolVisualTypes';
2
2
  export type ColorScaleRowProps = {
3
3
  label: string;
4
4
  scale: ColorScale;
@@ -1,4 +1,4 @@
1
- import { ColorScale, StyleGuideData } from '../../helpers/getStyleGuideResult';
1
+ import { ColorScale, StyleGuideData } from '../../helpers/toolVisualTypes';
2
2
  export declare const needsWhiteText: (hex?: string) => boolean;
3
3
  export declare const SHADE_ORDER: string[];
4
4
  export declare const sortedShades: (scale: ColorScale) => [string, string][];
@@ -1,4 +1,4 @@
1
- import { WireframeData } from '../../helpers/getWireframeResult';
1
+ import { WireframeData } from '../../helpers/toolVisualTypes';
2
2
  import { AiMode } from '../../../../types';
3
3
  export type AIWireframePreviewProps = WireframeData & {
4
4
  mode?: AiMode;
@@ -8,8 +8,8 @@ export type AssistantMessageProps = {
8
8
  actions?: AiMessage['actions'];
9
9
  steps?: AiMessageStep[];
10
10
  createdAt?: number;
11
- stagePreviewVersion?: number;
11
+ previewConceptVersion?: number;
12
12
  wireframeVersion?: number;
13
13
  };
14
- declare const AssistantMessage: ({ id, content, irrelevant, mode, usage, actions, steps, createdAt, stagePreviewVersion, wireframeVersion }: AssistantMessageProps) => import("react").JSX.Element;
14
+ declare const AssistantMessage: ({ id, content, irrelevant, mode, usage, actions, steps, createdAt, previewConceptVersion, wireframeVersion }: AssistantMessageProps) => import("react").JSX.Element;
15
15
  export default AssistantMessage;
@@ -1,8 +1,4 @@
1
- import { BrandData } from './getBrandResult';
2
- import { ColorPaletteData } from './getColorPaletteResult';
3
- import { PreviewData } from './getStagePreviewResult';
4
- import { StyleGuideData } from './getStyleGuideResult';
5
- import { WireframeData } from './getWireframeResult';
1
+ import { BrandData, ColorPaletteData, PreviewData, StyleGuideData, WireframeData } from './toolVisualTypes';
6
2
  import { Schema, Style } from '@plitzi/sdk-shared';
7
3
  import { AiToolCall } from '../../../types';
8
4
  type RenderElementData = {
@@ -0,0 +1,29 @@
1
+ import { ToolVisual } from './extractToolVisual';
2
+ import { AiLiveStep, AiMessageStep, AiToolCall } from '../../../types';
3
+ export type GroupedStep<S extends AiMessageStep | AiLiveStep> = {
4
+ type: 'thinking';
5
+ step: Extract<S, {
6
+ type: 'thinking';
7
+ }>;
8
+ key: string;
9
+ } | {
10
+ type: 'tools';
11
+ tools: AiToolCall[];
12
+ key: string;
13
+ visual?: ToolVisual;
14
+ } | {
15
+ type: 'resource';
16
+ step: Extract<S, {
17
+ type: 'resource';
18
+ }>;
19
+ key: string;
20
+ } | {
21
+ type: 'text';
22
+ step: Extract<S, {
23
+ type: 'text';
24
+ }>;
25
+ key: string;
26
+ };
27
+ declare function groupStepsIntoItems(steps: AiLiveStep[]): GroupedStep<AiLiveStep>[];
28
+ declare function groupStepsIntoItems(steps: AiMessageStep[]): GroupedStep<AiMessageStep>[];
29
+ export default groupStepsIntoItems;
@@ -0,0 +1,103 @@
1
+ import { Schema, Style } from '@plitzi/sdk-shared';
2
+ export type BrandTypeface = {
3
+ family: string;
4
+ weight?: string;
5
+ tracking?: string;
6
+ };
7
+ export type BrandData = {
8
+ name: string;
9
+ tagline?: string;
10
+ personality: string[];
11
+ colors: {
12
+ primary: string;
13
+ secondary?: string;
14
+ accent?: string;
15
+ background?: string;
16
+ surface?: string;
17
+ text?: string;
18
+ };
19
+ colorsDark?: {
20
+ primary?: string;
21
+ secondary?: string;
22
+ accent?: string;
23
+ background?: string;
24
+ surface?: string;
25
+ text?: string;
26
+ };
27
+ typography?: {
28
+ heading: BrandTypeface;
29
+ body: BrandTypeface;
30
+ };
31
+ voice?: {
32
+ tone: string;
33
+ keywords?: string[];
34
+ };
35
+ };
36
+ export type ColorItem = {
37
+ name: string;
38
+ hex: string;
39
+ darkHex?: string;
40
+ role?: string;
41
+ };
42
+ export type ColorPaletteData = {
43
+ name: string;
44
+ description?: string;
45
+ colors: ColorItem[];
46
+ };
47
+ export type PreviewData = {
48
+ baseElementId: string;
49
+ schema?: Pick<Schema, 'flat'>;
50
+ style?: Pick<Style, 'platform' | 'cache'>;
51
+ elements?: Array<Record<string, unknown>>;
52
+ html?: string;
53
+ };
54
+ export type WireframeData = {
55
+ baseElementId: string;
56
+ name: string;
57
+ description?: string;
58
+ schema?: Pick<Schema, 'flat'>;
59
+ style?: Pick<Style, 'platform' | 'cache'>;
60
+ html?: string;
61
+ };
62
+ export type NamedToken = {
63
+ name: string;
64
+ value: string;
65
+ };
66
+ export type ColorScale = Record<string, string>;
67
+ export type StyleGuideData = {
68
+ name: string;
69
+ description?: string;
70
+ colors: {
71
+ primary: ColorScale;
72
+ secondary?: ColorScale;
73
+ accent?: ColorScale;
74
+ neutral?: ColorScale;
75
+ semantic?: {
76
+ success?: string;
77
+ warning?: string;
78
+ error?: string;
79
+ info?: string;
80
+ };
81
+ };
82
+ colorsDark?: {
83
+ primary?: ColorScale;
84
+ secondary?: ColorScale;
85
+ accent?: ColorScale;
86
+ neutral?: ColorScale;
87
+ };
88
+ typography?: {
89
+ fontFamily: {
90
+ heading: string;
91
+ body: string;
92
+ };
93
+ scale?: Array<{
94
+ name: string;
95
+ size: string;
96
+ lineHeight: string;
97
+ weight?: string;
98
+ }>;
99
+ };
100
+ spacing?: NamedToken[];
101
+ borderRadius?: NamedToken[];
102
+ shadows?: NamedToken[];
103
+ };
@@ -3,8 +3,8 @@ import { AiMode } from '../../types';
3
3
  export type ToolVisualRendererProps = {
4
4
  visual: ToolVisual;
5
5
  mode?: AiMode;
6
- stagePreviewVersion?: number;
6
+ previewConceptVersion?: number;
7
7
  wireframeVersion?: number;
8
8
  };
9
- declare const ToolVisualRenderer: ({ visual, mode, stagePreviewVersion, wireframeVersion }: ToolVisualRendererProps) => import("react").JSX.Element;
9
+ declare const ToolVisualRenderer: ({ visual, mode, previewConceptVersion, wireframeVersion }: ToolVisualRendererProps) => import("react").JSX.Element;
10
10
  export default ToolVisualRenderer;
@@ -4,15 +4,17 @@ import { MouseEvent } from 'react';
4
4
  declare const pageFormSchema: z.ZodObject<{
5
5
  name: z.ZodString;
6
6
  slug: z.ZodString;
7
+ idRef: z.ZodString;
7
8
  pageFolder: z.ZodOptional<z.ZodString>;
8
9
  }, z.core.$strip>;
9
10
  export type PageFormProps = {
10
11
  name?: string;
11
12
  slug?: string;
13
+ idRef?: string;
12
14
  pageFolder?: string;
13
15
  pageFolders?: PageFolder[];
14
16
  onClose?: (e: MouseEvent) => void;
15
17
  onSubmit?: (e: MouseEvent | undefined, values: z.infer<typeof pageFormSchema>) => void;
16
18
  };
17
- declare const PageForm: ({ name, slug, pageFolder, pageFolders, onClose, onSubmit }: PageFormProps) => import("react").JSX.Element;
19
+ declare const PageForm: ({ name, slug, idRef, pageFolder, pageFolders, onClose, onSubmit }: PageFormProps) => import("react").JSX.Element;
18
20
  export default PageForm;
@@ -1,7 +1,10 @@
1
1
  import { Element } from '@plitzi/sdk-shared';
2
2
  export type ElementDefinitionSettingsProps = {
3
3
  definition: Element['definition'];
4
+ idRef?: string | null;
5
+ getIdRefConflict: (idRef: string) => string | null;
4
6
  onUpdate?: (key: string, value: string | boolean | number | object, isDefinition?: boolean) => void;
7
+ onUpdateRef: (value: string) => void;
5
8
  };
6
- declare const ElementDefinitionSettings: ({ definition, onUpdate }: ElementDefinitionSettingsProps) => import("react").JSX.Element;
9
+ declare const ElementDefinitionSettings: ({ definition, idRef, getIdRefConflict, onUpdate, onUpdateRef }: ElementDefinitionSettingsProps) => import("react").JSX.Element;
7
10
  export default ElementDefinitionSettings;
@@ -9,5 +9,5 @@ export type OverlayButtonContainerProps = {
9
9
  zoom?: number;
10
10
  onHoverRemove?: (hoverRemove: boolean) => void;
11
11
  };
12
- declare const OverlayButtonContainer: ({ id, element, container, width, hoverRemove, zoom, onHoverRemove }: OverlayButtonContainerProps) => import("react").JSX.Element;
13
- export default OverlayButtonContainer;
12
+ declare const _default: import('react').MemoExoticComponent<({ id, element, container, width, hoverRemove, zoom, onHoverRemove }: OverlayButtonContainerProps) => import("react").JSX.Element>;
13
+ export default _default;
@@ -7,5 +7,5 @@ export type OverlaySpacingProps = {
7
7
  elementDOM?: HTMLElement | null;
8
8
  zoom?: number;
9
9
  };
10
- declare const OverlaySpacing: ({ id, hoverRemove, hasItems, refIframe, elementDOM, zoom }: OverlaySpacingProps) => import("react").JSX.Element;
11
- export default OverlaySpacing;
10
+ declare const _default: import('react').MemoExoticComponent<({ id, hoverRemove, hasItems, refIframe, elementDOM, zoom }: OverlaySpacingProps) => import("react").JSX.Element>;
11
+ export default _default;
@@ -4,8 +4,7 @@ export type BindingSelected = {
4
4
  id?: string;
5
5
  sources?: Record<string, SourceMeta>;
6
6
  category?: string;
7
- fromPath?: string;
8
- toPath?: string;
7
+ to?: string;
9
8
  source?: string;
10
9
  transformers?: BindingTransformer[];
11
10
  when?: RuleGroup;
@@ -14,5 +13,5 @@ export type BindingSelected = {
14
13
  onUpdate?: (category: BindingCategory, id: string) => void;
15
14
  onRemove?: (category: BindingCategory, id: string) => void;
16
15
  };
17
- declare const BindingSelected: ({ id, sources, category, fromPath, toPath, source, transformers, when, enabled, onEnable, onUpdate, onRemove }: BindingSelected) => import("react").JSX.Element;
16
+ declare const BindingSelected: ({ id, sources, category, to, source, transformers, when, enabled, onEnable, onUpdate, onRemove }: BindingSelected) => import("react").JSX.Element;
18
17
  export default BindingSelected;
@@ -0,0 +1,17 @@
1
+ import { BindingTransformer, SourceMeta } from '@plitzi/sdk-shared';
2
+ export type WarningLevel = 'warning' | 'danger';
3
+ export interface BindingWarning {
4
+ level: WarningLevel;
5
+ message: string;
6
+ }
7
+ /** FontAwesome classes (icon + color) per level — same visual language as the interaction indicators. */
8
+ export declare const WARNING_ICON: Record<WarningLevel, string>;
9
+ /** The most severe level among a binding's warnings (danger beats warning), or undefined when there are none. */
10
+ export declare const worstLevel: (warnings: BindingWarning[]) => WarningLevel | undefined;
11
+ export type GetBindingWarningsProps = {
12
+ source?: string;
13
+ transformers?: BindingTransformer[];
14
+ sources?: Record<string, SourceMeta>;
15
+ };
16
+ declare const getBindingWarnings: ({ source, transformers, sources }: GetBindingWarningsProps) => BindingWarning[];
17
+ export default getBindingWarnings;
@@ -1,6 +1,3 @@
1
- declare const transformerString: (transformers?: {
2
- type: "unknown" | "utility";
3
- action: string;
4
- params: Record<string, any>;
5
- }[]) => string;
1
+ import { BindingTransformer } from '@plitzi/sdk-shared';
2
+ declare const transformerString: (transformers?: BindingTransformer[]) => string;
6
3
  export default transformerString;
@@ -3,16 +3,13 @@ import { Element, ElementBinding, SourceMeta } from '@plitzi/sdk-shared';
3
3
  export declare const bindingForm: z.ZodObject<{
4
4
  id: z.ZodString;
5
5
  source: z.ZodString;
6
- fromPath: z.ZodString;
7
- toPath: z.ZodString;
6
+ path: z.ZodString;
7
+ to: z.ZodString;
8
8
  when: z.ZodOptional<z.ZodAny>;
9
9
  transformers: z.ZodArray<z.ZodObject<{
10
- type: z.ZodEnum<{
11
- unknown: "unknown";
12
- utility: "utility";
13
- }>;
14
10
  action: z.ZodString;
15
- params: z.ZodRecord<z.ZodString, z.ZodAny>;
11
+ params: z.ZodRecord<z.ZodString, z.ZodString>;
12
+ enabled: z.ZodOptional<z.ZodBoolean>;
16
13
  }, z.core.$strip>>;
17
14
  }, z.core.$strip>;
18
15
  export type BindingSchema = z.infer<typeof bindingForm>;
@@ -1,9 +1,9 @@
1
1
  import { Element } from '@plitzi/sdk-shared';
2
2
  export type InteractionsProps = {
3
3
  className?: string;
4
- id?: string;
4
+ idRef?: string;
5
5
  interactions?: Element['definition']['interactions'];
6
6
  onChange?: (interactions: Element['definition']['interactions']) => void;
7
7
  };
8
- declare const Interactions: ({ className, id, interactions, onChange }: InteractionsProps) => import("react").JSX.Element;
8
+ declare const Interactions: ({ className, idRef, interactions, onChange }: InteractionsProps) => import("react").JSX.Element;
9
9
  export default Interactions;
@@ -1,5 +1,10 @@
1
+ import { WarningLevel } from './helpers/nodeWarnings';
1
2
  import { ElementInteraction } from '@plitzi/sdk-shared';
2
3
  import { Dispatch, SetStateAction } from 'react';
4
+ type FlowSummary = {
5
+ count: number;
6
+ level: WarningLevel | undefined;
7
+ };
3
8
  export type WorkflowHeaderProps = {
4
9
  flows: {
5
10
  id: string;
@@ -8,7 +13,8 @@ export type WorkflowHeaderProps = {
8
13
  nodes: Record<string, ElementInteraction>;
9
14
  }[];
10
15
  flowId?: string;
16
+ flowSummaries?: Record<string, FlowSummary | undefined>;
11
17
  setFlowId: Dispatch<SetStateAction<string | undefined>>;
12
18
  };
13
- declare const WorkflowHeader: ({ flows, flowId, setFlowId }: WorkflowHeaderProps) => import("react").JSX.Element;
19
+ declare const WorkflowHeader: ({ flows, flowId, flowSummaries, setFlowId }: WorkflowHeaderProps) => import("react").JSX.Element;
14
20
  export default WorkflowHeader;
@@ -0,0 +1,24 @@
1
+ import { ElementInteraction, InteractionCallback } from '@plitzi/sdk-shared';
2
+ type NodeShape = Pick<ElementInteraction, 'type' | 'action' | 'elementId'>;
3
+ export type WarningLevel = 'warning' | 'danger';
4
+ export interface NodeWarning {
5
+ level: WarningLevel;
6
+ message: string;
7
+ }
8
+ /** FontAwesome classes (icon + color) per level — shared by the node and flow indicators so they stay consistent. */
9
+ export declare const WARNING_ICON: Record<WarningLevel, string>;
10
+ /** The definition a stored node resolves to, matched by type, action and (for element callbacks) target — mirrors
11
+ * how WorkflowNode renders it. Undefined means the node points at nothing the runtime knows. */
12
+ export declare const findNodeDefinition: (node: NodeShape, nodeDefinitions: InteractionCallback[] | undefined) => InteractionCallback | undefined;
13
+ /** The node targets an element that exists but has no idRef (a flagged, unreferenced definition), so the runtime
14
+ * cannot wire it — surfaced separately from the generic "not recognized" case. */
15
+ export declare const isTargetUnreferenced: (node: Pick<ElementInteraction, "elementId">, nodeDefinitions: InteractionCallback[] | undefined) => boolean;
16
+ export declare const getNodeWarnings: (node: NodeShape, nodeDefinition: InteractionCallback | undefined, targetUnreferenced: boolean) => NodeWarning[];
17
+ /** The most severe level among a node's warnings (danger wins), or undefined when there are none. */
18
+ export declare const worstLevel: (warnings: NodeWarning[]) => WarningLevel | undefined;
19
+ /** Flow-level rollup: how many steps are malformed and the worst severity among them (drives the flow indicator). */
20
+ export declare const summarizeFlow: (nodes: Record<string, ElementInteraction>, nodeDefinitions: InteractionCallback[] | undefined) => {
21
+ count: number;
22
+ level: WarningLevel | undefined;
23
+ };
24
+ export {};
@@ -9,12 +9,14 @@ export declare const SegmentsActions: {
9
9
  readonly SEGMENTS_MOVE_ELEMENT: "SEGMENTS_MOVE_ELEMENT";
10
10
  readonly SEGMENTS_CLONE_ELEMENT: "SEGMENTS_CLONE_ELEMENT";
11
11
  readonly SEGMENTS_UPDATE_ELEMENT: "SEGMENTS_UPDATE_ELEMENT";
12
+ readonly SEGMENTS_UPDATE_ELEMENTS: "SEGMENTS_UPDATE_ELEMENTS";
12
13
  readonly SEGMENTS_SPACE_ADD_VARIABLE: "SEGMENTS_SPACE_ADD_VARIABLE";
13
14
  readonly SEGMENTS_SPACE_UPDATE_VARIABLE: "SEGMENTS_SPACE_UPDATE_VARIABLE";
14
15
  readonly SEGMENTS_SPACE_REMOVE_VARIABLE: "SEGMENTS_SPACE_REMOVE_VARIABLE";
15
16
  readonly SEGMENTS_STYLE_ADD_SELECTOR: "SEGMENTS_STYLE_ADD_SELECTOR";
16
17
  readonly SEGMENTS_STYLE_UPDATE_SELECTOR: "SEGMENTS_STYLE_UPDATE_SELECTOR";
17
18
  readonly SEGMENTS_STYLE_REMOVE_SELECTOR: "SEGMENTS_STYLE_REMOVE_SELECTOR";
19
+ readonly SEGMENTS_STYLE_REMOVE_SELECTORS: "SEGMENTS_STYLE_REMOVE_SELECTORS";
18
20
  readonly SEGMENTS_STYLE_ADD_SELECTOR_VARIABLE: "SEGMENTS_STYLE_ADD_SELECTOR_VARIABLE";
19
21
  readonly SEGMENTS_STYLE_UPDATE_SELECTOR_VARIABLE: "SEGMENTS_STYLE_UPDATE_SELECTOR_VARIABLE";
20
22
  readonly SEGMENTS_STYLE_REMOVE_SELECTOR_VARIABLE: "SEGMENTS_STYLE_REMOVE_SELECTOR_VARIABLE";
@@ -58,6 +60,9 @@ export type SegmentsReducerActions = ({
58
60
  } & SegmentsReducerActionsBase) | ({
59
61
  type: 'SEGMENTS_UPDATE_ELEMENT';
60
62
  element: Element;
63
+ } & SegmentsReducerActionsBase) | ({
64
+ type: 'SEGMENTS_UPDATE_ELEMENTS';
65
+ elements: Element[];
61
66
  } & SegmentsReducerActionsBase) | ({
62
67
  type: 'SEGMENTS_SPACE_ADD_VARIABLE' | 'SEGMENTS_SPACE_UPDATE_VARIABLE';
63
68
  variable: SchemaVariable;
@@ -93,6 +98,10 @@ export type SegmentsReducerActions = ({
93
98
  type: 'SEGMENTS_STYLE_REMOVE_SELECTOR';
94
99
  displayMode: DisplayMode;
95
100
  selector: string;
101
+ } & SegmentsReducerActionsBase) | ({
102
+ type: 'SEGMENTS_STYLE_REMOVE_SELECTORS';
103
+ displayMode: DisplayMode;
104
+ selectors: string[];
96
105
  } & SegmentsReducerActionsBase) | ({
97
106
  type: 'SEGMENTS_STYLE_ADD_SELECTOR_VARIABLE' | 'SEGMENTS_STYLE_UPDATE_SELECTOR_VARIABLE';
98
107
  displayMode: DisplayMode;
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "@plitzi/plitzi-builder",
3
- "version": "0.32.5",
3
+ "version": "0.32.7",
4
4
  "homepage": "./",
5
5
  "license": "AGPL-3.0",
6
6
  "files": [
@@ -26,11 +26,11 @@ declare const _default: {
26
26
  "./plitzi-builder-dev-vendor.js.map": "./dist/plitzi-builder-dev-vendor.js.map"
27
27
  },
28
28
  "dependencies": {
29
- "@apollo/client": "^4.2.6",
30
- "@fortawesome/fontawesome-free": "^7.3.0",
29
+ "@apollo/client": "^4.2.7",
30
+ "@fortawesome/fontawesome-free": "^7.3.1",
31
31
  "@plitzi/nexus": "workspace:*",
32
32
  "@plitzi/plitzi-sdk": "workspace:*",
33
- "@plitzi/plitzi-ui": "^1.6.13",
33
+ "@plitzi/plitzi-ui": "^1.6.17",
34
34
  "@plitzi/sdk-auth": "workspace:*",
35
35
  "@plitzi/sdk-collections": "workspace:*",
36
36
  "@plitzi/sdk-dev-tools": "workspace:*",
@@ -43,18 +43,17 @@ declare const _default: {
43
43
  "@plitzi/sdk-shared": "workspace:*",
44
44
  "@plitzi/sdk-style": "workspace:*",
45
45
  "@plitzi/sdk-variables": "workspace:*",
46
- "@tanstack/react-virtual": "^3.14.5",
46
+ "@tanstack/react-virtual": "^3.14.8",
47
47
  "@xyflow/react": "^12.11.2",
48
48
  "apollo-upload-client": "^19.0.0",
49
49
  "clsx": "^2.1.1",
50
50
  "graphql": "^17.0.2",
51
- "graphql-ws": "^6.1.0",
52
- "immer": "^11.1.11",
51
+ "graphql-ws": "^6.1.1",
52
+ "immer": "^11.1.15",
53
53
  "jszip": "^3.10.1",
54
- "react-hook-form": "^7.81.0",
54
+ "react-hook-form": "^7.82.0",
55
55
  "react-router-dom": "^7.18.1",
56
56
  "swr": "^2.4.2",
57
- "twig": "^3.0.0",
58
57
  "uuid": "^14.0.1",
59
58
  "zod": "^4.4.3"
60
59
  },
@@ -73,30 +72,30 @@ declare const _default: {
73
72
  "@babel/polyfill": "^7.12.1",
74
73
  "@babel/preset-env": "^8.0.2",
75
74
  "@babel/preset-react": "^8.0.1",
76
- "@tailwindcss/postcss": "^4.3.2",
75
+ "@tailwindcss/postcss": "^4.3.3",
77
76
  "css-loader": "^7.1.4",
78
- "cypress": "15.18.1",
79
- "eslint": "^9.39.4",
77
+ "cypress": "15.19.0",
78
+ "eslint": "^9.39.5",
80
79
  "eslint-plugin-import": "^2.32.0",
81
- "flow-bin": "^0.322.0",
82
- "postcss": "^8.5.17",
80
+ "flow-bin": "^0.323.0",
81
+ "postcss": "^8.5.22",
83
82
  "postcss-loader": "^8.2.1",
84
83
  "postcss-scss": "^4.0.9",
85
- "prettier": "^3.9.5",
84
+ "prettier": "^3.9.6",
86
85
  "prop-types": "^15.8.1",
87
- "react": "^19.2.7",
88
- "react-dom": "^19.2.7",
86
+ "react": "^19.2.8",
87
+ "react-dom": "^19.2.8",
89
88
  "react-refresh": "^0.18.0",
90
- "react-test-renderer": "^19.2.7",
91
- "sass": "^1.101.0",
89
+ "react-test-renderer": "^19.2.8",
90
+ "sass": "^1.101.6",
92
91
  "sass-embedded": "^1.100.0",
93
92
  "sass-loader": "^17.0.0",
94
- "stylelint": "^17.14.0",
93
+ "stylelint": "^17.14.1",
95
94
  "stylelint-order": "^8.1.1",
96
95
  "stylelint-scss": "^7.2.0",
97
96
  "terser": "^5.49.0",
98
97
  "typescript": "^6.0.3",
99
- "vite": "^8.1.4",
98
+ "vite": "^8.1.5",
100
99
  "vite-plugin-dts": "^5.0.3",
101
100
  "vite-plugin-ejs": "^2.0.0",
102
101
  "vite-plugin-mkcert": "^2.1.0",