axiom-editor 1.0.2 → 1.0.4

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.
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const x=require("react"),I=require("@tiptap/react"),ue=require("@tiptap/starter-kit"),ne=require("lowlight"),me=require("@tiptap/extension-code-block-lowlight"),xe=require("@tiptap/extension-task-list"),fe=require("@tiptap/extension-task-item"),pe=require("@tiptap/extension-text-style"),he=require("@tiptap/extension-color"),be=require("@tiptap/extension-text-align"),ge=require("@tiptap/extension-link"),ae=require("dompurify"),we=require("@tiptap/extension-character-count"),L=require("@tiptap/core"),d=require("lucide-react"),ve=require("@tiptap/extension-youtube"),je=require("@tiptap/suggestion"),Ne=require("tippy.js"),ye=require("tiptap-extension-global-drag-handle"),ke=require("@tiptap/extension-underline"),Ce=require("@tiptap/extension-strike");var G={exports:{}},F={};/**
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("react"),I=require("@tiptap/react"),pe=require("@tiptap/starter-kit"),ne=require("lowlight"),fe=require("@tiptap/extension-code-block-lowlight"),he=require("@tiptap/extension-task-list"),be=require("@tiptap/extension-task-item"),ge=require("@tiptap/extension-text-style"),we=require("@tiptap/extension-color"),ve=require("@tiptap/extension-text-align"),je=require("@tiptap/extension-link"),ae=require("dompurify"),Ne=require("@tiptap/extension-character-count"),L=require("@tiptap/core"),d=require("lucide-react"),ye=require("@tiptap/extension-youtube"),ke=require("@tiptap/suggestion"),Ce=require("tippy.js"),Ee=require("tiptap-extension-global-drag-handle"),De=require("@tiptap/extension-underline"),Te=require("@tiptap/extension-strike");var G={exports:{}},F={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.js
4
4
  *
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var re;function Ee(){if(re)return F;re=1;var t=Symbol.for("react.transitional.element"),s=Symbol.for("react.fragment");function o(r,h,f){var j=null;if(f!==void 0&&(j=""+f),h.key!==void 0&&(j=""+h.key),"key"in h){f={};for(var i in h)i!=="key"&&(f[i]=h[i])}else f=h;return h=f.ref,{$$typeof:t,type:r,key:j,ref:h!==void 0?h:null,props:f}}return F.Fragment=s,F.jsx=o,F.jsxs=o,F}var V={};/**
9
+ */var re;function Se(){if(re)return F;re=1;var t=Symbol.for("react.transitional.element"),s=Symbol.for("react.fragment");function o(r,h,p){var j=null;if(p!==void 0&&(j=""+p),h.key!==void 0&&(j=""+h.key),"key"in h){p={};for(var i in h)i!=="key"&&(p[i]=h[i])}else p=h;return h=p.ref,{$$typeof:t,type:r,key:j,ref:h!==void 0?h:null,props:p}}return F.Fragment=s,F.jsx=o,F.jsxs=o,F}var V={};/**
10
10
  * @license React
11
11
  * react-jsx-runtime.development.js
12
12
  *
@@ -14,14 +14,14 @@
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
- */var oe;function De(){return oe||(oe=1,process.env.NODE_ENV!=="production"&&function(){function t(n){if(n==null)return null;if(typeof n=="function")return n.$$typeof===U?null:n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case p:return"Fragment";case S:return"Profiler";case k:return"StrictMode";case $:return"Suspense";case m:return"SuspenseList";case _:return"Activity"}if(typeof n=="object")switch(typeof n.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),n.$$typeof){case D:return"Portal";case a:return n.displayName||"Context";case T:return(n._context.displayName||"Context")+".Consumer";case u:var v=n.render;return n=n.displayName,n||(n=v.displayName||v.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case P:return v=n.displayName||null,v!==null?v:t(n.type)||"Memo";case l:v=n._payload,n=n._init;try{return t(n(v))}catch{}}return null}function s(n){return""+n}function o(n){try{s(n);var v=!1}catch{v=!0}if(v){v=console;var M=v.error,R=typeof Symbol=="function"&&Symbol.toStringTag&&n[Symbol.toStringTag]||n.constructor.name||"Object";return M.call(v,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",R),s(n)}}function r(n){if(n===p)return"<>";if(typeof n=="object"&&n!==null&&n.$$typeof===l)return"<...>";try{var v=t(n);return v?"<"+v+">":"<...>"}catch{return"<...>"}}function h(){var n=O.A;return n===null?null:n.getOwner()}function f(){return Error("react-stack-top-frame")}function j(n){if(q.call(n,"key")){var v=Object.getOwnPropertyDescriptor(n,"key").get;if(v&&v.isReactWarning)return!1}return n.key!==void 0}function i(n,v){function M(){Q||(Q=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",v))}M.isReactWarning=!0,Object.defineProperty(n,"key",{get:M,configurable:!0})}function c(){var n=t(this.type);return Z[n]||(Z[n]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),n=this.props.ref,n!==void 0?n:null}function w(n,v,M,R,B,K){var A=M.ref;return n={$$typeof:b,type:n,key:v,props:M,_owner:R},(A!==void 0?A:null)!==null?Object.defineProperty(n,"ref",{enumerable:!1,get:c}):Object.defineProperty(n,"ref",{enumerable:!1,value:null}),n._store={},Object.defineProperty(n._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(n,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(n,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:B}),Object.defineProperty(n,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:K}),Object.freeze&&(Object.freeze(n.props),Object.freeze(n)),n}function N(n,v,M,R,B,K){var A=v.children;if(A!==void 0)if(R)if(W(A)){for(R=0;R<A.length;R++)y(A[R]);Object.freeze&&Object.freeze(A)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else y(A);if(q.call(v,"key")){A=t(n);var H=Object.keys(v).filter(function(de){return de!=="key"});R=0<H.length?"{key: someKey, "+H.join(": ..., ")+": ...}":"{key: someKey}",se[A+R]||(H=0<H.length?"{"+H.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
17
+ */var oe;function Me(){return oe||(oe=1,process.env.NODE_ENV!=="production"&&function(){function t(n){if(n==null)return null;if(typeof n=="function")return n.$$typeof===U?null:n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case f:return"Fragment";case S:return"Profiler";case k:return"StrictMode";case $:return"Suspense";case x:return"SuspenseList";case _:return"Activity"}if(typeof n=="object")switch(typeof n.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),n.$$typeof){case D:return"Portal";case a:return n.displayName||"Context";case T:return(n._context.displayName||"Context")+".Consumer";case u:var v=n.render;return n=n.displayName,n||(n=v.displayName||v.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case P:return v=n.displayName||null,v!==null?v:t(n.type)||"Memo";case l:v=n._payload,n=n._init;try{return t(n(v))}catch{}}return null}function s(n){return""+n}function o(n){try{s(n);var v=!1}catch{v=!0}if(v){v=console;var M=v.error,A=typeof Symbol=="function"&&Symbol.toStringTag&&n[Symbol.toStringTag]||n.constructor.name||"Object";return M.call(v,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",A),s(n)}}function r(n){if(n===f)return"<>";if(typeof n=="object"&&n!==null&&n.$$typeof===l)return"<...>";try{var v=t(n);return v?"<"+v+">":"<...>"}catch{return"<...>"}}function h(){var n=O.A;return n===null?null:n.getOwner()}function p(){return Error("react-stack-top-frame")}function j(n){if(q.call(n,"key")){var v=Object.getOwnPropertyDescriptor(n,"key").get;if(v&&v.isReactWarning)return!1}return n.key!==void 0}function i(n,v){function M(){Q||(Q=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",v))}M.isReactWarning=!0,Object.defineProperty(n,"key",{get:M,configurable:!0})}function c(){var n=t(this.type);return Z[n]||(Z[n]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),n=this.props.ref,n!==void 0?n:null}function w(n,v,M,A,B,K){var R=M.ref;return n={$$typeof:b,type:n,key:v,props:M,_owner:A},(R!==void 0?R:null)!==null?Object.defineProperty(n,"ref",{enumerable:!1,get:c}):Object.defineProperty(n,"ref",{enumerable:!1,value:null}),n._store={},Object.defineProperty(n._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(n,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(n,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:B}),Object.defineProperty(n,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:K}),Object.freeze&&(Object.freeze(n.props),Object.freeze(n)),n}function N(n,v,M,A,B,K){var R=v.children;if(R!==void 0)if(A)if(W(R)){for(A=0;A<R.length;A++)y(R[A]);Object.freeze&&Object.freeze(R)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else y(R);if(q.call(v,"key")){R=t(n);var H=Object.keys(v).filter(function(me){return me!=="key"});A=0<H.length?"{key: someKey, "+H.join(": ..., ")+": ...}":"{key: someKey}",se[R+A]||(H=0<H.length?"{"+H.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
18
  let props = %s;
19
19
  <%s {...props} />
20
20
  React keys must be passed directly to JSX without using spread:
21
21
  let props = %s;
22
- <%s key={someKey} {...props} />`,R,A,H,A),se[A+R]=!0)}if(A=null,M!==void 0&&(o(M),A=""+M),j(v)&&(o(v.key),A=""+v.key),"key"in v){M={};for(var J in v)J!=="key"&&(M[J]=v[J])}else M=v;return A&&i(M,typeof n=="function"?n.displayName||n.name||"Unknown":n),w(n,A,M,h(),B,K)}function y(n){C(n)?n._store&&(n._store.validated=1):typeof n=="object"&&n!==null&&n.$$typeof===l&&(n._payload.status==="fulfilled"?C(n._payload.value)&&n._payload.value._store&&(n._payload.value._store.validated=1):n._store&&(n._store.validated=1))}function C(n){return typeof n=="object"&&n!==null&&n.$$typeof===b}var g=x,b=Symbol.for("react.transitional.element"),D=Symbol.for("react.portal"),p=Symbol.for("react.fragment"),k=Symbol.for("react.strict_mode"),S=Symbol.for("react.profiler"),T=Symbol.for("react.consumer"),a=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),$=Symbol.for("react.suspense"),m=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),l=Symbol.for("react.lazy"),_=Symbol.for("react.activity"),U=Symbol.for("react.client.reference"),O=g.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,q=Object.prototype.hasOwnProperty,W=Array.isArray,z=console.createTask?console.createTask:function(){return null};g={react_stack_bottom_frame:function(n){return n()}};var Q,Z={},ee=g.react_stack_bottom_frame.bind(g,f)(),te=z(r(f)),se={};V.Fragment=p,V.jsx=function(n,v,M){var R=1e4>O.recentlyCreatedOwnerStacks++;return N(n,v,M,!1,R?Error("react-stack-top-frame"):ee,R?z(r(n)):te)},V.jsxs=function(n,v,M){var R=1e4>O.recentlyCreatedOwnerStacks++;return N(n,v,M,!0,R?Error("react-stack-top-frame"):ee,R?z(r(n)):te)}}()),V}process.env.NODE_ENV==="production"?G.exports=Ee():G.exports=De();var e=G.exports;const ie=x.createContext(void 0),Y=()=>{const t=x.useContext(ie);if(t===void 0)throw new Error("useAxiomEditor must be used within an AxiomEditorProvider");return t},Te=({node:t,updateAttributes:s,deleteNode:o,selected:r})=>{const[h,f]=x.useState(!1),[j,i]=x.useState(!1),[c,w]=x.useState(!1),[N,y]=x.useState(!1),C=x.useRef(null),g=t.attrs.align||"center",b=t.attrs.width||"100%",D=t.attrs.caption||"",p=t.attrs.captionPosition||"below",k=t.attrs.alt||"",S=t.attrs.src,T=x.useCallback(m=>{if(!N||!C.current)return;const P=C.current.getBoundingClientRect(),l=Math.max(150,m.clientX-P.left);s({width:`${l}px`})},[N,s]),a=x.useCallback(()=>{y(!1)},[]);x.useEffect(()=>(N&&(window.addEventListener("mousemove",T),window.addEventListener("mouseup",a)),()=>{window.removeEventListener("mousemove",T),window.removeEventListener("mouseup",a)}),[N,T,a]);let u="w-full relative my-8 flex flex-col outline-none group cursor-pointer ";g==="left"?u+="items-start mr-auto ml-0":g==="right"?u+="items-end ml-auto mr-0":u+="items-center mx-auto";const $=`rounded-xl shadow-2xl transition-all border border-smoke/30 max-w-full ${r?"ring-4 ring-amber ring-offset-4 ring-offset-obsidian":""}`;return e.jsxs(I.NodeViewWrapper,{className:u,children:[e.jsxs("div",{ref:C,className:"relative inline-block",style:{width:b,minWidth:"150px"},children:[D&&p==="above"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mb-3 uppercase tracking-widest font-medium px-2",children:D}),e.jsx("img",{src:S,className:$,alt:k,style:{width:"100%",display:"block"}}),r&&e.jsx("div",{onMouseDown:m=>{m.preventDefault(),y(!0)},className:"absolute -right-2 -bottom-2 w-5 h-5 bg-amber border-2 border-charcoal rounded-full cursor-se-resize z-50 hover:scale-125 transition-transform",title:"Drag to resize"}),D&&p==="below"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mt-3 uppercase tracking-widest font-medium px-2",children:D})]}),r&&e.jsx("div",{className:"absolute -top-14 left-1/2 -translate-x-1/2 z-50 bg-charcoal border border-smoke rounded-xl shadow-2xl flex items-center divide-x divide-smoke/30 h-11 px-1",onMouseDown:m=>m.stopPropagation(),onKeyDown:m=>m.stopPropagation(),children:h?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Alt text / Title...",value:k,onChange:m=>s({alt:m.target.value}),onKeyDown:m=>{m.key==="Enter"&&f(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-40"}),e.jsx("button",{onMouseDown:m=>{m.preventDefault(),f(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):j?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Caption...",value:D,onChange:m=>s({caption:m.target.value}),onKeyDown:m=>{m.key==="Enter"&&i(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-40"}),e.jsx("button",{onMouseDown:m=>{m.preventDefault(),s({captionPosition:p==="above"?"below":"above"})},className:"p-1.5 text-steel hover:text-amber rounded",title:"Toggle Position",children:e.jsx(d.Layout,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onMouseDown:m=>{m.preventDefault(),i(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):c?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Size (px or %)...",value:b,onChange:m=>s({width:m.target.value}),onKeyDown:m=>{m.key==="Enter"&&w(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-32"}),e.jsx("button",{onMouseDown:m=>{m.preventDefault(),w(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:m=>{m.preventDefault(),s({width:"100%"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-all",title:"Full Width",children:e.jsx(d.Maximize,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:m=>{m.preventDefault(),w(!0)},className:"text-[10px] font-bold text-bone hover:text-amber px-2 py-1 transition-all",children:"Size"})]}),e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:m=>{m.preventDefault(),s({align:"left"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignLeft,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:m=>{m.preventDefault(),s({align:"center"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignCenter,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:m=>{m.preventDefault(),s({align:"right"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignRight,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:m=>{m.preventDefault(),i(!0)},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",title:"Caption",children:e.jsx(d.Type,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:m=>{m.preventDefault(),f(!0)},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",title:"Alt Text / Title",children:"Alt"}),e.jsx("button",{onMouseDown:m=>{m.preventDefault(),o()},className:"p-2 text-red-500 hover:text-red-400 hover:bg-red-500/10 rounded-lg transition-colors",children:e.jsx(d.Trash2,{className:"w-4 h-4"})})]})]})})]})},Se=L.Node.create({name:"image",group:"block",atom:!0,addAttributes(){return{src:{default:null},alt:{default:null},caption:{default:null},captionPosition:{default:"below"},width:{default:"100%"},align:{default:"center"}}},parseHTML(){return[{tag:"img[src]",getAttrs:t=>typeof t=="string"?{}:{src:t.getAttribute("src"),alt:t.getAttribute("alt"),width:t.style.width||t.getAttribute("width")||"100%"}}]},renderHTML({HTMLAttributes:t}){return["img",L.mergeAttributes(t)]},addNodeView(){return I.ReactNodeViewRenderer(Te)}}),Me=({node:t,updateAttributes:s,deleteNode:o,selected:r,editor:h})=>{const[f,j]=x.useState(!1),[i,c]=x.useState(!1),[w,N]=x.useState(!1),y=t.attrs.align||"center",C=t.attrs.width||"100%",g=t.attrs.caption||"",b=t.attrs.captionPosition||"below",D=t.attrs.alt||"";let p=t.attrs.src||"";const k=/(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/(?:[^/\n\s]+\/\S+\/|(?:v|e(?:mbed)?)\/|\S*?[?&]v=|live\/)|youtu\.be\/|youtube\.com\/shorts\/)([a-zA-Z0-9_-]{11})/,S=p.match(k);S&&S[1]&&(p=`https://www.youtube-nocookie.com/embed/${S[1]}`);let T="w-full relative my-8 flex flex-col outline-none group cursor-pointer ";y==="left"?T+="items-start mr-auto ml-0":y==="right"?T+="items-end ml-auto mr-0":T+="items-center mx-auto";const a=`rounded-xl shadow-2xl transition-all border border-smoke/30 max-w-full aspect-video ${r?"ring-4 ring-amber ring-offset-4 ring-offset-obsidian":""}`;return e.jsxs(I.NodeViewWrapper,{className:T,children:[g&&b==="above"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mb-3 uppercase tracking-widest font-medium px-2",children:g}),e.jsxs("div",{className:"relative",style:{width:C,maxWidth:"720px",minWidth:"320px"},children:[h.isEditable&&e.jsx("div",{className:"absolute inset-0 z-10 cursor-pointer",title:"Click to edit embed"}),e.jsx("iframe",{src:p,className:`${a} w-full h-full`,style:{pointerEvents:h.isEditable?"none":"auto"},title:D,allowFullScreen:!0})]}),g&&b==="below"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mt-3 uppercase tracking-widest font-medium px-2",children:g}),r&&e.jsx("div",{className:"absolute -top-14 left-1/2 -translate-x-1/2 z-50 bg-charcoal border border-smoke rounded-xl shadow-2xl flex items-center divide-x divide-smoke/30 h-11 px-1",onMouseDown:u=>u.stopPropagation(),onKeyDown:u=>u.stopPropagation(),children:f?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Alt text / Title...",value:D,onChange:u=>s({alt:u.target.value}),onKeyDown:u=>{u.key==="Enter"&&j(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-40"}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),j(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):i?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Caption...",value:g,onChange:u=>s({caption:u.target.value}),onKeyDown:u=>{u.key==="Enter"&&c(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-40"}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),s({captionPosition:b==="above"?"below":"above"})},className:"p-1.5 text-steel hover:text-amber rounded",title:"Toggle Position",children:e.jsx(d.Layout,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),c(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):w?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Size (px or %)...",value:C,onChange:u=>s({width:u.target.value}),onKeyDown:u=>{u.key==="Enter"&&N(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-32"}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),N(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:u=>{u.preventDefault(),s({width:"100%"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-all",title:"Full Width",children:e.jsx(d.Maximize,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),N(!0)},className:"text-[10px] font-bold text-bone hover:text-amber px-2 py-1 transition-all",children:"Size"})]}),e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:u=>{u.preventDefault(),s({align:"left"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignLeft,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),s({align:"center"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignCenter,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),s({align:"right"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignRight,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:u=>{u.preventDefault(),c(!0)},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",title:"Caption",children:e.jsx(d.Type,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),j(!0)},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",title:"Alt Text / Title",children:"Alt"}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),o()},className:"p-2 text-red-500 hover:text-red-400 hover:bg-red-500/10 rounded-lg transition-colors",children:e.jsx(d.Trash2,{className:"w-4 h-4"})})]})]})})]})},Re=ve.extend({addAttributes(){var t;return{...(t=this.parent)==null?void 0:t.call(this),align:{default:"center"},width:{default:"100%"},caption:{default:""},captionPosition:{default:"below"},alt:{default:""}}},addNodeView(){return I.ReactNodeViewRenderer(Me)}}),Ae=({node:t,updateAttributes:s,deleteNode:o,selected:r,editor:h})=>{const f=x.useRef(null),[j,i]=x.useState(!1),[c,w]=x.useState(!1),[N,y]=x.useState(!1),[C,g]=x.useState(!1),b=t.attrs.align||"center",D=t.attrs.url||"",p=t.attrs.width||"100%",k=t.attrs.caption||"",S=t.attrs.captionPosition||"below",T=t.attrs.alt||"";let a=t.attrs.tweetId;if(!a&&D){const l=D.match(/status\/(\d+)/);a=l?l[1]:""}const[u,$]=x.useState({tweetId:a,align:b});(a!==u.tweetId||b!==u.align)&&($({tweetId:a,align:b}),i(!1)),x.useEffect(()=>{if(!window.twttr){const l=document.createElement("script");l.setAttribute("src","https://platform.twitter.com/widgets.js"),l.setAttribute("async","true"),l.setAttribute("charset","utf-8"),document.head.appendChild(l)}},[]),x.useEffect(()=>{let l=!0;if(!a)return;const _=setInterval(()=>{var O,q,W,z;(O=window.twttr)!=null&&O.widgets&&(clearInterval(_),clearTimeout(U),f.current&&l&&(f.current.innerHTML="",(z=(W=(q=window.twttr.widgets).createTweet)==null?void 0:W.call(q,a,f.current,{theme:"dark",align:b,dnt:!0}))==null||z.then(()=>{l&&i(!0)})))},100),U=setTimeout(()=>{l=!1,clearInterval(_)},1e4);return()=>{l=!1,clearInterval(_),clearTimeout(U)}},[a,b]);let m="w-full relative my-8 flex flex-col outline-none group cursor-pointer ";b==="left"?m+="items-start mr-auto ml-0":b==="right"?m+="items-end ml-auto mr-0":m+="items-center mx-auto";const P=()=>{let l=String(p).trim();if(l.endsWith("%")){const _=parseInt(l.replace("%",""),10);!isNaN(_)&&_<30&&(l="30%")}else{const _=parseInt(l.replace("px",""),10);!isNaN(_)&&_<250?l="250px":!isNaN(_)&&!l.endsWith("px")&&(l=`${_}px`)}s({width:l}),g(!1)};return e.jsxs(I.NodeViewWrapper,{className:m,children:[k&&S==="above"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mb-3 uppercase tracking-widest font-medium px-2",children:k}),e.jsxs("div",{style:{width:p,maxWidth:"550px",minWidth:"250px"},className:`relative py-4 flex items-center justify-center min-h-[150px] overflow-hidden bg-obsidian border border-smoke/30 rounded-xl transition-all ${r?"ring-4 ring-amber ring-offset-4 ring-offset-obsidian":""}`,title:T,children:[h.isEditable&&e.jsx("div",{className:"absolute inset-0 z-10 cursor-pointer",title:"Click to edit embed"}),!j&&e.jsx("div",{className:"absolute inset-0 flex items-center justify-center text-xs text-steel animate-pulse uppercase tracking-wider font-semibold",children:"Establishing connection to X..."}),e.jsx("div",{ref:f,className:`w-full flex justify-center ${h.isEditable?"pointer-events-none":""}`})]}),k&&S==="below"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mt-3 uppercase tracking-widest font-medium px-2",children:k}),r&&e.jsx("div",{className:"absolute -top-14 left-1/2 -translate-x-1/2 z-50 bg-charcoal border border-smoke rounded-xl shadow-2xl flex items-center divide-x divide-smoke/30 h-11 px-1",onMouseDown:l=>l.stopPropagation(),onKeyDown:l=>l.stopPropagation(),children:c?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Alt text / Title...",value:T,onChange:l=>s({alt:l.target.value}),onKeyDown:l=>{l.key==="Enter"&&w(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-40"}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),w(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):N?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Caption...",value:k,onChange:l=>s({caption:l.target.value}),onKeyDown:l=>{l.key==="Enter"&&y(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-40"}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),s({captionPosition:S==="above"?"below":"above"})},className:"p-1.5 text-steel hover:text-amber rounded",title:"Toggle Position",children:e.jsx(d.Layout,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),y(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):C?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Size (px or %)...",value:p,onChange:l=>s({width:l.target.value}),onKeyDown:l=>{l.key==="Enter"&&P()},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-32"}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),P()},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:l=>{l.preventDefault(),s({width:"100%"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-all",title:"Full Width",children:e.jsx(d.Maximize,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),g(!0)},className:"text-[10px] font-bold text-bone hover:text-amber px-2 py-1 transition-all",children:"Size"})]}),e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:l=>{l.preventDefault(),s({align:"left"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignLeft,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),s({align:"center"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignCenter,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),s({align:"right"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignRight,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:l=>{l.preventDefault(),y(!0)},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",title:"Caption",children:e.jsx(d.Type,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),w(!0)},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",title:"Alt Text / Title",children:"Alt"}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),o()},className:"p-2 text-red-500 hover:text-red-400 hover:bg-red-500/10 rounded-lg transition-colors",children:e.jsx(d.Trash2,{className:"w-4 h-4"})})]})]})})]})},Ie=L.Node.create({name:"tweet",group:"block",atom:!0,addAttributes(){return{tweetId:{default:null},url:{default:null},align:{default:"center"},width:{default:"100%"},caption:{default:""},captionPosition:{default:"below"},alt:{default:""}}},parseHTML(){return[{tag:'div[data-type="tweet"]',getAttrs:t=>{if(typeof t=="string")return!1;const s=t.getAttribute("data-url")||"";return s&&!/^https?:\/\/(www\.)?(twitter|x)\.com\//i.test(s)?!1:null}},{tag:"blockquote.twitter-tweet"}]},renderHTML({HTMLAttributes:t}){const s=t.url||"";return s&&!/^https?:\/\/(www\.)?(twitter|x)\.com\//i.test(s)?["div"]:["div",L.mergeAttributes(t,{"data-type":"tweet","data-url":s})]},addNodeView(){return I.ReactNodeViewRenderer(Ae)}});function _e(t){let s=t||"";return s=s.split("?")[0].split("#")[0],s=s.replace(/(\/embed\/?)+$/,""),s=s.replace("/reels/","/reel/"),s.includes("instagram.com")&&!s.includes("www.instagram.com")&&(s=s.replace("instagram.com","www.instagram.com")),s.endsWith("/")||(s+="/"),s}const Le=({node:t,updateAttributes:s,deleteNode:o,selected:r,editor:h})=>{const[f,j]=x.useState(!1),[i,c]=x.useState(!1),[w,N]=x.useState(!1),y=t.attrs.align||"center",C=t.attrs.width||"100%",g=t.attrs.caption||"",b=t.attrs.captionPosition||"below",D=t.attrs.alt||"",p=t.attrs.url||"",k=_e(p);let S="w-full relative my-8 flex flex-col outline-none group cursor-pointer ";y==="left"?S+="items-start mr-auto ml-0":y==="right"?S+="items-end ml-auto mr-0":S+="items-center mx-auto";const T=()=>{let a=String(C).trim();if(a.endsWith("%")){const u=parseInt(a.replace("%",""),10);!isNaN(u)&&u<30&&(a="30%")}else{const u=parseInt(a.replace("px",""),10);!isNaN(u)&&u<250?a="250px":!isNaN(u)&&!a.endsWith("px")&&(a=`${u}px`)}s({width:a}),N(!1)};return e.jsxs(I.NodeViewWrapper,{className:S,children:[g&&b==="above"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mb-3 uppercase tracking-widest font-medium px-2",children:g}),e.jsxs("div",{style:{width:C},className:`w-full max-w-[540px] min-w-[250px] rounded-2xl bg-charcoal/40 border border-smoke/30 p-6 flex flex-col items-center gap-4 transition-all duration-300 relative ${r?"ring-4 ring-amber ring-offset-4 ring-offset-obsidian":""}`,title:D,children:[h.isEditable&&e.jsx("div",{className:"absolute inset-0 z-10 cursor-pointer",title:"Click to edit embed"}),e.jsx("div",{className:`w-16 h-16 rounded-2xl bg-gradient-to-tr from-[#f9ce34] via-[#ee2a7b] to-[#6228d7] flex items-center justify-center shadow-lg shadow-pink-500/10 ${h.isEditable?"pointer-events-none":""}`,children:e.jsxs("svg",{className:"w-9 h-9 text-white",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("rect",{x:"2",y:"2",width:"20",height:"20",rx:"5",ry:"5"}),e.jsx("path",{d:"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"}),e.jsx("line",{x1:"17.5",y1:"6.5",x2:"17.51",y2:"6.5"})]})}),e.jsxs("div",{className:"text-center space-y-1.5 w-full",children:[e.jsx("span",{className:"text-[10px] text-amber uppercase tracking-widest font-bold",children:"Instagram Embed"}),e.jsx("h4",{className:"text-sm font-semibold text-bone truncate max-w-xs mx-auto",title:k,children:k}),e.jsx("p",{className:"text-[11px] text-steel max-w-[280px] mx-auto leading-relaxed",children:"Browser cookie blocking is active in localhost. This embed will hydrate and load beautifully on your live secure HTTPS site!"})]})]}),g&&b==="below"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mt-3 uppercase tracking-widest font-medium px-2",children:g}),r&&e.jsx("div",{className:"absolute -top-14 left-1/2 -translate-x-1/2 z-50 bg-charcoal border border-smoke rounded-xl shadow-2xl flex items-center divide-x divide-smoke/30 h-11 px-1",onMouseDown:a=>a.stopPropagation(),onKeyDown:a=>a.stopPropagation(),children:f?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Alt text / Title...",value:D,onChange:a=>s({alt:a.target.value}),onKeyDown:a=>{a.key==="Enter"&&j(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-40"}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),j(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):i?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Caption...",value:g,onChange:a=>s({caption:a.target.value}),onKeyDown:a=>{a.key==="Enter"&&c(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-40"}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),s({captionPosition:b==="above"?"below":"above"})},className:"p-1.5 text-steel hover:text-amber rounded",title:"Toggle Position",children:e.jsx(d.Layout,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),c(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):w?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Size (px or %)...",value:C,onChange:a=>s({width:a.target.value}),onKeyDown:a=>{a.key==="Enter"&&T()},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-32"}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),T()},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:a=>{a.preventDefault(),s({width:"100%"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-all",title:"Full Width",children:e.jsx(d.Maximize,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),N(!0)},className:"text-[10px] font-bold text-bone hover:text-amber px-2 py-1 transition-all",children:"Size"})]}),e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:a=>{a.preventDefault(),s({align:"left"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignLeft,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),s({align:"center"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignCenter,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),s({align:"right"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignRight,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:a=>{a.preventDefault(),c(!0)},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",title:"Caption",children:e.jsx(d.Type,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),j(!0)},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",title:"Alt Text / Title",children:"Alt"}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),o()},className:"p-2 text-red-500 hover:text-red-400 hover:bg-red-500/10 rounded-lg transition-colors",children:e.jsx(d.Trash2,{className:"w-4 h-4"})})]})]})})]})},Pe=L.Node.create({name:"instagram",group:"block",atom:!0,addAttributes(){return{url:{default:null},align:{default:"center"},width:{default:"100%"},caption:{default:""},captionPosition:{default:"below"},alt:{default:""}}},parseHTML(){return[{tag:'div[data-type="instagram"]',getAttrs:t=>{if(typeof t=="string")return!1;const s=t.getAttribute("data-url")||"";return s&&!/^https?:\/\/(www\.)?instagram\.com\//i.test(s)?!1:null}},{tag:"blockquote.instagram-media"}]},renderHTML({HTMLAttributes:t}){const s=t.url||"";return s&&!/^https?:\/\/(www\.)?instagram\.com\//i.test(s)?["div"]:["div",L.mergeAttributes(t,{"data-type":"instagram","data-url":s})]},addNodeView(){return I.ReactNodeViewRenderer(Le)}}),Oe=({deleteNode:t,selected:s,editor:o})=>e.jsxs(I.NodeViewWrapper,{className:`my-6 relative transition-all duration-300 rounded-xl overflow-hidden border-2
23
- ${s?"border-amber shadow-[0_0_15px_rgba(255,191,0,0.2)]":"border-amber/40 border-dashed hover:border-amber/70"}`,children:[e.jsxs("div",{className:"bg-amber/10 px-4 py-2 border-b border-amber/20 flex items-center justify-between select-none",children:[e.jsxs("div",{className:"flex items-center gap-2 text-amber font-display font-semibold tracking-wide text-sm",children:[e.jsx(d.Archive,{className:"w-4 h-4"}),e.jsxs("span",{children:["STASHED NOTE ",e.jsx("span",{className:"opacity-60 text-xs ml-1",children:"(Internal Only)"})]})]}),o.isEditable&&e.jsx("button",{onClick:t,className:"p-1.5 text-amber/60 hover:text-red-400 hover:bg-red-400/10 rounded-lg transition-colors",title:"Delete Stash",children:e.jsx(d.Trash2,{className:"w-4 h-4"})})]}),e.jsx("div",{className:"bg-charcoal/50 p-4 md:p-6 text-bone/90 prose-p:my-2 first:prose-p:mt-0 last:prose-p:mb-0",children:e.jsx(I.NodeViewContent,{className:"min-h-[2rem]"})})]}),ze=L.Node.create({name:"stash",group:"block",content:"block+",defining:!0,parseHTML(){return[{tag:'div[data-type="stash"]'}]},renderHTML({HTMLAttributes:t}){return["div",L.mergeAttributes(t,{"data-type":"stash"}),0]},addNodeView(){return I.ReactNodeViewRenderer(Oe)}}),He=({node:t,updateAttributes:s,selected:o})=>{const{emoji:r,type:h}=t.attrs,f={info:"bg-blue-500/10 border-blue-500/30 text-blue-100",warning:"bg-amber-500/10 border-amber-500/30 text-amber-100",success:"bg-emerald-500/10 border-emerald-500/30 text-emerald-100",error:"bg-red-500/10 border-red-500/30 text-red-100"},j=f[h]||f.info,i=()=>{const c=["💡","⚠️","✅","❌","🔥","📌","✨"],w=c.indexOf(r),N=c[(w+1)%c.length];let y="info";N==="⚠️"&&(y="warning"),N==="✅"&&(y="success"),N==="❌"&&(y="error"),s({emoji:N,type:y})};return e.jsxs(I.NodeViewWrapper,{className:`my-6 flex gap-4 p-4 md:p-5 rounded-2xl border transition-all duration-300
22
+ <%s key={someKey} {...props} />`,A,R,H,R),se[R+A]=!0)}if(R=null,M!==void 0&&(o(M),R=""+M),j(v)&&(o(v.key),R=""+v.key),"key"in v){M={};for(var J in v)J!=="key"&&(M[J]=v[J])}else M=v;return R&&i(M,typeof n=="function"?n.displayName||n.name||"Unknown":n),w(n,R,M,h(),B,K)}function y(n){C(n)?n._store&&(n._store.validated=1):typeof n=="object"&&n!==null&&n.$$typeof===l&&(n._payload.status==="fulfilled"?C(n._payload.value)&&n._payload.value._store&&(n._payload.value._store.validated=1):n._store&&(n._store.validated=1))}function C(n){return typeof n=="object"&&n!==null&&n.$$typeof===b}var g=m,b=Symbol.for("react.transitional.element"),D=Symbol.for("react.portal"),f=Symbol.for("react.fragment"),k=Symbol.for("react.strict_mode"),S=Symbol.for("react.profiler"),T=Symbol.for("react.consumer"),a=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),$=Symbol.for("react.suspense"),x=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),l=Symbol.for("react.lazy"),_=Symbol.for("react.activity"),U=Symbol.for("react.client.reference"),O=g.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,q=Object.prototype.hasOwnProperty,W=Array.isArray,z=console.createTask?console.createTask:function(){return null};g={react_stack_bottom_frame:function(n){return n()}};var Q,Z={},ee=g.react_stack_bottom_frame.bind(g,p)(),te=z(r(p)),se={};V.Fragment=f,V.jsx=function(n,v,M){var A=1e4>O.recentlyCreatedOwnerStacks++;return N(n,v,M,!1,A?Error("react-stack-top-frame"):ee,A?z(r(n)):te)},V.jsxs=function(n,v,M){var A=1e4>O.recentlyCreatedOwnerStacks++;return N(n,v,M,!0,A?Error("react-stack-top-frame"):ee,A?z(r(n)):te)}}()),V}process.env.NODE_ENV==="production"?G.exports=Se():G.exports=Me();var e=G.exports;const ie=m.createContext(void 0),Y=()=>{const t=m.useContext(ie);if(t===void 0)throw new Error("useAxiomEditor must be used within an AxiomEditorProvider");return t},Ae=({node:t,updateAttributes:s,deleteNode:o,selected:r})=>{const[h,p]=m.useState(!1),[j,i]=m.useState(!1),[c,w]=m.useState(!1),[N,y]=m.useState(!1),C=m.useRef(null),g=t.attrs.align||"center",b=t.attrs.width||"100%",D=t.attrs.caption||"",f=t.attrs.captionPosition||"below",k=t.attrs.alt||"",S=t.attrs.src,T=m.useCallback(x=>{if(!N||!C.current)return;const P=C.current.getBoundingClientRect(),l=Math.max(150,x.clientX-P.left);s({width:`${l}px`})},[N,s]),a=m.useCallback(()=>{y(!1)},[]);m.useEffect(()=>(N&&(window.addEventListener("mousemove",T),window.addEventListener("mouseup",a)),()=>{window.removeEventListener("mousemove",T),window.removeEventListener("mouseup",a)}),[N,T,a]);let u="w-full relative my-8 flex flex-col outline-none group cursor-pointer ";g==="left"?u+="items-start mr-auto ml-0":g==="right"?u+="items-end ml-auto mr-0":u+="items-center mx-auto";const $=`rounded-xl shadow-2xl transition-all border border-smoke/30 max-w-full ${r?"ring-4 ring-amber ring-offset-4 ring-offset-obsidian":""}`;return e.jsxs(I.NodeViewWrapper,{className:u,children:[e.jsxs("div",{ref:C,className:"relative inline-block",style:{width:b,minWidth:"150px"},children:[D&&f==="above"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mb-3 uppercase tracking-widest font-medium px-2",children:D}),e.jsx("img",{src:S,className:$,alt:k,style:{width:"100%",display:"block"}}),r&&e.jsx("div",{onMouseDown:x=>{x.preventDefault(),y(!0)},className:"absolute -right-2 -bottom-2 w-5 h-5 bg-amber border-2 border-charcoal rounded-full cursor-se-resize z-50 hover:scale-125 transition-transform",title:"Drag to resize"}),D&&f==="below"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mt-3 uppercase tracking-widest font-medium px-2",children:D})]}),r&&e.jsx("div",{className:"absolute -top-14 left-1/2 -translate-x-1/2 z-50 bg-charcoal border border-smoke rounded-xl shadow-2xl flex items-center divide-x divide-smoke/30 h-11 px-1",onMouseDown:x=>x.stopPropagation(),onKeyDown:x=>x.stopPropagation(),children:h?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Alt text / Title...",value:k,onChange:x=>s({alt:x.target.value}),onKeyDown:x=>{x.key==="Enter"&&p(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-40"}),e.jsx("button",{onMouseDown:x=>{x.preventDefault(),p(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):j?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Caption...",value:D,onChange:x=>s({caption:x.target.value}),onKeyDown:x=>{x.key==="Enter"&&i(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-40"}),e.jsx("button",{onMouseDown:x=>{x.preventDefault(),s({captionPosition:f==="above"?"below":"above"})},className:"p-1.5 text-steel hover:text-amber rounded",title:"Toggle Position",children:e.jsx(d.Layout,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onMouseDown:x=>{x.preventDefault(),i(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):c?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Size (px or %)...",value:b,onChange:x=>s({width:x.target.value}),onKeyDown:x=>{x.key==="Enter"&&w(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-32"}),e.jsx("button",{onMouseDown:x=>{x.preventDefault(),w(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:x=>{x.preventDefault(),s({width:"100%"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-all",title:"Full Width",children:e.jsx(d.Maximize,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:x=>{x.preventDefault(),w(!0)},className:"text-[10px] font-bold text-bone hover:text-amber px-2 py-1 transition-all",children:"Size"})]}),e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:x=>{x.preventDefault(),s({align:"left"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignLeft,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:x=>{x.preventDefault(),s({align:"center"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignCenter,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:x=>{x.preventDefault(),s({align:"right"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignRight,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:x=>{x.preventDefault(),i(!0)},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",title:"Caption",children:e.jsx(d.Type,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:x=>{x.preventDefault(),p(!0)},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",title:"Alt Text / Title",children:"Alt"}),e.jsx("button",{onMouseDown:x=>{x.preventDefault(),o()},className:"p-2 text-red-500 hover:text-red-400 hover:bg-red-500/10 rounded-lg transition-colors",children:e.jsx(d.Trash2,{className:"w-4 h-4"})})]})]})})]})},Re=L.Node.create({name:"image",group:"block",atom:!0,addAttributes(){return{src:{default:null},alt:{default:null},caption:{default:null},captionPosition:{default:"below"},width:{default:"100%"},align:{default:"center"}}},parseHTML(){return[{tag:"img[src]",getAttrs:t=>typeof t=="string"?{}:{src:t.getAttribute("src"),alt:t.getAttribute("alt"),width:t.style.width||t.getAttribute("width")||"100%"}}]},renderHTML({HTMLAttributes:t}){return["img",L.mergeAttributes(t)]},addNodeView(){return I.ReactNodeViewRenderer(Ae)}}),Ie=({node:t,updateAttributes:s,deleteNode:o,selected:r,editor:h})=>{const[p,j]=m.useState(!1),[i,c]=m.useState(!1),[w,N]=m.useState(!1),y=t.attrs.align||"center",C=t.attrs.width||"100%",g=t.attrs.caption||"",b=t.attrs.captionPosition||"below",D=t.attrs.alt||"";let f=t.attrs.src||"";const k=/(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/(?:[^/\n\s]+\/\S+\/|(?:v|e(?:mbed)?)\/|\S*?[?&]v=|live\/)|youtu\.be\/|youtube\.com\/shorts\/)([a-zA-Z0-9_-]{11})/,S=f.match(k);S&&S[1]&&(f=`https://www.youtube-nocookie.com/embed/${S[1]}`);let T="w-full relative my-8 flex flex-col outline-none group cursor-pointer ";y==="left"?T+="items-start mr-auto ml-0":y==="right"?T+="items-end ml-auto mr-0":T+="items-center mx-auto";const a=`rounded-xl shadow-2xl transition-all border border-smoke/30 max-w-full aspect-video ${r?"ring-4 ring-amber ring-offset-4 ring-offset-obsidian":""}`;return e.jsxs(I.NodeViewWrapper,{className:T,children:[g&&b==="above"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mb-3 uppercase tracking-widest font-medium px-2",children:g}),e.jsxs("div",{className:"relative",style:{width:C,maxWidth:"720px",minWidth:"320px"},children:[h.isEditable&&e.jsx("div",{className:"absolute inset-0 z-10 cursor-pointer",title:"Click to edit embed"}),e.jsx("iframe",{src:f,className:`${a} w-full h-full`,style:{pointerEvents:h.isEditable?"none":"auto"},title:D,allowFullScreen:!0})]}),g&&b==="below"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mt-3 uppercase tracking-widest font-medium px-2",children:g}),r&&e.jsx("div",{className:"absolute -top-14 left-1/2 -translate-x-1/2 z-50 bg-charcoal border border-smoke rounded-xl shadow-2xl flex items-center divide-x divide-smoke/30 h-11 px-1",onMouseDown:u=>u.stopPropagation(),onKeyDown:u=>u.stopPropagation(),children:p?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Alt text / Title...",value:D,onChange:u=>s({alt:u.target.value}),onKeyDown:u=>{u.key==="Enter"&&j(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-40"}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),j(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):i?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Caption...",value:g,onChange:u=>s({caption:u.target.value}),onKeyDown:u=>{u.key==="Enter"&&c(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-40"}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),s({captionPosition:b==="above"?"below":"above"})},className:"p-1.5 text-steel hover:text-amber rounded",title:"Toggle Position",children:e.jsx(d.Layout,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),c(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):w?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Size (px or %)...",value:C,onChange:u=>s({width:u.target.value}),onKeyDown:u=>{u.key==="Enter"&&N(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-32"}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),N(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:u=>{u.preventDefault(),s({width:"100%"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-all",title:"Full Width",children:e.jsx(d.Maximize,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),N(!0)},className:"text-[10px] font-bold text-bone hover:text-amber px-2 py-1 transition-all",children:"Size"})]}),e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:u=>{u.preventDefault(),s({align:"left"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignLeft,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),s({align:"center"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignCenter,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),s({align:"right"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignRight,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:u=>{u.preventDefault(),c(!0)},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",title:"Caption",children:e.jsx(d.Type,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),j(!0)},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",title:"Alt Text / Title",children:"Alt"}),e.jsx("button",{onMouseDown:u=>{u.preventDefault(),o()},className:"p-2 text-red-500 hover:text-red-400 hover:bg-red-500/10 rounded-lg transition-colors",children:e.jsx(d.Trash2,{className:"w-4 h-4"})})]})]})})]})},_e=ye.Youtube.extend({addAttributes(){var t;return{...(t=this.parent)==null?void 0:t.call(this),align:{default:"center"},width:{default:"100%"},caption:{default:""},captionPosition:{default:"below"},alt:{default:""}}},addNodeView(){return I.ReactNodeViewRenderer(Ie)}}),Le=({node:t,updateAttributes:s,deleteNode:o,selected:r,editor:h})=>{const p=m.useRef(null),[j,i]=m.useState(!1),[c,w]=m.useState(!1),[N,y]=m.useState(!1),[C,g]=m.useState(!1),b=t.attrs.align||"center",D=t.attrs.url||"",f=t.attrs.width||"100%",k=t.attrs.caption||"",S=t.attrs.captionPosition||"below",T=t.attrs.alt||"";let a=t.attrs.tweetId;if(!a&&D){const l=D.match(/status\/(\d+)/);a=l?l[1]:""}const[u,$]=m.useState({tweetId:a,align:b});(a!==u.tweetId||b!==u.align)&&($({tweetId:a,align:b}),i(!1)),m.useEffect(()=>{if(!window.twttr){const l=document.createElement("script");l.setAttribute("src","https://platform.twitter.com/widgets.js"),l.setAttribute("async","true"),l.setAttribute("charset","utf-8"),document.head.appendChild(l)}},[]),m.useEffect(()=>{let l=!0;if(!a)return;const _=setInterval(()=>{var O,q,W,z;(O=window.twttr)!=null&&O.widgets&&(clearInterval(_),clearTimeout(U),p.current&&l&&(p.current.innerHTML="",(z=(W=(q=window.twttr.widgets).createTweet)==null?void 0:W.call(q,a,p.current,{theme:"dark",align:b,dnt:!0}))==null||z.then(()=>{l&&i(!0)})))},100),U=setTimeout(()=>{l=!1,clearInterval(_)},1e4);return()=>{l=!1,clearInterval(_),clearTimeout(U)}},[a,b]);let x="w-full relative my-8 flex flex-col outline-none group cursor-pointer ";b==="left"?x+="items-start mr-auto ml-0":b==="right"?x+="items-end ml-auto mr-0":x+="items-center mx-auto";const P=()=>{let l=String(f).trim();if(l.endsWith("%")){const _=parseInt(l.replace("%",""),10);!isNaN(_)&&_<30&&(l="30%")}else{const _=parseInt(l.replace("px",""),10);!isNaN(_)&&_<250?l="250px":!isNaN(_)&&!l.endsWith("px")&&(l=`${_}px`)}s({width:l}),g(!1)};return e.jsxs(I.NodeViewWrapper,{className:x,children:[k&&S==="above"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mb-3 uppercase tracking-widest font-medium px-2",children:k}),e.jsxs("div",{style:{width:f,maxWidth:"550px",minWidth:"250px"},className:`relative py-4 flex items-center justify-center min-h-[150px] overflow-hidden bg-obsidian border border-smoke/30 rounded-xl transition-all ${r?"ring-4 ring-amber ring-offset-4 ring-offset-obsidian":""}`,title:T,children:[h.isEditable&&e.jsx("div",{className:"absolute inset-0 z-10 cursor-pointer",title:"Click to edit embed"}),!j&&e.jsx("div",{className:"absolute inset-0 flex items-center justify-center text-xs text-steel animate-pulse uppercase tracking-wider font-semibold",children:"Establishing connection to X..."}),e.jsx("div",{ref:p,className:`w-full flex justify-center ${h.isEditable?"pointer-events-none":""}`})]}),k&&S==="below"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mt-3 uppercase tracking-widest font-medium px-2",children:k}),r&&e.jsx("div",{className:"absolute -top-14 left-1/2 -translate-x-1/2 z-50 bg-charcoal border border-smoke rounded-xl shadow-2xl flex items-center divide-x divide-smoke/30 h-11 px-1",onMouseDown:l=>l.stopPropagation(),onKeyDown:l=>l.stopPropagation(),children:c?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Alt text / Title...",value:T,onChange:l=>s({alt:l.target.value}),onKeyDown:l=>{l.key==="Enter"&&w(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-40"}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),w(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):N?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Caption...",value:k,onChange:l=>s({caption:l.target.value}),onKeyDown:l=>{l.key==="Enter"&&y(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-40"}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),s({captionPosition:S==="above"?"below":"above"})},className:"p-1.5 text-steel hover:text-amber rounded",title:"Toggle Position",children:e.jsx(d.Layout,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),y(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):C?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Size (px or %)...",value:f,onChange:l=>s({width:l.target.value}),onKeyDown:l=>{l.key==="Enter"&&P()},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-32"}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),P()},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:l=>{l.preventDefault(),s({width:"100%"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-all",title:"Full Width",children:e.jsx(d.Maximize,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),g(!0)},className:"text-[10px] font-bold text-bone hover:text-amber px-2 py-1 transition-all",children:"Size"})]}),e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:l=>{l.preventDefault(),s({align:"left"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignLeft,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),s({align:"center"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignCenter,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),s({align:"right"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignRight,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:l=>{l.preventDefault(),y(!0)},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",title:"Caption",children:e.jsx(d.Type,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),w(!0)},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",title:"Alt Text / Title",children:"Alt"}),e.jsx("button",{onMouseDown:l=>{l.preventDefault(),o()},className:"p-2 text-red-500 hover:text-red-400 hover:bg-red-500/10 rounded-lg transition-colors",children:e.jsx(d.Trash2,{className:"w-4 h-4"})})]})]})})]})},Pe=L.Node.create({name:"tweet",group:"block",atom:!0,addAttributes(){return{tweetId:{default:null},url:{default:null},align:{default:"center"},width:{default:"100%"},caption:{default:""},captionPosition:{default:"below"},alt:{default:""}}},parseHTML(){return[{tag:'div[data-type="tweet"]',getAttrs:t=>{if(typeof t=="string")return!1;const s=t.getAttribute("data-url")||"";return s&&!/^https?:\/\/(www\.)?(twitter|x)\.com\//i.test(s)?!1:null}},{tag:"blockquote.twitter-tweet"}]},renderHTML({HTMLAttributes:t}){const s=t.url||"";return s&&!/^https?:\/\/(www\.)?(twitter|x)\.com\//i.test(s)?["div"]:["div",L.mergeAttributes(t,{"data-type":"tweet","data-url":s})]},addNodeView(){return I.ReactNodeViewRenderer(Le)}});function Oe(t){let s=t||"";return s=s.split("?")[0].split("#")[0],s=s.replace(/(\/embed\/?)+$/,""),s=s.replace("/reels/","/reel/"),s.includes("instagram.com")&&!s.includes("www.instagram.com")&&(s=s.replace("instagram.com","www.instagram.com")),s.endsWith("/")||(s+="/"),s}const ze=({node:t,updateAttributes:s,deleteNode:o,selected:r,editor:h})=>{const[p,j]=m.useState(!1),[i,c]=m.useState(!1),[w,N]=m.useState(!1),y=t.attrs.align||"center",C=t.attrs.width||"100%",g=t.attrs.caption||"",b=t.attrs.captionPosition||"below",D=t.attrs.alt||"",f=t.attrs.url||"",k=Oe(f);let S="w-full relative my-8 flex flex-col outline-none group cursor-pointer ";y==="left"?S+="items-start mr-auto ml-0":y==="right"?S+="items-end ml-auto mr-0":S+="items-center mx-auto";const T=()=>{let a=String(C).trim();if(a.endsWith("%")){const u=parseInt(a.replace("%",""),10);!isNaN(u)&&u<30&&(a="30%")}else{const u=parseInt(a.replace("px",""),10);!isNaN(u)&&u<250?a="250px":!isNaN(u)&&!a.endsWith("px")&&(a=`${u}px`)}s({width:a}),N(!1)};return e.jsxs(I.NodeViewWrapper,{className:S,children:[g&&b==="above"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mb-3 uppercase tracking-widest font-medium px-2",children:g}),e.jsxs("div",{style:{width:C},className:`w-full max-w-[540px] min-w-[250px] rounded-2xl bg-charcoal/40 border border-smoke/30 p-6 flex flex-col items-center gap-4 transition-all duration-300 relative ${r?"ring-4 ring-amber ring-offset-4 ring-offset-obsidian":""}`,title:D,children:[h.isEditable&&e.jsx("div",{className:"absolute inset-0 z-10 cursor-pointer",title:"Click to edit embed"}),e.jsx("div",{className:`w-16 h-16 rounded-2xl bg-gradient-to-tr from-[#f9ce34] via-[#ee2a7b] to-[#6228d7] flex items-center justify-center shadow-lg shadow-pink-500/10 ${h.isEditable?"pointer-events-none":""}`,children:e.jsxs("svg",{className:"w-9 h-9 text-white",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("rect",{x:"2",y:"2",width:"20",height:"20",rx:"5",ry:"5"}),e.jsx("path",{d:"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"}),e.jsx("line",{x1:"17.5",y1:"6.5",x2:"17.51",y2:"6.5"})]})}),e.jsxs("div",{className:"text-center space-y-1.5 w-full",children:[e.jsx("span",{className:"text-[10px] text-amber uppercase tracking-widest font-bold",children:"Instagram Embed"}),e.jsx("h4",{className:"text-sm font-semibold text-bone truncate max-w-xs mx-auto",title:k,children:k}),e.jsx("p",{className:"text-[11px] text-steel max-w-[280px] mx-auto leading-relaxed",children:"Browser cookie blocking is active in localhost. This embed will hydrate and load beautifully on your live secure HTTPS site!"})]})]}),g&&b==="below"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mt-3 uppercase tracking-widest font-medium px-2",children:g}),r&&e.jsx("div",{className:"absolute -top-14 left-1/2 -translate-x-1/2 z-50 bg-charcoal border border-smoke rounded-xl shadow-2xl flex items-center divide-x divide-smoke/30 h-11 px-1",onMouseDown:a=>a.stopPropagation(),onKeyDown:a=>a.stopPropagation(),children:p?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Alt text / Title...",value:D,onChange:a=>s({alt:a.target.value}),onKeyDown:a=>{a.key==="Enter"&&j(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-40"}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),j(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):i?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Caption...",value:g,onChange:a=>s({caption:a.target.value}),onKeyDown:a=>{a.key==="Enter"&&c(!1)},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-40"}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),s({captionPosition:b==="above"?"below":"above"})},className:"p-1.5 text-steel hover:text-amber rounded",title:"Toggle Position",children:e.jsx(d.Layout,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),c(!1)},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):w?e.jsxs("div",{className:"flex items-center px-2 py-1 gap-2",children:[e.jsx("input",{type:"text",autoFocus:!0,placeholder:"Size (px or %)...",value:C,onChange:a=>s({width:a.target.value}),onKeyDown:a=>{a.key==="Enter"&&T()},className:"bg-obsidian border border-smoke/50 rounded-lg px-3 py-1 text-xs text-bone focus:outline-none focus:border-amber w-32"}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),T()},className:"text-[10px] text-amber uppercase font-bold px-1",children:"Done"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:a=>{a.preventDefault(),s({width:"100%"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-all",title:"Full Width",children:e.jsx(d.Maximize,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),N(!0)},className:"text-[10px] font-bold text-bone hover:text-amber px-2 py-1 transition-all",children:"Size"})]}),e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:a=>{a.preventDefault(),s({align:"left"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignLeft,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),s({align:"center"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignCenter,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),s({align:"right"})},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",children:e.jsx(d.AlignRight,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"flex px-1 items-center gap-0.5",children:[e.jsx("button",{onMouseDown:a=>{a.preventDefault(),c(!0)},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",title:"Caption",children:e.jsx(d.Type,{className:"w-4 h-4"})}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),j(!0)},className:"p-2 text-bone hover:text-amber rounded-lg transition-colors",title:"Alt Text / Title",children:"Alt"}),e.jsx("button",{onMouseDown:a=>{a.preventDefault(),o()},className:"p-2 text-red-500 hover:text-red-400 hover:bg-red-500/10 rounded-lg transition-colors",children:e.jsx(d.Trash2,{className:"w-4 h-4"})})]})]})})]})},He=L.Node.create({name:"instagram",group:"block",atom:!0,addAttributes(){return{url:{default:null},align:{default:"center"},width:{default:"100%"},caption:{default:""},captionPosition:{default:"below"},alt:{default:""}}},parseHTML(){return[{tag:'div[data-type="instagram"]',getAttrs:t=>{if(typeof t=="string")return!1;const s=t.getAttribute("data-url")||"";return s&&!/^https?:\/\/(www\.)?instagram\.com\//i.test(s)?!1:null}},{tag:"blockquote.instagram-media"}]},renderHTML({HTMLAttributes:t}){const s=t.url||"";return s&&!/^https?:\/\/(www\.)?instagram\.com\//i.test(s)?["div"]:["div",L.mergeAttributes(t,{"data-type":"instagram","data-url":s})]},addNodeView(){return I.ReactNodeViewRenderer(ze)}}),$e=({deleteNode:t,selected:s,editor:o})=>e.jsxs(I.NodeViewWrapper,{className:`my-6 relative transition-all duration-300 rounded-xl overflow-hidden border-2
23
+ ${s?"border-amber shadow-[0_0_15px_rgba(255,191,0,0.2)]":"border-amber/40 border-dashed hover:border-amber/70"}`,children:[e.jsxs("div",{className:"bg-amber/10 px-4 py-2 border-b border-amber/20 flex items-center justify-between select-none",children:[e.jsxs("div",{className:"flex items-center gap-2 text-amber font-display font-semibold tracking-wide text-sm",children:[e.jsx(d.Archive,{className:"w-4 h-4"}),e.jsxs("span",{children:["STASHED NOTE ",e.jsx("span",{className:"opacity-60 text-xs ml-1",children:"(Internal Only)"})]})]}),o.isEditable&&e.jsx("button",{onClick:t,className:"p-1.5 text-amber/60 hover:text-red-400 hover:bg-red-400/10 rounded-lg transition-colors",title:"Delete Stash",children:e.jsx(d.Trash2,{className:"w-4 h-4"})})]}),e.jsx("div",{className:"bg-charcoal/50 p-4 md:p-6 text-bone/90 prose-p:my-2 first:prose-p:mt-0 last:prose-p:mb-0",children:e.jsx(I.NodeViewContent,{className:"min-h-[2rem]"})})]}),qe=L.Node.create({name:"stash",group:"block",content:"block+",defining:!0,parseHTML(){return[{tag:'div[data-type="stash"]'}]},renderHTML({HTMLAttributes:t}){return["div",L.mergeAttributes(t,{"data-type":"stash"}),0]},addNodeView(){return I.ReactNodeViewRenderer($e)}}),Fe=({node:t,updateAttributes:s,selected:o})=>{const{emoji:r,type:h}=t.attrs,p={info:"bg-blue-500/10 border-blue-500/30 text-blue-100",warning:"bg-amber-500/10 border-amber-500/30 text-amber-100",success:"bg-emerald-500/10 border-emerald-500/30 text-emerald-100",error:"bg-red-500/10 border-red-500/30 text-red-100"},j=p[h]||p.info,i=()=>{const c=["💡","⚠️","✅","❌","🔥","📌","✨"],w=c.indexOf(r),N=c[(w+1)%c.length];let y="info";N==="⚠️"&&(y="warning"),N==="✅"&&(y="success"),N==="❌"&&(y="error"),s({emoji:N,type:y})};return e.jsxs(I.NodeViewWrapper,{className:`my-6 flex gap-4 p-4 md:p-5 rounded-2xl border transition-all duration-300
24
24
  ${j}
25
25
  ${o?"ring-2 ring-white/20 shadow-lg":"shadow-md"}
26
- `,children:[e.jsx("button",{contentEditable:!1,onClick:i,className:"text-2xl shrink-0 mt-0.5 hover:scale-110 active:scale-95 transition-transform select-none cursor-pointer",title:"Change Icon",children:r}),e.jsx("div",{className:"flex-1 font-medium leading-relaxed",children:e.jsx(I.NodeViewContent,{className:"min-h-[1.5rem]"})})]})},$e=L.Node.create({name:"callout",group:"block",content:"inline*",defining:!0,addAttributes(){return{emoji:{default:"💡"},type:{default:"info"}}},parseHTML(){return[{tag:'div[data-type="callout"]'}]},renderHTML({HTMLAttributes:t}){return["div",L.mergeAttributes(t,{"data-type":"callout"}),0]},addNodeView(){return I.ReactNodeViewRenderer(He)}}),le=x.forwardRef((t,s)=>{const[o,r]=x.useState(0),h=c=>{const w=t.items[c];w&&t.command(w)},f=()=>{r((o+t.items.length-1)%t.items.length)},j=()=>{r((o+1)%t.items.length)},i=()=>{h(o)};return x.useEffect(()=>{r(0)},[t.items]),x.useImperativeHandle(s,()=>({onKeyDown:({event:c})=>c.key==="ArrowUp"?(f(),!0):c.key==="ArrowDown"?(j(),!0):c.key==="Enter"?(i(),!0):!1})),t.items.length?e.jsx("div",{className:"bg-obsidian border border-smoke/60 shadow-2xl rounded-xl overflow-hidden py-2 min-w-[240px]",children:t.items.map((c,w)=>{const N=c.icon;return e.jsxs("button",{className:`w-full flex items-center gap-3 px-4 py-2.5 text-left transition-colors
27
- ${w===o?"bg-amber/10 text-amber":"text-bone hover:bg-charcoal/50 hover:text-amber/80"}`,onClick:()=>h(w),children:[e.jsx("div",{className:"flex items-center justify-center w-8 h-8 rounded-md bg-charcoal/30 border border-smoke/30 shrink-0",children:e.jsx(N,{className:"w-4 h-4"})}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"font-semibold text-sm font-display tracking-wide",children:c.title}),e.jsx("span",{className:"text-xs text-steel",children:c.description})]})]},w)})}):null});le.displayName="CommandList";const qe=({query:t})=>[{title:"Heading 1",description:"Big section heading.",icon:d.Heading1,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).setNode("heading",{level:1}).run()}},{title:"Heading 2",description:"Medium section heading.",icon:d.Heading2,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).setNode("heading",{level:2}).run()}},{title:"Heading 3",description:"Small section heading.",icon:d.Heading3,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).setNode("heading",{level:3}).run()}},{title:"Bullet List",description:"Create a simple bulleted list.",icon:d.List,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).toggleBulletList().run()}},{title:"Numbered List",description:"Create a list with numbering.",icon:d.ListOrdered,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).toggleOrderedList().run()}},{title:"Quote",description:"Capture a quote.",icon:d.Quote,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).toggleBlockquote().run()}},{title:"Task List",description:"Track tasks with a to-do list.",icon:d.CheckSquare,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).toggleTaskList().run()}},{title:"Code Block",description:"Capture a code snippet.",icon:d.Code,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).toggleCodeBlock().run()}},{title:"Callout",description:"Highlight important information.",icon:d.MessageSquareWarning,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).insertContent({type:"callout",content:[{type:"paragraph"}]}).run()}},{title:"Stash Note",description:"Hidden journalist draft note.",icon:d.Archive,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).insertContent({type:"stash",content:[{type:"paragraph"}]}).run()}}].filter(o=>o.title.toLowerCase().includes(t.toLowerCase())).slice(0,10),Fe=L.Extension.create({name:"slashMenu",addOptions(){return{suggestion:{char:"/",command:({editor:t,range:s,props:o})=>{o.command({editor:t,range:s})}}}},addProseMirrorPlugins(){return[je({editor:this.editor,...this.options.suggestion,items:qe,render:()=>{let t,s;return{onStart:o=>{t=new I.ReactRenderer(le,{props:o,editor:o.editor}),o.clientRect&&(s=Ne("body",{getReferenceClientRect:o.clientRect,appendTo:()=>document.body,content:t.element,showOnCreate:!0,interactive:!0,trigger:"manual",placement:"bottom-start"}))},onUpdate(o){t.updateProps(o),o.clientRect&&s[0].setProps({getReferenceClientRect:o.clientRect})},onKeyDown(o){var r;return o.event.key==="Escape"?(s[0].hide(),!0):(r=t.ref)==null?void 0:r.onKeyDown(o)},onExit(){s[0].destroy(),t.destroy()}}}})]}}),Ve=ke.Underline.extend({addAttributes(){return{color:{default:null,parseHTML:t=>t.style.textDecorationColor||null,renderHTML:t=>t.color?{style:`text-decoration-color: ${t.color};`}:{}}}},addCommands(){return{setUnderline:t=>({commands:s})=>s.setMark(this.name,t),toggleUnderline:t=>({commands:s})=>s.toggleMark(this.name,t),unsetUnderline:()=>({commands:t})=>t.unsetMark(this.name)}}}),Ue=Ce.Strike.extend({addAttributes(){return{color:{default:null,parseHTML:t=>t.style.textDecorationColor||null,renderHTML:t=>t.color?{style:`text-decoration-color: ${t.color};`}:{}}}},addCommands(){return{setStrike:t=>({commands:s})=>s.setMark(this.name,t),toggleStrike:t=>({commands:s})=>s.toggleMark(this.name,t),unsetStrike:()=>({commands:t})=>t.unsetMark(this.name)}}}),We=ne.createLowlight(ne.common);typeof window<"u"&&ae.addHook("uponSanitizeElement",(t,s)=>{var o;s.tagName==="iframe"&&((t.getAttribute("src")||"").startsWith("https://www.youtube.com/embed/")||(o=t.parentNode)==null||o.removeChild(t))});const ce=({initialContent:t,onChange:s,uploadImage:o,children:r,minHeightClass:h="min-h-[150px]",maxHeightClass:f="max-h-[500px]"})=>{const[j,i]=x.useState(!0),[c,w]=x.useState(!1),[N,y]=x.useState("link"),[C,g]=x.useState(""),b=I.useEditor({extensions:[ue.configure({heading:{levels:[1,2,3]},strike:!1,codeBlock:!1}),Ve,Ue,pe.TextStyle,he.Color,be.configure({types:["heading","paragraph","image","youtube"]}),ge.configure({openOnClick:!1,HTMLAttributes:{class:"text-amber hover:text-amber/80 transition-colors underline underline-offset-4 cursor-pointer"}}),Se.configure({inline:!1}),Re.configure({inline:!1}),Ie,Pe,ze,$e,we,me.configure({lowlight:We}),xe,fe.configure({nested:!0}),Fe,ye.configure({dragHandleWidth:20,scrollTreshold:100})],content:typeof t=="string"?t?ae.sanitize(t,{ADD_TAGS:["iframe"],ADD_ATTR:["allowfullscreen","frameborder","src"]}):"<p></p>":t,onUpdate:({editor:D})=>{i(!1);const p=D.getJSON(),k=D.getHTML();s&&s(p,k),setTimeout(()=>i(!0),800)},editorProps:{attributes:{class:"prose prose-invert max-w-none focus:outline-none min-h-full p-4 sm:p-6 md:p-8 pb-16 md:pb-24 text-bone font-body leading-relaxed prose-p:my-1 prose-headings:my-4"}}});return x.useEffect(()=>{const D=async p=>{const k=p,{file:S,position:T}=k.detail;if(S)if(o){i(!1);try{const a=await o(S);T!==void 0?b==null||b.chain().insertContentAt(T,{type:"image",attrs:{src:a}}).focus().run():b==null||b.chain().focus().insertContent({type:"image",attrs:{src:a}}).run()}catch(a){console.error("Image upload failed",a)}finally{i(!0)}}else{const a=URL.createObjectURL(S);T!==void 0?b==null||b.chain().insertContentAt(T,{type:"image",attrs:{src:a}}).focus().run():b==null||b.chain().focus().insertContent({type:"image",attrs:{src:a}}).run()}};return window.addEventListener("axiom-image-upload",D),()=>window.removeEventListener("axiom-image-upload",D)},[b,o]),e.jsx(ie.Provider,{value:{editor:b,isSaved:j,setIsSaved:i,mediaModalOpen:c,setMediaModalOpen:w,mediaModalType:N,setMediaModalType:y,mediaModalInput:C,setMediaModalInput:g,uploadImage:o,minHeightClass:h,maxHeightClass:f},children:r})},E=x.forwardRef(({active:t,icon:s,label:o,variant:r="icon",className:h="",...f},j)=>{const i="transition-all rounded-lg shrink-0 flex items-center justify-center gap-2",c=r==="icon"?"p-2.5":"px-3 py-2 text-xs font-semibold",w=t?"text-amber bg-amber/5":"text-steel hover:text-amber hover:bg-amber/5",N=f.disabled?"opacity-30 cursor-not-allowed":"";return e.jsxs("button",{ref:j,type:"button",className:`${i} ${c} ${w} ${N} ${h}`,...f,children:[s,o&&e.jsx("span",{className:"hidden lg:inline",children:o})]})});E.displayName="ToolbarButton";const Be=()=>{const{editor:t,isSaved:s,setMediaModalOpen:o,setMediaModalType:r,setMediaModalInput:h}=Y(),[f,j]=x.useState(!1),i=x.useRef(null),[c,w]=x.useState(!1),N=x.useRef(null),[y,C]=x.useState(!1),g=x.useRef(null);if(x.useEffect(()=>{const p=k=>{i.current&&!i.current.contains(k.target)&&j(!1),N.current&&!N.current.contains(k.target)&&w(!1),g.current&&!g.current.contains(k.target)&&C(!1)};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[]),!t)return null;const b=p=>{h(""),r(p),o(!0)},D=()=>{const p=t.state.selection.from,k=document.createElement("input");k.type="file",k.accept="image/*",k.onchange=async S=>{var a;const T=(a=S.target.files)==null?void 0:a[0];T&&window.dispatchEvent(new CustomEvent("axiom-image-upload",{detail:{file:T,position:p}}))},k.click()};return e.jsx("div",{className:"-mx-1 px-1 mb-2",children:e.jsxs("div",{className:"flex items-center gap-1 p-2 bg-obsidian border border-smoke/60 rounded-xl sticky top-4 z-20 shadow-xl shadow-black/20 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-0.5 mr-1",children:[e.jsx(E,{icon:e.jsx(d.Undo,{className:"w-4 h-4"}),title:"Undo",onClick:()=>t.chain().focus().undo().run(),disabled:!t.can().undo()}),e.jsx(E,{icon:e.jsx(d.Redo,{className:"w-4 h-4"}),title:"Redo",onClick:()=>t.chain().focus().redo().run(),disabled:!t.can().redo()})]}),e.jsx("div",{className:"w-px h-6 bg-smoke/60 mx-1"}),e.jsx(E,{icon:e.jsx(d.Bold,{className:"w-4 h-4"}),title:"Bold",active:t.isActive("bold"),onClick:()=>t.chain().focus().toggleBold().run()}),e.jsx(E,{icon:e.jsx(d.Italic,{className:"w-4 h-4"}),title:"Italic",active:t.isActive("italic"),onClick:()=>t.chain().focus().toggleItalic().run()}),e.jsxs("div",{ref:N,className:"relative",children:[e.jsx(E,{icon:e.jsx(d.Underline,{className:"w-4 h-4"}),title:"Underline",active:t.isActive("underline"),onClick:()=>{t.isActive("underline")?t.chain().focus().unsetUnderline().run():w(!c)}}),c&&e.jsxs("div",{className:"absolute top-full left-0 mt-2 p-3 bg-charcoal border border-smoke/80 rounded-xl shadow-2xl grid grid-cols-4 gap-2 z-30 min-w-[120px]",children:[["#f9761f","#ffffff","#94a3b8","#ef4444","#22c55e","#3b82f6","#a855f7","#eab308"].map(p=>e.jsx("button",{type:"button",onClick:()=>{t.chain().focus().setUnderline({color:p}).run(),w(!1)},className:"w-6 h-6 rounded-full border border-white/10 hover:scale-110 active:scale-95 transition-all shadow-md cursor-pointer",style:{backgroundColor:p},title:p},p)),e.jsx("button",{type:"button",onClick:()=>{t.chain().focus().unsetUnderline().run(),w(!1)},className:"w-6 h-6 rounded-full border border-white/20 hover:scale-110 active:scale-95 transition-all flex items-center justify-center bg-transparent cursor-pointer text-red-500 font-bold text-xs",title:"Remove Underline",style:{display:"flex",alignItems:"center",justifyContent:"center"},children:"/"})]})]}),e.jsxs("div",{ref:g,className:"relative",children:[e.jsx(E,{icon:e.jsx(d.Strikethrough,{className:"w-4 h-4"}),title:"Strikethrough",active:t.isActive("strike"),onClick:()=>{t.isActive("strike")?t.chain().focus().unsetStrike().run():C(!y)}}),y&&e.jsxs("div",{className:"absolute top-full left-0 mt-2 p-3 bg-charcoal border border-smoke/80 rounded-xl shadow-2xl grid grid-cols-4 gap-2 z-30 min-w-[120px]",children:[["#f9761f","#ffffff","#94a3b8","#ef4444","#22c55e","#3b82f6","#a855f7","#eab308"].map(p=>e.jsx("button",{type:"button",onClick:()=>{t.chain().focus().setStrike({color:p}).run(),C(!1)},className:"w-6 h-6 rounded-full border border-white/10 hover:scale-110 active:scale-95 transition-all shadow-md cursor-pointer",style:{backgroundColor:p},title:p},p)),e.jsx("button",{type:"button",onClick:()=>{t.chain().focus().unsetStrike().run(),C(!1)},className:"w-6 h-6 rounded-full border border-white/20 hover:scale-110 active:scale-95 transition-all flex items-center justify-center bg-transparent cursor-pointer text-red-500 font-bold text-xs",title:"Remove Strikethrough",style:{display:"flex",alignItems:"center",justifyContent:"center"},children:"/"})]})]}),e.jsxs("div",{ref:i,className:"relative",children:[e.jsx(E,{icon:e.jsx(d.Highlighter,{className:"w-4 h-4"}),title:"Text Color",active:!!t.getAttributes("textStyle").color,onClick:()=>{t.getAttributes("textStyle").color?t.chain().focus().unsetColor().run():j(!f)}}),f&&e.jsxs("div",{className:"absolute top-full left-0 mt-2 p-3 bg-charcoal border border-smoke/80 rounded-xl shadow-2xl grid grid-cols-4 gap-2 z-30 min-w-[120px]",children:[["#f9761f","#ffffff","#94a3b8","#ef4444","#22c55e","#3b82f6","#a855f7","#eab308"].map(p=>e.jsx("button",{type:"button",onClick:()=>{t.chain().focus().setColor(p).run(),j(!1)},className:"w-6 h-6 rounded-full border border-white/10 hover:scale-110 active:scale-95 transition-all shadow-md cursor-pointer",style:{backgroundColor:p},title:p},p)),e.jsx("button",{type:"button",onClick:()=>{t.chain().focus().unsetColor().run(),j(!1)},className:"w-6 h-6 rounded-full border border-white/20 hover:scale-110 active:scale-95 transition-all flex items-center justify-center bg-transparent cursor-pointer text-red-500 font-bold text-xs",title:"Remove Text Color",style:{display:"flex",alignItems:"center",justifyContent:"center"},children:"/"})]})]}),e.jsx(E,{icon:e.jsx(d.Link,{className:"w-4 h-4"}),title:"Link",active:t.isActive("link"),onClick:()=>t.getAttributes("link").href?t.chain().focus().unsetLink().run():b("link")}),e.jsx("div",{className:"w-px h-6 bg-smoke/60 mx-1"}),e.jsx(E,{variant:"text",label:"H1",title:"Heading 1",active:t.isActive("heading",{level:1}),onClick:()=>t.chain().focus().toggleHeading({level:1}).run()}),e.jsx(E,{variant:"text",label:"H2",title:"Heading 2",active:t.isActive("heading",{level:2}),onClick:()=>t.chain().focus().toggleHeading({level:2}).run()}),e.jsx(E,{variant:"text",label:"H3",title:"Heading 3",active:t.isActive("heading",{level:3}),onClick:()=>t.chain().focus().toggleHeading({level:3}).run()}),e.jsx(E,{icon:e.jsx(d.Quote,{className:"w-4 h-4"}),title:"Blockquote",active:t.isActive("blockquote"),onClick:()=>t.chain().focus().toggleBlockquote().run()}),e.jsx(E,{icon:e.jsx(d.Code,{className:"w-4 h-4"}),title:"Code Block",active:t.isActive("codeBlock"),onClick:()=>t.chain().focus().toggleCodeBlock().run()}),e.jsx(E,{icon:e.jsx(d.MessageSquareWarning,{className:"w-4 h-4"}),title:"Callout",active:t.isActive("callout"),onClick:()=>t.chain().focus().insertContent({type:"callout",content:[{type:"paragraph"}]}).run()}),e.jsx("div",{className:"w-px h-6 bg-smoke/60 mx-1"}),e.jsx(E,{icon:e.jsx(d.List,{className:"w-4 h-4"}),title:"Bullet List",active:t.isActive("bulletList"),onClick:()=>t.chain().focus().toggleBulletList().run()}),e.jsx(E,{icon:e.jsx(d.ListOrdered,{className:"w-4 h-4"}),title:"Numbered List",active:t.isActive("orderedList"),onClick:()=>t.chain().focus().toggleOrderedList().run()}),e.jsx(E,{icon:e.jsx(d.CheckSquare,{className:"w-4 h-4"}),title:"Task List",active:t.isActive("taskList"),onClick:()=>t.chain().focus().toggleTaskList().run()}),e.jsx("div",{className:"w-px h-6 bg-smoke/60 mx-1"}),e.jsx(E,{icon:e.jsx(d.AlignLeft,{className:"w-4 h-4"}),title:"Align Left",active:t.isActive({textAlign:"left"}),onClick:()=>t.chain().focus().setTextAlign("left").run()}),e.jsx(E,{icon:e.jsx(d.AlignCenter,{className:"w-4 h-4"}),title:"Align Center",active:t.isActive({textAlign:"center"}),onClick:()=>t.chain().focus().setTextAlign("center").run()}),e.jsx(E,{icon:e.jsx(d.AlignRight,{className:"w-4 h-4"}),title:"Align Right",active:t.isActive({textAlign:"right"}),onClick:()=>t.chain().focus().setTextAlign("right").run()}),e.jsx("div",{className:"w-px h-6 bg-smoke/60 mx-1"}),e.jsx(E,{icon:e.jsx(d.ImagePlus,{className:"w-4 h-4"}),label:"Image",title:"Insert Image",onClick:D}),e.jsx(E,{icon:e.jsx(d.Video,{className:"w-4 h-4"}),label:"Video",title:"Insert Video",onClick:()=>b("video")}),e.jsx(E,{icon:e.jsx(d.MessageSquare,{className:"w-4 h-4"}),label:"Tweet",title:"Insert Tweet",onClick:()=>b("tweet")}),e.jsx(E,{icon:e.jsx(d.Camera,{className:"w-4 h-4"}),label:"Instagram",title:"Insert Instagram",onClick:()=>b("instagram")}),e.jsx("div",{className:"flex-1"}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("div",{className:"text-xs text-steel font-medium tracking-wide",children:[t.storage.characterCount.words()," words"]}),e.jsx("div",{className:"flex items-center gap-2 px-3 py-1 bg-white/5 rounded-lg border border-white/5",children:s?e.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] text-emerald-400 font-semibold uppercase tracking-wider",children:[e.jsx(d.CheckCircle2,{className:"w-3 h-3"}),e.jsx("span",{children:"Saved"})]}):e.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] text-amber/70 font-semibold uppercase tracking-wider",children:[e.jsx(d.CloudUpload,{className:"w-3 h-3 animate-pulse"}),e.jsx("span",{children:"Syncing"})]})})]})]})})},Ye=()=>{const{editor:t}=Y();return t?e.jsx("div",{className:"axiom-editor-canvas relative border border-smoke/60 rounded-xl overflow-y-auto overflow-x-hidden shadow-inner bg-obsidian text-bone transition-colors duration-300 custom-scrollbar axiom-editor-fixed-size min-h-0",children:e.jsx(I.EditorContent,{editor:t,className:"min-h-full"})}):null},Ke=()=>{const{editor:t,mediaModalOpen:s,setMediaModalOpen:o,mediaModalType:r,mediaModalInput:h,setMediaModalInput:f}=Y(),j=x.useCallback(()=>{const i=h.trim();if(!i||!t){o(!1);return}if(r==="link"){let c=i;!/^https?:\/\//i.test(c)&&!/^mailto:/i.test(c)&&!/^tel:/i.test(c)&&(c="https://"+c),t.chain().focus().extendMarkRange("link").setLink({href:c}).run()}else r==="video"?t.chain().focus().setYoutubeVideo({src:i}).run():r==="tweet"?t.chain().focus().insertContent({type:"tweet",attrs:{url:i}}).run():r==="instagram"&&t.chain().focus().insertContent({type:"instagram",attrs:{url:i}}).run();o(!1),f("")},[h,r,t,o,f]);return s?e.jsx("div",{className:"fixed inset-0 z-[9999] bg-black/80 flex items-center justify-center p-4 backdrop-blur-sm",children:e.jsxs("div",{className:"bg-obsidian border border-smoke/60 p-5 md:p-6 rounded-2xl w-full max-w-md shadow-2xl mx-4 sm:mx-0",children:[e.jsxs("h3",{className:"text-bone font-display font-semibold mb-4",children:[r==="link"&&"Insert Hyperlink",r==="video"&&"Insert YouTube Embed",r==="tweet"&&"Insert X / Twitter Embed",r==="instagram"&&"Insert Instagram Embed"]}),e.jsx("input",{type:"text",value:h,onChange:i=>f(i.target.value),placeholder:r==="link"?"https://example.com":r==="video"?"https://youtube.com/watch?v=...":r==="tweet"?"https://x.com/username/status/...":"https://instagram.com/reel/...",className:"w-full bg-charcoal/30 border border-smoke/60 rounded-xl px-4 py-3 text-bone focus:outline-none focus:border-amber mb-6 transition-colors text-sm",autoFocus:!0,onKeyDown:i=>{i.key==="Enter"?(i.preventDefault(),j()):i.key==="Escape"&&o(!1)}}),e.jsxs("div",{className:"flex justify-end gap-3",children:[e.jsx("button",{type:"button",onClick:()=>o(!1),className:"px-5 py-2.5 text-steel hover:text-bone text-sm font-medium transition-colors",children:"Cancel"}),e.jsxs("button",{type:"button",onClick:j,className:"px-5 py-2.5 bg-amber hover:bg-amber/90 text-obsidian font-semibold rounded-xl text-sm transition-all shadow-[0_0_15px_rgba(255,191,0,0.15)]",children:[r==="link"&&"Insert Link",r==="video"&&"Insert Video",r==="tweet"&&"Insert Tweet",r==="instagram"&&"Insert Instagram"]})]})]})}):null},Je=({initialContent:t,onChange:s,uploadImage:o,minHeightClass:r,maxHeightClass:h})=>e.jsx(ce,{initialContent:t,onChange:s,uploadImage:o,minHeightClass:r,maxHeightClass:h,children:e.jsxs("div",{className:"axiom-editor-wrapper flex flex-col gap-4",children:[e.jsx(Be,{}),e.jsx(Ye,{}),e.jsx(Ke,{})]})}),X=(t,s)=>{var f,j;if(t.type==="doc")return e.jsx(e.Fragment,{children:(f=t.content)==null?void 0:f.map((i,c)=>X(i,c))});if(t.type==="text"){let i=t.text||"";return t.marks&&t.marks.forEach(c=>{var w,N,y,C;if(c.type==="bold"&&(i=e.jsx("strong",{children:i},c.type)),c.type==="italic"&&(i=e.jsx("em",{children:i},c.type)),c.type==="underline"){const g=(w=c.attrs)==null?void 0:w.color;i=e.jsx("u",{style:g?{textDecorationColor:g}:{},children:i},c.type)}if(c.type==="strike"){const g=(N=c.attrs)==null?void 0:N.color;i=e.jsx("s",{style:g?{textDecorationColor:g}:{},children:i},c.type)}if(c.type==="textStyle"){const g=(y=c.attrs)==null?void 0:y.color;g&&(i=e.jsx("span",{style:{color:g},children:i},c.type))}if(c.type==="link"){const g=(C=c.attrs)==null?void 0:C.href;g&&(i=e.jsx("a",{href:g,target:"_blank",rel:"noopener noreferrer",className:"text-amber hover:text-amber/80 transition-colors underline underline-offset-4",children:i},c.type))}}),e.jsx(x.Fragment,{children:i},s)}const o=(j=t.content)==null?void 0:j.map((i,c)=>X(i,c)),r=t.attrs||{},h=r.textAlign?{textAlign:r.textAlign}:{};switch(t.type){case"paragraph":return e.jsx("p",{style:h,children:o},s);case"heading":{const i=`h${r.level||1}`;return e.jsx(i,{style:h,children:o},s)}case"blockquote":return e.jsx("blockquote",{className:"border-l-4 border-amber/50 pl-4 py-1 italic bg-charcoal/30 rounded-r-lg",children:o},s);case"bulletList":return e.jsx("ul",{className:"list-disc pl-6 marker:text-amber",children:o},s);case"orderedList":return e.jsx("ol",{className:"list-decimal pl-6 marker:text-amber",children:o},s);case"listItem":return e.jsx("li",{children:o},s);case"image":{const i=r.align||"center",c=r.width||"100%";let w="items-center mx-auto";return i==="left"&&(w="items-start mr-auto ml-0"),i==="right"&&(w="items-end ml-auto mr-0"),e.jsxs("div",{className:`flex flex-col my-8 w-full ${w}`,children:[r.caption&&r.captionPosition==="above"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mb-3 uppercase tracking-widest font-medium px-2",children:r.caption}),e.jsx("img",{src:r.src,alt:r.alt||"",title:r.title,style:{width:c,minWidth:"150px"},className:"rounded-xl object-cover shadow-2xl border border-smoke/30 max-w-full"}),r.caption&&r.captionPosition==="below"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mt-3 uppercase tracking-widest font-medium px-2",children:r.caption})]},s)}case"youtube":return e.jsx("div",{className:"my-8 aspect-video rounded-2xl overflow-hidden shadow-[0_0_40px_rgba(0,0,0,0.5)] border border-smoke/30 bg-black relative",children:e.jsx("iframe",{src:r.src,className:"absolute inset-0 w-full h-full border-0",allowFullScreen:!0})},s);case"tweet":return e.jsx("div",{className:"my-6",children:e.jsx("blockquote",{className:"twitter-tweet",children:e.jsx("a",{href:r.url})})},s);case"instagram":return e.jsx("div",{className:"my-6",children:e.jsx("blockquote",{className:"instagram-media","data-instgrm-permalink":r.url})},s);case"callout":{const i={info:"bg-blue-500/10 border-blue-500/30 text-blue-100",warning:"bg-amber-500/10 border-amber-500/30 text-amber-100",success:"bg-emerald-500/10 border-emerald-500/30 text-emerald-100",error:"bg-red-500/10 border-red-500/30 text-red-100"},c=i[r.type]||i.info;return e.jsxs("div",{className:`my-6 flex gap-4 p-4 md:p-5 rounded-2xl border shadow-md ${c}`,children:[e.jsx("div",{className:"text-2xl shrink-0 mt-0.5 select-none",children:r.emoji}),e.jsx("div",{className:"flex-1 font-medium leading-relaxed",children:o})]},s)}case"codeBlock":return e.jsx("pre",{className:"bg-obsidian border border-smoke/30 p-4 rounded-xl overflow-x-auto text-sm my-6 font-mono text-steel",children:e.jsx("code",{className:`language-${r.language||"plaintext"}`,children:o})},s);case"taskList":return e.jsx("ul",{className:"list-none pl-0 my-6 space-y-2","data-type":"taskList",children:o},s);case"taskItem":return e.jsxs("li",{className:"flex items-start gap-3","data-type":"taskItem",children:[e.jsx("input",{type:"checkbox",className:"mt-1.5 w-4 h-4 rounded border-smoke/30 bg-charcoal text-amber accent-amber cursor-not-allowed",checked:r.checked,readOnly:!0}),e.jsx("div",{className:"flex-1 text-bone",children:o})]},s);case"stash":return null;default:return e.jsx(x.Fragment,{children:o},s)}},Ge=({content:t})=>e.jsx("div",{className:"prose prose-invert max-w-none text-bone font-body leading-relaxed prose-p:my-1 prose-headings:my-4",children:X(t)});exports.AxiomEditor=Je;exports.AxiomEditorProvider=ce;exports.AxiomJSONRenderer=Ge;exports.useAxiomEditor=Y;
26
+ `,children:[e.jsx("button",{contentEditable:!1,onClick:i,className:"text-2xl shrink-0 mt-0.5 hover:scale-110 active:scale-95 transition-transform select-none cursor-pointer",title:"Change Icon",children:r}),e.jsx("div",{className:"flex-1 font-medium leading-relaxed",children:e.jsx(I.NodeViewContent,{className:"min-h-[1.5rem]"})})]})},Ve=L.Node.create({name:"callout",group:"block",content:"inline*",defining:!0,addAttributes(){return{emoji:{default:"💡"},type:{default:"info"}}},parseHTML(){return[{tag:'div[data-type="callout"]'}]},renderHTML({HTMLAttributes:t}){return["div",L.mergeAttributes(t,{"data-type":"callout"}),0]},addNodeView(){return I.ReactNodeViewRenderer(Fe)}}),le=m.forwardRef((t,s)=>{const[o,r]=m.useState(0),h=c=>{const w=t.items[c];w&&t.command(w)},p=()=>{r((o+t.items.length-1)%t.items.length)},j=()=>{r((o+1)%t.items.length)},i=()=>{h(o)};return m.useEffect(()=>{r(0)},[t.items]),m.useImperativeHandle(s,()=>({onKeyDown:({event:c})=>c.key==="ArrowUp"?(p(),!0):c.key==="ArrowDown"?(j(),!0):c.key==="Enter"?(i(),!0):!1})),t.items.length?e.jsx("div",{className:"bg-obsidian border border-smoke/60 shadow-2xl rounded-xl overflow-hidden py-2 min-w-[240px]",children:t.items.map((c,w)=>{const N=c.icon;return e.jsxs("button",{className:`w-full flex items-center gap-3 px-4 py-2.5 text-left transition-colors
27
+ ${w===o?"bg-amber/10 text-amber":"text-bone hover:bg-charcoal/50 hover:text-amber/80"}`,onClick:()=>h(w),children:[e.jsx("div",{className:"flex items-center justify-center w-8 h-8 rounded-md bg-charcoal/30 border border-smoke/30 shrink-0",children:e.jsx(N,{className:"w-4 h-4"})}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"font-semibold text-sm font-display tracking-wide",children:c.title}),e.jsx("span",{className:"text-xs text-steel",children:c.description})]})]},w)})}):null});le.displayName="CommandList";const Ue=({query:t})=>[{title:"Heading 1",description:"Big section heading.",icon:d.Heading1,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).setNode("heading",{level:1}).run()}},{title:"Heading 2",description:"Medium section heading.",icon:d.Heading2,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).setNode("heading",{level:2}).run()}},{title:"Heading 3",description:"Small section heading.",icon:d.Heading3,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).setNode("heading",{level:3}).run()}},{title:"Bullet List",description:"Create a simple bulleted list.",icon:d.List,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).toggleBulletList().run()}},{title:"Numbered List",description:"Create a list with numbering.",icon:d.ListOrdered,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).toggleOrderedList().run()}},{title:"Quote",description:"Capture a quote.",icon:d.Quote,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).toggleBlockquote().run()}},{title:"Task List",description:"Track tasks with a to-do list.",icon:d.CheckSquare,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).toggleTaskList().run()}},{title:"Code Block",description:"Capture a code snippet.",icon:d.Code,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).toggleCodeBlock().run()}},{title:"Callout",description:"Highlight important information.",icon:d.MessageSquareWarning,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).insertContent({type:"callout",content:[{type:"paragraph"}]}).run()}},{title:"Stash Note",description:"Hidden journalist draft note.",icon:d.Archive,command:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).insertContent({type:"stash",content:[{type:"paragraph"}]}).run()}}].filter(o=>o.title.toLowerCase().includes(t.toLowerCase())).slice(0,10),We=L.Extension.create({name:"slashMenu",addOptions(){return{suggestion:{char:"/",command:({editor:t,range:s,props:o})=>{o.command({editor:t,range:s})}}}},addProseMirrorPlugins(){return[ke.Suggestion({editor:this.editor,...this.options.suggestion,items:Ue,render:()=>{let t,s;return{onStart:o=>{t=new I.ReactRenderer(le,{props:o,editor:o.editor}),o.clientRect&&(s=Ce("body",{getReferenceClientRect:o.clientRect,appendTo:()=>document.body,content:t.element,showOnCreate:!0,interactive:!0,trigger:"manual",placement:"bottom-start"}))},onUpdate(o){t.updateProps(o),o.clientRect&&s[0].setProps({getReferenceClientRect:o.clientRect})},onKeyDown(o){var r;return o.event.key==="Escape"?(s[0].hide(),!0):(r=t.ref)==null?void 0:r.onKeyDown(o)},onExit(){s[0].destroy(),t.destroy()}}}})]}}),Be=De.Underline.extend({addAttributes(){return{color:{default:null,parseHTML:t=>t.style.textDecorationColor||null,renderHTML:t=>t.color?{style:`text-decoration-color: ${t.color};`}:{}}}},addCommands(){return{setUnderline:t=>({commands:s})=>s.setMark(this.name,t),toggleUnderline:t=>({commands:s})=>s.toggleMark(this.name,t),unsetUnderline:()=>({commands:t})=>t.unsetMark(this.name)}}}),Ye=Te.Strike.extend({addAttributes(){return{color:{default:null,parseHTML:t=>t.style.textDecorationColor||null,renderHTML:t=>t.color?{style:`text-decoration-color: ${t.color};`}:{}}}},addCommands(){return{setStrike:t=>({commands:s})=>s.setMark(this.name,t),toggleStrike:t=>({commands:s})=>s.toggleMark(this.name,t),unsetStrike:()=>({commands:t})=>t.unsetMark(this.name)}}}),Ke=ne.createLowlight(ne.common);typeof window<"u"&&ae.addHook("uponSanitizeElement",(t,s)=>{var o;s.tagName==="iframe"&&((t.getAttribute("src")||"").startsWith("https://www.youtube.com/embed/")||(o=t.parentNode)==null||o.removeChild(t))});const ce=({initialContent:t,onChange:s,uploadImage:o,children:r,minHeightClass:h="min-h-[150px]",maxHeightClass:p="max-h-[500px]"})=>{const[j,i]=m.useState(!0),[c,w]=m.useState(!1),[N,y]=m.useState("link"),[C,g]=m.useState(""),b=I.useEditor({extensions:[pe.configure({heading:{levels:[1,2,3]},strike:!1,codeBlock:!1}),Be,Ye,ge.TextStyle,we.Color,ve.configure({types:["heading","paragraph","image","youtube"]}),je.configure({openOnClick:!1,HTMLAttributes:{class:"text-amber hover:text-amber/80 transition-colors underline underline-offset-4 cursor-pointer"}}),Re.configure({inline:!1}),_e.configure({inline:!1}),Pe,He,qe,Ve,Ne,fe.configure({lowlight:Ke}),he,be.configure({nested:!0}),We,Ee.configure({dragHandleWidth:20,scrollTreshold:100})],content:typeof t=="string"?t?ae.sanitize(t,{ADD_TAGS:["iframe"],ADD_ATTR:["allowfullscreen","frameborder","src"]}):"<p></p>":t,onUpdate:({editor:D})=>{i(!1);const f=D.getJSON(),k=D.getHTML();s&&s(f,k),setTimeout(()=>i(!0),800)},editorProps:{attributes:{class:"prose prose-invert max-w-none focus:outline-none min-h-full p-4 sm:p-6 md:p-8 pb-16 md:pb-24 text-bone font-body leading-relaxed prose-p:my-1 prose-headings:my-4"}}});return m.useEffect(()=>{const D=async f=>{const k=f,{file:S,position:T}=k.detail;if(S)if(o){i(!1);try{const a=await o(S);T!==void 0?b==null||b.chain().insertContentAt(T,{type:"image",attrs:{src:a}}).focus().run():b==null||b.chain().focus().insertContent({type:"image",attrs:{src:a}}).run()}catch(a){console.error("Image upload failed",a)}finally{i(!0)}}else{const a=URL.createObjectURL(S);T!==void 0?b==null||b.chain().insertContentAt(T,{type:"image",attrs:{src:a}}).focus().run():b==null||b.chain().focus().insertContent({type:"image",attrs:{src:a}}).run()}};return window.addEventListener("axiom-image-upload",D),()=>window.removeEventListener("axiom-image-upload",D)},[b,o]),e.jsx(ie.Provider,{value:{editor:b,isSaved:j,setIsSaved:i,mediaModalOpen:c,setMediaModalOpen:w,mediaModalType:N,setMediaModalType:y,mediaModalInput:C,setMediaModalInput:g,uploadImage:o,minHeightClass:h,maxHeightClass:p},children:r})},E=m.forwardRef(({active:t,icon:s,label:o,variant:r="icon",className:h="",...p},j)=>{const i="transition-all rounded-lg shrink-0 flex items-center justify-center gap-2",c=r==="icon"?"p-2.5":"px-3 py-2 text-xs font-semibold",w=t?"axiom-button-active":"axiom-button-inactive",N=p.disabled?"opacity-30 cursor-not-allowed":"";return e.jsxs("button",{ref:j,type:"button",className:`${i} ${c} ${w} ${N} ${h}`,...p,children:[s,o&&e.jsx("span",{className:"hidden lg:inline",children:o})]})});E.displayName="ToolbarButton";const de=()=>{const{editor:t,isSaved:s,setMediaModalOpen:o,setMediaModalType:r,setMediaModalInput:h}=Y(),[p,j]=m.useState(!1),i=m.useRef(null),[c,w]=m.useState(!1),N=m.useRef(null),[y,C]=m.useState(!1),g=m.useRef(null);if(m.useEffect(()=>{const f=k=>{i.current&&!i.current.contains(k.target)&&j(!1),N.current&&!N.current.contains(k.target)&&w(!1),g.current&&!g.current.contains(k.target)&&C(!1)};return document.addEventListener("mousedown",f),()=>document.removeEventListener("mousedown",f)},[]),!t)return null;const b=f=>{h(""),r(f),o(!0)},D=()=>{const f=t.state.selection.from,k=document.createElement("input");k.type="file",k.accept="image/*",k.onchange=async S=>{var a;const T=(a=S.target.files)==null?void 0:a[0];T&&window.dispatchEvent(new CustomEvent("axiom-image-upload",{detail:{file:T,position:f}}))},k.click()};return e.jsx("div",{className:"-mx-1 px-1 mb-2",children:e.jsxs("div",{className:"flex items-center gap-1 p-2 rounded-xl sticky top-4 z-20 shadow-xl shadow-black/20 flex-wrap axiom-bg axiom-border",children:[e.jsxs("div",{className:"flex items-center gap-0.5 mr-1",children:[e.jsx(E,{icon:e.jsx(d.Undo,{className:"w-4 h-4"}),title:"Undo",onClick:()=>t.chain().focus().undo().run(),disabled:!t.can().undo()}),e.jsx(E,{icon:e.jsx(d.Redo,{className:"w-4 h-4"}),title:"Redo",onClick:()=>t.chain().focus().redo().run(),disabled:!t.can().redo()})]}),e.jsx("div",{className:"w-px h-6 mx-1 axiom-border-separator"}),e.jsx(E,{icon:e.jsx(d.Bold,{className:"w-4 h-4"}),title:"Bold",active:t.isActive("bold"),onClick:()=>t.chain().focus().toggleBold().run()}),e.jsx(E,{icon:e.jsx(d.Italic,{className:"w-4 h-4"}),title:"Italic",active:t.isActive("italic"),onClick:()=>t.chain().focus().toggleItalic().run()}),e.jsxs("div",{ref:N,className:"relative",children:[e.jsx(E,{icon:e.jsx(d.Underline,{className:"w-4 h-4"}),title:"Underline",active:t.isActive("underline"),onClick:()=>{t.isActive("underline")?t.chain().focus().unsetUnderline().run():w(!c)}}),c&&e.jsxs("div",{className:"absolute top-full left-0 mt-2 p-3 rounded-xl shadow-2xl grid grid-cols-4 gap-2 z-30 min-w-[120px] axiom-bg-card axiom-border",children:[["#f9761f","#ffffff","#94a3b8","#ef4444","#22c55e","#3b82f6","#a855f7","#eab308"].map(f=>e.jsx("button",{type:"button",onClick:()=>{t.chain().focus().setUnderline({color:f}).run(),w(!1)},className:"w-6 h-6 rounded-full border border-white/10 hover:scale-110 active:scale-95 transition-all shadow-md cursor-pointer",style:{backgroundColor:f},title:f},f)),e.jsx("button",{type:"button",onClick:()=>{t.chain().focus().unsetUnderline().run(),w(!1)},className:"w-6 h-6 rounded-full border border-white/20 hover:scale-110 active:scale-95 transition-all flex items-center justify-center bg-transparent cursor-pointer text-red-500 font-bold text-xs",title:"Remove Underline",style:{display:"flex",alignItems:"center",justifyContent:"center"},children:"/"})]})]}),e.jsxs("div",{ref:g,className:"relative",children:[e.jsx(E,{icon:e.jsx(d.Strikethrough,{className:"w-4 h-4"}),title:"Strikethrough",active:t.isActive("strike"),onClick:()=>{t.isActive("strike")?t.chain().focus().unsetStrike().run():C(!y)}}),y&&e.jsxs("div",{className:"absolute top-full left-0 mt-2 p-3 rounded-xl shadow-2xl grid grid-cols-4 gap-2 z-30 min-w-[120px] axiom-bg-card axiom-border",children:[["#f9761f","#ffffff","#94a3b8","#ef4444","#22c55e","#3b82f6","#a855f7","#eab308"].map(f=>e.jsx("button",{type:"button",onClick:()=>{t.chain().focus().setStrike({color:f}).run(),C(!1)},className:"w-6 h-6 rounded-full border border-white/10 hover:scale-110 active:scale-95 transition-all shadow-md cursor-pointer",style:{backgroundColor:f},title:f},f)),e.jsx("button",{type:"button",onClick:()=>{t.chain().focus().unsetStrike().run(),C(!1)},className:"w-6 h-6 rounded-full border border-white/20 hover:scale-110 active:scale-95 transition-all flex items-center justify-center bg-transparent cursor-pointer text-red-500 font-bold text-xs",title:"Remove Strikethrough",style:{display:"flex",alignItems:"center",justifyContent:"center"},children:"/"})]})]}),e.jsxs("div",{ref:i,className:"relative",children:[e.jsx(E,{icon:e.jsx(d.Highlighter,{className:"w-4 h-4"}),title:"Text Color",active:!!t.getAttributes("textStyle").color,onClick:()=>{t.getAttributes("textStyle").color?t.chain().focus().unsetColor().run():j(!p)}}),p&&e.jsxs("div",{className:"absolute top-full left-0 mt-2 p-3 rounded-xl shadow-2xl grid grid-cols-4 gap-2 z-30 min-w-[120px] axiom-bg-card axiom-border",children:[["#f9761f","#ffffff","#94a3b8","#ef4444","#22c55e","#3b82f6","#a855f7","#eab308"].map(f=>e.jsx("button",{type:"button",onClick:()=>{t.chain().focus().setColor(f).run(),j(!1)},className:"w-6 h-6 rounded-full border border-white/10 hover:scale-110 active:scale-95 transition-all shadow-md cursor-pointer",style:{backgroundColor:f},title:f},f)),e.jsx("button",{type:"button",onClick:()=>{t.chain().focus().unsetColor().run(),j(!1)},className:"w-6 h-6 rounded-full border border-white/20 hover:scale-110 active:scale-95 transition-all flex items-center justify-center bg-transparent cursor-pointer text-red-500 font-bold text-xs",title:"Remove Text Color",style:{display:"flex",alignItems:"center",justifyContent:"center"},children:"/"})]})]}),e.jsx(E,{icon:e.jsx(d.Link,{className:"w-4 h-4"}),title:"Link",active:t.isActive("link"),onClick:()=>t.getAttributes("link").href?t.chain().focus().unsetLink().run():b("link")}),e.jsx("div",{className:"w-px h-6 mx-1 axiom-border-separator"}),e.jsx(E,{variant:"text",label:"H1",title:"Heading 1",active:t.isActive("heading",{level:1}),onClick:()=>t.chain().focus().toggleHeading({level:1}).run()}),e.jsx(E,{variant:"text",label:"H2",title:"Heading 2",active:t.isActive("heading",{level:2}),onClick:()=>t.chain().focus().toggleHeading({level:2}).run()}),e.jsx(E,{variant:"text",label:"H3",title:"Heading 3",active:t.isActive("heading",{level:3}),onClick:()=>t.chain().focus().toggleHeading({level:3}).run()}),e.jsx(E,{icon:e.jsx(d.Quote,{className:"w-4 h-4"}),title:"Blockquote",active:t.isActive("blockquote"),onClick:()=>t.chain().focus().toggleBlockquote().run()}),e.jsx(E,{icon:e.jsx(d.Code,{className:"w-4 h-4"}),title:"Code Block",active:t.isActive("codeBlock"),onClick:()=>t.chain().focus().toggleCodeBlock().run()}),e.jsx(E,{icon:e.jsx(d.MessageSquareWarning,{className:"w-4 h-4"}),title:"Callout",active:t.isActive("callout"),onClick:()=>t.chain().focus().insertContent({type:"callout",content:[{type:"paragraph"}]}).run()}),e.jsx("div",{className:"w-px h-6 mx-1 axiom-border-separator"}),e.jsx(E,{icon:e.jsx(d.List,{className:"w-4 h-4"}),title:"Bullet List",active:t.isActive("bulletList"),onClick:()=>t.chain().focus().toggleBulletList().run()}),e.jsx(E,{icon:e.jsx(d.ListOrdered,{className:"w-4 h-4"}),title:"Numbered List",active:t.isActive("orderedList"),onClick:()=>t.chain().focus().toggleOrderedList().run()}),e.jsx(E,{icon:e.jsx(d.CheckSquare,{className:"w-4 h-4"}),title:"Task List",active:t.isActive("taskList"),onClick:()=>t.chain().focus().toggleTaskList().run()}),e.jsx("div",{className:"w-px h-6 mx-1 axiom-border-separator"}),e.jsx(E,{icon:e.jsx(d.AlignLeft,{className:"w-4 h-4"}),title:"Align Left",active:t.isActive({textAlign:"left"}),onClick:()=>t.chain().focus().setTextAlign("left").run()}),e.jsx(E,{icon:e.jsx(d.AlignCenter,{className:"w-4 h-4"}),title:"Align Center",active:t.isActive({textAlign:"center"}),onClick:()=>t.chain().focus().setTextAlign("center").run()}),e.jsx(E,{icon:e.jsx(d.AlignRight,{className:"w-4 h-4"}),title:"Align Right",active:t.isActive({textAlign:"right"}),onClick:()=>t.chain().focus().setTextAlign("right").run()}),e.jsx("div",{className:"w-px h-6 mx-1 axiom-border-separator"}),e.jsx(E,{icon:e.jsx(d.ImagePlus,{className:"w-4 h-4"}),label:"Image",title:"Insert Image",onClick:D}),e.jsx(E,{icon:e.jsx(d.Video,{className:"w-4 h-4"}),label:"Video",title:"Insert Video",onClick:()=>b("video")}),e.jsx(E,{icon:e.jsx(d.MessageSquare,{className:"w-4 h-4"}),label:"Tweet",title:"Insert Tweet",onClick:()=>b("tweet")}),e.jsx(E,{icon:e.jsx(d.Camera,{className:"w-4 h-4"}),label:"Instagram",title:"Insert Instagram",onClick:()=>b("instagram")}),e.jsx("div",{className:"flex-1"}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("div",{className:"text-xs font-medium tracking-wide axiom-text-muted",children:[t.storage.characterCount.words()," words"]}),e.jsx("div",{className:"flex items-center gap-2 px-3 py-1 bg-white/5 rounded-lg border border-white/5",children:s?e.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] text-emerald-400 font-semibold uppercase tracking-wider",children:[e.jsx(d.CheckCircle2,{className:"w-3 h-3"}),e.jsx("span",{children:"Saved"})]}):e.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-wider axiom-primary-text-muted",children:[e.jsx(d.CloudUpload,{className:"w-3 h-3 animate-pulse"}),e.jsx("span",{children:"Syncing"})]})})]})]})})},ue=()=>{const{editor:t}=Y();return t?e.jsx("div",{className:"axiom-editor-canvas relative rounded-xl overflow-y-auto overflow-x-hidden shadow-inner transition-colors duration-300 custom-scrollbar axiom-editor-fixed-size min-h-0 axiom-bg axiom-text axiom-border",children:e.jsx(I.EditorContent,{editor:t,className:"min-h-full"})}):null},xe=()=>{const{editor:t,mediaModalOpen:s,setMediaModalOpen:o,mediaModalType:r,mediaModalInput:h,setMediaModalInput:p}=Y(),j=m.useCallback(()=>{const i=h.trim();if(!i||!t){o(!1);return}if(r==="link"){let c=i;!/^https?:\/\//i.test(c)&&!/^mailto:/i.test(c)&&!/^tel:/i.test(c)&&(c="https://"+c),t.chain().focus().extendMarkRange("link").setLink({href:c}).run()}else r==="video"?t.chain().focus().setYoutubeVideo({src:i}).run():r==="tweet"?t.chain().focus().insertContent({type:"tweet",attrs:{url:i}}).run():r==="instagram"&&t.chain().focus().insertContent({type:"instagram",attrs:{url:i}}).run();o(!1),p("")},[h,r,t,o,p]);return s?e.jsx("div",{className:"fixed inset-0 z-[9999] bg-black/80 flex items-center justify-center p-4 backdrop-blur-sm",children:e.jsxs("div",{className:"bg-obsidian border border-smoke/60 p-5 md:p-6 rounded-2xl w-full max-w-md shadow-2xl mx-4 sm:mx-0",children:[e.jsxs("h3",{className:"text-bone font-display font-semibold mb-4",children:[r==="link"&&"Insert Hyperlink",r==="video"&&"Insert YouTube Embed",r==="tweet"&&"Insert X / Twitter Embed",r==="instagram"&&"Insert Instagram Embed"]}),e.jsx("input",{type:"text",value:h,onChange:i=>p(i.target.value),placeholder:r==="link"?"https://example.com":r==="video"?"https://youtube.com/watch?v=...":r==="tweet"?"https://x.com/username/status/...":"https://instagram.com/reel/...",className:"w-full bg-charcoal/30 border border-smoke/60 rounded-xl px-4 py-3 text-bone focus:outline-none focus:border-amber mb-6 transition-colors text-sm",autoFocus:!0,onKeyDown:i=>{i.key==="Enter"?(i.preventDefault(),j()):i.key==="Escape"&&o(!1)}}),e.jsxs("div",{className:"flex justify-end gap-3",children:[e.jsx("button",{type:"button",onClick:()=>o(!1),className:"px-5 py-2.5 text-steel hover:text-bone text-sm font-medium transition-colors",children:"Cancel"}),e.jsxs("button",{type:"button",onClick:j,className:"px-5 py-2.5 bg-amber hover:bg-amber/90 text-obsidian font-semibold rounded-xl text-sm transition-all shadow-[0_0_15px_rgba(255,191,0,0.15)]",children:[r==="link"&&"Insert Link",r==="video"&&"Insert Video",r==="tweet"&&"Insert Tweet",r==="instagram"&&"Insert Instagram"]})]})]})}):null},Je=({initialContent:t,onChange:s,uploadImage:o,minHeightClass:r,maxHeightClass:h})=>e.jsx(ce,{initialContent:t,onChange:s,uploadImage:o,minHeightClass:r,maxHeightClass:h,children:e.jsxs("div",{className:"axiom-editor-wrapper flex flex-col gap-4",children:[e.jsx(de,{}),e.jsx(ue,{}),e.jsx(xe,{})]})}),X=(t,s)=>{var p,j;if(t.type==="doc")return e.jsx(e.Fragment,{children:(p=t.content)==null?void 0:p.map((i,c)=>X(i,c))});if(t.type==="text"){let i=t.text||"";return t.marks&&t.marks.forEach(c=>{var w,N,y,C;if(c.type==="bold"&&(i=e.jsx("strong",{children:i},c.type)),c.type==="italic"&&(i=e.jsx("em",{children:i},c.type)),c.type==="underline"){const g=(w=c.attrs)==null?void 0:w.color;i=e.jsx("u",{style:g?{textDecorationColor:g}:{},children:i},c.type)}if(c.type==="strike"){const g=(N=c.attrs)==null?void 0:N.color;i=e.jsx("s",{style:g?{textDecorationColor:g}:{},children:i},c.type)}if(c.type==="textStyle"){const g=(y=c.attrs)==null?void 0:y.color;g&&(i=e.jsx("span",{style:{color:g},children:i},c.type))}if(c.type==="link"){const g=(C=c.attrs)==null?void 0:C.href;g&&(i=e.jsx("a",{href:g,target:"_blank",rel:"noopener noreferrer",className:"text-amber hover:text-amber/80 transition-colors underline underline-offset-4",children:i},c.type))}}),e.jsx(m.Fragment,{children:i},s)}const o=(j=t.content)==null?void 0:j.map((i,c)=>X(i,c)),r=t.attrs||{},h=r.textAlign?{textAlign:r.textAlign}:{};switch(t.type){case"paragraph":return e.jsx("p",{style:h,children:o},s);case"heading":{const i=`h${r.level||1}`;return e.jsx(i,{style:h,children:o},s)}case"blockquote":return e.jsx("blockquote",{className:"border-l-4 border-amber/50 pl-4 py-1 italic bg-charcoal/30 rounded-r-lg",children:o},s);case"bulletList":return e.jsx("ul",{className:"list-disc pl-6 marker:text-amber",children:o},s);case"orderedList":return e.jsx("ol",{className:"list-decimal pl-6 marker:text-amber",children:o},s);case"listItem":return e.jsx("li",{children:o},s);case"image":{const i=r.align||"center",c=r.width||"100%";let w="items-center mx-auto";return i==="left"&&(w="items-start mr-auto ml-0"),i==="right"&&(w="items-end ml-auto mr-0"),e.jsxs("div",{className:`flex flex-col my-8 w-full ${w}`,children:[r.caption&&r.captionPosition==="above"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mb-3 uppercase tracking-widest font-medium px-2",children:r.caption}),e.jsx("img",{src:r.src,alt:r.alt||"",title:r.title,style:{width:c,minWidth:"150px"},className:"rounded-xl object-cover shadow-2xl border border-smoke/30 max-w-full"}),r.caption&&r.captionPosition==="below"&&e.jsx("p",{className:"text-steel text-xs md:text-sm italic mt-3 uppercase tracking-widest font-medium px-2",children:r.caption})]},s)}case"youtube":return e.jsx("div",{className:"my-8 aspect-video rounded-2xl overflow-hidden shadow-[0_0_40px_rgba(0,0,0,0.5)] border border-smoke/30 bg-black relative",children:e.jsx("iframe",{src:r.src,className:"absolute inset-0 w-full h-full border-0",allowFullScreen:!0})},s);case"tweet":return e.jsx("div",{className:"my-6",children:e.jsx("blockquote",{className:"twitter-tweet",children:e.jsx("a",{href:r.url})})},s);case"instagram":return e.jsx("div",{className:"my-6",children:e.jsx("blockquote",{className:"instagram-media","data-instgrm-permalink":r.url})},s);case"callout":{const i={info:"bg-blue-500/10 border-blue-500/30 text-blue-100",warning:"bg-amber-500/10 border-amber-500/30 text-amber-100",success:"bg-emerald-500/10 border-emerald-500/30 text-emerald-100",error:"bg-red-500/10 border-red-500/30 text-red-100"},c=i[r.type]||i.info;return e.jsxs("div",{className:`my-6 flex gap-4 p-4 md:p-5 rounded-2xl border shadow-md ${c}`,children:[e.jsx("div",{className:"text-2xl shrink-0 mt-0.5 select-none",children:r.emoji}),e.jsx("div",{className:"flex-1 font-medium leading-relaxed",children:o})]},s)}case"codeBlock":return e.jsx("pre",{className:"bg-obsidian border border-smoke/30 p-4 rounded-xl overflow-x-auto text-sm my-6 font-mono text-steel",children:e.jsx("code",{className:`language-${r.language||"plaintext"}`,children:o})},s);case"taskList":return e.jsx("ul",{className:"list-none pl-0 my-6 space-y-2","data-type":"taskList",children:o},s);case"taskItem":return e.jsxs("li",{className:"flex items-start gap-3","data-type":"taskItem",children:[e.jsx("input",{type:"checkbox",className:"mt-1.5 w-4 h-4 rounded border-smoke/30 bg-charcoal text-amber accent-amber cursor-not-allowed",checked:r.checked,readOnly:!0}),e.jsx("div",{className:"flex-1 text-bone",children:o})]},s);case"stash":return null;default:return e.jsx(m.Fragment,{children:o},s)}},Ge=({content:t})=>e.jsx("div",{className:"prose prose-invert max-w-none text-bone font-body leading-relaxed prose-p:my-1 prose-headings:my-4",children:X(t)});exports.AxiomContent=ue;exports.AxiomEditor=Je;exports.AxiomEditorProvider=ce;exports.AxiomJSONRenderer=Ge;exports.AxiomToolbar=de;exports.MediaMenu=xe;exports.useAxiomEditor=Y;