@select-org/select-post-builder 1.1.43 → 1.1.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -309,6 +309,17 @@ declare module '@tiptap/core' {
309
309
  }
310
310
 
311
311
 
312
+ declare module '@tiptap/core' {
313
+ interface Commands<ReturnType> {
314
+ poll: {
315
+ insertPoll: (attrs: {
316
+ choices: PollChoiceItem[];
317
+ }) => ReturnType;
318
+ };
319
+ }
320
+ }
321
+
322
+
312
323
  declare module '@tiptap/core' {
313
324
  interface Commands<ReturnType> {
314
325
  customLink: {
@@ -353,17 +364,6 @@ declare module '@tiptap/core' {
353
364
  }
354
365
 
355
366
 
356
- declare module '@tiptap/core' {
357
- interface Commands<ReturnType> {
358
- poll: {
359
- insertPoll: (attrs: {
360
- choices: PollChoiceItem[];
361
- }) => ReturnType;
362
- };
363
- }
364
- }
365
-
366
-
367
367
  declare module '@tiptap/core' {
368
368
  interface Commands<ReturnType> {
369
369
  smartMediaUpload: {
@@ -235,7 +235,7 @@ Defaulting to \`null\`.`}var Root$1=Progress$1,Indicator=ProgressIndicator;funct
235
235
  `,"Instead, pass the .innerHTML of the element, or use a function that","returns a cloned version of the element instead.",`
236
236
 
237
237
  `,`1) content: element.innerHTML
238
- `,"2) content: () => element.cloneNode(true)"].join(" "))}var b=m.reduce(function(S,E){var T=E&&createTippy(E,p);return T&&S.push(T),S},[]);return isElement(u)?b[0]:b}tippy.defaultProps=defaultProps;tippy.setDefaultProps=setDefaultProps;tippy.currentInput=currentInput;Object.assign({},applyStyles,{effect:function u(n){var d=n.state,p={popper:{position:d.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(d.elements.popper.style,p.popper),d.styles=p,d.elements.arrow&&Object.assign(d.elements.arrow.style,p.arrow)}});tippy.setDefaultProps({render});function getSuggestionOptions({editor:u,overrideSuggestionOptions:n,extensionName:d,char:p="@"}){return{editor:u,char:p,pluginKey:new PluginKey,command:({editor:m,range:g,props:y})=>{const E=m.getText()?.replace(WHITESPACE_REGEX," ")?.trim()?.lastIndexOf(p);m.view.state.selection.$to.nodeAfter?.text?.startsWith(" ")&&(g.to+=1),m.chain().focus().insertContentAt(g,[{type:d,attrs:{...y,mentionSuggestionChar:p,matchStartPosition:E}},{type:"text",text:" "}]).run(),m.view.dom.ownerDocument.defaultView?.getSelection()?.collapseToEnd()},allow:({state:m,range:g})=>{const y=m.doc.resolve(g.from),b=m.schema.nodes[d];return!!y.parent.type.contentMatch.matchType(b)},...n}}function getSuggestions(u){return(u.options.suggestions.length?u.options.suggestions:[u.options.suggestion]).map(n=>getSuggestionOptions({editor:u.editor,overrideSuggestionOptions:n,extensionName:u.name,char:n.char}))}function getSuggestionFromChar(u,n){const d=getSuggestions(u),p=d.find(m=>m.char===n);return p||(d.length?d[0]:null)}const Mention=Node3.create({name:"mention",priority:101,addOptions(){return{HTMLAttributes:{},renderText({node:u,suggestion:n}){return`${n?.char??"@"}${u.attrs.label??u.attrs.id}`},deleteTriggerWithBackspace:!1,renderHTML({options:u,node:n,suggestion:d}){return["span",mergeAttributes(this.HTMLAttributes,u.HTMLAttributes),`${d?.char??"@"}${n.attrs.label??n.attrs.id}`]},suggestions:[],suggestion:{}}},group:"inline",inline:!0,selectable:!1,atom:!0,addAttributes(){return{id:{default:null,parseHTML:u=>u.getAttribute("data-mention-id"),renderHTML:u=>u.id?{"data-mention-id":u.id}:{}},label:{default:null,parseHTML:u=>u.getAttribute("data-mention-label"),renderHTML:u=>u.label?{"data-mention-label":u.label}:{}},mentionSuggestionChar:{default:"@",parseHTML:u=>u.getAttribute("data-mention-suggestion-char"),renderHTML:u=>({"data-mention-suggestion-char":u.mentionSuggestionChar})},avatar:{default:null,parseHTML:u=>u.getAttribute("data-mention-avatar"),renderHTML:u=>u.avatar?{"data-mention-avatar":u.avatar}:{}},inThisThread:{default:1,parseHTML:u=>u.getAttribute("data-mention-in-this-thread"),renderHTML:u=>u.inThisThread?{"data-mention-in-this-thread":u.inThisThread}:{}},name:{default:null,parseHTML:u=>u.getAttribute("data-mention-name"),renderHTML:u=>u.name?{"data-mention-name":u.name}:{}},selectId:{default:null,parseHTML:u=>u.getAttribute("data-mention-select-id"),renderHTML:u=>u.selectId?{"data-mention-select-id":u.selectId}:{}},type:{default:null,parseHTML:u=>u.getAttribute("data-mention-type"),renderHTML:u=>u.type?{"data-mention-type":u.type}:{}},from:{default:PostType.Post,parseHTML:u=>u.getAttribute("data-mention-from"),renderHTML:u=>u.from?{"data-mention-from":u.from}:{}},isCrossExposureEnable:{default:null,parseHTML:u=>u.getAttribute("data-mention-is-cross-exposure-enable"),renderHTML:u=>u.isCrossExposureEnable?{"data-mention-is-cross-exposure-enable":u.isCrossExposureEnable}:{}},matchStartPosition:{default:-1,parseHTML:u=>u.getAttribute("data-mention-match-start-position"),renderHTML:u=>u.matchStartPosition?{"data-mention-match-start-position":u.matchStartPosition}:{}}}},parseHTML(){return[{tag:'span[data-type="mention"]'},{tag:'a[data-type="mention"]'}]},renderHTML({node:u,HTMLAttributes:n}){const d=getSuggestionFromChar(this,u.attrs.mentionSuggestionChar);if(this.options.renderLabel!==void 0)return["span",mergeAttributes({"data-type":this.name},this.options.HTMLAttributes,n),this.options.renderLabel({options:this.options,node:u,suggestion:d})];const p={...this.options},m=this.editor?.isFocused;p.HTMLAttributes=mergeAttributes({"data-type":this.name},this.options.HTMLAttributes,n);const g=this.options.renderHTML({options:p,node:u,suggestion:d,isFocused:m});return typeof g=="string"?["span",mergeAttributes({"data-type":this.name},this.options.HTMLAttributes,n),g]:g},renderText({node:u}){const n={options:this.options,node:u,suggestion:getSuggestionFromChar(this,u.attrs.mentionSuggestionChar)};return this.options.renderLabel!==void 0?this.options.renderLabel(n):this.options.renderText(n)},addKeyboardShortcuts(){return{Backspace:()=>this.editor.commands.command(({tr:u,state:n})=>{let d=!1;const{selection:p}=n,{empty:m,anchor:g}=p;if(!m)return!1;let y=new Node$1,b=0;return n.doc.nodesBetween(g-1,g,(S,E)=>{if(S.type.name===this.name)return d=!0,y=S,b=E,!1}),d&&u.insertText(this.options.deleteTriggerWithBackspace?"":y.attrs.mentionSuggestionChar,b,b+y.nodeSize),d})}},addProseMirrorPlugins(){return getSuggestions(this).map(Suggestion)}});var removeAccents$1={exports:{}},hasRequiredRemoveAccents;function requireRemoveAccents(){if(hasRequiredRemoveAccents)return removeAccents$1.exports;hasRequiredRemoveAccents=1;var u={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",Ấ:"A",Ắ:"A",Ẳ:"A",Ẵ:"A",Ặ:"A",Æ:"AE",Ầ:"A",Ằ:"A",Ȃ:"A",Ả:"A",Ạ:"A",Ẩ:"A",Ẫ:"A",Ậ:"A",Ç:"C",Ḉ:"C",È:"E",É:"E",Ê:"E",Ë:"E",Ế:"E",Ḗ:"E",Ề:"E",Ḕ:"E",Ḝ:"E",Ȇ:"E",Ẻ:"E",Ẽ:"E",Ẹ:"E",Ể:"E",Ễ:"E",Ệ:"E",Ì:"I",Í:"I",Î:"I",Ï:"I",Ḯ:"I",Ȋ:"I",Ỉ:"I",Ị:"I",Ð:"D",Ñ:"N",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",Ố:"O",Ṍ:"O",Ṓ:"O",Ȏ:"O",Ỏ:"O",Ọ:"O",Ổ:"O",Ỗ:"O",Ộ:"O",Ờ:"O",Ở:"O",Ỡ:"O",Ớ:"O",Ợ:"O",Ù:"U",Ú:"U",Û:"U",Ü:"U",Ủ:"U",Ụ:"U",Ử:"U",Ữ:"U",Ự:"U",Ý:"Y",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",ấ:"a",ắ:"a",ẳ:"a",ẵ:"a",ặ:"a",æ:"ae",ầ:"a",ằ:"a",ȃ:"a",ả:"a",ạ:"a",ẩ:"a",ẫ:"a",ậ:"a",ç:"c",ḉ:"c",è:"e",é:"e",ê:"e",ë:"e",ế:"e",ḗ:"e",ề:"e",ḕ:"e",ḝ:"e",ȇ:"e",ẻ:"e",ẽ:"e",ẹ:"e",ể:"e",ễ:"e",ệ:"e",ì:"i",í:"i",î:"i",ï:"i",ḯ:"i",ȋ:"i",ỉ:"i",ị:"i",ð:"d",ñ:"n",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",ố:"o",ṍ:"o",ṓ:"o",ȏ:"o",ỏ:"o",ọ:"o",ổ:"o",ỗ:"o",ộ:"o",ờ:"o",ở:"o",ỡ:"o",ớ:"o",ợ:"o",ù:"u",ú:"u",û:"u",ü:"u",ủ:"u",ụ:"u",ử:"u",ữ:"u",ự:"u",ý:"y",ÿ:"y",Ā:"A",ā:"a",Ă:"A",ă:"a",Ą:"A",ą:"a",Ć:"C",ć:"c",Ĉ:"C",ĉ:"c",Ċ:"C",ċ:"c",Č:"C",č:"c",C̆:"C",c̆:"c",Ď:"D",ď:"d",Đ:"D",đ:"d",Ē:"E",ē:"e",Ĕ:"E",ĕ:"e",Ė:"E",ė:"e",Ę:"E",ę:"e",Ě:"E",ě:"e",Ĝ:"G",Ǵ:"G",ĝ:"g",ǵ:"g",Ğ:"G",ğ:"g",Ġ:"G",ġ:"g",Ģ:"G",ģ:"g",Ĥ:"H",ĥ:"h",Ħ:"H",ħ:"h",Ḫ:"H",ḫ:"h",Ĩ:"I",ĩ:"i",Ī:"I",ī:"i",Ĭ:"I",ĭ:"i",Į:"I",į:"i",İ:"I",ı:"i",IJ:"IJ",ij:"ij",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",Ḱ:"K",ḱ:"k",K̆:"K",k̆:"k",Ĺ:"L",ĺ:"l",Ļ:"L",ļ:"l",Ľ:"L",ľ:"l",Ŀ:"L",ŀ:"l",Ł:"l",ł:"l",Ḿ:"M",ḿ:"m",M̆:"M",m̆:"m",Ń:"N",ń:"n",Ņ:"N",ņ:"n",Ň:"N",ň:"n",ʼn:"n",N̆:"N",n̆:"n",Ō:"O",ō:"o",Ŏ:"O",ŏ:"o",Ő:"O",ő:"o",Œ:"OE",œ:"oe",P̆:"P",p̆:"p",Ŕ:"R",ŕ:"r",Ŗ:"R",ŗ:"r",Ř:"R",ř:"r",R̆:"R",r̆:"r",Ȓ:"R",ȓ:"r",Ś:"S",ś:"s",Ŝ:"S",ŝ:"s",Ş:"S",Ș:"S",ș:"s",ş:"s",Š:"S",š:"s",Ţ:"T",ţ:"t",ț:"t",Ț:"T",Ť:"T",ť:"t",Ŧ:"T",ŧ:"t",T̆:"T",t̆:"t",Ũ:"U",ũ:"u",Ū:"U",ū:"u",Ŭ:"U",ŭ:"u",Ů:"U",ů:"u",Ű:"U",ű:"u",Ų:"U",ų:"u",Ȗ:"U",ȗ:"u",V̆:"V",v̆:"v",Ŵ:"W",ŵ:"w",Ẃ:"W",ẃ:"w",X̆:"X",x̆:"x",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Y̆:"Y",y̆:"y",Ź:"Z",ź:"z",Ż:"Z",ż:"z",Ž:"Z",ž:"z",ſ:"s",ƒ:"f",Ơ:"O",ơ:"o",Ư:"U",ư:"u",Ǎ:"A",ǎ:"a",Ǐ:"I",ǐ:"i",Ǒ:"O",ǒ:"o",Ǔ:"U",ǔ:"u",Ǖ:"U",ǖ:"u",Ǘ:"U",ǘ:"u",Ǚ:"U",ǚ:"u",Ǜ:"U",ǜ:"u",Ứ:"U",ứ:"u",Ṹ:"U",ṹ:"u",Ǻ:"A",ǻ:"a",Ǽ:"AE",ǽ:"ae",Ǿ:"O",ǿ:"o",Þ:"TH",þ:"th",Ṕ:"P",ṕ:"p",Ṥ:"S",ṥ:"s",X́:"X",x́:"x",Ѓ:"Г",ѓ:"г",Ќ:"К",ќ:"к",A̋:"A",a̋:"a",E̋:"E",e̋:"e",I̋:"I",i̋:"i",Ǹ:"N",ǹ:"n",Ồ:"O",ồ:"o",Ṑ:"O",ṑ:"o",Ừ:"U",ừ:"u",Ẁ:"W",ẁ:"w",Ỳ:"Y",ỳ:"y",Ȁ:"A",ȁ:"a",Ȅ:"E",ȅ:"e",Ȉ:"I",ȉ:"i",Ȍ:"O",ȍ:"o",Ȑ:"R",ȑ:"r",Ȕ:"U",ȕ:"u",B̌:"B",b̌:"b",Č̣:"C",č̣:"c",Ê̌:"E",ê̌:"e",F̌:"F",f̌:"f",Ǧ:"G",ǧ:"g",Ȟ:"H",ȟ:"h",J̌:"J",ǰ:"j",Ǩ:"K",ǩ:"k",M̌:"M",m̌:"m",P̌:"P",p̌:"p",Q̌:"Q",q̌:"q",Ř̩:"R",ř̩:"r",Ṧ:"S",ṧ:"s",V̌:"V",v̌:"v",W̌:"W",w̌:"w",X̌:"X",x̌:"x",Y̌:"Y",y̌:"y",A̧:"A",a̧:"a",B̧:"B",b̧:"b",Ḑ:"D",ḑ:"d",Ȩ:"E",ȩ:"e",Ɛ̧:"E",ɛ̧:"e",Ḩ:"H",ḩ:"h",I̧:"I",i̧:"i",Ɨ̧:"I",ɨ̧:"i",M̧:"M",m̧:"m",O̧:"O",o̧:"o",Q̧:"Q",q̧:"q",U̧:"U",u̧:"u",X̧:"X",x̧:"x",Z̧:"Z",z̧:"z",й:"и",Й:"И",ё:"е",Ё:"Е"},n=Object.keys(u).join("|"),d=new RegExp(n,"g"),p=new RegExp(n,"");function m(b){return u[b]}var g=function(b){return b.replace(d,m)},y=function(b){return!!b.match(p)};return removeAccents$1.exports=g,removeAccents$1.exports.has=y,removeAccents$1.exports.remove=g,removeAccents$1.exports}var removeAccentsExports=requireRemoveAccents();const removeAccents=getDefaultExportFromCjs(removeAccentsExports);const rankings={CASE_SENSITIVE_EQUAL:7,EQUAL:6,STARTS_WITH:5,WORD_STARTS_WITH:4,CONTAINS:3,ACRONYM:2,MATCHES:1,NO_MATCH:0},defaultBaseSortFn=(u,n)=>String(u.rankedValue).localeCompare(String(n.rankedValue));function matchSorter(u,n,d={}){const{keys:p,threshold:m=rankings.MATCHES,baseSort:g=defaultBaseSortFn,sorter:y=E=>E.sort((T,_)=>sortRankedValues(T,_,g))}=d,b=u.reduce(S,[]);return y(b).map(({item:E})=>E);function S(E,T,_){const R=getHighestRanking(T,p,n,d),{rank:A,keyThreshold:C=m}=R;return A>=C&&E.push({...R,item:T,index:_}),E}}matchSorter.rankings=rankings;function getHighestRanking(u,n,d,p){if(!n){const g=u;return{rankedValue:g,rank:getMatchRanking(g,d,p),keyIndex:-1,keyThreshold:p.threshold}}return getAllValuesToRank(u,n).reduce(({rank:g,rankedValue:y,keyIndex:b,keyThreshold:S},{itemValue:E,attributes:T},_)=>{let R=getMatchRanking(E,d,p),A=y;const{minRanking:C,maxRanking:k,threshold:I}=T;return R<C&&R>=rankings.MATCHES?R=C:R>k&&(R=k),R>g&&(g=R,b=_,S=I,A=E),{rankedValue:A,rank:g,keyIndex:b,keyThreshold:S}},{rankedValue:u,rank:rankings.NO_MATCH,keyIndex:-1,keyThreshold:p.threshold})}function*indexesOf(u,n){let d=-1;for(;(d=u.indexOf(n,d+1))>-1;)yield d;return-1}function getMatchRanking(u,n,d){if(u=prepareValueForComparison(u,d),n=prepareValueForComparison(n,d),n.length>u.length)return rankings.NO_MATCH;if(u===n)return rankings.CASE_SENSITIVE_EQUAL;u=u.toLowerCase(),n=n.toLowerCase();const p=indexesOf(u,n),m=p.next(),g=m.value;if(u.length===n.length&&g===0)return rankings.EQUAL;if(g===0)return rankings.STARTS_WITH;let y=m;for(;!y.done;){if(y.value>0&&u[y.value-1]===" ")return rankings.WORD_STARTS_WITH;y=p.next()}return g>0?rankings.CONTAINS:n.length===1?rankings.NO_MATCH:getAcronym(u).includes(n)?rankings.ACRONYM:getClosenessRanking(u,n)}function getAcronym(u){let n="",d=" ";for(let p=0;p<u.length;p++){const m=u.charAt(p);(d===" "||d==="-")&&!(m===" "||m==="-")&&(n+=m),d=m}return n}function getClosenessRanking(u,n){let d=0,p=0;function m(S,E,T){for(let _=T,R=E.length;_<R;_++)if(E[_]===S)return d+=1,_+1;return-1}function g(S){const E=1/S,T=d/n.length;return rankings.MATCHES+T*E}const y=m(n[0],u,0);if(y<0)return rankings.NO_MATCH;p=y;for(let S=1,E=n.length;S<E;S++){const T=n[S];if(p=m(T,u,p),!(p>-1))return rankings.NO_MATCH}const b=p-y;return g(b)}function sortRankedValues(u,n,d){const{rank:g,keyIndex:y}=u,{rank:b,keyIndex:S}=n;return g===b?y===S?d(u,n):y<S?-1:1:g>b?-1:1}function prepareValueForComparison(u,{keepDiacritics:n}){return u=`${u}`,n||(u=removeAccents(u)),u}function getItemValues(u,n){typeof n=="object"&&(n=n.key);let d;if(typeof n=="function")d=n(u);else if(u==null)d=null;else if(Object.hasOwnProperty.call(u,n))d=u[n];else{if(n.includes("."))return getNestedValues(n,u);d=null}return d==null?[]:Array.isArray(d)?d:[String(d)]}function getNestedValues(u,n){const d=u.split(".");let p=[n];for(let m=0,g=d.length;m<g;m++){const y=d[m];let b=[];for(let S=0,E=p.length;S<E;S++){const T=p[S];if(T!=null)if(Object.hasOwnProperty.call(T,y)){const _=T[y];_!=null&&b.push(_)}else y==="*"&&(b=b.concat(T))}p=b}return Array.isArray(p[0])?[].concat(...p):p}function getAllValuesToRank(u,n){const d=[];for(let p=0,m=n.length;p<m;p++){const g=n[p],y=getKeyAttributes(g),b=getItemValues(u,g);for(let S=0,E=b.length;S<E;S++)d.push({itemValue:b[S],attributes:y})}return d}const defaultKeyAttributes={maxRanking:1/0,minRanking:-1/0};function getKeyAttributes(u){return typeof u=="string"?defaultKeyAttributes:{...defaultKeyAttributes,...u}}const MentionList=React.forwardRef((u,n)=>{const[d,p]=React.useState(0),m=React.useRef([]),g=u.char==="@",y=React.useMemo(()=>u.query?g?matchSorter(u.items,u.query,{keys:["label","email"],threshold:matchSorter.rankings.CONTAINS}):matchSorter(u.items,u.query,{keys:["label","selectId",_=>_.selectId?.replace(/[^a-z0-9]/gi,"")??""],threshold:matchSorter.rankings.CONTAINS}):u.items,[u.items,u.query,g]),b=_=>{const R=y[_];R&&u.command({...R,id:R?.id,label:R?.label})},S=()=>{p(_=>(_+y.length-1)%y.length)},E=()=>{p(_=>(_+1)%y.length)},T=()=>{b(d)};return React.useEffect(()=>{p(0)},[y]),React.useEffect(()=>{const _=m.current[d];_&&_.scrollIntoView({block:"nearest",behavior:"instant"})},[d]),React.useImperativeHandle(n,()=>({onKeyDown:_=>_.key==="ArrowUp"?(S(),!0):_.key==="ArrowDown"?(E(),!0):_.key==="Enter"&&y.length>0?(T(),!0):!1})),jsxRuntime.jsxs("div",{className:"w-80 rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 shadow-lg overflow-hidden",children:[jsxRuntime.jsx("div",{className:"px-3 py-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-900/50",children:jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("svg",{className:"h-4 w-4 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsxRuntime.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),jsxRuntime.jsx("span",{className:"text-sm text-gray-600 dark:text-gray-300",children:u.query?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:["Searching for: ",jsxRuntime.jsx("span",{className:"font-medium",children:u.query})]}):`Search ${g?"users":"hashtags"}...`})]})}),jsxRuntime.jsxs("div",{className:"px-3 py-1.5 text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider bg-gray-50 dark:bg-gray-900/50",children:[g?"Users":"Hashtags"," (",y.length,")"]}),jsxRuntime.jsx("ul",{className:"max-h-64 overflow-y-auto",children:y.length===0?jsxRuntime.jsx("div",{className:"p-4 text-center text-sm text-gray-500 dark:text-gray-400",children:u.query?`No ${g?"users":"hashtags"} found for "${u.query}"`:`No ${g?"users":"hashtags"} found`}):jsxRuntime.jsx("div",{className:"p-1",children:y.map((_,R)=>jsxRuntime.jsxs("li",{ref:A=>{m.current[R]=A},onClick:()=>b(R),className:`flex items-center gap-3 px-3 py-2.5 cursor-pointer rounded-md transition-colors ${d===R?"bg-blue-50 dark:bg-blue-900/20":"hover:bg-gray-50 dark:hover:bg-gray-700/50"}`,children:[jsxRuntime.jsx(Avatar,{className:"size-9 shrink-0 bg-linear-to-br from-blue-400 to-blue-600",children:_.avatar?jsxRuntime.jsx(AvatarImage,{src:_.avatar,alt:_.label}):jsxRuntime.jsx(AvatarFallback,{className:"text-white bg-transparent font-medium text-sm",children:_.label?.charAt(0).toUpperCase()})}),jsxRuntime.jsx("div",{className:"flex flex-col min-w-0 flex-1",children:g?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100 truncate",children:_.label}),_.email&&jsxRuntime.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 truncate",children:_.email})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100 truncate",children:["#",_.label]}),_.selectId&&jsxRuntime.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 truncate",children:_.selectId})]})})]},_.id))})}),jsxRuntime.jsx("div",{className:"px-3 py-2 border-t border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-900/50",children:jsxRuntime.jsxs("div",{className:"flex items-center gap-3 text-xs text-gray-500 dark:text-gray-400",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("kbd",{className:"px-1.5 py-0.5 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded text-xs",children:"↑↓"}),jsxRuntime.jsx("span",{children:"Navigate"})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("kbd",{className:"px-1.5 py-0.5 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded text-xs",children:"↵"}),jsxRuntime.jsx("span",{children:"Select"})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("kbd",{className:"px-1.5 py-0.5 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded text-xs",children:"Esc"}),jsxRuntime.jsx("span",{children:"Close"})]})]})})]})});MentionList.displayName="MentionList";const isReactNativeWebView=()=>typeof window<"u"&&window.ReactNativeWebView!==void 0,mentionService=(u,n,d,p)=>({fetchMentions:async()=>{const y=d.getState().getMentionParams();if(!y)return[];const{groupId:b,postId:S}=y,T=(S?await n.getRecommendationPost(b,S,0,999):await n.getRecommendationGroup(b,0,999)).entries?.filter(_=>!!_?.user_details)?.map(_=>({id:_?.user_details?.id,label:_?.user_details?.name,avatar:_?.user_details?.avatar,inThisThread:1,name:_?.user_details?.name,selectId:_.user_details?.username,type:MentionType.User,from:PostType.Post}))??[];if(p){const _={id:p.id,label:p.name,avatar:p.avatar,inThisThread:1,name:p.name,selectId:p.username,type:MentionType.User,from:PostType.Post},R=T.filter(A=>A.id!==p.id);return[_,...R]}return T},fetchHashtags:async()=>{const{selectedGroupId:y,groupId:b}=d.getState();return y??b?(await u.fetchConversationList(999,0)).map(T=>({id:T?.conversation_id,label:T?.conversation_detail?.name,avatar:T?.conversation_detail?.avatar,inThisThread:1,name:T?.conversation_detail?.name,selectId:T?.conversation_detail?.select_id,type:MentionType.Group,from:PostType.Post,isCrossExposureEnable:T?.conversation_detail?.allow_cross_exposure})):[]}});function createSuggestion(u,n){return{char:u,items:async()=>await n(),render:()=>{let d,p;return{onStart:m=>{d=new ReactRenderer(MentionList,{props:{...m,char:u},editor:m.editor}),m.clientRect&&(p=tippy("body",{getReferenceClientRect:m.clientRect,appendTo:()=>document.body,theme:"select-post-builder",content:d.element,showOnCreate:!0,interactive:!0,trigger:"manual",placement:"bottom-start"}))},onUpdate(m){d.updateProps({...m,char:u}),!(!m.clientRect||!p?.[0])&&p[0].setProps({getReferenceClientRect:m.clientRect})},onKeyDown(m){return m.event.key==="Escape"?(p?.[0]?.hide(),!0):d?.ref?.onKeyDown(m.event)??!1},onExit(){p?.[0]?.destroy(),d?.destroy()}}}}}const configureMentionExtension=(u,n,d,p)=>{const m=mentionService(u,n,d,p);return Mention.configure({HTMLAttributes:{class:"inline-block px-1.5 py-0.5 rounded font-medium no-underline cursor-pointer transition-all duration-200"},renderText({node:g,suggestion:y}){return`${y?.char??"@"}${g.attrs.label??g.attrs.id}`},renderHTML({node:g,suggestion:y,isFocused:b}){const S=y?.char??"@",E=g?.attrs?.avatar,T=g?.attrs?.type,_=g?.attrs?.from,R=g?.attrs?.inThisThread,A=g?.attrs?.isCrossExposureEnable,C=g?.attrs?.matchStartPosition,k=g?.attrs?.selectId,I=g.attrs.label??g.attrs.id,P=g.attrs.id,O=g?.attrs?.name,D=isReactNativeWebView(),B={"data-type":"mention","data-id":P,"data-label":I,"data-mention-suggestion-char":S,"data-mention-id":P,"data-mention-label":I,"data-mention-avatar":E,"data-mention-in-this-thread":R,"data-mention-name":O,"data-mention-select-id":k,"data-mention-type":T,"data-mention-from":_,"data-mention-is-cross-exposure-enable":A,"data-mention-match-start-position":C,class:"inline-block rounded italic font-medium cursor-pointer transition-all duration-200 text-blue-700 dark:text-blue-300"};if(D){const V=S==="@"?`window.ReactNativeWebView.postMessage(JSON.stringify({type: 'mention', userId: '${P}'}))`:`window.ReactNativeWebView.postMessage(JSON.stringify({type: 'hashtag', groupId: '${P}'}))`;return["span",{...B,onclick:V},`${S}${I}`]}const L=S==="@"?`/users/${P}`:`/groups/${P}`;return["a",{...B,...b?{}:{href:L,target:"_blank"},"data-mention-link":"true"},`${S}${I}`]},suggestions:[createSuggestion("@",m.fetchMentions),createSuggestion("#",m.fetchHashtags)]})},LinkPreviewCompact=({selected:u,href:n,title:d,description:p,image:m,domain:g,onClickDelete:y})=>{const{t:b}=usePostBuilder(),S=React.useMemo(()=>{try{return g||new URL(n).hostname}catch{return"unknown"}},[n,g]),E=T=>{T.preventDefault(),T.stopPropagation(),y()};return jsxRuntime.jsxs("div",{className:cn("not-prose relative w-full group my-4",u?"ring-2 ring-blue-500 ring-offset-2 rounded-lg":""),children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2 absolute z-50 right-2 top-1",children:[jsxRuntime.jsx(ToolbarButton,{asChild:!0,tooltip:"visitLinkKey",children:jsxRuntime.jsxs("span",{className:"relative",children:[jsxRuntime.jsx("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"absolute inset-0"}),jsxRuntime.jsx(ExternalLink,{})]})}),jsxRuntime.jsx(ToolbarButton,{tooltip:"removeLinkPreviewKey",onClick:E,"aria-label":b("removeLinkPreviewKey"),type:"button",size:"icon",className:"cursor-pointer size-6 shadow-none bg-transparent group-hover:bg-destructive/5 hover:bg-destructive/10 text-destructive hover:text-destructive",children:jsxRuntime.jsx(Trash2,{})})]}),jsxRuntime.jsx("div",{className:"relative z-0 w-full",children:jsxRuntime.jsxs("div",{className:"group flex items-center gap-3 rounded-lg border bg-accent/30 p-3 transition-all hover:border-foreground/20 hover:shadow-sm",children:[jsxRuntime.jsx("div",{className:"relative h-16 w-16 shrink-0 overflow-hidden rounded-md bg-muted",children:jsxRuntime.jsx("img",{src:m,alt:d,className:"size-16 object-cover transition-transform group-hover:scale-105"})}),jsxRuntime.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntime.jsx("h3",{className:"truncate text-sm font-semibold leading-tight text-foreground",children:d}),jsxRuntime.jsx("p",{className:"line-clamp-1 text-xs text-muted-foreground",children:p}),jsxRuntime.jsxs("div",{className:"mt-1 flex items-center gap-1 text-xs text-muted-foreground",children:[jsxRuntime.jsx("span",{className:"truncate",children:S}),jsxRuntime.jsx(ExternalLink,{className:"h-3 w-3 shrink-0 opacity-50"})]})]})]})})]})},LinkPreviewExtended=({selected:u,href:n,title:d,description:p,image:m,domain:g,onClickDelete:y})=>{const{t:b}=usePostBuilder(),S=React.useMemo(()=>{try{return g||new URL(n).hostname}catch{return"unknown"}},[n,g]),E=T=>{T.preventDefault(),T.stopPropagation(),y()};return jsxRuntime.jsxs("div",{className:cn("not-prose relative w-full group mt-4",u?"ring-2 ring-blue-500 ring-offset-2 rounded-lg":""),children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2 absolute z-50 right-3 top-3",children:[jsxRuntime.jsx(ToolbarButton,{asChild:!0,tooltip:"visitLinkKey",className:"cursor-pointer backdrop-blur-2xl size-6 shadow-none group-hover:bg-accent/70 group-hover:text-accent-foreground text-primary-send",children:jsxRuntime.jsxs("span",{className:"relative",children:[jsxRuntime.jsx("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"absolute inset-0"}),jsxRuntime.jsx(ExternalLink,{})]})}),jsxRuntime.jsx(ToolbarButton,{tooltip:"removeLinkPreviewKey",onClick:E,"aria-label":b("removeLinkPreviewKey"),type:"button",size:"icon",className:"cursor-pointer backdrop-blur-2xl size-6 shadow-none bg-transparent group-hover:bg-red-50/70 hover:bg-red-50 text-destructive hover:text-destructive",children:jsxRuntime.jsx(Trash2,{})})]}),jsxRuntime.jsx("div",{className:"relative z-0 w-full",children:jsxRuntime.jsxs("div",{className:"group overflow-hidden flex flex-col rounded-lg border bg-accent/30 transition-all hover:border-foreground/20 hover:shadow-sm",children:[jsxRuntime.jsx("div",{className:"relative h-80 w-full shrink-0 overflow-hidden bg-muted border-b",children:jsxRuntime.jsx("img",{src:m,alt:d,className:"size-full object-cover transition-transform group-hover:scale-105"})}),jsxRuntime.jsxs("div",{className:"min-w-0 flex-1 p-3",children:[jsxRuntime.jsxs("div",{className:"mt-1 flex items-center gap-1 text-xs text-muted-foreground",children:[jsxRuntime.jsx("span",{className:"truncate",children:S}),jsxRuntime.jsx(ExternalLink,{className:"h-3 w-3 shrink-0 opacity-50"})]}),jsxRuntime.jsx("h3",{className:"mt-1 mb-2 truncate text-lg font-semibold leading-tight text-foreground",children:d}),jsxRuntime.jsx("p",{className:"line-clamp-2 text-sm text-muted-foreground",children:p})]})]})})]})},LinkPreviewCard=({node:u,deleteNode:n,selected:d})=>{const{loading:p,href:m,domain:g,variant:y}=u.attrs,{t:b}=usePostBuilder(),S=React.useMemo(()=>{try{return g||new URL(m).hostname}catch{return"unknown"}},[m,g]);return p?jsxRuntime.jsx(NodeViewWrapper,{children:jsxRuntime.jsx(Skeleton,{className:"w-full h-24 my-4 flex items-center justify-center rounded-lg",children:jsxRuntime.jsx("span",{className:"text-sm text-muted-foreground",children:b("fetchingMetadataKey")})})}):m?jsxRuntime.jsx(NodeViewWrapper,{contentEditable:!1,"data-drag-handle":!0,children:y===LinkPreviewType.Compact?jsxRuntime.jsx(LinkPreviewCompact,{...u.attrs,selected:d,domain:S,onClickDelete:n}):jsxRuntime.jsx(LinkPreviewExtended,{...u.attrs,selected:d,domain:S,onClickDelete:n})}):null};function insertLinkPreviewAfterLinkImpl(u,n,d,p){let m=null;if(d.doc.descendants((E,T)=>{if(m!==null)return!1;if(E.isText&&E.marks){for(const _ of E.marks)if(_.type.name==="customLink"&&_.attrs.uid===u)return m=T,!1}}),m===null)return!1;const g=d.doc.resolve(m);if(g.depth>1)return!1;let y=!1;if(d.doc.descendants(E=>{if(E.type.name==="linkPreview"&&E.attrs.uid===u)return y=!0,!1}),y)return!1;let b=g.after(1);for(;b<d.doc.content.size;){const E=d.doc.nodeAt(b);if(E?.type.name!=="linkPreview")break;const T=E.attrs.uid;let _=null;if(T&&d.doc.descendants((R,A)=>{if(_!==null)return!1;if(R.isText&&R.marks){for(const C of R.marks)if(C.type.name==="customLink"&&C.attrs.uid===T)return _=A,!1}}),_!==null&&_<m)b+=E.nodeSize;else break}if(!p)return!0;const S=d.schema.nodes.linkPreview;return S?(p(d.tr.insert(b,S.create(n))),!0):!1}const LinkPreview=Node3.create({name:"linkPreview",group:"block",atom:!0,addOptions(){return{variant:LinkPreviewType.Compact,selectable:!0,draggable:!0}},draggable(){return this?.options?.draggable??!0},selectable(){return this?.options?.selectable??!0},addAttributes(){return{variant:{default:this.options.variant},uid:{default:null},href:{default:null},title:{default:null},description:{default:null},image:{default:null},domain:{default:null},loading:{default:!1}}},parseHTML(){return[{tag:"div[data-link-preview]",getAttrs:u=>{if(typeof u=="string")return!1;const n=u,d=n.querySelector("a");return{href:n.getAttribute("data-href")||d?.getAttribute("href")||"",uid:n.getAttribute("data-uid")||null,title:n.getAttribute("data-title")||null,description:n.getAttribute("data-description")||null,image:n.getAttribute("data-image")||null,domain:n.getAttribute("data-domain")||null}}}]},renderHTML({node:u}){const{href:n,uid:d,title:p,description:m,image:g,domain:y}=u.attrs;if(!n)return["div",{}];const b=[["a",{href:n,target:"_blank",rel:"noopener noreferrer",class:"absolute inset-0 z-30","aria-label":p||n}],["div",{class:"relative z-20 flex items-center gap-3 w-full"},...g?[["div",{class:"relative h-16 w-16 flex-shrink-0 overflow-hidden rounded-md bg-muted"},["img",{src:g,alt:p||"",class:"h-full w-full object-cover transition-transform group-hover:scale-105"}]]]:[],["div",{class:"min-w-0 flex-1"},...p?[["h3",{class:"truncate text-sm font-semibold leading-tight text-foreground"},p]]:[],...m?[["p",{class:"line-clamp-1 text-xs text-muted-foreground"},m]]:[],...y?[["div",{class:"mt-1 flex items-center gap-1 text-xs text-muted-foreground"},["span",{class:"truncate"},y]]]:[]]]];return["div",{"data-link-preview":"","data-href":n,"data-uid":d||"","data-title":p||"","data-description":m||"","data-image":g||"","data-domain":y||"",class:"not-prose my-4 relative group flex items-center gap-3 rounded-lg border bg-card p-3 transition-all hover:border-foreground/20 hover:shadow-sm"},...b]},addNodeView(){return ReactNodeViewRenderer(LinkPreviewCard)},addCommands(){return{setLinkPreview:u=>({commands:n,editor:d})=>{if(u.uid){let p=!1;if(d.state.doc.descendants(m=>{if(m.type.name===this.name&&m.attrs.uid===u.uid)return p=!0,!1}),p)return n.updateLinkPreviewByUid(u.uid,u)}return n.insertContent({type:this.name,attrs:u})},updateLinkPreviewByUid:createUpdateByUidCommand(this.name),deleteLinkPreviewByUid:createDeleteByUidCommand(this.name),updateLinkPreview:u=>({commands:n})=>n.updateAttributes(this.name,u),insertLinkPreviewAfterLink:(u,n)=>({state:d,dispatch:p})=>insertLinkPreviewAfterLinkImpl(u,n,d,p)}},addKeyboardShortcuts(){return{"Mod-Shift-k":()=>this.editor.commands.setLinkPreview({href:"",title:null,description:null,image:null,domain:null}),Backspace:()=>{const{selection:u}=this.editor.state,{$anchor:n}=u;return n.parent.type.name===this.name&&n.parentOffset===0?this.editor.commands.deleteNode(this.name):!1}}}}),EnterHardBreak=Extension.create({name:"customEnterHardBreak",addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.setHardBreak()}}}),MediaGroupView=({node:u,editor:n})=>{const{trackMediaRemoved:d}=useAnalyticsTracking(),p=g=>{const y=g?.attrs?.uid,b=n?.view?.dom?.getAttribute("data-editor-type")||EditorTypes.Media;n.commands.deleteMediaByUid(y),d({mediaType:MediaTypeMap[g?.attrs?.type],editorType:b})},m=u?.content?.content||[];return jsxRuntime.jsx(NodeViewWrapper,{className:"not-prose media-group-wrapper select-none leading-none mt-12",contentEditable:!1,children:jsxRuntime.jsxs("div",{className:"flex flex-wrap gap-2 leading-none mt-auto",children:[m.map((g,y)=>{const b=g?.attrs?.uploading,S=g?.attrs?.progress||0;return jsxRuntime.jsxs("div",{className:"relative group leading-none",children:[jsxRuntime.jsx(Button,{size:"icon",onClick:()=>p(g),className:"absolute size-6 top-1 right-1 z-10 p-1.5 bg-red-50 hover:bg-red-100 text-destructive rounded-full shadow-lg transition-all opacity-100 group-hover:scale-110",title:"Delete media",children:jsxRuntime.jsx(X,{className:"w-3.5 h-3.5"})}),b?jsxRuntime.jsxs("div",{className:"size-20 bg-muted rounded-lg border border-border flex items-center justify-center relative overflow-hidden",children:[jsxRuntime.jsxs("div",{className:"text-center space-y-2",children:[g.attrs.type===MediaNodeTypes.Image&&jsxRuntime.jsx(Image$2,{className:"w-8 h-8 text-muted-foreground/50 mx-auto"}),g.attrs.type===MediaNodeTypes.Video&&jsxRuntime.jsx(Video,{className:"w-8 h-8 text-muted-foreground/50 mx-auto"}),g.attrs.type===MediaNodeTypes.Audio&&jsxRuntime.jsx(Music,{className:"w-8 h-8 text-muted-foreground/50 mx-auto"}),jsxRuntime.jsxs("p",{className:"text-xs text-muted-foreground",children:[Math.round(S),"%"]})]}),jsxRuntime.jsx("div",{className:"absolute bottom-0 left-0 right-0 p-2",children:jsxRuntime.jsx(Progress,{value:S,className:"h-1"})})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[g.attrs.type===MediaNodeTypes.Image&&jsxRuntime.jsx("img",{src:g.attrs.src,alt:g.attrs.caption||"",className:"size-20 object-cover rounded-lg border border-border"}),g.attrs.type===MediaNodeTypes.Video&&jsxRuntime.jsx("video",{src:g.attrs.src,className:"size-20 object-cover rounded-lg border border-border"}),g.attrs.type===MediaNodeTypes.Audio&&jsxRuntime.jsx("div",{className:"size-20 flex items-center justify-center bg-accent rounded-lg border border-border",children:jsxRuntime.jsx(Music,{className:"w-8 h-8 text-muted-foreground"})})]}),g.attrs.caption&&!b&&jsxRuntime.jsx("p",{className:"text-xs text-muted-foreground text-center mt-1 truncate w-32",children:g.attrs.caption})]},g?.attrs?.uid||y)}),jsxRuntime.jsx("div",{className:"hidden",children:jsxRuntime.jsx(NodeViewContent,{})})]})})},MediaModePluginKey=new PluginKey("mediaMode"),createMediaModePlugin=()=>{let u=!1;return new Plugin({key:MediaModePluginKey,appendTransaction(n,d,p){if(u||!n.some(g=>g.docChanged)||n.some(g=>g.getMeta("mediaMode-plugin"))||n.some(g=>g.getMeta("addToHistory")===!1))return null;try{u=!0;const g=p.tr;let y=!1;const b=[];if(p.doc.forEach((C,k)=>{C.type.name==="media"&&b.push({node:C,pos:k,size:C.nodeSize})}),b.length===0){let C=!1,k=null;if(p.doc.forEach((I,P)=>{I.type.name==="mediaGroup"&&(C=!0,I.content.size===0&&(g.delete(P,P+I.nodeSize),y=!0)),I.type.name==="paragraph"&&I.descendants(O=>{O.marks&&O.marks.forEach(D=>{D.type.name==="customLink"&&D.attrs.previewPayload&&(k=D.attrs.previewPayload)})})}),y&&C&&k){let I=!1;if(g.doc.forEach(P=>{P.type.name==="linkPreview"&&(I=!0)}),!I&&p.schema.nodes.linkPreview){const P=k,O=p.schema.nodes.linkPreview.create({uid:v4(),href:P.linkUrl??"",title:P.linkTitle??"",description:P.linkDesc??"",image:P.linkImage?.url??"",variant:LinkPreviewType.Extended});g.insert(g.doc.content.size,O),y=!0}}return y&&(g.setMeta("addToHistory",!1),g.setMeta("mediaMode-plugin",!0)),y?g:null}let S=null,E=null;p.doc.forEach((C,k)=>{C.type.name==="linkPreview"&&(S=k,E=C.nodeSize)}),S!==null&&E!==null&&(g.delete(S,Number(S)+Number(E)),y=!0);const T=y?g.doc:p.doc,_=[];T.forEach((C,k)=>{C.type.name==="media"&&_.push({node:C,pos:k,size:C.nodeSize})});let R=null,A=null;if(T.forEach((C,k)=>{C.type.name==="mediaGroup"&&(R=k,A=C)}),R!==null&&A){const C=A.content.size;[..._].sort((B,L)=>L.pos-B.pos).forEach(({pos:B,size:L})=>{g.delete(B,B+L)});const P=_.filter(B=>B.pos<R).reduce((B,L)=>B+L.size,0),D=R-P+1+C;let N=0;_.forEach(({node:B})=>{g.insert(D+N,B),N+=B.nodeSize}),y=!0}else{if(!p.schema.nodes.mediaGroup)return null;const C=_.map(P=>P.node);if(C.some(P=>!P||P.type.name!=="media"))return null;const k=p.schema.nodes.mediaGroup.create({},C);[..._].sort((P,O)=>O.pos-P.pos).forEach(({pos:P,size:O})=>{g.delete(P,P+O)}),g.insert(g.doc.content.size,k),y=!0}if(y){const C=g.doc.content.size;if(C>=0&&C<=g.doc.content.size)try{const k=g.doc.resolve(C);g.setSelection(TextSelection.near(k))}catch{}g.setMeta("addToHistory",!1),g.setMeta("mediaMode-plugin",!0)}return y?g:null}catch{return null}finally{u=!1}}})},MediaGroupNode=Node3.create({name:"mediaGroup",group:"block",content:"media*",atom:!1,selectable:!1,draggable:!1,addOptions(){return{mediaMode:!1}},parseHTML(){return[{tag:"div[data-media-group]"}]},renderHTML({HTMLAttributes:u}){return["div",mergeAttributes(u,{"data-media-group":""}),0]},addNodeView(){return ReactNodeViewRenderer(MediaGroupView)},addProseMirrorPlugins(){return this.options.mediaMode?[createMediaModePlugin()]:[]}}),StripHyperlinkText=Extension.create({name:"stripHyperlinkText",addProseMirrorPlugins(){return[new Plugin({key:new PluginKey("stripHyperlinkText"),props:{transformPastedHTML(u){const n=new DOMParser().parseFromString(u,"text/html");return n.querySelectorAll("a[href]").forEach(d=>{const p=d.href||d.getAttribute("href")||"",m=d.textContent?.trim()??"";p&&m&&m!==p&&(d.textContent=p)}),n.body.innerHTML}}})]}}),CODE_HTML_ATTRIBUTES={class:"bg-muted text-foreground border border-border font-mono leading-snug rounded px-0.5 py-px after:content-none before:content-none"},CODE_BLOCK_HTML_ATTRIBUTES={class:"bg-muted text-foreground border border-border font-mono leading-snug rounded"},createCustomDocument=u=>index_default$9.extend({content:u}),PollDoc=createCustomDocument("paragraph+ poll"),MediaDoc=createCustomDocument("paragraph+ media? linkPreview? mediaGroup?");createCustomDocument("paragraph linkPreview?");const getStarterKitConfig=({includeLink:u=!1,includeDocument:n=!0})=>({...n?{}:{document:!1},...u?{}:{link:!1},code:{HTMLAttributes:CODE_HTML_ATTRIBUTES},codeBlock:{HTMLAttributes:CODE_BLOCK_HTML_ATTRIBUTES}}),getPlaceholderExtension=u=>Placeholder.configure({placeholder:u,showOnlyWhenEditable:!0}),getMentionExtension=(u,n,d,p)=>configureMentionExtension(u,n,d,p),getExtensions=({editorType:u,api:n,store:d,user:p})=>{const g={[EditorTypes.Blog]:getDefaultExtensions,[EditorTypes.Media]:getMediaExtensions,[EditorTypes.Poll]:getPollExtensions}[u];return g?g({api:n,store:d,user:p}):[]},getDefaultExtensions=({api:u,store:n,user:d})=>{const{core:p,mfs:m,fileStore:g}=u;return[index_default$4.configure(getStarterKitConfig({includeLink:!1})),getPlaceholderExtension(`What's on your mind, ${d?.name?d?.name:""}`),index_default$2,index_default$1,index_default$3.configure({types:["heading","paragraph","media"],alignments:[Alignment.LEFT,Alignment.CENTER,Alignment.RIGHT],defaultAlignment:Alignment.LEFT}),MediaNode,Poll,Iframe.configure({api:p}),CustomLink.configure({openOnClick:!1,linkOnPaste:!1,api:p}),LinkPreview,getMentionExtension(p,m,n,d),SmartMediaUpload.configure({api:g}),SmartLinkPaste.configure({api:p})]},getPollExtensions=({api:u,store:n,user:d})=>{const{core:p,mfs:m}=u;return[PollDoc,index_default$6,index_default$5,index_default$7.configure({HTMLAttributes:{class:"underline"}}),index_default$8,getPlaceholderExtension("Ask a Question"),EnterHardBreak,Poll,getMentionExtension(p,m,n,d),StripHyperlinkText]},getMediaExtensions=({api:u,store:n,user:d})=>{const{core:p,mfs:m,fileStore:g}=u;return[MediaDoc,index_default$6,index_default$5,index_default$8,getPlaceholderExtension(`What's on your mind, ${d?.name?d?.name:""}`),EnterHardBreak,MediaNode.configure({attrs:{mediaMode:!0}}),MediaGroupNode.configure({mediaMode:!0}),CustomLink.configure({openOnClick:!1,linkOnPaste:!1,api:p,linkMode:!0}),LinkPreview.configure({variant:LinkPreviewType.Extended,draggable:!1}),getMentionExtension(p,m,n,d),SmartMediaUpload.configure({api:g}),SmartLinkPaste.configure({api:p,autoEmbed:!1,autoLinkSelection:!1}),StripHyperlinkText]},getEditorProps=()=>({attributes:{class:cn(`max-w-full min-h-44 prose prose-sm sm:prose-base px-4 py-2 prose-img:my-3
238
+ `,"2) content: () => element.cloneNode(true)"].join(" "))}var b=m.reduce(function(S,E){var T=E&&createTippy(E,p);return T&&S.push(T),S},[]);return isElement(u)?b[0]:b}tippy.defaultProps=defaultProps;tippy.setDefaultProps=setDefaultProps;tippy.currentInput=currentInput;Object.assign({},applyStyles,{effect:function u(n){var d=n.state,p={popper:{position:d.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(d.elements.popper.style,p.popper),d.styles=p,d.elements.arrow&&Object.assign(d.elements.arrow.style,p.arrow)}});tippy.setDefaultProps({render});function getSuggestionOptions({editor:u,overrideSuggestionOptions:n,extensionName:d,char:p="@"}){return{editor:u,char:p,pluginKey:new PluginKey,command:({editor:m,range:g,props:y})=>{const E=m.getText()?.replace(WHITESPACE_REGEX," ")?.trim()?.lastIndexOf(p);m.view.state.selection.$to.nodeAfter?.text?.startsWith(" ")&&(g.to+=1),m.chain().focus().insertContentAt(g,[{type:d,attrs:{...y,mentionSuggestionChar:p,matchStartPosition:E}},{type:"text",text:" "}]).run(),m.view.dom.ownerDocument.defaultView?.getSelection()?.collapseToEnd()},allow:({state:m,range:g})=>{const y=m.doc.resolve(g.from),b=m.schema.nodes[d];return!!y.parent.type.contentMatch.matchType(b)},...n}}function getSuggestions(u){return(u.options.suggestions.length?u.options.suggestions:[u.options.suggestion]).map(n=>getSuggestionOptions({editor:u.editor,overrideSuggestionOptions:n,extensionName:u.name,char:n.char}))}function getSuggestionFromChar(u,n){const d=getSuggestions(u),p=d.find(m=>m.char===n);return p||(d.length?d[0]:null)}const Mention=Node3.create({name:"mention",priority:101,addOptions(){return{HTMLAttributes:{},renderText({node:u,suggestion:n}){return`${n?.char??"@"}${u.attrs.label??u.attrs.id}`},deleteTriggerWithBackspace:!1,renderHTML({options:u,node:n,suggestion:d}){return["span",mergeAttributes(this.HTMLAttributes,u.HTMLAttributes),`${d?.char??"@"}${n.attrs.label??n.attrs.id}`]},suggestions:[],suggestion:{}}},group:"inline",inline:!0,selectable:!1,atom:!0,addAttributes(){return{id:{default:null,parseHTML:u=>u.getAttribute("data-mention-id"),renderHTML:u=>u.id?{"data-mention-id":u.id}:{}},label:{default:null,parseHTML:u=>u.getAttribute("data-mention-label"),renderHTML:u=>u.label?{"data-mention-label":u.label}:{}},mentionSuggestionChar:{default:"@",parseHTML:u=>u.getAttribute("data-mention-suggestion-char"),renderHTML:u=>({"data-mention-suggestion-char":u.mentionSuggestionChar})},avatar:{default:null,parseHTML:u=>u.getAttribute("data-mention-avatar"),renderHTML:u=>u.avatar?{"data-mention-avatar":u.avatar}:{}},inThisThread:{default:1,parseHTML:u=>u.getAttribute("data-mention-in-this-thread"),renderHTML:u=>u.inThisThread?{"data-mention-in-this-thread":u.inThisThread}:{}},name:{default:null,parseHTML:u=>u.getAttribute("data-mention-name"),renderHTML:u=>u.name?{"data-mention-name":u.name}:{}},selectId:{default:null,parseHTML:u=>u.getAttribute("data-mention-select-id"),renderHTML:u=>u.selectId?{"data-mention-select-id":u.selectId}:{}},type:{default:null,parseHTML:u=>u.getAttribute("data-mention-type"),renderHTML:u=>u.type?{"data-mention-type":u.type}:{}},from:{default:PostType.Post,parseHTML:u=>u.getAttribute("data-mention-from"),renderHTML:u=>u.from?{"data-mention-from":u.from}:{}},isCrossExposureEnable:{default:null,parseHTML:u=>u.getAttribute("data-mention-is-cross-exposure-enable"),renderHTML:u=>u.isCrossExposureEnable?{"data-mention-is-cross-exposure-enable":u.isCrossExposureEnable}:{}},matchStartPosition:{default:-1,parseHTML:u=>u.getAttribute("data-mention-match-start-position"),renderHTML:u=>u.matchStartPosition?{"data-mention-match-start-position":u.matchStartPosition}:{}}}},parseHTML(){return[{tag:'span[data-type="mention"]'},{tag:'a[data-type="mention"]'}]},renderHTML({node:u,HTMLAttributes:n}){const d=getSuggestionFromChar(this,u.attrs.mentionSuggestionChar);if(this.options.renderLabel!==void 0)return["span",mergeAttributes({"data-type":this.name},this.options.HTMLAttributes,n),this.options.renderLabel({options:this.options,node:u,suggestion:d})];const p={...this.options},m=this.editor?.isFocused;p.HTMLAttributes=mergeAttributes({"data-type":this.name},this.options.HTMLAttributes,n);const g=this.options.renderHTML({options:p,node:u,suggestion:d,isFocused:m});return typeof g=="string"?["span",mergeAttributes({"data-type":this.name},this.options.HTMLAttributes,n),g]:g},renderText({node:u}){const n={options:this.options,node:u,suggestion:getSuggestionFromChar(this,u.attrs.mentionSuggestionChar)};return this.options.renderLabel!==void 0?this.options.renderLabel(n):this.options.renderText(n)},addKeyboardShortcuts(){return{Backspace:()=>this.editor.commands.command(({tr:u,state:n})=>{let d=!1;const{selection:p}=n,{empty:m,anchor:g}=p;if(!m)return!1;let y=new Node$1,b=0;return n.doc.nodesBetween(g-1,g,(S,E)=>{if(S.type.name===this.name)return d=!0,y=S,b=E,!1}),d&&u.insertText(this.options.deleteTriggerWithBackspace?"":y.attrs.mentionSuggestionChar,b,b+y.nodeSize),d})}},addProseMirrorPlugins(){return getSuggestions(this).map(Suggestion)}});var removeAccents$1={exports:{}},hasRequiredRemoveAccents;function requireRemoveAccents(){if(hasRequiredRemoveAccents)return removeAccents$1.exports;hasRequiredRemoveAccents=1;var u={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",Ấ:"A",Ắ:"A",Ẳ:"A",Ẵ:"A",Ặ:"A",Æ:"AE",Ầ:"A",Ằ:"A",Ȃ:"A",Ả:"A",Ạ:"A",Ẩ:"A",Ẫ:"A",Ậ:"A",Ç:"C",Ḉ:"C",È:"E",É:"E",Ê:"E",Ë:"E",Ế:"E",Ḗ:"E",Ề:"E",Ḕ:"E",Ḝ:"E",Ȇ:"E",Ẻ:"E",Ẽ:"E",Ẹ:"E",Ể:"E",Ễ:"E",Ệ:"E",Ì:"I",Í:"I",Î:"I",Ï:"I",Ḯ:"I",Ȋ:"I",Ỉ:"I",Ị:"I",Ð:"D",Ñ:"N",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",Ố:"O",Ṍ:"O",Ṓ:"O",Ȏ:"O",Ỏ:"O",Ọ:"O",Ổ:"O",Ỗ:"O",Ộ:"O",Ờ:"O",Ở:"O",Ỡ:"O",Ớ:"O",Ợ:"O",Ù:"U",Ú:"U",Û:"U",Ü:"U",Ủ:"U",Ụ:"U",Ử:"U",Ữ:"U",Ự:"U",Ý:"Y",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",ấ:"a",ắ:"a",ẳ:"a",ẵ:"a",ặ:"a",æ:"ae",ầ:"a",ằ:"a",ȃ:"a",ả:"a",ạ:"a",ẩ:"a",ẫ:"a",ậ:"a",ç:"c",ḉ:"c",è:"e",é:"e",ê:"e",ë:"e",ế:"e",ḗ:"e",ề:"e",ḕ:"e",ḝ:"e",ȇ:"e",ẻ:"e",ẽ:"e",ẹ:"e",ể:"e",ễ:"e",ệ:"e",ì:"i",í:"i",î:"i",ï:"i",ḯ:"i",ȋ:"i",ỉ:"i",ị:"i",ð:"d",ñ:"n",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",ố:"o",ṍ:"o",ṓ:"o",ȏ:"o",ỏ:"o",ọ:"o",ổ:"o",ỗ:"o",ộ:"o",ờ:"o",ở:"o",ỡ:"o",ớ:"o",ợ:"o",ù:"u",ú:"u",û:"u",ü:"u",ủ:"u",ụ:"u",ử:"u",ữ:"u",ự:"u",ý:"y",ÿ:"y",Ā:"A",ā:"a",Ă:"A",ă:"a",Ą:"A",ą:"a",Ć:"C",ć:"c",Ĉ:"C",ĉ:"c",Ċ:"C",ċ:"c",Č:"C",č:"c",C̆:"C",c̆:"c",Ď:"D",ď:"d",Đ:"D",đ:"d",Ē:"E",ē:"e",Ĕ:"E",ĕ:"e",Ė:"E",ė:"e",Ę:"E",ę:"e",Ě:"E",ě:"e",Ĝ:"G",Ǵ:"G",ĝ:"g",ǵ:"g",Ğ:"G",ğ:"g",Ġ:"G",ġ:"g",Ģ:"G",ģ:"g",Ĥ:"H",ĥ:"h",Ħ:"H",ħ:"h",Ḫ:"H",ḫ:"h",Ĩ:"I",ĩ:"i",Ī:"I",ī:"i",Ĭ:"I",ĭ:"i",Į:"I",į:"i",İ:"I",ı:"i",IJ:"IJ",ij:"ij",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",Ḱ:"K",ḱ:"k",K̆:"K",k̆:"k",Ĺ:"L",ĺ:"l",Ļ:"L",ļ:"l",Ľ:"L",ľ:"l",Ŀ:"L",ŀ:"l",Ł:"l",ł:"l",Ḿ:"M",ḿ:"m",M̆:"M",m̆:"m",Ń:"N",ń:"n",Ņ:"N",ņ:"n",Ň:"N",ň:"n",ʼn:"n",N̆:"N",n̆:"n",Ō:"O",ō:"o",Ŏ:"O",ŏ:"o",Ő:"O",ő:"o",Œ:"OE",œ:"oe",P̆:"P",p̆:"p",Ŕ:"R",ŕ:"r",Ŗ:"R",ŗ:"r",Ř:"R",ř:"r",R̆:"R",r̆:"r",Ȓ:"R",ȓ:"r",Ś:"S",ś:"s",Ŝ:"S",ŝ:"s",Ş:"S",Ș:"S",ș:"s",ş:"s",Š:"S",š:"s",Ţ:"T",ţ:"t",ț:"t",Ț:"T",Ť:"T",ť:"t",Ŧ:"T",ŧ:"t",T̆:"T",t̆:"t",Ũ:"U",ũ:"u",Ū:"U",ū:"u",Ŭ:"U",ŭ:"u",Ů:"U",ů:"u",Ű:"U",ű:"u",Ų:"U",ų:"u",Ȗ:"U",ȗ:"u",V̆:"V",v̆:"v",Ŵ:"W",ŵ:"w",Ẃ:"W",ẃ:"w",X̆:"X",x̆:"x",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Y̆:"Y",y̆:"y",Ź:"Z",ź:"z",Ż:"Z",ż:"z",Ž:"Z",ž:"z",ſ:"s",ƒ:"f",Ơ:"O",ơ:"o",Ư:"U",ư:"u",Ǎ:"A",ǎ:"a",Ǐ:"I",ǐ:"i",Ǒ:"O",ǒ:"o",Ǔ:"U",ǔ:"u",Ǖ:"U",ǖ:"u",Ǘ:"U",ǘ:"u",Ǚ:"U",ǚ:"u",Ǜ:"U",ǜ:"u",Ứ:"U",ứ:"u",Ṹ:"U",ṹ:"u",Ǻ:"A",ǻ:"a",Ǽ:"AE",ǽ:"ae",Ǿ:"O",ǿ:"o",Þ:"TH",þ:"th",Ṕ:"P",ṕ:"p",Ṥ:"S",ṥ:"s",X́:"X",x́:"x",Ѓ:"Г",ѓ:"г",Ќ:"К",ќ:"к",A̋:"A",a̋:"a",E̋:"E",e̋:"e",I̋:"I",i̋:"i",Ǹ:"N",ǹ:"n",Ồ:"O",ồ:"o",Ṑ:"O",ṑ:"o",Ừ:"U",ừ:"u",Ẁ:"W",ẁ:"w",Ỳ:"Y",ỳ:"y",Ȁ:"A",ȁ:"a",Ȅ:"E",ȅ:"e",Ȉ:"I",ȉ:"i",Ȍ:"O",ȍ:"o",Ȑ:"R",ȑ:"r",Ȕ:"U",ȕ:"u",B̌:"B",b̌:"b",Č̣:"C",č̣:"c",Ê̌:"E",ê̌:"e",F̌:"F",f̌:"f",Ǧ:"G",ǧ:"g",Ȟ:"H",ȟ:"h",J̌:"J",ǰ:"j",Ǩ:"K",ǩ:"k",M̌:"M",m̌:"m",P̌:"P",p̌:"p",Q̌:"Q",q̌:"q",Ř̩:"R",ř̩:"r",Ṧ:"S",ṧ:"s",V̌:"V",v̌:"v",W̌:"W",w̌:"w",X̌:"X",x̌:"x",Y̌:"Y",y̌:"y",A̧:"A",a̧:"a",B̧:"B",b̧:"b",Ḑ:"D",ḑ:"d",Ȩ:"E",ȩ:"e",Ɛ̧:"E",ɛ̧:"e",Ḩ:"H",ḩ:"h",I̧:"I",i̧:"i",Ɨ̧:"I",ɨ̧:"i",M̧:"M",m̧:"m",O̧:"O",o̧:"o",Q̧:"Q",q̧:"q",U̧:"U",u̧:"u",X̧:"X",x̧:"x",Z̧:"Z",z̧:"z",й:"и",Й:"И",ё:"е",Ё:"Е"},n=Object.keys(u).join("|"),d=new RegExp(n,"g"),p=new RegExp(n,"");function m(b){return u[b]}var g=function(b){return b.replace(d,m)},y=function(b){return!!b.match(p)};return removeAccents$1.exports=g,removeAccents$1.exports.has=y,removeAccents$1.exports.remove=g,removeAccents$1.exports}var removeAccentsExports=requireRemoveAccents();const removeAccents=getDefaultExportFromCjs(removeAccentsExports);const rankings={CASE_SENSITIVE_EQUAL:7,EQUAL:6,STARTS_WITH:5,WORD_STARTS_WITH:4,CONTAINS:3,ACRONYM:2,MATCHES:1,NO_MATCH:0},defaultBaseSortFn=(u,n)=>String(u.rankedValue).localeCompare(String(n.rankedValue));function matchSorter(u,n,d={}){const{keys:p,threshold:m=rankings.MATCHES,baseSort:g=defaultBaseSortFn,sorter:y=E=>E.sort((T,_)=>sortRankedValues(T,_,g))}=d,b=u.reduce(S,[]);return y(b).map(({item:E})=>E);function S(E,T,_){const R=getHighestRanking(T,p,n,d),{rank:A,keyThreshold:C=m}=R;return A>=C&&E.push({...R,item:T,index:_}),E}}matchSorter.rankings=rankings;function getHighestRanking(u,n,d,p){if(!n){const g=u;return{rankedValue:g,rank:getMatchRanking(g,d,p),keyIndex:-1,keyThreshold:p.threshold}}return getAllValuesToRank(u,n).reduce(({rank:g,rankedValue:y,keyIndex:b,keyThreshold:S},{itemValue:E,attributes:T},_)=>{let R=getMatchRanking(E,d,p),A=y;const{minRanking:C,maxRanking:k,threshold:I}=T;return R<C&&R>=rankings.MATCHES?R=C:R>k&&(R=k),R>g&&(g=R,b=_,S=I,A=E),{rankedValue:A,rank:g,keyIndex:b,keyThreshold:S}},{rankedValue:u,rank:rankings.NO_MATCH,keyIndex:-1,keyThreshold:p.threshold})}function*indexesOf(u,n){let d=-1;for(;(d=u.indexOf(n,d+1))>-1;)yield d;return-1}function getMatchRanking(u,n,d){if(u=prepareValueForComparison(u,d),n=prepareValueForComparison(n,d),n.length>u.length)return rankings.NO_MATCH;if(u===n)return rankings.CASE_SENSITIVE_EQUAL;u=u.toLowerCase(),n=n.toLowerCase();const p=indexesOf(u,n),m=p.next(),g=m.value;if(u.length===n.length&&g===0)return rankings.EQUAL;if(g===0)return rankings.STARTS_WITH;let y=m;for(;!y.done;){if(y.value>0&&u[y.value-1]===" ")return rankings.WORD_STARTS_WITH;y=p.next()}return g>0?rankings.CONTAINS:n.length===1?rankings.NO_MATCH:getAcronym(u).includes(n)?rankings.ACRONYM:getClosenessRanking(u,n)}function getAcronym(u){let n="",d=" ";for(let p=0;p<u.length;p++){const m=u.charAt(p);(d===" "||d==="-")&&!(m===" "||m==="-")&&(n+=m),d=m}return n}function getClosenessRanking(u,n){let d=0,p=0;function m(S,E,T){for(let _=T,R=E.length;_<R;_++)if(E[_]===S)return d+=1,_+1;return-1}function g(S){const E=1/S,T=d/n.length;return rankings.MATCHES+T*E}const y=m(n[0],u,0);if(y<0)return rankings.NO_MATCH;p=y;for(let S=1,E=n.length;S<E;S++){const T=n[S];if(p=m(T,u,p),!(p>-1))return rankings.NO_MATCH}const b=p-y;return g(b)}function sortRankedValues(u,n,d){const{rank:g,keyIndex:y}=u,{rank:b,keyIndex:S}=n;return g===b?y===S?d(u,n):y<S?-1:1:g>b?-1:1}function prepareValueForComparison(u,{keepDiacritics:n}){return u=`${u}`,n||(u=removeAccents(u)),u}function getItemValues(u,n){typeof n=="object"&&(n=n.key);let d;if(typeof n=="function")d=n(u);else if(u==null)d=null;else if(Object.hasOwnProperty.call(u,n))d=u[n];else{if(n.includes("."))return getNestedValues(n,u);d=null}return d==null?[]:Array.isArray(d)?d:[String(d)]}function getNestedValues(u,n){const d=u.split(".");let p=[n];for(let m=0,g=d.length;m<g;m++){const y=d[m];let b=[];for(let S=0,E=p.length;S<E;S++){const T=p[S];if(T!=null)if(Object.hasOwnProperty.call(T,y)){const _=T[y];_!=null&&b.push(_)}else y==="*"&&(b=b.concat(T))}p=b}return Array.isArray(p[0])?[].concat(...p):p}function getAllValuesToRank(u,n){const d=[];for(let p=0,m=n.length;p<m;p++){const g=n[p],y=getKeyAttributes(g),b=getItemValues(u,g);for(let S=0,E=b.length;S<E;S++)d.push({itemValue:b[S],attributes:y})}return d}const defaultKeyAttributes={maxRanking:1/0,minRanking:-1/0};function getKeyAttributes(u){return typeof u=="string"?defaultKeyAttributes:{...defaultKeyAttributes,...u}}const MentionList=React.forwardRef((u,n)=>{const[d,p]=React.useState(0),m=React.useRef([]),g=u.char==="@",y=React.useMemo(()=>u.query?g?matchSorter(u.items,u.query,{keys:["label","email"],threshold:matchSorter.rankings.CONTAINS}):matchSorter(u.items,u.query,{keys:["label","selectId",_=>_.selectId?.replace(/[^a-z0-9]/gi,"")??""],threshold:matchSorter.rankings.CONTAINS}):u.items,[u.items,u.query,g]),b=_=>{const R=y[_];R&&u.command({...R,id:R?.id,label:R?.label})},S=()=>{p(_=>(_+y.length-1)%y.length)},E=()=>{p(_=>(_+1)%y.length)},T=()=>{b(d)};return React.useEffect(()=>{p(0)},[y]),React.useEffect(()=>{const _=m.current[d];_&&_.scrollIntoView({block:"nearest",behavior:"instant"})},[d]),React.useImperativeHandle(n,()=>({onKeyDown:_=>_.key==="ArrowUp"?(S(),!0):_.key==="ArrowDown"?(E(),!0):_.key==="Enter"&&y.length>0?(T(),!0):!1})),jsxRuntime.jsxs("div",{className:"w-80 rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 shadow-lg overflow-hidden",children:[jsxRuntime.jsx("div",{className:"px-3 py-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-900/50",children:jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("svg",{className:"h-4 w-4 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsxRuntime.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),jsxRuntime.jsx("span",{className:"text-sm text-gray-600 dark:text-gray-300",children:u.query?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:["Searching for: ",jsxRuntime.jsx("span",{className:"font-medium",children:u.query})]}):`Search ${g?"users":"hashtags"}...`})]})}),jsxRuntime.jsxs("div",{className:"px-3 py-1.5 text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider bg-gray-50 dark:bg-gray-900/50",children:[g?"Users":"Hashtags"," (",y.length,")"]}),jsxRuntime.jsx("ul",{className:"max-h-64 overflow-y-auto",children:y.length===0?jsxRuntime.jsx("div",{className:"p-4 text-center text-sm text-gray-500 dark:text-gray-400",children:u.query?`No ${g?"users":"hashtags"} found for "${u.query}"`:`No ${g?"users":"hashtags"} found`}):jsxRuntime.jsx("div",{className:"p-1",children:y.map((_,R)=>jsxRuntime.jsxs("li",{ref:A=>{m.current[R]=A},onClick:()=>b(R),className:`flex items-center gap-3 px-3 py-2.5 cursor-pointer rounded-md transition-colors ${d===R?"bg-blue-50 dark:bg-blue-900/20":"hover:bg-gray-50 dark:hover:bg-gray-700/50"}`,children:[jsxRuntime.jsx(Avatar,{className:"size-9 shrink-0 bg-linear-to-br from-blue-400 to-blue-600",children:_.avatar?jsxRuntime.jsx(AvatarImage,{src:_.avatar,alt:_.label}):jsxRuntime.jsx(AvatarFallback,{className:"text-white bg-transparent font-medium text-sm",children:_.label?.charAt(0).toUpperCase()})}),jsxRuntime.jsx("div",{className:"flex flex-col min-w-0 flex-1",children:g?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100 truncate",children:_.label}),_.email&&jsxRuntime.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 truncate",children:_.email})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100 truncate",children:["#",_.label]}),_.selectId&&jsxRuntime.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 truncate",children:_.selectId})]})})]},_.id))})}),jsxRuntime.jsx("div",{className:"px-3 py-2 border-t border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-900/50",children:jsxRuntime.jsxs("div",{className:"flex items-center gap-3 text-xs text-gray-500 dark:text-gray-400",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("kbd",{className:"px-1.5 py-0.5 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded text-xs",children:"↑↓"}),jsxRuntime.jsx("span",{children:"Navigate"})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("kbd",{className:"px-1.5 py-0.5 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded text-xs",children:"↵"}),jsxRuntime.jsx("span",{children:"Select"})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("kbd",{className:"px-1.5 py-0.5 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded text-xs",children:"Esc"}),jsxRuntime.jsx("span",{children:"Close"})]})]})})]})});MentionList.displayName="MentionList";const isReactNativeWebView=()=>typeof window<"u"&&window.ReactNativeWebView!==void 0,mentionService=(u,n,d,p)=>({fetchMentions:async()=>{const y=d.getState().getMentionParams();if(!y)return[];const{groupId:b,postId:S}=y,T=(S?await n.getRecommendationPost(b,S,0,999):await n.getRecommendationGroup(b,0,999)).entries?.filter(_=>!!_?.user_details)?.map(_=>({id:_?.user_details?.id,label:_?.user_details?.name,avatar:_?.user_details?.avatar,inThisThread:1,name:_?.user_details?.name,selectId:_.user_details?.username,type:MentionType.User,from:PostType.Post}))??[];if(p){const _={id:p.id,label:p.name,avatar:p.avatar,inThisThread:1,name:p.name,selectId:p.username,type:MentionType.User,from:PostType.Post},R=T.filter(A=>A.id!==p.id);return[_,...R]}return T},fetchHashtags:async()=>{const{selectedGroupId:y,groupId:b}=d.getState();return y??b?(await u.fetchConversationList(999,0)).map(T=>({id:T?.conversation_id,label:T?.conversation_detail?.name,avatar:T?.conversation_detail?.avatar,inThisThread:1,name:T?.conversation_detail?.name,selectId:T?.conversation_detail?.select_id,type:MentionType.Group,from:PostType.Post,isCrossExposureEnable:T?.conversation_detail?.allow_cross_exposure})):[]}});function createSuggestion(u,n){return{char:u,items:async()=>await n(),render:()=>{let d,p;return{onStart:m=>{d=new ReactRenderer(MentionList,{props:{...m,char:u},editor:m.editor}),m.clientRect&&(p=tippy("body",{getReferenceClientRect:m.clientRect,appendTo:()=>document.body,theme:"select-post-builder",content:d.element,showOnCreate:!0,interactive:!0,trigger:"manual",placement:"bottom-start"}))},onUpdate(m){d.updateProps({...m,char:u}),!(!m.clientRect||!p?.[0])&&p[0].setProps({getReferenceClientRect:m.clientRect})},onKeyDown(m){return m.event.key==="Escape"?(p?.[0]?.hide(),!0):d?.ref?.onKeyDown(m.event)??!1},onExit(){p?.[0]?.destroy(),d?.destroy()}}}}}const configureMentionExtension=(u,n,d,p)=>{const m=mentionService(u,n,d,p);return Mention.configure({HTMLAttributes:{class:"inline-block px-1.5 py-0.5 rounded font-medium no-underline cursor-pointer transition-all duration-200"},renderText({node:g,suggestion:y}){return`${y?.char??"@"}${g.attrs.label??g.attrs.id}`},renderHTML({node:g,suggestion:y,isFocused:b}){const S=y?.char??"@",E=g?.attrs?.avatar,T=g?.attrs?.type,_=g?.attrs?.from,R=g?.attrs?.inThisThread,A=g?.attrs?.isCrossExposureEnable,C=g?.attrs?.matchStartPosition,k=g?.attrs?.selectId,I=g.attrs.label??g.attrs.id,P=g.attrs.id,O=g?.attrs?.name,D=isReactNativeWebView(),B={"data-type":"mention","data-id":P,"data-label":I,"data-mention-suggestion-char":S,"data-mention-id":P,"data-mention-label":I,"data-mention-avatar":E,"data-mention-in-this-thread":R,"data-mention-name":O,"data-mention-select-id":k,"data-mention-type":T,"data-mention-from":_,"data-mention-is-cross-exposure-enable":A,"data-mention-match-start-position":C,class:"inline-block rounded italic font-medium cursor-pointer transition-all duration-200 text-blue-700 dark:text-blue-300"};if(D){const V=S==="@"?`window.ReactNativeWebView.postMessage(JSON.stringify({type: 'mention', userId: '${P}'}))`:`window.ReactNativeWebView.postMessage(JSON.stringify({type: 'hashtag', groupId: '${P}'}))`;return["span",{...B,onclick:V},`${S}${I}`]}const L=S==="@"?`/users/${P}`:`/groups/${P}`;return["a",{...B,...b?{}:{href:L,target:"_blank"},"data-mention-link":"true"},`${S}${I}`]},suggestions:[createSuggestion("@",m.fetchMentions),createSuggestion("#",m.fetchHashtags)]})},LinkPreviewCompact=({selected:u,href:n,title:d,description:p,image:m,domain:g,onClickDelete:y})=>{const{t:b}=usePostBuilder(),S=React.useMemo(()=>{try{return g||new URL(n).hostname}catch{return"unknown"}},[n,g]),E=T=>{T.preventDefault(),T.stopPropagation(),y()};return jsxRuntime.jsxs("div",{className:cn("not-prose relative w-full group my-4",u?"ring-2 ring-blue-500 ring-offset-2 rounded-lg":""),children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2 absolute z-50 right-2 top-1",children:[jsxRuntime.jsx(ToolbarButton,{asChild:!0,tooltip:"visitLinkKey",children:jsxRuntime.jsxs("span",{className:"relative",children:[jsxRuntime.jsx("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"absolute inset-0"}),jsxRuntime.jsx(ExternalLink,{})]})}),jsxRuntime.jsx(ToolbarButton,{tooltip:"removeLinkPreviewKey",onClick:E,"aria-label":b("removeLinkPreviewKey"),type:"button",size:"icon",className:"cursor-pointer size-6 shadow-none bg-transparent group-hover:bg-destructive/5 hover:bg-destructive/10 text-destructive hover:text-destructive",children:jsxRuntime.jsx(Trash2,{})})]}),jsxRuntime.jsx("div",{className:"relative z-0 w-full",children:jsxRuntime.jsxs("div",{className:"group flex items-center gap-3 rounded-lg border bg-accent/30 p-3 transition-all hover:border-foreground/20 hover:shadow-sm",children:[jsxRuntime.jsx("div",{className:"relative h-16 w-16 shrink-0 overflow-hidden rounded-md bg-muted",children:jsxRuntime.jsx("img",{src:m,alt:d,className:"size-16 object-cover transition-transform group-hover:scale-105"})}),jsxRuntime.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntime.jsx("h3",{className:"truncate text-sm font-semibold leading-tight text-foreground",children:d}),jsxRuntime.jsx("p",{className:"line-clamp-1 text-xs text-muted-foreground",children:p}),jsxRuntime.jsxs("div",{className:"mt-1 flex items-center gap-1 text-xs text-muted-foreground",children:[jsxRuntime.jsx("span",{className:"truncate",children:S}),jsxRuntime.jsx(ExternalLink,{className:"h-3 w-3 shrink-0 opacity-50"})]})]})]})})]})},LinkPreviewExtended=({selected:u,href:n,title:d,description:p,image:m,domain:g,onClickDelete:y})=>{const{t:b}=usePostBuilder(),S=React.useMemo(()=>{try{return g||new URL(n).hostname}catch{return"unknown"}},[n,g]),E=T=>{T.preventDefault(),T.stopPropagation(),y()};return jsxRuntime.jsxs("div",{className:cn("not-prose relative w-full group mt-4",u?"ring-2 ring-blue-500 ring-offset-2 rounded-lg":""),children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2 absolute z-50 right-3 top-3",children:[jsxRuntime.jsx(ToolbarButton,{asChild:!0,tooltip:"visitLinkKey",className:"cursor-pointer backdrop-blur-2xl size-6 shadow-none group-hover:bg-accent/70 group-hover:text-accent-foreground text-primary-send",children:jsxRuntime.jsxs("span",{className:"relative",children:[jsxRuntime.jsx("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"absolute inset-0"}),jsxRuntime.jsx(ExternalLink,{})]})}),jsxRuntime.jsx(ToolbarButton,{tooltip:"removeLinkPreviewKey",onClick:E,"aria-label":b("removeLinkPreviewKey"),type:"button",size:"icon",className:"cursor-pointer backdrop-blur-2xl size-6 shadow-none bg-transparent group-hover:bg-red-50/70 hover:bg-red-50 text-destructive hover:text-destructive",children:jsxRuntime.jsx(Trash2,{})})]}),jsxRuntime.jsx("div",{className:"relative z-0 w-full",children:jsxRuntime.jsxs("div",{className:"group overflow-hidden flex flex-col rounded-lg border bg-accent/30 transition-all hover:border-foreground/20 hover:shadow-sm",children:[jsxRuntime.jsx("div",{className:"relative h-80 w-full shrink-0 overflow-hidden bg-muted border-b",children:jsxRuntime.jsx("img",{src:m,alt:d,className:"size-full object-cover transition-transform group-hover:scale-105"})}),jsxRuntime.jsxs("div",{className:"min-w-0 flex-1 p-3",children:[jsxRuntime.jsxs("div",{className:"mt-1 flex items-center gap-1 text-xs text-muted-foreground",children:[jsxRuntime.jsx("span",{className:"truncate",children:S}),jsxRuntime.jsx(ExternalLink,{className:"h-3 w-3 shrink-0 opacity-50"})]}),jsxRuntime.jsx("h3",{className:"mt-1 mb-2 truncate text-lg font-semibold leading-tight text-foreground",children:d}),jsxRuntime.jsx("p",{className:"line-clamp-2 text-sm text-muted-foreground",children:p})]})]})})]})},LinkPreviewCard=({node:u,deleteNode:n,selected:d})=>{const{loading:p,href:m,domain:g,variant:y}=u.attrs,{t:b}=usePostBuilder(),S=React.useMemo(()=>{try{return g||new URL(m).hostname}catch{return"unknown"}},[m,g]);return p?jsxRuntime.jsx(NodeViewWrapper,{children:jsxRuntime.jsx(Skeleton,{className:"w-full h-24 my-4 flex items-center justify-center rounded-lg",children:jsxRuntime.jsx("span",{className:"text-sm text-muted-foreground",children:b("fetchingMetadataKey")})})}):m?jsxRuntime.jsx(NodeViewWrapper,{contentEditable:!1,"data-drag-handle":!0,children:y===LinkPreviewType.Compact?jsxRuntime.jsx(LinkPreviewCompact,{...u.attrs,selected:d,domain:S,onClickDelete:n}):jsxRuntime.jsx(LinkPreviewExtended,{...u.attrs,selected:d,domain:S,onClickDelete:n})}):null};function insertLinkPreviewAfterLinkImpl(u,n,d,p){let m=null;if(d.doc.descendants((E,T)=>{if(m!==null)return!1;if(E.isText&&E.marks){for(const _ of E.marks)if(_.type.name==="customLink"&&_.attrs.uid===u)return m=T,!1}}),m===null)return!1;const g=d.doc.resolve(m);if(g.depth>1)return!1;let y=!1;if(d.doc.descendants(E=>{if(E.type.name==="linkPreview"&&E.attrs.uid===u)return y=!0,!1}),y)return!1;let b=g.after(1);for(;b<d.doc.content.size;){const E=d.doc.nodeAt(b);if(E?.type.name!=="linkPreview")break;const T=E.attrs.uid;let _=null;if(T&&d.doc.descendants((R,A)=>{if(_!==null)return!1;if(R.isText&&R.marks){for(const C of R.marks)if(C.type.name==="customLink"&&C.attrs.uid===T)return _=A,!1}}),_!==null&&_<m)b+=E.nodeSize;else break}if(!p)return!0;const S=d.schema.nodes.linkPreview;return S?(p(d.tr.insert(b,S.create(n))),!0):!1}const LinkPreview=Node3.create({name:"linkPreview",group:"block",atom:!0,addOptions(){return{variant:LinkPreviewType.Compact,selectable:!0,draggable:!0}},draggable(){return this?.options?.draggable??!0},selectable(){return this?.options?.selectable??!0},addAttributes(){return{variant:{default:this.options.variant},uid:{default:null},href:{default:null},title:{default:null},description:{default:null},image:{default:null},domain:{default:null},loading:{default:!1}}},parseHTML(){return[{tag:"div[data-link-preview]",getAttrs:u=>{if(typeof u=="string")return!1;const n=u,d=n.querySelector("a");return{href:n.getAttribute("data-href")||d?.getAttribute("href")||"",uid:n.getAttribute("data-uid")||null,title:n.getAttribute("data-title")||null,description:n.getAttribute("data-description")||null,image:n.getAttribute("data-image")||null,domain:n.getAttribute("data-domain")||null}}}]},renderHTML({node:u}){const{href:n,uid:d,title:p,description:m,image:g,domain:y}=u.attrs;if(!n)return["div",{}];const b=[["a",{href:n,target:"_blank",rel:"noopener noreferrer",class:"absolute inset-0 z-30","aria-label":p||n}],["div",{class:"relative z-20 flex items-center gap-3 w-full"},...g?[["div",{class:"relative h-16 w-16 flex-shrink-0 overflow-hidden rounded-md bg-muted"},["img",{src:g,alt:p||"",class:"h-full w-full object-cover transition-transform group-hover:scale-105"}]]]:[],["div",{class:"min-w-0 flex-1"},...p?[["h3",{class:"truncate text-sm font-semibold leading-tight text-foreground"},p]]:[],...m?[["p",{class:"line-clamp-1 text-xs text-muted-foreground"},m]]:[],...y?[["div",{class:"mt-1 flex items-center gap-1 text-xs text-muted-foreground"},["span",{class:"truncate"},y]]]:[]]]];return["div",{"data-link-preview":"","data-href":n,"data-uid":d||"","data-title":p||"","data-description":m||"","data-image":g||"","data-domain":y||"",class:"not-prose my-4 relative group flex items-center gap-3 rounded-lg border bg-card p-3 transition-all hover:border-foreground/20 hover:shadow-sm"},...b]},addNodeView(){return ReactNodeViewRenderer(LinkPreviewCard)},addCommands(){return{setLinkPreview:u=>({commands:n,editor:d})=>{if(u.uid){let p=!1;if(d.state.doc.descendants(m=>{if(m.type.name===this.name&&m.attrs.uid===u.uid)return p=!0,!1}),p)return n.updateLinkPreviewByUid(u.uid,u)}return n.insertContent({type:this.name,attrs:u})},updateLinkPreviewByUid:createUpdateByUidCommand(this.name),deleteLinkPreviewByUid:createDeleteByUidCommand(this.name),updateLinkPreview:u=>({commands:n})=>n.updateAttributes(this.name,u),insertLinkPreviewAfterLink:(u,n)=>({state:d,dispatch:p})=>insertLinkPreviewAfterLinkImpl(u,n,d,p)}},addKeyboardShortcuts(){return{"Mod-Shift-k":()=>this.editor.commands.setLinkPreview({href:"",title:null,description:null,image:null,domain:null}),Backspace:()=>{const{selection:u}=this.editor.state,{$anchor:n}=u;return n.parent.type.name===this.name&&n.parentOffset===0?this.editor.commands.deleteNode(this.name):!1}}}}),EnterHardBreak=Extension.create({name:"customEnterHardBreak",addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.setHardBreak()}}}),MediaGroupView=({node:u,editor:n})=>{const{trackMediaRemoved:d}=useAnalyticsTracking(),p=g=>{const y=g?.attrs?.uid,b=n?.view?.dom?.getAttribute("data-editor-type")||EditorTypes.Media;n.commands.deleteMediaByUid(y),d({mediaType:MediaTypeMap[g?.attrs?.type],editorType:b})},m=u?.content?.content||[];return jsxRuntime.jsx(NodeViewWrapper,{className:"not-prose media-group-wrapper select-none leading-none mt-12",contentEditable:!1,children:jsxRuntime.jsxs("div",{className:"flex flex-wrap gap-2 leading-none mt-auto",children:[m.map((g,y)=>{const b=g?.attrs?.uploading,S=g?.attrs?.progress||0;return jsxRuntime.jsxs("div",{className:"relative group leading-none",children:[jsxRuntime.jsx(Button,{size:"icon",onClick:()=>p(g),className:"absolute size-6 top-1 right-1 z-10 p-1.5 bg-red-50 hover:bg-red-100 text-destructive rounded-full shadow-lg transition-all opacity-100 group-hover:scale-110",title:"Delete media",children:jsxRuntime.jsx(X,{className:"w-3.5 h-3.5"})}),b?jsxRuntime.jsxs("div",{className:"size-20 bg-muted rounded-lg border border-border flex items-center justify-center relative overflow-hidden",children:[jsxRuntime.jsxs("div",{className:"text-center space-y-2",children:[g.attrs.type===MediaNodeTypes.Image&&jsxRuntime.jsx(Image$2,{className:"w-8 h-8 text-muted-foreground/50 mx-auto"}),g.attrs.type===MediaNodeTypes.Video&&jsxRuntime.jsx(Video,{className:"w-8 h-8 text-muted-foreground/50 mx-auto"}),g.attrs.type===MediaNodeTypes.Audio&&jsxRuntime.jsx(Music,{className:"w-8 h-8 text-muted-foreground/50 mx-auto"}),jsxRuntime.jsxs("p",{className:"text-xs text-muted-foreground",children:[Math.round(S),"%"]})]}),jsxRuntime.jsx("div",{className:"absolute bottom-0 left-0 right-0 p-2",children:jsxRuntime.jsx(Progress,{value:S,className:"h-1"})})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[g.attrs.type===MediaNodeTypes.Image&&jsxRuntime.jsx("img",{src:g.attrs.src,alt:g.attrs.caption||"",className:"size-20 object-cover rounded-lg border border-border"}),g.attrs.type===MediaNodeTypes.Video&&jsxRuntime.jsx("video",{src:g.attrs.src,className:"size-20 object-cover rounded-lg border border-border"}),g.attrs.type===MediaNodeTypes.Audio&&jsxRuntime.jsx("div",{className:"size-20 flex items-center justify-center bg-accent rounded-lg border border-border",children:jsxRuntime.jsx(Music,{className:"w-8 h-8 text-muted-foreground"})})]}),g.attrs.caption&&!b&&jsxRuntime.jsx("p",{className:"text-xs text-muted-foreground text-center mt-1 truncate w-32",children:g.attrs.caption})]},g?.attrs?.uid||y)}),jsxRuntime.jsx("div",{className:"hidden",children:jsxRuntime.jsx(NodeViewContent,{})})]})})},MediaModePluginKey=new PluginKey("mediaMode"),createMediaModePlugin=()=>{let u=!1;return new Plugin({key:MediaModePluginKey,appendTransaction(n,d,p){if(u||!n.some(g=>g.docChanged)||n.some(g=>g.getMeta("mediaMode-plugin"))||n.some(g=>g.getMeta("addToHistory")===!1))return null;try{u=!0;const g=p.tr;let y=!1;const b=[];if(p.doc.forEach((C,k)=>{C.type.name==="media"&&b.push({node:C,pos:k,size:C.nodeSize})}),b.length===0){let C=!1,k=null;if(p.doc.forEach((I,P)=>{I.type.name==="mediaGroup"&&(C=!0,I.content.size===0&&(g.delete(P,P+I.nodeSize),y=!0)),I.type.name==="paragraph"&&I.descendants(O=>{O.marks&&O.marks.forEach(D=>{D.type.name==="customLink"&&D.attrs.previewPayload&&(k=D.attrs.previewPayload)})})}),y&&C&&k){let I=!1;if(g.doc.forEach(P=>{P.type.name==="linkPreview"&&(I=!0)}),!I&&p.schema.nodes.linkPreview){const P=k,O=p.schema.nodes.linkPreview.create({uid:v4(),href:P.linkUrl??"",title:P.linkTitle??"",description:P.linkDesc??"",image:P.linkImage?.url??"",variant:LinkPreviewType.Extended});g.insert(g.doc.content.size,O),y=!0}}return y&&(g.setMeta("addToHistory",!1),g.setMeta("mediaMode-plugin",!0)),y?g:null}let S=null,E=null;p.doc.forEach((C,k)=>{C.type.name==="linkPreview"&&(S=k,E=C.nodeSize)}),S!==null&&E!==null&&(g.delete(S,Number(S)+Number(E)),y=!0);const T=y?g.doc:p.doc,_=[];T.forEach((C,k)=>{C.type.name==="media"&&_.push({node:C,pos:k,size:C.nodeSize})});let R=null,A=null;if(T.forEach((C,k)=>{C.type.name==="mediaGroup"&&(R=k,A=C)}),R!==null&&A){const C=A.content.size;[..._].sort((B,L)=>L.pos-B.pos).forEach(({pos:B,size:L})=>{g.delete(B,B+L)});const P=_.filter(B=>B.pos<R).reduce((B,L)=>B+L.size,0),D=R-P+1+C;let N=0;_.forEach(({node:B})=>{g.insert(D+N,B),N+=B.nodeSize}),y=!0}else{if(!p.schema.nodes.mediaGroup)return null;const C=_.map(P=>P.node);if(C.some(P=>!P||P.type.name!=="media"))return null;const k=p.schema.nodes.mediaGroup.create({},C);[..._].sort((P,O)=>O.pos-P.pos).forEach(({pos:P,size:O})=>{g.delete(P,P+O)}),g.insert(g.doc.content.size,k),y=!0}if(y){const C=g.doc.content.size;if(C>=0&&C<=g.doc.content.size)try{const k=g.doc.resolve(C);g.setSelection(TextSelection.near(k))}catch{}g.setMeta("addToHistory",!1),g.setMeta("mediaMode-plugin",!0)}return y?g:null}catch{return null}finally{u=!1}}})},MediaGroupNode=Node3.create({name:"mediaGroup",group:"block",content:"media*",atom:!1,selectable:!1,draggable:!1,addOptions(){return{mediaMode:!1}},parseHTML(){return[{tag:"div[data-media-group]"}]},renderHTML({HTMLAttributes:u}){return["div",mergeAttributes(u,{"data-media-group":""}),0]},addNodeView(){return ReactNodeViewRenderer(MediaGroupView)},addProseMirrorPlugins(){return this.options.mediaMode?[createMediaModePlugin()]:[]}}),StripHyperlinkText=Extension.create({name:"stripHyperlinkText",addProseMirrorPlugins(){return[new Plugin({key:new PluginKey("stripHyperlinkText"),props:{transformPastedHTML(u){const n=new DOMParser().parseFromString(u,"text/html");return n.querySelectorAll("a[href]").forEach(d=>{const p=d.href||d.getAttribute("href")||"",m=d.textContent?.trim()??"";if(p&&m&&m!==p){const g=d.parentNode;g&&(g.insertBefore(n.createTextNode(`${m} (`),d),d.textContent=p,d.after(n.createTextNode(")")))}}),n.body.innerHTML}}})]}}),CODE_HTML_ATTRIBUTES={class:"bg-muted text-foreground border border-border font-mono leading-snug rounded px-0.5 py-px after:content-none before:content-none"},CODE_BLOCK_HTML_ATTRIBUTES={class:"bg-muted text-foreground border border-border font-mono leading-snug rounded"},createCustomDocument=u=>index_default$9.extend({content:u}),PollDoc=createCustomDocument("paragraph+ poll"),MediaDoc=createCustomDocument("paragraph+ media? linkPreview? mediaGroup?");createCustomDocument("paragraph linkPreview?");const getStarterKitConfig=({includeLink:u=!1,includeDocument:n=!0})=>({...n?{}:{document:!1},...u?{}:{link:!1},code:{HTMLAttributes:CODE_HTML_ATTRIBUTES},codeBlock:{HTMLAttributes:CODE_BLOCK_HTML_ATTRIBUTES}}),getPlaceholderExtension=u=>Placeholder.configure({placeholder:u,showOnlyWhenEditable:!0}),getMentionExtension=(u,n,d,p)=>configureMentionExtension(u,n,d,p),getExtensions=({editorType:u,api:n,store:d,user:p})=>{const g={[EditorTypes.Blog]:getDefaultExtensions,[EditorTypes.Media]:getMediaExtensions,[EditorTypes.Poll]:getPollExtensions}[u];return g?g({api:n,store:d,user:p}):[]},getDefaultExtensions=({api:u,store:n,user:d})=>{const{core:p,mfs:m,fileStore:g}=u;return[index_default$4.configure(getStarterKitConfig({includeLink:!1})),getPlaceholderExtension(`What's on your mind, ${d?.name?d?.name:""}`),index_default$2,index_default$1,index_default$3.configure({types:["heading","paragraph","media"],alignments:[Alignment.LEFT,Alignment.CENTER,Alignment.RIGHT],defaultAlignment:Alignment.LEFT}),MediaNode,Poll,Iframe.configure({api:p}),CustomLink.configure({openOnClick:!1,linkOnPaste:!1,api:p}),LinkPreview,getMentionExtension(p,m,n,d),SmartMediaUpload.configure({api:g}),SmartLinkPaste.configure({api:p})]},getPollExtensions=({api:u,store:n,user:d})=>{const{core:p,mfs:m}=u;return[PollDoc,index_default$6,index_default$5,index_default$7.configure({HTMLAttributes:{class:"underline"}}),index_default$8,getPlaceholderExtension("Ask a Question"),EnterHardBreak,Poll,getMentionExtension(p,m,n,d),StripHyperlinkText]},getMediaExtensions=({api:u,store:n,user:d})=>{const{core:p,mfs:m,fileStore:g}=u;return[MediaDoc,index_default$6,index_default$5,index_default$8,getPlaceholderExtension(`What's on your mind, ${d?.name?d?.name:""}`),EnterHardBreak,MediaNode.configure({attrs:{mediaMode:!0}}),MediaGroupNode.configure({mediaMode:!0}),CustomLink.configure({openOnClick:!1,linkOnPaste:!1,api:p,linkMode:!0}),LinkPreview.configure({variant:LinkPreviewType.Extended,draggable:!1}),getMentionExtension(p,m,n,d),SmartMediaUpload.configure({api:g}),SmartLinkPaste.configure({api:p,autoEmbed:!1,autoLinkSelection:!1}),StripHyperlinkText]},getEditorProps=()=>({attributes:{class:cn(`max-w-full min-h-44 prose prose-sm sm:prose-base px-4 py-2 prose-img:my-3
239
239
 
240
240
  prose-blockquote:p-4 prose-blockquote:my-4 prose-blockquote:border-s-4
241
241
  prose-blockquote:border-gray-300 prose-blockquote:bg-gray-50
@@ -51148,7 +51148,10 @@ const LinkPreview = Node3.create({
51148
51148
  const n = new DOMParser().parseFromString(u, "text/html");
51149
51149
  return n.querySelectorAll("a[href]").forEach((d) => {
51150
51150
  const p = d.href || d.getAttribute("href") || "", m = d.textContent?.trim() ?? "";
51151
- p && m && m !== p && (d.textContent = p);
51151
+ if (p && m && m !== p) {
51152
+ const g = d.parentNode;
51153
+ g && (g.insertBefore(n.createTextNode(`${m} (`), d), d.textContent = p, d.after(n.createTextNode(")")));
51154
+ }
51152
51155
  }), n.body.innerHTML;
51153
51156
  }
51154
51157
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@select-org/select-post-builder",
3
- "version": "1.1.43",
3
+ "version": "1.1.44",
4
4
  "description": "A reusable, extensible Post Builder widget for the Select platform and beyond.",
5
5
  "main": "./dist/post-builder.cjs.js",
6
6
  "module": "./dist/post-builder.js",