FORMS & TABLES · DATATABLES

Advanced datatable

Filter 200 invoices — column filters with live counts, an AND / OR filter builder, saved views, select-all-matching and filter states.
THEME
01

Playground

200 invoices — filters, builder, views, selection
FILTERS
APPLY
DENSITY
STATE
Invoices — 200 of 200 invoices
Invoices
Filter ClientFilter Status, AllFilter Amount
Filter Due date
INV-1000Issued 18 Oct 2026
Lume GoodsOlivia Lane
Draft$2,2501 Nov 2026Not sent
INV-1001Issued 11 Sep 2026
Juniper HotelMia Hart
Paid$30,50011 Oct 2026Paid
INV-1002Issued 5 Aug 2026
Tide CoffeeAlex Reyes
Paid$30,2504 Sep 2026Paid
INV-1003Issued 29 Jun 2026
Nova StudioNoah Fischer
Paid$30,00013 Jul 2026Paid
INV-1004Issued 23 May 2026
Mosaic PressJon Reyes
Paid$29,75022 Jun 2026Paid
INV-1005Issued 16 Apr 2026
Quill PressOlivia Lane
Paid$29,50016 May 2026Paid
INV-1006Issued 10 Mar 2026
Atelier RiveMia Hart
Paid$29,25024 Mar 2026Paid
INV-1007Issued 1 Feb 2026
Drift WorksAlex Reyes
Overdue$29,0003 Mar 2026229 days overdue
INV-1008Issued 26 Dec 2025
Basalt HotelNoah Fischer
Paid$28,75025 Jan 2026Paid
INV-1009Issued 15 Sep 2026
Kiln CoffeeJon Reyes
Overdue$28,50029 Sep 202619 days overdue
200 of 200 invoices
URLavava.studio/invoices
NOW SPEAKING
FILTERFilter Status, All, button, has popup
CHIPNo active filters
SELECTSelect all on this page, checkbox, not checked
InvoicesTable.tsx
1<DataTable
2 caption="Invoices" data={invoices}
3 filters={{ placement: "row", apply: "instant" }}
4 views={savedViews} defaultView="all"
5 selectable="all-matching"
6 syncToUrl
7/>
EVENT LOG
    Filter, save a view or select rows — events appear here.
    02

    Variants

    Column menu, ranges, views, select all, empty result
    Column filter menufunnel in the header · search values · counts
    Invoices · column menus — 200 of 200 invoices
    Invoices · column menus
    INV-1000Issued 18 Oct 2026
    Lume GoodsOlivia Lane
    Draft$2,2501 Nov 2026Not sent
    INV-1001Issued 11 Sep 2026
    Juniper HotelMia Hart
    Paid$30,50011 Oct 2026Paid
    INV-1002Issued 5 Aug 2026
    Tide CoffeeAlex Reyes
    Paid$30,2504 Sep 2026Paid
    INV-1003Issued 29 Jun 2026
    Nova StudioNoah Fischer
    Paid$30,00013 Jul 2026Paid
    INV-1004Issued 23 May 2026
    Mosaic PressJon Reyes
    Paid$29,75022 Jun 2026Paid
    INV-1005Issued 16 Apr 2026
    Quill PressOlivia Lane
    Paid$29,50016 May 2026Paid
    INV-1006Issued 10 Mar 2026
    Atelier RiveMia Hart
    Paid$29,25024 Mar 2026Paid
    INV-1007Issued 1 Feb 2026
    Drift WorksAlex Reyes
    Overdue$29,0003 Mar 2026229 days overdue
    INV-1008Issued 26 Dec 2025
    Basalt HotelNoah Fischer
    Paid$28,75025 Jan 2026Paid
    INV-1009Issued 15 Sep 2026
    Kiln CoffeeJon Reyes
    Overdue$28,50029 Sep 202619 days overdue
    200 of 200 invoices
    Rangesamount with histogram and presets · date presets
    Invoices · ranges — 200 of 200 invoices
    Invoices · ranges
    INV-1000Issued 18 Oct 2026
    Lume GoodsOlivia Lane
    Draft$2,2501 Nov 2026Not sent
    INV-1001Issued 11 Sep 2026
    Juniper HotelMia Hart
    Paid$30,50011 Oct 2026Paid
    INV-1002Issued 5 Aug 2026
    Tide CoffeeAlex Reyes
    Paid$30,2504 Sep 2026Paid
    INV-1003Issued 29 Jun 2026
    Nova StudioNoah Fischer
    Paid$30,00013 Jul 2026Paid
    INV-1004Issued 23 May 2026
    Mosaic PressJon Reyes
    Paid$29,75022 Jun 2026Paid
    INV-1005Issued 16 Apr 2026
    Quill PressOlivia Lane
    Paid$29,50016 May 2026Paid
    INV-1006Issued 10 Mar 2026
    Atelier RiveMia Hart
    Paid$29,25024 Mar 2026Paid
    INV-1007Issued 1 Feb 2026
    Drift WorksAlex Reyes
    Overdue$29,0003 Mar 2026229 days overdue
    INV-1008Issued 26 Dec 2025
    Basalt HotelNoah Fischer
    Paid$28,75025 Jan 2026Paid
    INV-1009Issued 15 Sep 2026
    Kiln CoffeeJon Reyes
    Overdue$28,50029 Sep 202619 days overdue
    200 of 200 invoices
    Saved viewssave, rename by re-saving, delete, set default
    Invoices · views — 200 of 200 invoices
    Invoices · views
    INV-1000Issued 18 Oct 2026
    Lume GoodsOlivia Lane
    Draft$2,2501 Nov 2026Not sent
    INV-1001Issued 11 Sep 2026
    Juniper HotelMia Hart
    Paid$30,50011 Oct 2026Paid
    INV-1002Issued 5 Aug 2026
    Tide CoffeeAlex Reyes
    Paid$30,2504 Sep 2026Paid
    INV-1003Issued 29 Jun 2026
    Nova StudioNoah Fischer
    Paid$30,00013 Jul 2026Paid
    INV-1004Issued 23 May 2026
    Mosaic PressJon Reyes
    Paid$29,75022 Jun 2026Paid
    INV-1005Issued 16 Apr 2026
    Quill PressOlivia Lane
    Paid$29,50016 May 2026Paid
    INV-1006Issued 10 Mar 2026
    Atelier RiveMia Hart
    Paid$29,25024 Mar 2026Paid
    INV-1007Issued 1 Feb 2026
    Drift WorksAlex Reyes
    Overdue$29,0003 Mar 2026229 days overdue
    INV-1008Issued 26 Dec 2025
    Basalt HotelNoah Fischer
    Paid$28,75025 Jan 2026Paid
    INV-1009Issued 15 Sep 2026
    Kiln CoffeeJon Reyes
    Overdue$28,50029 Sep 202619 days overdue
    200 of 200 invoices
    Select everything that matchespage → all matching · live summary · bulk actions
    StatusOverdue, Sent
    Invoices · selection — Filtered by 1 condition · 64 of 200 invoices
    Invoices · selection
    INV-1007Issued 1 Feb 2026
    Drift WorksAlex Reyes
    Overdue$29,0003 Mar 2026229 days overdue
    INV-1009Issued 15 Sep 2026
    Kiln CoffeeJon Reyes
    Overdue$28,50029 Sep 202619 days overdue
    INV-1011Issued 3 Jul 2026
    Clover ClinicMia Hart
    Overdue$28,0002 Aug 202677 days overdue
    INV-1013Issued 20 Apr 2026
    NorthwindNoah Fischer
    Overdue$27,50020 May 2026151 days overdue
    INV-1015Issued 5 Feb 2026
    SableOlivia Lane
    Overdue$27,00019 Feb 2026241 days overdue
    INV-1024Issued 3 Jan 2026
    Mosaic PressJon Reyes
    Overdue$24,75017 Jan 2026274 days overdue
    INV-1026Issued 17 Aug 2026
    Atelier RiveMia Hart
    Overdue$24,25016 Sep 202632 days overdue
    INV-1028Issued 4 Jun 2026
    Basalt HotelNoah Fischer
    Overdue$23,7504 Jul 2026106 days overdue
    INV-1030Issued 22 Mar 2026
    FormaOlivia Lane
    Overdue$23,2505 Apr 2026196 days overdue
    INV-1032Issued 7 Jan 2026
    Orbit LabsAlex Reyes
    Overdue$22,7506 Feb 2026254 days overdue
    Filtered by 1 condition · 64 of 200 invoices
    When nothing matchessay which filter to drop
    Client“lume”StatusDraftAmount≥ $50,000
    Invoices · empty — Filtered by 3 conditions · 0 of 200 invoices
    Invoices · empty
    No invoices match these 3 filtersRemoving “Amount: ≥ $50,000” would show 1 invoice.
    Filtered by 3 conditions · 0 of 200 invoices
    03

    States

    Filtering, error, too broad
    Filteringold rows dim, a bar runs on top, aria-busy
    StatusOverdue
    Invoices — Filtered by 1 condition · 55 of 200 invoices
    Invoices
    INV-1007Issued 1 Feb 2026
    Drift WorksAlex Reyes
    Overdue$29,0003 Mar 2026229 days overdue
    INV-1009Issued 15 Sep 2026
    Kiln CoffeeJon Reyes
    Overdue$28,50029 Sep 202619 days overdue
    INV-1011Issued 3 Jul 2026
    Clover ClinicMia Hart
    Overdue$28,0002 Aug 202677 days overdue
    INV-1013Issued 20 Apr 2026
    NorthwindNoah Fischer
    Overdue$27,50020 May 2026151 days overdue
    INV-1015Issued 5 Feb 2026
    SableOlivia Lane
    Overdue$27,00019 Feb 2026241 days overdue
    INV-1024Issued 3 Jan 2026
    Mosaic PressJon Reyes
    Overdue$24,75017 Jan 2026274 days overdue
    INV-1026Issued 17 Aug 2026
    Atelier RiveMia Hart
    Overdue$24,25016 Sep 202632 days overdue
    INV-1028Issued 4 Jun 2026
    Basalt HotelNoah Fischer
    Overdue$23,7504 Jul 2026106 days overdue
    INV-1030Issued 22 Mar 2026
    FormaOlivia Lane
    Overdue$23,2505 Apr 2026196 days overdue
    INV-1032Issued 7 Jan 2026
    Orbit LabsAlex Reyes
    Overdue$22,7506 Feb 2026254 days overdue
    Filtered by 1 condition · 55 of 200 invoices
    Errorkeep the filters, offer Retry
    StatusOverdue
    Invoices — Not loaded
    Invoices
    Not loaded
    Too broadcap the result and ask for one more filter
    Too many results to show at once.
    Invoices — Showing the first 1,000 of 48,213 matching — add a filter to narrow
    Invoices
    INV-1000Issued 18 Oct 2026
    Lume GoodsOlivia Lane
    Draft$2,2501 Nov 2026Not sent
    INV-1001Issued 11 Sep 2026
    Juniper HotelMia Hart
    Paid$30,50011 Oct 2026Paid
    INV-1002Issued 5 Aug 2026
    Tide CoffeeAlex Reyes
    Paid$30,2504 Sep 2026Paid
    INV-1003Issued 29 Jun 2026
    Nova StudioNoah Fischer
    Paid$30,00013 Jul 2026Paid
    INV-1004Issued 23 May 2026
    Mosaic PressJon Reyes
    Paid$29,75022 Jun 2026Paid
    INV-1005Issued 16 Apr 2026
    Quill PressOlivia Lane
    Paid$29,50016 May 2026Paid
    INV-1006Issued 10 Mar 2026
    Atelier RiveMia Hart
    Paid$29,25024 Mar 2026Paid
    INV-1007Issued 1 Feb 2026
    Drift WorksAlex Reyes
    Overdue$29,0003 Mar 2026229 days overdue
    INV-1008Issued 26 Dec 2025
    Basalt HotelNoah Fischer
    Paid$28,75025 Jan 2026Paid
    INV-1009Issued 15 Sep 2026
    Kiln CoffeeJon Reyes
    Overdue$28,50029 Sep 202619 days overdue
    Showing the first 1,000 of 48,213 matching — add a filter to narrow
    04

    Behavior

    Order, apply mode, state, keyboard
    Order of operationswhat runs first
    1
    Search & column filtersEach narrows the set; they always combine with AND
    2
    ConditionsFrom the builder; joined with AND or OR between themselves
    3
    Saved viewA view is just a stored set of the two above
    4
    SortRuns on what’s left
    5
    PageLast — and resets to 1 whenever anything above changes
    Instant or Apply?try both in the playground
    InstantEach change refilters right away. Best for small, fast data and single filters — people see the effect of each click.
    Apply buttonChanges collect as “pending” until Apply. Best for slow queries or when people set several filters at once; show what’s pending and allow Discard.
    Where state livesURL vs profile
    URLFilters, conditions, join, sort and page — shareable and survive reload
    ProfileSaved views and the default view — follow the person across devices
    SessionSelection and open popovers — never persisted
    ServerFacet counts and totals for the full result, not just this page
    Keyboardfilters without a mouse
    EnterApply (in Apply mode) or add the condition
    EscClose the filter popover; focus goes back to its button
    SpaceToggle a value in the list
    TabHeader → filter row → rows → pagination
    Backspace on chip ×Remove that filter
    05

    In Avava

    Receivables, activity log
    Receivablesoverdue first · by client · send reminders
    OUTSTANDING$1,148,500
    OVERDUE$977,500
    CLIENTS LATE20
    AVG. DAYS LATE135
    StatusOverdue
    Receivables — Filtered by 1 condition · 55 of 200 invoices
    Receivables
    Filter ClientFilter Status, OverdueFilter Amount
    Filter Due date
    INV-1081Issued 25 Dec 2025
    Juniper HotelMia Hart
    Overdue$10,5008 Jan 2026283 days overdue
    INV-1162Issued 28 Dec 2025
    Tide CoffeeAlex Reyes
    Overdue$20,25011 Jan 2026280 days overdue
    INV-1024Issued 3 Jan 2026
    Mosaic PressJon Reyes
    Overdue$24,75017 Jan 2026274 days overdue
    INV-1032Issued 7 Jan 2026
    Orbit LabsAlex Reyes
    Overdue$22,7506 Feb 2026254 days overdue
    INV-1113Issued 10 Jan 2026
    NorthwindNoah Fischer
    Overdue$2,5009 Feb 2026251 days overdue
    INV-1194Issued 13 Jan 2026
    Fable StudioJon Reyes
    Overdue$12,25012 Feb 2026248 days overdue
    INV-1015Issued 5 Feb 2026
    SableOlivia Lane
    Overdue$27,00019 Feb 2026241 days overdue
    INV-1064Issued 23 Jan 2026
    Mosaic PressJon Reyes
    Overdue$14,75022 Feb 2026238 days overdue
    INV-1096Issued 8 Feb 2026
    Pine & CoMia Hart
    Overdue$6,75022 Feb 2026238 days overdue
    INV-1145Issued 26 Jan 2026
    Quill PressOlivia Lane
    Overdue$24,50025 Feb 2026235 days overdue
    Filtered by 1 condition · 55 of 200 invoices
    Activity logwho did what, when
    Activity log — 120 of 120 events
    Activity log
    Filter WhenFilter Person, AllFilter Event, AllFilter On
    18 Oct 2026 · 15:00
    Olivia LaneCreative director
    Created invoiceINV-1042
    18 Oct 2026 · 09:42
    Jon ReyesDeveloper
    Signed inWeb · Berlin
    18 Oct 2026 · 04:24
    Noah FischerProducer
    CommentedHotel identity
    17 Oct 2026 · 23:06
    Alex ReyesDesigner
    Uploaded fileLume rebrand
    17 Oct 2026 · 17:48
    Mia HartCopywriter
    Edited projectINV-1107
    17 Oct 2026 · 12:30
    Olivia LaneCreative director
    Sent reminderINV-1180
    17 Oct 2026 · 07:12
    Jon ReyesDeveloper
    Created invoiceBrand book v3.pdf
    17 Oct 2026 · 01:54
    Noah FischerProducer
    Signed inWeb · Berlin
    16 Oct 2026 · 20:36
    Alex ReyesDesigner
    CommentedINV-1042
    16 Oct 2026 · 15:18
    Mia HartCopywriter
    Uploaded fileSpring campaign
    120 of 120 events
    06

    Rules & a11y

    Filter placement, naming, screen readers
    Row, chips or panel?pick by the number of filters
    Row
    2–5 filters that map to columnsInvoices, transactions
    Chips
    Many possible fields, few used at onceCRM, activity, search-heavy lists
    Panel
    Ranges and long value listsReports, catalogs
    Naming conditionsread like a sentence
    amount_gt 5000Amount is more than $5,000
    status != PaidStatus is not Paid
    due < 2026-10-01Due date is before 1 Oct
    owner IN (OL)Owner is Olivia Lane
    Screen readersannounce the result, not the click
    ✓aria-live result line“Filtered by 2 conditions · 18 of 200 invoices”
    ✓Filter buttons: aria-haspopup="dialog"Name includes the current value: “Filter Status, Overdue”
    ✓Chips: “Remove filter Status”A real button, not an icon only
    ✓aria-busy while refilteringRows stay in place, dimmed — no layout jump
    ✓Selection banner is role="status"“All 10 on this page are selected”
    DO✓Show live counts next to every value✓Keep active filters visible as removable chips✓Tell people which filter to drop when nothing matches✓Offer “Select all N matching” after selecting a page✓Store filters in the URL and views in the profile
    DON’T✕Hide which filters are on✕Reset filters when people change the page✕Make Apply the only way for a single quick filter✕Select all 48,000 rows silently✕Use codes like amount_gt in the UI