@rcarls/rc-list 0.0.0-next-20260921045401

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 ADDED
@@ -0,0 +1,120 @@
1
+ # @rcarls/rc-list
2
+
3
+ ## 0.0.0-next-20260921045401
4
+
5
+ ### Minor Changes
6
+
7
+ - 079e025: Standardize component styling contracts for the breaking 0.7 release.
8
+
9
+ BREAKING CHANGE: Rename the Markdown editor's `--rme-*` properties to
10
+ `--rc-markdown-editor-*`, `--rc-app-bar-background` to `--rc-app-bar-bg`,
11
+ `--rc-textarea-radius` to `--rc-textarea-border-radius`, the transfer-list
12
+ `--rc-transfer-list-panel-*` properties to `--rc-transfer-list-listbox-*`,
13
+ `--rc-chip-group-webkit-scrollbar-display` to
14
+ `--rc-chip-group-scrollbar-display`, and `--rc-text` to `--rc-field-text`.
15
+ Compatibility aliases are intentionally not provided.
16
+
17
+ BREAKING CHANGE: Replace `--rc-select-chip-padding-inline` and
18
+ `--rc-combobox-chip-padding-inline` with explicit `*-padding-inline-start` and
19
+ `*-padding-inline-end` tokens. Generated removable chips now reserve the full
20
+ remove target and its edge offset, so their indicator cannot overlap label text.
21
+
22
+ Add canonical app-bar elevation, transfer-list listbox radius, and textarea
23
+ line-action tokens. Add logical `rc-chip` inline-padding properties so themes
24
+ can implement Material's icon-aware spacing without overriding authored child
25
+ styles. Make `rc-field` consume the shared semantic token layer,
26
+ and place the `rc-chip` and `rc-search-bar` light-DOM structural styles in the
27
+ `rc-base` cascade layer so normal consumer rules override them.
28
+
29
+ Prevent decorative, `aria-hidden` trailing list content from intercepting a
30
+ whole-row action target, and keep segmented-list item geometry from leaking
31
+ into nested standard lists.
32
+
33
+ Remove unused Material navigation-rail toggle tokens and obsolete list-item
34
+ theme tokens. Register the segmented-button private theme seam and enforce
35
+ token ownership, documentation, removed-name, selector-budget, and cascade
36
+ layer contracts through the component architecture audit.
37
+
38
+ - 6e548d9: Several components handle `prefers-reduced-motion: reduce` in their own
39
+ shadow styles, outside a theme's reach, and refine it the same way the theme
40
+ layer already does: spatial motion (`translate`, `scale`, `transform`,
41
+ `inline-size`, `block-size`) goes fully to zero, while effects motion (color,
42
+ opacity) shortens instead of disappearing.
43
+
44
+ `rc-app-bar` zeros its host's hide/show `translate` but shortens the
45
+ expanded title's fade-in. `rc-disclosure` keeps its panel's expand/collapse
46
+ zeroed, but its summary/content backstop for a theme-added transition now
47
+ shortens instead of zeroing it outright. `rc-list-item`'s row and
48
+ state-layer transition only color and opacity, so the whole sweep shortens.
49
+ `rc-fab-menu`'s popup mixes `scale` with opacity/overlay/display under one
50
+ shared duration; reduced motion now zeros the scale and shortens the rest.
51
+ `rc-switch`'s thumb mixes background-color with inline-size/block-size/
52
+ transform the same way; the icons and track, which each transition only one
53
+ kind of property, needed only the zero-or-shorten call. `rc-fab`'s
54
+ scroll-reveal is opacity/visibility only with no time-based duration to
55
+ shorten in its scroll-linked path, so reduced motion narrows the scroll
56
+ window instead of collapsing it to zero; its JS-transition fallback path
57
+ shortens the same fade rather than removing it. `rc-progress`'s determinate
58
+ fill transition, previously unguarded under reduced motion, is now zeroed;
59
+ its indeterminate loop, a continuous sweep with no meaningful shortened
60
+ form, stays fully stopped rather than shortened.
61
+
62
+ ### Patch Changes
63
+
64
+ - Updated dependencies [50d5610]
65
+ - Updated dependencies [4341311]
66
+ - @rcarls/rc-common@0.0.0-next-20260921045401
67
+
68
+ ## 0.6.0
69
+
70
+ ### Minor Changes
71
+
72
+ - b639e04: Add coordinated list and list-item layout tokens so container queries can
73
+ stack unchanged content regions while preserving shared subgrid alignment.
74
+
75
+ Breaking for the pre-1.0 carousel API: remove the redundant
76
+ `variant="hero|multi-browse"` attribute and property. The variant only
77
+ changed slide geometry, which is already controlled by
78
+ `--rc-carousel-slide-size`. Remove `variant="hero"` without replacement;
79
+ replace `variant="multi-browse"` with
80
+ `--rc-carousel-slide-size: min(75%, 300px)`.
81
+
82
+ - a108336: Add shared-column `rc-list` and `rc-list-item` elements with standard and
83
+ segmented appearances, default content truncation, and native-backed single or
84
+ multiple selection coordination. Restore author-owned item state when native
85
+ selection coordination ends.
86
+ - 6683eb9: Add shared, lifecycle-safe click delegation and let interactive list items
87
+ forward plain surface clicks to same-root native action targets while
88
+ preserving nested and modified clicks.
89
+
90
+ ### Patch Changes
91
+
92
+ - a108336: Warn in development when `rc-card`/`rc-list-item` has `interactive` set but
93
+ no way to resolve a click target: no `action-target`, and for
94
+ `rc-list-item`, no native child checkbox/radio either. Surface clicks
95
+ silently go nowhere in that state; the warning now says so at the point
96
+ the row or card is set up wrong, instead of leaving it to be discovered
97
+ by a user tapping a dead row or card.
98
+ - 7382c71: Add a priority-aware action toolbar that moves original controls into an
99
+ overflow menu. Which actions are promoted is a purely declarative computation
100
+ from `max-shown` and each action's `data-priority`/authored `slot`, with no
101
+ runtime measurement of the toolbar's or its children's rendered size: a
102
+ consumer whose promoted count needs to react to available space owns that
103
+ decision and writes the resulting `max-shown` value down. Include controlled
104
+ and uncontrolled open state, keyboard navigation, light dismissal, and a
105
+ non-Popover fallback.
106
+
107
+ Fix `--rc-adaptive-menu-touch-target-overlap-inline-start`/`-end`: the host's
108
+ own `max-inline-size: 100%` self-referenced a shrink-to-fit ancestor's
109
+ already-margin-reduced auto size (an app bar's own trailing group, for
110
+ example), quietly clamping the host back down and canceling the overlap out
111
+ from under it. The cap now grows by the overlap amount so it only ever bounds
112
+ the host's real content.
113
+
114
+ - 57370e4: Align component metadata, aggregate framework typings, development-time native-child
115
+ validation, controlled menu state, package declarations, and public documentation before the
116
+ next release.
117
+ - Updated dependencies [6683eb9]
118
+ - Updated dependencies [ee7ba6c]
119
+ - Updated dependencies [30eb232]
120
+ - @rcarls/rc-common@0.6.0
package/README.md ADDED
@@ -0,0 +1,86 @@
1
+ # @rcarls/rc-list
2
+
3
+ Shared-column list rows with optional native-backed single or multiple
4
+ selection.
5
+
6
+ ```html
7
+ <rc-list selection="single" aria-label="Delivery speed">
8
+ <rc-list-item>
9
+ <input slot="leading" type="radio" name="speed" value="standard" checked />
10
+ <span>Standard</span>
11
+ <span slot="trailing">Free</span>
12
+ </rc-list-item>
13
+ <rc-list-item>
14
+ <input slot="leading" type="radio" name="speed" value="express" />
15
+ <span>Express</span>
16
+ <span slot="trailing">$12</span>
17
+ </rc-list-item>
18
+ </rc-list>
19
+ ```
20
+
21
+ `rc-list` owns the shared leading, content, and trailing columns. Each direct
22
+ `rc-list-item` participates through CSS subgrid, so optional content aligns
23
+ across rows and unused columns collapse for the whole list.
24
+
25
+ The default `standard` variant is suited to continuous lists. Use
26
+ `variant="segmented"` for discrete settings-style rows. Theme packages own
27
+ their appearance.
28
+
29
+ `selection` accepts `none` (the default), `single`, or `multiple`. Selecting
30
+ lists require one direct native radio or checkbox in each row. The native input
31
+ remains the source of truth for checked and disabled state; the list mirrors
32
+ that state to its item and makes a non-interactive row surface activate the
33
+ input. Links, buttons, inputs, and other interactive descendants retain their
34
+ own behavior. Radios in a single-selection list should share a `name`, just as
35
+ they would in an unenhanced native radio group.
36
+
37
+ ## Action targets
38
+
39
+ For a row whose primary action is not its selection input, set `interactive`
40
+ and point `action-target` at a same-root native anchor or button. Plain primary
41
+ clicks on the row surface activate that target; clicks on nested interactive
42
+ content and modifier-qualified or non-primary clicks keep their native
43
+ behavior.
44
+
45
+ ```html
46
+ <rc-list aria-label="Theme settings">
47
+ <rc-list-item interactive action-target="open-theme">
48
+ Theme
49
+ <button id="open-theme" type="button" slot="trailing">Choose</button>
50
+ </rc-list-item>
51
+ </rc-list>
52
+ ```
53
+
54
+ The target remains its own keyboard tab stop. `action-target` extends pointer
55
+ reach only and does not turn the row itself into a second button or link.
56
+
57
+ Content truncates with an ellipsis by default. Set
58
+ `--rc-list-item-content-white-space: normal` where multi-line content is
59
+ intended.
60
+
61
+ The shared column sizes and each item's region placement are CSS custom
62
+ properties. Consumers can coordinate them from a container query without
63
+ changing the row's source order, interaction, or semantics. For example,
64
+ collapse the shared trailing track and place trailing metadata below content:
65
+
66
+ ```css
67
+ .list-region {
68
+ container-type: inline-size;
69
+ }
70
+
71
+ @container (max-width: 24rem) {
72
+ .list-region rc-list {
73
+ --rc-list-trailing-size: 0;
74
+ --rc-list-trailing-gap: 0;
75
+ --rc-list-item-grid-template-rows: auto auto;
76
+ --rc-list-item-leading-grid-row: 1 / -1;
77
+ --rc-list-item-content-grid-row: 1;
78
+ --rc-list-item-trailing-grid-column: content-start / content-end;
79
+ --rc-list-item-trailing-grid-row: 2;
80
+ --rc-list-item-trailing-justify-self: start;
81
+ }
82
+ }
83
+ ```
84
+
85
+ Import `@rcarls/rc-list` to use the classes without registering them, or import
86
+ `@rcarls/rc-list/define` to register `<rc-list>` and `<rc-list-item>`.