Server mode, several filters, states, selection and bulk actions (0.3.0) - #2
Merged
Merged
Conversation
Implements the essentials from #1: - Server (controlled) mode sharing one query shape with client mode; debounced search, page-past-the-end correction, previous rows kept while loading - Several filters (chips or select), array-valued fields, clear controls - Loading (aria-busy, skeleton), error (role=alert) and separate empty states - Toolbar slot, per-page select, opt-in selection and bulk actions with eligibility and focus handling - Locale-aware sorting, column sortValue/searchValue/defaultSortDirection, cached search text - Accessibility: explicit table roles for the mobile layout, visible cell labels, chip check icons and target size, 3:1 control outlines, forced-colors styles, focusable scroll region, RTL, debounced result announcements - jsdom component tests + axe check, size budget in CI (JS 4.6 KB gz) Breaking: filters live in the query (see README migration table). Closes #1
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.
Implements the essentials requested in #1.
What's in
rows,total,totalPages,query,onQueryChange; one query shape shared with client mode. Debounced search (searchDelay, 300 ms default in server mode), page-past-the-end correction, previous rows kept while loading. Out-of-order responses:AbortControllerpattern documented in the README.filters: [ { field, label, options, multiple?, type? } ]; any-of within, all across; chips, or a select above 6 options; array-valued row fields; per-filter "Clear" and "Clear all".isLoading(aria-busy, dimmed rows or aria-hidden skeleton),error+errorAction(role="alert"), separateempty/emptyAlllabels.Intl.Collatorsorting (numeric, base sensitivity), columnsortValue/searchValue/defaultSortDirection, cached search text, RTL.::beforecontent), chip check icon + ≥ 24 px targets, 3:1 control outlines, forced-colors styles, focusable labelled scroll region, debounced polite result announcements.Checks
npm run size): JS 4.58 KB gz (budget 5 KB), CSS 1.51 KB gz (budget 2 KB).Not done / trade-offs
DataTable, so an unused feature still ships (principle 2 is met for behaviour, not for weight).Breaking
Filters live in the query. See the migration table in the README.
Merging releases 0.3.0 to npm through the Release workflow.
Closes #1