@jirawatpyk/aura-react 5.69.0 → 5.71.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -186,6 +186,18 @@ DataTable with sort and page in the URL (4.17): `onStateChange={({ sort, page })
186
186
  - **Time zone**: `timeZone` on AuraProvider, DatePicker, DateRangePicker and Calendar decides "today" (the marker, `min`/`max="today"`, the first month shown); or pass `today` as an ISO date. `todayIn('Asia/Bangkok')` is exported from the root and `/server`.
187
187
  - **Toasts** queue past three instead of dropping: six in a row all show, in order, three at a time.
188
188
 
189
+ ## 5.71 — Chamber-OS addendum 92 (#191)
190
+
191
+ - **PageHeader `actionsBar` — only some actions in the phone bar:** with `actionsBarBelow`, the nodes in `actionsBar` (Pay now) become the edge strip below the breakpoint, with `actionsStatus` as its polite status line; `actions` (the downloads, Email me a copy) stay in the header, where `actionsFullWidthBelow` still lays them out full width. From the breakpoint up, and on a screen 30rem tall or less, `actionsBar` sits after `actions` in the same header row. Every node is rendered once at every width — never cloned — so a dialog trigger such as a `PayNowButton` keeps its sheet, and a test id isn't doubled. The strip is the 5.48 one: above a BottomNav, the home-indicator inset inside it, its measured height on `<html>` (`--aura-page-actions-height`) padding the page's end and `scroll-padding-bottom`, `actionsBarLook="floating"` for the card. Without `actionsBarBelow`, `actionsBar` is just more actions after `actions`; without `actionsBar`, nothing changes. Also from `/server`. Replace a hand-built `max-sm:fixed` pay band. The phone-bar rules are one class more specific than before (they now also cover the bar box), so an app override of `.aura-page-header__actions` inside the bar needs one more class to win; reduced motion now stops the bar's slide, which it didn't on the bar rules.
192
+
193
+ ## 5.70 — Chamber-OS addenda 87–91 (#186–#190)
194
+
195
+ - **Button merges a passed `aria-busy`** (#186), as it has merged `aria-disabled` since 5.14: `aria-busy` is your value or `loading`, so a caller's busy state is no longer dropped. (`<Button aria-disabled>` with or without `loading` already kept `aria-disabled="true"` and swallowed clicks and Enter.) **A link Button (`href`) now keeps a passed `aria-disabled` too** — it dropped it — staying a focusable link, announced as unavailable, whose click does nothing; `disabled` still removes the link. **IconButton now honours `aria-disabled`** as Button does: it stays focusable and announced as unavailable, looks unavailable and ignores clicks and Enter — a cooldown on a Resend icon.
196
+ - **Pagination `mode="cursor"`** (#187) for keyset lists that know no page count: First / Previous / Next, each from an href (`firstHref`, `previousHref`, `nextHref`, real links through `linkComponent`, `rel="prev"`/`"next"`) or a callback (`onFirst`, `onPrevious`, `onNext`; with an href too, it runs instead on a plain click). An end with neither, or with `hasFirst` / `hasPrevious` / `hasNext` set to `false`, is disabled — a `role="link"` `aria-disabled` span in a list of links, a disabled button in a list of buttons — out of the tab order. `status` ("Showing 50 of 1,240") sits at the start; `showFirst={false}` leaves First out. Same `label`, same 44px targets on touch; no page numbers. New string `firstPage` (EN, TH, SV). `PaginationProps` is still the numbered one (wrappers that extend it keep compiling); the cursor props are `CursorPaginationProps`, either is `AnyPaginationProps`.
197
+ - **A sortable `Th`** (#188) for a plain Table: `sort` (`ascending` / `descending` / `none`) sets `aria-sort` on the `th`; with `onSort` the label becomes a button, with `sortHref` a link (through `linkComponent`), holding DataTable's sort icon (up, down, or both ways) with a focus ring of its own. `sort` alone only says the order; a long label wraps. Without the props the markup is unchanged.
198
+ - **`Spinner`** (#189), from the root and `/server`: Button's loading glyph on its own, `sm` 16px (Button's) · `md` 20px (default) · `lg` 24px, in the text colour. `aria-hidden` by default — the words beside it, or your live region, announce — and `role="status"` with a visually hidden text when you pass `label` (that names it in browse mode; a status inserted with its text is often not announced, so to announce a change keep a live region on the page and put the words there). Under reduced motion it follows Button's spinner: it still turns, three times slower, so it still reads as busy. **`StatusPill busy`** puts the spinner in the pill's icon slot ("Waiting for payment").
199
+ - **FileUpload `variant="button"`** (#190): an AURA Button (secondary, an upload icon, `buttonLabel`, `touchHeight`) opens the picker; the real input stays in the page (out of the tab order, still carrying `name`). `accept` and `maxSize` are checked with FileUpload's messages — a refused file shows the error line and is not passed — and `onSelect(files)` gets the accepted files; no list is kept. With a `name` the input posts only the accepted files and `required` is checked on submit — the error line says "Choose a file" and focus moves to the Button; the forwarded ref is the input, but its `focus()` moves to the Button (a form library focusing an invalid field). Label, hint, error and `required` / `optional` are Field's; the Button is named by the label and its own text and described by the hint or error and the accepted types. `progress` (0–100, or `null` for indeterminate) shows an AURA Progress under it. The dropzone is unchanged.
200
+
189
201
  ## 5.69 — Chamber-OS addendum 86 (#185)
190
202
 
191
203
  - **ActionBar's edge look:** a `position="viewport"` bar takes `look="edge"` (every width) or `edgeBelow="sm"` / `"md"` (the strip below 640px / 768px, the card at and above it — as PageHeader's `actionsBarBelow`) and draws PageHeader's edge strip: the screen's full width, on the bottom edge or directly on a BottomNav, a top border only (no radius, shadow or top margin), the home-indicator inset as padding inside it. `look="floating"` (default) is the inset card, unchanged; a `container` bar ignores both props.