@flowsterix/react 0.11.0 → 0.11.1

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.
@@ -5,7 +5,7 @@ import {
5
5
  } from "../chunk-AJZMUYBN.mjs";
6
6
 
7
7
  // src/devtools/DevToolsProvider.tsx
8
- import { useCallback as useCallback8, useEffect as useEffect5, useState as useState8 } from "react";
8
+ import { useCallback as useCallback8, useEffect as useEffect5, useRef, useState as useState8 } from "react";
9
9
  import { createPortal as createPortal3 } from "react-dom";
10
10
  import { AnimatePresence as AnimatePresence3, motion as motion6 } from "motion/react";
11
11
 
@@ -1235,16 +1235,49 @@ import { useCallback as useCallback4, useState as useState6 } from "react";
1235
1235
  import { motion as motion5 } from "motion/react";
1236
1236
 
1237
1237
  // src/devtools/hooks/useFlowsData.ts
1238
- import { useCallback as useCallback2, useEffect, useState as useState3 } from "react";
1238
+ import { useCallback as useCallback2, useEffect, useState as useState3, useSyncExternalStore } from "react";
1239
+
1240
+ // src/devtools/globalBridge.ts
1241
+ var BRIDGE_KEY = "__FLOWSTERIX_DEVTOOLS_BRIDGE__";
1242
+ function getBridge() {
1243
+ if (typeof window === "undefined") {
1244
+ return { value: null, listeners: /* @__PURE__ */ new Set() };
1245
+ }
1246
+ const w = window;
1247
+ if (!w[BRIDGE_KEY]) {
1248
+ w[BRIDGE_KEY] = { value: null, listeners: /* @__PURE__ */ new Set() };
1249
+ }
1250
+ return w[BRIDGE_KEY];
1251
+ }
1252
+ function getDevToolsBridge() {
1253
+ return getBridge().value;
1254
+ }
1255
+ function subscribeDevToolsBridge(listener) {
1256
+ const bridge = getBridge();
1257
+ bridge.listeners.add(listener);
1258
+ return () => {
1259
+ bridge.listeners.delete(listener);
1260
+ };
1261
+ }
1262
+
1263
+ // src/devtools/hooks/useFlowsData.ts
1264
+ function useBridge() {
1265
+ return useSyncExternalStore(
1266
+ subscribeDevToolsBridge,
1267
+ getDevToolsBridge,
1268
+ () => null
1269
+ // Server snapshot
1270
+ );
1271
+ }
1239
1272
  function useFlowsData() {
1240
- const devtools = useDevToolsContext();
1273
+ const bridge = useBridge();
1241
1274
  const [flowsData, setFlowsData] = useState3([]);
1242
1275
  const loadFlowStates = useCallback2(async () => {
1243
- if (!devtools) {
1276
+ if (!bridge) {
1244
1277
  setFlowsData([]);
1245
1278
  return;
1246
1279
  }
1247
- const { flows, activeFlowId, state: activeState, getFlowState } = devtools;
1280
+ const { flows, activeFlowId, state: activeState, getFlowState } = bridge;
1248
1281
  const flowDataPromises = [];
1249
1282
  for (const [flowId, definition] of flows) {
1250
1283
  const isActive = flowId === activeFlowId;
@@ -1262,30 +1295,28 @@ function useFlowsData() {
1262
1295
  }
1263
1296
  const results = await Promise.all(flowDataPromises);
1264
1297
  setFlowsData(results);
1265
- }, [devtools]);
1298
+ }, [bridge]);
1266
1299
  useEffect(() => {
1267
1300
  void loadFlowStates();
1268
1301
  }, [loadFlowStates]);
1269
- useEffect(() => {
1270
- if (!devtools?.activeFlowId || !devtools?.state) return;
1271
- void loadFlowStates();
1272
- }, [devtools?.activeFlowId, devtools?.state, loadFlowStates]);
1273
1302
  const deleteFlow = useCallback2(
1274
1303
  async (flowId) => {
1275
- if (!devtools) return;
1276
- devtools.cancelFlow(flowId);
1277
- await devtools.deleteFlowStorage(flowId);
1304
+ if (!bridge) return;
1305
+ if (bridge.activeFlowId === flowId) {
1306
+ bridge.cancel();
1307
+ }
1308
+ await bridge.deleteFlowStorage(flowId);
1278
1309
  await loadFlowStates();
1279
1310
  },
1280
- [devtools, loadFlowStates]
1311
+ [bridge, loadFlowStates]
1281
1312
  );
1282
1313
  const updateFlow = useCallback2(
1283
- async (flowId, state) => {
1284
- if (!devtools) return;
1285
- await devtools.updateFlowStorage(flowId, state);
1314
+ async (flowId, newState) => {
1315
+ if (!bridge) return;
1316
+ await bridge.updateFlowStorage(flowId, newState);
1286
1317
  await loadFlowStates();
1287
1318
  },
1288
- [devtools, loadFlowStates]
1319
+ [bridge, loadFlowStates]
1289
1320
  );
1290
1321
  return {
1291
1322
  flows: flowsData,
@@ -2164,7 +2195,7 @@ function useGrabMode() {
2164
2195
  }
2165
2196
 
2166
2197
  // src/devtools/hooks/useStepStore.ts
2167
- import { useCallback as useCallback7, useEffect as useEffect4, useSyncExternalStore } from "react";
2198
+ import { useCallback as useCallback7, useEffect as useEffect4, useSyncExternalStore as useSyncExternalStore2 } from "react";
2168
2199
 
2169
2200
  // src/devtools/utils/storage.ts
2170
2201
  var STORAGE_KEY = "flowsterix-devtools-steps";
@@ -2226,7 +2257,7 @@ function generateId() {
2226
2257
  return `step-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
2227
2258
  }
2228
2259
  function useStepStore() {
2229
- const steps = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
2260
+ const steps = useSyncExternalStore2(subscribe, getSnapshot, getServerSnapshot);
2230
2261
  useEffect4(() => {
2231
2262
  const saved = loadSteps();
2232
2263
  if (saved.length > 0) {
@@ -2458,7 +2489,7 @@ function DevToolsProvider(props) {
2458
2489
  const [collapsed, setCollapsed] = useState8(false);
2459
2490
  const [position, setPosition] = useState8({ x: 16, y: 16 });
2460
2491
  const [isPanelDragging, setIsPanelDragging] = useState8(false);
2461
- const dragStartRef = { current: null };
2492
+ const dragStartRef = useRef(null);
2462
2493
  const handleClick = useCallback8(
2463
2494
  (e) => {
2464
2495
  if (mode !== "grabbing") return;
@@ -1 +1 @@
1
- {"version":3,"file":"useHiddenTargetFallback.d.ts","sourceRoot":"","sources":["../../src/hooks/useHiddenTargetFallback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAOrD,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IAC5B,MAAM,EAAE,cAAc,CAAA;IACtB,YAAY,EAAE,cAAc,CAAA;IAC5B,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB;AAED,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,cAAc,CAAA;IACtB,mBAAmB,EAAE,OAAO,CAAA;IAC5B;;;OAGG;IACH,eAAe,EAAE,OAAO,CAAA;CACzB;AAED,eAAO,MAAM,uBAAuB,GAAI,yCAKrC,6BAA6B,KAAG,6BAyIlC,CAAA"}
1
+ {"version":3,"file":"useHiddenTargetFallback.d.ts","sourceRoot":"","sources":["../../src/hooks/useHiddenTargetFallback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAOrD,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IAC5B,MAAM,EAAE,cAAc,CAAA;IACtB,YAAY,EAAE,cAAc,CAAA;IAC5B,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB;AAED,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,cAAc,CAAA;IACtB,mBAAmB,EAAE,OAAO,CAAA;IAC5B;;;OAGG;IACH,eAAe,EAAE,OAAO,CAAA;CACzB;AAED,eAAO,MAAM,uBAAuB,GAAI,yCAKrC,6BAA6B,KAAG,6BAmKlC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTourOverlay.d.ts","sourceRoot":"","sources":["../../src/hooks/useTourOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAG/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAOlD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,cAAc,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,uBAAuB,CAAA;IACzC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAA;IACjB;;OAEG;IACH,SAAS,EAAE;QACT,IAAI,EAAE,eAAe,GAAG,IAAI,CAAA;QAC5B,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,cAAc,GAAG,IAAI,CAAA;QAC7B,QAAQ,EAAE,OAAO,CAAA;KAClB,CAAA;IACD;;OAEG;IACH,UAAU,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,gBAAgB,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAA;IAClD;;OAEG;IACH,eAAe,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAA;IACjD;;OAEG;IACH,eAAe,EAAE,OAAO,CAAA;IACxB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAA;CACzB;AAMD,eAAO,MAAM,cAAc,GACzB,SAAS,qBAAqB,KAC7B,oBA2PF,CAAA"}
1
+ {"version":3,"file":"useTourOverlay.d.ts","sourceRoot":"","sources":["../../src/hooks/useTourOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAG/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAOlD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,cAAc,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,uBAAuB,CAAA;IACzC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAA;IACjB;;OAEG;IACH,SAAS,EAAE;QACT,IAAI,EAAE,eAAe,GAAG,IAAI,CAAA;QAC5B,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,cAAc,GAAG,IAAI,CAAA;QAC7B,QAAQ,EAAE,OAAO,CAAA;KAClB,CAAA;IACD;;OAEG;IACH,UAAU,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,gBAAgB,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAA;IAClD;;OAEG;IACH,eAAe,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAA;IACjD;;OAEG;IACH,eAAe,EAAE,OAAO,CAAA;IACxB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAA;CACzB;AAMD,eAAO,MAAM,cAAc,GACzB,SAAS,qBAAqB,KAC7B,oBA6PF,CAAA"}