@datatechsolutions/ui 3.2.1 → 3.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.
Files changed (182) hide show
  1. package/dist/astrlabe/contracts.d.mts +31 -3
  2. package/dist/astrlabe/contracts.d.ts +31 -3
  3. package/dist/astrlabe/index.d.mts +22 -30
  4. package/dist/astrlabe/index.d.ts +22 -30
  5. package/dist/astrlabe/index.js +121 -121
  6. package/dist/astrlabe/index.mjs +7 -7
  7. package/dist/astrlabe/utils.js +9 -9
  8. package/dist/astrlabe/utils.mjs +2 -2
  9. package/dist/astrlabe/workflow-canvas.d.mts +6 -69
  10. package/dist/astrlabe/workflow-canvas.d.ts +6 -69
  11. package/dist/astrlabe/workflow-canvas.js +6 -6
  12. package/dist/astrlabe/workflow-canvas.mjs +5 -5
  13. package/dist/brand/index.d.mts +1 -15
  14. package/dist/brand/index.d.ts +1 -15
  15. package/dist/brand/index.js +0 -14
  16. package/dist/brand/index.js.map +1 -1
  17. package/dist/brand/index.mjs +0 -14
  18. package/dist/brand/index.mjs.map +1 -1
  19. package/dist/{chunk-FAGDZEKM.js → chunk-2OZZH2IO.js} +2 -2
  20. package/dist/chunk-2OZZH2IO.js.map +1 -0
  21. package/dist/{chunk-SYNVNTLJ.mjs → chunk-3AY5HIQ6.mjs} +2 -2
  22. package/dist/chunk-3AY5HIQ6.mjs.map +1 -0
  23. package/dist/{chunk-JSNRCYSO.js → chunk-45QAUEYT.js} +4 -4
  24. package/dist/{chunk-JSNRCYSO.js.map → chunk-45QAUEYT.js.map} +1 -1
  25. package/dist/{chunk-B67DP7MI.mjs → chunk-4GDWGWHY.mjs} +4 -4
  26. package/dist/{chunk-B67DP7MI.mjs.map → chunk-4GDWGWHY.mjs.map} +1 -1
  27. package/dist/{chunk-KR2X2WHJ.js → chunk-4ICEQJH4.js} +53 -53
  28. package/dist/{chunk-KR2X2WHJ.js.map → chunk-4ICEQJH4.js.map} +1 -1
  29. package/dist/{chunk-RXZNACMI.js → chunk-6MBWKOPF.js} +33 -33
  30. package/dist/{chunk-RXZNACMI.js.map → chunk-6MBWKOPF.js.map} +1 -1
  31. package/dist/{chunk-C3H4FM4A.js → chunk-72SWXOD5.js} +15 -2
  32. package/dist/chunk-72SWXOD5.js.map +1 -0
  33. package/dist/{chunk-JN6IL6OH.mjs → chunk-AGGOHPMZ.mjs} +1054 -5229
  34. package/dist/chunk-AGGOHPMZ.mjs.map +1 -0
  35. package/dist/{chunk-5GDKCFM5.mjs → chunk-AL73YAV4.mjs} +3 -3
  36. package/dist/{chunk-5GDKCFM5.mjs.map → chunk-AL73YAV4.mjs.map} +1 -1
  37. package/dist/{chunk-ZJPNP2YW.mjs → chunk-BUDZNAKL.mjs} +2 -2
  38. package/dist/chunk-BUDZNAKL.mjs.map +1 -0
  39. package/dist/{chunk-OL73LBX5.mjs → chunk-BW67WFHT.mjs} +3 -4
  40. package/dist/chunk-BW67WFHT.mjs.map +1 -0
  41. package/dist/{chunk-W5OEBO6E.js → chunk-CF7GOUBQ.js} +13 -14
  42. package/dist/chunk-CF7GOUBQ.js.map +1 -0
  43. package/dist/{chunk-IRPS5UCS.mjs → chunk-CUWPLPVY.mjs} +3 -3
  44. package/dist/{chunk-IRPS5UCS.mjs.map → chunk-CUWPLPVY.mjs.map} +1 -1
  45. package/dist/{chunk-NJS2YC3J.js → chunk-DJDZIRM6.js} +12 -2
  46. package/dist/chunk-DJDZIRM6.js.map +1 -0
  47. package/dist/{chunk-RL35XATZ.js → chunk-ERCDMBRT.js} +702 -647
  48. package/dist/chunk-ERCDMBRT.js.map +1 -0
  49. package/dist/{chunk-I2NZGVBG.js → chunk-FSBR4RCK.js} +1101 -5313
  50. package/dist/chunk-FSBR4RCK.js.map +1 -0
  51. package/dist/{chunk-5W7L7BT7.mjs → chunk-G7JQ4OCE.mjs} +15 -2
  52. package/dist/chunk-G7JQ4OCE.mjs.map +1 -0
  53. package/dist/{chunk-5RM6NGZ6.mjs → chunk-IDEM3DYF.mjs} +3 -3
  54. package/dist/{chunk-5RM6NGZ6.mjs.map → chunk-IDEM3DYF.mjs.map} +1 -1
  55. package/dist/{chunk-U7XM3N7F.mjs → chunk-LEXBTVGM.mjs} +12 -2
  56. package/dist/chunk-LEXBTVGM.mjs.map +1 -0
  57. package/dist/{chunk-EFOXN3LC.js → chunk-M7KSEUZR.js} +490 -389
  58. package/dist/chunk-M7KSEUZR.js.map +1 -0
  59. package/dist/{chunk-AOUUZ52N.js → chunk-MO5FBVV3.js} +85 -86
  60. package/dist/chunk-MO5FBVV3.js.map +1 -0
  61. package/dist/{chunk-H2D2CRTD.mjs → chunk-NAFWHJCM.mjs} +8 -8
  62. package/dist/{chunk-H2D2CRTD.mjs.map → chunk-NAFWHJCM.mjs.map} +1 -1
  63. package/dist/{chunk-3JJWPOK6.js → chunk-NCLZKVJK.js} +9 -10
  64. package/dist/chunk-NCLZKVJK.js.map +1 -0
  65. package/dist/{chunk-R4TQWXNG.mjs → chunk-NVQWHJQH.mjs} +6 -5
  66. package/dist/chunk-NVQWHJQH.mjs.map +1 -0
  67. package/dist/{chunk-Y6AEE56Q.js → chunk-PGVZKMOA.js} +69 -69
  68. package/dist/{chunk-Y6AEE56Q.js.map → chunk-PGVZKMOA.js.map} +1 -1
  69. package/dist/{chunk-UDDZTTLO.mjs → chunk-QBFE7ABE.mjs} +6 -7
  70. package/dist/chunk-QBFE7ABE.mjs.map +1 -0
  71. package/dist/{chunk-3ZUMJTDT.mjs → chunk-RFRXS4PC.mjs} +3 -4
  72. package/dist/{chunk-3JJWPOK6.js.map → chunk-RFRXS4PC.mjs.map} +1 -1
  73. package/dist/{chunk-ZV5EZXXO.mjs → chunk-RHRJXK5R.mjs} +3 -3
  74. package/dist/{chunk-ZV5EZXXO.mjs.map → chunk-RHRJXK5R.mjs.map} +1 -1
  75. package/dist/{chunk-SU3YPWFW.js → chunk-RLLP7VQJ.js} +26 -26
  76. package/dist/{chunk-SU3YPWFW.js.map → chunk-RLLP7VQJ.js.map} +1 -1
  77. package/dist/{chunk-YIB2YAM5.mjs → chunk-RLVOG5OQ.mjs} +3 -3
  78. package/dist/{chunk-YIB2YAM5.mjs.map → chunk-RLVOG5OQ.mjs.map} +1 -1
  79. package/dist/{chunk-QYA53LUF.mjs → chunk-SEYUYGER.mjs} +571 -517
  80. package/dist/chunk-SEYUYGER.mjs.map +1 -0
  81. package/dist/{chunk-YV72JM4B.mjs → chunk-SQ4KGLBZ.mjs} +4 -4
  82. package/dist/{chunk-YV72JM4B.mjs.map → chunk-SQ4KGLBZ.mjs.map} +1 -1
  83. package/dist/{chunk-F54Q2YJY.js → chunk-SY4MUT5V.js} +7 -7
  84. package/dist/{chunk-F54Q2YJY.js.map → chunk-SY4MUT5V.js.map} +1 -1
  85. package/dist/{chunk-ZM5MVWIT.js → chunk-TUQLZ4QD.js} +5 -6
  86. package/dist/chunk-TUQLZ4QD.js.map +1 -0
  87. package/dist/{chunk-TVMLV675.js → chunk-UE2RDQIK.js} +98 -95
  88. package/dist/chunk-UE2RDQIK.js.map +1 -0
  89. package/dist/{chunk-HDCUWUNH.js → chunk-UJVDI66K.js} +28 -27
  90. package/dist/chunk-UJVDI66K.js.map +1 -0
  91. package/dist/{chunk-IRT4T3CU.mjs → chunk-VV6SYMPM.mjs} +423 -321
  92. package/dist/chunk-VV6SYMPM.mjs.map +1 -0
  93. package/dist/{chunk-HZ4LOVHM.js → chunk-VY52Y5GC.js} +2 -2
  94. package/dist/chunk-VY52Y5GC.js.map +1 -0
  95. package/dist/{chunk-LEKZUS6N.mjs → chunk-X3GW7UPN.mjs} +4 -5
  96. package/dist/chunk-X3GW7UPN.mjs.map +1 -0
  97. package/dist/{chunk-RGI74SQH.js → chunk-Y2AYFG4E.js} +4 -4
  98. package/dist/{chunk-RGI74SQH.js.map → chunk-Y2AYFG4E.js.map} +1 -1
  99. package/dist/{chunk-TIJJHW2Z.js → chunk-YV7F7IXG.js} +36 -36
  100. package/dist/{chunk-TIJJHW2Z.js.map → chunk-YV7F7IXG.js.map} +1 -1
  101. package/dist/{chunk-MVBIAXVN.mjs → chunk-ZKSDDFHG.mjs} +14 -11
  102. package/dist/chunk-ZKSDDFHG.mjs.map +1 -0
  103. package/dist/{index-VI9gyJXl.d.mts → index-BNRGVAS5.d.mts} +9 -2
  104. package/dist/index-BoebbJ44.d.mts +49 -0
  105. package/dist/index-BoebbJ44.d.ts +49 -0
  106. package/dist/{index-CoB18TbG.d.ts → index-CnCY-b5V.d.ts} +9 -2
  107. package/dist/index.d.mts +399 -548
  108. package/dist/index.d.ts +399 -548
  109. package/dist/index.js +727 -887
  110. package/dist/index.mjs +3 -3
  111. package/dist/platform/admin/index.js +12 -12
  112. package/dist/platform/admin/index.mjs +6 -6
  113. package/dist/platform/agents-workspace.js +10 -10
  114. package/dist/platform/agents-workspace.mjs +9 -9
  115. package/dist/platform/app-shell.js +5 -5
  116. package/dist/platform/app-shell.mjs +4 -4
  117. package/dist/platform/auth/index.js +29 -29
  118. package/dist/platform/auth/index.mjs +6 -6
  119. package/dist/platform/billing/index.js +5 -5
  120. package/dist/platform/billing/index.mjs +4 -4
  121. package/dist/platform/impersonation/index.js +5 -5
  122. package/dist/platform/impersonation/index.mjs +4 -4
  123. package/dist/platform/index.d.mts +3 -39
  124. package/dist/platform/index.d.ts +3 -39
  125. package/dist/platform/index.js +102 -4812
  126. package/dist/platform/index.js.map +1 -1
  127. package/dist/platform/index.mjs +25 -4730
  128. package/dist/platform/index.mjs.map +1 -1
  129. package/dist/platform/pages/index.d.mts +4 -4
  130. package/dist/platform/pages/index.d.ts +4 -4
  131. package/dist/platform/pages/index.js +199 -199
  132. package/dist/platform/pages/index.mjs +11 -11
  133. package/dist/platform/rbac.d.mts +2 -1
  134. package/dist/platform/rbac.d.ts +2 -1
  135. package/dist/platform/rbac.js +2 -2
  136. package/dist/platform/rbac.mjs +1 -1
  137. package/dist/platform/settings/index.js +9 -9
  138. package/dist/platform/settings/index.mjs +8 -8
  139. package/dist/platform/utils/index.js +3 -3
  140. package/dist/platform/utils/index.js.map +1 -1
  141. package/dist/platform/utils/index.mjs +1 -1
  142. package/dist/platform/utils/index.mjs.map +1 -1
  143. package/dist/platform/workflow-api-client.d.mts +2 -2
  144. package/dist/platform/workflow-api-client.d.ts +2 -2
  145. package/dist/platform/workflow-api-client.js +62 -62
  146. package/dist/platform/workflow-api-client.mjs +2 -2
  147. package/dist/platform/workflow-canvas-shell.js +7 -7
  148. package/dist/platform/workflow-canvas-shell.mjs +6 -6
  149. package/dist/{workflow-api-client-DoYj7nHz.d.mts → workflow-api-client-CpFl3WcG.d.mts} +1 -1
  150. package/dist/{workflow-api-client-BKD8OfP_.d.ts → workflow-api-client-uLICOanv.d.ts} +1 -1
  151. package/dist/workflow-canvas--qaYKuMm.d.ts +113 -0
  152. package/dist/workflow-canvas-B80fmD_n.d.mts +113 -0
  153. package/package.json +15 -5
  154. package/src/styles/liquid-glass.css +283 -2
  155. package/dist/chunk-3ZUMJTDT.mjs.map +0 -1
  156. package/dist/chunk-5W7L7BT7.mjs.map +0 -1
  157. package/dist/chunk-AOUUZ52N.js.map +0 -1
  158. package/dist/chunk-C3H4FM4A.js.map +0 -1
  159. package/dist/chunk-EFOXN3LC.js.map +0 -1
  160. package/dist/chunk-FAGDZEKM.js.map +0 -1
  161. package/dist/chunk-HDCUWUNH.js.map +0 -1
  162. package/dist/chunk-HZ4LOVHM.js.map +0 -1
  163. package/dist/chunk-I2NZGVBG.js.map +0 -1
  164. package/dist/chunk-IRT4T3CU.mjs.map +0 -1
  165. package/dist/chunk-JN6IL6OH.mjs.map +0 -1
  166. package/dist/chunk-LEKZUS6N.mjs.map +0 -1
  167. package/dist/chunk-MVBIAXVN.mjs.map +0 -1
  168. package/dist/chunk-NJS2YC3J.js.map +0 -1
  169. package/dist/chunk-OL73LBX5.mjs.map +0 -1
  170. package/dist/chunk-QYA53LUF.mjs.map +0 -1
  171. package/dist/chunk-R4TQWXNG.mjs.map +0 -1
  172. package/dist/chunk-RL35XATZ.js.map +0 -1
  173. package/dist/chunk-SYNVNTLJ.mjs.map +0 -1
  174. package/dist/chunk-TVMLV675.js.map +0 -1
  175. package/dist/chunk-U7XM3N7F.mjs.map +0 -1
  176. package/dist/chunk-UDDZTTLO.mjs.map +0 -1
  177. package/dist/chunk-W5OEBO6E.js.map +0 -1
  178. package/dist/chunk-ZJPNP2YW.mjs.map +0 -1
  179. package/dist/chunk-ZM5MVWIT.js.map +0 -1
  180. package/src/brand/logos/kori-icon.svg +0 -45
  181. package/src/brand/logos/kori-logo-dark.svg +0 -40
  182. package/src/brand/logos/kori-logo.svg +0 -43
@@ -1,38 +1,38 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkNJS2YC3J_js = require('../chunk-NJS2YC3J.js');
5
- var chunkC3H4FM4A_js = require('../chunk-C3H4FM4A.js');
4
+ var chunkDJDZIRM6_js = require('../chunk-DJDZIRM6.js');
5
+ var chunk72SWXOD5_js = require('../chunk-72SWXOD5.js');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "topologicalSortAgents", {
10
10
  enumerable: true,
11
- get: function () { return chunkNJS2YC3J_js.topologicalSortAgents; }
11
+ get: function () { return chunkDJDZIRM6_js.topologicalSortAgents; }
12
12
  });
13
13
  Object.defineProperty(exports, "validateGraphNodeConfigs", {
14
14
  enumerable: true,
15
- get: function () { return chunkNJS2YC3J_js.validateGraphNodeConfigs; }
15
+ get: function () { return chunkDJDZIRM6_js.validateGraphNodeConfigs; }
16
16
  });
17
17
  Object.defineProperty(exports, "validateNodeConfig", {
18
18
  enumerable: true,
19
- get: function () { return chunkNJS2YC3J_js.validateNodeConfig; }
19
+ get: function () { return chunkDJDZIRM6_js.validateNodeConfig; }
20
20
  });
21
21
  Object.defineProperty(exports, "validateWorkflowGraph", {
22
22
  enumerable: true,
23
- get: function () { return chunkNJS2YC3J_js.validateWorkflowGraph; }
23
+ get: function () { return chunkDJDZIRM6_js.validateWorkflowGraph; }
24
24
  });
25
25
  Object.defineProperty(exports, "applyDagreLayout", {
26
26
  enumerable: true,
27
- get: function () { return chunkC3H4FM4A_js.applyDagreLayout; }
27
+ get: function () { return chunk72SWXOD5_js.applyDagreLayout; }
28
28
  });
29
29
  Object.defineProperty(exports, "createDefaultLogicNodeConfig", {
30
30
  enumerable: true,
31
- get: function () { return chunkC3H4FM4A_js.createDefaultLogicNodeConfig; }
31
+ get: function () { return chunk72SWXOD5_js.createDefaultLogicNodeConfig; }
32
32
  });
33
33
  Object.defineProperty(exports, "getAgentTier", {
34
34
  enumerable: true,
35
- get: function () { return chunkC3H4FM4A_js.getAgentTier; }
35
+ get: function () { return chunk72SWXOD5_js.getAgentTier; }
36
36
  });
37
37
  //# sourceMappingURL=utils.js.map
38
38
  //# sourceMappingURL=utils.js.map
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- export { topologicalSortAgents, validateGraphNodeConfigs, validateNodeConfig, validateWorkflowGraph } from '../chunk-U7XM3N7F.mjs';
3
- export { applyDagreLayout, createDefaultLogicNodeConfig, getAgentTier } from '../chunk-5W7L7BT7.mjs';
2
+ export { topologicalSortAgents, validateGraphNodeConfigs, validateNodeConfig, validateWorkflowGraph } from '../chunk-LEXBTVGM.mjs';
3
+ export { applyDagreLayout, createDefaultLogicNodeConfig, getAgentTier } from '../chunk-G7JQ4OCE.mjs';
4
4
  //# sourceMappingURL=utils.mjs.map
5
5
  //# sourceMappingURL=utils.mjs.map
@@ -1,69 +1,6 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ComponentProps } from 'react';
3
- import { NodeTypes } from '@xyflow/react';
4
- import { A as AgentWithPrompts, W as WorkflowEntityDefinition } from '../index-VI9gyJXl.mjs';
5
- import { AgentModel, WorkflowTool, AgentTool, AgentRule, WorkflowGraph, LogicNodeConfig } from './contracts.mjs';
6
-
7
- type AgentModalRenderProps = {
8
- agent: AgentWithPrompts | null;
9
- models: AgentModel[];
10
- open: boolean;
11
- isCreateMode: boolean;
12
- onClose: () => void;
13
- onSaved: () => void;
14
- };
15
- type LogicNodeModalRenderProps = {
16
- nodeId: string | null;
17
- nodeLabel: string;
18
- config: LogicNodeConfig | null;
19
- open: boolean;
20
- onClose: () => void;
21
- onSave: (nodeId: string, updatedConfig: LogicNodeConfig) => void;
22
- entities: WorkflowEntityDefinition[];
23
- };
24
- type WorkflowCanvasProps = {
25
- agents: AgentWithPrompts[];
26
- models: AgentModel[];
27
- tools?: WorkflowTool[];
28
- agentTools?: AgentTool[];
29
- rules?: AgentRule[];
30
- entities?: WorkflowEntityDefinition[];
31
- datasources?: Array<{
32
- id: string;
33
- name: string;
34
- dialect: string;
35
- }>;
36
- onLoadTables?: (datasourceId: string) => Promise<string[]>;
37
- onLoadSchema?: (datasourceId: string, table: string) => Promise<Array<{
38
- name: string;
39
- type: string;
40
- nullable?: boolean;
41
- }>>;
42
- initialGraph?: WorkflowGraph | null;
43
- onGraphChange?: (graph: WorkflowGraph) => void;
44
- onEditTool?: (tool: WorkflowTool) => void;
45
- onToggleTool?: (tool: WorkflowTool) => void;
46
- onEditRule?: (rule: AgentRule) => void;
47
- onToggleRule?: (rule: AgentRule) => void;
48
- onCancelCreateAgent?: () => void;
49
- onAgentSaved?: () => void;
50
- isCreatingAgent?: boolean;
51
- /** Custom node type components — merged with built-in edge types */
52
- nodeTypes?: NodeTypes;
53
- /** Optional: render the AgentModal externally (frontend provides the component) */
54
- renderAgentModal?: (props: AgentModalRenderProps) => React.ReactNode;
55
- /** Optional: render a custom LogicNodeModal; defaults to internal modal */
56
- renderLogicNodeModal?: (props: LogicNodeModalRenderProps) => React.ReactNode;
57
- };
58
- declare function WorkflowCanvas(props: WorkflowCanvasProps): react_jsx_runtime.JSX.Element;
59
-
60
- type BuilderCanvasProps = ComponentProps<typeof WorkflowCanvas>;
61
- type WorkspaceProps = {
62
- locale?: string;
63
- messages?: Record<string, unknown>;
64
- className?: string;
65
- workflowId?: string;
66
- } & Partial<BuilderCanvasProps>;
67
- declare function Workspace({ locale, messages, className, workflowId, ...canvasProps }: WorkspaceProps): react_jsx_runtime.JSX.Element;
68
-
69
- export { Workspace, type WorkspaceProps };
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';
@@ -1,69 +1,6 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ComponentProps } from 'react';
3
- import { NodeTypes } from '@xyflow/react';
4
- import { A as AgentWithPrompts, W as WorkflowEntityDefinition } from '../index-CoB18TbG.js';
5
- import { AgentModel, WorkflowTool, AgentTool, AgentRule, WorkflowGraph, LogicNodeConfig } from './contracts.js';
6
-
7
- type AgentModalRenderProps = {
8
- agent: AgentWithPrompts | null;
9
- models: AgentModel[];
10
- open: boolean;
11
- isCreateMode: boolean;
12
- onClose: () => void;
13
- onSaved: () => void;
14
- };
15
- type LogicNodeModalRenderProps = {
16
- nodeId: string | null;
17
- nodeLabel: string;
18
- config: LogicNodeConfig | null;
19
- open: boolean;
20
- onClose: () => void;
21
- onSave: (nodeId: string, updatedConfig: LogicNodeConfig) => void;
22
- entities: WorkflowEntityDefinition[];
23
- };
24
- type WorkflowCanvasProps = {
25
- agents: AgentWithPrompts[];
26
- models: AgentModel[];
27
- tools?: WorkflowTool[];
28
- agentTools?: AgentTool[];
29
- rules?: AgentRule[];
30
- entities?: WorkflowEntityDefinition[];
31
- datasources?: Array<{
32
- id: string;
33
- name: string;
34
- dialect: string;
35
- }>;
36
- onLoadTables?: (datasourceId: string) => Promise<string[]>;
37
- onLoadSchema?: (datasourceId: string, table: string) => Promise<Array<{
38
- name: string;
39
- type: string;
40
- nullable?: boolean;
41
- }>>;
42
- initialGraph?: WorkflowGraph | null;
43
- onGraphChange?: (graph: WorkflowGraph) => void;
44
- onEditTool?: (tool: WorkflowTool) => void;
45
- onToggleTool?: (tool: WorkflowTool) => void;
46
- onEditRule?: (rule: AgentRule) => void;
47
- onToggleRule?: (rule: AgentRule) => void;
48
- onCancelCreateAgent?: () => void;
49
- onAgentSaved?: () => void;
50
- isCreatingAgent?: boolean;
51
- /** Custom node type components — merged with built-in edge types */
52
- nodeTypes?: NodeTypes;
53
- /** Optional: render the AgentModal externally (frontend provides the component) */
54
- renderAgentModal?: (props: AgentModalRenderProps) => React.ReactNode;
55
- /** Optional: render a custom LogicNodeModal; defaults to internal modal */
56
- renderLogicNodeModal?: (props: LogicNodeModalRenderProps) => React.ReactNode;
57
- };
58
- declare function WorkflowCanvas(props: WorkflowCanvasProps): react_jsx_runtime.JSX.Element;
59
-
60
- type BuilderCanvasProps = ComponentProps<typeof WorkflowCanvas>;
61
- type WorkspaceProps = {
62
- locale?: string;
63
- messages?: Record<string, unknown>;
64
- className?: string;
65
- workflowId?: string;
66
- } & Partial<BuilderCanvasProps>;
67
- declare function Workspace({ locale, messages, className, workflowId, ...canvasProps }: WorkspaceProps): react_jsx_runtime.JSX.Element;
68
-
69
- export { Workspace, type WorkspaceProps };
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,21 +1,21 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkEFOXN3LC_js = require('../chunk-EFOXN3LC.js');
5
- require('../chunk-I2NZGVBG.js');
4
+ var chunkM7KSEUZR_js = require('../chunk-M7KSEUZR.js');
5
+ require('../chunk-FSBR4RCK.js');
6
6
  require('../chunk-UZ3CMNUJ.js');
7
7
  require('../chunk-YXN2K77G.js');
8
8
  require('../chunk-S7KHTUHA.js');
9
- require('../chunk-F54Q2YJY.js');
10
- require('../chunk-FAGDZEKM.js');
9
+ require('../chunk-SY4MUT5V.js');
10
+ require('../chunk-2OZZH2IO.js');
11
11
  require('../chunk-P4YYEM4B.js');
12
- require('../chunk-C3H4FM4A.js');
12
+ require('../chunk-72SWXOD5.js');
13
13
 
14
14
 
15
15
 
16
16
  Object.defineProperty(exports, "Workspace", {
17
17
  enumerable: true,
18
- get: function () { return chunkEFOXN3LC_js.Workspace; }
18
+ get: function () { return chunkM7KSEUZR_js.Workspace; }
19
19
  });
20
20
  //# sourceMappingURL=workflow-canvas.js.map
21
21
  //# sourceMappingURL=workflow-canvas.js.map
@@ -1,12 +1,12 @@
1
1
  "use client";
2
- export { Workspace } from '../chunk-IRT4T3CU.mjs';
3
- import '../chunk-JN6IL6OH.mjs';
2
+ export { Workspace } from '../chunk-VV6SYMPM.mjs';
3
+ import '../chunk-AGGOHPMZ.mjs';
4
4
  import '../chunk-D2JF6C3E.mjs';
5
5
  import '../chunk-7VJ7CMMT.mjs';
6
6
  import '../chunk-QWG2FMUN.mjs';
7
- import '../chunk-ZV5EZXXO.mjs';
8
- import '../chunk-SYNVNTLJ.mjs';
7
+ import '../chunk-RHRJXK5R.mjs';
8
+ import '../chunk-3AY5HIQ6.mjs';
9
9
  import '../chunk-OZNTQROP.mjs';
10
- import '../chunk-5W7L7BT7.mjs';
10
+ import '../chunk-G7JQ4OCE.mjs';
11
11
  //# sourceMappingURL=workflow-canvas.mjs.map
12
12
  //# sourceMappingURL=workflow-canvas.mjs.map
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Logo SVGs live in src/brand/logos/ and are published as-is.
7
7
  * Vite apps can import them directly:
8
- * import koriIcon from '@datatechsolutions/ui/src/brand/logos/kori-icon.svg'
8
+ * import astrlabeIcon from '@datatechsolutions/ui/src/brand/logos/astrlabe-icon.svg'
9
9
  * Or use the APP_LOGOS/APP_THEMES which re-export them (works in Vite).
10
10
  */
11
11
  interface AppTheme {
@@ -37,20 +37,6 @@ declare const APP_THEMES: {
37
37
  readonly tileShadow: "shadow-violet-500/20";
38
38
  readonly gradient: "from-violet-400 to-purple-400";
39
39
  };
40
- readonly 'kori-erp': {
41
- readonly text: "text-orange-400";
42
- readonly textLight: "text-orange-300";
43
- readonly badgeBg: "bg-orange-500/10";
44
- readonly badgeText: "text-orange-300";
45
- readonly ring: "ring-orange-500/30";
46
- readonly border: "border-orange-500/30";
47
- readonly borderGlow: "border-orange-500/20";
48
- readonly surfaceBg: "bg-orange-500/[0.06]";
49
- readonly dot: "bg-orange-400";
50
- readonly tileGradient: "from-orange-600/80 to-amber-600/80";
51
- readonly tileShadow: "shadow-orange-500/20";
52
- readonly gradient: "from-orange-400 to-amber-400";
53
- };
54
40
  readonly windsock: {
55
41
  readonly text: "text-emerald-400";
56
42
  readonly textLight: "text-emerald-300";
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Logo SVGs live in src/brand/logos/ and are published as-is.
7
7
  * Vite apps can import them directly:
8
- * import koriIcon from '@datatechsolutions/ui/src/brand/logos/kori-icon.svg'
8
+ * import astrlabeIcon from '@datatechsolutions/ui/src/brand/logos/astrlabe-icon.svg'
9
9
  * Or use the APP_LOGOS/APP_THEMES which re-export them (works in Vite).
10
10
  */
11
11
  interface AppTheme {
@@ -37,20 +37,6 @@ declare const APP_THEMES: {
37
37
  readonly tileShadow: "shadow-violet-500/20";
38
38
  readonly gradient: "from-violet-400 to-purple-400";
39
39
  };
40
- readonly 'kori-erp': {
41
- readonly text: "text-orange-400";
42
- readonly textLight: "text-orange-300";
43
- readonly badgeBg: "bg-orange-500/10";
44
- readonly badgeText: "text-orange-300";
45
- readonly ring: "ring-orange-500/30";
46
- readonly border: "border-orange-500/30";
47
- readonly borderGlow: "border-orange-500/20";
48
- readonly surfaceBg: "bg-orange-500/[0.06]";
49
- readonly dot: "bg-orange-400";
50
- readonly tileGradient: "from-orange-600/80 to-amber-600/80";
51
- readonly tileShadow: "shadow-orange-500/20";
52
- readonly gradient: "from-orange-400 to-amber-400";
53
- };
54
40
  readonly windsock: {
55
41
  readonly text: "text-emerald-400";
56
42
  readonly textLight: "text-emerald-300";
@@ -17,20 +17,6 @@ var APP_THEMES = {
17
17
  tileShadow: "shadow-violet-500/20",
18
18
  gradient: "from-violet-400 to-purple-400"
19
19
  },
20
- "kori-erp": {
21
- text: "text-orange-400",
22
- textLight: "text-orange-300",
23
- badgeBg: "bg-orange-500/10",
24
- badgeText: "text-orange-300",
25
- ring: "ring-orange-500/30",
26
- border: "border-orange-500/30",
27
- borderGlow: "border-orange-500/20",
28
- surfaceBg: "bg-orange-500/[0.06]",
29
- dot: "bg-orange-400",
30
- tileGradient: "from-orange-600/80 to-amber-600/80",
31
- tileShadow: "shadow-orange-500/20",
32
- gradient: "from-orange-400 to-amber-400"
33
- },
34
20
  windsock: {
35
21
  text: "text-emerald-400",
36
22
  textLight: "text-emerald-300",
@@ -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,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 koriIcon from '@datatechsolutions/ui/src/brand/logos/kori-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 '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
+ {"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,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 astrlabeIcon from '@datatechsolutions/ui/src/brand/logos/astrlabe-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 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"]}
@@ -15,20 +15,6 @@ var APP_THEMES = {
15
15
  tileShadow: "shadow-violet-500/20",
16
16
  gradient: "from-violet-400 to-purple-400"
17
17
  },
18
- "kori-erp": {
19
- text: "text-orange-400",
20
- textLight: "text-orange-300",
21
- badgeBg: "bg-orange-500/10",
22
- badgeText: "text-orange-300",
23
- ring: "ring-orange-500/30",
24
- border: "border-orange-500/30",
25
- borderGlow: "border-orange-500/20",
26
- surfaceBg: "bg-orange-500/[0.06]",
27
- dot: "bg-orange-400",
28
- tileGradient: "from-orange-600/80 to-amber-600/80",
29
- tileShadow: "shadow-orange-500/20",
30
- gradient: "from-orange-400 to-amber-400"
31
- },
32
18
  windsock: {
33
19
  text: "text-emerald-400",
34
20
  textLight: "text-emerald-300",
@@ -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,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 koriIcon from '@datatechsolutions/ui/src/brand/logos/kori-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 '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
+ {"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,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 astrlabeIcon from '@datatechsolutions/ui/src/brand/logos/astrlabe-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 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"]}
@@ -19,5 +19,5 @@ function buildLambdaApiUrl(path) {
19
19
 
20
20
  exports.buildLambdaApiUrl = buildLambdaApiUrl;
21
21
  exports.getLambdaApiBase = getLambdaApiBase;
22
- //# sourceMappingURL=chunk-FAGDZEKM.js.map
23
- //# sourceMappingURL=chunk-FAGDZEKM.js.map
22
+ //# sourceMappingURL=chunk-2OZZH2IO.js.map
23
+ //# sourceMappingURL=chunk-2OZZH2IO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/platform/utils/lambda-endpoint.ts"],"names":[],"mappings":";;;AAEA,IAAM,oBAAoB,CAAC,KAAA,KAA0B,KAAA,CAAM,OAAA,CAAQ,OAAO,EAAE,CAAA;AAErE,SAAS,gBAAA,GAA2B;AACzC,EAAA,MAAM,UAAA,GAAa,SAAY,CAAI,uBAAA;AACnC,EAAA,IAAI,UAAA,IAAc,WAAW,IAAA,EAAK,CAAE,SAAS,CAAA,EAAG,OAAO,kBAAkB,UAAU,CAAA;AAEnF,EAAA,MAAM,WAAA,GAAc,SAAY,CAAI,oBAAA;AACpC,EAAA,IAAI,WAAA,IAAe,YAAY,IAAA,EAAK,CAAE,SAAS,CAAA,EAAG,OAAO,kBAAkB,WAAW,CAAA;AAEtF,EAAA,MAAM,IAAI,KAAA;AAAA,IACR;AAAA,GACF;AACF;AAEO,SAAS,kBAAkB,IAAA,EAAsB;AACtD,EAAA,MAAM,iBAAiB,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,GAAI,IAAA,GAAO,IAAI,IAAI,CAAA,CAAA;AAC7D,EAAA,OAAO,CAAA,EAAG,gBAAA,EAAkB,CAAA,EAAG,cAAc,CAAA,CAAA;AAC/C","file":"chunk-2OZZH2IO.js","sourcesContent":["// `import.meta.env` is augmented in src/svg.d.ts.\n\nconst trimTrailingSlash = (value: string): string => value.replace(/\\/$/, '')\n\nexport function getLambdaApiBase(): string {\n const directBase = import.meta.env.VITE_LAMBDA_CLIENT_BASE\n if (directBase && directBase.trim().length > 0) return trimTrailingSlash(directBase)\n\n const gatewayBase = import.meta.env.VITE_API_GATEWAY_URL\n if (gatewayBase && gatewayBase.trim().length > 0) return trimTrailingSlash(gatewayBase)\n\n throw new Error(\n 'Missing workflow API base URL. Set VITE_LAMBDA_CLIENT_BASE or VITE_API_GATEWAY_URL.'\n )\n}\n\nexport function buildLambdaApiUrl(path: string): string {\n const normalizedPath = path.startsWith('/') ? path : `/${path}`\n return `${getLambdaApiBase()}${normalizedPath}`\n}\n"]}
@@ -16,5 +16,5 @@ function buildLambdaApiUrl(path) {
16
16
  }
17
17
 
18
18
  export { buildLambdaApiUrl, getLambdaApiBase };
19
- //# sourceMappingURL=chunk-SYNVNTLJ.mjs.map
20
- //# sourceMappingURL=chunk-SYNVNTLJ.mjs.map
19
+ //# sourceMappingURL=chunk-3AY5HIQ6.mjs.map
20
+ //# sourceMappingURL=chunk-3AY5HIQ6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/platform/utils/lambda-endpoint.ts"],"names":[],"mappings":";AAEA,IAAM,oBAAoB,CAAC,KAAA,KAA0B,KAAA,CAAM,OAAA,CAAQ,OAAO,EAAE,CAAA;AAErE,SAAS,gBAAA,GAA2B;AACzC,EAAA,MAAM,UAAA,GAAa,YAAY,GAAA,CAAI,uBAAA;AACnC,EAAA,IAAI,UAAA,IAAc,WAAW,IAAA,EAAK,CAAE,SAAS,CAAA,EAAG,OAAO,kBAAkB,UAAU,CAAA;AAEnF,EAAA,MAAM,WAAA,GAAc,YAAY,GAAA,CAAI,oBAAA;AACpC,EAAA,IAAI,WAAA,IAAe,YAAY,IAAA,EAAK,CAAE,SAAS,CAAA,EAAG,OAAO,kBAAkB,WAAW,CAAA;AAEtF,EAAA,MAAM,IAAI,KAAA;AAAA,IACR;AAAA,GACF;AACF;AAEO,SAAS,kBAAkB,IAAA,EAAsB;AACtD,EAAA,MAAM,iBAAiB,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,GAAI,IAAA,GAAO,IAAI,IAAI,CAAA,CAAA;AAC7D,EAAA,OAAO,CAAA,EAAG,gBAAA,EAAkB,CAAA,EAAG,cAAc,CAAA,CAAA;AAC/C","file":"chunk-3AY5HIQ6.mjs","sourcesContent":["// `import.meta.env` is augmented in src/svg.d.ts.\n\nconst trimTrailingSlash = (value: string): string => value.replace(/\\/$/, '')\n\nexport function getLambdaApiBase(): string {\n const directBase = import.meta.env.VITE_LAMBDA_CLIENT_BASE\n if (directBase && directBase.trim().length > 0) return trimTrailingSlash(directBase)\n\n const gatewayBase = import.meta.env.VITE_API_GATEWAY_URL\n if (gatewayBase && gatewayBase.trim().length > 0) return trimTrailingSlash(gatewayBase)\n\n throw new Error(\n 'Missing workflow API base URL. Set VITE_LAMBDA_CLIENT_BASE or VITE_API_GATEWAY_URL.'\n )\n}\n\nexport function buildLambdaApiUrl(path: string): string {\n const normalizedPath = path.startsWith('/') ? path : `/${path}`\n return `${getLambdaApiBase()}${normalizedPath}`\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkI2NZGVBG_js = require('./chunk-I2NZGVBG.js');
4
+ var chunkFSBR4RCK_js = require('./chunk-FSBR4RCK.js');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
 
7
7
  function OtpInput({
@@ -120,7 +120,7 @@ function SocialLoginButtons({
120
120
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-2.5", children: providers.map((provider) => {
121
121
  const { label, Icon } = PROVIDER_CONFIG[provider];
122
122
  return /* @__PURE__ */ jsxRuntime.jsxs(
123
- chunkI2NZGVBG_js.Button,
123
+ chunkFSBR4RCK_js.Button,
124
124
  {
125
125
  type: "button",
126
126
  color: "ios-glass-blue",
@@ -144,5 +144,5 @@ exports.BackupCodeGrid = BackupCodeGrid;
144
144
  exports.OtpInput = OtpInput;
145
145
  exports.PasswordStrengthMeter = PasswordStrengthMeter;
146
146
  exports.SocialLoginButtons = SocialLoginButtons;
147
- //# sourceMappingURL=chunk-JSNRCYSO.js.map
148
- //# sourceMappingURL=chunk-JSNRCYSO.js.map
147
+ //# sourceMappingURL=chunk-45QAUEYT.js.map
148
+ //# sourceMappingURL=chunk-45QAUEYT.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/platform/auth/components.tsx"],"names":["jsxs","jsx","Button"],"mappings":"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","file":"chunk-JSNRCYSO.js","sourcesContent":["import React, { type ReactNode } from 'react'\nimport { Button } from '@ui/index'\n\n// =============================================================================\n// Stub UI components for windsock auth flows\n// These components are not exported by @datatechsolutions/ui and are defined\n// locally with minimal implementations.\n// =============================================================================\n\n// ── SocialProvider type ─────────────────────────────────────────────────────\n\nexport type SocialProvider = 'google' | 'github' | 'discord' | 'microsoft' | 'apple' | 'amazon'\n\n// ── OtpInput ────────────────────────────────────────────────────────────────\n\nexport interface OtpInputProps {\n value: string\n onChange: (value: string) => void\n onComplete?: (code: string) => void\n error?: string\n disabled?: boolean\n autoFocus?: boolean\n length?: number\n}\n\nexport function OtpInput({\n value,\n onChange,\n onComplete,\n error,\n disabled = false,\n autoFocus = false,\n length = 6,\n}: OtpInputProps) {\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = event.target.value.replace(/\\D/g, '').slice(0, length)\n onChange(newValue)\n if (newValue.length === length && onComplete) {\n onComplete(newValue)\n }\n }\n\n return (\n <div className=\"space-y-1\">\n <input\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n maxLength={length}\n value={value}\n onChange={handleChange}\n disabled={disabled}\n autoFocus={autoFocus}\n className={`w-full rounded-xl border px-4 py-3 text-center font-mono text-2xl tracking-[0.5em] transition-colors focus:outline-none focus:ring-2 focus:ring-blue-500 ${\n error\n ? 'border-red-500 bg-red-50 dark:border-red-400 dark:bg-red-900/20'\n : 'border-gray-300 bg-white dark:border-white/20 dark:bg-white/5'\n } ${disabled ? 'opacity-50 cursor-not-allowed' : ''}`}\n aria-invalid={!!error}\n />\n {error && (\n <p className=\"text-xs text-red-600 dark:text-red-400 text-center\">{error}</p>\n )}\n </div>\n )\n}\n\n// ── PasswordStrengthMeter ───────────────────────────────────────────────────\n\nexport interface PasswordStrengthMeterProps {\n password: string\n policy?: unknown\n showRequirements?: boolean\n}\n\nexport function PasswordStrengthMeter({\n password,\n showRequirements = false,\n}: PasswordStrengthMeterProps) {\n const strength = Math.min(4, Math.floor(password.length / 3))\n const colors = ['bg-red-500', 'bg-orange-500', 'bg-yellow-500', 'bg-lime-500', 'bg-green-500']\n const labels = ['Very weak', 'Weak', 'Fair', 'Strong', 'Very strong']\n\n if (!password) return null\n\n return (\n <div className=\"space-y-1.5\">\n <div className=\"flex gap-1\">\n {Array.from({ length: 4 }, (_, index) => (\n <div\n key={index}\n className={`h-1 flex-1 rounded-full transition-colors ${\n index <= strength - 1 ? colors[strength] : 'bg-gray-200 dark:bg-white/10'\n }`}\n />\n ))}\n </div>\n {showRequirements && (\n <p className=\"text-xs text-gray-500 dark:text-gray-400\">{labels[strength]}</p>\n )}\n </div>\n )\n}\n\n// ── BackupCodeGrid ──────────────────────────────────────────────────────────\n\nexport interface BackupCodeGridProps {\n codes: string[]\n revealed?: boolean\n}\n\nexport function BackupCodeGrid({ codes, revealed = false }: BackupCodeGridProps) {\n return (\n <div className=\"grid grid-cols-2 gap-2\">\n {codes.map((code, index) => (\n <div\n key={index}\n className=\"rounded-lg border border-gray-200 bg-gray-50 px-3 py-2 text-center font-mono text-sm dark:border-white/10 dark:bg-white/5\"\n >\n {revealed ? code : '\\u2022\\u2022\\u2022\\u2022\\u2022\\u2022\\u2022\\u2022'}\n </div>\n ))}\n </div>\n )\n}\n\n// ── AuthLayout ──────────────────────────────────────────────────────────────\n\nexport interface AuthLayoutProps {\n children: ReactNode\n heroPanel?: unknown\n}\n\nexport function AuthLayout({ children }: AuthLayoutProps) {\n return (\n <div className=\"w-full max-w-md mx-auto\">\n {children}\n </div>\n )\n}\n\n// ── SocialLoginButtons ──────────────────────────────────────────────────────\n\nexport interface SocialLoginButtonsProps {\n providers: SocialProvider[]\n onProviderClick: (provider: SocialProvider) => void\n loading?: SocialProvider | null\n disabled?: boolean\n}\n\nfunction GoogleIcon() {\n return (\n <svg className=\"h-5 w-5 shrink-0\" viewBox=\"0 0 24 24\">\n <path d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z\" fill=\"#4285F4\" />\n <path d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\" fill=\"#34A853\" />\n <path d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\" fill=\"#FBBC05\" />\n <path d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\" fill=\"#EA4335\" />\n </svg>\n )\n}\n\nfunction GitHubIcon() {\n return (\n <svg className=\"h-5 w-5 shrink-0 text-gray-800 dark:text-white\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z\" />\n </svg>\n )\n}\n\nfunction MicrosoftIcon() {\n return (\n <svg className=\"h-5 w-5 shrink-0\" viewBox=\"0 0 24 24\">\n <rect x=\"1\" y=\"1\" width=\"10\" height=\"10\" fill=\"#F25022\" />\n <rect x=\"13\" y=\"1\" width=\"10\" height=\"10\" fill=\"#7FBA00\" />\n <rect x=\"1\" y=\"13\" width=\"10\" height=\"10\" fill=\"#00A4EF\" />\n <rect x=\"13\" y=\"13\" width=\"10\" height=\"10\" fill=\"#FFB900\" />\n </svg>\n )\n}\n\nfunction AppleIcon() {\n return (\n <svg className=\"h-5 w-5 shrink-0 text-gray-800 dark:text-white\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z\" />\n </svg>\n )\n}\n\nfunction AmazonIcon() {\n return (\n <svg className=\"h-5 w-5 shrink-0\" viewBox=\"0 0 24 24\">\n <path d=\"M13.958 10.09c0 1.232.029 2.256-.591 3.351-.502.891-1.301 1.438-2.186 1.438-1.214 0-1.922-.924-1.922-2.292 0-2.692 2.415-3.182 4.7-3.182v.685zm3.186 7.705a.66.66 0 0 1-.753.077c-1.06-.876-1.25-1.283-1.828-2.119-1.748 1.783-2.986 2.317-5.249 2.317-2.681 0-4.768-1.653-4.768-4.96 0-2.583 1.4-4.34 3.392-5.2 1.727-.753 4.14-.886 5.98-1.094v-.408c0-.748.058-1.634-.383-2.28-.383-.579-1.117-.816-1.765-.816-1.2 0-2.266.615-2.527 1.89a.556.556 0 0 1-.481.482l-2.7-.291c-.224-.05-.474-.231-.41-.574C6.41 1.62 9.647.5 12.564.5c1.476 0 3.406.393 4.573 1.51 1.476 1.38 1.336 3.224 1.336 5.229v4.736c0 1.423.59 2.047 1.145 2.816.196.275.24.604-.01.807-.626.524-1.74 1.499-2.352 2.044l-.112.062z\" fill=\"#FF9900\" />\n <path d=\"M21.558 18.494c-1.94 1.432-4.753 2.195-7.178 2.195-3.396 0-6.453-1.255-8.765-3.344-.182-.164-.02-.389.199-.261 2.497 1.453 5.584 2.328 8.773 2.328 2.152 0 4.517-.446 6.694-1.37.328-.14.603.216.277.452z\" fill=\"#FF9900\" />\n <path d=\"M22.323 17.168c-.247-.317-1.636-.15-2.261-.076-.19.022-.219-.142-.048-.261 1.107-.777 2.923-.553 3.134-.293.212.264-.055 2.087-1.095 2.959-.16.134-.312.063-.241-.114.234-.583.758-1.899.511-2.215z\" fill=\"#FF9900\" />\n </svg>\n )\n}\n\nfunction DiscordIcon() {\n return (\n <svg className=\"h-5 w-5 shrink-0\" viewBox=\"0 0 24 24\">\n <path d=\"M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z\" fill=\"#5865F2\" />\n </svg>\n )\n}\n\nconst PROVIDER_CONFIG: Record<SocialProvider, { label: string; Icon: React.FC }> = {\n google: { label: 'Google', Icon: GoogleIcon },\n github: { label: 'GitHub', Icon: GitHubIcon },\n microsoft: { label: 'Microsoft', Icon: MicrosoftIcon },\n apple: { label: 'Apple', Icon: AppleIcon },\n amazon: { label: 'Amazon', Icon: AmazonIcon },\n discord: { label: 'Discord', Icon: DiscordIcon },\n}\n\nexport function SocialLoginButtons({\n providers,\n onProviderClick,\n loading,\n disabled = false,\n}: SocialLoginButtonsProps) {\n return (\n <div className=\"flex flex-col gap-2.5\">\n {providers.map((provider) => {\n const { label, Icon } = PROVIDER_CONFIG[provider]\n return (\n <Button\n key={provider}\n type=\"button\"\n color=\"ios-glass-blue\"\n size=\"lg\"\n fullWidth\n onClick={() => onProviderClick(provider)}\n disabled={disabled || (loading != null && loading !== provider)}\n loading={loading === provider}\n >\n {loading !== provider && <Icon />}\n {label}\n </Button>\n )\n })}\n </div>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/platform/auth/components.tsx"],"names":["jsxs","jsx","Button"],"mappings":"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","file":"chunk-45QAUEYT.js","sourcesContent":["import React, { type ReactNode } from 'react'\nimport { Button } from '@ui/index'\n\n// =============================================================================\n// Stub UI components for windsock auth flows\n// These components are not exported by @datatechsolutions/ui and are defined\n// locally with minimal implementations.\n// =============================================================================\n\n// ── SocialProvider type ─────────────────────────────────────────────────────\n\nexport type SocialProvider = 'google' | 'github' | 'discord' | 'microsoft' | 'apple' | 'amazon'\n\n// ── OtpInput ────────────────────────────────────────────────────────────────\n\nexport interface OtpInputProps {\n value: string\n onChange: (value: string) => void\n onComplete?: (code: string) => void\n error?: string\n disabled?: boolean\n autoFocus?: boolean\n length?: number\n}\n\nexport function OtpInput({\n value,\n onChange,\n onComplete,\n error,\n disabled = false,\n autoFocus = false,\n length = 6,\n}: OtpInputProps) {\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = event.target.value.replace(/\\D/g, '').slice(0, length)\n onChange(newValue)\n if (newValue.length === length && onComplete) {\n onComplete(newValue)\n }\n }\n\n return (\n <div className=\"space-y-1\">\n <input\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n maxLength={length}\n value={value}\n onChange={handleChange}\n disabled={disabled}\n autoFocus={autoFocus}\n className={`w-full rounded-xl border px-4 py-3 text-center font-mono text-2xl tracking-[0.5em] transition-colors focus:outline-none focus:ring-2 focus:ring-blue-500 ${\n error\n ? 'border-red-500 bg-red-50 dark:border-red-400 dark:bg-red-900/20'\n : 'border-gray-300 bg-white dark:border-white/20 dark:bg-white/5'\n } ${disabled ? 'opacity-50 cursor-not-allowed' : ''}`}\n aria-invalid={!!error}\n />\n {error && (\n <p className=\"text-xs text-red-600 dark:text-red-400 text-center\">{error}</p>\n )}\n </div>\n )\n}\n\n// ── PasswordStrengthMeter ───────────────────────────────────────────────────\n\nexport interface PasswordStrengthMeterProps {\n password: string\n policy?: unknown\n showRequirements?: boolean\n}\n\nexport function PasswordStrengthMeter({\n password,\n showRequirements = false,\n}: PasswordStrengthMeterProps) {\n const strength = Math.min(4, Math.floor(password.length / 3))\n const colors = ['bg-red-500', 'bg-orange-500', 'bg-yellow-500', 'bg-lime-500', 'bg-green-500']\n const labels = ['Very weak', 'Weak', 'Fair', 'Strong', 'Very strong']\n\n if (!password) return null\n\n return (\n <div className=\"space-y-1.5\">\n <div className=\"flex gap-1\">\n {Array.from({ length: 4 }, (_, index) => (\n <div\n key={index}\n className={`h-1 flex-1 rounded-full transition-colors ${\n index <= strength - 1 ? colors[strength] : 'bg-gray-200 dark:bg-white/10'\n }`}\n />\n ))}\n </div>\n {showRequirements && (\n <p className=\"text-xs text-gray-500 dark:text-gray-400\">{labels[strength]}</p>\n )}\n </div>\n )\n}\n\n// ── BackupCodeGrid ──────────────────────────────────────────────────────────\n\nexport interface BackupCodeGridProps {\n codes: string[]\n revealed?: boolean\n}\n\nexport function BackupCodeGrid({ codes, revealed = false }: BackupCodeGridProps) {\n return (\n <div className=\"grid grid-cols-2 gap-2\">\n {codes.map((code, index) => (\n <div\n key={index}\n className=\"rounded-lg border border-gray-200 bg-gray-50 px-3 py-2 text-center font-mono text-sm dark:border-white/10 dark:bg-white/5\"\n >\n {revealed ? code : '\\u2022\\u2022\\u2022\\u2022\\u2022\\u2022\\u2022\\u2022'}\n </div>\n ))}\n </div>\n )\n}\n\n// ── AuthLayout ──────────────────────────────────────────────────────────────\n\nexport interface AuthLayoutProps {\n children: ReactNode\n heroPanel?: unknown\n}\n\nexport function AuthLayout({ children }: AuthLayoutProps) {\n return (\n <div className=\"w-full max-w-md mx-auto\">\n {children}\n </div>\n )\n}\n\n// ── SocialLoginButtons ──────────────────────────────────────────────────────\n\nexport interface SocialLoginButtonsProps {\n providers: SocialProvider[]\n onProviderClick: (provider: SocialProvider) => void\n loading?: SocialProvider | null\n disabled?: boolean\n}\n\nfunction GoogleIcon() {\n return (\n <svg className=\"h-5 w-5 shrink-0\" viewBox=\"0 0 24 24\">\n <path d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z\" fill=\"#4285F4\" />\n <path d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\" fill=\"#34A853\" />\n <path d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\" fill=\"#FBBC05\" />\n <path d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\" fill=\"#EA4335\" />\n </svg>\n )\n}\n\nfunction GitHubIcon() {\n return (\n <svg className=\"h-5 w-5 shrink-0 text-gray-800 dark:text-white\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z\" />\n </svg>\n )\n}\n\nfunction MicrosoftIcon() {\n return (\n <svg className=\"h-5 w-5 shrink-0\" viewBox=\"0 0 24 24\">\n <rect x=\"1\" y=\"1\" width=\"10\" height=\"10\" fill=\"#F25022\" />\n <rect x=\"13\" y=\"1\" width=\"10\" height=\"10\" fill=\"#7FBA00\" />\n <rect x=\"1\" y=\"13\" width=\"10\" height=\"10\" fill=\"#00A4EF\" />\n <rect x=\"13\" y=\"13\" width=\"10\" height=\"10\" fill=\"#FFB900\" />\n </svg>\n )\n}\n\nfunction AppleIcon() {\n return (\n <svg className=\"h-5 w-5 shrink-0 text-gray-800 dark:text-white\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z\" />\n </svg>\n )\n}\n\nfunction AmazonIcon() {\n return (\n <svg className=\"h-5 w-5 shrink-0\" viewBox=\"0 0 24 24\">\n <path d=\"M13.958 10.09c0 1.232.029 2.256-.591 3.351-.502.891-1.301 1.438-2.186 1.438-1.214 0-1.922-.924-1.922-2.292 0-2.692 2.415-3.182 4.7-3.182v.685zm3.186 7.705a.66.66 0 0 1-.753.077c-1.06-.876-1.25-1.283-1.828-2.119-1.748 1.783-2.986 2.317-5.249 2.317-2.681 0-4.768-1.653-4.768-4.96 0-2.583 1.4-4.34 3.392-5.2 1.727-.753 4.14-.886 5.98-1.094v-.408c0-.748.058-1.634-.383-2.28-.383-.579-1.117-.816-1.765-.816-1.2 0-2.266.615-2.527 1.89a.556.556 0 0 1-.481.482l-2.7-.291c-.224-.05-.474-.231-.41-.574C6.41 1.62 9.647.5 12.564.5c1.476 0 3.406.393 4.573 1.51 1.476 1.38 1.336 3.224 1.336 5.229v4.736c0 1.423.59 2.047 1.145 2.816.196.275.24.604-.01.807-.626.524-1.74 1.499-2.352 2.044l-.112.062z\" fill=\"#FF9900\" />\n <path d=\"M21.558 18.494c-1.94 1.432-4.753 2.195-7.178 2.195-3.396 0-6.453-1.255-8.765-3.344-.182-.164-.02-.389.199-.261 2.497 1.453 5.584 2.328 8.773 2.328 2.152 0 4.517-.446 6.694-1.37.328-.14.603.216.277.452z\" fill=\"#FF9900\" />\n <path d=\"M22.323 17.168c-.247-.317-1.636-.15-2.261-.076-.19.022-.219-.142-.048-.261 1.107-.777 2.923-.553 3.134-.293.212.264-.055 2.087-1.095 2.959-.16.134-.312.063-.241-.114.234-.583.758-1.899.511-2.215z\" fill=\"#FF9900\" />\n </svg>\n )\n}\n\nfunction DiscordIcon() {\n return (\n <svg className=\"h-5 w-5 shrink-0\" viewBox=\"0 0 24 24\">\n <path d=\"M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z\" fill=\"#5865F2\" />\n </svg>\n )\n}\n\nconst PROVIDER_CONFIG: Record<SocialProvider, { label: string; Icon: React.FC }> = {\n google: { label: 'Google', Icon: GoogleIcon },\n github: { label: 'GitHub', Icon: GitHubIcon },\n microsoft: { label: 'Microsoft', Icon: MicrosoftIcon },\n apple: { label: 'Apple', Icon: AppleIcon },\n amazon: { label: 'Amazon', Icon: AmazonIcon },\n discord: { label: 'Discord', Icon: DiscordIcon },\n}\n\nexport function SocialLoginButtons({\n providers,\n onProviderClick,\n loading,\n disabled = false,\n}: SocialLoginButtonsProps) {\n return (\n <div className=\"flex flex-col gap-2.5\">\n {providers.map((provider) => {\n const { label, Icon } = PROVIDER_CONFIG[provider]\n return (\n <Button\n key={provider}\n type=\"button\"\n color=\"ios-glass-blue\"\n size=\"lg\"\n fullWidth\n onClick={() => onProviderClick(provider)}\n disabled={disabled || (loading != null && loading !== provider)}\n loading={loading === provider}\n >\n {loading !== provider && <Icon />}\n {label}\n </Button>\n )\n })}\n </div>\n )\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { PasswordStrengthMeter } from './chunk-5GDKCFM5.mjs';
3
- import { SectionCard, SearchInput, InlineSpinner, EmptyState, Avatar, Badge, StatusBadge, Button, DynamicIslandConfirm, GlassModal, Input, PasswordInput, Sheet } from './chunk-JN6IL6OH.mjs';
2
+ import { PasswordStrengthMeter } from './chunk-AL73YAV4.mjs';
3
+ import { SectionCard, SearchInput, InlineSpinner, EmptyState, Avatar, Badge, StatusBadge, Button, DynamicIslandConfirm, GlassModal, Input, PasswordInput, Sheet } from './chunk-AGGOHPMZ.mjs';
4
4
  import { triggerHaptic } from './chunk-D2JF6C3E.mjs';
5
5
  import { useTranslations, useFormatter } from './chunk-7VJ7CMMT.mjs';
6
6
  import { useState, useCallback, useEffect } from 'react';
@@ -1005,5 +1005,5 @@ function AdminPermissionList({ client }) {
1005
1005
  }
1006
1006
 
1007
1007
  export { AdminOrganizationForm, AdminOrganizationList, AdminPermissionList, AdminUserForm, AdminUserList };
1008
- //# sourceMappingURL=chunk-B67DP7MI.mjs.map
1009
- //# sourceMappingURL=chunk-B67DP7MI.mjs.map
1008
+ //# sourceMappingURL=chunk-4GDWGWHY.mjs.map
1009
+ //# sourceMappingURL=chunk-4GDWGWHY.mjs.map