@estiva-app/ui 0.17.0 → 0.19.0
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/README.md +13 -5
- package/dist/Checkbox.d.ts +16 -1
- package/dist/Checkbox.d.ts.map +1 -1
- package/dist/CommandPalette.d.ts.map +1 -1
- package/dist/Form.d.ts +16 -1
- package/dist/Form.d.ts.map +1 -1
- package/dist/ScrollArea.d.ts +6 -0
- package/dist/ScrollArea.d.ts.map +1 -1
- package/dist/eslint/index.d.ts +2 -0
- package/dist/eslint/index.d.ts.map +1 -1
- package/dist/eslint/index.js +459 -2
- package/dist/eslint/index.js.map +4 -4
- package/dist/eslint/no-rebuilt-behaviour.d.ts +88 -0
- package/dist/eslint/no-rebuilt-behaviour.d.ts.map +1 -0
- package/dist/index.js +208 -188
- package/dist/index.js.map +4 -4
- package/package.json +1 -1
- package/src/Checkbox.mdx +20 -1
- package/src/Checkbox.stories.tsx +44 -0
- package/src/Checkbox.test.tsx +63 -0
- package/src/Checkbox.tsx +30 -1
- package/src/CommandPalette.mdx +6 -2
- package/src/CommandPalette.stories.tsx +6 -3
- package/src/CommandPalette.test.tsx +15 -0
- package/src/CommandPalette.tsx +34 -46
- package/src/Form.mdx +12 -2
- package/src/Form.test.tsx +103 -0
- package/src/Form.tsx +64 -4
- package/src/ScrollArea.stories.tsx +18 -0
- package/src/ScrollArea.tsx +7 -1
- package/src/eslint/index.test.ts +31 -7
- package/src/eslint/index.ts +10 -3
- package/src/eslint/no-rebuilt-behaviour.test.ts +276 -0
- package/src/eslint/no-rebuilt-behaviour.ts +593 -0
- package/stories/Choosing.mdx +1 -1
package/README.md
CHANGED
|
@@ -67,20 +67,28 @@ export default {
|
|
|
67
67
|
|
|
68
68
|
The UI Guardrails' rules ship with the package, as an ESLint plugin, so an app
|
|
69
69
|
gets a new rule with a version bump. Each rule names the component to use
|
|
70
|
-
instead.
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
instead. There are two:
|
|
71
|
+
|
|
72
|
+
- `estiva/no-raw-element` refuses a raw interactive element (`<a>`, `<input>`,
|
|
73
|
+
`<form>`, `<dialog>`…) and names the part to use, or says the package has none yet.
|
|
74
|
+
- `estiva/no-rebuilt-behaviour` refuses behaviour a part already owns, written by
|
|
75
|
+
hand: a Base UI import, `createPortal`, a click or key listener on the whole
|
|
76
|
+
page, arrow keys compared by hand, a hand-written `role` (`option`, `menu`,
|
|
77
|
+
`dialog`, `alert`…), `tabIndex` 0 or more on a box, and a scrolling box
|
|
78
|
+
(`overflow-auto`, behind any variant). `OWNED_BEHAVIOURS` lists each behaviour,
|
|
79
|
+
the Base UI parts that do it, and the components that own it. It cannot find a
|
|
80
|
+
box that should scroll and does not: that has no class to read.
|
|
73
81
|
|
|
74
82
|
```js
|
|
75
83
|
// eslint.config.js — alongside your own rules
|
|
76
84
|
import estiva from '@estiva-app/ui/eslint'
|
|
77
85
|
export default [
|
|
78
86
|
// …your config, with a parser that reads TSX
|
|
79
|
-
{ files: ['src/**/*.tsx'], ignores: ['**/*.test.tsx'], ...estiva.configs.recommended },
|
|
87
|
+
{ files: ['src/**/*.{ts,tsx}'], ignores: ['**/*.test.{ts,tsx}'], ...estiva.configs.recommended },
|
|
80
88
|
]
|
|
81
89
|
```
|
|
82
90
|
|
|
83
|
-
A place that keeps
|
|
91
|
+
A place that keeps one on purpose says why, on the line above:
|
|
84
92
|
|
|
85
93
|
```tsx
|
|
86
94
|
// @estiva-escape: the reason, at least ten characters
|
package/dist/Checkbox.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
1
2
|
/**
|
|
2
3
|
* A 16px square that fills with the accent when checked — Peek's Checkbox
|
|
3
4
|
* (2026-09-01), verbatim; on Base UI Checkbox since stage 1 of the migration
|
|
@@ -27,6 +28,12 @@
|
|
|
27
28
|
* Read state panel's, where it was written by hand (UIG-7, 16 September). The
|
|
28
29
|
* words keep their colour when the box is disabled (Katerina: "no need").
|
|
29
30
|
*
|
|
31
|
+
* With `row`, the whole row is the target: an optional `leading` picture, the
|
|
32
|
+
* words, the box at the end, and the row fills on hover and while checked — a
|
|
33
|
+
* list you tick several from. The class list is Peek's "Add to Open work" rows,
|
|
34
|
+
* which drew it by hand as a `role="option"` in a list that was not one (UIG-8,
|
|
35
|
+
* Katerina's pick B, 16 September: the same pixels, on the package part).
|
|
36
|
+
*
|
|
30
37
|
* Inside a busy `Form` it is disabled, and looks it (`formBusy.ts`).
|
|
31
38
|
*/
|
|
32
39
|
export interface CheckboxProps {
|
|
@@ -38,10 +45,18 @@ export interface CheckboxProps {
|
|
|
38
45
|
* they name it, so no `aria-label` is needed. `className` stays on the box.
|
|
39
46
|
*/
|
|
40
47
|
label?: string;
|
|
48
|
+
/**
|
|
49
|
+
* The whole row is the target: `leading`, then the words, then the box at
|
|
50
|
+
* the end; the row fills on hover and while checked. For a list you tick
|
|
51
|
+
* several from. Needs `label` and `onChange`; without `onChange` it is ignored.
|
|
52
|
+
*/
|
|
53
|
+
row?: boolean;
|
|
54
|
+
/** In a `row`, a picture before the words: an icon, a status. */
|
|
55
|
+
leading?: ReactNode;
|
|
41
56
|
'aria-label'?: string;
|
|
42
57
|
/** Set by a `Field` with `required`; a caller inside one owes nothing. */
|
|
43
58
|
'aria-required'?: boolean | 'true' | 'false';
|
|
44
59
|
className?: string;
|
|
45
60
|
}
|
|
46
|
-
export declare function Checkbox({ checked, onChange, disabled: ownDisabled, label, className, ...aria }: CheckboxProps): import("react").JSX.Element;
|
|
61
|
+
export declare function Checkbox({ checked, onChange, disabled: ownDisabled, label, row, leading, className, ...aria }: CheckboxProps): import("react").JSX.Element;
|
|
47
62
|
//# sourceMappingURL=Checkbox.d.ts.map
|
package/dist/Checkbox.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../src/Checkbox.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../src/Checkbox.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,iEAAiE;IACjE,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAmBD,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAmB,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa,+BAyDpI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandPalette.d.ts","sourceRoot":"","sources":["../src/CommandPalette.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,SAAS,EAEf,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"CommandPalette.d.ts","sourceRoot":"","sources":["../src/CommandPalette.tsx"],"names":[],"mappings":"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"}
|
package/dist/Form.d.ts
CHANGED
|
@@ -22,13 +22,28 @@ import { type FormHTMLAttributes, type ReactNode } from 'react';
|
|
|
22
22
|
* When `busy` ends, focus goes to the first invalid field, else to what sent
|
|
23
23
|
* the form, else to the first control. That is `CommandPalette`'s order
|
|
24
24
|
* too, so the two read the same (UIG-29).
|
|
25
|
+
*
|
|
26
|
+
* The keys are ours, the same in every form (Katerina, 16 September): Enter in
|
|
27
|
+
* a one-line field sends; Enter in a text area is a new line; Enter in a list
|
|
28
|
+
* or a people picker picks; Ctrl+Enter (Cmd+Enter) sends from anywhere inside.
|
|
29
|
+
* The form sends on Enter itself rather than leaving it to the browser, whose
|
|
30
|
+
* implicit submission depends on whether the form has a submit button and how
|
|
31
|
+
* many fields it holds. `enterSends={false}` keeps Enter in a one-line field
|
|
32
|
+
* from sending, for a form where only Ctrl+Enter may send (`CommandPalette`).
|
|
33
|
+
* Every way of sending goes through the form's submit, so Base UI's field
|
|
34
|
+
* check runs for each.
|
|
25
35
|
*/
|
|
26
36
|
export interface FormProps extends Omit<FormHTMLAttributes<HTMLFormElement>, 'onSubmit' | 'children' | 'noValidate'> {
|
|
27
37
|
/** Enter in a field, or a submit button. The page's own submit is already prevented. */
|
|
28
38
|
onSubmit: () => void | Promise<void>;
|
|
29
39
|
/** While sending: every field and button inside is switched off, and focus waits on the form. */
|
|
30
40
|
busy?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Whether Enter in a one-line field sends. On by default. Off where only
|
|
43
|
+
* Ctrl+Enter may send — a form inside `CommandPalette`. Ctrl+Enter sends either way.
|
|
44
|
+
*/
|
|
45
|
+
enterSends?: boolean;
|
|
31
46
|
children: ReactNode;
|
|
32
47
|
}
|
|
33
|
-
export declare function Form({ onSubmit, busy: ownBusy, className, children, ...props }: FormProps): import("react").JSX.Element;
|
|
48
|
+
export declare function Form({ onSubmit, busy: ownBusy, enterSends, className, children, ...props }: FormProps): import("react").JSX.Element;
|
|
34
49
|
//# sourceMappingURL=Form.d.ts.map
|
package/dist/Form.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../src/Form.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../src/Form.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,kBAAkB,EAAsB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAM5G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;IAClH,wFAAwF;IACxF,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,iGAAiG;IACjG,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAqBD,wBAAgB,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAe,EAAE,UAAiB,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,+BAoGpH"}
|
package/dist/ScrollArea.d.ts
CHANGED
|
@@ -27,6 +27,12 @@ import type { ReactNode, Ref, UIEventHandler } from 'react';
|
|
|
27
27
|
* the thin scrollbar both apps had styled by hand in their `index.css`, drawn
|
|
28
28
|
* once here instead.
|
|
29
29
|
*
|
|
30
|
+
* The bar sits above the content (`z-10`). A sticky row inside — a date line
|
|
31
|
+
* in a conversation, `sticky top-0 z-10` — is at the same level, and the bar
|
|
32
|
+
* comes after the content in the page, so it paints on top. Without it the
|
|
33
|
+
* row hid the bar wherever it crossed it: a gap in the thumb, in Peek's topic
|
|
34
|
+
* and direct-message lists (UIG-8, 16 September).
|
|
35
|
+
*
|
|
30
36
|
* `orientation` says which way the region scrolls; a table that is wider
|
|
31
37
|
* than its box scrolls `horizontal`, a list `vertical` (the default), a board
|
|
32
38
|
* `both`. A vertical region keeps its content no wider than itself, so a
|
package/dist/ScrollArea.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollArea.d.ts","sourceRoot":"","sources":["../src/ScrollArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3D
|
|
1
|
+
{"version":3,"file":"ScrollArea.d.ts","sourceRoot":"","sources":["../src/ScrollArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,CAAA;IAChD,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;IACjC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IACzC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAKD,wBAAgB,UAAU,CAAC,EAAE,WAAwB,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,eAAe,+BA4CxJ"}
|
package/dist/eslint/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ESLint, Linter } from 'eslint';
|
|
2
2
|
export { ESCAPE_MARKER, MIN_REASON, SETTINGS_KEY, isEscaped, type EstivaSettings } from './escape';
|
|
3
|
+
export { OWNED_BEHAVIOURS, type OwnedBehaviour } from './no-rebuilt-behaviour';
|
|
3
4
|
/** The name the configs register the plugin under, so every rule id is `estiva/<rule>`. */
|
|
4
5
|
export declare const PLUGIN_KEY = "estiva";
|
|
5
6
|
declare const plugin: {
|
|
@@ -13,6 +14,7 @@ declare const plugin: {
|
|
|
13
14
|
'component-has-a-page': import("eslint").Rule.RuleModule;
|
|
14
15
|
'component-has-a-story': import("eslint").Rule.RuleModule;
|
|
15
16
|
'no-raw-element': import("eslint").Rule.RuleModule;
|
|
17
|
+
'no-rebuilt-behaviour': import("eslint").Rule.RuleModule;
|
|
16
18
|
};
|
|
17
19
|
configs: {
|
|
18
20
|
recommended: Linter.Config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eslint/index.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eslint/index.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAO5C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAA;AAClG,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAI9E,2FAA2F;AAC3F,eAAO,MAAM,UAAU,WAAW,CAAA;AAiClC,QAAA,MAAM,MAAM;;;;;;;;;;;;;aAGK;QAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAA;KAAE;CACrE,CAAA;AAEzB,qFAAqF;AACrF,eAAO,MAAM,YAAY,UAA+D,CAAA;AACxF,wFAAwF;AACxF,eAAO,MAAM,gBAAgB,UAAmE,CAAA;AA6BhG,eAAe,MAAM,CAAA;AAErB,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IACpC;;;OAGG;IACH,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,GAAE,SAAS,MAAM,EAAiB,GAAG,SAAS,CAmB1G"}
|