@buoy-gg/redux 7.0.3 → 7.0.5

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.
@@ -57,6 +57,12 @@ Object.defineProperty(exports, "ReduxModal", {
57
57
  return _ReduxModal.ReduxModal;
58
58
  }
59
59
  });
60
+ Object.defineProperty(exports, "ReduxToolView", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _ReduxModal.ReduxToolView;
64
+ }
65
+ });
60
66
  Object.defineProperty(exports, "buoyReduxMiddleware", {
61
67
  enumerable: true,
62
68
  get: function () {
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.FREE_TIER_ACTION_LIMIT = void 0;
7
7
  exports.ReduxModal = ReduxModal;
8
+ exports.ReduxToolView = ReduxToolView;
8
9
  var _react = require("react");
9
10
  var _reactNative = require("react-native");
10
11
  var _sharedUi = require("@buoy-gg/shared-ui");
@@ -46,7 +47,8 @@ function ReduxModal({
46
47
  onClose,
47
48
  onBack,
48
49
  onMinimize,
49
- enableSharedModalDimensions = false
50
+ enableSharedModalDimensions = false,
51
+ inline = false
50
52
  }) {
51
53
  const isPro = (0, _license.useIsPro)();
52
54
  const [showProModal, setShowProModal] = (0, _react.useState)(false);
@@ -285,6 +287,86 @@ function ReduxModal({
285
287
  // The action list owns its scrolling so FlatList virtualization works
286
288
  // (see ZustandModal — same pattern, same tool-bench evidence).
287
289
  const listOwnsScroll = selectedAction == null;
290
+ const body = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
291
+ style: styles.container,
292
+ children: selectedAction && selectedActionIndex !== null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ReduxActionDetailContent.ReduxActionDetailContent, {
293
+ action: selectedAction,
294
+ actions: visibleActions,
295
+ selectedIndex: selectedActionIndex,
296
+ onIndexChange: handleIndexChange,
297
+ disableInternalFooter: true
298
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
299
+ children: [instrumentError && !isInstrumented && !_reduxActionStore.reduxActionStore.isCaptureSuppressed() && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
300
+ style: styles.errorBanner,
301
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.AlertTriangle, {
302
+ size: 14,
303
+ color: _sharedUi.macOSColors.semantic.error
304
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
305
+ style: styles.errorText,
306
+ children: isReactReduxAvailable ? "Not inside a Redux Provider. Wrap your app with <Provider store={store}>." : "react-redux not installed. Run: npm install react-redux"
307
+ })]
308
+ }), !isEnabled && isInstrumented && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
309
+ style: styles.disabledBanner,
310
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Power, {
311
+ size: 14,
312
+ color: _sharedUi.macOSColors.semantic.warning
313
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
314
+ style: styles.disabledText,
315
+ children: "Action capture is disabled"
316
+ })]
317
+ }), hasLockedActions && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
318
+ style: styles.lockedBanner,
319
+ onPress: handleUpgradePress,
320
+ activeOpacity: 0.8,
321
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Lock, {
322
+ size: 14,
323
+ color: _sharedUi.buoyColors.primary
324
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
325
+ style: styles.lockedText,
326
+ children: [lockedActionCount, " older ", lockedActionCount === 1 ? "action" : "actions", " locked"]
327
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
328
+ style: styles.upgradeBadge,
329
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
330
+ style: styles.upgradeBadgeText,
331
+ children: "UPGRADE"
332
+ })
333
+ })]
334
+ }), visibleActions.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.FlatList, {
335
+ ref: flatListRef,
336
+ data: visibleActions,
337
+ renderItem: renderItem,
338
+ keyExtractor: keyExtractor,
339
+ contentContainerStyle: styles.listContent,
340
+ showsVerticalScrollIndicator: true,
341
+ removeClippedSubviews: true,
342
+ initialNumToRender: 12,
343
+ maxToRenderPerBatch: 8,
344
+ windowSize: 5,
345
+ updateCellsBatchingPeriod: 50
346
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(EmptyState, {
347
+ isEnabled: isEnabled
348
+ })]
349
+ })
350
+ });
351
+ const upgradeModal = /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ProUpgradeModal, {
352
+ visible: showProModal,
353
+ onClose: () => setShowProModal(false),
354
+ featureName: "Full Action History"
355
+ });
356
+
357
+ // The ONLY difference between the phone and the desktop dashboard is which
358
+ // shell the header, body and footer go in. Everything above this is shared.
359
+ if (inline) {
360
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.TickProvider, {
361
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
362
+ style: styles.inlineRoot,
363
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
364
+ style: styles.inlineHeader,
365
+ children: renderHeaderContent()
366
+ }), body, footerNode]
367
+ }), upgradeModal]
368
+ });
369
+ }
288
370
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.TickProvider, {
289
371
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.JsModal, {
290
372
  visible: visible,
@@ -303,75 +385,38 @@ function ReduxModal({
303
385
  styles: {},
304
386
  footer: footerNode,
305
387
  footerHeight: footerHeight,
306
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
307
- style: styles.container,
308
- children: selectedAction && selectedActionIndex !== null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ReduxActionDetailContent.ReduxActionDetailContent, {
309
- action: selectedAction,
310
- actions: visibleActions,
311
- selectedIndex: selectedActionIndex,
312
- onIndexChange: handleIndexChange,
313
- disableInternalFooter: true
314
- }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
315
- children: [instrumentError && !isInstrumented && !_reduxActionStore.reduxActionStore.isCaptureSuppressed() && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
316
- style: styles.errorBanner,
317
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.AlertTriangle, {
318
- size: 14,
319
- color: _sharedUi.macOSColors.semantic.error
320
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
321
- style: styles.errorText,
322
- children: isReactReduxAvailable ? "Not inside a Redux Provider. Wrap your app with <Provider store={store}>." : "react-redux not installed. Run: npm install react-redux"
323
- })]
324
- }), !isEnabled && isInstrumented && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
325
- style: styles.disabledBanner,
326
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Power, {
327
- size: 14,
328
- color: _sharedUi.macOSColors.semantic.warning
329
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
330
- style: styles.disabledText,
331
- children: "Action capture is disabled"
332
- })]
333
- }), hasLockedActions && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
334
- style: styles.lockedBanner,
335
- onPress: handleUpgradePress,
336
- activeOpacity: 0.8,
337
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Lock, {
338
- size: 14,
339
- color: _sharedUi.buoyColors.primary
340
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
341
- style: styles.lockedText,
342
- children: [lockedActionCount, " older ", lockedActionCount === 1 ? "action" : "actions", " locked"]
343
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
344
- style: styles.upgradeBadge,
345
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
346
- style: styles.upgradeBadgeText,
347
- children: "UPGRADE"
348
- })
349
- })]
350
- }), visibleActions.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.FlatList, {
351
- ref: flatListRef,
352
- data: visibleActions,
353
- renderItem: renderItem,
354
- keyExtractor: keyExtractor,
355
- contentContainerStyle: styles.listContent,
356
- showsVerticalScrollIndicator: true,
357
- removeClippedSubviews: true,
358
- initialNumToRender: 12,
359
- maxToRenderPerBatch: 8,
360
- windowSize: 5,
361
- updateCellsBatchingPeriod: 50
362
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(EmptyState, {
363
- isEnabled: isEnabled
364
- })]
365
- })
366
- })
367
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ProUpgradeModal, {
368
- visible: showProModal,
369
- onClose: () => setShowProModal(false),
370
- featureName: "Full Action History"
371
- })]
388
+ children: body
389
+ }), upgradeModal]
390
+ });
391
+ }
392
+
393
+ /**
394
+ * The same Redux tool as `ReduxModal`, rendered INLINE for hosts that place
395
+ * tools in a panel rather than a modal. Exists so there is exactly one
396
+ * implementation — the desktop dashboard used to ship its own copy of this
397
+ * component's header, action list and detail router.
398
+ */
399
+ function ReduxToolView(props = {}) {
400
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(ReduxModal, {
401
+ ...props,
402
+ inline: true,
403
+ visible: true,
404
+ onClose: () => {}
372
405
  });
373
406
  }
374
407
  const styles = _reactNative.StyleSheet.create({
408
+ inlineRoot: {
409
+ flex: 1,
410
+ minHeight: 0,
411
+ backgroundColor: _sharedUi.macOSColors.background.base
412
+ },
413
+ inlineHeader: {
414
+ paddingHorizontal: 12,
415
+ paddingVertical: 8,
416
+ borderBottomWidth: 1,
417
+ borderBottomColor: _sharedUi.macOSColors.border.default,
418
+ backgroundColor: _sharedUi.macOSColors.background.card
419
+ },
375
420
  container: {
376
421
  flex: 1,
377
422
  backgroundColor: _sharedUi.macOSColors.background.base
@@ -75,7 +75,9 @@ export { useAutoInstrumentRedux, useReduxAvailability } from "./redux/hooks/useA
75
75
  // =============================================================================
76
76
  // COMPONENTS (For custom UI implementations)
77
77
  // =============================================================================
78
- export { ReduxModal, FREE_TIER_ACTION_LIMIT } from "./redux/components/ReduxModal";
78
+ // `ReduxToolView` is the same tool rendered inline (header bar + body + footer)
79
+ // instead of inside a JsModal — for hosts that show tools in a panel.
80
+ export { ReduxModal, ReduxToolView, FREE_TIER_ACTION_LIMIT } from "./redux/components/ReduxModal";
79
81
  export { ReduxActionItem } from "./redux/components/ReduxActionItem";
80
82
  export { ReduxActionDetailView } from "./redux/components/ReduxActionDetailView";
81
83
  export { ReduxActionDetailContent, ReduxActionDetailFooter } from "./redux/components/ReduxActionDetailContent";
@@ -41,7 +41,8 @@ export function ReduxModal({
41
41
  onClose,
42
42
  onBack,
43
43
  onMinimize,
44
- enableSharedModalDimensions = false
44
+ enableSharedModalDimensions = false,
45
+ inline = false
45
46
  }) {
46
47
  const isPro = useIsPro();
47
48
  const [showProModal, setShowProModal] = useState(false);
@@ -280,6 +281,86 @@ export function ReduxModal({
280
281
  // The action list owns its scrolling so FlatList virtualization works
281
282
  // (see ZustandModal — same pattern, same tool-bench evidence).
282
283
  const listOwnsScroll = selectedAction == null;
284
+ const body = /*#__PURE__*/_jsx(View, {
285
+ style: styles.container,
286
+ children: selectedAction && selectedActionIndex !== null ? /*#__PURE__*/_jsx(ReduxActionDetailContent, {
287
+ action: selectedAction,
288
+ actions: visibleActions,
289
+ selectedIndex: selectedActionIndex,
290
+ onIndexChange: handleIndexChange,
291
+ disableInternalFooter: true
292
+ }) : /*#__PURE__*/_jsxs(_Fragment, {
293
+ children: [instrumentError && !isInstrumented && !reduxActionStore.isCaptureSuppressed() && /*#__PURE__*/_jsxs(View, {
294
+ style: styles.errorBanner,
295
+ children: [/*#__PURE__*/_jsx(AlertTriangle, {
296
+ size: 14,
297
+ color: macOSColors.semantic.error
298
+ }), /*#__PURE__*/_jsx(Text, {
299
+ style: styles.errorText,
300
+ children: isReactReduxAvailable ? "Not inside a Redux Provider. Wrap your app with <Provider store={store}>." : "react-redux not installed. Run: npm install react-redux"
301
+ })]
302
+ }), !isEnabled && isInstrumented && /*#__PURE__*/_jsxs(View, {
303
+ style: styles.disabledBanner,
304
+ children: [/*#__PURE__*/_jsx(Power, {
305
+ size: 14,
306
+ color: macOSColors.semantic.warning
307
+ }), /*#__PURE__*/_jsx(Text, {
308
+ style: styles.disabledText,
309
+ children: "Action capture is disabled"
310
+ })]
311
+ }), hasLockedActions && /*#__PURE__*/_jsxs(TouchableOpacity, {
312
+ style: styles.lockedBanner,
313
+ onPress: handleUpgradePress,
314
+ activeOpacity: 0.8,
315
+ children: [/*#__PURE__*/_jsx(Lock, {
316
+ size: 14,
317
+ color: buoyColors.primary
318
+ }), /*#__PURE__*/_jsxs(Text, {
319
+ style: styles.lockedText,
320
+ children: [lockedActionCount, " older ", lockedActionCount === 1 ? "action" : "actions", " locked"]
321
+ }), /*#__PURE__*/_jsx(View, {
322
+ style: styles.upgradeBadge,
323
+ children: /*#__PURE__*/_jsx(Text, {
324
+ style: styles.upgradeBadgeText,
325
+ children: "UPGRADE"
326
+ })
327
+ })]
328
+ }), visibleActions.length > 0 ? /*#__PURE__*/_jsx(FlatList, {
329
+ ref: flatListRef,
330
+ data: visibleActions,
331
+ renderItem: renderItem,
332
+ keyExtractor: keyExtractor,
333
+ contentContainerStyle: styles.listContent,
334
+ showsVerticalScrollIndicator: true,
335
+ removeClippedSubviews: true,
336
+ initialNumToRender: 12,
337
+ maxToRenderPerBatch: 8,
338
+ windowSize: 5,
339
+ updateCellsBatchingPeriod: 50
340
+ }) : /*#__PURE__*/_jsx(EmptyState, {
341
+ isEnabled: isEnabled
342
+ })]
343
+ })
344
+ });
345
+ const upgradeModal = /*#__PURE__*/_jsx(ProUpgradeModal, {
346
+ visible: showProModal,
347
+ onClose: () => setShowProModal(false),
348
+ featureName: "Full Action History"
349
+ });
350
+
351
+ // The ONLY difference between the phone and the desktop dashboard is which
352
+ // shell the header, body and footer go in. Everything above this is shared.
353
+ if (inline) {
354
+ return /*#__PURE__*/_jsxs(TickProvider, {
355
+ children: [/*#__PURE__*/_jsxs(View, {
356
+ style: styles.inlineRoot,
357
+ children: [/*#__PURE__*/_jsx(View, {
358
+ style: styles.inlineHeader,
359
+ children: renderHeaderContent()
360
+ }), body, footerNode]
361
+ }), upgradeModal]
362
+ });
363
+ }
283
364
  return /*#__PURE__*/_jsxs(TickProvider, {
284
365
  children: [/*#__PURE__*/_jsx(JsModal, {
285
366
  visible: visible,
@@ -298,75 +379,38 @@ export function ReduxModal({
298
379
  styles: {},
299
380
  footer: footerNode,
300
381
  footerHeight: footerHeight,
301
- children: /*#__PURE__*/_jsx(View, {
302
- style: styles.container,
303
- children: selectedAction && selectedActionIndex !== null ? /*#__PURE__*/_jsx(ReduxActionDetailContent, {
304
- action: selectedAction,
305
- actions: visibleActions,
306
- selectedIndex: selectedActionIndex,
307
- onIndexChange: handleIndexChange,
308
- disableInternalFooter: true
309
- }) : /*#__PURE__*/_jsxs(_Fragment, {
310
- children: [instrumentError && !isInstrumented && !reduxActionStore.isCaptureSuppressed() && /*#__PURE__*/_jsxs(View, {
311
- style: styles.errorBanner,
312
- children: [/*#__PURE__*/_jsx(AlertTriangle, {
313
- size: 14,
314
- color: macOSColors.semantic.error
315
- }), /*#__PURE__*/_jsx(Text, {
316
- style: styles.errorText,
317
- children: isReactReduxAvailable ? "Not inside a Redux Provider. Wrap your app with <Provider store={store}>." : "react-redux not installed. Run: npm install react-redux"
318
- })]
319
- }), !isEnabled && isInstrumented && /*#__PURE__*/_jsxs(View, {
320
- style: styles.disabledBanner,
321
- children: [/*#__PURE__*/_jsx(Power, {
322
- size: 14,
323
- color: macOSColors.semantic.warning
324
- }), /*#__PURE__*/_jsx(Text, {
325
- style: styles.disabledText,
326
- children: "Action capture is disabled"
327
- })]
328
- }), hasLockedActions && /*#__PURE__*/_jsxs(TouchableOpacity, {
329
- style: styles.lockedBanner,
330
- onPress: handleUpgradePress,
331
- activeOpacity: 0.8,
332
- children: [/*#__PURE__*/_jsx(Lock, {
333
- size: 14,
334
- color: buoyColors.primary
335
- }), /*#__PURE__*/_jsxs(Text, {
336
- style: styles.lockedText,
337
- children: [lockedActionCount, " older ", lockedActionCount === 1 ? "action" : "actions", " locked"]
338
- }), /*#__PURE__*/_jsx(View, {
339
- style: styles.upgradeBadge,
340
- children: /*#__PURE__*/_jsx(Text, {
341
- style: styles.upgradeBadgeText,
342
- children: "UPGRADE"
343
- })
344
- })]
345
- }), visibleActions.length > 0 ? /*#__PURE__*/_jsx(FlatList, {
346
- ref: flatListRef,
347
- data: visibleActions,
348
- renderItem: renderItem,
349
- keyExtractor: keyExtractor,
350
- contentContainerStyle: styles.listContent,
351
- showsVerticalScrollIndicator: true,
352
- removeClippedSubviews: true,
353
- initialNumToRender: 12,
354
- maxToRenderPerBatch: 8,
355
- windowSize: 5,
356
- updateCellsBatchingPeriod: 50
357
- }) : /*#__PURE__*/_jsx(EmptyState, {
358
- isEnabled: isEnabled
359
- })]
360
- })
361
- })
362
- }), /*#__PURE__*/_jsx(ProUpgradeModal, {
363
- visible: showProModal,
364
- onClose: () => setShowProModal(false),
365
- featureName: "Full Action History"
366
- })]
382
+ children: body
383
+ }), upgradeModal]
384
+ });
385
+ }
386
+
387
+ /**
388
+ * The same Redux tool as `ReduxModal`, rendered INLINE for hosts that place
389
+ * tools in a panel rather than a modal. Exists so there is exactly one
390
+ * implementation — the desktop dashboard used to ship its own copy of this
391
+ * component's header, action list and detail router.
392
+ */
393
+ export function ReduxToolView(props = {}) {
394
+ return /*#__PURE__*/_jsx(ReduxModal, {
395
+ ...props,
396
+ inline: true,
397
+ visible: true,
398
+ onClose: () => {}
367
399
  });
368
400
  }
369
401
  const styles = StyleSheet.create({
402
+ inlineRoot: {
403
+ flex: 1,
404
+ minHeight: 0,
405
+ backgroundColor: macOSColors.background.base
406
+ },
407
+ inlineHeader: {
408
+ paddingHorizontal: 12,
409
+ paddingVertical: 8,
410
+ borderBottomWidth: 1,
411
+ borderBottomColor: macOSColors.border.default,
412
+ backgroundColor: macOSColors.background.card
413
+ },
370
414
  container: {
371
415
  flex: 1,
372
416
  backgroundColor: macOSColors.background.base
@@ -49,7 +49,7 @@ export { useReduxActions } from "./redux/hooks/useReduxActions";
49
49
  export type { UseReduxActionsResult } from "./redux/hooks/useReduxActions";
50
50
  export { useAutoInstrumentRedux, useReduxAvailability, } from "./redux/hooks/useAutoInstrumentRedux";
51
51
  export type { UseAutoInstrumentReduxOptions, UseAutoInstrumentReduxResult, } from "./redux/hooks/useAutoInstrumentRedux";
52
- export { ReduxModal, FREE_TIER_ACTION_LIMIT } from "./redux/components/ReduxModal";
52
+ export { ReduxModal, ReduxToolView, FREE_TIER_ACTION_LIMIT, } from "./redux/components/ReduxModal";
53
53
  export { ReduxActionItem } from "./redux/components/ReduxActionItem";
54
54
  export { ReduxActionDetailView } from "./redux/components/ReduxActionDetailView";
55
55
  export { ReduxActionDetailContent, ReduxActionDetailFooter, } from "./redux/components/ReduxActionDetailContent";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAKH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAK5D,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAK3C,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,GACf,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAK1E,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,yCAAyC,CAAC;AAKjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKjE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAG3E,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACV,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,sCAAsC,CAAC;AAK9C,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAKzD,YAAY,EACV,cAAc,EACd,UAAU,EACV,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AAKvB,gBAAgB;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAKH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAK5D,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAK3C,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,GACf,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAK1E,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,yCAAyC,CAAC;AAKjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKjE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAG3E,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACV,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,sCAAsC,CAAC;AAO9C,OAAO,EACL,UAAU,EACV,aAAa,EACb,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAKzD,YAAY,EACV,cAAc,EACd,UAAU,EACV,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AAKvB,gBAAgB;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -7,12 +7,26 @@
7
7
  /** Free tier limit for action history */
8
8
  export declare const FREE_TIER_ACTION_LIMIT = 25;
9
9
  interface ReduxModalProps {
10
+ /**
11
+ * Render as a header-bar + body (+ footer) stack instead of inside `JsModal`,
12
+ * for hosts that place tools in a panel rather than a modal (Buoy Desktop).
13
+ * Only the shell differs — header, screens and state are shared. See
14
+ * `ReduxToolView` at the bottom of this file.
15
+ */
16
+ inline?: boolean;
10
17
  visible: boolean;
11
18
  onClose: () => void;
12
19
  onBack?: () => void;
13
20
  onMinimize?: (modalState: unknown) => void;
14
21
  enableSharedModalDimensions?: boolean;
15
22
  }
16
- export declare function ReduxModal({ visible, onClose, onBack, onMinimize, enableSharedModalDimensions, }: ReduxModalProps): import("react").JSX.Element | null;
23
+ export declare function ReduxModal({ visible, onClose, onBack, onMinimize, enableSharedModalDimensions, inline, }: ReduxModalProps): import("react").JSX.Element | null;
24
+ /**
25
+ * The same Redux tool as `ReduxModal`, rendered INLINE for hosts that place
26
+ * tools in a panel rather than a modal. Exists so there is exactly one
27
+ * implementation — the desktop dashboard used to ship its own copy of this
28
+ * component's header, action list and detail router.
29
+ */
30
+ export declare function ReduxToolView(props?: Omit<ReduxModalProps, "visible" | "onClose" | "inline">): import("react").JSX.Element;
17
31
  export {};
18
32
  //# sourceMappingURL=ReduxModal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReduxModal.d.ts","sourceRoot":"","sources":["../../../../src/redux/components/ReduxModal.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2CH,yCAAyC;AACzC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;AAgBD,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,2BAAmC,GACpC,EAAE,eAAe,sCAiYjB"}
1
+ {"version":3,"file":"ReduxModal.d.ts","sourceRoot":"","sources":["../../../../src/redux/components/ReduxModal.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2CH,yCAAyC;AACzC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,UAAU,eAAe;IACvB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;AAgBD,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,2BAAmC,EACnC,MAAc,GACf,EAAE,eAAe,sCAwZjB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,KAAK,GAAE,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAM,+BAGpE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@buoy-gg/redux",
3
- "version": "7.0.3",
3
+ "version": "7.0.5",
4
4
  "description": "Redux DevTools inside your React Native app — action log, state diffs & time travel with zero store changes. Part of Buoy devtools.",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -26,9 +26,9 @@
26
26
  ],
27
27
  "sideEffects": false,
28
28
  "dependencies": {
29
- "@buoy-gg/shared-ui": "7.0.3",
30
- "@buoy-gg/floating-tools-core": "7.0.3",
31
- "@buoy-gg/license": "7.0.3"
29
+ "@buoy-gg/shared-ui": "7.0.5",
30
+ "@buoy-gg/license": "7.0.5",
31
+ "@buoy-gg/floating-tools-core": "7.0.5"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "@reduxjs/toolkit": ">=1.9.0",