@fusion.dev/helix-headless 0.111.0 → 0.111.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/custom-elements.json +27 -3
- package/dist/checkbox/root/checkbox-root.d.ts +3 -1
- package/dist/checkbox/root/checkbox-root.js +2 -1
- package/dist/option/root/option-root.d.ts +7 -0
- package/dist/option/root/option-root.js +3 -3
- package/dist/radio/root/radio-root.d.ts +3 -1
- package/dist/radio/root/radio-root.js +2 -1
- package/dist/switch/root/switch-root.d.ts +3 -1
- package/dist/switch/root/switch-root.js +2 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +26 -4
- package/types/vue.d.ts +5 -1
package/custom-elements.json
CHANGED
|
@@ -20103,6 +20103,14 @@
|
|
|
20103
20103
|
"readonly": true,
|
|
20104
20104
|
"default": "new AriaForwardController(this, { target: () => this.partNamed('control'), })"
|
|
20105
20105
|
},
|
|
20106
|
+
{
|
|
20107
|
+
"kind": "field",
|
|
20108
|
+
"name": "clicks",
|
|
20109
|
+
"privacy": "protected",
|
|
20110
|
+
"readonly": true,
|
|
20111
|
+
"default": "new HostClickController(this, () => this.partNamed('control'))",
|
|
20112
|
+
"description": "A click on the element itself, `click()` or a page's `<label for>`, toggles it."
|
|
20113
|
+
},
|
|
20106
20114
|
{
|
|
20107
20115
|
"kind": "field",
|
|
20108
20116
|
"name": "indeterminate",
|
|
@@ -80166,7 +80174,7 @@
|
|
|
80166
80174
|
"text": "string"
|
|
80167
80175
|
},
|
|
80168
80176
|
"default": "''",
|
|
80169
|
-
"description": "A shorter name for this choice, for where the row does not fit.\n\n`<option label>`'s own meaning: the text a chooser shows when it has less\nroom than the row does, which is what a select's closed trigger has. Empty\nmeans the row's own content, which is the common case and is why this is not\nsimply the accessible name.",
|
|
80177
|
+
"description": "A shorter name for this choice, for where the row does not fit.\n\n`<option label>`'s own meaning: the text a chooser shows when it has less\nroom than the row does, which is what a select's closed trigger has. Empty\nmeans the row's own content, which is the common case and is why this is not\nsimply the accessible name.\n\n**An option with a label and nothing in it shows the label**, as\n`<option label>` does: written the platform's way, a select listed a row of\nnothing for every choice.",
|
|
80170
80178
|
"attribute": "label"
|
|
80171
80179
|
},
|
|
80172
80180
|
{
|
|
@@ -80195,7 +80203,7 @@
|
|
|
80195
80203
|
"type": {
|
|
80196
80204
|
"text": "string"
|
|
80197
80205
|
},
|
|
80198
|
-
"description": "The option's text, which a listbox matches typed text against.\n\nRead from the rendered content rather than required as a property, because\nthe content is where a consumer naturally puts it and asking for both is\nasking for two things to disagree.\n\n**The default slot's content, never `this.textContent`.** An option holds\nthree slots: the words, plus `start` for an icon and `end` for a shortcut\nor a count. Neither of the latter two is what a reader searched for, and\n`textContent` runs both onto the end of it. Measured on a font picker whose\noptions carry a two-letter specimen in `end`: the field read\n`Noto Sans Linear BAg`, and typing `ag` matched 1,892 of 1,893 options,\nevery row containing the sample. An option with a keyboard shortcut in its\nend slot has the same fault and a worse one, every row carrying one matching\nevery letter of it.\n\nSix things read this: the collapsed field of Select and of Combobox, the\nlistbox's filter, Combobox's match against typed text, its inline\ncompletion, and the label on a chosen tag.\n\nA node goes to the default slot when it names no other, which is the rule\nthe platform applies at assignment. Asking the same question here rather\nthan a second one is what stops the two disagreeing. Text nodes are\nalways the default slot's and cannot say otherwise.\n\n**Text and elements, named rather than \"not an element\".** The filter read\n`!(node instanceof Element) || node.slot === ''`, which admits a comment,\nand `textContent` on a comment is the comment's own body. Every option Lit\nrenders carries one: a child binding is marked with `<!--?lit$1234$-->`, so\nan option written as `` html`<${option}>${size}</${option}>` `` read back as\n`?lit$090648746$25`. Measured in `pagination/footer`, where the trigger\npainted exactly that instead of `25`, on both twins.\n\nIt is worse than one wrong label, because of the six readers listed above:\nthe filter and Combobox's match compare against this string, so a marker in\nit is in every comparison too.",
|
|
80206
|
+
"description": "The option's text, which a listbox matches typed text against.\n\nRead from the rendered content rather than required as a property, because\nthe content is where a consumer naturally puts it and asking for both is\nasking for two things to disagree.\n\n**The default slot's content, never `this.textContent`.** An option holds\nthree slots: the words, plus `start` for an icon and `end` for a shortcut\nor a count. Neither of the latter two is what a reader searched for, and\n`textContent` runs both onto the end of it. Measured on a font picker whose\noptions carry a two-letter specimen in `end`: the field read\n`Noto Sans Linear BAg`, and typing `ag` matched 1,892 of 1,893 options,\nevery row containing the sample. An option with a keyboard shortcut in its\nend slot has the same fault and a worse one, every row carrying one matching\nevery letter of it.\n\nSix things read this: the collapsed field of Select and of Combobox, the\nlistbox's filter, Combobox's match against typed text, its inline\ncompletion, and the label on a chosen tag.\n\nA node goes to the default slot when it names no other, which is the rule\nthe platform applies at assignment. Asking the same question here rather\nthan a second one is what stops the two disagreeing. Text nodes are\nalways the default slot's and cannot say otherwise.\n\n**Text and elements, named rather than \"not an element\".** The filter read\n`!(node instanceof Element) || node.slot === ''`, which admits a comment,\nand `textContent` on a comment is the comment's own body. Every option Lit\nrenders carries one: a child binding is marked with `<!--?lit$1234$-->`, so\nan option written as `` html`<${option}>${size}</${option}>` `` read back as\n`?lit$090648746$25`. Measured in `pagination/footer`, where the trigger\npainted exactly that instead of `25`, on both twins.\n\nIt is worse than one wrong label, because of the six readers listed above:\nthe filter and Combobox's match compare against this string, so a marker in\nit is in every comparison too.\n\n**The `label` where the slot holds nothing**, which is what the row shows\nthen, so the six read the words a reader sees.",
|
|
80199
80207
|
"readonly": true
|
|
80200
80208
|
},
|
|
80201
80209
|
{
|
|
@@ -80597,7 +80605,7 @@
|
|
|
80597
80605
|
"text": "string"
|
|
80598
80606
|
},
|
|
80599
80607
|
"default": "''",
|
|
80600
|
-
"description": "A shorter name for this choice, for where the row does not fit.\n\n`<option label>`'s own meaning: the text a chooser shows when it has less\nroom than the row does, which is what a select's closed trigger has. Empty\nmeans the row's own content, which is the common case and is why this is not\nsimply the accessible name.",
|
|
80608
|
+
"description": "A shorter name for this choice, for where the row does not fit.\n\n`<option label>`'s own meaning: the text a chooser shows when it has less\nroom than the row does, which is what a select's closed trigger has. Empty\nmeans the row's own content, which is the common case and is why this is not\nsimply the accessible name.\n\n**An option with a label and nothing in it shows the label**, as\n`<option label>` does: written the platform's way, a select listed a row of\nnothing for every choice.",
|
|
80601
80609
|
"fieldName": "label"
|
|
80602
80610
|
},
|
|
80603
80611
|
{
|
|
@@ -88838,6 +88846,14 @@
|
|
|
88838
88846
|
}
|
|
88839
88847
|
],
|
|
88840
88848
|
"members": [
|
|
88849
|
+
{
|
|
88850
|
+
"kind": "field",
|
|
88851
|
+
"name": "clicks",
|
|
88852
|
+
"privacy": "protected",
|
|
88853
|
+
"readonly": true,
|
|
88854
|
+
"default": "new HostClickController(this, () => this.partNamed('item'))",
|
|
88855
|
+
"description": "A click on the element itself, `click()` included, chooses it."
|
|
88856
|
+
},
|
|
88841
88857
|
{
|
|
88842
88858
|
"kind": "field",
|
|
88843
88859
|
"name": "defaultSelected",
|
|
@@ -101776,6 +101792,14 @@
|
|
|
101776
101792
|
"readonly": true,
|
|
101777
101793
|
"default": "new AriaForwardController(this, { target: () => this.partNamed('control'), })"
|
|
101778
101794
|
},
|
|
101795
|
+
{
|
|
101796
|
+
"kind": "field",
|
|
101797
|
+
"name": "clicks",
|
|
101798
|
+
"privacy": "protected",
|
|
101799
|
+
"readonly": true,
|
|
101800
|
+
"default": "new HostClickController(this, () => this.partNamed('control'))",
|
|
101801
|
+
"description": "A click on the element itself, `click()` or a page's `<label for>`, toggles it."
|
|
101802
|
+
},
|
|
101779
101803
|
{
|
|
101780
101804
|
"kind": "field",
|
|
101781
101805
|
"name": "value",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AriaForwardController, HelixFormElement } from '@fusion.dev/helix-core';
|
|
1
|
+
import { AriaForwardController, HelixFormElement, HostClickController } from '@fusion.dev/helix-core';
|
|
2
2
|
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
3
|
declare const HelixHeadlessCheckbox_base: (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerCheckedInterface) & (new (...args: any[]) => import("@fusion.dev/helix-core").MixinFieldInterface) & typeof HelixFormElement;
|
|
4
4
|
/**
|
|
@@ -49,6 +49,8 @@ declare const HelixHeadlessCheckbox_base: (new (...args: any[]) => import("@fusi
|
|
|
49
49
|
*/
|
|
50
50
|
export declare class HelixHeadlessCheckbox extends HelixHeadlessCheckbox_base {
|
|
51
51
|
protected readonly aria: AriaForwardController;
|
|
52
|
+
/** A click on the element itself, `click()` or a page's `<label for>`, toggles it. */
|
|
53
|
+
protected readonly clicks: HostClickController;
|
|
52
54
|
/**
|
|
53
55
|
* Shows the box as neither checked nor unchecked.
|
|
54
56
|
*
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { AriaForwardController, customElement, HelixFormElement, MixinControllerChecked, MixinField, } from '@fusion.dev/helix-core';
|
|
7
|
+
import { AriaForwardController, customElement, HelixFormElement, HostClickController, MixinControllerChecked, MixinField, } from '@fusion.dev/helix-core';
|
|
8
8
|
import { html, nothing } from 'lit';
|
|
9
9
|
import { property } from 'lit/decorators.js';
|
|
10
10
|
let HelixHeadlessCheckbox = class HelixHeadlessCheckbox extends MixinControllerChecked(MixinField(HelixFormElement)) {
|
|
@@ -13,6 +13,7 @@ let HelixHeadlessCheckbox = class HelixHeadlessCheckbox extends MixinControllerC
|
|
|
13
13
|
this.aria = new AriaForwardController(this, {
|
|
14
14
|
target: () => this.partNamed('control'),
|
|
15
15
|
});
|
|
16
|
+
this.clicks = new HostClickController(this, () => this.partNamed('control'));
|
|
16
17
|
this.indeterminate = false;
|
|
17
18
|
this.value = 'on';
|
|
18
19
|
this.handleChange = (event) => {
|
|
@@ -152,6 +152,10 @@ export declare class HelixHeadlessOption extends HelixElement {
|
|
|
152
152
|
* room than the row does, which is what a select's closed trigger has. Empty
|
|
153
153
|
* means the row's own content, which is the common case and is why this is not
|
|
154
154
|
* simply the accessible name.
|
|
155
|
+
*
|
|
156
|
+
* **An option with a label and nothing in it shows the label**, as
|
|
157
|
+
* `<option label>` does: written the platform's way, a select listed a row of
|
|
158
|
+
* nothing for every choice.
|
|
155
159
|
*/
|
|
156
160
|
label: string;
|
|
157
161
|
/**
|
|
@@ -201,6 +205,9 @@ export declare class HelixHeadlessOption extends HelixElement {
|
|
|
201
205
|
* It is worse than one wrong label, because of the six readers listed above:
|
|
202
206
|
* the filter and Combobox's match compare against this string, so a marker in
|
|
203
207
|
* it is in every comparison too.
|
|
208
|
+
*
|
|
209
|
+
* **The `label` where the slot holds nothing**, which is what the row shows
|
|
210
|
+
* then, so the six read the words a reader sees.
|
|
204
211
|
*/
|
|
205
212
|
get text(): string;
|
|
206
213
|
/** Sends `helix-select` for this option. Does nothing when it is disabled. */
|
|
@@ -29,11 +29,11 @@ let HelixHeadlessOption = class HelixHeadlessOption extends HelixElement {
|
|
|
29
29
|
this.toggleAttribute('selected', next);
|
|
30
30
|
}
|
|
31
31
|
get text() {
|
|
32
|
-
return [...this.childNodes]
|
|
32
|
+
return ([...this.childNodes]
|
|
33
33
|
.filter((node) => node.nodeType === Node.TEXT_NODE || (node instanceof Element && node.slot === ''))
|
|
34
34
|
.map((node) => node.textContent ?? '')
|
|
35
35
|
.join('')
|
|
36
|
-
.trim();
|
|
36
|
+
.trim() || this.label);
|
|
37
37
|
}
|
|
38
38
|
select() {
|
|
39
39
|
if (this.disabled) {
|
|
@@ -57,7 +57,7 @@ let HelixHeadlessOption = class HelixHeadlessOption extends HelixElement {
|
|
|
57
57
|
>
|
|
58
58
|
<slot name="start"></slot>
|
|
59
59
|
<span part="text">
|
|
60
|
-
<span part="label"><slot
|
|
60
|
+
<span part="label"><slot>${this.label}</slot></span>
|
|
61
61
|
${this.description ? html `<span part="description">${this.description}</span>` : nothing}
|
|
62
62
|
</span>
|
|
63
63
|
<slot name="end"></slot>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HelixElement } from '@fusion.dev/helix-core';
|
|
1
|
+
import { HelixElement, HostClickController } from '@fusion.dev/helix-core';
|
|
2
2
|
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
3
|
declare const HelixHeadlessRadio_base: (new (...args: any[]) => import("@fusion.dev/helix-core").MixinSelectableItemInterface) & typeof HelixElement;
|
|
4
4
|
/**
|
|
@@ -41,6 +41,8 @@ declare const HelixHeadlessRadio_base: (new (...args: any[]) => import("@fusion.
|
|
|
41
41
|
* @cssstate selected - The radio is chosen.
|
|
42
42
|
*/
|
|
43
43
|
export declare class HelixHeadlessRadio extends HelixHeadlessRadio_base {
|
|
44
|
+
/** A click on the element itself, `click()` included, chooses it. */
|
|
45
|
+
protected readonly clicks: HostClickController;
|
|
44
46
|
/**
|
|
45
47
|
* Whether the markup declares the radio chosen. A form reset returns to it.
|
|
46
48
|
*
|
|
@@ -4,12 +4,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { customElement, HelixElement, MixinSelectableItem } from '@fusion.dev/helix-core';
|
|
7
|
+
import { customElement, HelixElement, HostClickController, MixinSelectableItem, } from '@fusion.dev/helix-core';
|
|
8
8
|
import { html } from 'lit';
|
|
9
9
|
import { property } from 'lit/decorators.js';
|
|
10
10
|
let HelixHeadlessRadio = class HelixHeadlessRadio extends MixinSelectableItem(HelixElement) {
|
|
11
11
|
constructor() {
|
|
12
12
|
super(...arguments);
|
|
13
|
+
this.clicks = new HostClickController(this, () => this.partNamed('item'));
|
|
13
14
|
this.focusable = false;
|
|
14
15
|
}
|
|
15
16
|
get defaultSelected() {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AriaForwardController, HelixFormElement } from '@fusion.dev/helix-core';
|
|
1
|
+
import { AriaForwardController, HelixFormElement, HostClickController } from '@fusion.dev/helix-core';
|
|
2
2
|
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
3
|
declare const HelixHeadlessSwitch_base: (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerCheckedInterface) & (new (...args: any[]) => import("@fusion.dev/helix-core").MixinFieldInterface) & typeof HelixFormElement;
|
|
4
4
|
/**
|
|
@@ -45,6 +45,8 @@ declare const HelixHeadlessSwitch_base: (new (...args: any[]) => import("@fusion
|
|
|
45
45
|
*/
|
|
46
46
|
export declare class HelixHeadlessSwitch extends HelixHeadlessSwitch_base {
|
|
47
47
|
protected readonly aria: AriaForwardController;
|
|
48
|
+
/** A click on the element itself, `click()` or a page's `<label for>`, toggles it. */
|
|
49
|
+
protected readonly clicks: HostClickController;
|
|
48
50
|
/**
|
|
49
51
|
* Value submitted when the switch is on.
|
|
50
52
|
*/
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { AriaForwardController, customElement, HelixFormElement, MixinControllerChecked, MixinField, markRegion, } from '@fusion.dev/helix-core';
|
|
7
|
+
import { AriaForwardController, customElement, HelixFormElement, HostClickController, MixinControllerChecked, MixinField, markRegion, } from '@fusion.dev/helix-core';
|
|
8
8
|
import { html, nothing } from 'lit';
|
|
9
9
|
import { property } from 'lit/decorators.js';
|
|
10
10
|
let HelixHeadlessSwitch = class HelixHeadlessSwitch extends MixinControllerChecked(MixinField(HelixFormElement)) {
|
|
@@ -13,6 +13,7 @@ let HelixHeadlessSwitch = class HelixHeadlessSwitch extends MixinControllerCheck
|
|
|
13
13
|
this.aria = new AriaForwardController(this, {
|
|
14
14
|
target: () => this.partNamed('control'),
|
|
15
15
|
});
|
|
16
|
+
this.clicks = new HostClickController(this, () => this.partNamed('control'));
|
|
16
17
|
this.value = 'on';
|
|
17
18
|
this.handleChange = (event) => {
|
|
18
19
|
event.stopPropagation();
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fusion.dev/helix-headless",
|
|
3
3
|
"description": "Headless component tier. Structure, accessibility, state, and form participation. No styling.",
|
|
4
|
-
"version": "0.111.
|
|
4
|
+
"version": "0.111.1",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ross Sheppard <ross.sheppard@fusion.dev>",
|
|
7
7
|
"repository": {
|
|
@@ -46,13 +46,13 @@
|
|
|
46
46
|
},
|
|
47
47
|
"bugs": "https://github.com/project-fusion/fusion/issues",
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@fusion.dev/helix-core": "0.111.
|
|
50
|
-
"@fusion.dev/helix-icons": "0.111.
|
|
49
|
+
"@fusion.dev/helix-core": "0.111.1",
|
|
50
|
+
"@fusion.dev/helix-icons": "0.111.1",
|
|
51
51
|
"uqr": "^0.1.3"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@fusion.dev/helix-cem": "0.111.
|
|
55
|
-
"@fusion.dev/helix-testing": "0.111.
|
|
54
|
+
"@fusion.dev/helix-cem": "0.111.1",
|
|
55
|
+
"@fusion.dev/helix-testing": "0.111.1",
|
|
56
56
|
"@fusion.dev/scripts": "0.0.0-dev",
|
|
57
57
|
"@happy-dom/global-registrator": "^20.0.0",
|
|
58
58
|
"@lit-labs/ssr": "^4.1.0",
|
package/types/jsx.d.ts
CHANGED
|
@@ -14399,7 +14399,11 @@ string is not a fact a selector needs. */
|
|
|
14399
14399
|
`<option label>`'s own meaning: the text a chooser shows when it has less
|
|
14400
14400
|
room than the row does, which is what a select's closed trigger has. Empty
|
|
14401
14401
|
means the row's own content, which is the common case and is why this is not
|
|
14402
|
-
simply the accessible name.
|
|
14402
|
+
simply the accessible name.
|
|
14403
|
+
|
|
14404
|
+
**An option with a label and nothing in it shows the label**, as
|
|
14405
|
+
`<option label>` does: written the platform's way, a select listed a row of
|
|
14406
|
+
nothing for every choice. */
|
|
14403
14407
|
label?: (HelixHeadlessOption["label"]) | undefined;
|
|
14404
14408
|
/** Whether this choice is currently chosen.
|
|
14405
14409
|
|
|
@@ -14506,7 +14510,11 @@ string is not a fact a selector needs. */
|
|
|
14506
14510
|
`<option label>`'s own meaning: the text a chooser shows when it has less
|
|
14507
14511
|
room than the row does, which is what a select's closed trigger has. Empty
|
|
14508
14512
|
means the row's own content, which is the common case and is why this is not
|
|
14509
|
-
simply the accessible name.
|
|
14513
|
+
simply the accessible name.
|
|
14514
|
+
|
|
14515
|
+
**An option with a label and nothing in it shows the label**, as
|
|
14516
|
+
`<option label>` does: written the platform's way, a select listed a row of
|
|
14517
|
+
nothing for every choice. */
|
|
14510
14518
|
"prop:label"?: (HelixHeadlessOption["label"]) | undefined;
|
|
14511
14519
|
/** Whether this choice is currently chosen.
|
|
14512
14520
|
|
|
@@ -35026,6 +35034,10 @@ export type CustomElements = {
|
|
|
35026
35034
|
* room than the row does, which is what a select's closed trigger has. Empty
|
|
35027
35035
|
* means the row's own content, which is the common case and is why this is not
|
|
35028
35036
|
* simply the accessible name.
|
|
35037
|
+
*
|
|
35038
|
+
* **An option with a label and nothing in it shows the label**, as
|
|
35039
|
+
* `<option label>` does: written the platform's way, a select listed a row of
|
|
35040
|
+
* nothing for every choice.
|
|
35029
35041
|
* - `selected`: Whether this choice is currently chosen.
|
|
35030
35042
|
*
|
|
35031
35043
|
* Written by the listbox.
|
|
@@ -35090,7 +35102,10 @@ export type CustomElements = {
|
|
|
35090
35102
|
*
|
|
35091
35103
|
* It is worse than one wrong label, because of the six readers listed above:
|
|
35092
35104
|
* the filter and Combobox's match compare against this string, so a marker in
|
|
35093
|
-
* it is in every comparison too.
|
|
35105
|
+
* it is in every comparison too.
|
|
35106
|
+
*
|
|
35107
|
+
* **The `label` where the slot holds nothing**, which is what the row shows
|
|
35108
|
+
* then, so the six read the words a reader sees. (property only) (readonly)
|
|
35094
35109
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
35095
35110
|
*
|
|
35096
35111
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -55118,6 +55133,10 @@ export type CustomElementsSolidJs = {
|
|
|
55118
55133
|
* room than the row does, which is what a select's closed trigger has. Empty
|
|
55119
55134
|
* means the row's own content, which is the common case and is why this is not
|
|
55120
55135
|
* simply the accessible name.
|
|
55136
|
+
*
|
|
55137
|
+
* **An option with a label and nothing in it shows the label**, as
|
|
55138
|
+
* `<option label>` does: written the platform's way, a select listed a row of
|
|
55139
|
+
* nothing for every choice.
|
|
55121
55140
|
* - `selected`: Whether this choice is currently chosen.
|
|
55122
55141
|
*
|
|
55123
55142
|
* Written by the listbox.
|
|
@@ -55182,7 +55201,10 @@ export type CustomElementsSolidJs = {
|
|
|
55182
55201
|
*
|
|
55183
55202
|
* It is worse than one wrong label, because of the six readers listed above:
|
|
55184
55203
|
* the filter and Combobox's match compare against this string, so a marker in
|
|
55185
|
-
* it is in every comparison too.
|
|
55204
|
+
* it is in every comparison too.
|
|
55205
|
+
*
|
|
55206
|
+
* **The `label` where the slot holds nothing**, which is what the row shows
|
|
55207
|
+
* then, so the six read the words a reader sees. (property only) (readonly)
|
|
55186
55208
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
55187
55209
|
*
|
|
55188
55210
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
package/types/vue.d.ts
CHANGED
|
@@ -7421,7 +7421,11 @@ string is not a fact a selector needs. */
|
|
|
7421
7421
|
`<option label>`'s own meaning: the text a chooser shows when it has less
|
|
7422
7422
|
room than the row does, which is what a select's closed trigger has. Empty
|
|
7423
7423
|
means the row's own content, which is the common case and is why this is not
|
|
7424
|
-
simply the accessible name.
|
|
7424
|
+
simply the accessible name.
|
|
7425
|
+
|
|
7426
|
+
**An option with a label and nothing in it shows the label**, as
|
|
7427
|
+
`<option label>` does: written the platform's way, a select listed a row of
|
|
7428
|
+
nothing for every choice. */
|
|
7425
7429
|
label?: (HelixHeadlessOption["label"]) | undefined;
|
|
7426
7430
|
/** Whether this choice is currently chosen.
|
|
7427
7431
|
|