@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.
@@ -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 filled = (slot?.assignedNodes({ flatten: true }) ?? []).some((node) => node.textContent?.trim() !== '' || node.nodeType === Node.ELEMENT_NODE);
56
- this.toggleState('has-label', filled);
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"><slot @slotchange=${this.handleLabelChange}>${this.label}</slot></span>
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.1",
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.1",
50
- "@fusion.dev/helix-icons": "0.109.1",
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.1",
55
- "@fusion.dev/helix-testing": "0.109.1",
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",