@fusion.dev/helix-headless 0.12.1 → 0.12.3
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 +124 -19
- package/dist/combobox/root/combobox-root.d.ts +9 -16
- package/dist/combobox/root/combobox-root.js +10 -18
- package/package.json +5 -5
- package/types/jsx.d.ts +10 -76
- package/types/vue.d.ts +4 -26
package/custom-elements.json
CHANGED
|
@@ -14003,16 +14003,6 @@
|
|
|
14003
14003
|
"description": "What the list says while they are on their way.",
|
|
14004
14004
|
"attribute": "loading-text"
|
|
14005
14005
|
},
|
|
14006
|
-
{
|
|
14007
|
-
"kind": "field",
|
|
14008
|
-
"name": "maxTags",
|
|
14009
|
-
"type": {
|
|
14010
|
-
"text": "number"
|
|
14011
|
-
},
|
|
14012
|
-
"default": "0",
|
|
14013
|
-
"description": "How many tags to draw before the rest become a count. `multiple` only.\n\n`0` is all of them, and is the default: a cap that guesses is worse than no\ncap, because the number that fits depends on the width of the field and the\nlength of what is in it, neither of which this element knows. What a cap is\ngenuinely for is a field in a row or a table cell, where a set of twelve\nchoices would push everything below it down a line at a time.\n\nThe remainder is counted rather than hidden. `+3` is a fact a reader can act\non, where a row that silently stops is a field that appears to have lost\nwhat was put in it. Date Input and Time Input carry the same property and\nthe same reasoning.",
|
|
14014
|
-
"attribute": "max-tags"
|
|
14015
|
-
},
|
|
14016
14006
|
{
|
|
14017
14007
|
"kind": "field",
|
|
14018
14008
|
"name": "multiple",
|
|
@@ -14262,6 +14252,21 @@
|
|
|
14262
14252
|
"readonly": true,
|
|
14263
14253
|
"description": "Anywhere in the field opens the list, and puts the caret where typing goes.\n\nOn the field rather than on the `<input>`. The caret is a sibling of the\ninput and so is the tag strip, so a handler on the input alone leaves the\none part of the control that visibly says \"this opens\" doing nothing.\nAnything drawn inside the field is the field.\n\nA tag is the exception, because a tag is its own control: its dismiss\nremoves a choice, and opening the list on the way past would leave the\nreader looking at a panel they did not ask for. Read from the composed\npath, since the press lands on a button inside the tag's shadow root and\nthe event has retargeted by the time it arrives here.\n\nIt only ever opens. Closing is Escape, a choice, or leaving, which is what\nthe input already did and what a text field wants: a control that closed\nwhen you clicked into the middle of your own typing would be unusable."
|
|
14264
14254
|
},
|
|
14255
|
+
{
|
|
14256
|
+
"kind": "method",
|
|
14257
|
+
"name": "removeLastToken",
|
|
14258
|
+
"privacy": "protected",
|
|
14259
|
+
"return": {
|
|
14260
|
+
"type": {
|
|
14261
|
+
"text": "void"
|
|
14262
|
+
}
|
|
14263
|
+
},
|
|
14264
|
+
"description": "The last chosen one goes, which is what Backspace on an empty field means.\n\n`MixinTokens` owns when this is asked for and this owns what it does: a\ntoken here is a chosen option, so it leaves by the same door a dismissed\ntag does.",
|
|
14265
|
+
"inheritedFrom": {
|
|
14266
|
+
"name": "MixinTokens",
|
|
14267
|
+
"module": "src/mixins/mixin-tokens/mixin-tokens.ts"
|
|
14268
|
+
}
|
|
14269
|
+
},
|
|
14265
14270
|
{
|
|
14266
14271
|
"kind": "field",
|
|
14267
14272
|
"name": "handleDismiss",
|
|
@@ -14427,6 +14432,98 @@
|
|
|
14427
14432
|
"text": "toggleOpen() => boolean"
|
|
14428
14433
|
}
|
|
14429
14434
|
},
|
|
14435
|
+
{
|
|
14436
|
+
"kind": "field",
|
|
14437
|
+
"name": "maxTags",
|
|
14438
|
+
"type": {
|
|
14439
|
+
"text": "number"
|
|
14440
|
+
},
|
|
14441
|
+
"default": "0",
|
|
14442
|
+
"description": "How many tokens to show before the rest become a count.",
|
|
14443
|
+
"attribute": "max-tags",
|
|
14444
|
+
"inheritedFrom": {
|
|
14445
|
+
"name": "MixinTokens",
|
|
14446
|
+
"module": "src/mixins/mixin-tokens/mixin-tokens.ts"
|
|
14447
|
+
}
|
|
14448
|
+
},
|
|
14449
|
+
{
|
|
14450
|
+
"kind": "method",
|
|
14451
|
+
"name": "renderTokenRow",
|
|
14452
|
+
"privacy": "protected",
|
|
14453
|
+
"return": {
|
|
14454
|
+
"type": {
|
|
14455
|
+
"text": "TemplateResult | typeof nothing"
|
|
14456
|
+
}
|
|
14457
|
+
},
|
|
14458
|
+
"parameters": [
|
|
14459
|
+
{
|
|
14460
|
+
"name": "content",
|
|
14461
|
+
"type": {
|
|
14462
|
+
"text": "unknown"
|
|
14463
|
+
}
|
|
14464
|
+
},
|
|
14465
|
+
{
|
|
14466
|
+
"name": "over",
|
|
14467
|
+
"type": {
|
|
14468
|
+
"text": "number"
|
|
14469
|
+
}
|
|
14470
|
+
}
|
|
14471
|
+
],
|
|
14472
|
+
"inheritedFrom": {
|
|
14473
|
+
"name": "MixinTokens",
|
|
14474
|
+
"module": "src/mixins/mixin-tokens/mixin-tokens.ts"
|
|
14475
|
+
}
|
|
14476
|
+
},
|
|
14477
|
+
{
|
|
14478
|
+
"kind": "method",
|
|
14479
|
+
"name": "hideOverflow",
|
|
14480
|
+
"privacy": "protected",
|
|
14481
|
+
"return": {
|
|
14482
|
+
"type": {
|
|
14483
|
+
"text": "number"
|
|
14484
|
+
}
|
|
14485
|
+
},
|
|
14486
|
+
"parameters": [
|
|
14487
|
+
{
|
|
14488
|
+
"name": "slot",
|
|
14489
|
+
"type": {
|
|
14490
|
+
"text": "HTMLSlotElement | null | undefined"
|
|
14491
|
+
}
|
|
14492
|
+
}
|
|
14493
|
+
],
|
|
14494
|
+
"inheritedFrom": {
|
|
14495
|
+
"name": "MixinTokens",
|
|
14496
|
+
"module": "src/mixins/mixin-tokens/mixin-tokens.ts"
|
|
14497
|
+
}
|
|
14498
|
+
},
|
|
14499
|
+
{
|
|
14500
|
+
"kind": "method",
|
|
14501
|
+
"name": "tokenKeydown",
|
|
14502
|
+
"privacy": "protected",
|
|
14503
|
+
"return": {
|
|
14504
|
+
"type": {
|
|
14505
|
+
"text": "boolean"
|
|
14506
|
+
}
|
|
14507
|
+
},
|
|
14508
|
+
"parameters": [
|
|
14509
|
+
{
|
|
14510
|
+
"name": "event",
|
|
14511
|
+
"type": {
|
|
14512
|
+
"text": "KeyboardEvent"
|
|
14513
|
+
}
|
|
14514
|
+
},
|
|
14515
|
+
{
|
|
14516
|
+
"name": "typed",
|
|
14517
|
+
"type": {
|
|
14518
|
+
"text": "string"
|
|
14519
|
+
}
|
|
14520
|
+
}
|
|
14521
|
+
],
|
|
14522
|
+
"inheritedFrom": {
|
|
14523
|
+
"name": "MixinTokens",
|
|
14524
|
+
"module": "src/mixins/mixin-tokens/mixin-tokens.ts"
|
|
14525
|
+
}
|
|
14526
|
+
},
|
|
14430
14527
|
{
|
|
14431
14528
|
"kind": "field",
|
|
14432
14529
|
"name": "defaultValue",
|
|
@@ -15219,15 +15316,6 @@
|
|
|
15219
15316
|
"description": "What the list says while they are on their way.",
|
|
15220
15317
|
"fieldName": "loadingText"
|
|
15221
15318
|
},
|
|
15222
|
-
{
|
|
15223
|
-
"name": "max-tags",
|
|
15224
|
-
"type": {
|
|
15225
|
-
"text": "number"
|
|
15226
|
-
},
|
|
15227
|
-
"default": "0",
|
|
15228
|
-
"description": "How many tags to draw before the rest become a count. `multiple` only.\n\n`0` is all of them, and is the default: a cap that guesses is worse than no\ncap, because the number that fits depends on the width of the field and the\nlength of what is in it, neither of which this element knows. What a cap is\ngenuinely for is a field in a row or a table cell, where a set of twelve\nchoices would push everything below it down a line at a time.\n\nThe remainder is counted rather than hidden. `+3` is a fact a reader can act\non, where a row that silently stops is a field that appears to have lost\nwhat was put in it. Date Input and Time Input carry the same property and\nthe same reasoning.",
|
|
15229
|
-
"fieldName": "maxTags"
|
|
15230
|
-
},
|
|
15231
15319
|
{
|
|
15232
15320
|
"name": "multiple",
|
|
15233
15321
|
"type": {
|
|
@@ -15289,6 +15377,19 @@
|
|
|
15289
15377
|
"module": "src/mixins/mixin-controller-open/mixin-controller-open.ts"
|
|
15290
15378
|
}
|
|
15291
15379
|
},
|
|
15380
|
+
{
|
|
15381
|
+
"name": "max-tags",
|
|
15382
|
+
"type": {
|
|
15383
|
+
"text": "number"
|
|
15384
|
+
},
|
|
15385
|
+
"default": "0",
|
|
15386
|
+
"description": "How many tokens to show before the rest become a count.",
|
|
15387
|
+
"fieldName": "maxTags",
|
|
15388
|
+
"inheritedFrom": {
|
|
15389
|
+
"name": "MixinTokens",
|
|
15390
|
+
"module": "src/mixins/mixin-tokens/mixin-tokens.ts"
|
|
15391
|
+
}
|
|
15392
|
+
},
|
|
15292
15393
|
{
|
|
15293
15394
|
"name": "default-value",
|
|
15294
15395
|
"type": {
|
|
@@ -15398,6 +15499,10 @@
|
|
|
15398
15499
|
"name": "MixinControllerOpen",
|
|
15399
15500
|
"package": "@fusion.dev/helix-core"
|
|
15400
15501
|
},
|
|
15502
|
+
{
|
|
15503
|
+
"name": "MixinTokens",
|
|
15504
|
+
"package": "@fusion.dev/helix-core"
|
|
15505
|
+
},
|
|
15401
15506
|
{
|
|
15402
15507
|
"name": "MixinControllerValue",
|
|
15403
15508
|
"package": "@fusion.dev/helix-core"
|
|
@@ -2,7 +2,7 @@ import { AriaForwardController, HelixFormElement, PopoverController } from '@fus
|
|
|
2
2
|
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
3
|
import '../../listbox/index.js';
|
|
4
4
|
import '../../tag/index.js';
|
|
5
|
-
declare const HelixHeadlessCombobox_base: (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerOpenInterface) & (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerValueInterface) & (new (...args: any[]) => import("@fusion.dev/helix-core").MixinFieldInterface) & typeof HelixFormElement;
|
|
5
|
+
declare const HelixHeadlessCombobox_base: (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerOpenInterface) & (new (...args: any[]) => import("@fusion.dev/helix-core").MixinTokensInterface) & (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerValueInterface) & (new (...args: any[]) => import("@fusion.dev/helix-core").MixinFieldInterface) & typeof HelixFormElement;
|
|
6
6
|
/**
|
|
7
7
|
* @summary A field that filters a list as it is typed into.
|
|
8
8
|
*
|
|
@@ -121,21 +121,6 @@ export declare class HelixHeadlessCombobox extends HelixHeadlessCombobox_base {
|
|
|
121
121
|
* What the list says while they are on their way.
|
|
122
122
|
*/
|
|
123
123
|
loadingText: string;
|
|
124
|
-
/**
|
|
125
|
-
* How many tags to draw before the rest become a count. `multiple` only.
|
|
126
|
-
*
|
|
127
|
-
* `0` is all of them, and is the default: a cap that guesses is worse than no
|
|
128
|
-
* cap, because the number that fits depends on the width of the field and the
|
|
129
|
-
* length of what is in it, neither of which this element knows. What a cap is
|
|
130
|
-
* genuinely for is a field in a row or a table cell, where a set of twelve
|
|
131
|
-
* choices would push everything below it down a line at a time.
|
|
132
|
-
*
|
|
133
|
-
* The remainder is counted rather than hidden. `+3` is a fact a reader can act
|
|
134
|
-
* on, where a row that silently stops is a field that appears to have lost
|
|
135
|
-
* what was put in it. Date Input and Time Input carry the same property and
|
|
136
|
-
* the same reasoning.
|
|
137
|
-
*/
|
|
138
|
-
maxTags: number;
|
|
139
124
|
/**
|
|
140
125
|
* Whether more than one option can be chosen.
|
|
141
126
|
*
|
|
@@ -295,6 +280,14 @@ export declare class HelixHeadlessCombobox extends HelixHeadlessCombobox_base {
|
|
|
295
280
|
* when you clicked into the middle of your own typing would be unusable.
|
|
296
281
|
*/
|
|
297
282
|
private readonly handleFieldClick;
|
|
283
|
+
/**
|
|
284
|
+
* The last chosen one goes, which is what Backspace on an empty field means.
|
|
285
|
+
*
|
|
286
|
+
* `MixinTokens` owns when this is asked for and this owns what it does: a
|
|
287
|
+
* token here is a chosen option, so it leaves by the same door a dismissed
|
|
288
|
+
* tag does.
|
|
289
|
+
*/
|
|
290
|
+
protected removeLastToken(): void;
|
|
298
291
|
/** One tag asking to be taken out of the set. */
|
|
299
292
|
private readonly handleDismiss;
|
|
300
293
|
/**
|
|
@@ -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, HelixCreateEvent, HelixFormElement, MixinControllerOpen, MixinControllerValue, MixinField, PopoverController, } from '@fusion.dev/helix-core';
|
|
7
|
+
import { AriaForwardController, customElement, HelixCreateEvent, HelixFormElement, MixinControllerOpen, MixinControllerValue, MixinField, MixinTokens, PopoverController, } from '@fusion.dev/helix-core';
|
|
8
8
|
import { caretDown } from '@fusion.dev/helix-icons';
|
|
9
9
|
import { nothing } from 'lit';
|
|
10
10
|
import { property, state } from 'lit/decorators.js';
|
|
@@ -13,7 +13,7 @@ import { html } from 'lit/static-html.js';
|
|
|
13
13
|
import '../../listbox/index.js';
|
|
14
14
|
import '../../tag/index.js';
|
|
15
15
|
const isInsertion = (event) => !event.inputType?.startsWith('delete');
|
|
16
|
-
let HelixHeadlessCombobox = class HelixHeadlessCombobox extends MixinControllerOpen(MixinControllerValue(MixinField(HelixFormElement))) {
|
|
16
|
+
let HelixHeadlessCombobox = class HelixHeadlessCombobox extends MixinControllerOpen(MixinTokens(MixinControllerValue(MixinField(HelixFormElement)))) {
|
|
17
17
|
constructor() {
|
|
18
18
|
super(...arguments);
|
|
19
19
|
this.aria = new AriaForwardController(this, {
|
|
@@ -26,7 +26,6 @@ let HelixHeadlessCombobox = class HelixHeadlessCombobox extends MixinControllerO
|
|
|
26
26
|
this.listLabel = 'Options';
|
|
27
27
|
this.loading = false;
|
|
28
28
|
this.loadingText = 'Loading';
|
|
29
|
-
this.maxTags = 0;
|
|
30
29
|
this.multiple = false;
|
|
31
30
|
this.placeholder = '';
|
|
32
31
|
this.removeLabel = 'Remove';
|
|
@@ -71,12 +70,7 @@ let HelixHeadlessCombobox = class HelixHeadlessCombobox extends MixinControllerO
|
|
|
71
70
|
}
|
|
72
71
|
return;
|
|
73
72
|
}
|
|
74
|
-
if (
|
|
75
|
-
const last = this.values.at(-1);
|
|
76
|
-
if (last !== undefined) {
|
|
77
|
-
event.preventDefault();
|
|
78
|
-
this.drop(last);
|
|
79
|
-
}
|
|
73
|
+
if (this.multiple && this.tokenKeydown(event, this.typed)) {
|
|
80
74
|
return;
|
|
81
75
|
}
|
|
82
76
|
if (event.key === 'Enter' && this.creation !== '' && !this.showing) {
|
|
@@ -206,6 +200,12 @@ let HelixHeadlessCombobox = class HelixHeadlessCombobox extends MixinControllerO
|
|
|
206
200
|
const match = (this.listbox?.options ?? []).find((option) => !option.hidden && !option.disabled && option.text.toLowerCase().startsWith(needle));
|
|
207
201
|
return match && match.text.length > typed.length ? match.text : '';
|
|
208
202
|
}
|
|
203
|
+
removeLastToken() {
|
|
204
|
+
const last = this.values.at(-1);
|
|
205
|
+
if (last !== undefined) {
|
|
206
|
+
this.drop(last);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
209
|
sync() {
|
|
210
210
|
this.internals.setFormValue(this.value === '' ? null : this.value);
|
|
211
211
|
this.reportRequired(this.value === '', 'Choose one to continue.', 'control');
|
|
@@ -284,12 +284,7 @@ let HelixHeadlessCombobox = class HelixHeadlessCombobox extends MixinControllerO
|
|
|
284
284
|
<div part="field" @click=${this.handleFieldClick}>
|
|
285
285
|
<slot name="start"></slot>
|
|
286
286
|
${this.multiple && this.chosen.length > 0
|
|
287
|
-
?
|
|
288
|
-
${this.shown.map((option) => this.renderTag(option))}
|
|
289
|
-
${this.restCount > 0
|
|
290
|
-
? html `<span part="rest">${`+${this.restCount}`}</span>`
|
|
291
|
-
: nothing}
|
|
292
|
-
</span>`
|
|
287
|
+
? this.renderTokenRow(this.shown.map((option) => this.renderTag(option)), this.restCount)
|
|
293
288
|
: nothing}
|
|
294
289
|
<input
|
|
295
290
|
part="control"
|
|
@@ -344,9 +339,6 @@ __decorate([
|
|
|
344
339
|
__decorate([
|
|
345
340
|
property({ attribute: 'loading-text' })
|
|
346
341
|
], HelixHeadlessCombobox.prototype, "loadingText", void 0);
|
|
347
|
-
__decorate([
|
|
348
|
-
property({ attribute: 'max-tags', type: Number })
|
|
349
|
-
], HelixHeadlessCombobox.prototype, "maxTags", void 0);
|
|
350
342
|
__decorate([
|
|
351
343
|
property({ type: Boolean })
|
|
352
344
|
], HelixHeadlessCombobox.prototype, "multiple", void 0);
|
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.12.
|
|
4
|
+
"version": "0.12.3",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ross Sheppard <ross.sheppard@fusion.dev>",
|
|
7
7
|
"repository": {
|
|
@@ -45,14 +45,14 @@
|
|
|
45
45
|
},
|
|
46
46
|
"bugs": "https://github.com/project-fusion/fusion/issues",
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@fusion.dev/helix-core": "0.12.
|
|
49
|
-
"@fusion.dev/helix-icons": "0.12.
|
|
48
|
+
"@fusion.dev/helix-core": "0.12.3",
|
|
49
|
+
"@fusion.dev/helix-icons": "0.12.3",
|
|
50
50
|
"uqr": "^0.1.3"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@custom-elements-manifest/analyzer": "^0.11.0",
|
|
54
|
-
"@fusion.dev/helix-cem": "0.12.
|
|
55
|
-
"@fusion.dev/helix-testing": "0.12.
|
|
54
|
+
"@fusion.dev/helix-cem": "0.12.3",
|
|
55
|
+
"@fusion.dev/helix-testing": "0.12.3",
|
|
56
56
|
"@fusion.dev/scripts": "0.0.0-dev",
|
|
57
57
|
"@happy-dom/global-registrator": "^20.0.0",
|
|
58
58
|
"@lit-labs/ssr": "^3.3.0",
|
package/types/jsx.d.ts
CHANGED
|
@@ -3022,32 +3022,6 @@ message belongs. */
|
|
|
3022
3022
|
"loading-text"?: (HelixHeadlessCombobox["loadingText"]) | undefined;
|
|
3023
3023
|
/** What the list says while they are on their way. */
|
|
3024
3024
|
loadingText?: (HelixHeadlessCombobox["loadingText"]) | undefined;
|
|
3025
|
-
/** How many tags to draw before the rest become a count. `multiple` only.
|
|
3026
|
-
|
|
3027
|
-
`0` is all of them, and is the default: a cap that guesses is worse than no
|
|
3028
|
-
cap, because the number that fits depends on the width of the field and the
|
|
3029
|
-
length of what is in it, neither of which this element knows. What a cap is
|
|
3030
|
-
genuinely for is a field in a row or a table cell, where a set of twelve
|
|
3031
|
-
choices would push everything below it down a line at a time.
|
|
3032
|
-
|
|
3033
|
-
The remainder is counted rather than hidden. `+3` is a fact a reader can act
|
|
3034
|
-
on, where a row that silently stops is a field that appears to have lost
|
|
3035
|
-
what was put in it. Date Input and Time Input carry the same property and
|
|
3036
|
-
the same reasoning. */
|
|
3037
|
-
"max-tags"?: (HelixHeadlessCombobox["maxTags"]) | undefined;
|
|
3038
|
-
/** How many tags to draw before the rest become a count. `multiple` only.
|
|
3039
|
-
|
|
3040
|
-
`0` is all of them, and is the default: a cap that guesses is worse than no
|
|
3041
|
-
cap, because the number that fits depends on the width of the field and the
|
|
3042
|
-
length of what is in it, neither of which this element knows. What a cap is
|
|
3043
|
-
genuinely for is a field in a row or a table cell, where a set of twelve
|
|
3044
|
-
choices would push everything below it down a line at a time.
|
|
3045
|
-
|
|
3046
|
-
The remainder is counted rather than hidden. `+3` is a fact a reader can act
|
|
3047
|
-
on, where a row that silently stops is a field that appears to have lost
|
|
3048
|
-
what was put in it. Date Input and Time Input carry the same property and
|
|
3049
|
-
the same reasoning. */
|
|
3050
|
-
maxTags?: (HelixHeadlessCombobox["maxTags"]) | undefined;
|
|
3051
3025
|
/** Whether more than one option can be chosen.
|
|
3052
3026
|
|
|
3053
3027
|
The list already does the work: `value` comes apart on commas, a press
|
|
@@ -3087,6 +3061,10 @@ the resolved state for stylesheets, which is what the mirror is for. */
|
|
|
3087
3061
|
"default-open"?: (HelixHeadlessCombobox["defaultOpen"]) | undefined;
|
|
3088
3062
|
/** Initial open state for uncontrolled use, where nothing declared one. */
|
|
3089
3063
|
defaultOpen?: (HelixHeadlessCombobox["defaultOpen"]) | undefined;
|
|
3064
|
+
/** How many tokens to show before the rest become a count. */
|
|
3065
|
+
"max-tags"?: (HelixHeadlessCombobox["maxTags"]) | undefined;
|
|
3066
|
+
/** How many tokens to show before the rest become a count. */
|
|
3067
|
+
maxTags?: (HelixHeadlessCombobox["maxTags"]) | undefined;
|
|
3090
3068
|
/** The value the markup declared, which is where a reset returns to. */
|
|
3091
3069
|
"default-value"?: (HelixHeadlessCombobox["defaultValue"]) | undefined;
|
|
3092
3070
|
/** The value the markup declared, which is where a reset returns to. */
|
|
@@ -3198,32 +3176,6 @@ message belongs. */
|
|
|
3198
3176
|
"attr:loading-text"?: (HelixHeadlessCombobox["loadingText"]) | undefined;
|
|
3199
3177
|
/** What the list says while they are on their way. */
|
|
3200
3178
|
"prop:loadingText"?: (HelixHeadlessCombobox["loadingText"]) | undefined;
|
|
3201
|
-
/** How many tags to draw before the rest become a count. `multiple` only.
|
|
3202
|
-
|
|
3203
|
-
`0` is all of them, and is the default: a cap that guesses is worse than no
|
|
3204
|
-
cap, because the number that fits depends on the width of the field and the
|
|
3205
|
-
length of what is in it, neither of which this element knows. What a cap is
|
|
3206
|
-
genuinely for is a field in a row or a table cell, where a set of twelve
|
|
3207
|
-
choices would push everything below it down a line at a time.
|
|
3208
|
-
|
|
3209
|
-
The remainder is counted rather than hidden. `+3` is a fact a reader can act
|
|
3210
|
-
on, where a row that silently stops is a field that appears to have lost
|
|
3211
|
-
what was put in it. Date Input and Time Input carry the same property and
|
|
3212
|
-
the same reasoning. */
|
|
3213
|
-
"attr:max-tags"?: (HelixHeadlessCombobox["maxTags"]) | undefined;
|
|
3214
|
-
/** How many tags to draw before the rest become a count. `multiple` only.
|
|
3215
|
-
|
|
3216
|
-
`0` is all of them, and is the default: a cap that guesses is worse than no
|
|
3217
|
-
cap, because the number that fits depends on the width of the field and the
|
|
3218
|
-
length of what is in it, neither of which this element knows. What a cap is
|
|
3219
|
-
genuinely for is a field in a row or a table cell, where a set of twelve
|
|
3220
|
-
choices would push everything below it down a line at a time.
|
|
3221
|
-
|
|
3222
|
-
The remainder is counted rather than hidden. `+3` is a fact a reader can act
|
|
3223
|
-
on, where a row that silently stops is a field that appears to have lost
|
|
3224
|
-
what was put in it. Date Input and Time Input carry the same property and
|
|
3225
|
-
the same reasoning. */
|
|
3226
|
-
"prop:maxTags"?: (HelixHeadlessCombobox["maxTags"]) | undefined;
|
|
3227
3179
|
/** Whether more than one option can be chosen.
|
|
3228
3180
|
|
|
3229
3181
|
The list already does the work: `value` comes apart on commas, a press
|
|
@@ -3263,6 +3215,10 @@ the resolved state for stylesheets, which is what the mirror is for. */
|
|
|
3263
3215
|
"bool:default-open"?: (HelixHeadlessCombobox["defaultOpen"]) | undefined;
|
|
3264
3216
|
/** Initial open state for uncontrolled use, where nothing declared one. */
|
|
3265
3217
|
"prop:defaultOpen"?: (HelixHeadlessCombobox["defaultOpen"]) | undefined;
|
|
3218
|
+
/** How many tokens to show before the rest become a count. */
|
|
3219
|
+
"attr:max-tags"?: (HelixHeadlessCombobox["maxTags"]) | undefined;
|
|
3220
|
+
/** How many tokens to show before the rest become a count. */
|
|
3221
|
+
"prop:maxTags"?: (HelixHeadlessCombobox["maxTags"]) | undefined;
|
|
3266
3222
|
/** The value the markup declared, which is where a reset returns to. */
|
|
3267
3223
|
"attr:default-value"?: (HelixHeadlessCombobox["defaultValue"]) | undefined;
|
|
3268
3224
|
/** The value the markup declared, which is where a reset returns to. */
|
|
@@ -18216,18 +18172,6 @@ export type CustomElements = {
|
|
|
18216
18172
|
* Passed straight to the list, which is where the rows are and so where the
|
|
18217
18173
|
* message belongs.
|
|
18218
18174
|
* - `loading-text`/`loadingText`: What the list says while they are on their way.
|
|
18219
|
-
* - `max-tags`/`maxTags`: How many tags to draw before the rest become a count. `multiple` only.
|
|
18220
|
-
*
|
|
18221
|
-
* `0` is all of them, and is the default: a cap that guesses is worse than no
|
|
18222
|
-
* cap, because the number that fits depends on the width of the field and the
|
|
18223
|
-
* length of what is in it, neither of which this element knows. What a cap is
|
|
18224
|
-
* genuinely for is a field in a row or a table cell, where a set of twelve
|
|
18225
|
-
* choices would push everything below it down a line at a time.
|
|
18226
|
-
*
|
|
18227
|
-
* The remainder is counted rather than hidden. `+3` is a fact a reader can act
|
|
18228
|
-
* on, where a row that silently stops is a field that appears to have lost
|
|
18229
|
-
* what was put in it. Date Input and Time Input carry the same property and
|
|
18230
|
-
* the same reasoning.
|
|
18231
18175
|
* - `multiple`: Whether more than one option can be chosen.
|
|
18232
18176
|
*
|
|
18233
18177
|
* The list already does the work: `value` comes apart on commas, a press
|
|
@@ -18257,6 +18201,7 @@ export type CustomElements = {
|
|
|
18257
18201
|
* last reader did rather than what the author wrote. `:state(open)` carries
|
|
18258
18202
|
* the resolved state for stylesheets, which is what the mirror is for.
|
|
18259
18203
|
* - `default-open`/`defaultOpen`: Initial open state for uncontrolled use, where nothing declared one.
|
|
18204
|
+
* - `max-tags`/`maxTags`: How many tokens to show before the rest become a count.
|
|
18260
18205
|
* - `default-value`/`defaultValue`: The value the markup declared, which is where a reset returns to.
|
|
18261
18206
|
* - `value`: What the control holds now, and what its form submits.
|
|
18262
18207
|
*
|
|
@@ -32446,18 +32391,6 @@ export type CustomElementsSolidJs = {
|
|
|
32446
32391
|
* Passed straight to the list, which is where the rows are and so where the
|
|
32447
32392
|
* message belongs.
|
|
32448
32393
|
* - `loading-text`/`loadingText`: What the list says while they are on their way.
|
|
32449
|
-
* - `max-tags`/`maxTags`: How many tags to draw before the rest become a count. `multiple` only.
|
|
32450
|
-
*
|
|
32451
|
-
* `0` is all of them, and is the default: a cap that guesses is worse than no
|
|
32452
|
-
* cap, because the number that fits depends on the width of the field and the
|
|
32453
|
-
* length of what is in it, neither of which this element knows. What a cap is
|
|
32454
|
-
* genuinely for is a field in a row or a table cell, where a set of twelve
|
|
32455
|
-
* choices would push everything below it down a line at a time.
|
|
32456
|
-
*
|
|
32457
|
-
* The remainder is counted rather than hidden. `+3` is a fact a reader can act
|
|
32458
|
-
* on, where a row that silently stops is a field that appears to have lost
|
|
32459
|
-
* what was put in it. Date Input and Time Input carry the same property and
|
|
32460
|
-
* the same reasoning.
|
|
32461
32394
|
* - `multiple`: Whether more than one option can be chosen.
|
|
32462
32395
|
*
|
|
32463
32396
|
* The list already does the work: `value` comes apart on commas, a press
|
|
@@ -32487,6 +32420,7 @@ export type CustomElementsSolidJs = {
|
|
|
32487
32420
|
* last reader did rather than what the author wrote. `:state(open)` carries
|
|
32488
32421
|
* the resolved state for stylesheets, which is what the mirror is for.
|
|
32489
32422
|
* - `default-open`/`defaultOpen`: Initial open state for uncontrolled use, where nothing declared one.
|
|
32423
|
+
* - `max-tags`/`maxTags`: How many tokens to show before the rest become a count.
|
|
32490
32424
|
* - `default-value`/`defaultValue`: The value the markup declared, which is where a reset returns to.
|
|
32491
32425
|
* - `value`: What the control holds now, and what its form submits.
|
|
32492
32426
|
*
|
package/types/vue.d.ts
CHANGED
|
@@ -1577,32 +1577,6 @@ message belongs. */
|
|
|
1577
1577
|
"loading-text"?: (HelixHeadlessCombobox["loadingText"]) | undefined;
|
|
1578
1578
|
/** What the list says while they are on their way. */
|
|
1579
1579
|
loadingText?: (HelixHeadlessCombobox["loadingText"]) | undefined;
|
|
1580
|
-
/** How many tags to draw before the rest become a count. `multiple` only.
|
|
1581
|
-
|
|
1582
|
-
`0` is all of them, and is the default: a cap that guesses is worse than no
|
|
1583
|
-
cap, because the number that fits depends on the width of the field and the
|
|
1584
|
-
length of what is in it, neither of which this element knows. What a cap is
|
|
1585
|
-
genuinely for is a field in a row or a table cell, where a set of twelve
|
|
1586
|
-
choices would push everything below it down a line at a time.
|
|
1587
|
-
|
|
1588
|
-
The remainder is counted rather than hidden. `+3` is a fact a reader can act
|
|
1589
|
-
on, where a row that silently stops is a field that appears to have lost
|
|
1590
|
-
what was put in it. Date Input and Time Input carry the same property and
|
|
1591
|
-
the same reasoning. */
|
|
1592
|
-
"max-tags"?: (HelixHeadlessCombobox["maxTags"]) | undefined;
|
|
1593
|
-
/** How many tags to draw before the rest become a count. `multiple` only.
|
|
1594
|
-
|
|
1595
|
-
`0` is all of them, and is the default: a cap that guesses is worse than no
|
|
1596
|
-
cap, because the number that fits depends on the width of the field and the
|
|
1597
|
-
length of what is in it, neither of which this element knows. What a cap is
|
|
1598
|
-
genuinely for is a field in a row or a table cell, where a set of twelve
|
|
1599
|
-
choices would push everything below it down a line at a time.
|
|
1600
|
-
|
|
1601
|
-
The remainder is counted rather than hidden. `+3` is a fact a reader can act
|
|
1602
|
-
on, where a row that silently stops is a field that appears to have lost
|
|
1603
|
-
what was put in it. Date Input and Time Input carry the same property and
|
|
1604
|
-
the same reasoning. */
|
|
1605
|
-
maxTags?: (HelixHeadlessCombobox["maxTags"]) | undefined;
|
|
1606
1580
|
/** Whether more than one option can be chosen.
|
|
1607
1581
|
|
|
1608
1582
|
The list already does the work: `value` comes apart on commas, a press
|
|
@@ -1642,6 +1616,10 @@ the resolved state for stylesheets, which is what the mirror is for. */
|
|
|
1642
1616
|
"default-open"?: (HelixHeadlessCombobox["defaultOpen"]) | undefined;
|
|
1643
1617
|
/** Initial open state for uncontrolled use, where nothing declared one. */
|
|
1644
1618
|
defaultOpen?: (HelixHeadlessCombobox["defaultOpen"]) | undefined;
|
|
1619
|
+
/** How many tokens to show before the rest become a count. */
|
|
1620
|
+
"max-tags"?: (HelixHeadlessCombobox["maxTags"]) | undefined;
|
|
1621
|
+
/** How many tokens to show before the rest become a count. */
|
|
1622
|
+
maxTags?: (HelixHeadlessCombobox["maxTags"]) | undefined;
|
|
1645
1623
|
/** The value the markup declared, which is where a reset returns to. */
|
|
1646
1624
|
"default-value"?: (HelixHeadlessCombobox["defaultValue"]) | undefined;
|
|
1647
1625
|
/** The value the markup declared, which is where a reset returns to. */
|