Widget polish closure: slider, overlay/table APIs, tests, docs regen#45
Widget polish closure: slider, overlay/table APIs, tests, docs regen#45RtlZeroMemory wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
💡 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".
| const trackCells = Math.max( | ||
| 1, | ||
| explicitTrack ?? Math.max(1, dynamicTrack > 0 ? dynamicTrack : DEFAULT_SLIDER_TRACK_WIDTH), | ||
| ); |
There was a problem hiding this comment.
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 👍 / 👎.
| renderBoxBorder(builder, rect, "single", undefined, "left", borderStyle); | ||
| } | ||
| pushChildrenWithLayout( | ||
| node, |
There was a problem hiding this comment.
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 👍 / 👎.
"## 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- Addedslideras a public widget across types,uifactory, 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 addedsliderdocs.\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"