[{"data":1,"prerenderedAt":176},["ShallowReactive",2],{"quirekit-doc:\u002Fen\u002Fbuild\u002Fresources":3},{"id":4,"title":5,"body":6,"description":164,"extension":165,"keywords":166,"locale":167,"meta":168,"navigation":169,"order":170,"path":171,"section":172,"seo":173,"stem":174,"__hash__":175},"docs\u002Fbuild\u002Fresources.en.md","Add images, fonts and other capabilities",{"type":7,"value":8,"toc":157},"minimark",[9,13,18,21,24,40,44,47,50,54,135,138],[10,11,12],"p",{},"Displaying an image does not mean the application has saved its bytes. A complete product also needs resource storage, fonts and server integrations.",[14,15,17],"h2",{"id":16},"images-save-references-and-bytes","Images: save references and bytes",[10,19,20],{},"Typically, upload an image to storage to obtain a stable resource ID, then insert that ID through a content command. A resolver turns the ID into usable bytes or a display URL.",[10,22,23],{},"Blob URLs are temporary previews. Persist both resource identity and bytes, and verify the original insertion target when asynchronous uploads finish.",[10,25,26,27,31,32,35,36,39],{},"Classic accepts a sink and resolver through ",[28,29,30],"code",{},"media",", with host file capabilities through ",[28,33,34],{},"host",". Custom workspaces provide View's ",[28,37,38],{},"mediaResolver"," and matching media services for conversion.",[14,41,43],{"id":42},"fonts-refresh-layout-after-loading","Fonts: refresh layout after loading",[10,45,46],{},"Fonts affect width, wrapping and page count. After loading, refresh measurements through the mounted View's public font capabilities. Changing interface CSS alone does not update document pagination.",[10,48,49],{},"Classic can use an optional web font library. The application obtains licensed fonts, handles failures and makes matching resources available for export.",[14,51,53],{"id":52},"add-capabilities-as-needed","Add capabilities as needed",[55,56,57,73],"table",{},[58,59,60],"thead",{},[61,62,63,67,70],"tr",{},[64,65,66],"th",{},"Capability",[64,68,69],{},"Integration",[64,71,72],{},"Application responsibility",[74,75,76,88,102,113,124],"tbody",{},[61,77,78,82,85],{},[79,80,81],"td",{},"Word and DOCX",[79,83,84],{},"Word preset, model conversion and file services",[79,86,87],{},"Storage, conversion feedback and media",[61,89,90,93,99],{},[79,91,92],{},"Review and forms",[79,94,95,96],{},"Optional ",[28,97,98],{},"@quirekit\u002Fclassic-pro",[79,100,101],{},"Obtain and configure the relevant package",[61,103,104,107,110],{},[79,105,106],{},"Collaboration",[79,108,109],{},"Collaboration extension and selected document protocol",[79,111,112],{},"Backend, identity, permissions and conflicts",[61,114,115,118,121],{},[79,116,117],{},"AI",[79,119,120],{},"AI packages and feature declarations",[79,122,123],{},"Model connection, permissions and interface",[61,125,126,129,132],{},[79,127,128],{},"Ribbon, menus and sidebars",[79,130,131],{},"Your interface or Classic plugins",[79,133,134],{},"Layout and business actions",[10,136,137],{},"Each capability has dependencies and licensing. The example's enabled features are not the entire framework, and creating Editor does not connect accounts, storage or collaboration servers.",[10,139,140,141,146,147,151,152,156],{},"Extend your workspace through the ",[142,143,145],"a",{"href":144},"\u002Fen\u002Fbuild\u002Freference","reference",", or start with ",[142,148,150],{"href":149},"\u002Fen\u002Fclassic\u002Fconfiguration","Classic configuration"," and ",[142,153,155],{"href":154},"\u002Fen\u002Fclassic\u002Fplugins","plugins",".",{"title":158,"searchDepth":159,"depth":159,"links":160},"",2,[161,162,163],{"id":16,"depth":159,"text":17},{"id":42,"depth":159,"text":43},{"id":52,"depth":159,"text":53},"Find the resource and service integrations a complete product needs beyond editing.","md",null,"en",{},true,8,"\u002Fen\u002Fbuild\u002Fresources","Build a product",{"title":5,"description":164},"build\u002Fresources.en","axsDJmLb1Igaf7P5OcVVXbMiGy0ZxnWbyYYk5qThQAc",1793045210328]