@graphlearning/graphl-flow 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -2
- package/dist/index.js +828 -812
- package/dist/index.js.map +1 -1
- package/dist/routing.d.ts +13 -0
- package/dist/styles.css +16 -0
- package/dist/types.d.ts +7 -0
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../node_modules/@threeveloper/azure-react-icons/dist/components/analytics/00039-icon-service-Event-Hubs.js","../node_modules/@threeveloper/azure-react-icons/dist/components/analytics/00042-icon-service-Stream-Analytics-Jobs.js","../node_modules/@threeveloper/azure-react-icons/dist/components/analytics/00606-icon-service-Azure-Synapse-Analytics.js","../node_modules/@threeveloper/azure-react-icons/dist/components/analytics/03332-icon-service-Power-BI-Embedded.js","../node_modules/@threeveloper/azure-react-icons/dist/components/analytics/10126-icon-service-Data-Factories.js","../node_modules/@threeveloper/azure-react-icons/dist/components/analytics/10148-icon-service-Analysis-Services.js","../node_modules/@threeveloper/azure-react-icons/dist/components/analytics/10787-icon-service-Azure-Databricks.js","../node_modules/@threeveloper/azure-react-icons/dist/components/compute/10021-icon-service-Virtual-Machine.js","../node_modules/@threeveloper/azure-react-icons/dist/components/compute/10023-icon-service-Kubernetes-Services.js","../node_modules/@threeveloper/azure-react-icons/dist/components/compute/10029-icon-service-Function-Apps.js","../node_modules/@threeveloper/azure-react-icons/dist/components/databases/02390-icon-service-Azure-SQL.js","../node_modules/@threeveloper/azure-react-icons/dist/components/databases/02517-icon-service-Azure-Purview-Accounts.js","../node_modules/@threeveloper/azure-react-icons/dist/components/databases/10121-icon-service-Azure-Cosmos-DB.js","../node_modules/@threeveloper/azure-react-icons/dist/components/devops/10261-icon-service-Azure-DevOps.js","../node_modules/@threeveloper/azure-react-icons/dist/components/integration/10836-icon-service-Azure-Service-Bus.js","../node_modules/@threeveloper/azure-react-icons/dist/components/management + governance/00009-icon-service-Log-Analytics-Workspaces.js","../node_modules/@threeveloper/azure-react-icons/dist/components/monitor/00001-icon-service-Monitor.js","../node_modules/@threeveloper/azure-react-icons/dist/components/security/10241-icon-service-Microsoft-Defender-for-Cloud.js","../node_modules/@threeveloper/azure-react-icons/dist/components/security/10245-icon-service-Key-Vaults.js","../node_modules/@threeveloper/azure-react-icons/dist/components/storage/10086-icon-service-Storage-Accounts.js","../node_modules/@threeveloper/azure-react-icons/dist/components/storage/10090-icon-service-Data-Lake-Storage-Gen1.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonSimpleStorageService.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSGlue.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonRedshift.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonAthena.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonKinesis.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonDataFirehose.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonEMR.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSLambda.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonDynamoDB.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonRDS.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonAurora.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonCloudWatch.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSIdentityandAccessManagement.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonManagedStreamingforApacheKafka.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSLakeFormation.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonEC2.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonSimpleQueueService.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonSimpleNotificationService.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSStepFunctions.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonEventBridge.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSKeyManagementService.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSSecretsManager.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonElasticKubernetesService.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonSageMaker.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonAPIGateway.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonVirtualPrivateCloud.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSCloudFormation.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonManagedWorkflowsforApacheAirflow.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSDatabaseMigrationService.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonElastiCache.js","../node_modules/simple-icons/index.mjs","../src/icons.tsx","../src/Edges.tsx","../src/Table.tsx","../src/highlight.ts","../src/Code.tsx","../src/Plot.tsx","../src/Tree.tsx","../src/routing.ts","../src/fit.ts","../src/theme.ts","../src/Scene.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import type { ComponentType, ReactElement } from 'react'\nimport {\n Activity, Bell, Box, Building2, ChartColumn, ChartPie, ClipboardCheck, Clock, Cloud, Code2, Cpu,\n CreditCard, Database, Factory, FileText, Filter, Fingerprint, Folder, GitBranch, Globe, HardDrive,\n KeyRound, Layers, Lock, Monitor, Network, Package, RadioTower, Search, Server, Settings, ShieldCheck,\n Table2, Terminal, User, UserCog, Users, Workflow, Zap, Waves, Brain, Boxes, MemoryStick, type LucideIcon,\n} from 'lucide-react'\nimport {\n AnalysisServices, AzureCosmosDBDatabases, AzureDatabricks, AzureDevOps, AzurePurviewAccounts, AzureServiceBus,\n AzureSQL, AzureSynapseAnalyticsAnalytics, DataFactoriesAnalytics, DataLakeStorageGen1, EventHubsAnalytics,\n FunctionAppsCompute, KeyVaults, KubernetesServicesCompute, LogAnalyticsWorkspacesManagementGovernance,\n MicrosoftDefenderForCloud, MonitorMonitor, PowerBIEmbedded, StorageAccounts, StreamAnalyticsJobsAnalytics,\n VirtualMachine,\n} from '@threeveloper/azure-react-icons'\nimport S3 from 'aws-react-icons/icons/ArchitectureServiceAmazonSimpleStorageService'\nimport Glue from 'aws-react-icons/icons/ArchitectureServiceAWSGlue'\nimport Redshift from 'aws-react-icons/icons/ArchitectureServiceAmazonRedshift'\nimport Athena from 'aws-react-icons/icons/ArchitectureServiceAmazonAthena'\nimport Kinesis from 'aws-react-icons/icons/ArchitectureServiceAmazonKinesis'\nimport Firehose from 'aws-react-icons/icons/ArchitectureServiceAmazonDataFirehose'\nimport EMR from 'aws-react-icons/icons/ArchitectureServiceAmazonEMR'\nimport Lambda from 'aws-react-icons/icons/ArchitectureServiceAWSLambda'\nimport DynamoDB from 'aws-react-icons/icons/ArchitectureServiceAmazonDynamoDB'\nimport RDS from 'aws-react-icons/icons/ArchitectureServiceAmazonRDS'\nimport Aurora from 'aws-react-icons/icons/ArchitectureServiceAmazonAurora'\nimport CloudWatch from 'aws-react-icons/icons/ArchitectureServiceAmazonCloudWatch'\nimport IAM from 'aws-react-icons/icons/ArchitectureServiceAWSIdentityandAccessManagement'\nimport MSK from 'aws-react-icons/icons/ArchitectureServiceAmazonManagedStreamingforApacheKafka'\nimport LakeFormation from 'aws-react-icons/icons/ArchitectureServiceAWSLakeFormation'\nimport EC2 from 'aws-react-icons/icons/ArchitectureServiceAmazonEC2'\nimport SQS from 'aws-react-icons/icons/ArchitectureServiceAmazonSimpleQueueService'\nimport SNS from 'aws-react-icons/icons/ArchitectureServiceAmazonSimpleNotificationService'\nimport StepFunctions from 'aws-react-icons/icons/ArchitectureServiceAWSStepFunctions'\nimport EventBridge from 'aws-react-icons/icons/ArchitectureServiceAmazonEventBridge'\nimport KMS from 'aws-react-icons/icons/ArchitectureServiceAWSKeyManagementService'\nimport SecretsManager from 'aws-react-icons/icons/ArchitectureServiceAWSSecretsManager'\nimport EKS from 'aws-react-icons/icons/ArchitectureServiceAmazonElasticKubernetesService'\nimport SageMaker from 'aws-react-icons/icons/ArchitectureServiceAmazonSageMaker'\nimport APIGateway from 'aws-react-icons/icons/ArchitectureServiceAmazonAPIGateway'\nimport VPC from 'aws-react-icons/icons/ArchitectureServiceAmazonVirtualPrivateCloud'\nimport CloudFormation from 'aws-react-icons/icons/ArchitectureServiceAWSCloudFormation'\nimport MWAA from 'aws-react-icons/icons/ArchitectureServiceAmazonManagedWorkflowsforApacheAirflow'\nimport DMS from 'aws-react-icons/icons/ArchitectureServiceAWSDatabaseMigrationService'\nimport ElastiCache from 'aws-react-icons/icons/ArchitectureServiceAmazonElastiCache'\nimport {\n siApacheairflow, siApacheflink, siApachekafka, siApachespark, siDocker, siDuckdb, siGit, siGithub, siGithubactions,\n siGrafana, siJupyter, siKubernetes, siMongodb, siPandas, siPostgresql, siPrometheus, siPython, siSnowflake, siTerraform,\n} from 'simple-icons'\n\n// Four sets, ONE key space. Every icon is a NAMED (or per-file) import, so the bundle carries only\n// these; add a key when a scene needs it. Keys match @graphlearning/flow's where both exist, so a\n// scene ports without renaming. A key may appear in ONE set only — `ICONS` throws on a duplicate.\n\n/** Generic glyphs, drawn in the node's tone accent. */\nexport const LUCIDE: Record<string, LucideIcon> = {\n activity: Activity, bell: Bell, box: Box, building: Building2, chart: ChartColumn, pie: ChartPie,\n check: ClipboardCheck, clock: Clock, cloud: Cloud, code: Code2, cpu: Cpu, card: CreditCard,\n database: Database, factory: Factory, file: FileText, filter: Filter, fingerprint: Fingerprint,\n folder: Folder, branch: GitBranch, globe: Globe, disk: HardDrive, key: KeyRound, layers: Layers,\n lock: Lock, screen: Monitor, network: Network, package: Package, stream: RadioTower, search: Search,\n server: Server, settings: Settings, shield: ShieldCheck, table: Table2, terminal: Terminal,\n user: User, admin: UserCog, users: Users, workflow: Workflow, zap: Zap, waves: Waves, brain: Brain,\n boxes: Boxes, memory: MemoryStick,\n}\n\n/** Azure service tiles, in their own colours. The package ships no viewBox; 0 0 18 18 fits all. */\nexport const AZURE: Record<string, ComponentType<{ size?: string; viewBox?: string }>> = {\n datafactory: DataFactoriesAnalytics, eventhubs: EventHubsAnalytics, adls: DataLakeStorageGen1, storage: StorageAccounts,\n databricks: AzureDatabricks, synapse: AzureSynapseAnalyticsAnalytics, analysisservices: AnalysisServices,\n purview: AzurePurviewAccounts, keyvault: KeyVaults, defender: MicrosoftDefenderForCloud, monitor: MonitorMonitor,\n loganalytics: LogAnalyticsWorkspacesManagementGovernance, devops: AzureDevOps, powerbi: PowerBIEmbedded,\n azuresql: AzureSQL, cosmos: AzureCosmosDBDatabases, functions: FunctionAppsCompute, aks: KubernetesServicesCompute,\n streamanalytics: StreamAnalyticsJobsAnalytics, servicebus: AzureServiceBus, vm: VirtualMachine,\n}\n\n/** AWS architecture icons, in their own colours on their own rounded tile. */\nexport const AWS: Record<string, ComponentType<{ size?: number | string }>> = {\n s3: S3, glue: Glue, redshift: Redshift, athena: Athena, kinesis: Kinesis, firehose: Firehose, emr: EMR,\n lambda: Lambda, dynamodb: DynamoDB, rds: RDS, aurora: Aurora, cloudwatch: CloudWatch, iam: IAM, msk: MSK,\n lakeformation: LakeFormation, ec2: EC2, sqs: SQS, sns: SNS, stepfunctions: StepFunctions, eventbridge: EventBridge,\n kms: KMS, secretsmanager: SecretsManager, eks: EKS, sagemaker: SageMaker, apigateway: APIGateway, vpc: VPC,\n cloudformation: CloudFormation, mwaa: MWAA, dms: DMS, elasticache: ElastiCache,\n}\n\n/** Open-source / product marks (simple-icons), in the brand's colour unless it would vanish. */\nexport const BRAND: Record<string, { title: string; hex: string; path: string }> = {\n kafka: siApachekafka, spark: siApachespark, airflow: siApacheairflow, flink: siApacheflink, snowflakedb: siSnowflake,\n python: siPython, pandas: siPandas, jupyter: siJupyter, duckdb: siDuckdb, postgresql: siPostgresql, mongodb: siMongodb,\n docker: siDocker, kubernetes: siKubernetes, terraform: siTerraform, git: siGit, github: siGithub,\n githubactions: siGithubactions, grafana: siGrafana, prometheus: siPrometheus,\n}\n\n/** `size` is a CSS length — in em, so an icon scales WITH its text and the ratio stays designed. */\ntype Draw = (size: string, surface: string, ink: string) => ReactElement\n\nfunction merge(...sets: Record<string, Draw>[]): Record<string, Draw> {\n const out: Record<string, Draw> = {}\n for (const set of sets)\n for (const [k, v] of Object.entries(set)) {\n if (k in out) throw new Error(`graphl-flow: icon key \"${k}\" is defined in two icon sets`)\n out[k] = v\n }\n return out\n}\n\nconst map = <T,>(set: Record<string, T>, draw: (v: T) => Draw) => Object.fromEntries(Object.entries(set).map(([k, v]) => [k, draw(v)]))\n\nconst luminance = (hex: string) => {\n const c = [1, 3, 5].map((i) => parseInt(hex.slice(i, i + 2), 16) / 255).map((v) => (v <= 0.04045 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4))\n return 0.2126 * c[0] + 0.7152 * c[1] + 0.0722 * c[2]\n}\n\n/** A brand mark under this contrast against the surface draws in ink (Kafka's black on dark). */\nexport const BRAND_MIN_CONTRAST = 2.2\n\nfunction brandFill(hex: string, surface: string, ink: string) {\n const a = luminance(`#${hex}`), b = luminance(surface)\n return (Math.max(a, b) + 0.05) / (Math.min(a, b) + 0.05) < BRAND_MIN_CONTRAST ? ink : `#${hex}`\n}\n\nexport const ICONS: Record<string, Draw> = merge(\n map(LUCIDE, (Icon) => (size) => <Icon className=\"gf-icon\" size={size} strokeWidth={1.75} aria-hidden />),\n map(AZURE, (Icon) => (size) => <span className=\"gf-icon gf-vendor\"><Icon size={size} viewBox=\"0 0 18 18\" /></span>),\n map(AWS, (Icon) => (size) => <span className=\"gf-icon gf-vendor gf-aws\"><Icon size={size} /></span>),\n map(BRAND, (b) => (size, surface, ink) => (\n <svg className=\"gf-icon\" width={size} height={size} viewBox=\"0 0 24 24\" role=\"img\" aria-label={b.title}>\n <path d={b.path} fill={brandFill(b.hex, surface, ink)} />\n </svg>\n )),\n)\n","import { useId } from 'react'\nimport type { Routed } from './routing'\nimport type { Size } from './fit'\n\n/**\n * The pulse period, in seconds. A RECORDER CONTRACT: ui-shell's record-course.mjs / record-reels.mjs\n * loop every video on PULSE_S = 2.4. Change it here alone and every loop join in every recorded video\n * shows a jump. Same value, same linear motion as @graphlearning/flow's FlowEdge.\n */\nexport const PULSE_S = 2.4\n\n/**\n * The shaft stops HEAD_TRIM short of a headed end, inside the head, and the marker's ref point moves\n * back by the same amount so the TIP still lands on the endpoint. Without it the 2px stroke poked out\n * past the tip — near its point the triangle is narrower than the line (visible at 4K on every arrow).\n */\nconst HEAD_TRIM = 6\n\ntype P = { x: number; y: number }\nfunction trim(points: P[], start: boolean, end: boolean): P[] {\n const out = points.map((p) => ({ ...p }))\n const pull = (a: P, b: P) => { const d = Math.hypot(b.x - a.x, b.y - a.y) || 1; a.x += ((b.x - a.x) / d) * HEAD_TRIM; a.y += ((b.y - a.y) / d) * HEAD_TRIM }\n if (end) pull(out[out.length - 1], out[out.length - 2])\n if (start) pull(out[0], out[1])\n return out\n}\nconst pathOf = (points: P[]) => `M ${points.map((p) => `${p.x},${p.y}`).join(' L ')}`\n\nconst LABEL_SHIFT = {\n on: { h: 'translate(-50%, -50%)', v: 'translate(-50%, -50%)' },\n before: { h: 'translate(-50%, calc(-100% - 3px))', v: 'translate(calc(-100% - 3px), -50%)' },\n after: { h: 'translate(-50%, 3px)', v: 'translate(3px, -50%)' },\n}\n\n/** Draws routed edges over the content, in the content's own (unscaled) coordinates. */\nexport function Edges({ routed, size, pulse }: { routed: Routed[]; size: Size; pulse: boolean }) {\n const uid = useId().replace(/[^\\w-]/g, '')\n const arrow = `gf-arrow-${uid}`, glow = `gf-glow-${uid}`\n // A dot travelling the path once per PULSE_S; `reverse` runs it from `to` back to `from`.\n const dot = (d: string, reverse: boolean) => (\n <circle r={4.5} className=\"gf-pulse\" filter={`url(#${glow})`}>\n <animateMotion dur={`${PULSE_S}s`} repeatCount=\"indefinite\" path={d} calcMode=\"linear\" {...(reverse && { keyPoints: '1;0', keyTimes: '0;1' })} />\n </circle>\n )\n return (\n <>\n <svg className=\"gf-edges\" width={size.w} height={size.h} aria-hidden>\n <defs>\n {/* auto-start-reverse: the same head serves the far end of a bidirectional edge. */}\n <marker id={arrow} viewBox=\"0 0 10 10\" refX={10 - HEAD_TRIM} refY=\"5\" markerWidth=\"10\" markerHeight=\"10\" markerUnits=\"userSpaceOnUse\" orient=\"auto-start-reverse\">\n <path d=\"M0,0 L10,5 L0,10 z\" className=\"gf-arrowhead\" />\n </marker>\n <filter id={glow} x=\"-100%\" y=\"-100%\" width=\"300%\" height=\"300%\">\n <feGaussianBlur stdDeviation=\"2.5\" result=\"b\" />\n <feMerge><feMergeNode in=\"b\" /><feMergeNode in=\"SourceGraphic\" /></feMerge>\n </filter>\n </defs>\n {routed.map((r, i) => {\n // `d` is the full route (pulses travel it); the stroke is trimmed at its headed ends.\n const d = pathOf(r.points)\n return (\n <g key={i}>\n <path\n className=\"gf-edge\"\n data-from={r.edge.from}\n data-to={r.edge.to}\n data-edge={r.index}\n data-route={d}\n d={pathOf(trim(r.points, !!r.edge.bidirectional, true))}\n strokeDasharray={r.edge.dashed ? '6 5' : undefined}\n markerEnd={`url(#${arrow})`}\n markerStart={r.edge.bidirectional ? `url(#${arrow})` : undefined}\n />\n {pulse && dot(d, false)}\n {pulse && r.edge.bidirectional && dot(d, true)}\n </g>\n )\n })}\n </svg>\n {routed.map((r, i) =>\n r.edge.label ? (\n <div\n key={i}\n className=\"gf-edge-label\"\n data-edge={r.index}\n style={{ left: r.label.x, top: r.label.y, transform: LABEL_SHIFT[r.label.side][r.label.seg] }}\n >\n {r.edge.label}\n </div>\n ) : null,\n )}\n </>\n )\n}\n","import type { CSSProperties } from 'react'\nimport type { Theme } from './theme'\nimport type { Table, TableRow, Tone } from './types'\n\nconst PLAIN = /^[\\w$-]+$/\n\n/**\n * Normalised rows with their ADDRESS: explicit `id`, else the first cell when it is a plain word\n * and unique in the table. Shared by the renderer (data-id) and the edge planner (parent links),\n * so the two cannot disagree about which rows exist.\n */\nexport function tableRows(table: Table): (TableRow & { address?: string })[] {\n const rows = table.rows.map((r) => (Array.isArray(r) ? { cells: r } : r))\n const firsts = rows.map((r) => String(r.cells[0] ?? ''))\n return rows.map((r, i) => {\n const own = r.id ?? (PLAIN.test(firsts[i]) && firsts.indexOf(firsts[i]) === firsts.lastIndexOf(firsts[i]) ? firsts[i] : undefined)\n return { ...r, address: own && `${table.id}.${own}` }\n })\n}\n\nconst tint = (theme: Theme, tone?: Tone): CSSProperties | undefined =>\n tone && ({ '--gf-accent': theme.tones[tone].accent, '--gf-tint': theme.tones[tone].tint } as CSSProperties)\n\nexport function TableView({ node, theme, style }: { node: Table; theme: Theme; style?: CSSProperties }) {\n const rows = tableRows(node)\n const tagged = rows.some((r) => r.tag)\n const width = Math.max(node.columns?.length ?? 0, ...rows.map((r) => r.cells.length))\n return (\n <div className=\"gf-table\" data-id={node.id} style={style}>\n {node.title && <div className=\"gf-table-title\">{node.title}</div>}\n <table>\n {node.columns && (\n <thead>\n <tr>\n {tagged && <th aria-hidden />}\n {node.columns.map((c, i) => <th key={i}>{c}</th>)}\n </tr>\n </thead>\n )}\n <tbody>\n {rows.map((r, i) => (\n <tr key={i} data-id={r.address} data-tone={r.tone} style={tint(theme, r.tone)}>\n {tagged && <td className=\"gf-tag-cell\">{r.tag && <span className=\"gf-tag\">{r.tag}</span>}</td>}\n {Array.from({ length: width }, (_, j) => <td key={j}>{r.cells[j] ?? ''}</td>)}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )\n}\n","// A tokenizer, not a parser: one regex and a keyword set, ported from @graphlearning/flow's\n// codeHighlight. Small on purpose — slides show short excerpts, and every language shares the\n// same seven colours. The comment marker is the only per-language rule.\n\nexport type TokClass = 'var' | 'method' | 'keyword' | 'string' | 'number' | 'punct' | 'ws' | 'comment'\nexport interface Tok { cls: TokClass; text: string }\nexport type Lang = 'python' | 'sql' | 'scala' | 'java' | 'js' | 'ts' | 'shell' | 'text'\n\nconst KEYWORDS = new Set([\n 'import', 'from', 'def', 'return', 'lambda', 'class', 'val', 'var', 'new', 'if', 'else', 'for',\n 'in', 'as', 'and', 'or', 'not', 'null', 'true', 'false', 'is',\n 'select', 'where', 'group', 'by', 'join', 'inner', 'left', 'right', 'full', 'outer', 'cross',\n 'on', 'using', 'having', 'order', 'asc', 'desc', 'limit', 'offset', 'distinct', 'with', 'recursive',\n 'union', 'intersect', 'except', 'all', 'insert', 'into', 'values', 'update', 'set', 'delete',\n 'over', 'partition', 'between', 'like', 'exists', 'case', 'when', 'then', 'end', 'count', 'sum', 'avg', 'min', 'max',\n 'while', 'elif', 'try', 'raise', 'finally', 'pass', 'break', 'continue', 'yield', 'async', 'await', 'assert', 'del',\n 'global', 'nonlocal', 'none', 'match',\n 'const', 'let', 'function', 'export', 'default', 'interface', 'type', 'extends', 'implements', 'public',\n 'private', 'static', 'void', 'object', 'trait', 'def', 'catch', 'throw', 'this', 'super', 'undefined',\n])\n\nconst COMMENT: Record<Lang, string> = {\n python: '#', shell: '#', sql: '--', scala: '//', java: '//', js: '//', ts: '//', text: '\\u0000',\n}\n\nconst escape = (s: string) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\nexport function tokenize(src: string, lang: Lang): Tok[] {\n if (lang === 'text') return [{ cls: 'var', text: src }]\n const token = new RegExp(`(\\\\s+)|(${escape(COMMENT[lang])}[\\\\s\\\\S]*)|('[^']*'?|\"[^\"]*\"?)|(\\\\d[\\\\d.]*)|([A-Za-z_]\\\\w*)|(\\\\.\\\\.\\\\.|[\\\\s\\\\S])`, 'g')\n const out: Tok[] = []\n let afterDot = false\n for (const [text, ws, comment, str, num, word] of src.matchAll(token)) {\n const cls: TokClass = ws ? 'ws' : comment ? 'comment' : str ? 'string' : num ? 'number'\n : word ? (afterDot ? 'method' : KEYWORDS.has(word.toLowerCase()) ? 'keyword' : 'var') : 'punct'\n out.push({ cls, text })\n // In shell a dot is a file extension (`job.py`), not a member access.\n if (cls !== 'ws') afterDot = lang !== 'shell' && cls === 'punct' && text === '.'\n }\n return out\n}\n\n/** Drop a leading/trailing blank line and the common indent, so scenes can use indented template literals. */\nexport function dedent(src: string): string[] {\n const lines = src.replace(/^\\s*\\n/, '').replace(/\\n\\s*$/, '').split('\\n')\n const indent = Math.min(...lines.filter((l) => l.trim()).map((l) => l.match(/^ */)![0].length))\n return lines.map((l) => l.slice(Number.isFinite(indent) ? indent : 0))\n}\n","import type { CSSProperties } from 'react'\nimport { dedent, tokenize } from './highlight'\nimport type { Code } from './types'\n\ntype Row = { n: number; text: string } | { fold: number }\n\n/**\n * The lines a `code` node draws: every line, or only the `show` ranges with each skipped run\n * folded into one `··· N lines` row. Line numbers are the FILE's. Shared with the edge planner via\n * `codeLineIds`, so a line edges can address is a line that is drawn.\n */\nexport function codeRows(node: Code): Row[] {\n const lines = dedent(node.code)\n if (!node.show?.length || node.terminal) return lines.map((text, i) => ({ n: i + 1, text }))\n const keep = new Set(node.show.flatMap(([a, b]) => Array.from({ length: b - a + 1 }, (_, i) => a + i)))\n const rows: Row[] = []\n lines.forEach((text, i) => {\n if (keep.has(i + 1)) rows.push({ n: i + 1, text })\n else if (rows.length && 'fold' in rows[rows.length - 1]) (rows[rows.length - 1] as { fold: number }).fold++\n else rows.push({ fold: 1 })\n })\n return rows\n}\n\nexport const codeLineIds = (node: Code): string[] => codeRows(node).flatMap((r) => ('n' in r ? [`${node.id}.L${r.n}`] : []))\n\n// U+00B7, not ⋯: a fallback-font glyph would change the advance next to Plex Mono.\nconst foldLabel = (n: number) => `··· ${n} line${n === 1 ? '' : 's'}`\n\nexport function CodeView({ node, style }: { node: Code; style?: CSSProperties }) {\n const lit = new Set(node.highlight ?? [])\n const lang = node.lang ?? (node.terminal ? 'shell' : 'text')\n return (\n <div className=\"gf-code\" data-id={node.id} data-terminal={node.terminal || undefined} style={style}>\n <div className=\"gf-code-bar\">\n {node.terminal ? <span className=\"gf-code-name\">{node.filename ?? 'terminal'}</span> : (\n <>\n <span className=\"gf-dots\" aria-hidden><i /><i /><i /></span>\n {node.filename && <span className=\"gf-code-name\">{node.filename}</span>}\n </>\n )}\n </div>\n <div className=\"gf-code-body\">\n {codeRows(node).map((row, i) => {\n if ('fold' in row) return <div key={i} className=\"gf-line gf-fold\"><span className=\"gf-ln\" /><span>{foldLabel(row.fold)}</span></div>\n // Terminal: `$ cmd` is a command, `! text` an error, anything else output.\n if (node.terminal) {\n const kind = row.text.startsWith('$ ') ? 'cmd' : row.text.startsWith('! ') ? 'err' : 'out'\n return (\n <div key={i} className=\"gf-line\" data-id={`${node.id}.L${row.n}`} data-kind={kind}>\n {kind === 'cmd' ? <><span className=\"gf-prompt\">$ </span><Toks text={row.text.slice(2)} lang={lang} /></> : kind === 'err' ? row.text.slice(2) : row.text || ' '}\n </div>\n )\n }\n return (\n <div key={i} className=\"gf-line\" data-id={`${node.id}.L${row.n}`} data-lit={lit.has(row.n) || undefined}>\n <span className=\"gf-ln\">{row.n}</span>\n <span><Toks text={row.text} lang={lang} /></span>\n </div>\n )\n })}\n </div>\n </div>\n )\n}\n\nconst Toks = ({ text, lang }: { text: string; lang: Parameters<typeof tokenize>[1] }) =>\n <>{text ? tokenize(text, lang).map((t, i) => <span key={i} className={`tok-${t.cls}`}>{t.text}</span>) : ' '}</>\n","import { useId } from 'react'\nimport type { Theme } from './theme'\nimport type { Plot, PlotAxis, PlotSeries, Tone } from './types'\n\n// A plot's x/y are DATA in the axes' own units; the engine owns every pixel. The drawing area is ONE\n// fixed size for every plot, so plots in a deck line up and frames with one keep the same zoom.\n// Inside the SVG the browser does not lay out text, so all plot text is IBM Plex Mono (fixed advance)\n// and the gutters are counted in characters; `check` measures every <text> against the SVG box.\n\nexport const PLOT_W = 720\nexport const PLOT_H = 400\n/** The second fixed size: a plot for a side pane, readable at full text size in ~560px. */\nexport const COMPACT_W = 420\nexport const COMPACT_H = 280\nconst CHAR_W = 9.1 // IBM Plex Mono at 15px (600/1000 em = 9.0), rounded up so a count can only over-reserve\nconst TICK_GAP = 8\nconst AXIS_LABEL = 24\n\n/** Series colours in a fixed order that keeps green and orange apart; `consume` red is reserved for warnings. */\nconst RAMP: Tone[] = ['ingest', 'infra', 'serve', 'store']\n\nfunction niceStep(span: number): number {\n const raw = Math.abs(span) / 6\n if (!(raw > 0) || !Number.isFinite(raw)) return 1\n const mag = 10 ** Math.floor(Math.log10(raw))\n const n = raw / mag\n return (n >= 5 ? 5 : n >= 2 ? 2 : 1) * mag\n}\n\nconst decimals = (step: number) => (String(step).split('.')[1] ?? '').length\n\ninterface Axis { min: number; max: number; ticks: number[]; text: (v: number) => string; categories: boolean; label?: string }\n\nfunction axis(a: PlotAxis): Axis {\n if (a.labels) {\n const n = a.labels.length\n return { min: -0.5, max: n - 0.5, ticks: a.labels.map((_, i) => i), text: (v) => a.labels![v] ?? '', categories: true, label: a.label }\n }\n const min = a.min ?? 0, max = a.max ?? 1\n const step = a.step && (max - min) / a.step <= 200 ? a.step : niceStep(max - min)\n const ticks: number[] = []\n for (let v = Math.ceil(min / step) * step; v <= max + step * 1e-9; v += step) ticks.push(Number(v.toFixed(decimals(step) + 1)))\n return { min, max, ticks, text: (v) => (Math.abs(v) < step * 1e-9 ? 0 : v).toFixed(decimals(step)), categories: false, label: a.label }\n}\n\nconst seriesPoints = (s: PlotSeries): [number, number][] => s.points ?? (s.from && s.to ? [s.from, s.to] : [])\n\n/** A plain segment (no arrow, no tone) is a construction line: muted, and it takes no ramp colour. */\nconst construction = (s: PlotSeries) => s.kind === 'segment' && !s.arrow && !s.tone\n\n/** Where a series puts its label: a segment at its tip (arrow) or midpoint; bars in the legend; anything else at its last point. */\nfunction labelAt(s: PlotSeries): [number, number] | undefined {\n const pts = seriesPoints(s)\n if (!s.label || !pts.length || s.kind === 'bar') return undefined\n if (s.kind === 'segment' && !s.arrow) return [(pts[0][0] + pts[1][0]) / 2, (pts[0][1] + pts[1][1]) / 2]\n return pts[pts.length - 1]\n}\n\nexport function PlotView({ node, theme, style }: { node: Plot; theme: Theme; style?: React.CSSProperties }) {\n const clip = `gf-clip-${useId().replace(/[^\\w-]/g, '')}`\n const X = axis(node.x), Y = axis(node.y)\n const PW = node.compact ? COMPACT_W : PLOT_W, PH = node.compact ? COMPACT_H : PLOT_H\n const origin = node.axes === 'origin' || (node.axes !== 'corner' && !X.categories && !Y.categories && X.min < 0 && X.max > 0 && Y.min < 0 && Y.max > 0)\n const chars = (s: string) => s.length * CHAR_W\n\n // Gutters, counted: y tick labels + y axis label on the left, x ticks + x label below, the longest\n // label that runs past the right edge on the right.\n const left = Math.ceil(Math.max(...Y.ticks.map((t) => chars(Y.text(t))))) + TICK_GAP + 6 + (Y.label ? AXIS_LABEL : 0)\n const bottom = 30 + (X.label ? AXIS_LABEL : 0)\n const top = 14\n const sx = (v: number) => left + ((v - X.min) / (X.max - X.min)) * PW\n const sy = (v: number) => top + PH - ((v - Y.min) / (Y.max - Y.min)) * PH\n const overhang = Math.max(0, ...node.series.map((s) => {\n const at = labelAt(s)\n return at ? sx(at[0]) + 8 + chars(s.label!) - (left + PW) : 0\n }))\n const right = 16 + Math.ceil(overhang)\n const W = left + PW + right, H = top + PH + bottom\n\n const ax = origin ? sx(0) : left, ay = origin ? sy(0) : top + PH\n // The ramp advances only for series that use it, so a toned or construction series skips no colour.\n const rampAt = node.series.map((_, i) => node.series.slice(0, i).filter((q) => !q.tone && !construction(q)).length)\n const colour = (s: PlotSeries, i: number) =>\n construction(s) ? theme.muted : theme.tones[s.tone ?? RAMP[rampAt[i] % RAMP.length]].accent\n const legend = node.series.flatMap((s, i) => (s.kind === 'bar' && s.label ? [{ label: s.label, c: colour(s, i) }] : []))\n const base = sy(Math.max(Y.min, Math.min(0, Y.max)))\n const step = X.categories ? 1 : (X.ticks[1] ?? X.max) - (X.ticks[0] ?? X.min)\n\n return (\n <div className=\"gf-plot\" data-id={node.id} style={style}>\n {node.title && <div className=\"gf-table-title\">{node.title}</div>}\n <svg width={W} height={H} viewBox={`0 0 ${W} ${H}`} role=\"img\" aria-label={node.title ?? 'plot'}>\n <defs><clipPath id={clip}><rect x={left} y={top} width={PW} height={PH} /></clipPath></defs>\n {node.grid !== false && (\n <g className=\"gf-plot-grid\">\n {!X.categories && X.ticks.map((t) => <line key={`x${t}`} x1={sx(t)} x2={sx(t)} y1={top} y2={top + PH} />)}\n {Y.ticks.map((t) => <line key={`y${t}`} x1={left} x2={left + PW} y1={sy(t)} y2={sy(t)} />)}\n </g>\n )}\n <g className=\"gf-plot-axis\">\n <line x1={left} x2={left + PW} y1={ay} y2={ay} />\n <line x1={ax} x2={ax} y1={top} y2={top + PH} />\n </g>\n <g className=\"gf-plot-ticks\">\n {X.ticks.filter((t) => !(origin && t === 0)).map((t) => <text key={`x${t}`} x={sx(t)} y={ay + 20} textAnchor=\"middle\">{X.text(t)}</text>)}\n {Y.ticks.filter((t) => !(origin && t === 0)).map((t) => <text key={`y${t}`} x={ax - TICK_GAP} y={sy(t)} textAnchor=\"end\" dominantBaseline=\"middle\">{Y.text(t)}</text>)}\n {X.label && <text x={left + PW / 2} y={top + PH + bottom - 6} textAnchor=\"middle\" className=\"gf-plot-label\">{X.label}</text>}\n {Y.label && <text transform={`translate(14 ${top + PH / 2}) rotate(-90)`} textAnchor=\"middle\" dominantBaseline=\"middle\" className=\"gf-plot-label\">{Y.label}</text>}\n </g>\n <g clipPath={`url(#${clip})`}>\n {node.series.map((s, i) => {\n const c = colour(s, i), pts = seriesPoints(s)\n const d = pts.map(([x, y], j) => `${j ? 'L' : 'M'}${sx(x)},${sy(y)}`).join(' ')\n if (s.kind === 'area')\n return <g key={i}><path d={`${d} L${sx(pts[pts.length - 1][0])},${base} L${sx(pts[0][0])},${base} Z`} fill={c} fillOpacity={0.18} stroke=\"none\" /><path d={d} fill=\"none\" stroke={c} strokeWidth={2.5} /></g>\n if (s.kind === 'line') return <path key={i} d={d} fill=\"none\" stroke={c} strokeWidth={2.5} strokeDasharray={s.dashed ? '7 6' : undefined} strokeLinejoin=\"round\" />\n if (s.kind === 'scatter') return <g key={i}>{pts.map(([x, y], j) => <circle key={j} cx={sx(x)} cy={sy(y)} r={5} fill={c} />)}</g>\n if (s.kind === 'bar') {\n const n = node.series.filter((q) => q.kind === 'bar').length, k = node.series.slice(0, i).filter((q) => q.kind === 'bar').length\n const slot = ((sx(step) - sx(0)) * 0.7) / n\n return <g key={i}>{pts.map(([x, y], j) => <rect key={j} x={sx(x) - (slot * n) / 2 + k * slot} y={Math.min(sy(y), base)} width={slot - 2} height={Math.abs(base - sy(y))} fill={c} rx={2} />)}</g>\n }\n // segment: a construction or threshold line, dashed unless told otherwise; `arrow` makes it a vector.\n const [[x1, y1], [x2, y2]] = pts\n const a = Math.atan2(sy(y2) - sy(y1), sx(x2) - sx(x1)), L = 12\n const tip = [sx(x2), sy(y2)], back = [tip[0] - L * Math.cos(a), tip[1] - L * Math.sin(a)]\n return (\n <g key={i}>\n <line x1={sx(x1)} y1={sy(y1)} x2={s.arrow ? back[0] : tip[0]} y2={s.arrow ? back[1] : tip[1]} stroke={c} strokeWidth={construction(s) ? 1.75 : 2.5} strokeDasharray={s.dashed === false || s.arrow ? undefined : '7 6'} />\n {s.arrow && (x1 !== x2 || y1 !== y2) && (\n <polygon fill={c} points={[tip, [back[0] + 6 * Math.sin(a), back[1] - 6 * Math.cos(a)], [back[0] - 6 * Math.sin(a), back[1] + 6 * Math.cos(a)]].map((p) => p.join(',')).join(' ')} />\n )}\n </g>\n )\n })}\n </g>\n {legend.length > 0 && (\n <g className=\"gf-plot-labels\">\n {legend.map((l, i) => {\n const y = top + 18 + i * 22, x = left + PW - 12 - Math.max(...legend.map((q) => chars(q.label)))\n return <g key={i}><rect x={x - 20} y={y - 10} width={12} height={12} rx={2} fill={l.c} /><text x={x} y={y} dominantBaseline=\"middle\" fill={l.c}>{l.label}</text></g>\n })}\n </g>\n )}\n <g className=\"gf-plot-labels\">\n {node.series.map((s, i) => {\n const at = labelAt(s)\n // Above the point, but never above the area: a curve that ends at y.max would push it out.\n return at && <text key={i} x={sx(at[0]) + 8} y={Math.min(top + PH - 4, Math.max(top + 14, sy(at[1]) - 8))} fill={colour(s, i)}>{s.label}</text>\n })}\n </g>\n </svg>\n </div>\n )\n}\n","import { ChevronDown, ChevronRight, FileText, Folder } from 'lucide-react'\nimport type { CSSProperties } from 'react'\nimport { ICONS } from './icons'\nimport type { Theme } from './theme'\nimport type { Tree, TreeEntry } from './types'\n\n/** A file's default icon by extension. Anything unlisted draws a plain file. */\nconst BY_EXTENSION: Record<string, string> = { py: 'python', ipynb: 'jupyter', sql: 'database', tf: 'terraform', dockerfile: 'docker' }\nconst iconOf = (e: TreeEntry) => e.icon ?? BY_EXTENSION[e.name.toLowerCase().split('.').pop() ?? '']\n\ninterface Row { entry: TreeEntry; depth: number; path: string }\n\n/**\n * The entries a `tree` draws, depth-first, each with its PATH (`src/jobs/orders.py`). Shared with the\n * edge planner via `treeEntryIds`, like `tableRows` and `codeRows`: an entry is addressable as\n * `<tree id>.<path>`.\n */\nfunction treeRows(entries: TreeEntry[], depth = 0, prefix = ''): Row[] {\n return entries.flatMap((entry) => {\n const path = prefix ? `${prefix}/${entry.name}` : entry.name\n return [{ entry, depth, path }, ...(entry.children ? treeRows(entry.children, depth + 1, path) : [])]\n })\n}\n\nexport const treeEntryIds = (node: Tree): string[] => treeRows(node.entries).map((r) => `${node.id}.${r.path}`)\n\nexport function TreeView({ node, theme, style }: { node: Tree; theme: Theme; style?: CSSProperties }) {\n return (\n <div className=\"gf-tree\" data-id={node.id} style={style}>\n <div className=\"gf-tree-title\">{node.title ?? 'Explorer'}</div>\n <div className=\"gf-tree-body\">\n {treeRows(node.entries).map(({ entry, depth, path }) => {\n const folder = entry.folder ?? !!entry.children\n return (\n <div key={path} className=\"gf-tree-row\" data-id={`${node.id}.${path}`} data-state={entry.state} style={{ paddingLeft: 10 + depth * 16 }}>\n {/* A folder with listed children is open; one marked `folder` with none is collapsed. */}\n {!folder ? <span className=\"gf-tree-chev\" /> : entry.children?.length\n ? <ChevronDown size=\"0.9em\" className=\"gf-tree-chev\" aria-hidden /> : <ChevronRight size=\"0.9em\" className=\"gf-tree-chev\" aria-hidden />}\n {(() => {\n const draw = iconOf(entry) ? ICONS[iconOf(entry)!] : undefined\n return draw ? <span className=\"gf-tree-icon\">{draw('1.1em', theme.surface, theme.ink)}</span>\n : folder ? <Folder size=\"1.1em\" aria-hidden /> : <FileText size=\"1.1em\" aria-hidden />\n })()}\n <span className=\"gf-tree-name\">{entry.name}</span>\n {entry.note && <span className=\"gf-tree-note\">{entry.note}</span>}\n </div>\n )\n })}\n </div>\n </div>\n )\n}\n","import type { Edge } from './types'\n\n// Pure edge routing: measured node boxes in, orthogonal polylines out. No DOM here.\n\nexport interface Rect { x: number; y: number; w: number; h: number }\nexport interface Pt { x: number; y: number }\n/**\n * `index` is the edge's position in `scene.edges`; `axis` is the route's direction ('h' leaves a\n * left/right face). A label sits `on` its line, or `before`/`after` it (above/below a horizontal\n * segment, left/right of a vertical one) when its port shares a face with others.\n */\nexport interface Routed { edge: Edge; index: number; axis: 'h' | 'v'; points: Pt[]; label: Pt & { side: 'on' | 'before' | 'after'; seg: 'h' | 'v' } }\ntype Face = 'left' | 'right' | 'top' | 'bottom'\n\n/** An edge ends this far OUTSIDE its node, so the arrowhead never touches the border. */\nexport const ANCHOR_OUTSET = 4\n/** Ports keep this far from a face's corners. */\nexport const PORT_INSET = 12\n/** Two ports closer than this on one face make the whole face spread evenly. */\nexport const PORT_MIN_GAP = 14\n\nconst centre = (r: Rect): Pt => ({ x: r.x + r.w / 2, y: r.y + r.h / 2 })\nconst horizontal = (f: Face) => f === 'left' || f === 'right'\n\n/**\n * Leave across the LARGER gap between the boxes; null when they overlap on both axes (nested).\n * `lateral` forces left/right: a table row is a slice of its table, so only its two ends are outside.\n */\nfunction facesOf(a: Rect, b: Rect, lateral: boolean): [Face, Face] | null {\n if (lateral) return centre(b).x >= centre(a).x ? ['right', 'left'] : ['left', 'right']\n const right = b.x - (a.x + a.w), left = a.x - (b.x + b.w)\n const down = b.y - (a.y + a.h), up = a.y - (b.y + b.h)\n const gx = Math.max(right, left), gy = Math.max(down, up)\n if (gx < 0 && gy < 0) return null\n if (gx >= gy) return right >= left ? ['right', 'left'] : ['left', 'right']\n return down >= up ? ['bottom', 'top'] : ['top', 'bottom']\n}\n\ninterface End { edge: number; side: 0 | 1; rect: Rect; face: Face; far: number; at: number; rank: number; count: number }\n\n/**\n * A face with ONE edge anchors at its centre. A face with several gives each a PORT that slides\n * toward the far end's centre (clamped PORT_INSET from the corners); if any two land within\n * PORT_MIN_GAP, the face spreads evenly in far-end order instead.\n */\nfunction placePorts(ends: End[]) {\n const byFace = new Map<string, End[]>()\n for (const e of ends) {\n const key = `${e.rect.x},${e.rect.y},${e.rect.w},${e.rect.h},${e.face}`\n byFace.set(key, [...(byFace.get(key) ?? []), e])\n }\n for (const group of byFace.values()) {\n const { rect, face } = group[0]\n const [start, len] = horizontal(face) ? [rect.y, rect.h] : [rect.x, rect.w]\n const lo = start + Math.min(PORT_INSET, len / 2), hi = start + len - Math.min(PORT_INSET, len / 2)\n if (group.length === 1) { group[0].at = start + len / 2; continue }\n group.sort((p, q) => p.far - q.far || p.edge - q.edge)\n group.forEach((e, i) => { e.rank = i; e.count = group.length })\n group.forEach((e) => (e.at = Math.min(hi, Math.max(lo, e.far))))\n if (group.some((e, i) => i > 0 && e.at - group[i - 1].at < PORT_MIN_GAP))\n group.forEach((e, i) => (e.at = lo + ((i + 1) * (hi - lo)) / (group.length + 1)))\n }\n}\n\nfunction anchor({ rect, face, at }: End): Pt {\n if (face === 'left') return { x: rect.x - ANCHOR_OUTSET, y: at }\n if (face === 'right') return { x: rect.x + rect.w + ANCHOR_OUTSET, y: at }\n if (face === 'top') return { x: at, y: rect.y - ANCHOR_OUTSET }\n return { x: at, y: rect.y + rect.h + ANCHOR_OUTSET }\n}\n\n/**\n * `sides[i]` names the two SIBLINGS edge i runs between — the children of its lowest common\n * ancestor that contain each end. The faces are chosen from THEIR boxes, not the nodes': two nested\n * nodes in adjacent columns can sit diagonally with a larger vertical gap, and choosing from them\n * would send the edge down through whatever lies between. The elbow sits in the CHANNEL — the gap\n * between those siblings, which the layout widened for it — not midway between the nodes, which for\n * nested nodes can fall inside a sibling; several users of one channel get a slot each. `lateral` ids (table rows) connect only through left/right.\n * Edges whose ids are unknown, or whose boxes overlap (a node and its own ancestor), are skipped.\n */\nexport function routeEdges(\n edges: Edge[], rects: Map<string, Rect>, sides: ([string, string] | undefined)[] = [], lateral: Set<string> = new Set(),\n): Routed[] {\n const ends: End[] = []\n // A channel is the gap between an edge's two sides: [lo, hi] along the route's axis.\n const channel: ({ key: string; lo: number; hi: number } | undefined)[] = []\n edges.forEach((edge, i) => {\n const a = rects.get(edge.from), b = rects.get(edge.to)\n const [sa, sb] = (sides[i] ?? [edge.from, edge.to]).map((id) => rects.get(id))\n const faces = a && b && sa && sb && facesOf(sa, sb, lateral.has(edge.from) || lateral.has(edge.to))\n if (!faces) return\n const [lo, hi] = faces[0] === 'right' ? [sa.x + sa.w, sb.x] : faces[0] === 'left' ? [sb.x + sb.w, sa.x]\n : faces[0] === 'bottom' ? [sa.y + sa.h, sb.y] : [sb.y + sb.h, sa.y]\n // Keyed by axis + bounds, NOT direction: driver → workers and workers → driver share one gap.\n channel[i] = hi > lo ? { key: `${horizontal(faces[0]) ? 'h' : 'v'}:${Math.round(lo)}:${Math.round(hi)}`, lo, hi } : undefined\n const axis = horizontal(faces[0]) ? 'y' : 'x'\n ends.push({ edge: i, side: 0, rect: a, face: faces[0], far: centre(b)[axis], at: 0, rank: 0, count: 1 })\n ends.push({ edge: i, side: 1, rect: b, face: faces[1], far: centre(a)[axis], at: 0, rank: 0, count: 1 })\n })\n placePorts(ends)\n\n // Pass 1: anchors, and whether each edge is straight or needs an elbow.\n const pairs = []\n for (let i = 0; i < ends.length; i += 2) {\n const [from, to] = ends[i].side === 0 ? [ends[i], ends[i + 1]] : [ends[i + 1], ends[i]]\n // Alone on both faces and the faces overlap: run straight across the middle of the overlap\n // rather than jog between two centres (a row of items of different heights).\n if (from.count === 1 && to.count === 1) {\n const span = (e: End) => (horizontal(e.face) ? [e.rect.y, e.rect.y + e.rect.h] : [e.rect.x, e.rect.x + e.rect.w])\n const [a0, a1] = span(from), [b0, b1] = span(to)\n const lo = Math.max(a0, b0), hi = Math.min(a1, b1)\n if (hi - lo >= 2 * PORT_INSET) from.at = to.at = (lo + hi) / 2\n }\n const s = anchor(from), t = anchor(to)\n const straight = horizontal(from.face) ? Math.abs(s.y - t.y) < 0.5 : Math.abs(s.x - t.x) < 0.5\n pairs.push({ from, to, s, t, straight })\n }\n\n // Pass 2: SLOTS. Everything that lands mid-channel — an elbow's cross segment, a straight edge's\n // label — would land on the same line, and a dashed back edge ran under the 'tasks' label that way.\n // Each user of a channel gets its own slot, evenly spaced, in edge order (deterministic).\n const slot = new Map<number, number>()\n const users = new Map<string, number[]>()\n for (const { from, straight } of pairs) {\n const c = channel[from.edge]\n if (c && (!straight || edges[from.edge].label)) users.set(c.key, [...(users.get(c.key) ?? []), from.edge])\n }\n for (const list of users.values()) {\n list.sort((a, b) => a - b)\n const { lo, hi } = channel[list[0]]!\n list.forEach((e, k) => slot.set(e, lo + ((k + 1) * (hi - lo)) / (list.length + 1)))\n }\n\n const routed: Routed[] = []\n for (const { from, s, t } of pairs) {\n let points: Pt[]\n if (horizontal(from.face)) {\n const mx = slot.get(from.edge) ?? (s.x + t.x) / 2\n points = Math.abs(s.y - t.y) < 0.5 ? [s, { x: t.x, y: s.y }] : [s, { x: mx, y: s.y }, { x: mx, y: t.y }, t]\n } else {\n const my = slot.get(from.edge) ?? (s.y + t.y) / 2\n points = Math.abs(s.x - t.x) < 0.5 ? [s, { x: s.x, y: t.y }] : [s, { x: s.x, y: my }, { x: t.x, y: my }, t]\n }\n const [p, q] = points.length === 4 ? [points[1], points[2]] : points\n const mid = (from.count - 1) / 2\n const side = from.count === 1 || from.rank === mid ? 'on' : from.rank < mid ? 'before' : 'after'\n const seg = p.y === q.y ? 'h' : 'v'\n // A straight edge's label sits at its slot (if it has one), so it never shares a line with an elbow.\n const at = slot.get(from.edge)\n const label = points.length === 2 && at !== undefined\n ? (horizontal(from.face) ? { x: at, y: p.y } : { x: p.x, y: at }) : { x: (p.x + q.x) / 2, y: (p.y + q.y) / 2 }\n routed.push({ edge: edges[from.edge], index: from.edge, axis: horizontal(from.face) ? 'h' : 'v', points, label: { ...label, side, seg } })\n }\n return routed\n}\n","export interface Size { w: number; h: number }\nexport interface Fit { scale: number; x: number; y: number }\n\n/** Margin on each side, as a fraction of the pane's own axis. */\nexport const FIT_PADDING = 0.04\nexport const MIN_SCALE = 0.05\n/** A small scene stops growing here, so it still reads as a diagram, not a poster. */\nexport const MAX_SCALE = 4\n\n/**\n * The fit is a PURE function of the pane and the content's natural size — no async, no history.\n * That is what makes recordings reproducible: two frames whose scenes have the same natural box get\n * the same scale and put every panel at the same pixels.\n */\nexport function fitTransform(pane: Size, content: Size): Fit {\n if (!content.w || !content.h) return { scale: 1, x: 0, y: 0 }\n const raw = Math.min((pane.w * (1 - 2 * FIT_PADDING)) / content.w, (pane.h * (1 - 2 * FIT_PADDING)) / content.h)\n const scale = Math.min(MAX_SCALE, Math.max(MIN_SCALE, raw))\n return { scale, x: (pane.w - content.w * scale) / 2, y: (pane.h - content.h * scale) / 2 }\n}\n","import type { ThemeKey, Tone } from './types'\n\n// A theme owns the SHADE; a tone owns the HUE FAMILY, identical in every theme.\n// Values stay 6-digit hex so they can be concatenated with alpha later.\n\nexport interface ToneColors { accent: string; tint: string }\n\n/** The code surface and its seven token colours — one set per theme, shared by every language. */\nexport interface CodeColors { bg: string; bar: string; gutter: string; var: string; method: string; keyword: string; string: string; number: string; punct: string; comment: string }\n\nexport interface Theme {\n bg: string\n surface: string\n line: string\n ink: string\n muted: string\n edge: string\n pulse: string\n tones: Record<Tone, ToneColors>\n code: CodeColors\n}\n\n// `bg` is the PLATFORM canvas — @graphlearning/shell's `--bg` (#1a1d23 / #f7f8fa) — so a scene sits\n// seamlessly in the shell's frame. Change one and the other shows an edge round every scene.\nexport const THEMES: Record<ThemeKey, Theme> = {\n dark: {\n bg: '#1a1d23', surface: '#22262e', line: '#2f343d', ink: '#eef2f8', muted: '#9aa4b2', edge: '#7d8796', pulse: '#7dd3fc',\n tones: {\n neutral: { accent: '#9aa4b2', tint: '#181b20' },\n source: { accent: '#a3adbb', tint: '#1b1e24' },\n ingest: { accent: '#4f8ff7', tint: '#111d2e' },\n store: { accent: '#37b877', tint: '#122419' },\n serve: { accent: '#c98bff', tint: '#1e1428' },\n consume: { accent: '#f0656f', tint: '#2a1416' },\n infra: { accent: '#f0902f', tint: '#241c12' },\n },\n code: {\n bg: '#0e1420', bar: '#131b29', gutter: '#4f5a6c', var: '#eceef2', method: '#5b8cff', keyword: '#b98bff',\n string: '#37d39a', number: '#ff7a59', punct: '#8b909c', comment: '#6b748b',\n },\n },\n light: {\n bg: '#f7f8fa', surface: '#ffffff', line: '#d9dee5', ink: '#1b1f24', muted: '#5a6675', edge: '#6b7686', pulse: '#0284c7',\n tones: {\n neutral: { accent: '#5a6675', tint: '#f3f5f8' },\n source: { accent: '#4b5563', tint: '#f1f2f4' },\n ingest: { accent: '#1f5fc4', tint: '#e8effc' },\n store: { accent: '#177a4a', tint: '#e7f7ee' },\n serve: { accent: '#7b3fbf', tint: '#f3eafd' },\n consume: { accent: '#c0303c', tint: '#fdeaec' },\n infra: { accent: '#b4610f', tint: '#fdf1e4' },\n },\n code: {\n bg: '#f6f8fb', bar: '#eceff4', gutter: '#9aa4b2', var: '#1b1f24', method: '#1f5fc4', keyword: '#7b3fbf',\n string: '#177a4a', number: '#b4500f', punct: '#5a6675', comment: '#7a8494',\n },\n },\n}\n","import { useEffect, useLayoutEffect, useMemo, useRef, useState, type CSSProperties } from 'react'\nimport { ICONS } from './icons'\nimport { Edges } from './Edges'\nimport { TableView, tableRows } from './Table'\nimport { CodeView, codeLineIds } from './Code'\nimport { PlotView } from './Plot'\nimport { TreeView, treeEntryIds } from './Tree'\nimport { routeEdges, type Rect } from './routing'\nimport { fitTransform, type Size } from './fit'\nimport { THEMES, type Theme } from './theme'\nimport type { Group, Item, Scene as SceneModel, SceneNode, ThemeKey } from './types'\n\n// Layout is CSS grid all the way down: a row is N auto columns (one per non-spanning child),\n// a col is one, a grid is `cols`. `span: 'all'` runs 1 / -1. Grid — not flex — because a\n// spanning child must not change the natural width the fit will later scale.\n\ntype Dir = 'row' | 'col' | 'grid'\n\n/**\n * The gap an arrow is drawn in. A body whose children an edge runs BETWEEN gets at least EDGE_GAP,\n * and, on the axis a LABELLED edge crosses it, the label's measured size plus LABEL_ROOM a side.\n */\nconst GAP = 10\nconst EDGE_GAP = 32\nconst LABEL_ROOM = 24\n\ntype Gaps = Record<string, { col: number; row: number }>\n\nfunction bodyStyle(dir: Dir, children: SceneNode[], cols: number | undefined, gap?: { col: number; row: number }): CSSProperties {\n const n = dir === 'grid' ? cols ?? 2 : dir === 'row' ? Math.max(1, children.filter((c) => c.span !== 'all').length) : 1\n return { gridTemplateColumns: `repeat(${n}, auto)`, columnGap: gap?.col ?? GAP, rowGap: gap?.row ?? GAP }\n}\n\n/**\n * Each edge's lowest common ancestor ('' for the scene root) — the body it runs across — and the two\n * children of it that hold its ends, which the router picks faces from. Derived from the scene, never\n * authored, so spacing stays declarative. undefined = not drawable.\n */\ntype Crossing = { body: string; sides: [string, string] } | undefined\n\nfunction edgeBodies(scene: SceneModel): Crossing[] {\n const parent = new Map<string, string>()\n // A table's rows are its children for edge planning: `main.list` sits under `main`.\n const walk = (nodes: SceneNode[], p: string) => nodes.forEach((n) => {\n parent.set(n.id, p)\n if (n.type === 'group') walk(n.children, n.id)\n for (const id of lateralIdsOf(n)) parent.set(id, n.id)\n })\n walk(scene.nodes, '')\n const chain = (id: string) => { const out = [id]; while (parent.has(out.at(-1)!)) out.push(parent.get(out.at(-1)!)!); return out }\n return (scene.edges ?? []).map((e) => {\n if (!parent.has(e.from) || !parent.has(e.to)) return undefined\n const from = chain(e.from), to = chain(e.to)\n const lca = from.find((id) => to.includes(id))\n if (lca === undefined || lca === e.from || lca === e.to) return undefined\n const below = (c: string[]) => c[c.indexOf(lca) - 1]\n return { body: lca, sides: [below(from), below(to)] }\n })\n}\n\n/** A leaf's addressable slices — table rows, code lines. Each is a child of its leaf for planning. */\nconst lateralIdsOf = (n: SceneNode): string[] =>\n n.type === 'table' ? tableRows(n).flatMap((r) => (r.address ? [r.address] : []))\n : n.type === 'code' ? codeLineIds(n) : n.type === 'tree' ? treeEntryIds(n) : []\n\n/** Every slice id — the ends the router may connect only through left/right (their top and bottom are inside). */\nfunction lateralIds(nodes: SceneNode[], out = new Set<string>()): Set<string> {\n for (const n of nodes) {\n if (n.type === 'group') lateralIds(n.children, out)\n for (const id of lateralIdsOf(n)) out.add(id)\n }\n return out\n}\n\nfunction baseGaps(bodies: Crossing[]): Gaps {\n const out: Gaps = {}\n for (const b of bodies) if (b) out[b.body] = { col: EDGE_GAP, row: EDGE_GAP }\n return out\n}\n\nconst toneVars = (theme: Theme, node: SceneNode): CSSProperties | undefined =>\n node.tone && ({ '--gf-accent': theme.tones[node.tone].accent, '--gf-tint': theme.tones[node.tone].tint } as CSSProperties)\n\n/** Placement shared by every node: span, the min-size floors, and `fill` (stretch instead of hug). */\nconst spanStyle = (node: SceneNode): CSSProperties => {\n const minW = node.w ?? node.minW, maxW = node.w ?? node.maxW, minH = node.h ?? node.minH, maxH = node.h ?? node.maxH\n return {\n ...(node.span === 'all' && { gridColumn: '1 / -1' }),\n ...(minW !== undefined && { minWidth: minW }),\n ...(maxW !== undefined && { maxWidth: maxW }),\n ...(minH !== undefined && { minHeight: minH }),\n ...(maxH !== undefined && { maxHeight: maxH }),\n ...(node.fill && { justifySelf: 'stretch', alignSelf: 'stretch' }),\n }\n}\n\nfunction ItemView({ node, theme }: { node: Item; theme: Theme }) {\n const draw = node.icon ? ICONS[node.icon] : undefined\n return (\n <div className=\"gf-item\" data-id={node.id} data-stack={node.stack || undefined} data-chip={node.chip || undefined} style={{ ...toneVars(theme, node), ...spanStyle(node) }}>\n {/* Icon sizes are multiples of the item's text (16px): row 2em, card 3em, chip 1.15em. */}\n {draw?.(node.stack ? '3em' : node.chip ? '1.15em' : '2em', theme.surface, theme.ink)}\n <div>\n <div className=\"gf-item-title\">{node.title}</div>\n {node.sub && <div className=\"gf-item-sub\">{node.sub}</div>}\n {node.bullets && <ul className=\"gf-bullets\">{node.bullets.map((b) => <li key={b}>{b}</li>)}</ul>}\n </div>\n </div>\n )\n}\n\nfunction GroupView({ node, theme, gaps }: { node: Group; theme: Theme; gaps: Gaps }) {\n return (\n <div className=\"gf-group\" data-id={node.id} data-bare={node.bare || undefined} data-toned={node.tone || undefined} data-spread={node.spread || undefined} style={{ ...toneVars(theme, node), ...spanStyle(node) }}>\n {(node.title || node.badge != null) && (\n <div className=\"gf-group-head\">\n <div className=\"gf-group-title\">\n {node.badge != null && <span className=\"gf-badge\">{node.badge}</span>}\n {node.icon && ICONS[node.icon]?.('1.25em', theme.surface, theme.ink)}\n {node.title}\n </div>\n {node.sub && <div className=\"gf-group-sub\">{node.sub}</div>}\n </div>\n )}\n <div className=\"gf-body\" style={bodyStyle(node.dir ?? 'col', node.children, node.cols, gaps[node.id])}>\n {node.children.map((c) => <NodeView key={c.id} node={c} theme={theme} gaps={gaps} />)}\n </div>\n </div>\n )\n}\n\nfunction NodeView({ node, theme, gaps }: { node: SceneNode; theme: Theme; gaps: Gaps }) {\n if (node.type === 'group') return <GroupView node={node} theme={theme} gaps={gaps} />\n if (node.type === 'table') return <TableView node={node} theme={theme} style={{ ...toneVars(theme, node), ...spanStyle(node) }} />\n if (node.type === 'code') return <CodeView node={node} style={{ ...toneVars(theme, node), ...spanStyle(node) }} />\n if (node.type === 'plot') return <PlotView node={node} theme={theme} style={{ ...toneVars(theme, node), ...spanStyle(node) }} />\n if (node.type === 'tree') return <TreeView node={node} theme={theme} style={{ ...toneVars(theme, node), ...spanStyle(node) }} />\n if (node.type === 'note') return <div className=\"gf-note\" data-id={node.id} style={{ ...toneVars(theme, node), ...spanStyle(node) }}>{node.text}</div>\n return <ItemView node={node} theme={theme} />\n}\n\n/**\n * `focus` names one node (any id, a table row or a code line included) to single out: it gets a\n * ring and a glow, drawn with box-shadow so the layout — and therefore the fit — never moves. That is\n * what lets every section of a course focus a different node on the same scene without a jump.\n *\n * Fills its parent (give the parent a size) and scales the scene's natural box to fit, centred.\n * The viewport is locked: no wheel or drag handlers, so page scroll passes through and text stays\n * selectable. `data-fit=\"ready\"` marks the first fit after fonts load with edges routed — what a recorder waits on.\n */\nexport function Scene({ scene, theme: key = 'dark', focus }: { scene: SceneModel; theme?: ThemeKey; focus?: string }) {\n const t = THEMES[key]\n const bodies = useMemo(() => edgeBodies(scene), [scene])\n const rowIds = useMemo(() => lateralIds(scene.nodes), [scene])\n\n // An edge naming an id the scene does not have is an authoring error, never a silent skip.\n useEffect(() => {\n const known = new Set<string>(rowIds)\n const walk = (nodes: SceneNode[]): void => nodes.forEach((n) => { known.add(n.id); if (n.type === 'group') walk(n.children) })\n walk(scene.nodes)\n for (const e of scene.edges ?? [])\n for (const id of [e.from, e.to]) if (!known.has(id)) console.error(`graphl-flow: edge ${e.from} → ${e.to} names unknown id \"${id}\"`)\n }, [scene, rowIds])\n const [gaps, setGaps] = useState<Gaps>(() => baseGaps(bodies))\n const [gapsSettled, setGapsSettled] = useState(false)\n const pane = useRef<HTMLDivElement>(null)\n const content = useRef<HTMLDivElement>(null)\n const [sizes, setSizes] = useState<{ pane: Size; content: Size } | null>(null)\n const [fontsReady, setFontsReady] = useState(false)\n const [rects, setRects] = useState<Map<string, Rect> | null>(null)\n\n // offsetWidth/Height are layout sizes, untouched by the transform we apply.\n const measure = () => {\n const p = pane.current, c = content.current\n if (!p || !c) return\n const next = { pane: { w: p.offsetWidth, h: p.offsetHeight }, content: { w: c.offsetWidth, h: c.offsetHeight } }\n setSizes((prev) =>\n prev && prev.pane.w === next.pane.w && prev.pane.h === next.pane.h && prev.content.w === next.content.w && prev.content.h === next.content.h\n ? prev : next)\n }\n useLayoutEffect(measure, [scene, key, gaps])\n\n // Focus is an attribute on whatever element carries the id — a node, a row, a line — so it reaches\n // every addressable thing without each renderer knowing about it. No layout effect.\n useLayoutEffect(() => {\n const c = content.current\n if (!c) return\n c.querySelectorAll('[data-focus]').forEach((e) => e.removeAttribute('data-focus'))\n if (focus) c.querySelector(`[data-id=\"${CSS.escape(focus)}\"]`)?.setAttribute('data-focus', '')\n }, [focus, scene])\n\n // Node boxes in the content's natural coordinates: undo the fit by dividing out its scale.\n // Re-measured whenever the content's size, the fonts or the scene change.\n useLayoutEffect(() => {\n const c = content.current\n if (!c || !sizes) return\n const box = c.getBoundingClientRect()\n const s = box.width / c.offsetWidth || 1\n const next = new Map<string, Rect>()\n for (const el of c.querySelectorAll<HTMLElement>('[data-id]')) {\n const r = el.getBoundingClientRect()\n next.set(el.dataset.id!, { x: (r.left - box.left) / s, y: (r.top - box.top) / s, w: r.width / s, h: r.height / s })\n }\n setRects((prev) => (prev && JSON.stringify([...prev]) === JSON.stringify([...next]) ? prev : next))\n }, [sizes?.content.w, sizes?.content.h, fontsReady, scene, gaps])\n\n // Second pass: widen each labelled edge's body to its label's measured size (offsetWidth/Height\n // are untransformed). Label sizes do not depend on the gaps, so this settles in one more layout.\n useLayoutEffect(() => {\n const c = content.current\n if (!c || !rects) return\n const need = baseGaps(bodies)\n for (const el of c.querySelectorAll<HTMLElement>('.gf-edge-label')) {\n const i = Number(el.dataset.edge), body = bodies[i]?.body, r = routed.find((x) => x.index === i)\n if (body === undefined || !r) continue\n if (r.axis === 'h') need[body].col = Math.max(need[body].col, el.offsetWidth + 2 * LABEL_ROOM)\n else need[body].row = Math.max(need[body].row, el.offsetHeight + 2 * LABEL_ROOM)\n }\n const same = JSON.stringify(need) === JSON.stringify(gaps)\n if (!same) setGaps(need)\n setGapsSettled(same)\n }, [rects, gaps, bodies])\n\n useEffect(() => {\n const ro = new ResizeObserver(measure)\n ro.observe(pane.current!)\n ro.observe(content.current!)\n let live = true\n document.fonts.ready.then(() => { if (live) { measure(); setFontsReady(true) } })\n return () => { live = false; ro.disconnect() }\n }, [])\n\n const fit = sizes && fitTransform(sizes.pane, sizes.content)\n const routed = rects && scene.edges?.length ? routeEdges(scene.edges, rects, bodies.map((b) => b?.sides), rowIds) : []\n const vars = {\n '--gf-bg': t.bg, '--gf-surface': t.surface, '--gf-line': t.line, '--gf-ink': t.ink, '--gf-muted': t.muted, '--gf-edge': t.edge, '--gf-pulse': t.pulse, '--gf-ok': t.tones.store.accent, '--gf-err': t.tones.consume.accent,\n ...Object.fromEntries(Object.entries(t.code).map(([k, v]) => [`--gf-code-${k}`, v])),\n '--gf-accent': t.tones.neutral.accent, '--gf-tint': t.tones.neutral.tint,\n } as CSSProperties\n return (\n <div ref={pane} className=\"gf-scene\" data-theme={key} data-fit={fit && fontsReady && rects && gapsSettled ? 'ready' : 'pending'} style={vars}>\n <div\n ref={content}\n className=\"gf-content\"\n style={fit ? { transform: `translate(${fit.x}px, ${fit.y}px) scale(${fit.scale})` } : { visibility: 'hidden' }}\n >\n {scene.title && <div className=\"gf-scene-title\">{scene.title}</div>}\n {scene.sub && <div className=\"gf-scene-sub\">{scene.sub}</div>}\n <div className=\"gf-body\" style={bodyStyle(scene.dir ?? 'col', scene.nodes, undefined, gaps[''])}>\n {scene.nodes.map((n) => <NodeView key={n.id} node={n} theme={t} gaps={gaps} />)}\n </div>\n {sizes && <Edges routed={routed} size={sizes.content} pulse={scene.pulse !== false} />}\n </div>\n </div>\n )\n}\n"],"names":["EventHubs","size","props","_jsxs","_jsx","StreamAnalyticsJobs","AzureSynapseAnalytics","PowerBIEmbedded","DataFactories","AnalysisServices","AzureDatabricks","VirtualMachine","KubernetesServices","FunctionApps","AzureSQL","AzurePurviewAccounts","AzureCosmosDB","AzureDevOps","AzureServiceBus","LogAnalyticsWorkspaces","Monitor","MicrosoftDefenderForCloud","KeyVaults","StorageAccounts","DataLakeStorageGen1","_extends","a","b","c","d","React","require$$0","ArchitectureServiceAmazonSimpleStorageService","ArchitectureServiceAWSGlue","ArchitectureServiceAmazonRedshift","ArchitectureServiceAmazonAthena","ArchitectureServiceAmazonKinesis","ArchitectureServiceAmazonDataFirehose","ArchitectureServiceAmazonEMR","ArchitectureServiceAWSLambda","ArchitectureServiceAmazonDynamoDB","ArchitectureServiceAmazonRDS","ArchitectureServiceAmazonAurora","ArchitectureServiceAmazonCloudWatch","ArchitectureServiceAWSIdentityandAccessManagement","ArchitectureServiceAmazonManagedStreamingforApacheKafka","ArchitectureServiceAWSLakeFormation","ArchitectureServiceAmazonEC2","ArchitectureServiceAmazonSimpleQueueService","ArchitectureServiceAmazonSimpleNotificationService","ArchitectureServiceAWSStepFunctions","ArchitectureServiceAmazonEventBridge","ArchitectureServiceAWSKeyManagementService","ArchitectureServiceAWSSecretsManager","ArchitectureServiceAmazonElasticKubernetesService","ArchitectureServiceAmazonSageMaker","ArchitectureServiceAmazonAPIGateway","ArchitectureServiceAmazonVirtualPrivateCloud","ArchitectureServiceAWSCloudFormation","ArchitectureServiceAmazonManagedWorkflowsforApacheAirflow","ArchitectureServiceAWSDatabaseMigrationService","ArchitectureServiceAmazonElastiCache","t","siApacheairflow","siApacheflink","siApachekafka","siApachespark","siDocker","siDuckdb","siGit","siGithub","siGithubactions","siGrafana","siJupyter","siKubernetes","siMongodb","siPandas","siPostgresql","siPrometheus","siPython","siSnowflake","siTerraform","LUCIDE","Activity","Bell","Box","Building2","ChartColumn","ChartPie","ClipboardCheck","Clock","Cloud","Code2","Cpu","CreditCard","Database","Factory","FileText","Filter","Fingerprint","Folder","GitBranch","Globe","HardDrive","KeyRound","Layers","Lock","Network","Package","RadioTower","Search","Server","Settings","ShieldCheck","Table2","Terminal","User","UserCog","Users","Workflow","Zap","Waves","Brain","Boxes","MemoryStick","AZURE","DataFactoriesAnalytics","EventHubsAnalytics","AzureSynapseAnalyticsAnalytics","MonitorMonitor","LogAnalyticsWorkspacesManagementGovernance","AzureCosmosDBDatabases","FunctionAppsCompute","KubernetesServicesCompute","StreamAnalyticsJobsAnalytics","AWS","S3","Glue","Redshift","Athena","Kinesis","Firehose","EMR","Lambda","DynamoDB","RDS","Aurora","CloudWatch","IAM","MSK","LakeFormation","EC2","SQS","SNS","StepFunctions","EventBridge","KMS","SecretsManager","EKS","SageMaker","APIGateway","VPC","CloudFormation","MWAA","DMS","ElastiCache","BRAND","merge","sets","out","set","k","v","map","draw","luminance","hex","i","BRAND_MIN_CONTRAST","brandFill","surface","ink","ICONS","Icon","jsx","PULSE_S","HEAD_TRIM","trim","points","start","end","p","pull","pathOf","LABEL_SHIFT","Edges","routed","pulse","uid","useId","arrow","glow","dot","reverse","jsxs","Fragment","r","PLAIN","tableRows","table","rows","firsts","own","tint","theme","tone","TableView","node","style","tagged","width","_a","_","j","KEYWORDS","COMMENT","escape","s","tokenize","src","lang","token","afterDot","text","ws","comment","str","num","word","cls","dedent","lines","indent","l","codeRows","keep","codeLineIds","foldLabel","n","CodeView","lit","row","kind","Toks","PLOT_W","PLOT_H","COMPACT_W","COMPACT_H","CHAR_W","TICK_GAP","AXIS_LABEL","RAMP","niceStep","span","raw","mag","decimals","step","axis","min","max","ticks","seriesPoints","construction","labelAt","pts","PlotView","clip","X","Y","PW","PH","origin","chars","left","bottom","top","sx","sy","overhang","at","right","W","H","ax","ay","rampAt","q","colour","legend","base","x","y","slot","x1","y1","x2","y2","L","tip","back","BY_EXTENSION","iconOf","treeRows","entries","depth","prefix","entry","path","treeEntryIds","TreeView","folder","ChevronDown","ChevronRight","ANCHOR_OUTSET","PORT_INSET","PORT_MIN_GAP","centre","horizontal","f","facesOf","lateral","down","up","gx","gy","placePorts","ends","byFace","e","key","group","rect","face","len","lo","hi","anchor","routeEdges","edges","rects","sides","channel","edge","sa","sb","id","faces","pairs","from","to","a0","a1","b0","b1","straight","users","list","mx","my","mid","side","seg","label","FIT_PADDING","MIN_SCALE","MAX_SCALE","fitTransform","pane","content","scale","THEMES","GAP","EDGE_GAP","LABEL_ROOM","bodyStyle","dir","children","cols","gap","edgeBodies","scene","parent","walk","nodes","lateralIdsOf","chain","lca","below","lateralIds","baseGaps","bodies","toneVars","spanStyle","minW","maxW","minH","maxH","ItemView","GroupView","gaps","NodeView","Scene","focus","useMemo","rowIds","useEffect","known","setGaps","useState","gapsSettled","setGapsSettled","useRef","sizes","setSizes","fontsReady","setFontsReady","setRects","measure","next","prev","useLayoutEffect","box","el","need","body","same","ro","live","fit","vars"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/@threeveloper/azure-react-icons/dist/components/analytics/00039-icon-service-Event-Hubs.js","../node_modules/@threeveloper/azure-react-icons/dist/components/analytics/00042-icon-service-Stream-Analytics-Jobs.js","../node_modules/@threeveloper/azure-react-icons/dist/components/analytics/00606-icon-service-Azure-Synapse-Analytics.js","../node_modules/@threeveloper/azure-react-icons/dist/components/analytics/03332-icon-service-Power-BI-Embedded.js","../node_modules/@threeveloper/azure-react-icons/dist/components/analytics/10126-icon-service-Data-Factories.js","../node_modules/@threeveloper/azure-react-icons/dist/components/analytics/10148-icon-service-Analysis-Services.js","../node_modules/@threeveloper/azure-react-icons/dist/components/analytics/10787-icon-service-Azure-Databricks.js","../node_modules/@threeveloper/azure-react-icons/dist/components/compute/10021-icon-service-Virtual-Machine.js","../node_modules/@threeveloper/azure-react-icons/dist/components/compute/10023-icon-service-Kubernetes-Services.js","../node_modules/@threeveloper/azure-react-icons/dist/components/compute/10029-icon-service-Function-Apps.js","../node_modules/@threeveloper/azure-react-icons/dist/components/databases/02390-icon-service-Azure-SQL.js","../node_modules/@threeveloper/azure-react-icons/dist/components/databases/02517-icon-service-Azure-Purview-Accounts.js","../node_modules/@threeveloper/azure-react-icons/dist/components/databases/10121-icon-service-Azure-Cosmos-DB.js","../node_modules/@threeveloper/azure-react-icons/dist/components/devops/10261-icon-service-Azure-DevOps.js","../node_modules/@threeveloper/azure-react-icons/dist/components/integration/10836-icon-service-Azure-Service-Bus.js","../node_modules/@threeveloper/azure-react-icons/dist/components/management + governance/00009-icon-service-Log-Analytics-Workspaces.js","../node_modules/@threeveloper/azure-react-icons/dist/components/monitor/00001-icon-service-Monitor.js","../node_modules/@threeveloper/azure-react-icons/dist/components/security/10241-icon-service-Microsoft-Defender-for-Cloud.js","../node_modules/@threeveloper/azure-react-icons/dist/components/security/10245-icon-service-Key-Vaults.js","../node_modules/@threeveloper/azure-react-icons/dist/components/storage/10086-icon-service-Storage-Accounts.js","../node_modules/@threeveloper/azure-react-icons/dist/components/storage/10090-icon-service-Data-Lake-Storage-Gen1.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonSimpleStorageService.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSGlue.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonRedshift.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonAthena.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonKinesis.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonDataFirehose.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonEMR.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSLambda.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonDynamoDB.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonRDS.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonAurora.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonCloudWatch.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSIdentityandAccessManagement.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonManagedStreamingforApacheKafka.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSLakeFormation.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonEC2.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonSimpleQueueService.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonSimpleNotificationService.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSStepFunctions.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonEventBridge.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSKeyManagementService.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSSecretsManager.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonElasticKubernetesService.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonSageMaker.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonAPIGateway.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonVirtualPrivateCloud.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSCloudFormation.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonManagedWorkflowsforApacheAirflow.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAWSDatabaseMigrationService.js","../node_modules/aws-react-icons/lib/icons/ArchitectureServiceAmazonElastiCache.js","../node_modules/simple-icons/index.mjs","../src/icons.tsx","../src/Edges.tsx","../src/Table.tsx","../src/highlight.ts","../src/Code.tsx","../src/Plot.tsx","../src/Tree.tsx","../src/routing.ts","../src/fit.ts","../src/theme.ts","../src/Scene.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import type { ComponentType, ReactElement } from 'react'\nimport {\n Activity, Bell, Box, Building2, ChartColumn, ChartPie, ClipboardCheck, Clock, Cloud, Code2, Cpu,\n CreditCard, Database, Factory, FileText, Filter, Fingerprint, Folder, GitBranch, Globe, HardDrive,\n KeyRound, Layers, Lock, Monitor, Network, Package, RadioTower, Search, Server, Settings, ShieldCheck,\n Table2, Terminal, User, UserCog, Users, Workflow, Zap, Waves, Brain, Boxes, MemoryStick, type LucideIcon,\n} from 'lucide-react'\nimport {\n AnalysisServices, AzureCosmosDBDatabases, AzureDatabricks, AzureDevOps, AzurePurviewAccounts, AzureServiceBus,\n AzureSQL, AzureSynapseAnalyticsAnalytics, DataFactoriesAnalytics, DataLakeStorageGen1, EventHubsAnalytics,\n FunctionAppsCompute, KeyVaults, KubernetesServicesCompute, LogAnalyticsWorkspacesManagementGovernance,\n MicrosoftDefenderForCloud, MonitorMonitor, PowerBIEmbedded, StorageAccounts, StreamAnalyticsJobsAnalytics,\n VirtualMachine,\n} from '@threeveloper/azure-react-icons'\nimport S3 from 'aws-react-icons/icons/ArchitectureServiceAmazonSimpleStorageService'\nimport Glue from 'aws-react-icons/icons/ArchitectureServiceAWSGlue'\nimport Redshift from 'aws-react-icons/icons/ArchitectureServiceAmazonRedshift'\nimport Athena from 'aws-react-icons/icons/ArchitectureServiceAmazonAthena'\nimport Kinesis from 'aws-react-icons/icons/ArchitectureServiceAmazonKinesis'\nimport Firehose from 'aws-react-icons/icons/ArchitectureServiceAmazonDataFirehose'\nimport EMR from 'aws-react-icons/icons/ArchitectureServiceAmazonEMR'\nimport Lambda from 'aws-react-icons/icons/ArchitectureServiceAWSLambda'\nimport DynamoDB from 'aws-react-icons/icons/ArchitectureServiceAmazonDynamoDB'\nimport RDS from 'aws-react-icons/icons/ArchitectureServiceAmazonRDS'\nimport Aurora from 'aws-react-icons/icons/ArchitectureServiceAmazonAurora'\nimport CloudWatch from 'aws-react-icons/icons/ArchitectureServiceAmazonCloudWatch'\nimport IAM from 'aws-react-icons/icons/ArchitectureServiceAWSIdentityandAccessManagement'\nimport MSK from 'aws-react-icons/icons/ArchitectureServiceAmazonManagedStreamingforApacheKafka'\nimport LakeFormation from 'aws-react-icons/icons/ArchitectureServiceAWSLakeFormation'\nimport EC2 from 'aws-react-icons/icons/ArchitectureServiceAmazonEC2'\nimport SQS from 'aws-react-icons/icons/ArchitectureServiceAmazonSimpleQueueService'\nimport SNS from 'aws-react-icons/icons/ArchitectureServiceAmazonSimpleNotificationService'\nimport StepFunctions from 'aws-react-icons/icons/ArchitectureServiceAWSStepFunctions'\nimport EventBridge from 'aws-react-icons/icons/ArchitectureServiceAmazonEventBridge'\nimport KMS from 'aws-react-icons/icons/ArchitectureServiceAWSKeyManagementService'\nimport SecretsManager from 'aws-react-icons/icons/ArchitectureServiceAWSSecretsManager'\nimport EKS from 'aws-react-icons/icons/ArchitectureServiceAmazonElasticKubernetesService'\nimport SageMaker from 'aws-react-icons/icons/ArchitectureServiceAmazonSageMaker'\nimport APIGateway from 'aws-react-icons/icons/ArchitectureServiceAmazonAPIGateway'\nimport VPC from 'aws-react-icons/icons/ArchitectureServiceAmazonVirtualPrivateCloud'\nimport CloudFormation from 'aws-react-icons/icons/ArchitectureServiceAWSCloudFormation'\nimport MWAA from 'aws-react-icons/icons/ArchitectureServiceAmazonManagedWorkflowsforApacheAirflow'\nimport DMS from 'aws-react-icons/icons/ArchitectureServiceAWSDatabaseMigrationService'\nimport ElastiCache from 'aws-react-icons/icons/ArchitectureServiceAmazonElastiCache'\nimport {\n siApacheairflow, siApacheflink, siApachekafka, siApachespark, siDocker, siDuckdb, siGit, siGithub, siGithubactions,\n siGrafana, siJupyter, siKubernetes, siMongodb, siPandas, siPostgresql, siPrometheus, siPython, siSnowflake, siTerraform,\n} from 'simple-icons'\n\n// Four sets, ONE key space. Every icon is a NAMED (or per-file) import, so the bundle carries only\n// these; add a key when a scene needs it. Keys match @graphlearning/flow's where both exist, so a\n// scene ports without renaming. A key may appear in ONE set only — `ICONS` throws on a duplicate.\n\n/** Generic glyphs, drawn in the node's tone accent. */\nexport const LUCIDE: Record<string, LucideIcon> = {\n activity: Activity, bell: Bell, box: Box, building: Building2, chart: ChartColumn, pie: ChartPie,\n check: ClipboardCheck, clock: Clock, cloud: Cloud, code: Code2, cpu: Cpu, card: CreditCard,\n database: Database, factory: Factory, file: FileText, filter: Filter, fingerprint: Fingerprint,\n folder: Folder, branch: GitBranch, globe: Globe, disk: HardDrive, key: KeyRound, layers: Layers,\n lock: Lock, screen: Monitor, network: Network, package: Package, stream: RadioTower, search: Search,\n server: Server, settings: Settings, shield: ShieldCheck, table: Table2, terminal: Terminal,\n user: User, admin: UserCog, users: Users, workflow: Workflow, zap: Zap, waves: Waves, brain: Brain,\n boxes: Boxes, memory: MemoryStick,\n}\n\n/** Azure service tiles, in their own colours. The package ships no viewBox; 0 0 18 18 fits all. */\nexport const AZURE: Record<string, ComponentType<{ size?: string; viewBox?: string }>> = {\n datafactory: DataFactoriesAnalytics, eventhubs: EventHubsAnalytics, adls: DataLakeStorageGen1, storage: StorageAccounts,\n databricks: AzureDatabricks, synapse: AzureSynapseAnalyticsAnalytics, analysisservices: AnalysisServices,\n purview: AzurePurviewAccounts, keyvault: KeyVaults, defender: MicrosoftDefenderForCloud, monitor: MonitorMonitor,\n loganalytics: LogAnalyticsWorkspacesManagementGovernance, devops: AzureDevOps, powerbi: PowerBIEmbedded,\n azuresql: AzureSQL, cosmos: AzureCosmosDBDatabases, functions: FunctionAppsCompute, aks: KubernetesServicesCompute,\n streamanalytics: StreamAnalyticsJobsAnalytics, servicebus: AzureServiceBus, vm: VirtualMachine,\n}\n\n/** AWS architecture icons, in their own colours on their own rounded tile. */\nexport const AWS: Record<string, ComponentType<{ size?: number | string }>> = {\n s3: S3, glue: Glue, redshift: Redshift, athena: Athena, kinesis: Kinesis, firehose: Firehose, emr: EMR,\n lambda: Lambda, dynamodb: DynamoDB, rds: RDS, aurora: Aurora, cloudwatch: CloudWatch, iam: IAM, msk: MSK,\n lakeformation: LakeFormation, ec2: EC2, sqs: SQS, sns: SNS, stepfunctions: StepFunctions, eventbridge: EventBridge,\n kms: KMS, secretsmanager: SecretsManager, eks: EKS, sagemaker: SageMaker, apigateway: APIGateway, vpc: VPC,\n cloudformation: CloudFormation, mwaa: MWAA, dms: DMS, elasticache: ElastiCache,\n}\n\n/** Open-source / product marks (simple-icons), in the brand's colour unless it would vanish. */\nexport const BRAND: Record<string, { title: string; hex: string; path: string }> = {\n kafka: siApachekafka, spark: siApachespark, airflow: siApacheairflow, flink: siApacheflink, snowflakedb: siSnowflake,\n python: siPython, pandas: siPandas, jupyter: siJupyter, duckdb: siDuckdb, postgresql: siPostgresql, mongodb: siMongodb,\n docker: siDocker, kubernetes: siKubernetes, terraform: siTerraform, git: siGit, github: siGithub,\n githubactions: siGithubactions, grafana: siGrafana, prometheus: siPrometheus,\n}\n\n/** `size` is a CSS length — in em, so an icon scales WITH its text and the ratio stays designed. */\ntype Draw = (size: string, surface: string, ink: string) => ReactElement\n\nfunction merge(...sets: Record<string, Draw>[]): Record<string, Draw> {\n const out: Record<string, Draw> = {}\n for (const set of sets)\n for (const [k, v] of Object.entries(set)) {\n if (k in out) throw new Error(`graphl-flow: icon key \"${k}\" is defined in two icon sets`)\n out[k] = v\n }\n return out\n}\n\nconst map = <T,>(set: Record<string, T>, draw: (v: T) => Draw) => Object.fromEntries(Object.entries(set).map(([k, v]) => [k, draw(v)]))\n\nconst luminance = (hex: string) => {\n const c = [1, 3, 5].map((i) => parseInt(hex.slice(i, i + 2), 16) / 255).map((v) => (v <= 0.04045 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4))\n return 0.2126 * c[0] + 0.7152 * c[1] + 0.0722 * c[2]\n}\n\n/** A brand mark under this contrast against the surface draws in ink (Kafka's black on dark). */\nexport const BRAND_MIN_CONTRAST = 2.2\n\nfunction brandFill(hex: string, surface: string, ink: string) {\n const a = luminance(`#${hex}`), b = luminance(surface)\n return (Math.max(a, b) + 0.05) / (Math.min(a, b) + 0.05) < BRAND_MIN_CONTRAST ? ink : `#${hex}`\n}\n\nexport const ICONS: Record<string, Draw> = merge(\n map(LUCIDE, (Icon) => (size) => <Icon className=\"gf-icon\" size={size} strokeWidth={1.75} aria-hidden />),\n map(AZURE, (Icon) => (size) => <span className=\"gf-icon gf-vendor\"><Icon size={size} viewBox=\"0 0 18 18\" /></span>),\n map(AWS, (Icon) => (size) => <span className=\"gf-icon gf-vendor gf-aws\"><Icon size={size} /></span>),\n map(BRAND, (b) => (size, surface, ink) => (\n <svg className=\"gf-icon\" width={size} height={size} viewBox=\"0 0 24 24\" role=\"img\" aria-label={b.title}>\n <path d={b.path} fill={brandFill(b.hex, surface, ink)} />\n </svg>\n )),\n)\n","import { useId } from 'react'\nimport type { Routed } from './routing'\nimport type { Size } from './fit'\n\n/**\n * The pulse period, in seconds. A RECORDER CONTRACT: ui-shell's record-course.mjs / record-reels.mjs\n * loop every video on PULSE_S = 2.4. Change it here alone and every loop join in every recorded video\n * shows a jump. Same value, same linear motion as @graphlearning/flow's FlowEdge.\n */\nexport const PULSE_S = 2.4\n\n/**\n * The shaft stops HEAD_TRIM short of a headed end, inside the head, and the marker's ref point moves\n * back by the same amount so the TIP still lands on the endpoint. Without it the 2px stroke poked out\n * past the tip — near its point the triangle is narrower than the line (visible at 4K on every arrow).\n */\nconst HEAD_TRIM = 6\n\ntype P = { x: number; y: number }\nfunction trim(points: P[], start: boolean, end: boolean): P[] {\n const out = points.map((p) => ({ ...p }))\n // Never past the run's other end: a trim longer than the run reverses the shaft, and the marker\n // (orient auto) follows it — the head flips. The router keeps runs ≥ HEAD_LEN; this is the guard.\n const pull = (a: P, b: P) => {\n const d = Math.hypot(b.x - a.x, b.y - a.y)\n if (d < 1) return\n const k = Math.min(HEAD_TRIM, d - 0.5) / d\n a.x += (b.x - a.x) * k; a.y += (b.y - a.y) * k\n }\n if (end) pull(out[out.length - 1], out[out.length - 2])\n if (start) pull(out[0], out[1])\n return out\n}\nconst pathOf = (points: P[]) => `M ${points.map((p) => `${p.x},${p.y}`).join(' L ')}`\n\nconst LABEL_SHIFT = {\n on: { h: 'translate(-50%, -50%)', v: 'translate(-50%, -50%)' },\n before: { h: 'translate(-50%, calc(-100% - 3px))', v: 'translate(calc(-100% - 3px), -50%)' },\n after: { h: 'translate(-50%, 3px)', v: 'translate(3px, -50%)' },\n}\n\n/** Draws routed edges over the content, in the content's own (unscaled) coordinates. */\nexport function Edges({ routed, size, pulse }: { routed: Routed[]; size: Size; pulse: boolean }) {\n const uid = useId().replace(/[^\\w-]/g, '')\n const arrow = `gf-arrow-${uid}`, glow = `gf-glow-${uid}`\n // A dot travelling the path once per PULSE_S; `reverse` runs it from `to` back to `from`.\n const dot = (d: string, reverse: boolean) => (\n <circle r={4.5} className=\"gf-pulse\" filter={`url(#${glow})`}>\n <animateMotion dur={`${PULSE_S}s`} repeatCount=\"indefinite\" path={d} calcMode=\"linear\" {...(reverse && { keyPoints: '1;0', keyTimes: '0;1' })} />\n </circle>\n )\n return (\n <>\n <svg className=\"gf-edges\" width={size.w} height={size.h} aria-hidden>\n <defs>\n {/* auto-start-reverse: the same head serves the far end of a bidirectional edge. */}\n <marker id={arrow} viewBox=\"0 0 10 10\" refX={10 - HEAD_TRIM} refY=\"5\" markerWidth=\"10\" markerHeight=\"10\" markerUnits=\"userSpaceOnUse\" orient=\"auto-start-reverse\">\n <path d=\"M0,0 L10,5 L0,10 z\" className=\"gf-arrowhead\" />\n </marker>\n <filter id={glow} x=\"-100%\" y=\"-100%\" width=\"300%\" height=\"300%\">\n <feGaussianBlur stdDeviation=\"2.5\" result=\"b\" />\n <feMerge><feMergeNode in=\"b\" /><feMergeNode in=\"SourceGraphic\" /></feMerge>\n </filter>\n </defs>\n {routed.map((r, i) => {\n // `d` is the full route (pulses travel it); the stroke is trimmed at its headed ends.\n const d = pathOf(r.points)\n return (\n <g key={i}>\n <path\n className=\"gf-edge\"\n data-from={r.edge.from}\n data-to={r.edge.to}\n data-edge={r.index}\n data-route={d}\n d={pathOf(trim(r.points, !!r.edge.bidirectional, true))}\n strokeDasharray={r.edge.dashed ? '6 5' : undefined}\n markerEnd={`url(#${arrow})`}\n markerStart={r.edge.bidirectional ? `url(#${arrow})` : undefined}\n />\n {pulse && dot(d, false)}\n {pulse && r.edge.bidirectional && dot(d, true)}\n </g>\n )\n })}\n </svg>\n {routed.map((r, i) =>\n r.edge.label ? (\n <div\n key={i}\n className=\"gf-edge-label\"\n data-edge={r.index}\n style={{ left: r.label.x, top: r.label.y, transform: LABEL_SHIFT[r.label.side][r.label.seg] }}\n >\n {r.edge.label}\n </div>\n ) : null,\n )}\n </>\n )\n}\n","import type { CSSProperties } from 'react'\nimport type { Theme } from './theme'\nimport type { Table, TableRow, Tone } from './types'\n\nconst PLAIN = /^[\\w$-]+$/\n\n/**\n * Normalised rows with their ADDRESS: explicit `id`, else the first cell when it is a plain word\n * and unique in the table. Shared by the renderer (data-id) and the edge planner (parent links),\n * so the two cannot disagree about which rows exist.\n */\nexport function tableRows(table: Table): (TableRow & { address?: string })[] {\n const rows = table.rows.map((r) => (Array.isArray(r) ? { cells: r } : r))\n const firsts = rows.map((r) => String(r.cells[0] ?? ''))\n return rows.map((r, i) => {\n const own = r.id ?? (PLAIN.test(firsts[i]) && firsts.indexOf(firsts[i]) === firsts.lastIndexOf(firsts[i]) ? firsts[i] : undefined)\n return { ...r, address: own && `${table.id}.${own}` }\n })\n}\n\nconst tint = (theme: Theme, tone?: Tone): CSSProperties | undefined =>\n tone && ({ '--gf-accent': theme.tones[tone].accent, '--gf-tint': theme.tones[tone].tint } as CSSProperties)\n\nexport function TableView({ node, theme, style }: { node: Table; theme: Theme; style?: CSSProperties }) {\n const rows = tableRows(node)\n const tagged = rows.some((r) => r.tag)\n const width = Math.max(node.columns?.length ?? 0, ...rows.map((r) => r.cells.length))\n return (\n <div className=\"gf-table\" data-id={node.id} style={style}>\n {node.title && <div className=\"gf-table-title\">{node.title}</div>}\n <table>\n {node.columns && (\n <thead>\n <tr>\n {tagged && <th aria-hidden />}\n {node.columns.map((c, i) => <th key={i}>{c}</th>)}\n </tr>\n </thead>\n )}\n <tbody>\n {rows.map((r, i) => (\n <tr key={i} data-id={r.address} data-tone={r.tone} style={tint(theme, r.tone)}>\n {tagged && <td className=\"gf-tag-cell\">{r.tag && <span className=\"gf-tag\">{r.tag}</span>}</td>}\n {Array.from({ length: width }, (_, j) => <td key={j}>{r.cells[j] ?? ''}</td>)}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )\n}\n","// A tokenizer, not a parser: one regex and a keyword set, ported from @graphlearning/flow's\n// codeHighlight. Small on purpose — slides show short excerpts, and every language shares the\n// same seven colours. The comment marker is the only per-language rule.\n\nexport type TokClass = 'var' | 'method' | 'keyword' | 'string' | 'number' | 'punct' | 'ws' | 'comment'\nexport interface Tok { cls: TokClass; text: string }\nexport type Lang = 'python' | 'sql' | 'scala' | 'java' | 'js' | 'ts' | 'shell' | 'text'\n\nconst KEYWORDS = new Set([\n 'import', 'from', 'def', 'return', 'lambda', 'class', 'val', 'var', 'new', 'if', 'else', 'for',\n 'in', 'as', 'and', 'or', 'not', 'null', 'true', 'false', 'is',\n 'select', 'where', 'group', 'by', 'join', 'inner', 'left', 'right', 'full', 'outer', 'cross',\n 'on', 'using', 'having', 'order', 'asc', 'desc', 'limit', 'offset', 'distinct', 'with', 'recursive',\n 'union', 'intersect', 'except', 'all', 'insert', 'into', 'values', 'update', 'set', 'delete',\n 'over', 'partition', 'between', 'like', 'exists', 'case', 'when', 'then', 'end', 'count', 'sum', 'avg', 'min', 'max',\n 'while', 'elif', 'try', 'raise', 'finally', 'pass', 'break', 'continue', 'yield', 'async', 'await', 'assert', 'del',\n 'global', 'nonlocal', 'none', 'match',\n 'const', 'let', 'function', 'export', 'default', 'interface', 'type', 'extends', 'implements', 'public',\n 'private', 'static', 'void', 'object', 'trait', 'def', 'catch', 'throw', 'this', 'super', 'undefined',\n])\n\nconst COMMENT: Record<Lang, string> = {\n python: '#', shell: '#', sql: '--', scala: '//', java: '//', js: '//', ts: '//', text: '\\u0000',\n}\n\nconst escape = (s: string) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\nexport function tokenize(src: string, lang: Lang): Tok[] {\n if (lang === 'text') return [{ cls: 'var', text: src }]\n const token = new RegExp(`(\\\\s+)|(${escape(COMMENT[lang])}[\\\\s\\\\S]*)|('[^']*'?|\"[^\"]*\"?)|(\\\\d[\\\\d.]*)|([A-Za-z_]\\\\w*)|(\\\\.\\\\.\\\\.|[\\\\s\\\\S])`, 'g')\n const out: Tok[] = []\n let afterDot = false\n for (const [text, ws, comment, str, num, word] of src.matchAll(token)) {\n const cls: TokClass = ws ? 'ws' : comment ? 'comment' : str ? 'string' : num ? 'number'\n : word ? (afterDot ? 'method' : KEYWORDS.has(word.toLowerCase()) ? 'keyword' : 'var') : 'punct'\n out.push({ cls, text })\n // In shell a dot is a file extension (`job.py`), not a member access.\n if (cls !== 'ws') afterDot = lang !== 'shell' && cls === 'punct' && text === '.'\n }\n return out\n}\n\n/** Drop a leading/trailing blank line and the common indent, so scenes can use indented template literals. */\nexport function dedent(src: string): string[] {\n const lines = src.replace(/^\\s*\\n/, '').replace(/\\n\\s*$/, '').split('\\n')\n const indent = Math.min(...lines.filter((l) => l.trim()).map((l) => l.match(/^ */)![0].length))\n return lines.map((l) => l.slice(Number.isFinite(indent) ? indent : 0))\n}\n","import type { CSSProperties } from 'react'\nimport { dedent, tokenize } from './highlight'\nimport type { Code } from './types'\n\ntype Row = { n: number; text: string } | { fold: number }\n\n/**\n * The lines a `code` node draws: every line, or only the `show` ranges with each skipped run\n * folded into one `··· N lines` row. Line numbers are the FILE's. Shared with the edge planner via\n * `codeLineIds`, so a line edges can address is a line that is drawn.\n */\nexport function codeRows(node: Code): Row[] {\n const lines = dedent(node.code)\n if (!node.show?.length || node.terminal || node.output) return lines.map((text, i) => ({ n: i + 1, text }))\n const keep = new Set(node.show.flatMap(([a, b]) => Array.from({ length: b - a + 1 }, (_, i) => a + i)))\n const rows: Row[] = []\n lines.forEach((text, i) => {\n if (keep.has(i + 1)) rows.push({ n: i + 1, text })\n else if (rows.length && 'fold' in rows[rows.length - 1]) (rows[rows.length - 1] as { fold: number }).fold++\n else rows.push({ fold: 1 })\n })\n return rows\n}\n\nexport const codeLineIds = (node: Code): string[] => codeRows(node).flatMap((r) => ('n' in r ? [`${node.id}.L${r.n}`] : []))\n\n// U+00B7, not ⋯: a fallback-font glyph would change the advance next to Plex Mono.\nconst foldLabel = (n: number) => `··· ${n} line${n === 1 ? '' : 's'}`\n\nexport function CodeView({ node, style }: { node: Code; style?: CSSProperties }) {\n const lit = new Set(node.highlight ?? [])\n const lang = node.lang ?? (node.terminal ? 'shell' : 'text')\n // A cell's output: what the kernel printed, under its input — no bar, no frame, no gutter.\n if (node.output) return (\n <div className=\"gf-code\" data-id={node.id} data-output style={style}>\n {codeRows(node).map((row, i) => 'n' in row && (\n <div key={i} className=\"gf-line\" data-id={`${node.id}.L${row.n}`} data-kind={row.text.startsWith('! ') ? 'err' : 'out'}>\n {row.text.startsWith('! ') ? row.text.slice(2) : row.text || ' '}\n </div>\n ))}\n </div>\n )\n return (\n <div className=\"gf-code\" data-id={node.id} data-terminal={node.terminal || undefined} style={style}>\n <div className=\"gf-code-bar\">\n {node.terminal ? <span className=\"gf-code-name\">{node.filename ?? 'terminal'}</span> : (\n <>\n <span className=\"gf-dots\" aria-hidden><i /><i /><i /></span>\n {node.filename && <span className=\"gf-code-name\">{node.filename}</span>}\n </>\n )}\n </div>\n <div className=\"gf-code-body\">\n {codeRows(node).map((row, i) => {\n if ('fold' in row) return <div key={i} className=\"gf-line gf-fold\"><span className=\"gf-ln\" /><span>{foldLabel(row.fold)}</span></div>\n // Terminal: `$ cmd` is a command, `! text` an error, anything else output.\n if (node.terminal) {\n const kind = row.text.startsWith('$ ') ? 'cmd' : row.text.startsWith('! ') ? 'err' : 'out'\n return (\n <div key={i} className=\"gf-line\" data-id={`${node.id}.L${row.n}`} data-kind={kind}>\n {kind === 'cmd' ? <><span className=\"gf-prompt\">$ </span><Toks text={row.text.slice(2)} lang={lang} /></> : kind === 'err' ? row.text.slice(2) : row.text || ' '}\n </div>\n )\n }\n return (\n <div key={i} className=\"gf-line\" data-id={`${node.id}.L${row.n}`} data-lit={lit.has(row.n) || undefined}>\n <span className=\"gf-ln\">{row.n}</span>\n <span><Toks text={row.text} lang={lang} /></span>\n </div>\n )\n })}\n </div>\n </div>\n )\n}\n\nconst Toks = ({ text, lang }: { text: string; lang: Parameters<typeof tokenize>[1] }) =>\n <>{text ? tokenize(text, lang).map((t, i) => <span key={i} className={`tok-${t.cls}`}>{t.text}</span>) : ' '}</>\n","import { useId } from 'react'\nimport type { Theme } from './theme'\nimport type { Plot, PlotAxis, PlotSeries, Tone } from './types'\n\n// A plot's x/y are DATA in the axes' own units; the engine owns every pixel. The drawing area is ONE\n// fixed size for every plot, so plots in a deck line up and frames with one keep the same zoom.\n// Inside the SVG the browser does not lay out text, so all plot text is IBM Plex Mono (fixed advance)\n// and the gutters are counted in characters; `check` measures every <text> against the SVG box.\n\nexport const PLOT_W = 720\nexport const PLOT_H = 400\n/** The second fixed size: a plot for a side pane, readable at full text size in ~560px. */\nexport const COMPACT_W = 420\nexport const COMPACT_H = 280\nconst CHAR_W = 9.1 // IBM Plex Mono at 15px (600/1000 em = 9.0), rounded up so a count can only over-reserve\nconst TICK_GAP = 8\nconst AXIS_LABEL = 24\n\n/** Series colours in a fixed order that keeps green and orange apart; `consume` red is reserved for warnings. */\nconst RAMP: Tone[] = ['ingest', 'infra', 'serve', 'store']\n\nfunction niceStep(span: number): number {\n const raw = Math.abs(span) / 6\n if (!(raw > 0) || !Number.isFinite(raw)) return 1\n const mag = 10 ** Math.floor(Math.log10(raw))\n const n = raw / mag\n return (n >= 5 ? 5 : n >= 2 ? 2 : 1) * mag\n}\n\nconst decimals = (step: number) => (String(step).split('.')[1] ?? '').length\n\ninterface Axis { min: number; max: number; ticks: number[]; text: (v: number) => string; categories: boolean; label?: string }\n\nfunction axis(a: PlotAxis): Axis {\n if (a.labels) {\n const n = a.labels.length\n return { min: -0.5, max: n - 0.5, ticks: a.labels.map((_, i) => i), text: (v) => a.labels![v] ?? '', categories: true, label: a.label }\n }\n const min = a.min ?? 0, max = a.max ?? 1\n const step = a.step && (max - min) / a.step <= 200 ? a.step : niceStep(max - min)\n const ticks: number[] = []\n for (let v = Math.ceil(min / step) * step; v <= max + step * 1e-9; v += step) ticks.push(Number(v.toFixed(decimals(step) + 1)))\n return { min, max, ticks, text: (v) => (Math.abs(v) < step * 1e-9 ? 0 : v).toFixed(decimals(step)), categories: false, label: a.label }\n}\n\nconst seriesPoints = (s: PlotSeries): [number, number][] => s.points ?? (s.from && s.to ? [s.from, s.to] : [])\n\n/** A plain segment (no arrow, no tone) is a construction line: muted, and it takes no ramp colour. */\nconst construction = (s: PlotSeries) => s.kind === 'segment' && !s.arrow && !s.tone\n\n/** Where a series puts its label: a segment at its tip (arrow) or midpoint; bars in the legend; anything else at its last point. */\nfunction labelAt(s: PlotSeries): [number, number] | undefined {\n const pts = seriesPoints(s)\n if (!s.label || !pts.length || s.kind === 'bar') return undefined\n if (s.kind === 'segment' && !s.arrow) return [(pts[0][0] + pts[1][0]) / 2, (pts[0][1] + pts[1][1]) / 2]\n return pts[pts.length - 1]\n}\n\nexport function PlotView({ node, theme, style }: { node: Plot; theme: Theme; style?: React.CSSProperties }) {\n const clip = `gf-clip-${useId().replace(/[^\\w-]/g, '')}`\n const X = axis(node.x), Y = axis(node.y)\n const PW = node.compact ? COMPACT_W : PLOT_W, PH = node.compact ? COMPACT_H : PLOT_H\n const origin = node.axes === 'origin' || (node.axes !== 'corner' && !X.categories && !Y.categories && X.min < 0 && X.max > 0 && Y.min < 0 && Y.max > 0)\n const chars = (s: string) => s.length * CHAR_W\n\n // Gutters, counted: y tick labels + y axis label on the left, x ticks + x label below, the longest\n // label that runs past the right edge on the right.\n const left = Math.ceil(Math.max(...Y.ticks.map((t) => chars(Y.text(t))))) + TICK_GAP + 6 + (Y.label ? AXIS_LABEL : 0)\n const bottom = 30 + (X.label ? AXIS_LABEL : 0)\n const top = 14\n const sx = (v: number) => left + ((v - X.min) / (X.max - X.min)) * PW\n const sy = (v: number) => top + PH - ((v - Y.min) / (Y.max - Y.min)) * PH\n const overhang = Math.max(0, ...node.series.map((s) => {\n const at = labelAt(s)\n return at ? sx(at[0]) + 8 + chars(s.label!) - (left + PW) : 0\n }))\n const right = 16 + Math.ceil(overhang)\n const W = left + PW + right, H = top + PH + bottom\n\n const ax = origin ? sx(0) : left, ay = origin ? sy(0) : top + PH\n // The ramp advances only for series that use it, so a toned or construction series skips no colour.\n const rampAt = node.series.map((_, i) => node.series.slice(0, i).filter((q) => !q.tone && !construction(q)).length)\n const colour = (s: PlotSeries, i: number) =>\n construction(s) ? theme.muted : theme.tones[s.tone ?? RAMP[rampAt[i] % RAMP.length]].accent\n const legend = node.series.flatMap((s, i) => (s.kind === 'bar' && s.label ? [{ label: s.label, c: colour(s, i) }] : []))\n const base = sy(Math.max(Y.min, Math.min(0, Y.max)))\n const step = X.categories ? 1 : (X.ticks[1] ?? X.max) - (X.ticks[0] ?? X.min)\n\n return (\n <div className=\"gf-plot\" data-id={node.id} style={style}>\n {node.title && <div className=\"gf-table-title\">{node.title}</div>}\n <svg width={W} height={H} viewBox={`0 0 ${W} ${H}`} role=\"img\" aria-label={node.title ?? 'plot'}>\n <defs><clipPath id={clip}><rect x={left} y={top} width={PW} height={PH} /></clipPath></defs>\n {node.grid !== false && (\n <g className=\"gf-plot-grid\">\n {!X.categories && X.ticks.map((t) => <line key={`x${t}`} x1={sx(t)} x2={sx(t)} y1={top} y2={top + PH} />)}\n {Y.ticks.map((t) => <line key={`y${t}`} x1={left} x2={left + PW} y1={sy(t)} y2={sy(t)} />)}\n </g>\n )}\n <g className=\"gf-plot-axis\">\n <line x1={left} x2={left + PW} y1={ay} y2={ay} />\n <line x1={ax} x2={ax} y1={top} y2={top + PH} />\n </g>\n <g className=\"gf-plot-ticks\">\n {X.ticks.filter((t) => !(origin && t === 0)).map((t) => <text key={`x${t}`} x={sx(t)} y={ay + 20} textAnchor=\"middle\">{X.text(t)}</text>)}\n {Y.ticks.filter((t) => !(origin && t === 0)).map((t) => <text key={`y${t}`} x={ax - TICK_GAP} y={sy(t)} textAnchor=\"end\" dominantBaseline=\"middle\">{Y.text(t)}</text>)}\n {X.label && <text x={left + PW / 2} y={top + PH + bottom - 6} textAnchor=\"middle\" className=\"gf-plot-label\">{X.label}</text>}\n {Y.label && <text transform={`translate(14 ${top + PH / 2}) rotate(-90)`} textAnchor=\"middle\" dominantBaseline=\"middle\" className=\"gf-plot-label\">{Y.label}</text>}\n </g>\n <g clipPath={`url(#${clip})`}>\n {node.series.map((s, i) => {\n const c = colour(s, i), pts = seriesPoints(s)\n const d = pts.map(([x, y], j) => `${j ? 'L' : 'M'}${sx(x)},${sy(y)}`).join(' ')\n if (s.kind === 'area')\n return <g key={i}><path d={`${d} L${sx(pts[pts.length - 1][0])},${base} L${sx(pts[0][0])},${base} Z`} fill={c} fillOpacity={0.18} stroke=\"none\" /><path d={d} fill=\"none\" stroke={c} strokeWidth={2.5} /></g>\n if (s.kind === 'line') return <path key={i} d={d} fill=\"none\" stroke={c} strokeWidth={2.5} strokeDasharray={s.dashed ? '7 6' : undefined} strokeLinejoin=\"round\" />\n if (s.kind === 'scatter') return <g key={i}>{pts.map(([x, y], j) => <circle key={j} cx={sx(x)} cy={sy(y)} r={5} fill={c} />)}</g>\n if (s.kind === 'bar') {\n const n = node.series.filter((q) => q.kind === 'bar').length, k = node.series.slice(0, i).filter((q) => q.kind === 'bar').length\n const slot = ((sx(step) - sx(0)) * 0.7) / n\n return <g key={i}>{pts.map(([x, y], j) => <rect key={j} x={sx(x) - (slot * n) / 2 + k * slot} y={Math.min(sy(y), base)} width={slot - 2} height={Math.abs(base - sy(y))} fill={c} rx={2} />)}</g>\n }\n // segment: a construction or threshold line, dashed unless told otherwise; `arrow` makes it a vector.\n const [[x1, y1], [x2, y2]] = pts\n const a = Math.atan2(sy(y2) - sy(y1), sx(x2) - sx(x1)), L = 12\n const tip = [sx(x2), sy(y2)], back = [tip[0] - L * Math.cos(a), tip[1] - L * Math.sin(a)]\n return (\n <g key={i}>\n <line x1={sx(x1)} y1={sy(y1)} x2={s.arrow ? back[0] : tip[0]} y2={s.arrow ? back[1] : tip[1]} stroke={c} strokeWidth={construction(s) ? 1.75 : 2.5} strokeDasharray={s.dashed === false || s.arrow ? undefined : '7 6'} />\n {s.arrow && (x1 !== x2 || y1 !== y2) && (\n <polygon fill={c} points={[tip, [back[0] + 6 * Math.sin(a), back[1] - 6 * Math.cos(a)], [back[0] - 6 * Math.sin(a), back[1] + 6 * Math.cos(a)]].map((p) => p.join(',')).join(' ')} />\n )}\n </g>\n )\n })}\n </g>\n {legend.length > 0 && (\n <g className=\"gf-plot-labels\">\n {legend.map((l, i) => {\n const y = top + 18 + i * 22, x = left + PW - 12 - Math.max(...legend.map((q) => chars(q.label)))\n return <g key={i}><rect x={x - 20} y={y - 10} width={12} height={12} rx={2} fill={l.c} /><text x={x} y={y} dominantBaseline=\"middle\" fill={l.c}>{l.label}</text></g>\n })}\n </g>\n )}\n <g className=\"gf-plot-labels\">\n {node.series.map((s, i) => {\n const at = labelAt(s)\n // Above the point, but never above the area: a curve that ends at y.max would push it out.\n return at && <text key={i} x={sx(at[0]) + 8} y={Math.min(top + PH - 4, Math.max(top + 14, sy(at[1]) - 8))} fill={colour(s, i)}>{s.label}</text>\n })}\n </g>\n </svg>\n </div>\n )\n}\n","import { ChevronDown, ChevronRight, FileText, Folder } from 'lucide-react'\nimport type { CSSProperties } from 'react'\nimport { ICONS } from './icons'\nimport type { Theme } from './theme'\nimport type { Tree, TreeEntry } from './types'\n\n/** A file's default icon by extension. Anything unlisted draws a plain file. */\nconst BY_EXTENSION: Record<string, string> = { py: 'python', ipynb: 'jupyter', sql: 'database', tf: 'terraform', dockerfile: 'docker' }\nconst iconOf = (e: TreeEntry) => e.icon ?? BY_EXTENSION[e.name.toLowerCase().split('.').pop() ?? '']\n\ninterface Row { entry: TreeEntry; depth: number; path: string }\n\n/**\n * The entries a `tree` draws, depth-first, each with its PATH (`src/jobs/orders.py`). Shared with the\n * edge planner via `treeEntryIds`, like `tableRows` and `codeRows`: an entry is addressable as\n * `<tree id>.<path>`.\n */\nfunction treeRows(entries: TreeEntry[], depth = 0, prefix = ''): Row[] {\n return entries.flatMap((entry) => {\n const path = prefix ? `${prefix}/${entry.name}` : entry.name\n return [{ entry, depth, path }, ...(entry.children ? treeRows(entry.children, depth + 1, path) : [])]\n })\n}\n\nexport const treeEntryIds = (node: Tree): string[] => treeRows(node.entries).map((r) => `${node.id}.${r.path}`)\n\nexport function TreeView({ node, theme, style }: { node: Tree; theme: Theme; style?: CSSProperties }) {\n return (\n <div className=\"gf-tree\" data-id={node.id} style={style}>\n <div className=\"gf-tree-title\">{node.title ?? 'Explorer'}</div>\n <div className=\"gf-tree-body\">\n {treeRows(node.entries).map(({ entry, depth, path }) => {\n const folder = entry.folder ?? !!entry.children\n return (\n <div key={path} className=\"gf-tree-row\" data-id={`${node.id}.${path}`} data-state={entry.state} style={{ paddingLeft: 10 + depth * 16 }}>\n {/* A folder with listed children is open; one marked `folder` with none is collapsed. */}\n {!folder ? <span className=\"gf-tree-chev\" /> : entry.children?.length\n ? <ChevronDown size=\"0.9em\" className=\"gf-tree-chev\" aria-hidden /> : <ChevronRight size=\"0.9em\" className=\"gf-tree-chev\" aria-hidden />}\n {(() => {\n const draw = iconOf(entry) ? ICONS[iconOf(entry)!] : undefined\n return draw ? <span className=\"gf-tree-icon\">{draw('1.1em', theme.surface, theme.ink)}</span>\n : folder ? <Folder size=\"1.1em\" aria-hidden /> : <FileText size=\"1.1em\" aria-hidden />\n })()}\n <span className=\"gf-tree-name\">{entry.name}</span>\n {entry.note && <span className=\"gf-tree-note\">{entry.note}</span>}\n </div>\n )\n })}\n </div>\n </div>\n )\n}\n","import type { Edge } from './types'\n\n// Pure edge routing: measured node boxes in, orthogonal polylines out. No DOM here.\n\nexport interface Rect { x: number; y: number; w: number; h: number }\nexport interface Pt { x: number; y: number }\n/**\n * `index` is the edge's position in `scene.edges`; `axis` is the route's direction ('h' leaves a\n * left/right face). A label sits `on` its line, or `before`/`after` it (above/below a horizontal\n * segment, left/right of a vertical one) when its port shares a face with others.\n */\nexport interface Routed {\n edge: Edge; index: number; axis: 'h' | 'v'; points: Pt[]; label: Pt & { side: 'on' | 'before' | 'after'; seg: 'h' | 'v' }\n /** How many edges hold a slot in this edge's channel (0: none). The layout widens the gap for them. */\n slots: number\n}\ntype Face = 'left' | 'right' | 'top' | 'bottom'\n\n/** An edge ends this far OUTSIDE its node, so the arrowhead never touches the border. */\nexport const ANCHOR_OUTSET = 4\n/** Ports keep this far from a face's corners. */\nexport const PORT_INSET = 12\n/** Two ports closer than this on one face make the whole face spread evenly. */\nexport const PORT_MIN_GAP = 14\n/** The arrowhead's length (its marker is 10 user units): a slot keeps at least this run to each anchor. */\nexport const HEAD_LEN = 10\n/** Between two slots in one channel. */\nexport const SLOT_GAP = 8\n/**\n * The gap a channel needs for `n` slots: a full head's run at each end, outside each anchor, and\n * SLOT_GAP between neighbours. One slot needs 28 — inside EDGE_GAP — so only a SHARED channel grows.\n * Without it, three arrows fanning into one node through a 32px gap left a 4px last run, which the\n * 6px head trim reversed: the arrowhead pointed back into the gap (0.2, edge-fan-in).\n */\nexport const slotRoom = (n: number) => 2 * (ANCHOR_OUTSET + HEAD_LEN) + Math.max(0, n - 1) * SLOT_GAP\n\nconst centre = (r: Rect): Pt => ({ x: r.x + r.w / 2, y: r.y + r.h / 2 })\nconst horizontal = (f: Face) => f === 'left' || f === 'right'\n\n/**\n * Leave across the LARGER gap between the boxes; null when they overlap on both axes (nested).\n * `lateral` forces left/right: a table row is a slice of its table, so only its two ends are outside.\n */\nfunction facesOf(a: Rect, b: Rect, lateral: boolean): [Face, Face] | null {\n if (lateral) return centre(b).x >= centre(a).x ? ['right', 'left'] : ['left', 'right']\n const right = b.x - (a.x + a.w), left = a.x - (b.x + b.w)\n const down = b.y - (a.y + a.h), up = a.y - (b.y + b.h)\n const gx = Math.max(right, left), gy = Math.max(down, up)\n if (gx < 0 && gy < 0) return null\n if (gx >= gy) return right >= left ? ['right', 'left'] : ['left', 'right']\n return down >= up ? ['bottom', 'top'] : ['top', 'bottom']\n}\n\ninterface End { edge: number; side: 0 | 1; rect: Rect; face: Face; far: number; at: number; rank: number; count: number }\n\n/**\n * A face with ONE edge anchors at its centre. A face with several gives each a PORT that slides\n * toward the far end's centre (clamped PORT_INSET from the corners); if any two land within\n * PORT_MIN_GAP, the face spreads evenly in far-end order instead.\n */\nfunction placePorts(ends: End[]) {\n const byFace = new Map<string, End[]>()\n for (const e of ends) {\n const key = `${e.rect.x},${e.rect.y},${e.rect.w},${e.rect.h},${e.face}`\n byFace.set(key, [...(byFace.get(key) ?? []), e])\n }\n for (const group of byFace.values()) {\n const { rect, face } = group[0]\n const [start, len] = horizontal(face) ? [rect.y, rect.h] : [rect.x, rect.w]\n const lo = start + Math.min(PORT_INSET, len / 2), hi = start + len - Math.min(PORT_INSET, len / 2)\n if (group.length === 1) { group[0].at = start + len / 2; continue }\n group.sort((p, q) => p.far - q.far || p.edge - q.edge)\n group.forEach((e, i) => { e.rank = i; e.count = group.length })\n group.forEach((e) => (e.at = Math.min(hi, Math.max(lo, e.far))))\n if (group.some((e, i) => i > 0 && e.at - group[i - 1].at < PORT_MIN_GAP))\n group.forEach((e, i) => (e.at = lo + ((i + 1) * (hi - lo)) / (group.length + 1)))\n }\n}\n\nfunction anchor({ rect, face, at }: End): Pt {\n if (face === 'left') return { x: rect.x - ANCHOR_OUTSET, y: at }\n if (face === 'right') return { x: rect.x + rect.w + ANCHOR_OUTSET, y: at }\n if (face === 'top') return { x: at, y: rect.y - ANCHOR_OUTSET }\n return { x: at, y: rect.y + rect.h + ANCHOR_OUTSET }\n}\n\n/**\n * `sides[i]` names the two SIBLINGS edge i runs between — the children of its lowest common\n * ancestor that contain each end. The faces are chosen from THEIR boxes, not the nodes': two nested\n * nodes in adjacent columns can sit diagonally with a larger vertical gap, and choosing from them\n * would send the edge down through whatever lies between. The elbow sits in the CHANNEL — the gap\n * between those siblings, which the layout widened for it — not midway between the nodes, which for\n * nested nodes can fall inside a sibling; several users of one channel get a slot each. `lateral` ids (table rows) connect only through left/right.\n * Edges whose ids are unknown, or whose boxes overlap (a node and its own ancestor), are skipped.\n */\nexport function routeEdges(\n edges: Edge[], rects: Map<string, Rect>, sides: ([string, string] | undefined)[] = [], lateral: Set<string> = new Set(),\n): Routed[] {\n const ends: End[] = []\n // A channel is the gap between an edge's two sides: [lo, hi] along the route's axis.\n const channel: ({ key: string; lo: number; hi: number } | undefined)[] = []\n edges.forEach((edge, i) => {\n const a = rects.get(edge.from), b = rects.get(edge.to)\n const [sa, sb] = (sides[i] ?? [edge.from, edge.to]).map((id) => rects.get(id))\n const faces = a && b && sa && sb && facesOf(sa, sb, lateral.has(edge.from) || lateral.has(edge.to))\n if (!faces) return\n const [lo, hi] = faces[0] === 'right' ? [sa.x + sa.w, sb.x] : faces[0] === 'left' ? [sb.x + sb.w, sa.x]\n : faces[0] === 'bottom' ? [sa.y + sa.h, sb.y] : [sb.y + sb.h, sa.y]\n // Keyed by axis + bounds, NOT direction: driver → workers and workers → driver share one gap.\n channel[i] = hi > lo ? { key: `${horizontal(faces[0]) ? 'h' : 'v'}:${Math.round(lo)}:${Math.round(hi)}`, lo, hi } : undefined\n const axis = horizontal(faces[0]) ? 'y' : 'x'\n ends.push({ edge: i, side: 0, rect: a, face: faces[0], far: centre(b)[axis], at: 0, rank: 0, count: 1 })\n ends.push({ edge: i, side: 1, rect: b, face: faces[1], far: centre(a)[axis], at: 0, rank: 0, count: 1 })\n })\n placePorts(ends)\n\n // Pass 1: anchors, and whether each edge is straight or needs an elbow.\n const pairs = []\n for (let i = 0; i < ends.length; i += 2) {\n const [from, to] = ends[i].side === 0 ? [ends[i], ends[i + 1]] : [ends[i + 1], ends[i]]\n // Alone on both faces and the faces overlap: run straight across the middle of the overlap\n // rather than jog between two centres (a row of items of different heights).\n if (from.count === 1 && to.count === 1) {\n const span = (e: End) => (horizontal(e.face) ? [e.rect.y, e.rect.y + e.rect.h] : [e.rect.x, e.rect.x + e.rect.w])\n const [a0, a1] = span(from), [b0, b1] = span(to)\n const lo = Math.max(a0, b0), hi = Math.min(a1, b1)\n if (hi - lo >= 2 * PORT_INSET) from.at = to.at = (lo + hi) / 2\n }\n const s = anchor(from), t = anchor(to)\n const straight = horizontal(from.face) ? Math.abs(s.y - t.y) < 0.5 : Math.abs(s.x - t.x) < 0.5\n pairs.push({ from, to, s, t, straight })\n }\n\n // Pass 2: SLOTS. Everything that lands mid-channel — an elbow's cross segment, a straight edge's\n // label — would land on the same line, and a dashed back edge ran under the 'tasks' label that way.\n // Each user of a channel gets its own slot, evenly spaced, in edge order (deterministic).\n const slot = new Map<number, number>()\n const users = new Map<string, number[]>()\n for (const { from, straight } of pairs) {\n const c = channel[from.edge]\n if (c && (!straight || edges[from.edge].label)) users.set(c.key, [...(users.get(c.key) ?? []), from.edge])\n }\n const shared = new Map<number, number>()\n for (const list of users.values()) {\n list.sort((a, b) => a - b)\n const { lo, hi } = channel[list[0]]!\n // Evenly spaced across the channel — unless that puts an end slot within a head's length of an\n // anchor, when they spread over the part that keeps every run at least HEAD_LEN. The layout widens\n // a shared channel to slotRoom(n), so that part always holds them SLOT_GAP apart.\n const inLo = lo + ANCHOR_OUTSET + HEAD_LEN, inHi = hi - ANCHOR_OUTSET - HEAD_LEN, n = list.length\n const even = (k: number) => lo + ((k + 1) * (hi - lo)) / (n + 1)\n const fits = even(0) >= inLo && even(n - 1) <= inHi\n list.forEach((e, k) => {\n slot.set(e, fits || n === 1 ? even(k) : inLo + (k * Math.max(0, inHi - inLo)) / (n - 1))\n shared.set(e, n)\n })\n }\n\n const routed: Routed[] = []\n for (const { from, s, t } of pairs) {\n let points: Pt[]\n if (horizontal(from.face)) {\n const mx = slot.get(from.edge) ?? (s.x + t.x) / 2\n points = Math.abs(s.y - t.y) < 0.5 ? [s, { x: t.x, y: s.y }] : [s, { x: mx, y: s.y }, { x: mx, y: t.y }, t]\n } else {\n const my = slot.get(from.edge) ?? (s.y + t.y) / 2\n points = Math.abs(s.x - t.x) < 0.5 ? [s, { x: s.x, y: t.y }] : [s, { x: s.x, y: my }, { x: t.x, y: my }, t]\n }\n const [p, q] = points.length === 4 ? [points[1], points[2]] : points\n const mid = (from.count - 1) / 2\n const side = from.count === 1 || from.rank === mid ? 'on' : from.rank < mid ? 'before' : 'after'\n const seg = p.y === q.y ? 'h' : 'v'\n // A straight edge's label sits at its slot (if it has one), so it never shares a line with an elbow.\n const at = slot.get(from.edge)\n const label = points.length === 2 && at !== undefined\n ? (horizontal(from.face) ? { x: at, y: p.y } : { x: p.x, y: at }) : { x: (p.x + q.x) / 2, y: (p.y + q.y) / 2 }\n routed.push({ edge: edges[from.edge], index: from.edge, axis: horizontal(from.face) ? 'h' : 'v', points, label: { ...label, side, seg }, slots: shared.get(from.edge) ?? 0 })\n }\n return routed\n}\n","export interface Size { w: number; h: number }\nexport interface Fit { scale: number; x: number; y: number }\n\n/** Margin on each side, as a fraction of the pane's own axis. */\nexport const FIT_PADDING = 0.04\nexport const MIN_SCALE = 0.05\n/** A small scene stops growing here, so it still reads as a diagram, not a poster. */\nexport const MAX_SCALE = 4\n\n/**\n * The fit is a PURE function of the pane and the content's natural size — no async, no history.\n * That is what makes recordings reproducible: two frames whose scenes have the same natural box get\n * the same scale and put every panel at the same pixels.\n */\nexport function fitTransform(pane: Size, content: Size): Fit {\n if (!content.w || !content.h) return { scale: 1, x: 0, y: 0 }\n const raw = Math.min((pane.w * (1 - 2 * FIT_PADDING)) / content.w, (pane.h * (1 - 2 * FIT_PADDING)) / content.h)\n const scale = Math.min(MAX_SCALE, Math.max(MIN_SCALE, raw))\n return { scale, x: (pane.w - content.w * scale) / 2, y: (pane.h - content.h * scale) / 2 }\n}\n","import type { ThemeKey, Tone } from './types'\n\n// A theme owns the SHADE; a tone owns the HUE FAMILY, identical in every theme.\n// Values stay 6-digit hex so they can be concatenated with alpha later.\n\nexport interface ToneColors { accent: string; tint: string }\n\n/** The code surface and its seven token colours — one set per theme, shared by every language. */\nexport interface CodeColors { bg: string; bar: string; gutter: string; var: string; method: string; keyword: string; string: string; number: string; punct: string; comment: string }\n\nexport interface Theme {\n bg: string\n surface: string\n line: string\n ink: string\n muted: string\n edge: string\n pulse: string\n tones: Record<Tone, ToneColors>\n code: CodeColors\n}\n\n// `bg` is the PLATFORM canvas — @graphlearning/shell's `--bg` (#1a1d23 / #f7f8fa) — so a scene sits\n// seamlessly in the shell's frame. Change one and the other shows an edge round every scene.\nexport const THEMES: Record<ThemeKey, Theme> = {\n dark: {\n bg: '#1a1d23', surface: '#22262e', line: '#2f343d', ink: '#eef2f8', muted: '#9aa4b2', edge: '#7d8796', pulse: '#7dd3fc',\n tones: {\n neutral: { accent: '#9aa4b2', tint: '#181b20' },\n source: { accent: '#a3adbb', tint: '#1b1e24' },\n ingest: { accent: '#4f8ff7', tint: '#111d2e' },\n store: { accent: '#37b877', tint: '#122419' },\n serve: { accent: '#c98bff', tint: '#1e1428' },\n consume: { accent: '#f0656f', tint: '#2a1416' },\n infra: { accent: '#f0902f', tint: '#241c12' },\n },\n code: {\n bg: '#0e1420', bar: '#131b29', gutter: '#4f5a6c', var: '#eceef2', method: '#5b8cff', keyword: '#b98bff',\n string: '#37d39a', number: '#ff7a59', punct: '#8b909c', comment: '#6b748b',\n },\n },\n light: {\n bg: '#f7f8fa', surface: '#ffffff', line: '#d9dee5', ink: '#1b1f24', muted: '#5a6675', edge: '#6b7686', pulse: '#0284c7',\n tones: {\n neutral: { accent: '#5a6675', tint: '#f3f5f8' },\n source: { accent: '#4b5563', tint: '#f1f2f4' },\n ingest: { accent: '#1f5fc4', tint: '#e8effc' },\n store: { accent: '#177a4a', tint: '#e7f7ee' },\n serve: { accent: '#7b3fbf', tint: '#f3eafd' },\n consume: { accent: '#c0303c', tint: '#fdeaec' },\n infra: { accent: '#b4610f', tint: '#fdf1e4' },\n },\n code: {\n bg: '#f6f8fb', bar: '#eceff4', gutter: '#9aa4b2', var: '#1b1f24', method: '#1f5fc4', keyword: '#7b3fbf',\n string: '#177a4a', number: '#b4500f', punct: '#5a6675', comment: '#7a8494',\n },\n },\n}\n","import { useEffect, useLayoutEffect, useMemo, useRef, useState, type CSSProperties } from 'react'\nimport { ICONS } from './icons'\nimport { Edges } from './Edges'\nimport { TableView, tableRows } from './Table'\nimport { CodeView, codeLineIds } from './Code'\nimport { PlotView } from './Plot'\nimport { TreeView, treeEntryIds } from './Tree'\nimport { routeEdges, slotRoom, type Rect } from './routing'\nimport { fitTransform, type Size } from './fit'\nimport { THEMES, type Theme } from './theme'\nimport type { Group, Item, Scene as SceneModel, SceneNode, ThemeKey } from './types'\n\n// Layout is CSS grid all the way down: a row is N auto columns (one per non-spanning child),\n// a col is one, a grid is `cols`. `span: 'all'` runs 1 / -1. Grid — not flex — because a\n// spanning child must not change the natural width the fit will later scale.\n\ntype Dir = 'row' | 'col' | 'grid'\n\n/**\n * The gap an arrow is drawn in. A body whose children an edge runs BETWEEN gets at least EDGE_GAP;\n * on the axis a LABELLED edge crosses it, the label's measured size plus LABEL_ROOM a side; and where\n * several edges share the channel, slotRoom(n) — a slot each and a full arrowhead's run at both ends.\n */\nconst GAP = 10\nconst EDGE_GAP = 32\nconst LABEL_ROOM = 24\n\ntype Gaps = Record<string, { col: number; row: number }>\n\nfunction bodyStyle(dir: Dir, children: SceneNode[], cols: number | undefined, gap?: { col: number; row: number }): CSSProperties {\n const n = dir === 'grid' ? cols ?? 2 : dir === 'row' ? Math.max(1, children.filter((c) => c.span !== 'all').length) : 1\n return { gridTemplateColumns: `repeat(${n}, auto)`, columnGap: gap?.col ?? GAP, rowGap: gap?.row ?? GAP }\n}\n\n/**\n * Each edge's lowest common ancestor ('' for the scene root) — the body it runs across — and the two\n * children of it that hold its ends, which the router picks faces from. Derived from the scene, never\n * authored, so spacing stays declarative. undefined = not drawable.\n */\ntype Crossing = { body: string; sides: [string, string] } | undefined\n\nfunction edgeBodies(scene: SceneModel): Crossing[] {\n const parent = new Map<string, string>()\n // A table's rows are its children for edge planning: `main.list` sits under `main`.\n const walk = (nodes: SceneNode[], p: string) => nodes.forEach((n) => {\n parent.set(n.id, p)\n if (n.type === 'group') walk(n.children, n.id)\n for (const id of lateralIdsOf(n)) parent.set(id, n.id)\n })\n walk(scene.nodes, '')\n const chain = (id: string) => { const out = [id]; while (parent.has(out.at(-1)!)) out.push(parent.get(out.at(-1)!)!); return out }\n return (scene.edges ?? []).map((e) => {\n if (!parent.has(e.from) || !parent.has(e.to)) return undefined\n const from = chain(e.from), to = chain(e.to)\n const lca = from.find((id) => to.includes(id))\n if (lca === undefined || lca === e.from || lca === e.to) return undefined\n const below = (c: string[]) => c[c.indexOf(lca) - 1]\n return { body: lca, sides: [below(from), below(to)] }\n })\n}\n\n/** A leaf's addressable slices — table rows, code lines. Each is a child of its leaf for planning. */\nconst lateralIdsOf = (n: SceneNode): string[] =>\n n.type === 'table' ? tableRows(n).flatMap((r) => (r.address ? [r.address] : []))\n : n.type === 'code' ? codeLineIds(n) : n.type === 'tree' ? treeEntryIds(n) : []\n\n/** Every slice id — the ends the router may connect only through left/right (their top and bottom are inside). */\nfunction lateralIds(nodes: SceneNode[], out = new Set<string>()): Set<string> {\n for (const n of nodes) {\n if (n.type === 'group') lateralIds(n.children, out)\n for (const id of lateralIdsOf(n)) out.add(id)\n }\n return out\n}\n\nfunction baseGaps(bodies: Crossing[]): Gaps {\n const out: Gaps = {}\n for (const b of bodies) if (b) out[b.body] = { col: EDGE_GAP, row: EDGE_GAP }\n return out\n}\n\nconst toneVars = (theme: Theme, node: SceneNode): CSSProperties | undefined =>\n node.tone && ({ '--gf-accent': theme.tones[node.tone].accent, '--gf-tint': theme.tones[node.tone].tint } as CSSProperties)\n\n/** Placement shared by every node: span, the min-size floors, and `fill` (stretch instead of hug). */\nconst spanStyle = (node: SceneNode): CSSProperties => {\n const minW = node.w ?? node.minW, maxW = node.w ?? node.maxW, minH = node.h ?? node.minH, maxH = node.h ?? node.maxH\n return {\n ...(node.span === 'all' && { gridColumn: '1 / -1' }),\n ...(minW !== undefined && { minWidth: minW }),\n ...(maxW !== undefined && { maxWidth: maxW }),\n ...(minH !== undefined && { minHeight: minH }),\n ...(maxH !== undefined && { maxHeight: maxH }),\n ...(node.fill && { justifySelf: 'stretch', alignSelf: 'stretch' }),\n }\n}\n\nfunction ItemView({ node, theme }: { node: Item; theme: Theme }) {\n const draw = node.icon ? ICONS[node.icon] : undefined\n return (\n <div className=\"gf-item\" data-id={node.id} data-stack={node.stack || undefined} data-chip={node.chip || undefined} style={{ ...toneVars(theme, node), ...spanStyle(node) }}>\n {/* Icon sizes are multiples of the item's text (16px): row 2em, card 3em, chip 1.15em. */}\n {draw?.(node.stack ? '3em' : node.chip ? '1.15em' : '2em', theme.surface, theme.ink)}\n <div>\n <div className=\"gf-item-title\">{node.title}</div>\n {node.sub && <div className=\"gf-item-sub\">{node.sub}</div>}\n {node.bullets && <ul className=\"gf-bullets\">{node.bullets.map((b) => <li key={b}>{b}</li>)}</ul>}\n </div>\n </div>\n )\n}\n\nfunction GroupView({ node, theme, gaps }: { node: Group; theme: Theme; gaps: Gaps }) {\n // A notebook cell: the `[n]` gutter beside a body that stacks the input and its outputs.\n if (node.cell != null) return (\n <div className=\"gf-group\" data-id={node.id} data-cell style={{ ...toneVars(theme, node), ...spanStyle(node) }}>\n <div className=\"gf-cell-n\">[{node.cell === true ? ' ' : node.cell}]</div>\n <div className=\"gf-body\" style={bodyStyle('col', node.children, undefined, gaps[node.id])}>\n {node.children.map((c) => <NodeView key={c.id} node={c} theme={theme} gaps={gaps} />)}\n </div>\n </div>\n )\n return (\n <div className=\"gf-group\" data-id={node.id} data-bare={node.bare || undefined} data-toned={node.tone || undefined} data-spread={node.spread || undefined} style={{ ...toneVars(theme, node), ...spanStyle(node) }}>\n {(node.title || node.badge != null) && (\n <div className=\"gf-group-head\">\n <div className=\"gf-group-title\">\n {node.badge != null && <span className=\"gf-badge\">{node.badge}</span>}\n {node.icon && ICONS[node.icon]?.('1.25em', theme.surface, theme.ink)}\n {node.title}\n </div>\n {node.sub && <div className=\"gf-group-sub\">{node.sub}</div>}\n </div>\n )}\n <div className=\"gf-body\" style={bodyStyle(node.dir ?? 'col', node.children, node.cols, gaps[node.id])}>\n {node.children.map((c) => <NodeView key={c.id} node={c} theme={theme} gaps={gaps} />)}\n </div>\n </div>\n )\n}\n\nfunction NodeView({ node, theme, gaps }: { node: SceneNode; theme: Theme; gaps: Gaps }) {\n if (node.type === 'group') return <GroupView node={node} theme={theme} gaps={gaps} />\n if (node.type === 'table') return <TableView node={node} theme={theme} style={{ ...toneVars(theme, node), ...spanStyle(node) }} />\n if (node.type === 'code') return <CodeView node={node} style={{ ...toneVars(theme, node), ...spanStyle(node) }} />\n if (node.type === 'plot') return <PlotView node={node} theme={theme} style={{ ...toneVars(theme, node), ...spanStyle(node) }} />\n if (node.type === 'tree') return <TreeView node={node} theme={theme} style={{ ...toneVars(theme, node), ...spanStyle(node) }} />\n if (node.type === 'note') return <div className=\"gf-note\" data-id={node.id} style={{ ...toneVars(theme, node), ...spanStyle(node) }}>{node.text}</div>\n return <ItemView node={node} theme={theme} />\n}\n\n/**\n * `focus` names one node (any id, a table row or a code line included) to single out: it gets a\n * ring and a glow, drawn with box-shadow so the layout — and therefore the fit — never moves. That is\n * what lets every section of a course focus a different node on the same scene without a jump.\n *\n * Fills its parent (give the parent a size) and scales the scene's natural box to fit, centred.\n * The viewport is locked: no wheel or drag handlers, so page scroll passes through and text stays\n * selectable. `data-fit=\"ready\"` marks the first fit after fonts load with edges routed — what a recorder waits on.\n */\nexport function Scene({ scene, theme: key = 'dark', focus }: { scene: SceneModel; theme?: ThemeKey; focus?: string }) {\n const t = THEMES[key]\n const bodies = useMemo(() => edgeBodies(scene), [scene])\n const rowIds = useMemo(() => lateralIds(scene.nodes), [scene])\n\n // An edge naming an id the scene does not have is an authoring error, never a silent skip.\n useEffect(() => {\n const known = new Set<string>(rowIds)\n const walk = (nodes: SceneNode[]): void => nodes.forEach((n) => { known.add(n.id); if (n.type === 'group') walk(n.children) })\n walk(scene.nodes)\n for (const e of scene.edges ?? [])\n for (const id of [e.from, e.to]) if (!known.has(id)) console.error(`graphl-flow: edge ${e.from} → ${e.to} names unknown id \"${id}\"`)\n }, [scene, rowIds])\n const [gaps, setGaps] = useState<Gaps>(() => baseGaps(bodies))\n const [gapsSettled, setGapsSettled] = useState(false)\n const pane = useRef<HTMLDivElement>(null)\n const content = useRef<HTMLDivElement>(null)\n const [sizes, setSizes] = useState<{ pane: Size; content: Size } | null>(null)\n const [fontsReady, setFontsReady] = useState(false)\n const [rects, setRects] = useState<Map<string, Rect> | null>(null)\n\n // offsetWidth/Height are layout sizes, untouched by the transform we apply.\n const measure = () => {\n const p = pane.current, c = content.current\n if (!p || !c) return\n const next = { pane: { w: p.offsetWidth, h: p.offsetHeight }, content: { w: c.offsetWidth, h: c.offsetHeight } }\n setSizes((prev) =>\n prev && prev.pane.w === next.pane.w && prev.pane.h === next.pane.h && prev.content.w === next.content.w && prev.content.h === next.content.h\n ? prev : next)\n }\n useLayoutEffect(measure, [scene, key, gaps])\n\n // Focus is an attribute on whatever element carries the id — a node, a row, a line — so it reaches\n // every addressable thing without each renderer knowing about it. No layout effect.\n useLayoutEffect(() => {\n const c = content.current\n if (!c) return\n c.querySelectorAll('[data-focus]').forEach((e) => e.removeAttribute('data-focus'))\n if (focus) c.querySelector(`[data-id=\"${CSS.escape(focus)}\"]`)?.setAttribute('data-focus', '')\n }, [focus, scene])\n\n // Node boxes in the content's natural coordinates: undo the fit by dividing out its scale.\n // Re-measured whenever the content's size, the fonts or the scene change.\n useLayoutEffect(() => {\n const c = content.current\n if (!c || !sizes) return\n const box = c.getBoundingClientRect()\n const s = box.width / c.offsetWidth || 1\n const next = new Map<string, Rect>()\n for (const el of c.querySelectorAll<HTMLElement>('[data-id]')) {\n const r = el.getBoundingClientRect()\n next.set(el.dataset.id!, { x: (r.left - box.left) / s, y: (r.top - box.top) / s, w: r.width / s, h: r.height / s })\n }\n setRects((prev) => (prev && JSON.stringify([...prev]) === JSON.stringify([...next]) ? prev : next))\n }, [sizes?.content.w, sizes?.content.h, fontsReady, scene, gaps])\n\n // Second pass: widen each labelled edge's body to its label's measured size (offsetWidth/Height\n // are untransformed). Label sizes do not depend on the gaps, so this settles in one more layout.\n useLayoutEffect(() => {\n const c = content.current\n if (!c || !rects) return\n const need = baseGaps(bodies)\n // A channel several edges share needs room for a slot each AND a full head's run at both ends\n // (slotRoom): three arrows into one node through a 32px gap once flipped an arrowhead.\n for (const r of routed) {\n const body = bodies[r.index]?.body\n if (body === undefined || r.slots < 2) continue\n if (r.axis === 'h') need[body].col = Math.max(need[body].col, slotRoom(r.slots))\n else need[body].row = Math.max(need[body].row, slotRoom(r.slots))\n }\n for (const el of c.querySelectorAll<HTMLElement>('.gf-edge-label')) {\n const i = Number(el.dataset.edge), body = bodies[i]?.body, r = routed.find((x) => x.index === i)\n if (body === undefined || !r) continue\n if (r.axis === 'h') need[body].col = Math.max(need[body].col, el.offsetWidth + 2 * LABEL_ROOM)\n else need[body].row = Math.max(need[body].row, el.offsetHeight + 2 * LABEL_ROOM)\n }\n const same = JSON.stringify(need) === JSON.stringify(gaps)\n if (!same) setGaps(need)\n setGapsSettled(same)\n }, [rects, gaps, bodies])\n\n useEffect(() => {\n const ro = new ResizeObserver(measure)\n ro.observe(pane.current!)\n ro.observe(content.current!)\n let live = true\n document.fonts.ready.then(() => { if (live) { measure(); setFontsReady(true) } })\n return () => { live = false; ro.disconnect() }\n }, [])\n\n const fit = sizes && fitTransform(sizes.pane, sizes.content)\n const routed = rects && scene.edges?.length ? routeEdges(scene.edges, rects, bodies.map((b) => b?.sides), rowIds) : []\n const vars = {\n '--gf-bg': t.bg, '--gf-surface': t.surface, '--gf-line': t.line, '--gf-ink': t.ink, '--gf-muted': t.muted, '--gf-edge': t.edge, '--gf-pulse': t.pulse, '--gf-ok': t.tones.store.accent, '--gf-err': t.tones.consume.accent,\n ...Object.fromEntries(Object.entries(t.code).map(([k, v]) => [`--gf-code-${k}`, v])),\n '--gf-accent': t.tones.neutral.accent, '--gf-tint': t.tones.neutral.tint,\n } as CSSProperties\n return (\n <div ref={pane} className=\"gf-scene\" data-theme={key} data-fit={fit && fontsReady && rects && gapsSettled ? 'ready' : 'pending'} style={vars}>\n <div\n ref={content}\n className=\"gf-content\"\n style={fit ? { transform: `translate(${fit.x}px, ${fit.y}px) scale(${fit.scale})` } : { visibility: 'hidden' }}\n >\n {scene.title && <div className=\"gf-scene-title\">{scene.title}</div>}\n {scene.sub && <div className=\"gf-scene-sub\">{scene.sub}</div>}\n <div className=\"gf-body\" style={bodyStyle(scene.dir ?? 'col', scene.nodes, undefined, gaps[''])}>\n {scene.nodes.map((n) => <NodeView key={n.id} node={n} theme={t} gaps={gaps} />)}\n </div>\n {sizes && <Edges routed={routed} size={sizes.content} pulse={scene.pulse !== false} />}\n </div>\n </div>\n )\n}\n"],"names":["EventHubs","size","props","_jsxs","_jsx","StreamAnalyticsJobs","AzureSynapseAnalytics","PowerBIEmbedded","DataFactories","AnalysisServices","AzureDatabricks","VirtualMachine","KubernetesServices","FunctionApps","AzureSQL","AzurePurviewAccounts","AzureCosmosDB","AzureDevOps","AzureServiceBus","LogAnalyticsWorkspaces","Monitor","MicrosoftDefenderForCloud","KeyVaults","StorageAccounts","DataLakeStorageGen1","_extends","a","b","c","d","React","require$$0","ArchitectureServiceAmazonSimpleStorageService","ArchitectureServiceAWSGlue","ArchitectureServiceAmazonRedshift","ArchitectureServiceAmazonAthena","ArchitectureServiceAmazonKinesis","ArchitectureServiceAmazonDataFirehose","ArchitectureServiceAmazonEMR","ArchitectureServiceAWSLambda","ArchitectureServiceAmazonDynamoDB","ArchitectureServiceAmazonRDS","ArchitectureServiceAmazonAurora","ArchitectureServiceAmazonCloudWatch","ArchitectureServiceAWSIdentityandAccessManagement","ArchitectureServiceAmazonManagedStreamingforApacheKafka","ArchitectureServiceAWSLakeFormation","ArchitectureServiceAmazonEC2","ArchitectureServiceAmazonSimpleQueueService","ArchitectureServiceAmazonSimpleNotificationService","ArchitectureServiceAWSStepFunctions","ArchitectureServiceAmazonEventBridge","ArchitectureServiceAWSKeyManagementService","ArchitectureServiceAWSSecretsManager","ArchitectureServiceAmazonElasticKubernetesService","ArchitectureServiceAmazonSageMaker","ArchitectureServiceAmazonAPIGateway","ArchitectureServiceAmazonVirtualPrivateCloud","ArchitectureServiceAWSCloudFormation","ArchitectureServiceAmazonManagedWorkflowsforApacheAirflow","ArchitectureServiceAWSDatabaseMigrationService","ArchitectureServiceAmazonElastiCache","t","siApacheairflow","siApacheflink","siApachekafka","siApachespark","siDocker","siDuckdb","siGit","siGithub","siGithubactions","siGrafana","siJupyter","siKubernetes","siMongodb","siPandas","siPostgresql","siPrometheus","siPython","siSnowflake","siTerraform","LUCIDE","Activity","Bell","Box","Building2","ChartColumn","ChartPie","ClipboardCheck","Clock","Cloud","Code2","Cpu","CreditCard","Database","Factory","FileText","Filter","Fingerprint","Folder","GitBranch","Globe","HardDrive","KeyRound","Layers","Lock","Network","Package","RadioTower","Search","Server","Settings","ShieldCheck","Table2","Terminal","User","UserCog","Users","Workflow","Zap","Waves","Brain","Boxes","MemoryStick","AZURE","DataFactoriesAnalytics","EventHubsAnalytics","AzureSynapseAnalyticsAnalytics","MonitorMonitor","LogAnalyticsWorkspacesManagementGovernance","AzureCosmosDBDatabases","FunctionAppsCompute","KubernetesServicesCompute","StreamAnalyticsJobsAnalytics","AWS","S3","Glue","Redshift","Athena","Kinesis","Firehose","EMR","Lambda","DynamoDB","RDS","Aurora","CloudWatch","IAM","MSK","LakeFormation","EC2","SQS","SNS","StepFunctions","EventBridge","KMS","SecretsManager","EKS","SageMaker","APIGateway","VPC","CloudFormation","MWAA","DMS","ElastiCache","BRAND","merge","sets","out","set","k","v","map","draw","luminance","hex","i","BRAND_MIN_CONTRAST","brandFill","surface","ink","ICONS","Icon","jsx","PULSE_S","HEAD_TRIM","trim","points","start","end","p","pull","pathOf","LABEL_SHIFT","Edges","routed","pulse","uid","useId","arrow","glow","dot","reverse","jsxs","Fragment","r","PLAIN","tableRows","table","rows","firsts","own","tint","theme","tone","TableView","node","style","tagged","width","_a","_","j","KEYWORDS","COMMENT","escape","s","tokenize","src","lang","token","afterDot","text","ws","comment","str","num","word","cls","dedent","lines","indent","l","codeRows","keep","codeLineIds","foldLabel","n","CodeView","lit","row","kind","Toks","PLOT_W","PLOT_H","COMPACT_W","COMPACT_H","CHAR_W","TICK_GAP","AXIS_LABEL","RAMP","niceStep","span","raw","mag","decimals","step","axis","min","max","ticks","seriesPoints","construction","labelAt","pts","PlotView","clip","X","Y","PW","PH","origin","chars","left","bottom","top","sx","sy","overhang","at","right","W","H","ax","ay","rampAt","q","colour","legend","base","x","y","slot","x1","y1","x2","y2","L","tip","back","BY_EXTENSION","iconOf","treeRows","entries","depth","prefix","entry","path","treeEntryIds","TreeView","folder","ChevronDown","ChevronRight","ANCHOR_OUTSET","PORT_INSET","PORT_MIN_GAP","HEAD_LEN","SLOT_GAP","slotRoom","centre","horizontal","f","facesOf","lateral","down","up","gx","gy","placePorts","ends","byFace","e","key","group","rect","face","len","lo","hi","anchor","routeEdges","edges","rects","sides","channel","edge","sa","sb","id","faces","pairs","from","to","a0","a1","b0","b1","straight","users","shared","list","inLo","inHi","even","fits","mx","my","mid","side","seg","label","FIT_PADDING","MIN_SCALE","MAX_SCALE","fitTransform","pane","content","scale","THEMES","GAP","EDGE_GAP","LABEL_ROOM","bodyStyle","dir","children","cols","gap","edgeBodies","scene","parent","walk","nodes","lateralIdsOf","chain","lca","below","lateralIds","baseGaps","bodies","toneVars","spanStyle","minW","maxW","minH","maxH","ItemView","GroupView","gaps","NodeView","Scene","focus","useMemo","rowIds","useEffect","known","setGaps","useState","gapsSettled","setGapsSettled","useRef","sizes","setSizes","fontsReady","setFontsReady","setRects","measure","next","prev","useLayoutEffect","box","el","need","body","_b","same","ro","live","fit","vars"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51]}
|