@calliopelabs/ui 0.7.0 → 0.11.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 (120) hide show
  1. package/README.md +253 -3
  2. package/dist/appearance/AppearancePicker.js +4 -2
  3. package/dist/appearance/AppearanceProvider.d.ts +10 -2
  4. package/dist/appearance/AppearanceProvider.js +6 -2
  5. package/dist/appearance/AppearanceScript.d.ts +15 -4
  6. package/dist/appearance/AppearanceScript.js +11 -5
  7. package/dist/appearance/appearance.js +1 -1
  8. package/dist/appearance/boot.d.ts +13 -2
  9. package/dist/appearance/boot.js +35 -5
  10. package/dist/appearance/product.d.ts +13 -0
  11. package/dist/appearance/product.js +2 -2
  12. package/dist/appearance/runtime-brand.d.ts +106 -0
  13. package/dist/appearance/runtime-brand.js +420 -0
  14. package/dist/css/appearance.js +147 -0
  15. package/dist/css/calliope.css +1221 -0
  16. package/dist/css/components.css +729 -0
  17. package/dist/css/tokens.css +491 -0
  18. package/dist/data/DefinitionList.d.ts +16 -0
  19. package/dist/data/DefinitionList.js +9 -0
  20. package/dist/data/Stat.d.ts +25 -0
  21. package/dist/data/Stat.js +19 -0
  22. package/dist/data/Tag.d.ts +21 -0
  23. package/dist/data/Tag.js +18 -0
  24. package/dist/data/types.d.ts +3 -2
  25. package/dist/data/use-local-table.d.ts +36 -0
  26. package/dist/data/use-local-table.js +127 -0
  27. package/dist/index.d.ts +42 -3
  28. package/dist/index.js +39 -1
  29. package/dist/nav/Nav.d.ts +2 -1
  30. package/dist/nav/Nav.js +34 -15
  31. package/dist/nav/model.d.ts +21 -0
  32. package/dist/page/PageHeader.d.ts +5 -3
  33. package/dist/page/PageHeader.js +5 -4
  34. package/dist/page/Panel.d.ts +19 -0
  35. package/dist/page/Panel.js +12 -0
  36. package/dist/primitives/Avatar.d.ts +37 -0
  37. package/dist/primitives/Avatar.js +43 -0
  38. package/dist/primitives/Field.d.ts +33 -0
  39. package/dist/primitives/Field.js +30 -0
  40. package/dist/primitives/Segmented.d.ts +30 -0
  41. package/dist/primitives/Segmented.js +20 -0
  42. package/dist/primitives/Select.d.ts +40 -0
  43. package/dist/primitives/Select.js +47 -0
  44. package/dist/primitives/Switch.d.ts +7 -0
  45. package/dist/primitives/Switch.js +8 -0
  46. package/dist/primitives/Textarea.d.ts +3 -0
  47. package/dist/primitives/Textarea.js +6 -0
  48. package/dist/provider/messages.d.ts +412 -0
  49. package/dist/provider/messages.js +633 -0
  50. package/dist/shell/BrandMark.d.ts +25 -3
  51. package/dist/shell/BrandMark.js +34 -4
  52. package/dist/shell/RailPanel.js +2 -2
  53. package/dist/shell/RailTree.js +2 -2
  54. package/dist/shell/Sidebar.d.ts +9 -2
  55. package/dist/shell/Sidebar.js +10 -4
  56. package/dist/shell/UserMenu.d.ts +3 -1
  57. package/dist/shell/UserMenu.js +3 -11
  58. package/dist/shell/rail-boot.d.ts +28 -0
  59. package/dist/shell/rail-boot.js +45 -0
  60. package/dist/shell/rail-state.d.ts +6 -1
  61. package/dist/shell/rail-state.js +18 -2
  62. package/dist/styles/preset.css +4 -0
  63. package/dist/styles/theme.css +36 -13
  64. package/dist/theme/css-layer.d.ts +19 -0
  65. package/dist/theme/css-layer.js +171 -0
  66. package/dist/theme/css.d.ts +1 -0
  67. package/dist/theme/css.js +45 -9
  68. package/dist/workflow/ArtifactCard.d.ts +47 -0
  69. package/dist/workflow/ArtifactCard.js +45 -0
  70. package/dist/workflow/DocumentReview.d.ts +74 -0
  71. package/dist/workflow/DocumentReview.js +54 -0
  72. package/dist/workflow/FormReview.d.ts +53 -0
  73. package/dist/workflow/FormReview.js +83 -0
  74. package/dist/workflow/GateBadge.d.ts +11 -0
  75. package/dist/workflow/GateBadge.js +14 -0
  76. package/dist/workflow/MediaReview.d.ts +63 -0
  77. package/dist/workflow/MediaReview.js +166 -0
  78. package/dist/workflow/ReviewPanel.d.ts +41 -0
  79. package/dist/workflow/ReviewPanel.js +59 -0
  80. package/dist/workflow/RunTimeline.d.ts +25 -0
  81. package/dist/workflow/RunTimeline.js +56 -0
  82. package/dist/workflow/WorkflowCard.d.ts +39 -0
  83. package/dist/workflow/WorkflowCard.js +56 -0
  84. package/dist/workflow/WorkflowGallery.d.ts +43 -0
  85. package/dist/workflow/WorkflowGallery.js +69 -0
  86. package/dist/workflow/canvas/WorkflowCanvas.d.ts +39 -0
  87. package/dist/workflow/canvas/WorkflowCanvas.js +648 -0
  88. package/dist/workflow/definition.d.ts +408 -0
  89. package/dist/workflow/definition.js +411 -0
  90. package/dist/workflow/editor/WorkflowDiff.d.ts +17 -0
  91. package/dist/workflow/editor/WorkflowDiff.js +25 -0
  92. package/dist/workflow/editor/WorkflowImportPreview.d.ts +19 -0
  93. package/dist/workflow/editor/WorkflowImportPreview.js +50 -0
  94. package/dist/workflow/editor/WorkflowInspector.d.ts +40 -0
  95. package/dist/workflow/editor/WorkflowInspector.js +349 -0
  96. package/dist/workflow/editor/WorkflowJsonView.d.ts +16 -0
  97. package/dist/workflow/editor/WorkflowJsonView.js +40 -0
  98. package/dist/workflow/editor/WorkflowPalette.d.ts +16 -0
  99. package/dist/workflow/editor/WorkflowPalette.js +36 -0
  100. package/dist/workflow/editor/WorkflowProblems.d.ts +20 -0
  101. package/dist/workflow/editor/WorkflowProblems.js +51 -0
  102. package/dist/workflow/editor/WorkflowWorkspace.d.ts +49 -0
  103. package/dist/workflow/editor/WorkflowWorkspace.js +154 -0
  104. package/dist/workflow/gallery.d.ts +21 -0
  105. package/dist/workflow/gallery.js +29 -0
  106. package/dist/workflow/layout.d.ts +49 -0
  107. package/dist/workflow/layout.js +162 -0
  108. package/dist/workflow/model.d.ts +50 -0
  109. package/dist/workflow/model.js +7 -0
  110. package/dist/workflow/palette.d.ts +34 -0
  111. package/dist/workflow/palette.js +70 -0
  112. package/dist/workflow/portable.d.ts +162 -0
  113. package/dist/workflow/portable.js +547 -0
  114. package/dist/workflow/problems.d.ts +38 -0
  115. package/dist/workflow/problems.js +409 -0
  116. package/dist/workflow/run.d.ts +94 -0
  117. package/dist/workflow/run.js +31 -0
  118. package/dist/workflow/workspace.d.ts +33 -0
  119. package/dist/workflow/workspace.js +17 -0
  120. package/package.json +6 -1
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Reading, comparing and moving workflow definitions: a strict reader that
3
+ * keeps only the fields the format knows (so nothing else, a credential or a
4
+ * grant, rides along), a diff that says what a change does to what runs, and
5
+ * versioned packages with a preview of what importing one does at a
6
+ * destination. Pure: the host reads and writes the files and owns authority.
7
+ */
8
+ import { type WorkflowDefinition, type WorkflowEdge, type WorkflowNodeKind, type WorkflowRegistry } from "./definition.js";
9
+ import type { WorkflowAvailability } from "./model.js";
10
+ import { type WorkflowProblem } from "./problems.js";
11
+ /** Why a definition or package could not be read. */
12
+ export type WorkflowReadError = {
13
+ code: "not-json";
14
+ } | {
15
+ code: "not-a-definition";
16
+ path: string;
17
+ } | {
18
+ code: "not-a-package";
19
+ } | {
20
+ code: "unsupported-version";
21
+ version: unknown;
22
+ };
23
+ export type WorkflowReadResult<T> = {
24
+ ok: true;
25
+ value: T;
26
+ } | {
27
+ ok: false;
28
+ error: WorkflowReadError;
29
+ };
30
+ /**
31
+ * Reads a definition from parsed JSON or a JSON string. Keeps only the fields
32
+ * the format knows; anything else is dropped, never carried.
33
+ */
34
+ export declare function readWorkflowDefinition(raw: unknown): WorkflowReadResult<WorkflowDefinition>;
35
+ export interface WorkflowDiffItem {
36
+ id: string;
37
+ label: string;
38
+ }
39
+ export interface WorkflowFlowDiff {
40
+ flow: string;
41
+ nodesAdded: WorkflowDiffItem[];
42
+ nodesRemoved: WorkflowDiffItem[];
43
+ nodesChanged: WorkflowDiffItem[];
44
+ /** Edges, labelled by their ends ("Draft", "Review"). */
45
+ edgesAdded: WorkflowDiffEdge[];
46
+ edgesRemoved: WorkflowDiffEdge[];
47
+ edgesChanged: WorkflowDiffEdge[];
48
+ /** Only positions moved; does not change what runs. */
49
+ moved: WorkflowDiffItem[];
50
+ }
51
+ export interface WorkflowDiffEdge {
52
+ id: string;
53
+ kind: WorkflowEdge["kind"];
54
+ from: string;
55
+ to: string;
56
+ }
57
+ export interface WorkflowDefinitionDiff {
58
+ /** Name, description, module or main flow changed. */
59
+ details: ("name" | "description" | "module" | "main")[];
60
+ flowsAdded: string[];
61
+ flowsRemoved: string[];
62
+ flows: WorkflowFlowDiff[];
63
+ /** Nothing that runs changes (positions may have). */
64
+ same: boolean;
65
+ }
66
+ /** What changing `before` into `after` does to what runs. Positions are reported apart, as `moved`. */
67
+ export declare function diffDefinitions(before: WorkflowDefinition, after: WorkflowDefinition): WorkflowDefinitionDiff;
68
+ /**
69
+ * Whether two definitions are the same document. With `positions: false`,
70
+ * whether they run the same (a moved node does not count).
71
+ */
72
+ export declare function sameDefinition(a: WorkflowDefinition | null | undefined, b: WorkflowDefinition | null | undefined, options?: {
73
+ positions?: boolean;
74
+ }): boolean;
75
+ export declare const WORKFLOW_PACKAGE_FORMAT = "calliope.workflow-package";
76
+ export declare const WORKFLOW_PACKAGE_VERSION = 1;
77
+ /** What a definition needs from a destination, listed so a preview can read it without a registry. */
78
+ export interface WorkflowRequirements {
79
+ modules: {
80
+ id: string;
81
+ label: string;
82
+ version?: string;
83
+ }[];
84
+ presets: {
85
+ module: string;
86
+ id: string;
87
+ label: string;
88
+ }[];
89
+ capabilities: string[];
90
+ gateKinds: string[];
91
+ facts: string[];
92
+ operators: string[];
93
+ nodeKinds: WorkflowNodeKind[];
94
+ }
95
+ /**
96
+ * A portable workflow: the definition and what it needs. It never carries
97
+ * credentials, grants or named people: the definition is re-read through the
98
+ * format (unknown fields dropped) and gates lose their named members.
99
+ */
100
+ export interface WorkflowPackage {
101
+ format: typeof WORKFLOW_PACKAGE_FORMAT;
102
+ version: typeof WORKFLOW_PACKAGE_VERSION;
103
+ definition: WorkflowDefinition;
104
+ requires: WorkflowRequirements;
105
+ /** Where it came from, as the host labels it. */
106
+ source?: {
107
+ factory?: string;
108
+ revision?: string;
109
+ exportedAt?: string;
110
+ };
111
+ }
112
+ /** What a definition needs, against the registry it was written for. */
113
+ export declare function requirementsOf(definition: WorkflowDefinition, registry: WorkflowRegistry): WorkflowRequirements;
114
+ /** A package of a definition, for the host to write out. */
115
+ export declare function exportWorkflowPackage(definition: WorkflowDefinition, registry: WorkflowRegistry, source?: WorkflowPackage["source"]): WorkflowPackage;
116
+ /** Reads a package from parsed JSON or a JSON string, checking its format and version. */
117
+ export declare function readWorkflowPackage(raw: unknown): WorkflowReadResult<WorkflowPackage>;
118
+ /** One module the package needs, as the destination has it. */
119
+ export interface WorkflowModuleGap {
120
+ id: string;
121
+ label: string;
122
+ /** The version the package was written against. */
123
+ version?: string;
124
+ /** `missing`: not installed here. `version`: installed at another version. */
125
+ status: "available" | "missing" | "version" | "unavailable";
126
+ /** The destination's version, when it has the module. */
127
+ installed?: string;
128
+ availability?: WorkflowAvailability;
129
+ }
130
+ /** A node importing would leave disabled, and why. */
131
+ export interface WorkflowDisabledNode {
132
+ flow: string;
133
+ id: string;
134
+ label: string;
135
+ availability: WorkflowAvailability;
136
+ }
137
+ export interface WorkflowImportSummary {
138
+ definition: WorkflowDefinition;
139
+ /** Whether the destination could run it as imported. */
140
+ availability: WorkflowAvailability;
141
+ modules: WorkflowModuleGap[];
142
+ /** Capabilities the package needs that the destination lacks. */
143
+ missingCapabilities: string[];
144
+ /** Vocabulary the destination's runtime does not know. */
145
+ unknownGateKinds: string[];
146
+ unknownFacts: string[];
147
+ unknownOperators: string[];
148
+ /** Nodes that would be disabled here. */
149
+ disabled: WorkflowDisabledNode[];
150
+ /** Gates that came without named approvers and need a role here. */
151
+ gatesNeedingApprovers: WorkflowDiffItem[];
152
+ /** Problems at the destination. */
153
+ problems: WorkflowProblem[];
154
+ /** Against the definition it would replace, when the host names one. */
155
+ diff?: WorkflowDefinitionDiff;
156
+ }
157
+ /**
158
+ * What importing a package would do at a destination: the module and
159
+ * capability gaps, the vocabulary it does not know, the nodes that would be
160
+ * disabled, the problems there, and, when it replaces a definition, the diff.
161
+ */
162
+ export declare function previewWorkflowImport(pkg: WorkflowPackage, destination: WorkflowRegistry, replacing?: WorkflowDefinition): WorkflowImportSummary;