@datatechsolutions/ui 2.11.48 → 2.11.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/astrlabe/contracts.d.mts +309 -0
- package/dist/astrlabe/contracts.d.ts +309 -0
- package/dist/astrlabe/graph-node.d.mts +28 -0
- package/dist/astrlabe/graph-node.d.ts +28 -0
- package/dist/astrlabe/index.d.mts +749 -0
- package/dist/astrlabe/index.d.ts +749 -0
- package/dist/astrlabe/index.js +143 -143
- package/dist/astrlabe/index.mjs +6 -6
- package/dist/astrlabe/utils.d.mts +71 -0
- package/dist/astrlabe/utils.d.ts +71 -0
- package/dist/astrlabe/workflow-canvas.d.mts +5 -0
- package/dist/astrlabe/workflow-canvas.d.ts +5 -0
- package/dist/astrlabe/workflow-canvas.js +4 -4
- package/dist/astrlabe/workflow-canvas.mjs +3 -3
- package/dist/astrlabe/workflow-preview-canvas.d.mts +10 -0
- package/dist/astrlabe/workflow-preview-canvas.d.ts +10 -0
- package/dist/brand/index.d.mts +99 -0
- package/dist/brand/index.d.ts +99 -0
- package/dist/brand/index.js +14 -0
- package/dist/brand/index.js.map +1 -1
- package/dist/brand/index.mjs +14 -0
- package/dist/brand/index.mjs.map +1 -1
- package/dist/{chunk-XDS3RWPA.mjs → chunk-DFOPQKPU.mjs} +12 -16
- package/dist/chunk-DFOPQKPU.mjs.map +1 -0
- package/dist/{chunk-MDD6H63O.mjs → chunk-DNGI4ASL.mjs} +3 -3
- package/dist/{chunk-MDD6H63O.mjs.map → chunk-DNGI4ASL.mjs.map} +1 -1
- package/dist/{chunk-2IOPJ5BM.js → chunk-KEUOCEOO.js} +3 -3
- package/dist/{chunk-2IOPJ5BM.js.map → chunk-KEUOCEOO.js.map} +1 -1
- package/dist/{chunk-NWELMK3Y.js → chunk-YDZRHVCW.js} +61 -65
- package/dist/chunk-YDZRHVCW.js.map +1 -0
- package/dist/dynamic-island-confirm-Bw24Ll2r.d.mts +114 -0
- package/dist/dynamic-island-confirm-Bw24Ll2r.d.ts +114 -0
- package/dist/index.d.mts +4673 -0
- package/dist/index.d.ts +4673 -0
- package/dist/index.js +718 -718
- package/dist/index.mjs +2 -2
- package/dist/lib/i18n-context.d.mts +36 -0
- package/dist/lib/i18n-context.d.ts +36 -0
- package/dist/lib/router-context.d.mts +35 -0
- package/dist/lib/router-context.d.ts +35 -0
- package/dist/workflow-canvas-D4928AfA.d.mts +273 -0
- package/dist/workflow-canvas-NSxfr5dy.d.ts +273 -0
- package/package.json +1 -1
- package/dist/chunk-NWELMK3Y.js.map +0 -1
- package/dist/chunk-XDS3RWPA.mjs.map +0 -1
package/dist/astrlabe/index.mjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import
|
|
3
|
-
export {
|
|
4
|
-
import {
|
|
5
|
-
|
|
2
|
+
import '../chunk-JB6RNAD2.mjs';
|
|
3
|
+
export { topologicalSortAgents, validateWorkflowGraph } from '../chunk-BLNXRUC4.mjs';
|
|
4
|
+
import { Workspace, useModalStore, CATEGORY_COLORS, CATEGORY_PILL_COLORS, ICON_MAP, WorkflowCanvas, getEntityIcon, getEntityGradient, useWorkflowStore, LOGIC_ICON_MAP, LOGIC_NODE_GRADIENTS, getFrameworkMeta, getCompatibleModels, isModelCompatibleWithFramework, FRAMEWORK_META, isFrameworkCompatibleWithProviders } from '../chunk-DFOPQKPU.mjs';
|
|
5
|
+
export { AgentFlowNode, AgentToolFlowNode, AnswerFlowNode, AnthropicIcon, CodeFlowNode, CrewAIIcon, DocumentExtractorFlowNode, EndFlowNode, EntityFlowNode, FRAMEWORK_META, GoogleADKIcon, GroupFlowNode, HttpRequestFlowNode, IfElseFlowNode, IterationFlowNode, IterationStartFlowNode, KnowledgeBaseFlowNode, LOGIC_ICON_MAP, LOGIC_NODE_BADGE_COLORS, LOGIC_NODE_GRADIENTS, LOGIC_NODE_HANDLE_COLORS, LangChainIcon, ListOperatorFlowNode, LogicNodeModal, MINIMAP_NODE_COLORS, ModelProviderFlowNode, NODE_EXECUTION_ACCENT_COLORS, NodeCard, NodeContextMenu, NoteFlowNode, OpenAIIcon, PanelContextMenu, ParameterExtractorFlowNode, QuestionClassifierFlowNode, RuleFlowNode, SelectionContextMenu, StartFlowNode, StrandsIcon, TemplateTransformFlowNode, ToolFlowNode, VariableAggregatorFlowNode, VariableAssignerFlowNode, WorkflowBuilderProvider, Workspace, getCompatibleModels, getDefaultFrameworkForModel, getEntityBadgeColor, getEntityGradient, getEntityHandleColor, getEntityIcon, getEntityMinimapColor, getFrameworkMeta, getNodeExecutionAccent, getNodeExecutionAccentRgb, isModelCompatibleWithFramework, useModalStore, useWorkflowBuilderClient, useWorkflowBuilderClientOptional, useWorkflowStore } from '../chunk-DFOPQKPU.mjs';
|
|
6
|
+
import { GlassModal, Button, FormInput, FormTextarea, ToggleSwitch, Input, DynamicIslandConfirm } from '../chunk-DNGI4ASL.mjs';
|
|
6
7
|
import { useTranslations } from '../chunk-7VJ7CMMT.mjs';
|
|
7
8
|
import '../chunk-QWG2FMUN.mjs';
|
|
8
|
-
import '../chunk-
|
|
9
|
+
import '../chunk-D2JF6C3E.mjs';
|
|
9
10
|
export { GraphNodeBadge, GraphNodeHeader, GraphNodeIconBubble, GraphNodeMeta } from '../chunk-OZNTQROP.mjs';
|
|
10
|
-
export { topologicalSortAgents, validateWorkflowGraph } from '../chunk-BLNXRUC4.mjs';
|
|
11
11
|
import { getAgentTier, createDefaultLogicNodeConfig } from '../chunk-TLPPVL3W.mjs';
|
|
12
12
|
export { applyDagreLayout, createDefaultLogicNodeConfig, getAgentTier } from '../chunk-TLPPVL3W.mjs';
|
|
13
13
|
import { memo, useCallback, useState, useEffect, useMemo, useRef, Children } from 'react';
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { WorkflowNodeType, LogicNodeConfig, WorkflowGraph } from './contracts.mjs';
|
|
2
|
+
import { Node, Edge } from '@xyflow/react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Layout Engine
|
|
6
|
+
* =============
|
|
7
|
+
* Auto-layout for workflow graphs using @dagrejs/dagre.
|
|
8
|
+
* Pure utility — no React dependencies.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/** Layout direction: free means no auto-layout is applied. */
|
|
12
|
+
type LayoutDirection = 'free' | 'LR' | 'TB';
|
|
13
|
+
/**
|
|
14
|
+
* Apply dagre layout to the given nodes and edges.
|
|
15
|
+
* Returns a new array of nodes with updated positions.
|
|
16
|
+
* Group child nodes (parentId set) and note nodes are excluded from layout.
|
|
17
|
+
*/
|
|
18
|
+
declare function applyDagreLayout(nodes: Node[], edges: Edge[], direction: Exclude<LayoutDirection, 'free'>): Node[];
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Logic Node Default Configs
|
|
22
|
+
* ==========================
|
|
23
|
+
* Factory function to create default configs for each logic node type.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
declare function createDefaultLogicNodeConfig(nodeType: WorkflowNodeType): LogicNodeConfig | null;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Workflow Validator
|
|
30
|
+
* =================
|
|
31
|
+
* Validates the workflow graph before publishing.
|
|
32
|
+
* Ensures the graph forms a valid DAG with proper node connections.
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
type ValidationResult = {
|
|
36
|
+
valid: boolean;
|
|
37
|
+
errors: string[];
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Validate a workflow graph for publishing.
|
|
41
|
+
* Checks:
|
|
42
|
+
* - At least one agent node exists
|
|
43
|
+
* - All edges have valid source/target nodes
|
|
44
|
+
* - No orphan nodes (every node has at least one connection, except note nodes)
|
|
45
|
+
* - Tool nodes connect to agent nodes only
|
|
46
|
+
* - Agent chain forms a valid DAG (no cycles)
|
|
47
|
+
* - Rule nodes have incoming edges from agents
|
|
48
|
+
* - Logic node constraints (start/end uniqueness, config validation)
|
|
49
|
+
* - New node type validations (answer, question_classifier, parameter_extractor, etc.)
|
|
50
|
+
*/
|
|
51
|
+
declare function validateWorkflowGraph(graph: WorkflowGraph): ValidationResult;
|
|
52
|
+
/**
|
|
53
|
+
* Topologically sort agent nodes from the graph edges.
|
|
54
|
+
* Returns agent entityIds in execution order.
|
|
55
|
+
* Logic nodes are skipped — only agent entityIds are returned.
|
|
56
|
+
*/
|
|
57
|
+
declare function topologicalSortAgents(graph: WorkflowGraph): string[];
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Agent ELO Tier
|
|
61
|
+
* ==============
|
|
62
|
+
* Derives difficulty tier from agent ELO rating.
|
|
63
|
+
* Used in node palette, agent flow node, and agent modal.
|
|
64
|
+
*/
|
|
65
|
+
type AgentTier = {
|
|
66
|
+
key: 'beginner' | 'intermediate' | 'advanced' | 'expert';
|
|
67
|
+
pillColor: string;
|
|
68
|
+
};
|
|
69
|
+
declare function getAgentTier(elo: number | undefined): AgentTier;
|
|
70
|
+
|
|
71
|
+
export { type AgentTier, type LayoutDirection, applyDagreLayout, createDefaultLogicNodeConfig, getAgentTier, topologicalSortAgents, validateWorkflowGraph };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { WorkflowNodeType, LogicNodeConfig, WorkflowGraph } from './contracts.js';
|
|
2
|
+
import { Node, Edge } from '@xyflow/react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Layout Engine
|
|
6
|
+
* =============
|
|
7
|
+
* Auto-layout for workflow graphs using @dagrejs/dagre.
|
|
8
|
+
* Pure utility — no React dependencies.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/** Layout direction: free means no auto-layout is applied. */
|
|
12
|
+
type LayoutDirection = 'free' | 'LR' | 'TB';
|
|
13
|
+
/**
|
|
14
|
+
* Apply dagre layout to the given nodes and edges.
|
|
15
|
+
* Returns a new array of nodes with updated positions.
|
|
16
|
+
* Group child nodes (parentId set) and note nodes are excluded from layout.
|
|
17
|
+
*/
|
|
18
|
+
declare function applyDagreLayout(nodes: Node[], edges: Edge[], direction: Exclude<LayoutDirection, 'free'>): Node[];
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Logic Node Default Configs
|
|
22
|
+
* ==========================
|
|
23
|
+
* Factory function to create default configs for each logic node type.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
declare function createDefaultLogicNodeConfig(nodeType: WorkflowNodeType): LogicNodeConfig | null;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Workflow Validator
|
|
30
|
+
* =================
|
|
31
|
+
* Validates the workflow graph before publishing.
|
|
32
|
+
* Ensures the graph forms a valid DAG with proper node connections.
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
type ValidationResult = {
|
|
36
|
+
valid: boolean;
|
|
37
|
+
errors: string[];
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Validate a workflow graph for publishing.
|
|
41
|
+
* Checks:
|
|
42
|
+
* - At least one agent node exists
|
|
43
|
+
* - All edges have valid source/target nodes
|
|
44
|
+
* - No orphan nodes (every node has at least one connection, except note nodes)
|
|
45
|
+
* - Tool nodes connect to agent nodes only
|
|
46
|
+
* - Agent chain forms a valid DAG (no cycles)
|
|
47
|
+
* - Rule nodes have incoming edges from agents
|
|
48
|
+
* - Logic node constraints (start/end uniqueness, config validation)
|
|
49
|
+
* - New node type validations (answer, question_classifier, parameter_extractor, etc.)
|
|
50
|
+
*/
|
|
51
|
+
declare function validateWorkflowGraph(graph: WorkflowGraph): ValidationResult;
|
|
52
|
+
/**
|
|
53
|
+
* Topologically sort agent nodes from the graph edges.
|
|
54
|
+
* Returns agent entityIds in execution order.
|
|
55
|
+
* Logic nodes are skipped — only agent entityIds are returned.
|
|
56
|
+
*/
|
|
57
|
+
declare function topologicalSortAgents(graph: WorkflowGraph): string[];
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Agent ELO Tier
|
|
61
|
+
* ==============
|
|
62
|
+
* Derives difficulty tier from agent ELO rating.
|
|
63
|
+
* Used in node palette, agent flow node, and agent modal.
|
|
64
|
+
*/
|
|
65
|
+
type AgentTier = {
|
|
66
|
+
key: 'beginner' | 'intermediate' | 'advanced' | 'expert';
|
|
67
|
+
pillColor: string;
|
|
68
|
+
};
|
|
69
|
+
declare function getAgentTier(elo: number | undefined): AgentTier;
|
|
70
|
+
|
|
71
|
+
export { type AgentTier, type LayoutDirection, applyDagreLayout, createDefaultLogicNodeConfig, getAgentTier, topologicalSortAgents, validateWorkflowGraph };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
require('../chunk-
|
|
6
|
-
require('../chunk-UZ3CMNUJ.js');
|
|
4
|
+
var chunkYDZRHVCW_js = require('../chunk-YDZRHVCW.js');
|
|
5
|
+
require('../chunk-KEUOCEOO.js');
|
|
7
6
|
require('../chunk-YXN2K77G.js');
|
|
8
7
|
require('../chunk-S7KHTUHA.js');
|
|
8
|
+
require('../chunk-UZ3CMNUJ.js');
|
|
9
9
|
require('../chunk-P4YYEM4B.js');
|
|
10
10
|
require('../chunk-PWBWP5FJ.js');
|
|
11
11
|
|
|
@@ -13,7 +13,7 @@ require('../chunk-PWBWP5FJ.js');
|
|
|
13
13
|
|
|
14
14
|
Object.defineProperty(exports, "Workspace", {
|
|
15
15
|
enumerable: true,
|
|
16
|
-
get: function () { return
|
|
16
|
+
get: function () { return chunkYDZRHVCW_js.Workspace; }
|
|
17
17
|
});
|
|
18
18
|
//# sourceMappingURL=workflow-canvas.js.map
|
|
19
19
|
//# sourceMappingURL=workflow-canvas.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { Workspace } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-D2JF6C3E.mjs';
|
|
2
|
+
export { Workspace } from '../chunk-DFOPQKPU.mjs';
|
|
3
|
+
import '../chunk-DNGI4ASL.mjs';
|
|
5
4
|
import '../chunk-7VJ7CMMT.mjs';
|
|
6
5
|
import '../chunk-QWG2FMUN.mjs';
|
|
6
|
+
import '../chunk-D2JF6C3E.mjs';
|
|
7
7
|
import '../chunk-OZNTQROP.mjs';
|
|
8
8
|
import '../chunk-TLPPVL3W.mjs';
|
|
9
9
|
//# sourceMappingURL=workflow-canvas.mjs.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { WorkflowGraph } from './contracts.mjs';
|
|
3
|
+
|
|
4
|
+
type WorkflowPreviewCanvasProps = {
|
|
5
|
+
graph: WorkflowGraph;
|
|
6
|
+
className?: string;
|
|
7
|
+
};
|
|
8
|
+
declare function WorkflowPreviewCanvas({ graph, className }: WorkflowPreviewCanvasProps): react_jsx_runtime.JSX.Element;
|
|
9
|
+
|
|
10
|
+
export { WorkflowPreviewCanvas, type WorkflowPreviewCanvasProps };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { WorkflowGraph } from './contracts.js';
|
|
3
|
+
|
|
4
|
+
type WorkflowPreviewCanvasProps = {
|
|
5
|
+
graph: WorkflowGraph;
|
|
6
|
+
className?: string;
|
|
7
|
+
};
|
|
8
|
+
declare function WorkflowPreviewCanvas({ graph, className }: WorkflowPreviewCanvasProps): react_jsx_runtime.JSX.Element;
|
|
9
|
+
|
|
10
|
+
export { WorkflowPreviewCanvas, type WorkflowPreviewCanvasProps };
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brand — centralized app themes, icons, and logos
|
|
3
|
+
* =================================================
|
|
4
|
+
* Single source of truth for all app branding across the platform.
|
|
5
|
+
*
|
|
6
|
+
* Logo SVGs live in src/brand/logos/ and are published as-is.
|
|
7
|
+
* Vite apps can import them directly:
|
|
8
|
+
* import fuelIcon from '@datatechsolutions/ui/src/brand/logos/fuel-icon.svg'
|
|
9
|
+
* Or use the APP_LOGOS/APP_THEMES which re-export them (works in Vite).
|
|
10
|
+
*/
|
|
11
|
+
interface AppTheme {
|
|
12
|
+
text: string;
|
|
13
|
+
textLight: string;
|
|
14
|
+
badgeBg: string;
|
|
15
|
+
badgeText: string;
|
|
16
|
+
ring: string;
|
|
17
|
+
border: string;
|
|
18
|
+
borderGlow: string;
|
|
19
|
+
surfaceBg: string;
|
|
20
|
+
dot: string;
|
|
21
|
+
tileGradient: string;
|
|
22
|
+
tileShadow: string;
|
|
23
|
+
gradient: string;
|
|
24
|
+
}
|
|
25
|
+
declare const APP_THEMES: {
|
|
26
|
+
readonly astrlabe: {
|
|
27
|
+
readonly text: "text-violet-400";
|
|
28
|
+
readonly textLight: "text-violet-300";
|
|
29
|
+
readonly badgeBg: "bg-violet-500/10";
|
|
30
|
+
readonly badgeText: "text-violet-300";
|
|
31
|
+
readonly ring: "ring-violet-500/30";
|
|
32
|
+
readonly border: "border-violet-500/30";
|
|
33
|
+
readonly borderGlow: "border-violet-500/20";
|
|
34
|
+
readonly surfaceBg: "bg-violet-500/[0.06]";
|
|
35
|
+
readonly dot: "bg-violet-400";
|
|
36
|
+
readonly tileGradient: "from-violet-600/80 to-purple-600/80";
|
|
37
|
+
readonly tileShadow: "shadow-violet-500/20";
|
|
38
|
+
readonly gradient: "from-violet-400 to-purple-400";
|
|
39
|
+
};
|
|
40
|
+
readonly 'fuel-price-ai': {
|
|
41
|
+
readonly text: "text-blue-400";
|
|
42
|
+
readonly textLight: "text-blue-300";
|
|
43
|
+
readonly badgeBg: "bg-blue-500/10";
|
|
44
|
+
readonly badgeText: "text-blue-300";
|
|
45
|
+
readonly ring: "ring-blue-500/30";
|
|
46
|
+
readonly border: "border-blue-500/30";
|
|
47
|
+
readonly borderGlow: "border-blue-500/20";
|
|
48
|
+
readonly surfaceBg: "bg-blue-500/[0.06]";
|
|
49
|
+
readonly dot: "bg-blue-400";
|
|
50
|
+
readonly tileGradient: "from-blue-600/80 to-indigo-600/80";
|
|
51
|
+
readonly tileShadow: "shadow-blue-500/20";
|
|
52
|
+
readonly gradient: "from-blue-400 to-indigo-400";
|
|
53
|
+
};
|
|
54
|
+
readonly 'kori-erp': {
|
|
55
|
+
readonly text: "text-orange-400";
|
|
56
|
+
readonly textLight: "text-orange-300";
|
|
57
|
+
readonly badgeBg: "bg-orange-500/10";
|
|
58
|
+
readonly badgeText: "text-orange-300";
|
|
59
|
+
readonly ring: "ring-orange-500/30";
|
|
60
|
+
readonly border: "border-orange-500/30";
|
|
61
|
+
readonly borderGlow: "border-orange-500/20";
|
|
62
|
+
readonly surfaceBg: "bg-orange-500/[0.06]";
|
|
63
|
+
readonly dot: "bg-orange-400";
|
|
64
|
+
readonly tileGradient: "from-orange-600/80 to-amber-600/80";
|
|
65
|
+
readonly tileShadow: "shadow-orange-500/20";
|
|
66
|
+
readonly gradient: "from-orange-400 to-amber-400";
|
|
67
|
+
};
|
|
68
|
+
readonly windsock: {
|
|
69
|
+
readonly text: "text-emerald-400";
|
|
70
|
+
readonly textLight: "text-emerald-300";
|
|
71
|
+
readonly badgeBg: "bg-emerald-500/10";
|
|
72
|
+
readonly badgeText: "text-emerald-300";
|
|
73
|
+
readonly ring: "ring-emerald-500/30";
|
|
74
|
+
readonly border: "border-emerald-500/30";
|
|
75
|
+
readonly borderGlow: "border-emerald-500/20";
|
|
76
|
+
readonly surfaceBg: "bg-emerald-500/[0.06]";
|
|
77
|
+
readonly dot: "bg-emerald-400";
|
|
78
|
+
readonly tileGradient: "from-emerald-600/80 to-teal-600/80";
|
|
79
|
+
readonly tileShadow: "shadow-emerald-500/20";
|
|
80
|
+
readonly gradient: "from-emerald-400 to-teal-400";
|
|
81
|
+
};
|
|
82
|
+
readonly fakhir: {
|
|
83
|
+
readonly text: "text-red-400";
|
|
84
|
+
readonly textLight: "text-red-300";
|
|
85
|
+
readonly badgeBg: "bg-red-500/10";
|
|
86
|
+
readonly badgeText: "text-red-300";
|
|
87
|
+
readonly ring: "ring-red-500/30";
|
|
88
|
+
readonly border: "border-red-500/30";
|
|
89
|
+
readonly borderGlow: "border-red-500/20";
|
|
90
|
+
readonly surfaceBg: "bg-red-500/[0.06]";
|
|
91
|
+
readonly dot: "bg-red-400";
|
|
92
|
+
readonly tileGradient: "from-red-600/80 to-rose-600/80";
|
|
93
|
+
readonly tileShadow: "shadow-red-500/20";
|
|
94
|
+
readonly gradient: "from-red-400 to-rose-400";
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
type AppId = keyof typeof APP_THEMES;
|
|
98
|
+
|
|
99
|
+
export { APP_THEMES, type AppId, type AppTheme };
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brand — centralized app themes, icons, and logos
|
|
3
|
+
* =================================================
|
|
4
|
+
* Single source of truth for all app branding across the platform.
|
|
5
|
+
*
|
|
6
|
+
* Logo SVGs live in src/brand/logos/ and are published as-is.
|
|
7
|
+
* Vite apps can import them directly:
|
|
8
|
+
* import fuelIcon from '@datatechsolutions/ui/src/brand/logos/fuel-icon.svg'
|
|
9
|
+
* Or use the APP_LOGOS/APP_THEMES which re-export them (works in Vite).
|
|
10
|
+
*/
|
|
11
|
+
interface AppTheme {
|
|
12
|
+
text: string;
|
|
13
|
+
textLight: string;
|
|
14
|
+
badgeBg: string;
|
|
15
|
+
badgeText: string;
|
|
16
|
+
ring: string;
|
|
17
|
+
border: string;
|
|
18
|
+
borderGlow: string;
|
|
19
|
+
surfaceBg: string;
|
|
20
|
+
dot: string;
|
|
21
|
+
tileGradient: string;
|
|
22
|
+
tileShadow: string;
|
|
23
|
+
gradient: string;
|
|
24
|
+
}
|
|
25
|
+
declare const APP_THEMES: {
|
|
26
|
+
readonly astrlabe: {
|
|
27
|
+
readonly text: "text-violet-400";
|
|
28
|
+
readonly textLight: "text-violet-300";
|
|
29
|
+
readonly badgeBg: "bg-violet-500/10";
|
|
30
|
+
readonly badgeText: "text-violet-300";
|
|
31
|
+
readonly ring: "ring-violet-500/30";
|
|
32
|
+
readonly border: "border-violet-500/30";
|
|
33
|
+
readonly borderGlow: "border-violet-500/20";
|
|
34
|
+
readonly surfaceBg: "bg-violet-500/[0.06]";
|
|
35
|
+
readonly dot: "bg-violet-400";
|
|
36
|
+
readonly tileGradient: "from-violet-600/80 to-purple-600/80";
|
|
37
|
+
readonly tileShadow: "shadow-violet-500/20";
|
|
38
|
+
readonly gradient: "from-violet-400 to-purple-400";
|
|
39
|
+
};
|
|
40
|
+
readonly 'fuel-price-ai': {
|
|
41
|
+
readonly text: "text-blue-400";
|
|
42
|
+
readonly textLight: "text-blue-300";
|
|
43
|
+
readonly badgeBg: "bg-blue-500/10";
|
|
44
|
+
readonly badgeText: "text-blue-300";
|
|
45
|
+
readonly ring: "ring-blue-500/30";
|
|
46
|
+
readonly border: "border-blue-500/30";
|
|
47
|
+
readonly borderGlow: "border-blue-500/20";
|
|
48
|
+
readonly surfaceBg: "bg-blue-500/[0.06]";
|
|
49
|
+
readonly dot: "bg-blue-400";
|
|
50
|
+
readonly tileGradient: "from-blue-600/80 to-indigo-600/80";
|
|
51
|
+
readonly tileShadow: "shadow-blue-500/20";
|
|
52
|
+
readonly gradient: "from-blue-400 to-indigo-400";
|
|
53
|
+
};
|
|
54
|
+
readonly 'kori-erp': {
|
|
55
|
+
readonly text: "text-orange-400";
|
|
56
|
+
readonly textLight: "text-orange-300";
|
|
57
|
+
readonly badgeBg: "bg-orange-500/10";
|
|
58
|
+
readonly badgeText: "text-orange-300";
|
|
59
|
+
readonly ring: "ring-orange-500/30";
|
|
60
|
+
readonly border: "border-orange-500/30";
|
|
61
|
+
readonly borderGlow: "border-orange-500/20";
|
|
62
|
+
readonly surfaceBg: "bg-orange-500/[0.06]";
|
|
63
|
+
readonly dot: "bg-orange-400";
|
|
64
|
+
readonly tileGradient: "from-orange-600/80 to-amber-600/80";
|
|
65
|
+
readonly tileShadow: "shadow-orange-500/20";
|
|
66
|
+
readonly gradient: "from-orange-400 to-amber-400";
|
|
67
|
+
};
|
|
68
|
+
readonly windsock: {
|
|
69
|
+
readonly text: "text-emerald-400";
|
|
70
|
+
readonly textLight: "text-emerald-300";
|
|
71
|
+
readonly badgeBg: "bg-emerald-500/10";
|
|
72
|
+
readonly badgeText: "text-emerald-300";
|
|
73
|
+
readonly ring: "ring-emerald-500/30";
|
|
74
|
+
readonly border: "border-emerald-500/30";
|
|
75
|
+
readonly borderGlow: "border-emerald-500/20";
|
|
76
|
+
readonly surfaceBg: "bg-emerald-500/[0.06]";
|
|
77
|
+
readonly dot: "bg-emerald-400";
|
|
78
|
+
readonly tileGradient: "from-emerald-600/80 to-teal-600/80";
|
|
79
|
+
readonly tileShadow: "shadow-emerald-500/20";
|
|
80
|
+
readonly gradient: "from-emerald-400 to-teal-400";
|
|
81
|
+
};
|
|
82
|
+
readonly fakhir: {
|
|
83
|
+
readonly text: "text-red-400";
|
|
84
|
+
readonly textLight: "text-red-300";
|
|
85
|
+
readonly badgeBg: "bg-red-500/10";
|
|
86
|
+
readonly badgeText: "text-red-300";
|
|
87
|
+
readonly ring: "ring-red-500/30";
|
|
88
|
+
readonly border: "border-red-500/30";
|
|
89
|
+
readonly borderGlow: "border-red-500/20";
|
|
90
|
+
readonly surfaceBg: "bg-red-500/[0.06]";
|
|
91
|
+
readonly dot: "bg-red-400";
|
|
92
|
+
readonly tileGradient: "from-red-600/80 to-rose-600/80";
|
|
93
|
+
readonly tileShadow: "shadow-red-500/20";
|
|
94
|
+
readonly gradient: "from-red-400 to-rose-400";
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
type AppId = keyof typeof APP_THEMES;
|
|
98
|
+
|
|
99
|
+
export { APP_THEMES, type AppId, type AppTheme };
|
package/dist/brand/index.js
CHANGED
|
@@ -58,6 +58,20 @@ var APP_THEMES = {
|
|
|
58
58
|
tileGradient: "from-emerald-600/80 to-teal-600/80",
|
|
59
59
|
tileShadow: "shadow-emerald-500/20",
|
|
60
60
|
gradient: "from-emerald-400 to-teal-400"
|
|
61
|
+
},
|
|
62
|
+
fakhir: {
|
|
63
|
+
text: "text-red-400",
|
|
64
|
+
textLight: "text-red-300",
|
|
65
|
+
badgeBg: "bg-red-500/10",
|
|
66
|
+
badgeText: "text-red-300",
|
|
67
|
+
ring: "ring-red-500/30",
|
|
68
|
+
border: "border-red-500/30",
|
|
69
|
+
borderGlow: "border-red-500/20",
|
|
70
|
+
surfaceBg: "bg-red-500/[0.06]",
|
|
71
|
+
dot: "bg-red-400",
|
|
72
|
+
tileGradient: "from-red-600/80 to-rose-600/80",
|
|
73
|
+
tileShadow: "shadow-red-500/20",
|
|
74
|
+
gradient: "from-red-400 to-rose-400"
|
|
61
75
|
}
|
|
62
76
|
};
|
|
63
77
|
|
package/dist/brand/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/brand/index.ts"],"names":[],"mappings":";;;AA4BO,IAAM,UAAA,GAAa;AAAA,EACxB,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,iBAAA;AAAA,IACN,SAAA,EAAW,iBAAA;AAAA,IACX,OAAA,EAAS,kBAAA;AAAA,IACT,SAAA,EAAW,iBAAA;AAAA,IACX,IAAA,EAAM,oBAAA;AAAA,IACN,MAAA,EAAQ,sBAAA;AAAA,IACR,UAAA,EAAY,sBAAA;AAAA,IACZ,SAAA,EAAW,sBAAA;AAAA,IACX,GAAA,EAAK,eAAA;AAAA,IACL,YAAA,EAAc,qCAAA;AAAA,IACd,UAAA,EAAY,sBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,eAAA;AAAA,IACN,SAAA,EAAW,eAAA;AAAA,IACX,OAAA,EAAS,gBAAA;AAAA,IACT,SAAA,EAAW,eAAA;AAAA,IACX,IAAA,EAAM,kBAAA;AAAA,IACN,MAAA,EAAQ,oBAAA;AAAA,IACR,UAAA,EAAY,oBAAA;AAAA,IACZ,SAAA,EAAW,oBAAA;AAAA,IACX,GAAA,EAAK,aAAA;AAAA,IACL,YAAA,EAAc,mCAAA;AAAA,IACd,UAAA,EAAY,oBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,iBAAA;AAAA,IACN,SAAA,EAAW,iBAAA;AAAA,IACX,OAAA,EAAS,kBAAA;AAAA,IACT,SAAA,EAAW,iBAAA;AAAA,IACX,IAAA,EAAM,oBAAA;AAAA,IACN,MAAA,EAAQ,sBAAA;AAAA,IACR,UAAA,EAAY,sBAAA;AAAA,IACZ,SAAA,EAAW,sBAAA;AAAA,IACX,GAAA,EAAK,eAAA;AAAA,IACL,YAAA,EAAc,oCAAA;AAAA,IACd,UAAA,EAAY,sBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,kBAAA;AAAA,IACN,SAAA,EAAW,kBAAA;AAAA,IACX,OAAA,EAAS,mBAAA;AAAA,IACT,SAAA,EAAW,kBAAA;AAAA,IACX,IAAA,EAAM,qBAAA;AAAA,IACN,MAAA,EAAQ,uBAAA;AAAA,IACR,UAAA,EAAY,uBAAA;AAAA,IACZ,SAAA,EAAW,uBAAA;AAAA,IACX,GAAA,EAAK,gBAAA;AAAA,IACL,YAAA,EAAc,oCAAA;AAAA,IACd,UAAA,EAAY,uBAAA;AAAA,IACZ,QAAA,EAAU;AAAA;AAEd","file":"index.js","sourcesContent":["/**\n * Brand — centralized app themes, icons, and logos\n * =================================================\n * Single source of truth for all app branding across the platform.\n *\n * Logo SVGs live in src/brand/logos/ and are published as-is.\n * Vite apps can import them directly:\n * import fuelIcon from '@datatechsolutions/ui/src/brand/logos/fuel-icon.svg'\n * Or use the APP_LOGOS/APP_THEMES which re-export them (works in Vite).\n */\n\n// ── App themes (Tailwind class tokens) ────────────────────────────────\n\nexport interface AppTheme {\n text: string\n textLight: string\n badgeBg: string\n badgeText: string\n ring: string\n border: string\n borderGlow: string\n surfaceBg: string\n dot: string\n tileGradient: string\n tileShadow: string\n gradient: string\n}\n\nexport const APP_THEMES = {\n astrlabe: {\n text: 'text-violet-400',\n textLight: 'text-violet-300',\n badgeBg: 'bg-violet-500/10',\n badgeText: 'text-violet-300',\n ring: 'ring-violet-500/30',\n border: 'border-violet-500/30',\n borderGlow: 'border-violet-500/20',\n surfaceBg: 'bg-violet-500/[0.06]',\n dot: 'bg-violet-400',\n tileGradient: 'from-violet-600/80 to-purple-600/80',\n tileShadow: 'shadow-violet-500/20',\n gradient: 'from-violet-400 to-purple-400',\n },\n 'fuel-price-ai': {\n text: 'text-blue-400',\n textLight: 'text-blue-300',\n badgeBg: 'bg-blue-500/10',\n badgeText: 'text-blue-300',\n ring: 'ring-blue-500/30',\n border: 'border-blue-500/30',\n borderGlow: 'border-blue-500/20',\n surfaceBg: 'bg-blue-500/[0.06]',\n dot: 'bg-blue-400',\n tileGradient: 'from-blue-600/80 to-indigo-600/80',\n tileShadow: 'shadow-blue-500/20',\n gradient: 'from-blue-400 to-indigo-400',\n },\n 'kori-erp': {\n text: 'text-orange-400',\n textLight: 'text-orange-300',\n badgeBg: 'bg-orange-500/10',\n badgeText: 'text-orange-300',\n ring: 'ring-orange-500/30',\n border: 'border-orange-500/30',\n borderGlow: 'border-orange-500/20',\n surfaceBg: 'bg-orange-500/[0.06]',\n dot: 'bg-orange-400',\n tileGradient: 'from-orange-600/80 to-amber-600/80',\n tileShadow: 'shadow-orange-500/20',\n gradient: 'from-orange-400 to-amber-400',\n },\n windsock: {\n text: 'text-emerald-400',\n textLight: 'text-emerald-300',\n badgeBg: 'bg-emerald-500/10',\n badgeText: 'text-emerald-300',\n ring: 'ring-emerald-500/30',\n border: 'border-emerald-500/30',\n borderGlow: 'border-emerald-500/20',\n surfaceBg: 'bg-emerald-500/[0.06]',\n dot: 'bg-emerald-400',\n tileGradient: 'from-emerald-600/80 to-teal-600/80',\n tileShadow: 'shadow-emerald-500/20',\n gradient: 'from-emerald-400 to-teal-400',\n },\n} as const satisfies Record<string, AppTheme>\n\nexport type AppId = keyof typeof APP_THEMES\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/brand/index.ts"],"names":[],"mappings":";;;AA4BO,IAAM,UAAA,GAAa;AAAA,EACxB,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,iBAAA;AAAA,IACN,SAAA,EAAW,iBAAA;AAAA,IACX,OAAA,EAAS,kBAAA;AAAA,IACT,SAAA,EAAW,iBAAA;AAAA,IACX,IAAA,EAAM,oBAAA;AAAA,IACN,MAAA,EAAQ,sBAAA;AAAA,IACR,UAAA,EAAY,sBAAA;AAAA,IACZ,SAAA,EAAW,sBAAA;AAAA,IACX,GAAA,EAAK,eAAA;AAAA,IACL,YAAA,EAAc,qCAAA;AAAA,IACd,UAAA,EAAY,sBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,eAAA;AAAA,IACN,SAAA,EAAW,eAAA;AAAA,IACX,OAAA,EAAS,gBAAA;AAAA,IACT,SAAA,EAAW,eAAA;AAAA,IACX,IAAA,EAAM,kBAAA;AAAA,IACN,MAAA,EAAQ,oBAAA;AAAA,IACR,UAAA,EAAY,oBAAA;AAAA,IACZ,SAAA,EAAW,oBAAA;AAAA,IACX,GAAA,EAAK,aAAA;AAAA,IACL,YAAA,EAAc,mCAAA;AAAA,IACd,UAAA,EAAY,oBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,iBAAA;AAAA,IACN,SAAA,EAAW,iBAAA;AAAA,IACX,OAAA,EAAS,kBAAA;AAAA,IACT,SAAA,EAAW,iBAAA;AAAA,IACX,IAAA,EAAM,oBAAA;AAAA,IACN,MAAA,EAAQ,sBAAA;AAAA,IACR,UAAA,EAAY,sBAAA;AAAA,IACZ,SAAA,EAAW,sBAAA;AAAA,IACX,GAAA,EAAK,eAAA;AAAA,IACL,YAAA,EAAc,oCAAA;AAAA,IACd,UAAA,EAAY,sBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,kBAAA;AAAA,IACN,SAAA,EAAW,kBAAA;AAAA,IACX,OAAA,EAAS,mBAAA;AAAA,IACT,SAAA,EAAW,kBAAA;AAAA,IACX,IAAA,EAAM,qBAAA;AAAA,IACN,MAAA,EAAQ,uBAAA;AAAA,IACR,UAAA,EAAY,uBAAA;AAAA,IACZ,SAAA,EAAW,uBAAA;AAAA,IACX,GAAA,EAAK,gBAAA;AAAA,IACL,YAAA,EAAc,oCAAA;AAAA,IACd,UAAA,EAAY,uBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,cAAA;AAAA,IACN,SAAA,EAAW,cAAA;AAAA,IACX,OAAA,EAAS,eAAA;AAAA,IACT,SAAA,EAAW,cAAA;AAAA,IACX,IAAA,EAAM,iBAAA;AAAA,IACN,MAAA,EAAQ,mBAAA;AAAA,IACR,UAAA,EAAY,mBAAA;AAAA,IACZ,SAAA,EAAW,mBAAA;AAAA,IACX,GAAA,EAAK,YAAA;AAAA,IACL,YAAA,EAAc,gCAAA;AAAA,IACd,UAAA,EAAY,mBAAA;AAAA,IACZ,QAAA,EAAU;AAAA;AAEd","file":"index.js","sourcesContent":["/**\n * Brand — centralized app themes, icons, and logos\n * =================================================\n * Single source of truth for all app branding across the platform.\n *\n * Logo SVGs live in src/brand/logos/ and are published as-is.\n * Vite apps can import them directly:\n * import fuelIcon from '@datatechsolutions/ui/src/brand/logos/fuel-icon.svg'\n * Or use the APP_LOGOS/APP_THEMES which re-export them (works in Vite).\n */\n\n// ── App themes (Tailwind class tokens) ────────────────────────────────\n\nexport interface AppTheme {\n text: string\n textLight: string\n badgeBg: string\n badgeText: string\n ring: string\n border: string\n borderGlow: string\n surfaceBg: string\n dot: string\n tileGradient: string\n tileShadow: string\n gradient: string\n}\n\nexport const APP_THEMES = {\n astrlabe: {\n text: 'text-violet-400',\n textLight: 'text-violet-300',\n badgeBg: 'bg-violet-500/10',\n badgeText: 'text-violet-300',\n ring: 'ring-violet-500/30',\n border: 'border-violet-500/30',\n borderGlow: 'border-violet-500/20',\n surfaceBg: 'bg-violet-500/[0.06]',\n dot: 'bg-violet-400',\n tileGradient: 'from-violet-600/80 to-purple-600/80',\n tileShadow: 'shadow-violet-500/20',\n gradient: 'from-violet-400 to-purple-400',\n },\n 'fuel-price-ai': {\n text: 'text-blue-400',\n textLight: 'text-blue-300',\n badgeBg: 'bg-blue-500/10',\n badgeText: 'text-blue-300',\n ring: 'ring-blue-500/30',\n border: 'border-blue-500/30',\n borderGlow: 'border-blue-500/20',\n surfaceBg: 'bg-blue-500/[0.06]',\n dot: 'bg-blue-400',\n tileGradient: 'from-blue-600/80 to-indigo-600/80',\n tileShadow: 'shadow-blue-500/20',\n gradient: 'from-blue-400 to-indigo-400',\n },\n 'kori-erp': {\n text: 'text-orange-400',\n textLight: 'text-orange-300',\n badgeBg: 'bg-orange-500/10',\n badgeText: 'text-orange-300',\n ring: 'ring-orange-500/30',\n border: 'border-orange-500/30',\n borderGlow: 'border-orange-500/20',\n surfaceBg: 'bg-orange-500/[0.06]',\n dot: 'bg-orange-400',\n tileGradient: 'from-orange-600/80 to-amber-600/80',\n tileShadow: 'shadow-orange-500/20',\n gradient: 'from-orange-400 to-amber-400',\n },\n windsock: {\n text: 'text-emerald-400',\n textLight: 'text-emerald-300',\n badgeBg: 'bg-emerald-500/10',\n badgeText: 'text-emerald-300',\n ring: 'ring-emerald-500/30',\n border: 'border-emerald-500/30',\n borderGlow: 'border-emerald-500/20',\n surfaceBg: 'bg-emerald-500/[0.06]',\n dot: 'bg-emerald-400',\n tileGradient: 'from-emerald-600/80 to-teal-600/80',\n tileShadow: 'shadow-emerald-500/20',\n gradient: 'from-emerald-400 to-teal-400',\n },\n fakhir: {\n text: 'text-red-400',\n textLight: 'text-red-300',\n badgeBg: 'bg-red-500/10',\n badgeText: 'text-red-300',\n ring: 'ring-red-500/30',\n border: 'border-red-500/30',\n borderGlow: 'border-red-500/20',\n surfaceBg: 'bg-red-500/[0.06]',\n dot: 'bg-red-400',\n tileGradient: 'from-red-600/80 to-rose-600/80',\n tileShadow: 'shadow-red-500/20',\n gradient: 'from-red-400 to-rose-400',\n },\n} as const satisfies Record<string, AppTheme>\n\nexport type AppId = keyof typeof APP_THEMES\n"]}
|
package/dist/brand/index.mjs
CHANGED
|
@@ -56,6 +56,20 @@ var APP_THEMES = {
|
|
|
56
56
|
tileGradient: "from-emerald-600/80 to-teal-600/80",
|
|
57
57
|
tileShadow: "shadow-emerald-500/20",
|
|
58
58
|
gradient: "from-emerald-400 to-teal-400"
|
|
59
|
+
},
|
|
60
|
+
fakhir: {
|
|
61
|
+
text: "text-red-400",
|
|
62
|
+
textLight: "text-red-300",
|
|
63
|
+
badgeBg: "bg-red-500/10",
|
|
64
|
+
badgeText: "text-red-300",
|
|
65
|
+
ring: "ring-red-500/30",
|
|
66
|
+
border: "border-red-500/30",
|
|
67
|
+
borderGlow: "border-red-500/20",
|
|
68
|
+
surfaceBg: "bg-red-500/[0.06]",
|
|
69
|
+
dot: "bg-red-400",
|
|
70
|
+
tileGradient: "from-red-600/80 to-rose-600/80",
|
|
71
|
+
tileShadow: "shadow-red-500/20",
|
|
72
|
+
gradient: "from-red-400 to-rose-400"
|
|
59
73
|
}
|
|
60
74
|
};
|
|
61
75
|
|
package/dist/brand/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/brand/index.ts"],"names":[],"mappings":";AA4BO,IAAM,UAAA,GAAa;AAAA,EACxB,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,iBAAA;AAAA,IACN,SAAA,EAAW,iBAAA;AAAA,IACX,OAAA,EAAS,kBAAA;AAAA,IACT,SAAA,EAAW,iBAAA;AAAA,IACX,IAAA,EAAM,oBAAA;AAAA,IACN,MAAA,EAAQ,sBAAA;AAAA,IACR,UAAA,EAAY,sBAAA;AAAA,IACZ,SAAA,EAAW,sBAAA;AAAA,IACX,GAAA,EAAK,eAAA;AAAA,IACL,YAAA,EAAc,qCAAA;AAAA,IACd,UAAA,EAAY,sBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,eAAA;AAAA,IACN,SAAA,EAAW,eAAA;AAAA,IACX,OAAA,EAAS,gBAAA;AAAA,IACT,SAAA,EAAW,eAAA;AAAA,IACX,IAAA,EAAM,kBAAA;AAAA,IACN,MAAA,EAAQ,oBAAA;AAAA,IACR,UAAA,EAAY,oBAAA;AAAA,IACZ,SAAA,EAAW,oBAAA;AAAA,IACX,GAAA,EAAK,aAAA;AAAA,IACL,YAAA,EAAc,mCAAA;AAAA,IACd,UAAA,EAAY,oBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,iBAAA;AAAA,IACN,SAAA,EAAW,iBAAA;AAAA,IACX,OAAA,EAAS,kBAAA;AAAA,IACT,SAAA,EAAW,iBAAA;AAAA,IACX,IAAA,EAAM,oBAAA;AAAA,IACN,MAAA,EAAQ,sBAAA;AAAA,IACR,UAAA,EAAY,sBAAA;AAAA,IACZ,SAAA,EAAW,sBAAA;AAAA,IACX,GAAA,EAAK,eAAA;AAAA,IACL,YAAA,EAAc,oCAAA;AAAA,IACd,UAAA,EAAY,sBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,kBAAA;AAAA,IACN,SAAA,EAAW,kBAAA;AAAA,IACX,OAAA,EAAS,mBAAA;AAAA,IACT,SAAA,EAAW,kBAAA;AAAA,IACX,IAAA,EAAM,qBAAA;AAAA,IACN,MAAA,EAAQ,uBAAA;AAAA,IACR,UAAA,EAAY,uBAAA;AAAA,IACZ,SAAA,EAAW,uBAAA;AAAA,IACX,GAAA,EAAK,gBAAA;AAAA,IACL,YAAA,EAAc,oCAAA;AAAA,IACd,UAAA,EAAY,uBAAA;AAAA,IACZ,QAAA,EAAU;AAAA;AAEd","file":"index.mjs","sourcesContent":["/**\n * Brand — centralized app themes, icons, and logos\n * =================================================\n * Single source of truth for all app branding across the platform.\n *\n * Logo SVGs live in src/brand/logos/ and are published as-is.\n * Vite apps can import them directly:\n * import fuelIcon from '@datatechsolutions/ui/src/brand/logos/fuel-icon.svg'\n * Or use the APP_LOGOS/APP_THEMES which re-export them (works in Vite).\n */\n\n// ── App themes (Tailwind class tokens) ────────────────────────────────\n\nexport interface AppTheme {\n text: string\n textLight: string\n badgeBg: string\n badgeText: string\n ring: string\n border: string\n borderGlow: string\n surfaceBg: string\n dot: string\n tileGradient: string\n tileShadow: string\n gradient: string\n}\n\nexport const APP_THEMES = {\n astrlabe: {\n text: 'text-violet-400',\n textLight: 'text-violet-300',\n badgeBg: 'bg-violet-500/10',\n badgeText: 'text-violet-300',\n ring: 'ring-violet-500/30',\n border: 'border-violet-500/30',\n borderGlow: 'border-violet-500/20',\n surfaceBg: 'bg-violet-500/[0.06]',\n dot: 'bg-violet-400',\n tileGradient: 'from-violet-600/80 to-purple-600/80',\n tileShadow: 'shadow-violet-500/20',\n gradient: 'from-violet-400 to-purple-400',\n },\n 'fuel-price-ai': {\n text: 'text-blue-400',\n textLight: 'text-blue-300',\n badgeBg: 'bg-blue-500/10',\n badgeText: 'text-blue-300',\n ring: 'ring-blue-500/30',\n border: 'border-blue-500/30',\n borderGlow: 'border-blue-500/20',\n surfaceBg: 'bg-blue-500/[0.06]',\n dot: 'bg-blue-400',\n tileGradient: 'from-blue-600/80 to-indigo-600/80',\n tileShadow: 'shadow-blue-500/20',\n gradient: 'from-blue-400 to-indigo-400',\n },\n 'kori-erp': {\n text: 'text-orange-400',\n textLight: 'text-orange-300',\n badgeBg: 'bg-orange-500/10',\n badgeText: 'text-orange-300',\n ring: 'ring-orange-500/30',\n border: 'border-orange-500/30',\n borderGlow: 'border-orange-500/20',\n surfaceBg: 'bg-orange-500/[0.06]',\n dot: 'bg-orange-400',\n tileGradient: 'from-orange-600/80 to-amber-600/80',\n tileShadow: 'shadow-orange-500/20',\n gradient: 'from-orange-400 to-amber-400',\n },\n windsock: {\n text: 'text-emerald-400',\n textLight: 'text-emerald-300',\n badgeBg: 'bg-emerald-500/10',\n badgeText: 'text-emerald-300',\n ring: 'ring-emerald-500/30',\n border: 'border-emerald-500/30',\n borderGlow: 'border-emerald-500/20',\n surfaceBg: 'bg-emerald-500/[0.06]',\n dot: 'bg-emerald-400',\n tileGradient: 'from-emerald-600/80 to-teal-600/80',\n tileShadow: 'shadow-emerald-500/20',\n gradient: 'from-emerald-400 to-teal-400',\n },\n} as const satisfies Record<string, AppTheme>\n\nexport type AppId = keyof typeof APP_THEMES\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/brand/index.ts"],"names":[],"mappings":";AA4BO,IAAM,UAAA,GAAa;AAAA,EACxB,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,iBAAA;AAAA,IACN,SAAA,EAAW,iBAAA;AAAA,IACX,OAAA,EAAS,kBAAA;AAAA,IACT,SAAA,EAAW,iBAAA;AAAA,IACX,IAAA,EAAM,oBAAA;AAAA,IACN,MAAA,EAAQ,sBAAA;AAAA,IACR,UAAA,EAAY,sBAAA;AAAA,IACZ,SAAA,EAAW,sBAAA;AAAA,IACX,GAAA,EAAK,eAAA;AAAA,IACL,YAAA,EAAc,qCAAA;AAAA,IACd,UAAA,EAAY,sBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,eAAA;AAAA,IACN,SAAA,EAAW,eAAA;AAAA,IACX,OAAA,EAAS,gBAAA;AAAA,IACT,SAAA,EAAW,eAAA;AAAA,IACX,IAAA,EAAM,kBAAA;AAAA,IACN,MAAA,EAAQ,oBAAA;AAAA,IACR,UAAA,EAAY,oBAAA;AAAA,IACZ,SAAA,EAAW,oBAAA;AAAA,IACX,GAAA,EAAK,aAAA;AAAA,IACL,YAAA,EAAc,mCAAA;AAAA,IACd,UAAA,EAAY,oBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,iBAAA;AAAA,IACN,SAAA,EAAW,iBAAA;AAAA,IACX,OAAA,EAAS,kBAAA;AAAA,IACT,SAAA,EAAW,iBAAA;AAAA,IACX,IAAA,EAAM,oBAAA;AAAA,IACN,MAAA,EAAQ,sBAAA;AAAA,IACR,UAAA,EAAY,sBAAA;AAAA,IACZ,SAAA,EAAW,sBAAA;AAAA,IACX,GAAA,EAAK,eAAA;AAAA,IACL,YAAA,EAAc,oCAAA;AAAA,IACd,UAAA,EAAY,sBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,kBAAA;AAAA,IACN,SAAA,EAAW,kBAAA;AAAA,IACX,OAAA,EAAS,mBAAA;AAAA,IACT,SAAA,EAAW,kBAAA;AAAA,IACX,IAAA,EAAM,qBAAA;AAAA,IACN,MAAA,EAAQ,uBAAA;AAAA,IACR,UAAA,EAAY,uBAAA;AAAA,IACZ,SAAA,EAAW,uBAAA;AAAA,IACX,GAAA,EAAK,gBAAA;AAAA,IACL,YAAA,EAAc,oCAAA;AAAA,IACd,UAAA,EAAY,uBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,cAAA;AAAA,IACN,SAAA,EAAW,cAAA;AAAA,IACX,OAAA,EAAS,eAAA;AAAA,IACT,SAAA,EAAW,cAAA;AAAA,IACX,IAAA,EAAM,iBAAA;AAAA,IACN,MAAA,EAAQ,mBAAA;AAAA,IACR,UAAA,EAAY,mBAAA;AAAA,IACZ,SAAA,EAAW,mBAAA;AAAA,IACX,GAAA,EAAK,YAAA;AAAA,IACL,YAAA,EAAc,gCAAA;AAAA,IACd,UAAA,EAAY,mBAAA;AAAA,IACZ,QAAA,EAAU;AAAA;AAEd","file":"index.mjs","sourcesContent":["/**\n * Brand — centralized app themes, icons, and logos\n * =================================================\n * Single source of truth for all app branding across the platform.\n *\n * Logo SVGs live in src/brand/logos/ and are published as-is.\n * Vite apps can import them directly:\n * import fuelIcon from '@datatechsolutions/ui/src/brand/logos/fuel-icon.svg'\n * Or use the APP_LOGOS/APP_THEMES which re-export them (works in Vite).\n */\n\n// ── App themes (Tailwind class tokens) ────────────────────────────────\n\nexport interface AppTheme {\n text: string\n textLight: string\n badgeBg: string\n badgeText: string\n ring: string\n border: string\n borderGlow: string\n surfaceBg: string\n dot: string\n tileGradient: string\n tileShadow: string\n gradient: string\n}\n\nexport const APP_THEMES = {\n astrlabe: {\n text: 'text-violet-400',\n textLight: 'text-violet-300',\n badgeBg: 'bg-violet-500/10',\n badgeText: 'text-violet-300',\n ring: 'ring-violet-500/30',\n border: 'border-violet-500/30',\n borderGlow: 'border-violet-500/20',\n surfaceBg: 'bg-violet-500/[0.06]',\n dot: 'bg-violet-400',\n tileGradient: 'from-violet-600/80 to-purple-600/80',\n tileShadow: 'shadow-violet-500/20',\n gradient: 'from-violet-400 to-purple-400',\n },\n 'fuel-price-ai': {\n text: 'text-blue-400',\n textLight: 'text-blue-300',\n badgeBg: 'bg-blue-500/10',\n badgeText: 'text-blue-300',\n ring: 'ring-blue-500/30',\n border: 'border-blue-500/30',\n borderGlow: 'border-blue-500/20',\n surfaceBg: 'bg-blue-500/[0.06]',\n dot: 'bg-blue-400',\n tileGradient: 'from-blue-600/80 to-indigo-600/80',\n tileShadow: 'shadow-blue-500/20',\n gradient: 'from-blue-400 to-indigo-400',\n },\n 'kori-erp': {\n text: 'text-orange-400',\n textLight: 'text-orange-300',\n badgeBg: 'bg-orange-500/10',\n badgeText: 'text-orange-300',\n ring: 'ring-orange-500/30',\n border: 'border-orange-500/30',\n borderGlow: 'border-orange-500/20',\n surfaceBg: 'bg-orange-500/[0.06]',\n dot: 'bg-orange-400',\n tileGradient: 'from-orange-600/80 to-amber-600/80',\n tileShadow: 'shadow-orange-500/20',\n gradient: 'from-orange-400 to-amber-400',\n },\n windsock: {\n text: 'text-emerald-400',\n textLight: 'text-emerald-300',\n badgeBg: 'bg-emerald-500/10',\n badgeText: 'text-emerald-300',\n ring: 'ring-emerald-500/30',\n border: 'border-emerald-500/30',\n borderGlow: 'border-emerald-500/20',\n surfaceBg: 'bg-emerald-500/[0.06]',\n dot: 'bg-emerald-400',\n tileGradient: 'from-emerald-600/80 to-teal-600/80',\n tileShadow: 'shadow-emerald-500/20',\n gradient: 'from-emerald-400 to-teal-400',\n },\n fakhir: {\n text: 'text-red-400',\n textLight: 'text-red-300',\n badgeBg: 'bg-red-500/10',\n badgeText: 'text-red-300',\n ring: 'ring-red-500/30',\n border: 'border-red-500/30',\n borderGlow: 'border-red-500/20',\n surfaceBg: 'bg-red-500/[0.06]',\n dot: 'bg-red-400',\n tileGradient: 'from-red-600/80 to-rose-600/80',\n tileShadow: 'shadow-red-500/20',\n gradient: 'from-red-400 to-rose-400',\n },\n} as const satisfies Record<string, AppTheme>\n\nexport type AppId = keyof typeof APP_THEMES\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { ToggleSwitch, GlassModal, ContextMenu, FormInput, FormSelect, FormTextarea, Button, IconButton } from './chunk-
|
|
2
|
+
import { ToggleSwitch, GlassModal, ContextMenu, FormInput, FormSelect, FormTextarea, Button, IconButton } from './chunk-DNGI4ASL.mjs';
|
|
3
3
|
import { useTranslations, I18nProvider, createI18nFromMessages } from './chunk-7VJ7CMMT.mjs';
|
|
4
4
|
import { GraphNodeHeader, GraphNodeMeta, GraphNodeBadge, GraphNodeIconBubble } from './chunk-OZNTQROP.mjs';
|
|
5
5
|
import { getAgentTier, createDefaultLogicNodeConfig, applyDagreLayout } from './chunk-TLPPVL3W.mjs';
|
|
@@ -1632,10 +1632,10 @@ function DatasourceNodeConfigForm({
|
|
|
1632
1632
|
activeSectionId,
|
|
1633
1633
|
onSectionChange: setActiveSectionId
|
|
1634
1634
|
},
|
|
1635
|
-
footer: /* @__PURE__ */
|
|
1635
|
+
footer: readOnly ? void 0 : /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2 px-6 py-3", children: [
|
|
1636
1636
|
/* @__PURE__ */ jsx(Button, { outline: true, onClick: onCancel, children: t("cancel") }),
|
|
1637
1637
|
/* @__PURE__ */ jsx(Button, { color: "cyan", onClick: handleSave, disabled: !canSave, children: t("save") })
|
|
1638
|
-
] })
|
|
1638
|
+
] }),
|
|
1639
1639
|
children: renderSection()
|
|
1640
1640
|
}
|
|
1641
1641
|
);
|
|
@@ -5662,7 +5662,6 @@ function LogicNodeModal({ onSave, entities = [], datasources = [], onLoadTables,
|
|
|
5662
5662
|
const nodeLabel = logicNodeData?.nodeLabel ?? "";
|
|
5663
5663
|
const config = logicNodeData?.config ?? null;
|
|
5664
5664
|
if (!config || !nodeId) return null;
|
|
5665
|
-
if (config.type === "datasource") return null;
|
|
5666
5665
|
const entityMasterId = config.type === "entity" ? config.entityMasterId : void 0;
|
|
5667
5666
|
const IconComponent = entityMasterId ? getEntityIcon(entityMasterId) : LOGIC_ICON_MAP[config.type];
|
|
5668
5667
|
const gradient = entityMasterId ? getEntityGradient(entityMasterId) : LOGIC_NODE_GRADIENTS[config.type] ?? "from-gray-400 to-gray-500";
|
|
@@ -5705,9 +5704,7 @@ function LogicNodeModal({ onSave, entities = [], datasources = [], onLoadTables,
|
|
|
5705
5704
|
return /* @__PURE__ */ jsx(ListOperatorNodeConfigForm, { config, onSave: handleSave, onCancel: closeModal });
|
|
5706
5705
|
case "iteration_start":
|
|
5707
5706
|
return /* @__PURE__ */ jsx(IterationStartNodeConfigForm, { config, onSave: handleSave, onCancel: closeModal });
|
|
5708
|
-
|
|
5709
|
-
return null;
|
|
5710
|
-
// Datasource uses its own GlassModal with sidebar — rendered separately
|
|
5707
|
+
// datasource — handled by standalone DatasourceNodeConfigForm in WorkflowCanvas
|
|
5711
5708
|
case "entity":
|
|
5712
5709
|
return /* @__PURE__ */ jsx(EntityNodeConfigForm, { config, entities, onSave: handleSave, onCancel: closeModal });
|
|
5713
5710
|
case "group":
|
|
@@ -6217,13 +6214,12 @@ function WorkflowCanvasInner({
|
|
|
6217
6214
|
const handleEditLogicNode = useCallback((nodeId) => {
|
|
6218
6215
|
setEditingLogicNodeId(nodeId);
|
|
6219
6216
|
const node = getNode(nodeId);
|
|
6220
|
-
if (node)
|
|
6221
|
-
|
|
6222
|
-
|
|
6223
|
-
|
|
6224
|
-
|
|
6225
|
-
|
|
6226
|
-
}
|
|
6217
|
+
if (!node) return;
|
|
6218
|
+
const nodeData = node.data;
|
|
6219
|
+
const config = nodeData.config;
|
|
6220
|
+
if (!config) return;
|
|
6221
|
+
if (config.type === "datasource") return;
|
|
6222
|
+
openLogicNodeModalAction(nodeId, nodeData.label ?? "", config);
|
|
6227
6223
|
}, [getNode, openLogicNodeModalAction]);
|
|
6228
6224
|
const agentMap = useMemo(() => {
|
|
6229
6225
|
const map = /* @__PURE__ */ new Map();
|
|
@@ -7829,5 +7825,5 @@ function Workspace({
|
|
|
7829
7825
|
}
|
|
7830
7826
|
|
|
7831
7827
|
export { AgentFlowNode, AgentToolFlowNode, AnswerFlowNode, AnthropicIcon, CATEGORY_COLORS, CATEGORY_PILL_COLORS, CodeFlowNode, CrewAIIcon, DocumentExtractorFlowNode, EndFlowNode, EntityFlowNode, FRAMEWORK_META, GoogleADKIcon, GroupFlowNode, HttpRequestFlowNode, ICON_MAP, IfElseFlowNode, IterationFlowNode, IterationStartFlowNode, KnowledgeBaseFlowNode, LOGIC_ICON_MAP, LOGIC_NODE_BADGE_COLORS, LOGIC_NODE_GRADIENTS, LOGIC_NODE_HANDLE_COLORS, LangChainIcon, ListOperatorFlowNode, LogicNodeModal, MINIMAP_NODE_COLORS, ModelProviderFlowNode, NODE_EXECUTION_ACCENT_COLORS, NodeCard, NodeContextMenu, NoteFlowNode, OpenAIIcon, PanelContextMenu, ParameterExtractorFlowNode, QuestionClassifierFlowNode, RuleFlowNode, SelectionContextMenu, StartFlowNode, StrandsIcon, TemplateTransformFlowNode, ToolFlowNode, VariableAggregatorFlowNode, VariableAssignerFlowNode, WorkflowBuilderProvider, WorkflowCanvas, Workspace, getCompatibleModels, getDefaultFrameworkForModel, getEntityBadgeColor, getEntityGradient, getEntityHandleColor, getEntityIcon, getEntityMinimapColor, getFrameworkMeta, getNodeExecutionAccent, getNodeExecutionAccentRgb, isFrameworkCompatibleWithProviders, isModelCompatibleWithFramework, useModalStore, useWorkflowBuilderClient, useWorkflowBuilderClientOptional, useWorkflowStore };
|
|
7832
|
-
//# sourceMappingURL=chunk-
|
|
7833
|
-
//# sourceMappingURL=chunk-
|
|
7828
|
+
//# sourceMappingURL=chunk-DFOPQKPU.mjs.map
|
|
7829
|
+
//# sourceMappingURL=chunk-DFOPQKPU.mjs.map
|