@fusion.dev/helix-headless 0.109.1 → 0.109.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 +228 -0
- package/dist/checkbox/root/checkbox-root.js +12 -3
- package/dist/color-input/root/color-input-root.js +1 -0
- package/dist/combobox/root/combobox-root.js +1 -0
- package/dist/date-input/root/date-input-root.js +1 -0
- package/dist/file-input/root/file-input-root.js +1 -0
- package/dist/filter-input/root/filter-input-root.js +1 -0
- package/dist/input/root/input-root.js +1 -0
- package/dist/listbox/root/listbox-root.js +1 -0
- package/dist/number-input/root/number-input-root.js +1 -0
- package/dist/pin-input/root/pin-input-root.js +1 -0
- package/dist/rating/root/rating-root.js +1 -0
- package/dist/select/root/select-root.js +1 -0
- package/dist/slider/root/slider-root.js +2 -0
- package/dist/switch/root/switch-root.js +1 -0
- package/dist/textarea/root/textarea-root.js +1 -0
- package/dist/time-input/root/time-input-root.js +1 -0
- package/package.json +5 -5
- package/types/jsx.d.ts +190 -0
- package/types/vue.d.ts +76 -0
package/custom-elements.json
CHANGED
|
@@ -19730,6 +19730,18 @@
|
|
|
19730
19730
|
"description": "The checked values, comma separated.",
|
|
19731
19731
|
"fieldName": "value"
|
|
19732
19732
|
},
|
|
19733
|
+
{
|
|
19734
|
+
"name": "aria-label",
|
|
19735
|
+
"type": {
|
|
19736
|
+
"text": "string | null"
|
|
19737
|
+
},
|
|
19738
|
+
"default": "null",
|
|
19739
|
+
"fieldName": "namedBy",
|
|
19740
|
+
"inheritedFrom": {
|
|
19741
|
+
"name": "MixinField",
|
|
19742
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
19743
|
+
}
|
|
19744
|
+
},
|
|
19733
19745
|
{
|
|
19734
19746
|
"name": "feedback",
|
|
19735
19747
|
"type": {
|
|
@@ -21033,6 +21045,18 @@
|
|
|
21033
21045
|
"module": "src/mixins/mixin-controller-checked/mixin-controller-checked.ts"
|
|
21034
21046
|
}
|
|
21035
21047
|
},
|
|
21048
|
+
{
|
|
21049
|
+
"name": "aria-label",
|
|
21050
|
+
"type": {
|
|
21051
|
+
"text": "string | null"
|
|
21052
|
+
},
|
|
21053
|
+
"default": "null",
|
|
21054
|
+
"fieldName": "namedBy",
|
|
21055
|
+
"inheritedFrom": {
|
|
21056
|
+
"name": "MixinField",
|
|
21057
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
21058
|
+
}
|
|
21059
|
+
},
|
|
21036
21060
|
{
|
|
21037
21061
|
"name": "feedback",
|
|
21038
21062
|
"type": {
|
|
@@ -24310,6 +24334,18 @@
|
|
|
24310
24334
|
"module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
|
|
24311
24335
|
}
|
|
24312
24336
|
},
|
|
24337
|
+
{
|
|
24338
|
+
"name": "aria-label",
|
|
24339
|
+
"type": {
|
|
24340
|
+
"text": "string | null"
|
|
24341
|
+
},
|
|
24342
|
+
"default": "null",
|
|
24343
|
+
"fieldName": "namedBy",
|
|
24344
|
+
"inheritedFrom": {
|
|
24345
|
+
"name": "MixinField",
|
|
24346
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
24347
|
+
}
|
|
24348
|
+
},
|
|
24313
24349
|
{
|
|
24314
24350
|
"name": "feedback",
|
|
24315
24351
|
"type": {
|
|
@@ -28207,6 +28243,18 @@
|
|
|
28207
28243
|
"module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
|
|
28208
28244
|
}
|
|
28209
28245
|
},
|
|
28246
|
+
{
|
|
28247
|
+
"name": "aria-label",
|
|
28248
|
+
"type": {
|
|
28249
|
+
"text": "string | null"
|
|
28250
|
+
},
|
|
28251
|
+
"default": "null",
|
|
28252
|
+
"fieldName": "namedBy",
|
|
28253
|
+
"inheritedFrom": {
|
|
28254
|
+
"name": "MixinField",
|
|
28255
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
28256
|
+
}
|
|
28257
|
+
},
|
|
28210
28258
|
{
|
|
28211
28259
|
"name": "feedback",
|
|
28212
28260
|
"type": {
|
|
@@ -35281,6 +35329,18 @@
|
|
|
35281
35329
|
"module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
|
|
35282
35330
|
}
|
|
35283
35331
|
},
|
|
35332
|
+
{
|
|
35333
|
+
"name": "aria-label",
|
|
35334
|
+
"type": {
|
|
35335
|
+
"text": "string | null"
|
|
35336
|
+
},
|
|
35337
|
+
"default": "null",
|
|
35338
|
+
"fieldName": "namedBy",
|
|
35339
|
+
"inheritedFrom": {
|
|
35340
|
+
"name": "MixinField",
|
|
35341
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
35342
|
+
}
|
|
35343
|
+
},
|
|
35284
35344
|
{
|
|
35285
35345
|
"name": "feedback",
|
|
35286
35346
|
"type": {
|
|
@@ -43917,6 +43977,18 @@
|
|
|
43917
43977
|
"description": "The trigger's text when nothing is slotted into it.",
|
|
43918
43978
|
"fieldName": "triggerLabel"
|
|
43919
43979
|
},
|
|
43980
|
+
{
|
|
43981
|
+
"name": "aria-label",
|
|
43982
|
+
"type": {
|
|
43983
|
+
"text": "string | null"
|
|
43984
|
+
},
|
|
43985
|
+
"default": "null",
|
|
43986
|
+
"fieldName": "namedBy",
|
|
43987
|
+
"inheritedFrom": {
|
|
43988
|
+
"name": "MixinField",
|
|
43989
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
43990
|
+
}
|
|
43991
|
+
},
|
|
43920
43992
|
{
|
|
43921
43993
|
"name": "feedback",
|
|
43922
43994
|
"type": {
|
|
@@ -48288,6 +48360,18 @@
|
|
|
48288
48360
|
"module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
|
|
48289
48361
|
}
|
|
48290
48362
|
},
|
|
48363
|
+
{
|
|
48364
|
+
"name": "aria-label",
|
|
48365
|
+
"type": {
|
|
48366
|
+
"text": "string | null"
|
|
48367
|
+
},
|
|
48368
|
+
"default": "null",
|
|
48369
|
+
"fieldName": "namedBy",
|
|
48370
|
+
"inheritedFrom": {
|
|
48371
|
+
"name": "MixinField",
|
|
48372
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
48373
|
+
}
|
|
48374
|
+
},
|
|
48291
48375
|
{
|
|
48292
48376
|
"name": "feedback",
|
|
48293
48377
|
"type": {
|
|
@@ -54885,6 +54969,18 @@
|
|
|
54885
54969
|
"module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
|
|
54886
54970
|
}
|
|
54887
54971
|
},
|
|
54972
|
+
{
|
|
54973
|
+
"name": "aria-label",
|
|
54974
|
+
"type": {
|
|
54975
|
+
"text": "string | null"
|
|
54976
|
+
},
|
|
54977
|
+
"default": "null",
|
|
54978
|
+
"fieldName": "namedBy",
|
|
54979
|
+
"inheritedFrom": {
|
|
54980
|
+
"name": "MixinField",
|
|
54981
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
54982
|
+
}
|
|
54983
|
+
},
|
|
54888
54984
|
{
|
|
54889
54985
|
"name": "feedback",
|
|
54890
54986
|
"type": {
|
|
@@ -61386,6 +61482,18 @@
|
|
|
61386
61482
|
"module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
|
|
61387
61483
|
}
|
|
61388
61484
|
},
|
|
61485
|
+
{
|
|
61486
|
+
"name": "aria-label",
|
|
61487
|
+
"type": {
|
|
61488
|
+
"text": "string | null"
|
|
61489
|
+
},
|
|
61490
|
+
"default": "null",
|
|
61491
|
+
"fieldName": "namedBy",
|
|
61492
|
+
"inheritedFrom": {
|
|
61493
|
+
"name": "MixinField",
|
|
61494
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
61495
|
+
}
|
|
61496
|
+
},
|
|
61389
61497
|
{
|
|
61390
61498
|
"name": "feedback",
|
|
61391
61499
|
"type": {
|
|
@@ -77626,6 +77734,18 @@
|
|
|
77626
77734
|
"module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
|
|
77627
77735
|
}
|
|
77628
77736
|
},
|
|
77737
|
+
{
|
|
77738
|
+
"name": "aria-label",
|
|
77739
|
+
"type": {
|
|
77740
|
+
"text": "string | null"
|
|
77741
|
+
},
|
|
77742
|
+
"default": "null",
|
|
77743
|
+
"fieldName": "namedBy",
|
|
77744
|
+
"inheritedFrom": {
|
|
77745
|
+
"name": "MixinField",
|
|
77746
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
77747
|
+
}
|
|
77748
|
+
},
|
|
77629
77749
|
{
|
|
77630
77750
|
"name": "feedback",
|
|
77631
77751
|
"type": {
|
|
@@ -84242,6 +84362,18 @@
|
|
|
84242
84362
|
"module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
|
|
84243
84363
|
}
|
|
84244
84364
|
},
|
|
84365
|
+
{
|
|
84366
|
+
"name": "aria-label",
|
|
84367
|
+
"type": {
|
|
84368
|
+
"text": "string | null"
|
|
84369
|
+
},
|
|
84370
|
+
"default": "null",
|
|
84371
|
+
"fieldName": "namedBy",
|
|
84372
|
+
"inheritedFrom": {
|
|
84373
|
+
"name": "MixinField",
|
|
84374
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
84375
|
+
}
|
|
84376
|
+
},
|
|
84245
84377
|
{
|
|
84246
84378
|
"name": "feedback",
|
|
84247
84379
|
"type": {
|
|
@@ -87804,6 +87936,18 @@
|
|
|
87804
87936
|
"module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
|
|
87805
87937
|
}
|
|
87806
87938
|
},
|
|
87939
|
+
{
|
|
87940
|
+
"name": "aria-label",
|
|
87941
|
+
"type": {
|
|
87942
|
+
"text": "string | null"
|
|
87943
|
+
},
|
|
87944
|
+
"default": "null",
|
|
87945
|
+
"fieldName": "namedBy",
|
|
87946
|
+
"inheritedFrom": {
|
|
87947
|
+
"name": "MixinField",
|
|
87948
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
87949
|
+
}
|
|
87950
|
+
},
|
|
87807
87951
|
{
|
|
87808
87952
|
"name": "feedback",
|
|
87809
87953
|
"type": {
|
|
@@ -89971,6 +90115,18 @@
|
|
|
89971
90115
|
"module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
|
|
89972
90116
|
}
|
|
89973
90117
|
},
|
|
90118
|
+
{
|
|
90119
|
+
"name": "aria-label",
|
|
90120
|
+
"type": {
|
|
90121
|
+
"text": "string | null"
|
|
90122
|
+
},
|
|
90123
|
+
"default": "null",
|
|
90124
|
+
"fieldName": "namedBy",
|
|
90125
|
+
"inheritedFrom": {
|
|
90126
|
+
"name": "MixinField",
|
|
90127
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
90128
|
+
}
|
|
90129
|
+
},
|
|
89974
90130
|
{
|
|
89975
90131
|
"name": "feedback",
|
|
89976
90132
|
"type": {
|
|
@@ -93062,6 +93218,18 @@
|
|
|
93062
93218
|
"module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
|
|
93063
93219
|
}
|
|
93064
93220
|
},
|
|
93221
|
+
{
|
|
93222
|
+
"name": "aria-label",
|
|
93223
|
+
"type": {
|
|
93224
|
+
"text": "string | null"
|
|
93225
|
+
},
|
|
93226
|
+
"default": "null",
|
|
93227
|
+
"fieldName": "namedBy",
|
|
93228
|
+
"inheritedFrom": {
|
|
93229
|
+
"name": "MixinField",
|
|
93230
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
93231
|
+
}
|
|
93232
|
+
},
|
|
93065
93233
|
{
|
|
93066
93234
|
"name": "feedback",
|
|
93067
93235
|
"type": {
|
|
@@ -95534,6 +95702,18 @@
|
|
|
95534
95702
|
"module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
|
|
95535
95703
|
}
|
|
95536
95704
|
},
|
|
95705
|
+
{
|
|
95706
|
+
"name": "aria-label",
|
|
95707
|
+
"type": {
|
|
95708
|
+
"text": "string | null"
|
|
95709
|
+
},
|
|
95710
|
+
"default": "null",
|
|
95711
|
+
"fieldName": "namedBy",
|
|
95712
|
+
"inheritedFrom": {
|
|
95713
|
+
"name": "MixinField",
|
|
95714
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
95715
|
+
}
|
|
95716
|
+
},
|
|
95537
95717
|
{
|
|
95538
95718
|
"name": "feedback",
|
|
95539
95719
|
"type": {
|
|
@@ -101937,6 +102117,18 @@
|
|
|
101937
102117
|
"module": "src/mixins/mixin-controller-checked/mixin-controller-checked.ts"
|
|
101938
102118
|
}
|
|
101939
102119
|
},
|
|
102120
|
+
{
|
|
102121
|
+
"name": "aria-label",
|
|
102122
|
+
"type": {
|
|
102123
|
+
"text": "string | null"
|
|
102124
|
+
},
|
|
102125
|
+
"default": "null",
|
|
102126
|
+
"fieldName": "namedBy",
|
|
102127
|
+
"inheritedFrom": {
|
|
102128
|
+
"name": "MixinField",
|
|
102129
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
102130
|
+
}
|
|
102131
|
+
},
|
|
101940
102132
|
{
|
|
101941
102133
|
"name": "feedback",
|
|
101942
102134
|
"type": {
|
|
@@ -108311,6 +108503,18 @@
|
|
|
108311
108503
|
"module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
|
|
108312
108504
|
}
|
|
108313
108505
|
},
|
|
108506
|
+
{
|
|
108507
|
+
"name": "aria-label",
|
|
108508
|
+
"type": {
|
|
108509
|
+
"text": "string | null"
|
|
108510
|
+
},
|
|
108511
|
+
"default": "null",
|
|
108512
|
+
"fieldName": "namedBy",
|
|
108513
|
+
"inheritedFrom": {
|
|
108514
|
+
"name": "MixinField",
|
|
108515
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
108516
|
+
}
|
|
108517
|
+
},
|
|
108314
108518
|
{
|
|
108315
108519
|
"name": "feedback",
|
|
108316
108520
|
"type": {
|
|
@@ -110805,6 +111009,18 @@
|
|
|
110805
111009
|
"module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
|
|
110806
111010
|
}
|
|
110807
111011
|
},
|
|
111012
|
+
{
|
|
111013
|
+
"name": "aria-label",
|
|
111014
|
+
"type": {
|
|
111015
|
+
"text": "string | null"
|
|
111016
|
+
},
|
|
111017
|
+
"default": "null",
|
|
111018
|
+
"fieldName": "namedBy",
|
|
111019
|
+
"inheritedFrom": {
|
|
111020
|
+
"name": "MixinField",
|
|
111021
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
111022
|
+
}
|
|
111023
|
+
},
|
|
110808
111024
|
{
|
|
110809
111025
|
"name": "feedback",
|
|
110810
111026
|
"type": {
|
|
@@ -115711,6 +115927,18 @@
|
|
|
115711
115927
|
"module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
|
|
115712
115928
|
}
|
|
115713
115929
|
},
|
|
115930
|
+
{
|
|
115931
|
+
"name": "aria-label",
|
|
115932
|
+
"type": {
|
|
115933
|
+
"text": "string | null"
|
|
115934
|
+
},
|
|
115935
|
+
"default": "null",
|
|
115936
|
+
"fieldName": "namedBy",
|
|
115937
|
+
"inheritedFrom": {
|
|
115938
|
+
"name": "MixinField",
|
|
115939
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
115940
|
+
}
|
|
115941
|
+
},
|
|
115714
115942
|
{
|
|
115715
115943
|
"name": "feedback",
|
|
115716
115944
|
"type": {
|
|
@@ -52,11 +52,17 @@ let HelixHeadlessCheckbox = class HelixHeadlessCheckbox extends MixinControllerC
|
|
|
52
52
|
}
|
|
53
53
|
syncLabelPresence() {
|
|
54
54
|
const slot = this.renderRoot.querySelector('[part="label"] slot');
|
|
55
|
-
const
|
|
56
|
-
|
|
55
|
+
const meaningful = (node) => node.textContent?.trim() !== '' || node.nodeType === Node.ELEMENT_NODE;
|
|
56
|
+
const filled = (slot?.assignedNodes({ flatten: true }) ?? []).some(meaningful);
|
|
57
|
+
const hidden = this.label === '' &&
|
|
58
|
+
Boolean(this.getAttribute('aria-label')) &&
|
|
59
|
+
!(slot?.assignedNodes() ?? []).some(meaningful);
|
|
60
|
+
this.partNamed('label')?.toggleAttribute('data-hidden', hidden);
|
|
61
|
+
this.toggleState('has-label', filled && !hidden);
|
|
57
62
|
this.partNamed('label')?.toggleAttribute('hidden', !filled);
|
|
58
63
|
}
|
|
59
64
|
render() {
|
|
65
|
+
const named = this.label === '' ? this.getAttribute('aria-label') : null;
|
|
60
66
|
return html `<label part="field">
|
|
61
67
|
<span part="box">
|
|
62
68
|
<input
|
|
@@ -67,6 +73,7 @@ let HelixHeadlessCheckbox = class HelixHeadlessCheckbox extends MixinControllerC
|
|
|
67
73
|
?disabled=${this.isDisabled}
|
|
68
74
|
?required=${this.required}
|
|
69
75
|
aria-describedby=${this.describedBy ?? nothing}
|
|
76
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
70
77
|
@change=${this.handleChange}
|
|
71
78
|
@input=${this.stopInner}
|
|
72
79
|
/>
|
|
@@ -75,7 +82,9 @@ let HelixHeadlessCheckbox = class HelixHeadlessCheckbox extends MixinControllerC
|
|
|
75
82
|
aria-hidden="true"
|
|
76
83
|
></span>
|
|
77
84
|
</span>
|
|
78
|
-
<span part="label"
|
|
85
|
+
<span part="label" ?data-hidden=${named !== null}
|
|
86
|
+
><slot @slotchange=${this.handleLabelChange}>${this.label || named}</slot></span
|
|
87
|
+
>
|
|
79
88
|
</label>
|
|
80
89
|
${this.renderHint()}${this.renderFeedback()}`;
|
|
81
90
|
}
|
|
@@ -128,6 +128,7 @@ let HelixHeadlessColorInput = class HelixHeadlessColorInput extends MixinPickerF
|
|
|
128
128
|
autocomplete=${this.autocomplete || nothing}
|
|
129
129
|
spellcheck="false"
|
|
130
130
|
aria-describedby=${this.describedBy ?? nothing}
|
|
131
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
131
132
|
?disabled=${this.isDisabled}
|
|
132
133
|
?required=${this.required}
|
|
133
134
|
@input=${this.handleInput}
|
|
@@ -320,6 +320,7 @@ let HelixHeadlessCombobox = class HelixHeadlessCombobox extends MixinControllerO
|
|
|
320
320
|
aria-autocomplete=${this.suggest ? 'both' : 'list'}
|
|
321
321
|
aria-expanded=${this.open ? 'true' : 'false'}
|
|
322
322
|
aria-describedby=${this.describedBy ?? nothing}
|
|
323
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
323
324
|
placeholder=${(this.chosen.length > 0 || this.unresolved ? '' : this.placeholder) || nothing}
|
|
324
325
|
?disabled=${this.isDisabled}
|
|
325
326
|
.value=${this.multiple || this.open ? this.suggestion || this.typed : this.word}
|
|
@@ -235,6 +235,7 @@ let HelixHeadlessDateInput = class HelixHeadlessDateInput extends MixinPickerEdi
|
|
|
235
235
|
autocomplete=${this.autocomplete || nothing}
|
|
236
236
|
inputmode="numeric"
|
|
237
237
|
aria-describedby=${this.describedBy ?? nothing}
|
|
238
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
238
239
|
?disabled=${this.isDisabled}
|
|
239
240
|
?readonly=${this.readOnly}
|
|
240
241
|
?required=${this.required}
|
|
@@ -187,6 +187,7 @@ let HelixHeadlessFileInput = class HelixHeadlessFileInput extends MixinField(Hel
|
|
|
187
187
|
capture=${this.capture ?? nothing}
|
|
188
188
|
name=${this.name || nothing}
|
|
189
189
|
aria-describedby=${this.describedBy ?? nothing}
|
|
190
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
190
191
|
?disabled=${this.isDisabled}
|
|
191
192
|
?multiple=${this.multiple}
|
|
192
193
|
?required=${this.required}
|
|
@@ -345,6 +345,7 @@ let HelixHeadlessFilterInput = class HelixHeadlessFilterInput extends MixinContr
|
|
|
345
345
|
name=${this.name || nothing}
|
|
346
346
|
placeholder=${this.placeholder || nothing}
|
|
347
347
|
aria-describedby=${this.describedBy ?? nothing}
|
|
348
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
348
349
|
role=${this.suggesting ? 'combobox' : nothing}
|
|
349
350
|
aria-autocomplete=${this.suggesting ? 'list' : nothing}
|
|
350
351
|
aria-controls=${this.suggesting ? 'suggestions' : nothing}
|
|
@@ -135,6 +135,7 @@ let HelixHeadlessInput = class HelixHeadlessInput extends MixinControllerValue(M
|
|
|
135
135
|
minlength=${this.minLength ?? nothing}
|
|
136
136
|
maxlength=${this.maxLength ?? nothing}
|
|
137
137
|
aria-describedby=${this.describedBy ?? nothing}
|
|
138
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
138
139
|
?disabled=${this.isDisabled}
|
|
139
140
|
?readonly=${this.readOnly}
|
|
140
141
|
?required=${this.required}
|
|
@@ -389,6 +389,7 @@ let HelixHeadlessListbox = class HelixHeadlessListbox extends MixinCollection(Mi
|
|
|
389
389
|
role="listbox"
|
|
390
390
|
aria-busy=${this.loading ? 'true' : nothing}
|
|
391
391
|
aria-describedby=${this.describedBy ?? nothing}
|
|
392
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
392
393
|
aria-labelledby=${this.labeled ? this.labelId : nothing}
|
|
393
394
|
aria-multiselectable=${this.multiple ? 'true' : nothing}
|
|
394
395
|
aria-required=${this.required ? 'true' : nothing}
|
|
@@ -270,6 +270,7 @@ let HelixHeadlessNumberInput = class HelixHeadlessNumberInput extends MixinContr
|
|
|
270
270
|
name=${this.name || nothing}
|
|
271
271
|
placeholder=${this.placeholder || nothing}
|
|
272
272
|
aria-describedby=${this.describedBy ?? nothing}
|
|
273
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
273
274
|
aria-valuemin=${this.min ?? nothing}
|
|
274
275
|
aria-valuemax=${this.max ?? nothing}
|
|
275
276
|
aria-valuenow=${parsed ?? nothing}
|
|
@@ -218,6 +218,7 @@ let HelixHeadlessPinInput = class HelixHeadlessPinInput extends MixinControllerV
|
|
|
218
218
|
inputmode=${this.type === 'numeric' ? 'numeric' : 'text'}
|
|
219
219
|
autocomplete=${at === 0 ? this.autocomplete || nothing : 'off'}
|
|
220
220
|
aria-label=${fillTemplate(this.cellLabel, { index: at + 1, length: this.count })}
|
|
221
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
221
222
|
?disabled=${this.isDisabled}
|
|
222
223
|
?readonly=${this.readOnly}
|
|
223
224
|
@focus=${this.handleFocus}
|
|
@@ -201,6 +201,7 @@ let HelixHeadlessRating = class HelixHeadlessRating extends MixinControllerValue
|
|
|
201
201
|
aria-label=${this.readOnly ? said : nothing}
|
|
202
202
|
aria-labelledby=${!this.readOnly && this.labeled ? this.labelId : nothing}
|
|
203
203
|
aria-describedby=${this.describedBy ?? nothing}
|
|
204
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
204
205
|
aria-required=${this.required && !this.readOnly ? 'true' : nothing}
|
|
205
206
|
data-slotted=${this.markSource ? '' : nothing}
|
|
206
207
|
style=${`--rating-full: ${Math.floor(showing)}; --rating-part: ${showing - Math.floor(showing)}; --rating-steps: ${this.positions.length}`}
|
|
@@ -155,6 +155,7 @@ let HelixHeadlessSelect = class HelixHeadlessSelect extends MixinControllerOpen(
|
|
|
155
155
|
aria-haspopup="listbox"
|
|
156
156
|
aria-expanded=${this.open ? 'true' : 'false'}
|
|
157
157
|
aria-describedby=${this.describedBy ?? nothing}
|
|
158
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
158
159
|
?disabled=${this.isDisabled}
|
|
159
160
|
@click=${() => this.toggleOpen()}
|
|
160
161
|
@keydown=${this.handleTriggerKeydown}
|
|
@@ -131,6 +131,7 @@ let HelixHeadlessSlider = class HelixHeadlessSlider extends MixinControllerValue
|
|
|
131
131
|
.value=${String(at)}
|
|
132
132
|
aria-labelledby=${this.labeled ? `${this.labelId} ${which}-name` : `${which}-name`}
|
|
133
133
|
aria-describedby=${this.describedBy ?? nothing}
|
|
134
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
134
135
|
?disabled=${this.isDisabled}
|
|
135
136
|
@input=${this.handleInput}
|
|
136
137
|
@change=${this.handleChange}
|
|
@@ -161,6 +162,7 @@ let HelixHeadlessSlider = class HelixHeadlessSlider extends MixinControllerValue
|
|
|
161
162
|
.value=${this.value}
|
|
162
163
|
name=${this.name || nothing}
|
|
163
164
|
aria-describedby=${this.describedBy ?? nothing}
|
|
165
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
164
166
|
?disabled=${this.isDisabled}
|
|
165
167
|
@input=${this.handleInput}
|
|
166
168
|
@change=${this.handleChange}
|
|
@@ -52,6 +52,7 @@ let HelixHeadlessSwitch = class HelixHeadlessSwitch extends MixinControllerCheck
|
|
|
52
52
|
?disabled=${this.isDisabled}
|
|
53
53
|
?required=${this.required}
|
|
54
54
|
aria-describedby=${this.describedBy ?? nothing}
|
|
55
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
55
56
|
@change=${this.handleChange}
|
|
56
57
|
@input=${this.stopInner}
|
|
57
58
|
/>
|
|
@@ -168,6 +168,7 @@ let HelixHeadlessTextarea = class HelixHeadlessTextarea extends MixinControllerV
|
|
|
168
168
|
minlength=${this.minLength ?? nothing}
|
|
169
169
|
maxlength=${this.maxLength ?? nothing}
|
|
170
170
|
aria-describedby=${this.describedBy ?? nothing}
|
|
171
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
171
172
|
?disabled=${this.isDisabled}
|
|
172
173
|
?readonly=${this.readOnly}
|
|
173
174
|
?required=${this.required}
|
|
@@ -207,6 +207,7 @@ let HelixHeadlessTimeInput = class HelixHeadlessTimeInput extends MixinPickerEdi
|
|
|
207
207
|
placeholder=${this.mode === 'multiple' && this.held.length > 0 ? nothing : this.placeholder || nothing}
|
|
208
208
|
autocomplete=${this.autocomplete || nothing}
|
|
209
209
|
aria-describedby=${this.describedBy ?? nothing}
|
|
210
|
+
aria-invalid=${this.invalidity ?? nothing}
|
|
210
211
|
?disabled=${this.isDisabled}
|
|
211
212
|
?readonly=${this.readOnly}
|
|
212
213
|
?required=${this.required}
|
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.109.
|
|
4
|
+
"version": "0.109.3",
|
|
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.109.
|
|
50
|
-
"@fusion.dev/helix-icons": "0.109.
|
|
49
|
+
"@fusion.dev/helix-core": "0.109.3",
|
|
50
|
+
"@fusion.dev/helix-icons": "0.109.3",
|
|
51
51
|
"uqr": "^0.1.3"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@fusion.dev/helix-cem": "0.109.
|
|
55
|
-
"@fusion.dev/helix-testing": "0.109.
|
|
54
|
+
"@fusion.dev/helix-cem": "0.109.3",
|
|
55
|
+
"@fusion.dev/helix-testing": "0.109.3",
|
|
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",
|