Repository navigation
Use explicit defaults in fluent chart builders - #3170
Merged
Merged
Conversation
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Build each chart type through a native fluent chain with explicit Stimulus defaults. Line, bar, mixed, pie and percentage settings now live alongside their builder instead of a shared list of presence checks.
Keep presence checks only for responsive width, native palette fallback and visibility choices affected by automatic legends or frameless mode. Preserve every PHP-supported option: Chart::options() exposes the full allowlist, and Blade transports gradient endpoints. Gradients use explicit opacity defaults when enabled. Endpoint-only hand-written HTML no longer implicitly enables a gradient; PHP always emits its enabled flag.
Validation: 19 real Stimulus tests and 17 PHP chart tests (47 assertions) pass. Chromium compared old and new SVG output across 28 scenarios covering all five types, frameless overrides, gradients and dataset overrides; output matched after normalizing generated identifiers. Production build, formatting and manifest hash/SRI checks pass. PHP/Blade and unrelated local changes are untouched.
CI on d648d9f: all 24 PHP/Laravel matrix jobs, chart-controller tests, code style, coverage, Composer and spelling passed. Psalm and Semgrep match the stored master diagnostics. Dusk remains failing after one isolated rerun: notification badge timeout, SideMenuTest height assertion, and ItemAddChildScreenFlowTest modal text assertion. The initial attempt also had a logout timeout that did not recur. These failures are disclosed; the full CI suite is not green. No unrelated test fixes are included.