feat(editor)!: consolidate cameraOptions, textOptions, and deepLinks into options prop#7888
Merged
steveruizok merged 6 commits intomainfrom Feb 11, 2026
Merged
feat(editor)!: consolidate cameraOptions, textOptions, and deepLinks into options prop#7888steveruizok merged 6 commits intomainfrom
steveruizok merged 6 commits intomainfrom
Conversation
Extend the TldrawOptions interface with three new fields: - `camera`: initial camera options (replaces the standalone `cameraOptions` prop) - `text`: text rendering options (replaces the standalone `textOptions` prop) - `deepLinks`: URL sync options (replaces the standalone `deepLinks` prop) The Editor constructor now reads these from `options` and merges them with the deprecated standalone props for backward compatibility. The standalone props on TLEditorOptions are marked @deprecated.
Update TldrawEditor to merge the deprecated textOptions, deepLinks, and cameraOptions props into the unified options object. The options values take precedence over the deprecated standalone props. The deepLinks listener and camera options effect now read from options.deepLinks and options.camera respectively.
Update Tldraw to merge the deprecated textOptions prop into options.text, with options.text taking precedence. The merged options are passed to TldrawEditor via the unified options prop. Update TldrawImage to accept an options prop and merge it with default text options. The deprecated textOptions prop is still supported but options.text takes precedence.
Update all examples, dotcom editors, templates, and tests to use the unified options prop instead of the deprecated standalone props: - deepLinks → options.deepLinks - textOptions → options.text - cameraOptions → options.camera
Regenerate API reports to reflect the new camera, text, and deepLinks fields on TldrawOptions and the deprecated standalone props.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
5 Skipped Deployments
|
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
image-pipeline-template | c5b1ffb | Commit Preview URL Branch Preview URL |
Feb 11 2026, 07:35 PM |
Use typeof check instead of falsy check to correctly detect when roundRect is not a callable function on the Path2D prototype.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In order to simplify the editor's prop surface and provide a single configuration entry point, this PR consolidates three standalone props (
cameraOptions,textOptions,deepLinks) into the existingoptionsprop onTldrawEditor,Tldraw, andTldrawImage.pr-7888-walkthrough.mp4
The standalone props are preserved with
@deprecatedannotations for backward compatibility. When both the deprecated prop and the equivalentoptionsfield are provided, theoptionsvalue takes precedence.Clean reimplementation of the
options-stackbranch.Change type
apiTest plan
options={{ deepLinks: true }}instead ofdeepLinks— verify deep links still workoptions={{ camera: { isLocked: true } }}instead ofcameraOptions— verify camera locksoptions={{ text: { tipTapConfig: { extensions: [...] } } }}instead oftextOptions— verify rich text worksAPI changes
TldrawOptions.camerafor initial camera optionsTldrawOptions.textfor text rendering optionsTldrawOptions.deepLinksfor URL sync optionsTldrawImageProps.optionspropTldrawEditorBaseProps.cameraOptions(useoptions.camera)TldrawEditorBaseProps.textOptions(useoptions.text)TldrawEditorBaseProps.deepLinks(useoptions.deepLinks)TLEditorOptions.cameraOptions(useoptions.camera)TLEditorOptions.textOptions(useoptions.text)TldrawBaseProps.textOptions(useoptions.text)TldrawImageProps.textOptions(useoptions.text)Release notes
camera,text, anddeepLinksfields to theoptionsprop onTldraw,TldrawEditor, andTldrawImagecameraOptions,textOptions, anddeepLinksprops in favor of the unifiedoptionspropNote
Medium Risk
API-surface and wiring changes affect editor initialization (camera/text/deeplinks) across many entry points; while deprecated props are supported, precedence/merging bugs could alter behavior for existing integrations.
Overview
Unifies editor configuration under
options. Addsoptions.camera,options.text, andoptions.deepLinks(with new defaults) and updatesTldrawEditor,Editor,Tldraw, andTldrawImageto consume them.Keeps backward compatibility via deprecations. Marks
cameraOptions,textOptions, anddeepLinksas@deprecated, merges them intooptionsat runtime, and ensuresoptionsvalues win when both are provided; call sites (dotcom, templates, examples, tests) are migrated to the newoptions={{...}}style.Also tightens a Vitest
Path2D.roundRectpolyfill check and updates API reports to reflect the new/renamed props and option fields.Written by Cursor Bugbot for commit c5b1ffb. This will update automatically on new commits. Configure here.