@promakeai/inspector-hook 1.2.8 → 1.3.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.
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +117 -2
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RefObject } from "react";
|
|
2
|
-
import type { InspectorCallbacks, InspectorLabels, InspectorTheme, UseInspectorReturn } from "@promakeai/inspector-types";
|
|
3
|
-
export declare function useInspector(iframeRef: RefObject<HTMLIFrameElement>, callbacks?: InspectorCallbacks, labels?: InspectorLabels, theme?: InspectorTheme): UseInspectorReturn;
|
|
4
|
-
export type { ComponentInfo, ElementPosition, SelectedElementData, UrlChangeData, PromptSubmittedData, TextUpdatedData, ImageUpdatedData, StyleChanges, StyleUpdatedData, ErrorData, HighlightOptions, ElementInfoData, ElementDeletedData, ElementDuplicatedData, ChangeType, ChangeHistoryEntry, InspectorChange, InspectorChangeType, InspectorChangesSavedData, InspectorLabels, InspectorTheme, ContentInputRequestData, InspectorCallbacks, UseInspectorReturn, InspectorTab, } from "@promakeai/inspector-types";
|
|
2
|
+
import type { InspectorCallbacks, InspectorLabels, InspectorTheme, InspectorInitialConfig, UseInspectorReturn } from "@promakeai/inspector-types";
|
|
3
|
+
export declare function useInspector(iframeRef: RefObject<HTMLIFrameElement>, callbacks?: InspectorCallbacks, labels?: InspectorLabels, theme?: InspectorTheme, initialConfig?: InspectorInitialConfig): UseInspectorReturn;
|
|
4
|
+
export type { ComponentInfo, ElementPosition, SelectedElementData, UrlChangeData, PromptSubmittedData, TextUpdatedData, ImageUpdatedData, StyleChanges, StyleUpdatedData, ErrorData, HighlightOptions, ElementInfoData, ElementDeletedData, ElementDuplicatedData, ChangeType, ChangeHistoryEntry, InspectorChange, InspectorChangeType, InspectorChangesSavedData, InspectorLabels, InspectorTheme, ContentInputRequestData, InspectorCallbacks, UseInspectorReturn, InspectorTab, InspectorInitialConfig, InspectorInitializedData, } from "@promakeai/inspector-types";
|
|
5
5
|
export { updateJSXSource, deleteJSXElement, duplicateJSXElement, updateTextContent, applyChangesToJSXSource, } from "./utils/jsxUpdater.js";
|
|
6
6
|
export type { UpdateJSXSourceOptions, UpdateJSXSourceResult, DeleteJSXElementOptions, DuplicateJSXElementOptions, UpdateTextContentOptions, ApplyChangesOptions, ApplyChangesResult, ChangeApplicationResult, } from "./utils/jsxUpdater.js";
|
|
7
7
|
export { inspectorHookPlugin } from "./vite-plugin.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5E,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,sBAAsB,EAEtB,kBAAkB,EAenB,MAAM,4BAA4B,CAAC;AA0IpC,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,CAAC,iBAAiB,CAAC,EACvC,SAAS,CAAC,EAAE,kBAAkB,EAC9B,MAAM,CAAC,EAAE,eAAe,EACxB,KAAK,CAAC,EAAE,cAAc,EACtB,aAAa,CAAC,EAAE,sBAAsB,GACrC,kBAAkB,CAydpB;AAGD,YAAY,EACV,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { useEffect, useState, useCallback } from "react";
|
|
2
|
-
export function useInspector(iframeRef, callbacks, labels, theme) {
|
|
1
|
+
import { useEffect, useState, useCallback, useRef } from "react";
|
|
2
|
+
export function useInspector(iframeRef, callbacks, labels, theme, initialConfig) {
|
|
3
3
|
const [isInspecting, setIsInspecting] = useState(false);
|
|
4
|
+
const [isReady, setIsReady] = useState(false);
|
|
5
|
+
const initialConfigSentRef = useRef(false);
|
|
4
6
|
/**
|
|
5
7
|
* Send message to iframe
|
|
6
8
|
*/
|
|
@@ -155,6 +157,36 @@ export function useInspector(iframeRef, callbacks, labels, theme) {
|
|
|
155
157
|
enabled: enabled,
|
|
156
158
|
});
|
|
157
159
|
}, [sendMessage]);
|
|
160
|
+
/**
|
|
161
|
+
* Allow/disallow editing elements with multiple instances
|
|
162
|
+
* When false and element has multiple instances, only prompt input is shown
|
|
163
|
+
*/
|
|
164
|
+
const setAllowEditForMultipleInstances = useCallback((enabled) => {
|
|
165
|
+
sendMessage({
|
|
166
|
+
type: "SET_ALLOW_EDIT_FOR_MULTIPLE_INSTANCES",
|
|
167
|
+
enabled: enabled,
|
|
168
|
+
});
|
|
169
|
+
}, [sendMessage]);
|
|
170
|
+
/**
|
|
171
|
+
* Enable/disable ControlBox dragging
|
|
172
|
+
* When false, drag handle is hidden and dragging is disabled
|
|
173
|
+
*/
|
|
174
|
+
const setIsDraggable = useCallback((enabled) => {
|
|
175
|
+
sendMessage({
|
|
176
|
+
type: "SET_IS_DRAGGABLE",
|
|
177
|
+
enabled: enabled,
|
|
178
|
+
});
|
|
179
|
+
}, [sendMessage]);
|
|
180
|
+
/**
|
|
181
|
+
* Enable/disable ControlBox resizing
|
|
182
|
+
* When false, resize cursors are hidden and resizing is disabled
|
|
183
|
+
*/
|
|
184
|
+
const setIsResizable = useCallback((enabled) => {
|
|
185
|
+
sendMessage({
|
|
186
|
+
type: "SET_IS_RESIZABLE",
|
|
187
|
+
enabled: enabled,
|
|
188
|
+
});
|
|
189
|
+
}, [sendMessage]);
|
|
158
190
|
/**
|
|
159
191
|
* Listen for messages from iframe
|
|
160
192
|
*/
|
|
@@ -221,6 +253,14 @@ export function useInspector(iframeRef, callbacks, labels, theme) {
|
|
|
221
253
|
case "INSPECTOR_GO_TO_CODE":
|
|
222
254
|
callbacks?.onGoToCode?.(messageData.data);
|
|
223
255
|
break;
|
|
256
|
+
case "INSPECTOR_UNMOUNTED":
|
|
257
|
+
setIsInspecting(false);
|
|
258
|
+
callbacks?.onInspectorUnmounted?.();
|
|
259
|
+
break;
|
|
260
|
+
case "INSPECTOR_INITIALIZED":
|
|
261
|
+
setIsReady(true);
|
|
262
|
+
callbacks?.onInspectorInitialized?.(messageData.data);
|
|
263
|
+
break;
|
|
224
264
|
default:
|
|
225
265
|
// Unknown message type - ignore
|
|
226
266
|
break;
|
|
@@ -231,6 +271,78 @@ export function useInspector(iframeRef, callbacks, labels, theme) {
|
|
|
231
271
|
window.removeEventListener("message", handleMessage);
|
|
232
272
|
};
|
|
233
273
|
}, [callbacks]);
|
|
274
|
+
/**
|
|
275
|
+
* Send initial config when inspector is ready
|
|
276
|
+
* Priority: method calls > initialConfig > inspector defaults
|
|
277
|
+
*/
|
|
278
|
+
useEffect(() => {
|
|
279
|
+
if (isReady && initialConfig && !initialConfigSentRef.current) {
|
|
280
|
+
initialConfigSentRef.current = true;
|
|
281
|
+
// Send behavior settings
|
|
282
|
+
if (initialConfig.inspectOnRightClick !== undefined) {
|
|
283
|
+
sendMessage({
|
|
284
|
+
type: "SET_INSPECT_ON_RIGHT_CLICK",
|
|
285
|
+
enabled: initialConfig.inspectOnRightClick,
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
if (initialConfig.allowEditForMultipleInstances !== undefined) {
|
|
289
|
+
sendMessage({
|
|
290
|
+
type: "SET_ALLOW_EDIT_FOR_MULTIPLE_INSTANCES",
|
|
291
|
+
enabled: initialConfig.allowEditForMultipleInstances,
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
if (initialConfig.isDraggable !== undefined) {
|
|
295
|
+
sendMessage({
|
|
296
|
+
type: "SET_IS_DRAGGABLE",
|
|
297
|
+
enabled: initialConfig.isDraggable,
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
if (initialConfig.isResizable !== undefined) {
|
|
301
|
+
sendMessage({
|
|
302
|
+
type: "SET_IS_RESIZABLE",
|
|
303
|
+
enabled: initialConfig.isResizable,
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
// Send visibility settings
|
|
307
|
+
if (initialConfig.showContentInput !== undefined) {
|
|
308
|
+
sendMessage({
|
|
309
|
+
type: "SHOW_CONTENT_INPUT",
|
|
310
|
+
show: initialConfig.showContentInput,
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
if (initialConfig.showImageInput !== undefined) {
|
|
314
|
+
sendMessage({
|
|
315
|
+
type: "SHOW_IMAGE_INPUT",
|
|
316
|
+
show: initialConfig.showImageInput,
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
if (initialConfig.showStyleEditor !== undefined) {
|
|
320
|
+
sendMessage({
|
|
321
|
+
type: "SHOW_STYLE_EDITOR",
|
|
322
|
+
show: initialConfig.showStyleEditor,
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
if (initialConfig.showActionsTab !== undefined) {
|
|
326
|
+
sendMessage({
|
|
327
|
+
type: "SHOW_ACTIONS_TAB",
|
|
328
|
+
show: initialConfig.showActionsTab,
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
if (initialConfig.showChildBorders !== undefined) {
|
|
332
|
+
sendMessage({
|
|
333
|
+
type: "SET_SHOW_CHILD_BORDERS",
|
|
334
|
+
show: initialConfig.showChildBorders,
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
if (initialConfig.badgeVisible !== undefined) {
|
|
338
|
+
sendMessage({
|
|
339
|
+
type: "SET_BADGE_VISIBLE",
|
|
340
|
+
visible: initialConfig.badgeVisible,
|
|
341
|
+
badgeText: labels?.badgeText,
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}, [isReady, initialConfig, sendMessage, labels]);
|
|
234
346
|
/**
|
|
235
347
|
* Cleanup: Turn off inspector on unmount
|
|
236
348
|
*/
|
|
@@ -263,6 +375,9 @@ export function useInspector(iframeRef, callbacks, labels, theme) {
|
|
|
263
375
|
setActiveTab,
|
|
264
376
|
setLoading,
|
|
265
377
|
setInspectOnRightClick,
|
|
378
|
+
setAllowEditForMultipleInstances,
|
|
379
|
+
setIsDraggable,
|
|
380
|
+
setIsResizable,
|
|
266
381
|
};
|
|
267
382
|
}
|
|
268
383
|
// Export utility functions
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promakeai/inspector-hook",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "React hook for controlling inspector in parent applications",
|
|
5
5
|
"author": "Promake",
|
|
6
6
|
"type": "module",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@promakeai/inspector-types": "1.
|
|
48
|
+
"@promakeai/inspector-types": "1.3.1",
|
|
49
49
|
"vitest": "^1.0.0"
|
|
50
50
|
},
|
|
51
51
|
"publishConfig": {
|