@xyne/workflow-ui 1.3.13 → 1.3.15
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/dist/components/automations/CreateWorkflowDialog.d.ts.map +1 -1
- package/dist/components/automations/CreateWorkflowDialog.js +5 -1
- package/dist/components/automations/CreateWorkflowDialog.js.map +1 -1
- package/dist/components/browser/EntryGrid.d.ts +3 -1
- package/dist/components/browser/EntryGrid.d.ts.map +1 -1
- package/dist/components/browser/EntryGrid.js +6 -5
- package/dist/components/browser/EntryGrid.js.map +1 -1
- package/dist/components/browser/EntryList.d.ts +4 -1
- package/dist/components/browser/EntryList.d.ts.map +1 -1
- package/dist/components/browser/EntryList.js +9 -6
- package/dist/components/browser/EntryList.js.map +1 -1
- package/dist/components/browser/NameDialog.d.ts +6 -2
- package/dist/components/browser/NameDialog.d.ts.map +1 -1
- package/dist/components/browser/NameDialog.js +7 -3
- package/dist/components/browser/NameDialog.js.map +1 -1
- package/dist/components/browser/permissions.d.ts +11 -0
- package/dist/components/browser/permissions.d.ts.map +1 -0
- package/dist/components/browser/permissions.js +6 -0
- package/dist/components/browser/permissions.js.map +1 -0
- package/dist/components/browser/types.d.ts +11 -0
- package/dist/components/browser/types.d.ts.map +1 -1
- package/dist/components/browser/utils.d.ts +4 -0
- package/dist/components/browser/utils.d.ts.map +1 -1
- package/dist/components/browser/utils.js +10 -0
- package/dist/components/browser/utils.js.map +1 -1
- package/dist/components/dashboard/WorkflowDashboard.d.ts +9 -1
- package/dist/components/dashboard/WorkflowDashboard.d.ts.map +1 -1
- package/dist/components/dashboard/WorkflowDashboard.js +11 -2
- package/dist/components/dashboard/WorkflowDashboard.js.map +1 -1
- package/dist/components/execution/ExecutionViewer.d.ts.map +1 -1
- package/dist/components/execution/ExecutionViewer.js +6 -3
- package/dist/components/execution/ExecutionViewer.js.map +1 -1
- package/dist/components/provider/slot-resolution.d.ts +6 -0
- package/dist/components/provider/slot-resolution.d.ts.map +1 -1
- package/dist/components/provider/slot-resolution.js +9 -0
- package/dist/components/provider/slot-resolution.js.map +1 -1
- package/dist/components/runs/RunsTable.js +1 -1
- package/dist/components/runs/RunsTable.js.map +1 -1
- package/dist/components/runs/RunsView.d.ts.map +1 -1
- package/dist/components/runs/RunsView.js +7 -36
- package/dist/components/runs/RunsView.js.map +1 -1
- package/dist/components/schema-form/AttachmentField.d.ts +16 -0
- package/dist/components/schema-form/AttachmentField.d.ts.map +1 -0
- package/dist/components/schema-form/AttachmentField.js +139 -0
- package/dist/components/schema-form/AttachmentField.js.map +1 -0
- package/dist/components/share/ShareDialog.d.ts +21 -0
- package/dist/components/share/ShareDialog.d.ts.map +1 -0
- package/dist/components/share/ShareDialog.js +98 -0
- package/dist/components/share/ShareDialog.js.map +1 -0
- package/dist/components/workflows/WorkflowBrowser.d.ts.map +1 -1
- package/dist/components/workflows/WorkflowBrowser.js +42 -7
- package/dist/components/workflows/WorkflowBrowser.js.map +1 -1
- package/dist/hooks/use-execution-rerun.d.ts.map +1 -1
- package/dist/hooks/use-execution-rerun.js +2 -1
- package/dist/hooks/use-execution-rerun.js.map +1 -1
- package/dist/hooks/use-pause-interaction.d.ts.map +1 -1
- package/dist/hooks/use-pause-interaction.js +2 -1
- package/dist/hooks/use-pause-interaction.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/slots.d.ts +22 -1
- package/dist/types/slots.d.ts.map +1 -1
- package/dist/utils/map-lanes.d.ts +35 -0
- package/dist/utils/map-lanes.d.ts.map +1 -0
- package/dist/utils/map-lanes.js +48 -0
- package/dist/utils/map-lanes.js.map +1 -0
- package/dist/utils/permissions.d.ts +21 -0
- package/dist/utils/permissions.d.ts.map +1 -0
- package/dist/utils/permissions.js +31 -0
- package/dist/utils/permissions.js.map +1 -0
- package/package.json +1 -1
- package/dist/components/builder/AddStepButton.d.ts +0 -6
- package/dist/components/builder/AddStepButton.d.ts.map +0 -1
- package/dist/components/builder/AddStepButton.js +0 -7
- package/dist/components/builder/AddStepButton.js.map +0 -1
- package/dist/components/builder/BranchEdge.d.ts +0 -3
- package/dist/components/builder/BranchEdge.d.ts.map +0 -1
- package/dist/components/builder/BranchEdge.js +0 -19
- package/dist/components/builder/BranchEdge.js.map +0 -1
- package/dist/components/builder/BuilderToolbar.d.ts +0 -10
- package/dist/components/builder/BuilderToolbar.d.ts.map +0 -1
- package/dist/components/builder/BuilderToolbar.js +0 -16
- package/dist/components/builder/BuilderToolbar.js.map +0 -1
- package/dist/components/builder/StepConfigDrawer.d.ts +0 -11
- package/dist/components/builder/StepConfigDrawer.d.ts.map +0 -1
- package/dist/components/builder/StepConfigDrawer.js +0 -21
- package/dist/components/builder/StepConfigDrawer.js.map +0 -1
- package/dist/components/builder/StepNode.d.ts +0 -15
- package/dist/components/builder/StepNode.d.ts.map +0 -1
- package/dist/components/builder/StepNode.js +0 -56
- package/dist/components/builder/StepNode.js.map +0 -1
- package/dist/components/builder/StepPalette.d.ts +0 -7
- package/dist/components/builder/StepPalette.d.ts.map +0 -1
- package/dist/components/builder/StepPalette.js +0 -83
- package/dist/components/builder/StepPalette.js.map +0 -1
- package/dist/components/builder/StepPicker.d.ts +0 -9
- package/dist/components/builder/StepPicker.d.ts.map +0 -1
- package/dist/components/builder/StepPicker.js +0 -95
- package/dist/components/builder/StepPicker.js.map +0 -1
- package/dist/components/builder/TriggerConfigPanel.d.ts +0 -10
- package/dist/components/builder/TriggerConfigPanel.d.ts.map +0 -1
- package/dist/components/builder/TriggerConfigPanel.js +0 -49
- package/dist/components/builder/TriggerConfigPanel.js.map +0 -1
- package/dist/components/builder/TriggerNode.d.ts +0 -9
- package/dist/components/builder/TriggerNode.d.ts.map +0 -1
- package/dist/components/builder/TriggerNode.js +0 -30
- package/dist/components/builder/TriggerNode.js.map +0 -1
- package/dist/components/builder/TriggerPicker.d.ts +0 -8
- package/dist/components/builder/TriggerPicker.d.ts.map +0 -1
- package/dist/components/builder/TriggerPicker.js +0 -61
- package/dist/components/builder/TriggerPicker.js.map +0 -1
- package/dist/components/builder/WorkflowBuilder.d.ts +0 -20
- package/dist/components/builder/WorkflowBuilder.d.ts.map +0 -1
- package/dist/components/builder/WorkflowBuilder.js +0 -157
- package/dist/components/builder/WorkflowBuilder.js.map +0 -1
- package/dist/components/builder/edge-types.d.ts +0 -3
- package/dist/components/builder/edge-types.d.ts.map +0 -1
- package/dist/components/builder/edge-types.js +0 -5
- package/dist/components/builder/edge-types.js.map +0 -1
- package/dist/components/builder/node-types.d.ts +0 -3
- package/dist/components/builder/node-types.d.ts.map +0 -1
- package/dist/components/builder/node-types.js +0 -11
- package/dist/components/builder/node-types.js.map +0 -1
- package/dist/components/builder/v2/AddStepButton.d.ts +0 -6
- package/dist/components/builder/v2/AddStepButton.d.ts.map +0 -1
- package/dist/components/builder/v2/AddStepButton.js +0 -6
- package/dist/components/builder/v2/AddStepButton.js.map +0 -1
- package/dist/components/builder/v2/BranchEdge.d.ts +0 -3
- package/dist/components/builder/v2/BranchEdge.d.ts.map +0 -1
- package/dist/components/builder/v2/BranchEdge.js +0 -46
- package/dist/components/builder/v2/BranchEdge.js.map +0 -1
- package/dist/components/builder/v2/LoopBodyEdge.d.ts +0 -7
- package/dist/components/builder/v2/LoopBodyEdge.d.ts.map +0 -1
- package/dist/components/builder/v2/LoopBodyEdge.js +0 -19
- package/dist/components/builder/v2/LoopBodyEdge.js.map +0 -1
- package/dist/components/builder/v2/LoopbackEdge.d.ts +0 -10
- package/dist/components/builder/v2/LoopbackEdge.d.ts.map +0 -1
- package/dist/components/builder/v2/LoopbackEdge.js +0 -26
- package/dist/components/builder/v2/LoopbackEdge.js.map +0 -1
- package/dist/components/builder/v2/StepNode.d.ts +0 -21
- package/dist/components/builder/v2/StepNode.d.ts.map +0 -1
- package/dist/components/builder/v2/StepNode.js +0 -36
- package/dist/components/builder/v2/StepNode.js.map +0 -1
- package/dist/components/builder/v2/StepPicker.d.ts +0 -8
- package/dist/components/builder/v2/StepPicker.d.ts.map +0 -1
- package/dist/components/builder/v2/StepPicker.js +0 -73
- package/dist/components/builder/v2/StepPicker.js.map +0 -1
- package/dist/components/builder/v2/TerminalNode.d.ts +0 -6
- package/dist/components/builder/v2/TerminalNode.d.ts.map +0 -1
- package/dist/components/builder/v2/TerminalNode.js +0 -7
- package/dist/components/builder/v2/TerminalNode.js.map +0 -1
- package/dist/components/builder/v2/TriggerNode.d.ts +0 -10
- package/dist/components/builder/v2/TriggerNode.d.ts.map +0 -1
- package/dist/components/builder/v2/TriggerNode.js +0 -20
- package/dist/components/builder/v2/TriggerNode.js.map +0 -1
- package/dist/components/builder/v2/TriggerPicker.d.ts +0 -7
- package/dist/components/builder/v2/TriggerPicker.d.ts.map +0 -1
- package/dist/components/builder/v2/TriggerPicker.js +0 -45
- package/dist/components/builder/v2/TriggerPicker.js.map +0 -1
- package/dist/components/builder/v2/WorkflowBuilder.d.ts +0 -14
- package/dist/components/builder/v2/WorkflowBuilder.d.ts.map +0 -1
- package/dist/components/builder/v2/WorkflowBuilder.js +0 -189
- package/dist/components/builder/v2/WorkflowBuilder.js.map +0 -1
- package/dist/components/builder/v2/edge-types.d.ts +0 -3
- package/dist/components/builder/v2/edge-types.d.ts.map +0 -1
- package/dist/components/builder/v2/edge-types.js +0 -9
- package/dist/components/builder/v2/edge-types.js.map +0 -1
- package/dist/components/builder/v2/icons.d.ts +0 -25
- package/dist/components/builder/v2/icons.d.ts.map +0 -1
- package/dist/components/builder/v2/icons.js +0 -43
- package/dist/components/builder/v2/icons.js.map +0 -1
- package/dist/components/builder/v2/layout-engine.d.ts +0 -76
- package/dist/components/builder/v2/layout-engine.d.ts.map +0 -1
- package/dist/components/builder/v2/layout-engine.js +0 -465
- package/dist/components/builder/v2/layout-engine.js.map +0 -1
- package/dist/components/builder/v2/node-types.d.ts +0 -3
- package/dist/components/builder/v2/node-types.d.ts.map +0 -1
- package/dist/components/builder/v2/node-types.js +0 -11
- package/dist/components/builder/v2/node-types.js.map +0 -1
- package/dist/components/builder/v2/theme.d.ts +0 -28
- package/dist/components/builder/v2/theme.d.ts.map +0 -1
- package/dist/components/builder/v2/theme.js +0 -63
- package/dist/components/builder/v2/theme.js.map +0 -1
- package/dist/components/dashboard/WorkflowSummaryEditor.d.ts +0 -11
- package/dist/components/dashboard/WorkflowSummaryEditor.d.ts.map +0 -1
- package/dist/components/dashboard/WorkflowSummaryEditor.js +0 -46
- package/dist/components/dashboard/WorkflowSummaryEditor.js.map +0 -1
- package/dist/components/execution/ExecutionEdge.d.ts +0 -4
- package/dist/components/execution/ExecutionEdge.d.ts.map +0 -1
- package/dist/components/execution/ExecutionEdge.js +0 -27
- package/dist/components/execution/ExecutionEdge.js.map +0 -1
- package/dist/components/execution/ExecutionStepNode.d.ts +0 -14
- package/dist/components/execution/ExecutionStepNode.d.ts.map +0 -1
- package/dist/components/execution/ExecutionStepNode.js +0 -47
- package/dist/components/execution/ExecutionStepNode.js.map +0 -1
- package/dist/components/execution/ExecutionTriggerNode.d.ts +0 -9
- package/dist/components/execution/ExecutionTriggerNode.d.ts.map +0 -1
- package/dist/components/execution/ExecutionTriggerNode.js +0 -15
- package/dist/components/execution/ExecutionTriggerNode.js.map +0 -1
- package/dist/components/execution/StepAgentPanels.d.ts +0 -9
- package/dist/components/execution/StepAgentPanels.d.ts.map +0 -1
- package/dist/components/execution/StepAgentPanels.js +0 -133
- package/dist/components/execution/StepAgentPanels.js.map +0 -1
- package/dist/components/execution/execution-layout.d.ts +0 -31
- package/dist/components/execution/execution-layout.d.ts.map +0 -1
- package/dist/components/execution/execution-layout.js +0 -90
- package/dist/components/execution/execution-layout.js.map +0 -1
- package/dist/components/shared/JsonTreeViewer.d.ts +0 -9
- package/dist/components/shared/JsonTreeViewer.d.ts.map +0 -1
- package/dist/components/shared/JsonTreeViewer.js +0 -46
- package/dist/components/shared/JsonTreeViewer.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateWorkflowDialog.d.ts","sourceRoot":"","sources":["../../../src/components/automations/CreateWorkflowDialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CreateWorkflowDialog.d.ts","sourceRoot":"","sources":["../../../src/components/automations/CreateWorkflowDialog.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9E,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,4DAA4D;IAC5D,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,iFAAiF;IACjF,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CACzD;AAyDD,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,OAAO,EACP,OAAO,EACP,eAAe,GAChB,EAAE,yBAAyB,+BA+L3B"}
|
|
@@ -4,6 +4,7 @@ import { FolderPlus } from 'lucide-react';
|
|
|
4
4
|
import { useWorkflowClient } from '../../hooks/use-workflow-client.js';
|
|
5
5
|
import { cn } from '../shared/cn.js';
|
|
6
6
|
import { TagInput } from '../shared/TagInput.js';
|
|
7
|
+
import { useOptionalSlot } from '../provider/slot-resolution.js';
|
|
7
8
|
const TRIGGER_OPTIONS = [
|
|
8
9
|
{
|
|
9
10
|
type: 'MANUAL',
|
|
@@ -38,6 +39,8 @@ function buildDefaultConfig(triggerType) {
|
|
|
38
39
|
}
|
|
39
40
|
export function CreateWorkflowDialog({ onCreated, onClose, folders, defaultFolderId, }) {
|
|
40
41
|
const client = useWorkflowClient();
|
|
42
|
+
const AttributeFields = useOptionalSlot('workflowAttributes');
|
|
43
|
+
const [attributes, setAttributes] = useState({});
|
|
41
44
|
const [name, setName] = useState('');
|
|
42
45
|
const [tags, setTags] = useState([]);
|
|
43
46
|
const [selectedTrigger, setSelectedTrigger] = useState('MANUAL');
|
|
@@ -58,6 +61,7 @@ export function CreateWorkflowDialog({ onCreated, onClose, folders, defaultFolde
|
|
|
58
61
|
config: buildDefaultConfig(selectedTrigger),
|
|
59
62
|
folderId,
|
|
60
63
|
...(tags.length > 0 ? { metadata: { name: name.trim(), tags } } : {}),
|
|
64
|
+
...(Object.keys(attributes).length > 0 ? { attributes } : {}),
|
|
61
65
|
});
|
|
62
66
|
onCreated(workflow);
|
|
63
67
|
}
|
|
@@ -71,7 +75,7 @@ export function CreateWorkflowDialog({ onCreated, onClose, folders, defaultFolde
|
|
|
71
75
|
return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [_jsx("div", { className: "absolute inset-0 bg-black/50 backdrop-blur-sm", onClick: onClose }), _jsxs("div", { className: cn('relative z-10 w-full max-w-lg rounded-xl border border-[var(--wui-border)] bg-[var(--wui-surface)] shadow-xl', 'animate-[wui-fade-in_150ms_ease-out]'), children: [_jsxs("div", { className: "flex items-center justify-between border-b border-[var(--wui-border)] px-5 py-4", children: [_jsx("h3", { className: "text-[15px] font-semibold text-[var(--wui-fg)]", children: "Create Workflow" }), _jsx("button", { onClick: onClose, className: "flex h-6 w-6 items-center justify-center rounded-md text-[var(--wui-fg-muted)] hover:bg-[var(--wui-bg-muted)] hover:text-[var(--wui-fg)] transition-colors", children: _jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: [_jsx("path", { d: "M18 6 6 18" }), _jsx("path", { d: "m6 6 12 12" })] }) })] }), _jsxs("div", { className: "px-5 py-5 space-y-5", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-[12px] font-medium text-[var(--wui-fg-muted)] mb-1.5", children: "Workflow Name" }), _jsx("input", { type: "text", value: name, onChange: (e) => setName(e.target.value), placeholder: "e.g. Customer Onboarding Pipeline", autoFocus: true, className: cn('w-full rounded-lg border border-[var(--wui-border)] bg-[var(--wui-surface)] px-3 py-2', 'text-[13px] text-[var(--wui-fg)] placeholder:text-[var(--wui-fg-muted)]', 'outline-none focus:border-[var(--wui-primary)] focus:ring-2 focus:ring-[var(--wui-primary-light)]', 'transition-colors'), onKeyDown: (e) => {
|
|
72
76
|
if (e.key === 'Enter' && canCreate)
|
|
73
77
|
void handleCreate();
|
|
74
|
-
} })] }), _jsxs("div", { children: [_jsxs("label", { className: "block text-[12px] font-medium text-[var(--wui-fg-muted)] mb-1.5", children: ["Teams ", _jsx("span", { className: "font-normal text-[var(--wui-fg-muted)]", children: "(optional)" })] }), _jsx(TagInput, { value: tags, onChange: setTags, placeholder: "e.g. finance, legal \u2014 Enter to add" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-[12px] font-medium text-[var(--wui-fg-muted)] mb-1.5", children: "Folder" }), _jsxs("div", { className: "flex items-center gap-2 rounded-lg border border-[var(--wui-border)] bg-[var(--wui-bg-muted)] px-3 py-2 text-[13px] text-[var(--wui-fg)]", children: [_jsx(FolderPlus, { className: "h-4 w-4 shrink-0 text-[var(--wui-fg-muted)]", strokeWidth: 1.75 }), _jsx("span", { className: "truncate", children: folders.find((f) => f.id === folderId)?.name ?? 'Current folder' })] })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-[12px] font-medium text-[var(--wui-fg-muted)] mb-2", children: "Trigger Type" }), _jsx("div", { className: "grid grid-cols-2 gap-2", children: TRIGGER_OPTIONS.map((opt) => {
|
|
78
|
+
} })] }), _jsxs("div", { children: [_jsxs("label", { className: "block text-[12px] font-medium text-[var(--wui-fg-muted)] mb-1.5", children: ["Teams ", _jsx("span", { className: "font-normal text-[var(--wui-fg-muted)]", children: "(optional)" })] }), _jsx(TagInput, { value: tags, onChange: setTags, placeholder: "e.g. finance, legal \u2014 Enter to add" })] }), AttributeFields && (_jsx(AttributeFields, { value: attributes, onChange: (patch) => setAttributes((a) => ({ ...a, ...patch })) })), _jsxs("div", { children: [_jsx("label", { className: "block text-[12px] font-medium text-[var(--wui-fg-muted)] mb-1.5", children: "Folder" }), _jsxs("div", { className: "flex items-center gap-2 rounded-lg border border-[var(--wui-border)] bg-[var(--wui-bg-muted)] px-3 py-2 text-[13px] text-[var(--wui-fg)]", children: [_jsx(FolderPlus, { className: "h-4 w-4 shrink-0 text-[var(--wui-fg-muted)]", strokeWidth: 1.75 }), _jsx("span", { className: "truncate", children: folders.find((f) => f.id === folderId)?.name ?? 'Current folder' })] })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-[12px] font-medium text-[var(--wui-fg-muted)] mb-2", children: "Trigger Type" }), _jsx("div", { className: "grid grid-cols-2 gap-2", children: TRIGGER_OPTIONS.map((opt) => {
|
|
75
79
|
const isSel = selectedTrigger === opt.type;
|
|
76
80
|
return (_jsxs("button", { type: "button", onClick: () => setSelectedTrigger(opt.type), className: cn('relative flex items-start gap-2.5 rounded-lg border bg-[var(--wui-surface)] p-3 pr-8 text-left transition-colors', isSel
|
|
77
81
|
? 'border-[var(--wui-primary)]'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateWorkflowDialog.js","sourceRoot":"","sources":["../../../src/components/automations/CreateWorkflowDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"CreateWorkflowDialog.js","sourceRoot":"","sources":["../../../src/components/automations/CreateWorkflowDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,12 +11,14 @@ type Props = {
|
|
|
11
11
|
onOpenEditor?: (entry: BrowserEntry) => void;
|
|
12
12
|
/** Edit a file entry's tags. Shown only for files. */
|
|
13
13
|
onEditTags?: (entry: BrowserEntry) => void;
|
|
14
|
+
/** Share a row — shown only when permittedActions grant `*:share`. */
|
|
15
|
+
onShare?: (entry: BrowserEntry) => void;
|
|
14
16
|
selectedIds?: ReadonlySet<string>;
|
|
15
17
|
onToggleSelect?: (entry: BrowserEntry, index: number, shiftKey: boolean) => void;
|
|
16
18
|
scrollParentRef: React.RefObject<HTMLElement | null>;
|
|
17
19
|
/** Called when the last row scrolls into view — for infinite scroll / load-more. */
|
|
18
20
|
onReachEnd?: () => void;
|
|
19
21
|
};
|
|
20
|
-
export declare function EntryGrid({ entries, onOpen, renderLeading, disableFiles, disableFolders, onDelete, onRename, onMove, onOpenEditor, onEditTags, selectedIds, onToggleSelect, scrollParentRef, onReachEnd, }: Props): import("react").JSX.Element;
|
|
22
|
+
export declare function EntryGrid({ entries, onOpen, renderLeading, disableFiles, disableFolders, onDelete, onRename, onMove, onOpenEditor, onEditTags, onShare, selectedIds, onToggleSelect, scrollParentRef, onReachEnd, }: Props): import("react").JSX.Element;
|
|
21
23
|
export {};
|
|
22
24
|
//# sourceMappingURL=EntryGrid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryGrid.d.ts","sourceRoot":"","sources":["../../../src/components/browser/EntryGrid.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"EntryGrid.d.ts","sourceRoot":"","sources":["../../../src/components/browser/EntryGrid.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKhE,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7C,sDAAsD;IACtD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACjF,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACrD,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAsBF,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,MAAM,EACN,aAA8B,EAC9B,YAAoB,EACpB,cAAsB,EACtB,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,UAAU,EACV,OAAO,EACP,WAAW,EACX,cAAc,EACd,eAAe,EACf,UAAU,GACX,EAAE,KAAK,+BAwOP"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { FolderSymlink, Pencil, SquarePen, Tag, Trash2 } from 'lucide-react';
|
|
2
|
+
import { FolderSymlink, Pencil, Share2, SquarePen, Tag, Trash2 } from 'lucide-react';
|
|
3
3
|
import { useEffect, useRef, useState } from 'react';
|
|
4
4
|
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
5
5
|
import { cn } from '../shared/cn.js';
|
|
6
6
|
import { ROW_ESTIMATE_GRID_PX } from './constants.js';
|
|
7
|
-
import { defaultLeading, isEntryDisabled } from './utils.js';
|
|
7
|
+
import { asText, defaultLeading, isEntryDisabled } from './utils.js';
|
|
8
|
+
import { entryCan } from './permissions.js';
|
|
8
9
|
function colsFor(width) {
|
|
9
10
|
if (width >= 1280)
|
|
10
11
|
return 5;
|
|
@@ -24,7 +25,7 @@ function useResponsiveCols() {
|
|
|
24
25
|
}, []);
|
|
25
26
|
return cols;
|
|
26
27
|
}
|
|
27
|
-
export function EntryGrid({ entries, onOpen, renderLeading = defaultLeading, disableFiles = false, disableFolders = false, onDelete, onRename, onMove, onOpenEditor, onEditTags, selectedIds, onToggleSelect, scrollParentRef, onReachEnd, }) {
|
|
28
|
+
export function EntryGrid({ entries, onOpen, renderLeading = defaultLeading, disableFiles = false, disableFolders = false, onDelete, onRename, onMove, onOpenEditor, onEditTags, onShare, selectedIds, onToggleSelect, scrollParentRef, onReachEnd, }) {
|
|
28
29
|
const cols = useResponsiveCols();
|
|
29
30
|
const rowCount = Math.ceil(entries.length / cols);
|
|
30
31
|
const [editingId, setEditingId] = useState(null);
|
|
@@ -86,9 +87,9 @@ export function EntryGrid({ entries, onOpen, renderLeading = defaultLeading, dis
|
|
|
86
87
|
ev.stopPropagation();
|
|
87
88
|
cancelEdit();
|
|
88
89
|
}
|
|
89
|
-
}, onBlur: () => { commitEdit(e); }, maxLength: 255, className: "min-w-0 flex-1 truncate rounded-sm border border-ring/50 bg-background px-1.5 py-0.5 text-[13.5px] font-medium text-foreground outline-none focus:border-ring" })) : (_jsx("span", { className: "truncate text-[13.5px] font-medium text-foreground", children: e.name })) }), e.caption ? (_jsx("span", { className: "truncate text-[11.5px] text-muted-foreground", children: e.caption })) : null, e.kind === 'file' && e.tags && e.tags.length > 0 ? (_jsx("span", { className: "mt-1 flex flex-wrap items-center gap-1", children: e.tags.slice(0, 4).map((t) => (_jsx("span", { className: "rounded-full bg-secondary px-1.5 py-px text-[10px] font-medium text-muted-foreground", children: t }, t))) })) : null] })] }), onToggleSelect && (_jsx("button", { type: "button", "aria-label": selectedIds?.has(e.id) ? `Deselect ${e.name}` : `Select ${e.name}`, onClick: (ev) => { ev.stopPropagation(); onToggleSelect(e, entryIndex, ev.shiftKey); }, className: cn('absolute left-2 top-2 flex h-[18px] w-[18px] items-center justify-center rounded-[5px] border transition-colors', selectedIds?.has(e.id)
|
|
90
|
+
}, onBlur: () => { commitEdit(e); }, maxLength: 255, className: "min-w-0 flex-1 truncate rounded-sm border border-ring/50 bg-background px-1.5 py-0.5 text-[13.5px] font-medium text-foreground outline-none focus:border-ring" })) : (_jsx("span", { className: "truncate text-[13.5px] font-medium text-foreground", children: asText(e.name, e.id) })) }), e.caption ? (_jsx("span", { className: "truncate text-[11.5px] text-muted-foreground", children: asText(e.caption) })) : null, e.kind === 'file' && e.tags && e.tags.length > 0 ? (_jsx("span", { className: "mt-1 flex flex-wrap items-center gap-1", children: e.tags.slice(0, 4).map((t) => (_jsx("span", { className: "rounded-full bg-secondary px-1.5 py-px text-[10px] font-medium text-muted-foreground", children: t }, t))) })) : null] })] }), onToggleSelect && (_jsx("button", { type: "button", "aria-label": selectedIds?.has(e.id) ? `Deselect ${e.name}` : `Select ${e.name}`, onClick: (ev) => { ev.stopPropagation(); onToggleSelect(e, entryIndex, ev.shiftKey); }, className: cn('absolute left-2 top-2 flex h-[18px] w-[18px] items-center justify-center rounded-[5px] border transition-colors', selectedIds?.has(e.id)
|
|
90
91
|
? 'border-[var(--wui-primary)] bg-[var(--wui-primary)] text-[var(--wui-primary-fg)]'
|
|
91
|
-
: 'border-[var(--wui-border-strong)] bg-[var(--wui-surface)]/90 backdrop-blur-sm group-hover:border-[var(--wui-fg-muted)]'), children: selectedIds?.has(e.id) && (_jsx("svg", { viewBox: "0 0 24 24", className: "h-3 w-3", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("polyline", { points: "20 6 9 17 4 12" }) })) })), !isEditing && (onOpenEditor ?? onEditTags ?? onRename ?? onDelete ?? onMove) ? (_jsxs("div", { className: "absolute right-2 top-2 flex gap-1 opacity-0 transition group-hover:opacity-100 focus-within:opacity-100", children: [onOpenEditor && e.kind === 'file' ? (_jsx("button", { type: "button", "aria-label": `Open ${e.name} in editor`, title: "Open editor", onClick: (ev) => { ev.stopPropagation(); onOpenEditor(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-secondary hover:text-foreground", children: _jsx(SquarePen, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onEditTags && e.kind === 'file' ? (_jsx("button", { type: "button", "aria-label": `Edit teams for ${e.name}`, title: "Teams", onClick: (ev) => { ev.stopPropagation(); onEditTags(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-secondary hover:text-foreground", children: _jsx(Tag, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onMove ? (_jsx("button", { type: "button", "aria-label": `Move ${e.name}`, title: "Move", onClick: (ev) => { ev.stopPropagation(); onMove(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-secondary hover:text-foreground", children: _jsx(FolderSymlink, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onRename ? (_jsx("button", { type: "button", "aria-label": `Rename ${e.name}`, title: "Rename", onClick: (ev) => { ev.stopPropagation(); startEdit(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-secondary hover:text-foreground", children: _jsx(Pencil, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onDelete ? (_jsx("button", { type: "button", "aria-label": `Delete ${e.name}`, title: "Delete", onClick: (ev) => { ev.stopPropagation(); onDelete(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-950/40", children: _jsx(Trash2, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null] })) : null] }, `${e.kind}-${e.id}`));
|
|
92
|
+
: 'border-[var(--wui-border-strong)] bg-[var(--wui-surface)]/90 backdrop-blur-sm group-hover:border-[var(--wui-fg-muted)]'), children: selectedIds?.has(e.id) && (_jsx("svg", { viewBox: "0 0 24 24", className: "h-3 w-3", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("polyline", { points: "20 6 9 17 4 12" }) })) })), !isEditing && (onOpenEditor ?? onEditTags ?? onRename ?? onDelete ?? onMove ?? onShare) ? (_jsxs("div", { className: "absolute right-2 top-2 flex gap-1 opacity-0 transition group-hover:opacity-100 focus-within:opacity-100", children: [onOpenEditor && e.kind === 'file' ? (_jsx("button", { type: "button", "aria-label": `Open ${e.name} in editor`, title: "Open editor", onClick: (ev) => { ev.stopPropagation(); onOpenEditor(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-secondary hover:text-foreground", children: _jsx(SquarePen, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onEditTags && e.kind === 'file' && entryCan(e, 'update') ? (_jsx("button", { type: "button", "aria-label": `Edit teams for ${e.name}`, title: "Teams", onClick: (ev) => { ev.stopPropagation(); onEditTags(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-secondary hover:text-foreground", children: _jsx(Tag, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onShare && entryCan(e, 'share') ? (_jsx("button", { type: "button", "aria-label": `Share ${e.name}`, title: "Share", onClick: (ev) => { ev.stopPropagation(); onShare(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-secondary hover:text-foreground", children: _jsx(Share2, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onMove && entryCan(e, 'update') ? (_jsx("button", { type: "button", "aria-label": `Move ${e.name}`, title: "Move", onClick: (ev) => { ev.stopPropagation(); onMove(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-secondary hover:text-foreground", children: _jsx(FolderSymlink, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onRename && entryCan(e, 'update') ? (_jsx("button", { type: "button", "aria-label": `Rename ${e.name}`, title: "Rename", onClick: (ev) => { ev.stopPropagation(); startEdit(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-secondary hover:text-foreground", children: _jsx(Pencil, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onDelete && entryCan(e, 'delete') ? (_jsx("button", { type: "button", "aria-label": `Delete ${e.name}`, title: "Delete", onClick: (ev) => { ev.stopPropagation(); onDelete(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-950/40", children: _jsx(Trash2, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null] })) : null] }, `${e.kind}-${e.id}`));
|
|
92
93
|
}) }, virtualRow.key));
|
|
93
94
|
}) }) }));
|
|
94
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryGrid.js","sourceRoot":"","sources":["../../../src/components/browser/EntryGrid.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"EntryGrid.js","sourceRoot":"","sources":["../../../src/components/browser/EntryGrid.tsx"],"names":[],"mappings":"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"}
|
|
@@ -13,12 +13,15 @@ type Props = {
|
|
|
13
13
|
onOpenEditor?: (entry: BrowserEntry) => void;
|
|
14
14
|
/** Edit a file entry's tags. Shown only for files. */
|
|
15
15
|
onEditTags?: (entry: BrowserEntry) => void;
|
|
16
|
+
/** Share a row. The button shows only when the row's permittedActions grant
|
|
17
|
+
* `*:share`; wire it to open the host's `shareResource` slot. */
|
|
18
|
+
onShare?: (entry: BrowserEntry) => void;
|
|
16
19
|
selectedIds?: ReadonlySet<string>;
|
|
17
20
|
onToggleSelect?: (entry: BrowserEntry, index: number, shiftKey: boolean) => void;
|
|
18
21
|
scrollParentRef: React.RefObject<HTMLElement | null>;
|
|
19
22
|
/** Called when the last row scrolls into view — for infinite scroll / load-more. */
|
|
20
23
|
onReachEnd?: () => void;
|
|
21
24
|
};
|
|
22
|
-
export declare function EntryList({ entries, columns, onOpen, nameHeader, renderLeading, disableFiles, disableFolders, onDelete, onRename, onMove, onOpenEditor, onEditTags, selectedIds, onToggleSelect, scrollParentRef, onReachEnd, }: Props): import("react").JSX.Element;
|
|
25
|
+
export declare function EntryList({ entries, columns, onOpen, nameHeader, renderLeading, disableFiles, disableFolders, onDelete, onRename, onMove, onOpenEditor, onEditTags, onShare, selectedIds, onToggleSelect, scrollParentRef, onReachEnd, }: Props): import("react").JSX.Element;
|
|
23
26
|
export {};
|
|
24
27
|
//# sourceMappingURL=EntryList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryList.d.ts","sourceRoot":"","sources":["../../../src/components/browser/EntryList.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"EntryList.d.ts","sourceRoot":"","sources":["../../../src/components/browser/EntryList.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAK3E,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7C,sDAAsD;IACtD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C;sEACkE;IAClE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACjF,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACrD,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,OAAY,EACZ,MAAM,EACN,UAAmB,EACnB,aAA8B,EAC9B,YAAoB,EACpB,cAAsB,EACtB,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,UAAU,EACV,OAAO,EACP,WAAW,EACX,cAAc,EACd,eAAe,EACf,UAAU,GACX,EAAE,KAAK,+BA0QP"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { FolderSymlink, Pencil, SquarePen, Tag, Trash2 } from 'lucide-react';
|
|
2
|
+
import { FolderSymlink, Pencil, Share2, SquarePen, Tag, Trash2 } from 'lucide-react';
|
|
3
3
|
import { useEffect, useRef, useState } from 'react';
|
|
4
4
|
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
5
5
|
import { cn } from '../shared/cn.js';
|
|
6
6
|
import { DEFAULT_COL_WIDTH, ROW_ESTIMATE_LIST_PX } from './constants.js';
|
|
7
|
-
import { defaultLeading, isEntryDisabled } from './utils.js';
|
|
8
|
-
|
|
7
|
+
import { asText, defaultLeading, isEntryDisabled } from './utils.js';
|
|
8
|
+
import { entryCan } from './permissions.js';
|
|
9
|
+
export function EntryList({ entries, columns = [], onOpen, nameHeader = 'Name', renderLeading = defaultLeading, disableFiles = false, disableFolders = false, onDelete, onRename, onMove, onOpenEditor, onEditTags, onShare, selectedIds, onToggleSelect, scrollParentRef, onReachEnd, }) {
|
|
9
10
|
const [editingId, setEditingId] = useState(null);
|
|
10
11
|
const [editingValue, setEditingValue] = useState('');
|
|
11
12
|
const startEdit = (e) => {
|
|
@@ -24,7 +25,9 @@ export function EntryList({ entries, columns = [], onOpen, nameHeader = 'Name',
|
|
|
24
25
|
onRename?.(e, next);
|
|
25
26
|
}
|
|
26
27
|
};
|
|
27
|
-
|
|
28
|
+
// Max controls a row can show — reserves the trailing column width; per-row
|
|
29
|
+
// gating (below) shows a subset, so this stays an upper bound.
|
|
30
|
+
const trailingActions = (onOpenEditor ? 1 : 0) + (onEditTags ? 1 : 0) + (onShare ? 1 : 0) + (onMove ? 1 : 0) + (onRename ? 1 : 0) + (onDelete ? 1 : 0);
|
|
28
31
|
const template = [
|
|
29
32
|
'1fr',
|
|
30
33
|
...columns.map((c) => c.width ?? DEFAULT_COL_WIDTH),
|
|
@@ -72,9 +75,9 @@ export function EntryList({ entries, columns = [], onOpen, nameHeader = 'Name',
|
|
|
72
75
|
ev.stopPropagation();
|
|
73
76
|
cancelEdit();
|
|
74
77
|
}
|
|
75
|
-
}, onBlur: () => { commitEdit(e); }, maxLength: 255, className: "min-w-0 flex-1 truncate rounded-sm border border-ring/50 bg-background px-1.5 py-0.5 text-[13.5px] font-medium text-foreground outline-none focus:border-ring" })) : (_jsxs("span", { className: "flex min-w-0 flex-col text-left", children: [_jsx("span", { className: "truncate text-[13.5px] font-medium text-foreground", children: e.name }), e.kind === 'folder' && e.caption && (_jsx("span", { className: "truncate text-[11px] text-muted-foreground", children: e.caption })), e.kind === 'file' && e.tags && e.tags.length > 0 && (_jsx("span", { className: "mt-0.5 flex flex-wrap items-center gap-1", children: e.tags.map((t) => (_jsx("span", { className: "rounded-full bg-secondary px-1.5 py-px text-[10px] font-medium text-muted-foreground", children: t }, t))) }))] }))] }), e.kind !== 'folder' && columns.map((c) => (_jsx("span", { className: cn(c.mdOnly === false ? undefined : 'hidden md:block', 'truncate text-left tabular-nums text-[12px] text-muted-foreground'), children: c.render ? c.render(e) : (e.columns?.[c.key] ?? '—') }, `c-${c.key}`))), trailingActions > 0 ? (_jsxs("div", { style: { gridColumnStart: columns.length + 2 }, className: cn('flex items-center justify-end gap-0.5 transition', isEditing
|
|
78
|
+
}, onBlur: () => { commitEdit(e); }, maxLength: 255, className: "min-w-0 flex-1 truncate rounded-sm border border-ring/50 bg-background px-1.5 py-0.5 text-[13.5px] font-medium text-foreground outline-none focus:border-ring" })) : (_jsxs("span", { className: "flex min-w-0 flex-col text-left", children: [_jsx("span", { className: "truncate text-[13.5px] font-medium text-foreground", children: asText(e.name, e.id) }), e.kind === 'folder' && e.caption && (_jsx("span", { className: "truncate text-[11px] text-muted-foreground", children: asText(e.caption) })), e.kind === 'file' && e.tags && e.tags.length > 0 && (_jsx("span", { className: "mt-0.5 flex flex-wrap items-center gap-1", children: e.tags.map((t) => (_jsx("span", { className: "rounded-full bg-secondary px-1.5 py-px text-[10px] font-medium text-muted-foreground", children: t }, t))) }))] }))] }), e.kind !== 'folder' && columns.map((c) => (_jsx("span", { className: cn(c.mdOnly === false ? undefined : 'hidden md:block', 'truncate text-left tabular-nums text-[12px] text-muted-foreground'), children: c.render ? c.render(e) : (e.columns?.[c.key] ?? '—') }, `c-${c.key}`))), trailingActions > 0 ? (_jsxs("div", { style: { gridColumnStart: columns.length + 2 }, className: cn('flex items-center justify-end gap-0.5 transition', isEditing
|
|
76
79
|
? 'pointer-events-none opacity-0'
|
|
77
|
-
: 'opacity-0 group-hover:opacity-100 focus-within:opacity-100'), children: [onOpenEditor && e.kind === 'file' ? (_jsx("button", { type: "button", "aria-label": `Open ${e.name} in editor`, title: "Open editor", onClick: (ev) => { ev.stopPropagation(); onOpenEditor(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-secondary hover:text-foreground", children: _jsx(SquarePen, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onEditTags && e.kind === 'file' ? (_jsx("button", { type: "button", "aria-label": `Edit teams for ${e.name}`, title: "Teams", onClick: (ev) => { ev.stopPropagation(); onEditTags(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-secondary hover:text-foreground", children: _jsx(Tag, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onMove ? (_jsx("button", { type: "button", "aria-label": `Move ${e.name}`, title: "Move", onClick: (ev) => { ev.stopPropagation(); onMove(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-secondary hover:text-foreground", children: _jsx(FolderSymlink, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onRename ? (_jsx("button", { type: "button", "aria-label": `Rename ${e.name}`, title: "Rename", onClick: (ev) => { ev.stopPropagation(); startEdit(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-secondary hover:text-foreground", children: _jsx(Pencil, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onDelete ? (_jsx("button", { type: "button", "aria-label": `Delete ${e.name}`, title: "Delete", onClick: (ev) => { ev.stopPropagation(); onDelete(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-950/40", children: _jsx(Trash2, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null] })) : null] }) }, virtualRow.key));
|
|
80
|
+
: 'opacity-0 group-hover:opacity-100 focus-within:opacity-100'), children: [onOpenEditor && e.kind === 'file' ? (_jsx("button", { type: "button", "aria-label": `Open ${e.name} in editor`, title: "Open editor", onClick: (ev) => { ev.stopPropagation(); onOpenEditor(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-secondary hover:text-foreground", children: _jsx(SquarePen, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onEditTags && e.kind === 'file' && entryCan(e, 'update') ? (_jsx("button", { type: "button", "aria-label": `Edit teams for ${e.name}`, title: "Teams", onClick: (ev) => { ev.stopPropagation(); onEditTags(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-secondary hover:text-foreground", children: _jsx(Tag, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onShare && entryCan(e, 'share') ? (_jsx("button", { type: "button", "aria-label": `Share ${e.name}`, title: "Share", onClick: (ev) => { ev.stopPropagation(); onShare(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-secondary hover:text-foreground", children: _jsx(Share2, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onMove && entryCan(e, 'update') ? (_jsx("button", { type: "button", "aria-label": `Move ${e.name}`, title: "Move", onClick: (ev) => { ev.stopPropagation(); onMove(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-secondary hover:text-foreground", children: _jsx(FolderSymlink, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onRename && entryCan(e, 'update') ? (_jsx("button", { type: "button", "aria-label": `Rename ${e.name}`, title: "Rename", onClick: (ev) => { ev.stopPropagation(); startEdit(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-secondary hover:text-foreground", children: _jsx(Pencil, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onDelete && entryCan(e, 'delete') ? (_jsx("button", { type: "button", "aria-label": `Delete ${e.name}`, title: "Delete", onClick: (ev) => { ev.stopPropagation(); onDelete(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-950/40", children: _jsx(Trash2, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null] })) : null] }) }, virtualRow.key));
|
|
78
81
|
}) }) })] }));
|
|
79
82
|
}
|
|
80
83
|
//# sourceMappingURL=EntryList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryList.js","sourceRoot":"","sources":["../../../src/components/browser/EntryList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"EntryList.js","sourceRoot":"","sources":["../../../src/components/browser/EntryList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SlotName } from '../../types/slots.js';
|
|
1
2
|
type Props = {
|
|
2
3
|
open: boolean;
|
|
3
4
|
title: string;
|
|
@@ -7,10 +8,13 @@ type Props = {
|
|
|
7
8
|
helper?: string;
|
|
8
9
|
submitLabel?: string;
|
|
9
10
|
initialValue?: string;
|
|
10
|
-
|
|
11
|
+
/** Receives the trimmed name and, if an `attributeSlot` is set, the collected attributes. */
|
|
12
|
+
onSubmit: (name: string, attributes?: Record<string, unknown>) => Promise<void> | void;
|
|
11
13
|
onClose: () => void;
|
|
12
14
|
maxLength?: number;
|
|
15
|
+
/** When set, renders that product attribute-field slot below the input. */
|
|
16
|
+
attributeSlot?: SlotName;
|
|
13
17
|
};
|
|
14
|
-
export declare function NameDialog({ open, title, description, label, placeholder, helper, submitLabel, initialValue, onSubmit, onClose, maxLength, }: Props): import("react").ReactPortal | null;
|
|
18
|
+
export declare function NameDialog({ open, title, description, label, placeholder, helper, submitLabel, initialValue, onSubmit, onClose, maxLength, attributeSlot, }: Props): import("react").ReactPortal | null;
|
|
15
19
|
export {};
|
|
16
20
|
//# sourceMappingURL=NameDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NameDialog.d.ts","sourceRoot":"","sources":["../../../src/components/browser/NameDialog.tsx"],"names":[],"mappings":"AAKA,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"NameDialog.d.ts","sourceRoot":"","sources":["../../../src/components/browser/NameDialog.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAwB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE3E,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvF,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,QAAQ,CAAC;CAC1B,CAAC;AAEF,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,KAAK,EACL,WAAW,EACX,KAAK,EACL,WAAW,EACX,MAAM,EACN,WAAsB,EACtB,YAAiB,EACjB,QAAQ,EACR,OAAO,EACP,SAAe,EACf,aAAa,GACd,EAAE,KAAK,sCA4LP"}
|
|
@@ -3,8 +3,11 @@ import { useEffect, useId, useRef, useState } from 'react';
|
|
|
3
3
|
import { createPortal } from 'react-dom';
|
|
4
4
|
import { Loader2, X } from 'lucide-react';
|
|
5
5
|
import { cn } from '../shared/cn.js';
|
|
6
|
-
|
|
6
|
+
import { useOptionalSlot } from '../provider/slot-resolution.js';
|
|
7
|
+
export function NameDialog({ open, title, description, label, placeholder, helper, submitLabel = 'Create', initialValue = '', onSubmit, onClose, maxLength = 255, attributeSlot, }) {
|
|
8
|
+
const AttributeFields = useOptionalSlot(attributeSlot ?? 'folderAttributes');
|
|
7
9
|
const [value, setValue] = useState(initialValue);
|
|
10
|
+
const [attributes, setAttributes] = useState({});
|
|
8
11
|
const [error, setError] = useState(null);
|
|
9
12
|
const [busy, setBusy] = useState(false);
|
|
10
13
|
const inputRef = useRef(null);
|
|
@@ -15,6 +18,7 @@ export function NameDialog({ open, title, description, label, placeholder, helpe
|
|
|
15
18
|
useEffect(() => {
|
|
16
19
|
if (open) {
|
|
17
20
|
setValue(initialValue);
|
|
21
|
+
setAttributes({});
|
|
18
22
|
setError(null);
|
|
19
23
|
setBusy(false);
|
|
20
24
|
}
|
|
@@ -50,7 +54,7 @@ export function NameDialog({ open, title, description, label, placeholder, helpe
|
|
|
50
54
|
setBusy(true);
|
|
51
55
|
setError(null);
|
|
52
56
|
try {
|
|
53
|
-
await onSubmit(trimmed);
|
|
57
|
+
await onSubmit(trimmed, attributeSlot ? attributes : undefined);
|
|
54
58
|
}
|
|
55
59
|
catch (err) {
|
|
56
60
|
const msg = err instanceof Error ? err.message : 'Something went wrong';
|
|
@@ -71,7 +75,7 @@ export function NameDialog({ open, title, description, label, placeholder, helpe
|
|
|
71
75
|
setError(null);
|
|
72
76
|
}, className: cn('block w-full rounded-lg border bg-surface px-3 py-2 text-[13.5px] text-foreground transition placeholder:text-muted-foreground/70 focus:outline-none focus:ring-2 disabled:opacity-60', error
|
|
73
77
|
? 'border-red-400 focus:border-red-500 focus:ring-red-500/30 dark:border-red-700/60'
|
|
74
|
-
: 'border-border focus:border-ring focus:ring-ring/30') }), error ? (_jsx("p", { id: errorId, role: "alert", className: "mt-1.5 text-[11.5px] leading-snug text-red-600 dark:text-red-400", children: error })) : helper ? (_jsx("p", { id: helperId, className: "mt-1.5 text-[11.5px] leading-snug text-muted-foreground", children: helper })) : null, _jsxs("div", { className: "mt-4 flex items-center justify-end gap-2", children: [_jsx("button", { type: "button", onClick: onClose, disabled: busy, className: "inline-flex h-8 items-center rounded-md px-3 text-[12.5px] text-muted-foreground transition hover:bg-secondary hover:text-foreground disabled:opacity-50", children: "Cancel" }), _jsxs("button", { type: "submit", disabled: !isValid || busy, className: cn('inline-flex h-8 items-center gap-1.5 rounded-md px-3 text-[12.5px] font-medium transition-colors', 'bg-[var(--wui-primary)] text-[var(--wui-primary-fg)] hover:bg-[var(--wui-primary-hover)]', 'disabled:cursor-not-allowed disabled:opacity-50'), children: [busy ? _jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin", strokeWidth: 1.75 }) : null, submitLabel] })] })] })] })] }),
|
|
78
|
+
: 'border-border focus:border-ring focus:ring-ring/30') }), error ? (_jsx("p", { id: errorId, role: "alert", className: "mt-1.5 text-[11.5px] leading-snug text-red-600 dark:text-red-400", children: error })) : helper ? (_jsx("p", { id: helperId, className: "mt-1.5 text-[11.5px] leading-snug text-muted-foreground", children: helper })) : null, attributeSlot && AttributeFields && (_jsx("div", { className: "mt-3", children: _jsx(AttributeFields, { value: attributes, onChange: (patch) => setAttributes((a) => ({ ...a, ...patch })) }) })), _jsxs("div", { className: "mt-4 flex items-center justify-end gap-2", children: [_jsx("button", { type: "button", onClick: onClose, disabled: busy, className: "inline-flex h-8 items-center rounded-md px-3 text-[12.5px] text-muted-foreground transition hover:bg-secondary hover:text-foreground disabled:opacity-50", children: "Cancel" }), _jsxs("button", { type: "submit", disabled: !isValid || busy, className: cn('inline-flex h-8 items-center gap-1.5 rounded-md px-3 text-[12.5px] font-medium transition-colors', 'bg-[var(--wui-primary)] text-[var(--wui-primary-fg)] hover:bg-[var(--wui-primary-hover)]', 'disabled:cursor-not-allowed disabled:opacity-50'), children: [busy ? _jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin", strokeWidth: 1.75 }) : null, submitLabel] })] })] })] })] }),
|
|
75
79
|
// Portal into the workflow-ui scope so the dialog inherits the host's
|
|
76
80
|
// --wui-* tokens (primary, surfaces) instead of the package defaults.
|
|
77
81
|
document.querySelector('[data-workflow-ui]') ?? document.body);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NameDialog.js","sourceRoot":"","sources":["../../../src/components/browser/NameDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"NameDialog.js","sourceRoot":"","sources":["../../../src/components/browser/NameDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { BrowserEntry } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Row-action policy, expressed once so grid and list gate identically. A file
|
|
4
|
+
* entry is a workflow, a folder entry is a folder; the operation maps to that
|
|
5
|
+
* resource's action (`rename`/`move` → `*:update`, `delete` → `*:delete`,
|
|
6
|
+
* `share` → `*:share`). `canPerform` returns true when a row has no
|
|
7
|
+
* `permittedActions` (optimistic; the backend still enforces).
|
|
8
|
+
*/
|
|
9
|
+
export type RowOp = 'update' | 'delete' | 'share';
|
|
10
|
+
export declare function entryCan(entry: BrowserEntry, op: RowOp): boolean;
|
|
11
|
+
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/components/browser/permissions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAElD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAGhE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { canPerform } from '../../utils/permissions.js';
|
|
2
|
+
export function entryCan(entry, op) {
|
|
3
|
+
const resource = entry.kind === 'file' ? 'workflow' : 'folder';
|
|
4
|
+
return canPerform(entry.permittedActions, `${resource}:${op}`);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/components/browser/permissions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAYxD,MAAM,UAAU,QAAQ,CAAC,KAAmB,EAAE,EAAS;IACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC/D,OAAO,UAAU,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,QAAQ,IAAI,EAAE,EAAY,CAAC,CAAC;AAC3E,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
+
import type { Action } from '@xyne/workflow-sdk';
|
|
2
3
|
export type FileEntry = {
|
|
3
4
|
kind: 'file';
|
|
4
5
|
id: string;
|
|
@@ -9,6 +10,13 @@ export type FileEntry = {
|
|
|
9
10
|
status?: string;
|
|
10
11
|
/** Free-form tags (workflow metadata) — for filtering/search. */
|
|
11
12
|
tags?: string[];
|
|
13
|
+
/**
|
|
14
|
+
* The caller's permitted actions on this row, from the authorizer. Row
|
|
15
|
+
* controls (rename/move/delete/share) gate on it via `canPerform`; `undefined`
|
|
16
|
+
* means optimistic-allow (no authorizer / not projected). Never the security
|
|
17
|
+
* boundary — the backend enforces.
|
|
18
|
+
*/
|
|
19
|
+
permittedActions?: readonly Action[];
|
|
12
20
|
};
|
|
13
21
|
export type FolderEntry = {
|
|
14
22
|
kind: 'folder';
|
|
@@ -17,6 +25,9 @@ export type FolderEntry = {
|
|
|
17
25
|
caption?: string;
|
|
18
26
|
columns?: Readonly<Record<string, string>>;
|
|
19
27
|
status?: string;
|
|
28
|
+
/** See {@link FileEntry.permittedActions}. Also carries the CONTAINER actions
|
|
29
|
+
* (`workflow:create`/`folder:create`) that gate "New … inside this folder". */
|
|
30
|
+
permittedActions?: readonly Action[];
|
|
20
31
|
};
|
|
21
32
|
export type BrowserEntry = FileEntry | FolderEntry;
|
|
22
33
|
export type ColumnDef = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/browser/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/browser/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;oFACgF;IAChF,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AAEnD,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,SAAS,CAAC;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC;AAEpF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { BrowserEntry, LeadingRenderer } from './types.js';
|
|
2
2
|
export declare const defaultLeading: LeadingRenderer;
|
|
3
|
+
/** Coerce a value to a string safe to render as a React child. Malformed entry
|
|
4
|
+
* data (e.g. a workflow whose metadata.name parsed to an object) would otherwise
|
|
5
|
+
* throw React #31 and blank the whole list. */
|
|
6
|
+
export declare function asText(value: unknown, fallback?: string): string;
|
|
3
7
|
export declare function isEntryDisabled(entry: BrowserEntry, disableFiles: boolean, disableFolders: boolean): boolean;
|
|
4
8
|
export declare function useScrollMargin(scrollParentRef: React.RefObject<HTMLElement | null>): {
|
|
5
9
|
listRef: React.RefObject<HTMLDivElement | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/browser/utils.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhE,eAAO,MAAM,cAAc,EAAE,eACgC,CAAC;AAE9D,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,YAAY,EAAE,OAAO,EACrB,cAAc,EAAE,OAAO,GACtB,OAAO,CAKT;AAED,wBAAgB,eAAe,CAC7B,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GACnD;IACD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAChD,YAAY,EAAE,MAAM,CAAC;CACtB,CA0BA"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/browser/utils.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhE,eAAO,MAAM,cAAc,EAAE,eACgC,CAAC;AAE9D;;gDAEgD;AAChD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,SAAK,GAAG,MAAM,CAI5D;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,YAAY,EAAE,OAAO,EACrB,cAAc,EAAE,OAAO,GACtB,OAAO,CAKT;AAED,wBAAgB,eAAe,CAC7B,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GACnD;IACD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAChD,YAAY,EAAE,MAAM,CAAC;CACtB,CA0BA"}
|
|
@@ -2,6 +2,16 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useLayoutEffect, useRef, useState } from 'react';
|
|
3
3
|
import { FolderCard } from './FolderCard.js';
|
|
4
4
|
export const defaultLeading = (entry, size) => entry.kind === 'folder' ? _jsx(FolderCard, { size: size }) : null;
|
|
5
|
+
/** Coerce a value to a string safe to render as a React child. Malformed entry
|
|
6
|
+
* data (e.g. a workflow whose metadata.name parsed to an object) would otherwise
|
|
7
|
+
* throw React #31 and blank the whole list. */
|
|
8
|
+
export function asText(value, fallback = '') {
|
|
9
|
+
if (typeof value === 'string')
|
|
10
|
+
return value;
|
|
11
|
+
if (typeof value === 'number' || typeof value === 'boolean')
|
|
12
|
+
return String(value);
|
|
13
|
+
return fallback;
|
|
14
|
+
}
|
|
5
15
|
export function isEntryDisabled(entry, disableFiles, disableFolders) {
|
|
6
16
|
return ((entry.kind === 'file' && disableFiles) ||
|
|
7
17
|
(entry.kind === 'folder' && disableFolders));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/browser/utils.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,CAAC,MAAM,cAAc,GAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAC7D,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAE9D,MAAM,UAAU,eAAe,CAC7B,KAAmB,EACnB,YAAqB,EACrB,cAAuB;IAEvB,OAAO,CACL,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC;QACvC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,cAAc,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,eAAoD;IAKpD,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpD,eAAe,CAAC,GAA6B,EAAE;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;QAC7B,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC;YAClD,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC;QACF,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QACvC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,GAAS,EAAE;YAChB,EAAE,CAAC,UAAU,EAAE,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACtB,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/browser/utils.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,CAAC,MAAM,cAAc,GAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAC7D,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAE9D;;gDAEgD;AAChD,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,QAAQ,GAAG,EAAE;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAClF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAmB,EACnB,YAAqB,EACrB,cAAuB;IAEvB,OAAO,CACL,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC;QACvC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,cAAc,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,eAAoD;IAKpD,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpD,eAAe,CAAC,GAA6B,EAAE;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;QAC7B,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC;YAClD,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC;QACF,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QACvC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,GAAS,EAAE;YAChB,EAAE,CAAC,UAAU,EAAE,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACtB,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
import type { WorkflowConfig } from '@xyne/workflow-sdk/builder';
|
|
3
3
|
import type { AiBuilderClient } from '@xyne/workflow-sdk/ai-builder';
|
|
4
|
+
import type { Action } from '@xyne/workflow-sdk';
|
|
4
5
|
type View = 'builder' | 'runs';
|
|
5
6
|
export interface WorkflowDashboardProps {
|
|
6
7
|
defaultView?: View | undefined;
|
|
@@ -18,7 +19,14 @@ export interface WorkflowDashboardProps {
|
|
|
18
19
|
} | undefined;
|
|
19
20
|
/** If provided, shows the "Ask AI" button in the builder toolbar. */
|
|
20
21
|
aiBuilderClient?: AiBuilderClient | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* The caller's permitted actions on this workflow (from `client.workflows.get`
|
|
24
|
+
* → `record.permittedActions`). Gates the builder (read-only without
|
|
25
|
+
* `workflow:update`) and the Run button (`workflow:run`). Omit to allow all
|
|
26
|
+
* (e.g. when no authorizer is configured).
|
|
27
|
+
*/
|
|
28
|
+
permittedActions?: readonly Action[] | undefined;
|
|
21
29
|
}
|
|
22
|
-
export declare function WorkflowDashboard({ defaultView, workflowId, workflowConfig, summary, onSave, onTestRun, className, classNames, aiBuilderClient, }: WorkflowDashboardProps): React.JSX.Element;
|
|
30
|
+
export declare function WorkflowDashboard({ defaultView, workflowId, workflowConfig, summary, onSave, onTestRun, className, classNames, aiBuilderClient, permittedActions, }: WorkflowDashboardProps): React.JSX.Element;
|
|
23
31
|
export {};
|
|
24
32
|
//# sourceMappingURL=WorkflowDashboard.d.ts.map
|