Skip to content

[pull] main from TypeCellOS:main#27

Open
pull[bot] wants to merge 992 commits into
kkpan11:mainfrom
TypeCellOS:main
Open

[pull] main from TypeCellOS:main#27
pull[bot] wants to merge 992 commits into
kkpan11:mainfrom
TypeCellOS:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Mar 11, 2024

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

YousefED and others added 28 commits December 9, 2025 09:53
Co-authored-by: Nick the Sick <computers@nickthesick.com>
Co-authored-by: Nick the Sick <computers@nickthesick.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nick Perez <nick@blocknotejs.org>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nick Perez <nick@blocknotejs.org>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…2274)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#2277)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
nperez0111 and others added 30 commits May 14, 2026 08:49
…#2740)

* fix: set width attribute on image element in editor render

When the editor is rendered with editable: false, the <img> tag did not
include a width attribute even though the block's previewWidth prop was
set — the width was only applied as inline style on the wrapper. This
prevented the browser from reserving space before the image loaded
(CLS) and made the rendered DOM lossy for downstream consumers reading
innerHTML.

Apply previewWidth directly to the <img> element in the editor render
path, mirroring what imageToExternalHTML and the core Video block
already do. CSS width: 100% on .bn-visual-media still controls layout
so resize behavior is unaffected.

Fixes #2726

* fix: also apply width attribute to video block

Apply the same fix as the image block to video:
- React VideoPreview now sets width on the <video> element so read-only
  rendering includes it.
- React VideoToExternalHTML now serializes previewWidth (it was
  previously dropped entirely on export).
- Core video render path guards `video.width = previewWidth` against
  undefined (assigning undefined to a numeric DOM property coerces to
  0).

Audio and File blocks don't have a previewWidth prop, so no change is
needed there.

Refs #2726

* test: update snapshots for image/video width fix

- Image snapshots now include the new width attribute on the <img>
  element when previewWidth is set.
- Video snapshots no longer include width="0" since the core video
  render now guards against an undefined previewWidth.

Refs #2726

* fix: guard previewWidth to avoid emitting width="0" on video elements
* fix: backslash newlines when copying from a code block

When copying inline content from inside a code block, the text/plain
clipboard payload had a backslash before every newline (markdown's
hard-break syntax) and the text/html had `<br>` separators inside the
code instead of literal newlines.

Two changes fix this:

- copyExtension routes selections inside a code block through the
  block-export path so the code block's own toExternalHTML produces
  the proper `<pre><code>` wrapper.
- serializeInlineContentExternalHTML now plumbs blockType through to
  inlineContentToNodes (mirroring the internal HTML serializer) so
  `\n` in code-block content stays as literal text instead of being
  split into hardBreak nodes that render as `<br>`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix: drop `as const` from PRETTIFY_OPTIONS to satisfy htmlfy types

`as const` typed `ignore` as a readonly tuple, which doesn't match
`UserConfig.ignore: string[]`, breaking CI typecheck.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* test: integrate code-block copy regression into existing copy test suite

Address PR review:
- Drop standalone codeBlockMarkdown.test.ts; add `codeBlockFullContent` and
  `codeBlockPartialSelection` cases to copyTestInstances.ts and snapshot
  text/plain markdown for all copy test instances via a new
  `Copy tests (Markdown)` describe block (mirrors the export test pattern).
- Trim verbose comments in copyExtension and serializeBlocksExternalHTML.
- copyPasteEquality executor now passes the actual markdown payload as the
  text/plain MIME instead of a literal "text" placeholder, so paste handlers
  that prefer text/plain (e.g. inside code blocks) round-trip correctly.
- Update mixedInParagraph snapshots: prettify's `ignore: ["code"]` preserves
  trailing whitespace inside `<code>` spans, which is the actual HTML output.

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Nick the Sick <computers@nickthesick.com>
…ual typing (#2815)

When @ariakit/react updates its internal module structure (e.g. from
@ariakit/react-core to @ariakit/react-components), contextual typing
from external library component props can break, causing TS7006
'Parameter implicitly has an any type' errors in the Fresh Install
Tests CI workflow.

Add explicit type annotations to 5 callback parameters that depend on
external library types for inference:

- packages/ariakit/src/panel/Panel.tsx: setActiveId callback
- packages/ariakit/src/toolbar/ToolbarButton.tsx: onMouseDown callback
- packages/ariakit/src/panel/PanelFileInput.tsx: onChange callback
- packages/ariakit/src/badge/Badge.tsx: onClick callback
- packages/xl-ai/src/components/AIMenu/AIMenuController.tsx: outsidePress callback

All annotations use React/DOM built-in types (MouseEvent, ChangeEvent)
rather than library-specific types, making them resilient to future
dependency updates.
…nhandled DOMObserver errors (#2816)

Tests that mount editors were not calling unmount() afterward, leaving
ProseMirror's DOMObserver timers active. When prosemirror-view is updated
to newer versions (e.g. 1.41.8 via fresh dep resolution), a dangling
setTimeout in DOMObserver.flush() fires after jsdom teardown, causing
'document is not defined' ReferenceError.

Add afterEach cleanup following the same pattern as transformPasted.test.ts.
* Memoized `actions` prop in consumers of `CommentEditor`

* Added e2e test, minor changes to existing tests

* refactor: extract actions into memo components with render prop pattern

- Change CommentEditor actions prop from FC to render prop (function returning ReactNode)
- Extract inline action components into separate memo-wrapped components
- Remove unnecessary useCallback/useMemo wrappers around render props
- React.memo on child components handles re-render optimization

---------

Co-authored-by: Nick the Sick <computers@nickthesick.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.