@fusion.dev/helix 0.45.0 → 0.46.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14517,7 +14517,7 @@
14517
14517
  "type": {
14518
14518
  "text": "HelixSelectEvent"
14519
14519
  },
14520
- "description": "Fired when the slide in view changes, with its index. Cancelable where the carousel is about to move: refusing a control or an indicator takes the decision and nothing moves. A drag has already moved the track, so that one announces after the fact and refusing it does nothing. See `handleScroll`.",
14520
+ "description": "Fired before the slide in view changes, with the index being asked for. Cancelable: refusing it takes the decision and nothing moves, including a drag, which is put back on the slide the index still holds. See `handleScroll`.",
14521
14521
  "name": "helix-select",
14522
14522
  "reactProp": "onhelix-select",
14523
14523
  "inheritedFrom": {
@@ -15700,7 +15700,7 @@
15700
15700
  "type": {
15701
15701
  "text": "'failed' | 'sending' | 'sent' | 'streaming' | undefined"
15702
15702
  },
15703
- "description": "What has happened to it.\n\nReflected, because every one of the four is a visual state and a stylesheet\nhas no other way to know. Absent is a settled message with nothing to\nreport, which is what most of a transcript is, and it is the absence of the\nattribute rather than a value of it: there is no initializer, so nothing is\nreflected until something happens.",
15703
+ "description": "What has happened to it.\n\nReflected, because every one of the four is a visual state and a stylesheet\nhas no other way to know. Absent is a settled message with nothing to\nreport, which is what most of a transcript is, and it is the absence of the\nattribute rather than a value of it: there is no initializer, so nothing is\nreflected until something happens.\n\n**The turn writes this once, on a retry nobody refused**, and `handleRetry`\nholds the reason. Everything else that moves it is the consumer's.",
15704
15704
  "attribute": "state",
15705
15705
  "reflects": true,
15706
15706
  "inheritedFrom": {
@@ -15825,7 +15825,7 @@
15825
15825
  "name": "handleRetry",
15826
15826
  "privacy": "private",
15827
15827
  "readonly": true,
15828
- "description": "Retry is `helix-send` again, from the message rather than the composer.\n\n**Not an event of its own**, because a retry is the same request: the reader\nis offering what they wrote, and the only difference is which element is\noffering it. A listener that wants to tell them apart has `event.target`,\nwhich is the message on a retry and the composer on a first send, and that\nis a distinction the DOM already makes without a second name for it.",
15828
+ "description": "Retry is `helix-send` again, from the message rather than the composer.\n\n**Not an event of its own**, because a retry is the same request: the reader\nis offering what they wrote, and the only difference is which element is\noffering it. A listener that wants to tell them apart has `event.target`,\nwhich is the message on a retry and the composer on a first send, and that\nis a distinction the DOM already makes without a second name for it.\n\n**Through `requestChange`, and the turn is what moves.** `helix-send` is\ncancelable because the composer clears only when nobody refused, and this\ndispatch had nothing behind it: the reader pressed the control, the turn sat\nat \"Not sent\" with the same control still on it, and `preventDefault()`\nrefused a decision nobody here was about to take. A retry that stands is a\nturn on its way, which is what `sending` means, so that is the default\naction and refusing it leaves the failure exactly where it was. A consumer\nwho wants something else refuses and assigns `state` themselves, which is\nhow control is taken from every other stateful element in the library.",
15829
15829
  "inheritedFrom": {
15830
15830
  "name": "HelixHeadlessChatMessage",
15831
15831
  "module": "src/chat/message/chat-message.ts"
@@ -16230,7 +16230,7 @@
16230
16230
  "type": {
16231
16231
  "text": "'failed' | 'sending' | 'sent' | 'streaming' | undefined"
16232
16232
  },
16233
- "description": "What has happened to it.\n\nReflected, because every one of the four is a visual state and a stylesheet\nhas no other way to know. Absent is a settled message with nothing to\nreport, which is what most of a transcript is, and it is the absence of the\nattribute rather than a value of it: there is no initializer, so nothing is\nreflected until something happens.",
16233
+ "description": "What has happened to it.\n\nReflected, because every one of the four is a visual state and a stylesheet\nhas no other way to know. Absent is a settled message with nothing to\nreport, which is what most of a transcript is, and it is the absence of the\nattribute rather than a value of it: there is no initializer, so nothing is\nreflected until something happens.\n\n**The turn writes this once, on a retry nobody refused**, and `handleRetry`\nholds the reason. Everything else that moves it is the consumer's.",
16234
16234
  "fieldName": "state",
16235
16235
  "inheritedFrom": {
16236
16236
  "name": "HelixHeadlessChatMessage",
@@ -16259,7 +16259,7 @@
16259
16259
  "type": {
16260
16260
  "text": "HelixSendEvent"
16261
16261
  },
16262
- "description": "Fired when the reader asks to send a failed message again, and cancelable.",
16262
+ "description": "Fired when the reader asks to send a failed message again. Cancelable: a retry that stands puts the turn back on its way, and refusing it leaves the failure and the control offering it exactly where they were.",
16263
16263
  "name": "helix-send",
16264
16264
  "reactProp": "onhelix-send",
16265
16265
  "inheritedFrom": {
@@ -25070,6 +25070,21 @@
25070
25070
  "module": "src/color-picker/root/color-picker-root.ts"
25071
25071
  }
25072
25072
  },
25073
+ {
25074
+ "kind": "method",
25075
+ "name": "sync",
25076
+ "privacy": "private",
25077
+ "return": {
25078
+ "type": {
25079
+ "text": "void"
25080
+ }
25081
+ },
25082
+ "description": "Reports the color to the form.\n\n**The one thing a form-associated element owes, and this element owed it\nfrom the start without paying.** It extends `HelixFormElement`, takes\n`MixinControllerValue` and carries `name`, so a consumer writing\n`<helix-color-picker name=\"brand\">` inside a form has every reason to\nexpect an entry, and the form carried none: no error, nothing in the\nmarkup to look at, and a field silently missing from the submission. Its\ntwo siblings in the same composition position, Color Input and Slider,\nboth report.\n\n`null` rather than an empty string where there is no color, which is the\ndifference between a control that submits nothing and one that submits a\nblank. There is no `setValidity` beside it: this element does not take\n`MixinField`, and every validity member of `ElementInternals` is the\nconsumer's to reach through the field that wraps it.",
25083
+ "inheritedFrom": {
25084
+ "name": "HelixHeadlessColorPicker",
25085
+ "module": "src/color-picker/root/color-picker-root.ts"
25086
+ }
25087
+ },
25073
25088
  {
25074
25089
  "kind": "method",
25075
25090
  "name": "focus",
@@ -45844,9 +45859,75 @@
45844
45859
  "module": "src/file-input/root/file-input-root.ts"
45845
45860
  }
45846
45861
  },
45862
+ {
45863
+ "kind": "field",
45864
+ "name": "committed",
45865
+ "type": {
45866
+ "text": "File[]"
45867
+ },
45868
+ "privacy": "private",
45869
+ "default": "[]",
45870
+ "description": "The files this element last stood behind, so a refusal has somewhere to go.\n\nThe picker and a drop both write the input before anything here runs, so\nthe list being replaced is gone by the time the request is announced.\nNothing else records it: `files` reads the control, which is already the\nnew answer.",
45871
+ "inheritedFrom": {
45872
+ "name": "HelixHeadlessFileInput",
45873
+ "module": "src/file-input/root/file-input-root.ts"
45874
+ }
45875
+ },
45847
45876
  {
45848
45877
  "kind": "method",
45849
- "name": "announce",
45878
+ "name": "commit",
45879
+ "privacy": "private",
45880
+ "return": {
45881
+ "type": {
45882
+ "text": "void"
45883
+ }
45884
+ },
45885
+ "parameters": [
45886
+ {
45887
+ "name": "next",
45888
+ "type": {
45889
+ "text": "File[]"
45890
+ }
45891
+ }
45892
+ ],
45893
+ "description": "Asks for a set of files, and puts them in unless a listener refuses.\n\n**The request was announced after the fact and nothing read it.** This\nelement dispatched `helix-before-change` from `announce`, after the input\nhad taken the files and after `setFormValue` had reported them, and\ndiscarded what the dispatch returned: an `@event` line promising that\nrefusing it left nothing moved, over a veto with no reader. The other\ndirection of that same fault is what `requestChange` exists to prevent, so\nthis goes through it like every other value control.\n\n**A refusal puts the input back rather than stopping an assignment**, which\nis the shape a file input forces. Two of the four paths in are the browser\nwriting `control.files` before this element hears anything, so there is no\nassignment left to skip and the honest answer is to restore the list the\nelement last stood behind.",
45894
+ "inheritedFrom": {
45895
+ "name": "HelixHeadlessFileInput",
45896
+ "module": "src/file-input/root/file-input-root.ts"
45897
+ }
45898
+ },
45899
+ {
45900
+ "kind": "method",
45901
+ "name": "put",
45902
+ "privacy": "private",
45903
+ "return": {
45904
+ "type": {
45905
+ "text": "void"
45906
+ }
45907
+ },
45908
+ "parameters": [
45909
+ {
45910
+ "name": "control",
45911
+ "type": {
45912
+ "text": "HTMLInputElement"
45913
+ }
45914
+ },
45915
+ {
45916
+ "name": "files",
45917
+ "type": {
45918
+ "text": "File[]"
45919
+ }
45920
+ }
45921
+ ],
45922
+ "description": "Writes a list onto the input, which is the only way a `FileList` is built.\n\n`value = ''` for the empty case rather than an empty `DataTransfer`,\nbecause emptying is the one write a control accepts everywhere and a\nharness without `DataTransfer` still has to be able to clear.",
45923
+ "inheritedFrom": {
45924
+ "name": "HelixHeadlessFileInput",
45925
+ "module": "src/file-input/root/file-input-root.ts"
45926
+ }
45927
+ },
45928
+ {
45929
+ "kind": "method",
45930
+ "name": "settle",
45850
45931
  "privacy": "private",
45851
45932
  "return": {
45852
45933
  "type": {
@@ -45958,7 +46039,7 @@
45958
46039
  "text": "void"
45959
46040
  }
45960
46041
  },
45961
- "description": "Empties it, which is what a form reset means for a file input.",
46042
+ "description": "Empties it, which is what a form reset means for a file input.\n\nNot through `commit`, and that is the point of the split: a reset is the\nform's decision and there is nothing here for a listener to refuse. What it\nowes is the report and the platform's own announcement, which is what\n`settle` is.",
45962
46043
  "type": {
45963
46044
  "text": "formResetCallback() => void"
45964
46045
  },
@@ -46868,7 +46949,7 @@
46868
46949
  "type": {
46869
46950
  "text": "HelixBeforeChangeEvent"
46870
46951
  },
46871
- "description": "Fired before the chosen files change, with their names. Cancelable: refusing it takes the decision and nothing moves.",
46952
+ "description": "Fired before the chosen files change, with their names. Cancelable: refusing it takes the decision and the field keeps the files it had, a pick the browser has already written included.",
46872
46953
  "name": "helix-before-change",
46873
46954
  "reactProp": "onhelix-before-change",
46874
46955
  "inheritedFrom": {
@@ -89098,7 +89179,7 @@
89098
89179
  "name": "handleSelection",
89099
89180
  "privacy": "private",
89100
89181
  "readonly": true,
89101
- "description": "Announces before it applies, so a listener can refuse the change.\n\nThe item has not moved by the time this runs, unlike a native input, so\nrefusing is simply not writing the value: there is nothing to put back.",
89182
+ "description": "Announces before it applies, so a listener can refuse the change.\n\nThe item has not moved by the time this runs, unlike a native input, so\nrefusing is simply not writing the value: there is nothing to put back.\n\n**The radio's own `helix-select` is a request, and the argument that it was\na notification is the one this settles.** That argument ran: the group's\nveto is `helix-before-change` a step later, so the item could be read as\nannouncing a choice the group then decides about. What it leaves out is who\ncan reach which event. `helix-before-change` is dispatched on the group, so\nrefusing it needs a listener on the group, and a consumer ruling out one\nanswer binds to that answer. Two gates in two positions is the shape, and\nthe item's is the one that was doing nothing.",
89102
89183
  "inheritedFrom": {
89103
89184
  "name": "HelixHeadlessRadioGroup",
89104
89185
  "module": "src/radio/group/radio-group.ts"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix",
3
3
  "description": "Styled component tier. Extends the headless tier with token-driven presentation.",
4
- "version": "0.45.0",
4
+ "version": "0.46.1",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -47,14 +47,14 @@
47
47
  },
48
48
  "bugs": "https://github.com/project-fusion/fusion/issues",
49
49
  "dependencies": {
50
- "@fusion.dev/helix-core": "0.45.0",
51
- "@fusion.dev/helix-headless": "0.45.0",
52
- "@fusion.dev/helix-styles": "0.45.0"
50
+ "@fusion.dev/helix-core": "0.46.1",
51
+ "@fusion.dev/helix-headless": "0.46.1",
52
+ "@fusion.dev/helix-styles": "0.46.1"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@custom-elements-manifest/analyzer": "^0.11.0",
56
- "@fusion.dev/helix-cem": "0.45.0",
57
- "@fusion.dev/helix-testing": "0.45.0",
56
+ "@fusion.dev/helix-cem": "0.46.1",
57
+ "@fusion.dev/helix-testing": "0.46.1",
58
58
  "@fusion.dev/scripts": "0.0.0-dev",
59
59
  "@happy-dom/global-registrator": "^20.0.0",
60
60
  "@lit-labs/ssr": "^4.1.0",
package/types/jsx.d.ts CHANGED
@@ -2826,7 +2826,7 @@ server markup never had, which React reports as a mismatch. The one-across
2826
2826
  case is the absent attribute, and the styles read it that way. */
2827
2827
  perView?: (HelixCarousel["perView"]) | undefined;
2828
2828
 
2829
- /** Fired when the slide in view changes, with its index. Cancelable where the carousel is about to move: refusing a control or an indicator takes the decision and nothing moves. A drag has already moved the track, so that one announces after the fact and refusing it does nothing. See `handleScroll`. */
2829
+ /** Fired before the slide in view changes, with the index being asked for. Cancelable: refusing it takes the decision and nothing moves, including a drag, which is put back on the slide the index still holds. See `handleScroll`. */
2830
2830
  "onhelix-select"?: ((e: HelixCarouselHelixSelectElementEvent) => void) | undefined;
2831
2831
  };
2832
2832
 
@@ -3056,7 +3056,7 @@ its attribute on upgrade, and the host then carries something a consumer's
3056
3056
  server markup never had, which React reports as a mismatch. The one-across
3057
3057
  case is the absent attribute, and the styles read it that way. */
3058
3058
  "prop:perView"?: (HelixCarousel["perView"]) | undefined;
3059
- /** Fired when the slide in view changes, with its index. Cancelable where the carousel is about to move: refusing a control or an indicator takes the decision and nothing moves. A drag has already moved the track, so that one announces after the fact and refusing it does nothing. See `handleScroll`. */
3059
+ /** Fired before the slide in view changes, with the index being asked for. Cancelable: refusing it takes the decision and nothing moves, including a drag, which is put back on the slide the index still holds. See `handleScroll`. */
3060
3060
  "on:helix-select"?: ((e: HelixCarouselHelixSelectElementEvent) => void) | undefined;
3061
3061
 
3062
3062
  /** Set the innerHTML of the element */
@@ -3211,10 +3211,13 @@ Reflected, because every one of the four is a visual state and a stylesheet
3211
3211
  has no other way to know. Absent is a settled message with nothing to
3212
3212
  report, which is what most of a transcript is, and it is the absence of the
3213
3213
  attribute rather than a value of it: there is no initializer, so nothing is
3214
- reflected until something happens. */
3214
+ reflected until something happens.
3215
+
3216
+ **The turn writes this once, on a retry nobody refused**, and `handleRetry`
3217
+ holds the reason. Everything else that moves it is the consumer's. */
3215
3218
  state?: (HelixChatMessage["state"]) | undefined;
3216
3219
 
3217
- /** Fired when the reader asks to send a failed message again, and cancelable. */
3220
+ /** Fired when the reader asks to send a failed message again. Cancelable: a retry that stands puts the turn back on its way, and refusing it leaves the failure and the control offering it exactly where they were. */
3218
3221
  "onhelix-send"?: ((e: HelixChatMessageHelixSendElementEvent) => void) | undefined;
3219
3222
  };
3220
3223
 
@@ -3270,9 +3273,12 @@ Reflected, because every one of the four is a visual state and a stylesheet
3270
3273
  has no other way to know. Absent is a settled message with nothing to
3271
3274
  report, which is what most of a transcript is, and it is the absence of the
3272
3275
  attribute rather than a value of it: there is no initializer, so nothing is
3273
- reflected until something happens. */
3276
+ reflected until something happens.
3277
+
3278
+ **The turn writes this once, on a retry nobody refused**, and `handleRetry`
3279
+ holds the reason. Everything else that moves it is the consumer's. */
3274
3280
  "prop:state"?: (HelixChatMessage["state"]) | undefined;
3275
- /** Fired when the reader asks to send a failed message again, and cancelable. */
3281
+ /** Fired when the reader asks to send a failed message again. Cancelable: a retry that stands puts the turn back on its way, and refusing it leaves the failure and the control offering it exactly where they were. */
3276
3282
  "on:helix-send"?: ((e: HelixChatMessageHelixSendElementEvent) => void) | undefined;
3277
3283
 
3278
3284
  /** Set the innerHTML of the element */
@@ -7558,7 +7564,7 @@ Here rather than on each control. */
7558
7564
 
7559
7565
  /** Announced once the value has moved. */
7560
7566
  onchange?: ((e: HelixFileInputElementEvent) => void) | undefined;
7561
- /** Fired before the chosen files change, with their names. Cancelable: refusing it takes the decision and nothing moves. */
7567
+ /** Fired before the chosen files change, with their names. Cancelable: refusing it takes the decision and the field keeps the files it had, a pick the browser has already written included. */
7562
7568
  "onhelix-before-change"?: ((
7563
7569
  e: HelixFileInputHelixBeforeChangeElementEvent,
7564
7570
  ) => void) | undefined;
@@ -7621,7 +7627,7 @@ Here rather than on each control. */
7621
7627
  "prop:name"?: (HelixFileInput["name"]) | undefined;
7622
7628
  /** Announced once the value has moved. */
7623
7629
  "on:change"?: ((e: HelixFileInputElementEvent) => void) | undefined;
7624
- /** Fired before the chosen files change, with their names. Cancelable: refusing it takes the decision and nothing moves. */
7630
+ /** Fired before the chosen files change, with their names. Cancelable: refusing it takes the decision and the field keeps the files it had, a pick the browser has already written included. */
7625
7631
  "on:helix-before-change"?: ((
7626
7632
  e: HelixFileInputHelixBeforeChangeElementEvent,
7627
7633
  ) => void) | undefined;
@@ -22660,7 +22666,7 @@ export type CustomElements = {
22660
22666
  *
22661
22667
  * Events that will be emitted by the component.
22662
22668
  *
22663
- * - `helix-select`: Fired when the slide in view changes, with its index. Cancelable where the carousel is about to move: refusing a control or an indicator takes the decision and nothing moves. A drag has already moved the track, so that one announces after the fact and refusing it does nothing. See `handleScroll`.
22669
+ * - `helix-select`: Fired before the slide in view changes, with the index being asked for. Cancelable: refusing it takes the decision and nothing moves, including a drag, which is put back on the slide the index still holds. See `handleScroll`.
22664
22670
  *
22665
22671
  * ## Slots
22666
22672
  *
@@ -22863,6 +22869,9 @@ export type CustomElements = {
22863
22869
  * report, which is what most of a transcript is, and it is the absence of the
22864
22870
  * attribute rather than a value of it: there is no initializer, so nothing is
22865
22871
  * reflected until something happens.
22872
+ *
22873
+ * **The turn writes this once, on a retry nobody refused**, and `handleRetry`
22874
+ * holds the reason. Everything else that moves it is the consumer's.
22866
22875
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
22867
22876
  *
22868
22877
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -22888,7 +22897,7 @@ export type CustomElements = {
22888
22897
  *
22889
22898
  * Events that will be emitted by the component.
22890
22899
  *
22891
- * - `helix-send`: Fired when the reader asks to send a failed message again, and cancelable.
22900
+ * - `helix-send`: Fired when the reader asks to send a failed message again. Cancelable: a retry that stands puts the turn back on its way, and refusing it leaves the failure and the control offering it exactly where they were.
22892
22901
  *
22893
22902
  * ## Slots
22894
22903
  *
@@ -26820,7 +26829,7 @@ export type CustomElements = {
26820
26829
  * Events that will be emitted by the component.
26821
26830
  *
26822
26831
  * - `change`: Announced once the value has moved.
26823
- * - `helix-before-change`: Fired before the chosen files change, with their names. Cancelable: refusing it takes the decision and nothing moves.
26832
+ * - `helix-before-change`: Fired before the chosen files change, with their names. Cancelable: refusing it takes the decision and the field keeps the files it had, a pick the browser has already written included.
26824
26833
  * - `input`: Announced once the value has moved.
26825
26834
  *
26826
26835
  * ## Slots
@@ -26851,6 +26860,11 @@ export type CustomElements = {
26851
26860
  * picker come back out the same way.
26852
26861
  * - `focus(options?: FocusOptions) => void`: Puts focus on the input, the way a label pointing at one would.
26853
26862
  * - `formResetCallback() => void`: Empties it, which is what a form reset means for a file input.
26863
+ *
26864
+ * Not through `commit`, and that is the point of the split: a reset is the
26865
+ * form's decision and there is nothing here for a listener to refuse. What it
26866
+ * owes is the report and the platform's own announcement, which is what
26867
+ * `settle` is.
26854
26868
  * - `formDisabledCallback(disabled: boolean) => void`: The platform's notice that an ancestor fieldset changed.
26855
26869
  *
26856
26870
  * **The argument is the effective state, and taking it whole is what latched
@@ -41960,7 +41974,7 @@ export type CustomElementsSolidJs = {
41960
41974
  *
41961
41975
  * Events that will be emitted by the component.
41962
41976
  *
41963
- * - `helix-select`: Fired when the slide in view changes, with its index. Cancelable where the carousel is about to move: refusing a control or an indicator takes the decision and nothing moves. A drag has already moved the track, so that one announces after the fact and refusing it does nothing. See `handleScroll`.
41977
+ * - `helix-select`: Fired before the slide in view changes, with the index being asked for. Cancelable: refusing it takes the decision and nothing moves, including a drag, which is put back on the slide the index still holds. See `handleScroll`.
41964
41978
  *
41965
41979
  * ## Slots
41966
41980
  *
@@ -42169,6 +42183,9 @@ export type CustomElementsSolidJs = {
42169
42183
  * report, which is what most of a transcript is, and it is the absence of the
42170
42184
  * attribute rather than a value of it: there is no initializer, so nothing is
42171
42185
  * reflected until something happens.
42186
+ *
42187
+ * **The turn writes this once, on a retry nobody refused**, and `handleRetry`
42188
+ * holds the reason. Everything else that moves it is the consumer's.
42172
42189
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
42173
42190
  *
42174
42191
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -42194,7 +42211,7 @@ export type CustomElementsSolidJs = {
42194
42211
  *
42195
42212
  * Events that will be emitted by the component.
42196
42213
  *
42197
- * - `helix-send`: Fired when the reader asks to send a failed message again, and cancelable.
42214
+ * - `helix-send`: Fired when the reader asks to send a failed message again. Cancelable: a retry that stands puts the turn back on its way, and refusing it leaves the failure and the control offering it exactly where they were.
42198
42215
  *
42199
42216
  * ## Slots
42200
42217
  *
@@ -46193,7 +46210,7 @@ export type CustomElementsSolidJs = {
46193
46210
  * Events that will be emitted by the component.
46194
46211
  *
46195
46212
  * - `change`: Announced once the value has moved.
46196
- * - `helix-before-change`: Fired before the chosen files change, with their names. Cancelable: refusing it takes the decision and nothing moves.
46213
+ * - `helix-before-change`: Fired before the chosen files change, with their names. Cancelable: refusing it takes the decision and the field keeps the files it had, a pick the browser has already written included.
46197
46214
  * - `input`: Announced once the value has moved.
46198
46215
  *
46199
46216
  * ## Slots
@@ -46224,6 +46241,11 @@ export type CustomElementsSolidJs = {
46224
46241
  * picker come back out the same way.
46225
46242
  * - `focus(options?: FocusOptions) => void`: Puts focus on the input, the way a label pointing at one would.
46226
46243
  * - `formResetCallback() => void`: Empties it, which is what a form reset means for a file input.
46244
+ *
46245
+ * Not through `commit`, and that is the point of the split: a reset is the
46246
+ * form's decision and there is nothing here for a listener to refuse. What it
46247
+ * owes is the report and the platform's own announcement, which is what
46248
+ * `settle` is.
46227
46249
  * - `formDisabledCallback(disabled: boolean) => void`: The platform's notice that an ancestor fieldset changed.
46228
46250
  *
46229
46251
  * **The argument is the effective state, and taking it whole is what latched
package/types/vue.d.ts CHANGED
@@ -1558,7 +1558,7 @@ case is the absent attribute, and the styles read it that way. */
1558
1558
  };
1559
1559
 
1560
1560
  export type HelixCarouselVueEvents = {
1561
- /** Fired when the slide in view changes, with its index. Cancelable where the carousel is about to move: refusing a control or an indicator takes the decision and nothing moves. A drag has already moved the track, so that one announces after the fact and refusing it does nothing. See `handleScroll`. */
1561
+ /** Fired before the slide in view changes, with the index being asked for. Cancelable: refusing it takes the decision and nothing moves, including a drag, which is put back on the slide the index still holds. See `handleScroll`. */
1562
1562
  "helix-select": HelixCarouselHelixSelectElementEvent;
1563
1563
  };
1564
1564
 
@@ -1670,12 +1670,15 @@ Reflected, because every one of the four is a visual state and a stylesheet
1670
1670
  has no other way to know. Absent is a settled message with nothing to
1671
1671
  report, which is what most of a transcript is, and it is the absence of the
1672
1672
  attribute rather than a value of it: there is no initializer, so nothing is
1673
- reflected until something happens. */
1673
+ reflected until something happens.
1674
+
1675
+ **The turn writes this once, on a retry nobody refused**, and `handleRetry`
1676
+ holds the reason. Everything else that moves it is the consumer's. */
1674
1677
  state?: (HelixChatMessage["state"]) | undefined;
1675
1678
  };
1676
1679
 
1677
1680
  export type HelixChatMessageVueEvents = {
1678
- /** Fired when the reader asks to send a failed message again, and cancelable. */
1681
+ /** Fired when the reader asks to send a failed message again. Cancelable: a retry that stands puts the turn back on its way, and refusing it leaves the failure and the control offering it exactly where they were. */
1679
1682
  "helix-send": HelixChatMessageHelixSendElementEvent;
1680
1683
  };
1681
1684
 
@@ -3907,7 +3910,7 @@ Here rather than on each control. */
3907
3910
  export type HelixFileInputVueEvents = {
3908
3911
  /** Announced once the value has moved. */
3909
3912
  change: HelixFileInputElementEvent;
3910
- /** Fired before the chosen files change, with their names. Cancelable: refusing it takes the decision and nothing moves. */
3913
+ /** Fired before the chosen files change, with their names. Cancelable: refusing it takes the decision and the field keeps the files it had, a pick the browser has already written included. */
3911
3914
  "helix-before-change": HelixFileInputHelixBeforeChangeElementEvent;
3912
3915
  /** Announced once the value has moved. */
3913
3916
  input: HelixFileInputElementEvent;