@w6w/embed 0.2.11 → 0.2.20

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 (133) hide show
  1. package/README.md +22 -5
  2. package/dist/ConfirmModal-Pv2-A_3U.js +186 -0
  3. package/dist/ConfirmModal-Pv2-A_3U.js.map +1 -0
  4. package/dist/{CreateFunctionModal-D6CQLpa_.js → CreateFunctionModal-DScxp_LN.js} +2 -2
  5. package/dist/{CreateFunctionModal-D6CQLpa_.js.map → CreateFunctionModal-DScxp_LN.js.map} +1 -1
  6. package/dist/{DocumentFormModal-YauVdolr.js → DocumentFormModal-Br4s8wmi.js} +3 -3
  7. package/dist/{DocumentFormModal-YauVdolr.js.map → DocumentFormModal-Br4s8wmi.js.map} +1 -1
  8. package/dist/ImportSpecModal-Cpzp8ndt.js +251 -0
  9. package/dist/ImportSpecModal-Cpzp8ndt.js.map +1 -0
  10. package/dist/{ModelRoutesManager-BGESQahw.js → ModelRoutesManager-1Ac5wcas.js} +3 -3
  11. package/dist/{ModelRoutesManager-BGESQahw.js.map → ModelRoutesManager-1Ac5wcas.js.map} +1 -1
  12. package/dist/WorkflowEditor-CmhXHRxi.js +1109 -0
  13. package/dist/WorkflowEditor-CmhXHRxi.js.map +1 -0
  14. package/dist/apps-ItBvnWX3.js +92 -0
  15. package/dist/apps-ItBvnWX3.js.map +1 -0
  16. package/dist/chrome/DangerZone.d.ts +4 -3
  17. package/dist/chrome/ExecutionProfileHeader.d.ts +3 -3
  18. package/dist/chrome/JsonToggle.d.ts +29 -20
  19. package/dist/chrome/Modal.d.ts +3 -1
  20. package/dist/chrome/RightRail.d.ts +6 -1
  21. package/dist/chrome/VersionHistoryModal.d.ts +2 -0
  22. package/dist/chrome/index.d.ts +1 -0
  23. package/dist/chrome/workspace.d.ts +32 -1
  24. package/dist/{coerce-input-DttlcSdO.js → coerce-input-DFJ4n_wc.js} +68 -69
  25. package/dist/coerce-input-DFJ4n_wc.js.map +1 -0
  26. package/dist/{connections-D7cgXhDS.js → connections-CzsCyIxY.js} +10 -10
  27. package/dist/{connections-D7cgXhDS.js.map → connections-CzsCyIxY.js.map} +1 -1
  28. package/dist/{credentials-DaQU3Ca_.js → credentials-Cn92LGhJ.js} +4 -4
  29. package/dist/{credentials-DaQU3Ca_.js.map → credentials-Cn92LGhJ.js.map} +1 -1
  30. package/dist/data-stores-UeQvwVCa.js +170 -0
  31. package/dist/data-stores-UeQvwVCa.js.map +1 -0
  32. package/dist/document-sources-DNmBojx6.js +169 -0
  33. package/dist/document-sources-DNmBojx6.js.map +1 -0
  34. package/dist/draft/use-workflow-draft.d.ts +2 -0
  35. package/dist/draft.mjs +2 -2
  36. package/dist/editor/PublishTooltip.d.ts +7 -0
  37. package/dist/editor/SetupIncompleteBanner.d.ts +12 -0
  38. package/dist/editor/StartingStateModal.d.ts +14 -0
  39. package/dist/editor/WorkflowSettingsModal.d.ts +6 -1
  40. package/dist/editor/WorkflowVariablesEditor.d.ts +6 -0
  41. package/dist/editor/definition.d.ts +4 -0
  42. package/dist/editor/json-apply.d.ts +29 -0
  43. package/dist/editor/step-problems-feed.d.ts +5 -0
  44. package/dist/editor/types.d.ts +2 -2
  45. package/dist/editor-apps-DkkC7wOQ.js +152 -0
  46. package/dist/editor-apps-DkkC7wOQ.js.map +1 -0
  47. package/dist/editor-tools-BR27RGto.js +1683 -0
  48. package/dist/editor-tools-BR27RGto.js.map +1 -0
  49. package/dist/editor.mjs +1 -1
  50. package/dist/editors.mjs +536 -478
  51. package/dist/editors.mjs.map +1 -1
  52. package/dist/forms.mjs +3 -3
  53. package/dist/{rail-settings-XYGToh00.js → import-bindings-EUtxZ9Ti.js} +90 -24
  54. package/dist/import-bindings-EUtxZ9Ti.js.map +1 -0
  55. package/dist/index.mjs +138 -108
  56. package/dist/index.mjs.map +1 -1
  57. package/dist/lib/binding-problems.d.ts +5 -1
  58. package/dist/lib/history-query.d.ts +45 -0
  59. package/dist/lib/import-bindings.d.ts +89 -0
  60. package/dist/lib/index.d.ts +3 -0
  61. package/dist/lib/rail-settings.d.ts +1 -1
  62. package/dist/lib/setup-incomplete.d.ts +22 -0
  63. package/dist/lib/starting-data.d.ts +31 -0
  64. package/dist/lib/state-panel.d.ts +29 -0
  65. package/dist/lib/target-fields.d.ts +3 -15
  66. package/dist/lib/workflow-live-run.d.ts +84 -6
  67. package/dist/lib/workflow-validity.d.ts +64 -16
  68. package/dist/lib/workflow-variables.d.ts +1 -1
  69. package/dist/lib/workflow-version.d.ts +2 -0
  70. package/dist/lib.mjs +87 -72
  71. package/dist/lists/DataStoreList.d.ts +17 -0
  72. package/dist/lists/DataStoreView.d.ts +19 -0
  73. package/dist/lists/Logs.d.ts +19 -0
  74. package/dist/lists.d.ts +6 -0
  75. package/dist/lists.mjs +1255 -816
  76. package/dist/lists.mjs.map +1 -1
  77. package/dist/rail/ConnectionsTool.d.ts +2 -0
  78. package/dist/rail/HistoryTool.d.ts +2 -0
  79. package/dist/rail/StartingStateTool.d.ts +2 -0
  80. package/dist/rail/settings-sections.d.ts +4 -1
  81. package/dist/rail.mjs +1 -1
  82. package/dist/repos/connections.d.ts +1 -0
  83. package/dist/repos/constants.d.ts +12 -0
  84. package/dist/repos/data-stores.d.ts +84 -0
  85. package/dist/repos/history.d.ts +9 -0
  86. package/dist/repos/index.d.ts +2 -0
  87. package/dist/repos/spec-export.d.ts +3 -3
  88. package/dist/repos/spec-import.d.ts +30 -1
  89. package/dist/repos/step-tests.d.ts +2 -0
  90. package/dist/repos/webhook-listen.d.ts +35 -0
  91. package/dist/repos/workflows.d.ts +105 -2
  92. package/dist/repos.mjs +370 -328
  93. package/dist/repos.mjs.map +1 -1
  94. package/dist/setup-incomplete-BHs3Lpfy.js +199 -0
  95. package/dist/setup-incomplete-BHs3Lpfy.js.map +1 -0
  96. package/dist/{spec-export-CBbloO_n.js → spec-export-DGy5ijps.js} +72 -59
  97. package/dist/spec-export-DGy5ijps.js.map +1 -0
  98. package/dist/spec-import-SWOonsNr.js +116 -0
  99. package/dist/spec-import-SWOonsNr.js.map +1 -0
  100. package/dist/{step-tests-CivICmTq.js → step-tests-B4E4W3ly.js} +8 -7
  101. package/dist/step-tests-B4E4W3ly.js.map +1 -0
  102. package/dist/{use-callable-draft-DsALnSfF.js → use-callable-draft-DCauHt5o.js} +2 -2
  103. package/dist/{use-callable-draft-DsALnSfF.js.map → use-callable-draft-DCauHt5o.js.map} +1 -1
  104. package/dist/use-workflow-draft-l3P5KZzw.js +338 -0
  105. package/dist/use-workflow-draft-l3P5KZzw.js.map +1 -0
  106. package/dist/workflows-BZN4Hyz1.js +623 -0
  107. package/dist/workflows-BZN4Hyz1.js.map +1 -0
  108. package/package.json +4 -3
  109. package/src/styles.css +153 -1
  110. package/dist/ConfirmModal-BE-SdX-O.js +0 -185
  111. package/dist/ConfirmModal-BE-SdX-O.js.map +0 -1
  112. package/dist/ImportSpecModal-B7qd1Km2.js +0 -136
  113. package/dist/ImportSpecModal-B7qd1Km2.js.map +0 -1
  114. package/dist/WorkflowEditor-CwvmAGp2.js +0 -925
  115. package/dist/WorkflowEditor-CwvmAGp2.js.map +0 -1
  116. package/dist/apps-CboASBKr.js +0 -77
  117. package/dist/apps-CboASBKr.js.map +0 -1
  118. package/dist/coerce-input-DttlcSdO.js.map +0 -1
  119. package/dist/document-sources-UCwe8x77.js +0 -91
  120. package/dist/document-sources-UCwe8x77.js.map +0 -1
  121. package/dist/editor-apps-BUZWld-m.js +0 -95
  122. package/dist/editor-apps-BUZWld-m.js.map +0 -1
  123. package/dist/editor-tools-B_Lfx3kw.js +0 -1279
  124. package/dist/editor-tools-B_Lfx3kw.js.map +0 -1
  125. package/dist/rail-settings-XYGToh00.js.map +0 -1
  126. package/dist/spec-export-CBbloO_n.js.map +0 -1
  127. package/dist/spec-import-CW6R_Wk1.js +0 -469
  128. package/dist/spec-import-CW6R_Wk1.js.map +0 -1
  129. package/dist/step-tests-CivICmTq.js.map +0 -1
  130. package/dist/trigger-preview-DKxfjzUY.js +0 -145
  131. package/dist/trigger-preview-DKxfjzUY.js.map +0 -1
  132. package/dist/use-workflow-draft-DzAyUeA6.js +0 -316
  133. package/dist/use-workflow-draft-DzAyUeA6.js.map +0 -1
@@ -8,6 +8,22 @@
8
8
  * > and every step is valid. Graph well-formedness (orphaned/unreachable
9
9
  * > nodes, dangling edges) is explicitly OUT of scope for this project.
10
10
  *
11
+ * **Amended 2026-10-29: no trigger NODE is required.** A workflow without one is
12
+ * a manual workflow (`rfcs/workflow.md:114`): it already runs from the editor's
13
+ * Run button and from code, and the server publishes it, so gating Publish on a
14
+ * trigger node only blocked a workflow that works. The workflow is now valid iff
15
+ * it has at least one step and every step is valid.
16
+ *
17
+ * **Amended 2026-11-01: an app trigger node is never test-gated.** A node with
18
+ * `uses.trigger: true` runs when its app reports the event; its Test tab has
19
+ * nothing to run by hand ("Publish the workflow to start listening",
20
+ * `AppTriggerTestNote` in `@w6w/ui`), so it can never hold a saved passing
21
+ * test. Gating it on one made every app-triggered workflow unpublishable.
22
+ *
23
+ * **Amended 2026-11-02: tests never gate publishing.** Successful runs and saved
24
+ * test records can disagree, and users may publish without testing. Only the
25
+ * target and required configuration are checked; test history is advisory.
26
+ *
11
27
  * Pure and testable by design: `WorkflowsPage.tsx` is JSX, which Node 24's
12
28
  * type-stripping cannot parse, so nothing in it can be loaded by `node --test`
13
29
  * (same shape as `src/lib/workflow-save.ts` + its `.test.ts`). This module
@@ -18,11 +34,7 @@
18
34
  * the two functions the pinned predicate reuses
19
35
  * (`requiredParamsFilled`/`isTestRequired`) are **caller-injected** on
20
36
  * `ValidityContext` — `WorkflowsPage.tsx` (unaffected by the JSX constraint)
21
- * imports the real ones from `@w6w/ui` and passes them in. Same for "a
22
- * trigger exists": that reads a graph STEP whose `INTERNAL_NODES` entry has
23
- * `group === "trigger"` (`@w6w/ui/flow`), never the workflow's top-level
24
- * `trigger` field (`rfcs/workflow.md:114`, "Absent means manual-only" — always
25
- * present, so it can't gate anything) — so `hasTrigger` is caller-computed too.
37
+ * imports the real ones from `@w6w/ui` and passes them in.
26
38
  *
27
39
  * `ActionParamLike`/`WorkflowStepLike`/`WorkflowLike` below are this file's
28
40
  * own minimal local types (see `rfcs/workflow.md` §"Step" for the real shape,
@@ -42,8 +54,12 @@ export interface WorkflowStepLike {
42
54
  uses?: {
43
55
  app?: string;
44
56
  action?: string;
57
+ connection?: string | null;
58
+ connectionRef?: string;
45
59
  /** The "or a function id" arm (`rfcs/function.md:49,260`) — `Step.uses.function`. */
46
60
  function?: string;
61
+ /** An app trigger node (`uses.trigger: true`): never gated on a saved test. */
62
+ trigger?: boolean;
47
63
  };
48
64
  with?: Record<string, unknown>;
49
65
  }
@@ -64,30 +80,62 @@ export interface WorkflowLike {
64
80
  * each field is caller-built rather than derived in here.
65
81
  */
66
82
  export interface ValidityContext {
67
- /** Does the graph contain a step whose (app, action) is a trigger node? */
68
- hasTrigger: boolean;
69
83
  /** Declared params for a step's target, keyed `` `${app}::${action}` ``. */
70
84
  actionParamsByKey: Record<string, ActionParamLike[]>;
71
- /** The fetched apps list, keyed by app id — only a key present here is test-gated. */
85
+ /** @deprecated Kept for caller compatibility; app test policy does not gate publishing. */
72
86
  appsById: Record<string, unknown>;
73
- /** Whether the given step id has a saved test that last ran successfully. */
87
+ /** @deprecated Kept for caller compatibility; test results do not gate publishing. */
74
88
  testStatus: Record<string, boolean>;
75
89
  /** `@w6w/ui`'s `requiredParamsFilled`, injected (see module docstring). */
76
90
  requiredParamsFilled: (params: ActionParamLike[], values: Record<string, unknown>) => boolean;
77
- /** `@w6w/ui`'s `isTestRequired`, injected (see module docstring). */
91
+ /** @deprecated Kept for caller compatibility; never consulted for publishing. */
78
92
  isTestRequired: (app: unknown) => boolean;
79
93
  }
94
+ /** Which of the pinned predicate's checks a step fails, or `null` when it's valid. */
95
+ type StepFailure = "target missing" | "required params";
80
96
  /** Is this one step valid, per the pinned predicate? */
81
97
  export declare function stepValid(step: WorkflowStepLike, ctx: ValidityContext): boolean;
82
98
  /**
83
- * Is the whole workflow valid? A trigger step must exist and every step must
84
- * be individually valid — nothing about graph well-formedness (this never
85
- * reads `workflow.edges`, even when present).
99
+ * Is the whole workflow valid? It must have at least one step and every step
100
+ * must be individually valid — a trigger node is not required, and nothing
101
+ * about graph well-formedness is checked (this never reads `workflow.edges`).
86
102
  */
87
103
  export declare function workflowValid(workflow: WorkflowLike, ctx: ValidityContext): boolean;
88
104
  /**
89
- * `null` when the workflow is valid; otherwise names the cause — `"no trigger
90
- * step"`, or the id of the first invalid step in declared order plus which
91
- * check it fails.
105
+ * `null` when the workflow is valid; otherwise names the cause — `"no steps"`,
106
+ * or the id of the first invalid step in declared order plus which check it
107
+ * fails.
92
108
  */
93
109
  export declare function invalidReason(workflow: WorkflowLike, ctx: ValidityContext): string | null;
110
+ /** One reason the workflow cannot be published: the node it is about and how to fix it. */
111
+ export interface PublishProblem {
112
+ /** The node's id, or `null` for a workflow-wide problem (`"no steps"`). */
113
+ stepId: string | null;
114
+ check: StepFailure | "no steps";
115
+ /** Names the node and says how to fix it — shown verbatim in the tooltip and the list. */
116
+ message: string;
117
+ }
118
+ /**
119
+ * Every publish problem, in declared node order — the full list `invalidReason`
120
+ * stops at the first of. Empty iff `workflowValid`.
121
+ */
122
+ export declare function publishProblems(workflow: WorkflowLike, ctx: ValidityContext): PublishProblem[];
123
+ /** What the header Publish button's `disabled` reads, each cause kept apart for its reason. */
124
+ export interface PublishGate {
125
+ /** No project to publish into. */
126
+ projectMissing: boolean;
127
+ /** The draft has not loaded, is saving, or is switching context. */
128
+ loading: boolean;
129
+ /** The draft refuses to save (and so to publish): its reason, verbatim. */
130
+ saveBlockedReason: string | null;
131
+ /** The node catalog the validity gate needs has not arrived yet. */
132
+ catalogLoading: boolean;
133
+ problems: readonly PublishProblem[];
134
+ publishing: boolean;
135
+ }
136
+ /**
137
+ * Why Publish is disabled, or `null` when it is enabled. Every disabled state
138
+ * has a reason, so the button never greys out silently.
139
+ */
140
+ export declare function publishDisabledReason(g: PublishGate): string | null;
141
+ export {};
@@ -66,7 +66,7 @@ export declare function variablesForSave(rows: WorkflowVariableRow[]): WorkflowV
66
66
  */
67
67
  export declare function duplicateKeyIndexes(rows: WorkflowVariableRow[]): number[];
68
68
  /**
69
- * The `vars.*` names to offer row `index`'s expression rail: the keys of
69
+ * The `var.*` names to offer row `index`'s expression rail: the keys of
70
70
  * rows **strictly above** it, then `projectVars`, deduped, with blanks
71
71
  * dropped. Declaration order is resolution order (D-5), so a row can only
72
72
  * reference a variable declared earlier than itself — offering a row at or
@@ -0,0 +1,2 @@
1
+ /** Compare JSON definitions independent of object property order. Array order is meaningful. */
2
+ export declare function sameWorkflowDefinition(a: unknown, b: unknown): boolean;
package/dist/lib.mjs CHANGED
@@ -1,86 +1,101 @@
1
1
  "use client";
2
- import { d as l, a as d, f as c, i as p, b as u, r as m, c as f, e as S, g, s as b, t as v, h as w, v as F, j as R, w as h, k as x } from "./trigger-preview-DKxfjzUY.js";
3
- import { d as I, e as A, i as P, p as E, t as K } from "./document-sources-UCwe8x77.js";
4
- import { e as T, h as k, a as C, b as U, i as V, m as L, p as W, r as _, s as B, v as j, w as H } from "./rail-settings-XYGToh00.js";
5
- import { c as q, d as G, i as O, p as Y } from "./settings-rail--GdRMusb.js";
6
- import { A as z, b as J, f as M, i as Q, a as X, c as Z, s as aa, u as ea } from "./slug-BVdgiP_L.js";
7
- import { i as ra, s as ia } from "./spec-import-invalidation-D3retX4Q.js";
8
- import { b as oa } from "./workflow-blank-DFpGObrn.js";
9
- import { I as la, c as da, f as ca, i as pa, a as ua, m as ma, p as fa, s as Sa, t as ga, b as ba, d as va, u as wa, e as Fa, g as Ra } from "./coerce-input-DttlcSdO.js";
10
- function i(s) {
2
+ import { d as l, f as d, a as c, i as p, p as u, b as m, r as f, c as g, s as S, t as b, e as w, w as v, g as R } from "./setup-incomplete-BHs3Lpfy.js";
3
+ import { d as F, a as y, e as I, i as x, b as D, p as C, r as P, c as A, f as E, s as K, g as T, t as U, v as k, h as V } from "./document-sources-DNmBojx6.js";
4
+ import { a as L, b as W, e as _, h as N, c as j, d as H, i as q, m as G, p as M, r as O, f as Y, g as $, s as z, j as J, k as Q, l as X, t as Z, v as aa, w as ea, n as sa } from "./import-bindings-EUtxZ9Ti.js";
5
+ import { c as ra, d as ia, i as oa, p as na } from "./settings-rail--GdRMusb.js";
6
+ import { A as da, b as ca, f as pa, i as ua, a as ma, c as fa, s as ga, u as Sa } from "./slug-BVdgiP_L.js";
7
+ import { i as wa, s as va } from "./spec-import-invalidation-D3retX4Q.js";
8
+ import { b as ha } from "./workflow-blank-DFpGObrn.js";
9
+ import { I as ya, c as Ia, f as xa, i as Da, a as Ca, m as Pa, p as Aa, s as Ea, t as Ka, b as Ta, d as Ua, u as ka, e as Va, g as Ba } from "./coerce-input-DFJ4n_wc.js";
10
+ function r(s) {
11
11
  const e = new URLSearchParams(s), a = e.get("edit");
12
12
  if (a === null || a === "") return null;
13
13
  e.delete("edit");
14
- const r = e.toString();
15
- return { id: a, search: r === "" ? "" : `?${r}` };
14
+ const t = e.toString();
15
+ return { id: a, search: t === "" ? "" : `?${t}` };
16
16
  }
17
- function t(s) {
17
+ function i(s) {
18
18
  const a = new URLSearchParams(s).get("run");
19
19
  return a != null && a.startsWith("run_") ? a : null;
20
20
  }
21
21
  export {
22
- z as ACCOUNT_SLUG_RE,
23
- la as INPUT_TYPES,
24
- oa as blankDefinition,
25
- J as buildSnippet,
26
- q as callableRecord,
27
- da as coerceInput,
28
- G as definitionWithPolicy,
22
+ da as ACCOUNT_SLUG_RE,
23
+ ya as INPUT_TYPES,
24
+ L as allowedModes,
25
+ ha as blankDefinition,
26
+ W as buildRows,
27
+ ca as buildSnippet,
28
+ ra as callableRecord,
29
+ Ia as coerceInput,
30
+ ia as definitionWithPolicy,
29
31
  l as disabledBannerState,
30
- I as documentSampleValues,
31
- d as duplicateKeyIndexes,
32
- A as errorHandlerSelfDecision,
33
- T as evaluateEdit,
34
- ca as fieldsFromWorkflow,
35
- M as filterKeyInput,
36
- c as findBindingProblems,
37
- k as hasDefinitionActions,
38
- C as hasDelete,
39
- U as hasVersionHistory,
40
- pa as implToTarget,
41
- ua as inputsForSave,
32
+ F as documentSampleValues,
33
+ y as duplicateKeyIndexes,
34
+ I as errorHandlerSelfDecision,
35
+ _ as evaluateEdit,
36
+ xa as fieldsFromWorkflow,
37
+ pa as filterKeyInput,
38
+ d as findBindingProblems,
39
+ c as findSetupIncomplete,
40
+ N as hasDefinitionActions,
41
+ j as hasDelete,
42
+ H as hasVersionHistory,
43
+ Da as implToTarget,
44
+ Ca as inputsForSave,
42
45
  p as invalidReason,
43
- ra as invalidateImportedCallable,
44
- P as isCodeRailAvailable,
45
- Q as isEndpointKey,
46
- u as isExprDefault,
47
- V as isRowArchived,
48
- O as isSettingsRailAvailable,
49
- X as isUrnAddressable,
50
- Z as isValidAccountSlug,
51
- i as legacyEditRedirect,
52
- ma as mergeSeed,
53
- L as metadataFieldsForKind,
54
- fa as paramsToFields,
55
- W as parseImportPaste,
56
- Y as policyFromDefinition,
57
- E as projectDocumentSources,
58
- m as readSettings,
59
- f as readVariables,
60
- S as readWorkflowStatus,
61
- _ as restoreRailState,
62
- g as runFormFields,
63
- t as runParamFromSearch,
64
- Sa as shouldSeed,
65
- aa as slugify,
66
- B as specCollectionForKind,
67
- ia as specImportListKey,
68
- b as stepValid,
69
- ga as targetIsBound,
70
- ba as targetRef,
71
- va as targetToImpl,
72
- K as toSnippetCallable,
73
- v as triggerInputSeed,
46
+ wa as invalidateImportedCallable,
47
+ x as isCodeRailAvailable,
48
+ ua as isEndpointKey,
49
+ D as isExprDefault,
50
+ q as isRowArchived,
51
+ oa as isSettingsRailAvailable,
52
+ ma as isUrnAddressable,
53
+ fa as isValidAccountSlug,
54
+ r as legacyEditRedirect,
55
+ Pa as mergeSeed,
56
+ G as metadataFieldsForKind,
57
+ Aa as paramsToFields,
58
+ M as parseImportPaste,
59
+ na as policyFromDefinition,
60
+ C as projectDocumentSources,
61
+ u as publishDisabledReason,
62
+ m as publishProblems,
63
+ f as readSettings,
64
+ P as readStartingData,
65
+ A as readVariables,
66
+ g as readWorkflowStatus,
67
+ O as restoreRailState,
68
+ Y as rowReady,
69
+ $ as rowsReady,
70
+ E as runFormFields,
71
+ i as runParamFromSearch,
72
+ z as setBind,
73
+ J as setCreateName,
74
+ Q as setUnconfigured,
75
+ Ea as shouldSeed,
76
+ ga as slugify,
77
+ X as specCollectionForKind,
78
+ va as specImportListKey,
79
+ K as startingDataCollisions,
80
+ T as startingDataForSave,
81
+ S as stepValid,
82
+ Ka as targetIsBound,
83
+ Ta as targetRef,
84
+ Ua as targetToImpl,
85
+ Z as toSelections,
86
+ U as toSnippetCallable,
87
+ b as triggerInputSeed,
74
88
  w as triggerPreviews,
75
- ea as unavailableReason,
76
- wa as uncoveredForEndpoint,
77
- Fa as uncoveredForFunction,
78
- Ra as uncoveredRequiredKeys,
79
- F as variablesForSave,
80
- R as varsRailFor,
81
- j as visibleRows,
82
- H as workflowKeyEditAllowed,
83
- h as workflowValid,
84
- x as writeSetting
89
+ Sa as unavailableReason,
90
+ ka as uncoveredForEndpoint,
91
+ Va as uncoveredForFunction,
92
+ Ba as uncoveredRequiredKeys,
93
+ k as variablesForSave,
94
+ V as varsRailFor,
95
+ aa as visibleRows,
96
+ ea as withCreatedConnection,
97
+ sa as workflowKeyEditAllowed,
98
+ v as workflowValid,
99
+ R as writeSetting
85
100
  };
86
101
  //# sourceMappingURL=lib.mjs.map
@@ -0,0 +1,17 @@
1
+ import { MouseEvent, ReactNode } from 'react';
2
+ export interface DataStoreListSlots {
3
+ /** Replaces the section heading and its description (the New button stays). `null`: none. */
4
+ header?: ReactNode;
5
+ /** Replaces the empty-state copy. */
6
+ empty?: ReactNode;
7
+ }
8
+ export interface DataStoreListProps {
9
+ /** Omitted: the provider's project. `null` or `""`: none; nothing is read and writes refuse. */
10
+ project?: string | null;
11
+ /** The host decides what opening a row means; with `getHref` it may `preventDefault`. */
12
+ onOpen?: (id: string, event: MouseEvent<Element>) => void;
13
+ /** Given, a row's main area is a real `<a href>`; its click still calls `onOpen`. */
14
+ getHref?: (id: string) => string;
15
+ slots?: DataStoreListSlots;
16
+ }
17
+ export declare function DataStoreList({ project, onOpen, getHref, slots }: DataStoreListProps): import("react").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { DataStoreErrorLocator } from '@w6w/ui';
2
+ import { ReactNode } from 'react';
3
+ export interface DataStoreViewProps {
4
+ /** The store's id (`ds_…`). */
5
+ id: string;
6
+ /** Omitted: the provider's project. `null` or `""`: none; nothing is read and writes refuse. */
7
+ project?: string | null;
8
+ slots?: {
9
+ /** Replaces the store's name / kind heading. `null`: none. */
10
+ header?: ReactNode;
11
+ };
12
+ }
13
+ /**
14
+ * A thrown SDK failure as the locator the views place: `ApiError{status,code,raw}` with the
15
+ * server's `{error:{code,message,field?,row?,column?}}` read from `raw`. The error's own `code`
16
+ * stands in when the body carried none, so a conflict is never missed for want of an envelope.
17
+ */
18
+ export declare function dataStoreErrorOf(e: unknown): DataStoreErrorLocator;
19
+ export declare function DataStoreView({ id, project, slots }: DataStoreViewProps): import("react").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ import { RunHistoryProps } from './RunHistory.tsx';
3
+ export interface LogsProps extends RunHistoryProps {
4
+ /** The heading above the view. Defaults to `"Logs"`; `null` renders none (the host titles its
5
+ * own page). */
6
+ title?: ReactNode | null;
7
+ }
8
+ /**
9
+ * The project's Logs: the most recent executions of every workflow, function and endpoint in the
10
+ * provider's project, newest first, and the selected one's detail (input, output, error, a
11
+ * workflow run's steps) opened in place. `RunHistory` under a heading — Studio's History page
12
+ * mounts the same body — so every `RunHistory` prop applies, and with none of them it is
13
+ * project-wide with filters held here. Never navigates; `onOpenInEditor` is the host's way into a
14
+ * workflow run's editor.
15
+ */
16
+ export declare function Logs({ title, ...rest }: LogsProps): ReactElement;
17
+ /** {@link Logs} under the name a host routing table tends to use for a page. */
18
+ export declare const LogsView: typeof Logs;
19
+ export type LogsViewProps = LogsProps;
package/dist/lists.d.ts CHANGED
@@ -12,6 +12,8 @@ export { ActivitySummary } from './lists/ActivitySummary.tsx';
12
12
  export type { ActivitySummaryProps, ActivityTileTarget } from './lists/ActivitySummary.tsx';
13
13
  export { RunHistory } from './lists/RunHistory.tsx';
14
14
  export type { RunHistoryProps } from './lists/RunHistory.tsx';
15
+ export { Logs, LogsView } from './lists/Logs.tsx';
16
+ export type { LogsProps, LogsViewProps } from './lists/Logs.tsx';
15
17
  export { ServiceDetail } from './lists/ServiceDetail.tsx';
16
18
  export type { ServiceDetailProps } from './lists/ServiceDetail.tsx';
17
19
  export { ConnectionList } from './lists/ConnectionList.tsx';
@@ -26,3 +28,7 @@ export { CredentialList } from './lists/CredentialList.tsx';
26
28
  export type { CredentialListProps } from './lists/CredentialList.tsx';
27
29
  export { CredentialDetail } from './lists/CredentialDetail.tsx';
28
30
  export type { CredentialDetailProps } from './lists/CredentialDetail.tsx';
31
+ export { DataStoreList } from './lists/DataStoreList.tsx';
32
+ export type { DataStoreListProps, DataStoreListSlots } from './lists/DataStoreList.tsx';
33
+ export { DataStoreView } from './lists/DataStoreView.tsx';
34
+ export type { DataStoreViewProps } from './lists/DataStoreView.tsx';