Release Date: September 26, 2026Please review package README for installation and dependency instructions. See READMEADDED
Support for React 19
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Joyfill Documentation","colors":{"primary":"#0066FF","light":"#3385FF","dark":"#0052CC"},"logo":{"light":"https://mintcdn.com/joyfill/SaNj-3btHZJHzB1F/logo/light.svg?fit=max\u0026auto=format\u0026n=SaNj-3btHZJHzB1F\u0026q=85\u0026s=9318794848011381f5c48e074eda6d20","dark":"https://mintcdn.com/joyfill/SaNj-3btHZJHzB1F/logo/dark.svg?fit=max\u0026auto=format\u0026n=SaNj-3btHZJHzB1F\u0026q=85\u0026s=1e5d261c597f0b6b0e76678391248b24"},"favicon":{"light":"https://mintcdn.com/joyfill/SaNj-3btHZJHzB1F/logo/light.svg?fit=max\u0026auto=format\u0026n=SaNj-3btHZJHzB1F\u0026q=85\u0026s=9318794848011381f5c48e074eda6d20","dark":"https://mintcdn.com/joyfill/SaNj-3btHZJHzB1F/logo/dark.svg?fit=max\u0026auto=format\u0026n=SaNj-3btHZJHzB1F\u0026q=85\u0026s=1e5d261c597f0b6b0e76678391248b24"},"navbar":{"primary":{"type":"button","label":"Get Started","href":"https://joyfill.io/contact-us"}},"footer":{"socials":{"github":"https://github.com/joyfill","linkedin":"https://linkedin.com/company/joyfill"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"joyfill","hasAudioNarration":false,"actualSubdomain":"joyfill","customDomains":["docs.joyfill.io"],"gitSource":{"type":"github","owner":"joyfill","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad0f2cfa123d1d22f620010","collectionId":"f633073e-254f-44d1-baf7-0eafb47683a4","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad0f2cfa123d1d22f620010"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ad11c8f2129f69a338df6a7","clientVersion":"0.0.3869","searchFilterCounts":[{"language":"default","tag":"REST API","count":38},{"language":"default","tag":"Guides","count":33},{"language":"default","tag":"Web SDK","count":23},{"language":"default","tag":"iOS SDK","count":18},{"language":"default","tag":"Getting Started","count":15},{"language":"default","tag":"Kotlin SDK","count":14},{"language":"default","tag":"Documents","count":12},{"language":"default","tag":"Users","count":8},{"language":"default","tag":"Resources","count":8},{"language":"default","tag":"Templates","count":7}]},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"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":"editor-v7-file-tree","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":"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":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-branches-v2-autocommit","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2","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":"editor-private-page-search","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":"teamspace","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","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":"byok-sep-25","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":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"client-snapshot-docs-config","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"release-notes","slug":"/release-notes","pageMetadata":{"title":"Release Notes","icon":{"name":"globe","style":"regular","library":"fontawesome"},"description":null,"href":"/release-notes"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading}=_components;if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`1-0-0`,children:`1.0.0`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Release Date:`}),` September 26, 2026`]}),`\n`,_jsxs(_components.p,{children:[`Please review package README for installation and dependency instructions. See `,_jsx(_components.a,{href:`https://www.npmjs.com/package/@joyfill/components-react-native`,children:`README`})]}),`\n`,_jsx(`span`,{style:{display:`inline-block`,padding:`4px 12px`,border:`1.5px solid #10b981`,borderRadius:`6px`,color:`#10b981`,fontWeight:`600`,fontSize:`13px`,marginBottom:`12px`},children:`ADDED`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Support for React 19`})}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Release Notes","icon":{"name":"globe","style":"regular","library":"fontawesome"},"description":null,"href":"/release-notes"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"1.0.0","slug":"1-0-0","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"joyfill","siteName":"Joyfill Documentation","title":"Release Notes - Joyfill Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-26T18:17:36.869Z","originalFileLocation":"release-notes.mdx"},"headHtml":"\u003cmeta data-mint-head name=\"application-name\" content=\"Joyfill Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/joyfill/bJpGt59VIYWLJJ_T/_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/joyfill/bJpGt59VIYWLJJ_T/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/joyfill/bJpGt59VIYWLJJ_T/_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/joyfill/bJpGt59VIYWLJJ_T/_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/joyfill/bJpGt59VIYWLJJ_T/_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/joyfill/bJpGt59VIYWLJJ_T/_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/joyfill/bJpGt59VIYWLJJ_T/_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/joyfill/bJpGt59VIYWLJJ_T/_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/joyfill/bJpGt59VIYWLJJ_T/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Release Notes - Joyfill Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Joyfill Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.joyfill.io/release-notes\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Release Notes - Joyfill Documentation\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/joyfill/bJpGt59VIYWLJJ_T/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Joyfill Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0066FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.joyfill.io/release-notes\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/release-notes.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.joyfill.io/#organization\",\"name\":\"Joyfill Documentation\",\"url\":\"https://docs.joyfill.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/joyfill/SaNj-3btHZJHzB1F/logo/light.svg?fit=max\u0026auto=format\u0026n=SaNj-3btHZJHzB1F\u0026q=85\u0026s=9318794848011381f5c48e074eda6d20\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.joyfill.io#website\",\"name\":\"Joyfill Documentation\",\"url\":\"https://docs.joyfill.io\",\"publisher\":{\"@id\":\"https://docs.joyfill.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.joyfill.io/release-notes#webpage\",\"url\":\"https://docs.joyfill.io/release-notes\",\"name\":\"Release Notes\",\"dateModified\":\"2026-09-26T18:17:36.869Z\",\"isPartOf\":{\"@id\":\"https://docs.joyfill.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.joyfill.io/release-notes#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.joyfill.io/release-notes#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Joyfill Documentation\",\"item\":\"https://docs.joyfill.io\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Release Notes\",\"item\":\"https://docs.joyfill.io/release-notes\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.joyfill.io/release-notes#article\",\"headline\":\"Release Notes\",\"name\":\"Release Notes\",\"url\":\"https://docs.joyfill.io/release-notes\",\"mainEntityOfPage\":{\"@id\":\"https://docs.joyfill.io/release-notes#webpage\"},\"dateModified\":\"2026-09-26T18:17:36.869Z\",\"publisher\":{\"@id\":\"https://docs.joyfill.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.joyfill.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Joyfill Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Joyfill Documentation","nav":{"global":{"anchors":[]},"dropdowns":[{"dropdown":"Overview","icon":"list","groups":[{"group":"Joyfill","pages":[{"title":"Welcome to Joyfill","description":"Embeddable form builder SDKs for every platform","href":"/joyfill"},{"title":"JoyDoc","description":"Getting started with the JoyDoc JSON standard.","href":"/joyfill/joydoc-usage"},{"title":"Reference","description":"JoyDoc property reference and descriptions","href":"/joyfill/schema-json"},{"title":null,"description":null,"href":"/joyfill/metadata"},{"title":"Field Identifiers","description":"How to properly utilize field identifiers within the JoyDoc.","href":"/joyfill/field-identifiers"},{"title":"Self-hosting","description":"How to utilize Joyfill with your own internal systems and data.","href":"/joyfill/self-hosted"},{"title":"Security","icon":{"name":"shield-check","style":"regular","library":"fontawesome"},"description":null,"href":"/security"}]}]},{"dropdown":"iOS SDK","icon":"apple","groups":[{"group":"Getting Started","pages":[{"title":"Getting started","icon":"rocket","description":null,"href":"/ios/getting-started"}]},{"group":"Guides","pages":[{"title":"Form Modes","icon":"toggle-on","description":null,"href":"/ios/guides/modes"},{"title":"Image Upload Handling","icon":"image","description":null,"href":"/ios/guides/image-upload-handling"},{"title":"Required Field Validation","icon":"check-circle","description":null,"href":"/ios/guides/required-field-validation"},{"title":"Populating and Extracting Data","icon":"database","description":null,"href":"/ios/guides/populating-and-extracting-data"},{"title":"Schema Validation","icon":"shield-check","description":null,"href":"/ios/guides/schema-validation"},{"title":"Event Handling","icon":"bolt","description":null,"href":"/ios/guides/event-handling"},{"title":"Form Configuration","icon":"gear","description":null,"href":"/ios/guides/form-configuration"},{"title":"Form footer","icon":"mobile","description":null,"href":"/ios/guides/form-footer"},{"title":"Navigation","icon":"compass","description":null,"href":"/ios/guides/external-navigation"},{"title":"Decorators","icon":"sparkles","description":null,"href":"/ios/guides/decorators"}]},{"group":"API Reference","pages":[{"title":"API Overview","description":"Complete API reference for the Joyfill iOS SDK modules","icon":"code","href":"/ios/api-reference/overview"},{"title":"Joyfill Module","description":"Main Joyfill SDK with UI components and core functionality","icon":"mobile","url":"https://joyfill.github.io/api-references/ios/Joyfill/documentation/joyfill","href":"/ios/api-reference/joyfill-module"},{"title":"JoyfillAPIService","description":"API service layer for communicating with Joyfill backend","icon":"globe","url":"https://joyfill.github.io/api-references/ios/JoyfillAPIService/documentation/joyfillapiservice","href":"/ios/api-reference/api-service-module"},{"title":"JoyfillFormulas","description":"Formula engine and calculation utilities","icon":"calculator","url":"https://joyfill.github.io/api-references/ios/JoyfillFormulas/documentation/joyfillformulas","href":"/ios/api-reference/formulas-module"},{"title":"JoyfillModel","description":"Data models, schemas, and form structures","icon":"box","url":"https://joyfill.github.io/api-references/ios/JoyfillModel/documentation/joyfillmodel","href":"/ios/api-reference/model-module"}]},{"group":"Resources","pages":[{"title":"Release Notes","description":"Complete changelog of Joyfill iOS SDK releases","icon":"notes","href":"/ios/changelogs/RELEASE_NOTES"},{"title":"Security","icon":"shield-check","description":null,"href":"/ios/about/security"}]}]},{"dropdown":"Kotlin SDK","icon":"android","groups":[{"group":"Getting Started","pages":[{"title":"Getting started","icon":"rocket","description":null,"href":"/kotlin/getting-started"}]},{"group":"Guides","pages":[{"title":"Form Modes","icon":"toggle-on","description":null,"href":"/kotlin/guides/modes"},{"title":"Image Upload Handling","icon":"image","description":null,"href":"/kotlin/guides/image-upload-handling"},{"title":"Required Field Validation","icon":"check-circle","description":null,"href":"/kotlin/guides/required-field-validation"},{"title":"Populating and Extracting Data","icon":"database","description":null,"href":"/kotlin/guides/populating-and-extracting-data"},{"title":"Schema Validation","icon":"shield-check","description":null,"href":"/kotlin/guides/schema-validation"},{"title":"Event Handling","icon":"bolt","description":null,"href":"/kotlin/guides/event-handling"},{"title":"Form Configuration","icon":"gear","description":null,"href":"/kotlin/guides/form-configuration"},{"title":"Navigation","icon":"compass","description":null,"href":"/kotlin/guides/navigation"},{"title":"Decorators","icon":"sparkles","description":null,"href":"/kotlin/guides/decorators"}]},{"group":"API Reference","pages":[{"title":"Kotlin API Reference","description":"Complete API documentation for the Joyfill Kotlin SDK","icon":"code","url":"https://joyfill.github.io/api-references/kotlin/","href":"/kotlin/api-reference/kotlin-docs"}]},{"group":"Resources","pages":[{"title":"Release Notes","description":"Complete changelog of Joyfill Kotlin Multiplatform SDK releases","icon":"android","href":"/kotlin/changelogs/releases"},{"title":"Migration guide","icon":"file-export","description":null,"href":"/kotlin/changelogs/migration-guide"},{"title":"Security","icon":"shield-check","description":null,"href":"/kotlin/about/security"}]}]},{"dropdown":"React Native SDK","icon":"react","groups":[{"group":"Getting Started","pages":[{"title":"React Native","description":"Learn how to render your first form using the Joyfill React Native SDK.","icon":"react","href":"/react-native/introduction"}]},{"group":"Resources","pages":[{"title":"Release Notes","icon":{"name":"globe","style":"regular","library":"fontawesome"},"description":null,"href":"/release-notes"}]}]},{"dropdown":"Web SDK","icon":"globe","groups":[{"group":"Getting Started","pages":[{"title":"Getting started","icon":"rocket","description":null,"href":"/web/getting-started/Getting-Started"},{"title":"Listening for changes","icon":"ear","description":null,"href":"/web/getting-started/Listening-for-changes"}]},{"group":"Guides","pages":[{"title":"Form Modes","icon":"toggle-on","description":null,"href":"/web/guides/modes"},{"title":"Image Upload Handling","icon":"image","description":null,"href":"/web/guides/image-upload-handling"},{"title":"Required Field Validation","icon":"check-circle","description":null,"href":"/web/guides/required-field-validation"},{"title":"Populating and Extracting Data","icon":"database","description":null,"href":"/web/guides/populating-and-extracting-data"},{"title":"Schema Validation","icon":"shield-check","description":null,"href":"/web/guides/schema-validation"},{"title":"Event Handling","icon":"bolt","description":null,"href":"/web/guides/event-handling"},{"title":"Configuring Field Settings","icon":"gear","description":null,"href":"/web/guides/fieldsettings-configuration"},{"title":"Conditional Logic","icon":"lightbulb","description":null,"href":"/web/guides/conditional-logic"},{"title":"Formulas","icon":"calculator","description":null,"href":"/web/guides/formulas"},{"title":"Customize Draggable Fields","description":"Customize the draggable field options for field creation in the left panel","icon":"grip-vertical","href":"/web/guides/customize-draggable-fields"},{"title":"PDF File Uploads","description":"How to create fillable PDF forms from your user's local PDF files","icon":"file-upload","href":"/web/guides/pdf-file-uploads"},{"title":"Generate PDF Downloads","description":"Render JoyDoc forms as PDF-ready layouts for self-hosted PDF generation","icon":"file-export","href":"/web/guides/joydoc-exporter"},{"title":"Navigation","icon":"compass","description":null,"href":"/web/guides/external-navigation"},{"title":"Decorators","icon":"sparkles","description":null,"href":"/web/guides/decorators"}]},{"group":"Sample Projects","pages":[{"title":"JS CDN","description":null,"href":"/web/guides/sample-projects-js-cdn"},{"title":"JS Module","description":null,"href":"/web/guides/sample-projects-js-module"},{"title":"React","description":null,"href":"/web/guides/sample-projects-react"},{"title":"Angular","description":null,"href":"/web/guides/sample-projects-angular"}]},{"group":"API Reference","pages":[{"title":"API Overview","description":"Default export object containing all public APIs of `@joyfill/components`.","icon":"code","href":"/web/api-reference/overview"}]},{"group":"Resources","pages":[{"title":"Release Notes","description":"Complete changelog of Joyfill Web SDK releases","icon":"globe","href":"/web/changelogs/releases"},{"title":"Security Advisory: Compromised @joyfill npm beta releases and public github repos","sidebarTitle":"Security Advisory","description":"JOYFILL-SA-2026-001 — post-mortem and advisory for compromised @joyfill npm beta releases and public github repos: root cause, affected versions, how to check whether you are impacted, and remediation steps.","icon":"triangle-exclamation","href":"/web/about/security-advisory"}]}]},{"dropdown":"REST API","icon":"code","groups":[{"group":"Getting Started","pages":[{"title":"Overview","description":"Getting started with the Joyfill API","href":"/api/introduction"},{"title":"Authentication","description":"How to authenticate with the Joyfill Platform","href":"/api/authentication"},{"title":"Identifiers","description":"Overview of identifiers inside of Joyfill","href":"/api/identifiers"},{"title":"Search","description":"Query, filter, and sort data in Joyfill","href":"/api/platform-api-search"}]},{"group":"Documents","pages":[{"title":"Overview","description":"A document represents the fields, styles, layouts, and populated data that the Joyfill Platform uses to render forms, power fillable pdfs, generate downloadable reports, capture user input and much more.","href":"/api/documents/overview"},{"openapi":"post /documents","title":"Create a document","description":"","href":"/api/documents/create-a-document"},{"openapi":"post /documents/bulk","title":"Bulk create documents","description":"","href":"/api/documents/bulk-create-documents"},{"openapi":"post /documents/{identifier}","title":"Update a document","description":"","href":"/api/documents/update-a-document"},{"openapi":"post /documents/{identifier}/changelogs","title":"Update a document via changelogs","description":"","href":"/api/documents/update-a-document-via-changelogs"},{"openapi":"delete /documents/{identifier}","title":"Delete a document","description":"","href":"/api/documents/delete-a-document"},{"openapi":"get /documents/{identifier}","title":"Retrieve a document","description":"","href":"/api/documents/retrieve-a-document"},{"openapi":"get /documents","title":"List all documents","description":"","href":"/api/documents/list-all-documents"},{"openapi":"post /documents/search","title":"Search all documents","description":"Search, filer and sort documents","href":"/api/documents/search-all-documents"},{"openapi":"post /documents/{identifier}/files/datauri","title":"Create a image upload (data uri)","description":"Create a document image upload to be used for image fields, page backgrounds, etc.","href":"/api/documents/create-a-image-upload-data-uri"},{"openapi":"post /documents/{identifier}/exports/pdf","title":"Create a document pdf export","description":"","href":"/api/documents/create-a-document-pdf-export"},{"openapi":"post /documents/exports/pdf","title":"Create a document pdf export using Raw JSON Payload","description":"","href":"/api/documents/create-a-document-pdf-export-using-raw-json-payload"}]},{"group":"Templates","pages":[{"title":"Overview","description":"A template is a saved set of fields, layouts, styles, etc. that will be populated via api request or filled out by a user repeatedly.","href":"/api/templates/overview-templates"},{"openapi":"post /templates","title":"Create a template","description":"","href":"/api/templates/create-a-template"},{"openapi":"post /templates/{identifier}","title":"Update a template","description":"","href":"/api/templates/update-a-template"},{"openapi":"post /templates/{identifier}/documents","title":"Sync template documents","description":"Sync the latest template styles and layout changes to pre-existing template documents","href":"/api/templates/sync-template-documents"},{"openapi":"delete /templates/{identifier}","title":"Delete a template","description":"","href":"/api/templates/delete-a-template"},{"openapi":"get /templates/{identifier}","title":"Retrieve a template","description":"","href":"/api/templates/retrieve-a-template"},{"openapi":"get /templates","title":"List all templates","description":"","href":"/api/templates/list-all-templates"}]},{"group":"Groups","pages":[{"title":"Overview","description":"A group represents a customer of your business/product. It lets you create users, templates, documents, etc. that belong to the same customer.","href":"/api/groups/overview-groups"},{"openapi":"post /groups","title":"Create a group","description":"","href":"/api/groups/create-a-group"},{"openapi":"delete /groups/{identifier}","title":"Delete a group","description":"","href":"/api/groups/delete-a-group"},{"openapi":"get /groups","title":"List all groups","description":"","href":"/api/groups/list-all-groups"},{"openapi":"get /groups/{identifier}","title":"Retrieve a group","description":"","href":"/api/groups/retrieve-a-group"},{"openapi":"post /groups/{identifier}","title":"Update a group","description":"","href":"/api/groups/update-a-group"}]},{"group":"Users","pages":[{"title":"Overview","description":"A user represents an individual interacting with any part of the Joyfill APIs, UI Components, etc. There are two different types of users within Joyfill: Organization Users and Group Users.","href":"/api/users/overview-users"},{"openapi":"post /users","title":"Create a user","description":"","href":"/api/users/create-a-user"},{"openapi":"delete /users/{identifier}","title":"Delete a user","description":"","href":"/api/users/delete-a-user"},{"openapi":"get /users/{identifier}","title":"Retrieve a user","description":"","href":"/api/users/retrieve-a-user"},{"openapi":"get /users","title":"List all users","description":"","href":"/api/users/list-all-users"},{"openapi":"post /users/{identifier}/access_tokens","title":"Create a user access token","description":"","href":"/api/users/create-a-user-access-token"},{"openapi":"delete /users/{identifier}/access_tokens/{token}","title":"Delete a user access token","description":"","href":"/api/users/delete-a-user-access-token"},{"openapi":"get /users/{identifier}/access_tokens","title":"List all user access tokens","description":"","href":"/api/users/list-all-user-access-tokens"}]},{"group":"Utilities","pages":[{"openapi":"post /utilities/pdf/to/png/datauri","title":"Convert PDF to PNGs (data uri)","description":"Convert a PDF into page background images.","href":"/api/utilities/convert-pdf-to-pngs-data-uri"}]}]},{"dropdown":"Joyfill Dev Sandbox","icon":"cube","groups":[{"group":"Getting Started","pages":[{"title":"Joyfill Manager","description":null,"href":"/joyfill-dev-sandbox/platform-joyfill-manager"},{"title":"Setup","description":"Welcome to Joyfill! It's easy to get started with a Joyfill Developer account and add powerful form and digital PDF capabilities to your product or service. Just follow the steps below and you'll be up and running shortly.","href":"/joyfill-dev-sandbox/setup"},{"title":"Webhooks","description":"Webhooks allow you to subscribe to server-side notifications of events, like document update calls and newly available data. Webhooks are helpful to optimize your Joyfill integration.","href":"/joyfill-dev-sandbox/webhooks"},{"title":"Joyfill Managed","description":"Generate PDF files with the Joyfill API","href":"/joyfill-dev-sandbox/pdf-generator-joyfill"},{"title":"Key Terminology","description":"Descriptions of Joyfill's main data types and concepts","href":"/joyfill-dev-sandbox/key-terminology"},{"title":"How To Create Templates","description":"How to build your first JoyDoc Template in the Developer Portal","href":"/joyfill-dev-sandbox/how-to-create-templates"}]}]}]},"title":"Release Notes - Joyfill Documentation","buildId":"dpl_DMQXxPZd444kjahHSuSB7FkJbKrX","deploymentId":"dpl_DMQXxPZd444kjahHSuSB7FkJbKrX","dynamics":[],"chunks":[]}