@rak200/ui 0.5.0 → 0.6.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 +1 -1
- package/dist/checkbox.d.ts.map +1 -1
- package/dist/checkbox.js +1 -2
- package/dist/checkbox.js.map +1 -1
- package/dist/dialog.js +4 -4
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/input.d.ts +5 -6
- package/dist/input.d.ts.map +1 -1
- package/dist/input.js +7 -9
- package/dist/input.js.map +1 -1
- package/dist/menu.js +2 -2
- package/dist/radio.js +1 -1
- package/dist/select.js +3 -3
- package/dist/tokens.js +3 -3
- package/dist/tokens.js.map +1 -1
- package/dist/tooltip.d.ts +3 -4
- package/dist/tooltip.d.ts.map +1 -1
- package/dist/tooltip.js +42 -14
- package/dist/tooltip.js.map +1 -1
- package/package.json +1 -1
- package/dist/field.d.ts +0 -54
- package/dist/field.d.ts.map +0 -1
- package/dist/field.js +0 -254
- package/dist/field.js.map +0 -1
package/README.md
CHANGED
|
@@ -77,7 +77,7 @@ schemes rather than one.
|
|
|
77
77
|
|
|
78
78
|
## Status
|
|
79
79
|
|
|
80
|
-
**v0.**
|
|
80
|
+
**v0.** Eighteen components — `<ui-button>`, `<ui-card>`, `<ui-dialog>`, `<ui-input>`,
|
|
81
81
|
`<ui-textarea>`, `<ui-checkbox>`, `<ui-switch>`, `<ui-select>`, `<ui-option>`, `<ui-optgroup>`,
|
|
82
82
|
`<ui-radio-group>`, `<ui-radio>`, `<ui-tooltip>`, `<ui-toaster>`, `<ui-toast>`, `<ui-menu>`,
|
|
83
83
|
`<ui-table>` and `<ui-icon>` — the token layer
|
package/dist/checkbox.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../src/checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../src/checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAoL1F;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,cAAM,QAAS,SAAQ,UAAU;;IAC7B,MAAM,CAAC,QAAQ,CAAC,cAAc,QAAQ;IAEtC;;;;;;;OAOG;IACH,gBAAyB,iBAAiB;;;;;;;MAGxC;IAEF,gBAAyB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAQjC;IAEF;;;;;OAKG;IACH,KAAK,SAAM;IAEX;;;;;;;OAOG;IACH,IAAI,SAAM;IAEV,iFAAiF;IACjF,KAAK,SAAQ;IAEb;;;;;;;;;;OAUG;IACH,OAAO,UAAS;IAEhB,qFAAqF;IACrF,QAAQ,UAAS;IAEjB,gFAAgF;IAChF,QAAQ,UAAS;IAEjB,sFAAsF;IACtF,KAAK,SAAM;IAoBX;;;;OAIG;IACM,OAAO,IAAI,IAAI;IAKxB;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI;IAQlD;;;;;;;OAOG;IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAM;IAE5C;;;;;;;;;;OAUG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,GAAI,OAAO,KAAK,KAAG,IAAI,CAG/C;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAI/C;;;;;;OAMG;IACH,iBAAiB,IAAI,IAAI;IAIzB,sFAAsF;IACtF,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAI7C,iFAAiF;IACjF,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIpD,uEAAuE;IACvE,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAED,+DAA+D;IAC/D,IAAI,QAAQ,IAAI,aAAa,CAE5B;IAED,gFAAgF;IAChF,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAEQ,MAAM,IAAI,cAAc;IAIjC;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc;CAwBrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,UAAW,SAAQ,QAAQ;IACpC,gBAAyB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAGjC;IAEF;;;;;;OAMG;IACH,aAAa,UAAS;IAEtB,gBAAyB,MAAM,EAAE,SAAS,EAAE,CA6C1C;IAEO,MAAM,IAAI,cAAc;IAIxB,OAAO,IAAI,IAAI;IAKxB;;;;OAIG;cACgB,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;CAI3D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,QAAS,SAAQ,QAAQ;IAClC,gBAAyB,MAAM,EAAE,SAAS,EAAE,CAuC1C;IAEF,mBAA4B,WAAW,EAAE,MAAM,CAAY;CAC9D;AAWD,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,aAAa,EAAE,UAAU,CAAC;QAC1B,WAAW,EAAE,QAAQ,CAAC;KACzB;CACJ"}
|
package/dist/checkbox.js
CHANGED
|
@@ -136,8 +136,7 @@ const toggle = css `
|
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
/* Read off the control's own aria-invalid rather than off a host attribute, which is
|
|
139
|
-
the same source a screen reader uses
|
|
140
|
-
ui-field was the one writing it. One property now feeds all three — the boundary,
|
|
139
|
+
the same source a screen reader uses. One property now feeds all three — the boundary,
|
|
141
140
|
the message and setValidity — so they cannot disagree. Only the boundary moves; a
|
|
142
141
|
red fill on a switch would read as *on*.
|
|
143
142
|
|
package/dist/checkbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../src/checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAuC,MAAM,KAAK,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;;;;;;;GASG;AACH,MAAM,IAAI,GAAG,GAAG,CAAA,kBAAkB,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,IAAI,GAAG,GAAG,CAAA,sOAAsO,CAAC;AAEvP,uFAAuF;AACvF,MAAM,KAAK,GAAG,GAAG,CAAA,6BAA6B,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;oBAQE,SAAS,CAAC,YAAY,CAAC;uBACpB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;;;;eAY9B,SAAS,CAAC,YAAY,CAAC;;iBAErB,SAAS,CAAC,iBAAiB,CAAC;;;;;;;;;;sBAUvB,IAAI;4BACE,SAAS,CAAC,oBAAoB,CAAC;;4BAE/B,SAAS,CAAC,mBAAmB,CAAC;;;;;;+BAM3B,SAAS,CAAC,qBAAqB,CAAC,IAAI,SAAS,CAAC,mBAAmB,CAAC;2BACtE,SAAS,CAAC,qBAAqB,CAAC,IAAI,SAAS,CAAC,mBAAmB,CAAC;;;;4BAIjE,SAAS,CAAC,mBAAmB,CAAC;wBAClC,SAAS,CAAC,mBAAmB,CAAC;;;;;;;;;;wBAU9B,SAAS,CAAC,iBAAiB,CAAC;;;;4BAIxB,SAAS,CAAC,yBAAyB,CAAC;wBACxC,SAAS,CAAC,yBAAyB,CAAC;;;;;;6BAM/B,SAAS,CAAC,kBAAkB,CAAC;;;;;;;;;;;;iBAYzC,SAAS,CAAC,uBAAuB,CAAC
|
|
1
|
+
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../src/checkbox.ts"],"names":[],"mappings":"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"}
|
package/dist/dialog.js
CHANGED
|
@@ -410,10 +410,10 @@ export class UiDialog extends LitElement {
|
|
|
410
410
|
* **A copy of the text rather than a reference to the element, and that is forced.**
|
|
411
411
|
* APG names a modal with `aria-labelledby` pointing at its heading, and an IDREF does
|
|
412
412
|
* not cross a shadow boundary — so a `<dialog>` in this shadow root cannot point at a
|
|
413
|
-
* heading in the host's tree.
|
|
414
|
-
*
|
|
415
|
-
*
|
|
416
|
-
*
|
|
413
|
+
* heading in the host's tree. Every other component answers that by rendering both ends
|
|
414
|
+
* itself; a dialog cannot, because the element that has to reach the top layer is the
|
|
415
|
+
* one this component renders. What does cross is a string, so the name is copied and
|
|
416
|
+
* the observer above keeps the copy honest.
|
|
417
417
|
*/
|
|
418
418
|
#label() {
|
|
419
419
|
const title = this.querySelector(':scope > [slot="title"]');
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ export { UiButton, type ButtonVariant } from './button.js';
|
|
|
2
2
|
export { UiCard } from './card.js';
|
|
3
3
|
export { UiCheckbox, UiSwitch } from './checkbox.js';
|
|
4
4
|
export { UiDialog } from './dialog.js';
|
|
5
|
-
export { UiField } from './field.js';
|
|
6
5
|
export { UiIcon, register } from './icon.js';
|
|
7
6
|
export { UiInput, UiTextarea } from './input.js';
|
|
8
7
|
export { UiMenu } from './menu.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACH,MAAM,EACN,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,eAAe,EACf,KAAK,KAAK,EACV,KAAK,YAAY,GACpB,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,6 @@ export { UiButton } from './button.js';
|
|
|
2
2
|
export { UiCard } from './card.js';
|
|
3
3
|
export { UiCheckbox, UiSwitch } from './checkbox.js';
|
|
4
4
|
export { UiDialog } from './dialog.js';
|
|
5
|
-
export { UiField } from './field.js';
|
|
6
5
|
export { UiIcon, register } from './icon.js';
|
|
7
6
|
export { UiInput, UiTextarea } from './input.js';
|
|
8
7
|
export { UiMenu } from './menu.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAyB,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACH,MAAM,EACN,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,eAAe,GAGlB,MAAM,aAAa,CAAC"}
|
package/dist/input.d.ts
CHANGED
|
@@ -3,9 +3,8 @@ import { LitElement, nothing, type CSSResult, type TemplateResult } from 'lit';
|
|
|
3
3
|
* A styled native form control, and the wiring that used to sit around it.
|
|
4
4
|
*
|
|
5
5
|
* **The control is this element's**, rendered into its shadow root together with its
|
|
6
|
-
* label, its help text and its message
|
|
7
|
-
*
|
|
8
|
-
* attributes.
|
|
6
|
+
* label, its help text and its message, so every IDREF resolves in one tree scope. What a
|
|
7
|
+
* host writes is the tag and its attributes.
|
|
9
8
|
*
|
|
10
9
|
* **The element is the form control**, through `ElementInternals`: an `<input>` in a
|
|
11
10
|
* shadow root has no form owner, so the value reaches a submit because this element passes
|
|
@@ -166,7 +165,7 @@ declare class UiTextField extends LitElement {
|
|
|
166
165
|
* **The error is described before the help**, and the help is not replaced by it: a
|
|
167
166
|
* screen reader announces descriptions in order, and help text is usually the format
|
|
168
167
|
* requirement — which is the very suggestion a reader needs in order to recover
|
|
169
|
-
* (WCAG 3.3.3).
|
|
168
|
+
* (WCAG 3.3.3).
|
|
170
169
|
*/
|
|
171
170
|
protected frame(control: TemplateResult): TemplateResult;
|
|
172
171
|
/** The ids describing the control, in the order a reader needs them. */
|
|
@@ -179,8 +178,8 @@ declare class UiTextField extends LitElement {
|
|
|
179
178
|
*
|
|
180
179
|
* **You write the tag, not a control.** RFC 0005 reversed the rule this element was built
|
|
181
180
|
* on: the `<input>`, its `<label>`, its help text and its message are rendered together in
|
|
182
|
-
* one shadow root, so
|
|
183
|
-
*
|
|
181
|
+
* one shadow root, so every IDREF resolves and nothing is left to wire from outside. The
|
|
182
|
+
* attributes below are the platform's own, and the ones it computes with —
|
|
184
183
|
* `type`, `pattern`, `min`, `max`, `step` — are handed to a real `<input>` that validates
|
|
185
184
|
* them itself.
|
|
186
185
|
*
|
package/dist/input.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AA6H1F;;;;;;;;;;;;;GAaG;AACH,cAAM,WAAY,SAAQ,UAAU;;IAChC,MAAM,CAAC,QAAQ,CAAC,cAAc,QAAQ;IAEtC;;;;;;OAMG;IACH,gBAAyB,iBAAiB;;;;;;;MAGxC;IAEF,gBAAyB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAiBjC;IAEF;;;;;OAKG;IACH,KAAK,SAAM;IAEX,uFAAuF;IACvF,IAAI,SAAM;IAEV,gFAAgF;IAChF,KAAK,SAAM;IAEX;;;;;;OAMG;IACH,IAAI,SAAM;IAEV;;;;;;OAMG;IACH,KAAK,SAAM;IAEX,mFAAmF;IACnF,WAAW,SAAM;IAEjB,qFAAqF;IACrF,YAAY,SAAM;IAElB,+DAA+D;IAC/D,SAAS,SAAM;IAEf,4CAA4C;IAC5C,SAAS,SAAM;IAEf,4DAA4D;IAC5D,QAAQ,UAAS;IAEjB,oEAAoE;IACpE,QAAQ,UAAS;IAEjB,oEAAoE;IACpE,QAAQ,UAAS;IAkBjB;;;;;;;OAOG;IACM,OAAO,IAAI,IAAI;IAUxB;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAI,OAAO,KAAK,KAAG,IAAI,CAE7C;IAEF,SAAS,CAAC,QAAQ,CAAC,OAAO,QAAO,IAAI,CAEnC;IAEF;;;OAGG;IACH,iBAAiB,IAAI,IAAI;IAIzB,sFAAsF;IACtF,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAI7C,iFAAiF;IACjF,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIpD,uEAAuE;IACvE,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAED,+DAA+D;IAC/D,IAAI,QAAQ,IAAI,aAAa,CAE5B;IAED,gFAAgF;IAChF,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc;IAmBxD,wEAAwE;IACxE,SAAS,CAAC,SAAS,IAAI,MAAM,GAAG,OAAO,OAAO;IAQ9C,iFAAiF;IACjF,SAAS,CAAC,OAAO,IAAI,MAAM,GAAG,OAAO,OAAO;CAG/C;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,OAAQ,SAAQ,WAAW;IACpC,gBAAyB,MAAM,EAAE,SAAS,CAAS;IAEnD,gBAAyB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAQjC;IAEF,+EAA+E;IAC/E,IAAI,SAAU;IAEd,iFAAiF;IACjF,SAAS,SAAM;IAEf,gFAAgF;IAChF,OAAO,SAAM;IAEb,2CAA2C;IAC3C,GAAG,SAAM;IAET,4CAA4C;IAC5C,GAAG,SAAM;IAET,wDAAwD;IACxD,IAAI,SAAM;IAED,MAAM,IAAI,cAAc;CA2BpC;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,UAAW,SAAQ,WAAW;IACvC,gBAAyB,MAAM,EAAE,SAAS,EAAE,CAQ1C;IAEF,gBAAyB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAGjC;IAEF,qFAAqF;IACrF,IAAI,SAAM;IAED,MAAM,IAAI,cAAc;CAsBpC;AAWD,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,UAAU,EAAE,OAAO,CAAC;QACpB,aAAa,EAAE,UAAU,CAAC;KAC7B;CACJ"}
|
package/dist/input.js
CHANGED
|
@@ -19,7 +19,7 @@ const field = css `
|
|
|
19
19
|
font-family: ${reference('--ui-font')};
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
/* The rhythm
|
|
22
|
+
/* The vertical rhythm between the label, the control and whatever is under it. */
|
|
23
23
|
.stack {
|
|
24
24
|
display: flex;
|
|
25
25
|
flex-direction: column;
|
|
@@ -88,8 +88,7 @@ const field = css `
|
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
/* Read off the control's own aria-invalid rather than off a host attribute: it is the
|
|
91
|
-
same source a screen reader uses
|
|
92
|
-
ui-field was the one writing it. Not :host([error]) — a reflected string property
|
|
91
|
+
same source a screen reader uses. Not :host([error]) — a reflected string property
|
|
93
92
|
whose default is empty puts an empty attribute on the host, and an
|
|
94
93
|
attribute-presence selector matches every element. Measured on ui-checkbox. */
|
|
95
94
|
input[aria-invalid='true'],
|
|
@@ -125,9 +124,8 @@ function attribute(value) {
|
|
|
125
124
|
* A styled native form control, and the wiring that used to sit around it.
|
|
126
125
|
*
|
|
127
126
|
* **The control is this element's**, rendered into its shadow root together with its
|
|
128
|
-
* label, its help text and its message
|
|
129
|
-
*
|
|
130
|
-
* attributes.
|
|
127
|
+
* label, its help text and its message, so every IDREF resolves in one tree scope. What a
|
|
128
|
+
* host writes is the tag and its attributes.
|
|
131
129
|
*
|
|
132
130
|
* **The element is the form control**, through `ElementInternals`: an `<input>` in a
|
|
133
131
|
* shadow root has no form owner, so the value reaches a submit because this element passes
|
|
@@ -289,7 +287,7 @@ class UiTextField extends LitElement {
|
|
|
289
287
|
* **The error is described before the help**, and the help is not replaced by it: a
|
|
290
288
|
* screen reader announces descriptions in order, and help text is usually the format
|
|
291
289
|
* requirement — which is the very suggestion a reader needs in order to recover
|
|
292
|
-
* (WCAG 3.3.3).
|
|
290
|
+
* (WCAG 3.3.3).
|
|
293
291
|
*/
|
|
294
292
|
frame(control) {
|
|
295
293
|
return html `
|
|
@@ -321,8 +319,8 @@ class UiTextField extends LitElement {
|
|
|
321
319
|
*
|
|
322
320
|
* **You write the tag, not a control.** RFC 0005 reversed the rule this element was built
|
|
323
321
|
* on: the `<input>`, its `<label>`, its help text and its message are rendered together in
|
|
324
|
-
* one shadow root, so
|
|
325
|
-
*
|
|
322
|
+
* one shadow root, so every IDREF resolves and nothing is left to wire from outside. The
|
|
323
|
+
* attributes below are the platform's own, and the ones it computes with —
|
|
326
324
|
* `type`, `pattern`, `min`, `max`, `step` — are handed to a real `<input>` that validates
|
|
327
325
|
* them itself.
|
|
328
326
|
*
|
package/dist/input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAuC,MAAM,KAAK,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAM,KAAK,GAAG,GAAG,CAAA;;;uBAGM,SAAS,CAAC,WAAW,CAAC;;;;;;;oBAOzB,SAAS,CAAC,YAAY,CAAC;;;;iBAI1B,SAAS,CAAC,iBAAiB,CAAC;;;;;;;;uBAQtB,SAAS,CAAC,WAAW,CAAC;iBAC5B,SAAS,CAAC,iBAAiB,CAAC;sBACvB,SAAS,CAAC,oBAAoB,CAAC;4BACzB,SAAS,CAAC,mBAAmB,CAAC;yBACjC,SAAS,CAAC,aAAa,CAAC;mBAC9B,SAAS,CAAC,YAAY,CAAC;;;;mCAIP,SAAS,CAAC,qBAAqB,CAAC;cACrD,SAAS,CAAC,mBAAmB,CAAC;;;;;iBAK3B,SAAS,CAAC,uBAAuB,CAAC;;;;;;;;;;;;;;;;wBAgB3B,SAAS,CAAC,iBAAiB,CAAC;;;;;;;6BAOvB,SAAS,CAAC,kBAAkB,CAAC;;;;;;;;;;;iBAWzC,SAAS,CAAC,uBAAuB,CAAC
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"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"}
|
package/dist/menu.js
CHANGED
|
@@ -4,8 +4,8 @@ import { reference } from './reference.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* The panel's id, and it needs no counter behind it.
|
|
6
6
|
*
|
|
7
|
-
* `src/tooltip.ts`
|
|
8
|
-
*
|
|
7
|
+
* `src/tooltip.ts` numbers its own, because the element it points at is the host's and
|
|
8
|
+
* shares the document's tree scope. Both ends of this reference are
|
|
9
9
|
* rendered here, so the id is scoped to one shadow root and two menus on a page cannot
|
|
10
10
|
* collide — which is the same property that lets `aria-controls` resolve at all.
|
|
11
11
|
*/
|
package/dist/radio.js
CHANGED
|
@@ -173,7 +173,7 @@ export class UiRadioGroup extends LitElement {
|
|
|
173
173
|
font-family: ${reference('--ui-font')};
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
-
/* The rhythm
|
|
176
|
+
/* The vertical rhythm between the label, the set and whatever is under it. */
|
|
177
177
|
.stack {
|
|
178
178
|
display: flex;
|
|
179
179
|
flex-direction: column;
|
package/dist/select.js
CHANGED
|
@@ -318,9 +318,9 @@ export class UiSelect extends LitElement {
|
|
|
318
318
|
border-color: ${reference('--ui-color-danger')};
|
|
319
319
|
}
|
|
320
320
|
|
|
321
|
-
/* The rhythm
|
|
322
|
-
|
|
323
|
-
|
|
321
|
+
/* The vertical rhythm, written out here rather than shared with src/input.ts for
|
|
322
|
+
the reason the docblock above gives about the box — and compared by
|
|
323
|
+
tests/select.test.ts on the same terms. */
|
|
324
324
|
.stack {
|
|
325
325
|
display: flex;
|
|
326
326
|
flex-direction: column;
|
package/dist/tokens.js
CHANGED
|
@@ -119,8 +119,8 @@ export const tokens = [
|
|
|
119
119
|
'--ui-elevation-100',
|
|
120
120
|
// The type scale, arriving with `ui-table` — the category `ROADMAP.md` said would, and
|
|
121
121
|
// the last one the v0 surface expects. It arrives to fix a defect rather than to
|
|
122
|
-
// anticipate one: `
|
|
123
|
-
//
|
|
122
|
+
// anticipate one: `font-size: 0.875em` was written out in three places across the form
|
|
123
|
+
// controls and `src/tooltip.ts`, all three agreeing and nothing comparing them — the shape
|
|
124
124
|
// `src/reference.ts` records finding in thirteen hand-copied fallbacks, and the thing
|
|
125
125
|
// `ARCHITECTURE.md` forbids in writing, since a hardcoded value is a decision a host
|
|
126
126
|
// cannot override.
|
|
@@ -221,7 +221,7 @@ export const defaults = {
|
|
|
221
221
|
// hue. Both clear **4.5:1** against the surface rather than the 3:1 a coloured edge
|
|
222
222
|
// would owe, because the floor a value has to clear is the strictest use it is put to
|
|
223
223
|
// and nothing stops a host using one as text — `--ui-color-danger` was chosen the same
|
|
224
|
-
// way and is text in
|
|
224
|
+
// way and is text in every control's message today.
|
|
225
225
|
//
|
|
226
226
|
// The warning is the same amber as `--ui-color-focus`, and the two arrived at it
|
|
227
227
|
// independently: both are *the darkest amber that clears its floor in both schemes*,
|
package/dist/tokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IAClB,mBAAmB;IACnB,4BAA4B;IAC5B,oBAAoB;IACpB,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;IACnB,qFAAqF;IACrF,uFAAuF;IACvF,mFAAmF;IACnF,cAAc;IACd,EAAE;IACF,oFAAoF;IACpF,+EAA+E;IAC/E,6EAA6E;IAC7E,oBAAoB;IACpB,oBAAoB;IACpB,oFAAoF;IACpF,mFAAmF;IACnF,kFAAkF;IAClF,iFAAiF;IACjF,oFAAoF;IACpF,wEAAwE;IACxE,EAAE;IACF,iFAAiF;IACjF,oFAAoF;IACpF,iFAAiF;IACjF,qFAAqF;IACrF,+EAA+E;IAC/E,kBAAkB;IAClB,aAAa;IACb,YAAY;IACZ,WAAW;IACX,kFAAkF;IAClF,sFAAsF;IACtF,+CAA+C;IAC/C,EAAE;IACF,uFAAuF;IACvF,sFAAsF;IACtF,uFAAuF;IACvF,oFAAoF;IACpF,4CAA4C;IAC5C,mBAAmB;IACnB,mBAAmB;IACnB,qFAAqF;IACrF,oFAAoF;IACpF,sFAAsF;IACtF,qDAAqD;IACrD,EAAE;IACF,uFAAuF;IACvF,uFAAuF;IACvF,mFAAmF;IACnF,qEAAqE;IACrE,mBAAmB;IACnB,kBAAkB;IAClB,oFAAoF;IACpF,mFAAmF;IACnF,mFAAmF;IACnF,2BAA2B;IAC3B,EAAE;IACF,mFAAmF;IACnF,kFAAkF;IAClF,6EAA6E;IAC7E,EAAE;IACF,8EAA8E;IAC9E,sFAAsF;IACtF,yDAAyD;IACzD,gBAAgB;IAChB,kBAAkB;IAClB,uFAAuF;IACvF,0CAA0C;IAC1C,EAAE;IACF,sFAAsF;IACtF,sFAAsF;IACtF,+EAA+E;IAC/E,qFAAqF;IACrF,mFAAmF;IACnF,qCAAqC;IACrC,EAAE;IACF,4EAA4E;IAC5E,qFAAqF;IACrF,sFAAsF;IACtF,sFAAsF;IACtF,mFAAmF;IACnF,uBAAuB;IACvB,oBAAoB;IACpB,uFAAuF;IACvF,iFAAiF;IACjF,uFAAuF;IACvF,
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
|
package/dist/tooltip.d.ts
CHANGED
|
@@ -2,10 +2,9 @@ import { LitElement, type TemplateResult } from 'lit';
|
|
|
2
2
|
/**
|
|
3
3
|
* Supplementary text on hover and on keyboard focus.
|
|
4
4
|
*
|
|
5
|
-
* **Everything is slotted**,
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* with no `slot`; the tip is `slot="tip"`.
|
|
5
|
+
* **Everything is slotted**, for a measured reason: an IDREF does not cross a shadow
|
|
6
|
+
* boundary, so a tip rendered in here could not be the target of the trigger's
|
|
7
|
+
* `aria-describedby`. The trigger is the child with no `slot`; the tip is `slot="tip"`.
|
|
9
8
|
*
|
|
10
9
|
* ## What the platform does, and what is left
|
|
11
10
|
*
|
package/dist/tooltip.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../src/tooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../src/tooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAkBjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,qBAAa,SAAU,SAAQ,UAAU;;IACrC,gBAAyB,MAAM,0BAkD7B;IAgDO,iBAAiB,IAAI,IAAI;IAqBzB,oBAAoB,IAAI,IAAI;IAU5B,MAAM,IAAI,cAAc;CA4LpC;AAQD,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,YAAY,EAAE,SAAS,CAAC;KAC3B;CACJ"}
|
package/dist/tooltip.js
CHANGED
|
@@ -5,13 +5,19 @@ import { reference } from './reference.js';
|
|
|
5
5
|
let sequence = 0;
|
|
6
6
|
/** How far the tip sits from the trigger, and which way the script placed it. */
|
|
7
7
|
const side = 'data-side';
|
|
8
|
+
/**
|
|
9
|
+
* What makes a trigger's shadow root the thing the browser actually focuses.
|
|
10
|
+
*
|
|
11
|
+
* A tab stop the host wrote counts with the natives: what decides this is that focus lands
|
|
12
|
+
* inside the boundary, not how the element was made able to take it.
|
|
13
|
+
*/
|
|
14
|
+
const focusable = 'a[href], button, input, select, textarea, [tabindex]';
|
|
8
15
|
/**
|
|
9
16
|
* Supplementary text on hover and on keyboard focus.
|
|
10
17
|
*
|
|
11
|
-
* **Everything is slotted**,
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* with no `slot`; the tip is `slot="tip"`.
|
|
18
|
+
* **Everything is slotted**, for a measured reason: an IDREF does not cross a shadow
|
|
19
|
+
* boundary, so a tip rendered in here could not be the target of the trigger's
|
|
20
|
+
* `aria-describedby`. The trigger is the child with no `slot`; the tip is `slot="tip"`.
|
|
15
21
|
*
|
|
16
22
|
* ## What the platform does, and what is left
|
|
17
23
|
*
|
|
@@ -125,10 +131,9 @@ export class UiTooltip extends LitElement {
|
|
|
125
131
|
* per-frame: a page holding fifty tooltips would run fifty no-op scroll handlers for
|
|
126
132
|
* every frame of every scroll, and at most one tooltip is ever open.
|
|
127
133
|
*
|
|
128
|
-
* Built here rather than on the first show so it is never absent
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
* never opened.
|
|
134
|
+
* Built here rather than on the first show so it is never absent: a close that has to
|
|
135
|
+
* ask whether the controller exists is a branch no test can reach, because nothing
|
|
136
|
+
* closes what was never opened.
|
|
132
137
|
*/
|
|
133
138
|
#watching = new AbortController();
|
|
134
139
|
/** Re-places the tip under anything that moves the trigger while it is open. */
|
|
@@ -206,10 +211,10 @@ export class UiTooltip extends LitElement {
|
|
|
206
211
|
* the element rather than mutating it — and a tip that is only wired the first time is
|
|
207
212
|
* one that stops being announced at a moment nothing reports.
|
|
208
213
|
*
|
|
209
|
-
* A `role` or an `id` the host wrote is never overwritten
|
|
210
|
-
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
214
|
+
* A `role` or an `id` the host wrote is never overwritten. `aria-describedby` is
|
|
215
|
+
* **added to** rather than replaced: the trigger may already be described by something
|
|
216
|
+
* this element cannot see, and a description that silently replaced another is the
|
|
217
|
+
* failure nobody sees.
|
|
213
218
|
*/
|
|
214
219
|
#associate = () => {
|
|
215
220
|
const trigger = this.#trigger();
|
|
@@ -220,8 +225,7 @@ export class UiTooltip extends LitElement {
|
|
|
220
225
|
if (tip.id === '') {
|
|
221
226
|
// Stryker disable next-line UpdateOperator: two tooltips on one page must get
|
|
222
227
|
// different ids, and a decrementing counter delivers that as well as an
|
|
223
|
-
// incrementing one. No input distinguishes them — an equivalent mutant
|
|
224
|
-
// same one `src/field.ts` carries beside its own counter.
|
|
228
|
+
// incrementing one. No input distinguishes them — an equivalent mutant.
|
|
225
229
|
tip.id = `ui-tooltip-${String(++sequence)}`;
|
|
226
230
|
}
|
|
227
231
|
if (!tip.hasAttribute('role')) {
|
|
@@ -234,7 +238,31 @@ export class UiTooltip extends LitElement {
|
|
|
234
238
|
if (!described.includes(tip.id)) {
|
|
235
239
|
trigger.setAttribute('aria-describedby', [...described, tip.id].join(' '));
|
|
236
240
|
}
|
|
241
|
+
this.#complain(trigger);
|
|
237
242
|
};
|
|
243
|
+
/**
|
|
244
|
+
* Says out loud that the description will not arrive.
|
|
245
|
+
*
|
|
246
|
+
* A trigger that focuses a control inside its own shadow root strands the reference:
|
|
247
|
+
* an IDREF resolves within one tree scope, and the tip is in the host's tree while the
|
|
248
|
+
* element a screen reader reads is not. Nothing about the page looks wrong — the tip
|
|
249
|
+
* shows and places itself correctly — which is the whole reason this is said rather
|
|
250
|
+
* than left to be found later. #156
|
|
251
|
+
*
|
|
252
|
+
* **The condition is the focusable descendant, not the shadow root.** A component
|
|
253
|
+
* whose shadow content is decoration is named and described on the host itself, and is
|
|
254
|
+
* correct as it stands.
|
|
255
|
+
*/
|
|
256
|
+
#complain(trigger) {
|
|
257
|
+
const inside = trigger.shadowRoot?.querySelector(focusable) ?? null;
|
|
258
|
+
if (inside === null) {
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
console.warn(`<ui-tooltip> described <${trigger.localName}>, and the description will not ` +
|
|
262
|
+
`arrive: it focuses a control inside its own shadow root, which an id in ` +
|
|
263
|
+
`your tree cannot reach. Where the text has to be announced, the trigger has ` +
|
|
264
|
+
`to be a control you wrote — a native <button>, <a href> or form control.`);
|
|
265
|
+
}
|
|
238
266
|
/**
|
|
239
267
|
* Shows on the pointer, except the pointer a touch screen reports.
|
|
240
268
|
*
|
package/dist/tooltip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../src/tooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,+DAA+D;AAC/D,IAAI,QAAQ,GAAG,CAAC,CAAC;AAEjB,iFAAiF;AACjF,MAAM,IAAI,GAAG,WAAW,CAAC;AAEzB
|
|
1
|
+
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../src/tooltip.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/dist/field.d.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { LitElement, type TemplateResult } from 'lit';
|
|
2
|
-
/**
|
|
3
|
-
* Form plumbing: a label bound to a control, help and error text bound through
|
|
4
|
-
* `aria-describedby`, and `aria-invalid` while the field is in error.
|
|
5
|
-
*
|
|
6
|
-
* Written once here rather than per control that needs it, because copies of one wiring are
|
|
7
|
-
* copies of one chance to get it subtly wrong.
|
|
8
|
-
*
|
|
9
|
-
* **None of this package's own form controls are among them any more.** `<ui-checkbox>`,
|
|
10
|
-
* `<ui-switch>`, `<ui-input>`, `<ui-textarea>` and `<ui-select>` each render their label, their
|
|
11
|
-
* message and their `aria-invalid` beside the control, in one tree scope, so there is nothing
|
|
12
|
-
* scattered here to point at anything. What is left is a control the host wrote, and
|
|
13
|
-
* {@link UiRadioGroup}, which is named by reference rather than by containment.
|
|
14
|
-
*
|
|
15
|
-
* **Everything is slotted, and that is forced rather than chosen.** An ARIA relationship
|
|
16
|
-
* by IDREF does not cross a shadow boundary: a `<label for>` rendered in this element's
|
|
17
|
-
* shadow root leaves `control.labels` empty, and an `aria-describedby` pointing into it
|
|
18
|
-
* dangles. So the label, the control, the help and the error all live in the host's tree,
|
|
19
|
-
* where the association is the platform's job — and this element only generates the ids
|
|
20
|
-
* and points them at each other.
|
|
21
|
-
*
|
|
22
|
-
* **The control may sit below a wrapper**, and the same constraint is why: `<ui-input>` is
|
|
23
|
-
* a box around a control that had to stay in the light DOM, so this element looks through
|
|
24
|
-
* it. See {@link UiField.#control} — and the one wrapper it does *not* look through, which
|
|
25
|
-
* is a wrapper carrying a `role`, because a group is the control rather than a box for one.
|
|
26
|
-
*
|
|
27
|
-
* **Not every control can be labelled the platform's way**, and `<ui-radio-group>` is the
|
|
28
|
-
* first that cannot: `<label for>` reaches a labelable element and nothing else, so the
|
|
29
|
-
* name arrives as `aria-labelledby` there. See {@link UiField.#name}.
|
|
30
|
-
*
|
|
31
|
-
* @example
|
|
32
|
-
* ```html
|
|
33
|
-
* <ui-field>
|
|
34
|
-
* <label slot="label">Amount</label>
|
|
35
|
-
* <input type="number" />
|
|
36
|
-
* <span slot="help">In BRL, two decimals.</span>
|
|
37
|
-
* <span slot="error">Amount is required.</span>
|
|
38
|
-
* </ui-field>
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
export declare class UiField extends LitElement {
|
|
42
|
-
#private;
|
|
43
|
-
static readonly styles: import("lit").CSSResult;
|
|
44
|
-
connectedCallback(): void;
|
|
45
|
-
disconnectedCallback(): void;
|
|
46
|
-
firstUpdated(): void;
|
|
47
|
-
render(): TemplateResult;
|
|
48
|
-
}
|
|
49
|
-
declare global {
|
|
50
|
-
interface HTMLElementTagNameMap {
|
|
51
|
-
'ui-field': UiField;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=field.d.ts.map
|
package/dist/field.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../src/field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAMjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBAAa,OAAQ,SAAQ,UAAU;;IACnC,gBAAyB,MAAM,0BAuB7B;IAeO,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;IAK5B,YAAY,IAAI,IAAI;IAIpB,MAAM,IAAI,cAAc;CAmLpC;AAQD,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,UAAU,EAAE,OAAO,CAAC;KACvB;CACJ"}
|
package/dist/field.js
DELETED
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
import { LitElement, css, html } from 'lit';
|
|
2
|
-
import { reference } from './reference.js';
|
|
3
|
-
/** Distinguishes one field's generated ids from another's. */
|
|
4
|
-
let sequence = 0;
|
|
5
|
-
/**
|
|
6
|
-
* Form plumbing: a label bound to a control, help and error text bound through
|
|
7
|
-
* `aria-describedby`, and `aria-invalid` while the field is in error.
|
|
8
|
-
*
|
|
9
|
-
* Written once here rather than per control that needs it, because copies of one wiring are
|
|
10
|
-
* copies of one chance to get it subtly wrong.
|
|
11
|
-
*
|
|
12
|
-
* **None of this package's own form controls are among them any more.** `<ui-checkbox>`,
|
|
13
|
-
* `<ui-switch>`, `<ui-input>`, `<ui-textarea>` and `<ui-select>` each render their label, their
|
|
14
|
-
* message and their `aria-invalid` beside the control, in one tree scope, so there is nothing
|
|
15
|
-
* scattered here to point at anything. What is left is a control the host wrote, and
|
|
16
|
-
* {@link UiRadioGroup}, which is named by reference rather than by containment.
|
|
17
|
-
*
|
|
18
|
-
* **Everything is slotted, and that is forced rather than chosen.** An ARIA relationship
|
|
19
|
-
* by IDREF does not cross a shadow boundary: a `<label for>` rendered in this element's
|
|
20
|
-
* shadow root leaves `control.labels` empty, and an `aria-describedby` pointing into it
|
|
21
|
-
* dangles. So the label, the control, the help and the error all live in the host's tree,
|
|
22
|
-
* where the association is the platform's job — and this element only generates the ids
|
|
23
|
-
* and points them at each other.
|
|
24
|
-
*
|
|
25
|
-
* **The control may sit below a wrapper**, and the same constraint is why: `<ui-input>` is
|
|
26
|
-
* a box around a control that had to stay in the light DOM, so this element looks through
|
|
27
|
-
* it. See {@link UiField.#control} — and the one wrapper it does *not* look through, which
|
|
28
|
-
* is a wrapper carrying a `role`, because a group is the control rather than a box for one.
|
|
29
|
-
*
|
|
30
|
-
* **Not every control can be labelled the platform's way**, and `<ui-radio-group>` is the
|
|
31
|
-
* first that cannot: `<label for>` reaches a labelable element and nothing else, so the
|
|
32
|
-
* name arrives as `aria-labelledby` there. See {@link UiField.#name}.
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```html
|
|
36
|
-
* <ui-field>
|
|
37
|
-
* <label slot="label">Amount</label>
|
|
38
|
-
* <input type="number" />
|
|
39
|
-
* <span slot="help">In BRL, two decimals.</span>
|
|
40
|
-
* <span slot="error">Amount is required.</span>
|
|
41
|
-
* </ui-field>
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
export class UiField extends LitElement {
|
|
45
|
-
static { this.styles = css `
|
|
46
|
-
:host {
|
|
47
|
-
display: block;
|
|
48
|
-
font-family: ${reference('--ui-font')};
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.stack {
|
|
52
|
-
display: flex;
|
|
53
|
-
flex-direction: column;
|
|
54
|
-
gap: calc(${reference('--ui-space')} / 2);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
slot[name='help']::slotted(*) {
|
|
58
|
-
color: ${reference('--ui-color-text')};
|
|
59
|
-
font-size: ${reference('--ui-text-supporting')};
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/* Colour is not the only cue — the error text says what is wrong, and
|
|
63
|
-
aria-invalid marks the control regardless of styling. */
|
|
64
|
-
slot[name='error']::slotted(*) {
|
|
65
|
-
color: ${reference('--ui-color-danger')};
|
|
66
|
-
font-size: ${reference('--ui-text-supporting')};
|
|
67
|
-
}
|
|
68
|
-
`; }
|
|
69
|
-
/** The prefix for this instance's generated ids, allocated on first association. */
|
|
70
|
-
#uid;
|
|
71
|
-
/**
|
|
72
|
-
* Watches the light DOM for anything that changes the association.
|
|
73
|
-
*
|
|
74
|
-
* Built here rather than on connection so it is never absent: a disconnect that has to
|
|
75
|
-
* ask whether the observer exists is a branch no test can reach.
|
|
76
|
-
*/
|
|
77
|
-
#observer = new MutationObserver(() => {
|
|
78
|
-
this.#associate();
|
|
79
|
-
});
|
|
80
|
-
connectedCallback() {
|
|
81
|
-
super.connectedCallback();
|
|
82
|
-
// The host may swap the error text without adding or removing an element, which is
|
|
83
|
-
// what a re-render looks like from here — so characterData matters as much as
|
|
84
|
-
// childList, and both can happen below a wrapper.
|
|
85
|
-
this.#observer.observe(this, { childList: true, characterData: true, subtree: true });
|
|
86
|
-
}
|
|
87
|
-
disconnectedCallback() {
|
|
88
|
-
this.#observer.disconnect();
|
|
89
|
-
super.disconnectedCallback();
|
|
90
|
-
}
|
|
91
|
-
firstUpdated() {
|
|
92
|
-
this.#associate();
|
|
93
|
-
}
|
|
94
|
-
render() {
|
|
95
|
-
return html `
|
|
96
|
-
<div class="stack" part="stack">
|
|
97
|
-
<slot name="label"></slot>
|
|
98
|
-
<slot></slot>
|
|
99
|
-
<slot name="help"></slot>
|
|
100
|
-
<slot name="error"></slot>
|
|
101
|
-
</div>
|
|
102
|
-
`;
|
|
103
|
-
}
|
|
104
|
-
/** The light-DOM child filling a slot, or `undefined` when nothing does. */
|
|
105
|
-
#slotted(name) {
|
|
106
|
-
const selector = name === null ? ':scope > :not([slot])' : `:scope > [slot='${name}']`;
|
|
107
|
-
const found = this.querySelector(selector);
|
|
108
|
-
return found instanceof HTMLElement ? found : undefined;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* The control this field is about, which a wrapper may stand in front of.
|
|
112
|
-
*
|
|
113
|
-
* `<ui-input>` is such a wrapper, and it is one because the control has to stay in the
|
|
114
|
-
* light DOM for the IDREFs below to resolve at all — so the box that styles it can
|
|
115
|
-
* only ever sit around it, never instead of it. The label points at the control and
|
|
116
|
-
* never at the box: `<label for>` aimed at a custom element labels nothing, which axe
|
|
117
|
-
* reports at critical impact.
|
|
118
|
-
*
|
|
119
|
-
* A control written as a direct child, which is every call site that predates the
|
|
120
|
-
* wrapper, matches nothing to descend into and is returned as it is.
|
|
121
|
-
*/
|
|
122
|
-
#control() {
|
|
123
|
-
const slotted = this.#slotted(null);
|
|
124
|
-
// A wrapper carrying a `role` is claiming to *be* the widget rather than to box
|
|
125
|
-
// one, and the descent stops there. `<ui-radio-group>` is the first: it sets
|
|
126
|
-
// `role="radiogroup"` on itself, and the thing this field names is that group —
|
|
127
|
-
// looking through it would reach the first radio, which names one option and
|
|
128
|
-
// leaves the group anonymous.
|
|
129
|
-
if (slotted?.hasAttribute('role') === true) {
|
|
130
|
-
return slotted;
|
|
131
|
-
}
|
|
132
|
-
return slotted?.querySelector('input, textarea, select') ?? slotted;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Points the label, the help and the error at the control.
|
|
136
|
-
*
|
|
137
|
-
* A host-supplied `id` is never overwritten — it may already be referenced by something
|
|
138
|
-
* this element cannot see.
|
|
139
|
-
*/
|
|
140
|
-
#associate() {
|
|
141
|
-
const control = this.#control();
|
|
142
|
-
if (control === undefined) {
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
// Stryker disable next-line UpdateOperator: the contract is that two fields on one
|
|
146
|
-
// page get different ids, and a decrementing counter delivers that as well as an
|
|
147
|
-
// incrementing one — `ui-field--1` is as valid an id as `ui-field-1`. No input
|
|
148
|
-
// distinguishes the two, so this is an equivalent mutant rather than a weak test.
|
|
149
|
-
const uid = (this.#uid ??= `ui-field-${String(++sequence)}`);
|
|
150
|
-
if (control.id === '') {
|
|
151
|
-
control.id = `${uid}-control`;
|
|
152
|
-
}
|
|
153
|
-
this.#name(control, this.#slotted('label'), `${uid}-label`);
|
|
154
|
-
const help = this.#describer(this.#slotted('help'), `${uid}-help`);
|
|
155
|
-
const error = this.#describer(this.#slotted('error'), `${uid}-error`);
|
|
156
|
-
// The error comes first: a screen reader announces descriptions in order, and the
|
|
157
|
-
// user needs to know what is wrong before reading how the value should look.
|
|
158
|
-
//
|
|
159
|
-
// The error SUPPLEMENTS the help rather than replacing it. Help text is usually the
|
|
160
|
-
// format requirement, which is exactly the error suggestion the user needs in order
|
|
161
|
-
// to recover (WCAG 3.3.3) — dropping it at the moment it becomes useful is the
|
|
162
|
-
// opposite of helping.
|
|
163
|
-
//
|
|
164
|
-
// And a description this field did not write survives all of it, which is the same
|
|
165
|
-
// courtesy the `id` above gets and for the same reason: something this element
|
|
166
|
-
// cannot see may have put it there. `<ui-tooltip>` is the first to do so, and it
|
|
167
|
-
// was measured being erased — not on the first association, which runs before the
|
|
168
|
-
// tooltip wires, but on the next one, when a re-render moves the help text and the
|
|
169
|
-
// list is rebuilt from what this field alone knows about.
|
|
170
|
-
const described = [error, help, ...this.#foreign(control, uid, [error, help])].filter((id) => id !== undefined);
|
|
171
|
-
if (described.length > 0) {
|
|
172
|
-
control.setAttribute('aria-describedby', described.join(' '));
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
control.removeAttribute('aria-describedby');
|
|
176
|
-
}
|
|
177
|
-
if (error === undefined) {
|
|
178
|
-
control.removeAttribute('aria-invalid');
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
control.setAttribute('aria-invalid', 'true');
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* The ids already describing `control` that this field is not responsible for.
|
|
186
|
-
*
|
|
187
|
-
* Everything it could have written is excluded rather than remembered: the two ids it
|
|
188
|
-
* generates from `uid`, and whatever the help and error elements are called right now,
|
|
189
|
-
* which may be ids the host supplied. What is left belongs to somebody else and is
|
|
190
|
-
* carried forward in place rather than dropped.
|
|
191
|
-
*/
|
|
192
|
-
#foreign(control, uid, mine) {
|
|
193
|
-
const written = new Set([...mine, `${uid}-help`, `${uid}-error`]);
|
|
194
|
-
return (control.getAttribute('aria-describedby') ?? '')
|
|
195
|
-
.split(' ')
|
|
196
|
-
.filter((id) => id !== '' && !written.has(id));
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Gives the control its accessible name from whatever fills the label slot.
|
|
200
|
-
*
|
|
201
|
-
* **`<label for>` is preferred wherever it reaches**, because it is the platform's own
|
|
202
|
-
* association and it does two things `aria-labelledby` does not: it names the control
|
|
203
|
-
* and it makes the label a click target for it. It only reaches a **labelable**
|
|
204
|
-
* element, though, and `<ui-radio-group>` is not one — a `<label for>` aimed at a
|
|
205
|
-
* custom element labels nothing, which axe reports at critical impact.
|
|
206
|
-
*
|
|
207
|
-
* Which elements are labelable is asked of the platform rather than listed here: those
|
|
208
|
-
* are exactly the ones it gives a `labels` collection to. A list kept in this file
|
|
209
|
-
* would be one the next labelable element ages out of, silently.
|
|
210
|
-
*
|
|
211
|
-
* The name is dropped when the slot empties, the way `aria-describedby` is: a group
|
|
212
|
-
* left pointing at a label that is no longer there has a dangling IDREF, which is the
|
|
213
|
-
* one failure mode nobody sees — the group simply stops having a name.
|
|
214
|
-
*
|
|
215
|
-
* @param fallbackId - Given to the label only on the path that needs one to point at.
|
|
216
|
-
* A host-supplied id survives, the same way the control's and the describers' do.
|
|
217
|
-
*/
|
|
218
|
-
#name(control, label, fallbackId) {
|
|
219
|
-
if ('labels' in control) {
|
|
220
|
-
if (label instanceof HTMLLabelElement) {
|
|
221
|
-
label.htmlFor = control.id;
|
|
222
|
-
}
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
if (label === undefined) {
|
|
226
|
-
control.removeAttribute('aria-labelledby');
|
|
227
|
-
return;
|
|
228
|
-
}
|
|
229
|
-
if (label.id === '') {
|
|
230
|
-
label.id = fallbackId;
|
|
231
|
-
}
|
|
232
|
-
control.setAttribute('aria-labelledby', label.id);
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* The id to describe the control by, or `undefined` when the element is absent or has
|
|
236
|
-
* nothing to say. An element rendered empty — the shape a framework produces for
|
|
237
|
-
* "no error yet" — must not mark the control invalid.
|
|
238
|
-
*/
|
|
239
|
-
#describer(element, fallbackId) {
|
|
240
|
-
if (element === undefined || element.textContent.trim() === '') {
|
|
241
|
-
return undefined;
|
|
242
|
-
}
|
|
243
|
-
if (element.id === '') {
|
|
244
|
-
element.id = fallbackId;
|
|
245
|
-
}
|
|
246
|
-
return element.id;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
// Stryker disable next-line StringLiteral: the registration runs once, at import, inside
|
|
250
|
-
// the warm process Stryker switches mutants in — so by the time a mutant on this line is
|
|
251
|
-
// active the element is already defined under the original name, and no test can observe
|
|
252
|
-
// the change. Outside the runner's reach, not an equivalent mutant.
|
|
253
|
-
customElements.define('ui-field', UiField);
|
|
254
|
-
//# sourceMappingURL=field.js.map
|
package/dist/field.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field.js","sourceRoot":"","sources":["../src/field.ts"],"names":[],"mappings":"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"}
|