@sylwellsoftware/fray 1.3.0 → 1.3.1

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,303 @@
1
+ # Fray changelog
2
+
3
+ All notable changes to `@sylwellsoftware/fray` are documented here. The format
4
+ follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and Semantic
5
+ Versioning.
6
+
7
+ ## Unreleased
8
+
9
+ ## 1.3.1 - 2026-09-08
10
+
11
+ ### Fixed
12
+
13
+ - Removed the fixed height from checkable controls so their layout follows the
14
+ active line-height and supports wrapped label content.
15
+
16
+ - Published npm packages now include this changelog alongside their release
17
+ history.
18
+
19
+ ## 1.3.0 - 2026-09-08
20
+
21
+ ### Added
22
+
23
+ - Added independent `--navigation-bar-*` and `--navigation-link-*` theme
24
+ variables. Navigation now defaults to text-link presentation rather than
25
+ inheriting generic button chrome.
26
+ - Added `NavigationBar`, a labelled native navigation list over `RouteLink`
27
+ destinations, and `RouteOutlet`, an application-emitter-backed owner for
28
+ non-tab literal routes with nested scope propagation.
29
+ - Added the shared `ContentMountPolicy` type. Outlets support eager,
30
+ lazy-retained, and active-only branch lifetime and preselect a pending direct
31
+ route before mounting content.
32
+ - Added `TabPanel.mountPolicy` with eager, lazy-retained, and active-only
33
+ content lifecycles while preserving stable semantic tabpanel shells and the
34
+ current eager default. Routed panels preselect a matching pending literal
35
+ route before first content render, avoiding transient default-view mounts
36
+ during direct nested restoration.
37
+
38
+ ### Changed
39
+
40
+ - Shiny now presents `NavigationBar` as a light, text-link navigation strip
41
+ beneath application chrome instead of a dark action-bar surface.
42
+
43
+ ## 1.2.0 - 2026-09-08
44
+
45
+ ### Added
46
+
47
+ - Added `OptionGroup`, a labelled `fieldset`/`legend` shell with a `headerEnd` slot for controls that need a standardized semantic grouping.
48
+ - Added `OptionsPanel`, extending `GroupPanel` with a flex-column content area and a configurable group gap, designed to contain `OptionGroup` children. `OptionsPanel` now styles nested `fieldset`/`legend` elements with flex-column stretch layout, bordered legends, and neutral palette text color.
49
+ - Added `FrayHostElementTagNameMap` and `FrayElementTagNameMap` types to register
50
+ custom `fray-*` host elements as JSX intrinsic tags, enabling TSX-only
51
+ authoring without explicit `h()` calls.
52
+ - Added `FrayApp` and `mountFrayApp()`. `FrayApp` provides a fixed block-level
53
+ `fray-app` root, optional viewport-axis sizing, and a `main`/`none` landmark
54
+ policy; the mount helper collects and injects its dependency CSS before the
55
+ first commit.
56
+ - Adjusted font-styling in general to be more sensible
57
+ - Improved base css of CategoryHidepanel for more compact layout
58
+
59
+ ### Changed
60
+
61
+ - Refined `GroupPanel` layout from a rigid grid to a flexible row so the
62
+ vertical header and content adapt naturally to varying label lengths and
63
+ content sizes. The header chrome is now self-contained, removing the need
64
+ for per-heading-level style overrides.
65
+ - Tightened `OptionsPanel` and `OptionGroup` spacing for a more compact,
66
+ form-like appearance that better suits dense control panels. The content
67
+ area now stretches to fill available height, and fieldset legends sit
68
+ closer to their controls with reduced gaps and padding.
69
+ - Gave `CheckableControl` a fixed row height so checkboxes and radios align
70
+ consistently across different label and font configurations.
71
+ - Added a shared `border-radius` to the `.colored` trait so gradient
72
+ surfaces round consistently with other bordered elements.
73
+
74
+ ### Fixed
75
+
76
+ - `FrayApp` now applies the theme canvas, text color, font family, font size,
77
+ and line height even when embedded. Existing viewport root traits now apply
78
+ the published text color as well as typography.
79
+ - RadioGroup basic rendering adjusted
80
+
81
+ ## 1.1.1 - 2026-09-07
82
+
83
+ ### Changed
84
+
85
+ - Replaced legacy `h()`-first documentation with a comprehensive TSX-first
86
+ guide covering every public component, reactive template form, data-source
87
+ ownership rule, service/routing boundary, and styling contract.
88
+ - Restored the framework overview's design rationale for native browser
89
+ semantics, meaningful HTML/CSS separation, and the complementary intent
90
+ behind the Glue and Fray names.
91
+
92
+ ## 1.1.0 - 2026-09-07
93
+
94
+ ### Added
95
+
96
+ - Added `GroupPanel`, a labelled control-group surface with a bordered body
97
+ and a full-height vertical `Header` using the normal section-header chrome.
98
+
99
+ ### Changed
100
+
101
+ - Added a reusable `colored` presentation trait that paints explicit
102
+ `--c1`/`--c2`/`--c3` triplets as a gradient and lets Shiny add shared depth
103
+ through `--colored-shadow`. `TreeView` now accepts `itemLabelClassName` and
104
+ `itemLabelStyle` callbacks so applications can decorate the block label next
105
+ to an expander without painting the entire semantic tree row.
106
+ - Made `GroupPanel` headers narrower and corrected their box model, with a
107
+ small content gap, right inset, and a minimal inset between the vertical
108
+ header and the group border.
109
+ - Replaced Shiny's hard-coded blue section-header gradient stop with the
110
+ existing primary palette anchor and derived its translucent highlight stops
111
+ from the light palette endpoint.
112
+ - Reorganized the public Meridian style lab around a persistent Scope/View
113
+ navigation rail and flat sibling-island layouts for Portfolio, Register,
114
+ Change, and Analysis. Portfolio attention, Register criteria, and Analysis
115
+ visibility now derive independently from shared application scope while the
116
+ selected change remains durable across local filtering.
117
+
118
+ ### Fixed
119
+
120
+ - Application roots using either `fray-fill-horizontal` or
121
+ `fray-fill-vertical` now consume the published `--font-family`,
122
+ `--font-size`, and `--line-height` tokens, preventing inherited controls and
123
+ native content from falling back to the browser's serif defaults.
124
+
125
+ ## 1.0.0 - 2026-09-06
126
+
127
+ ### Added
128
+
129
+ - Independent `fray-fill-horizontal` and `fray-fill-vertical` application-root
130
+ modifiers with axis-specific sizing/overflow behavior and a white
131
+ `--application-background` canvas. Applications combine both modifiers for
132
+ fullscreen behavior; runtime mounting itself remains sizing-neutral.
133
+ - An explicit common `island` component modifier and catalogued
134
+ `--island-*` surface variables, allowing themes to elevate only deliberate
135
+ application surfaces instead of inferring boundaries from component nesting.
136
+ - `data-fray` renderer ownership markers on every Fray-created element, fixed
137
+ one-hyphen `fray-<stem>` component hosts, a variable-only base stylesheet,
138
+ and the `setFrayAppearance()`/`getFrayAppearance()` document appearance API.
139
+ - Base-to-derived component CSS collection, including dependencies declared at
140
+ every class level, for meaningful component styling inheritance.
141
+ - Explicit component-specific `live()` prop allowlists, enforced consistently
142
+ by typed JSX/`h()` authoring and the runtime renderer.
143
+ - `Label` component with a live `text` prop for accessible form field labeling.
144
+ - `Header` component with a native `h1`–`h6` level and source-owned Section
145
+ Header treatment.
146
+
147
+ ### Changed
148
+
149
+ - Regenerated structural CSS to match the fixed component host names.
150
+ - Palette ramps can independently mix their primary, secondary, or neutral
151
+ light and dark sides toward palette-selected hue endpoints.
152
+ - Normal applications register their root component and inject only reachable
153
+ component CSS. Base owns semantic defaults and palette derivation; named
154
+ colors and themes are independent variable-only files with no base import.
155
+ - The public style lab has returned to a native zero-component baseline for
156
+ strict component-at-a-time CSS review.
157
+ - Interactive controls now expose consistent live availability and validation
158
+ contracts: `Textbox`/`Dropdown` accept live disabled, required, and error
159
+ state; checkboxes, radio controls, and toggles accept live disabled, required,
160
+ and error state; standalone radios also accept live checked state.
161
+ - `RadioGroup.options` remains an ordinary array supplied through explicit owner
162
+ renders, and raw `valueEmitter` behavior is unchanged.
163
+ - Enabled strict TypeScript compiler checking.
164
+ - Restarted the public component treatments for Button, the Checkbox family,
165
+ DescriptionList/DescriptionItem, Dialog, Dropdown, FilterPanel, Header,
166
+ ListView, Panel, Placeholder, ProgressBar, RadioGroup/RadioButton, Sidebar,
167
+ SplitView, the DataTable/TableHeader family, TabLine/TabPanel, Textbox,
168
+ Toggle, and Toolbar around fixed light-DOM parts, native/ARIA state
169
+ selectors, and reachable component-local CSS. ProgressBar preserves native
170
+ progress semantics while presenting its label through the legacy-compatible
171
+ clipped completed surface.
172
+ - Rebuilt the public style lab as the reactive Meridian Change Office workflow
173
+ so approved component CSS is exercised through application-owned scope,
174
+ filtering, selection, routing, and retained-screen state.
175
+ - Restarted TreeView around a native tree list, fixed expander/label parts,
176
+ semantic selection and expansion selectors, and declarative TreeItem updates;
177
+ the style lab now uses that hierarchy alongside live theme and colour pickers.
178
+
179
+ ### Removed
180
+
181
+ - Configurable Fray component host prefixes and overrides, plus the obsolete
182
+ top-level `themes/light.css` and `themes/dark.css` compatibility bundles.
183
+ - The named `baseStyles` recipe registry and its public types; shared component
184
+ CSS now follows meaningful class inheritance.
185
+
186
+ ### Fixed
187
+
188
+ - Island sizing reacts to the application root's opted-in viewport axes with
189
+ corresponding bounds and overflow, and component ancestry rejects islands
190
+ nested within other islands.
191
+ - Toggle and TabLine native buttons now honor configured UI text scaling;
192
+ Toggle's default selected surface also preserves AA text contrast, and the
193
+ Sidebar browser contract follows its fixed light-DOM content part.
194
+ - `SplitView` panes are keyboard-focusable so their owned overflow remains
195
+ operable without a pointing device.
196
+ - `Panel` now composes `Header`, uses trait classes for content orientation, and
197
+ owns only its surface, content layout, and live disabled presentation.
198
+ - `Sidebar` now has a fixed `fray-sidebar` CSS host while retaining its native
199
+ complementary `aside` region.
200
+ - `SplitView` now uses class-owned direction and pane hooks, a simple two-pane
201
+ flex layout, and its existing native/ARIA pane semantics.
202
+ - FilterPanel retains its component-relative Bank2 anchor without a deferred
203
+ viewport offset that caused the panel to flicker out of view.
204
+ - Multi-state Checkbox variants synchronize the native checked property after
205
+ every semantic transition.
206
+
207
+ ## 0.7.0 - 2026-09-04
208
+
209
+ ### Added
210
+
211
+ - Contextually discovered hierarchical browser routing with immutable literal
212
+ and dynamic route descriptors, ordered cancellable resolvers, canonical
213
+ fallback, and structured transition/issue state.
214
+ - History/path, hash, and memory navigation adapters plus native `RouteLink`,
215
+ `RouteValue`, `RouteQuery`, and route-aware `TabPanel` integration.
216
+
217
+ ### Changed
218
+
219
+ - `FrayRuntime` can carry a caller-owned router, and routed component children
220
+ inherit their mounted route lineage without changing Glue or unrouted
221
+ component behavior.
222
+
223
+ ## 0.6.0 - 2026-09-04
224
+
225
+ ### Added
226
+
227
+ - Prefix-free public theme traits for complete and split custom-component
228
+ treatments, including data-component and colored visualization surfaces.
229
+ - Primary, secondary, and neutral 50–950 palette ramps with documented
230
+ light/default/dark aliases and contrast endpoints.
231
+
232
+ ### Changed
233
+
234
+ - Themes now target native elements, traits, and native/ARIA state inside
235
+ `@scope`; component and part diagnostics are no longer presentation hooks.
236
+ - Color files expose palette language only. Themes map that palette to button,
237
+ input, panel, status, selection, and visualization roles.
238
+ - Theme/color root attributes and public custom properties are prefix-free;
239
+ see the semantic-markup and theming migration guidance.
240
+
241
+ ## 0.5.0 - 2026-09-03
242
+
243
+ ### Changed
244
+
245
+ - Two-state checkboxes with custom semantic values expose the second value as
246
+ the checked state, so native checkbox interactions remain correct for
247
+ bindings such as `visible`/`hidden`.
248
+
249
+ ## 0.4.0 - 2026-09-03
250
+
251
+ ### Added
252
+
253
+ - Typed service keys, immutable providers, lazy application scopes, and
254
+ declared class-component service access through `FrayRuntime`.
255
+
256
+ ### Changed
257
+
258
+ - Application services are registered at the composition root and inherited by
259
+ nested class components without service prop-drilling.
260
+
261
+ ## 0.3.0 - 2026-09-03
262
+
263
+ ### Added
264
+
265
+ - Stable list, tree, table, dialog, filter, selection, and placeholder exports.
266
+ - Versioned semantic filter-state composition and persistence helpers.
267
+ - Read-only keyed tree-node projections and immutable writable-root updates.
268
+ - Explicit local, caller-query, handler, and REST table data-source adapters.
269
+
270
+ ### Changed
271
+
272
+ - `FilterMode` values are `neutral`, `prefer`, `require`, and `deny`.
273
+ - Generic filter dimensions reject denied matches, require every required value,
274
+ accept any preferred value when preferences are active, and ignore neutral
275
+ values.
276
+ - Single-select lists and tables use item-or-null emitters; array emitters
277
+ require explicit multi-selection.
278
+ - `DataTable` uses one of `data`, `dataSource`, or `rest` instead of legacy
279
+ query/REST props.
280
+
281
+ ## 0.2.0 - 2026-09-03
282
+
283
+ ### Added
284
+
285
+ - Generated theme-neutral structural CSS, replaceable treatment bundles, color
286
+ palettes, and theme/color picker components.
287
+
288
+ ### Changed
289
+
290
+ - Components consume semantic styling variables rather than embedded theme
291
+ colors, and published package checks validate CSS subpaths.
292
+ - Fray's Glue peer range follows the compatible Glue `0.2.x` line.
293
+
294
+ ## 0.1.0-alpha.1 - 2026-09-02
295
+
296
+ ### Added
297
+
298
+ - Initial public packaging with strict TypeScript declarations, ESM JSX
299
+ runtimes, accessible controls, supported themes, and initial data APIs.
300
+
301
+ ### Changed
302
+
303
+ - Glue is Fray's external peer dependency.
@@ -1 +1 @@
1
- {"version":3,"file":"CheckableControl.d.ts","sourceRoot":"","sources":["../../../src/Components/lineinputs/CheckableControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAM,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAA;AAEnD,2EAA2E;AAC3E,8BAAsB,gBAAgB,CAClC,MAAM,SAAS,cAAc,GAAG,cAAc,CAChD,SAAQ,SAAS,CAAC,MAAM,CAAC;IACvB,OAAgB,GAAG,SAiFlB;CACJ"}
1
+ {"version":3,"file":"CheckableControl.d.ts","sourceRoot":"","sources":["../../../src/Components/lineinputs/CheckableControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAM,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAA;AAEnD,2EAA2E;AAC3E,8BAAsB,gBAAgB,CAClC,MAAM,SAAS,cAAc,GAAG,cAAc,CAChD,SAAQ,SAAS,CAAC,MAAM,CAAC;IACvB,OAAgB,GAAG,SAgFlB;CACJ"}
package/dist/index.js CHANGED
@@ -1865,7 +1865,6 @@ s(ut, "css", y`
1865
1865
  & {
1866
1866
  display: inline-flex;
1867
1867
  line-height: 1;
1868
- height: 1.4em;
1869
1868
  }
1870
1869
 
1871
1870
  & > label {