@cogentic-co/ds 0.4.1

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 (159) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +139 -0
  3. package/dist/animations/animation-ai-analysis.d.ts +7 -0
  4. package/dist/animations/animation-ai-analysis.js +7 -0
  5. package/dist/animations/animation-ai-analysis.js.map +1 -0
  6. package/dist/animations/animation-audit-trail.d.ts +7 -0
  7. package/dist/animations/animation-audit-trail.js +5 -0
  8. package/dist/animations/animation-audit-trail.js.map +1 -0
  9. package/dist/animations/animation-compliance-reports.d.ts +7 -0
  10. package/dist/animations/animation-compliance-reports.js +7 -0
  11. package/dist/animations/animation-compliance-reports.js.map +1 -0
  12. package/dist/animations/animation-custom-rules.d.ts +7 -0
  13. package/dist/animations/animation-custom-rules.js +7 -0
  14. package/dist/animations/animation-custom-rules.js.map +1 -0
  15. package/dist/animations/animation-jira-ticket.d.ts +7 -0
  16. package/dist/animations/animation-jira-ticket.js +6 -0
  17. package/dist/animations/animation-jira-ticket.js.map +1 -0
  18. package/dist/animations/animation-jurisdiction-detection.d.ts +7 -0
  19. package/dist/animations/animation-jurisdiction-detection.js +7 -0
  20. package/dist/animations/animation-jurisdiction-detection.js.map +1 -0
  21. package/dist/animations/animation-multi-protocol.d.ts +7 -0
  22. package/dist/animations/animation-multi-protocol.js +5 -0
  23. package/dist/animations/animation-multi-protocol.js.map +1 -0
  24. package/dist/animations/animation-pricing-preview.d.ts +16 -0
  25. package/dist/animations/animation-pricing-preview.js +7 -0
  26. package/dist/animations/animation-pricing-preview.js.map +1 -0
  27. package/dist/animations/animation-realtime-updates.d.ts +7 -0
  28. package/dist/animations/animation-realtime-updates.js +8 -0
  29. package/dist/animations/animation-realtime-updates.js.map +1 -0
  30. package/dist/animations/animation-rest-api.d.ts +7 -0
  31. package/dist/animations/animation-rest-api.js +5 -0
  32. package/dist/animations/animation-rest-api.js.map +1 -0
  33. package/dist/animations/animation-risk-scoring.d.ts +7 -0
  34. package/dist/animations/animation-risk-scoring.js +8 -0
  35. package/dist/animations/animation-risk-scoring.js.map +1 -0
  36. package/dist/animations/animation-sandbox.d.ts +7 -0
  37. package/dist/animations/animation-sandbox.js +5 -0
  38. package/dist/animations/animation-sandbox.js.map +1 -0
  39. package/dist/animations/animation-scheduled-reports.d.ts +7 -0
  40. package/dist/animations/animation-scheduled-reports.js +7 -0
  41. package/dist/animations/animation-scheduled-reports.js.map +1 -0
  42. package/dist/animations/animation-secure-messaging.d.ts +7 -0
  43. package/dist/animations/animation-secure-messaging.js +6 -0
  44. package/dist/animations/animation-secure-messaging.js.map +1 -0
  45. package/dist/animations/animation-slack-notification.d.ts +7 -0
  46. package/dist/animations/animation-slack-notification.js +6 -0
  47. package/dist/animations/animation-slack-notification.js.map +1 -0
  48. package/dist/animations/animation-sop-mapping.d.ts +7 -0
  49. package/dist/animations/animation-sop-mapping.js +5 -0
  50. package/dist/animations/animation-sop-mapping.js.map +1 -0
  51. package/dist/animations/animation-team-routing.d.ts +7 -0
  52. package/dist/animations/animation-team-routing.js +7 -0
  53. package/dist/animations/animation-team-routing.js.map +1 -0
  54. package/dist/animations/animation-teams-notification.d.ts +7 -0
  55. package/dist/animations/animation-teams-notification.js +6 -0
  56. package/dist/animations/animation-teams-notification.js.map +1 -0
  57. package/dist/animations/animation-vasp-identification.d.ts +7 -0
  58. package/dist/animations/animation-vasp-identification.js +7 -0
  59. package/dist/animations/animation-vasp-identification.js.map +1 -0
  60. package/dist/animations/animation-webhooks.d.ts +7 -0
  61. package/dist/animations/animation-webhooks.js +6 -0
  62. package/dist/animations/animation-webhooks.js.map +1 -0
  63. package/dist/blocks/auth-form.d.ts +18 -0
  64. package/dist/blocks/auth-form.js +7 -0
  65. package/dist/blocks/auth-form.js.map +1 -0
  66. package/dist/blocks/feature-section.d.ts +17 -0
  67. package/dist/blocks/feature-section.js +5 -0
  68. package/dist/blocks/feature-section.js.map +1 -0
  69. package/dist/blocks/hero-section.d.ts +19 -0
  70. package/dist/blocks/hero-section.js +5 -0
  71. package/dist/blocks/hero-section.js.map +1 -0
  72. package/dist/blocks/pricing-table.d.ts +24 -0
  73. package/dist/blocks/pricing-table.js +6 -0
  74. package/dist/blocks/pricing-table.js.map +1 -0
  75. package/dist/blocks/stat-card.d.ts +15 -0
  76. package/dist/blocks/stat-card.js +6 -0
  77. package/dist/blocks/stat-card.js.map +1 -0
  78. package/dist/card-Cumdyf_G.d.ts +15 -0
  79. package/dist/charts.d.ts +4 -0
  80. package/dist/charts.js +5 -0
  81. package/dist/charts.js.map +1 -0
  82. package/dist/chatbot.d.ts +280 -0
  83. package/dist/chatbot.js +2202 -0
  84. package/dist/chatbot.js.map +1 -0
  85. package/dist/chunk-4NEQV6H2.js +39 -0
  86. package/dist/chunk-4NEQV6H2.js.map +1 -0
  87. package/dist/chunk-4YD3YS4B.js +110 -0
  88. package/dist/chunk-4YD3YS4B.js.map +1 -0
  89. package/dist/chunk-5JLZ42JT.js +125 -0
  90. package/dist/chunk-5JLZ42JT.js.map +1 -0
  91. package/dist/chunk-5OOO6TRA.js +111 -0
  92. package/dist/chunk-5OOO6TRA.js.map +1 -0
  93. package/dist/chunk-65Z2VEKG.js +161 -0
  94. package/dist/chunk-65Z2VEKG.js.map +1 -0
  95. package/dist/chunk-6RWCZUAD.js +12 -0
  96. package/dist/chunk-6RWCZUAD.js.map +1 -0
  97. package/dist/chunk-7HRPF2N2.js +56 -0
  98. package/dist/chunk-7HRPF2N2.js.map +1 -0
  99. package/dist/chunk-BNFSXNP2.js +71 -0
  100. package/dist/chunk-BNFSXNP2.js.map +1 -0
  101. package/dist/chunk-BTFYV3TI.js +102 -0
  102. package/dist/chunk-BTFYV3TI.js.map +1 -0
  103. package/dist/chunk-BTZB4JRC.js +117 -0
  104. package/dist/chunk-BTZB4JRC.js.map +1 -0
  105. package/dist/chunk-BZSA47MS.js +121 -0
  106. package/dist/chunk-BZSA47MS.js.map +1 -0
  107. package/dist/chunk-CG5JA7FM.js +107 -0
  108. package/dist/chunk-CG5JA7FM.js.map +1 -0
  109. package/dist/chunk-EFLWU2JP.js +145 -0
  110. package/dist/chunk-EFLWU2JP.js.map +1 -0
  111. package/dist/chunk-F7REPQOA.js +93 -0
  112. package/dist/chunk-F7REPQOA.js.map +1 -0
  113. package/dist/chunk-FKPK3CB7.js +143 -0
  114. package/dist/chunk-FKPK3CB7.js.map +1 -0
  115. package/dist/chunk-GZNLQE3I.js +55 -0
  116. package/dist/chunk-GZNLQE3I.js.map +1 -0
  117. package/dist/chunk-H7VUIMEL.js +172 -0
  118. package/dist/chunk-H7VUIMEL.js.map +1 -0
  119. package/dist/chunk-HTYR73ON.js +161 -0
  120. package/dist/chunk-HTYR73ON.js.map +1 -0
  121. package/dist/chunk-I26ZXVSY.js +124 -0
  122. package/dist/chunk-I26ZXVSY.js.map +1 -0
  123. package/dist/chunk-IKATDPHG.js +92 -0
  124. package/dist/chunk-IKATDPHG.js.map +1 -0
  125. package/dist/chunk-KUOF3XRZ.js +108 -0
  126. package/dist/chunk-KUOF3XRZ.js.map +1 -0
  127. package/dist/chunk-LW6GAWZM.js +148 -0
  128. package/dist/chunk-LW6GAWZM.js.map +1 -0
  129. package/dist/chunk-N7PBUY7G.js +110 -0
  130. package/dist/chunk-N7PBUY7G.js.map +1 -0
  131. package/dist/chunk-NAPDFVBI.js +102 -0
  132. package/dist/chunk-NAPDFVBI.js.map +1 -0
  133. package/dist/chunk-RTK7R4KZ.js +66 -0
  134. package/dist/chunk-RTK7R4KZ.js.map +1 -0
  135. package/dist/chunk-RXV2XUDZ.js +31 -0
  136. package/dist/chunk-RXV2XUDZ.js.map +1 -0
  137. package/dist/chunk-RZZTDJHG.js +110 -0
  138. package/dist/chunk-RZZTDJHG.js.map +1 -0
  139. package/dist/chunk-SNOJLZP4.js +197 -0
  140. package/dist/chunk-SNOJLZP4.js.map +1 -0
  141. package/dist/chunk-TAPJEVUA.js +24 -0
  142. package/dist/chunk-TAPJEVUA.js.map +1 -0
  143. package/dist/chunk-U4EPKN7G.js +518 -0
  144. package/dist/chunk-U4EPKN7G.js.map +1 -0
  145. package/dist/chunk-VWSX75RB.js +202 -0
  146. package/dist/chunk-VWSX75RB.js.map +1 -0
  147. package/dist/chunk-XFWKI45G.js +800 -0
  148. package/dist/chunk-XFWKI45G.js.map +1 -0
  149. package/dist/chunk-XQYFQ6PU.js +77 -0
  150. package/dist/chunk-XQYFQ6PU.js.map +1 -0
  151. package/dist/index-CcPuHWa-.d.ts +118 -0
  152. package/dist/index.d.ts +1385 -0
  153. package/dist/index.js +8673 -0
  154. package/dist/index.js.map +1 -0
  155. package/dist/workflow.d.ts +165 -0
  156. package/dist/workflow.js +5 -0
  157. package/dist/workflow.js.map +1 -0
  158. package/package.json +157 -0
  159. package/src/styles/globals.css +211 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/workflow/workflow-context.tsx","../src/workflow/canvas.tsx","../src/workflow/workflow-connection.tsx","../src/workflow/workflow-controls.tsx","../src/workflow/workflow-edge.tsx","../src/workflow/workflow-gate.tsx","../src/workflow/workflow-group.tsx","../src/workflow/workflow-handle.tsx","../src/workflow/workflow-label.tsx","../src/workflow/workflow-minimap.tsx","../src/workflow/workflow-node.tsx","../src/workflow/workflow-panel.tsx","../src/workflow/workflow-toolbar.tsx"],"names":["jsxs","jsx","ControlsPrimitive","cva","HandleBoundary","Component","Position","Handle","Fragment","PanelPrimitive"],"mappings":"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","file":"chunk-XFWKI45G.js","sourcesContent":["\"use client\"\n\nimport { createContext, useContext } from \"react\"\n\ntype WorkflowLayout = \"vertical\" | \"horizontal\"\n\nconst WorkflowContext = createContext<WorkflowLayout>(\"vertical\")\n\nfunction useWorkflowLayout() {\n return useContext(WorkflowContext)\n}\n\nexport { WorkflowContext, useWorkflowLayout }\nexport type { WorkflowLayout }\n","\"use client\"\n\nimport type { ReactFlowProps } from \"@xyflow/react\"\nimport { Background, ReactFlow } from \"@xyflow/react\"\nimport type { ReactNode } from \"react\"\nimport \"@xyflow/react/dist/style.css\"\nimport { cn } from \"../lib/utils\"\nimport { WorkflowContext, type WorkflowLayout } from \"./workflow-context\"\n\ntype CanvasProps = ReactFlowProps & {\n children?: ReactNode\n className?: string\n /** Flow direction — \"vertical\" (top→bottom) or \"horizontal\" (left→right). Default: \"vertical\" */\n layout?: WorkflowLayout\n}\n\nconst deleteKeyCode = [\"Backspace\", \"Delete\"]\n\nfunction Canvas({ children, className, layout = \"vertical\", ...props }: CanvasProps) {\n return (\n <WorkflowContext value={layout}>\n <ReactFlow\n data-slot=\"canvas\"\n deleteKeyCode={deleteKeyCode}\n fitView\n panOnDrag={false}\n panOnScroll\n selectionOnDrag={true}\n zoomOnDoubleClick={false}\n className={cn(\"\", className)}\n {...props}\n >\n <Background bgColor=\"var(--color-sidebar)\" />\n {children}\n </ReactFlow>\n </WorkflowContext>\n )\n}\n\nexport { Canvas }\nexport type { CanvasProps }\n","\"use client\"\n\nimport type { ConnectionLineComponent } from \"@xyflow/react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n// ---------------------------------------------------------------------------\n// CVA variants for connection line style\n// ---------------------------------------------------------------------------\n\nconst workflowConnectionVariants = cva(\"\", {\n variants: {\n variant: {\n default: \"\",\n dotted: \"\",\n dashed: \"\",\n animated: \"\",\n },\n },\n defaultVariants: { variant: \"default\" },\n})\n\ntype WorkflowConnectionVariant = NonNullable<\n VariantProps<typeof workflowConnectionVariants>[\"variant\"]\n>\n\n// Stroke dash patterns per variant\nconst strokeDash: Record<WorkflowConnectionVariant, string | undefined> = {\n default: undefined,\n dotted: \"2, 6\",\n dashed: \"12, 6\",\n animated: undefined,\n}\n\n// ---------------------------------------------------------------------------\n// Factory — create a ConnectionLineComponent for a given variant\n// ---------------------------------------------------------------------------\n\nfunction createConnectionLine(variant: WorkflowConnectionVariant): ConnectionLineComponent {\n const ConnectionLine: ConnectionLineComponent = ({ fromX, fromY, toX, toY }) => {\n const dx = Math.abs(toX - fromX)\n const dy = Math.abs(toY - fromY)\n const isVertical = dy > dx\n\n const path = isVertical\n ? `M${fromX},${fromY} C ${fromX},${fromY + (toY - fromY) * 0.5} ${toX},${fromY + (toY - fromY) * 0.5} ${toX},${toY}`\n : `M${fromX},${fromY} C ${fromX + (toX - fromX) * 0.5},${fromY} ${fromX + (toX - fromX) * 0.5},${toY} ${toX},${toY}`\n\n return (\n <g>\n <path\n d={path}\n fill=\"none\"\n stroke=\"var(--color-ring)\"\n strokeWidth={2}\n strokeDasharray={strokeDash[variant]}\n strokeLinecap={variant === \"dotted\" ? \"round\" : undefined}\n />\n {variant === \"animated\" && (\n <circle fill=\"var(--color-primary)\" r={3}>\n <animateMotion dur=\"1s\" path={path} repeatCount=\"indefinite\" />\n </circle>\n )}\n <circle\n cx={toX}\n cy={toY}\n fill=\"var(--color-card)\"\n r={4}\n stroke=\"var(--color-ring)\"\n strokeWidth={2}\n />\n </g>\n )\n }\n return ConnectionLine\n}\n\n// ---------------------------------------------------------------------------\n// Pre-built connection lines\n// ---------------------------------------------------------------------------\n\nconst WorkflowConnection = createConnectionLine(\"default\")\nconst WorkflowConnectionDotted = createConnectionLine(\"dotted\")\nconst WorkflowConnectionDashed = createConnectionLine(\"dashed\")\nconst WorkflowConnectionAnimated = createConnectionLine(\"animated\")\n\nexport {\n WorkflowConnection,\n WorkflowConnectionDotted,\n WorkflowConnectionDashed,\n WorkflowConnectionAnimated,\n workflowConnectionVariants,\n createConnectionLine,\n}\nexport type { WorkflowConnectionVariant }\n","\"use client\"\n\nimport { Controls as ControlsPrimitive } from \"@xyflow/react\"\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype WorkflowControlsProps = ComponentProps<typeof ControlsPrimitive>\n\nfunction WorkflowControls({ className, ...props }: WorkflowControlsProps) {\n return (\n <ControlsPrimitive\n data-slot=\"workflow-controls\"\n className={cn(\n \"gap-px overflow-hidden rounded-md border bg-card p-1 shadow-none!\",\n \"[&>button]:rounded-md [&>button]:border-none! [&>button]:bg-transparent! [&>button]:hover:bg-secondary!\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { WorkflowControls }\nexport type { WorkflowControlsProps }\n","\"use client\"\n\nimport type { EdgeProps } from \"@xyflow/react\"\nimport { BaseEdge, getBezierPath, getSimpleBezierPath } from \"@xyflow/react\"\n\n// ---------------------------------------------------------------------------\n// Edge variant type\n// ---------------------------------------------------------------------------\n\ntype WorkflowEdgeVariant = \"solid\" | \"dotted\" | \"animated\" | \"dashed\"\n\ntype WorkflowEdgeProps = EdgeProps & {\n data?: {\n variant?: WorkflowEdgeVariant\n color?: string\n label?: string\n /** Show a directional arrow at the target end */\n arrow?: boolean\n }\n}\n\n// ---------------------------------------------------------------------------\n// Stroke styles per variant\n// ---------------------------------------------------------------------------\n\nconst variantStyles: Record<WorkflowEdgeVariant, React.CSSProperties> = {\n solid: {},\n dotted: { strokeDasharray: \"3, 6\", strokeLinecap: \"round\" },\n dashed: { strokeDasharray: \"8, 4\" },\n animated: {},\n}\n\n// ---------------------------------------------------------------------------\n// SolidEdge — basic bezier with props-based path computation\n// ---------------------------------------------------------------------------\n\nfunction SolidEdge({\n id,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n data,\n markerEnd,\n style,\n}: WorkflowEdgeProps) {\n const variant = data?.variant ?? \"solid\"\n const color = data?.color\n const strokeColor = color ?? \"var(--color-muted-foreground)\"\n const markerId = `arrow-${id}`\n const resolvedMarkerEnd = data?.arrow ? `url(#${markerId})` : markerEnd\n\n const [edgePath, labelX, labelY] = getBezierPath({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n })\n\n return (\n <>\n {data?.arrow && (\n <defs>\n <marker\n id={markerId}\n markerWidth=\"12\"\n markerHeight=\"12\"\n refX=\"10\"\n refY=\"6\"\n orient=\"auto\"\n markerUnits=\"userSpaceOnUse\"\n >\n <path d=\"M2,2 L10,6 L2,10 Z\" fill={strokeColor} />\n </marker>\n </defs>\n )}\n <BaseEdge\n id={id}\n path={edgePath}\n markerEnd={resolvedMarkerEnd}\n className=\"!stroke-muted-foreground/50\"\n style={{\n strokeWidth: 2,\n ...variantStyles[variant],\n ...(color ? { stroke: color } : {}),\n ...style,\n }}\n />\n {data?.label && (\n <foreignObject\n x={labelX - 40}\n y={labelY - 10}\n width={80}\n height={20}\n className=\"pointer-events-none\"\n >\n <span className=\"flex items-center justify-center rounded-full bg-card px-2 py-0.5 font-medium text-[10px] text-muted-foreground ring-1 ring-border\">\n {data.label}\n </span>\n </foreignObject>\n )}\n </>\n )\n}\n\n// ---------------------------------------------------------------------------\n// DottedEdge — convenience wrapper\n// ---------------------------------------------------------------------------\n\nfunction DottedEdge(props: WorkflowEdgeProps) {\n return <SolidEdge {...props} data={{ ...props.data, variant: \"dotted\" }} />\n}\n\n// ---------------------------------------------------------------------------\n// DashedEdge — convenience wrapper\n// ---------------------------------------------------------------------------\n\nfunction DashedEdge(props: WorkflowEdgeProps) {\n return <SolidEdge {...props} data={{ ...props.data, variant: \"dashed\" }} />\n}\n\n// ---------------------------------------------------------------------------\n// TemporaryEdge — used while user is dragging a new connection\n// ---------------------------------------------------------------------------\n\nfunction TemporaryEdge({\n id,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n}: EdgeProps) {\n const [edgePath] = getSimpleBezierPath({\n sourcePosition,\n sourceX,\n sourceY,\n targetPosition,\n targetX,\n targetY,\n })\n\n return (\n <BaseEdge\n className=\"!stroke-ring\"\n id={id}\n path={edgePath}\n style={{ strokeWidth: 2, strokeDasharray: \"5, 5\" }}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// AnimatedEdge — path with a travelling dot\n// ---------------------------------------------------------------------------\n\nfunction AnimatedEdge({\n id,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n markerEnd,\n style,\n data,\n}: WorkflowEdgeProps) {\n const color = data?.color\n const strokeColor = color ?? \"var(--color-primary)\"\n const markerId = `arrow-${id}`\n const resolvedMarkerEnd = data?.arrow ? `url(#${markerId})` : markerEnd\n\n const [edgePath] = getBezierPath({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n })\n\n return (\n <>\n {data?.arrow && (\n <defs>\n <marker\n id={markerId}\n markerWidth=\"12\"\n markerHeight=\"12\"\n refX=\"10\"\n refY=\"6\"\n orient=\"auto\"\n markerUnits=\"userSpaceOnUse\"\n >\n <path d=\"M2,2 L10,6 L2,10 Z\" fill={strokeColor} />\n </marker>\n </defs>\n )}\n <BaseEdge\n id={id}\n markerEnd={resolvedMarkerEnd}\n path={edgePath}\n className=\"!stroke-primary/40\"\n style={{ strokeWidth: 2, ...(color ? { stroke: color } : {}), ...style }}\n />\n <circle fill={strokeColor} r=\"4\">\n <animateMotion dur=\"2s\" path={edgePath} repeatCount=\"indefinite\" />\n </circle>\n </>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Convenience namespace + exports\n// ---------------------------------------------------------------------------\n\nconst WorkflowEdge = {\n Solid: SolidEdge,\n Dotted: DottedEdge,\n Dashed: DashedEdge,\n Animated: AnimatedEdge,\n Temporary: TemporaryEdge,\n}\n\nexport { WorkflowEdge, SolidEdge, DottedEdge, DashedEdge, AnimatedEdge, TemporaryEdge }\nexport type { WorkflowEdgeProps, WorkflowEdgeVariant }\n","\"use client\"\n\nimport { Handle, Position } from \"@xyflow/react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Component, type ComponentProps, type ErrorInfo, type ReactNode } from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { useWorkflowLayout } from \"./workflow-context\"\n\n// Error boundary for handles outside ReactFlow context\nclass HandleBoundary extends Component<{ children: ReactNode }, { hasError: boolean }> {\n state = { hasError: false }\n static getDerivedStateFromError() {\n return { hasError: true }\n }\n componentDidCatch(_: Error, __: ErrorInfo) {}\n render() {\n if (this.state.hasError) return null\n return this.props.children\n }\n}\n\n// ---------------------------------------------------------------------------\n// CVA — gate type drives the shape/colour accent\n// ---------------------------------------------------------------------------\n\nconst workflowGateVariants = cva(\n [\n \"group/gate relative flex items-center justify-center\",\n \"bg-card overflow-visible\",\n \"transition-shadow duration-150\",\n ].join(\" \"),\n {\n variants: {\n type: {\n \"if-else\": \"size-14 rotate-45 rounded-lg ring-2 ring-amber-400 dark:ring-amber-500\",\n switch: \"size-14 rotate-45 rounded-lg ring-2 ring-violet-400 dark:ring-violet-500\",\n merge: \"size-14 rotate-45 rounded-lg ring-2 ring-sky-400 dark:ring-sky-500\",\n delay: \"size-14 rounded-full ring-2 ring-orange-400 dark:ring-orange-500\",\n end: \"size-10 rounded-full ring-2 ring-red-400 dark:ring-red-500\",\n },\n selected: {\n true: \"ring-[3px] ring-primary shadow-md\",\n false: \"\",\n },\n },\n defaultVariants: { type: \"if-else\", selected: false },\n },\n)\n\n// Icon accent colour per type\nconst iconColor: Record<string, string> = {\n \"if-else\": \"text-amber-500 dark:text-amber-400\",\n switch: \"text-violet-500 dark:text-violet-400\",\n merge: \"text-sky-500 dark:text-sky-400\",\n delay: \"text-orange-500 dark:text-orange-400\",\n end: \"text-red-500 dark:text-red-400\",\n}\n\n// Branch label colour per type\nconst branchLabelColor: Record<string, string> = {\n \"if-else\":\n \"border-emerald-300 bg-emerald-50 text-emerald-700 dark:border-emerald-600 dark:bg-emerald-950/40 dark:text-emerald-400\",\n switch:\n \"border-violet-300 bg-violet-50 text-violet-700 dark:border-violet-600 dark:bg-violet-950/40 dark:text-violet-400\",\n merge:\n \"border-sky-300 bg-sky-50 text-sky-700 dark:border-sky-600 dark:bg-sky-950/40 dark:text-sky-400\",\n delay:\n \"border-orange-300 bg-orange-50 text-orange-700 dark:border-orange-600 dark:bg-orange-950/40 dark:text-orange-400\",\n end: \"border-red-300 bg-red-50 text-red-700 dark:border-red-600 dark:bg-red-950/40 dark:text-red-400\",\n}\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype WorkflowGateProps = ComponentProps<\"div\"> &\n VariantProps<typeof workflowGateVariants> & {\n /** Label shown inside the diamond/circle */\n label?: ReactNode\n /** Icon shown inside the gate shape */\n icon?: ReactNode\n /** Handle configuration */\n handles?: {\n top?: boolean\n bottom?: boolean\n left?: boolean\n right?: boolean\n }\n /** Labels for left and right branches (displayed as pills beside the gate) */\n branches?: {\n left?: string\n right?: string\n }\n }\n\n// ---------------------------------------------------------------------------\n// Branch label pill — positioned beside the gate\n// ---------------------------------------------------------------------------\n\nfunction BranchLabel({\n children,\n side,\n type,\n}: {\n children: ReactNode\n side: \"left\" | \"right\"\n type: string\n}) {\n return (\n <span\n className={cn(\n \"absolute top-1/2 -translate-y-1/2 whitespace-nowrap\",\n \"rounded-md border px-2.5 py-1 font-semibold text-[11px]\",\n branchLabelColor[type] ?? branchLabelColor[\"if-else\"],\n side === \"left\" ? \"right-full mr-4\" : \"left-full ml-4\",\n )}\n >\n {children}\n </span>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Handle dot — small, clean\n// ---------------------------------------------------------------------------\n\nconst handleClassName = cn(\n \"!size-2.5 !rounded-full !border-[1.5px] !border-card !bg-muted-foreground/60\",\n \"hover:!bg-primary !transition-colors\",\n)\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nfunction WorkflowGate({\n type = \"if-else\",\n selected,\n label,\n icon,\n handles,\n branches,\n className,\n ...props\n}: WorkflowGateProps) {\n const isRotated = type === \"if-else\" || type === \"switch\" || type === \"merge\"\n const gateType = type ?? \"if-else\"\n\n let layout: \"vertical\" | \"horizontal\" = \"vertical\"\n try {\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional try/catch pattern for optional context\n layout = useWorkflowLayout()\n } catch {\n // Outside context — default to vertical\n }\n\n return (\n <div\n data-slot=\"workflow-gate\"\n data-gate-type={gateType}\n className={cn(\"relative flex items-center justify-center\", className)}\n {...props}\n >\n {/* The diamond / circle shape */}\n <div className={cn(workflowGateVariants({ type, selected }))}>\n {/* Inner content counter-rotated so icon reads normally */}\n <div\n className={cn(\n \"flex flex-col items-center justify-center gap-0.5\",\n isRotated && \"-rotate-45\",\n )}\n >\n {icon && <span className={cn(\"[&>svg]:size-5\", iconColor[gateType])}>{icon}</span>}\n {label && !icon && (\n <span\n className={cn(\"font-bold text-[9px] uppercase tracking-wider\", iconColor[gateType])}\n >\n {label}\n </span>\n )}\n </div>\n </div>\n\n {/* Branch labels */}\n {branches?.left && (\n <BranchLabel side=\"left\" type={gateType}>\n {branches.left}\n </BranchLabel>\n )}\n {branches?.right && (\n <BranchLabel side=\"right\" type={gateType}>\n {branches.right}\n </BranchLabel>\n )}\n\n {/* Handles */}\n {handles?.top && (\n <HandleBoundary>\n <Handle\n type=\"target\"\n position={layout === \"horizontal\" ? Position.Left : Position.Top}\n className={handleClassName}\n />\n </HandleBoundary>\n )}\n {handles?.bottom && (\n <HandleBoundary>\n <Handle\n type=\"source\"\n position={layout === \"horizontal\" ? Position.Right : Position.Bottom}\n className={handleClassName}\n />\n </HandleBoundary>\n )}\n {handles?.left && (\n <HandleBoundary>\n <Handle type=\"source\" position={Position.Left} id=\"left\" className={handleClassName} />\n </HandleBoundary>\n )}\n {handles?.right && (\n <HandleBoundary>\n <Handle type=\"source\" position={Position.Right} id=\"right\" className={handleClassName} />\n </HandleBoundary>\n )}\n </div>\n )\n}\n\nexport { WorkflowGate, workflowGateVariants }\nexport type { WorkflowGateProps }\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport type { ComponentProps, ReactNode } from \"react\"\nimport { cn } from \"../lib/utils\"\n\nconst workflowGroupVariants = cva(\n [\"relative rounded-2xl border-2 border-dashed p-4 pt-8\", \"transition-shadow duration-150\"].join(\n \" \",\n ),\n {\n variants: {\n variant: {\n default: \"border-border/50 bg-muted/20\",\n primary: \"border-primary/30 bg-primary/5\",\n success: \"border-emerald-400/30 bg-emerald-50/30 dark:bg-emerald-950/10\",\n warning: \"border-amber-400/30 bg-amber-50/30 dark:bg-amber-950/10\",\n },\n selected: {\n true: \"border-primary/60 shadow-md\",\n false: \"\",\n },\n },\n defaultVariants: { variant: \"default\", selected: false },\n },\n)\n\ntype WorkflowGroupProps = ComponentProps<\"div\"> &\n VariantProps<typeof workflowGroupVariants> & {\n /** Title shown at the top of the group */\n label?: ReactNode\n /** Icon shown before the label */\n icon?: ReactNode\n }\n\nfunction WorkflowGroup({\n variant,\n selected,\n label,\n icon,\n className,\n children,\n ...props\n}: WorkflowGroupProps) {\n return (\n <div\n data-slot=\"workflow-group\"\n className={cn(workflowGroupVariants({ variant, selected }), className)}\n {...props}\n >\n {(label || icon) && (\n <div className=\"absolute -top-3 left-4 inline-flex items-center gap-1.5 rounded-md bg-card px-2.5 py-1 font-semibold text-muted-foreground text-xs shadow-sm ring-1 ring-border\">\n {icon && <span className=\"[&>svg]:size-3.5\">{icon}</span>}\n {label}\n </div>\n )}\n {children}\n </div>\n )\n}\n\nexport { WorkflowGroup, workflowGroupVariants }\nexport type { WorkflowGroupProps }\n","\"use client\"\n\nimport { Handle, type HandleProps, Position } from \"@xyflow/react\"\nimport { Component, type ErrorInfo, type ReactNode } from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { useWorkflowLayout } from \"./workflow-context\"\n\n// Error boundary for handles outside ReactFlow context\nclass HandleBoundary extends Component<{ children: ReactNode }, { hasError: boolean }> {\n state = { hasError: false }\n static getDerivedStateFromError() {\n return { hasError: true }\n }\n componentDidCatch(_: Error, __: ErrorInfo) {}\n render() {\n if (this.state.hasError) return null\n return this.props.children\n }\n}\n\ntype WorkflowHandleProps = Omit<HandleProps, \"position\"> & {\n /** Override position. If omitted, auto-detects based on layout context and type (source→bottom/right, target→top/left) */\n position?: Position\n className?: string\n}\n\nconst handleBase =\n \"!size-2.5 !rounded-full !border-[1.5px] !border-card !bg-muted-foreground/60 hover:!bg-primary !transition-colors\"\n\nfunction WorkflowHandle({ type, position, className, ...props }: WorkflowHandleProps) {\n let layout: \"vertical\" | \"horizontal\" = \"vertical\"\n try {\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional try/catch pattern for optional context\n layout = useWorkflowLayout()\n } catch {\n // Outside context — default to vertical\n }\n\n const resolvedPosition =\n position ??\n (type === \"source\"\n ? layout === \"horizontal\"\n ? Position.Right\n : Position.Bottom\n : layout === \"horizontal\"\n ? Position.Left\n : Position.Top)\n\n return (\n <HandleBoundary>\n <Handle\n type={type}\n position={resolvedPosition}\n className={cn(handleBase, className)}\n {...props}\n />\n </HandleBoundary>\n )\n}\n\nexport { WorkflowHandle, HandleBoundary, handleBase }\nexport type { WorkflowHandleProps }\n","\"use client\"\n\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\n// ---------------------------------------------------------------------------\n// WorkflowLabel — floating annotation for edges or canvas areas\n// ---------------------------------------------------------------------------\n\ntype WorkflowLabelProps = ComponentProps<\"div\"> & {\n variant?: \"default\" | \"success\" | \"warning\" | \"error\" | \"muted\"\n}\n\nconst variantClasses: Record<NonNullable<WorkflowLabelProps[\"variant\"]>, string> = {\n default: \"bg-card text-foreground ring-border\",\n success:\n \"bg-emerald-50 text-emerald-700 ring-emerald-200 dark:bg-emerald-950/40 dark:text-emerald-300 dark:ring-emerald-800\",\n warning:\n \"bg-amber-50 text-amber-700 ring-amber-200 dark:bg-amber-950/40 dark:text-amber-300 dark:ring-amber-800\",\n error:\n \"bg-red-50 text-red-700 ring-red-200 dark:bg-red-950/40 dark:text-red-300 dark:ring-red-800\",\n muted: \"bg-muted text-muted-foreground ring-border\",\n}\n\nfunction WorkflowLabel({ variant = \"default\", className, ...props }: WorkflowLabelProps) {\n return (\n <div\n data-slot=\"workflow-label\"\n className={cn(\n \"inline-flex items-center gap-1.5 rounded-full px-3 py-1 font-semibold text-[11px] shadow-sm ring-1\",\n variantClasses[variant],\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { WorkflowLabel }\nexport type { WorkflowLabelProps }\n","\"use client\"\n\nimport { MiniMap } from \"@xyflow/react\"\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype WorkflowMinimapProps = ComponentProps<typeof MiniMap>\n\nfunction WorkflowMinimap({ className, ...props }: WorkflowMinimapProps) {\n return (\n <MiniMap\n data-slot=\"workflow-minimap\"\n className={cn(\"!rounded-lg !border !border-border !bg-card !shadow-sm\", className)}\n maskColor=\"var(--color-muted)\"\n nodeColor=\"var(--color-primary)\"\n nodeStrokeColor=\"var(--color-border)\"\n nodeBorderRadius={8}\n {...props}\n />\n )\n}\n\nexport { WorkflowMinimap }\nexport type { WorkflowMinimapProps }\n","\"use client\"\n\nimport { Handle, Position } from \"@xyflow/react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { ChevronDown, ChevronUp, GripVertical, Plus } from \"lucide-react\"\nimport { Component, type ComponentProps, type ErrorInfo, type ReactNode, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { useWorkflowLayout } from \"./workflow-context\"\n\n// Silently swallow Handle errors when rendered outside ReactFlow context\nclass HandleBoundary extends Component<{ children: ReactNode }, { hasError: boolean }> {\n state = { hasError: false }\n static getDerivedStateFromError() {\n return { hasError: true }\n }\n componentDidCatch(_: Error, __: ErrorInfo) {\n // Intentionally silent — handles are optional outside a canvas\n }\n render() {\n if (this.state.hasError) return null\n return this.props.children\n }\n}\n\n// ---------------------------------------------------------------------------\n// CVA — state drives the ring/border treatment\n// ---------------------------------------------------------------------------\n\nconst workflowNodeVariants = cva(\n [\n \"group/node relative flex flex-col bg-card text-card-foreground\",\n \"rounded-2xl shadow-sm overflow-visible w-80\",\n \"transition-shadow duration-150\",\n ].join(\" \"),\n {\n variants: {\n state: {\n default: \"ring-1 ring-border/70\",\n selected: \"ring-[3px] ring-primary shadow-md\",\n dotted: \"border-2 border-dashed border-muted-foreground/30 shadow-none\",\n },\n },\n defaultVariants: { state: \"default\" },\n },\n)\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype WorkflowNodeProps = ComponentProps<\"div\"> &\n VariantProps<typeof workflowNodeVariants> & {\n /** Show the 6-dot drag grip in the header */\n draggable?: boolean\n /** Icon rendered before the title — wrap in a coloured square for the best look */\n icon?: React.ReactNode\n /** Node title text */\n title?: React.ReactNode\n /** Status badge (e.g. \"TRIGGER\") shown at the trailing edge of the header */\n status?: React.ReactNode\n /** Notification badge count rendered on the icon */\n badge?: number | string\n /** Make the body collapsible with an expand/close footer toggle */\n collapsible?: boolean\n /** Start collapsed when collapsible is true */\n defaultCollapsed?: boolean\n /** Custom footer content (ignored when collapsible is true) */\n footer?: React.ReactNode\n /** Configure source/target handles at the top and bottom edges */\n handles?: { target?: boolean; source?: boolean }\n }\n\n// ---------------------------------------------------------------------------\n// Handle connector — circle with a subtle plus icon\n// ---------------------------------------------------------------------------\n\nfunction NodeHandle({ type }: { type: \"source\" | \"target\" }) {\n let layout: \"vertical\" | \"horizontal\" = \"vertical\"\n try {\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional try/catch pattern for optional context\n layout = useWorkflowLayout()\n } catch {\n // Outside context — default to vertical\n }\n\n // vertical: target=Top, source=Bottom\n // horizontal: target=Left, source=Right\n const position =\n layout === \"horizontal\"\n ? type === \"target\"\n ? Position.Left\n : Position.Right\n : type === \"target\"\n ? Position.Top\n : Position.Bottom\n\n return (\n <Handle\n type={type}\n position={position}\n className={cn(\n \"!flex !items-center !justify-center\",\n \"!size-5 !rounded-full !border-2 !border-card !bg-muted-foreground/70\",\n \"hover:!bg-primary hover:!border-primary/20 !transition-colors\",\n )}\n >\n <Plus className=\"pointer-events-none size-2.5 text-card\" />\n </Handle>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Header — drag grip ·· icon · title · status pill\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNodeHeader({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-header\"\n className={cn(\"flex items-center gap-3 px-4 py-3.5\", className)}\n {...props}\n />\n )\n}\n\nfunction WorkflowNodeTitle({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-title\"\n className={cn(\"min-w-0 flex-1 truncate font-bold text-sm leading-tight\", className)}\n {...props}\n />\n )\n}\n\nfunction WorkflowNodeDescription({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-description\"\n className={cn(\"text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction WorkflowNodeAction({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-action\"\n className={cn(\"ml-auto shrink-0\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Content area — sits between dotted separators\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNodeContent({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-content\"\n className={cn(\"space-y-2.5 px-4 py-3\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Footer\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNodeFooter({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-footer\"\n className={cn(\n \"flex items-center justify-center gap-1.5 px-4 py-2.5\",\n \"font-semibold text-muted-foreground text-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Dotted separator\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNodeSeparator({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"workflow-node-separator\"\n className={cn(\"mx-3 border-muted-foreground/20 border-t border-dashed\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Row — a label/value pair rendered as a rounded grey chip (like in the image)\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNodeRow({\n label,\n value,\n icon,\n className,\n ...props\n}: ComponentProps<\"div\"> & {\n label: string\n value: React.ReactNode\n icon?: React.ReactNode\n}) {\n return (\n <div\n data-slot=\"workflow-node-row\"\n className={cn(\n \"flex items-center justify-between gap-3 rounded-xl bg-muted/60 px-4 py-2.5\",\n className,\n )}\n {...props}\n >\n <span className=\"text-muted-foreground text-sm\">{label}</span>\n <span className=\"inline-flex items-center gap-2 font-semibold text-sm\">\n {icon && (\n <span className=\"shrink-0 [&>img]:size-6 [&>img]:rounded-full [&>svg]:size-4\">\n {icon}\n </span>\n )}\n {value}\n </span>\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Main component\n// ---------------------------------------------------------------------------\n\nfunction WorkflowNode({\n state,\n draggable: showDragHandle,\n icon,\n title,\n status,\n badge,\n collapsible,\n defaultCollapsed = false,\n footer,\n handles,\n className,\n children,\n ...props\n}: WorkflowNodeProps) {\n const [collapsed, setCollapsed] = useState(defaultCollapsed)\n\n const hasHeader = icon || title || status || showDragHandle\n const hasContent = !!children\n const hasFooter = footer || collapsible\n\n return (\n <div\n data-slot=\"workflow-node\"\n data-state={state ?? \"default\"}\n className={cn(workflowNodeVariants({ state }), className)}\n {...props}\n >\n {/* Target handle */}\n {handles?.target && (\n <HandleBoundary>\n <NodeHandle type=\"target\" />\n </HandleBoundary>\n )}\n\n {/* Header */}\n {hasHeader && (\n <WorkflowNodeHeader>\n {showDragHandle && (\n <span className=\"shrink-0 cursor-grab text-muted-foreground/40 transition-colors hover:text-muted-foreground active:cursor-grabbing\">\n <GripVertical className=\"size-4\" />\n </span>\n )}\n {icon && (\n <span className=\"relative shrink-0 [&>img]:size-8 [&>img]:rounded-lg [&>svg]:size-7\">\n {icon}\n {badge != null && (\n <span className=\"absolute -top-1.5 -right-1.5 inline-flex h-[18px] min-w-[18px] items-center justify-center rounded-full bg-primary px-1 font-bold text-[10px] text-primary-foreground leading-none ring-2 ring-card\">\n {badge}\n </span>\n )}\n </span>\n )}\n {title && <WorkflowNodeTitle>{title}</WorkflowNodeTitle>}\n {status && (\n <span className=\"ml-auto inline-flex shrink-0 items-center gap-1 rounded-full border border-border/80 bg-muted/40 px-2.5 py-1 font-bold text-[10px] text-muted-foreground uppercase tracking-widest\">\n <ChevronDown className=\"size-2.5\" />\n {status}\n </span>\n )}\n </WorkflowNodeHeader>\n )}\n\n {/* Body (collapsible) */}\n {hasContent && !collapsed && (\n <>\n {hasHeader && <WorkflowNodeSeparator />}\n <WorkflowNodeContent>{children}</WorkflowNodeContent>\n </>\n )}\n\n {/* Footer */}\n {hasFooter && (\n <>\n <WorkflowNodeSeparator />\n <WorkflowNodeFooter>\n {collapsible ? (\n <button\n type=\"button\"\n onClick={() => setCollapsed((c) => !c)}\n className=\"inline-flex items-center gap-1.5 font-semibold text-muted-foreground text-xs transition-colors hover:text-foreground\"\n >\n {collapsed ? (\n <>\n <ChevronDown className=\"size-3.5\" />\n Expand\n </>\n ) : (\n <>\n <ChevronUp className=\"size-3.5\" />\n Close\n </>\n )}\n </button>\n ) : (\n footer\n )}\n </WorkflowNodeFooter>\n </>\n )}\n\n {/* Source handle */}\n {handles?.source && (\n <HandleBoundary>\n <NodeHandle type=\"source\" />\n </HandleBoundary>\n )}\n </div>\n )\n}\n\nexport {\n WorkflowNode,\n WorkflowNodeHeader,\n WorkflowNodeTitle,\n WorkflowNodeDescription,\n WorkflowNodeAction,\n WorkflowNodeContent,\n WorkflowNodeFooter,\n WorkflowNodeSeparator,\n WorkflowNodeRow,\n workflowNodeVariants,\n}\nexport type { WorkflowNodeProps }\n","import { Panel as PanelPrimitive } from \"@xyflow/react\"\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype WorkflowPanelProps = ComponentProps<typeof PanelPrimitive>\n\nfunction WorkflowPanel({ className, ...props }: WorkflowPanelProps) {\n return (\n <PanelPrimitive\n data-slot=\"workflow-panel\"\n className={cn(\"m-4 overflow-hidden rounded-md border bg-card p-1\", className)}\n {...props}\n />\n )\n}\n\nexport { WorkflowPanel }\nexport type { WorkflowPanelProps }\n","import { NodeToolbar, Position } from \"@xyflow/react\"\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype WorkflowToolbarProps = ComponentProps<typeof NodeToolbar>\n\nfunction WorkflowToolbar({ className, ...props }: WorkflowToolbarProps) {\n return (\n <NodeToolbar\n data-slot=\"workflow-toolbar\"\n className={cn(\"flex items-center gap-1 rounded-sm border bg-background p-1.5\", className)}\n position={Position.Bottom}\n {...props}\n />\n )\n}\n\nexport { WorkflowToolbar }\nexport type { WorkflowToolbarProps }\n"]}
@@ -0,0 +1,77 @@
1
+ "use client";
2
+ import { __objRest, __spreadProps, __spreadValues, cn } from './chunk-GZNLQE3I.js';
3
+ import { cva } from 'class-variance-authority';
4
+ import { jsx, jsxs } from 'react/jsx-runtime';
5
+
6
+ var heroVariants = cva("relative overflow-hidden", {
7
+ variants: {
8
+ variant: {
9
+ default: "py-16 md:py-24 lg:py-32",
10
+ centered: "py-20 md:py-32 lg:py-40 text-center",
11
+ split: "py-16 md:py-24"
12
+ },
13
+ size: {
14
+ sm: "",
15
+ md: "",
16
+ lg: "",
17
+ full: "min-h-screen flex items-center"
18
+ }
19
+ },
20
+ defaultVariants: { variant: "centered", size: "md" }
21
+ });
22
+ function HeroSection(_a) {
23
+ var _b = _a, {
24
+ title,
25
+ subtitle,
26
+ actions,
27
+ media,
28
+ badge,
29
+ variant = "centered",
30
+ size,
31
+ className
32
+ } = _b, props = __objRest(_b, [
33
+ "title",
34
+ "subtitle",
35
+ "actions",
36
+ "media",
37
+ "badge",
38
+ "variant",
39
+ "size",
40
+ "className"
41
+ ]);
42
+ return /* @__PURE__ */ jsx(
43
+ "section",
44
+ __spreadProps(__spreadValues({
45
+ "data-slot": "hero-section",
46
+ className: cn(heroVariants({ variant, size }), className)
47
+ }, props), {
48
+ children: /* @__PURE__ */ jsx("div", { className: "mx-auto max-w-6xl px-4", children: variant === "split" ? /* @__PURE__ */ jsxs("div", { className: "grid items-center gap-12 md:grid-cols-2", children: [
49
+ /* @__PURE__ */ jsxs("div", { children: [
50
+ badge && /* @__PURE__ */ jsx("div", { className: "mb-4", children: badge }),
51
+ /* @__PURE__ */ jsx("h1", { className: "font-bold text-4xl tracking-tight sm:text-5xl lg:text-6xl", children: title }),
52
+ subtitle && /* @__PURE__ */ jsx("p", { className: "mt-6 text-lg text-muted-foreground leading-relaxed", children: subtitle }),
53
+ actions && /* @__PURE__ */ jsx("div", { className: "mt-8 flex flex-wrap gap-4", children: actions })
54
+ ] }),
55
+ media && /* @__PURE__ */ jsx("div", { children: media })
56
+ ] }) : /* @__PURE__ */ jsxs("div", { className: cn("mx-auto", variant === "centered" && "max-w-3xl"), children: [
57
+ badge && /* @__PURE__ */ jsx("div", { className: "mb-4 flex justify-center", children: badge }),
58
+ /* @__PURE__ */ jsx("h1", { className: "font-bold text-4xl tracking-tight sm:text-5xl lg:text-6xl", children: title }),
59
+ subtitle && /* @__PURE__ */ jsx("p", { className: "mt-6 text-lg text-muted-foreground leading-relaxed", children: subtitle }),
60
+ actions && /* @__PURE__ */ jsx(
61
+ "div",
62
+ {
63
+ className: cn(
64
+ "mt-8 flex flex-wrap gap-4",
65
+ variant === "centered" && "justify-center"
66
+ ),
67
+ children: actions
68
+ }
69
+ )
70
+ ] }) })
71
+ })
72
+ );
73
+ }
74
+
75
+ export { HeroSection, heroVariants };
76
+ //# sourceMappingURL=chunk-XQYFQ6PU.js.map
77
+ //# sourceMappingURL=chunk-XQYFQ6PU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/blocks/hero-section.tsx"],"names":[],"mappings":"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","file":"chunk-XQYFQ6PU.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nconst heroVariants = cva(\"relative overflow-hidden\", {\n variants: {\n variant: {\n default: \"py-16 md:py-24 lg:py-32\",\n centered: \"py-20 md:py-32 lg:py-40 text-center\",\n split: \"py-16 md:py-24\",\n },\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n full: \"min-h-screen flex items-center\",\n },\n },\n defaultVariants: { variant: \"centered\", size: \"md\" },\n})\n\ntype HeroSectionProps = React.ComponentProps<\"section\"> &\n VariantProps<typeof heroVariants> & {\n title: React.ReactNode\n subtitle?: React.ReactNode\n actions?: React.ReactNode\n media?: React.ReactNode\n badge?: React.ReactNode\n }\n\nfunction HeroSection({\n title,\n subtitle,\n actions,\n media,\n badge,\n variant = \"centered\",\n size,\n className,\n ...props\n}: HeroSectionProps) {\n return (\n <section\n data-slot=\"hero-section\"\n className={cn(heroVariants({ variant, size }), className)}\n {...props}\n >\n <div className=\"mx-auto max-w-6xl px-4\">\n {variant === \"split\" ? (\n <div className=\"grid items-center gap-12 md:grid-cols-2\">\n <div>\n {badge && <div className=\"mb-4\">{badge}</div>}\n <h1 className=\"font-bold text-4xl tracking-tight sm:text-5xl lg:text-6xl\">{title}</h1>\n {subtitle && (\n <p className=\"mt-6 text-lg text-muted-foreground leading-relaxed\">{subtitle}</p>\n )}\n {actions && <div className=\"mt-8 flex flex-wrap gap-4\">{actions}</div>}\n </div>\n {media && <div>{media}</div>}\n </div>\n ) : (\n <div className={cn(\"mx-auto\", variant === \"centered\" && \"max-w-3xl\")}>\n {badge && <div className=\"mb-4 flex justify-center\">{badge}</div>}\n <h1 className=\"font-bold text-4xl tracking-tight sm:text-5xl lg:text-6xl\">{title}</h1>\n {subtitle && (\n <p className=\"mt-6 text-lg text-muted-foreground leading-relaxed\">{subtitle}</p>\n )}\n {actions && (\n <div\n className={cn(\n \"mt-8 flex flex-wrap gap-4\",\n variant === \"centered\" && \"justify-center\",\n )}\n >\n {actions}\n </div>\n )}\n </div>\n )}\n </div>\n </section>\n )\n}\n\nexport { HeroSection, heroVariants }\nexport type { HeroSectionProps }\n"]}
@@ -0,0 +1,118 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import * as RechartsPrimitive from 'recharts';
4
+
5
+ declare const THEMES: {
6
+ readonly light: "";
7
+ readonly dark: ".dark";
8
+ };
9
+ type ChartConfig = {
10
+ [k in string]: {
11
+ label?: React.ReactNode;
12
+ icon?: React.ComponentType;
13
+ } & ({
14
+ color?: string;
15
+ theme?: never;
16
+ } | {
17
+ color?: never;
18
+ theme: Record<keyof typeof THEMES, string>;
19
+ });
20
+ };
21
+ declare function ChartContainer({ id, className, children, config, ...props }: React.ComponentProps<"div"> & {
22
+ config: ChartConfig;
23
+ children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
24
+ }): react_jsx_runtime.JSX.Element;
25
+ declare const ChartStyle: ({ id, config }: {
26
+ id: string;
27
+ config: ChartConfig;
28
+ }) => react_jsx_runtime.JSX.Element | null;
29
+ declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
30
+ declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }: Partial<RechartsPrimitive.TooltipContentProps<string | number, string>> & React.ComponentProps<"div"> & {
31
+ hideLabel?: boolean;
32
+ hideIndicator?: boolean;
33
+ indicator?: "line" | "dot" | "dashed";
34
+ nameKey?: string;
35
+ labelKey?: string;
36
+ }): react_jsx_runtime.JSX.Element | null;
37
+ declare const ChartLegend: typeof RechartsPrimitive.Legend;
38
+ declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey, }: React.ComponentProps<"div"> & {
39
+ payload?: Array<{
40
+ value: string;
41
+ type?: string;
42
+ color?: string;
43
+ dataKey?: string;
44
+ }>;
45
+ verticalAlign?: "top" | "bottom" | "middle";
46
+ hideIcon?: boolean;
47
+ nameKey?: string;
48
+ }): react_jsx_runtime.JSX.Element | null;
49
+
50
+ type AreaChartProps = React.ComponentProps<"div"> & {
51
+ data: Record<string, unknown>[];
52
+ config: ChartConfig;
53
+ xKey: string;
54
+ yKeys: string[];
55
+ showGrid?: boolean;
56
+ showXAxis?: boolean;
57
+ showYAxis?: boolean;
58
+ showLegend?: boolean;
59
+ stacked?: boolean;
60
+ gradient?: boolean;
61
+ };
62
+ declare function AreaChart({ data, config, xKey, yKeys, showGrid, showXAxis, showYAxis, showLegend, stacked, gradient, className, ...props }: AreaChartProps): react_jsx_runtime.JSX.Element;
63
+
64
+ type BarChartProps = React.ComponentProps<"div"> & {
65
+ data: Record<string, unknown>[];
66
+ config: ChartConfig;
67
+ xKey: string;
68
+ yKeys: string[];
69
+ showGrid?: boolean;
70
+ showXAxis?: boolean;
71
+ showYAxis?: boolean;
72
+ showLegend?: boolean;
73
+ stacked?: boolean;
74
+ horizontal?: boolean;
75
+ radius?: number;
76
+ };
77
+ declare function BarChart({ data, config, xKey, yKeys, showGrid, showXAxis, showYAxis, showLegend, stacked, horizontal, radius, className, ...props }: BarChartProps): react_jsx_runtime.JSX.Element;
78
+
79
+ type LineChartProps = React.ComponentProps<"div"> & {
80
+ data: Record<string, unknown>[];
81
+ config: ChartConfig;
82
+ xKey: string;
83
+ yKeys: string[];
84
+ showGrid?: boolean;
85
+ showXAxis?: boolean;
86
+ showYAxis?: boolean;
87
+ showLegend?: boolean;
88
+ showDots?: boolean;
89
+ curveType?: "natural" | "linear" | "step" | "monotone";
90
+ };
91
+ declare function LineChart({ data, config, xKey, yKeys, showGrid, showXAxis, showYAxis, showLegend, showDots, curveType, className, ...props }: LineChartProps): react_jsx_runtime.JSX.Element;
92
+
93
+ type PieChartProps = React.ComponentProps<"div"> & {
94
+ data: {
95
+ name: string;
96
+ value: number;
97
+ fill?: string;
98
+ }[];
99
+ config: ChartConfig;
100
+ dataKey?: string;
101
+ nameKey?: string;
102
+ donut?: boolean;
103
+ centerLabel?: string;
104
+ centerValue?: string | number;
105
+ showLegend?: boolean;
106
+ };
107
+ declare function PieChart({ data, config, dataKey, nameKey, donut, centerLabel, centerValue, showLegend, className, ...props }: PieChartProps): react_jsx_runtime.JSX.Element;
108
+
109
+ type RadialChartProps = React.ComponentProps<"div"> & {
110
+ data: Record<string, unknown>[];
111
+ config: ChartConfig;
112
+ angleKey: string;
113
+ dataKeys: string[];
114
+ showLegend?: boolean;
115
+ };
116
+ declare function RadialChart({ data, config, angleKey, dataKeys, showLegend, className, ...props }: RadialChartProps): react_jsx_runtime.JSX.Element;
117
+
118
+ export { AreaChart as A, BarChart as B, type ChartConfig as C, LineChart as L, PieChart as P, RadialChart as R, type AreaChartProps as a, type BarChartProps as b, ChartContainer as c, ChartLegend as d, ChartLegendContent as e, ChartStyle as f, ChartTooltip as g, ChartTooltipContent as h, type LineChartProps as i, type PieChartProps as j, type RadialChartProps as k };