@datatechsolutions/ui 3.7.4 → 3.8.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.
Files changed (159) hide show
  1. package/dist/astrlabe/contracts.d.mts +517 -0
  2. package/dist/astrlabe/contracts.d.ts +517 -0
  3. package/dist/astrlabe/graph-node.d.mts +28 -0
  4. package/dist/astrlabe/graph-node.d.ts +28 -0
  5. package/dist/astrlabe/index.d.mts +743 -0
  6. package/dist/astrlabe/index.d.ts +743 -0
  7. package/dist/astrlabe/index.js +108 -108
  8. package/dist/astrlabe/index.mjs +4 -4
  9. package/dist/astrlabe/utils.d.mts +60 -0
  10. package/dist/astrlabe/utils.d.ts +60 -0
  11. package/dist/astrlabe/workflow-canvas.d.mts +6 -0
  12. package/dist/astrlabe/workflow-canvas.d.ts +6 -0
  13. package/dist/astrlabe/workflow-canvas.js +4 -4
  14. package/dist/astrlabe/workflow-canvas.mjs +3 -3
  15. package/dist/astrlabe/workflow-preview-canvas.d.mts +10 -0
  16. package/dist/astrlabe/workflow-preview-canvas.d.ts +10 -0
  17. package/dist/billing-panel-DsHhhJqG.d.mts +18 -0
  18. package/dist/billing-panel-DsHhhJqG.d.ts +18 -0
  19. package/dist/brand/index.d.mts +71 -0
  20. package/dist/brand/index.d.ts +71 -0
  21. package/dist/{chunk-GAN7AKZ2.mjs → chunk-32DHEVOH.mjs} +3 -3
  22. package/dist/{chunk-GAN7AKZ2.mjs.map → chunk-32DHEVOH.mjs.map} +1 -1
  23. package/dist/{chunk-IYDGO7RW.js → chunk-3H5CFLVK.js} +135 -135
  24. package/dist/{chunk-IYDGO7RW.js.map → chunk-3H5CFLVK.js.map} +1 -1
  25. package/dist/{chunk-QL2JYRBN.js → chunk-3X3IYDG6.js} +68 -68
  26. package/dist/{chunk-QL2JYRBN.js.map → chunk-3X3IYDG6.js.map} +1 -1
  27. package/dist/{chunk-N5365CGD.mjs → chunk-57E4TCB2.mjs} +3 -3
  28. package/dist/{chunk-N5365CGD.mjs.map → chunk-57E4TCB2.mjs.map} +1 -1
  29. package/dist/{chunk-4HP7XS5I.mjs → chunk-5W6LMDXV.mjs} +4 -4
  30. package/dist/{chunk-4HP7XS5I.mjs.map → chunk-5W6LMDXV.mjs.map} +1 -1
  31. package/dist/{chunk-EIZM2EQA.mjs → chunk-5YVOLHSW.mjs} +4 -4
  32. package/dist/{chunk-EIZM2EQA.mjs.map → chunk-5YVOLHSW.mjs.map} +1 -1
  33. package/dist/{chunk-ZWLMKOHZ.mjs → chunk-74BU2EBZ.mjs} +6 -6
  34. package/dist/{chunk-ZWLMKOHZ.mjs.map → chunk-74BU2EBZ.mjs.map} +1 -1
  35. package/dist/{chunk-7WIWDSF6.js → chunk-7JZFNKJD.js} +36 -36
  36. package/dist/{chunk-7WIWDSF6.js.map → chunk-7JZFNKJD.js.map} +1 -1
  37. package/dist/{chunk-DCBRGVD3.mjs → chunk-A4A3SQTV.mjs} +3 -3
  38. package/dist/{chunk-DCBRGVD3.mjs.map → chunk-A4A3SQTV.mjs.map} +1 -1
  39. package/dist/{chunk-JUDQX6MP.mjs → chunk-CZZOCKEA.mjs} +3 -3
  40. package/dist/{chunk-JUDQX6MP.mjs.map → chunk-CZZOCKEA.mjs.map} +1 -1
  41. package/dist/{chunk-DWIBK7GV.js → chunk-E57RZXOR.js} +25 -25
  42. package/dist/{chunk-DWIBK7GV.js.map → chunk-E57RZXOR.js.map} +1 -1
  43. package/dist/{chunk-Z3BMHKKH.mjs → chunk-E6C7MFHJ.mjs} +3 -3
  44. package/dist/{chunk-Z3BMHKKH.mjs.map → chunk-E6C7MFHJ.mjs.map} +1 -1
  45. package/dist/{chunk-P7GVXI7Y.mjs → chunk-EWYAM4WJ.mjs} +3 -3
  46. package/dist/{chunk-P7GVXI7Y.mjs.map → chunk-EWYAM4WJ.mjs.map} +1 -1
  47. package/dist/{chunk-VDO6MDQW.js → chunk-F35GFICG.js} +13 -13
  48. package/dist/{chunk-VDO6MDQW.js.map → chunk-F35GFICG.js.map} +1 -1
  49. package/dist/{chunk-BEUPW5WS.js → chunk-FKUIVS6I.js} +28 -28
  50. package/dist/{chunk-BEUPW5WS.js.map → chunk-FKUIVS6I.js.map} +1 -1
  51. package/dist/{chunk-GD6FHRHV.js → chunk-FNA66TT4.js} +3 -3
  52. package/dist/{chunk-GD6FHRHV.js.map → chunk-FNA66TT4.js.map} +1 -1
  53. package/dist/{chunk-RBB5YGWH.js → chunk-H37VDL7Y.js} +4 -4
  54. package/dist/{chunk-RBB5YGWH.js.map → chunk-H37VDL7Y.js.map} +1 -1
  55. package/dist/{chunk-KI4UPW4Z.js → chunk-HBOORO52.js} +4 -4
  56. package/dist/{chunk-KI4UPW4Z.js.map → chunk-HBOORO52.js.map} +1 -1
  57. package/dist/{chunk-MGZTZELL.mjs → chunk-KKXI7CPF.mjs} +3 -3
  58. package/dist/{chunk-MGZTZELL.mjs.map → chunk-KKXI7CPF.mjs.map} +1 -1
  59. package/dist/{chunk-IKH5IRDK.mjs → chunk-PCUINUIC.mjs} +3 -3
  60. package/dist/{chunk-IKH5IRDK.mjs.map → chunk-PCUINUIC.mjs.map} +1 -1
  61. package/dist/{chunk-CTCO2YI5.mjs → chunk-PYNXIDG3.mjs} +3 -3
  62. package/dist/{chunk-CTCO2YI5.mjs.map → chunk-PYNXIDG3.mjs.map} +1 -1
  63. package/dist/{chunk-MFAVWJWE.js → chunk-Q4QORAMH.js} +10 -10
  64. package/dist/{chunk-MFAVWJWE.js.map → chunk-Q4QORAMH.js.map} +1 -1
  65. package/dist/{chunk-ZF7RJNPD.js → chunk-Q7HRCCFT.js} +45 -45
  66. package/dist/{chunk-ZF7RJNPD.js.map → chunk-Q7HRCCFT.js.map} +1 -1
  67. package/dist/{chunk-R2RPRRB4.js → chunk-RCHTRG7R.js} +55 -55
  68. package/dist/{chunk-R2RPRRB4.js.map → chunk-RCHTRG7R.js.map} +1 -1
  69. package/dist/{chunk-FIB2CFJK.js → chunk-TCP45Q4B.js} +9 -9
  70. package/dist/{chunk-FIB2CFJK.js.map → chunk-TCP45Q4B.js.map} +1 -1
  71. package/dist/{chunk-SUU7XPRX.js → chunk-TJPPZU77.js} +34 -34
  72. package/dist/{chunk-SUU7XPRX.js.map → chunk-TJPPZU77.js.map} +1 -1
  73. package/dist/{chunk-XT76DMP5.js → chunk-VPFVW7ZF.js} +35 -35
  74. package/dist/{chunk-XT76DMP5.js.map → chunk-VPFVW7ZF.js.map} +1 -1
  75. package/dist/{chunk-IKHWYYZC.mjs → chunk-VS6PTRQ7.mjs} +3 -3
  76. package/dist/{chunk-IKHWYYZC.mjs.map → chunk-VS6PTRQ7.mjs.map} +1 -1
  77. package/dist/{chunk-YNHQ36UU.mjs → chunk-WDBVIU7W.mjs} +3 -3
  78. package/dist/{chunk-YNHQ36UU.mjs.map → chunk-WDBVIU7W.mjs.map} +1 -1
  79. package/dist/{chunk-MRLEINJN.mjs → chunk-ZP37M2QK.mjs} +7 -7
  80. package/dist/{chunk-MRLEINJN.mjs.map → chunk-ZP37M2QK.mjs.map} +1 -1
  81. package/dist/dynamic-island-confirm-BKsZkAEP.d.mts +17 -0
  82. package/dist/dynamic-island-confirm-BKsZkAEP.d.ts +17 -0
  83. package/dist/index-BNRGVAS5.d.mts +222 -0
  84. package/dist/index-BoebbJ44.d.mts +49 -0
  85. package/dist/index-BoebbJ44.d.ts +49 -0
  86. package/dist/index-CnCY-b5V.d.ts +222 -0
  87. package/dist/index.d.mts +5316 -0
  88. package/dist/index.d.ts +5316 -0
  89. package/dist/index.js +665 -665
  90. package/dist/index.mjs +2 -2
  91. package/dist/layout-engine-YZcVr20M.d.mts +19 -0
  92. package/dist/layout-engine-YZcVr20M.d.ts +19 -0
  93. package/dist/lib/i18n-context.d.mts +36 -0
  94. package/dist/lib/i18n-context.d.ts +36 -0
  95. package/dist/lib/router-context.d.mts +35 -0
  96. package/dist/lib/router-context.d.ts +35 -0
  97. package/dist/navigation-BiWVffAN.d.mts +49 -0
  98. package/dist/navigation-BiWVffAN.d.ts +49 -0
  99. package/dist/platform/admin/index.d.mts +17 -0
  100. package/dist/platform/admin/index.d.ts +17 -0
  101. package/dist/platform/admin/index.js +10 -10
  102. package/dist/platform/admin/index.mjs +4 -4
  103. package/dist/platform/agents-workspace.d.mts +19 -0
  104. package/dist/platform/agents-workspace.d.ts +19 -0
  105. package/dist/platform/agents-workspace.js +7 -7
  106. package/dist/platform/agents-workspace.mjs +6 -6
  107. package/dist/platform/app-shell.d.mts +64 -0
  108. package/dist/platform/app-shell.d.ts +64 -0
  109. package/dist/platform/app-shell.js +4 -4
  110. package/dist/platform/app-shell.mjs +3 -3
  111. package/dist/platform/auth/index.d.mts +73 -0
  112. package/dist/platform/auth/index.d.ts +73 -0
  113. package/dist/platform/auth/index.js +22 -22
  114. package/dist/platform/auth/index.mjs +4 -4
  115. package/dist/platform/billing/index.d.mts +29 -0
  116. package/dist/platform/billing/index.d.ts +29 -0
  117. package/dist/platform/billing/index.js +4 -4
  118. package/dist/platform/billing/index.mjs +3 -3
  119. package/dist/platform/impersonation/index.d.mts +19 -0
  120. package/dist/platform/impersonation/index.d.ts +19 -0
  121. package/dist/platform/impersonation/index.js +4 -4
  122. package/dist/platform/impersonation/index.mjs +3 -3
  123. package/dist/platform/index.d.mts +188 -0
  124. package/dist/platform/index.d.ts +188 -0
  125. package/dist/platform/index.js +86 -86
  126. package/dist/platform/index.mjs +18 -18
  127. package/dist/platform/pages/index.d.mts +574 -0
  128. package/dist/platform/pages/index.d.ts +574 -0
  129. package/dist/platform/pages/index.js +461 -264
  130. package/dist/platform/pages/index.js.map +1 -1
  131. package/dist/platform/pages/index.mjs +228 -31
  132. package/dist/platform/pages/index.mjs.map +1 -1
  133. package/dist/platform/rbac.d.mts +42 -0
  134. package/dist/platform/rbac.d.ts +42 -0
  135. package/dist/platform/settings/index.d.mts +31 -0
  136. package/dist/platform/settings/index.d.ts +31 -0
  137. package/dist/platform/settings/index.js +7 -7
  138. package/dist/platform/settings/index.mjs +6 -6
  139. package/dist/platform/telemetry/index.d.mts +51 -0
  140. package/dist/platform/telemetry/index.d.ts +51 -0
  141. package/dist/platform/utils/index.d.mts +32 -0
  142. package/dist/platform/utils/index.d.ts +32 -0
  143. package/dist/platform/windsock-admin-client.d.mts +57 -0
  144. package/dist/platform/windsock-admin-client.d.ts +57 -0
  145. package/dist/platform/workflow-api-client.d.mts +6 -0
  146. package/dist/platform/workflow-api-client.d.ts +6 -0
  147. package/dist/platform/workflow-canvas-shell.d.mts +18 -0
  148. package/dist/platform/workflow-canvas-shell.d.ts +18 -0
  149. package/dist/platform/workflow-canvas-shell.js +5 -5
  150. package/dist/platform/workflow-canvas-shell.mjs +4 -4
  151. package/dist/rule-form-BYJzyork.d.mts +128 -0
  152. package/dist/rule-form-BYJzyork.d.ts +128 -0
  153. package/dist/workflow-api-client-CpFl3WcG.d.mts +468 -0
  154. package/dist/workflow-api-client-uLICOanv.d.ts +468 -0
  155. package/dist/workflow-canvas--qaYKuMm.d.ts +113 -0
  156. package/dist/workflow-canvas-B80fmD_n.d.mts +113 -0
  157. package/dist/workflow-store-o17I6L6A.d.ts +79 -0
  158. package/dist/workflow-store-ppVHdMZi.d.mts +79 -0
  159. package/package.json +1 -1
@@ -0,0 +1,60 @@
1
+ import { WorkflowNodeType, LogicNodeConfig, WorkflowNode, WorkflowEdge, WorkflowGraph } from './contracts.js';
2
+ export { L as LayoutDirection, a as applyDagreLayout } from '../layout-engine-YZcVr20M.js';
3
+ import '@xyflow/react';
4
+
5
+ /**
6
+ * Logic Node Default Configs
7
+ * ==========================
8
+ * Factory function to create default configs for each logic node type.
9
+ */
10
+
11
+ declare function createDefaultLogicNodeConfig(nodeType: WorkflowNodeType): LogicNodeConfig | null;
12
+
13
+ /**
14
+ * Workflow Validator
15
+ * =================
16
+ * Localizes validation output inside the UI package while keeping issue codes
17
+ * stable enough for future contract tests against the backend validator.
18
+ */
19
+
20
+ type SupportedLocale = 'en' | 'pt-BR' | 'es' | 'fr' | 'de' | 'it';
21
+ type ValidationParams = Record<string, string | number | undefined>;
22
+ type ValidationLocale = SupportedLocale | string;
23
+ type ValidationIssueCode = 'graph.noAgents' | 'graph.missingSource' | 'graph.missingTarget' | 'graph.orphanNode' | 'graph.toolToNonAgent' | 'graph.ruleNoAgent' | 'graph.cycleDetected' | 'graph.multipleStartNodes' | 'graph.multipleEndNodes' | 'graph.startHasIncoming' | 'graph.endHasOutgoing' | 'graph.iterationNoOutgoing' | 'node.required' | 'node.requiredWhenLanguageSet' | 'node.codeShapeRequired' | 'node.mustBeArray' | 'node.mustBeReferenceArray' | 'node.mustBeNonEmptyReferenceArray' | 'node.assignmentNeedsSourceOrValue' | 'node.invalidAggregationMode' | 'node.invalidListOperation' | 'node.invalidLogicalOperator' | 'node.mustBeNumber' | 'node.invalidHttpMethod' | 'node.providerIdentityRequired' | 'node.inputOrInstructionsRequired' | 'node.invalidExtractionMode' | 'node.s3WriteSourceOrBodyRequired' | 'node.unknownType';
24
+ type ValidationIssue = {
25
+ code: ValidationIssueCode;
26
+ message: string;
27
+ params?: ValidationParams;
28
+ };
29
+ type NodeValidationIssue = ValidationIssue & {
30
+ nodeId: string;
31
+ nodeType: string;
32
+ field?: string;
33
+ };
34
+ type ValidationResult = {
35
+ valid: boolean;
36
+ errors: string[];
37
+ issues: ValidationIssue[];
38
+ nodeIssues: NodeValidationIssue[];
39
+ };
40
+ type ValidationOptions = {
41
+ locale?: ValidationLocale;
42
+ };
43
+ declare function validateNodeConfig(node: WorkflowNode, options?: ValidationOptions): NodeValidationIssue[];
44
+ declare function validateGraphNodeConfigs(graph: WorkflowGraph, options?: ValidationOptions): NodeValidationIssue[];
45
+ declare function validateWorkflowGraph(graph: WorkflowGraph, options?: ValidationOptions): ValidationResult;
46
+ declare function topologicalSortAgents(agentNodes: WorkflowNode[], edges: WorkflowEdge[], nodeMap: Map<string, WorkflowNode>): WorkflowNode[];
47
+
48
+ /**
49
+ * Agent ELO Tier
50
+ * ==============
51
+ * Derives difficulty tier from agent ELO rating.
52
+ * Used in node palette, agent flow node, and agent modal.
53
+ */
54
+ type AgentTier = {
55
+ key: 'beginner' | 'intermediate' | 'advanced' | 'expert';
56
+ pillColor: string;
57
+ };
58
+ declare function getAgentTier(elo: number | undefined): AgentTier;
59
+
60
+ export { type AgentTier, type NodeValidationIssue, type ValidationResult, createDefaultLogicNodeConfig, getAgentTier, topologicalSortAgents, validateGraphNodeConfigs, validateNodeConfig, validateWorkflowGraph };
@@ -0,0 +1,6 @@
1
+ import 'react/jsx-runtime';
2
+ import 'react';
3
+ export { a as Workspace, W as WorkspaceProps } from '../workflow-canvas-B80fmD_n.mjs';
4
+ import './contracts.mjs';
5
+ import '../index-BNRGVAS5.mjs';
6
+ import '@xyflow/react';
@@ -0,0 +1,6 @@
1
+ import 'react/jsx-runtime';
2
+ import 'react';
3
+ export { a as Workspace, W as WorkspaceProps } from '../workflow-canvas--qaYKuMm.js';
4
+ import './contracts.js';
5
+ import '../index-CnCY-b5V.js';
6
+ import '@xyflow/react';
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkQL2JYRBN_js = require('../chunk-QL2JYRBN.js');
5
- require('../chunk-GD6FHRHV.js');
4
+ var chunk3X3IYDG6_js = require('../chunk-3X3IYDG6.js');
5
+ require('../chunk-FNA66TT4.js');
6
+ require('../chunk-YXN2K77G.js');
6
7
  require('../chunk-SY4MUT5V.js');
7
8
  require('../chunk-2OZZH2IO.js');
8
- require('../chunk-YXN2K77G.js');
9
9
  require('../chunk-EZQ2D47U.js');
10
10
  require('../chunk-BHOT22QL.js');
11
11
  require('../chunk-UZ3CMNUJ.js');
@@ -16,7 +16,7 @@ require('../chunk-72SWXOD5.js');
16
16
 
17
17
  Object.defineProperty(exports, "Workspace", {
18
18
  enumerable: true,
19
- get: function () { return chunkQL2JYRBN_js.Workspace; }
19
+ get: function () { return chunk3X3IYDG6_js.Workspace; }
20
20
  });
21
21
  //# sourceMappingURL=workflow-canvas.js.map
22
22
  //# sourceMappingURL=workflow-canvas.js.map
@@ -1,9 +1,9 @@
1
1
  "use client";
2
- export { Workspace } from '../chunk-N5365CGD.mjs';
3
- import '../chunk-Z3BMHKKH.mjs';
2
+ export { Workspace } from '../chunk-57E4TCB2.mjs';
3
+ import '../chunk-E6C7MFHJ.mjs';
4
+ import '../chunk-7VJ7CMMT.mjs';
4
5
  import '../chunk-RHRJXK5R.mjs';
5
6
  import '../chunk-3AY5HIQ6.mjs';
6
- import '../chunk-7VJ7CMMT.mjs';
7
7
  import '../chunk-PLTLRL2V.mjs';
8
8
  import '../chunk-WR55H7DH.mjs';
9
9
  import '../chunk-D2JF6C3E.mjs';
@@ -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,18 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ interface BillingPanelProps {
4
+ /**
5
+ * Which billing interval to prefer when starting checkout. Defaults to
6
+ * `'monthly'`. Surface a toggle in the host app if both matter.
7
+ */
8
+ defaultBillingInterval?: 'monthly' | 'yearly';
9
+ /**
10
+ * Called after the portal/checkout URL is resolved. Defaults to
11
+ * `window.location.assign(url)`. Override to open in a new tab, use a
12
+ * router, etc.
13
+ */
14
+ onRedirect?: (url: string) => void;
15
+ }
16
+ declare function BillingPanel({ defaultBillingInterval, onRedirect, }: BillingPanelProps): react_jsx_runtime.JSX.Element;
17
+
18
+ export { BillingPanel as B, type BillingPanelProps as a };
@@ -0,0 +1,18 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ interface BillingPanelProps {
4
+ /**
5
+ * Which billing interval to prefer when starting checkout. Defaults to
6
+ * `'monthly'`. Surface a toggle in the host app if both matter.
7
+ */
8
+ defaultBillingInterval?: 'monthly' | 'yearly';
9
+ /**
10
+ * Called after the portal/checkout URL is resolved. Defaults to
11
+ * `window.location.assign(url)`. Override to open in a new tab, use a
12
+ * router, etc.
13
+ */
14
+ onRedirect?: (url: string) => void;
15
+ }
16
+ declare function BillingPanel({ defaultBillingInterval, onRedirect, }: BillingPanelProps): react_jsx_runtime.JSX.Element;
17
+
18
+ export { BillingPanel as B, type BillingPanelProps as a };
@@ -0,0 +1,71 @@
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 astrlabeIcon from '@datatechsolutions/ui/src/brand/logos/astrlabe-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 windsock: {
41
+ readonly text: "text-emerald-400";
42
+ readonly textLight: "text-emerald-300";
43
+ readonly badgeBg: "bg-emerald-500/10";
44
+ readonly badgeText: "text-emerald-300";
45
+ readonly ring: "ring-emerald-500/30";
46
+ readonly border: "border-emerald-500/30";
47
+ readonly borderGlow: "border-emerald-500/20";
48
+ readonly surfaceBg: "bg-emerald-500/[0.06]";
49
+ readonly dot: "bg-emerald-400";
50
+ readonly tileGradient: "from-emerald-600/80 to-teal-600/80";
51
+ readonly tileShadow: "shadow-emerald-500/20";
52
+ readonly gradient: "from-emerald-400 to-teal-400";
53
+ };
54
+ readonly fakhir: {
55
+ readonly text: "text-red-400";
56
+ readonly textLight: "text-red-300";
57
+ readonly badgeBg: "bg-red-500/10";
58
+ readonly badgeText: "text-red-300";
59
+ readonly ring: "ring-red-500/30";
60
+ readonly border: "border-red-500/30";
61
+ readonly borderGlow: "border-red-500/20";
62
+ readonly surfaceBg: "bg-red-500/[0.06]";
63
+ readonly dot: "bg-red-400";
64
+ readonly tileGradient: "from-red-600/80 to-rose-600/80";
65
+ readonly tileShadow: "shadow-red-500/20";
66
+ readonly gradient: "from-red-400 to-rose-400";
67
+ };
68
+ };
69
+ type AppId = keyof typeof APP_THEMES;
70
+
71
+ export { APP_THEMES, type AppId, type AppTheme };
@@ -0,0 +1,71 @@
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 astrlabeIcon from '@datatechsolutions/ui/src/brand/logos/astrlabe-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 windsock: {
41
+ readonly text: "text-emerald-400";
42
+ readonly textLight: "text-emerald-300";
43
+ readonly badgeBg: "bg-emerald-500/10";
44
+ readonly badgeText: "text-emerald-300";
45
+ readonly ring: "ring-emerald-500/30";
46
+ readonly border: "border-emerald-500/30";
47
+ readonly borderGlow: "border-emerald-500/20";
48
+ readonly surfaceBg: "bg-emerald-500/[0.06]";
49
+ readonly dot: "bg-emerald-400";
50
+ readonly tileGradient: "from-emerald-600/80 to-teal-600/80";
51
+ readonly tileShadow: "shadow-emerald-500/20";
52
+ readonly gradient: "from-emerald-400 to-teal-400";
53
+ };
54
+ readonly fakhir: {
55
+ readonly text: "text-red-400";
56
+ readonly textLight: "text-red-300";
57
+ readonly badgeBg: "bg-red-500/10";
58
+ readonly badgeText: "text-red-300";
59
+ readonly ring: "ring-red-500/30";
60
+ readonly border: "border-red-500/30";
61
+ readonly borderGlow: "border-red-500/20";
62
+ readonly surfaceBg: "bg-red-500/[0.06]";
63
+ readonly dot: "bg-red-400";
64
+ readonly tileGradient: "from-red-600/80 to-rose-600/80";
65
+ readonly tileShadow: "shadow-red-500/20";
66
+ readonly gradient: "from-red-400 to-rose-400";
67
+ };
68
+ };
69
+ type AppId = keyof typeof APP_THEMES;
70
+
71
+ export { APP_THEMES, type AppId, type AppTheme };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { Workspace } from './chunk-N5365CGD.mjs';
2
+ import { Workspace } from './chunk-57E4TCB2.mjs';
3
3
  import { useLocale } from './chunk-7VJ7CMMT.mjs';
4
4
  import { jsx } from 'react/jsx-runtime';
5
5
 
@@ -16,5 +16,5 @@ function WorkflowCanvasShell({ graph, messages }) {
16
16
  }
17
17
 
18
18
  export { WorkflowCanvasShell };
19
- //# sourceMappingURL=chunk-GAN7AKZ2.mjs.map
20
- //# sourceMappingURL=chunk-GAN7AKZ2.mjs.map
19
+ //# sourceMappingURL=chunk-32DHEVOH.mjs.map
20
+ //# sourceMappingURL=chunk-32DHEVOH.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/platform/workflow-canvas-shell.tsx"],"names":[],"mappings":";;;;AAkBO,SAAS,mBAAA,CAAoB,EAAE,KAAA,EAAO,QAAA,EAAS,EAAU;AAC9D,EAAA,MAAM,SAAS,SAAA,EAAU;AACzB,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAc,KAAA;AAAA,MACd,MAAA;AAAA,MACC,GAAI,QAAA,GAAW,EAAE,QAAA,KAAa;AAAC;AAAA,GAClC;AAEJ","file":"chunk-GAN7AKZ2.mjs","sourcesContent":["import { useLocale } from '@ui/lib/i18n-context'\nimport { Workspace } from '@ui/astrlabe/workflow-canvas'\nimport type { WorkflowGraph as UiWorkflowGraph } from '@ui/astrlabe'\nimport type { WorkflowCanvasShellProps } from '@datatechsolutions/shared-domain/common'\n\n/**\n * Workflow canvas shell with optional message bundle override.\n *\n * Most apps wrap their tree in `<I18nProvider>` and let the canvas read\n * messages from context — in that case `messages` can be omitted. Apps\n * that need to inject a precomputed bundle (e.g. for tests or app-specific\n * overrides not shipped with shared-domain) can pass it explicitly.\n */\ntype Props = WorkflowCanvasShellProps & {\n /** Optional override for the messages catalog passed into the canvas. */\n messages?: Record<string, unknown>\n}\n\nexport function WorkflowCanvasShell({ graph, messages }: Props) {\n const locale = useLocale()\n return (\n <Workspace\n initialGraph={graph as unknown as UiWorkflowGraph}\n locale={locale}\n {...(messages ? { messages } : {})}\n />\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/platform/workflow-canvas-shell.tsx"],"names":[],"mappings":";;;;AAkBO,SAAS,mBAAA,CAAoB,EAAE,KAAA,EAAO,QAAA,EAAS,EAAU;AAC9D,EAAA,MAAM,SAAS,SAAA,EAAU;AACzB,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAc,KAAA;AAAA,MACd,MAAA;AAAA,MACC,GAAI,QAAA,GAAW,EAAE,QAAA,KAAa;AAAC;AAAA,GAClC;AAEJ","file":"chunk-32DHEVOH.mjs","sourcesContent":["import { useLocale } from '@ui/lib/i18n-context'\nimport { Workspace } from '@ui/astrlabe/workflow-canvas'\nimport type { WorkflowGraph as UiWorkflowGraph } from '@ui/astrlabe'\nimport type { WorkflowCanvasShellProps } from '@datatechsolutions/shared-domain/common'\n\n/**\n * Workflow canvas shell with optional message bundle override.\n *\n * Most apps wrap their tree in `<I18nProvider>` and let the canvas read\n * messages from context — in that case `messages` can be omitted. Apps\n * that need to inject a precomputed bundle (e.g. for tests or app-specific\n * overrides not shipped with shared-domain) can pass it explicitly.\n */\ntype Props = WorkflowCanvasShellProps & {\n /** Optional override for the messages catalog passed into the canvas. */\n messages?: Record<string, unknown>\n}\n\nexport function WorkflowCanvasShell({ graph, messages }: Props) {\n const locale = useLocale()\n return (\n <Workspace\n initialGraph={graph as unknown as UiWorkflowGraph}\n locale={locale}\n {...(messages ? { messages } : {})}\n />\n )\n}\n"]}