@ethlete/components 1.0.0-next.30 → 1.0.0-next.32

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 CHANGED
@@ -1,5 +1,217 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.0-next.32
4
+
5
+ ### Major Changes
6
+
7
+ - [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`e052061`](https://github.com/ethlete-io/ethdk/commit/e0520614647b784f19ad55a4d7f6df47acec154e) Thanks [@github-actions](https://github.com/apps/github-actions)! - Localization: one mechanism for every string the library renders. `createLabels` (core) backs a
8
+ `provide<Domain>Labels` / `inject<Domain>Labels` pair per domain — 22 of them, all locale-reactive and
9
+ signal-shaped. See the [localization guide](https://ethlete-sdk-docs-next.web.app/components/localization).
10
+
11
+ - New tokens make the rich text editor, stream, grid, loader, chip, calendar, time picker, dropzone,
12
+ select, cascader, phone input, slider, date/time and notification strings overridable.
13
+ - **Breaking:** `inject*Labels()` now returns a signal; the string fields left `StreamConsentConfig`,
14
+ `StreamPlayerErrorConfig`, `PipSlotPlaceholderConfig`, `GridConfig` and `NotificationManagerConfig`
15
+ (with their `transformer` hooks); per-instance label inputs default to `null` instead of English.
16
+ - Fixes the PiP close/back buttons, which set an attribute literally named `attr.aria-label`.
17
+
18
+ ### Minor Changes
19
+
20
+ - [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`57494e0`](https://github.com/ethlete-io/ethdk/commit/57494e0834708ef1d397829074e20e35bc5d8acd) Thanks [@github-actions](https://github.com/apps/github-actions)! - Boolean and numeric inputs now coerce attribute values via `booleanAttribute` / `numberAttribute`,
21
+ so static values need no binding — `<et-tab disabled>`, `<et-textarea rows="6">`. Inputs where
22
+ `null`/`undefined` means "unset" (the slider's `min`/`max`, the overlay's `hasBackdrop`, …) are
23
+ deliberately left untransformed.
24
+
25
+ - [`2a5a48d`](https://github.com/ethlete-io/ethdk/commit/2a5a48dba8899d4b17b4139cf829ccb5d2daab4e) Thanks [@TomTomB](https://github.com/TomTomB)! - Card presets: `et-checkbox-option` now takes `variant="card"` too. Cards drop the tinted fill and
26
+ follow the form-field frame for hover/press/focus, a selected card's border tracks the theme's
27
+ interaction shades, `et-choice-field` cards are clickable across the whole panel including its
28
+ border, and disabled / readonly cards no longer offer a pointer cursor. `et-form-field`'s hover
29
+ treatment now follows the frame and label instead of the whole field, so the hint/counter row no
30
+ longer triggers it.
31
+
32
+ - [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`bc8aca7`](https://github.com/ethlete-io/ethdk/commit/bc8aca76900a47a3faed4ad2be2ce2ab7b70b27d) Thanks [@github-actions](https://github.com/apps/github-actions)! - Filter overlay: new `provideFilterOverlay` / `injectFilterOverlay` — a filter panel that drafts the page's query
33
+ form, reports how many results the draft would return on its submit button, and applies on submit or discards on
34
+ dismiss. Replaces cdk's `FilterOverlayService`, rebuilt on signal forms and the current query client.
35
+
36
+ - [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`4fb18af`](https://github.com/ethlete-io/ethdk/commit/4fb18afb4159a1a301c66c98029e7af1d46a02ad) Thanks [@github-actions](https://github.com/apps/github-actions)! - Floating action: new `etFloatingAction` family — a trigger that pins itself to the viewport corner once its place
37
+ in the page scrolls away, and stands down once the region it acts on is gone. Replaces cdk's `rich-filter`, which
38
+ rendered no filter UI; the three states are published as one `data-state`.
39
+
40
+ - [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`c1db7e3`](https://github.com/ethlete-io/ethdk/commit/c1db7e3e8cf15d9dc192e51de699f0de8ee6fcbb) Thanks [@github-actions](https://github.com/apps/github-actions)! - Masonry: new `etMasonry` / `etMasonryItem` directives — column-balancing layout for variable-height cards.
41
+ Items are measured continuously, so late-loading content reflows, and they keep their column when one grows.
42
+ Gate infinite scroll on `isSettled()`.
43
+
44
+ - [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`3a6d9ad`](https://github.com/ethlete-io/ethdk/commit/3a6d9ad0130b6141add15c2660c976b61455e5a4) Thanks [@github-actions](https://github.com/apps/github-actions)! - Picture: new `et-picture` — responsive `<picture>` with art direction, format negotiation, `priority` hints,
45
+ `aspectRatio` for reserving space, and `etPicturePlaceholder` / `etPictureError` slots. `providePictureConfig`
46
+ prefixes relative srcsets per candidate.
47
+
48
+ - [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`38f6af1`](https://github.com/ethlete-io/ethdk/commit/38f6af115c7a5107b268c44597dc5b871503d9d9) Thanks [@github-actions](https://github.com/apps/github-actions)! - Query error: new `<et-query-error>` and `[etQueryError]` — status title, message or violation list, and a retry
49
+ button when the retry policy says it's worth offering. Themed with the app's `type: 'error'` theme, localized via
50
+ `injectLocale()`, with `etQueryErrorTitle` / `etQueryErrorActions` slots. `legacyQueryErrorSource` bridges a V2
51
+ query.
52
+
53
+ - [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`d93dce3`](https://github.com/ethlete-io/ethdk/commit/d93dce3520e882a4cd4c6217d8a4cceedf74167c) Thanks [@github-actions](https://github.com/apps/github-actions)! - Form field: add `<et-counter />` — an `x / N` character counter in the support region, at the inline-end of the hint/error and persistent alongside them. It takes its limit from the bound field's schema `maxLength()`, or an explicit `[max]`, and counts array values (so it counts tags in an `et-tag-input`) via `lengthOf`.
54
+
55
+ The field also shows a subtle busy spinner and `aria-busy` while an async validator is pending, plus `[busy]` on `et-form-field` to force it.
56
+
57
+ - [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`38bb816`](https://github.com/ethlete-io/ethdk/commit/38bb8165006c4ebfba6a34623468ded140002188) Thanks [@github-actions](https://github.com/apps/github-actions)! - Card presets and a tabs variant: `et-radio` and `et-choice-field` take `variant="card"` (full-width clickable
58
+ panel, label leading, selection on the border and label), and `et-segmented-button-group` takes `variant="tabs"` (underlined
59
+ selection instead of a filled pill). Closes the last cdk parity gaps.
60
+
61
+ `@ethlete/core` adds `injectRouterNavigationState<T>()` for reading the state a navigation was given.
62
+
63
+ - [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`4624559`](https://github.com/ethlete-io/ethdk/commit/4624559c81ed9b6efffc539b8f1dd0db0556420c) Thanks [@github-actions](https://github.com/apps/github-actions)! - RTL and reduced-motion consistency pass:
64
+
65
+ - Side sheets and the notification stack dock, animate and drag toward their logical inline edge under `dir="rtl"` — `dragToDismiss.direction` gains `'to-inline-start'` / `'to-inline-end'`.
66
+ - `createFlipAnimation` and the PiP animations now skip to their end state under `prefers-reduced-motion`; `ignoreReducedMotion` opts out, and `matchesReducedMotion()` is exported for helpers with no injection context.
67
+ - The full-screen overlay animation throws `ET1209` when it has no origin element, instead of a bare `Error`.
68
+
69
+ - [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`fde4349`](https://github.com/ethlete-io/ethdk/commit/fde4349c2557d6f35d43e7eab09536a6b30524b4) Thanks [@github-actions](https://github.com/apps/github-actions)! - Overhaul the sheet drag-to-dismiss gesture. It runs on pointer events now (one path
70
+ for touch, pen and mouse) and waits for 8px of travel along the dismiss axis before
71
+ following the pointer, so a swipe starting on scrolled overlay content scrolls it
72
+ instead of hijacking the sheet. Both the snap-back and the exit animate at the speed
73
+ the pointer had when it let go, clamped to 100–350ms and skipped under
74
+ `prefers-reduced-motion`. New `dragToDismiss.snapPoints` parks the sheet at fractions
75
+ of its own size, advancing one point per flick and dismissing past the last one.
76
+
77
+ ### Patch Changes
78
+
79
+ - [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`894c821`](https://github.com/ethlete-io/ethdk/commit/894c821c80df962f4c3cce986fb68f88ae26955d) Thanks [@github-actions](https://github.com/apps/github-actions)! - Breadcrumb: leaner chrome — a neutral `et-ellipsis` overflow button that stays neutral while open, menu-like
80
+ rows in its popover, and no flash of the full trail before it collapses on load. Adds
81
+ `--et-breadcrumb-radius` and the `[data-toggletip-hug]` hook for content-width toggletips.
82
+
83
+ Overlay: the anchored arrow now meets the pane's border line instead of leaving an unbordered wedge at its
84
+ base — menus, tooltips and toggletips included.
85
+
86
+ - [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`b06ed44`](https://github.com/ethlete-io/ethdk/commit/b06ed44db47a52d2a07a4d9a6b3bd3b04011decb) Thanks [@github-actions](https://github.com/apps/github-actions)! - Overlay: the anchored arrow no longer rides into a pane's rounded corner on aligned placements or when a pane
87
+ shifts near a viewport edge. `arrowPadding` now measures the arrow's actual base, so it means "how close the
88
+ arrow may get to the corners" — tooltip and toggletip default to `20` (was `8`), a bare anchored strategy to
89
+ `12` (was `4`).
90
+
91
+ - [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`bd369da`](https://github.com/ethlete-io/ethdk/commit/bd369da0b898096411d65c352220a26b48ec7a67) Thanks [@github-actions](https://github.com/apps/github-actions)! - Query devtools: arrays and objects in the value explorer now copy too — a container copies its
92
+ subtree as JSON, a leaf copies the bare value. The toggle and close buttons print the platform's
93
+ open/close shortcut, which now also fires on macOS. The inspect filter reads as a labelled banner
94
+ instead of a bare pill.
95
+
96
+ - [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`b0a0869`](https://github.com/ethlete-io/ethdk/commit/b0a08696a0bcad9f120f8c58599b33d82d0fc61d) Thanks [@github-actions](https://github.com/apps/github-actions)! - Touch quality fixes: the overlay body and scrollable containers keep overscroll to
97
+ themselves (`overscroll-behavior: contain`), so reaching an end no longer scrolls the
98
+ page behind them or triggers pull-to-refresh. Buttons, chips, menu items, select
99
+ options, calendar cells and carousel dots drop the grey tap-highlight flash that
100
+ duplicated their own `:active` state. Tooltips no longer open from touch input —
101
+ mobile browsers synthesize a hover around a tap, which popped a tooltip nobody asked
102
+ for — and any open tooltip now closes on a press elsewhere.
103
+
104
+ ## 1.0.0-next.31
105
+
106
+ ### Minor Changes
107
+
108
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`d1fd772`](https://github.com/ethlete-io/ethdk/commit/d1fd7724da894960f5fd9f2a7c1e4f82cdac8ab0) Thanks [@github-actions](https://github.com/apps/github-actions)! - Add the accordion: `<et-accordion>` (themed disclosure with an animated collapse,
109
+ `isOpen` two-way model, `headingLevel`, label/hint slots and an `etAccordionContent`
110
+ template for content created on first expand), `<et-accordion-group>`
111
+ (`autoCloseOthers`, arrow-key navigation between headers) and the headless
112
+ `etAccordion` / `etAccordionTrigger` / `etAccordionPanel` / `etAccordionGroup`
113
+ directives behind `ACCORDION_IMPORTS`.
114
+
115
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`13dfd58`](https://github.com/ethlete-io/ethdk/commit/13dfd58886672e1d8b9cfef81e98d29d74877d3c) Thanks [@github-actions](https://github.com/apps/github-actions)! - Add the breadcrumb: `<et-breadcrumb>` with template-authored crumbs
116
+ (`etBreadcrumbItemTemplate`, `loading` placeholders, `etBreadcrumbSeparator`) and measured overflow that
117
+ moves the middle crumbs into a toggletip. In a routed app each view contributes only the crumbs it owns
118
+ via `<ng-template etBreadcrumbSegment>`, and the single `<et-breadcrumb-outlet>` in the shell renders
119
+ every registered segment as one trail — no view restates the path above it. Labels are localizable via
120
+ `provideBreadcrumbLabels`.
121
+
122
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`b4eb950`](https://github.com/ethlete-io/ethdk/commit/b4eb9506b3c3beff52670115bf50b26ea45b0c22) Thanks [@github-actions](https://github.com/apps/github-actions)! - Add the carousel: `<et-carousel>` with slides from data plus an `etCarouselSlide` template, seamless looping,
123
+ and scroll-driven slide transitions (`transition="dim"` / `"wipe"`, with `transitionDriver`). Also
124
+ `slideAlign`, opt-in `autoplay` with per-slide `autoplayTimeFor`, and the headless `etCarousel` /
125
+ `etCarouselAutoplay` / `etCarouselItem` / control directives behind `CAROUSEL_IMPORTS`.
126
+
127
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`11ed986`](https://github.com/ethlete-io/ethdk/commit/11ed986c9391b6e4927312d166e8603bf1cefef8) Thanks [@github-actions](https://github.com/apps/github-actions)! - Bracket: new `<et-bracket>` tournament renderer — single/double-elimination and swiss layouts, SVG connectors, journey highlighting, and the `generateBracketDataForEthlete` data-source integration. Round-header, match, and continue cards render via barebones default components for now; supply custom cards through the `roundHeaderComponent` / `matchComponent` / `finalMatchComponent` / `continueComponent` inputs or `provideBracketConfig`.
128
+
129
+ This is the `@ethlete/cdk` `NewBracket` renderer moved here and renamed (`et-new-bracket` → `et-bracket`, `NewBracket*` → `Bracket*`), with colors now driven by the `--et-bracket-line-color` / `--et-bracket-swiss-group-border-color` tokens (default `--et-surface-border-solid`) and errors thrown as `RuntimeError` (ET34xx). The fifa.gg integration was not ported. See the guide's "Migrating from @ethlete/cdk" section.
130
+
131
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`875d22b`](https://github.com/ethlete-io/ethdk/commit/875d22bbde15669723cccf73c86983ad761c69b2) Thanks [@github-actions](https://github.com/apps/github-actions)! - Add a **Pagination** component (`et-pagination`, `PAGINATION_IMPORTS`) — responsive, localizable, with optional crawlable page links and SEO head tags. See the [pagination guide](https://ethlete-sdk-docs-next.web.app/components/pagination).
132
+
133
+ - [`4b661b3`](https://github.com/ethlete-io/ethdk/commit/4b661b366682c18cf5371df03d3100d843146e5d) Thanks [@TomTomB](https://github.com/TomTomB)! - Scrollable: add `snapOrigin` for where a snapped child comes to rest (`'center'` suits a peeking layout), and
134
+ stop snapping while a pointer is held on the track — it used to scroll out from under a paused drag.
135
+
136
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`36c7119`](https://github.com/ethlete-io/ethdk/commit/36c71192663e3b491de0e7210887852012308c4e) Thanks [@github-actions](https://github.com/apps/github-actions)! - Add a **Skeleton** component (`et-skeleton`, `SKELETON_IMPORTS`) for loading placeholders — see the [skeleton guide](https://ethlete-sdk-docs-next.web.app/components/skeleton).
137
+
138
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`3c09f1d`](https://github.com/ethlete-io/ethdk/commit/3c09f1dd0c87ca366fe8f6c45fd138f4e8645402) Thanks [@github-actions](https://github.com/apps/github-actions)! - Add a type-safe **Table** component (`et-table`, `TABLE_IMPORTS`) with a lean base and opt-in features for filtering, column menus, resizing, reordering, selection, virtual scrolling and state persistence — see the [table guide](https://ethlete-sdk-docs-next.web.app/components/table).
139
+
140
+ ### Patch Changes
141
+
142
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`e813ca0`](https://github.com/ethlete-io/ethdk/commit/e813ca0f3b338533e5bccab2332344f7f1c8475c) Thanks [@github-actions](https://github.com/apps/github-actions)! - Checkbox: a checked or indeterminate box keeps its theme-coloured border on hover
143
+ instead of flipping to the neutral interaction colour.
144
+
145
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`22041b3`](https://github.com/ethlete-io/ethdk/commit/22041b348a3fec8535dd40eaba6fcc2559b83da9) Thanks [@github-actions](https://github.com/apps/github-actions)! - Checkbox: don't flash the focus ring on first render. The host's `opacity` /
146
+ `outline-color` transitions were declared unconditionally as well as under
147
+ `[data-can-animate]`, so on mount the outline colour animated from its resolved
148
+ value and the ring briefly appeared. Transitions now live only under
149
+ `[data-can-animate]` (added after the first render), so nothing animates on mount.
150
+
151
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`25a6d1a`](https://github.com/ethlete-io/ethdk/commit/25a6d1a93c00f66683e73d6706872526896eab18) Thanks [@github-actions](https://github.com/apps/github-actions)! - Run effect teardown that never ran: tab panels, tab-bar triggers, notification stack items, PiP cells
152
+ and the bracket's journey-highlight listeners returned a cleanup function from `effect()`, which Angular
153
+ ignores. A removed tab panel stayed in the group's panel list (shifting later panels' indices), and the
154
+ bracket's hover listeners stacked up per re-run and outlived the component.
155
+
156
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`88cf3af`](https://github.com/ethlete-io/ethdk/commit/88cf3af9e61f9cc5ea7e6f547430246327c88f96) Thanks [@github-actions](https://github.com/apps/github-actions)! - Tighten `appearance="underline"` form fields: they no longer reserve the box height the
157
+ `box`/`filled` skins need, so the rule sits directly under the value instead of at the
158
+ bottom of a taller frame. A `size="sm"` field previously left ~12px of dead space
159
+ between its value and the underline (most visible on a compact control like a table
160
+ footer's page-size select) — that is now the field's own
161
+ `--et-form-field-control-padding-block`, and the frame is content-height (27px instead of
162
+ 42px at `sm`).
163
+
164
+ The floor is derived from the control's line box, so it scales with
165
+ `--et-form-field-control-font-size` / `-line-height` / `-padding-block`, and a floating
166
+ label still grows the frame past it. `box` and `filled` appearances are unchanged.
167
+
168
+ Note this makes underline fields shorter on touch as well — reach for `box`/`filled` or
169
+ a larger `size` where a full-size tap target matters more than density.
170
+
171
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`dab7346`](https://github.com/ethlete-io/ethdk/commit/dab73460c22b47cf88106d3435cb95f78f756273) Thanks [@github-actions](https://github.com/apps/github-actions)! - Load more now dead-ends properly when the response can't state the end exactly: a page that comes back
172
+ empty — or that repeats the previous page, which is what an API asked for a page past the end usually
173
+ serves — is dropped instead of appended, and `hasMore` turns off regardless of `toHasMore`. Affects
174
+ `selectOptionsFromQuery`, `selectOptionsFromV2Query` and both table rows adapters, so a load-more
175
+ control no longer survives one page too long or duplicates the tail of the list.
176
+
177
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`3ad95ef`](https://github.com/ethlete-io/ethdk/commit/3ad95efb56034c14f19e7c94d7137efb739f7b14) Thanks [@github-actions](https://github.com/apps/github-actions)! - Menu: hovering an item no longer takes focus from an `etMenuSearch` field, so typing survives the pointer crossing the list.
178
+
179
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`5616552`](https://github.com/ethlete-io/ethdk/commit/56165523fa96b6aef6feffd4302d73f18f094155) Thanks [@github-actions](https://github.com/apps/github-actions)! - Menu: a checkbox/radio item's check, dot or custom icon is pinned to the item's trailing edge again.
180
+ Its label's layout was declared in the plain menu item's stylesheet, which is only injected once that
181
+ component renders — so in a menu built entirely from selection items (a filter menu, the rich text
182
+ editor's heading and alignment menus) the label didn't grow and the indicator sat against the text
183
+ instead of the edge.
184
+
185
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`3151b7a`](https://github.com/ethlete-io/ethdk/commit/3151b7a253d14e38e22e20d67bf0191f141c144e) Thanks [@github-actions](https://github.com/apps/github-actions)! - Add `ethlete/no-template-literal-before-inline-template`, and restructure the files it flagged.
186
+
187
+ The Angular VS Code extension decides **client-side** whether the cursor sits inside an inline `template:` before it forwards completion, hover, go-to-definition or signature-help to the language server. That check (`isNotTypescriptOrSupportedDecoratorField`) walks the file with a bare `ts.createScanner()` loop, which cannot re-scan `}` as `TemplateMiddle`/`TemplateTail` — that needs the parser's `reScanTemplateToken()`. So the first template literal containing a `${…}` substitution desynchronises both the token stream and the brace counter, the scanner never recognises `template` `:` again, and every template request below it is dropped. The language server answers those requests correctly; the editor just never asks, so the template silently has no IntelliSense at all.
188
+
189
+ The new rule reproduces that scanner verbatim, so it reports exactly the templates the extension would abandon — no heuristic. Twenty inline templates across `components`, `cdk` and the playground were affected, all of them behind a fixture or helper that happened to use an interpolated template literal. Story fixtures moved into sibling `*-storybook.data.ts` files; spec fixtures and in-class helpers that must stay above their component (because a later `@Component` references the class in `imports`) were rewritten without the interpolation.
190
+
191
+ No public API changed — the `components` and `cdk` bumps are story/spec restructuring plus moving `signalVisibilityChangeClasses` below `RichFilterHostComponent` in the same module.
192
+
193
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`d666dcd`](https://github.com/ethlete-io/ethdk/commit/d666dcd73055e0044a2e635eef15c24849cf1751) Thanks [@github-actions](https://github.com/apps/github-actions)! - Log the logout-wide secure unbind in the query devtools event log. A logout drops every secure cache
194
+ entry at once; without a row of its own, the requests disappearing from the cache view had no visible
195
+ cause.
196
+
197
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`d85c58a`](https://github.com/ethlete-io/ethdk/commit/d85c58a84fc857847a03e4b736e27cd70fb5ee14) Thanks [@github-actions](https://github.com/apps/github-actions)! - Rich text editor: the anchored link popover enters and leaves like a toggletip — a
198
+ short fade plus a small nudge away from the selection it points at — instead of the
199
+ anchored-dialog spring scale, which was far too much movement for a card sitting on
200
+ top of the text being edited. The phone-sized top sheet is unchanged.
201
+
202
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`76a6552`](https://github.com/ethlete-io/ethdk/commit/76a65521ed6efbb9a2e3e1b47099219d1ee0f750) Thanks [@github-actions](https://github.com/apps/github-actions)! - Scrollable: the edge masks and the previous/next buttons now actually appear. Their
203
+ base `opacity: 0` was declared outside `@layer components`, so it beat the layered
204
+ rules that reveal them regardless of specificity.
205
+
206
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`f17850e`](https://github.com/ethlete-io/ethdk/commit/f17850eb5300d0f67a630360d3faccad4cedd5f3) Thanks [@github-actions](https://github.com/apps/github-actions)! - `et-select` accepts `aria-label` / `aria-labelledby` as its accessible name, so a select labelled from outside its field no longer trips `ET2201`.
207
+
208
+ - [#3037](https://github.com/ethlete-io/ethdk/pull/3037) [`88cf3af`](https://github.com/ethlete-io/ethdk/commit/88cf3af9e61f9cc5ea7e6f547430246327c88f96) Thanks [@github-actions](https://github.com/apps/github-actions)! - Fix `et-select` not forwarding the headless `mirrorPanelWidth` input, which made the
209
+ documented escape hatch for compact triggers unreachable from the default component.
210
+ With `[mirrorPanelWidth]="false"` the panel sizes to its own content (capped at
211
+ `min(400px, 100vw - 24px)`) instead of the field's width — needed whenever the trigger
212
+ is narrower than an option row, e.g. a page-size select where the value plus the
213
+ selected-check indicator no longer fit and the label was squeezed to a few pixels.
214
+
3
215
  ## 1.0.0-next.30
4
216
 
5
217
  ### Minor Changes