When set to 'html', all text values in this request (including plural text) are parsed as HTML and saved as rich text. Supported formatting: <strong>/<b>, <em>/<i>, <u>, <s>, and <br> for line breaks. <sup> and <sub> are only supported for workspaces with superscript and subscript enabled. Unsupported markup (for example links, lists, or headings) is dropped and its text content kept.
Note: Fully-bolded strings will have that bold styling stripped, as Figma does not support bolding an entire text layer this way.
When omitted, text is saved as plaintext and any markup is stored literally.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Ditto","description":"Developer documentation for Ditto, the source of truth for product text. Scan a codebase to import its strings, then connect coding agents through the Ditto MCP server, link Figma files, and pull localized string files with the CLI.","colors":{"primary":"#E2B103","light":"#F0D164","dark":"#1D1700"},"logo":{"light":"https://mintcdn.com/ditto/A9jN5zv6WG_Dk9hK/logo/ditto_logo.svg?fit=max\u0026auto=format\u0026n=A9jN5zv6WG_Dk9hK\u0026q=85\u0026s=4e38ddaa8955775a191cbe1616e02312","dark":"https://mintcdn.com/ditto/A9jN5zv6WG_Dk9hK/logo/ditto_logo.svg?fit=max\u0026auto=format\u0026n=A9jN5zv6WG_Dk9hK\u0026q=85\u0026s=4e38ddaa8955775a191cbe1616e02312"},"favicon":"https://mintcdn.com/ditto/WgRtoF9rLXWv6hNh/favicon.jpeg?fit=max\u0026auto=format\u0026n=WgRtoF9rLXWv6hNh\u0026q=85\u0026s=011fcbfc2411f0c04ab811e7b701750c","background":{"color":{"dark":"#11141B"}},"navbar":{"links":[{"href":"mailto:support@dittowords.com","label":"Support"}],"primary":{"type":"button","label":"Open App","href":"https://app.dittowords.com"}},"footer":{"socials":{"twitter":"https://twitter.com/dittowords","github":"https://github.com/dittowords","linkedin":"https://www.linkedin.com/company/ditto-app"}},"seo":{"organization":{"id":"https://www.dittowords.com/#organization","name":"Ditto","url":"https://www.dittowords.com","logo":"https://developer.dittowords.com/logo/ditto_logo.svg","sameAs":["https://twitter.com/dittowords","https://github.com/dittowords","https://www.linkedin.com/company/ditto-app"]},"indexing":"navigable"},"contextual":{"options":["copy","view","claude","chatgpt","mcp","cursor","vscode"],"display":"header"},"markdown":{"instructions":["These are Ditto's developer docs. Ditto is a single source of truth for product copy across design, review, localization, and code.","The first step on any codebase is a scan: https://developer.dittowords.com/get-started/scan-your-repo.md. That page also covers reviewing the style guide Ditto drafts from the scan. After it, the follow-on guides are Connect Figma files and Set up localization (under /guides/) and Connect the Ditto MCP (the Setup page of the MCP reference).","Two different MCP servers: the Ditto MCP server at https://api.dittowords.com/v2/mcp gives an agent a workspace's text and style guide rules; the documentation MCP server at https://developer.dittowords.com/mcp searches these docs.","Prefer logging in with a Ditto account (npx -y @dittowords/cli@latest login; OAuth in MCP clients) over API keys. API keys are for CI and headless clients only.","Commands are complete as written and use npx -y @dittowords/cli@latest; nothing needs a global install."]},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Help Guides","icon":"book-open-cover","href":"https://help.dittowords.com/en/"},{"anchor":"What's New","icon":"newspaper","href":"https://www.dittowords.com/whats-new"},{"anchor":"Figma Plugin","icon":"figma","href":"https://www.figma.com/community/plugin/798826066406007173/ditto-manage-copy-from-design-to-production"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ditto","hasAudioNarration":false,"actualSubdomain":"ditto","customDomains":["developer.dittowords.com"],"gitSource":{"type":"github","owner":"dittowords","repo":"ditto-app","deployBranch":"master","contentDirectory":"docs-public","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"DISABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aee3ddcc5d9abc893e67d94","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Documentation","count":97},{"language":"default","tag":"API Reference","count":68},{"language":"default","tag":"Endpoints","count":66},{"language":"default","tag":"Legacy","count":18},{"language":"default","tag":"Components","count":16},{"language":"default","tag":"Projects","count":8},{"language":"default","tag":"Text Items","count":8},{"language":"default","tag":"CLI Reference","count":7},{"language":"default","tag":"Component Folders","count":6},{"language":"default","tag":"Style guides","count":6}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/components/save-unpublished-component-changes","slug":"/api-reference/components/save-unpublished-component-changes","pageMetadata":{"openapi":"openapi.json patch /components/staged","title":"Save unpublished component changes","description":"Saves changes to library components without publishing them. The changes are not available to instances until they're published.\n\nThe operation is all-or-nothing: if any update is invalid, nothing is saved.\n\nOnly available in workspaces that have opted into library component versioning.","href":"/api-reference/components/save-unpublished-component-changes"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Saves changes to library components without publishing them. The changes are not available to instances until they’re published.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"The operation is all-or-nothing: if any update is invalid, nothing is saved.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Only available in workspaces that have opted into library component versioning.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"openapi.json patch /components/staged","title":"Save unpublished component changes","description":"Saves changes to library components without publishing them. The changes are not available to instances until they're published.\n\nThe operation is all-or-nothing: if any update is invalid, nothing is saved.\n\nOnly available in workspaces that have opted into library component versioning.","href":"/api-reference/components/save-unpublished-component-changes"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Components"],"description":"Saves changes to library components without publishing them. The changes are not available to instances until they're published.\n\nThe operation is all-or-nothing: if any update is invalid, nothing is saved.\n\nOnly available in workspaces that have opted into library component versioning.","summary":"Save unpublished component changes","security":["ddc5dffe-971c-4616-aeed-d515fb8e741f"],"requestBody":"f8bc6dda-ff07-4b4f-9f24-44bffb8da8fb","responses":{"200":"f5e343a7-9631-4588-a849-8ac3acb68537","400":"40487dbd-3fef-4683-b442-c608ad866742","404":"3829e596-f463-4775-9e30-eacf6d80325a"},"method":"patch","type":"path","servers":["c17b7272-afc0-4eb1-bfae-7d1426781740"],"path":"/components/staged","baseUrlOptions":["https://api.dittowords.com/v2"],"title":"Save unpublished component changes","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"updates":{"type":"array","items":{"type":"object","properties":{"developerId":{"type":"string","description":"The component's developer ID","isRequired":true,"uniqueKey":"updates.items.[INDEX].developerId","typeLabel":"string"},"text":{"type":"string","description":"The text the component will be updated to. Text will remain unchanged if unset. **Note:** Cannot be combined with plurals in the same update object. To update both the display text and other plural forms at once, include the first plural form in the plurals upsert array instead.","uniqueKey":"updates.items.[INDEX].text","typeLabel":"string"},"plurals":{"type":"object","properties":{"upsert":{"type":"array","items":{"type":"object","properties":{"form":{"type":"string","enum":["one","two","few","many","zero","other"],"description":"The plural form","isRequired":true,"uniqueKey":"updates.items.[INDEX].plurals.upsert.items.[INDEX].form","typeLabel":"enum\u003cstring>"},"text":{"type":"string","description":"The text for this plural form","isRequired":true,"uniqueKey":"updates.items.[INDEX].plurals.upsert.items.[INDEX].text","typeLabel":"string"}},"required":["form","text"],"uniqueKey":"updates.items.[INDEX].plurals.upsert.items.[INDEX]","typeLabel":"object"},"description":"Array of plural forms to create or update. If a plural with the given form already exists, its text will be updated. Otherwise, a new plural will be created. Each form may only appear once in the array.","uniqueKey":"updates.items.[INDEX].plurals.upsert","typeLabel":"object[]"},"remove":{"type":"array","items":{"type":"string","enum":["one","two","few","many","zero","other"],"uniqueKey":"updates.items.[INDEX].plurals.remove.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Array of plural forms to remove from the text item. Each form may only appear once. A form cannot appear in both upsert and remove.","uniqueKey":"updates.items.[INDEX].plurals.remove","typeLabel":"enum\u003cstring>[]"}},"description":"Optional plural form updates. Existing plural forms not mentioned in either upsert or remove are preserved. The order of plurals matters: the first plural form is the 'master' value whose text is used as the text item's display text. New plurals are appended after existing ones. If you need to change which plural is first, remove and re-add them in the desired order.","uniqueKey":"updates.items.[INDEX].plurals","typeLabel":"object"},"variables":{"type":"array","items":{"type":"string","uniqueKey":"updates.items.[INDEX].variables.items.[INDEX]","typeLabel":"string"},"description":"Developer IDs of variables (the `id` field from GET /v2/variables) used in this update's text or plurals. Text fields support `{{variable_name}}` placeholders that will be resolved using the variables listed here. Placeholders whose names are not in this list are kept as literal text.","uniqueKey":"updates.items.[INDEX].variables","typeLabel":"string[]"},"tags":{"type":"array","items":{"type":"string","uniqueKey":"updates.items.[INDEX].tags.items.[INDEX]","typeLabel":"string"},"description":"The set of tags that will be set on this component. Other tags will be removed. If unset tags will remain unchanged.","uniqueKey":"updates.items.[INDEX].tags","typeLabel":"string[]"},"notes":{"oneOf":[{"type":"string","description":"Notes for the component. Use null or empty string to clear notes. If not provided, notes will remain unchanged.","uniqueKey":"updates.items.[INDEX].notes.oneOf.0","typeLabel":"string"},{"type":"null","description":"Notes for the component. Use null or empty string to clear notes. If not provided, notes will remain unchanged.","uniqueKey":"updates.items.[INDEX].notes.oneOf.1","typeLabel":"null"}],"uniqueKey":"updates.items.[INDEX].notes","typeLabel":"string | null"},"characterLimit":{"oneOf":[{"type":"number","minimum":1,"description":"Character limit for the component. Use null to remove the limit. If not provided, character limit will remain unchanged.","uniqueKey":"updates.items.[INDEX].characterLimit.oneOf.0","typeLabel":"number"},{"type":"null","minimum":1,"description":"Character limit for the component. Use null to remove the limit. If not provided, character limit will remain unchanged.","uniqueKey":"updates.items.[INDEX].characterLimit.oneOf.1","typeLabel":"null"}],"uniqueKey":"updates.items.[INDEX].characterLimit","typeLabel":"number | null"}},"required":["developerId"],"additionalProperties":false,"uniqueKey":"updates.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Array of changes to save on components without publishing them. Not every component field can be saved as an unpublished change.","isRequired":true,"uniqueKey":"updates","typeLabel":"object[]"},"variantId":{"type":"string","description":"Developer ID of the target variant. If a component does not already have the target variant, it will be added. Omit if targeting base text.","uniqueKey":"variantId","typeLabel":"string"},"forceVariantCreation":{"type":"boolean","description":"If true, and the provided variantId is not found, create the variant. A variant name will be generated based on the passed in ID.","uniqueKey":"forceVariantCreation","typeLabel":"boolean"},"richText":{"type":"string","enum":["html"],"description":"When set to 'html', all `text` values in this request (including plural text) are parsed as HTML and saved as rich text. Supported formatting: `\u003cstrong>`/`\u003cb>`, `\u003cem>`/`\u003ci>`, `\u003cu>`, `\u003cs>`, and `\u003cbr>` for line breaks. `\u003csup>` and `\u003csub>` are only supported for workspaces with superscript and subscript enabled. Unsupported markup (for example links, lists, or headings) is dropped and its text content kept.\n\nNote: Fully-bolded strings will have that bold styling stripped, as Figma does not support bolding an entire text layer this way.\n\nWhen omitted, text is saved as plaintext and any markup is stored literally.","uniqueKey":"richText","typeLabel":"enum\u003cstring>"}},"required":["updates"],"additionalProperties":false,"example":{"updates":[{"developerId":"component-id-1","text":"Place order","notes":"Shortened for mobile"}]},"uniqueKey":"","typeLabel":"object"},"examples":{"save_base_text":{"title":"save_base_text","value":{"updates":[{"developerId":"component-id-1","text":"Place order"}]}},"save_variant_text":{"title":"save_variant_text","value":{"variantId":"french","updates":[{"developerId":"component-id-1","text":"Passer la commande"}]}},"save_notes_and_tags":{"title":"save_notes_and_tags","value":{"updates":[{"developerId":"component-id-1","notes":"Shortened for mobile","tags":["checkout"]}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"f5e343a7-9631-4588-a849-8ac3acb68537":{"description":"Returns success status of the save operation","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the changes were saved","isRequired":true,"uniqueKey":"success","typeLabel":"boolean"}},"required":["success"],"example":{"success":true},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":true}}},"exampleType":"generated"}},"exampleType":"generated"},"40487dbd-3fef-4683-b442-c608ad866742":{"description":"Returned when the request body fails validation. Common causes include: a Developer ID that does not match any existing component, a Developer ID repeated in `updates`, an update that includes a field that can't be saved as an unpublished change, such as `status`, an update with nothing to save, a variant ID that does not exist (when forceVariantCreation is not set), or providing both `text` and `plurals` in the same update object.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message describing why the request failed","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","description":"Optional additional error details","uniqueKey":"details","typeLabel":"object"}},"required":["message"],"uniqueKey":"","typeLabel":"object"},"example":{"message":"Component with developer ID component-id-1 not found"},"examples":{"Example":{"title":"Example","value":{"message":"Component with developer ID component-id-1 not found"}}},"exampleType":"examples"}},"exampleType":"examples"},"3829e596-f463-4775-9e30-eacf6d80325a":{"description":"Returned when the workspace hasn't opted into library component versioning","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message describing why the request failed","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","description":"Optional additional error details","uniqueKey":"details","typeLabel":"object"}},"required":["message"],"uniqueKey":"","typeLabel":"object"},"example":{"message":"This workspace hasn't opted into library component versioning"},"examples":{"Example":{"title":"Example","value":{"message":"This workspace hasn't opted into library component versioning"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"ddc5dffe-971c-4616-aeed-d515fb8e741f":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"c17b7272-afc0-4eb1-bfae-7d1426781740":{"url":"https://api.dittowords.com/v2"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"Authorization","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"Authorization","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"Authorization"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"ditto","siteName":"Ditto","title":"Save unpublished component changes - Ditto","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-21T13:20:12.924Z","originalFileLocation":"api-reference/components/save-unpublished-component-changes.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Saves changes to library components without publishing them. The changes are not available to instances until they\u0026#x27;re published. The operation is all-or-nothing: if any update is invalid, nothing is saved. Only available in workspaces that have opted into library component versioning.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Ditto\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Save unpublished component changes - Ditto\">\u003cmeta data-mint-head property=\"og:description\" content=\"Saves changes to library components without publishing them. The changes are not available to instances until they\u0026#x27;re published. The operation is all-or-nothing: if any update is invalid, nothing is saved. Only available in workspaces that have opted into library component versioning.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ditto\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developer.dittowords.com/api-reference/components/save-unpublished-component-changes\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ditto.mintlify.site/_mintlify/api/og/v2?division=Versioning\u0026amp;title=Save+unpublished+component+changes\u0026amp;description=Saves+changes+to+library+components+without+publishing+them.+The+changes+are+not+available+to+instances+until+they%27re+published.%0A%0AThe+operation+is+all-or-nothin\u0026amp;theme=4036b03ce109cfe5ed49d7db\u0026amp;signature=9fa311e1fe3e0a47e0ed2019dcf011a8a20f4592c0f66f898aa8dd3f24438de4\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Save unpublished component changes - Ditto\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Saves changes to library components without publishing them. The changes are not available to instances until they\u0026#x27;re published. The operation is all-or-nothing: if any update is invalid, nothing is saved. Only available in workspaces that have opted into library component versioning.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ditto.mintlify.site/_mintlify/api/og/v2?division=Versioning\u0026amp;title=Save+unpublished+component+changes\u0026amp;description=Saves+changes+to+library+components+without+publishing+them.+The+changes+are+not+available+to+instances+until+they%27re+published.%0A%0AThe+operation+is+all-or-nothin\u0026amp;theme=4036b03ce109cfe5ed49d7db\u0026amp;signature=9fa311e1fe3e0a47e0ed2019dcf011a8a20f4592c0f66f898aa8dd3f24438de4\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ditto\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#E2B103\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developer.dittowords.com/api-reference/components/save-unpublished-component-changes\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/components/save-unpublished-component-changes.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.dittowords.com/#organization\",\"name\":\"Ditto\",\"url\":\"https://www.dittowords.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://developer.dittowords.com/logo/ditto_logo.svg\"},\"sameAs\":[\"https://twitter.com/dittowords\",\"https://github.com/dittowords\",\"https://www.linkedin.com/company/ditto-app\"]},{\"@type\":\"WebSite\",\"@id\":\"https://developer.dittowords.com#website\",\"name\":\"Ditto\",\"url\":\"https://developer.dittowords.com\",\"publisher\":{\"@id\":\"https://www.dittowords.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developer.dittowords.com/api-reference/components/save-unpublished-component-changes#webpage\",\"url\":\"https://developer.dittowords.com/api-reference/components/save-unpublished-component-changes\",\"name\":\"Save unpublished component changes\",\"description\":\"Saves changes to library components without publishing them. The changes are not available to instances until they're published. The operation is all-or-nothing: if any update is invalid, nothing is saved. Only available in workspaces that have opted into library component versioning.\",\"dateModified\":\"2026-10-21T13:20:12.924Z\",\"isPartOf\":{\"@id\":\"https://developer.dittowords.com#website\"},\"breadcrumb\":{\"@id\":\"https://developer.dittowords.com/api-reference/components/save-unpublished-component-changes#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developer.dittowords.com/api-reference/components/save-unpublished-component-changes#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://developer.dittowords.com/api-reference/authentication\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Endpoints\",\"item\":\"https://developer.dittowords.com/api-reference/activity/get-activity\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Components\",\"item\":\"https://developer.dittowords.com/api-reference/components/get-components\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Versioning\",\"item\":\"https://developer.dittowords.com/api-reference/components/get-unpublished-component-changes\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Save unpublished component changes\",\"item\":\"https://developer.dittowords.com/api-reference/components/save-unpublished-component-changes\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developer.dittowords.com/api-reference/components/save-unpublished-component-changes#apireference\",\"headline\":\"Save unpublished component changes\",\"name\":\"Save unpublished component changes\",\"description\":\"Saves changes to library components without publishing them. The changes are not available to instances until they're published. The operation is all-or-nothing: if any update is invalid, nothing is saved. Only available in workspaces that have opted into library component versioning.\",\"url\":\"https://developer.dittowords.com/api-reference/components/save-unpublished-component-changes\",\"mainEntityOfPage\":{\"@id\":\"https://developer.dittowords.com/api-reference/components/save-unpublished-component-changes#webpage\"},\"dateModified\":\"2026-10-21T13:20:12.924Z\",\"publisher\":{\"@id\":\"https://www.dittowords.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developer.dittowords.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Ditto\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Ditto","nav":{"global":{"anchors":[{"anchor":"Help Guides","icon":"book-open-cover","href":"https://help.dittowords.com/en/"},{"anchor":"What's New","icon":"newspaper","href":"https://www.dittowords.com/whats-new"},{"anchor":"Figma Plugin","icon":"figma","href":"https://www.figma.com/community/plugin/798826066406007173/ditto-manage-copy-from-design-to-production"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Start here","pages":[{"title":"Ditto developer documentation","sidebarTitle":"Introduction","href":"/introduction"},{"title":"Scan your repo","href":"/get-started/scan-your-repo"},{"title":"Connect Figma files","href":"/guides/connect-figma-files"},{"title":"Set up localization","href":"/guides/set-up-localization"}]},{"group":"Concepts","pages":[{"title":"Key concepts","href":"/concepts"}]},{"group":"CLI Reference","pages":[{"title":"Install and log in to the Ditto CLI","sidebarTitle":"Install and log in","href":"/cli-reference/authentication"},{"title":"Ditto CLI commands","sidebarTitle":"Commands","href":"/cli-reference/commands"},{"title":"Ditto CLI configuration","sidebarTitle":"Configuration","href":"/cli-reference/configuration"},{"title":"Ditto CLI output files","sidebarTitle":"Files","href":"/cli-reference/files"}]},{"group":"API Reference","pages":[{"title":"Ditto API authentication","sidebarTitle":"Authentication","href":"/api-reference/authentication"},{"group":"Endpoints","pages":[{"group":"Activity","pages":[{"openapi":"openapi.json get /activity","title":"Fetch activity","href":"/api-reference/activity/get-activity"}]},{"group":"Bases","tag":"BETA","pages":[{"openapi":"openapi.json get /bases","tag":"BETA","title":"Fetch bases","href":"/api-reference/bases/get-bases"},{"openapi":"openapi.json get /bases/{baseId}","tag":"BETA","title":"Fetch a base","href":"/api-reference/bases/get-base"},{"openapi":"openapi.json post /bases","tag":"BETA","title":"Create bases","href":"/api-reference/bases/create-bases"},{"openapi":"openapi.json patch /bases/{baseId}","tag":"BETA","title":"Update a base","href":"/api-reference/bases/patch-bases"}]},{"group":"Components","pages":[{"openapi":"openapi.json get /components","title":"Fetch components","href":"/api-reference/components/get-components"},{"openapi":"openapi.json get /components/export","title":"Export components","href":"/api-reference/components/export-components"},{"openapi":"openapi.json post /components","title":"Create components","href":"/api-reference/components/create-components"},{"openapi":"openapi.json patch /components","title":"Update components","href":"/api-reference/components/patch-components"},{"openapi":"openapi.json delete /components","title":"Delete components","href":"/api-reference/components/delete-components"},{"group":"Text Item Linking","pages":[{"openapi":"openapi.json post /components/publish","title":"Publish a text item to the library","href":"/api-reference/components/publish-component"},{"openapi":"openapi.json patch /components/link","title":"Link text items to a component","href":"/api-reference/components/link-components"},{"openapi":"openapi.json patch /components/unlink","title":"Unlink text items from a component","href":"/api-reference/components/unlink-components"}]},{"group":"Versioning","pages":[{"openapi":"openapi.json get /components/staged","title":"Fetch unpublished component changes","description":"Returns the components in your workspace that have unpublished changes, with those changes applied.\n\nOnly available in workspaces that have opted into library component versioning.","href":"/api-reference/components/get-unpublished-component-changes"},{"openapi":"openapi.json patch /components/staged","title":"Save unpublished component changes","href":"/api-reference/components/save-unpublished-component-changes"},{"openapi":"openapi.json delete /components/staged","title":"Discard unpublished component changes","description":"Discards the unpublished changes on library components by their Developer IDs. The components' published values, versions, and instances are unchanged. Components with no unpublished changes are left as they are and returned in `skippedIds`.\n\nThe operation is all-or-nothing: if any Developer ID does not match a component, nothing is discarded.\n\nOnly available in workspaces that have opted into library component versioning.","href":"/api-reference/components/discard-unpublished-component-changes"},{"openapi":"openapi.json post /components/staged/publish","title":"Publish component changes","href":"/api-reference/components/publish-component-changes"},{"openapi":"openapi.json patch /components/upgrade","title":"Upgrade component instances","href":"/api-reference/components/upgrade-component-instances"}]}]},{"group":"Component Folders","pages":[{"openapi":"openapi.json get /componentFolders","title":"Fetch component folders","href":"/api-reference/component-folders/get-component-folders"},{"openapi":"openapi.json post /componentFolders","title":"Create component folders","href":"/api-reference/component-folders/create-component-folders"},{"openapi":"openapi.json patch /componentFolders","title":"Update component folders","href":"/api-reference/component-folders/patch-component-folders"},{"openapi":"openapi.json delete /componentFolders","title":"Delete component folders","href":"/api-reference/component-folders/delete-component-folders"}]},{"group":"Projects","pages":[{"openapi":"openapi.json get /projects","title":"Fetch projects","href":"/api-reference/projects/get-projects"},{"openapi":"openapi.json post /projects","title":"Create a project","href":"/api-reference/projects/create-projects"},{"openapi":"openapi.json patch /projects/{projectId}","title":"Update a project","href":"/api-reference/projects/patch-projects"},{"openapi":"openapi.json post /projects/{projectId}/publish","tag":"BETA","title":"Publish to base","href":"/api-reference/projects/publish-project"},{"openapi":"openapi.json post /projects/{projectId}/updateFromBase","tag":"BETA","sidebarTitle":"Update from base","title":"Update text items from base","href":"/api-reference/projects/update-text-items-from-base"}]},{"group":"Project Blocks","pages":[{"openapi":"openapi.json get /projectBlocks","title":"Fetch project blocks","href":"/api-reference/project-blocks/get-project-blocks"},{"openapi":"openapi.json post /projectBlocks","title":"Create project blocks","href":"/api-reference/project-blocks/create-project-blocks"},{"openapi":"openapi.json patch /projectBlocks","title":"Update project blocks","href":"/api-reference/project-blocks/patch-project-blocks"},{"openapi":"openapi.json delete /projectBlocks","title":"Delete project blocks","href":"/api-reference/project-blocks/delete-project-blocks"}]},{"group":"Statuses","pages":[{"openapi":"openapi.json get /statuses","title":"Fetch statuses","href":"/api-reference/statuses/get-statuses"}]},{"group":"Style guides","pages":[{"title":"Get style guides","openapi":"openapi.json get /styleguides","href":"/api-reference/styleguides/get-styleguides"},{"openapi":"openapi.json post /styleguides","title":"Create a style guide","href":"/api-reference/styleguides/create-styleguides"},{"openapi":"openapi.json patch /styleguides","title":"Update a style guide","href":"/api-reference/styleguides/patch-styleguides"},{"openapi":"openapi.json post /styleguides/rules","title":"Create style guide rules","href":"/api-reference/styleguides/create-styleguide-rules"},{"openapi":"openapi.json patch /styleguides/rules","title":"Update style guide rules","href":"/api-reference/styleguides/patch-styleguide-rules"},{"openapi":"openapi.json delete /styleguides/rules","title":"Delete style guide rules","href":"/api-reference/styleguides/delete-styleguide-rules"}]},{"group":"Text Items","pages":[{"openapi":"openapi.json get /textItems","title":"Fetch text items","href":"/api-reference/text-items/get-text-items"},{"openapi":"openapi.json get /textItems/export","title":"Export text items","href":"/api-reference/text-items/export-text-items"},{"openapi":"openapi.json post /textItems","title":"Create text items","href":"/api-reference/text-items/create-text-items"},{"openapi":"openapi.json post /textItems/fromBase","tag":"BETA","title":"Create text items from a base","href":"/api-reference/text-items/create-text-items-from-base"},{"openapi":"openapi.json patch /textItems","title":"Update text items","href":"/api-reference/text-items/patch-text-items"},{"openapi":"openapi.json put /textItems","title":"Update text items","href":"/api-reference/text-items/update-text-items"},{"openapi":"openapi.json delete /textItems","title":"Delete text items","href":"/api-reference/text-items/delete-text-items"},{"openapi":"openapi.json post /textItems/linkFigmaNodes","title":"Link Figma nodes to text items","href":"/api-reference/text-items/link-figma-nodes"}]},{"group":"Variables","pages":[{"openapi":"openapi.json get /variables","title":"Fetch variables","href":"/api-reference/variables/get-variables"},{"openapi":"openapi.json post /variables","title":"Create variables","href":"/api-reference/variables/create-variables"},{"openapi":"openapi.json patch /variables","title":"Update variables","href":"/api-reference/variables/patch-variables"},{"openapi":"openapi.json delete /variables","title":"Delete variables","href":"/api-reference/variables/delete-variables"}]},{"group":"Variants","pages":[{"openapi":"openapi.json get /variants","title":"Fetch variants","href":"/api-reference/variants/get-variants"},{"openapi":"openapi.json post /variants","title":"Create variants","href":"/api-reference/variants/create-variants"},{"openapi":"openapi.json patch /variants","title":"Update variants","href":"/api-reference/variants/patch-variants"},{"openapi":"openapi.json delete /variants","title":"Delete variants","href":"/api-reference/variants/delete-variants"}]}]}]},{"group":"String Formats","pages":[{"title":"JSON","icon":"js","href":"/string-formats/json"},{"title":"iOS string formats","sidebarTitle":"iOS Strings","icon":"apple","href":"/string-formats/ios"},{"title":"Android XML string format","sidebarTitle":"Android XML","icon":"android","href":"/string-formats/android"}]},{"group":"MCP Reference","pages":[{"title":"Ditto MCP server overview","sidebarTitle":"Overview","href":"/mcp-reference/overview"},{"title":"Connect the Ditto MCP","sidebarTitle":"Setup","href":"/guides/connect-the-mcp"},{"title":"Ditto MCP tools","sidebarTitle":"Tools","href":"/mcp-reference/tools"},{"title":"Agent instructions","href":"/guides/agent-instructions"}]},{"group":"Ditto Specs CLI","pages":[{"title":"Ditto Specs overview","sidebarTitle":"Overview","href":"/ditto-specs-cli-reference/overview"},{"title":"Ditto Specs CLI setup","sidebarTitle":"Setup","href":"/ditto-specs-cli-reference/setup"},{"title":"Ditto Specs CLI commands","sidebarTitle":"Commands","href":"/ditto-specs-cli-reference/commands"},{"title":"Ditto Spec Files","sidebarTitle":"Spec files","href":"/ditto-specs-cli-reference/spec-files"},{"title":"Ditto Specs agent skills","sidebarTitle":"Agent skills","href":"/ditto-specs-cli-reference/agent-skills"}]},{"group":"Additional Tools","pages":[{"title":"GitHub PR Review Bot","href":"/additional-tools/github-pr-review-bot"},{"title":"Webhooks","href":"/additional-tools/webhooks"},{"title":"GitHub Action","href":"/additional-tools/gh-action"}]},{"group":"Legacy","pages":[{"group":"API Reference","pages":[{"title":"Legacy API authentication","sidebarTitle":"Authentication","href":"/legacy/api-reference-legacy/authentication"},{"group":"Endpoints","pages":[{"group":"Components","pages":[{"openapi":"openapi-legacy.json get /components","title":"Fetch component text","href":"/legacy/api-reference-legacy/components/fetch-component-text"},{"openapi":"openapi-legacy.json post /components/file","title":"Import components via a file","href":"/legacy/api-reference-legacy/components/import-components-via-a-file"},{"openapi":"openapi-legacy.json put /components","title":"Update component text variant","href":"/legacy/api-reference-legacy/components/update-component-text-variant"}]},{"group":"Component Folders","pages":[{"openapi":"openapi-legacy.json get /component-folders","title":"Fetch component folders","href":"/legacy/api-reference-legacy/components-folders/fetch-component-folders"},{"openapi":"openapi-legacy.json get /component-folders/{api_id}/components","title":"Fetch component text by component folder","href":"/legacy/api-reference-legacy/components-folders/fetch-component-text-by-component-folder"}]},{"group":"Projects","pages":[{"openapi":"openapi-legacy.json get /projects/{id}/components","title":"Fetch component text by project id","href":"/legacy/api-reference-legacy/projects/fetch-component-text-by-project-id"},{"openapi":"openapi-legacy.json get /projects","title":"Fetch projects","href":"/legacy/api-reference-legacy/projects/fetch-projects"},{"openapi":"openapi-legacy.json get /projects/{id}","title":"Fetch text by project id","href":"/legacy/api-reference-legacy/projects/fetch-text-by-project-id"}]},{"group":"Project Folders","pages":[{"openapi":"openapi-legacy.json get /project-folders","title":"Fetch project folders","href":"/legacy/api-reference-legacy/project-folders/fetch-project-folders"},{"openapi":"openapi-legacy.json get /project-folders/{folder_id}/projects","title":"Fetch projects by project folder id","href":"/legacy/api-reference-legacy/project-folders/fetch-projects-by-project-folder-id"}]},{"group":"Variables","pages":[{"openapi":"openapi-legacy.json get /variables","title":"Fetch variables","href":"/legacy/api-reference-legacy/variables/fetch-variables"}]},{"group":"Variants","pages":[{"openapi":"openapi-legacy.json get /variants","title":"Fetch variants","href":"/legacy/api-reference-legacy/variants/fetch-variants"}]}]}]},{"group":"CLI Reference","pages":[{"title":"Legacy CLI installation","sidebarTitle":"Installation","href":"/legacy/cli-reference-legacy/authentication"},{"title":"Legacy CLI configuration","sidebarTitle":"Configuration","href":"/legacy/cli-reference-legacy/configuration"},{"title":"Legacy CLI output files","sidebarTitle":"Files","href":"/legacy/cli-reference-legacy/files"}]},{"title":"Legacy tools","href":"/legacy/legacy-tools"},{"title":"Example apps","href":"/example-apps"}]}]},{"tab":"Feedback \u0026 Support","pages":[{"title":"Feedback \u0026 Support","href":"/feedback-support/feedback-support"}]}]},"basePath":"","title":"Save unpublished component changes - Ditto","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C-hEh3I2.js","utils-CnF4QiUD.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C7PVNbel.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-8ytevL2A.js","snippetPresets-BT1alx3v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BLXC0i_W.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CyLIGI9_.js","shallow-DC0lGVIW.js","getApiPlaygroundDisplay-CgDQ85tN.js","CodeSnippet-6-I-Gpv9.js","CodeSnippets-BAk1kDdu.js","Page-C945cI-W.js","getPastedJson-B276RuWN.js","icon-BqP8etTm.js","MethodPill-DM6sbxG1.js","DuplicateIcon-PyJglOaE.js","createIcon-CMeOMAc_.js","DynamicMarkdown-BoyYAA8K.js","SectionHeading-DAYv3gvZ.js","axios-vUo_bRtp.js","Markdown-BhTTmazV.js","clsx-CR-RHrVC.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CBUH0-zX.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BmARFYNC.js"]}