@ethlete/components 1.0.0-next.59 → 1.0.0-next.61
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/CHANGELOG.md +126 -0
- package/fesm2022/ethlete-components.mjs +11614 -11707
- package/fesm2022/ethlete-components.mjs.map +1 -1
- package/package.json +12 -11
- package/types/ethlete-components.d.ts +13655 -13222
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,131 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.0.0-next.61
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Add `createAlertDialogOpener()`, whose `confirm()` and `alert()` open a ready-made `alertdialog` and return the answer as a cold Observable, with `ALERT_DIALOG_LABELS` for the action labels.
|
|
8
|
+
- Bracket: add `et-bracket-participants`, a participants legend whose toggles pin a journey by keyboard, tap or click through the same `focusedParticipantId` model as the bracket.
|
|
9
|
+
- Chart: add `et-bar-chart`, with grouped, stacked and horizontal bars, a legend, series colors from `provideColorPalette`, a table view for assistive tech and a headless `etBarChart` directive.
|
|
10
|
+
- Add `et-line-chart`: multi-series lines or (stacked) areas on a category or time axis, with a keyboard- and touch-driven crosshair tooltip, gaps for missing values, and the headless `etLineChart` and `etLineChartSlice` directives.
|
|
11
|
+
- Add `et-pie-chart`, a pie or donut chart with a legend of values and shares, per-slice tooltips and a table view.
|
|
12
|
+
- Charts: add `et-sankey-chart`, a left-to-right flow of nodes and value-wide ribbons with tooltips, link highlighting and a table view.
|
|
13
|
+
- Date & time inputs: `et-date-range-input` and `et-date-time-range-input` take `presets`, a list of ranges offered beside the picker calendar, with factories such as `lastDaysPreset(7)` and `thisMonthPreset()`.
|
|
14
|
+
- Date & time inputs: add `dateRangeOrder`, `timeRangeOrder`, `dateRangeBounds` and `dateTimeRangeBounds` signal-forms validators for the three range controls.
|
|
15
|
+
- Add `removeAll()` to `etDropzone`: it removes every entry like `removeEntry`, including the configured `delete` request per persisted value. `clear()` stays a local reset that never deletes on the server.
|
|
16
|
+
- Overlays and `[etTooltip]` can anchor to an SVG element, and `[etTooltip]` takes an `anchor` input to point at an element other than its trigger; core exports `isElement` and `isHTMLOrSVGElement`.
|
|
17
|
+
- Add `et-rich-text-viewer`, which displays a stored rich text editor value read-only, styled like the editor, without loading the editor.
|
|
18
|
+
- Scheduler: add `businessHours`, which shades the time grid outside each weekday's open hours.
|
|
19
|
+
- Scheduler: the month and week/day grids are one Tab stop with arrow-key, Home/End and PageUp/PageDown navigation, Enter into a cell's appointments, and Space or Enter on an empty cell to create one.
|
|
20
|
+
- Scheduler: add `nowIndicator` to turn the time grid's now line off; its clock no longer runs on the server.
|
|
21
|
+
- Select: the new `compareWith` input matches option values to the model with your own comparator, so object values that are copies of the options (a loaded form model, a refetched list) still select.
|
|
22
|
+
- Select: `ArrowDown` on the last loaded option now emits `loadMore` while `hasMoreItems` is set, so a keyboard user can page an async select.
|
|
23
|
+
- Select: `selectAll` renders a tri-state "Select all" row at the top of a multi select that toggles every visible, enabled option.
|
|
24
|
+
- Selection groups: <kbd>Home</kbd>/<kbd>End</kbd> jump to the first/last enabled option and typing moves focus to the option whose label starts with the typed text.
|
|
25
|
+
- Stream: the PiP window's title bar is now a tab stop - the arrow keys move the window, `Shift` + arrow keys resize it, and `Enter`/`Space` brings a collapsed one back into view.
|
|
26
|
+
- Table: `multiSort="shift"` adds a sort key on Shift + click or Shift + Enter, sorted headers show their priority, and a layered key keeps its place when its direction flips.
|
|
27
|
+
- Table: a `quickFilter` input keeps the rows containing every typed word in a visible column, with per-column `quickFilter` / `quickFilterValue`, and the query adapters carry `quickFilter` / `setQuickFilter` for server search.
|
|
28
|
+
- Table: `pinColumn(key, side)` pins or unpins a column at runtime with `etTableStickyColumns`, pinned columns render in their edge's block, the pins round-trip in `state()`, and the column menu offers Pin to start / Pin to end / Unpin.
|
|
29
|
+
- Time picker: `ArrowLeft` / `ArrowRight` now move focus between the hour, minute, second and period columns.
|
|
30
|
+
|
|
31
|
+
### Patch Changes
|
|
32
|
+
|
|
33
|
+
- Bracket: a layout setting change no longer tears down the journey highlight, so a hovered journey stays lit while the grid re-lays out.
|
|
34
|
+
- Button: a bound `pressed="false"` now announces `aria-pressed="false"`, so an unpressed toggle reads as a toggle; leave `pressed` unset on a plain action button.
|
|
35
|
+
- Calendar: a view change now clears the range hover preview, so drilling out and back while the pointer rests on a cell no longer brings back a stale band.
|
|
36
|
+
- Give every week row of a multi-month `et-calendar` seven gridcells, so screen readers announce the right column after the leading or trailing blank days.
|
|
37
|
+
- `@ethlete/bracket` is now a regular dependency instead of a peer dependency, so package managers install it with `@ethlete/components`. Before, an app that did not list `@ethlete/bracket` itself failed to build, because the main bundle imports it.
|
|
38
|
+
- Place `takeUntilDestroyed()` last in every pipe, so operators after it no longer run or stay subscribed after destroy.
|
|
39
|
+
- Date & time inputs: the bottom sheet's date/time tab switch in `et-date-time-input` and `et-date-time-range-input` is now named (`paneSwitch` label), so opening the picker no longer logs `ET2201`.
|
|
40
|
+
- `et-form-field` and the group controls (selection groups, rating, sliders, OTP input, dropzone, choice field) now swap their hint and error with a plain opacity fade; the `--et-*-support-offset` tokens were removed.
|
|
41
|
+
- Grid: the `.et-grid-item` styles now sit in `@layer components`, so a consumer rule or utility at equal specificity overrides them.
|
|
42
|
+
- OTP input: shrinking `length` at runtime no longer emits `complete` when the truncated value lands on the new length; only a write to the value completes it.
|
|
43
|
+
- Overlay: the pane now re-elevates its surface when a breakpoint switch changes whether the active strategy renders a backdrop.
|
|
44
|
+
- On touch, the compact pager and `size="sm"` pagination items take a 44px hit area through an invisible pseudo-element. Their visible size and spacing stay unchanged, and a tap on an item never reaches its neighbour.
|
|
45
|
+
- Phone input: a manually picked country that equals the current `defaultCountry` now survives a later `defaultCountry` change instead of being overwritten.
|
|
46
|
+
- `et-picture` with `aspectRatio` (and no `width`) now reserves its box on the `<picture>`, so the space exists before the image or its URL arrives; the image fills the host's inline size at that ratio.
|
|
47
|
+
- Date and time range inputs: tabbing out of an open picker no longer pulls focus back to the start field, matching the single inputs.
|
|
48
|
+
- Rich text editor: picking a trigger item or deleting a chip with Backspace is now its own undo step, so one undo no longer also reverts the text typed around it.
|
|
49
|
+
- `et-scheduler` names its month and time grids after the period its header shows, so a screen reader announces "July 2026" instead of an unnamed grid.
|
|
50
|
+
- A scheduler month day cell now announces its full, locale-formatted date instead of the bare day number, and today's cell carries `aria-current="date"`.
|
|
51
|
+
- A slider thumb whose value equals a labelled mark now announces the mark label as `aria-valuetext` without `snapToMarks` too. The keyboard still moves along the `step` grid.
|
|
52
|
+
- Stream: the PiP window no longer fails with `NG0201` when `provideStreamPip()` is registered in a component's `providers` rather than the app config.
|
|
53
|
+
- Ship the stream placement CSS: the body-level player container is hidden off-screen, and the PiP window opens in the bottom right corner with a `z-index`, set through `--et-pip-window-offset-right`, `--et-pip-window-offset-bottom` and `--et-pip-window-z-index`.
|
|
54
|
+
- `et-tab-group` no longer puts `aria-orientation` on its `role="none"` host; the orientation stays on the inner tablist that owns the tabs.
|
|
55
|
+
- Toggletip: an open panel now follows later changes to `etToggletipAriaLabel`, `etToggletipAriaLabelledBy` and string content instead of keeping the accessible name it opened with.
|
|
56
|
+
- Tree: when a write to `[(expandedValues)]` removes the focused row, DOM focus now moves to the nearest surviving ancestor instead of falling to the page body.
|
|
57
|
+
|
|
58
|
+
## 1.0.0-next.60
|
|
59
|
+
|
|
60
|
+
### Major Changes
|
|
61
|
+
|
|
62
|
+
- Bracket: a relayout now animates, with new `thirdPlaceTopOffset`, `finalRoundHeaderGap`, `alignRoundHeaders` and `focusInset` settings and a `--et-bracket-move-duration` token; `BracketLayout.drawEdges` now returns a `BracketDrawing` instead of an SVG string.
|
|
63
|
+
- Bracket pick card: per-side pick marks, a note line, a `readonly` results mode and slot wording from
|
|
64
|
+
`provideBracketLabels`. **Breaking:** the `unresolvableLabel` and `unavailableLabel` inputs are gone.
|
|
65
|
+
- **Breaking:** three features are opt-in. Import `MENU_SEARCH_IMPORTS` for `etMenuSearch`, register `provideSchedulerEditSurface()` for the default appointment editor, and `provideStreamPip()` for picture-in-picture on player slots.
|
|
66
|
+
|
|
67
|
+
### Minor Changes
|
|
68
|
+
|
|
69
|
+
- The Angular peer dependency moves from 22.0.7 to 22.1.6. Angular 22.0.x is affected by
|
|
70
|
+
GHSA-hh8m-fm6v-7cvg, a sanitization bypass through directive host bindings, fixed in 22.1.0.
|
|
71
|
+
- Bracket: add `migrateBracketPicks()` so a pick follows its participant when a pairing changes, plus `realParticipantOutranksPick` and `keepPickWhileFeederSideIsOpen` on `resolveBracketSlot()`.
|
|
72
|
+
- Bracket: add a framework-free prediction graph and resolver, prediction-aware slot states, an operable pick card, and focused round layout controls.
|
|
73
|
+
- Match, bracket and standings: the Ethlete adapters accept any model with the fields they read (`EthleteMatchInput`, `EthleteRoundWithMatchesInput`, `EthletePlacementInput`, …), and `generateBracketDataForEthlete` keeps your own round and match types in the bracket data.
|
|
74
|
+
- `OverlayConfig` takes `directives`, so a self-registering feature can be applied to an overlay
|
|
75
|
+
component the SDK itself defines and opens — a scheduler edit field is the case it exists for.
|
|
76
|
+
- `createOverlayOpener(definition, { single: 'replace' })` keeps one overlay open and replaces it on the next `open()`, through the unsaved-changes guard (`dismissSources.replace`); share one slot across openers with `createOverlaySingleSlot()`.
|
|
77
|
+
- Scheduler: mark the current time with a line across today's column, and open the edit surface beside an appointment instead of under it. The Timetrack day draws the same line.
|
|
78
|
+
- Standings: add `<et-standings-pick>`, a group table a viewer reorders by drag or arrow keys, plus `standingPickOutcome` and `standingPickStartOrder` in `@ethlete/bracket`.
|
|
79
|
+
|
|
80
|
+
### Patch Changes
|
|
81
|
+
|
|
82
|
+
- `mirroredSingleEliminationBracketLayout`'s JSDoc now describes the fold as it works: it stops at the
|
|
83
|
+
first round it cannot halve, and that round and every later one are drawn whole in the middle.
|
|
84
|
+
- Breadcrumb: collapsing and re-expanding now costs one layout measurement instead of two.
|
|
85
|
+
- Breadcrumb: re-measure the full trail when a crumb's label changed while collapsed, so widening the container no longer flashes an overflowing trail for a frame.
|
|
86
|
+
- An `et-button` keeps a `tabindex` its consumer set on the element. The host binding no longer removes it, so an opted-out control such as the scrollable's navigation buttons stays out of the tab order.
|
|
87
|
+
- Button, FAB and icon button now share one copy of the variant opacity ramp instead of carrying three identical ones; rendering is unchanged.
|
|
88
|
+
- Calendar: `ET2900` (an `[etCalendarGrid]` outside a calendar) now throws while the directive is constructed, on the template's stack, instead of once per grid after the first render.
|
|
89
|
+
- Carousel: `pauseReason()` now reports `no-duration` when an `autoplayTime` of `0` keeps autoplay from
|
|
90
|
+
running, instead of staying `null`.
|
|
91
|
+
- A warning under a card choice field now sits flush with the panel edge like its error and hint.
|
|
92
|
+
- `et-choice-field` now renders the shared `et-form-support` region instead of its own copy; at-rest rendering is unchanged, and the error/warning/hint swap animates like every other control (no direction-specific leave). Every shared support region also gets `unicode-bidi: isolate` back.
|
|
93
|
+
- Color input: `rgbColor({ allowAlpha: true })` no longer accepts a malformed alpha component such as `rgb(1 2 3 / .)`, which the picker could never read.
|
|
94
|
+
- Color input: a Tab off the picker panel's last control - or a Shift+Tab off its first - closes the picker, even when the browser has no next tab stop to move focus to.
|
|
95
|
+
- Color input: an empty string reads as unselected and `colorContrast` shares the picker's parser. A pasted OTP keeps its digits through separators, and choice-field support messages animate in severity order.
|
|
96
|
+
- Range inputs no longer spin forever registering a side in development, `generateBracketDataForEthlete` accepts a stage whose leading rounds are empty, and forms and the calendar report a misplaced headless piece with an actionable error.
|
|
97
|
+
- Focus follows the keyboard again: calendar arrow keys move DOM focus, the cascader sheet keeps it while drilling, a suffix-button icon click no longer steals it, and table `Enter` drills before it clicks the row.
|
|
98
|
+
- Menu search keeps the runtime metadata Angular needs for its directives, and the phone input imports only the six select declarations its template uses.
|
|
99
|
+
- Component CSS now loads with the feature that needs it. Calendar, dropzone, overlay, scheduler, select, cascader, table and the rich text editor ship none of their opt-in chrome unused, and related components share one stylesheet.
|
|
100
|
+
- Toggletip follows a dismissal as it starts and re-opens during the leave transition; Escape dismisses a hover-shown tooltip from anywhere without blocking a dialog behind it.
|
|
101
|
+
- Command palette: the search field drops `aria-controls` and reports `aria-expanded="false"` with no results, and `etCommandPaletteShortcut` closes a palette opened through `injectCommandPalette()` instead of stacking one.
|
|
102
|
+
- Table selection checkboxes carry their accessible names again, the grid's default remove button emits the item's `remove` output, and pagination clamps a page past the end to the last one.
|
|
103
|
+
- Date & time inputs: the structural dev guards `ET3000`, `ET3001`, `ET3002`, `ET3010`, `ET3030`, `ET3040`, `ET3050`, `ET3060` and `ET3070` now throw while the directive is constructed, on the template's stack, instead of once per element after the first render.
|
|
104
|
+
- Animations: `@ethlete/core` now ships the `--ease-*` tokens its own stylesheets transition with, through `mountEasingTokens()`, so an app that loads no `@ethlete/cdk` stylesheet no longer loses every overlay animation.
|
|
105
|
+
- Every field panel - select, cascader, the date and time pickers, the color input - now closes on a Tab past its last control or a Shift+Tab before its first, and leaves focus where it went.
|
|
106
|
+
- Match card: the composed accessible name now announces the kick-off the card draws, even once a result exists.
|
|
107
|
+
- `et-match-participant` draws the participant's first letter when an emblem is missing or fails to load, and
|
|
108
|
+
letterboxes a non-square logo instead of cropping it. A TBD slot stays blank.
|
|
109
|
+
- Nav tabs: a disabled `a[et-nav-tab-link]` no longer carries an `href`, so pressing Enter on it no longer navigates.
|
|
110
|
+
- Tabs: a disabled tab no longer holds the bar's tab stop - it moves to the first enabled tab, and a bar with none is skipped in the tab order.
|
|
111
|
+
- A nav tab link that a user reached with Tab follows on Enter again - the tab bar no longer swallows a key it does not act on - and Space no longer follows a disabled link.
|
|
112
|
+
- Correct the `NotificationConfig.duration` JSDoc: `0` never auto-dismisses, and only an omitted
|
|
113
|
+
`duration` falls back to the manager's `defaultDuration`.
|
|
114
|
+
- Overlay: the anchored arrow now paints in WebKit, so tooltips, toggletips, menus and anchored dialogs show one in Safari too.
|
|
115
|
+
- Overlays can be mounted `passive` and are then skipped as the top layer, so a dialog still closes on a backdrop press while a tooltip shows inside it.
|
|
116
|
+
- Overlay routing: the route header no longer goes blank when a navigation returns to a page mid-transition or a disabled outlet is enabled again.
|
|
117
|
+
- Overlay: a breakpoint strategy switch now adds or removes the arrow and the drag handle with the strategy, instead of keeping the ones the overlay mounted with.
|
|
118
|
+
- Phone input: the country trigger now exposes `countryLabel` as its accessible name, open and closed.
|
|
119
|
+
- `defineQueryForm`: `branch()` now debounces and runs the reset graph like the source form and exposes `liveValue`; the filter overlay applies `liveValue` on submit.
|
|
120
|
+
- Scheduler: the edit surface may now open to the right or the left of an appointment, so a tall band no longer forces it past the bottom of the viewport.
|
|
121
|
+
- A time-grid block now widens into the columns nothing overlapping it occupies, so one short overlap no longer thins the whole overlap group.
|
|
122
|
+
- A select panel no longer grows wider than its field while its height animates. A long option label made the panel stick out of the field until the animation ended, for example when async options arrived after the panel opened.
|
|
123
|
+
- Select: a Tab out of a panel-hosted search now leaves focus where it went instead of landing back on the field when the select is the last tab stop.
|
|
124
|
+
- Select: a Tab out of the open trigger or its inline search no longer pulls focus back to the field when the select is the page's last tab stop.
|
|
125
|
+
- Spinner: `--et-spinner-duration` now retimes every spinner animation, so `et-button`'s loading spinner runs at the 700ms it already sets.
|
|
126
|
+
- Tabs: content tabs and nav tabs now share one stylesheet for their trigger chrome, divider and underline instead of two near-identical copies. Rendered styles, class names and tokens are unchanged.
|
|
127
|
+
- Time picker: the structural dev guards `ET3020` and `ET3021` now throw while the directive is constructed, on the template's stack, instead of once per element after the first render.
|
|
128
|
+
|
|
3
129
|
## 1.0.0-next.59
|
|
4
130
|
|
|
5
131
|
### Patch Changes
|