@stll/folio-vue 0.3.0 → 0.5.0

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/ui.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./PageSetupDialog-GGWMpoe-.cjs"),t=require("./ListButtons-3UeVXRAK.cjs"),n=require("./TablePropertiesDialog-DYbjwevC.cjs");let r=require("vue");require("@stll/folio-core/utils/units");var i={class:`docx-editor-toolbar`},a={class:`docx-editor-toolbar__title-row`},o={class:`docx-editor-toolbar__title-left`},s={class:`docx-editor-toolbar__title-center`},c={class:`docx-editor-toolbar__title-right`},l=(0,r.defineComponent)({inheritAttrs:!1,__name:`EditorToolbar`,props:{showMenuBar:{type:Boolean,default:!0}},emits:[`menu-action`],setup(e){return(n,l)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,i,[(0,r.renderSlot)(n.$slots,`title-bar`,{},()=>[(0,r.createElementVNode)(`div`,a,[(0,r.createElementVNode)(`div`,o,[(0,r.renderSlot)(n.$slots,`title-bar-left`,{},void 0,!0)]),(0,r.createElementVNode)(`div`,s,[(0,r.renderSlot)(n.$slots,`document-name`,{},void 0,!0),e.showMenuBar?((0,r.openBlock)(),(0,r.createBlock)(t.T,{key:0,onAction:l[0]||=e=>n.$emit(`menu-action`,e)})):(0,r.createCommentVNode)(``,!0)]),(0,r.createElementVNode)(`div`,c,[(0,r.renderSlot)(n.$slots,`title-bar-right`,{},void 0,!0)])])],!0),(0,r.renderSlot)(n.$slots,`toolbar`,{},()=>[(0,r.createVNode)(t.b,(0,r.normalizeProps)((0,r.guardReactiveProps)(n.$attrs)),null,16)],!0)]))}}),u=e.E(l,[[`__scopeId`,`data-v-f2023632`]]),d={},f={class:`docx-title-bar`},p={class:`docx-title-bar__left`},m={class:`docx-title-bar__center`},h={class:`docx-title-bar__right`};function g(e,t){return(0,r.openBlock)(),(0,r.createElementBlock)(`div`,f,[(0,r.createElementVNode)(`div`,p,[(0,r.renderSlot)(e.$slots,`left`,{},void 0,!0)]),(0,r.createElementVNode)(`div`,m,[(0,r.renderSlot)(e.$slots,`default`,{},void 0,!0)]),(0,r.createElementVNode)(`div`,h,[(0,r.renderSlot)(e.$slots,`right`,{},void 0,!0)])])}var _=e.E(d,[[`render`,g],[`__scopeId`,`data-v-ae11d49f`]]);function v(e){let t=e.trim();if(!t)return``;let n=null,r=``;for(let e of t){if((e===`"`||e===`'`)&&n===null){n=e,r+=e;continue}if(e===n){n=null,r+=e;continue}if(e===`,`&&n===null)break;r+=e}return r.trim().replace(/^['"]|['"]$/g,``)}var y=[`value`,`disabled`],b={key:0,label:`Sans-serif`},x=[`value`],S={key:1,label:`Serif`},C=[`value`],w={key:2,label:`Monospace`},T=[`value`],E={key:3,label:`Other`},D=[`value`],O=(0,r.defineComponent)({__name:`FontPicker`,props:{value:{},fonts:{},disabled:{type:Boolean,default:!1},className:{},placeholder:{default:`Font`},showPreview:{type:Boolean,default:!0}},emits:[`change`],setup(e,{emit:t}){let n=e,i=t,a=[{name:`Arial`,fontFamily:`Arial, Helvetica, sans-serif`,category:`sans-serif`},{name:`Calibri`,fontFamily:`"Calibri", Arial, sans-serif`,category:`sans-serif`},{name:`Helvetica`,fontFamily:`Helvetica, Arial, sans-serif`,category:`sans-serif`},{name:`Verdana`,fontFamily:`Verdana, Geneva, sans-serif`,category:`sans-serif`},{name:`Open Sans`,fontFamily:`"Open Sans", sans-serif`,category:`sans-serif`},{name:`Roboto`,fontFamily:`Roboto, sans-serif`,category:`sans-serif`},{name:`Times New Roman`,fontFamily:`"Times New Roman", Times, serif`,category:`serif`},{name:`Georgia`,fontFamily:`Georgia, serif`,category:`serif`},{name:`Cambria`,fontFamily:`Cambria, Georgia, serif`,category:`serif`},{name:`Garamond`,fontFamily:`Garamond, serif`,category:`serif`},{name:`Courier New`,fontFamily:`"Courier New", monospace`,category:`monospace`},{name:`Consolas`,fontFamily:`Consolas, monospace`,category:`monospace`}],o=(0,r.computed)(()=>n.fonts??a),s=(0,r.computed)(()=>{let e={"sans-serif":[],serif:[],monospace:[],other:[]};for(let t of o.value)e[t.category??`other`].push(t);return e}),c=(0,r.computed)(()=>{let e=n.value;if(!e)return n.placeholder;let t=e.toLowerCase();return o.value.find(n=>n.fontFamily===e||n.name.toLowerCase()===t||v(n.fontFamily).toLowerCase()===t)?.name??e});function l(e){if(!(e.target instanceof HTMLSelectElement))return;let t=e.target.value,n=o.value.find(e=>e.name===t);i(`change`,n?v(n.fontFamily)||n.name:t)}return(t,n)=>((0,r.openBlock)(),(0,r.createElementBlock)(`select`,{class:(0,r.normalizeClass)([`docx-font-picker`,e.className]),value:c.value,disabled:e.disabled,"aria-label":`Font family`,onChange:l},[s.value[`sans-serif`].length?((0,r.openBlock)(),(0,r.createElementBlock)(`optgroup`,b,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(s.value[`sans-serif`],t=>((0,r.openBlock)(),(0,r.createElementBlock)(`option`,{key:t.name,value:t.name,style:(0,r.normalizeStyle)(e.showPreview?{fontFamily:t.fontFamily}:void 0)},(0,r.toDisplayString)(t.name),13,x))),128))])):(0,r.createCommentVNode)(``,!0),s.value.serif.length?((0,r.openBlock)(),(0,r.createElementBlock)(`optgroup`,S,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(s.value.serif,t=>((0,r.openBlock)(),(0,r.createElementBlock)(`option`,{key:t.name,value:t.name,style:(0,r.normalizeStyle)(e.showPreview?{fontFamily:t.fontFamily}:void 0)},(0,r.toDisplayString)(t.name),13,C))),128))])):(0,r.createCommentVNode)(``,!0),s.value.monospace.length?((0,r.openBlock)(),(0,r.createElementBlock)(`optgroup`,w,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(s.value.monospace,t=>((0,r.openBlock)(),(0,r.createElementBlock)(`option`,{key:t.name,value:t.name,style:(0,r.normalizeStyle)(e.showPreview?{fontFamily:t.fontFamily}:void 0)},(0,r.toDisplayString)(t.name),13,T))),128))])):(0,r.createCommentVNode)(``,!0),s.value.other.length?((0,r.openBlock)(),(0,r.createElementBlock)(`optgroup`,E,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(s.value.other,t=>((0,r.openBlock)(),(0,r.createElementBlock)(`option`,{key:t.name,value:t.name,style:(0,r.normalizeStyle)(e.showPreview?{fontFamily:t.fontFamily}:void 0)},(0,r.toDisplayString)(t.name),13,D))),128))])):(0,r.createCommentVNode)(``,!0)],42,y))}}),k=e.E(O,[[`__scopeId`,`data-v-1a9a9f88`]]),A={class:`docx-font-size`},j=[`disabled`],M=[`value`,`disabled`,`placeholder`],N=[`disabled`],P=(0,r.defineComponent)({__name:`FontSizePicker`,props:{value:{},sizes:{},disabled:{type:Boolean,default:!1},minSize:{default:1},maxSize:{default:1638},placeholder:{default:`11`}},emits:[`change`],setup(e,{emit:t}){let n=e,i=t,a=[8,9,10,11,12,14,16,18,20,24,28,36,48,72],o=(0,r.computed)(()=>n.sizes??a),s=(0,r.computed)(()=>n.value??parseInt(n.placeholder,10)??11),c=(0,r.computed)(()=>n.value===void 0?n.placeholder:String(n.value));function l(e){return o.value.find(t=>t>e)??Math.min(e+1,n.maxSize)}function u(e){return[...o.value].reverse().find(t=>t<e)??Math.max(e-1,n.minSize)}function d(){n.disabled||i(`change`,u(s.value))}function f(){n.disabled||i(`change`,l(s.value))}function p(e){if(!(e.target instanceof HTMLInputElement))return;let t=parseFloat(e.target.value);!isNaN(t)&&t>=n.minSize&&t<=n.maxSize&&i(`change`,Math.round(t*2)/2)}return(t,n)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,A,[(0,r.createElementVNode)(`button`,{type:`button`,class:`docx-font-size__btn`,disabled:e.disabled||s.value<=e.minSize,title:`Decrease font size`,onClick:(0,r.withModifiers)(d,[`prevent`])},`−`,8,j),(0,r.createElementVNode)(`input`,{class:`docx-font-size__input`,type:`text`,value:c.value,disabled:e.disabled,placeholder:e.placeholder,onKeydown:[n[0]||=(0,r.withKeys)((0,r.withModifiers)(e=>{d(),e.stopPropagation()},[`prevent`]),[`up`]),n[1]||=(0,r.withKeys)((0,r.withModifiers)(e=>{f(),e.stopPropagation()},[`prevent`]),[`down`]),n[2]||=(0,r.withKeys)((0,r.withModifiers)(e=>p(e),[`prevent`]),[`enter`])],onBlur:n[3]||=e=>p(e)},null,40,M),(0,r.createElementVNode)(`button`,{type:`button`,class:`docx-font-size__btn`,disabled:e.disabled||s.value>=e.maxSize,title:`Increase font size`,onClick:(0,r.withModifiers)(f,[`prevent`])},`+`,8,N)]))}}),F=e.E(P,[[`__scopeId`,`data-v-4e8ada55`]]),I=[`value`,`disabled`],L=[`value`],R=(0,r.defineComponent)({__name:`LineSpacingPicker`,props:{value:{},options:{},disabled:{type:Boolean,default:!1},className:{}},emits:[`change`],setup(e,{emit:t}){let n=e,i=t,a=[{label:`Single`,value:1,twipsValue:240},{label:`1.15`,value:1.15,twipsValue:276},{label:`1.5`,value:1.5,twipsValue:360},{label:`Double`,value:2,twipsValue:480}],o=(0,r.computed)(()=>n.options??a),s=(0,r.computed)(()=>n.value??o.value[0]?.twipsValue??240);function c(e){if(!(e.target instanceof HTMLSelectElement))return;let t=parseInt(e.target.value,10);isNaN(t)||i(`change`,t)}return(t,n)=>((0,r.openBlock)(),(0,r.createElementBlock)(`select`,{class:(0,r.normalizeClass)([`docx-line-spacing`,e.className]),value:String(s.value),disabled:e.disabled,"aria-label":`Line spacing`,onChange:c},[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(o.value,e=>((0,r.openBlock)(),(0,r.createElementBlock)(`option`,{key:e.twipsValue,value:String(e.twipsValue)},(0,r.toDisplayString)(e.label),9,L))),128))],42,I))}}),z=e.E(R,[[`__scopeId`,`data-v-fcda8ecc`]]),B=[`disabled`,`aria-expanded`,`title`,`onClick`],V={class:`docx-table-grid__panel`},H={class:`docx-table-grid__label`},U=[`onMouseenter`,`onClick`],W=(0,r.defineComponent)({__name:`TableGridPicker`,props:{disabled:{type:Boolean,default:!1},gridRows:{default:5},gridColumns:{default:5},tooltip:{default:`Insert table`}},emits:[`insert`],setup(t,{emit:n}){let{Popover:i}=e.u(),a=t,o=n,s=(0,r.ref)(!1),c=(0,r.ref)({rows:1,cols:1}),l=(0,r.computed)(()=>{let e=[];for(let t=1;t<=a.gridRows;t++)for(let n=1;n<=a.gridColumns;n++)e.push({r:t,c:n});return e});function u(e,t){o(`insert`,e,t),s.value=!1}function d(){s.value=!1,c.value={rows:1,cols:1}}return(n,a)=>((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i),{open:s.value,"onUpdate:open":a[0]||=e=>s.value=e,onClose:d},{trigger:(0,r.withCtx)(({toggle:n})=>[(0,r.createElementVNode)(`button`,{type:`button`,class:`docx-table-grid__btn`,disabled:t.disabled,"aria-expanded":s.value,"aria-haspopup":`grid`,title:t.tooltip,onClick:(0,r.withModifiers)(n,[`prevent`])},[(0,r.createVNode)(e.T,{name:`grid_on`,size:20})],8,B)]),panel:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,V,[(0,r.createElementVNode)(`div`,H,(0,r.toDisplayString)(c.value.rows)+` × `+(0,r.toDisplayString)(c.value.cols),1),(0,r.createElementVNode)(`div`,{class:`docx-table-grid__grid`,style:(0,r.normalizeStyle)({gridTemplateColumns:`repeat(${t.gridColumns}, 18px)`})},[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(l.value,e=>((0,r.openBlock)(),(0,r.createElementBlock)(`button`,{key:`${e.r}-${e.c}`,class:(0,r.normalizeClass)([`docx-table-grid__cell`,{"docx-table-grid__cell--active":e.r<=c.value.rows&&e.c<=c.value.cols}]),onMouseenter:t=>c.value={rows:e.r,cols:e.c},onClick:(0,r.withModifiers)(t=>u(e.r,e.c),[`prevent`])},null,42,U))),128))],4)])]),_:1},8,[`open`]))}}),G=e.E(W,[[`__scopeId`,`data-v-444ca123`]]),K=[`disabled`,`title`],q={key:0,class:`print-btn__icon`},J=(0,r.defineComponent)({__name:`PrintButton`,props:{disabled:{type:Boolean,default:!1},label:{default:`Print`},compact:{type:Boolean,default:!1}},emits:[`print`],setup(e,{emit:t}){let n=e,i=t;function a(){n.disabled||(i(`print`),window.print())}return(t,n)=>((0,r.openBlock)(),(0,r.createElementBlock)(`button`,{class:`print-btn`,disabled:e.disabled,title:e.label,onMousedown:(0,r.withModifiers)(a,[`prevent`])},[(0,r.createTextVNode)((0,r.toDisplayString)(e.compact?``:e.label)+` `,1),e.compact?((0,r.openBlock)(),(0,r.createElementBlock)(`span`,q,`🖨`)):(0,r.createCommentVNode)(``,!0)],40,K))}}),Y=e.E(J,[[`__scopeId`,`data-v-3e413c06`]]),X={padding:`8px 10px`,borderRadius:8,backgroundColor:`var(--doc-card)`,cursor:`pointer`,boxShadow:`var(--doc-card-shadow)`},Z={padding:`10px 12px`,borderRadius:8,backgroundColor:`var(--doc-surface)`,cursor:`pointer`,boxShadow:`var(--doc-card-shadow-strong)`};exports.AddCommentCard=t.o,exports.AlignmentButtons=t.r,exports.Button=e.w,exports.CARD_STYLE_COLLAPSED=X,exports.CARD_STYLE_EXPANDED=Z,exports.Checkbox=e.C,exports.ColorPicker=e.v,exports.CommentCard=t.l,exports.CommentMarginMarkers=t.O,exports.DEFAULT_COMPONENTS=e.o,exports.DatePickerPopover=e._,exports.Dialog=e.g,exports.DocumentName=t.D,exports.EditingModeDropdown=t.x,exports.EditorToolbar=u,exports.FindReplaceDialog=e.a,exports.FontPicker=k,exports.FontSizePicker=F,exports.FootnotePropertiesDialog=n.i,exports.HorizontalRuler=t.y,exports.HyperlinkDialog=e.i,exports.IconGridDropdown=t.w,exports.ImagePositionDialog=n.r,exports.ImagePropertiesDialog=e.r,exports.ImageTransformDropdown=t.S,exports.ImageWrapDropdown=t.C,exports.Input=e.h,exports.InsertSymbolDialog=e.n,exports.InsertTableDialog=n.n,exports.LineSpacingPicker=z,exports.ListButtons=t.t,exports.MenuBar=t.T,exports.MenuDropdown=e.p,exports.OutlineRail=e.f,exports.PageSetupDialog=e.t,exports.Popover=e.m,exports.PrintButton=Y,exports.ReplyInput=t.u,exports.ReplyThread=t.d,exports.ResolvedCommentMarker=t.c,exports.Select=e.d,exports.StylePicker=t.i,exports.TableBorderColorPicker=t._,exports.TableBorderPicker=t.v,exports.TableBorderWidthPicker=t.g,exports.TableCellFillPicker=t.h,exports.TableGridInline=t.E,exports.TableGridPicker=G,exports.TableMoreDropdown=t.m,exports.TablePropertiesDialog=n.t,exports.TableStyleGallery=n.a,exports.TableToolbar=t.p,exports.TitleBar=_,exports.Toolbar=t.b,exports.TrackedChangeCard=t.s,exports.UnifiedSidebar=t.a,exports.VerticalRuler=t.f,exports.provideFolioUI=e.c,exports.resolveFolioComponents=e.l,exports.useFolioUI=e.u;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./WatermarkDialog-DHfk8jrg.cjs"),t=require("./ListButtons-BvsV1yti.cjs");let n=require("vue");require("@stll/folio-core/utils/units");var r={class:`docx-editor-toolbar`},i={class:`docx-editor-toolbar__title-row`},a={class:`docx-editor-toolbar__title-left`},o={class:`docx-editor-toolbar__title-center`},s={class:`docx-editor-toolbar__title-right`},c=(0,n.defineComponent)({inheritAttrs:!1,__name:`EditorToolbar`,props:{showMenuBar:{type:Boolean,default:!0}},emits:[`menu-action`],setup(e){return(c,l)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,r,[(0,n.renderSlot)(c.$slots,`title-bar`,{},()=>[(0,n.createElementVNode)(`div`,i,[(0,n.createElementVNode)(`div`,a,[(0,n.renderSlot)(c.$slots,`title-bar-left`,{},void 0,!0)]),(0,n.createElementVNode)(`div`,o,[(0,n.renderSlot)(c.$slots,`document-name`,{},void 0,!0),e.showMenuBar?((0,n.openBlock)(),(0,n.createBlock)(t.w,{key:0,onAction:l[0]||=e=>c.$emit(`menu-action`,e)})):(0,n.createCommentVNode)(``,!0)]),(0,n.createElementVNode)(`div`,s,[(0,n.renderSlot)(c.$slots,`title-bar-right`,{},void 0,!0)])])],!0),(0,n.renderSlot)(c.$slots,`toolbar`,{},()=>[(0,n.createVNode)(t.y,(0,n.normalizeProps)((0,n.guardReactiveProps)(c.$attrs)),null,16)],!0)]))}}),l=e.F(c,[[`__scopeId`,`data-v-79d81064`]]),u={},d={class:`docx-title-bar`},f={class:`docx-title-bar__left`},p={class:`docx-title-bar__center`},m={class:`docx-title-bar__right`};function h(e,t){return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,d,[(0,n.createElementVNode)(`div`,f,[(0,n.renderSlot)(e.$slots,`left`,{},void 0,!0)]),(0,n.createElementVNode)(`div`,p,[(0,n.renderSlot)(e.$slots,`default`,{},void 0,!0)]),(0,n.createElementVNode)(`div`,m,[(0,n.renderSlot)(e.$slots,`right`,{},void 0,!0)])])}var g=e.F(u,[[`render`,h],[`__scopeId`,`data-v-44b23810`]]);function _(e){let t=e.trim();if(!t)return``;let n=null,r=``;for(let e of t){if((e===`"`||e===`'`)&&n===null){n=e,r+=e;continue}if(e===n){n=null,r+=e;continue}if(e===`,`&&n===null)break;r+=e}return r.trim().replace(/^['"]|['"]$/g,``)}var v=[`value`,`disabled`],y={key:0,label:`Sans-serif`},b=[`value`],x={key:1,label:`Serif`},S=[`value`],C={key:2,label:`Monospace`},w=[`value`],T={key:3,label:`Other`},E=[`value`],D=(0,n.defineComponent)({__name:`FontPicker`,props:{value:{},fonts:{},disabled:{type:Boolean,default:!1},className:{},placeholder:{default:`Font`},showPreview:{type:Boolean,default:!0}},emits:[`change`],setup(e,{emit:t}){let r=e,i=t,a=[{name:`Arial`,fontFamily:`Arial, Helvetica, sans-serif`,category:`sans-serif`},{name:`Calibri`,fontFamily:`"Calibri", Arial, sans-serif`,category:`sans-serif`},{name:`Helvetica`,fontFamily:`Helvetica, Arial, sans-serif`,category:`sans-serif`},{name:`Verdana`,fontFamily:`Verdana, Geneva, sans-serif`,category:`sans-serif`},{name:`Open Sans`,fontFamily:`"Open Sans", sans-serif`,category:`sans-serif`},{name:`Roboto`,fontFamily:`Roboto, sans-serif`,category:`sans-serif`},{name:`Times New Roman`,fontFamily:`"Times New Roman", Times, serif`,category:`serif`},{name:`Georgia`,fontFamily:`Georgia, serif`,category:`serif`},{name:`Cambria`,fontFamily:`Cambria, Georgia, serif`,category:`serif`},{name:`Garamond`,fontFamily:`Garamond, serif`,category:`serif`},{name:`Courier New`,fontFamily:`"Courier New", monospace`,category:`monospace`},{name:`Consolas`,fontFamily:`Consolas, monospace`,category:`monospace`}],o=(0,n.computed)(()=>r.fonts??a),s=(0,n.computed)(()=>{let e={"sans-serif":[],serif:[],monospace:[],other:[]};for(let t of o.value)e[t.category??`other`].push(t);return e}),c=(0,n.computed)(()=>{let e=r.value;if(!e)return r.placeholder;let t=e.toLowerCase();return o.value.find(n=>n.fontFamily===e||n.name.toLowerCase()===t||_(n.fontFamily).toLowerCase()===t)?.name??e});function l(e){if(!(e.target instanceof HTMLSelectElement))return;let t=e.target.value,n=o.value.find(e=>e.name===t);i(`change`,n?_(n.fontFamily)||n.name:t)}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`select`,{class:(0,n.normalizeClass)([`docx-font-picker`,e.className]),value:c.value,disabled:e.disabled,"aria-label":`Font family`,onChange:l},[s.value[`sans-serif`].length?((0,n.openBlock)(),(0,n.createElementBlock)(`optgroup`,y,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(s.value[`sans-serif`],t=>((0,n.openBlock)(),(0,n.createElementBlock)(`option`,{key:t.name,value:t.name,style:(0,n.normalizeStyle)(e.showPreview?{fontFamily:t.fontFamily}:void 0)},(0,n.toDisplayString)(t.name),13,b))),128))])):(0,n.createCommentVNode)(``,!0),s.value.serif.length?((0,n.openBlock)(),(0,n.createElementBlock)(`optgroup`,x,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(s.value.serif,t=>((0,n.openBlock)(),(0,n.createElementBlock)(`option`,{key:t.name,value:t.name,style:(0,n.normalizeStyle)(e.showPreview?{fontFamily:t.fontFamily}:void 0)},(0,n.toDisplayString)(t.name),13,S))),128))])):(0,n.createCommentVNode)(``,!0),s.value.monospace.length?((0,n.openBlock)(),(0,n.createElementBlock)(`optgroup`,C,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(s.value.monospace,t=>((0,n.openBlock)(),(0,n.createElementBlock)(`option`,{key:t.name,value:t.name,style:(0,n.normalizeStyle)(e.showPreview?{fontFamily:t.fontFamily}:void 0)},(0,n.toDisplayString)(t.name),13,w))),128))])):(0,n.createCommentVNode)(``,!0),s.value.other.length?((0,n.openBlock)(),(0,n.createElementBlock)(`optgroup`,T,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(s.value.other,t=>((0,n.openBlock)(),(0,n.createElementBlock)(`option`,{key:t.name,value:t.name,style:(0,n.normalizeStyle)(e.showPreview?{fontFamily:t.fontFamily}:void 0)},(0,n.toDisplayString)(t.name),13,E))),128))])):(0,n.createCommentVNode)(``,!0)],42,v))}}),O=e.F(D,[[`__scopeId`,`data-v-a6d7700f`]]),k={class:`docx-font-size`},A=[`disabled`],j=[`value`,`disabled`,`placeholder`],M=[`disabled`],N=(0,n.defineComponent)({__name:`FontSizePicker`,props:{value:{},sizes:{},disabled:{type:Boolean,default:!1},minSize:{default:1},maxSize:{default:1638},placeholder:{default:`11`}},emits:[`change`],setup(e,{emit:t}){let r=e,i=t,a=[8,9,10,11,12,14,16,18,20,24,28,36,48,72],o=(0,n.computed)(()=>r.sizes??a),s=(0,n.computed)(()=>r.value??parseInt(r.placeholder,10)??11),c=(0,n.computed)(()=>r.value===void 0?r.placeholder:String(r.value));function l(e){return o.value.find(t=>t>e)??Math.min(e+1,r.maxSize)}function u(e){return[...o.value].reverse().find(t=>t<e)??Math.max(e-1,r.minSize)}function d(){r.disabled||i(`change`,u(s.value))}function f(){r.disabled||i(`change`,l(s.value))}function p(e){if(!(e.target instanceof HTMLInputElement))return;let t=parseFloat(e.target.value);!isNaN(t)&&t>=r.minSize&&t<=r.maxSize&&i(`change`,Math.round(t*2)/2)}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,k,[(0,n.createElementVNode)(`button`,{type:`button`,class:`docx-font-size__btn`,disabled:e.disabled||s.value<=e.minSize,title:`Decrease font size`,onClick:(0,n.withModifiers)(d,[`prevent`])},` − `,8,A),(0,n.createElementVNode)(`input`,{class:`docx-font-size__input`,type:`text`,value:c.value,disabled:e.disabled,placeholder:e.placeholder,onKeydown:[r[0]||=(0,n.withKeys)((0,n.withModifiers)(e=>{d(),e.stopPropagation()},[`prevent`]),[`up`]),r[1]||=(0,n.withKeys)((0,n.withModifiers)(e=>{f(),e.stopPropagation()},[`prevent`]),[`down`]),r[2]||=(0,n.withKeys)((0,n.withModifiers)(e=>p(e),[`prevent`]),[`enter`])],onBlur:r[3]||=e=>p(e)},null,40,j),(0,n.createElementVNode)(`button`,{type:`button`,class:`docx-font-size__btn`,disabled:e.disabled||s.value>=e.maxSize,title:`Increase font size`,onClick:(0,n.withModifiers)(f,[`prevent`])},` + `,8,M)]))}}),P=e.F(N,[[`__scopeId`,`data-v-dbc73bbe`]]),F=[`value`,`disabled`],I=[`value`],L=(0,n.defineComponent)({__name:`LineSpacingPicker`,props:{value:{},options:{},disabled:{type:Boolean,default:!1},className:{}},emits:[`change`],setup(e,{emit:t}){let r=e,i=t,a=[{label:`Single`,value:1,twipsValue:240},{label:`1.15`,value:1.15,twipsValue:276},{label:`1.5`,value:1.5,twipsValue:360},{label:`Double`,value:2,twipsValue:480}],o=(0,n.computed)(()=>r.options??a),s=(0,n.computed)(()=>r.value??o.value[0]?.twipsValue??240);function c(e){if(!(e.target instanceof HTMLSelectElement))return;let t=parseInt(e.target.value,10);isNaN(t)||i(`change`,t)}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`select`,{class:(0,n.normalizeClass)([`docx-line-spacing`,e.className]),value:String(s.value),disabled:e.disabled,"aria-label":`Line spacing`,onChange:c},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(o.value,e=>((0,n.openBlock)(),(0,n.createElementBlock)(`option`,{key:e.twipsValue,value:String(e.twipsValue)},(0,n.toDisplayString)(e.label),9,I))),128))],42,F))}}),R=e.F(L,[[`__scopeId`,`data-v-c262ff91`]]),z=[`disabled`,`aria-expanded`,`title`,`onClick`],B={class:`docx-table-grid__panel`},V={class:`docx-table-grid__label`},H=[`onMouseenter`,`onClick`],U=(0,n.defineComponent)({__name:`TableGridPicker`,props:{disabled:{type:Boolean,default:!1},gridRows:{default:5},gridColumns:{default:5},tooltip:{default:`Insert table`}},emits:[`insert`],setup(t,{emit:r}){let{Popover:i}=e.y(),a=t,o=r,s=(0,n.ref)(!1),c=(0,n.ref)({rows:1,cols:1}),l=(0,n.computed)(()=>{let e=[];for(let t=1;t<=a.gridRows;t++)for(let n=1;n<=a.gridColumns;n++)e.push({r:t,c:n});return e});function u(e,t){o(`insert`,e,t),s.value=!1}function d(){s.value=!1,c.value={rows:1,cols:1}}return(r,a)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i),{open:s.value,"onUpdate:open":a[0]||=e=>s.value=e,onClose:d},{trigger:(0,n.withCtx)(({toggle:r})=>[(0,n.createElementVNode)(`button`,{type:`button`,class:`docx-table-grid__btn`,disabled:t.disabled,"aria-expanded":s.value,"aria-haspopup":`grid`,title:t.tooltip,onClick:(0,n.withModifiers)(r,[`prevent`])},[(0,n.createVNode)(e.P,{name:`grid_on`,size:20})],8,z)]),panel:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,B,[(0,n.createElementVNode)(`div`,V,(0,n.toDisplayString)(c.value.rows)+` × `+(0,n.toDisplayString)(c.value.cols),1),(0,n.createElementVNode)(`div`,{class:`docx-table-grid__grid`,style:(0,n.normalizeStyle)({gridTemplateColumns:`repeat(${t.gridColumns}, 18px)`})},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(l.value,e=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:`${e.r}-${e.c}`,class:(0,n.normalizeClass)([`docx-table-grid__cell`,{"docx-table-grid__cell--active":e.r<=c.value.rows&&e.c<=c.value.cols}]),onMouseenter:t=>c.value={rows:e.r,cols:e.c},onClick:(0,n.withModifiers)(t=>u(e.r,e.c),[`prevent`])},null,42,H))),128))],4)])]),_:1},8,[`open`]))}}),W=e.F(U,[[`__scopeId`,`data-v-2f56c54d`]]),G=[`disabled`,`title`],K={key:0,class:`print-btn__icon`},q=(0,n.defineComponent)({__name:`PrintButton`,props:{disabled:{type:Boolean,default:!1},label:{default:`Print`},compact:{type:Boolean,default:!1}},emits:[`print`],setup(e,{emit:t}){let r=e,i=t;function a(){r.disabled||(i(`print`),window.print())}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{class:`print-btn`,disabled:e.disabled,title:e.label,onMousedown:(0,n.withModifiers)(a,[`prevent`])},[(0,n.createTextVNode)((0,n.toDisplayString)(e.compact?``:e.label)+` `,1),e.compact?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,K,`🖨`)):(0,n.createCommentVNode)(``,!0)],40,G))}}),J=e.F(q,[[`__scopeId`,`data-v-2f2ba140`]]),Y={padding:`8px 10px`,borderRadius:8,backgroundColor:`var(--doc-card)`,cursor:`pointer`,boxShadow:`var(--doc-card-shadow)`},X={padding:`10px 12px`,borderRadius:8,backgroundColor:`var(--doc-surface)`,cursor:`pointer`,boxShadow:`var(--doc-card-shadow-strong)`};exports.AddCommentCard=t.a,exports.AlignmentButtons=t.n,exports.Button=e.N,exports.CARD_STYLE_COLLAPSED=Y,exports.CARD_STYLE_EXPANDED=X,exports.Checkbox=e.M,exports.ColorPicker=e.D,exports.CommentCard=t.c,exports.CommentMarginMarkers=t.D,exports.DEFAULT_COMPONENTS=e.h,exports.DatePickerPopover=e.E,exports.Dialog=e.T,exports.DocumentName=t.E,exports.EditingModeDropdown=t.b,exports.EditorToolbar=l,exports.FindReplaceDialog=e.m,exports.FontPicker=O,exports.FontSizePicker=P,exports.FootnotePropertiesDialog=e.l,exports.HorizontalRuler=t.v,exports.HyperlinkDialog=e.p,exports.IconGridDropdown=t.C,exports.ImagePositionDialog=e.c,exports.ImagePropertiesDialog=e.f,exports.ImageTransformDropdown=t.x,exports.ImageWrapDropdown=t.S,exports.Input=e.w,exports.InsertImageDialog=e.s,exports.InsertSymbolDialog=e.d,exports.InsertTableDialog=e.a,exports.LineSpacingPicker=R,exports.ListButtons=t.t,exports.MenuBar=t.w,exports.MenuDropdown=e.S,exports.OutlineRail=e.x,exports.PageSetupDialog=e.u,exports.PasteSpecialDialog=e.i,exports.Popover=e.C,exports.PrintButton=J,exports.ReplyInput=t.l,exports.ReplyThread=t.u,exports.ResolvedCommentMarker=t.s,exports.Select=e.b,exports.SplitCellDialog=e.r,exports.StylePicker=t.r,exports.TableBorderColorPicker=t.g,exports.TableBorderPicker=t._,exports.TableBorderWidthPicker=t.h,exports.TableCellFillPicker=t.m,exports.TableGridInline=t.T,exports.TableGridPicker=W,exports.TableMoreDropdown=t.p,exports.TablePropertiesDialog=e.n,exports.TableStyleGallery=e.o,exports.TableToolbar=t.f,exports.TitleBar=g,exports.Toolbar=t.y,exports.TrackedChangeCard=t.o,exports.UnifiedSidebar=t.i,exports.VerticalRuler=t.d,exports.WatermarkDialog=e.t,exports.provideFolioUI=e._,exports.resolveFolioComponents=e.v,exports.useFolioUI=e.y;
package/dist/ui.d.ts CHANGED
@@ -4,9 +4,9 @@
4
4
  * UI entry point — toolbar primitives, pickers, table/image controls, sidebar
5
5
  * cards, and dialogs. Mirrors `packages/react/src/ui.ts` (and upstream's Vue
6
6
  * `ui.ts`), limited to the components the fork has ported. Components without a
7
- * Vue equivalent yet (ResponsiveToolbar, ZoomControl, Tooltip, LoadingIndicator,
7
+ * Vue equivalent yet (ResponsiveToolbar, Tooltip, LoadingIndicator,
8
8
  * TableInsertButtons, TableMergeButton, UnsavedIndicator, PrintPreview, and the
9
- * InsertImage / KeyboardShortcuts / PasteSpecial / SplitCell dialogs) are omitted.
9
+ * KeyboardShortcuts dialog) are omitted.
10
10
  *
11
11
  * @example
12
12
  * ```ts
@@ -55,12 +55,16 @@ export { default as CommentMarginMarkers } from './components/CommentMarginMarke
55
55
  export { default as FindReplaceDialog } from './components/dialogs/FindReplaceDialog.vue';
56
56
  export { default as FootnotePropertiesDialog } from './components/dialogs/FootnotePropertiesDialog.vue';
57
57
  export { default as HyperlinkDialog } from './components/dialogs/HyperlinkDialog.vue';
58
+ export { default as InsertImageDialog } from './components/dialogs/InsertImageDialog.vue';
58
59
  export { default as ImagePositionDialog } from './components/dialogs/ImagePositionDialog.vue';
59
60
  export { default as ImagePropertiesDialog } from './components/dialogs/ImagePropertiesDialog.vue';
60
61
  export { default as InsertSymbolDialog } from './components/dialogs/InsertSymbolDialog.vue';
61
62
  export { default as InsertTableDialog } from './components/dialogs/InsertTableDialog.vue';
62
63
  export { default as PageSetupDialog } from './components/dialogs/PageSetupDialog.vue';
64
+ export { default as PasteSpecialDialog } from './components/dialogs/PasteSpecialDialog.vue';
65
+ export { default as SplitCellDialog } from './components/dialogs/SplitCellDialog.vue';
63
66
  export { default as TablePropertiesDialog } from './components/dialogs/TablePropertiesDialog.vue';
67
+ export { default as WatermarkDialog } from './components/dialogs/WatermarkDialog.vue';
64
68
  export { default as PrintButton } from './components/PrintButton.vue';
65
69
  export { default as HorizontalRuler } from './components/ui/HorizontalRuler.vue';
66
70
  export { default as VerticalRuler } from './components/ui/VerticalRuler.vue';
package/dist/ui.js CHANGED
@@ -1,10 +1,9 @@
1
- import { C as e, E as t, T as n, _ as r, a as i, c as a, d as o, f as s, g as c, h as l, i as u, l as d, m as f, n as ee, o as te, p as ne, r as re, t as ie, u as p, v as ae, w as oe } from "./PageSetupDialog-Djs8aW5A.js";
2
- import { C as se, D as m, E as ce, O as le, S as ue, T as h, _ as g, a as _, b as v, c as de, d as fe, f as pe, g as me, h as he, i as ge, l as _e, m as y, o as b, p as x, r as S, s as C, t as w, u as T, v as E, w as D, x as O, y as k } from "./ListButtons-CDkmhg3v.js";
3
- import { a as A, i as j, n as M, r as N, t as P } from "./TablePropertiesDialog-B399kZgL.js";
4
- import { Fragment as F, computed as I, createBlock as L, createCommentVNode as R, createElementBlock as z, createElementVNode as B, createTextVNode as ve, createVNode as V, defineComponent as H, guardReactiveProps as ye, normalizeClass as U, normalizeProps as be, normalizeStyle as W, openBlock as G, ref as K, renderList as q, renderSlot as J, toDisplayString as Y, unref as xe, withCtx as X, withKeys as Z, withModifiers as Q } from "vue";
1
+ import { C as e, D as t, E as n, F as r, M as i, N as a, P as o, S as s, T as c, _ as l, a as u, b as d, c as f, d as ee, f as te, h as ne, i as re, l as ie, m as ae, n as oe, o as se, p as ce, r as p, s as le, t as ue, u as de, v as m, w as fe, x as pe, y as h } from "./WatermarkDialog-r4wmldt4.js";
2
+ import { C as me, D as he, E as ge, S as _e, T as ve, _ as ye, a as be, b as g, c as _, d as v, f as y, g as b, h as x, i as S, l as C, m as w, n as T, o as E, p as D, r as O, s as k, t as A, u as j, v as M, w as N, x as xe, y as P } from "./ListButtons-DXqMvba3.js";
3
+ import { Fragment as F, computed as I, createBlock as L, createCommentVNode as R, createElementBlock as z, createElementVNode as B, createTextVNode as Se, createVNode as V, defineComponent as H, guardReactiveProps as Ce, normalizeClass as U, normalizeProps as we, normalizeStyle as W, openBlock as G, ref as K, renderList as q, renderSlot as J, toDisplayString as Y, unref as Te, withCtx as X, withKeys as Z, withModifiers as Q } from "vue";
5
4
  import "@stll/folio-core/utils/units";
6
5
  //#region src/components/EditorToolbar.vue?vue&type=script&setup=true&lang.ts
7
- var Se = { class: "docx-editor-toolbar" }, Ce = { class: "docx-editor-toolbar__title-row" }, we = { class: "docx-editor-toolbar__title-left" }, Te = { class: "docx-editor-toolbar__title-center" }, Ee = { class: "docx-editor-toolbar__title-right" }, De = /*#__PURE__*/ t(/* @__PURE__ */ H({
6
+ var Ee = { class: "docx-editor-toolbar" }, De = { class: "docx-editor-toolbar__title-row" }, Oe = { class: "docx-editor-toolbar__title-left" }, ke = { class: "docx-editor-toolbar__title-center" }, Ae = { class: "docx-editor-toolbar__title-right" }, je = /*#__PURE__*/ r(/* @__PURE__ */ H({
8
7
  inheritAttrs: !1,
9
8
  __name: "EditorToolbar",
10
9
  props: { showMenuBar: {
@@ -13,24 +12,24 @@ var Se = { class: "docx-editor-toolbar" }, Ce = { class: "docx-editor-toolbar__t
13
12
  } },
14
13
  emits: ["menu-action"],
15
14
  setup(e) {
16
- return (t, n) => (G(), z("div", Se, [J(t.$slots, "title-bar", {}, () => [B("div", Ce, [
17
- B("div", we, [J(t.$slots, "title-bar-left", {}, void 0, !0)]),
18
- B("div", Te, [J(t.$slots, "document-name", {}, void 0, !0), e.showMenuBar ? (G(), L(h, {
15
+ return (t, n) => (G(), z("div", Ee, [J(t.$slots, "title-bar", {}, () => [B("div", De, [
16
+ B("div", Oe, [J(t.$slots, "title-bar-left", {}, void 0, !0)]),
17
+ B("div", ke, [J(t.$slots, "document-name", {}, void 0, !0), e.showMenuBar ? (G(), L(N, {
19
18
  key: 0,
20
19
  onAction: n[0] ||= (e) => t.$emit("menu-action", e)
21
20
  })) : R("", !0)]),
22
- B("div", Ee, [J(t.$slots, "title-bar-right", {}, void 0, !0)])
23
- ])], !0), J(t.$slots, "toolbar", {}, () => [V(v, be(ye(t.$attrs)), null, 16)], !0)]));
21
+ B("div", Ae, [J(t.$slots, "title-bar-right", {}, void 0, !0)])
22
+ ])], !0), J(t.$slots, "toolbar", {}, () => [V(P, we(Ce(t.$attrs)), null, 16)], !0)]));
24
23
  }
25
- }), [["__scopeId", "data-v-f2023632"]]), Oe = {}, ke = { class: "docx-title-bar" }, Ae = { class: "docx-title-bar__left" }, je = { class: "docx-title-bar__center" }, Me = { class: "docx-title-bar__right" };
26
- function Ne(e, t) {
27
- return G(), z("div", ke, [
28
- B("div", Ae, [J(e.$slots, "left", {}, void 0, !0)]),
29
- B("div", je, [J(e.$slots, "default", {}, void 0, !0)]),
30
- B("div", Me, [J(e.$slots, "right", {}, void 0, !0)])
24
+ }), [["__scopeId", "data-v-79d81064"]]), Me = {}, Ne = { class: "docx-title-bar" }, Pe = { class: "docx-title-bar__left" }, Fe = { class: "docx-title-bar__center" }, Ie = { class: "docx-title-bar__right" };
25
+ function Le(e, t) {
26
+ return G(), z("div", Ne, [
27
+ B("div", Pe, [J(e.$slots, "left", {}, void 0, !0)]),
28
+ B("div", Fe, [J(e.$slots, "default", {}, void 0, !0)]),
29
+ B("div", Ie, [J(e.$slots, "right", {}, void 0, !0)])
31
30
  ]);
32
31
  }
33
- var Pe = /*#__PURE__*/ t(Oe, [["render", Ne], ["__scopeId", "data-v-ae11d49f"]]);
32
+ var Re = /*#__PURE__*/ r(Me, [["render", Le], ["__scopeId", "data-v-44b23810"]]);
34
33
  //#endregion
35
34
  //#region src/components/ui/fontPickerValue.ts
36
35
  function $(e) {
@@ -53,19 +52,19 @@ function $(e) {
53
52
  }
54
53
  //#endregion
55
54
  //#region src/components/ui/FontPicker.vue?vue&type=script&setup=true&lang.ts
56
- var Fe = ["value", "disabled"], Ie = {
55
+ var ze = ["value", "disabled"], Be = {
57
56
  key: 0,
58
57
  label: "Sans-serif"
59
- }, Le = ["value"], Re = {
58
+ }, Ve = ["value"], He = {
60
59
  key: 1,
61
60
  label: "Serif"
62
- }, ze = ["value"], Be = {
61
+ }, Ue = ["value"], We = {
63
62
  key: 2,
64
63
  label: "Monospace"
65
- }, Ve = ["value"], He = {
64
+ }, Ge = ["value"], Ke = {
66
65
  key: 3,
67
66
  label: "Other"
68
- }, Ue = ["value"], We = /*#__PURE__*/ t(/* @__PURE__ */ H({
67
+ }, qe = ["value"], Je = /*#__PURE__*/ r(/* @__PURE__ */ H({
69
68
  __name: "FontPicker",
70
69
  props: {
71
70
  value: {},
@@ -171,33 +170,33 @@ var Fe = ["value", "disabled"], Ie = {
171
170
  "aria-label": "Font family",
172
171
  onChange: c
173
172
  }, [
174
- o.value["sans-serif"].length ? (G(), z("optgroup", Ie, [(G(!0), z(F, null, q(o.value["sans-serif"], (t) => (G(), z("option", {
173
+ o.value["sans-serif"].length ? (G(), z("optgroup", Be, [(G(!0), z(F, null, q(o.value["sans-serif"], (t) => (G(), z("option", {
175
174
  key: t.name,
176
175
  value: t.name,
177
176
  style: W(e.showPreview ? { fontFamily: t.fontFamily } : void 0)
178
- }, Y(t.name), 13, Le))), 128))])) : R("", !0),
179
- o.value.serif.length ? (G(), z("optgroup", Re, [(G(!0), z(F, null, q(o.value.serif, (t) => (G(), z("option", {
177
+ }, Y(t.name), 13, Ve))), 128))])) : R("", !0),
178
+ o.value.serif.length ? (G(), z("optgroup", He, [(G(!0), z(F, null, q(o.value.serif, (t) => (G(), z("option", {
180
179
  key: t.name,
181
180
  value: t.name,
182
181
  style: W(e.showPreview ? { fontFamily: t.fontFamily } : void 0)
183
- }, Y(t.name), 13, ze))), 128))])) : R("", !0),
184
- o.value.monospace.length ? (G(), z("optgroup", Be, [(G(!0), z(F, null, q(o.value.monospace, (t) => (G(), z("option", {
182
+ }, Y(t.name), 13, Ue))), 128))])) : R("", !0),
183
+ o.value.monospace.length ? (G(), z("optgroup", We, [(G(!0), z(F, null, q(o.value.monospace, (t) => (G(), z("option", {
185
184
  key: t.name,
186
185
  value: t.name,
187
186
  style: W(e.showPreview ? { fontFamily: t.fontFamily } : void 0)
188
- }, Y(t.name), 13, Ve))), 128))])) : R("", !0),
189
- o.value.other.length ? (G(), z("optgroup", He, [(G(!0), z(F, null, q(o.value.other, (t) => (G(), z("option", {
187
+ }, Y(t.name), 13, Ge))), 128))])) : R("", !0),
188
+ o.value.other.length ? (G(), z("optgroup", Ke, [(G(!0), z(F, null, q(o.value.other, (t) => (G(), z("option", {
190
189
  key: t.name,
191
190
  value: t.name,
192
191
  style: W(e.showPreview ? { fontFamily: t.fontFamily } : void 0)
193
- }, Y(t.name), 13, Ue))), 128))])) : R("", !0)
194
- ], 42, Fe));
192
+ }, Y(t.name), 13, qe))), 128))])) : R("", !0)
193
+ ], 42, ze));
195
194
  }
196
- }), [["__scopeId", "data-v-1a9a9f88"]]), Ge = { class: "docx-font-size" }, Ke = ["disabled"], qe = [
195
+ }), [["__scopeId", "data-v-a6d7700f"]]), Ye = { class: "docx-font-size" }, Xe = ["disabled"], Ze = [
197
196
  "value",
198
197
  "disabled",
199
198
  "placeholder"
200
- ], Je = ["disabled"], Ye = /*#__PURE__*/ t(/* @__PURE__ */ H({
199
+ ], Qe = ["disabled"], $e = /*#__PURE__*/ r(/* @__PURE__ */ H({
201
200
  __name: "FontSizePicker",
202
201
  props: {
203
202
  value: {},
@@ -245,14 +244,14 @@ var Fe = ["value", "disabled"], Ie = {
245
244
  let t = parseFloat(e.target.value);
246
245
  !isNaN(t) && t >= n.minSize && t <= n.maxSize && r("change", Math.round(t * 2) / 2);
247
246
  }
248
- return (t, n) => (G(), z("div", Ge, [
247
+ return (t, n) => (G(), z("div", Ye, [
249
248
  B("button", {
250
249
  type: "button",
251
250
  class: "docx-font-size__btn",
252
251
  disabled: e.disabled || o.value <= e.minSize,
253
252
  title: "Decrease font size",
254
253
  onClick: Q(u, ["prevent"])
255
- }, "−", 8, Ke),
254
+ }, " ", 8, Xe),
256
255
  B("input", {
257
256
  class: "docx-font-size__input",
258
257
  type: "text",
@@ -269,17 +268,17 @@ var Fe = ["value", "disabled"], Ie = {
269
268
  n[2] ||= Z(Q((e) => f(e), ["prevent"]), ["enter"])
270
269
  ],
271
270
  onBlur: n[3] ||= (e) => f(e)
272
- }, null, 40, qe),
271
+ }, null, 40, Ze),
273
272
  B("button", {
274
273
  type: "button",
275
274
  class: "docx-font-size__btn",
276
275
  disabled: e.disabled || o.value >= e.maxSize,
277
276
  title: "Increase font size",
278
277
  onClick: Q(d, ["prevent"])
279
- }, "+", 8, Je)
278
+ }, " + ", 8, Qe)
280
279
  ]));
281
280
  }
282
- }), [["__scopeId", "data-v-4e8ada55"]]), Xe = ["value", "disabled"], Ze = ["value"], Qe = /*#__PURE__*/ t(/* @__PURE__ */ H({
281
+ }), [["__scopeId", "data-v-dbc73bbe"]]), et = ["value", "disabled"], tt = ["value"], nt = /*#__PURE__*/ r(/* @__PURE__ */ H({
283
282
  __name: "LineSpacingPicker",
284
283
  props: {
285
284
  value: {},
@@ -328,14 +327,14 @@ var Fe = ["value", "disabled"], Ie = {
328
327
  }, [(G(!0), z(F, null, q(a.value, (e) => (G(), z("option", {
329
328
  key: e.twipsValue,
330
329
  value: String(e.twipsValue)
331
- }, Y(e.label), 9, Ze))), 128))], 42, Xe));
330
+ }, Y(e.label), 9, tt))), 128))], 42, et));
332
331
  }
333
- }), [["__scopeId", "data-v-fcda8ecc"]]), $e = [
332
+ }), [["__scopeId", "data-v-c262ff91"]]), rt = [
334
333
  "disabled",
335
334
  "aria-expanded",
336
335
  "title",
337
336
  "onClick"
338
- ], et = { class: "docx-table-grid__panel" }, tt = { class: "docx-table-grid__label" }, nt = ["onMouseenter", "onClick"], rt = /*#__PURE__*/ t(/* @__PURE__ */ H({
337
+ ], it = { class: "docx-table-grid__panel" }, at = { class: "docx-table-grid__label" }, ot = ["onMouseenter", "onClick"], st = /*#__PURE__*/ r(/* @__PURE__ */ H({
339
338
  __name: "TableGridPicker",
340
339
  props: {
341
340
  disabled: {
@@ -348,44 +347,44 @@ var Fe = ["value", "disabled"], Ie = {
348
347
  },
349
348
  emits: ["insert"],
350
349
  setup(e, { emit: t }) {
351
- let { Popover: r } = p(), i = e, a = t, o = K(!1), s = K({
350
+ let { Popover: n } = h(), r = e, i = t, a = K(!1), s = K({
352
351
  rows: 1,
353
352
  cols: 1
354
353
  }), c = I(() => {
355
354
  let e = [];
356
- for (let t = 1; t <= i.gridRows; t++) for (let n = 1; n <= i.gridColumns; n++) e.push({
355
+ for (let t = 1; t <= r.gridRows; t++) for (let n = 1; n <= r.gridColumns; n++) e.push({
357
356
  r: t,
358
357
  c: n
359
358
  });
360
359
  return e;
361
360
  });
362
361
  function l(e, t) {
363
- a("insert", e, t), o.value = !1;
362
+ i("insert", e, t), a.value = !1;
364
363
  }
365
364
  function u() {
366
- o.value = !1, s.value = {
365
+ a.value = !1, s.value = {
367
366
  rows: 1,
368
367
  cols: 1
369
368
  };
370
369
  }
371
- return (t, i) => (G(), L(xe(r), {
372
- open: o.value,
373
- "onUpdate:open": i[0] ||= (e) => o.value = e,
370
+ return (t, r) => (G(), L(Te(n), {
371
+ open: a.value,
372
+ "onUpdate:open": r[0] ||= (e) => a.value = e,
374
373
  onClose: u
375
374
  }, {
376
375
  trigger: X(({ toggle: t }) => [B("button", {
377
376
  type: "button",
378
377
  class: "docx-table-grid__btn",
379
378
  disabled: e.disabled,
380
- "aria-expanded": o.value,
379
+ "aria-expanded": a.value,
381
380
  "aria-haspopup": "grid",
382
381
  title: e.tooltip,
383
382
  onClick: Q(t, ["prevent"])
384
- }, [V(n, {
383
+ }, [V(o, {
385
384
  name: "grid_on",
386
385
  size: 20
387
- })], 8, $e)]),
388
- panel: X(() => [B("div", et, [B("div", tt, Y(s.value.rows) + " × " + Y(s.value.cols), 1), B("div", {
386
+ })], 8, rt)]),
387
+ panel: X(() => [B("div", it, [B("div", at, Y(s.value.rows) + " × " + Y(s.value.cols), 1), B("div", {
389
388
  class: "docx-table-grid__grid",
390
389
  style: W({ gridTemplateColumns: `repeat(${e.gridColumns}, 18px)` })
391
390
  }, [(G(!0), z(F, null, q(c.value, (e) => (G(), z("button", {
@@ -396,14 +395,14 @@ var Fe = ["value", "disabled"], Ie = {
396
395
  cols: e.c
397
396
  },
398
397
  onClick: Q((t) => l(e.r, e.c), ["prevent"])
399
- }, null, 42, nt))), 128))], 4)])]),
398
+ }, null, 42, ot))), 128))], 4)])]),
400
399
  _: 1
401
400
  }, 8, ["open"]));
402
401
  }
403
- }), [["__scopeId", "data-v-444ca123"]]), it = ["disabled", "title"], at = {
402
+ }), [["__scopeId", "data-v-2f56c54d"]]), ct = ["disabled", "title"], lt = {
404
403
  key: 0,
405
404
  class: "print-btn__icon"
406
- }, ot = /*#__PURE__*/ t(/* @__PURE__ */ H({
405
+ }, ut = /*#__PURE__*/ r(/* @__PURE__ */ H({
407
406
  __name: "PrintButton",
408
407
  props: {
409
408
  disabled: {
@@ -427,15 +426,15 @@ var Fe = ["value", "disabled"], Ie = {
427
426
  disabled: e.disabled,
428
427
  title: e.label,
429
428
  onMousedown: Q(i, ["prevent"])
430
- }, [ve(Y(e.compact ? "" : e.label) + " ", 1), e.compact ? (G(), z("span", at, "🖨")) : R("", !0)], 40, it));
429
+ }, [Se(Y(e.compact ? "" : e.label) + " ", 1), e.compact ? (G(), z("span", lt, "🖨")) : R("", !0)], 40, ct));
431
430
  }
432
- }), [["__scopeId", "data-v-3e413c06"]]), st = {
431
+ }), [["__scopeId", "data-v-2f2ba140"]]), dt = {
433
432
  padding: "8px 10px",
434
433
  borderRadius: 8,
435
434
  backgroundColor: "var(--doc-card)",
436
435
  cursor: "pointer",
437
436
  boxShadow: "var(--doc-card-shadow)"
438
- }, ct = {
437
+ }, ft = {
439
438
  padding: "10px 12px",
440
439
  borderRadius: 8,
441
440
  backgroundColor: "var(--doc-surface)",
@@ -443,4 +442,4 @@ var Fe = ["value", "disabled"], Ie = {
443
442
  boxShadow: "var(--doc-card-shadow-strong)"
444
443
  };
445
444
  //#endregion
446
- export { b as AddCommentCard, S as AlignmentButtons, oe as Button, st as CARD_STYLE_COLLAPSED, ct as CARD_STYLE_EXPANDED, e as Checkbox, ae as ColorPicker, _e as CommentCard, le as CommentMarginMarkers, te as DEFAULT_COMPONENTS, r as DatePickerPopover, c as Dialog, m as DocumentName, O as EditingModeDropdown, De as EditorToolbar, i as FindReplaceDialog, We as FontPicker, Ye as FontSizePicker, j as FootnotePropertiesDialog, k as HorizontalRuler, u as HyperlinkDialog, D as IconGridDropdown, N as ImagePositionDialog, re as ImagePropertiesDialog, ue as ImageTransformDropdown, se as ImageWrapDropdown, l as Input, ee as InsertSymbolDialog, M as InsertTableDialog, Qe as LineSpacingPicker, w as ListButtons, h as MenuBar, ne as MenuDropdown, s as OutlineRail, ie as PageSetupDialog, f as Popover, ot as PrintButton, T as ReplyInput, fe as ReplyThread, de as ResolvedCommentMarker, o as Select, ge as StylePicker, g as TableBorderColorPicker, E as TableBorderPicker, me as TableBorderWidthPicker, he as TableCellFillPicker, ce as TableGridInline, rt as TableGridPicker, y as TableMoreDropdown, P as TablePropertiesDialog, A as TableStyleGallery, x as TableToolbar, Pe as TitleBar, v as Toolbar, C as TrackedChangeCard, _ as UnifiedSidebar, pe as VerticalRuler, a as provideFolioUI, d as resolveFolioComponents, p as useFolioUI };
445
+ export { be as AddCommentCard, T as AlignmentButtons, a as Button, dt as CARD_STYLE_COLLAPSED, ft as CARD_STYLE_EXPANDED, i as Checkbox, t as ColorPicker, _ as CommentCard, he as CommentMarginMarkers, ne as DEFAULT_COMPONENTS, n as DatePickerPopover, c as Dialog, ge as DocumentName, g as EditingModeDropdown, je as EditorToolbar, ae as FindReplaceDialog, Je as FontPicker, $e as FontSizePicker, ie as FootnotePropertiesDialog, M as HorizontalRuler, ce as HyperlinkDialog, me as IconGridDropdown, f as ImagePositionDialog, te as ImagePropertiesDialog, xe as ImageTransformDropdown, _e as ImageWrapDropdown, fe as Input, le as InsertImageDialog, ee as InsertSymbolDialog, u as InsertTableDialog, nt as LineSpacingPicker, A as ListButtons, N as MenuBar, s as MenuDropdown, pe as OutlineRail, de as PageSetupDialog, re as PasteSpecialDialog, e as Popover, ut as PrintButton, C as ReplyInput, j as ReplyThread, k as ResolvedCommentMarker, d as Select, p as SplitCellDialog, O as StylePicker, b as TableBorderColorPicker, ye as TableBorderPicker, x as TableBorderWidthPicker, w as TableCellFillPicker, ve as TableGridInline, st as TableGridPicker, D as TableMoreDropdown, oe as TablePropertiesDialog, se as TableStyleGallery, y as TableToolbar, Re as TitleBar, P as Toolbar, E as TrackedChangeCard, S as UnifiedSidebar, v as VerticalRuler, ue as WatermarkDialog, l as provideFolioUI, m as resolveFolioComponents, h as useFolioUI };
@@ -0,0 +1 @@
1
+ let e=require("vue"),t=require("@stll/folio-core/paged-layout/sectionGeometry"),n=require("@stll/folio-core/prosemirror/plugins/anonymizationDecorations"),r=require("@stll/folio-core/prosemirror/plugins/templateDirectives"),i=require("@stll/folio-core/prosemirror/plugins/suggestionMode"),a=require("@stll/folio-core/controller/folioEditor"),o=require("@stll/folio-core/controller/folioEditorEvents"),s=require("@stll/folio-core/controller/hiddenEditorManager"),c=require("@stll/folio-core/controller/layoutPipeline"),l=require("@stll/folio-core/controller/layoutScheduler"),u=require("@stll/folio-core/controller/layoutSession"),d=require("@stll/folio-core/docx/parser"),f=require("@stll/folio-core/docx/footnoteParser"),p=require("@stll/folio-core/layout-bridge/convert/headerFooterLayout"),m=require("@stll/folio-core/layout-painter"),h=require("@stll/folio-core/paged-layout/LayoutSelectionGate"),g=require("@stll/folio-core/paged-layout/transactionDirtyRange"),_=require("@stll/folio-core/prosemirror/conversion/fromProseDoc"),v=require("@stll/folio-core/prosemirror/extensions/ExtensionManager"),y=require("@stll/folio-core/prosemirror/extensions/features/ParagraphChangeTrackerExtension"),ee=require("@stll/folio-core/prosemirror/extensions/StarterKit"),te=require("@stll/folio-core/prosemirror/plugins/templatePreviewValues"),ne=require("@stll/folio-core/prosemirror/plugins/templateSlashMenu"),b=require("@stll/folio-core/utils/findVerticalScrollParent"),x=require("@stll/folio-core/prosemirror/tableResize"),S=require("@stll/folio-core/prosemirror/utils/extractTrackedChanges"),C=require("@stll/folio-core/utils/zoom");var re=24,ie=32,ae=96,oe=250,se=[];function ce(e){let n=e?.columnCount??1;if(n<=1)return;let r={count:n,gap:(0,t.twipsToPixels)(e?.columnSpace??720),equalWidth:e?.equalWidth??!0};return e?.separator!==void 0&&(r.separator=e.separator),r}function w(e){let t={};e.titlePg!==void 0&&(t.titlePg=e.titlePg);for(let n of e.headerReferences??[])n.type==="default"?t.headerDefault=n.rId:n.type===`first`?t.headerFirst=n.rId:t.headerEven=n.rId;for(let n of e.footerReferences??[])n.type==="default"?t.footerDefault=n.rId:n.type===`first`?t.footerFirst=n.rId:t.footerEven=n.rId;return t}function le(e){let t=e?.package.document;if(!t)return;let n=t.sections;if(n&&n.length>0)return n.map(e=>w(e.properties));let r=t.finalSectionProperties;if(r)return[w(r)]}var T={hf:null,rId:null};function ue(e,t){let n=e?.package;if(!n||!t)return{header:T,footer:T,firstHeader:T,firstFooter:T};let r=n.headers,i=n.footers,a=e=>e?r?.get(e)??null:null,o=e=>e?i?.get(e)??null:null,s=null,c=null;for(let e of t.headerReferences??[])e.type==="default"?s=e.rId:e.type===`first`&&(c=e.rId);let l=null,u=null;for(let e of t.footerReferences??[])e.type==="default"?l=e.rId:e.type===`first`&&(u=e.rId);return{header:{hf:a(s),rId:s},footer:{hf:o(l),rId:l},firstHeader:{hf:a(c),rId:c},firstFooter:{hf:o(u),rId:u}}}function E(e,t,n,r,i,a){if(!e)return;let o=t?{...a,rId:t}:a,s=t?n?.getView(t):null;return s?(0,p.convertHeaderFooterPmDocToContent)(s.state.doc,r,i,o):(0,p.convertHeaderFooterToContent)(e,r,i,o)}function de(e,t,n,r,i){if(!e||e.size===0)return;let a=new Map;for(let[o,s]of e){let e=E(s,o,t,n,r,i);e&&a.set(o,e)}return a.size>0?a:void 0}function fe(e,t,n){let r=new Map;if(!n||!n.package.footnotes)return r;let i=new Map;for(let e of n.package.footnotes)e.noteType&&e.noteType!==`normal`||i.set(e.id,e);for(let[n,a]of e){let e=[];for(let n of a){let r=i.get(n);if(!r)continue;let a=t.get(n),o=a?.displayNumber??0;e.push({displayNumber:String(o),text:(0,f.getFootnoteText)(r),...a?{content:{blocks:a.blocks,measures:a.measures,height:a.height}}:{}})}e.length>0&&r.set(n,e)}return r}var D=new Set([`black`,`blue`,`cyan`,`darkBlue`,`darkCyan`,`darkGray`,`darkGreen`,`darkMagenta`,`darkRed`,`darkYellow`,`green`,`lightGray`,`magenta`,`none`,`red`,`white`,`yellow`]);function pe(e){let t=[],n=(e,r)=>{for(let[n,i]of e.marks.entries())i.type.name===`highlight`&&!D.has(String(i.attrs.color))&&t.push(`${r}.marks[${n}]=${JSON.stringify(i.attrs)}`);e.forEach((e,t,i)=>{n(e,`${r}.content[${i}]`)})};return n(e,`doc`),t.join(`; `)}function me(){return typeof document>`u`||!(`fonts`in document)||document.fonts.status===`loaded`}function he(f){let{hiddenContainer:p,pagesContainer:b,readOnly:x=!1,pageGap:S=re,documentKey:C,password:w,editorMode:T,author:D,externalPlugins:he=[],onAnonymizationMatchesChange:ge,showTemplateDirectives:_e,onSlashMenuChange:ve,onSlashMenuKeyAction:O,onChange:k,onError:A,onSelectionUpdate:j,onEditorViewReady:M,onReadOnlyEditAttempt:N,featureFlags:P,onSelectiveSaveTripwire:F}=f,I=(0,e.shallowRef)(null),L=(0,e.shallowRef)(null),R=(0,e.shallowRef)(null),z=(0,e.shallowRef)(null),B=(0,e.shallowRef)([]),ye=(0,e.shallowRef)([]),V=(0,e.ref)(!1),H=(0,e.ref)(null),U=(0,e.ref)(!1),W=new v.ExtensionManager((0,ee.createStarterKit)());W.buildSchema(),W.initializeRuntime();let be=(0,i.createSuggestionModePlugin)(!1),xe=(0,n.createAnonymizationDecorationsPlugin)({onMatchesChange:e=>ge?.(e)}),G=(0,r.createTemplateDirectivesPlugin)(),K=(0,ne.templateSlashMenuPlugin)({onChange:e=>ve?.(e),onKeyAction:e=>O?.(e)??!1}),Se=(0,te.createTemplatePreviewValuesPlugin)(),q=()=>(0,e.toValue)(_e)===!0;function Ce(){return[be,...he,xe,...q()?[G,K]:[],Se]}let J=(0,o.createFolioEditorEmitter)(),Y=new h.LayoutSelectionGate,we=(0,u.createLayoutSession)(),Te=new m.LayoutPainter({pageGap:S,showShadow:!0});function Ee(e){e.layout&&(z.value=e.layout),e.blocks&&(B.value=e.blocks),e.measures&&(ye.value=e.measures),e.blockLookup&&Te.setBlockLookup(e.blockLookup),e.layout&&J.emit(`layoutComplete`,e.layout)}function X(e,n={}){let r=b.value,i=r instanceof HTMLDivElement?r:null,a=I.value,o=a?.package.document,s=o?.sections?.[0]?.properties??o?.finalSectionProperties??null,l=(0,t.getPageSize)(s),u=(0,t.getMargins)(s),d=ce(s),f=l.w-u.left-u.right,p=a?.package.styles??null,m=a?.package.theme??null,h=a?.package.settings?.defaultTabStop,g=a?.package.settings,_=g!==void 0&&`mirrorMargins`in g&&g.mirrorMargins===!0,v=ue(a,s);try{Ee((0,c.runLayoutPipeline)({contentWidth:f,columns:d,pageSize:l,margins:u,pageGap:S,syncCoordinator:Y,headerContent:v.header.hf,footerContent:v.footer.hf,firstPageHeaderContent:v.firstHeader.hf,firstPageFooterContent:v.firstFooter.hf,headerContentRId:v.header.rId,footerContentRId:v.footer.rId,firstPageHeaderContentRId:v.firstHeader.rId,firstPageFooterContentRId:v.firstFooter.rId,sectionHeaderFooterRefs:le(a),theme:m,sectionProperties:s,document:a,defaultTabStop:h,mirrorMargins:_,styles:p,layout:z.value,hfPMs:null,painter:Te,pagesContainer:i,session:we,renderHfFromContentOrPm:E,renderHeaderFooterContentByRId:de,documentFontsAreLoaded:me,buildFootnoteRenderItems:fe,describeInvalidHighlightMarks:pe,emptyTemplatePreviewEntries:se},e,n))}catch(e){let t=e instanceof Error?e:Error(String(e));A?.(t)}}let Z=(0,l.createLayoutScheduler)({runLayout:(e,t)=>X(e,t),debounceMs:ie,maxDelayMs:ae,clock:l.browserClock}),Q=null;function De(){Q!==null&&(window.clearTimeout(Q),Q=null);let e=L.value,t=I.value;if(!(!e||!t))try{let n=(0,_.fromProseDoc)(e.state.doc,t);I.value=n,k?.(n),J.emit(`docChange`,n)}catch(e){A?.(e instanceof Error?e:Error(String(e)))}}function Oe(){Q!==null&&window.clearTimeout(Q),Q=window.setTimeout(()=>{Q=null,De()},oe)}let $=(0,s.createHiddenEditorManager)({getHost:()=>p.value,getDocument:()=>I.value,getStyles:()=>I.value?.package.styles??null,getExtensionManager:()=>W,getExternalPlugins:Ce,getCollaboration:()=>void 0,getCollaborationModules:()=>null,getPrecomputedInitialState:()=>null,getReadOnly:()=>(0,e.toValue)(x),getDocumentKey:()=>(0,e.toValue)(C),getDocumentContext:()=>I.value,onTransaction:ke,onSelectionChange:e=>{R.value=e,j?.(e),J.emit(`selectionChange`,{from:e.selection.from,to:e.selection.to})},onKeyDown:()=>!1,onReadOnlyEditAttempt:()=>N?.(),onEditorViewReady:Ae,onEditorViewDestroy:()=>{L.value=null,V.value=!1,M?.(null)},onRemoteSelectionsChange:()=>{}});function ke(e,t){R.value=t,e.docChanged&&(U.value=!0,Y.incrementStateSeq(),Z.schedule(t,(0,g.getTransactionDirtyRange)(e)),Oe()),Y.requestRender()}function Ae(t){L.value=t,R.value=t.state,V.value=!0,X(t.state,{reason:`initial`}),Y.requestRender(),Me(t),M?.(t),(0,e.toValue)(x)||requestAnimationFrame(()=>{L.value===t&&t.focus()})}let je=(0,a.createFolioEditor)({getEditorApi:()=>$.api,getLayout:()=>z.value,runLayout:(e,t)=>X(e,t),emitter:J});function Me(t){(0,i.setSuggestionMode)((0,e.toValue)(T)===`suggesting`,t.state,t.dispatch,(0,e.toValue)(D))}(0,e.watch)([()=>(0,e.toValue)(T),()=>(0,e.toValue)(D)],()=>{let e=L.value;e&&Me(e)}),(0,e.watch)(()=>(0,e.toValue)(x),()=>$.syncEditable());function Ne(e){let t=q();if(t===e.state.plugins.includes(G))return;let n=e.state.plugins.filter(e=>e!==G&&e!==K);if(t){let e=n.indexOf(Se),t=e===-1?n.length:e;n.splice(t,0,G,K)}e.updateState(e.state.reconfigure({plugins:n}))}(0,e.watch)(()=>q(),()=>{let e=L.value;e&&Ne(e)});function Pe(){$.ensureView()}function Fe(){U.value=!1,Z.dispose(),$.destroyView(),$.ensureView(),$.getView()||Ie()}function Ie(){let e=I.value;if(e)try{let t=(0,s.createHiddenEditorState)({document:e,styles:e.package.styles??null,manager:W,externalPlugins:Ce(),collaborationModules:null,reason:`mount`});R.value=t,X(t,{reason:`initial`})}catch(e){A?.(e instanceof Error?e:Error(String(e)))}}(0,e.watch)([p,b],()=>{p.value&&I.value&&!$.getView()&&Pe()},{flush:`post`});async function Le(t){H.value=null,V.value=!1;try{let n=await(0,d.parseDocx)(t,{password:(0,e.toValue)(w)});I.value=n,Fe()}catch(e){let t=e instanceof Error?e:Error(String(e));H.value=t.message,A?.(t)}}function Re(e){H.value=null,I.value=e,Fe()}async function ze(t){let n=L.value,r=I.value;if(!n||!r)return null;let i=n.state,{resolveSelectiveSaveFlags:a}=await import(`@stll/folio-core/docx/selectiveSaveFlags`),o=a((0,e.toValue)(P)),s=(0,_.fromProseDoc)(i.doc,r),c=s.originalBuffer??null,l=o.selectiveSave&&t?.selective!==!1,u=l||o.selectiveSaveTripwire,{repackDocx:d,createDocx:f}=await import(`@stll/folio-core/docx/rezip`),p=null;if(u&&c){let{attemptSelectiveSave:e}=await import(`@stll/folio-core/docx/selectiveSave`);p=await e(s,c,{changedParaIds:(0,y.getChangedParagraphIds)(i),structuralChange:(0,y.hasStructuralChanges)(i),hasUntrackedChanges:(0,y.hasUntrackedChanges)(i),maxBytes:o.selectiveSaveMaxBytes})}let m=l?p:null,h=null;if(!m)h=c?await d(s):await f(s),m=h;else if(o.selectiveSaveTripwire)try{h=await d(s)}catch{}if(o.selectiveSaveTripwire&&h&&F)try{let{compareSelectiveVsFull:e}=await import(`@stll/folio-core/docx/selectiveSaveTripwire`);F(await e(p,h))}catch{}return U.value=!1,new Blob([m],{type:`application/vnd.openxmlformats-officedocument.wordprocessingml.document`})}function Be(){return I.value}function Ve(e){I.value=e}function He(){return W.getCommands()}function Ue(){L.value?.focus()}function We(){let e=L.value;e&&X(e.state,{reason:`manual`})}function Ge(){Z.dispose(),Q!==null&&(window.clearTimeout(Q),Q=null),$.destroyView(),W.destroy(),R.value=null,z.value=null,I.value=null,V.value=!1}return(0,e.onScopeDispose)(Ge),{editor:je,editorView:L,editorState:R,isReady:V,isDirty:U,parseError:H,layout:z,blocks:B,measures:ye,loadBuffer:Le,loadDocument:Re,save:ze,getDocument:Be,setDocument:Ve,getCommands:He,focus:Ue,reLayout:We,destroy:Ge}}function ge(e,t){if(t<e.top+40){let n=Math.max(0,e.top+40-t);return-Math.min(12,n/40*12)}if(t>e.bottom-40){let n=Math.max(0,t-(e.bottom-40));return Math.min(12,n/40*12)}return 0}function _e({pagesContainer:t,onScrollExtendSelection:n}){let r=null,i=0,a=0,o=!1,s=null;function c(){if(s)return s;let e=t.value;return e?(s=(0,b.findVerticalScrollParent)(e),s):null}function l(){o=!1,r!==null&&(cancelAnimationFrame(r),r=null)}function u(){if(!o)return;let e=c();if(!e)return;let t=ge(e.getBoundingClientRect(),a);t!==0&&(e.scrollTop+=t,n(i,a)),r=requestAnimationFrame(u)}function d(){o||(o=!0,r=requestAnimationFrame(u))}function f(e,t){if(i=e,a=t,!o){let e=c();if(!e)return;let n=e.getBoundingClientRect();(t<n.top+40||t>n.bottom-40)&&d()}}return(0,e.onScopeDispose)(()=>l()),{updateMousePosition:f,stopAutoScroll:l}}function ve(){let e={active:!1,startX:0,handle:null,columnIndex:0,tablePmStart:0,origWidths:{left:0,right:0}},t={active:!1,startY:0,handle:null,rowIndex:0,isEdge:!1,tablePmStart:0,origHeight:0},n={active:!1,startX:0,handle:null,columnIndex:0,tablePmStart:0,origWidth:0},r=null;function i(){return e.active||t.active||n.active}function a(i,a){let o=i.target;return o instanceof HTMLElement?o.classList.contains(`layout-table-resize-handle`)?(i.preventDefault(),i.stopPropagation(),r=a,e.active=!0,e.startX=i.clientX,e.handle=o,o.classList.add(`dragging`),e.columnIndex=parseInt(o.dataset.columnIndex??`0`,10),e.tablePmStart=parseInt(o.dataset.tablePmStart??`0`,10),O(a,e),!0):o.classList.contains(`layout-table-row-resize-handle`)||o.classList.contains(`layout-table-edge-handle-bottom`)?(i.preventDefault(),i.stopPropagation(),r=a,t.active=!0,t.startY=i.clientY,t.handle=o,t.isEdge=o.dataset.isEdge===`bottom`,o.classList.add(`dragging`),t.rowIndex=parseInt(o.dataset.rowIndex??`0`,10),t.tablePmStart=parseInt(o.dataset.tablePmStart??`0`,10),k(a,t,o),!0):o.classList.contains(`layout-table-edge-handle-right`)?(i.preventDefault(),i.stopPropagation(),r=a,n.active=!0,n.startX=i.clientX,n.handle=o,o.classList.add(`dragging`),n.columnIndex=parseInt(o.dataset.columnIndex??`0`,10),n.tablePmStart=parseInt(o.dataset.tablePmStart??`0`,10),A(a,n),!0):!1:!1}function o(r){if(e.active&&e.handle){r.preventDefault();let t=r.clientX-e.startX,n=parseFloat(e.handle.style.left);e.handle.style.left=`${n+t}px`,e.startX=r.clientX;let i=Math.round(t*x.TWIPS_PER_PIXEL),a=e.origWidths.left+i,o=e.origWidths.right-i;a>=x.MIN_CELL_WIDTH_TWIPS&&o>=x.MIN_CELL_WIDTH_TWIPS&&(e.origWidths={left:a,right:o});return}if(t.active&&t.handle){r.preventDefault();let e=r.clientY-t.startY,n=parseFloat(t.handle.style.top);t.handle.style.top=`${n+e}px`,t.startY=r.clientY;let i=Math.round(e*x.TWIPS_PER_PIXEL),a=t.origHeight+i;a>=x.MIN_ROW_HEIGHT_TWIPS&&(t.origHeight=a);return}if(n.active&&n.handle){r.preventDefault();let e=r.clientX-n.startX,t=parseFloat(n.handle.style.left);n.handle.style.left=`${t+e}px`,n.startX=r.clientX;let i=Math.round(e*x.TWIPS_PER_PIXEL),a=n.origWidth+i;a>=x.MIN_CELL_WIDTH_TWIPS&&(n.origWidth=a)}}function s(i){if(e.active){e.active=!1,e.handle?.classList.remove(`dragging`),r&&(0,x.commitColumnResize)(r,{pmStart:e.tablePmStart,colIdx:e.columnIndex,newLeft:e.origWidths.left,newRight:e.origWidths.right}),e.handle=null;return}if(t.active){t.active=!1,t.handle?.classList.remove(`dragging`),r&&(0,x.commitRowResize)(r,{pmStart:t.tablePmStart,rowIdx:t.rowIndex,newHeight:t.origHeight}),t.handle=null;return}n.active&&(n.active=!1,n.handle?.classList.remove(`dragging`),r&&(0,x.commitRightEdgeResize)(r,{pmStart:n.tablePmStart,colIdx:n.columnIndex,newWidth:n.origWidth}),n.handle=null)}function c(){return document.addEventListener(`mousemove`,o),document.addEventListener(`mouseup`,s),()=>{document.removeEventListener(`mousemove`,o),document.removeEventListener(`mouseup`,s)}}return{tryStartResize:a,install:c,isResizing:i}}function O(e,t){let n=(0,x.readColumnWidths)(e,t.tablePmStart,t.columnIndex);n&&(t.origWidths=n)}function k(e,t,n){let r=(0,x.readRowHeight)(e,t.tablePmStart,t.rowIndex);if(r!=null){t.origHeight=r;return}let i=n.closest(`.layout-table`)?.querySelector(`[data-row-index="${t.rowIndex}"]`),a=i?i.getBoundingClientRect().height:30;t.origHeight=Math.round(a*x.TWIPS_PER_PIXEL)}function A(e,t){let n=(0,x.readColumnWidthAt)(e,t.tablePmStart,t.columnIndex);n!=null&&(t.origWidth=n)}function j(t,n){return(0,e.computed)(()=>(n.value,(0,S.extractTrackedChanges)(t.value?.state??null)))}var M=C.ZOOM_MIN,N=C.ZOOM_MAX,P=[.5,.75,1,1.25,1.5,2];function F(t=1){let n=(0,e.ref)(Math.max(M,Math.min(N,t))),r=(0,e.computed)(()=>Math.round(n.value*100)),i=(0,e.computed)(()=>n.value<=M),a=(0,e.computed)(()=>n.value>=N);function o(e){n.value=Math.max(M,Math.min(N,Math.round(e*100)/100))}function s(){o(n.value+C.ZOOM_STEP)}function c(){o(n.value-C.ZOOM_STEP)}function l(){o(1)}function u(e){(e.ctrlKey||e.metaKey)&&(e.preventDefault(),e.deltaY<0?s():c())}function d(e){(e.ctrlKey||e.metaKey)&&(e.shiftKey||e.altKey||(e.key===`=`||e.key===`+`?(e.preventDefault(),s()):e.key===`-`?(e.preventDefault(),c()):e.key===`0`&&(e.preventDefault(),l())))}function f(){(0,e.onMounted)(()=>document.addEventListener(`keydown`,d)),(0,e.onBeforeUnmount)(()=>document.removeEventListener(`keydown`,d))}return{zoom:n,zoomPercent:r,isMinZoom:i,isMaxZoom:a,setZoom:o,zoomIn:s,zoomOut:c,resetZoom:l,handleWheel:u,handleKeyDown:d,installShortcuts:f,ZOOM_PRESETS:P}}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return F}});