Skip to content

docs(popover): use the documented trigger-width variable (nuxt/ui@5fd94e1) - #555

Merged
IgorShevchik merged 2 commits into
mainfrom
sync/nuxt-7224333b
Sep 8, 2026
Merged

IgorShevchik merged 2 commits into
mainfrom
sync/nuxt-7224333b

Conversation

@IgorShevchik

Copy link
Copy Markdown
Collaborator

Two upstream commits, contiguous, taken together per PORTING.md §6 4b — fifth and sixth of ten in this run. Ledger-only but for one token.

7224333bchore(release): v4.11.1, no-op

Upstream's version bump and generated changelog. This fork is versioned independently (2.12.0, driven by release-please from our own squashed subjects), so there is nothing to land. Same decision as the four upstream release commits before it.

Worth reading anyway: a release commit is the one place upstream states the set that went into a release, which makes it a free cross-check on the ledger. All 14 commits named in the 4.11.1 notes are in processed with a decision:

bbf1e14 port · 90c45a6 port · 9bdb89b no-op · e4cb042 no-op · a494a97 port · 2d4782b port · c4ee0ea port · 612ab1c port · 726e142 port · fbb9e22 n/a · e791d30 port · 6caa6a9 port · 3d2de0c port · 2e8f533 port

Nothing unaccounted for — a gap here would have meant a commit slipped past the cursor.

5fd94e13docs: add theme editor, one token of 368 files

Upstream builds a Theme Studio: useThemeStudio (517 new lines), useThemeStudioHistory, useThemeStudioToolbar, useTokenShades, a colour-curve editor, a palette editor, preset picker, shuffle and share, plus 17 new playground components. The old ThemePicker (267 lines) is deleted in the same move. All 368 files are under docs/ and none outside it — checked by listing, not by reading the summary.

Almost none of it applies, because the thing it edits does not exist here. The Studio lets a reader pick and reshape a Tailwind colour palette — shades, curves, presets. This fork's colours are a fixed enumerated set of Bitrix24 air styles mapped to CSS style tokens ('air-primary': '--style-filled', 'air-primary-success', 'air-primary-alert', …). There is no palette to shuffle and no shade to drag, and no ThemePicker or theme.vue page to extend. Same shape as fbb9e220 (ProseCodeTree): not "we declined it", but "the premise is absent".

The rest is upstream's docs site, and ours is a different site. Twenty of the modified text files exist here by the same path, which looks like overlap until the contents are compared. Not one carries upstream's pre-image — measured file by file against 5fd94e13^:

file lines differing from upstream's pre-image
docs/nuxt.config.ts 871
docs/server/api/ai.post.ts 453
docs/content/…/2.css-variables.md 395
docs/app/composables/useTheme.ts 362
docs/app/pages/index.vue 361

…and fifteen more, none identical. The hunks apply nowhere as written.

The one token that does apply

PopoverAnchorSlotExample.vue: --reka-popper-anchor-width--reka-popover-trigger-width. Our copy carries the old name, and it is the only occurrence in the tree — checked across src/, docs/app, docs/content and the playgrounds.

It is a rename, not a fix, and that distinction is the point. Read from the installed reka rather than assumed: PopoverContentImpl.vue:81 sets '--reka-popover-trigger-width': 'var(--reka-popper-anchor-width)' — the new name is an alias of the old one, on the same element. Both resolve identically; nothing renders differently.

Taken because a docs example is what a reader copies, and the alias is the documented Popover-level name while the generic Popper variable is an implementation detail that happens to be exposed. No behaviour claim attached.

Verification

docs:full:generate run with deploy.yml's env, per §6 step 3 — the ci gate never builds the docs site. Checked against the built output, not the source: the generated CSS carries --reka-popover-trigger-width twice and the old name zero times, and the Popover page's HTML carries the new name. Tailwind emitted a rule for it, so the class is real rather than a dead arbitrary value.

Local gate green: lint · typecheck · test (347 files, 7895 passed, 6 skipped) · build (3.87 MB) · docs:full:generate.

Bookkeeping

Still ahead

Four upstream commits: 9076ca2d (virtualizer size fallback) and three docs-only commits.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JS8ypVfQSFzYVZzkTHhURb


Generated by Claude Code

…94e1)

Two upstream commits, ledger-only but for one token.

`7224333b` is upstream's release of v4.11.1 — their version bump and generated
changelog. This fork is versioned independently, so there is nothing to land.
It is worth reading anyway: a release commit states the set that went into it,
and all 14 commits named in those notes are present in `processed` with a
decision. Nothing slipped past the cursor.

`5fd94e13` adds a Theme Studio — 368 files, all under `docs/`. Almost none of it
applies, because the thing it edits does not exist here: the Studio reshapes a
Tailwind colour palette, while this fork's colours are a fixed enumerated set of
Bitrix24 air styles mapped to CSS tokens. There is no palette to shuffle and no
shade to drag, and no `ThemePicker` or `theme.vue` page to extend.

The rest is upstream's docs site and ours is a different one. Twenty of the
modified files exist here by the same path, which looks like overlap until the
contents are compared — not one carries upstream's pre-image. `docs/nuxt.config.ts`
differs by 871 lines, `ai.post.ts` by 453, `2.css-variables.md` by 395.

What does apply is one token in the Popover anchor example:
`--reka-popper-anchor-width` → `--reka-popover-trigger-width`.

This is a rename, not a fix. Read from the installed reka rather than assumed —
`PopoverContentImpl.vue:81` sets `'--reka-popover-trigger-width':
'var(--reka-popper-anchor-width)'`, so the new name is an alias of the old one on
the same element and nothing renders differently. Taken because a docs example is
what a reader copies and the alias is the documented Popover-level name.

Verified against the built site, not the source: the generated CSS carries
`--reka-popover-trigger-width` twice and the old name zero times.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JS8ypVfQSFzYVZzkTHhURb
`042bf3b7` went in with `pending-merge` in both fields, as PORTING.md §6 step 4
requires. That PR has now merged:

- `042bf3b7` → #553 / `8cd4eca9`

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JS8ypVfQSFzYVZzkTHhURb
@IgorShevchik
IgorShevchik merged commit ab6f76e into main Sep 8, 2026
2 checks passed
@IgorShevchik
IgorShevchik deleted the sync/nuxt-7224333b branch September 8, 2026 11:48
IgorShevchik pushed a commit that referenced this pull request Sep 9, 2026
`7224333b` and `5fd94e13` went in with `pending-merge` in both fields, as
PORTING.md §6 step 4 requires. That PR has now merged:

- `7224333b`, `5fd94e13` → #555 / `ab6f76e0`

Two entries, one PR — the batched case of §6 4b.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JS8ypVfQSFzYVZzkTHhURb
IgorShevchik added a commit that referenced this pull request Sep 9, 2026
… (#556)

* fix(virtualizer): fall back to `md` for a custom size (nuxt/ui@9076ca2)

A size lookup indexed by the component's `size` prop returned `undefined` for
anything not in the table. `getSize` now builds the table once and ends
`?? sizes.md`, with both signatures widened to accept an arbitrary string.

The fork's `xss` row is kept, so this is upstream's restructuring around our six
entries rather than their five. `CommandPalette`, `InputMenu`, `Listbox` and
`SelectMenu` all feed it.

Upstream's `Tree.vue` half is not applicable — that component does not exist
here, checked by listing `src/runtime/components/` rather than grepping for the
name, so a rename would have shown up too.

Why the fallback is reachable, measured rather than reasoned about: the type
says `'xss' | 'xs' | …`, which suggests it is not, but `TVConfig` lets
`app.config.ts` add `variants`, so a size added there arrives as an ordinary
string with no entry. Calling the pre-image with one returns

    { value: undefined, type: 'undefined', plusTen: NaN }

and `estimateSize` is arithmetic input for `@tanstack/vue-virtual`, so
`undefined` does not degrade to a default — it poisons every offset after it and
the list stops positioning. That is the difference between a row being the wrong
height and the list breaking.

There was no spec for this file at all. Upstream added one with the fix; this is
that file plus one case of our own for `xss`, which their table has no row for
and which the new fallback would otherwise swallow in silence. Reverting the
port turns 4 red, falling back to `xs` turns 4 red, and dropping our `xss` rows
turns 2 red — only the fork-only case notices that last one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JS8ypVfQSFzYVZzkTHhURb

* chore(sync): reconcile the #555 ledger entries

`7224333b` and `5fd94e13` went in with `pending-merge` in both fields, as
PORTING.md §6 step 4 requires. That PR has now merged:

- `7224333b`, `5fd94e13` → #555 / `ab6f76e0`

Two entries, one PR — the batched case of §6 4b.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JS8ypVfQSFzYVZzkTHhURb

---------

Co-authored-by: Shevchik Igor <noreply@anthropic.com>
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.

2 participants