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

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,116 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.0-next.31
4
+
5
+ ### Minor Changes
6
+
7
+ - [#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,
8
+ `isOpen` two-way model, `headingLevel`, label/hint slots and an `etAccordionContent`
9
+ template for content created on first expand), `<et-accordion-group>`
10
+ (`autoCloseOthers`, arrow-key navigation between headers) and the headless
11
+ `etAccordion` / `etAccordionTrigger` / `etAccordionPanel` / `etAccordionGroup`
12
+ directives behind `ACCORDION_IMPORTS`.
13
+
14
+ - [#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
15
+ (`etBreadcrumbItemTemplate`, `loading` placeholders, `etBreadcrumbSeparator`) and measured overflow that
16
+ moves the middle crumbs into a toggletip. In a routed app each view contributes only the crumbs it owns
17
+ via `<ng-template etBreadcrumbSegment>`, and the single `<et-breadcrumb-outlet>` in the shell renders
18
+ every registered segment as one trail — no view restates the path above it. Labels are localizable via
19
+ `provideBreadcrumbLabels`.
20
+
21
+ - [#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,
22
+ and scroll-driven slide transitions (`transition="dim"` / `"wipe"`, with `transitionDriver`). Also
23
+ `slideAlign`, opt-in `autoplay` with per-slide `autoplayTimeFor`, and the headless `etCarousel` /
24
+ `etCarouselAutoplay` / `etCarouselItem` / control directives behind `CAROUSEL_IMPORTS`.
25
+
26
+ - [#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`.
27
+
28
+ 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.
29
+
30
+ - [#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).
31
+
32
+ - [`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
33
+ stop snapping while a pointer is held on the track — it used to scroll out from under a paused drag.
34
+
35
+ - [#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).
36
+
37
+ - [#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).
38
+
39
+ ### Patch Changes
40
+
41
+ - [#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
42
+ instead of flipping to the neutral interaction colour.
43
+
44
+ - [#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` /
45
+ `outline-color` transitions were declared unconditionally as well as under
46
+ `[data-can-animate]`, so on mount the outline colour animated from its resolved
47
+ value and the ring briefly appeared. Transitions now live only under
48
+ `[data-can-animate]` (added after the first render), so nothing animates on mount.
49
+
50
+ - [#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
51
+ and the bracket's journey-highlight listeners returned a cleanup function from `effect()`, which Angular
52
+ ignores. A removed tab panel stayed in the group's panel list (shifting later panels' indices), and the
53
+ bracket's hover listeners stacked up per re-run and outlived the component.
54
+
55
+ - [#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
56
+ `box`/`filled` skins need, so the rule sits directly under the value instead of at the
57
+ bottom of a taller frame. A `size="sm"` field previously left ~12px of dead space
58
+ between its value and the underline (most visible on a compact control like a table
59
+ footer's page-size select) — that is now the field's own
60
+ `--et-form-field-control-padding-block`, and the frame is content-height (27px instead of
61
+ 42px at `sm`).
62
+
63
+ The floor is derived from the control's line box, so it scales with
64
+ `--et-form-field-control-font-size` / `-line-height` / `-padding-block`, and a floating
65
+ label still grows the frame past it. `box` and `filled` appearances are unchanged.
66
+
67
+ Note this makes underline fields shorter on touch as well — reach for `box`/`filled` or
68
+ a larger `size` where a full-size tap target matters more than density.
69
+
70
+ - [#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
71
+ empty — or that repeats the previous page, which is what an API asked for a page past the end usually
72
+ serves — is dropped instead of appended, and `hasMore` turns off regardless of `toHasMore`. Affects
73
+ `selectOptionsFromQuery`, `selectOptionsFromV2Query` and both table rows adapters, so a load-more
74
+ control no longer survives one page too long or duplicates the tail of the list.
75
+
76
+ - [#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.
77
+
78
+ - [#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.
79
+ Its label's layout was declared in the plain menu item's stylesheet, which is only injected once that
80
+ component renders — so in a menu built entirely from selection items (a filter menu, the rich text
81
+ editor's heading and alignment menus) the label didn't grow and the indicator sat against the text
82
+ instead of the edge.
83
+
84
+ - [#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.
85
+
86
+ 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.
87
+
88
+ 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.
89
+
90
+ No public API changed — the `components` and `cdk` bumps are story/spec restructuring plus moving `signalVisibilityChangeClasses` below `RichFilterHostComponent` in the same module.
91
+
92
+ - [#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
93
+ entry at once; without a row of its own, the requests disappearing from the cache view had no visible
94
+ cause.
95
+
96
+ - [#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
97
+ short fade plus a small nudge away from the selection it points at — instead of the
98
+ anchored-dialog spring scale, which was far too much movement for a card sitting on
99
+ top of the text being edited. The phone-sized top sheet is unchanged.
100
+
101
+ - [#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
102
+ base `opacity: 0` was declared outside `@layer components`, so it beat the layered
103
+ rules that reveal them regardless of specificity.
104
+
105
+ - [#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`.
106
+
107
+ - [#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
108
+ documented escape hatch for compact triggers unreachable from the default component.
109
+ With `[mirrorPanelWidth]="false"` the panel sizes to its own content (capped at
110
+ `min(400px, 100vw - 24px)`) instead of the field's width — needed whenever the trigger
111
+ is narrower than an option row, e.g. a page-size select where the value plus the
112
+ selected-check indicator no longer fit and the label was squeezed to a few pixels.
113
+
3
114
  ## 1.0.0-next.30
4
115
 
5
116
  ### Minor Changes