@oomol-lab/open-flow 0.1.0-beta.22 → 0.1.0-beta.23

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 (46) hide show
  1. package/dist/browser/{createResourceDialog-CjuJryCv.js → createResourceDialog-PKbMMpEk.js} +29 -29
  2. package/dist/browser/event-sources.d.ts +30 -0
  3. package/dist/browser/{flowChanges-Tg1duLry.js → flowChanges-BUlMz4iC.js} +4236 -3019
  4. package/dist/browser/{flowWorkspace-CoK10XHY.js → flowWorkspace-DLArN17T.js} +49585 -42617
  5. package/dist/browser/{i18n-CVBh0Ni1.js → input-group-C2frNYAx.js} +1801 -75
  6. package/dist/browser/{inputValues-CDiBMKu8.js → inputValues-CcGVt51C.js} +10 -10
  7. package/dist/browser/licenses.md +60 -0
  8. package/dist/browser/lite-Cy6aeiL6.js +8538 -0
  9. package/dist/browser/{markdownContent-BBgH9ZIV.js → markdownContent-SIlWuHve.js} +17 -17
  10. package/dist/browser/theme.css +45 -5
  11. package/dist/browser/ui.css +1 -1
  12. package/dist/browser/ui.d.ts +23 -1
  13. package/dist/browser/ui.js +59 -27
  14. package/dist/browser/workbench-contract.d.ts +19 -0
  15. package/dist/browser/workbench.css +1 -1
  16. package/dist/browser/workbench.d.ts +1 -0
  17. package/dist/browser/workbench.js +1176 -734
  18. package/dist/browser/workbenchSelect-CPRUXKbf.js +6088 -0
  19. package/dist/common/control-api-conformance.js +273 -232
  20. package/dist/common/control-api-errors.d.ts +20 -0
  21. package/dist/common/control-api.d.ts +50 -10
  22. package/dist/common/control-api.js +899 -661
  23. package/dist/common/control-requests.d.ts +23 -0
  24. package/dist/common/control-requests.js +377 -351
  25. package/dist/common/event-sources.d.ts +50 -0
  26. package/dist/common/feishu-events.d.ts +20 -0
  27. package/dist/common/feishu-subscriptions.d.ts +10 -0
  28. package/dist/common/fr-iv1541dF.js +93 -0
  29. package/dist/common/integration-trigger.d.ts +4 -0
  30. package/dist/common/ja-Bq-ZDOD4.js +93 -0
  31. package/dist/common/ko-Z-k9R2c6.js +93 -0
  32. package/dist/common/localization.d.ts +2 -0
  33. package/dist/common/localization.js +37 -1
  34. package/dist/common/mcp.js +615 -382
  35. package/dist/common/poll-trigger.d.ts +2 -0
  36. package/dist/common/provider-triggers.d.ts +4 -0
  37. package/dist/common/provider-triggers.js +3225 -2692
  38. package/dist/common/ru-B4gFecYZ.js +93 -0
  39. package/dist/common/trigger-catalog.d.ts +17 -0
  40. package/dist/common/trigger-config-options.d.ts +13 -0
  41. package/dist/common/trigger-localization.d.ts +7 -0
  42. package/dist/common/zh-CN-ByQ6nYam.js +93 -0
  43. package/dist/common/zh-TW-QjIarvX9.js +93 -0
  44. package/package.json +1 -1
  45. package/dist/browser/useValueChanged-BY05Usw-.js +0 -2944
  46. package/dist/browser/workbenchSelect-DEmv7SLW.js +0 -11666
@@ -1,6 +1,6 @@
1
1
 
2
2
 
3
- import type { ComponentPropsWithoutRef, ForwardRefExoticComponent, RefAttributes } from 'react';
3
+ import type { ComponentPropsWithoutRef, ForwardRefExoticComponent, ReactNode, RefAttributes } from 'react';
4
4
  /** Native host button contract; Base UI composition stays internal to the product. */
5
5
  export interface ButtonProps extends ComponentPropsWithoutRef<'button'> {
6
6
  variant?: 'default' | 'outline' | 'secondary' | 'ghost' | 'disclosure' | 'destructive' | 'link';
@@ -10,3 +10,25 @@ export declare const Button: ForwardRefExoticComponent<ButtonProps & RefAttribut
10
10
  export { Input } from './ui-input.js';
11
11
  export { Label } from './ui-label.js';
12
12
  export { Textarea } from './ui-textarea.js';
13
+ /** Shared Sonner presentation for hosts and the component Lab. */
14
+ export declare const notificationToasterProps: {
15
+ readonly className: 'open-flow-notifications';
16
+ readonly closeButton: true;
17
+ readonly expand: false;
18
+ readonly gap: 8;
19
+ readonly mobileOffset: {
20
+ readonly top: 56;
21
+ readonly left: 12;
22
+ readonly right: 12;
23
+ };
24
+ readonly offset: {
25
+ readonly top: 56;
26
+ readonly left: 16;
27
+ readonly right: 16;
28
+ };
29
+ readonly position: 'top-center';
30
+ readonly visibleToasts: 3;
31
+ };
32
+ export declare function NotificationUndoLabel({ children }: {
33
+ children: ReactNode;
34
+ }): ReactNode;
@@ -67,7 +67,7 @@ function y(e, t) {
67
67
  };
68
68
  }
69
69
  //#endregion
70
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/merge-props/mergeProps.js
70
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/merge-props/mergeProps.js
71
71
  var b = {};
72
72
  function x(e, t, n, r, i) {
73
73
  if (!n && !r && !i && !e) return C(t);
@@ -167,7 +167,7 @@ function ie(t = !1) {
167
167
  return n;
168
168
  }
169
169
  //#endregion
170
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/utils/useFocusableWhenDisabled.js
170
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/utils/useFocusableWhenDisabled.js
171
171
  function ae(t) {
172
172
  let { focusableWhenDisabled: n, disabled: r, composite: i = !1, tabIndex: a = 0, isNativeButton: o } = t, s = i && n !== !1, c = i && n === !1;
173
173
  return { props: e.useMemo(() => {
@@ -186,7 +186,7 @@ function ae(t) {
186
186
  ]) };
187
187
  }
188
188
  //#endregion
189
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/internals/use-button/useButton.js
189
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/internals/use-button/useButton.js
190
190
  function oe(t = {}) {
191
191
  let { disabled: n = !1, focusableWhenDisabled: r, tabIndex: i = 0, native: a = !0, composite: o } = t, s = e.useRef(null), c = ie(!0), l = o ?? c !== void 0, { props: u } = ae({
192
192
  focusableWhenDisabled: r,
@@ -359,7 +359,7 @@ function V() {}
359
359
  Object.freeze([]);
360
360
  var H = Object.freeze({});
361
361
  //#endregion
362
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/internals/getStateAttributesProps.js
362
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/internals/getStateAttributesProps.js
363
363
  function pe(e, t) {
364
364
  let n = {};
365
365
  for (let r in e) {
@@ -374,17 +374,17 @@ function pe(e, t) {
374
374
  return n;
375
375
  }
376
376
  //#endregion
377
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/utils/resolveClassName.js
377
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/utils/resolveClassName.js
378
378
  function me(e, t) {
379
379
  return typeof e == "function" ? e(t) : e;
380
380
  }
381
381
  //#endregion
382
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/utils/resolveStyle.js
382
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/utils/resolveStyle.js
383
383
  function he(e, t) {
384
384
  return typeof e == "function" ? e(t) : e;
385
385
  }
386
386
  //#endregion
387
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/internals/useRenderElement.js
387
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/internals/useRenderElement.js
388
388
  function ge(e, t, n = {}) {
389
389
  let r = t.render, i = _e(t, n);
390
390
  return n.enabled === !1 ? null : Se(e, r, i, n.state ?? H);
@@ -433,7 +433,7 @@ function we(n, r) {
433
433
  }) : /*#__PURE__*/ e.createElement(n, r);
434
434
  }
435
435
  //#endregion
436
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/button/Button.js
436
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/button/Button.js
437
437
  var Te = /*#__PURE__*/ e.forwardRef(function(e, t) {
438
438
  let { render: n, className: r, disabled: i = !1, focusableWhenDisabled: a = !1, nativeButton: o = !0, style: s, ...c } = e, { getButtonProps: l, buttonRef: u } = oe({
439
439
  disabled: i,
@@ -2212,25 +2212,25 @@ function Yt(...e) {
2212
2212
  }
2213
2213
  //#endregion
2214
2214
  //#region src/ui/browser/button.tsx
2215
- var Xt = Ae("nodrag group/button relative inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap no-underline transition-[color,background-color,border-color,box-shadow,opacity,transform] outline-none select-none before:absolute before:inset-0 before:content-[''] motion-reduce:transition-none focus-visible:border-border focus-visible:outline-2 focus-visible:outline-solid focus-visible:ring-0 focus-visible:aria-invalid:ring-0 focus-visible:outline-offset-1 focus-visible:outline-ring active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
2215
+ var Xt = Ae("nodrag group/button relative inline-flex shrink-0 items-center justify-center rounded-[var(--ui-control-radius,calc(var(--ui-radius)_+_2px))] border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap no-underline transition-[color,background-color,border-color,box-shadow,opacity,transform] outline-none select-none before:absolute before:inset-0 before:content-[''] motion-reduce:transition-none focus-visible:border-border focus-visible:outline-2 focus-visible:outline-solid focus-visible:ring-0 focus-visible:aria-invalid:ring-0 focus-visible:outline-offset-1 focus-visible:outline-ring active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
2216
2216
  variants: {
2217
2217
  variant: {
2218
2218
  default: "bg-primary text-primary-foreground hover:bg-primary/80",
2219
2219
  outline: "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
2220
2220
  secondary: "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
2221
- ghost: "hover:bg-muted hover:text-foreground aria-current:bg-muted aria-current:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
2221
+ ghost: "hover:bg-[var(--ui-control-hover-background,var(--ui-muted))] hover:text-foreground aria-current:bg-[var(--ui-control-hover-background,var(--ui-muted))] aria-current:text-foreground aria-expanded:bg-[var(--ui-control-hover-background,var(--ui-muted))] aria-expanded:text-foreground dark:hover:bg-[var(--ui-control-hover-background,var(--ui-muted))]",
2222
2222
  disclosure: "text-muted-foreground hover:bg-muted hover:text-foreground dark:hover:bg-muted/50",
2223
2223
  destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30",
2224
2224
  link: "text-primary hover:text-primary/80"
2225
2225
  },
2226
2226
  size: {
2227
2227
  default: "h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
2228
- xs: "h-6 gap-1 rounded-md px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
2229
- sm: "h-7 gap-1 rounded-md px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",
2228
+ xs: "h-6 gap-1 rounded-[var(--ui-control-radius,var(--ui-radius))] px-2 text-xs in-data-[slot=button-group]:rounded-[var(--ui-control-radius,calc(var(--ui-radius)_+_2px))] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
2229
+ sm: "h-7 gap-1 rounded-[var(--ui-control-radius,var(--ui-radius))] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-[var(--ui-control-radius,calc(var(--ui-radius)_+_2px))] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",
2230
2230
  lg: "h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
2231
2231
  icon: "size-8",
2232
- "icon-xs": "size-6 rounded-md in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3",
2233
- "icon-sm": "size-7 rounded-md in-data-[slot=button-group]:rounded-lg",
2232
+ "icon-xs": "size-6 rounded-[var(--ui-control-radius,var(--ui-radius))] in-data-[slot=button-group]:rounded-[var(--ui-control-radius,calc(var(--ui-radius)_+_2px))] [&_svg:not([class*='size-'])]:size-3",
2233
+ "icon-sm": "size-7 rounded-[var(--ui-control-radius,var(--ui-radius))] in-data-[slot=button-group]:rounded-[var(--ui-control-radius,calc(var(--ui-radius)_+_2px))]",
2234
2234
  "icon-lg": "size-9"
2235
2235
  }
2236
2236
  },
@@ -2334,12 +2334,12 @@ function cn(e, t) {
2334
2334
  return on(e, t);
2335
2335
  }
2336
2336
  //#endregion
2337
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/internals/useBaseUiId.js
2337
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/internals/useBaseUiId.js
2338
2338
  function ln(e) {
2339
2339
  return cn(e, "base-ui");
2340
2340
  }
2341
2341
  //#endregion
2342
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/internals/labelable-provider/LabelableContext.js
2342
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/internals/labelable-provider/LabelableContext.js
2343
2343
  var un = /*#__PURE__*/ e.createContext({
2344
2344
  controlId: void 0,
2345
2345
  registerControlId: V,
@@ -2354,7 +2354,7 @@ function dn() {
2354
2354
  return e.useContext(un);
2355
2355
  }
2356
2356
  //#endregion
2357
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/internals/labelable-provider/useLabelableId.js
2357
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/internals/labelable-provider/useLabelableId.js
2358
2358
  function fn(t = {}) {
2359
2359
  let { id: n, implicit: r = !1, controlRef: i } = t, { controlId: a, registerControlId: s } = dn(), c = ln(n), u = r ? a : void 0, d = l(() => Symbol("labelable-control")), p = e.useRef(!1), m = e.useRef(n != null), h = f(() => {
2360
2360
  !p.current || s === V || (p.current = !1, s(d.current, void 0));
@@ -2393,7 +2393,7 @@ function pn(e) {
2393
2393
  return e?.ownerDocument || document;
2394
2394
  }
2395
2395
  //#endregion
2396
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/internals/shadowDom.js
2396
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/internals/shadowDom.js
2397
2397
  function mn(e) {
2398
2398
  let t = e.activeElement;
2399
2399
  for (; t?.shadowRoot?.activeElement != null;) t = t.shadowRoot.activeElement;
@@ -2445,7 +2445,7 @@ function gn(e) {
2445
2445
  }
2446
2446
  }
2447
2447
  //#endregion
2448
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/internals/field-register-control/useRegisterFieldControl.js
2448
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/internals/field-register-control/useRegisterFieldControl.js
2449
2449
  function _n(t, n) {
2450
2450
  let { enabled: r = !0, getValue: i, id: a, value: o } = n, { registerFieldControl: s } = rn(), c = e.useRef(null);
2451
2451
  c.current ||= Symbol(), v(() => {
@@ -2468,10 +2468,10 @@ function _n(t, n) {
2468
2468
  ]);
2469
2469
  }
2470
2470
  //#endregion
2471
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/internals/reason-parts.js
2471
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/internals/reason-parts.js
2472
2472
  var vn = "none";
2473
2473
  //#endregion
2474
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/internals/createBaseUIEventDetails.js
2474
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/internals/createBaseUIEventDetails.js
2475
2475
  function yn(e, t, n, r) {
2476
2476
  let i = !1, a = !1, o = r ?? H;
2477
2477
  return {
@@ -2494,7 +2494,7 @@ function yn(e, t, n, r) {
2494
2494
  };
2495
2495
  }
2496
2496
  //#endregion
2497
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/field/control/FieldControl.js
2497
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/field/control/FieldControl.js
2498
2498
  var bn = /*#__PURE__*/ e.forwardRef(function(t, n) {
2499
2499
  let { render: r, className: i, id: a, name: o, value: s, disabled: c = !1, onValueChange: l, defaultValue: u, autoFocus: d = !1, style: p, ...m } = t, { state: h, name: g, disabled: _, setTouched: y, setDirty: b, validityData: x, setFocused: S, setFilled: C, validationMode: w, validation: T } = rn(), ee = _ || c, E = g ?? o, D = {
2500
2500
  ...h,
@@ -2556,7 +2556,7 @@ var bn = /*#__PURE__*/ e.forwardRef(function(t, n) {
2556
2556
  });
2557
2557
  process.env.NODE_ENV !== "production" && (bn.displayName = "FieldControl");
2558
2558
  //#endregion
2559
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+b87d06724be9db7a/node_modules/@base-ui/react/esm/input/Input.js
2559
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/input/Input.js
2560
2560
  var xn = /*#__PURE__*/ e.forwardRef(function(e, t) {
2561
2561
  return /*#__PURE__*/ r(bn, {
2562
2562
  ref: t,
@@ -2571,7 +2571,7 @@ var Sn = e.forwardRef(function({ className: e, type: t, ...n }, i) {
2571
2571
  ref: i,
2572
2572
  type: t,
2573
2573
  "data-slot": "input",
2574
- className: Yt("h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground data-[slot=input]:focus-visible:text-field-focus data-[slot=input]:focus-visible:aria-invalid:text-field-focus disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", e),
2574
+ className: Yt("h-8 w-full min-w-0 rounded-[var(--ui-control-radius,calc(var(--ui-radius)_+_2px))] border border-input bg-[var(--ui-control-background,var(--ui-muted))] px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground data-[slot=input]:focus-visible:text-field-focus data-[slot=input]:focus-visible:aria-invalid:text-field-focus disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-[var(--ui-control-background,var(--ui-muted))] dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", e),
2575
2575
  ...n
2576
2576
  });
2577
2577
  });
@@ -2590,9 +2590,41 @@ var wn = e.forwardRef(function({ className: e, ...t }, n) {
2590
2590
  return /* @__PURE__ */ r("textarea", {
2591
2591
  ref: n,
2592
2592
  "data-slot": "textarea",
2593
- className: Yt("flex field-sizing-content min-h-16 w-full rounded-lg border border-input bg-transparent px-2.5 py-2 text-base transition-colors outline-none placeholder:text-muted-foreground focus-visible:text-field-focus focus-visible:aria-invalid:text-field-focus disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", e),
2593
+ className: Yt("flex field-sizing-content min-h-16 w-full rounded-[var(--ui-control-radius,calc(var(--ui-radius)_+_2px))] border border-input bg-[var(--ui-control-background,var(--ui-muted))] px-2.5 py-2 text-base transition-colors outline-none placeholder:text-muted-foreground focus-visible:text-field-focus focus-visible:aria-invalid:text-field-focus disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-[var(--ui-control-background,var(--ui-muted))] dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", e),
2594
2594
  ...t
2595
2595
  });
2596
- }), Tn = Zt;
2596
+ }), Tn = Zt, En = {
2597
+ className: "open-flow-notifications",
2598
+ closeButton: !0,
2599
+ expand: !1,
2600
+ gap: 8,
2601
+ mobileOffset: {
2602
+ top: 56,
2603
+ left: 12,
2604
+ right: 12
2605
+ },
2606
+ offset: {
2607
+ top: 56,
2608
+ left: 16,
2609
+ right: 16
2610
+ },
2611
+ position: "top-center",
2612
+ visibleToasts: 3
2613
+ };
2614
+ function Dn({ children: e }) {
2615
+ return t("span", {
2616
+ className: "inline-flex items-center gap-1.5",
2617
+ "data-notification-action-icon": "start"
2618
+ }, t("i", {
2619
+ "aria-hidden": !0,
2620
+ className: "i-lucide:undo-2",
2621
+ style: {
2622
+ width: 14,
2623
+ height: 14,
2624
+ flexShrink: 0,
2625
+ transform: "translateY(-1px)"
2626
+ }
2627
+ }), e);
2628
+ }
2597
2629
  //#endregion
2598
- export { Tn as Button, Sn as Input, Cn as Label, wn as Textarea };
2630
+ export { Tn as Button, Sn as Input, Cn as Label, Dn as NotificationUndoLabel, wn as Textarea, En as notificationToasterProps };
@@ -7,8 +7,27 @@ export type WorkbenchView = 'design' | 'publications' | 'runs';
7
7
  export interface WorkbenchNotification {
8
8
  readonly kind: 'error' | 'success';
9
9
  readonly message: string;
10
+ readonly undo?: {
11
+ readonly label: string;
12
+ /** Restores this notification's operation only while it is the current undo entry. */
13
+ readonly run: () => Promise<void>;
14
+ };
10
15
  }
11
16
  export interface WorkbenchHost {
17
+ /** A stable deployment identity enables persistent Trigger metadata caching. */
18
+ readonly triggerCatalogCache?: {
19
+ readonly namespace: string;
20
+ readonly storage?: {
21
+ getItem(key: string): string | null;
22
+ setItem(key: string, value: string): void;
23
+ };
24
+ };
25
+ /** Deployment identity for Connector caches. Cached representations display immediately and revalidate in the background. */
26
+ readonly connectorCache?: {
27
+ readonly namespace: string;
28
+ readonly localStorage?: WorkbenchPreferences;
29
+ readonly sessionStorage?: WorkbenchPreferences;
30
+ };
12
31
  notify(notification: WorkbenchNotification | undefined): void;
13
32
  openExternalPage(resolveUrl: () => Promise<string>): Promise<boolean>;
14
33
  request(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;