@framed-dev/react 0.3.0 → 0.3.2
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.cjs +54 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +54 -12
- package/dist/index.js.map +1 -1
- package/package.json +10 -3
package/dist/index.cjs
CHANGED
|
@@ -3414,7 +3414,8 @@ function ElementSelector({ onSelect }) {
|
|
|
3414
3414
|
}
|
|
3415
3415
|
function TextEditOverlay({
|
|
3416
3416
|
onSubmit,
|
|
3417
|
-
author = "Anonymous"
|
|
3417
|
+
author = "Anonymous",
|
|
3418
|
+
demoMode = false
|
|
3418
3419
|
}) {
|
|
3419
3420
|
const textareaRef = React7.useRef(null);
|
|
3420
3421
|
const {
|
|
@@ -3430,13 +3431,6 @@ function TextEditOverlay({
|
|
|
3430
3431
|
showToast
|
|
3431
3432
|
} = useWidgetStore();
|
|
3432
3433
|
const isOpen = annotationMode === "text-edit" && selectedElement && originalText;
|
|
3433
|
-
React7.useEffect(() => {
|
|
3434
|
-
if (isOpen && textareaRef.current) {
|
|
3435
|
-
textareaRef.current.focus();
|
|
3436
|
-
textareaRef.current.select();
|
|
3437
|
-
isolateKeyboardEvents(textareaRef.current);
|
|
3438
|
-
}
|
|
3439
|
-
}, [isOpen]);
|
|
3440
3434
|
const getElementPath2 = React7.useCallback(() => {
|
|
3441
3435
|
if (!selectedElement) return "";
|
|
3442
3436
|
const parts = [];
|
|
@@ -3457,7 +3451,8 @@ function TextEditOverlay({
|
|
|
3457
3451
|
}
|
|
3458
3452
|
clearSelection();
|
|
3459
3453
|
closeQuickInput();
|
|
3460
|
-
|
|
3454
|
+
setAnnotationMode(null);
|
|
3455
|
+
}, [selectedElement, originalText, clearSelection, closeQuickInput, setAnnotationMode]);
|
|
3461
3456
|
const handleApply = React7.useCallback(() => {
|
|
3462
3457
|
const newText = textareaRef.current?.value || "";
|
|
3463
3458
|
if (!selectedElement) {
|
|
@@ -3527,9 +3522,30 @@ To: "${newText.substring(0, 150)}${newText.length > 150 ? "..." : ""}"`;
|
|
|
3527
3522
|
showToast,
|
|
3528
3523
|
handleClose
|
|
3529
3524
|
]);
|
|
3525
|
+
React7.useEffect(() => {
|
|
3526
|
+
if (isOpen && textareaRef.current) {
|
|
3527
|
+
textareaRef.current.focus();
|
|
3528
|
+
textareaRef.current.select();
|
|
3529
|
+
isolateKeyboardEvents(textareaRef.current);
|
|
3530
|
+
}
|
|
3531
|
+
}, [isOpen]);
|
|
3532
|
+
React7.useEffect(() => {
|
|
3533
|
+
if (!isOpen) return;
|
|
3534
|
+
const handleKeyDown = (e) => {
|
|
3535
|
+
if (e.key === "Escape") {
|
|
3536
|
+
e.preventDefault();
|
|
3537
|
+
e.stopPropagation();
|
|
3538
|
+
handleClose();
|
|
3539
|
+
}
|
|
3540
|
+
};
|
|
3541
|
+
document.addEventListener("keydown", handleKeyDown, true);
|
|
3542
|
+
return () => {
|
|
3543
|
+
document.removeEventListener("keydown", handleKeyDown, true);
|
|
3544
|
+
};
|
|
3545
|
+
}, [isOpen, handleClose]);
|
|
3530
3546
|
const displayOriginal = originalText && originalText.length > 200 ? originalText.substring(0, 200) + "..." : originalText || "";
|
|
3531
3547
|
if (!isOpen) return null;
|
|
3532
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
3548
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `framed-text-edit-container ${demoMode ? "framed-demo-mode" : ""}`, "data-framed-widget": true, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `framed-text-edit-overlay ${demoMode ? "framed-demo-mode" : ""}`, "data-framed-widget": true, children: [
|
|
3533
3549
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "framed-text-edit-header", children: [
|
|
3534
3550
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "framed-text-edit-label-header", children: "Text Edit" }),
|
|
3535
3551
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "framed-text-edit-divider", children: "|" }),
|
|
@@ -3599,7 +3615,7 @@ To: "${newText.substring(0, 150)}${newText.length > 150 ? "..." : ""}"`;
|
|
|
3599
3615
|
}
|
|
3600
3616
|
)
|
|
3601
3617
|
] })
|
|
3602
|
-
] });
|
|
3618
|
+
] }) });
|
|
3603
3619
|
}
|
|
3604
3620
|
function RegionSelectOverlay() {
|
|
3605
3621
|
const {
|
|
@@ -6668,6 +6684,32 @@ var WIDGET_CSS = `/* Framed Widget Styles - Figma-style floating toolbar */
|
|
|
6668
6684
|
transform: scale(1);
|
|
6669
6685
|
}
|
|
6670
6686
|
}
|
|
6687
|
+
|
|
6688
|
+
/* Text Edit Overlay - Demo mode (flexbox centering to avoid transform conflicts) */
|
|
6689
|
+
.framed-text-edit-container.framed-demo-mode {
|
|
6690
|
+
position: fixed;
|
|
6691
|
+
top: 0;
|
|
6692
|
+
left: 0;
|
|
6693
|
+
width: 100vw;
|
|
6694
|
+
height: 100vh;
|
|
6695
|
+
display: flex;
|
|
6696
|
+
align-items: center;
|
|
6697
|
+
justify-content: center;
|
|
6698
|
+
pointer-events: none;
|
|
6699
|
+
z-index: 2147483647;
|
|
6700
|
+
}
|
|
6701
|
+
|
|
6702
|
+
.framed-text-edit-overlay.framed-demo-mode {
|
|
6703
|
+
/* Reset transform-based positioning */
|
|
6704
|
+
position: relative !important;
|
|
6705
|
+
top: auto !important;
|
|
6706
|
+
left: auto !important;
|
|
6707
|
+
bottom: auto !important;
|
|
6708
|
+
transform: none !important;
|
|
6709
|
+
/* Use a simple scale animation without translate */
|
|
6710
|
+
animation: framed-demo-scale-in 0.3s var(--framed-ease-spring) forwards !important;
|
|
6711
|
+
pointer-events: auto;
|
|
6712
|
+
}
|
|
6671
6713
|
`;
|
|
6672
6714
|
var WIDGET_STYLE_ID = "framed-widget-styles";
|
|
6673
6715
|
function Widget({
|
|
@@ -6818,7 +6860,7 @@ function Widget({
|
|
|
6818
6860
|
/* @__PURE__ */ jsxRuntime.jsx(FeedbackDrawer, { onExport, onLocateComment }),
|
|
6819
6861
|
/* @__PURE__ */ jsxRuntime.jsx(QuickInput, { author, onSubmit, demoMode, onCommentAdded: demoMode ? openFeedbackPanel : void 0 }),
|
|
6820
6862
|
/* @__PURE__ */ jsxRuntime.jsx(ChatModal, { author, onSubmit }),
|
|
6821
|
-
/* @__PURE__ */ jsxRuntime.jsx(TextEditOverlay, { author, onSubmit }),
|
|
6863
|
+
/* @__PURE__ */ jsxRuntime.jsx(TextEditOverlay, { author, onSubmit, demoMode }),
|
|
6822
6864
|
/* @__PURE__ */ jsxRuntime.jsx(RegionSelectOverlay, {}),
|
|
6823
6865
|
/* @__PURE__ */ jsxRuntime.jsx(ExportModal, {}),
|
|
6824
6866
|
animationsPaused && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "framed-animations-paused-indicator", "data-framed-widget": true, children: [
|