Advanced components & charts
Wave 3–4: pickers, overlays, sortable data, security surfaces, and the accessible SVG chart set (every chart ships its table equivalent).
Combobox
Filterable long lists — bank pickers, beneficiaries. Type to filter (try "emirates" or "icici"); arrows + Enter select.
- Emirates NBD EBILAEAD
- First Abu Dhabi Bank NBADAEAA
- ADCB ADCBAEAA
- ICICI Bank (India) ICICINBB
- HDFC Bank (India) HDFCINBB
- No bank found — check the SWIFT code
Code
Date picker
Non-processing days blocked with the reason stated — the schedule-transfer rule from the spec. Sundays are disabled in this demo.
Code
Sortable table
Click the Amount or Date headers. Sort state is announced via aria-sort; numeric columns sort numerically.
| Date | Counterparty | Amount (AED) | Status |
|---|---|---|---|
| 30 Aug | Gulf Star Trading LLC | 250,000.00 | Awaiting approval |
| 29 Aug | DEWA | 843.50 | Completed |
| 28 Aug | Falcon Media FZ | 42,000.00 | Completed |
| 27 Aug | Etisalat | 399.00 | Completed |
Code
Drawer, accordion & PIN entry
Drawer for contextual detail beside data. Accordion elaborates — never hides obligations. PIN auto-advances; codes allow paste, PINs don't.
Why this fee?
When does the money arrive?
App PIN
Code
Rate lock, delta & card art
The countdown warns at 60s and fires an expiry event (the journey uses it for re-quoting). Deltas carry arrow + sign + timeframe. Card art shows co-badged schemes and the frozen state.
Code
Charts
Accessible SVG, built by BES.chartBar / chartLine / chartDonut. Zero-based axes, labeled series, and a "View as table" equivalent under every chart — data is never color-only.
Spending by category — August
Income vs months (AED)
Balance trend — 6 months (AED)
Code
BES.chartDonut(el, [{label:"Groceries", value:2340}, …], {center:"AED 8.9K", centerSub:"August"});
BES.chartBar(el, [{label:"Apr", value:18500}, …], {label:"Income by month"});
BES.chartLine(el, [{label:"Mar", value:21000}, …], {label:"Balance trend"});Session pause interruption
The z.critical security surface — no entrance animation, cannot be swiped away, never blames the user. Triggered here by button; in product, by screen-share/active-call detection.
We've paused your session
We detected screen sharing. Banking with your screen visible to others isn't safe. If someone asked you to install an app or share your screen, it may be a scam — hang up.
Code
Breadcrumb & pagination
Code