Skip to content

Widget polish closure: slider, overlay/table APIs, tests, docs regen#45

Closed
RtlZeroMemory wants to merge 1 commit into
mainfrom
feat/main-pass-20260212-225301
Closed

Widget polish closure: slider, overlay/table APIs, tests, docs regen#45
RtlZeroMemory wants to merge 1 commit into
mainfrom
feat/main-pass-20260212-225301

Conversation

@RtlZeroMemory

@RtlZeroMemory RtlZeroMemory commented Feb 13, 2026

Copy link
Copy Markdown
Owner

"## Summary\nCloses remaining widget parity gaps in @rezi-ui/core, adds deterministic test coverage for the changed contracts, and updates widget docs to match the public API.\n\n## What changed\n- Added slider as a public widget across types, ui factory, renderer/runtime wiring, and docs.\n- Added slider behavior coverage (normalization, range/step handling, keyboard routing, render/regression cases).\n- Added FocusZone grid navigation integration coverage (navigation: \"grid\", columns).\n- Added deterministic unit tests for toast helper contracts (getToastX/Y, expiration filtering, add/remove/progress updates).\n- Added consistent overlay frame styling API (frameStyle) for modal/layer/dropdown/commandPalette/toastContainer.\n- Extended modal backdrop config with a backward-compatible object form.\n- Added table column overflow policy (clip | ellipsis | middle) and configurable stripe/border styling.\n- Updated widget docs (modal, dropdown, layer, layers, command-palette, table, toast) and added slider docs.\n\n## Validation\nExecuted and passed:\n- npm run lint\n- npm run typecheck\n- npm run build\n- npm test\n- npm run test:e2e\n- npm run test:e2e:reduced\n- npm run test:native:smoke\n- npm -w @rezi-ui/core run build\n- npm -w @rezi-ui/core run test\n- npm run docs:api\n- npm run docs:build\n- npm run check:docs\n"

@RtlZeroMemory
RtlZeroMemory deleted the feat/main-pass-20260212-225301 branch February 13, 2026 04:15

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c90d5e10c3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +665 to +668
const trackCells = Math.max(
1,
explicitTrack ?? Math.max(1, dynamicTrack > 0 ? dynamicTrack : DEFAULT_SLIDER_TRACK_WIDTH),
);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Clamp explicit slider width before generating track text

The slider renderer uses props.width directly as trackCells and later repeats glyphs to that length, even though drawing is clipped to rect.w. A large configured width (for example from bad external config/state) will allocate huge strings during trackText construction and can cause severe render stalls or OOMs despite the visible area being small. Clamping explicitTrack to a sane upper bound (typically available cell width) before computing fill/empty segments avoids this denial-of-service path.

Useful? React with 👍 / 👎.

Comment on lines +549 to 552
renderBoxBorder(builder, rect, "single", undefined, "left", borderStyle);
}
pushChildrenWithLayout(
node,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve layer border by clipping children to the inner rect

When frameStyle.border is set on a layer, the border is drawn and then children are pushed with the full layer rect and no inner clipping/inset, so edge content is rendered afterward and can overwrite border glyphs. This makes the new frame API visually inconsistent for common full-bleed content (e.g. text/columns starting at x,y). The layer branch should mirror modal behavior by clipping children to the interior when a border is present.

Useful? React with 👍 / 👎.

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.

1 participant