Skip to content

Release v4.16.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 08:43
da6e6c3

Command dialogs can now ask for confirmation before they execute, Chat shows loading and failure states, and FilterPanel works from the keyboard and with screen readers.

Added

  • confirmBeforeExecute on CommandDialog, StepperCommandDialog, and CommandStepper asks a question after validation and onBeforeExecute, and before the command runs. Only true executes. Any other answer leaves the dialog or stepper open without running the command. If the command values change while the question is open, the command is not executed and you confirm again. Stepper fields are disabled until the confirmed submission settles. Without the prop, command execution is unchanged. The ConfirmBeforeExecute type is exported. (#317)
  • ChatSidebar accepts topicsStatus and messagesStatus (the new ChatStatus enum), and ChatSidebarForObservableQueries sets them from its queries. The topic list and conversation show loading, failure, and unauthorized text from new labels keys, and never show server exception text. A failure keeps what is already shown and adds an alert above it. Unauthorized replaces the content and disables the composer and the New topic button. (#327)
  • PivotViewer labels makes the toolbar text, the item count, and the filter panel's name and search placeholder localizable. The defaults are unchanged. loadingLabel still takes precedence over labels.loading. (#334)
  • PivotViewer labels.searchGroup names the search box of each option group in the filter panel. It receives the group's label and defaults to Search <group>, so each group search now has its own accessible name. (#334)
  • FilterPanel aria-label and searchAriaLabel, FilterDefinition searchAriaLabel and autoFocus, and CheckboxListFilter searchAriaLabel and autoFocusSearch. (#328, #244)
  • A DatePickerInput reference page, and Common and Dialogs landing pages that help you choose a control. (#260)

Changed

  • Tooltip content accepts any React node, and 0 now shows. undefined, null, booleans, and an empty string still disable the tooltip. Keep tooltip content non-interactive. Renderer adapters that implement common.tooltip receive nodes and must render them as they are; the Conformance profile now checks this. (#230)
  • FilterPanel is now a named, non-modal dialog. Opening it moves focus into the panel, and Escape closes it and returns focus to the element that opened it. It now renders as a div with role="dialog" instead of an <aside>, so it is no longer a complementary landmark: getByRole('complementary') no longer finds it, and CSS or tests that target the aside element must use .pv-filter-dropdown or getByRole('dialog', { name }) instead. This also applies to the filter panel inside PivotViewer. (#328)
  • Loading and failure rows in query tables now remount on each state change, so screen readers announce the change. (#327)
  • Conformance merges a part variant's own pt attributes with the profile's pass-through markers instead of replacing them.

Fixed

  • A read-only or disabled DatePickerInput can no longer change its value through the Today and Clear actions, and a read-only picker no longer opens its calendar with Alt+ArrowDown.
  • DataTableForQuery, DataTableForObservableQuery and DataPage show their loading state, not the empty state, while an Arc query result says it is not ready yet (isReady: false). Results that do not report readiness behave as before.

Closes #317, closes #327, closes #230, closes #244, closes #260, closes #334. Refs #328 (toolbar arrow-key navigation remains) and #349.