@fusion.dev/helix 0.47.0 → 0.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/types/jsx.d.ts CHANGED
@@ -69,6 +69,7 @@ import type {
69
69
  HelixFilterMenu,
70
70
  HelixFilterOperator,
71
71
  HelixFlex,
72
+ HelixFormElement,
72
73
  HelixFormatDate,
73
74
  HelixGrid,
74
75
  HelixHeadlessFilterField,
@@ -1087,17 +1088,23 @@ are interpolations, so a larger number extrapolates rather than
1087
1088
  exaggerating, and a streak whose length has passed through zero is drawn
1088
1089
  as a bar across the whole frame.
1089
1090
 
1090
- Read by four of the eleven shapes, the ones made of many similar things,
1091
+ Read by six of the eleven shapes, the ones made of many similar things,
1091
1092
  whether those are counted or continuous: `streaks`, whose lanes draw a
1092
1093
  speed, a length, a width, a spacing and a weight apiece; `particles`, whose
1093
- motes draw a size, a brightness and a wander; and `rays` and `aurora`, whose
1094
- fan, bundles and folds widen or even out.
1095
-
1096
- Inert on the other seven, for three different reasons. `braid`, `waves` and
1097
- `flow` have a single subject and nothing to vary. `threads` and `lattice`
1098
- are even on purpose, a scatter of strands and a regular structure each being
1099
- what it is because its members do not differ. `caustics` and `fracture` are
1100
- populations this does not reach, which is a gap rather than a refusal. */
1094
+ motes draw a size, a brightness and a wander; `rays` and `aurora`, whose
1095
+ fan, bundles and folds widen or even out; `caustics`, whose three depths of
1096
+ fold close on one scale and one weight while the pool over them flattens to
1097
+ an even wash; and `fracture`, whose sites come home to their own cell
1098
+ centers, leaving equal territories and no border more contested than
1099
+ another.
1100
+
1101
+ Inert on the other five, and every one of them a refusal. `braid`, `waves`
1102
+ and `flow` have a single subject and nothing to vary. `threads` and
1103
+ `lattice` are even on purpose, a scatter of strands and a regular structure
1104
+ each being what it is because its members do not differ: `threads` gives
1105
+ its seven one amplitude, one thickness, one weight and one frequency on
1106
+ the argument that alike is what makes a weave read as woven, and a lattice
1107
+ whose cells differed would be a scatter with straight lines in it. */
1101
1108
  variance?: (HelixAura["variance"]) | undefined;
1102
1109
  /** Which form the light takes. Absent is `braid`.
1103
1110
 
@@ -1189,17 +1196,23 @@ are interpolations, so a larger number extrapolates rather than
1189
1196
  exaggerating, and a streak whose length has passed through zero is drawn
1190
1197
  as a bar across the whole frame.
1191
1198
 
1192
- Read by four of the eleven shapes, the ones made of many similar things,
1199
+ Read by six of the eleven shapes, the ones made of many similar things,
1193
1200
  whether those are counted or continuous: `streaks`, whose lanes draw a
1194
1201
  speed, a length, a width, a spacing and a weight apiece; `particles`, whose
1195
- motes draw a size, a brightness and a wander; and `rays` and `aurora`, whose
1196
- fan, bundles and folds widen or even out.
1197
-
1198
- Inert on the other seven, for three different reasons. `braid`, `waves` and
1199
- `flow` have a single subject and nothing to vary. `threads` and `lattice`
1200
- are even on purpose, a scatter of strands and a regular structure each being
1201
- what it is because its members do not differ. `caustics` and `fracture` are
1202
- populations this does not reach, which is a gap rather than a refusal. */
1202
+ motes draw a size, a brightness and a wander; `rays` and `aurora`, whose
1203
+ fan, bundles and folds widen or even out; `caustics`, whose three depths of
1204
+ fold close on one scale and one weight while the pool over them flattens to
1205
+ an even wash; and `fracture`, whose sites come home to their own cell
1206
+ centers, leaving equal territories and no border more contested than
1207
+ another.
1208
+
1209
+ Inert on the other five, and every one of them a refusal. `braid`, `waves`
1210
+ and `flow` have a single subject and nothing to vary. `threads` and
1211
+ `lattice` are even on purpose, a scatter of strands and a regular structure
1212
+ each being what it is because its members do not differ: `threads` gives
1213
+ its seven one amplitude, one thickness, one weight and one frequency on
1214
+ the argument that alike is what makes a weave read as woven, and a lattice
1215
+ whose cells differed would be a scatter with straight lines in it. */
1203
1216
  "prop:variance"?: (HelixAura["variance"]) | undefined;
1204
1217
  /** Which form the light takes. Absent is `braid`.
1205
1218
 
@@ -2804,6 +2817,27 @@ clamps to the last *slide*, so three of the six indicators point at an
2804
2817
  offset the track has already reached: pressing next walks the dots to the
2805
2818
  end while the slides stop moving a third of the way through.
2806
2819
 
2820
+ **The number is published to the styles rather than enumerated by them**,
2821
+ as `--carousel-per-view` on the track, which is what keeps a width and a
2822
+ count from disagreeing. A sheet can only name a value it wrote a rule for,
2823
+ so the styled tier enumerated `per-view="2"` through `5` and called five a
2824
+ judgment; above it the pane fell back to one across while this file went on
2825
+ counting positions. Measured in Chromium over eight slides, six across gave
2826
+ three dots, a pane taking the whole track and five slides reachable only by
2827
+ dragging. Written from here there is no ceiling to exceed, and a consumer's
2828
+ own sheet reads the same declaration the styled one does. `runEnd` publishes
2829
+ its correction the same way and for the same reason.
2830
+
2831
+ **On the track and not on the host.** A custom property on the host is a
2832
+ reflected attribute by another name: it would arrive on upgrade, and a
2833
+ consumer's server markup never had it. Inside the component's own shadow
2834
+ root it serializes with the rest of the template on the server, and the
2835
+ track's own declaration beats anything a consumer inherits in, so the
2836
+ attribute is the one answer to how wide a pane is.
2837
+
2838
+ A value the track cannot honor is taken to the nearest one it can, by
2839
+ `across`, and both tiers read that rather than this.
2840
+
2807
2841
  No default, because it reflects. A reflected property with a value writes
2808
2842
  its attribute on upgrade, and the host then carries something a consumer's
2809
2843
  server markup never had, which React reports as a mismatch. The one-across
@@ -2820,6 +2854,27 @@ clamps to the last *slide*, so three of the six indicators point at an
2820
2854
  offset the track has already reached: pressing next walks the dots to the
2821
2855
  end while the slides stop moving a third of the way through.
2822
2856
 
2857
+ **The number is published to the styles rather than enumerated by them**,
2858
+ as `--carousel-per-view` on the track, which is what keeps a width and a
2859
+ count from disagreeing. A sheet can only name a value it wrote a rule for,
2860
+ so the styled tier enumerated `per-view="2"` through `5` and called five a
2861
+ judgment; above it the pane fell back to one across while this file went on
2862
+ counting positions. Measured in Chromium over eight slides, six across gave
2863
+ three dots, a pane taking the whole track and five slides reachable only by
2864
+ dragging. Written from here there is no ceiling to exceed, and a consumer's
2865
+ own sheet reads the same declaration the styled one does. `runEnd` publishes
2866
+ its correction the same way and for the same reason.
2867
+
2868
+ **On the track and not on the host.** A custom property on the host is a
2869
+ reflected attribute by another name: it would arrive on upgrade, and a
2870
+ consumer's server markup never had it. Inside the component's own shadow
2871
+ root it serializes with the rest of the template on the server, and the
2872
+ track's own declaration beats anything a consumer inherits in, so the
2873
+ attribute is the one answer to how wide a pane is.
2874
+
2875
+ A value the track cannot honor is taken to the nearest one it can, by
2876
+ `across`, and both tiers read that rather than this.
2877
+
2823
2878
  No default, because it reflects. A reflected property with a value writes
2824
2879
  its attribute on upgrade, and the host then carries something a consumer's
2825
2880
  server markup never had, which React reports as a mismatch. The one-across
@@ -3035,6 +3090,27 @@ clamps to the last *slide*, so three of the six indicators point at an
3035
3090
  offset the track has already reached: pressing next walks the dots to the
3036
3091
  end while the slides stop moving a third of the way through.
3037
3092
 
3093
+ **The number is published to the styles rather than enumerated by them**,
3094
+ as `--carousel-per-view` on the track, which is what keeps a width and a
3095
+ count from disagreeing. A sheet can only name a value it wrote a rule for,
3096
+ so the styled tier enumerated `per-view="2"` through `5` and called five a
3097
+ judgment; above it the pane fell back to one across while this file went on
3098
+ counting positions. Measured in Chromium over eight slides, six across gave
3099
+ three dots, a pane taking the whole track and five slides reachable only by
3100
+ dragging. Written from here there is no ceiling to exceed, and a consumer's
3101
+ own sheet reads the same declaration the styled one does. `runEnd` publishes
3102
+ its correction the same way and for the same reason.
3103
+
3104
+ **On the track and not on the host.** A custom property on the host is a
3105
+ reflected attribute by another name: it would arrive on upgrade, and a
3106
+ consumer's server markup never had it. Inside the component's own shadow
3107
+ root it serializes with the rest of the template on the server, and the
3108
+ track's own declaration beats anything a consumer inherits in, so the
3109
+ attribute is the one answer to how wide a pane is.
3110
+
3111
+ A value the track cannot honor is taken to the nearest one it can, by
3112
+ `across`, and both tiers read that rather than this.
3113
+
3038
3114
  No default, because it reflects. A reflected property with a value writes
3039
3115
  its attribute on upgrade, and the host then carries something a consumer's
3040
3116
  server markup never had, which React reports as a mismatch. The one-across
@@ -3051,6 +3127,27 @@ clamps to the last *slide*, so three of the six indicators point at an
3051
3127
  offset the track has already reached: pressing next walks the dots to the
3052
3128
  end while the slides stop moving a third of the way through.
3053
3129
 
3130
+ **The number is published to the styles rather than enumerated by them**,
3131
+ as `--carousel-per-view` on the track, which is what keeps a width and a
3132
+ count from disagreeing. A sheet can only name a value it wrote a rule for,
3133
+ so the styled tier enumerated `per-view="2"` through `5` and called five a
3134
+ judgment; above it the pane fell back to one across while this file went on
3135
+ counting positions. Measured in Chromium over eight slides, six across gave
3136
+ three dots, a pane taking the whole track and five slides reachable only by
3137
+ dragging. Written from here there is no ceiling to exceed, and a consumer's
3138
+ own sheet reads the same declaration the styled one does. `runEnd` publishes
3139
+ its correction the same way and for the same reason.
3140
+
3141
+ **On the track and not on the host.** A custom property on the host is a
3142
+ reflected attribute by another name: it would arrive on upgrade, and a
3143
+ consumer's server markup never had it. Inside the component's own shadow
3144
+ root it serializes with the rest of the template on the server, and the
3145
+ track's own declaration beats anything a consumer inherits in, so the
3146
+ attribute is the one answer to how wide a pane is.
3147
+
3148
+ A value the track cannot honor is taken to the nearest one it can, by
3149
+ `across`, and both tiers read that rather than this.
3150
+
3054
3151
  No default, because it reflects. A reflected property with a value writes
3055
3152
  its attribute on upgrade, and the host then carries something a consumer's
3056
3153
  server markup never had, which React reports as a mismatch. The one-across
@@ -4234,6 +4331,67 @@ answer to which one is authoritative or which has the caret. Do not close it
4234
4331
  the other way round, with Color Input dropping its own field: the value
4235
4332
  would then be unreadable and unpasteable without opening a panel. */
4236
4333
  noValue?: (HelixColorPicker["noValue"]) | undefined;
4334
+ /** Whether the control refuses changes while still submitting its value.
4335
+
4336
+ **Enforced by refusing every request in one place**, which is the seam this
4337
+ component already has: `requestValue` is what every path here comes through,
4338
+ and gating it once is what stops the next call site from being written
4339
+ without the check.
4340
+
4341
+ Not `disabled`, which is the confusion worth naming: a disabled control
4342
+ submits nothing and leaves the tab order, and a read-only one submits its
4343
+ value and stays reachable, which is what a form showing a color somebody
4344
+ else set needs.
4345
+
4346
+ **One gate is not enough here, and the second is `move`.** This picker
4347
+ holds a model beside its value, which Date Picker and Time Picker do not:
4348
+ `moved` is the HSB the square is drawn from, and it is written before the
4349
+ value is requested. Gating only the request would leave the square under
4350
+ the reader's pointer and the value where it was, which is a control that
4351
+ refuses and looks like it accepted. */
4352
+ readonly?: (HelixColorPicker["readOnly"]) | undefined;
4353
+ /** Whether the control refuses changes while still submitting its value.
4354
+
4355
+ **Enforced by refusing every request in one place**, which is the seam this
4356
+ component already has: `requestValue` is what every path here comes through,
4357
+ and gating it once is what stops the next call site from being written
4358
+ without the check.
4359
+
4360
+ Not `disabled`, which is the confusion worth naming: a disabled control
4361
+ submits nothing and leaves the tab order, and a read-only one submits its
4362
+ value and stays reachable, which is what a form showing a color somebody
4363
+ else set needs.
4364
+
4365
+ **One gate is not enough here, and the second is `move`.** This picker
4366
+ holds a model beside its value, which Date Picker and Time Picker do not:
4367
+ `moved` is the HSB the square is drawn from, and it is written before the
4368
+ value is requested. Gating only the request would leave the square under
4369
+ the reader's pointer and the value where it was, which is a control that
4370
+ refuses and looks like it accepted. */
4371
+ readOnly?: (HelixColorPicker["readOnly"]) | undefined;
4372
+ /** Whether the form refuses to submit while no color is chosen.
4373
+
4374
+ **A color is exactly as requirable as a date**, which is the comparison
4375
+ that settles it: this element extends `HelixFormElement`, carries `name`
4376
+ and reports its value, so a consumer writing
4377
+ `<helix-color-picker name="brand" required>` inside a form has every reason
4378
+ to expect the form to refuse an empty one. Its two siblings in the same
4379
+ composition position, Date Picker and Time Picker, both check it.
4380
+
4381
+ Written out rather than taken from `MixinField`, for the reason those two
4382
+ record: the mixin brings a label, a hint and a feedback region, and this is
4383
+ a panel composed *into* a field that already has all three, so taking it
4384
+ would give one control two of each. What is left is the validity call and
4385
+ the anchor the browser points its bubble at.
4386
+
4387
+ **Emptiness is the only fault reported, and bad input deliberately is
4388
+ not.** The value row is typed into a character at a time and every
4389
+ keystroke reaches `requestValue`, so `#0`, `#00` and `#00f` would each be a
4390
+ reported fault on the way to `#00ff00`. Date Picker and Time Picker can
4391
+ report bad input because their value moves only on a commit. Color Input
4392
+ reports it for this family instead, once, against the field the reader
4393
+ typed into. */
4394
+ required?: (HelixColorPicker["required"]) | undefined;
4237
4395
  /** Colors offered under the picker, as a comma-separated list. */
4238
4396
  swatches?: (HelixColorPicker["swatches"]) | undefined;
4239
4397
  /** Whether the control is non-interactive.
@@ -4354,6 +4512,67 @@ answer to which one is authoritative or which has the caret. Do not close it
4354
4512
  the other way round, with Color Input dropping its own field: the value
4355
4513
  would then be unreadable and unpasteable without opening a panel. */
4356
4514
  "prop:noValue"?: (HelixColorPicker["noValue"]) | undefined;
4515
+ /** Whether the control refuses changes while still submitting its value.
4516
+
4517
+ **Enforced by refusing every request in one place**, which is the seam this
4518
+ component already has: `requestValue` is what every path here comes through,
4519
+ and gating it once is what stops the next call site from being written
4520
+ without the check.
4521
+
4522
+ Not `disabled`, which is the confusion worth naming: a disabled control
4523
+ submits nothing and leaves the tab order, and a read-only one submits its
4524
+ value and stays reachable, which is what a form showing a color somebody
4525
+ else set needs.
4526
+
4527
+ **One gate is not enough here, and the second is `move`.** This picker
4528
+ holds a model beside its value, which Date Picker and Time Picker do not:
4529
+ `moved` is the HSB the square is drawn from, and it is written before the
4530
+ value is requested. Gating only the request would leave the square under
4531
+ the reader's pointer and the value where it was, which is a control that
4532
+ refuses and looks like it accepted. */
4533
+ "bool:readonly"?: (HelixColorPicker["readOnly"]) | undefined;
4534
+ /** Whether the control refuses changes while still submitting its value.
4535
+
4536
+ **Enforced by refusing every request in one place**, which is the seam this
4537
+ component already has: `requestValue` is what every path here comes through,
4538
+ and gating it once is what stops the next call site from being written
4539
+ without the check.
4540
+
4541
+ Not `disabled`, which is the confusion worth naming: a disabled control
4542
+ submits nothing and leaves the tab order, and a read-only one submits its
4543
+ value and stays reachable, which is what a form showing a color somebody
4544
+ else set needs.
4545
+
4546
+ **One gate is not enough here, and the second is `move`.** This picker
4547
+ holds a model beside its value, which Date Picker and Time Picker do not:
4548
+ `moved` is the HSB the square is drawn from, and it is written before the
4549
+ value is requested. Gating only the request would leave the square under
4550
+ the reader's pointer and the value where it was, which is a control that
4551
+ refuses and looks like it accepted. */
4552
+ "prop:readOnly"?: (HelixColorPicker["readOnly"]) | undefined;
4553
+ /** Whether the form refuses to submit while no color is chosen.
4554
+
4555
+ **A color is exactly as requirable as a date**, which is the comparison
4556
+ that settles it: this element extends `HelixFormElement`, carries `name`
4557
+ and reports its value, so a consumer writing
4558
+ `<helix-color-picker name="brand" required>` inside a form has every reason
4559
+ to expect the form to refuse an empty one. Its two siblings in the same
4560
+ composition position, Date Picker and Time Picker, both check it.
4561
+
4562
+ Written out rather than taken from `MixinField`, for the reason those two
4563
+ record: the mixin brings a label, a hint and a feedback region, and this is
4564
+ a panel composed *into* a field that already has all three, so taking it
4565
+ would give one control two of each. What is left is the validity call and
4566
+ the anchor the browser points its bubble at.
4567
+
4568
+ **Emptiness is the only fault reported, and bad input deliberately is
4569
+ not.** The value row is typed into a character at a time and every
4570
+ keystroke reaches `requestValue`, so `#0`, `#00` and `#00f` would each be a
4571
+ reported fault on the way to `#00ff00`. Date Picker and Time Picker can
4572
+ report bad input because their value moves only on a commit. Color Input
4573
+ reports it for this family instead, once, against the field the reader
4574
+ typed into. */
4575
+ "prop:required"?: (HelixColorPicker["required"]) | undefined;
4357
4576
  /** Colors offered under the picker, as a comma-separated list. */
4358
4577
  "prop:swatches"?: (HelixColorPicker["swatches"]) | undefined;
4359
4578
  /** Whether the control is non-interactive.
@@ -13821,7 +14040,41 @@ a reset should return to. */
13821
14040
  Zero rather than one, because "no rating" and "the worst rating" are
13822
14041
  different answers and a control that cannot express the first has to
13823
14042
  pretend the second. A survey that requires an answer says so with
13824
- `required`, not by making one unreachable. */
14043
+ `required`, not by making one unreachable.
14044
+
14045
+ **It is the floor of the scale, and every edge follows from that.**
14046
+
14047
+ *Clearing* returns the row to it. An empty rating, a value nothing can
14048
+ parse, and a form reset with nothing declared are all the same situation,
14049
+ and all three draw `min` filled: at the default of zero that is the empty
14050
+ row this always drew, and at `min="2"` it is two marks, the way an empty
14051
+ `Slider` sits at its own minimum rather than at zero. The value is still
14052
+ `""` through all of it, so `required` still refuses it and `valueAsNumber`
14053
+ is still `NaN`: what the row shows is the bottom of the scale, not an
14054
+ answer somebody gave.
14055
+
14056
+ *The steps* are the scores from `step` up to `max` that are not below it,
14057
+ so `min="2"` on five marks offers 2 to 5 and leaves the first two marks
14058
+ filled and unpressable. At zero nothing is dropped, which is why the
14059
+ default row is unchanged.
14060
+
14061
+ *The keyboard* moves through those steps and no others. `wrap` is already
14062
+ false here, so arrowing down from the lowest one holds its ground rather
14063
+ than reaching a score this property forbids, and the tab stop an unrated
14064
+ rating carries sits on the lowest score offered rather than on the first
14065
+ mark.
14066
+
14067
+ *A `min` between two steps* is a floor and not a step: `min="1.5"` with
14068
+ whole marks clamps the value at 1.5 and offers 2 upward, since 1.5 is not
14069
+ somewhere the row can be pressed. That is a real thing to ask for and is
14070
+ left to mean what it says.
14071
+
14072
+ *A `min` outside the marks is refused rather than obeyed*, and says so
14073
+ once on the console. Below zero and anything that is not a number are read
14074
+ as zero, there being no mark to draw for a negative score; above `max` is
14075
+ read as `max`, which collapses the scale to its top score rather than
14076
+ leaving a rating with nothing to press. A property that silently accepts
14077
+ nonsense is the fault this pays off, so neither case is quietly ignored. */
13825
14078
  min?: (HelixRating["min"]) | undefined;
13826
14079
  /** Whether this shows a score rather than asks for one.
13827
14080
 
@@ -13961,7 +14214,41 @@ a reset should return to. */
13961
14214
  Zero rather than one, because "no rating" and "the worst rating" are
13962
14215
  different answers and a control that cannot express the first has to
13963
14216
  pretend the second. A survey that requires an answer says so with
13964
- `required`, not by making one unreachable. */
14217
+ `required`, not by making one unreachable.
14218
+
14219
+ **It is the floor of the scale, and every edge follows from that.**
14220
+
14221
+ *Clearing* returns the row to it. An empty rating, a value nothing can
14222
+ parse, and a form reset with nothing declared are all the same situation,
14223
+ and all three draw `min` filled: at the default of zero that is the empty
14224
+ row this always drew, and at `min="2"` it is two marks, the way an empty
14225
+ `Slider` sits at its own minimum rather than at zero. The value is still
14226
+ `""` through all of it, so `required` still refuses it and `valueAsNumber`
14227
+ is still `NaN`: what the row shows is the bottom of the scale, not an
14228
+ answer somebody gave.
14229
+
14230
+ *The steps* are the scores from `step` up to `max` that are not below it,
14231
+ so `min="2"` on five marks offers 2 to 5 and leaves the first two marks
14232
+ filled and unpressable. At zero nothing is dropped, which is why the
14233
+ default row is unchanged.
14234
+
14235
+ *The keyboard* moves through those steps and no others. `wrap` is already
14236
+ false here, so arrowing down from the lowest one holds its ground rather
14237
+ than reaching a score this property forbids, and the tab stop an unrated
14238
+ rating carries sits on the lowest score offered rather than on the first
14239
+ mark.
14240
+
14241
+ *A `min` between two steps* is a floor and not a step: `min="1.5"` with
14242
+ whole marks clamps the value at 1.5 and offers 2 upward, since 1.5 is not
14243
+ somewhere the row can be pressed. That is a real thing to ask for and is
14244
+ left to mean what it says.
14245
+
14246
+ *A `min` outside the marks is refused rather than obeyed*, and says so
14247
+ once on the console. Below zero and anything that is not a number are read
14248
+ as zero, there being no mark to draw for a negative score; above `max` is
14249
+ read as `max`, which collapses the scale to its top score rather than
14250
+ leaving a rating with nothing to press. A property that silently accepts
14251
+ nonsense is the fault this pays off, so neither case is quietly ignored. */
13965
14252
  "prop:min"?: (HelixRating["min"]) | undefined;
13966
14253
  /** Whether this shows a score rather than asks for one.
13967
14254
 
@@ -21109,17 +21396,23 @@ export type CustomElements = {
21109
21396
  * exaggerating, and a streak whose length has passed through zero is drawn
21110
21397
  * as a bar across the whole frame.
21111
21398
  *
21112
- * Read by four of the eleven shapes, the ones made of many similar things,
21399
+ * Read by six of the eleven shapes, the ones made of many similar things,
21113
21400
  * whether those are counted or continuous: `streaks`, whose lanes draw a
21114
21401
  * speed, a length, a width, a spacing and a weight apiece; `particles`, whose
21115
- * motes draw a size, a brightness and a wander; and `rays` and `aurora`, whose
21116
- * fan, bundles and folds widen or even out.
21117
- *
21118
- * Inert on the other seven, for three different reasons. `braid`, `waves` and
21119
- * `flow` have a single subject and nothing to vary. `threads` and `lattice`
21120
- * are even on purpose, a scatter of strands and a regular structure each being
21121
- * what it is because its members do not differ. `caustics` and `fracture` are
21122
- * populations this does not reach, which is a gap rather than a refusal.
21402
+ * motes draw a size, a brightness and a wander; `rays` and `aurora`, whose
21403
+ * fan, bundles and folds widen or even out; `caustics`, whose three depths of
21404
+ * fold close on one scale and one weight while the pool over them flattens to
21405
+ * an even wash; and `fracture`, whose sites come home to their own cell
21406
+ * centers, leaving equal territories and no border more contested than
21407
+ * another.
21408
+ *
21409
+ * Inert on the other five, and every one of them a refusal. `braid`, `waves`
21410
+ * and `flow` have a single subject and nothing to vary. `threads` and
21411
+ * `lattice` are even on purpose, a scatter of strands and a regular structure
21412
+ * each being what it is because its members do not differ: `threads` gives
21413
+ * its seven one amplitude, one thickness, one weight and one frequency on
21414
+ * the argument that alike is what makes a weave read as woven, and a lattice
21415
+ * whose cells differed would be a scatter with straight lines in it.
21123
21416
  * - `variant`: Which form the light takes. Absent is `braid`.
21124
21417
  *
21125
21418
  * Reflected because the fallback gradient selects on it, and given no default
@@ -22545,9 +22838,12 @@ export type CustomElements = {
22545
22838
  * browser's own momentum and the controls only have to scroll.
22546
22839
  *
22547
22840
  * Slides take the full track by default. `per-view` fits more than one across,
22548
- * up to five, and is declared on the tier below because it decides how many
22841
+ * at any count, and is declared on the tier below because it decides how many
22549
22842
  * positions the track has rather than only how wide a slide is,
22550
22843
  * which is what a run of cards wants rather than a run of full-width panels.
22844
+ * This sheet divides the track by the number that tier publishes rather than
22845
+ * enumerating the values it will answer for, so there is no count it silently
22846
+ * draws one across.
22551
22847
  *
22552
22848
  * ## Attributes & Properties
22553
22849
  *
@@ -22678,6 +22974,27 @@ export type CustomElements = {
22678
22974
  * offset the track has already reached: pressing next walks the dots to the
22679
22975
  * end while the slides stop moving a third of the way through.
22680
22976
  *
22977
+ * **The number is published to the styles rather than enumerated by them**,
22978
+ * as `--carousel-per-view` on the track, which is what keeps a width and a
22979
+ * count from disagreeing. A sheet can only name a value it wrote a rule for,
22980
+ * so the styled tier enumerated `per-view="2"` through `5` and called five a
22981
+ * judgment; above it the pane fell back to one across while this file went on
22982
+ * counting positions. Measured in Chromium over eight slides, six across gave
22983
+ * three dots, a pane taking the whole track and five slides reachable only by
22984
+ * dragging. Written from here there is no ceiling to exceed, and a consumer's
22985
+ * own sheet reads the same declaration the styled one does. `runEnd` publishes
22986
+ * its correction the same way and for the same reason.
22987
+ *
22988
+ * **On the track and not on the host.** A custom property on the host is a
22989
+ * reflected attribute by another name: it would arrive on upgrade, and a
22990
+ * consumer's server markup never had it. Inside the component's own shadow
22991
+ * root it serializes with the rest of the template on the server, and the
22992
+ * track's own declaration beats anything a consumer inherits in, so the
22993
+ * attribute is the one answer to how wide a pane is.
22994
+ *
22995
+ * A value the track cannot honor is taken to the nearest one it can, by
22996
+ * `across`, and both tiers read that rather than this.
22997
+ *
22681
22998
  * No default, because it reflects. A reflected property with a value writes
22682
22999
  * its attribute on upgrade, and the host then carries something a consumer's
22683
23000
  * server markup never had, which React reports as a mismatch. The one-across
@@ -22736,6 +23053,7 @@ export type CustomElements = {
22736
23053
  * - `--carousel-block-size`: Height of a vertical track. (default: `undefined`)
22737
23054
  * - `--carousel-gap`: Space between slides. A sheet sets it and the component measures the run with it. (default: `undefined`)
22738
23055
  * - `--carousel-pane`: The size one pane is laid out at. A sheet sets it and the component measures the run with it. (default: `undefined`)
23056
+ * - `--carousel-per-view`: How many slides go across, written onto the track by the component so a sheet divides the track by the same number the positions are counted from. Read it rather than selecting on `per-view`, which cannot be enumerated without a ceiling. See `perView`. (default: `undefined`)
22739
23057
  * - `--carousel-run-end`: How far short of a whole pixel the run ends, on the last slide alone, for a sheet to take up as `margin-inline-end`. See `runEnd`. (default: `undefined`)
22740
23058
  *
22741
23059
  * ## CSS Parts
@@ -24049,6 +24367,46 @@ export type CustomElements = {
24049
24367
  * answer to which one is authoritative or which has the caret. Do not close it
24050
24368
  * the other way round, with Color Input dropping its own field: the value
24051
24369
  * would then be unreadable and unpasteable without opening a panel.
24370
+ * - `readonly`/`readOnly`: Whether the control refuses changes while still submitting its value.
24371
+ *
24372
+ * **Enforced by refusing every request in one place**, which is the seam this
24373
+ * component already has: `requestValue` is what every path here comes through,
24374
+ * and gating it once is what stops the next call site from being written
24375
+ * without the check.
24376
+ *
24377
+ * Not `disabled`, which is the confusion worth naming: a disabled control
24378
+ * submits nothing and leaves the tab order, and a read-only one submits its
24379
+ * value and stays reachable, which is what a form showing a color somebody
24380
+ * else set needs.
24381
+ *
24382
+ * **One gate is not enough here, and the second is `move`.** This picker
24383
+ * holds a model beside its value, which Date Picker and Time Picker do not:
24384
+ * `moved` is the HSB the square is drawn from, and it is written before the
24385
+ * value is requested. Gating only the request would leave the square under
24386
+ * the reader's pointer and the value where it was, which is a control that
24387
+ * refuses and looks like it accepted.
24388
+ * - `required`: Whether the form refuses to submit while no color is chosen.
24389
+ *
24390
+ * **A color is exactly as requirable as a date**, which is the comparison
24391
+ * that settles it: this element extends `HelixFormElement`, carries `name`
24392
+ * and reports its value, so a consumer writing
24393
+ * `<helix-color-picker name="brand" required>` inside a form has every reason
24394
+ * to expect the form to refuse an empty one. Its two siblings in the same
24395
+ * composition position, Date Picker and Time Picker, both check it.
24396
+ *
24397
+ * Written out rather than taken from `MixinField`, for the reason those two
24398
+ * record: the mixin brings a label, a hint and a feedback region, and this is
24399
+ * a panel composed *into* a field that already has all three, so taking it
24400
+ * would give one control two of each. What is left is the validity call and
24401
+ * the anchor the browser points its bubble at.
24402
+ *
24403
+ * **Emptiness is the only fault reported, and bad input deliberately is
24404
+ * not.** The value row is typed into a character at a time and every
24405
+ * keystroke reaches `requestValue`, so `#0`, `#00` and `#00f` would each be a
24406
+ * reported fault on the way to `#00ff00`. Date Picker and Time Picker can
24407
+ * report bad input because their value moves only on a commit. Color Input
24408
+ * reports it for this family instead, once, against the field the reader
24409
+ * typed into.
24052
24410
  * - `swatches`: Colors offered under the picker, as a comma-separated list.
24053
24411
  * - `disabled`: Whether the control is non-interactive.
24054
24412
  *
@@ -33084,6 +33442,40 @@ export type CustomElements = {
33084
33442
  * different answers and a control that cannot express the first has to
33085
33443
  * pretend the second. A survey that requires an answer says so with
33086
33444
  * `required`, not by making one unreachable.
33445
+ *
33446
+ * **It is the floor of the scale, and every edge follows from that.**
33447
+ *
33448
+ * *Clearing* returns the row to it. An empty rating, a value nothing can
33449
+ * parse, and a form reset with nothing declared are all the same situation,
33450
+ * and all three draw `min` filled: at the default of zero that is the empty
33451
+ * row this always drew, and at `min="2"` it is two marks, the way an empty
33452
+ * `Slider` sits at its own minimum rather than at zero. The value is still
33453
+ * `""` through all of it, so `required` still refuses it and `valueAsNumber`
33454
+ * is still `NaN`: what the row shows is the bottom of the scale, not an
33455
+ * answer somebody gave.
33456
+ *
33457
+ * *The steps* are the scores from `step` up to `max` that are not below it,
33458
+ * so `min="2"` on five marks offers 2 to 5 and leaves the first two marks
33459
+ * filled and unpressable. At zero nothing is dropped, which is why the
33460
+ * default row is unchanged.
33461
+ *
33462
+ * *The keyboard* moves through those steps and no others. `wrap` is already
33463
+ * false here, so arrowing down from the lowest one holds its ground rather
33464
+ * than reaching a score this property forbids, and the tab stop an unrated
33465
+ * rating carries sits on the lowest score offered rather than on the first
33466
+ * mark.
33467
+ *
33468
+ * *A `min` between two steps* is a floor and not a step: `min="1.5"` with
33469
+ * whole marks clamps the value at 1.5 and offers 2 upward, since 1.5 is not
33470
+ * somewhere the row can be pressed. That is a real thing to ask for and is
33471
+ * left to mean what it says.
33472
+ *
33473
+ * *A `min` outside the marks is refused rather than obeyed*, and says so
33474
+ * once on the console. Below zero and anything that is not a number are read
33475
+ * as zero, there being no mark to draw for a negative score; above `max` is
33476
+ * read as `max`, which collapses the scale to its top score rather than
33477
+ * leaving a rating with nothing to press. A property that silently accepts
33478
+ * nonsense is the fault this pays off, so neither case is quietly ignored.
33087
33479
  * - `readonly`/`readOnly`: Whether this shows a score rather than asks for one.
33088
33480
  *
33089
33481
  * A readout is not a control that has been switched off. It takes no focus,
@@ -33241,14 +33633,15 @@ export type CustomElements = {
33241
33633
  * - `--rating-size`: How big one mark is. (default: `undefined`)
33242
33634
  * - `--rating-full`: How many marks are wholly filled. (default: `undefined`)
33243
33635
  * - `--rating-part`: How much of the next mark is filled, 0 to 1. (default: `undefined`)
33244
- * - `--rating-step`: The width of one step, as a fraction of a mark. (default: `undefined`)
33245
- * - `--rating-steps`: How many steps one mark is divided into. (default: `undefined`)
33636
+ * - `--rating-step`: Which step along the row a target is, counting from one, whatever `min` leaves open. (default: `undefined`)
33637
+ * - `--rating-steps`: How many steps the whole row holds, which is `max` over `step`. (default: `undefined`)
33246
33638
  *
33247
33639
  * ## CSS Parts
33248
33640
  *
33249
33641
  * Custom selectors for styling elements within the component.
33250
33642
  *
33251
33643
  * - `feedback`: What is wrong with it.
33644
+ * - `field`: The row: the marks, and the score beside them.
33252
33645
  * - `fill`: The filled marks, clipped to the score.
33253
33646
  * - `hint`: Help under the marks, while nothing is wrong.
33254
33647
  * - `label`: The question, over the marks.
@@ -40405,17 +40798,23 @@ export type CustomElementsSolidJs = {
40405
40798
  * exaggerating, and a streak whose length has passed through zero is drawn
40406
40799
  * as a bar across the whole frame.
40407
40800
  *
40408
- * Read by four of the eleven shapes, the ones made of many similar things,
40801
+ * Read by six of the eleven shapes, the ones made of many similar things,
40409
40802
  * whether those are counted or continuous: `streaks`, whose lanes draw a
40410
40803
  * speed, a length, a width, a spacing and a weight apiece; `particles`, whose
40411
- * motes draw a size, a brightness and a wander; and `rays` and `aurora`, whose
40412
- * fan, bundles and folds widen or even out.
40413
- *
40414
- * Inert on the other seven, for three different reasons. `braid`, `waves` and
40415
- * `flow` have a single subject and nothing to vary. `threads` and `lattice`
40416
- * are even on purpose, a scatter of strands and a regular structure each being
40417
- * what it is because its members do not differ. `caustics` and `fracture` are
40418
- * populations this does not reach, which is a gap rather than a refusal.
40804
+ * motes draw a size, a brightness and a wander; `rays` and `aurora`, whose
40805
+ * fan, bundles and folds widen or even out; `caustics`, whose three depths of
40806
+ * fold close on one scale and one weight while the pool over them flattens to
40807
+ * an even wash; and `fracture`, whose sites come home to their own cell
40808
+ * centers, leaving equal territories and no border more contested than
40809
+ * another.
40810
+ *
40811
+ * Inert on the other five, and every one of them a refusal. `braid`, `waves`
40812
+ * and `flow` have a single subject and nothing to vary. `threads` and
40813
+ * `lattice` are even on purpose, a scatter of strands and a regular structure
40814
+ * each being what it is because its members do not differ: `threads` gives
40815
+ * its seven one amplitude, one thickness, one weight and one frequency on
40816
+ * the argument that alike is what makes a weave read as woven, and a lattice
40817
+ * whose cells differed would be a scatter with straight lines in it.
40419
40818
  * - `variant`: Which form the light takes. Absent is `braid`.
40420
40819
  *
40421
40820
  * Reflected because the fallback gradient selects on it, and given no default
@@ -41877,9 +42276,12 @@ export type CustomElementsSolidJs = {
41877
42276
  * browser's own momentum and the controls only have to scroll.
41878
42277
  *
41879
42278
  * Slides take the full track by default. `per-view` fits more than one across,
41880
- * up to five, and is declared on the tier below because it decides how many
42279
+ * at any count, and is declared on the tier below because it decides how many
41881
42280
  * positions the track has rather than only how wide a slide is,
41882
42281
  * which is what a run of cards wants rather than a run of full-width panels.
42282
+ * This sheet divides the track by the number that tier publishes rather than
42283
+ * enumerating the values it will answer for, so there is no count it silently
42284
+ * draws one across.
41883
42285
  *
41884
42286
  * ## Attributes & Properties
41885
42287
  *
@@ -42010,6 +42412,27 @@ export type CustomElementsSolidJs = {
42010
42412
  * offset the track has already reached: pressing next walks the dots to the
42011
42413
  * end while the slides stop moving a third of the way through.
42012
42414
  *
42415
+ * **The number is published to the styles rather than enumerated by them**,
42416
+ * as `--carousel-per-view` on the track, which is what keeps a width and a
42417
+ * count from disagreeing. A sheet can only name a value it wrote a rule for,
42418
+ * so the styled tier enumerated `per-view="2"` through `5` and called five a
42419
+ * judgment; above it the pane fell back to one across while this file went on
42420
+ * counting positions. Measured in Chromium over eight slides, six across gave
42421
+ * three dots, a pane taking the whole track and five slides reachable only by
42422
+ * dragging. Written from here there is no ceiling to exceed, and a consumer's
42423
+ * own sheet reads the same declaration the styled one does. `runEnd` publishes
42424
+ * its correction the same way and for the same reason.
42425
+ *
42426
+ * **On the track and not on the host.** A custom property on the host is a
42427
+ * reflected attribute by another name: it would arrive on upgrade, and a
42428
+ * consumer's server markup never had it. Inside the component's own shadow
42429
+ * root it serializes with the rest of the template on the server, and the
42430
+ * track's own declaration beats anything a consumer inherits in, so the
42431
+ * attribute is the one answer to how wide a pane is.
42432
+ *
42433
+ * A value the track cannot honor is taken to the nearest one it can, by
42434
+ * `across`, and both tiers read that rather than this.
42435
+ *
42013
42436
  * No default, because it reflects. A reflected property with a value writes
42014
42437
  * its attribute on upgrade, and the host then carries something a consumer's
42015
42438
  * server markup never had, which React reports as a mismatch. The one-across
@@ -42068,6 +42491,7 @@ export type CustomElementsSolidJs = {
42068
42491
  * - `--carousel-block-size`: Height of a vertical track. (default: `undefined`)
42069
42492
  * - `--carousel-gap`: Space between slides. A sheet sets it and the component measures the run with it. (default: `undefined`)
42070
42493
  * - `--carousel-pane`: The size one pane is laid out at. A sheet sets it and the component measures the run with it. (default: `undefined`)
42494
+ * - `--carousel-per-view`: How many slides go across, written onto the track by the component so a sheet divides the track by the same number the positions are counted from. Read it rather than selecting on `per-view`, which cannot be enumerated without a ceiling. See `perView`. (default: `undefined`)
42071
42495
  * - `--carousel-run-end`: How far short of a whole pixel the run ends, on the last slide alone, for a sheet to take up as `margin-inline-end`. See `runEnd`. (default: `undefined`)
42072
42496
  *
42073
42497
  * ## CSS Parts
@@ -43406,6 +43830,46 @@ export type CustomElementsSolidJs = {
43406
43830
  * answer to which one is authoritative or which has the caret. Do not close it
43407
43831
  * the other way round, with Color Input dropping its own field: the value
43408
43832
  * would then be unreadable and unpasteable without opening a panel.
43833
+ * - `readonly`/`readOnly`: Whether the control refuses changes while still submitting its value.
43834
+ *
43835
+ * **Enforced by refusing every request in one place**, which is the seam this
43836
+ * component already has: `requestValue` is what every path here comes through,
43837
+ * and gating it once is what stops the next call site from being written
43838
+ * without the check.
43839
+ *
43840
+ * Not `disabled`, which is the confusion worth naming: a disabled control
43841
+ * submits nothing and leaves the tab order, and a read-only one submits its
43842
+ * value and stays reachable, which is what a form showing a color somebody
43843
+ * else set needs.
43844
+ *
43845
+ * **One gate is not enough here, and the second is `move`.** This picker
43846
+ * holds a model beside its value, which Date Picker and Time Picker do not:
43847
+ * `moved` is the HSB the square is drawn from, and it is written before the
43848
+ * value is requested. Gating only the request would leave the square under
43849
+ * the reader's pointer and the value where it was, which is a control that
43850
+ * refuses and looks like it accepted.
43851
+ * - `required`: Whether the form refuses to submit while no color is chosen.
43852
+ *
43853
+ * **A color is exactly as requirable as a date**, which is the comparison
43854
+ * that settles it: this element extends `HelixFormElement`, carries `name`
43855
+ * and reports its value, so a consumer writing
43856
+ * `<helix-color-picker name="brand" required>` inside a form has every reason
43857
+ * to expect the form to refuse an empty one. Its two siblings in the same
43858
+ * composition position, Date Picker and Time Picker, both check it.
43859
+ *
43860
+ * Written out rather than taken from `MixinField`, for the reason those two
43861
+ * record: the mixin brings a label, a hint and a feedback region, and this is
43862
+ * a panel composed *into* a field that already has all three, so taking it
43863
+ * would give one control two of each. What is left is the validity call and
43864
+ * the anchor the browser points its bubble at.
43865
+ *
43866
+ * **Emptiness is the only fault reported, and bad input deliberately is
43867
+ * not.** The value row is typed into a character at a time and every
43868
+ * keystroke reaches `requestValue`, so `#0`, `#00` and `#00f` would each be a
43869
+ * reported fault on the way to `#00ff00`. Date Picker and Time Picker can
43870
+ * report bad input because their value moves only on a commit. Color Input
43871
+ * reports it for this family instead, once, against the field the reader
43872
+ * typed into.
43409
43873
  * - `swatches`: Colors offered under the picker, as a comma-separated list.
43410
43874
  * - `disabled`: Whether the control is non-interactive.
43411
43875
  *
@@ -52627,6 +53091,40 @@ export type CustomElementsSolidJs = {
52627
53091
  * different answers and a control that cannot express the first has to
52628
53092
  * pretend the second. A survey that requires an answer says so with
52629
53093
  * `required`, not by making one unreachable.
53094
+ *
53095
+ * **It is the floor of the scale, and every edge follows from that.**
53096
+ *
53097
+ * *Clearing* returns the row to it. An empty rating, a value nothing can
53098
+ * parse, and a form reset with nothing declared are all the same situation,
53099
+ * and all three draw `min` filled: at the default of zero that is the empty
53100
+ * row this always drew, and at `min="2"` it is two marks, the way an empty
53101
+ * `Slider` sits at its own minimum rather than at zero. The value is still
53102
+ * `""` through all of it, so `required` still refuses it and `valueAsNumber`
53103
+ * is still `NaN`: what the row shows is the bottom of the scale, not an
53104
+ * answer somebody gave.
53105
+ *
53106
+ * *The steps* are the scores from `step` up to `max` that are not below it,
53107
+ * so `min="2"` on five marks offers 2 to 5 and leaves the first two marks
53108
+ * filled and unpressable. At zero nothing is dropped, which is why the
53109
+ * default row is unchanged.
53110
+ *
53111
+ * *The keyboard* moves through those steps and no others. `wrap` is already
53112
+ * false here, so arrowing down from the lowest one holds its ground rather
53113
+ * than reaching a score this property forbids, and the tab stop an unrated
53114
+ * rating carries sits on the lowest score offered rather than on the first
53115
+ * mark.
53116
+ *
53117
+ * *A `min` between two steps* is a floor and not a step: `min="1.5"` with
53118
+ * whole marks clamps the value at 1.5 and offers 2 upward, since 1.5 is not
53119
+ * somewhere the row can be pressed. That is a real thing to ask for and is
53120
+ * left to mean what it says.
53121
+ *
53122
+ * *A `min` outside the marks is refused rather than obeyed*, and says so
53123
+ * once on the console. Below zero and anything that is not a number are read
53124
+ * as zero, there being no mark to draw for a negative score; above `max` is
53125
+ * read as `max`, which collapses the scale to its top score rather than
53126
+ * leaving a rating with nothing to press. A property that silently accepts
53127
+ * nonsense is the fault this pays off, so neither case is quietly ignored.
52630
53128
  * - `readonly`/`readOnly`: Whether this shows a score rather than asks for one.
52631
53129
  *
52632
53130
  * A readout is not a control that has been switched off. It takes no focus,
@@ -52784,14 +53282,15 @@ export type CustomElementsSolidJs = {
52784
53282
  * - `--rating-size`: How big one mark is. (default: `undefined`)
52785
53283
  * - `--rating-full`: How many marks are wholly filled. (default: `undefined`)
52786
53284
  * - `--rating-part`: How much of the next mark is filled, 0 to 1. (default: `undefined`)
52787
- * - `--rating-step`: The width of one step, as a fraction of a mark. (default: `undefined`)
52788
- * - `--rating-steps`: How many steps one mark is divided into. (default: `undefined`)
53285
+ * - `--rating-step`: Which step along the row a target is, counting from one, whatever `min` leaves open. (default: `undefined`)
53286
+ * - `--rating-steps`: How many steps the whole row holds, which is `max` over `step`. (default: `undefined`)
52789
53287
  *
52790
53288
  * ## CSS Parts
52791
53289
  *
52792
53290
  * Custom selectors for styling elements within the component.
52793
53291
  *
52794
53292
  * - `feedback`: What is wrong with it.
53293
+ * - `field`: The row: the marks, and the score beside them.
52795
53294
  * - `fill`: The filled marks, clipped to the score.
52796
53295
  * - `hint`: Help under the marks, while nothing is wrong.
52797
53296
  * - `label`: The question, over the marks.
@@ -59467,6 +59966,8 @@ export type CustomCssProperties = {
59467
59966
  "--carousel-gap"?: (string) | undefined;
59468
59967
  /** The size one pane is laid out at. A sheet sets it and the component measures the run with it. */
59469
59968
  "--carousel-pane"?: (string) | undefined;
59969
+ /** How many slides go across, written onto the track by the component so a sheet divides the track by the same number the positions are counted from. Read it rather than selecting on `per-view`, which cannot be enumerated without a ceiling. See `perView`. */
59970
+ "--carousel-per-view"?: (string) | undefined;
59470
59971
  /** How far short of a whole pixel the run ends, on the last slide alone, for a sheet to take up as `margin-inline-end`. See `runEnd`. */
59471
59972
  "--carousel-run-end"?: (string) | undefined;
59472
59973
  /** Fill behind the composer. */
@@ -60047,9 +60548,9 @@ export type CustomCssProperties = {
60047
60548
  "--rating-full"?: (string) | undefined;
60048
60549
  /** How much of the next mark is filled, 0 to 1. */
60049
60550
  "--rating-part"?: (string) | undefined;
60050
- /** The width of one step, as a fraction of a mark. */
60551
+ /** Which step along the row a target is, counting from one, whatever `min` leaves open. */
60051
60552
  "--rating-step"?: (string) | undefined;
60052
- /** How many steps one mark is divided into. */
60553
+ /** How many steps the whole row holds, which is `max` over `step`. */
60053
60554
  "--rating-steps"?: (string) | undefined;
60054
60555
  /** The invisible width of a divider's drag target. */
60055
60556
  "--sandbox-grab"?: (string) | undefined;