@starci/eslint-canon-fe 9.16.0 → 9.16.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 +4 -0
- package/dist/control-height.js +1 -1
- package/docs/control-height.md +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 9.16.1 - 2026-11-07
|
|
4
|
+
|
|
5
|
+
- A patch: `starci-fe/control-height` no longer names `SegmentedControl` (removed from `@starci/grammar` 0.24.0); the controls it holds to the one 40px height are Button, IconButton, Switch, Input, SearchField, Select, Tabs, Textarea, NumberField and ComboBox. Its docs follow.
|
|
6
|
+
|
|
3
7
|
## 9.16.0 - 2026-11-06
|
|
4
8
|
|
|
5
9
|
- Added: `starci-fe/renderer-presentation-only` (R384, `FE_RENDERER_LOGIC`, RENDERER-PURITY-1) at error: in a client renderer of a root workspace package (`packages/<pkg>/src/client/**/*.tsx`) data computation (arithmetic between two data values, `+=` accumulation), aggregation (`reduce`, a chain of `filter`/`sort`/`flatMap`, `Math.max/min(...spread)`), date math (`Date.now()`/`getTime()` arithmetic, Date setters, date-fns add/sub/diff/compare/round), a relational comparison of two data values and a mutation outside a declared action (a write to a prop or an outer value, an in-place array mutator on data, `fetch`, storage, a beacon) are refused; they belong in a measured `.ts` module the renderer calls. Mapping, display filters, ternaries that pick a view, comparisons and arithmetic with a literal and `handle.run(...)` stay allowed. A front-end package (`fe/packages/*`) is not judged by it.
|
package/dist/control-height.js
CHANGED
|
@@ -3,7 +3,7 @@ import { attributeValue, stringOf } from "./lib/ast.js";
|
|
|
3
3
|
import { importOf } from "./lib/bindings.js";
|
|
4
4
|
import { defineRule } from "./lib/rule.js";
|
|
5
5
|
const GRAMMAR_ENTRY = /^@starci\/grammar(?:\/(?:common|core|offset-pop))?$/;
|
|
6
|
-
const CONTROLS = new Set(["Button", "IconButton", "Switch", "Input", "SearchField", "Select", "Tabs", "
|
|
6
|
+
const CONTROLS = new Set(["Button", "IconButton", "Switch", "Input", "SearchField", "Select", "Tabs", "Textarea", "NumberField", "ComboBox"]);
|
|
7
7
|
/** A marketing hero call to action on a landing page is the one place the 48px step is allowed. */
|
|
8
8
|
const LANDING_PATH = /[\\/](?:landing|hero|marketing)[\\/]|(?:Landing|Hero)[^\\/]*[\\/]/;
|
|
9
9
|
/** The default size and its two spellings: the vendor `md` and Grammar's `control` are the same 40px height. */
|
package/docs/control-height.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Control height (CONTROL-HEIGHT-1)
|
|
2
2
|
|
|
3
|
-
Owner ruling `control-height-40` (2026-10-26). One control height, 40px (HeroUI's own `h-10`), is the default of every standalone Grammar control: Button, IconButton, Input, SearchField, Select, Tabs,
|
|
3
|
+
Owner ruling `control-height-40` (2026-10-26). One control height, 40px (HeroUI's own `h-10`), is the default of every standalone Grammar control: Button, IconButton, Input, SearchField, Select, Tabs, Switch, the chrome Avatar, Textarea and the composer send button. Grammar draws it; an app never states it.
|
|
4
4
|
|
|
5
5
|
| Rule | Finding code | Required behavior |
|
|
6
6
|
| --- | --- | --- |
|
package/package.json
CHANGED