[pull] main from adobe:main#430
Merged
Merged
Conversation
…10238) * fix(table): floor fractional table width so columns don't overflow calculateColumnSizes relies on cascadeRounding, which assumes the target column sizes sum to an integer. With a fractional table width (e.g. a percentage-based size) that invariant breaks and the rounded widths can exceed the available width by 1px, producing an unexpected horizontal scrollbar. Flooring the available width keeps the sum integral; integer widths are unchanged. Adds a regression test to TableUtils. Fixes #9448. * Keep columns flush with a fractional table width Address review: instead of flooring the available width (which left a sub-pixel gap between the last column and the table edge), assign the leftover fraction to the last column inside cascadeRounding so the column widths sum exactly to the available width. Integer widths are unchanged. * Fix failing resize tests; keep integer widths whole The previous revision added the fractional remainder inside cascadeRounding using `fpTotal - intTotal`, but floating-point accumulation could leave a tiny residue on the last column even for integer table widths, breaking tests that assume whole-number widths (e.g. tableResizingTests). Revert cascadeRounding to its integer-only form and instead split the available width in calculateColumnSizes: distribute the floored (whole-pixel) width across the columns, then add the leftover fraction to the last column. Integer widths are now exactly whole numbers again, and a fractional width (e.g. 1000.5 -> [500, 500.5]) keeps the columns flush with the table edge. * Add test for fractional table widths with fp rounding error Covers a table width like 1000.7 where the leftover fraction lands on the last column. The columns still sum exactly to the available width and all but the last column are whole numbers; the last column is within one ULP of the expected fractional value. * use number string manipulation to make exact math --------- Co-authored-by: Rob Snow <rsnow@adobe.com>
…10225) * fix: make sure trackpad taps are not considered as virtual clicks * didnt save?
* fix(dialog): add aria-describedby support for alertdialog role AlertDialog was rendering with role="alertdialog" but without aria-describedby, which the WAI-ARIA spec recommends for alertdialogs to reference the alert message content. Changes: - useDialog hook: generate a content ID via useSlotId when role is "alertdialog", return contentProps with the ID, and set aria-describedby on the dialog element - V3 Dialog: spread contentProps onto the content slot so the Content element receives the generated ID - RAC Dialog: destructure contentProps (available for user composition) The aria-describedby is only auto-wired for alertdialog role. Regular dialogs are unaffected. Users can override via the aria-describedby prop. Fixes #9916 * fix: wire contentProps via TextContext for RAC alertdialog aria-describedby * test: add RAC integration test for alertdialog aria-describedby via Text slot * fix: sort TextContext import alphabetically in RAC Dialog * update tests, add warning to RAC * add describedby to s2 alert dialog * fix test * refactor, add tests, fix image labels in examples * fix lint * fix: allow aria-describedby override in v3 AlertDialog Extends SpectrumAlertDialogProps with AriaLabelingProps and passes {labelable: true} to filterDOMProps so user-supplied aria-describedby flows through to the inner Dialog instead of being stripped. Mirrors the S2 AlertDialog treatment already merged by snowystinger, and aligns v3 AlertDialog with regular v3 Dialog, which has these props transitively via AriaDialogProps. Adds a test verifying the override reaches the rendered alertdialog element. * fix(useDialog): drop contentId when aria-describedby is user-provided If the consumer supplies their own aria-describedby on an alertdialog, useDialog no longer generates a slot id for contentProps. This mirrors the existing handling of titleId vs aria-label and prevents downstream wrappers (e.g. RAC Dialog's TextContext for the description slot) from receiving an id no one references. Adds a test covering the override path. * fix(s2): wire aria-describedby on S2 AlertDialog via explicit contentId Generates a contentId in S2 AlertDialog and passes it to both the underlying Dialog (as aria-describedby) and to <Content /> (as id). This puts the aria-describedby target directly on the Content element rather than on the Text slot wrapper, and keeps the wiring contained within AlertDialog instead of relying on the RAC TextContext path. A consumer-supplied aria-describedby continues to take precedence; in that case we omit the generated id from <Content /> so we don't add an unused id. * fix(s2): import useId from react-aria/useId, not 'react' React.useId is React 18+ only, breaking test-16 and test-17 in CI. Every other S2 file uses the polyfilled useId from react-aria/useId. * fix some merge changes * move warning down to hook and remove extra code from s2 * test: use renamed DialogTester.getDialog() API after merge main renamed the DialogTester getters to methods (get dialog() -> getDialog()). The alertdialog aria-describedby test still used the old .dialog getter, which now returns undefined and fails the assertions. Match the getDialog() API already used elsewhere in this file. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * make more forgiving since spec says "should" --------- Co-authored-by: Yihui Liao <44729383+yihuiliao@users.noreply.github.com> Co-authored-by: Rob Snow <rsnow@adobe.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
#9955) fix downstream TS2742 The v1.17.0 types refactor split the bundled types.d.ts into per-source files. RenderProps extends StyleRenderProps extends DOMRenderProps, and StyleRenderProps['style'] uses StyleOrFunction — neither was publicly nameable. Downstream packages built with composite/declaration emit then fail with TS2742 on any inferred type whose expansion crosses these names. Adds `export` to StyleOrFunction and re-exports DOMRenderProps, PossibleLinkDOMRenderProps, DOMRenderFunction, ClassNameOrFunction, StyleOrFunction, and ChildrenOrFunction from the package entry. Type-only, additive — no runtime impact. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: Robert Snow <rsnow@adobe.com>
* fix(useId): avoid FinalizationRegistry entry leak in useId * fix test in React 16/17 * add comments to test * additional test: changing the id should unregister the old token and register the new one --------- Co-authored-by: Robert Snow <rsnow@adobe.com>
…ger (#10170) Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Co-authored-by: Robert Snow <rsnow@adobe.com>
…ax (#10169) * fix: guard ProgressBar/Meter percentage against NaN when min equals max * simplify, fix hooks, and fix v3 * fix lint --------- Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Co-authored-by: Robert Snow <rsnow@adobe.com>
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )