Skip to content

feat: support custom FieldInput and document date presets - #161

Merged
ladparth merged 2 commits into
mainfrom
feat/custom-field-input-and-date-presets
Jun 9, 2026
Merged

feat: support custom FieldInput and document date presets#161
ladparth merged 2 commits into
mainfrom
feat/custom-field-input-and-date-presets

Conversation

@ladparth

@ladparth ladparth commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Description

This PR addresses two issues:

  1. Aligns the public render and field helper APIs to accept FieldInput / CustomFieldInput instead of the built-in Field union type to support custom fields end-to-end (Closes Custom FieldInput support is not reflected across render and field helper APIs #160).
  2. Documents the calendar ui.presets property in the date field docs (Closes [FEAT] Document using of the ui.presets property #157).

Key Changes

Core (form-core)

  • Widened container field schema definitions (GroupField, ArrayField, RowField, CollapsibleField, and Tab) to accept FieldInput[] instead of Field[].
  • Updated traversal (walkFields), defaults (extractDefaults), visibility (getVisibleFields), dependency extraction (extractDependencies, extractDependenciesFromFields), and validation APIs (validateFields, validatePath, validateField, findFieldByPath, deriveFieldChecks) to accept FieldInput.
  • Widened the parameters of isDataField and isLayoutField type guards.
  • Removed unused Field import in validation/index.ts.
  • Added a new comprehensive test suite custom-field-input.test.ts with 22 new tests covering flat and nested custom field configurations across all core helpers.

React Adapter (form-react)

  • Widened FieldRendererProps.field to FieldInput and RenderFieldsProps.fields to readonly FieldInput[].
  • Updated FieldRegistry to support dynamic indexing of arbitrary custom field types ([customType: string]: ComponentType | undefined).
  • Widened error collection and count hooks (collectDataFieldNames and useNestedErrorCount) to handle custom FieldInput fields.

Docs / Web (apps/web)

  • Documented using the ui.presets property and added configuration examples inside apps/web/content/docs/fields/data/date.mdx.
  • Widened the local fields prop inside apps/web/registry/shadcn/fields/tabs.tsx to FieldInput[].
  • Regenerated the shadcn built registry files (apps/web/public/r/tabs.json).

Other

  • Manually created release changesets for @buildnbuzz/form-core and @buildnbuzz/form-react.

Type of change

  • feat (New feature)
  • docs (Documentation changes)
  • test (Adding or updating tests)

Related Issues

@vercel

vercel Bot commented Jun 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
buzzform Ready Ready Preview, Comment Jun 9, 2026 6:51pm

@ladparth
ladparth merged commit 88a9198 into main Jun 9, 2026
3 checks passed
@ladparth
ladparth deleted the feat/custom-field-input-and-date-presets branch June 9, 2026 18:52
@github-actions github-actions Bot mentioned this pull request Jun 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Custom FieldInput support is not reflected across render and field helper APIs [FEAT] Document using of the ui.presets property

1 participant