react-native-element-inspector 0.1.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 (213) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +134 -0
  3. package/lib/ElementCycler.d.ts +14 -0
  4. package/lib/ElementCycler.d.ts.map +1 -0
  5. package/lib/ElementCycler.js +33 -0
  6. package/lib/ElementCycler.js.map +1 -0
  7. package/lib/ElementHighlighter.d.ts +21 -0
  8. package/lib/ElementHighlighter.d.ts.map +1 -0
  9. package/lib/ElementHighlighter.js +89 -0
  10. package/lib/ElementHighlighter.js.map +1 -0
  11. package/lib/ElementInspector.d.ts +12 -0
  12. package/lib/ElementInspector.d.ts.map +1 -0
  13. package/lib/ElementInspector.js +74 -0
  14. package/lib/ElementInspector.js.map +1 -0
  15. package/lib/components/Checkbox.d.ts +7 -0
  16. package/lib/components/Checkbox.d.ts.map +1 -0
  17. package/lib/components/Checkbox.js +30 -0
  18. package/lib/components/Checkbox.js.map +1 -0
  19. package/lib/components/index.d.ts +2 -0
  20. package/lib/components/index.d.ts.map +1 -0
  21. package/lib/components/index.js +2 -0
  22. package/lib/components/index.js.map +1 -0
  23. package/lib/constants/colors.d.ts +24 -0
  24. package/lib/constants/colors.d.ts.map +1 -0
  25. package/lib/constants/colors.js +18 -0
  26. package/lib/constants/colors.js.map +1 -0
  27. package/lib/constants/index.d.ts +3 -0
  28. package/lib/constants/index.d.ts.map +1 -0
  29. package/lib/constants/index.js +3 -0
  30. package/lib/constants/index.js.map +1 -0
  31. package/lib/constants/ui.d.ts +56 -0
  32. package/lib/constants/ui.d.ts.map +1 -0
  33. package/lib/constants/ui.js +46 -0
  34. package/lib/constants/ui.js.map +1 -0
  35. package/lib/fiber/FiberAdapter.d.ts +52 -0
  36. package/lib/fiber/FiberAdapter.d.ts.map +1 -0
  37. package/lib/fiber/FiberAdapter.js +112 -0
  38. package/lib/fiber/FiberAdapter.js.map +1 -0
  39. package/lib/fiber/detectVersion.d.ts +9 -0
  40. package/lib/fiber/detectVersion.d.ts.map +1 -0
  41. package/lib/fiber/detectVersion.js +17 -0
  42. package/lib/fiber/detectVersion.js.map +1 -0
  43. package/lib/fiber/index.d.ts +5 -0
  44. package/lib/fiber/index.d.ts.map +1 -0
  45. package/lib/fiber/index.js +4 -0
  46. package/lib/fiber/index.js.map +1 -0
  47. package/lib/fiber/types.d.ts +35 -0
  48. package/lib/fiber/types.d.ts.map +1 -0
  49. package/lib/fiber/types.js +3 -0
  50. package/lib/fiber/types.js.map +1 -0
  51. package/lib/floatingPanel/AddPropertyRow.d.ts +13 -0
  52. package/lib/floatingPanel/AddPropertyRow.d.ts.map +1 -0
  53. package/lib/floatingPanel/AddPropertyRow.js +61 -0
  54. package/lib/floatingPanel/AddPropertyRow.js.map +1 -0
  55. package/lib/floatingPanel/CloseButton.d.ts +7 -0
  56. package/lib/floatingPanel/CloseButton.d.ts.map +1 -0
  57. package/lib/floatingPanel/CloseButton.js +21 -0
  58. package/lib/floatingPanel/CloseButton.js.map +1 -0
  59. package/lib/floatingPanel/EditableValue.d.ts +12 -0
  60. package/lib/floatingPanel/EditableValue.d.ts.map +1 -0
  61. package/lib/floatingPanel/EditableValue.js +67 -0
  62. package/lib/floatingPanel/EditableValue.js.map +1 -0
  63. package/lib/floatingPanel/FloatingPanel.d.ts +7 -0
  64. package/lib/floatingPanel/FloatingPanel.d.ts.map +1 -0
  65. package/lib/floatingPanel/FloatingPanel.js +70 -0
  66. package/lib/floatingPanel/FloatingPanel.js.map +1 -0
  67. package/lib/floatingPanel/HandleContent.d.ts +7 -0
  68. package/lib/floatingPanel/HandleContent.d.ts.map +1 -0
  69. package/lib/floatingPanel/HandleContent.js +35 -0
  70. package/lib/floatingPanel/HandleContent.js.map +1 -0
  71. package/lib/floatingPanel/InspectorBubble.d.ts +6 -0
  72. package/lib/floatingPanel/InspectorBubble.d.ts.map +1 -0
  73. package/lib/floatingPanel/InspectorBubble.js +91 -0
  74. package/lib/floatingPanel/InspectorBubble.js.map +1 -0
  75. package/lib/floatingPanel/PanelBody.d.ts +8 -0
  76. package/lib/floatingPanel/PanelBody.d.ts.map +1 -0
  77. package/lib/floatingPanel/PanelBody.js +72 -0
  78. package/lib/floatingPanel/PanelBody.js.map +1 -0
  79. package/lib/floatingPanel/PanelFooter.d.ts +9 -0
  80. package/lib/floatingPanel/PanelFooter.d.ts.map +1 -0
  81. package/lib/floatingPanel/PanelFooter.js +21 -0
  82. package/lib/floatingPanel/PanelFooter.js.map +1 -0
  83. package/lib/floatingPanel/PanelHeader.d.ts +13 -0
  84. package/lib/floatingPanel/PanelHeader.d.ts.map +1 -0
  85. package/lib/floatingPanel/PanelHeader.js +56 -0
  86. package/lib/floatingPanel/PanelHeader.js.map +1 -0
  87. package/lib/floatingPanel/index.d.ts +12 -0
  88. package/lib/floatingPanel/index.d.ts.map +1 -0
  89. package/lib/floatingPanel/index.js +11 -0
  90. package/lib/floatingPanel/index.js.map +1 -0
  91. package/lib/floatingPanel/panelUtils.d.ts +3 -0
  92. package/lib/floatingPanel/panelUtils.d.ts.map +1 -0
  93. package/lib/floatingPanel/panelUtils.js +12 -0
  94. package/lib/floatingPanel/panelUtils.js.map +1 -0
  95. package/lib/floatingPanel/types.d.ts +23 -0
  96. package/lib/floatingPanel/types.d.ts.map +1 -0
  97. package/lib/floatingPanel/types.js +2 -0
  98. package/lib/floatingPanel/types.js.map +1 -0
  99. package/lib/hooks/index.d.ts +8 -0
  100. package/lib/hooks/index.d.ts.map +1 -0
  101. package/lib/hooks/index.js +8 -0
  102. package/lib/hooks/index.js.map +1 -0
  103. package/lib/hooks/useDebouncedCallback.d.ts +2 -0
  104. package/lib/hooks/useDebouncedCallback.d.ts.map +1 -0
  105. package/lib/hooks/useDebouncedCallback.js +12 -0
  106. package/lib/hooks/useDebouncedCallback.js.map +1 -0
  107. package/lib/hooks/useDebouncedValue.d.ts +2 -0
  108. package/lib/hooks/useDebouncedValue.d.ts.map +1 -0
  109. package/lib/hooks/useDebouncedValue.js +10 -0
  110. package/lib/hooks/useDebouncedValue.js.map +1 -0
  111. package/lib/hooks/useFloatingPanel.d.ts +14 -0
  112. package/lib/hooks/useFloatingPanel.d.ts.map +1 -0
  113. package/lib/hooks/useFloatingPanel.js +132 -0
  114. package/lib/hooks/useFloatingPanel.js.map +1 -0
  115. package/lib/hooks/useLayoutSnapshot.d.ts +14 -0
  116. package/lib/hooks/useLayoutSnapshot.d.ts.map +1 -0
  117. package/lib/hooks/useLayoutSnapshot.js +39 -0
  118. package/lib/hooks/useLayoutSnapshot.js.map +1 -0
  119. package/lib/hooks/useStyleMutation.d.ts +14 -0
  120. package/lib/hooks/useStyleMutation.d.ts.map +1 -0
  121. package/lib/hooks/useStyleMutation.js +22 -0
  122. package/lib/hooks/useStyleMutation.js.map +1 -0
  123. package/lib/hooks/useStyleOverrides.d.ts +24 -0
  124. package/lib/hooks/useStyleOverrides.d.ts.map +1 -0
  125. package/lib/hooks/useStyleOverrides.js +165 -0
  126. package/lib/hooks/useStyleOverrides.js.map +1 -0
  127. package/lib/hooks/useTapToSelect.d.ts +20 -0
  128. package/lib/hooks/useTapToSelect.d.ts.map +1 -0
  129. package/lib/hooks/useTapToSelect.js +58 -0
  130. package/lib/hooks/useTapToSelect.js.map +1 -0
  131. package/lib/index.d.ts +3 -0
  132. package/lib/index.d.ts.map +1 -0
  133. package/lib/index.js +2 -0
  134. package/lib/index.js.map +1 -0
  135. package/lib/utils/clamp.d.ts +2 -0
  136. package/lib/utils/clamp.d.ts.map +1 -0
  137. package/lib/utils/clamp.js +2 -0
  138. package/lib/utils/clamp.js.map +1 -0
  139. package/lib/utils/flattenStyles.d.ts +6 -0
  140. package/lib/utils/flattenStyles.d.ts.map +1 -0
  141. package/lib/utils/flattenStyles.js +11 -0
  142. package/lib/utils/flattenStyles.js.map +1 -0
  143. package/lib/utils/hitTest.d.ts +7 -0
  144. package/lib/utils/hitTest.d.ts.map +1 -0
  145. package/lib/utils/hitTest.js +20 -0
  146. package/lib/utils/hitTest.js.map +1 -0
  147. package/lib/utils/index.d.ts +12 -0
  148. package/lib/utils/index.d.ts.map +1 -0
  149. package/lib/utils/index.js +9 -0
  150. package/lib/utils/index.js.map +1 -0
  151. package/lib/utils/layoutSnapshot.d.ts +7 -0
  152. package/lib/utils/layoutSnapshot.d.ts.map +1 -0
  153. package/lib/utils/layoutSnapshot.js +42 -0
  154. package/lib/utils/layoutSnapshot.js.map +1 -0
  155. package/lib/utils/sourceMapping.d.ts +26 -0
  156. package/lib/utils/sourceMapping.d.ts.map +1 -0
  157. package/lib/utils/sourceMapping.js +53 -0
  158. package/lib/utils/sourceMapping.js.map +1 -0
  159. package/lib/utils/styleFormatting.d.ts +5 -0
  160. package/lib/utils/styleFormatting.d.ts.map +1 -0
  161. package/lib/utils/styleFormatting.js +38 -0
  162. package/lib/utils/styleFormatting.js.map +1 -0
  163. package/lib/utils/styleInputParsing.d.ts +5 -0
  164. package/lib/utils/styleInputParsing.d.ts.map +1 -0
  165. package/lib/utils/styleInputParsing.js +33 -0
  166. package/lib/utils/styleInputParsing.js.map +1 -0
  167. package/lib/utils/yogaLayout.d.ts +33 -0
  168. package/lib/utils/yogaLayout.d.ts.map +1 -0
  169. package/lib/utils/yogaLayout.js +33 -0
  170. package/lib/utils/yogaLayout.js.map +1 -0
  171. package/package.json +74 -0
  172. package/src/ElementCycler.tsx +64 -0
  173. package/src/ElementHighlighter.tsx +122 -0
  174. package/src/ElementInspector.tsx +119 -0
  175. package/src/components/Checkbox.tsx +41 -0
  176. package/src/components/index.ts +1 -0
  177. package/src/constants/colors.ts +18 -0
  178. package/src/constants/index.ts +9 -0
  179. package/src/constants/ui.ts +51 -0
  180. package/src/fiber/FiberAdapter.ts +153 -0
  181. package/src/fiber/detectVersion.ts +19 -0
  182. package/src/fiber/index.ts +4 -0
  183. package/src/fiber/types.ts +36 -0
  184. package/src/floatingPanel/AddPropertyRow.tsx +102 -0
  185. package/src/floatingPanel/CloseButton.tsx +34 -0
  186. package/src/floatingPanel/EditableValue.tsx +109 -0
  187. package/src/floatingPanel/FloatingPanel.tsx +114 -0
  188. package/src/floatingPanel/HandleContent.tsx +45 -0
  189. package/src/floatingPanel/InspectorBubble.tsx +121 -0
  190. package/src/floatingPanel/PanelBody.tsx +162 -0
  191. package/src/floatingPanel/PanelFooter.tsx +36 -0
  192. package/src/floatingPanel/PanelHeader.tsx +111 -0
  193. package/src/floatingPanel/index.ts +11 -0
  194. package/src/floatingPanel/panelUtils.ts +13 -0
  195. package/src/floatingPanel/types.ts +26 -0
  196. package/src/hooks/index.ts +7 -0
  197. package/src/hooks/useDebouncedCallback.ts +18 -0
  198. package/src/hooks/useDebouncedValue.ts +12 -0
  199. package/src/hooks/useFloatingPanel.ts +191 -0
  200. package/src/hooks/useLayoutSnapshot.ts +42 -0
  201. package/src/hooks/useStyleMutation.ts +31 -0
  202. package/src/hooks/useStyleOverrides.ts +176 -0
  203. package/src/hooks/useTapToSelect.ts +76 -0
  204. package/src/index.ts +2 -0
  205. package/src/utils/clamp.ts +2 -0
  206. package/src/utils/flattenStyles.ts +12 -0
  207. package/src/utils/hitTest.ts +29 -0
  208. package/src/utils/index.ts +11 -0
  209. package/src/utils/layoutSnapshot.ts +48 -0
  210. package/src/utils/sourceMapping.ts +67 -0
  211. package/src/utils/styleFormatting.ts +34 -0
  212. package/src/utils/styleInputParsing.ts +33 -0
  213. package/src/utils/yogaLayout.ts +49 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingPanel.js","sourceRoot":"","sources":["../../src/floatingPanel/FloatingPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ interface HandleContentProps {
2
+ onClose: () => void;
3
+ }
4
+ /** Floating handle shown in inspect mode before an element is selected. */
5
+ export declare const HandleContent: ({ onClose }: HandleContentProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=HandleContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HandleContent.d.ts","sourceRoot":"","sources":["../../src/floatingPanel/HandleContent.tsx"],"names":[],"mappings":"AAGA,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,2EAA2E;AAC3E,eAAO,MAAM,aAAa,gBAAiB,kBAAkB,4CAM5D,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { StyleSheet, Text, View } from 'react-native';
3
+ import { CloseButton } from './CloseButton';
4
+ /** Floating handle shown in inspect mode before an element is selected. */
5
+ export const HandleContent = ({ onClose }) => (_jsxs(View, { style: styles.handle, children: [_jsx(View, { style: styles.dot }), _jsx(Text, { style: styles.handleText, children: "Tap an element" }), _jsx(CloseButton, { onPress: onClose })] }));
6
+ const styles = StyleSheet.create({
7
+ handle: {
8
+ flexDirection: 'row',
9
+ alignItems: 'center',
10
+ paddingHorizontal: 14,
11
+ paddingVertical: 10,
12
+ backgroundColor: '#0F3460',
13
+ borderRadius: 22,
14
+ borderWidth: 1,
15
+ borderColor: 'rgba(79, 195, 247, 0.3)',
16
+ gap: 8,
17
+ },
18
+ dot: {
19
+ width: 8,
20
+ height: 8,
21
+ borderRadius: 4,
22
+ backgroundColor: '#E94560',
23
+ shadowColor: '#E94560',
24
+ shadowOffset: { width: 0, height: 0 },
25
+ shadowOpacity: 0.6,
26
+ shadowRadius: 3,
27
+ },
28
+ handleText: {
29
+ color: '#FFFFFF',
30
+ fontSize: 13,
31
+ fontWeight: '500',
32
+ flex: 1,
33
+ },
34
+ });
35
+ //# sourceMappingURL=HandleContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HandleContent.js","sourceRoot":"","sources":["../../src/floatingPanel/HandleContent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAE,OAAO,EAAsB,EAAE,EAAE,CAAC,CAChE,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,aACxB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,GAAG,GAAI,EAC3B,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,UAAU,+BAAuB,EACrD,KAAC,WAAW,IAAC,OAAO,EAAE,OAAO,GAAI,IAC5B,CACR,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE;QACN,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,EAAE;QACrB,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,SAAS;QAC1B,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,yBAAyB;QACtC,GAAG,EAAE,CAAC;KACP;IACD,GAAG,EAAE;QACH,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,SAAS;QAC1B,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QACrC,aAAa,EAAE,GAAG;QAClB,YAAY,EAAE,CAAC;KAChB;IACD,UAAU,EAAE;QACV,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,CAAC;KACR;CACF,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Inspector bubble with a radar-sweep animation.
3
+ * A bright orange line rotates around a dark orange circle with a fading trail.
4
+ */
5
+ export declare const InspectorBubble: () => import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=InspectorBubble.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InspectorBubble.d.ts","sourceRoot":"","sources":["../../src/floatingPanel/InspectorBubble.tsx"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,eAAe,+CAsD3B,CAAC"}
@@ -0,0 +1,91 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef } from 'react';
3
+ import { Animated, Easing, StyleSheet, View } from 'react-native';
4
+ import { INSPECTOR_BUBBLE } from '../constants';
5
+ const { SIZE: BUBBLE_SIZE, SWEEP_WIDTH, CENTER_DOT_SIZE, TRAIL_ARMS } = INSPECTOR_BUBBLE;
6
+ /**
7
+ * Inspector bubble with a radar-sweep animation.
8
+ * A bright orange line rotates around a dark orange circle with a fading trail.
9
+ */
10
+ export const InspectorBubble = () => {
11
+ const sweepAnim = useRef(new Animated.Value(0)).current;
12
+ useEffect(() => {
13
+ const loop = Animated.loop(Animated.timing(sweepAnim, {
14
+ toValue: 1,
15
+ duration: 3000,
16
+ easing: Easing.linear,
17
+ useNativeDriver: true,
18
+ }));
19
+ loop.start();
20
+ return () => loop.stop();
21
+ }, [sweepAnim]);
22
+ return (_jsx(View, { style: styles.container, children: _jsxs(View, { style: styles.clipCircle, children: [_jsx(View, { style: styles.baseFill }), _jsx(View, { style: styles.gridRing }), TRAIL_ARMS.map((arm) => {
23
+ const rotation = sweepAnim.interpolate({
24
+ inputRange: [0, 1],
25
+ outputRange: [`${arm.offsetDeg}deg`, `${360 + arm.offsetDeg}deg`],
26
+ });
27
+ return (_jsx(Animated.View, { style: [
28
+ styles.armWrapper,
29
+ {
30
+ opacity: arm.opacity,
31
+ transform: [{ rotate: rotation }],
32
+ },
33
+ ], children: _jsx(View, { style: styles.sweepLine }) }, arm.key));
34
+ }), _jsx(View, { style: styles.centerDot })] }) }));
35
+ };
36
+ const styles = StyleSheet.create({
37
+ container: {
38
+ width: BUBBLE_SIZE,
39
+ height: BUBBLE_SIZE,
40
+ justifyContent: 'center',
41
+ alignItems: 'center',
42
+ shadowColor: '#f97316',
43
+ shadowOffset: { width: 0, height: 0 },
44
+ shadowOpacity: 0.5,
45
+ shadowRadius: 10,
46
+ elevation: 8,
47
+ },
48
+ clipCircle: {
49
+ width: BUBBLE_SIZE,
50
+ height: BUBBLE_SIZE,
51
+ borderRadius: BUBBLE_SIZE / 2,
52
+ borderWidth: 2,
53
+ borderColor: '#ea580c',
54
+ overflow: 'hidden',
55
+ justifyContent: 'center',
56
+ alignItems: 'center',
57
+ },
58
+ baseFill: {
59
+ ...StyleSheet.absoluteFillObject,
60
+ backgroundColor: '#7c2d12',
61
+ },
62
+ gridRing: {
63
+ position: 'absolute',
64
+ width: BUBBLE_SIZE * 0.55,
65
+ height: BUBBLE_SIZE * 0.55,
66
+ borderRadius: (BUBBLE_SIZE * 0.55) / 2,
67
+ borderWidth: 1,
68
+ borderColor: 'rgba(234, 88, 12, 0.25)',
69
+ },
70
+ armWrapper: {
71
+ position: 'absolute',
72
+ width: BUBBLE_SIZE,
73
+ height: BUBBLE_SIZE,
74
+ alignItems: 'center',
75
+ },
76
+ sweepLine: {
77
+ width: SWEEP_WIDTH,
78
+ height: BUBBLE_SIZE / 2 - CENTER_DOT_SIZE / 2 - 2,
79
+ backgroundColor: '#fb923c',
80
+ borderRadius: SWEEP_WIDTH / 2,
81
+ marginTop: 3,
82
+ },
83
+ centerDot: {
84
+ position: 'absolute',
85
+ width: CENTER_DOT_SIZE,
86
+ height: CENTER_DOT_SIZE,
87
+ borderRadius: CENTER_DOT_SIZE / 2,
88
+ backgroundColor: '#f97316',
89
+ },
90
+ });
91
+ //# sourceMappingURL=InspectorBubble.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InspectorBubble.js","sourceRoot":"","sources":["../../src/floatingPanel/InspectorBubble.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { MeasuredElement } from '../fiber';
2
+ interface PanelBodyProps {
3
+ element: MeasuredElement;
4
+ }
5
+ /** Scrollable style property list with footer — the main content of the expanded panel. */
6
+ export declare const PanelBody: ({ element }: PanelBodyProps) => import("react/jsx-runtime").JSX.Element | null;
7
+ export {};
8
+ //# sourceMappingURL=PanelBody.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelBody.d.ts","sourceRoot":"","sources":["../../src/floatingPanel/PanelBody.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAOhD,UAAU,cAAc;IACtB,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,2FAA2F;AAC3F,eAAO,MAAM,SAAS,gBAAiB,cAAc,mDAqGpD,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { ScrollView, StyleSheet, View } from 'react-native';
4
+ import { Checkbox } from '../components';
5
+ import { useStyleOverrides } from '../hooks';
6
+ import { formatValue, isColorProp } from '../utils';
7
+ import { AddPropertyButton, AddPropertyRow } from './AddPropertyRow';
8
+ import { EditableValue } from './EditableValue';
9
+ import { PanelFooter } from './PanelFooter';
10
+ /** Scrollable style property list with footer — the main content of the expanded panel. */
11
+ export const PanelBody = ({ element }) => {
12
+ const { entries, addedEntries, resolveEntry, handleToggle, handleValueChange, handleKeyChange, handleAddProperty, handleAddedValueChange, handleAddedKeyChange, handleRemoveProperty, } = useStyleOverrides(element);
13
+ const [pendingAdd, setPendingAdd] = useState(false);
14
+ const totalCount = entries.length + addedEntries.length;
15
+ if (entries.length === 0 && addedEntries.length === 0 && !pendingAdd)
16
+ return null;
17
+ return (_jsxs(View, { style: styles.container, children: [_jsxs(ScrollView, { style: styles.list, contentContainerStyle: styles.listContent, nestedScrollEnabled: true, keyboardShouldPersistTaps: 'handled', children: [entries.map(([originalKey, originalValue], index) => {
18
+ const { activeKey, displayValue, disabled } = resolveEntry(originalKey, originalValue);
19
+ return (_jsxs(View, { style: [styles.row, index % 2 === 0 && styles.rowAlt], children: [_jsx(Checkbox, { checked: !disabled, onToggle: () => handleToggle(originalKey) }), _jsxs(View, { style: [styles.rowContent, disabled && styles.rowDisabled], children: [_jsx(EditableValue, { value: activeKey, displayValue: activeKey, onSubmit: (newKey) => handleKeyChange(originalKey, String(newKey)), variant: 'key', disabled: disabled }), _jsxs(View, { style: styles.valueContainer, children: [isColorProp(activeKey) && (_jsx(View, { style: [styles.colorSwatch, { backgroundColor: String(displayValue) }] })), _jsx(EditableValue, { value: displayValue, displayValue: formatValue(displayValue), onSubmit: (newValue) => handleValueChange(originalKey, newValue), variant: 'value', disabled: disabled })] })] })] }, originalKey));
20
+ }), addedEntries.map(([key, value], index) => {
21
+ const rowIndex = entries.length + index;
22
+ return (_jsxs(View, { style: [styles.row, rowIndex % 2 === 0 && styles.rowAlt], children: [_jsx(Checkbox, { checked: true, onToggle: () => handleRemoveProperty(key) }), _jsxs(View, { style: styles.rowContent, children: [_jsx(EditableValue, { value: key, displayValue: key, onSubmit: (newKey) => handleAddedKeyChange(key, String(newKey)), variant: 'key' }), _jsxs(View, { style: styles.valueContainer, children: [isColorProp(key) && (_jsx(View, { style: [styles.colorSwatch, { backgroundColor: String(value) }] })), _jsx(EditableValue, { value: value, displayValue: formatValue(value), onSubmit: (newValue) => handleAddedValueChange(key, newValue), variant: 'value' })] })] })] }, `added-${key}`));
23
+ }), pendingAdd ? (_jsx(AddPropertyRow, { onAdd: (key, value) => {
24
+ handleAddProperty(key, value);
25
+ setPendingAdd(false);
26
+ }, onCancel: () => setPendingAdd(false) })) : (_jsx(AddPropertyButton, { onPress: () => setPendingAdd(true) }))] }), _jsx(PanelFooter, { propertyCount: totalCount, width: element.width, height: element.height })] }));
27
+ };
28
+ const styles = StyleSheet.create({
29
+ container: {
30
+ flex: 1,
31
+ },
32
+ list: {
33
+ flex: 1,
34
+ },
35
+ listContent: {
36
+ paddingHorizontal: 12,
37
+ paddingVertical: 4,
38
+ },
39
+ row: {
40
+ flexDirection: 'row',
41
+ alignItems: 'center',
42
+ paddingVertical: 5,
43
+ paddingHorizontal: 8,
44
+ borderRadius: 4,
45
+ },
46
+ rowContent: {
47
+ flex: 1,
48
+ flexDirection: 'row',
49
+ justifyContent: 'space-between',
50
+ alignItems: 'center',
51
+ },
52
+ rowAlt: {
53
+ backgroundColor: 'rgba(255, 255, 255, 0.03)',
54
+ },
55
+ rowDisabled: {
56
+ opacity: 0.35,
57
+ },
58
+ valueContainer: {
59
+ flexDirection: 'row',
60
+ alignItems: 'center',
61
+ flexShrink: 1,
62
+ },
63
+ colorSwatch: {
64
+ width: 14,
65
+ height: 14,
66
+ borderRadius: 3,
67
+ borderWidth: StyleSheet.hairlineWidth,
68
+ borderColor: '#666',
69
+ marginRight: 6,
70
+ },
71
+ });
72
+ //# sourceMappingURL=PanelBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelBody.js","sourceRoot":"","sources":["../../src/floatingPanel/PanelBody.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ interface PanelFooterProps {
2
+ propertyCount: number;
3
+ width: number;
4
+ height: number;
5
+ }
6
+ /** Expanded panel footer — property count, element dimensions, with top divider. */
7
+ export declare const PanelFooter: ({ propertyCount, width, height }: PanelFooterProps) => import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=PanelFooter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelFooter.d.ts","sourceRoot":"","sources":["../../src/floatingPanel/PanelFooter.tsx"],"names":[],"mappings":"AAGA,UAAU,gBAAgB;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oFAAoF;AACpF,eAAO,MAAM,WAAW,qCAAsC,gBAAgB,4CAS7E,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { StyleSheet, Text, View } from 'react-native';
3
+ import { MONOSPACE_FONT } from '../constants';
4
+ /** Expanded panel footer — property count, element dimensions, with top divider. */
5
+ export const PanelFooter = ({ propertyCount, width, height }) => (_jsxs(View, { style: styles.footer, children: [_jsxs(Text, { style: styles.footerText, children: [propertyCount, " ", propertyCount === 1 ? 'property' : 'properties'] }), _jsxs(Text, { style: styles.footerText, children: [Math.round(width), " \u00D7 ", Math.round(height)] })] }));
6
+ const styles = StyleSheet.create({
7
+ footer: {
8
+ flexDirection: 'row',
9
+ justifyContent: 'space-between',
10
+ paddingHorizontal: 12,
11
+ paddingVertical: 6,
12
+ borderTopWidth: StyleSheet.hairlineWidth,
13
+ borderTopColor: '#444',
14
+ },
15
+ footerText: {
16
+ color: '#666',
17
+ fontSize: 11,
18
+ fontFamily: MONOSPACE_FONT,
19
+ },
20
+ });
21
+ //# sourceMappingURL=PanelFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelFooter.js","sourceRoot":"","sources":["../../src/floatingPanel/PanelFooter.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAQ9C,oFAAoF;AACpF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAoB,EAAE,EAAE,CAAC,CACjF,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,aACxB,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,UAAU,aAC3B,aAAa,OAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,IAC3D,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,UAAU,aAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IACpC,IACF,CACR,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE;QACN,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,eAAe;QAC/B,iBAAiB,EAAE,EAAE;QACrB,eAAe,EAAE,CAAC;QAClB,cAAc,EAAE,UAAU,CAAC,aAAa;QACxC,cAAc,EAAE,MAAM;KACvB;IACD,UAAU,EAAE;QACV,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,cAAc;KAC3B;CACF,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { MeasuredElement } from '../fiber';
2
+ interface PanelHeaderProps {
3
+ selected: MeasuredElement;
4
+ matches: MeasuredElement[];
5
+ selectedIndex: number;
6
+ onCycleNext: () => void;
7
+ onCyclePrevious: () => void;
8
+ onClose: () => void;
9
+ }
10
+ /** Expanded panel header — grab bar, component info, cycling controls, close button. */
11
+ export declare const PanelHeader: ({ selected, matches, selectedIndex, onCycleNext, onCyclePrevious, onClose, }: PanelHeaderProps) => import("react/jsx-runtime").JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=PanelHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelHeader.d.ts","sourceRoot":"","sources":["../../src/floatingPanel/PanelHeader.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAIhD,UAAU,gBAAgB;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wFAAwF;AACxF,eAAO,MAAM,WAAW,iFAOrB,gBAAgB,4CA0ClB,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { StyleSheet, Text, View } from 'react-native';
3
+ import { MONOSPACE_FONT } from '../constants';
4
+ import { ElementCycler } from '../ElementCycler';
5
+ import { formatSourceLocation, getOwnerName, getSourceLocation } from '../utils';
6
+ import { CloseButton } from './CloseButton';
7
+ /** Expanded panel header — grab bar, component info, cycling controls, close button. */
8
+ export const PanelHeader = ({ selected, matches, selectedIndex, onCycleNext, onCyclePrevious, onClose, }) => {
9
+ const source = getSourceLocation(selected.fiber);
10
+ const ownerName = getOwnerName(selected.fiber);
11
+ return (_jsxs(View, { style: styles.header, children: [_jsx(View, { style: styles.grabBarContainer, children: _jsx(View, { style: styles.grabBar }) }), _jsxs(View, { style: styles.infoRow, children: [_jsxs(Text, { style: styles.componentName, numberOfLines: 1, children: ["<", selected.componentName, ">"] }), _jsxs(View, { style: styles.controls, children: [_jsx(ElementCycler, { total: matches.length, currentIndex: selectedIndex, componentName: selected.componentName, onPrevious: onCyclePrevious, onNext: onCycleNext }), _jsx(CloseButton, { onPress: onClose })] })] }), source ? (_jsx(Text, { style: styles.sourceText, numberOfLines: 1, children: formatSourceLocation(source) })) : ownerName ? (_jsx(Text, { style: styles.sourceText, numberOfLines: 1, children: ownerName })) : null] }));
12
+ };
13
+ const styles = StyleSheet.create({
14
+ header: {
15
+ paddingTop: 6,
16
+ paddingHorizontal: 12,
17
+ paddingBottom: 8,
18
+ borderBottomWidth: StyleSheet.hairlineWidth,
19
+ borderBottomColor: '#444',
20
+ },
21
+ grabBarContainer: {
22
+ alignItems: 'center',
23
+ paddingBottom: 6,
24
+ },
25
+ grabBar: {
26
+ width: 40,
27
+ height: 4,
28
+ borderRadius: 2,
29
+ backgroundColor: '#666',
30
+ },
31
+ infoRow: {
32
+ flexDirection: 'row',
33
+ alignItems: 'center',
34
+ justifyContent: 'space-between',
35
+ },
36
+ componentName: {
37
+ color: '#E06C75',
38
+ fontSize: 14,
39
+ fontWeight: '600',
40
+ fontFamily: MONOSPACE_FONT,
41
+ flexShrink: 1,
42
+ },
43
+ controls: {
44
+ flexDirection: 'row',
45
+ alignItems: 'center',
46
+ gap: 6,
47
+ flexShrink: 0,
48
+ },
49
+ sourceText: {
50
+ color: '#888',
51
+ fontSize: 11,
52
+ marginTop: 4,
53
+ fontFamily: MONOSPACE_FONT,
54
+ },
55
+ });
56
+ //# sourceMappingURL=PanelHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelHeader.js","sourceRoot":"","sources":["../../src/floatingPanel/PanelHeader.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export { AddPropertyButton, AddPropertyRow } from './AddPropertyRow';
2
+ export { CloseButton } from './CloseButton';
3
+ export { EditableValue } from './EditableValue';
4
+ export { FloatingPanel } from './FloatingPanel';
5
+ export { HandleContent } from './HandleContent';
6
+ export { InspectorBubble } from './InspectorBubble';
7
+ export { PanelBody } from './PanelBody';
8
+ export { PanelFooter } from './PanelFooter';
9
+ export { PanelHeader } from './PanelHeader';
10
+ export { getPanelSize } from './panelUtils';
11
+ export type { FloatingPanelConfig, FloatingPanelProps, PanelSize, PanelState } from './types';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/floatingPanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,11 @@
1
+ export { AddPropertyButton, AddPropertyRow } from './AddPropertyRow';
2
+ export { CloseButton } from './CloseButton';
3
+ export { EditableValue } from './EditableValue';
4
+ export { FloatingPanel } from './FloatingPanel';
5
+ export { HandleContent } from './HandleContent';
6
+ export { InspectorBubble } from './InspectorBubble';
7
+ export { PanelBody } from './PanelBody';
8
+ export { PanelFooter } from './PanelFooter';
9
+ export { PanelHeader } from './PanelHeader';
10
+ export { getPanelSize } from './panelUtils';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/floatingPanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PanelSize, PanelState } from './types';
2
+ export declare const getPanelSize: (panelState: PanelState) => PanelSize;
3
+ //# sourceMappingURL=panelUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panelUtils.d.ts","sourceRoot":"","sources":["../../src/floatingPanel/panelUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,YAAY,eAAgB,UAAU,KAAG,SASrD,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { FLOATING_PANEL } from '../constants/ui';
2
+ export const getPanelSize = (panelState) => {
3
+ switch (panelState) {
4
+ case 'bubble':
5
+ return { width: FLOATING_PANEL.BUBBLE_SIZE, height: FLOATING_PANEL.BUBBLE_SIZE };
6
+ case 'handle':
7
+ return { width: FLOATING_PANEL.HANDLE_WIDTH, height: FLOATING_PANEL.HANDLE_HEIGHT };
8
+ case 'expanded':
9
+ return { width: FLOATING_PANEL.PANEL_WIDTH, height: FLOATING_PANEL.PANEL_HEIGHT };
10
+ }
11
+ };
12
+ //# sourceMappingURL=panelUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panelUtils.js","sourceRoot":"","sources":["../../src/floatingPanel/panelUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAAsB,EAAa,EAAE;IAChE,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC;QACnF,KAAK,QAAQ;YACX,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,CAAC,aAAa,EAAE,CAAC;QACtF,KAAK,UAAU;YACb,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,CAAC;IACtF,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { MeasuredElement } from '../fiber';
2
+ export type PanelState = 'bubble' | 'handle' | 'expanded';
3
+ export interface FloatingPanelConfig {
4
+ panelState: PanelState;
5
+ screenWidth: number;
6
+ screenHeight: number;
7
+ onTap: () => void;
8
+ }
9
+ export interface PanelSize {
10
+ width: number;
11
+ height: number;
12
+ }
13
+ export interface FloatingPanelProps {
14
+ panelState: PanelState;
15
+ selected: MeasuredElement | null;
16
+ matches: MeasuredElement[];
17
+ selectedIndex: number;
18
+ onToggleInspect: () => void;
19
+ onCycleNext: () => void;
20
+ onCyclePrevious: () => void;
21
+ onClose: () => void;
22
+ }
23
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/floatingPanel/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/floatingPanel/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export { useDebouncedCallback } from './useDebouncedCallback';
2
+ export { useDebouncedValue } from './useDebouncedValue';
3
+ export { useFloatingPanel } from './useFloatingPanel';
4
+ export { useLayoutSnapshot } from './useLayoutSnapshot';
5
+ export { useStyleMutation } from './useStyleMutation';
6
+ export { useStyleOverrides } from './useStyleOverrides';
7
+ export { useTapToSelect } from './useTapToSelect';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { useDebouncedCallback } from './useDebouncedCallback';
2
+ export { useDebouncedValue } from './useDebouncedValue';
3
+ export { useFloatingPanel } from './useFloatingPanel';
4
+ export { useLayoutSnapshot } from './useLayoutSnapshot';
5
+ export { useStyleMutation } from './useStyleMutation';
6
+ export { useStyleOverrides } from './useStyleOverrides';
7
+ export { useTapToSelect } from './useTapToSelect';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useDebouncedCallback: <Args extends unknown[]>(callback: (...args: Args) => void, delay: number) => ((...args: Args) => void);
2
+ //# sourceMappingURL=useDebouncedCallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebouncedCallback.d.ts","sourceRoot":"","sources":["../../src/hooks/useDebouncedCallback.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,GAAI,IAAI,SAAS,OAAO,EAAE,YAC/C,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,IAAI,SAC1B,MAAM,KACZ,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,IAAI,CAY1B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { useCallback, useRef } from 'react';
2
+ export const useDebouncedCallback = (callback, delay) => {
3
+ const timeout = useRef(null);
4
+ const callbackRef = useRef(callback);
5
+ callbackRef.current = callback;
6
+ return useCallback((...args) => {
7
+ if (timeout.current)
8
+ clearTimeout(timeout.current);
9
+ timeout.current = setTimeout(() => callbackRef.current(...args), delay);
10
+ }, [delay]);
11
+ };
12
+ //# sourceMappingURL=useDebouncedCallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebouncedCallback.js","sourceRoot":"","sources":["../../src/hooks/useDebouncedCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,QAAiC,EACjC,KAAa,EACc,EAAE;IAC7B,MAAM,OAAO,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAE/B,OAAO,WAAW,CAChB,CAAC,GAAG,IAAU,EAAE,EAAE;QAChB,IAAI,OAAO,CAAC,OAAO;YAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useDebouncedValue: <T>(value: T, delay: number) => T;
2
+ //# sourceMappingURL=useDebouncedValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebouncedValue.d.ts","sourceRoot":"","sources":["../../src/hooks/useDebouncedValue.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,CAAC,SAAS,MAAM,KAAG,CAS9D,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { useEffect, useState } from 'react';
2
+ export const useDebouncedValue = (value, delay) => {
3
+ const [debouncedValue, setDebouncedValue] = useState(value);
4
+ useEffect(() => {
5
+ const timer = setTimeout(() => setDebouncedValue(value), delay);
6
+ return () => clearTimeout(timer);
7
+ }, [value, delay]);
8
+ return debouncedValue;
9
+ };
10
+ //# sourceMappingURL=useDebouncedValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebouncedValue.js","sourceRoot":"","sources":["../../src/hooks/useDebouncedValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAI,KAAQ,EAAE,KAAa,EAAK,EAAE;IACjE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAChE,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnB,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Animated } from 'react-native';
2
+ import type { FloatingPanelConfig } from '../floatingPanel/types';
3
+ /**
4
+ * Core animation/gesture hook for the floating inspector panel.
5
+ * Owns Animated.ValueXY for position, PanResponder for drag,
6
+ * and Animated.Value for expand/collapse transitions.
7
+ */
8
+ export declare const useFloatingPanel: ({ panelState, screenWidth, screenHeight, onTap, }: FloatingPanelConfig) => {
9
+ position: Animated.ValueXY;
10
+ expandProgress: Animated.Value;
11
+ panHandlers: import("react-native").GestureResponderHandlers;
12
+ panelSize: import("../floatingPanel").PanelSize;
13
+ };
14
+ //# sourceMappingURL=useFloatingPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFloatingPanel.d.ts","sourceRoot":"","sources":["../../src/hooks/useFloatingPanel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAgB,MAAM,cAAc,CAAC;AAGtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGlE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,sDAK1B,mBAAmB;;;;;CA6KrB,CAAC"}