> ## Documentation Index
> Fetch the complete documentation index at: https://docs.joyfill.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Release Notes

> Complete changelog of Joyfill Web SDK releases

> Source: [https://github.com/joyfill/components/releases](https://github.com/joyfill/components/releases)

***

## 4.0.0-rc24

**Release Date:** July 9, 2026

This release introduces support for **Landscape Mode** and includes several fixes to improve document rendering and exports.

🚀 **New Features**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* **Landscape Mode:** Documents can now be created and viewed in landscape orientation, providing greater flexibility for wider layouts and content. (NO-1991)

🛠️ **Bug Fixes**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #ef4444', borderRadius: '6px', color: '#ef4444', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* **Overlapping Fields in Exports:** Resolved an issue where block fields could overlap collection fields in exported documents. (NO-2223)
* **Collection Table Rendering in RTE View:** Fixed an issue where collection field tables were missing their left borders in the Rich Text Editor (RTE) view. (NO-2240)

***

## 4.0.0-rc23

**Release Date:** June 25, 2026

🚀 **New Features**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* **Custom Titles for Nested Schemas:**
  * Added support for custom titles on nested schemas within Collection fields, allowing builders to define descriptive titles instead of relying on default naming conventions. (NO-2222)
  * This introduces a dedicated title configuration for nested schemas, providing clearer context, improved labeling, and more intuitive form layouts while separating title styling from column styling.

🛠️ **Bug Fixes**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #ef4444', borderRadius: '6px', color: '#ef4444', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* **Rich Text Editor Top Borders:**
  * Resolved an issue where top borders were not rendered correctly within the Rich Text Editor (RTE), causing inconsistencies in the visual layout of formatted content. (NO-2125)
  * Top borders now render consistently, ensuring structured content and section dividers maintain their intended appearance.

* **Missing Table Headers on Mobile:**
  * Resolved an issue where table headers would disappear when tables were viewed on mobile devices, making tabular data difficult to interpret. (NO-2209)
  * Table headers are now preserved across smaller viewport sizes, ensuring tables remain readable and responsive on mobile.

* **Date Picker Month/Year Selector Inside Modals:**
  * Resolved an issue where the Date Picker's month and year selectors would briefly appear and immediately disappear when a JoyDoc was rendered inside a modal. (NO-2069)
  * This was caused by the interaction between the modal's focus management and the Date Picker's dropdown rendering. The month and year selectors are now rendered reliably within the modal, allowing users to navigate and select dates without interruption.

***

## 4.0.0-rc22

**Release Date:** June 16, 2026

🛠️ **Bug Fixes**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #ef4444', borderRadius: '6px', color: '#ef4444', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* **PDF Page Breaking Mismatch:**
  * Resolved an issue where page breaks in exported PDFs could occur earlier than expected, causing large blank areas to appear at the bottom of pages and pushing content of the collection field onto subsequent pages unnecessarily. (NO-2203)
  * This was caused by inconsistencies between the layout measurement phase and the final PDF rendering phase, resulting in incorrect page height calculations. Page break calculations now accurately reflect the final rendered content, improving content distribution across pages and reducing unused page space.

***

## 4.0.0-rc21

**Release Date:** June 10, 2026

## 🚀 Highlights

This release introduces dynamic decorator management APIs, enhanced support for row-specific decorators, and improvements to image rendering across page breaks in PDF exports.

## 🛠️ Enhancements

* **NO-2179**: Added support for dynamic decorator manipulation through the new `DecoratorManager` API, allowing decorators to be added, updated, retrieved, and removed programmatically at runtime.
* **NO-2178**: Added support for row-specific decorators and improved the behavior of common and specific row decorator customization.
* **NO-2165**: Fixed an issue where images could be split across pages during PDF generation. Images that would otherwise be cut by a page break are now rendered in full on the next page.

## JSON Schema Updates

* Added support for dynamic decorator management via `DecoratorManager`.
* Standardized decorator lookups to use `action` as the canonical identifier.
* Decorator `_id` is no longer required and is no longer generated for decorator objects.
* Added support for row-specific decorators through `rows.decorators.all`.

***

## 4.0.0-rc20

**Release Date:** May 23, 2025

## 🚀 Highlights

This release includes improvements to decorator customization, card layout image rendering, export view spacing, and column header overflow handling.

## 🛠️ Enhancements

* **NO-2089**: Added support to customize decorator count.
* **NO-2162**: Added ability to wrap or ellipsize column headers.
* **NO-1987**: Fixed an issue where image sizing was not displaying properly in card layout.
* **NO-2161**: Fixed excessive padding for horizontal multi-select fields in export view.

## JSON Schema Updates

* Decorator `_id` is now optional.
* Added `columnTitleTextOverflow` to the `FieldPosition` schema.

***

## 4.0.0-rc19

**Release Date:** May 11, 2026

🛠️ **Bug Fixes**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #ef4444', borderRadius: '6px', color: '#ef4444', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* **Dropdown Default Value Rendering:**
  * Fixed an issue where dropdown fields failed to properly render configured default values during initialization and rendering flows. (NO-2141)
  * This fix ensures dropdown components now correctly display their expected default selections across supported use cases.

***

## 4.0.0-rc18

**Release Date:** May 11, 2026

🛠️ **Bug Fixes & Improvements**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #ef4444', borderRadius: '6px', color: '#ef4444', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* **New Decorator icons:** This release adds the new **pencil** and **pen-square** icons for decorators *(NO-2123)*

* **Smart Point Normalization:**
  * Points with missing or partially defined coordinates are now automatically normalized or cleaned.
  * **Null Value Cleanup:** To reduce payload size, points with no coordinates are stripped of unnecessary `null` properties.
    * Before: `{ label: "Point", x: null, y: null }`
    * After: `{ label: "Point" }`
  * **Partial Coordinate Support:** Points with only one axis defined will now explicitly maintain the missing axis as `null`.
    * Before: `{ label: "Point", x: 20 }`
    * After: `{ label: "Point", x: 20, y: null }`
  * **Validator Updates:** Refined `JoyDoc` Validator to mark `x` and `y` as optional chart properties, aligning the codebase with these new data standards. (NO-2116)

* **Multi-Select PDF Layouts:**
  * Resolved a bug that caused excessive padding in multi-select fields during PDF generation. Exports now feature a tighter, more professional layout. (NO-2096)

***

## 4.0.0-rc17

**Release Date:** May 1, 2026

🛠️ **Bug Fixes**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #ef4444', borderRadius: '6px', color: '#ef4444', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* **Copy Without Values Retains Block and Read-Only Field Values:**
  * Added support to ensure copying without values retains values for block fields and read-only fields. (NO-2093)

* **Validator Duplicate Field Position Warnings:**
  * Validator will now emit console warnings when two field positions have the same `_id`. (NO-2110)

* **Chart Field Blank Values:**
  * Fixed chart field coordinate handling so deleting an `x` or `y` value now stores `x: null` and `y: null` instead of coercing to `0`. (NO-2111)

***

## 4.0.0-rc16

**Release Date:** April 27, 2026

🛠️ **Bug Fixes**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #ef4444', borderRadius: '6px', color: '#ef4444', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* **PDF Export with Duplicate Field Position IDs:**
  * Fixed a bug where PDF export would fail or render fields multiple times when two field positions shared the same `_id`. Duplicate field positions are now detected and skipped during export processing. (NO-2026)

* **Chart Field Empty Points:**
  * Fixed a bug where chart fields were treating empty or incomplete data points as zeros, distorting the chart. Points with missing, null, or non-numeric `x`/`y` values are now ignored and excluded from rendering. (NO-1942)

***

## 4.0.0-rc15

**Release Date:** April 21, 2026

🚀 **New Features & Enhancements**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* **Compact View for Table & Collection Fields:**
  * Table and Collection fields now support a compact view when `displayType` is set to `rte`. This renders rows in a streamlined, rich-text layout using column templates with merge codes, replacing the traditional grid format. (NO-2044)
  * Merge codes can be configured using the `{{columnId}}` syntax within RTE Editor in edit mode to dynamically resolve row data.

🛠️ **Bug Fixes**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #ef4444', borderRadius: '6px', color: '#ef4444', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* **Mobile Disconnected View Conditions:**
  * Fixed a bug where conditional logic applied in the mobile disconnected view was incorrectly carried over to the desktop view. Conditions now apply only to their intended view. (NO-1985)

***

## 4.0.0-rc14

**Release Date:** March 26, 2026

🚀 **New Features & Enhancements**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* **Per-page action controls:**
  * Page objects now support configuration properties that allow disabling deletion and/or duplication on a per-page basis; pages with disabled actions hide the corresponding buttons in the pagination UI. (NO-2008)

* **Input Group Cell Text Wrapping:**
  * Added support for text wrapping in Input Group cells so long content wraps to fit across all the cells of the input group field when `textOverflow` is set to `wrap` on the cell settings. (NO-1988)

***

## 4.0.0-rc13

**Release Date:** March 11, 2026

🚀 **New Features & Enhancements**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* **Single Field Validation:**

  * You can now validate individual fields on demand using the `validateField` function, returning a valid or invalid status with reasons, without triggering full-document validation.
  * Handles special cases for table fields (per-column row validation) and collection fields (nested table validation). (NO-1960)

  **Example: Validate a single field inside onChange**

  ```tsx theme={null}
  import { JoyDoc, validator } from '@joyfill/components';

  <JoyDoc
    doc={doc}
    mode="fill"
    onChange={(changelogs, updatedDoc) => {
      // Get the changed field ID from the first changelog entry
      const changedFieldId = changelogs[0]?._id;

      // Find the updated field in the doc
      const field = updatedDoc.fields.find((f) => f._id === changedFieldId);

      if (field) {
        const result = validator.validateField(field, 'desktop', updatedDoc.fields);

        if (result.status === 'invalid') {
          console.log('Field is invalid:', result.reasons);
          // e.g. ['Required']
        } else {
          console.log('Field is valid');
        }
      }
    }}
  />
  ```

* **Decorators:**
  * Fields now support a `decorators` property, and table fields support a `rowDecorators` property — both are customizable action pills with an icon, label, color, and action identifier.
  * Up to 3 decorators render inline; 4 or more collapse into a popover menu.
  * Decorators are hidden in readonly and pdf modes and are only clickable in fill mode. (NO-1973)

***

## 4.0.0-RC12

**Release Date:** February 25, 2026

### 🚀 New Features & Enhancements

* **Conditional Logic on Columns:** You can now apply conditional logic to table columns, allowing columns to show or hide based on field values or conditions. (**NO-1919**)
* **Force Hide By View:** Fields and table columns can now be hidden per view (desktop, mobile, PDF), giving you control over what appears in each view for cleaner, more tailored form layouts. (**NO-1913**)
* **Filter Hidden Fields in Validation Output:** Fields that are hidden — whether by conditional logic, global settings, or view-specific hiding — are now excluded from validation results, ensuring validation only applies to visible fields. (**NO-1941**)

### 🛠️ Bug Fixes

* **Formula Handling for Page Duplication:** Resolved an issue where formulas were not properly carried over when duplicating a page. Formulas are now cloned with updated field references so they continue to work correctly on the duplicated page. (**NO-1888**)
* **Formula Saving:** Fixed a bug where formula changes could be lost when saving due to stale document state. The formula editor now correctly tracks and persists all pending changes. (**NO-1922**)

### ⚠️ Deprecation Notice

* **Important:** We will be deprecating the use of the `hidden` property on `fieldPosition.tableColumns`. Going forward, the `hidden` property will be stored on `field` and `field.tableColumns`. The new `hiddenViews` property will also be stored on `field` and `field.tableColumns`.

***

## 4.0.0-RC11

**Release Date:** February 17, 2026

### 🚀 New Features & Enhancements

* **Navigator:** This release introduces the Navigator, establishing the foundation for enhanced cross-platform navigation and seamless integration. (**NO-1834**)
* **Nested Table Styling:** You can now apply custom styles to nested tables within collection fields, allowing for better visual hierarchy and data readability. (**NO-1906**)
* **Cleaner Read-Only Views:** To reduce UI clutter, the barcode icon is now hidden when table and collection fields are set to read-only mode. (**NO-1904**)

### 🛠️ Bug Fixes

* **Validation Stability:** Resolved an issue where default helper functions were triggering incorrect validation errors. Logic checks should now behave as expected. (**NO-1828**)
* **Collection Field Patch:** Resolved a bug that caused Collection fields to crash when opened or scrolled. (**NO-1921**)

***

## 4.0.0-RC10

**Release Date:** January 27, 2026

🚀 **Platform Update: Auto Resize Fields & React v19**

This release introduces a new auto-resize feature that allows form fields to automatically adjust their height based on content, eliminating manual field sizing and improving the form-filling experience. Additionally, we have upgraded the core SDK to React v19.

✨ **Key Improvements**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

**Auto Resize Fields (Beta)**

* Enable this beta feature via **`features={{ autoResizeFields: true }}`**.
* Form fields can now automatically resize to fit their content, ensuring all information is visible without manual height adjustments.
* Fields intelligently measure their content and adjust height on initialization and whenever content changes such as value updates, row creation, or row deletion.
* **Important Note:** This feature should not be used with very complex or large forms containing large tables of data. This feature reduces the SDKs ability to optimize performance. Be aware that utilization of this feature could cause performance degrade.

**Supported Field Types**

* **Full Support:** Block, MultiSelect, Table, InputGroup, Image, File, and Chart fields fully support auto-resizing in all modes (edit, fill, readonly).
* **PDF Generation:** Textarea fields support auto-resizing during PDF generation only.
* **Enhanced Export:** PDF export fully supports auto-resizing, ensuring tables, input groups, and multi-select fields expand to display complete content without truncation.

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>CHANGED</span>

**Internal Upgrades**

* We have officially migrated the SDK core to React v19 to leverage the latest performance and stability improvements.
* As a result, support for React v17 has been discontinued. The last stable SDK version compatible with React v17 is v3.16.3.

📥 **Recommendation**

* To benefit from auto-resizing fields and the latest performance improvements, we recommend updating to the latest version and adding `autoResizeFields: true` to your features prop.

***

## 4.0.0-RC9

**Release Date:** January 15, 2026

🚀 **Platform Update: UI Consistency & Visual Refinements**

This release introduces focused user interface improvements aimed at enhancing visual consistency and reducing layout shifts within form tables.

✨ **Key Improvements**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* Improved Input Group Row Alignment — We addressed an issue where input group field rows could appear visually misaligned due to inconsistent cell heights. Baseline heights are now standardized across common field types, while fields with variable content expand naturally. Additional layout refinements ensure smoother row behavior and prevent unexpected shifts during interaction.

📥 **Recommendation**

To benefit from these UI refinements and ensure the best visual experience, we recommend updating to the latest version.

***

## 4.0.0-RC8

**Release Date:** December 17, 2025

🚀 **Platform Update: Performance & UI Enhancements**

This release introduces targeted stability improvements and user interface refinements designed to optimize form rendering and streamline data entry across all devices.

✨ **Key Improvements**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* Optimized Image Field Constraints (JF-235 / NO-1727) — Addresses a layout regression where image fields exceeded container dimensions, ensuring proper scaling, visual consistency, and preventing overflow.
* Enhanced Mobile Date Navigation (NO-1728) — Improves the mobile user experience by including a more efficient year-selection method in the date picker, reducing interactions for navigating across multiple years.

**Recommendation**

To ensure optimal platform stability and benefit from these UI enhancements, we recommend that all users update to the latest version.

***

## 4.0.0-rc7

**Release Date:** December 2, 2025

🚀 **Release Notes: Platform Enhancements**

These release notes detail several important fixes and stability improvements across the platform, focusing on form rendering and application stability.

✨ **What's New & Improved**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* Fixed Table Cell Sizing (NO-1626) — Resolved an issue where table cell sizes were not consistently maintained, ensuring a stable layout.
* Resolved Form Field Duplication (NO-1709 & NO-1718) — Fixed a critical issue where text or displayText fields incorrectly shared the same ID, ensuring each form field instance now has a unique ID.
* Enhanced Page Ordering Stability (NO-1721) — Fixed an application crash when users moved pages with inconsistent page orders between desktop and mobile views, improving reliability.

**Recommendation:** All users should update to the latest version for these stability and form-rendering fixes.

***

## 4.0.0-rc6

**Release Date:** November 13, 2025

🚀 **Fixes & Enhancements**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* Corrected page duplication behavior so that Readable IDs are no longer used when the feature is disabled. (NO-1629)
* Added a clear button to the new Date display component, allowing users to remove selected dates easily. (NO-1664)
* Fixed a Safari-specific issue that caused formulas to break during evaluation. (NO-1596)
* Resolved a field ordering issue in mobile SDKs where fields with identical X/Y coordinates were rendered in the wrong order. (NO-1650)

***

## 4.0.0-rc5

**Release Date:** October 31, 2025

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* New date format helper function `replaceLegacyDateTimeFormats(data, formatReplacementsObject)` to allow overwriting default US date and time formats within the Joyfill SDK. See the example below or check the README.md for more details. (NO-1622)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>CHANGED</span>

* Replaced Moment.js with Day.js — Reduces bundle size and provides better long-term maintenance support. (NO-1623)
* Enhanced validation output — Form and field validation statuses now include the `pageId` property, making it easier to identify which page an error is on. You can view this in the output of the `validator.validate` helper function. (NO-1628)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* PDF generation edge case — Resolved an issue where the field measuring cycle could run indefinitely for certain table field input types in the VanillaJS module. (NO-1647)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #ef4444', borderRadius: '6px', color: '#ef4444', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>REMOVED</span>

* Legacy RTE field — The old Rich Text Editor field is now view-only but continues to display all previously saved text. It can be replaced with the newer Block field, which removes a package vulnerability, reduces bundle size, and improves load performance. (NO-1648)

***

### Replacing Default US Date Formats

The example below demonstrates how to use the new helper function to replace US date and time formats with EU-style formats.

```tsx theme={null}
/**
 * Example: Replace US date/time formats with European formats in JoyDoc
 */
let updatedDoc = <YOUR_JSON_DATA>;

if (Intl.DateTimeFormat().resolvedOptions().timeZone === 'Europe/London') {
  updatedDoc = replaceLegacyDateTimeFormats(updatedDoc, {
    dateTime: "DD/MM/YYYY HH:mm",
    date: "DD/MM/YYYY",
    time: "HH:mm",
    defaultFormat: "DD/MM/YYYY"
  });
}

console.log(JSON.stringify(updatedDoc, null, 2));
```

***

## 4.0.0-rc4

**Release Date:** October 16, 2025

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* New date/time element for all date/time fields and columns.
* Support for optional custom date/time formats to provide consistent behavior across time zones and browsers.
* This update addresses long-standing inconsistencies between local time zones, browsers, and native date/time input behavior. (NO-1574)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Crash affecting tables on PDF Forms and PDF Forms rendered in Microsoft Edge. (NO-1543)
* Issue where underlying table cell formulas were appearing in generated PDFs. These cells will now display as empty. (NO-1452)
* Issue where chart field line point labels were duplicated, causing a blurring effect. (NO-1575)

## 🗓️ New Date/Time Element & Custom Formats — Details

The native browser date/time input element was unreliable and inconsistent across browsers, especially with different local time zones. This often caused truncated or incorrectly formatted values in table cells and fields.
To solve this, we’ve replaced the native input with a **custom date/time picker** and added the ability to define custom display formats using tokens like `MM`, `DD`, `YYYY`, etc.

### 📌 Visual Impact of Removing Native Browser Date/Time Inputs

Previously, browsers attempted to “predict” the date/time format based on the user’s local settings (e.g., `DD/MM/YYYY` vs `MM/DD/YYYY`, or 12-hour vs 24-hour time). This prediction was **the root cause of formatting issues** and is no longer applied.

Going forward, date/time formats will be strictly enforced based on either:

* Existing saved formats (`MM/DD/YYYY`, `MM/DD/YYYY hh:mma`, `hh:mma`), or
* Your **explicitly defined custom format**.

If your workflow relied on the browser’s formatting, you’ll need to configure the desired format using the new **custom date format functionality**. (See below.)

### 🛠️ Custom Format Usage

Custom formats are currently available **only on desktop (JS SDK)** and are **disabled by default**.
To enable them, use the `customDateTimeFormat` field setting:

```tsx theme={null}
// Field Settings
{
  field: {
    customDateTimeFormat: true, // Enable for date/time field
    tableColumns: {
      customDateTimeFormat: true, // Enable for date/time columns
      ...
    },
    ...
  },
  ...
}
```

Once enabled, a **Custom Format** input will appear in the field settings panel of date fields and date columns.

### 📱 Native Mobile SDKs

> **Important:** If you’re using the native iOS, Kotlin, or React Native SDKs, it’s recommended to keep custom date formats **disabled** for now.
> Custom formats are **not yet fully supported** across Joyfill’s native SDKs and may cause unintended behavior.

Full support for custom date formats will be introduced in a future release, at which point this feature will be enabled by default across all platforms.

***

## 3.19.7

**Release Date:** October 6, 2025

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* Maximum depth call exceeded crash when tables are added to PDF forms.

***

## 3.19.6

**Release Date:** June 13, 2025

We've rolled out a set of targeted improvements to ensure a more reliable and consistent experience across collection and table field interactions. Below is a summary of the recent updates:

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* Support for Hidden Table Columns — Hidden columns within collection fields are now fully supported and integrated, offering greater control over field layout without impacting functionality. (NO-1202 / JF-58)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>CHANGED</span>

* Conditional Logic Reliability — Misc enhancements to conditional logic making it consistent and more reliable. (NO-1187)
* Block Column Type Configuration — Block column types within collection and table fields can no longer be marked as required, aligning with expected usage patterns and improving form design flexibility. (NO-1186)
* Rich Text Editor in Fill Mode — Rich Text Editor (RTE) fields are now fully editable while in fill mode, enabling more seamless data entry without requiring additional steps. (NO-1180)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Hidden Columns and Validation — Resolved an issue where hidden columns in collection fields were incorrectly triggering validation errors. Hidden fields are now excluded from validation unless explicitly required. (JF-58 pt2)

***

## 3.19.5

**Release Date:** May 30, 2025

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* Misc bug fixes.

***

## 3.19.4

**Release Date:** May 14, 2025

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* Misc PDF bug fixes.

***

## 3.19.3

**Release Date:** May 9, 2025

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* Misc bug fixes.

***

## 3.19.2

**Release Date:** May 5, 2025

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* Misc bug fixes.

***

## 3.19.1

**Release Date:** May 4, 2025

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* Misc bug fixes.

***

## 3.19.0

**Release Date:** April 30, 2025

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* New enhancements to the Table field.

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>CHANGED</span>

* Improved page breaking in PDF exports for dynamic fields.

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Bug fixes and enhancements.

***

## 3.18.1

**Release Date:** March 4, 2024

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* Misc bug fixes.

***

## 3.18.0

**Release Date:** February 27, 2025

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* Tree Structure v1 (NO-689) — A powerful new way to organize hierarchical data with nested data representation, expandable/collapsible nodes, and improved performance for complex structures.

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Image Upload Experience (NO-990) — Fixed various issues to improve the reliability and performance of image uploads.
* Validator Fields Sorting (NO-985) — Validator fields now appear in the correct order based on their position on the page.

***

## 3.17.0

**Release Date:** February 14, 2025

We're excited to roll out the latest updates and improvements!

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>CHANGED</span>

* Image Field Resizing (NO-946) — Miscellaneous improvements to ensure proper image scaling.
* Display Text (Block) Enhancements (NO-838) — Improved behavior and display of block elements.
* Android Upload Experience (NO-948) — Enhanced image/file upload functionality on Android devices.

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Table Text Column Editing Bug (NO-940) — Resolved an issue with text column cells not editing properly.
* Custom Icons (NO-970) — Custom icons now correctly render within field groups in the field list.
* Multi-line Text in PDFs (NO-957) — Adjusted text measurement to prevent content from being cut off in PDF exports.
* PDF Export Table (NO-949) — Fixed an issue where tables were cutting off bottom rows when spanning across page breaks.

Enjoy the latest improvements, and as always, let us know if you have any feedback!

***

## 3.16.0

**Release Date:** January 7, 2025

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* Full-width Min/Max inputs for chart field settings. (NO-814)
* Signature Field V2 (NO-680) — Enhanced signature field with improved design and functionality for seamless user experience.

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>CHANGED</span>

* Performance Enhancements for Very Large Forms (NO-783) — Optimized performance for handling large-scale forms efficiently.
* Layout Engine Phase 1 (NO-578) — Improved PDF generation with better page-breaking for non-dynamic fields.

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Duplicate Field Bug (NO-832) — Resolved an issue with duplicate fields in horizontal display type for MultiSelect.
* Chart Coordinates (NO-764) — Addressed x and y label cut-off issues in chart coordinates.

**Breaking Changes:**

* JoyDocExporter no longer defaults to sans-serif font family. You are now required to set the fontFamily by using the theme property. See SDK README.md for how to properly set the theme font family.
* JoyDocExporter now requires an initial measurement phase before PDF is ready to be captured. An element with `.pdf-capture-ready` will be added to the DOM when measuring is completed and PDF is ready to be captured.

***

## 3.15.1

**Release Date:** December 6, 2024

**Form Building, Now with Superpowers!**

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* Field Duplication (NO-662) — Clone fields faster with our new duplication feature.
* Page Names In Page Navigation Bar (NO-657) — Page names now appear in the page navigation items.
* Custom Field Option Icons (NO-817) — Customize your field options with custom icons using SVG Components and image urls.
* New onSelect SDK Event (NO-762) — New onSelect handler to keep you in the loop every time a field is clicked.

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>CHANGED</span>

* Formula Hide-and-Seek (NO-813) — Formulas on individual table cells fields properly handle formulas, staying hidden unless the field is focused.

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Signature Distortion (NO-822) — Signatures now look flawless, no matter the size of the field.
* Corrupted Table Data Crashing (NO-795) — Missing row\.cells values within table field causing an SDK crash has been patched.
* Selection Fields Border (NO-761) — Checkbox and radio button borders are now visible at all times.

We're always working to make your experience better (and maybe crack a smile or two along the way). Thanks for being part of this journey!

***

## 3.14.1

**Release Date:** October 23, 2024

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* Ability to re-order pages within the builder (NO-656)
* Confirmation modal for toggling mobile syncing (NO-653)
* Validation helper method. See README helper methods to learn more. (NO-677)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>CHANGED</span>

* Updated peer dependencies to support React version >18.0.0 (NO-684)
* Metadata field settings structure has been updated to follow consistent pattern (NO-684)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Multiple UI fixes and bug fixes (NO-686, NO-647, NO-650, NO-679, NO-639)

***

## 3.13.0

**Release Date:** August 9, 2024

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* Validation helper (NO-579)
* Support to sort fields based on x and y coordinates inside conditional logic modal (NO-643)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Bug that would make a field disappear when zIndex is set as the negative number (NO-644)
* Bug that would cut off field settings due to accordion height (NO-639)
* Filter out orphaned fields (ie fields without any field positions) from the Joydoc (NO-559)
* Style bug that cut off the field settings as a whole (NO-614)

***

## 3.12.0

**Release Date:** July 26, 2024

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>CHANGED</span>

* Enhanced mobile device responsive web forms (NO-592)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Invalid JSON payload freezing SDK (NO-613)

***

## 3.11.0

**Release Date:** July 21, 2023

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* `getDefaultPage` helper method (#NO-604)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #ef4444', borderRadius: '6px', color: '#ef4444', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>REMOVED</span>

* Vulnerable dependencies (#NO-604)

***

## 3.10.0

**Release Date:** July 10, 2024

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* Loading indicator for image / file uploads (NO-298) — A new loading indicator lets you know exactly when your images and files are being uploaded.
* Support for scaling pdf background images (NO-470)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>CHANGED</span>

* Updated JS SDK Internals (NO-528)
* Enhanced table column settings (NO-352)

***

## 3.9.1

**Release Date:** May 13, 2024

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* Transparent color support to the Settings Color Picker (NO-451) — Now you can create designs that are truly see-through.

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Adjust height of field scroll selector (NO-522) — Prevents menu items of field identifiers from overflowing their wrapper.

***

## 3.9.0

**Release Date:** May 4, 2024

This update is so fly, it'll make your form builder blush.

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* File Upload Field enhancements (NO-498) — Multiple files support, drag-and-drop, customizable styles, colors, and layouts, and conditional logic support.
* Enable/Disable Field Settings Options (NO-479) — You can hide any setting now by passing it as false in the field settings object.

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Default values for table columns (NO-499) — Your default values will now show up properly.
* Identifier Filter not clearing post search (NO-492) — Your search results will no longer be haunted by the ghosts of past searches.
* Page loading bug (NO-484) — Solved the mysterious loading indicator that haunted the Form builder after deleting the current page.
* "Exports is Undefined" (NO-494) — Fixed the missing "Exports" issue.

***

## 3.8.0

**Release Date:** April 2, 2024

Bug Squashing Bonanza!

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* Identifier Enhancements (NO-469) — You can now enable or disable custom identifier creation.
* Field margin control for a polished look (NO-433)
* Default page padding for a consistent design (NO-433)
* Read-only mode to make any field read-only by the read-only option on field settings (NO-433)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Bug where the option width couldn't be removed from multi-select fields (NO-459)
* Bug that caused the SDK to crash when encountering invalid JoyDoc payloads (NO-432)
* Identifier filter results not clearing after removing search query (NO-469)

***

## 3.7.1

**Release Date:** March 11, 2024

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* Developer-friendly SDK for PDF generation (NO-355)
* SDK Themes to elevate your forms (NO-396)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>CHANGED</span>

* Tidied up some errors for a sparkling console (NO-398)
* Improved performance for a smoother experience (NO-450)
* Revamped SDK for a stunning experience (NO-58)

***

## 3.6.1

**Release Date:** February 19, 2024

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* Crashes after Loading External Form (NO-395)

***

## 3.6.0

**Release Date:** February 6, 2024

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* Support for original file dimensions in PDF Form Engine (NO-349)
* Text wrapping for text based fields (NO-307)
* Field icon added to field settings (NO-315)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Display corresponding field settings of individual table cells when focused (NO-310)
* Field wrapping doesn't cut off text within pdf and pdf exports (NO-107)
* Hidden property causing validation issue in older SDK version (NO-377)

***

## 3.5.0

**Release Date:** December 16, 2023

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* Conditional logic (#NO-288)
* `onFocus` and `onBlur` event handlers now supported in SDK (#NO-223)
* Support for `initialPageId` on SDK for setting the initial page when the form is displayed (#NO-297)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>CHANGED</span>

* Enhancements to PDF exports (#NO-250)
* Enhancements to responsive web view for mobile form filling (#NO-252)
* PDF form view enhancements (#NO-279)
* Enhancements to required field indicators (#NO-295)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Style fix for Identifier selector (#NO-278)

**Breaking Changes:**

* Improved vanilla JS implementation for JS modules and CDN approach. See new implementation methods below (#NO-277)

**Javascript Usage (CDN)**

```
<!DOCTYPE html>
<html>
  <head>
    <title>Joyfill for Javascript Example</title>
    <base href=".">
    <meta charset="UTF-8" />
    <script src=" https://cdn.jsdelivr.net/npm/@joyfill/components@latest/dist/joyfill.min.js"></script>
  </head>
  <body>
    <div id="joyfill"></div>
    <script>

      Joyfill.JoyDoc(
        document.getElementById('joyfill'),
        {
          mode: 'edit',
          onChange: (changelogs, doc) => console.log('onChange: ', changelogs, doc),
        }
      );

    </script>
  </body>
</html>

```

**Javascript Usage (Module)**

```
//index.html

<!DOCTYPE html>
<html>
  <head>
    <title>Joyfill for Javascript Example</title>
    <base href=".">
    <meta charset="UTF-8" />
  </head>
  <body>
    <div id="joyfill"></div>
    <script type="module" src="./index.js"></script>
  </body>
</html>

//index.js

import Joyfill from "@joyfill/components/dist/joyfill.min.js";

Joyfill.JoyDoc(
  document.getElementById('joyfill'),
  {
    mode: 'edit',
    onChange: (changelogs, doc) => console.log('onChange: ', changelogs, doc),
  }
);

```

***

## 3.4.2

**Release Date:** October 19, 2023

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>FIXED</span>

* Chart field label read-only error in build.
* Misc enhancements and bug fixes.

***

## 3.4.1

**Release Date:** October 18, 2023

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* Identifier selector field customization. Learn more [https://docs.joyfill.io/docs/customize-settings](https://docs.joyfill.io/docs/customize-settings) (NO-87)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>CHANGED</span>

* PDF dynamic field measurement enhancements (NO-113)
* Auto remove individual table cell field positions associated with deleted columns (NO-254)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Misc enhancements and bug fixes.

***

## 3.3.1

**Release Date:** October 4, 2023

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* Page duplication support with page menu and `duplicatePage` helper method (#NO-95)
* Table field now supports image uploading directly to table image cells (#NO-114)
* Field tooltips now supported for additional field context and instructions (#NO-130)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Misc enhancements and bug fixes.

***

## 3.2.0

**Release Date:** September 12, 2023

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* Joyfill template library UI and visual requirements support (#NO-17)
* Field groups display mode for table fields (#NO-17)
* Rich text field support (#NO-17)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>CHANGED</span>

* Table columns are responsive by default now (#NO-17)
* Multi image upload adds to current images and no longer overwrites them (#NO-149)
* Table field settings enhancements (#NO-163)

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #f97316', borderRadius: '6px', color: '#f97316', fontWeight: '600', fontSize: '13px', marginBottom: '12px', marginTop: '16px'}}>FIXED</span>

* Signature is properly scaled to fit within field dimensions (#NO-172)

***

## 3.1.0

**Release Date:** August 22, 2023

<span style={{display: 'inline-block', padding: '4px 12px', border: '1.5px solid #10b981', borderRadius: '6px', color: '#10b981', fontWeight: '600', fontSize: '13px', marginBottom: '12px'}}>ADDED</span>

* Multi-user collaboration support via changelogs.
* Changelogs are now passed directly to the `onChange` handler. See package README.
* Helper methods for generating and duplicating documents and templates: `getDefaultDocument`, `getDefaultTemplate`, `getDocumentFromTemplate`, `duplicate`. See package README.
* Field lazy loading. See package README.

**Breaking Changes:**

* `onChange` argument list has been changed. `onChange` now only receives two arguments: `changelogs` and `doc`. See README.
