/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@markslides/editor@1.0.1/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,t)=>{for(var r in t)__defProp(e,r,{get:t[r],enumerable:!0})},__copyProps=(e,t,r,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of __getOwnPropNames(t))__hasOwnProp.call(e,i)||i===r||__defProp(e,i,{get:()=>t[i],enumerable:!(o=__getOwnPropDesc(t,i))||o.enumerable});return e},__toESM=(e,t,r)=>(r=null!=e?__create(__getProtoOf(e)):{},__copyProps(!t&&e&&e.__esModule?r:__defProp(r,"default",{value:e,enumerable:!0}),e)),__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),index_exports={};__export(index_exports,{default:()=>index_default}),module.exports=__toCommonJS(index_exports);var import_react5=require("react"),import_styled_components4=__toESM(require("styled-components")),import_lang_markdown=require("@codemirror/lang-markdown"),import_language_data=require("@codemirror/language-data"),import_view6=require("@codemirror/view"),import_state=require("@codemirror/state"),import_view=require("@codemirror/view"),import_common=require("@lezer/common"),fromHistory=import_state.Annotation.define(),isolateHistory=import_state.Annotation.define(),invertedEffects=import_state.Facet.define(),historyConfig=import_state.Facet.define({combine:e=>(0,import_state.combineConfig)(e,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(r,o)=>e(r,o)||t(r,o)})}),historyField_=import_state.StateField.define({create:()=>HistoryState.empty,update(e,t){let r=t.state.facet(historyConfig),o=t.annotation(fromHistory);if(o){let i=HistEvent.fromTransaction(t,o.selection),n=o.side,a=0==n?e.undone:e.done;return a=i?updateBranch(a,a.length,r.minDepth,i):addSelection(a,t.startState.selection),new HistoryState(0==n?o.rest:a,0==n?a:o.rest)}let i=t.annotation(isolateHistory);if("full"!=i&&"before"!=i||(e=e.isolate()),!1===t.annotation(import_state.Transaction.addToHistory))return t.changes.empty?e:e.addMapping(t.changes.desc);let n=HistEvent.fromTransaction(t),a=t.annotation(import_state.Transaction.time),s=t.annotation(import_state.Transaction.userEvent);return n?e=e.addChanges(n,a,s,r,t):t.selection&&(e=e.addSelection(t.startState.selection,a,s,r.newGroupDelay)),"full"!=i&&"after"!=i||(e=e.isolate()),e},toJSON:e=>({done:e.done.map((e=>e.toJSON())),undone:e.undone.map((e=>e.toJSON()))}),fromJSON:e=>new HistoryState(e.done.map(HistEvent.fromJSON),e.undone.map(HistEvent.fromJSON))});function history(e={}){return[historyField_,historyConfig.of(e),import_view.EditorView.domEventHandlers({beforeinput(e,t){let r="historyUndo"==e.inputType?undo:"historyRedo"==e.inputType?redo:null;return!!r&&(e.preventDefault(),r(t))}})]}function cmd(e,t){return function({state:r,dispatch:o}){if(!t&&r.readOnly)return!1;let i=r.field(historyField_,!1);if(!i)return!1;let n=i.pop(e,r,t);return!!n&&(o(n),!0)}}var undo=cmd(0,!1),redo=cmd(1,!1),HistEvent=class e{constructor(e,t,r,o,i){this.changes=e,this.effects=t,this.mapped=r,this.startSelection=o,this.selectionsAfter=i}setSelAfter(t){return new e(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){var e,t,r;return{changes:null===(e=this.changes)||void 0===e?void 0:e.toJSON(),mapped:null===(t=this.mapped)||void 0===t?void 0:t.toJSON(),startSelection:null===(r=this.startSelection)||void 0===r?void 0:r.toJSON(),selectionsAfter:this.selectionsAfter.map((e=>e.toJSON()))}}static fromJSON(t){return new e(t.changes&&import_state.ChangeSet.fromJSON(t.changes),[],t.mapped&&import_state.ChangeDesc.fromJSON(t.mapped),t.startSelection&&import_state.EditorSelection.fromJSON(t.startSelection),t.selectionsAfter.map(import_state.EditorSelection.fromJSON))}static fromTransaction(t,r){let o=none;for(let e of t.startState.facet(invertedEffects)){let r=e(t);r.length&&(o=o.concat(r))}return!o.length&&t.changes.empty?null:new e(t.changes.invert(t.startState.doc),o,void 0,r||t.startState.selection,none)}static selection(t){return new e(void 0,none,void 0,void 0,t)}};function updateBranch(e,t,r,o){let i=t+1>r+20?t-r-1:0,n=e.slice(i,t);return n.push(o),n}function isAdjacent(e,t){let r=[],o=!1;return e.iterChangedRanges(((e,t)=>r.push(e,t))),t.iterChangedRanges(((e,t,i,n)=>{for(let e=0;e<r.length;){let t=r[e++],a=r[e++];n>=t&&i<=a&&(o=!0)}})),o}function eqSelectionShape(e,t){return e.ranges.length==t.ranges.length&&0===e.ranges.filter(((e,r)=>e.empty!=t.ranges[r].empty)).length}function conc(e,t){return e.length?t.length?e.concat(t):e:t}var none=[],MaxSelectionsPerEvent=200;function addSelection(e,t){if(e.length){let r=e[e.length-1],o=r.selectionsAfter.slice(Math.max(0,r.selectionsAfter.length-MaxSelectionsPerEvent));return o.length&&o[o.length-1].eq(t)?e:(o.push(t),updateBranch(e,e.length-1,1e9,r.setSelAfter(o)))}return[HistEvent.selection([t])]}function popSelection(e){let t=e[e.length-1],r=e.slice();return r[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),r}function addMappingToBranch(e,t){if(!e.length)return e;let r=e.length,o=none;for(;r;){let i=mapEvent(e[r-1],t,o);if(i.changes&&!i.changes.empty||i.effects.length){let t=e.slice(0,r);return t[r-1]=i,t}t=i.mapped,r--,o=i.selectionsAfter}return o.length?[HistEvent.selection(o)]:none}function mapEvent(e,t,r){let o=conc(e.selectionsAfter.length?e.selectionsAfter.map((e=>e.map(t))):none,r);if(!e.changes)return HistEvent.selection(o);let i=e.changes.map(t),n=t.mapDesc(e.changes,!0),a=e.mapped?e.mapped.composeDesc(n):n;return new HistEvent(i,import_state.StateEffect.mapEffects(e.effects,t),a,e.startSelection.map(n),o)}var joinableUserEvent=/^(input\.type|delete)($|\.)/,HistoryState=class e{constructor(e,t,r=0,o=void 0){this.done=e,this.undone=t,this.prevTime=r,this.prevUserEvent=o}isolate(){return this.prevTime?new e(this.done,this.undone):this}addChanges(t,r,o,i,n){let a=this.done,s=a[a.length-1];return a=s&&s.changes&&!s.changes.empty&&t.changes&&(!o||joinableUserEvent.test(o))&&(!s.selectionsAfter.length&&r-this.prevTime<i.newGroupDelay&&i.joinToEvent(n,isAdjacent(s.changes,t.changes))||"input.type.compose"==o)?updateBranch(a,a.length-1,i.minDepth,new HistEvent(t.changes.compose(s.changes),conc(import_state.StateEffect.mapEffects(t.effects,s.changes),s.effects),s.mapped,s.startSelection,none)):updateBranch(a,a.length,i.minDepth,t),new e(a,none,r,o)}addSelection(t,r,o,i){let n=this.done.length?this.done[this.done.length-1].selectionsAfter:none;return n.length>0&&r-this.prevTime<i&&o==this.prevUserEvent&&o&&/^select($|\.)/.test(o)&&eqSelectionShape(n[n.length-1],t)?this:new e(addSelection(this.done,t),this.undone,r,o)}addMapping(t){return new e(addMappingToBranch(this.done,t),addMappingToBranch(this.undone,t),this.prevTime,this.prevUserEvent)}pop(e,t,r){let o=0==e?this.done:this.undone;if(0==o.length)return null;let i=o[o.length-1],n=i.selectionsAfter[0]||t.selection;if(r&&i.selectionsAfter.length)return t.update({selection:i.selectionsAfter[i.selectionsAfter.length-1],annotations:fromHistory.of({side:e,rest:popSelection(o),selection:n}),userEvent:0==e?"select.undo":"select.redo",scrollIntoView:!0});if(i.changes){let r=1==o.length?none:o.slice(0,o.length-1);return i.mapped&&(r=addMappingToBranch(r,i.mapped)),t.update({changes:i.changes,selection:i.startSelection,effects:i.effects,annotations:fromHistory.of({side:e,rest:r,selection:n}),filter:!1,userEvent:0==e?"undo":"redo",scrollIntoView:!0})}return null}};HistoryState.empty=new HistoryState(none,none);var segmenter="undefined"!=typeof Intl&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null,import_common2=require("@lezer/common"),import_react_codemirror2=__toESM(require("@uiw/react-codemirror")),import_codemirror_extensions_langs=require("@uiw/codemirror-extensions-langs"),import_codemirror_extensions_color=require("@uiw/codemirror-extensions-color"),import_codemirror_themes_all=require("@uiw/codemirror-themes-all"),import_react=require("react"),import_view2=require("@codemirror/view"),regExpForFence=/^```/,codemirrorUtil={getCurrentSelectionStr:e=>{const{from:t,to:r}=e.selection.main;return e.sliceDoc(t,r)},getCurrentCursorPosition:e=>e.selection.main.head,getCurrentLineNumber:e=>e.doc.lineAt(e.selection.main.head).number,getLineFromSlideIndex:(e,t)=>{let r=1,o=1,i=!1;const n=e.doc.iterLines();for(;!n.done&&r<e.doc.lines&&(regExpForFence.test(n.value)&&(i=!i),"---"!==n.value||i||o++,r++,o!==t+1);)n.next();return e.doc.line(r)},getPageInfo:e=>{const t=e.doc.lineAt(e.selection.main.head).number;let r=1,o=1,i=1,n=!1;const a=e.doc.iterLines();for(;!a.done;)regExpForFence.test(a.value)&&(n=!n),"---"!==a.value||n||o++,r===t&&(i=o),r++,a.next();return{currentPageNumber:i,totalPageCount:o}}},util_default=codemirrorUtil;function useBottomPanelExtension(){const e=(0,import_react.useMemo)((()=>{if("undefined"==typeof window)return null;const e=document.createElement("div");return e.setAttribute("style","\npadding: 2px 8px;\nfont-size: 12px;".replaceAll("\n","").trim()),e}),[]);return(0,import_react.useMemo)((()=>{if(!e)return import_view2.showPanel.of(null);return import_view2.showPanel.of((t=>{const{currentPageNumber:r,totalPageCount:o}=util_default.getPageInfo(t.state);return e.textContent=`Current page: ${r}/${o}`,{dom:e,update:t=>{const{currentPageNumber:r,totalPageCount:o}=util_default.getPageInfo(t.state);e.textContent=`Current page: ${r}/${o}`}}}))}),[e])}var useBottomPanelExtension_default=useBottomPanelExtension,import_react2=require("react"),import_styled_components=__toESM(require("styled-components")),import_renderer=require("@markslides/renderer"),import_jsx_runtime=require("react/jsx-runtime");function findMarpitSvgElement(e){let t=e;for(;null!==t;){if("svg"===t.tagName&&null!==t.getAttribute("data-marpit-svg"))return t;if(!t.parentElement)break;t=t.parentElement}return null}function getIndexOfChildElement(e,t){const r=e.children;let o;for(o=0;o<r.length&&r[o]!==t;o++);return o}var Wrapper=import_styled_components.default.div`
    min-height: 100%;
    height: max-content;
    padding: 32px;
    background-color: #eeeeee;
`,MarpitContainer=import_styled_components.default.div`
    height: 100%;

    .marpit {
        min-height: 100%;
        display: flex;
        flex-direction: column;
        gap: 32px;
        font-family: 'Noto Sans KR', sans-serif;

        & > * {
            box-shadow: 0 0 4px 8px transparent;
            /* border-width: 8px;
            border-style: solid;
            border-color: transparent;
            transition: border-color 0.2s ease-in-out; */
            transition: box-shadow 0.2s ease-in-out;
        }
        & > :nth-child(${({$currentSlideNum:e})=>e}) {
            box-shadow: 0 0 4px 8px #d292ff;
        }
    }
`;function PreviewFragment(e,t){const{config:r,content:o,onClickSlide:i}=e,{html:n,css:a,comments:s,refresh:c}=(0,import_renderer.useDefaultMarpRender)(r,o),l=(0,import_react2.useRef)(null),[m,d]=(0,import_react2.useState)(1);(0,import_react2.useImperativeHandle)(t,(()=>({setCurrentPage:(e,t=!0)=>{if(d(e),l.current&&t){const t=l.current.querySelector(".marpit");if(t){const r=t.children[e-1];r&&r.scrollIntoView({container:"nearest",block:"center",inline:"center",behavior:"smooth"})}}}})));const u=(0,import_react2.useCallback)((e=>{const t=findMarpitSvgElement(e.target);if(t&&t.parentElement){const e=getIndexOfChildElement(t.parentElement,t);i(t,e)}}),[i]);return n?(0,import_jsx_runtime.jsxs)(Wrapper,{ref:l,children:[(0,import_jsx_runtime.jsx)("style",{children:a}),(0,import_jsx_runtime.jsx)(MarpitContainer,{$currentSlideNum:m,dangerouslySetInnerHTML:{__html:n},onClick:u})]}):(0,import_jsx_runtime.jsx)(Wrapper,{})}var PreviewFragment_default=(0,import_react2.memo)((0,import_react2.forwardRef)(PreviewFragment)),import_react3=require("react"),import_styled_components2=__toESM(require("styled-components")),appConst={EDITOR_TOOLBAR_ID:"editor-toolbar"},appConst_default=appConst,import_jsx_runtime2=require("react/jsx-runtime"),TOOLBAR_HEIGHT=32,Wrapper2=import_styled_components2.default.div`
    height: ${TOOLBAR_HEIGHT}px;
    display: flex;
    flex-wrap: wrap;
    background-color: white;
    box-shadow: 0 -1px 0 0 #eeeeee inset;
`,ToolbarItem=import_styled_components2.default.button`
    all: unset;
    width: 32px;
    height: ${TOOLBAR_HEIGHT}px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: black;
    cursor: pointer;
    transition: background-color 0.2s ease-in-out;
    background-color: transparent;
    &:hover {
        background-color: #dddddd;
    }
`;function EditorToolbar(e,t){const{toolbarCommands:r,codeMirrorRef:o}=e;return(0,import_jsx_runtime2.jsx)(Wrapper2,{id:appConst_default.EDITOR_TOOLBAR_ID,ref:t,children:r.map((e=>(0,import_jsx_runtime2.jsx)(ToolbarItem,{"aria-label":e.name,onClick:()=>{o.current&&e.execute(o.current)},children:e.icon},e.name)))})}var EditorToolbar_default=(0,import_react3.memo)((0,import_react3.forwardRef)(EditorToolbar),((e,t)=>e.toolbarCommands===t.toolbarCommands)),import_react4=require("react"),import_styled_components3=__toESM(require("styled-components")),import_lucide_react=require("lucide-react"),import_jsx_runtime3=require("react/jsx-runtime"),CurrentPageSyncButtonContainer=import_styled_components3.default.div`
    width: 40px;
    height: 40px;
    position: absolute;
    margin: auto;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #dddddd;
    border-radius: 100%;
    cursor: pointer;
    transition: background-color 0.2s ease-in-out;
    background-color: white;
    &:hover {
        background-color: #cccccc;
    }
`,StyledButton=import_styled_components3.default.button`
    all: unset;
    width: 20px;
    height: 20px;
`;function CurrentPageSyncButton(e){const{isSyncCurrentPage:t,onToggle:r}=e;return(0,import_jsx_runtime3.jsx)(CurrentPageSyncButtonContainer,{onClick:r,children:(0,import_jsx_runtime3.jsx)(StyledButton,{children:t?(0,import_jsx_runtime3.jsx)(import_lucide_react.RefreshCwIcon,{color:"#333333",size:20}):(0,import_jsx_runtime3.jsx)(import_lucide_react.RefreshCwOffIcon,{color:"#666666",size:20})})})}var CurrentPageSyncButton_default=(0,import_react4.memo)(CurrentPageSyncButton),import_state5=require("@codemirror/state"),import_react_codemirror=require("@uiw/react-codemirror"),import_state2=require("@codemirror/state"),boldCommand=e=>(e&&e.hasFocus&&e.dispatch(e.state.changeByRange((e=>({changes:[{from:e.from,insert:"**"},{from:e.to,insert:"**"}],range:import_state2.EditorSelection.range(e.from+2,e.to+2)})))),!0),boldCommand_default=boldCommand,import_state3=require("@codemirror/state"),italicCommand=e=>(e&&e.hasFocus&&e.dispatch(e.state.changeByRange((e=>({changes:[{from:e.from,insert:"*"},{from:e.to,insert:"*"}],range:import_state3.EditorSelection.range(e.from+1,e.to+1)})))),!0),italicCommand_default=italicCommand,import_state4=require("@codemirror/state"),underlineCommand=e=>(e&&e.hasFocus&&e.dispatch(e.state.changeByRange((e=>({changes:[{from:e.from,insert:"<u>"},{from:e.to,insert:"</u>"}],range:import_state4.EditorSelection.range(e.from+3,e.to+3)})))),!0),underlineCommand_default=underlineCommand,newSlideCommand=e=>{const t=e.state.selection.main.head;return e&&e.hasFocus&&e.dispatch({changes:{from:t-1,insert:"\n---\n"}}),!0},newSlideCommand_default=newSlideCommand,shortcutExtension=import_state5.Prec.high(import_react_codemirror.keymap.of([{key:"Cmd-b",run:boldCommand_default},{key:"Cmd-i",run:italicCommand_default},{key:"Cmd-u",run:underlineCommand_default},{key:"Cmd-Enter",run:newSlideCommand_default}])),shortcutExtension_default=shortcutExtension,import_state6=require("@codemirror/state"),import_view3=require("@codemirror/view"),regExpForPageDivider=/^---$/g,regExpForFence2=/^```/;function addClassnameToDividers(e){const t=new import_state6.RangeSetBuilder,r=e.state.doc,o=[];let i=-1;for(let e=1;e<=r.lines;e++){const t=r.line(e),n=t.text;regExpForFence2.test(n)&&(-1===i?i=t.from:(o.push({from:i,to:t.to}),i=-1))}const n=e=>o.some((t=>e>=t.from&&e<=t.to));for(let{from:r,to:o}of e.visibleRanges)for(let i=r;i<=o;){const r=e.state.doc.lineAt(i),o=r.text;if(!n(r.from)){regExpForPageDivider.exec(o)&&t.add(r.from,r.from,import_view3.Decoration.line({class:"cm-page-divider"}))}i=r.to+1}return t.finish()}var dividerHighlightExtension=import_view3.ViewPlugin.fromClass(class{decorations;constructor(e){this.decorations=addClassnameToDividers(e)}update(e){(e.docChanged||e.viewportChanged)&&(this.decorations=addClassnameToDividers(e.view))}},{decorations:e=>e.decorations}),dividerHighlightExtension_default=dividerHighlightExtension,import_lint=require("@codemirror/lint"),regExpForTableDivider=/(\|\s*-+\s*)+\|/g,regExpForWrongPageDivider=/^\s*---[\s|\S]+/g,lintExtension=(0,import_lint.linter)((e=>{const t=[];for(let r=1;r<=e.state.doc.lines;r++){const o=e.state.doc.line(r);if(regExpForTableDivider.test(o.text))continue;const i=regExpForWrongPageDivider.exec(o.text);i&&t.push({from:o.from+i.index,to:o.from+i.index+i[0].length,message:`Line ${r}: Invalid page divider. Please use it exactly in '---' form.`,severity:"warning"})}return t}),{delay:500}),lintExtension_default=lintExtension,import_view4=require("@codemirror/view"),regExpForFence3=/^```/;function slideInfoExtension(e){let t=null;return import_view4.EditorView.updateListener.of((r=>{const{state:o}=r,i=util_default.getCurrentLineNumber(o);let n=1,a=1,s=1,c="",l=[],m=!0,d=!1;const u=o.doc.iterLines();for(;!u.done;){if(regExpForFence3.test(u.value)&&(d=!d),"---"!==u.value||d||(a>1&&m&&l.push(""),a++,m=!0),m&&u.value.startsWith("#")){m=!1;const e=u.value.split(/# /);e.length>1&&(1===a&&(c=e[1]),l.push(e[1]))}n===i&&(s=a),n++,u.next()}const p={slideTitle:c,currentPageTitle:l[s-1],currentPageNumber:s,totalPageCount:a},_=r.selectionSet;t&&t.slideTitle===p.slideTitle&&t.currentPageTitle===p.currentPageTitle&&t.currentPageNumber===p.currentPageNumber&&t.totalPageCount===p.totalPageCount&&!_||(t={...p},e(p))}))}var slideInfoExtension_default=slideInfoExtension,import_view5=require("@codemirror/view"),overwriteModeExtension_default=import_view5.EditorView.domEventHandlers({keydown(e,t){if(1===e.key.length&&!e.ctrlKey&&!e.metaKey&&!e.altKey){const{state:e}=t,{from:r,to:o}=e.selection.main;if(r!==o)return!1;const i=r+1;if(i<=e.doc.length){"\n"!==e.doc.sliceString(r,i)&&t.dispatch({selection:{anchor:r,head:i}})}}return!1}}),import_lucide_react2=require("lucide-react"),import_jsx_runtime4=require("react/jsx-runtime"),undo2={name:"undo",icon:(0,import_jsx_runtime4.jsx)(import_lucide_react2.UndoIcon,{size:16}),execute:e=>{const{state:t,view:r}=e;t&&r&&undo(r)}},undo_default=undo2,import_lucide_react3=require("lucide-react"),import_jsx_runtime5=require("react/jsx-runtime"),redo2={name:"redo",icon:(0,import_jsx_runtime5.jsx)(import_lucide_react3.RedoIcon,{size:16}),execute:e=>{const{state:t,view:r}=e;t&&r&&redo(r)}},redo_default=redo2,import_lucide_react4=require("lucide-react"),import_jsx_runtime6=require("react/jsx-runtime"),heading={name:"heading",icon:(0,import_jsx_runtime6.jsx)(import_lucide_react4.HeadingIcon,{size:16,strokeWidth:4}),execute:e=>{const{state:t,view:r}=e;if(!t||!r)return;const o=r.state.doc.lineAt(r.state.selection.main.from);let i="#";const n=o.text.match(/^#+/);if(n&&n[0]){const e=n[0];e.length<6&&(i=e+"#")}i.length>6&&(i="#");const a=o.text.replace(/^#+/,"");r.dispatch({changes:{from:o.from,to:o.to,insert:`${i} ${a}`},selection:{anchor:o.from+i.length+1}})}},heading_default=heading,import_state7=require("@codemirror/state"),import_lucide_react5=require("lucide-react"),import_jsx_runtime7=require("react/jsx-runtime"),bold={name:"bold",icon:(0,import_jsx_runtime7.jsx)(import_lucide_react5.BoldIcon,{size:16,strokeWidth:4}),execute:e=>{const{state:t,view:r}=e;t&&r&&r.dispatch(r.state.changeByRange((e=>({changes:[{from:e.from,insert:"**"},{from:e.to,insert:"**"}],range:import_state7.EditorSelection.range(e.from+2,e.to+2)}))))}},bold_default=bold,import_state8=require("@codemirror/state"),import_lucide_react6=require("lucide-react"),import_jsx_runtime8=require("react/jsx-runtime"),italic={name:"italic",icon:(0,import_jsx_runtime8.jsx)(import_lucide_react6.ItalicIcon,{size:16}),execute:e=>{const{state:t,view:r}=e;t&&r&&r.dispatch(r.state.changeByRange((e=>({changes:[{from:e.from,insert:"*"},{from:e.to,insert:"*"}],range:import_state8.EditorSelection.range(e.from+1,e.to+1)}))))}},italic_default=italic,import_state9=require("@codemirror/state"),import_lucide_react7=require("lucide-react"),import_jsx_runtime9=require("react/jsx-runtime"),strike={name:"strike",icon:(0,import_jsx_runtime9.jsx)(import_lucide_react7.StrikethroughIcon,{size:16}),execute:e=>{const{state:t,view:r}=e;t&&r&&r.dispatch(r.state.changeByRange((e=>({changes:[{from:e.from,insert:"~~"},{from:e.to,insert:"~~"}],range:import_state9.EditorSelection.range(e.from+2,e.to+2)}))))}},strike_default=strike,import_state10=require("@codemirror/state"),import_lucide_react8=require("lucide-react"),import_jsx_runtime10=require("react/jsx-runtime"),underline={name:"underline",icon:(0,import_jsx_runtime10.jsx)(import_lucide_react8.UnderlineIcon,{size:16}),execute:e=>{const{state:t,view:r}=e;t&&r&&r.dispatch(r.state.changeByRange((e=>({changes:[{from:e.from,insert:"<u>"},{from:e.to,insert:"</u>"}],range:import_state10.EditorSelection.range(e.from+3,e.to+3)}))))}},underline_default=underline,import_lucide_react9=require("lucide-react"),import_jsx_runtime11=require("react/jsx-runtime"),blockQuotes={name:"blockQuotes",icon:(0,import_jsx_runtime11.jsx)(import_lucide_react9.QuoteIcon,{size:16,fill:"black"}),execute:e=>{const{state:t,view:r}=e;if(!t||!r)return;const o=r.state.doc.lineAt(r.state.selection.main.from);let i="> ";const n=o.text.match(/^>\s/);n&&n[0]&&(i=""),r.dispatch({changes:{from:o.from,to:o.to,insert:`${i}${o.text}`},selection:{anchor:r.state.selection.main.from+i.length}})}},blockQuotes_default=blockQuotes,import_lucide_react10=require("lucide-react"),import_jsx_runtime12=require("react/jsx-runtime"),orderedList={name:"orderedList",icon:(0,import_jsx_runtime12.jsx)(import_lucide_react10.ListOrderedIcon,{size:20}),execute:e=>{const{state:t,view:r}=e;if(!t||!r)return;const o=r.state.doc.lineAt(r.state.selection.main.from);let i="1. ";const n=o.text.match(/^\d+\. /);n&&n[0]&&(i=""),r.dispatch({changes:{from:o.from,to:o.to,insert:`${i}${o.text}`},selection:{anchor:r.state.selection.main.from+i.length}})}},orderedList_default=orderedList,import_lucide_react11=require("lucide-react"),import_jsx_runtime13=require("react/jsx-runtime"),unorderedList={name:"unorderedList",icon:(0,import_jsx_runtime13.jsx)(import_lucide_react11.ListIcon,{size:16}),execute:e=>{const{state:t,view:r}=e;if(!t||!r)return;const o=r.state.doc.lineAt(r.state.selection.main.from);let i="- ";const n=o.text.match(/^-/);n&&n[0]&&(i=""),r.dispatch({changes:{from:o.from,to:o.to,insert:`${i}${o.text}`},selection:{anchor:r.state.selection.main.from+i.length}})}},unorderedList_default=unorderedList,import_lucide_react12=require("lucide-react"),import_jsx_runtime14=require("react/jsx-runtime"),todoList={name:"todoList",icon:(0,import_jsx_runtime14.jsx)(import_lucide_react12.ListChecksIcon,{size:16}),execute:e=>{const{state:t,view:r}=e;if(!t||!r)return;const o=r.state.doc.lineAt(r.state.selection.main.from);let i="- [ ]  ";const n=o.text.match(/^-\s\[\s\]\s/);n&&n[0]&&(i=""),r.dispatch({changes:{from:o.from,to:o.to,insert:`${i}${o.text}`},selection:{anchor:r.state.selection.main.from+i.length}})}},todoList_default=todoList,import_state11=require("@codemirror/state"),import_lucide_react13=require("lucide-react"),import_jsx_runtime15=require("react/jsx-runtime"),link={name:"link",icon:(0,import_jsx_runtime15.jsx)(import_lucide_react13.LinkIcon,{size:16}),execute:e=>{const{state:t,view:r}=e;if(!t||!r)return;const o=r.state.selection.main,i=r.state.sliceDoc(r.state.selection.main.from,r.state.selection.main.to);r.dispatch({changes:{from:o.from,to:o.to,insert:`[${i}]()`},selection:import_state11.EditorSelection.range(o.from+3+i.length,o.to+3)})}},link_default=link,import_state12=require("@codemirror/state"),import_lucide_react14=require("lucide-react"),import_jsx_runtime16=require("react/jsx-runtime"),image={name:"image",icon:(0,import_jsx_runtime16.jsx)(import_lucide_react14.ImageIcon,{size:16}),execute:e=>{const{state:t,view:r}=e;if(!t||!r)return;const o=r.state.selection.main,i=r.state.sliceDoc(r.state.selection.main.from,r.state.selection.main.to);r.dispatch({changes:{from:o.from,to:o.to,insert:`![](${i})`},selection:import_state12.EditorSelection.range(o.from+4,o.to+4)})}},image_default=image,import_state13=require("@codemirror/state"),import_lucide_react15=require("lucide-react"),import_jsx_runtime17=require("react/jsx-runtime"),code={name:"code",icon:(0,import_jsx_runtime17.jsx)(import_lucide_react15.CodeXmlIcon,{size:16}),execute:e=>{const{state:t,view:r}=e;t&&r&&r.dispatch(r.state.changeByRange((e=>({changes:[{from:e.from,insert:"`"},{from:e.to,insert:"`"}],range:import_state13.EditorSelection.range(e.from+1,e.to+1)}))))}},code_default=code,import_state14=require("@codemirror/state"),import_lucide_react16=require("lucide-react"),import_jsx_runtime18=require("react/jsx-runtime"),codeBlock={name:"codeBlock",icon:(0,import_jsx_runtime18.jsx)(import_lucide_react16.FileCode2Icon,{size:16}),execute:e=>{const{state:t,view:r}=e;if(!t||!r)return;const o=r.state.selection.main,i=r.state.sliceDoc(r.state.selection.main.from,r.state.selection.main.to);r.dispatch({changes:{from:o.from,to:o.to,insert:`\`\`\`js\n${i}\n\`\`\``},selection:import_state14.EditorSelection.range(o.from+3,o.from+5)})}},codeBlock_default=codeBlock,import_jsx_runtime19=require("react/jsx-runtime");function MermaidIcon(e){const{size:t=24,color:r="black"}=e;return(0,import_jsx_runtime19.jsx)("svg",{width:t,height:t,viewBox:"0 0 491 491",children:(0,import_jsx_runtime19.jsx)("path",{fill:r,d:"M407.48,111.18C335.587,108.103 269.573,152.338 245.08,220C220.587,152.338 154.573,108.103 82.68,111.18C80.285,168.229 107.577,222.632 154.74,254.82C178.908,271.419 193.35,298.951 193.27,328.27L193.27,379.13L296.9,379.13L296.9,328.27C296.816,298.953 311.255,271.42 335.42,254.82C382.596,222.644 409.892,168.233 407.48,111.18Z"})})}var MermaidIcon_default=MermaidIcon,import_jsx_runtime20=require("react/jsx-runtime"),mermaid={name:"mermaid",icon:(0,import_jsx_runtime20.jsx)(MermaidIcon_default,{size:"24px"}),execute:e=>{const{editor:t,state:r,view:o}=e;if(!r||!o)return;const i=o.state.doc.iterRange(o.state.selection.main.from,o.state.selection.main.to);let n="";for(let e of i)n+=e;const a="\nsequenceDiagram\n    participant Client\n    participant Server\n    Client->>Server: Request\n    Server->>Client: Response\n        ".trim();o.dispatch({changes:{from:o.state.selection.main.from,to:o.state.selection.main.to,insert:`\n\`\`\`mermaid\n${n.length>0?n:a}\n\`\`\`\n        `.trim()}})}},mermaid_default=mermaid,defaultToolbarCommands=[undo_default,redo_default,heading_default,bold_default,italic_default,strike_default,underline_default,blockQuotes_default,orderedList_default,unorderedList_default,todoList_default,link_default,image_default,code_default,codeBlock_default,mermaid_default],commands_default=defaultToolbarCommands,import_jsx_runtime21=require("react/jsx-runtime"),extendedMarkdownLanguage=(0,import_lang_markdown.markdown)({base:import_lang_markdown.markdownLanguage,codeLanguages:import_language_data.languages,extensions:{wrap:(0,import_common2.parseMixed)((e=>"HTMLBlock"===e.name?{parser:import_codemirror_extensions_langs.langs.css().language.parser}:null))}}),pageDividerTheme=import_view6.EditorView.baseTheme({"&dark .cm-page-divider":{backgroundColor:"#FFFFFF44",fontWeight:"bold"},"&light .cm-page-divider":{backgroundColor:"#00000033",fontWeight:"bold"}}),Wrapper3=import_styled_components4.default.div`
    height: ${({$height:e})=>e};
    display: flex;
    flex-direction: column;
`,EditorContainer=import_styled_components4.default.div`
    height: calc(100% - 32px);
    display: flex;
    flex-direction: row;
    align-items: stretch;
    position: relative;
`,PreviewContainer=import_styled_components4.default.div`
    flex: 1;
    overflow-y: scroll;
`,VerticalDivider=import_styled_components4.default.div`
    width: 1px;
    height: 100%;
    background-color: #dddddd;
`,styleTheme=import_view6.EditorView.baseTheme({"&.cm-editor.cm-focused":{outline:"none"}}),overwriteCursorTheme=import_view6.EditorView.baseTheme({"&.cm-editor .cm-cursor":{borderLeft:"none",borderBottom:"2px solid",width:"0.6em",marginLeft:"0"},"&.cm-editor.cm-focused .cm-cursor":{borderLeft:"none",borderBottom:"2px solid",width:"0.6em",marginLeft:"0"}}),DEFAULT_SLIDE_CONFIG={header:"",footer:"",title:"",paginate:!0,theme:"default",class:"normal",size:"16:9"};function MarkSlidesEditor(e,t){const{toolbarCommands:r=commands_default,height:o="100vh",config:i=DEFAULT_SLIDE_CONFIG,isHideToolbar:n=!1,isShowSyncCurrentPageToggle:a=!0,isFixScrollToBottom:s=!1,isOverwriteMode:c=!1,onChangeSlideInfo:l,placeholder:m,extensions:d=[],readOnly:u,value:p,onChange:_}=e,f=(0,import_react5.useRef)(null),h=(0,import_react5.useRef)(null),g=(0,import_react5.useRef)(null),[x,v]=(0,import_react5.useState)(a);(0,import_react5.useEffect)((()=>{if(s&&p){const e=f.current?.view;e&&(e.scrollDOM.scrollTo({top:e.scrollDOM.scrollHeight,behavior:"instant"}),e.dispatch({selection:{anchor:p.length,head:p.length}})),h.current&&h.current.scrollTo({top:h.current.scrollHeight,behavior:"instant"})}}),[p]);const w=useBottomPanelExtension_default(),j=(0,import_react5.useCallback)((e=>{g.current&&g.current.setCurrentPage(e.currentPageNumber,x),l&&l(e)}),[x,l]),y=(0,import_react5.useMemo)((()=>{let e=[history(),styleTheme,...c?[overwriteCursorTheme]:[],shortcutExtension_default,import_codemirror_extensions_color.color,dividerHighlightExtension_default,lintExtension_default,extendedMarkdownLanguage,import_view6.EditorView.lineWrapping,slideInfoExtension_default(j),w,...d];return c&&e.push(overwriteModeExtension_default),e}),[j,c,w,d,overwriteModeExtension_default]),S=(0,import_react5.useCallback)(((e,t)=>{if(!f.current)return;const{view:r}=f.current;if(!r)return;const o=r.state,i=util_default.getLineFromSlideIndex(o,t);r.dispatch({selection:{head:i.from,anchor:i.from}}),r.focus();const n=r.lineBlockAt(i.from);if(n){const e=r.scrollDOM.getBoundingClientRect(),t=n.top-e.height/2;r.scrollDOM.scrollTo({top:t,behavior:"smooth"})}}),[f.current]),E=(0,import_react5.useCallback)((()=>{v((e=>!e))}),[x]),C=(0,import_react5.useCallback)((e=>{t&&"function"==typeof t?t(e):t&&"object"==typeof t&&(t.current=e),f.current=e}),[t]);return(0,import_jsx_runtime21.jsxs)(Wrapper3,{$height:o,children:[!n&&(0,import_jsx_runtime21.jsx)(EditorToolbar_default,{toolbarCommands:r,codeMirrorRef:f}),(0,import_jsx_runtime21.jsxs)(EditorContainer,{children:[(0,import_jsx_runtime21.jsx)(import_react_codemirror2.default,{ref:C,height:"100%",style:{flex:"1"},theme:[import_codemirror_themes_all.githubLight,pageDividerTheme],placeholder:m,extensions:y,readOnly:u,value:p,onChange:_}),(0,import_jsx_runtime21.jsx)(VerticalDivider,{}),(0,import_jsx_runtime21.jsx)(PreviewContainer,{ref:h,children:(0,import_jsx_runtime21.jsx)(PreviewFragment_default,{ref:g,config:i,content:p??"",onClickSlide:S})}),a&&(0,import_jsx_runtime21.jsx)(CurrentPageSyncButton_default,{isSyncCurrentPage:x,onToggle:E})]})]})}var MarkSlidesEditor_default=(0,import_react5.forwardRef)(MarkSlidesEditor),index_default=MarkSlidesEditor_default;
//# sourceMappingURL=/sm/a6d7f24cbd13e150b57f04bc848d7e968e523836ec84acbdc9f6933401091884.map