@uipath/apollo-wind 0.10.0-pr219.4de07ef → 0.10.0-pr219.56d6495

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 (81) hide show
  1. package/dist/components/custom/canvas-studio.cjs +133 -0
  2. package/dist/components/custom/canvas-studio.d.ts +99 -0
  3. package/dist/components/custom/canvas-studio.js +93 -0
  4. package/dist/components/custom/chat-prompt-suggestions.cjs +1 -0
  5. package/dist/components/custom/chat-prompt-suggestions.js +1 -0
  6. package/dist/components/custom/chat-steps-view.cjs +1 -0
  7. package/dist/components/custom/chat-steps-view.js +1 -0
  8. package/dist/components/custom/flow-properties-bar.cjs +2 -0
  9. package/dist/components/custom/flow-properties-bar.js +2 -0
  10. package/dist/components/custom/flow-properties-expanded.cjs +7 -3
  11. package/dist/components/custom/flow-properties-expanded.d.ts +3 -1
  12. package/dist/components/custom/flow-properties-expanded.js +7 -3
  13. package/dist/components/custom/flow-properties-simple.cjs +7 -0
  14. package/dist/components/custom/flow-properties-simple.js +7 -0
  15. package/dist/components/custom/global-header.cjs +10 -3
  16. package/dist/components/custom/global-header.d.ts +2 -2
  17. package/dist/components/custom/global-header.js +10 -3
  18. package/dist/components/custom/page-header.cjs +92 -0
  19. package/dist/components/custom/page-header.d.ts +43 -0
  20. package/dist/components/custom/page-header.js +58 -0
  21. package/dist/components/custom/panel-delegate.cjs +5 -0
  22. package/dist/components/custom/panel-delegate.js +5 -0
  23. package/dist/components/custom/panel-flow.cjs +2 -0
  24. package/dist/components/custom/panel-flow.js +2 -0
  25. package/dist/components/custom/panel-maestro.cjs +5 -4
  26. package/dist/components/custom/panel-maestro.d.ts +2 -2
  27. package/dist/components/custom/panel-maestro.js +3 -2
  28. package/dist/components/custom/panel-studio.cjs +122 -0
  29. package/dist/components/custom/panel-studio.d.ts +48 -0
  30. package/dist/components/custom/panel-studio.js +85 -0
  31. package/dist/components/custom/toolbar-canvas.cjs +3 -0
  32. package/dist/components/custom/toolbar-canvas.js +3 -0
  33. package/dist/components/custom/toolbar-view.cjs +2 -0
  34. package/dist/components/custom/toolbar-view.js +2 -0
  35. package/dist/components/forms/field-renderer.cjs +3 -1
  36. package/dist/components/forms/field-renderer.js +3 -1
  37. package/dist/components/forms/form-designer.cjs +13 -2
  38. package/dist/components/forms/form-designer.js +13 -2
  39. package/dist/components/forms/rules-engine.d.ts +1 -1
  40. package/dist/components/ui/breadcrumb.cjs +1 -2
  41. package/dist/components/ui/breadcrumb.js +1 -2
  42. package/dist/components/ui/button-group.cjs +5 -3
  43. package/dist/components/ui/button-group.d.ts +2 -2
  44. package/dist/components/ui/button-group.js +5 -3
  45. package/dist/components/ui/chart.cjs +20 -15
  46. package/dist/components/ui/chart.d.ts +2 -2
  47. package/dist/components/ui/chart.js +20 -15
  48. package/dist/components/ui/code-block.cjs +234 -0
  49. package/dist/components/ui/code-block.d.ts +48 -0
  50. package/dist/components/ui/code-block.js +200 -0
  51. package/dist/components/ui/data-table.cjs +8 -2
  52. package/dist/components/ui/data-table.d.ts +3 -3
  53. package/dist/components/ui/data-table.js +8 -2
  54. package/dist/components/ui/editable-cell.cjs +3 -10
  55. package/dist/components/ui/editable-cell.js +3 -10
  56. package/dist/components/ui/file-upload.cjs +8 -0
  57. package/dist/components/ui/file-upload.js +8 -0
  58. package/dist/components/ui/index.cjs +6 -6
  59. package/dist/components/ui/multi-select.cjs +3 -10
  60. package/dist/components/ui/multi-select.js +3 -10
  61. package/dist/components/ui/pagination.cjs +0 -1
  62. package/dist/components/ui/pagination.js +0 -1
  63. package/dist/components/ui/resizable.d.ts +1 -1
  64. package/dist/components/ui/tree-view.cjs +21 -5
  65. package/dist/components/ui/tree-view.js +21 -5
  66. package/dist/foundation/Future/colors.cjs +6 -6
  67. package/dist/foundation/Future/colors.d.ts +10 -10
  68. package/dist/foundation/Future/colors.js +4 -4
  69. package/dist/foundation/Future/types.d.ts +16 -9
  70. package/dist/index.cjs +13 -9
  71. package/dist/index.d.ts +2 -0
  72. package/dist/index.js +2 -1
  73. package/dist/src/foundation/Future/themes.css +24 -116
  74. package/dist/styles.css +417 -203
  75. package/dist/tailwind.css +871 -88
  76. package/dist/templates/Admin/template-admin.d.ts +8 -27
  77. package/dist/templates/Delegate/template-delegate.d.ts +2 -2
  78. package/dist/templates/Flow/template-flow.d.ts +8 -3
  79. package/dist/templates/Maestro/template-maestro.d.ts +6 -6
  80. package/dist/templates/Studio/template-studio.d.ts +102 -0
  81. package/package.json +5 -3
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ StudioGrid: ()=>StudioGrid,
28
+ StudioCanvas: ()=>StudioCanvas,
29
+ StudioGridItem: ()=>StudioGridItem
30
+ });
31
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
32
+ const external_react_namespaceObject = require("react");
33
+ const index_cjs_namespaceObject = require("../../lib/index.cjs");
34
+ const paddingClasses = {
35
+ none: '',
36
+ sm: 'p-4',
37
+ md: 'p-6',
38
+ lg: 'p-8'
39
+ };
40
+ const canvasBackgroundClasses = {
41
+ raised: 'bg-surface-raised',
42
+ surface: 'bg-surface',
43
+ transparent: 'bg-transparent'
44
+ };
45
+ function StudioCanvas({ children, className, padding = 'md', background = 'raised', fullWidth = false }) {
46
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
47
+ className: (0, index_cjs_namespaceObject.cn)('relative flex-1', canvasBackgroundClasses[background], className),
48
+ "data-canvas": true,
49
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
50
+ className: (0, index_cjs_namespaceObject.cn)('absolute inset-0 overflow-y-auto', paddingClasses[padding]),
51
+ children: fullWidth ? children : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
52
+ className: "flex justify-center",
53
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
54
+ className: "w-[760px] max-w-full",
55
+ children: children
56
+ })
57
+ })
58
+ })
59
+ });
60
+ }
61
+ const gridColsClasses = {
62
+ 1: 'grid-cols-1',
63
+ 2: 'grid-cols-2',
64
+ 3: 'grid-cols-3',
65
+ 4: 'grid-cols-4',
66
+ 6: 'grid-cols-6',
67
+ 12: 'grid-cols-12'
68
+ };
69
+ const gridGapClasses = {
70
+ none: '',
71
+ sm: 'gap-2',
72
+ md: 'gap-4',
73
+ lg: 'gap-6'
74
+ };
75
+ function StudioGrid({ children, cols = 12, gap = 'md', className }) {
76
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
77
+ className: (0, index_cjs_namespaceObject.cn)('grid', gridColsClasses[cols], gridGapClasses[gap], className),
78
+ children: children
79
+ });
80
+ }
81
+ const itemColSpanClasses = {
82
+ 1: 'col-span-1',
83
+ 2: 'col-span-2',
84
+ 3: 'col-span-3',
85
+ 4: 'col-span-4',
86
+ 6: 'col-span-6',
87
+ 12: 'col-span-12'
88
+ };
89
+ const itemBackgroundClasses = {
90
+ surface: 'bg-surface',
91
+ raised: 'bg-surface-raised',
92
+ transparent: 'bg-transparent'
93
+ };
94
+ function StudioGridItem({ children, cols = 12, className, background = 'surface', padding = 'md', border = true, canvasResponsive = false }) {
95
+ const [canvasWidth, setCanvasWidth] = external_react_namespaceObject.useState(0);
96
+ const itemRef = external_react_namespaceObject.useRef(null);
97
+ external_react_namespaceObject.useEffect(()=>{
98
+ if (!canvasResponsive) return;
99
+ const update = ()=>{
100
+ const canvas = itemRef.current?.closest('[data-canvas]');
101
+ if (canvas) setCanvasWidth(canvas.offsetWidth);
102
+ };
103
+ update();
104
+ window.addEventListener('resize', update);
105
+ const ro = new ResizeObserver(update);
106
+ const canvas = itemRef.current?.closest('[data-canvas]');
107
+ if (canvas) ro.observe(canvas);
108
+ return ()=>{
109
+ window.removeEventListener('resize', update);
110
+ ro.disconnect();
111
+ };
112
+ }, [
113
+ canvasResponsive
114
+ ]);
115
+ const responsiveColClass = canvasResponsive ? canvasWidth < 768 ? 'col-span-12' : canvasWidth < 1024 ? 'col-span-6' : 'col-span-3' : itemColSpanClasses[cols];
116
+ const hasExplicitColSpan = className?.includes('col-span-');
117
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
118
+ ref: itemRef,
119
+ className: (0, index_cjs_namespaceObject.cn)(!hasExplicitColSpan && responsiveColClass, itemBackgroundClasses[background], paddingClasses[padding], border && 'rounded-lg border border-border-subtle', className),
120
+ children: children
121
+ });
122
+ }
123
+ exports.StudioCanvas = __webpack_exports__.StudioCanvas;
124
+ exports.StudioGrid = __webpack_exports__.StudioGrid;
125
+ exports.StudioGridItem = __webpack_exports__.StudioGridItem;
126
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
127
+ "StudioCanvas",
128
+ "StudioGrid",
129
+ "StudioGridItem"
130
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
131
+ Object.defineProperty(exports, '__esModule', {
132
+ value: true
133
+ });
@@ -0,0 +1,99 @@
1
+ import * as React from 'react';
2
+ declare const paddingClasses: {
3
+ readonly none: "";
4
+ readonly sm: "p-4";
5
+ readonly md: "p-6";
6
+ readonly lg: "p-8";
7
+ };
8
+ type PaddingSize = keyof typeof paddingClasses;
9
+ export interface StudioCanvasProps {
10
+ children?: React.ReactNode;
11
+ className?: string;
12
+ /**
13
+ * Outer padding applied to the scrollable area.
14
+ * @default 'md' (1.5rem / 24px)
15
+ */
16
+ padding?: PaddingSize;
17
+ /**
18
+ * Background of the canvas workspace.
19
+ * - `'raised'` — slightly elevated surface (default, differentiates from panels)
20
+ * - `'surface'` — base surface color
21
+ * - `'transparent'` — no background
22
+ */
23
+ background?: 'raised' | 'surface' | 'transparent';
24
+ /**
25
+ * When true, content fills the full canvas width instead of being
26
+ * centered in a 760px column. Use for data-dense layouts like tables.
27
+ */
28
+ fullWidth?: boolean;
29
+ }
30
+ /**
31
+ * Center canvas for the Studio template.
32
+ *
33
+ * - Fills remaining horizontal space between panels (`flex-1 relative`)
34
+ * - Scrolls independently via `absolute inset-0 overflow-y-auto`
35
+ * - Centers content in a `w-[760px] max-w-full` column
36
+ * - `data-canvas` attribute allows `StudioGridItem` canvasResponsive tracking
37
+ *
38
+ * Usage:
39
+ * ```tsx
40
+ * <StudioCanvas>
41
+ * <StudioGrid>
42
+ * <StudioGridItem>...</StudioGridItem>
43
+ * </StudioGrid>
44
+ * </StudioCanvas>
45
+ * ```
46
+ */
47
+ export declare function StudioCanvas({ children, className, padding, background, fullWidth, }: StudioCanvasProps): import("react/jsx-runtime").JSX.Element;
48
+ export interface StudioGridProps {
49
+ children: React.ReactNode;
50
+ /** Number of columns in the grid. Default 12. */
51
+ cols?: 1 | 2 | 3 | 4 | 6 | 12;
52
+ /** Gap between grid cells. Default 'md'. */
53
+ gap?: 'none' | 'sm' | 'md' | 'lg';
54
+ className?: string;
55
+ }
56
+ /**
57
+ * Grid wrapper for use inside `StudioCanvas`.
58
+ *
59
+ * Defaults to a 12-column grid with md gap. Pair with `StudioGridItem`.
60
+ */
61
+ export declare function StudioGrid({ children, cols, gap, className }: StudioGridProps): import("react/jsx-runtime").JSX.Element;
62
+ export interface StudioGridItemProps {
63
+ children: React.ReactNode;
64
+ /**
65
+ * Column span within the parent `StudioGrid`.
66
+ * Ignored if `className` already contains a `col-span-*` class,
67
+ * or if `canvasResponsive` is true (canvas width drives the span).
68
+ * @default 12
69
+ */
70
+ cols?: 1 | 2 | 3 | 4 | 6 | 12;
71
+ className?: string;
72
+ /**
73
+ * Background of the grid item card.
74
+ * - `'surface'` — base surface color (default, card-like)
75
+ * - `'raised'` — elevated surface
76
+ * - `'transparent'` — no background
77
+ */
78
+ background?: 'surface' | 'raised' | 'transparent';
79
+ /** Padding inside the card. Default 'md'. */
80
+ padding?: PaddingSize;
81
+ /** Render a border and rounded corners around the card. Default true. */
82
+ border?: boolean;
83
+ /**
84
+ * When true, the item measures the nearest `[data-canvas]` ancestor width
85
+ * and overrides `cols` with a responsive span:
86
+ * - < 768px → col-span-12 (full width)
87
+ * - < 1024px → col-span-6 (half width)
88
+ * - ≥ 1024px → col-span-3 (quarter width)
89
+ */
90
+ canvasResponsive?: boolean;
91
+ }
92
+ /**
93
+ * Grid cell for use inside `StudioGrid`.
94
+ *
95
+ * Renders a card-like container with configurable background, padding, and border.
96
+ * Set `canvasResponsive` to automatically resize based on the canvas width.
97
+ */
98
+ export declare function StudioGridItem({ children, cols, className, background, padding, border, canvasResponsive, }: StudioGridItemProps): import("react/jsx-runtime").JSX.Element;
99
+ export {};
@@ -0,0 +1,93 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from "react";
3
+ import { cn } from "../../lib/index.js";
4
+ const paddingClasses = {
5
+ none: '',
6
+ sm: 'p-4',
7
+ md: 'p-6',
8
+ lg: 'p-8'
9
+ };
10
+ const canvasBackgroundClasses = {
11
+ raised: 'bg-surface-raised',
12
+ surface: 'bg-surface',
13
+ transparent: 'bg-transparent'
14
+ };
15
+ function StudioCanvas({ children, className, padding = 'md', background = 'raised', fullWidth = false }) {
16
+ return /*#__PURE__*/ jsx("div", {
17
+ className: cn('relative flex-1', canvasBackgroundClasses[background], className),
18
+ "data-canvas": true,
19
+ children: /*#__PURE__*/ jsx("div", {
20
+ className: cn('absolute inset-0 overflow-y-auto', paddingClasses[padding]),
21
+ children: fullWidth ? children : /*#__PURE__*/ jsx("div", {
22
+ className: "flex justify-center",
23
+ children: /*#__PURE__*/ jsx("div", {
24
+ className: "w-[760px] max-w-full",
25
+ children: children
26
+ })
27
+ })
28
+ })
29
+ });
30
+ }
31
+ const gridColsClasses = {
32
+ 1: 'grid-cols-1',
33
+ 2: 'grid-cols-2',
34
+ 3: 'grid-cols-3',
35
+ 4: 'grid-cols-4',
36
+ 6: 'grid-cols-6',
37
+ 12: 'grid-cols-12'
38
+ };
39
+ const gridGapClasses = {
40
+ none: '',
41
+ sm: 'gap-2',
42
+ md: 'gap-4',
43
+ lg: 'gap-6'
44
+ };
45
+ function StudioGrid({ children, cols = 12, gap = 'md', className }) {
46
+ return /*#__PURE__*/ jsx("div", {
47
+ className: cn('grid', gridColsClasses[cols], gridGapClasses[gap], className),
48
+ children: children
49
+ });
50
+ }
51
+ const itemColSpanClasses = {
52
+ 1: 'col-span-1',
53
+ 2: 'col-span-2',
54
+ 3: 'col-span-3',
55
+ 4: 'col-span-4',
56
+ 6: 'col-span-6',
57
+ 12: 'col-span-12'
58
+ };
59
+ const itemBackgroundClasses = {
60
+ surface: 'bg-surface',
61
+ raised: 'bg-surface-raised',
62
+ transparent: 'bg-transparent'
63
+ };
64
+ function StudioGridItem({ children, cols = 12, className, background = 'surface', padding = 'md', border = true, canvasResponsive = false }) {
65
+ const [canvasWidth, setCanvasWidth] = useState(0);
66
+ const itemRef = useRef(null);
67
+ useEffect(()=>{
68
+ if (!canvasResponsive) return;
69
+ const update = ()=>{
70
+ const canvas = itemRef.current?.closest('[data-canvas]');
71
+ if (canvas) setCanvasWidth(canvas.offsetWidth);
72
+ };
73
+ update();
74
+ window.addEventListener('resize', update);
75
+ const ro = new ResizeObserver(update);
76
+ const canvas = itemRef.current?.closest('[data-canvas]');
77
+ if (canvas) ro.observe(canvas);
78
+ return ()=>{
79
+ window.removeEventListener('resize', update);
80
+ ro.disconnect();
81
+ };
82
+ }, [
83
+ canvasResponsive
84
+ ]);
85
+ const responsiveColClass = canvasResponsive ? canvasWidth < 768 ? 'col-span-12' : canvasWidth < 1024 ? 'col-span-6' : 'col-span-3' : itemColSpanClasses[cols];
86
+ const hasExplicitColSpan = className?.includes('col-span-');
87
+ return /*#__PURE__*/ jsx("div", {
88
+ ref: itemRef,
89
+ className: cn(!hasExplicitColSpan && responsiveColClass, itemBackgroundClasses[background], paddingClasses[padding], border && 'rounded-lg border border-border-subtle', className),
90
+ children: children
91
+ });
92
+ }
93
+ export { StudioCanvas, StudioGrid, StudioGridItem };
@@ -33,6 +33,7 @@ function PromptSuggestions({ className, suggestions = [], onSelect }) {
33
33
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
34
34
  className: (0, index_cjs_namespaceObject.cn)('flex flex-col items-start gap-2', className),
35
35
  children: suggestions.map((suggestion)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
36
+ type: "button",
36
37
  className: "flex h-10 items-center rounded-xl border border-border bg-surface-overlay px-4 py-2.5 text-sm font-medium leading-5 text-foreground transition-colors hover:bg-surface-hover",
37
38
  onClick: ()=>onSelect?.(suggestion),
38
39
  children: suggestion.label
@@ -5,6 +5,7 @@ function PromptSuggestions({ className, suggestions = [], onSelect }) {
5
5
  return /*#__PURE__*/ jsx("div", {
6
6
  className: cn('flex flex-col items-start gap-2', className),
7
7
  children: suggestions.map((suggestion)=>/*#__PURE__*/ jsx("button", {
8
+ type: "button",
8
9
  className: "flex h-10 items-center rounded-xl border border-border bg-surface-overlay px-4 py-2.5 text-sm font-medium leading-5 text-foreground transition-colors hover:bg-surface-hover",
9
10
  onClick: ()=>onSelect?.(suggestion),
10
11
  children: suggestion.label
@@ -60,6 +60,7 @@ function StatItem({ value, label }) {
60
60
  }
61
61
  function ActionButton({ icon, label, onClick }) {
62
62
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("button", {
63
+ type: "button",
63
64
  className: "flex h-10 items-center gap-2 rounded-xl border border-border px-4 py-2 text-sm font-medium leading-5 text-foreground-subtle transition-colors hover:border-border-hover hover:text-foreground-hover",
64
65
  onClick: onClick,
65
66
  children: [
@@ -32,6 +32,7 @@ function StatItem({ value, label }) {
32
32
  }
33
33
  function ActionButton({ icon, label, onClick }) {
34
34
  return /*#__PURE__*/ jsxs("button", {
35
+ type: "button",
35
36
  className: "flex h-10 items-center gap-2 rounded-xl border border-border px-4 py-2 text-sm font-medium leading-5 text-foreground-subtle transition-colors hover:border-border-hover hover:text-foreground-hover",
36
37
  onClick: onClick,
37
38
  children: [
@@ -61,6 +61,7 @@ function PropertiesBar({ className, flowName = 'Invoice processing', flowType =
61
61
  className: "flex h-10 items-center rounded-xl bg-surface-overlay border border-border-deep p-1",
62
62
  children: [
63
63
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("button", {
64
+ type: "button",
64
65
  className: (0, index_cjs_namespaceObject.cn)('flex h-8 items-center gap-2 rounded-[10px] px-4 py-2 text-sm font-medium leading-5 text-foreground-subtle transition-colors hover:text-foreground-hover', 'properties' === activeTab && 'text-foreground-subtle'),
65
66
  onClick: ()=>{
66
67
  onTabChange?.('properties');
@@ -76,6 +77,7 @@ function PropertiesBar({ className, flowName = 'Invoice processing', flowType =
76
77
  ]
77
78
  }),
78
79
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("button", {
80
+ type: "button",
79
81
  className: (0, index_cjs_namespaceObject.cn)('flex h-7 items-center gap-2 rounded-xl px-4 py-2 text-sm font-medium leading-5 text-foreground-subtle transition-colors', 'variables' === activeTab && 'text-foreground-subtle'),
80
82
  onClick: ()=>onTabChange?.('variables'),
81
83
  children: [
@@ -33,6 +33,7 @@ function PropertiesBar({ className, flowName = 'Invoice processing', flowType =
33
33
  className: "flex h-10 items-center rounded-xl bg-surface-overlay border border-border-deep p-1",
34
34
  children: [
35
35
  /*#__PURE__*/ jsxs("button", {
36
+ type: "button",
36
37
  className: cn('flex h-8 items-center gap-2 rounded-[10px] px-4 py-2 text-sm font-medium leading-5 text-foreground-subtle transition-colors hover:text-foreground-hover', 'properties' === activeTab && 'text-foreground-subtle'),
37
38
  onClick: ()=>{
38
39
  onTabChange?.('properties');
@@ -48,6 +49,7 @@ function PropertiesBar({ className, flowName = 'Invoice processing', flowType =
48
49
  ]
49
50
  }),
50
51
  /*#__PURE__*/ jsxs("button", {
52
+ type: "button",
51
53
  className: cn('flex h-7 items-center gap-2 rounded-xl px-4 py-2 text-sm font-medium leading-5 text-foreground-subtle transition-colors', 'variables' === activeTab && 'text-foreground-subtle'),
52
54
  onClick: ()=>onTabChange?.('variables'),
53
55
  children: [
@@ -33,6 +33,7 @@ const index_cjs_namespaceObject = require("../../lib/index.cjs");
33
33
  const button_cjs_namespaceObject = require("../ui/button.cjs");
34
34
  function MiniTab({ label, active, onClick }) {
35
35
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
36
+ type: "button",
36
37
  className: (0, index_cjs_namespaceObject.cn)('flex h-6 items-center rounded-lg px-2 text-xs font-medium leading-5', active ? 'bg-surface text-foreground' : 'text-foreground-subtle'),
37
38
  onClick: onClick,
38
39
  children: label
@@ -104,7 +105,7 @@ const outputJsonLines = [
104
105
  ' "confidence": 0.96',
105
106
  '}'
106
107
  ];
107
- function PropertiesExpanded({ className, nodeName = 'Validate invoice', nodeType = 'AI Agent', activeTab = 'properties', onClose }) {
108
+ function PropertiesExpanded({ className, nodeName = 'Validate invoice', nodeType = 'AI Agent', activeTab = 'properties', onTabChange, onClose }) {
108
109
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
109
110
  className: (0, index_cjs_namespaceObject.cn)('flex w-[930px] shrink-0 flex-col rounded-2xl bg-surface-raised', className),
110
111
  children: [
@@ -142,7 +143,9 @@ function PropertiesExpanded({ className, nodeName = 'Validate invoice', nodeType
142
143
  className: "flex h-10 items-center rounded-xl border border-border-deep bg-surface-overlay p-1",
143
144
  children: [
144
145
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("button", {
146
+ type: "button",
145
147
  className: (0, index_cjs_namespaceObject.cn)('flex h-8 items-center gap-2 rounded-[10px] px-3 py-2 text-sm font-medium leading-5 transition-colors', 'properties' === activeTab ? 'border border-border bg-surface text-foreground' : 'text-foreground-subtle'),
148
+ onClick: ()=>onTabChange?.('properties'),
146
149
  children: [
147
150
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_lucide_react_namespaceObject.TableProperties, {
148
151
  className: "h-5 w-5"
@@ -153,7 +156,9 @@ function PropertiesExpanded({ className, nodeName = 'Validate invoice', nodeType
153
156
  ]
154
157
  }),
155
158
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("button", {
159
+ type: "button",
156
160
  className: (0, index_cjs_namespaceObject.cn)('flex h-8 items-center gap-2 rounded-[10px] px-3 py-2 text-sm font-medium leading-5 transition-colors', 'variables' === activeTab ? 'border border-border bg-surface text-foreground' : 'text-foreground-subtle'),
161
+ onClick: ()=>onTabChange?.('variables'),
157
162
  children: [
158
163
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_lucide_react_namespaceObject.Variable, {
159
164
  className: "h-5 w-5"
@@ -190,9 +195,8 @@ function PropertiesExpanded({ className, nodeName = 'Validate invoice', nodeType
190
195
  "aria-label": "Toggle panel dock",
191
196
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_lucide_react_namespaceObject.PanelRightOpen, {})
192
197
  }),
193
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
198
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("fieldset", {
194
199
  className: "flex h-10 items-center rounded-xl border border-border-deep bg-surface-overlay p-1",
195
- role: "group",
196
200
  "aria-label": "Layout toggle",
197
201
  children: [
198
202
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
@@ -6,6 +6,8 @@ export interface PropertiesExpandedProps {
6
6
  nodeType?: string;
7
7
  /** Active top tab: 'properties' | 'variables' */
8
8
  activeTab?: 'properties' | 'variables';
9
+ /** Callback when top tab is changed */
10
+ onTabChange?: (tab: 'properties' | 'variables') => void;
9
11
  /** Callback when close button is clicked */
10
12
  onClose?: () => void;
11
13
  }
@@ -16,4 +18,4 @@ export interface PropertiesExpandedProps {
16
18
  * and input/output split view. Sits on the right side of the canvas.
17
19
  * Functionality will be built out in a future update.
18
20
  */
19
- export declare function PropertiesExpanded({ className, nodeName, nodeType, activeTab, onClose, }: PropertiesExpandedProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare function PropertiesExpanded({ className, nodeName, nodeType, activeTab, onTabChange, onClose, }: PropertiesExpandedProps): import("react/jsx-runtime").JSX.Element;
@@ -5,6 +5,7 @@ import { cn } from "../../lib/index.js";
5
5
  import { Button } from "../ui/button.js";
6
6
  function MiniTab({ label, active, onClick }) {
7
7
  return /*#__PURE__*/ jsx("button", {
8
+ type: "button",
8
9
  className: cn('flex h-6 items-center rounded-lg px-2 text-xs font-medium leading-5', active ? 'bg-surface text-foreground' : 'text-foreground-subtle'),
9
10
  onClick: onClick,
10
11
  children: label
@@ -76,7 +77,7 @@ const outputJsonLines = [
76
77
  ' "confidence": 0.96',
77
78
  '}'
78
79
  ];
79
- function PropertiesExpanded({ className, nodeName = 'Validate invoice', nodeType = 'AI Agent', activeTab = 'properties', onClose }) {
80
+ function PropertiesExpanded({ className, nodeName = 'Validate invoice', nodeType = 'AI Agent', activeTab = 'properties', onTabChange, onClose }) {
80
81
  return /*#__PURE__*/ jsxs("div", {
81
82
  className: cn('flex w-[930px] shrink-0 flex-col rounded-2xl bg-surface-raised', className),
82
83
  children: [
@@ -114,7 +115,9 @@ function PropertiesExpanded({ className, nodeName = 'Validate invoice', nodeType
114
115
  className: "flex h-10 items-center rounded-xl border border-border-deep bg-surface-overlay p-1",
115
116
  children: [
116
117
  /*#__PURE__*/ jsxs("button", {
118
+ type: "button",
117
119
  className: cn('flex h-8 items-center gap-2 rounded-[10px] px-3 py-2 text-sm font-medium leading-5 transition-colors', 'properties' === activeTab ? 'border border-border bg-surface text-foreground' : 'text-foreground-subtle'),
120
+ onClick: ()=>onTabChange?.('properties'),
118
121
  children: [
119
122
  /*#__PURE__*/ jsx(TableProperties, {
120
123
  className: "h-5 w-5"
@@ -125,7 +128,9 @@ function PropertiesExpanded({ className, nodeName = 'Validate invoice', nodeType
125
128
  ]
126
129
  }),
127
130
  /*#__PURE__*/ jsxs("button", {
131
+ type: "button",
128
132
  className: cn('flex h-8 items-center gap-2 rounded-[10px] px-3 py-2 text-sm font-medium leading-5 transition-colors', 'variables' === activeTab ? 'border border-border bg-surface text-foreground' : 'text-foreground-subtle'),
133
+ onClick: ()=>onTabChange?.('variables'),
129
134
  children: [
130
135
  /*#__PURE__*/ jsx(Variable, {
131
136
  className: "h-5 w-5"
@@ -162,9 +167,8 @@ function PropertiesExpanded({ className, nodeName = 'Validate invoice', nodeType
162
167
  "aria-label": "Toggle panel dock",
163
168
  children: /*#__PURE__*/ jsx(PanelRightOpen, {})
164
169
  }),
165
- /*#__PURE__*/ jsxs("div", {
170
+ /*#__PURE__*/ jsxs("fieldset", {
166
171
  className: "flex h-10 items-center rounded-xl border border-border-deep bg-surface-overlay p-1",
167
- role: "group",
168
172
  "aria-label": "Layout toggle",
169
173
  children: [
170
174
  /*#__PURE__*/ jsx("button", {
@@ -50,6 +50,7 @@ function FieldItem({ field, onGraphControl }) {
50
50
  ]
51
51
  }),
52
52
  field.showGraphControl && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
53
+ type: "button",
53
54
  className: "flex h-6 w-6 items-center justify-center rounded-lg bg-surface-overlay text-foreground-muted transition-colors hover:text-foreground",
54
55
  onClick: ()=>onGraphControl?.(field.label),
55
56
  "aria-label": "Graph control",
@@ -125,6 +126,7 @@ const sampleJsonLines = [
125
126
  ];
126
127
  function EditorToolbarButton({ icon, label }) {
127
128
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
129
+ type: "button",
128
130
  className: "flex h-8 w-8 items-center justify-center rounded-lg text-foreground-muted transition-colors hover:text-foreground",
129
131
  "aria-label": label,
130
132
  children: icon
@@ -143,6 +145,7 @@ function JsonEditorDrawer({ open, onClose }) {
143
145
  children: "JSON editor"
144
146
  }),
145
147
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
148
+ type: "button",
146
149
  className: "flex h-10 w-10 items-center justify-center rounded-xl bg-surface-overlay text-foreground-muted transition-colors hover:text-foreground",
147
150
  onClick: onClose,
148
151
  "aria-label": "Close editor",
@@ -202,6 +205,7 @@ function JsonEditorDrawer({ open, onClose }) {
202
205
  ]
203
206
  }),
204
207
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
208
+ type: "button",
205
209
  className: "flex h-5 w-5 items-center justify-center text-foreground-muted transition-colors hover:text-foreground",
206
210
  "aria-label": "Refresh",
207
211
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_lucide_react_namespaceObject.RefreshCw, {
@@ -237,6 +241,7 @@ function JsonEditorDrawer({ open, onClose }) {
237
241
  className: "flex items-center justify-end gap-2 px-6 py-4",
238
242
  children: [
239
243
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
244
+ type: "button",
240
245
  className: "flex h-10 items-center gap-2 rounded-xl border border-border px-4 py-2 text-sm font-medium leading-5 text-foreground-subtle transition-colors hover:text-foreground",
241
246
  onClick: onClose,
242
247
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
@@ -244,6 +249,7 @@ function JsonEditorDrawer({ open, onClose }) {
244
249
  })
245
250
  }),
246
251
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
252
+ type: "button",
247
253
  className: "flex h-10 items-center gap-2 rounded-xl bg-brand px-4 py-2 text-sm font-semibold leading-5 text-foreground-inverse transition-colors hover:bg-brand/90",
248
254
  onClick: onClose,
249
255
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
@@ -287,6 +293,7 @@ function PropertiesSimple({ className, icon, title = 'HTTP Request', fields = []
287
293
  ]
288
294
  }),
289
295
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
296
+ type: "button",
290
297
  className: "flex h-10 w-10 items-center justify-center rounded-xl bg-surface-overlay text-foreground-muted transition-colors hover:text-foreground",
291
298
  onClick: onClose,
292
299
  "aria-label": "Close properties",
@@ -22,6 +22,7 @@ function FieldItem({ field, onGraphControl }) {
22
22
  ]
23
23
  }),
24
24
  field.showGraphControl && /*#__PURE__*/ jsx("button", {
25
+ type: "button",
25
26
  className: "flex h-6 w-6 items-center justify-center rounded-lg bg-surface-overlay text-foreground-muted transition-colors hover:text-foreground",
26
27
  onClick: ()=>onGraphControl?.(field.label),
27
28
  "aria-label": "Graph control",
@@ -97,6 +98,7 @@ const sampleJsonLines = [
97
98
  ];
98
99
  function EditorToolbarButton({ icon, label }) {
99
100
  return /*#__PURE__*/ jsx("button", {
101
+ type: "button",
100
102
  className: "flex h-8 w-8 items-center justify-center rounded-lg text-foreground-muted transition-colors hover:text-foreground",
101
103
  "aria-label": label,
102
104
  children: icon
@@ -115,6 +117,7 @@ function JsonEditorDrawer({ open, onClose }) {
115
117
  children: "JSON editor"
116
118
  }),
117
119
  /*#__PURE__*/ jsx("button", {
120
+ type: "button",
118
121
  className: "flex h-10 w-10 items-center justify-center rounded-xl bg-surface-overlay text-foreground-muted transition-colors hover:text-foreground",
119
122
  onClick: onClose,
120
123
  "aria-label": "Close editor",
@@ -174,6 +177,7 @@ function JsonEditorDrawer({ open, onClose }) {
174
177
  ]
175
178
  }),
176
179
  /*#__PURE__*/ jsx("button", {
180
+ type: "button",
177
181
  className: "flex h-5 w-5 items-center justify-center text-foreground-muted transition-colors hover:text-foreground",
178
182
  "aria-label": "Refresh",
179
183
  children: /*#__PURE__*/ jsx(RefreshCw, {
@@ -209,6 +213,7 @@ function JsonEditorDrawer({ open, onClose }) {
209
213
  className: "flex items-center justify-end gap-2 px-6 py-4",
210
214
  children: [
211
215
  /*#__PURE__*/ jsx("button", {
216
+ type: "button",
212
217
  className: "flex h-10 items-center gap-2 rounded-xl border border-border px-4 py-2 text-sm font-medium leading-5 text-foreground-subtle transition-colors hover:text-foreground",
213
218
  onClick: onClose,
214
219
  children: /*#__PURE__*/ jsx("span", {
@@ -216,6 +221,7 @@ function JsonEditorDrawer({ open, onClose }) {
216
221
  })
217
222
  }),
218
223
  /*#__PURE__*/ jsx("button", {
224
+ type: "button",
219
225
  className: "flex h-10 items-center gap-2 rounded-xl bg-brand px-4 py-2 text-sm font-semibold leading-5 text-foreground-inverse transition-colors hover:bg-brand/90",
220
226
  onClick: onClose,
221
227
  children: /*#__PURE__*/ jsx("span", {
@@ -259,6 +265,7 @@ function PropertiesSimple({ className, icon, title = 'HTTP Request', fields = []
259
265
  ]
260
266
  }),
261
267
  /*#__PURE__*/ jsx("button", {
268
+ type: "button",
262
269
  className: "flex h-10 w-10 items-center justify-center rounded-xl bg-surface-overlay text-foreground-muted transition-colors hover:text-foreground",
263
270
  onClick: onClose,
264
271
  "aria-label": "Close properties",