@fusion.dev/helix-core 0.103.3 → 0.104.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/custom-elements.json +1384 -150
- package/dist/controllers/arrival-controller/arrival-controller.d.ts +43 -0
- package/dist/controllers/arrival-controller/arrival-controller.js +35 -0
- package/dist/controllers/cue-controller/cue-controller.d.ts +8 -0
- package/dist/controllers/cue-controller/cue-controller.js +4 -1
- package/dist/controllers/keyboard-navigation-controller/keyboard-navigation-controller.js +4 -0
- package/dist/controllers/remote-playback-controller/remote-playback-controller.d.ts +15 -0
- package/dist/controllers/remote-playback-controller/remote-playback-controller.js +19 -3
- package/dist/events/events.d.ts +236 -0
- package/dist/events/events.js +144 -0
- package/dist/helix-form-element/helix-form-element.d.ts +9 -0
- package/dist/helix-form-element/helix-form-element.js +1 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.js +6 -1
- package/dist/mixins/mixin-collection/mixin-collection.d.ts +6 -0
- package/dist/mixins/mixin-collection/mixin-collection.js +5 -1
- package/dist/mixins/mixin-controller-open/mixin-controller-open.js +3 -3
- package/dist/mixins/mixin-controller-value/mixin-controller-value.d.ts +1 -1
- package/dist/mixins/mixin-controller-value/mixin-controller-value.js +2 -1
- package/dist/mixins/mixin-field/mixin-field.d.ts +11 -0
- package/dist/mixins/mixin-field/mixin-field.js +25 -3
- package/dist/mixins/mixin-picker-field/mixin-picker-field.d.ts +8 -0
- package/dist/mixins/mixin-picker-field/mixin-picker-field.js +22 -2
- package/dist/mixins/mixin-tokens/mixin-tokens.js +0 -1
- package/dist/mixins/mixin-viewport/mixin-viewport.d.ts +17 -5
- package/dist/mixins/mixin-viewport/mixin-viewport.js +68 -21
- package/dist/utils/fill-template/fill-template.d.ts +13 -0
- package/dist/utils/fill-template/fill-template.js +1 -0
- package/dist/utils/key-claimed/key-claimed.d.ts +18 -0
- package/dist/utils/key-claimed/key-claimed.js +14 -0
- package/dist/utils/report-values/report-values.d.ts +21 -0
- package/dist/utils/report-values/report-values.js +11 -0
- package/dist/utils/slotted-words/slotted-words.d.ts +11 -0
- package/dist/utils/slotted-words/slotted-words.js +5 -0
- package/dist/utils/tell-disclosure/tell-disclosure.d.ts +3 -1
- package/dist/utils/tell-disclosure/tell-disclosure.js +1 -1
- package/package.json +4 -4
package/custom-elements.json
CHANGED
|
@@ -107,6 +107,86 @@
|
|
|
107
107
|
}
|
|
108
108
|
]
|
|
109
109
|
},
|
|
110
|
+
{
|
|
111
|
+
"kind": "javascript-module",
|
|
112
|
+
"path": "src/controllers/arrival-controller/arrival-controller.ts",
|
|
113
|
+
"declarations": [
|
|
114
|
+
{
|
|
115
|
+
"kind": "class",
|
|
116
|
+
"description": "The words of an element that is announced when it appears, for a region that\nis there before they are.\n\n**A live region is heard when what it holds changes, not when it arrives.**\nAn element the page inserts with its message already inside is a region\narriving with its words, which a screen reader reads inconsistently at best:\nan empty state after a search, a banner raised mid-session. So the element\nrenders its region empty and this fills it a frame later, which is a change.\n\n**Left empty when the element came with the page**, served or parsed in the\nfirst pass, because a message that was always there is content rather than\nnews, and a region that spoke on every page load would interrupt a reader\nbefore they had read anything. Its words are the baseline instead, and the\nregion speaks only when they change. Filling it at once also drew the words a\nsecond time on the headless tier, which has no sheet to clip the region, and\na served page changed its picture on hydrating.\n\nThe component renders `said` into its region and calls `say` when what it\nholds changes, from a `slotchange`.",
|
|
117
|
+
"name": "ArrivalController",
|
|
118
|
+
"members": [
|
|
119
|
+
{
|
|
120
|
+
"kind": "field",
|
|
121
|
+
"name": "said",
|
|
122
|
+
"type": {
|
|
123
|
+
"text": "string"
|
|
124
|
+
},
|
|
125
|
+
"default": "''",
|
|
126
|
+
"description": "What the region says now."
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"kind": "field",
|
|
130
|
+
"name": "heard",
|
|
131
|
+
"type": {
|
|
132
|
+
"text": "string"
|
|
133
|
+
},
|
|
134
|
+
"privacy": "private",
|
|
135
|
+
"default": "''",
|
|
136
|
+
"description": "The words last accounted for, said or not."
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"kind": "field",
|
|
140
|
+
"name": "frame",
|
|
141
|
+
"type": {
|
|
142
|
+
"text": "number"
|
|
143
|
+
},
|
|
144
|
+
"privacy": "private",
|
|
145
|
+
"default": "0"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"kind": "method",
|
|
149
|
+
"name": "hostConnected",
|
|
150
|
+
"return": {
|
|
151
|
+
"type": {
|
|
152
|
+
"text": "void"
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"kind": "method",
|
|
158
|
+
"name": "hostDisconnected",
|
|
159
|
+
"return": {
|
|
160
|
+
"type": {
|
|
161
|
+
"text": "void"
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"kind": "method",
|
|
167
|
+
"name": "say",
|
|
168
|
+
"return": {
|
|
169
|
+
"type": {
|
|
170
|
+
"text": "void"
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
"description": "Reads the words again, and says them if they moved."
|
|
174
|
+
}
|
|
175
|
+
],
|
|
176
|
+
"helix": {}
|
|
177
|
+
}
|
|
178
|
+
],
|
|
179
|
+
"exports": [
|
|
180
|
+
{
|
|
181
|
+
"kind": "js",
|
|
182
|
+
"name": "ArrivalController",
|
|
183
|
+
"declaration": {
|
|
184
|
+
"name": "ArrivalController",
|
|
185
|
+
"module": "src/controllers/arrival-controller/arrival-controller.ts"
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
]
|
|
189
|
+
},
|
|
110
190
|
{
|
|
111
191
|
"kind": "javascript-module",
|
|
112
192
|
"path": "src/controllers/chart-pointer-controller/chart-pointer-controller.ts",
|
|
@@ -587,6 +667,16 @@
|
|
|
587
667
|
}
|
|
588
668
|
]
|
|
589
669
|
},
|
|
670
|
+
{
|
|
671
|
+
"kind": "method",
|
|
672
|
+
"name": "hostConnected",
|
|
673
|
+
"return": {
|
|
674
|
+
"type": {
|
|
675
|
+
"text": "void"
|
|
676
|
+
}
|
|
677
|
+
},
|
|
678
|
+
"description": "Listens again after a move, to the track it was following.\n\nThe track is kept across the disconnect for this: it is only chosen again\non `loadedmetadata`, and moving a video does not reload it, so a caption\nfroze on whatever it last said."
|
|
679
|
+
},
|
|
590
680
|
{
|
|
591
681
|
"kind": "method",
|
|
592
682
|
"name": "hostDisconnected",
|
|
@@ -2056,6 +2146,16 @@
|
|
|
2056
2146
|
"privacy": "private",
|
|
2057
2147
|
"description": "Cancels the availability watch, since it outlives a single render."
|
|
2058
2148
|
},
|
|
2149
|
+
{
|
|
2150
|
+
"kind": "field",
|
|
2151
|
+
"name": "connected",
|
|
2152
|
+
"type": {
|
|
2153
|
+
"text": "boolean"
|
|
2154
|
+
},
|
|
2155
|
+
"privacy": "private",
|
|
2156
|
+
"default": "false",
|
|
2157
|
+
"description": "Whether the host is in the document, which a watch is only kept while."
|
|
2158
|
+
},
|
|
2059
2159
|
{
|
|
2060
2160
|
"kind": "method",
|
|
2061
2161
|
"name": "attach",
|
|
@@ -2074,6 +2174,17 @@
|
|
|
2074
2174
|
],
|
|
2075
2175
|
"description": "Starts watching the media element, once there is one."
|
|
2076
2176
|
},
|
|
2177
|
+
{
|
|
2178
|
+
"kind": "method",
|
|
2179
|
+
"name": "start",
|
|
2180
|
+
"privacy": "private",
|
|
2181
|
+
"return": {
|
|
2182
|
+
"type": {
|
|
2183
|
+
"text": "Promise<void>"
|
|
2184
|
+
}
|
|
2185
|
+
},
|
|
2186
|
+
"description": "Asks to hear when a device turns up or goes, for the media attached.\n\n**A watch that arrives after the host has gone is canceled on arrival.**\nThe platform answers asynchronously, and a video removed while it did kept\na watch nothing would cancel."
|
|
2187
|
+
},
|
|
2077
2188
|
{
|
|
2078
2189
|
"kind": "method",
|
|
2079
2190
|
"name": "prompt",
|
|
@@ -2084,6 +2195,16 @@
|
|
|
2084
2195
|
},
|
|
2085
2196
|
"description": "Opens the platform's own device picker. It has no list of its own."
|
|
2086
2197
|
},
|
|
2198
|
+
{
|
|
2199
|
+
"kind": "method",
|
|
2200
|
+
"name": "hostConnected",
|
|
2201
|
+
"return": {
|
|
2202
|
+
"type": {
|
|
2203
|
+
"text": "void"
|
|
2204
|
+
}
|
|
2205
|
+
},
|
|
2206
|
+
"description": "Watches again after a move. The disconnect canceled it, and `attach` is\ncalled once, so the control kept whatever it last knew about devices."
|
|
2207
|
+
},
|
|
2087
2208
|
{
|
|
2088
2209
|
"kind": "method",
|
|
2089
2210
|
"name": "hostDisconnected",
|
|
@@ -3066,8 +3187,8 @@
|
|
|
3066
3187
|
},
|
|
3067
3188
|
{
|
|
3068
3189
|
"kind": "class",
|
|
3069
|
-
"description": "
|
|
3070
|
-
"name": "
|
|
3190
|
+
"description": "The board moved, which on a canvas is a fact rather than a request.\n\n**`Map` asks and `Canvas` tells, and the difference is who draws.** A map is\nsomebody else's, so the frame can only ask them to move it; a canvas is drawn\nhere from a document, so the same press moves it and this says that it did.\nThe detail is the same shape either way, being a direction and a distance.",
|
|
3191
|
+
"name": "HelixCanvasPanEvent",
|
|
3071
3192
|
"members": [
|
|
3072
3193
|
{
|
|
3073
3194
|
"kind": "field",
|
|
@@ -3077,7 +3198,7 @@
|
|
|
3077
3198
|
},
|
|
3078
3199
|
"static": true,
|
|
3079
3200
|
"readonly": true,
|
|
3080
|
-
"default": "'helix-
|
|
3201
|
+
"default": "'helix-canvas-pan'"
|
|
3081
3202
|
}
|
|
3082
3203
|
],
|
|
3083
3204
|
"superclass": {
|
|
@@ -3088,8 +3209,8 @@
|
|
|
3088
3209
|
},
|
|
3089
3210
|
{
|
|
3090
3211
|
"kind": "class",
|
|
3091
|
-
"description": "The
|
|
3092
|
-
"name": "
|
|
3212
|
+
"description": "The board zoomed, and told, for the same reason.",
|
|
3213
|
+
"name": "HelixCanvasZoomEvent",
|
|
3093
3214
|
"members": [
|
|
3094
3215
|
{
|
|
3095
3216
|
"kind": "field",
|
|
@@ -3099,19 +3220,19 @@
|
|
|
3099
3220
|
},
|
|
3100
3221
|
"static": true,
|
|
3101
3222
|
"readonly": true,
|
|
3102
|
-
"default": "'helix-
|
|
3223
|
+
"default": "'helix-canvas-zoom'"
|
|
3103
3224
|
}
|
|
3104
3225
|
],
|
|
3105
3226
|
"superclass": {
|
|
3106
|
-
"name": "
|
|
3227
|
+
"name": "CustomEvent",
|
|
3107
3228
|
"module": "src/events/events.ts"
|
|
3108
3229
|
},
|
|
3109
3230
|
"helix": {}
|
|
3110
3231
|
},
|
|
3111
3232
|
{
|
|
3112
3233
|
"kind": "class",
|
|
3113
|
-
"description": "
|
|
3114
|
-
"name": "
|
|
3234
|
+
"description": "Cards are about to move, and can be refused.\n\n**This is the controlled half, the way `helix-before-open` is for a\ndialog.** A board moves its own cards by default, writing `x` and `y` onto\neach one the way an input writes its own value. A consumer who keeps the\npositions in their own state calls `preventDefault()` here, writes what the\ndetail says into that state, and renders the cards where it puts them.\n\nSent for every step of a drag, so a controlled board follows the pointer\nrather than jumping on the drop.",
|
|
3235
|
+
"name": "HelixBeforeMoveEvent",
|
|
3115
3236
|
"members": [
|
|
3116
3237
|
{
|
|
3117
3238
|
"kind": "field",
|
|
@@ -3121,19 +3242,19 @@
|
|
|
3121
3242
|
},
|
|
3122
3243
|
"static": true,
|
|
3123
3244
|
"readonly": true,
|
|
3124
|
-
"default": "'helix-
|
|
3245
|
+
"default": "'helix-before-move'"
|
|
3125
3246
|
}
|
|
3126
3247
|
],
|
|
3127
3248
|
"superclass": {
|
|
3128
|
-
"name": "
|
|
3249
|
+
"name": "CustomEvent",
|
|
3129
3250
|
"module": "src/events/events.ts"
|
|
3130
3251
|
},
|
|
3131
3252
|
"helix": {}
|
|
3132
3253
|
},
|
|
3133
3254
|
{
|
|
3134
3255
|
"kind": "class",
|
|
3135
|
-
"description": "
|
|
3136
|
-
"name": "
|
|
3256
|
+
"description": "Cards moved, and the move is finished: a drag let go, or a key press.\n\nThe `change` to `helix-before-move`'s `input`: what a consumer binds who\nonly wants to save a board once somebody has finished rearranging it.",
|
|
3257
|
+
"name": "HelixMoveEvent",
|
|
3137
3258
|
"members": [
|
|
3138
3259
|
{
|
|
3139
3260
|
"kind": "field",
|
|
@@ -3143,7 +3264,7 @@
|
|
|
3143
3264
|
},
|
|
3144
3265
|
"static": true,
|
|
3145
3266
|
"readonly": true,
|
|
3146
|
-
"default": "'helix-
|
|
3267
|
+
"default": "'helix-move'"
|
|
3147
3268
|
}
|
|
3148
3269
|
],
|
|
3149
3270
|
"superclass": {
|
|
@@ -3154,8 +3275,8 @@
|
|
|
3154
3275
|
},
|
|
3155
3276
|
{
|
|
3156
3277
|
"kind": "class",
|
|
3157
|
-
"description": "A
|
|
3158
|
-
"name": "
|
|
3278
|
+
"description": "A reader asked for two cards to be joined.\n\n**A request with no default, which is the difference from a move.** A board\nwrites a card's position onto the card, because the card is already there.\nA connection is a new element, and a board that added one to markup React\nrenders would have it put back or thrown away on the next render. So the board\nasks and the page adds the `helix-canvas-edge`, the way `Map` asks to be panned.",
|
|
3279
|
+
"name": "HelixConnectEvent",
|
|
3159
3280
|
"members": [
|
|
3160
3281
|
{
|
|
3161
3282
|
"kind": "field",
|
|
@@ -3165,7 +3286,7 @@
|
|
|
3165
3286
|
},
|
|
3166
3287
|
"static": true,
|
|
3167
3288
|
"readonly": true,
|
|
3168
|
-
"default": "'helix-
|
|
3289
|
+
"default": "'helix-connect'"
|
|
3169
3290
|
}
|
|
3170
3291
|
],
|
|
3171
3292
|
"superclass": {
|
|
@@ -3176,8 +3297,8 @@
|
|
|
3176
3297
|
},
|
|
3177
3298
|
{
|
|
3178
3299
|
"kind": "class",
|
|
3179
|
-
"description": "A
|
|
3180
|
-
"name": "
|
|
3300
|
+
"description": "A connection's end is about to move to another card or another side, and can\nbe refused.\n\n**A move, not a request, and that is the difference from `helix-connect`.**\nThe connection is already an element on the page, so the board rewrites its\nends itself, the way it writes a card's position onto the card; a page that\nholds its connections in state refuses this and writes them there.",
|
|
3301
|
+
"name": "HelixBeforeReconnectEvent",
|
|
3181
3302
|
"members": [
|
|
3182
3303
|
{
|
|
3183
3304
|
"kind": "field",
|
|
@@ -3187,7 +3308,7 @@
|
|
|
3187
3308
|
},
|
|
3188
3309
|
"static": true,
|
|
3189
3310
|
"readonly": true,
|
|
3190
|
-
"default": "'helix-
|
|
3311
|
+
"default": "'helix-before-reconnect'"
|
|
3191
3312
|
}
|
|
3192
3313
|
],
|
|
3193
3314
|
"superclass": {
|
|
@@ -3198,8 +3319,8 @@
|
|
|
3198
3319
|
},
|
|
3199
3320
|
{
|
|
3200
3321
|
"kind": "class",
|
|
3201
|
-
"description": "
|
|
3202
|
-
"name": "
|
|
3322
|
+
"description": "A connection's end moved, and the move is finished.",
|
|
3323
|
+
"name": "HelixReconnectEvent",
|
|
3203
3324
|
"members": [
|
|
3204
3325
|
{
|
|
3205
3326
|
"kind": "field",
|
|
@@ -3209,7 +3330,7 @@
|
|
|
3209
3330
|
},
|
|
3210
3331
|
"static": true,
|
|
3211
3332
|
"readonly": true,
|
|
3212
|
-
"default": "'helix-
|
|
3333
|
+
"default": "'helix-reconnect'"
|
|
3213
3334
|
}
|
|
3214
3335
|
],
|
|
3215
3336
|
"superclass": {
|
|
@@ -3220,8 +3341,8 @@
|
|
|
3220
3341
|
},
|
|
3221
3342
|
{
|
|
3222
3343
|
"kind": "class",
|
|
3223
|
-
"description": "
|
|
3224
|
-
"name": "
|
|
3344
|
+
"description": "A label the board draws is about to change, and can be refused.\n\n**The board edits what it draws and asks for what it does not.** A\nconnection's label and a group's name are drawn by the board from an\nattribute, so the board edits them in place and writes the attribute back,\nthe way it writes a card's position; a page holding them in state refuses\nthis and writes them there. A card's own content is the page's, which is why\nthat is `helix-canvas-edit`, a request, rather than this.",
|
|
3345
|
+
"name": "HelixBeforeRelabelEvent",
|
|
3225
3346
|
"members": [
|
|
3226
3347
|
{
|
|
3227
3348
|
"kind": "field",
|
|
@@ -3231,7 +3352,7 @@
|
|
|
3231
3352
|
},
|
|
3232
3353
|
"static": true,
|
|
3233
3354
|
"readonly": true,
|
|
3234
|
-
"default": "'helix-
|
|
3355
|
+
"default": "'helix-before-relabel'"
|
|
3235
3356
|
}
|
|
3236
3357
|
],
|
|
3237
3358
|
"superclass": {
|
|
@@ -3242,8 +3363,8 @@
|
|
|
3242
3363
|
},
|
|
3243
3364
|
{
|
|
3244
3365
|
"kind": "class",
|
|
3245
|
-
"description": "A
|
|
3246
|
-
"name": "
|
|
3366
|
+
"description": "A label the board draws changed.",
|
|
3367
|
+
"name": "HelixRelabelEvent",
|
|
3247
3368
|
"members": [
|
|
3248
3369
|
{
|
|
3249
3370
|
"kind": "field",
|
|
@@ -3253,7 +3374,7 @@
|
|
|
3253
3374
|
},
|
|
3254
3375
|
"static": true,
|
|
3255
3376
|
"readonly": true,
|
|
3256
|
-
"default": "'helix-
|
|
3377
|
+
"default": "'helix-relabel'"
|
|
3257
3378
|
}
|
|
3258
3379
|
],
|
|
3259
3380
|
"superclass": {
|
|
@@ -3264,8 +3385,8 @@
|
|
|
3264
3385
|
},
|
|
3265
3386
|
{
|
|
3266
3387
|
"kind": "class",
|
|
3267
|
-
"description": "A
|
|
3268
|
-
"name": "
|
|
3388
|
+
"description": "A reader asked to edit a card: a double-click, or Enter or F2 on it.\n\n**A request, because what a card holds is the page's.** Text, a picture, a\nchart: the board cannot know what editing any of those means, so it says\nwhich card and the page opens its own editor, in place, in a dialog, or in a\npanel beside the board.",
|
|
3389
|
+
"name": "HelixCanvasEditEvent",
|
|
3269
3390
|
"members": [
|
|
3270
3391
|
{
|
|
3271
3392
|
"kind": "field",
|
|
@@ -3275,7 +3396,7 @@
|
|
|
3275
3396
|
},
|
|
3276
3397
|
"static": true,
|
|
3277
3398
|
"readonly": true,
|
|
3278
|
-
"default": "'helix-
|
|
3399
|
+
"default": "'helix-canvas-edit'"
|
|
3279
3400
|
}
|
|
3280
3401
|
],
|
|
3281
3402
|
"superclass": {
|
|
@@ -3286,8 +3407,8 @@
|
|
|
3286
3407
|
},
|
|
3287
3408
|
{
|
|
3288
3409
|
"kind": "class",
|
|
3289
|
-
"description": "
|
|
3290
|
-
"name": "
|
|
3410
|
+
"description": "A reader asked for cards or connections to be taken away.\n\nA request for the reason `helix-connect` is one: the elements are the page's,\nso the page removes them. Nothing to refuse, because nothing happens unless\nthe page acts.",
|
|
3411
|
+
"name": "HelixRemoveEvent",
|
|
3291
3412
|
"members": [
|
|
3292
3413
|
{
|
|
3293
3414
|
"kind": "field",
|
|
@@ -3297,7 +3418,7 @@
|
|
|
3297
3418
|
},
|
|
3298
3419
|
"static": true,
|
|
3299
3420
|
"readonly": true,
|
|
3300
|
-
"default": "'helix-
|
|
3421
|
+
"default": "'helix-remove'"
|
|
3301
3422
|
}
|
|
3302
3423
|
],
|
|
3303
3424
|
"superclass": {
|
|
@@ -3308,8 +3429,8 @@
|
|
|
3308
3429
|
},
|
|
3309
3430
|
{
|
|
3310
3431
|
"kind": "class",
|
|
3311
|
-
"description": "
|
|
3312
|
-
"name": "
|
|
3432
|
+
"description": "The board's view changed, however it changed: a drag, the wheel, a press on\na control, a card brought into view, or the board fitting itself.\n\n**One event for all of them**, because what a consumer keeping a minimap or a\nsaved position in step needs is where the board is now, not which of six\ngestures put it there; `helix-canvas-pan` and `helix-canvas-zoom` still say\nwhich control was pressed. Sent for every step of a drag, the way `input` is.",
|
|
3433
|
+
"name": "HelixCanvasViewEvent",
|
|
3313
3434
|
"members": [
|
|
3314
3435
|
{
|
|
3315
3436
|
"kind": "field",
|
|
@@ -3319,7 +3440,7 @@
|
|
|
3319
3440
|
},
|
|
3320
3441
|
"static": true,
|
|
3321
3442
|
"readonly": true,
|
|
3322
|
-
"default": "'helix-
|
|
3443
|
+
"default": "'helix-canvas-view'"
|
|
3323
3444
|
}
|
|
3324
3445
|
],
|
|
3325
3446
|
"superclass": {
|
|
@@ -3330,8 +3451,8 @@
|
|
|
3330
3451
|
},
|
|
3331
3452
|
{
|
|
3332
3453
|
"kind": "class",
|
|
3333
|
-
"description": "A
|
|
3334
|
-
"name": "
|
|
3454
|
+
"description": "A stop asking the tour to move.\n\nComposed and bubbling, because a stop is slotted into the root and the root\nhas to hear it across that boundary.\n\n**A class rather than a hand-rolled `CustomEvent`.** A dispatch is matched as\n`new HelixSomethingEvent(`, so a raw `CustomEvent` is not held to being\ndeclared and nothing carries it into the manifest: consumers can hear it and\ncannot find it.",
|
|
3455
|
+
"name": "HelixTourAskEvent",
|
|
3335
3456
|
"members": [
|
|
3336
3457
|
{
|
|
3337
3458
|
"kind": "field",
|
|
@@ -3341,7 +3462,7 @@
|
|
|
3341
3462
|
},
|
|
3342
3463
|
"static": true,
|
|
3343
3464
|
"readonly": true,
|
|
3344
|
-
"default": "'helix-
|
|
3465
|
+
"default": "'helix-tour-ask'"
|
|
3345
3466
|
}
|
|
3346
3467
|
],
|
|
3347
3468
|
"superclass": {
|
|
@@ -3352,8 +3473,8 @@
|
|
|
3352
3473
|
},
|
|
3353
3474
|
{
|
|
3354
3475
|
"kind": "class",
|
|
3355
|
-
"description": "
|
|
3356
|
-
"name": "
|
|
3476
|
+
"description": "The eyedropper opening, and closing again.\n\nTwo events rather than one carrying a flag, because what a consumer does with\nthem is not symmetrical: the surface holding the picker has to get out of the\nway for the sample and come back afterwards, and those are two moments with\ndifferent work in each.\n\n**A class rather than a bare `Event`.** The check that holds an event to being\ndeclared reads `new Event(` as well as `new HelixSomethingEvent(`, so a\nhand-rolled one is public API a consumer can hear and cannot find.\n\nNo detail, because there is nothing to say beyond that it happened.",
|
|
3477
|
+
"name": "HelixSampleStartEvent",
|
|
3357
3478
|
"members": [
|
|
3358
3479
|
{
|
|
3359
3480
|
"kind": "field",
|
|
@@ -3363,19 +3484,19 @@
|
|
|
3363
3484
|
},
|
|
3364
3485
|
"static": true,
|
|
3365
3486
|
"readonly": true,
|
|
3366
|
-
"default": "'helix-
|
|
3487
|
+
"default": "'helix-sample-start'"
|
|
3367
3488
|
}
|
|
3368
3489
|
],
|
|
3369
3490
|
"superclass": {
|
|
3370
|
-
"name": "
|
|
3491
|
+
"name": "Event",
|
|
3371
3492
|
"module": "src/events/events.ts"
|
|
3372
3493
|
},
|
|
3373
3494
|
"helix": {}
|
|
3374
3495
|
},
|
|
3375
3496
|
{
|
|
3376
3497
|
"kind": "class",
|
|
3377
|
-
"description": "
|
|
3378
|
-
"name": "
|
|
3498
|
+
"description": "The eyedropper closing, whether or not a color was taken.",
|
|
3499
|
+
"name": "HelixSampleEndEvent",
|
|
3379
3500
|
"members": [
|
|
3380
3501
|
{
|
|
3381
3502
|
"kind": "field",
|
|
@@ -3385,19 +3506,19 @@
|
|
|
3385
3506
|
},
|
|
3386
3507
|
"static": true,
|
|
3387
3508
|
"readonly": true,
|
|
3388
|
-
"default": "'helix-
|
|
3509
|
+
"default": "'helix-sample-end'"
|
|
3389
3510
|
}
|
|
3390
3511
|
],
|
|
3391
3512
|
"superclass": {
|
|
3392
|
-
"name": "
|
|
3513
|
+
"name": "Event",
|
|
3393
3514
|
"module": "src/events/events.ts"
|
|
3394
3515
|
},
|
|
3395
3516
|
"helix": {}
|
|
3396
3517
|
},
|
|
3397
3518
|
{
|
|
3398
3519
|
"kind": "class",
|
|
3399
|
-
"description": "
|
|
3400
|
-
"name": "
|
|
3520
|
+
"description": "Fired when an element asks to be taken away.\n\nA request rather than a notification: the element does not remove itself,\nbecause the consumer owns the markup it is in and removing the node under\nthem would put their state and the document out of step. Cancelable, so\n`preventDefault()` is a refusal.\n\nOne verb for both shapes. A tag leaving a list and an announcement closing\nitself are the same act from the element's side.",
|
|
3521
|
+
"name": "HelixDismissEvent",
|
|
3401
3522
|
"members": [
|
|
3402
3523
|
{
|
|
3403
3524
|
"kind": "field",
|
|
@@ -3407,7 +3528,7 @@
|
|
|
3407
3528
|
},
|
|
3408
3529
|
"static": true,
|
|
3409
3530
|
"readonly": true,
|
|
3410
|
-
"default": "'helix-
|
|
3531
|
+
"default": "'helix-dismiss'"
|
|
3411
3532
|
}
|
|
3412
3533
|
],
|
|
3413
3534
|
"superclass": {
|
|
@@ -3418,8 +3539,8 @@
|
|
|
3418
3539
|
},
|
|
3419
3540
|
{
|
|
3420
3541
|
"kind": "class",
|
|
3421
|
-
"description": "
|
|
3422
|
-
"name": "
|
|
3542
|
+
"description": "A set is about to make a different child current, and can be refused.\n\n**Not a generic `helix-change`.** `Tabs` moving to another tab, `Tree` marking\nanother row and `Steps` advancing are not a value changing, they are a set\nchoosing, and the platform's word for a committed value would say the wrong\nthing. `active` names which child is current, so `activate` is the verb, and\nunlike `change` the platform has no claim on it.\n\n**This fires before the state moves.** Inside a handler `currentTarget.active`\nstill holds the previous value, and `detail.value` is a proposal another\nlistener may refuse, so a consumer who only wants to know which child is\ncurrent listens for `helix-activate` instead. `helix-select` is not that\nnotification either: it fires when an item is *chosen*, not when `active` is\nassigned.\n\nThe shape is the one `MixinControllerOpen` already has, a cancelable request\nand a plain notification after the state has moved.",
|
|
3543
|
+
"name": "HelixBeforeActivateEvent",
|
|
3423
3544
|
"members": [
|
|
3424
3545
|
{
|
|
3425
3546
|
"kind": "field",
|
|
@@ -3429,7 +3550,7 @@
|
|
|
3429
3550
|
},
|
|
3430
3551
|
"static": true,
|
|
3431
3552
|
"readonly": true,
|
|
3432
|
-
"default": "'helix-
|
|
3553
|
+
"default": "'helix-before-activate'"
|
|
3433
3554
|
}
|
|
3434
3555
|
],
|
|
3435
3556
|
"superclass": {
|
|
@@ -3440,8 +3561,8 @@
|
|
|
3440
3561
|
},
|
|
3441
3562
|
{
|
|
3442
3563
|
"kind": "class",
|
|
3443
|
-
"description": "
|
|
3444
|
-
"name": "
|
|
3564
|
+
"description": "A set has made a different child current.\n\nThe notification half of `helix-before-activate`, dispatched after the state\nhas moved, so `currentTarget.active` is the new value and the detail is a fact\nrather than a proposal.\n\n**Not cancelable**, for the reason every notification here is not: the\ndecision was taken by the event before it, and a second refusable event for\none transition is two answers to one question.\n\n**Prefixed, and it has to be.** `activate` unprefixed is not in any\n`*EventMap` in the DOM library, checked rather than assumed, but the prefix is\nwhat stops an event dispatched inside a shadow root and retargeted to the host\nbeing mistaken for something the host's own contents sent.",
|
|
3565
|
+
"name": "HelixActivateEvent",
|
|
3445
3566
|
"members": [
|
|
3446
3567
|
{
|
|
3447
3568
|
"kind": "field",
|
|
@@ -3451,7 +3572,7 @@
|
|
|
3451
3572
|
},
|
|
3452
3573
|
"static": true,
|
|
3453
3574
|
"readonly": true,
|
|
3454
|
-
"default": "'helix-
|
|
3575
|
+
"default": "'helix-activate'"
|
|
3455
3576
|
}
|
|
3456
3577
|
],
|
|
3457
3578
|
"superclass": {
|
|
@@ -3462,8 +3583,8 @@
|
|
|
3462
3583
|
},
|
|
3463
3584
|
{
|
|
3464
3585
|
"kind": "class",
|
|
3465
|
-
"description": "
|
|
3466
|
-
"name": "
|
|
3586
|
+
"description": "The reader asked the map to move, which is as far as this library goes.\n\n**Helix draws no map and moves nobody's.** A tile renderer is a library and\nthe frame around it is what this adds, so panning is a request the consumer\nanswers against whatever they slotted: MapLibre, Leaflet, Google, or their\nown. The direction is in reading order rather than compass order, because the\ncontrol that sent it is a button a reader pressed and `start` on a\nright-to-left page is east.\n\nNot cancelable. Nothing here moves on its own, and an event whose\n`preventDefault` means nothing is an event that lies about what it offers.",
|
|
3587
|
+
"name": "HelixMapPanEvent",
|
|
3467
3588
|
"members": [
|
|
3468
3589
|
{
|
|
3469
3590
|
"kind": "field",
|
|
@@ -3473,7 +3594,7 @@
|
|
|
3473
3594
|
},
|
|
3474
3595
|
"static": true,
|
|
3475
3596
|
"readonly": true,
|
|
3476
|
-
"default": "'helix-
|
|
3597
|
+
"default": "'helix-map-pan'"
|
|
3477
3598
|
}
|
|
3478
3599
|
],
|
|
3479
3600
|
"superclass": {
|
|
@@ -3484,8 +3605,8 @@
|
|
|
3484
3605
|
},
|
|
3485
3606
|
{
|
|
3486
3607
|
"kind": "class",
|
|
3487
|
-
"description": "
|
|
3488
|
-
"name": "
|
|
3608
|
+
"description": "The reader asked the map to zoom, and for the same reason it is a request.\n\n`by` is a direction rather than a level: a scale a consumer's map understands\nis the consumer's to decide, and a frame that said \"go to zoom 14\" would be\nasserting a numbering that Leaflet, MapLibre and a static tile server do not\nagree on.",
|
|
3609
|
+
"name": "HelixMapZoomEvent",
|
|
3489
3610
|
"members": [
|
|
3490
3611
|
{
|
|
3491
3612
|
"kind": "field",
|
|
@@ -3495,7 +3616,7 @@
|
|
|
3495
3616
|
},
|
|
3496
3617
|
"static": true,
|
|
3497
3618
|
"readonly": true,
|
|
3498
|
-
"default": "'helix-
|
|
3619
|
+
"default": "'helix-map-zoom'"
|
|
3499
3620
|
}
|
|
3500
3621
|
],
|
|
3501
3622
|
"superclass": {
|
|
@@ -3506,8 +3627,8 @@
|
|
|
3506
3627
|
},
|
|
3507
3628
|
{
|
|
3508
3629
|
"kind": "class",
|
|
3509
|
-
"description": "
|
|
3510
|
-
"name": "
|
|
3630
|
+
"description": "A message is about to be pinned or unpinned, and can be refused.",
|
|
3631
|
+
"name": "HelixBeforePinEvent",
|
|
3511
3632
|
"members": [
|
|
3512
3633
|
{
|
|
3513
3634
|
"kind": "field",
|
|
@@ -3517,7 +3638,7 @@
|
|
|
3517
3638
|
},
|
|
3518
3639
|
"static": true,
|
|
3519
3640
|
"readonly": true,
|
|
3520
|
-
"default": "'helix-
|
|
3641
|
+
"default": "'helix-before-pin'"
|
|
3521
3642
|
}
|
|
3522
3643
|
],
|
|
3523
3644
|
"superclass": {
|
|
@@ -3528,8 +3649,8 @@
|
|
|
3528
3649
|
},
|
|
3529
3650
|
{
|
|
3530
3651
|
"kind": "class",
|
|
3531
|
-
"description": "
|
|
3532
|
-
"name": "
|
|
3652
|
+
"description": "A divider is about to move, and can be refused.",
|
|
3653
|
+
"name": "HelixBeforeResizeEvent",
|
|
3533
3654
|
"members": [
|
|
3534
3655
|
{
|
|
3535
3656
|
"kind": "field",
|
|
@@ -3539,7 +3660,7 @@
|
|
|
3539
3660
|
},
|
|
3540
3661
|
"static": true,
|
|
3541
3662
|
"readonly": true,
|
|
3542
|
-
"default": "'helix-
|
|
3663
|
+
"default": "'helix-before-resize'"
|
|
3543
3664
|
}
|
|
3544
3665
|
],
|
|
3545
3666
|
"superclass": {
|
|
@@ -3550,8 +3671,8 @@
|
|
|
3550
3671
|
},
|
|
3551
3672
|
{
|
|
3552
3673
|
"kind": "class",
|
|
3553
|
-
"description": "
|
|
3554
|
-
"name": "
|
|
3674
|
+
"description": "The divider between a sandbox's panes is about to move, and can be refused.\n\nIts own verb rather than a `helix-before-resize` carrying which divider moved:\na sandbox has two, and they were told apart by a field on a detail every other\nrequest in this file also carries.",
|
|
3675
|
+
"name": "HelixBeforeSplitEvent",
|
|
3555
3676
|
"members": [
|
|
3556
3677
|
{
|
|
3557
3678
|
"kind": "field",
|
|
@@ -3561,7 +3682,7 @@
|
|
|
3561
3682
|
},
|
|
3562
3683
|
"static": true,
|
|
3563
3684
|
"readonly": true,
|
|
3564
|
-
"default": "'helix-
|
|
3685
|
+
"default": "'helix-before-split'"
|
|
3565
3686
|
}
|
|
3566
3687
|
],
|
|
3567
3688
|
"superclass": {
|
|
@@ -3572,8 +3693,8 @@
|
|
|
3572
3693
|
},
|
|
3573
3694
|
{
|
|
3574
3695
|
"kind": "class",
|
|
3575
|
-
"description": "
|
|
3576
|
-
"name": "
|
|
3696
|
+
"description": "A sandbox's panel is about to change height, and can be refused.\n\nThe sibling of `helix-before-split`, and named for the divider rather than for\nthe axis because a reader binding one of the two is choosing which divider they\ncare about. `value` is pixels here and a percentage there, which is what each\nproperty already publishes.",
|
|
3697
|
+
"name": "HelixBeforePanelResizeEvent",
|
|
3577
3698
|
"members": [
|
|
3578
3699
|
{
|
|
3579
3700
|
"kind": "field",
|
|
@@ -3583,7 +3704,7 @@
|
|
|
3583
3704
|
},
|
|
3584
3705
|
"static": true,
|
|
3585
3706
|
"readonly": true,
|
|
3586
|
-
"default": "'helix-
|
|
3707
|
+
"default": "'helix-before-panel-resize'"
|
|
3587
3708
|
}
|
|
3588
3709
|
],
|
|
3589
3710
|
"superclass": {
|
|
@@ -3594,8 +3715,8 @@
|
|
|
3594
3715
|
},
|
|
3595
3716
|
{
|
|
3596
3717
|
"kind": "class",
|
|
3597
|
-
"description": "
|
|
3598
|
-
"name": "
|
|
3718
|
+
"description": "A pane is about to collapse or reopen, and can be refused.",
|
|
3719
|
+
"name": "HelixBeforeCollapseEvent",
|
|
3599
3720
|
"members": [
|
|
3600
3721
|
{
|
|
3601
3722
|
"kind": "field",
|
|
@@ -3605,7 +3726,7 @@
|
|
|
3605
3726
|
},
|
|
3606
3727
|
"static": true,
|
|
3607
3728
|
"readonly": true,
|
|
3608
|
-
"default": "'helix-
|
|
3729
|
+
"default": "'helix-before-collapse'"
|
|
3609
3730
|
}
|
|
3610
3731
|
],
|
|
3611
3732
|
"superclass": {
|
|
@@ -3616,8 +3737,8 @@
|
|
|
3616
3737
|
},
|
|
3617
3738
|
{
|
|
3618
3739
|
"kind": "class",
|
|
3619
|
-
"description": "
|
|
3620
|
-
"name": "
|
|
3740
|
+
"description": "Source is about to be edited, and can be refused.",
|
|
3741
|
+
"name": "HelixBeforeEditEvent",
|
|
3621
3742
|
"members": [
|
|
3622
3743
|
{
|
|
3623
3744
|
"kind": "field",
|
|
@@ -3627,7 +3748,7 @@
|
|
|
3627
3748
|
},
|
|
3628
3749
|
"static": true,
|
|
3629
3750
|
"readonly": true,
|
|
3630
|
-
"default": "'helix-
|
|
3751
|
+
"default": "'helix-before-edit'"
|
|
3631
3752
|
}
|
|
3632
3753
|
],
|
|
3633
3754
|
"superclass": {
|
|
@@ -3638,8 +3759,8 @@
|
|
|
3638
3759
|
},
|
|
3639
3760
|
{
|
|
3640
3761
|
"kind": "class",
|
|
3641
|
-
"description": "
|
|
3642
|
-
"name": "
|
|
3762
|
+
"description": "A value is about to change, and the change can be refused.\n\n**The request half of every value control.** It announces the value being\n*proposed*, before anything moves, so a listener calling `preventDefault()`\nrefuses it and the control stays where it was. That is how a consumer takes\none decision without declaring a mode, which is what 294 settled: the element\nalways owns and applies its state, and refusing is the way to take it over.\n\n**The notification is native and separate.** Once this has gone out and the\nvalue has moved, the control announces it again under the platform's own\nname, `input` while a reader is editing and `change` when they are done, so\n`onChange` in React and `onchange=` in HTML both reach it and\n`currentTarget.value` is correct by the time a handler reads it. This event\ncarries the detail because at the moment it fires the value is not on the\nelement yet.\n\n**`announcesInput` picks which native notification fires, not which name this\ncarries.** Granularity is the platform's own distinction, `input` against\n`change`; the request is always this one event.",
|
|
3763
|
+
"name": "HelixBeforeChangeEvent",
|
|
3643
3764
|
"members": [
|
|
3644
3765
|
{
|
|
3645
3766
|
"kind": "field",
|
|
@@ -3649,7 +3770,7 @@
|
|
|
3649
3770
|
},
|
|
3650
3771
|
"static": true,
|
|
3651
3772
|
"readonly": true,
|
|
3652
|
-
"default": "'helix-
|
|
3773
|
+
"default": "'helix-before-change'"
|
|
3653
3774
|
}
|
|
3654
3775
|
],
|
|
3655
3776
|
"superclass": {
|
|
@@ -3660,8 +3781,8 @@
|
|
|
3660
3781
|
},
|
|
3661
3782
|
{
|
|
3662
3783
|
"kind": "class",
|
|
3663
|
-
"description": "
|
|
3664
|
-
"name": "
|
|
3784
|
+
"description": "A checked state is about to change, and the change can be refused.\n\n**Its own event rather than a `helix-before-change` carrying a boolean.**\nThrough the value event the state arrives as `String(checked)`, so a consumer\nreceives the string `\"false\"`, which is truthy, and a test asserting the value\npasses on that bug. A control whose state is a boolean wants an event with a\ntyped boolean in it.\n\nThe notification is native, as it is for a value: the control relays `change`\nfrom the inner input and announces `input` beside it, so `onChange` reads\n`currentTarget.checked` and gets a boolean from the platform.\n\nIt also ends a collision: Checkbox Group listened for its boxes' change and\ndispatched its own under the same name from the same host, so it needed\n`stopImmediatePropagation` to keep a consumer from receiving one box's boolean\nalongside the whole set. Two names, two facts.",
|
|
3785
|
+
"name": "HelixBeforeToggleEvent",
|
|
3665
3786
|
"members": [
|
|
3666
3787
|
{
|
|
3667
3788
|
"kind": "field",
|
|
@@ -3671,7 +3792,7 @@
|
|
|
3671
3792
|
},
|
|
3672
3793
|
"static": true,
|
|
3673
3794
|
"readonly": true,
|
|
3674
|
-
"default": "'helix-
|
|
3795
|
+
"default": "'helix-before-toggle'"
|
|
3675
3796
|
}
|
|
3676
3797
|
],
|
|
3677
3798
|
"superclass": {
|
|
@@ -3682,8 +3803,8 @@
|
|
|
3682
3803
|
},
|
|
3683
3804
|
{
|
|
3684
3805
|
"kind": "class",
|
|
3685
|
-
"description": "
|
|
3686
|
-
"name": "
|
|
3806
|
+
"description": "The reader asked for something the list does not hold.\n\nCancelable, and announced before anything is applied, because the options are\nthe consumer's own light DOM and no component here writes into it. What the\ncontrol can do is say what was asked for and take the value; putting an\noption in the list, or a row in a database, is the consumer's, and a consumer\nwho validates first refuses this and adds nothing.\n\nThe detail carries the text as typed, not a slug of it. Trimming or lowering\nit here would be this element deciding what a name means, and a consumer who\nwants an identifier can make one from what they were given.",
|
|
3807
|
+
"name": "HelixCreateEvent",
|
|
3687
3808
|
"members": [
|
|
3688
3809
|
{
|
|
3689
3810
|
"kind": "field",
|
|
@@ -3693,7 +3814,7 @@
|
|
|
3693
3814
|
},
|
|
3694
3815
|
"static": true,
|
|
3695
3816
|
"readonly": true,
|
|
3696
|
-
"default": "'helix-
|
|
3817
|
+
"default": "'helix-create'"
|
|
3697
3818
|
}
|
|
3698
3819
|
],
|
|
3699
3820
|
"superclass": {
|
|
@@ -3704,8 +3825,8 @@
|
|
|
3704
3825
|
},
|
|
3705
3826
|
{
|
|
3706
3827
|
"kind": "class",
|
|
3707
|
-
"description": "
|
|
3708
|
-
"name": "
|
|
3828
|
+
"description": "Something was copied to the clipboard.\n\nNot cancelable, and deliberately: it is announced after the write, because a\nclipboard write is a permission the platform may refuse and there is nothing\nuseful to report until it has either happened or not.",
|
|
3829
|
+
"name": "HelixCopyEvent",
|
|
3709
3830
|
"members": [
|
|
3710
3831
|
{
|
|
3711
3832
|
"kind": "field",
|
|
@@ -3715,7 +3836,7 @@
|
|
|
3715
3836
|
},
|
|
3716
3837
|
"static": true,
|
|
3717
3838
|
"readonly": true,
|
|
3718
|
-
"default": "'helix-
|
|
3839
|
+
"default": "'helix-copy'"
|
|
3719
3840
|
}
|
|
3720
3841
|
],
|
|
3721
3842
|
"superclass": {
|
|
@@ -3726,7 +3847,271 @@
|
|
|
3726
3847
|
},
|
|
3727
3848
|
{
|
|
3728
3849
|
"kind": "class",
|
|
3729
|
-
"description": "Fired when
|
|
3850
|
+
"description": "Fired when something being previewed writes to the console.\n\nCarries text rather than the logged values. The preview is a separate\ndocument, so what arrives has crossed `postMessage` and been through\nstructured clone: a DOM node or a function does not survive that, and half a\nvalue is worse than a string of it.",
|
|
3851
|
+
"name": "HelixConsoleEvent",
|
|
3852
|
+
"members": [
|
|
3853
|
+
{
|
|
3854
|
+
"kind": "field",
|
|
3855
|
+
"name": "eventName",
|
|
3856
|
+
"type": {
|
|
3857
|
+
"text": "string"
|
|
3858
|
+
},
|
|
3859
|
+
"static": true,
|
|
3860
|
+
"readonly": true,
|
|
3861
|
+
"default": "'helix-console'"
|
|
3862
|
+
}
|
|
3863
|
+
],
|
|
3864
|
+
"superclass": {
|
|
3865
|
+
"name": "CustomEvent",
|
|
3866
|
+
"module": "src/events/events.ts"
|
|
3867
|
+
},
|
|
3868
|
+
"helix": {}
|
|
3869
|
+
},
|
|
3870
|
+
{
|
|
3871
|
+
"kind": "class",
|
|
3872
|
+
"description": "Fired when something reports how much room its content actually needs.\n\n**A measurement crossing a boundary the measurer is on the far side of.** A\nsandboxed preview is its own document: nothing outside it can read the height\nof what it drew, because the frame is opaque and a box sized from the outside\nonly ever reports the box. So the document measures itself and says so, and\nthis is what it says it with.\n\nA number rather than a box, because the width is the container's to decide and\nonly the block size follows the content. A consumer that wants to act on it\nclamps it: what arrives is what was drawn, which for an empty example is\nnearly nothing and for a long one is more than a page.",
|
|
3873
|
+
"name": "HelixResizeEvent",
|
|
3874
|
+
"members": [
|
|
3875
|
+
{
|
|
3876
|
+
"kind": "field",
|
|
3877
|
+
"name": "eventName",
|
|
3878
|
+
"type": {
|
|
3879
|
+
"text": "string"
|
|
3880
|
+
},
|
|
3881
|
+
"static": true,
|
|
3882
|
+
"readonly": true,
|
|
3883
|
+
"default": "'helix-resize'"
|
|
3884
|
+
}
|
|
3885
|
+
],
|
|
3886
|
+
"superclass": {
|
|
3887
|
+
"name": "CustomEvent",
|
|
3888
|
+
"module": "src/events/events.ts"
|
|
3889
|
+
},
|
|
3890
|
+
"helix": {}
|
|
3891
|
+
},
|
|
3892
|
+
{
|
|
3893
|
+
"kind": "class",
|
|
3894
|
+
"description": "Fired when a header crosses the threshold between resting at the top of the\npage and floating over it.\n\n**The threshold lives in a custom state, and is announced rather than\nreflected.** A `data-scrolled` on the host is an attribute nobody rendered: a\nserver sends the element without it and the element adds it on upgrade, so a\nframework hydrating the page finds markup that no longer matches what it sent.\nA custom state is deliberately not in the DOM and therefore not something a\nhydration pass can disagree with.\n\nThat closes the observability an attribute would accidentally provide. A\n`MutationObserver` can watch an attribute and there is no equivalent for\n`ElementInternals.states`, so a component holding a boolean nothing can read\nis a component with a private opinion its consumers demonstrably need: the\nbar's own backdrop is drawn by the page around it, and the page has to know\nwhen to light it.\n\nNot cancelable. It reports where the page is rather than asking permission to\nbe there, and refusing it would leave the state and the announcement\ndisagreeing.\n\nThe hysteresis stays inside the header, which is the point of announcing at\nall: a consumer listening to `scroll` itself would be a second opinion on\nwhen the page counts as scrolled, and the two would part company at the eight\npixels of travel this waits for.",
|
|
3895
|
+
"name": "HelixScrolledEvent",
|
|
3896
|
+
"members": [
|
|
3897
|
+
{
|
|
3898
|
+
"kind": "field",
|
|
3899
|
+
"name": "eventName",
|
|
3900
|
+
"type": {
|
|
3901
|
+
"text": "string"
|
|
3902
|
+
},
|
|
3903
|
+
"static": true,
|
|
3904
|
+
"readonly": true,
|
|
3905
|
+
"default": "'helix-scrolled'"
|
|
3906
|
+
}
|
|
3907
|
+
],
|
|
3908
|
+
"superclass": {
|
|
3909
|
+
"name": "CustomEvent",
|
|
3910
|
+
"module": "src/events/events.ts"
|
|
3911
|
+
},
|
|
3912
|
+
"helix": {}
|
|
3913
|
+
},
|
|
3914
|
+
{
|
|
3915
|
+
"kind": "class",
|
|
3916
|
+
"description": "Fired when the cursor moves in a text editor.\n\nNot cancelable, unlike everything else here. The others announce something\nabout to happen and a listener can refuse it; this one reports where the\ncaret already is, and there is nothing left to refuse.\n\nIt fires on every keystroke and every arrow press, which is why the status\nbar reads it from the DOM rather than through a framework's state: routing a\ncaret position through React would re-render the workbench on every cursor\nmove.",
|
|
3917
|
+
"name": "HelixCaretEvent",
|
|
3918
|
+
"members": [
|
|
3919
|
+
{
|
|
3920
|
+
"kind": "field",
|
|
3921
|
+
"name": "eventName",
|
|
3922
|
+
"type": {
|
|
3923
|
+
"text": "string"
|
|
3924
|
+
},
|
|
3925
|
+
"static": true,
|
|
3926
|
+
"readonly": true,
|
|
3927
|
+
"default": "'helix-caret'"
|
|
3928
|
+
}
|
|
3929
|
+
],
|
|
3930
|
+
"superclass": {
|
|
3931
|
+
"name": "CustomEvent",
|
|
3932
|
+
"module": "src/events/events.ts"
|
|
3933
|
+
},
|
|
3934
|
+
"helix": {}
|
|
3935
|
+
},
|
|
3936
|
+
{
|
|
3937
|
+
"kind": "class",
|
|
3938
|
+
"description": "Fired when a component moves the view it is showing, rather than its value.\n\nA calendar paging to another month is not choosing a date, and the two have\nto be separable: a consumer driving the view needs to hear that it moved\nwithout being told the answer changed. `helix-change` belongs to the value,\nand giving it both jobs would make either one unusable on its own.",
|
|
3939
|
+
"name": "HelixNavigateEvent",
|
|
3940
|
+
"members": [
|
|
3941
|
+
{
|
|
3942
|
+
"kind": "field",
|
|
3943
|
+
"name": "eventName",
|
|
3944
|
+
"type": {
|
|
3945
|
+
"text": "string"
|
|
3946
|
+
},
|
|
3947
|
+
"static": true,
|
|
3948
|
+
"readonly": true,
|
|
3949
|
+
"default": "'helix-navigate'"
|
|
3950
|
+
}
|
|
3951
|
+
],
|
|
3952
|
+
"superclass": {
|
|
3953
|
+
"name": "CustomEvent",
|
|
3954
|
+
"module": "src/events/events.ts"
|
|
3955
|
+
},
|
|
3956
|
+
"helix": {}
|
|
3957
|
+
},
|
|
3958
|
+
{
|
|
3959
|
+
"kind": "class",
|
|
3960
|
+
"description": "Fired when a control that fills up has filled.\n\nThe moment a code entry exists for: a six-character field is worth submitting\nthe instant the sixth character lands, and a consumer watching `helix-change`\nhas to know the length and compare it on every keystroke to find that moment\nthemselves.\n\nSeparate from `helix-change` rather than a flag on it, because they are\nanswered by different code: one keeps a value in step and the other decides\nwhether to send a form. A listener that only cares about the second says so by\nwhich event it listens for.\n\n`complete` is free as a verb. React's synthetic system claims `change`,\n`input`, `submit`, `reset`, `copy`, `paste`, `scroll`, `drag`, `focus` and\n`blur`, measured, and this is none of them.\n\nNot cancelable. It reports that something already happened, which is the same\nreason `helix-caret` is not: there is nothing left to refuse once the last\ncharacter is in the box.",
|
|
3961
|
+
"name": "HelixCompleteEvent",
|
|
3962
|
+
"members": [
|
|
3963
|
+
{
|
|
3964
|
+
"kind": "field",
|
|
3965
|
+
"name": "eventName",
|
|
3966
|
+
"type": {
|
|
3967
|
+
"text": "string"
|
|
3968
|
+
},
|
|
3969
|
+
"static": true,
|
|
3970
|
+
"readonly": true,
|
|
3971
|
+
"default": "'helix-complete'"
|
|
3972
|
+
}
|
|
3973
|
+
],
|
|
3974
|
+
"superclass": {
|
|
3975
|
+
"name": "CustomEvent",
|
|
3976
|
+
"module": "src/events/events.ts"
|
|
3977
|
+
},
|
|
3978
|
+
"helix": {}
|
|
3979
|
+
},
|
|
3980
|
+
{
|
|
3981
|
+
"kind": "class",
|
|
3982
|
+
"description": "Fired when the reader offers something they wrote.\n\n**Cancelable, and the composer clears only when nobody refused.** Sending is a\nround trip: a composer that empties itself and then hears the request failed\nhas thrown away the only copy of what the reader typed, and a reader who has\njust written three paragraphs is exactly who cannot afford that. Refusing\nleaves the text where it is.\n\nNot `helix-create`, which is the combobox's event for a value a list does not\nhold, and not `helix-change`, because nothing about a value changed: the\nreader finished something and handed it over.",
|
|
3983
|
+
"name": "HelixSendEvent",
|
|
3984
|
+
"members": [
|
|
3985
|
+
{
|
|
3986
|
+
"kind": "field",
|
|
3987
|
+
"name": "eventName",
|
|
3988
|
+
"type": {
|
|
3989
|
+
"text": "string"
|
|
3990
|
+
},
|
|
3991
|
+
"static": true,
|
|
3992
|
+
"readonly": true,
|
|
3993
|
+
"default": "'helix-send'"
|
|
3994
|
+
}
|
|
3995
|
+
],
|
|
3996
|
+
"superclass": {
|
|
3997
|
+
"name": "CustomEvent",
|
|
3998
|
+
"module": "src/events/events.ts"
|
|
3999
|
+
},
|
|
4000
|
+
"helix": {}
|
|
4001
|
+
},
|
|
4002
|
+
{
|
|
4003
|
+
"kind": "class",
|
|
4004
|
+
"description": "Fired when something a user comes back to is marked read, or unread.\n\n**Read state is reported rather than owned.** Marking a notification read is\nusually a round trip, and a component that flips the state itself and then\nhears the request failed has already told the reader something untrue. So this\nis cancelable, and refusing it leaves the item alone; the component applies\nit once nobody has refused, which is the same contract every other axis in\nthe library uses.\n\nBubbles and is composed, so a feed hears its own items: one handler on the\nlist serves every notification in it, which is what a consumer syncing to a\nserver actually wants.",
|
|
4005
|
+
"name": "HelixReadEvent",
|
|
4006
|
+
"members": [
|
|
4007
|
+
{
|
|
4008
|
+
"kind": "field",
|
|
4009
|
+
"name": "eventName",
|
|
4010
|
+
"type": {
|
|
4011
|
+
"text": "string"
|
|
4012
|
+
},
|
|
4013
|
+
"static": true,
|
|
4014
|
+
"readonly": true,
|
|
4015
|
+
"default": "'helix-read'"
|
|
4016
|
+
}
|
|
4017
|
+
],
|
|
4018
|
+
"superclass": {
|
|
4019
|
+
"name": "CustomEvent",
|
|
4020
|
+
"module": "src/events/events.ts"
|
|
4021
|
+
},
|
|
4022
|
+
"helix": {}
|
|
4023
|
+
},
|
|
4024
|
+
{
|
|
4025
|
+
"kind": "class",
|
|
4026
|
+
"description": "Fired when the reader asks for a different order.\n\nCancelable, and refusing it leaves the order alone, which is what makes a\nserver-side sort expressible: the consumer refuses the local reorder, fetches,\nand hands back a new set. This is the element reporting that a heading was\nclicked, before it acts on it.\n\nNot `helix-change`: nothing about the data changed, only the order it is read\nin, and a consumer listening for changes to a value should not hear a sort.\nThat is the same distinction `helix-filter` is drawn on.",
|
|
4027
|
+
"name": "HelixSortEvent",
|
|
4028
|
+
"members": [
|
|
4029
|
+
{
|
|
4030
|
+
"kind": "field",
|
|
4031
|
+
"name": "eventName",
|
|
4032
|
+
"type": {
|
|
4033
|
+
"text": "string"
|
|
4034
|
+
},
|
|
4035
|
+
"static": true,
|
|
4036
|
+
"readonly": true,
|
|
4037
|
+
"default": "'helix-sort'"
|
|
4038
|
+
}
|
|
4039
|
+
],
|
|
4040
|
+
"superclass": {
|
|
4041
|
+
"name": "CustomEvent",
|
|
4042
|
+
"module": "src/events/events.ts"
|
|
4043
|
+
},
|
|
4044
|
+
"helix": {}
|
|
4045
|
+
},
|
|
4046
|
+
{
|
|
4047
|
+
"kind": "class",
|
|
4048
|
+
"description": "Fired when the reader changes which values a field is filtered by.\n\n**Not `helix-filter`, which is a different thing already taken.** That one\nsays a list narrowed itself to a string, and `Data Table` and `Listbox` both\ndispatch it with exactly that meaning. This one carries a structured filter:\na field, a comparison and a set of values, which is a shape neither of those\nhas and neither should grow.\n\nCancelable, and refusing it is how a consumer takes the decision for one\ninteraction, the way `requestChange` documents for every stateful change here.",
|
|
4049
|
+
"name": "HelixFacetEvent",
|
|
4050
|
+
"members": [
|
|
4051
|
+
{
|
|
4052
|
+
"kind": "field",
|
|
4053
|
+
"name": "eventName",
|
|
4054
|
+
"type": {
|
|
4055
|
+
"text": "string"
|
|
4056
|
+
},
|
|
4057
|
+
"static": true,
|
|
4058
|
+
"readonly": true,
|
|
4059
|
+
"default": "'helix-facet'"
|
|
4060
|
+
}
|
|
4061
|
+
],
|
|
4062
|
+
"superclass": {
|
|
4063
|
+
"name": "CustomEvent",
|
|
4064
|
+
"module": "src/events/events.ts"
|
|
4065
|
+
},
|
|
4066
|
+
"helix": {}
|
|
4067
|
+
},
|
|
4068
|
+
{
|
|
4069
|
+
"kind": "class",
|
|
4070
|
+
"description": "Fired when a component narrows what it is showing.\n\nFiltering hides rather than removes, so nothing about the value changes and\n`helix-change` would be a lie. What a consumer wants to know is that the list\nin front of the reader is no longer the whole list.",
|
|
4071
|
+
"name": "HelixFilterEvent",
|
|
4072
|
+
"members": [
|
|
4073
|
+
{
|
|
4074
|
+
"kind": "field",
|
|
4075
|
+
"name": "eventName",
|
|
4076
|
+
"type": {
|
|
4077
|
+
"text": "string"
|
|
4078
|
+
},
|
|
4079
|
+
"static": true,
|
|
4080
|
+
"readonly": true,
|
|
4081
|
+
"default": "'helix-filter'"
|
|
4082
|
+
}
|
|
4083
|
+
],
|
|
4084
|
+
"superclass": {
|
|
4085
|
+
"name": "CustomEvent",
|
|
4086
|
+
"module": "src/events/events.ts"
|
|
4087
|
+
},
|
|
4088
|
+
"helix": {}
|
|
4089
|
+
},
|
|
4090
|
+
{
|
|
4091
|
+
"kind": "class",
|
|
4092
|
+
"description": "Fired when a shortcut's chord is pressed.\n\nCancelable, and the key event is only consumed where this is not refused: a\nconsumer that decides the moment is wrong, a dialog is over the control or\nthe reader is mid-composition, calls `preventDefault()` and the keystroke\ngoes on to whatever would have had it.",
|
|
4093
|
+
"name": "HelixShortcutEvent",
|
|
4094
|
+
"members": [
|
|
4095
|
+
{
|
|
4096
|
+
"kind": "field",
|
|
4097
|
+
"name": "eventName",
|
|
4098
|
+
"type": {
|
|
4099
|
+
"text": "string"
|
|
4100
|
+
},
|
|
4101
|
+
"static": true,
|
|
4102
|
+
"readonly": true,
|
|
4103
|
+
"default": "'helix-shortcut'"
|
|
4104
|
+
}
|
|
4105
|
+
],
|
|
4106
|
+
"superclass": {
|
|
4107
|
+
"name": "CustomEvent",
|
|
4108
|
+
"module": "src/events/events.ts"
|
|
4109
|
+
},
|
|
4110
|
+
"helix": {}
|
|
4111
|
+
},
|
|
4112
|
+
{
|
|
4113
|
+
"kind": "class",
|
|
4114
|
+
"description": "Fired when the reader selects an item in a set.\n\nBubbles and is composed, because this is how a set coordinates: a tree, a\ntab list and a toggle group all learn which of their children was chosen by\nhearing it arrive.",
|
|
3730
4115
|
"name": "HelixSelectEvent",
|
|
3731
4116
|
"members": [
|
|
3732
4117
|
{
|
|
@@ -3833,6 +4218,102 @@
|
|
|
3833
4218
|
"module": "src/events/events.ts"
|
|
3834
4219
|
}
|
|
3835
4220
|
},
|
|
4221
|
+
{
|
|
4222
|
+
"kind": "js",
|
|
4223
|
+
"name": "HelixCanvasPanEvent",
|
|
4224
|
+
"declaration": {
|
|
4225
|
+
"name": "HelixCanvasPanEvent",
|
|
4226
|
+
"module": "src/events/events.ts"
|
|
4227
|
+
}
|
|
4228
|
+
},
|
|
4229
|
+
{
|
|
4230
|
+
"kind": "js",
|
|
4231
|
+
"name": "HelixCanvasZoomEvent",
|
|
4232
|
+
"declaration": {
|
|
4233
|
+
"name": "HelixCanvasZoomEvent",
|
|
4234
|
+
"module": "src/events/events.ts"
|
|
4235
|
+
}
|
|
4236
|
+
},
|
|
4237
|
+
{
|
|
4238
|
+
"kind": "js",
|
|
4239
|
+
"name": "HelixBeforeMoveEvent",
|
|
4240
|
+
"declaration": {
|
|
4241
|
+
"name": "HelixBeforeMoveEvent",
|
|
4242
|
+
"module": "src/events/events.ts"
|
|
4243
|
+
}
|
|
4244
|
+
},
|
|
4245
|
+
{
|
|
4246
|
+
"kind": "js",
|
|
4247
|
+
"name": "HelixMoveEvent",
|
|
4248
|
+
"declaration": {
|
|
4249
|
+
"name": "HelixMoveEvent",
|
|
4250
|
+
"module": "src/events/events.ts"
|
|
4251
|
+
}
|
|
4252
|
+
},
|
|
4253
|
+
{
|
|
4254
|
+
"kind": "js",
|
|
4255
|
+
"name": "HelixConnectEvent",
|
|
4256
|
+
"declaration": {
|
|
4257
|
+
"name": "HelixConnectEvent",
|
|
4258
|
+
"module": "src/events/events.ts"
|
|
4259
|
+
}
|
|
4260
|
+
},
|
|
4261
|
+
{
|
|
4262
|
+
"kind": "js",
|
|
4263
|
+
"name": "HelixBeforeReconnectEvent",
|
|
4264
|
+
"declaration": {
|
|
4265
|
+
"name": "HelixBeforeReconnectEvent",
|
|
4266
|
+
"module": "src/events/events.ts"
|
|
4267
|
+
}
|
|
4268
|
+
},
|
|
4269
|
+
{
|
|
4270
|
+
"kind": "js",
|
|
4271
|
+
"name": "HelixReconnectEvent",
|
|
4272
|
+
"declaration": {
|
|
4273
|
+
"name": "HelixReconnectEvent",
|
|
4274
|
+
"module": "src/events/events.ts"
|
|
4275
|
+
}
|
|
4276
|
+
},
|
|
4277
|
+
{
|
|
4278
|
+
"kind": "js",
|
|
4279
|
+
"name": "HelixBeforeRelabelEvent",
|
|
4280
|
+
"declaration": {
|
|
4281
|
+
"name": "HelixBeforeRelabelEvent",
|
|
4282
|
+
"module": "src/events/events.ts"
|
|
4283
|
+
}
|
|
4284
|
+
},
|
|
4285
|
+
{
|
|
4286
|
+
"kind": "js",
|
|
4287
|
+
"name": "HelixRelabelEvent",
|
|
4288
|
+
"declaration": {
|
|
4289
|
+
"name": "HelixRelabelEvent",
|
|
4290
|
+
"module": "src/events/events.ts"
|
|
4291
|
+
}
|
|
4292
|
+
},
|
|
4293
|
+
{
|
|
4294
|
+
"kind": "js",
|
|
4295
|
+
"name": "HelixCanvasEditEvent",
|
|
4296
|
+
"declaration": {
|
|
4297
|
+
"name": "HelixCanvasEditEvent",
|
|
4298
|
+
"module": "src/events/events.ts"
|
|
4299
|
+
}
|
|
4300
|
+
},
|
|
4301
|
+
{
|
|
4302
|
+
"kind": "js",
|
|
4303
|
+
"name": "HelixRemoveEvent",
|
|
4304
|
+
"declaration": {
|
|
4305
|
+
"name": "HelixRemoveEvent",
|
|
4306
|
+
"module": "src/events/events.ts"
|
|
4307
|
+
}
|
|
4308
|
+
},
|
|
4309
|
+
{
|
|
4310
|
+
"kind": "js",
|
|
4311
|
+
"name": "HelixCanvasViewEvent",
|
|
4312
|
+
"declaration": {
|
|
4313
|
+
"name": "HelixCanvasViewEvent",
|
|
4314
|
+
"module": "src/events/events.ts"
|
|
4315
|
+
}
|
|
4316
|
+
},
|
|
3836
4317
|
{
|
|
3837
4318
|
"kind": "js",
|
|
3838
4319
|
"name": "HelixTourAskEvent",
|
|
@@ -4641,6 +5122,16 @@
|
|
|
4641
5122
|
],
|
|
4642
5123
|
"description": "The platform's notice that an ancestor fieldset changed.\n\n**The argument is the effective state, and taking it whole is what latched\nevery control in the library.** The platform calls this for the element's\nown `disabled` as well as for a fieldset, and our own arrives here at the\nworst possible moment: reflecting `disabled` to the attribute happens\ninside Lit's `update()`, the UA fires this synchronously from that write,\nand a reactive write during an update is a change-in-update Lit does not\nre-render for. So `formDisabled` ran exactly one update behind forever.\n\nMeasured on Slider, logging what `render` saw:\n\n```\nset true disabled true formDisabled false isDisabled true\nset false disabled false formDisabled true isDisabled true <- stale\n(no third render)\n```\n\nThe host came out right every time, `disabled` false, `:disabled` not\nmatching, and the inner control kept the attribute, so a control disabled\nonce could never be re-enabled. It only shows when something re-enables,\nwhich is the same shape of bug `inheritDisabled` was written for.\n\nOur own half is already in `this.disabled` and `isDisabled` is an or, so\nthis records only what the fieldset adds. That also removes the write\nentirely on the own-disabled path rather than moving it.\n\nThe one case this cannot see is a control that is disabled itself *and*\ninside a disabled fieldset, whose own `disabled` is then removed: the\neffective state does not change, so the platform does not call again, and\nthe fieldset's hold is not recorded. There is no callback to learn it from\nand reading `:disabled` here would answer about the attribute we are in the\nmiddle of removing."
|
|
4643
5124
|
},
|
|
5125
|
+
{
|
|
5126
|
+
"kind": "method",
|
|
5127
|
+
"name": "formResetCallback",
|
|
5128
|
+
"return": {
|
|
5129
|
+
"type": {
|
|
5130
|
+
"text": "void"
|
|
5131
|
+
}
|
|
5132
|
+
},
|
|
5133
|
+
"description": "The form was reset. Nothing here, and every override calls it.\n\n**A chain rather than a leaf**, because more than one layer owes a reset\nsomething: the value mixin its default, and the field mixin beneath it the\nforgetting of a reader's past attempt, whose message otherwise showed over\nthe emptied control the moment the form was reset."
|
|
5134
|
+
},
|
|
4644
5135
|
{
|
|
4645
5136
|
"kind": "method",
|
|
4646
5137
|
"name": "announceInput",
|
|
@@ -5109,6 +5600,22 @@
|
|
|
5109
5600
|
"module": "./controllers/aria-forward-controller/aria-forward-controller.js"
|
|
5110
5601
|
}
|
|
5111
5602
|
},
|
|
5603
|
+
{
|
|
5604
|
+
"kind": "js",
|
|
5605
|
+
"name": "ArrivalController",
|
|
5606
|
+
"declaration": {
|
|
5607
|
+
"name": "ArrivalController",
|
|
5608
|
+
"module": "./controllers/arrival-controller/arrival-controller.js"
|
|
5609
|
+
}
|
|
5610
|
+
},
|
|
5611
|
+
{
|
|
5612
|
+
"kind": "js",
|
|
5613
|
+
"name": "ArrivalOptions",
|
|
5614
|
+
"declaration": {
|
|
5615
|
+
"name": "ArrivalOptions",
|
|
5616
|
+
"module": "./controllers/arrival-controller/arrival-controller.js"
|
|
5617
|
+
}
|
|
5618
|
+
},
|
|
5112
5619
|
{
|
|
5113
5620
|
"kind": "js",
|
|
5114
5621
|
"name": "ChartPointerController",
|
|
@@ -5525,6 +6032,14 @@
|
|
|
5525
6032
|
"module": "./events/element-events.js"
|
|
5526
6033
|
}
|
|
5527
6034
|
},
|
|
6035
|
+
{
|
|
6036
|
+
"kind": "js",
|
|
6037
|
+
"name": "CanvasView",
|
|
6038
|
+
"declaration": {
|
|
6039
|
+
"name": "CanvasView",
|
|
6040
|
+
"module": "./events/events.js"
|
|
6041
|
+
}
|
|
6042
|
+
},
|
|
5528
6043
|
{
|
|
5529
6044
|
"kind": "js",
|
|
5530
6045
|
"name": "CaretDetail",
|
|
@@ -5549,6 +6064,14 @@
|
|
|
5549
6064
|
"module": "./events/events.js"
|
|
5550
6065
|
}
|
|
5551
6066
|
},
|
|
6067
|
+
{
|
|
6068
|
+
"kind": "js",
|
|
6069
|
+
"name": "ConnectDetail",
|
|
6070
|
+
"declaration": {
|
|
6071
|
+
"name": "ConnectDetail",
|
|
6072
|
+
"module": "./events/events.js"
|
|
6073
|
+
}
|
|
6074
|
+
},
|
|
5552
6075
|
{
|
|
5553
6076
|
"kind": "js",
|
|
5554
6077
|
"name": "ConsoleDetail",
|
|
@@ -5645,6 +6168,14 @@
|
|
|
5645
6168
|
"module": "./events/events.js"
|
|
5646
6169
|
}
|
|
5647
6170
|
},
|
|
6171
|
+
{
|
|
6172
|
+
"kind": "js",
|
|
6173
|
+
"name": "HelixBeforeMoveEvent",
|
|
6174
|
+
"declaration": {
|
|
6175
|
+
"name": "HelixBeforeMoveEvent",
|
|
6176
|
+
"module": "./events/events.js"
|
|
6177
|
+
}
|
|
6178
|
+
},
|
|
5648
6179
|
{
|
|
5649
6180
|
"kind": "js",
|
|
5650
6181
|
"name": "HelixBeforeOpenEvent",
|
|
@@ -5669,6 +6200,22 @@
|
|
|
5669
6200
|
"module": "./events/events.js"
|
|
5670
6201
|
}
|
|
5671
6202
|
},
|
|
6203
|
+
{
|
|
6204
|
+
"kind": "js",
|
|
6205
|
+
"name": "HelixBeforeReconnectEvent",
|
|
6206
|
+
"declaration": {
|
|
6207
|
+
"name": "HelixBeforeReconnectEvent",
|
|
6208
|
+
"module": "./events/events.js"
|
|
6209
|
+
}
|
|
6210
|
+
},
|
|
6211
|
+
{
|
|
6212
|
+
"kind": "js",
|
|
6213
|
+
"name": "HelixBeforeRelabelEvent",
|
|
6214
|
+
"declaration": {
|
|
6215
|
+
"name": "HelixBeforeRelabelEvent",
|
|
6216
|
+
"module": "./events/events.js"
|
|
6217
|
+
}
|
|
6218
|
+
},
|
|
5672
6219
|
{
|
|
5673
6220
|
"kind": "js",
|
|
5674
6221
|
"name": "HelixBeforeResizeEvent",
|
|
@@ -5693,6 +6240,38 @@
|
|
|
5693
6240
|
"module": "./events/events.js"
|
|
5694
6241
|
}
|
|
5695
6242
|
},
|
|
6243
|
+
{
|
|
6244
|
+
"kind": "js",
|
|
6245
|
+
"name": "HelixCanvasEditEvent",
|
|
6246
|
+
"declaration": {
|
|
6247
|
+
"name": "HelixCanvasEditEvent",
|
|
6248
|
+
"module": "./events/events.js"
|
|
6249
|
+
}
|
|
6250
|
+
},
|
|
6251
|
+
{
|
|
6252
|
+
"kind": "js",
|
|
6253
|
+
"name": "HelixCanvasPanEvent",
|
|
6254
|
+
"declaration": {
|
|
6255
|
+
"name": "HelixCanvasPanEvent",
|
|
6256
|
+
"module": "./events/events.js"
|
|
6257
|
+
}
|
|
6258
|
+
},
|
|
6259
|
+
{
|
|
6260
|
+
"kind": "js",
|
|
6261
|
+
"name": "HelixCanvasViewEvent",
|
|
6262
|
+
"declaration": {
|
|
6263
|
+
"name": "HelixCanvasViewEvent",
|
|
6264
|
+
"module": "./events/events.js"
|
|
6265
|
+
}
|
|
6266
|
+
},
|
|
6267
|
+
{
|
|
6268
|
+
"kind": "js",
|
|
6269
|
+
"name": "HelixCanvasZoomEvent",
|
|
6270
|
+
"declaration": {
|
|
6271
|
+
"name": "HelixCanvasZoomEvent",
|
|
6272
|
+
"module": "./events/events.js"
|
|
6273
|
+
}
|
|
6274
|
+
},
|
|
5696
6275
|
{
|
|
5697
6276
|
"kind": "js",
|
|
5698
6277
|
"name": "HelixCaretEvent",
|
|
@@ -5709,6 +6288,14 @@
|
|
|
5709
6288
|
"module": "./events/events.js"
|
|
5710
6289
|
}
|
|
5711
6290
|
},
|
|
6291
|
+
{
|
|
6292
|
+
"kind": "js",
|
|
6293
|
+
"name": "HelixConnectEvent",
|
|
6294
|
+
"declaration": {
|
|
6295
|
+
"name": "HelixConnectEvent",
|
|
6296
|
+
"module": "./events/events.js"
|
|
6297
|
+
}
|
|
6298
|
+
},
|
|
5712
6299
|
{
|
|
5713
6300
|
"kind": "js",
|
|
5714
6301
|
"name": "HelixConsoleEvent",
|
|
@@ -5781,6 +6368,14 @@
|
|
|
5781
6368
|
"module": "./events/events.js"
|
|
5782
6369
|
}
|
|
5783
6370
|
},
|
|
6371
|
+
{
|
|
6372
|
+
"kind": "js",
|
|
6373
|
+
"name": "HelixMoveEvent",
|
|
6374
|
+
"declaration": {
|
|
6375
|
+
"name": "HelixMoveEvent",
|
|
6376
|
+
"module": "./events/events.js"
|
|
6377
|
+
}
|
|
6378
|
+
},
|
|
5784
6379
|
{
|
|
5785
6380
|
"kind": "js",
|
|
5786
6381
|
"name": "HelixNavigateEvent",
|
|
@@ -5813,6 +6408,30 @@
|
|
|
5813
6408
|
"module": "./events/events.js"
|
|
5814
6409
|
}
|
|
5815
6410
|
},
|
|
6411
|
+
{
|
|
6412
|
+
"kind": "js",
|
|
6413
|
+
"name": "HelixReconnectEvent",
|
|
6414
|
+
"declaration": {
|
|
6415
|
+
"name": "HelixReconnectEvent",
|
|
6416
|
+
"module": "./events/events.js"
|
|
6417
|
+
}
|
|
6418
|
+
},
|
|
6419
|
+
{
|
|
6420
|
+
"kind": "js",
|
|
6421
|
+
"name": "HelixRelabelEvent",
|
|
6422
|
+
"declaration": {
|
|
6423
|
+
"name": "HelixRelabelEvent",
|
|
6424
|
+
"module": "./events/events.js"
|
|
6425
|
+
}
|
|
6426
|
+
},
|
|
6427
|
+
{
|
|
6428
|
+
"kind": "js",
|
|
6429
|
+
"name": "HelixRemoveEvent",
|
|
6430
|
+
"declaration": {
|
|
6431
|
+
"name": "HelixRemoveEvent",
|
|
6432
|
+
"module": "./events/events.js"
|
|
6433
|
+
}
|
|
6434
|
+
},
|
|
5816
6435
|
{
|
|
5817
6436
|
"kind": "js",
|
|
5818
6437
|
"name": "HelixReorderEvent",
|
|
@@ -5889,47 +6508,79 @@
|
|
|
5889
6508
|
"kind": "js",
|
|
5890
6509
|
"name": "HelixTourAskEvent",
|
|
5891
6510
|
"declaration": {
|
|
5892
|
-
"name": "HelixTourAskEvent",
|
|
6511
|
+
"name": "HelixTourAskEvent",
|
|
6512
|
+
"module": "./events/events.js"
|
|
6513
|
+
}
|
|
6514
|
+
},
|
|
6515
|
+
{
|
|
6516
|
+
"kind": "js",
|
|
6517
|
+
"name": "MapPanDetail",
|
|
6518
|
+
"declaration": {
|
|
6519
|
+
"name": "MapPanDetail",
|
|
6520
|
+
"module": "./events/events.js"
|
|
6521
|
+
}
|
|
6522
|
+
},
|
|
6523
|
+
{
|
|
6524
|
+
"kind": "js",
|
|
6525
|
+
"name": "MapZoomDetail",
|
|
6526
|
+
"declaration": {
|
|
6527
|
+
"name": "MapZoomDetail",
|
|
6528
|
+
"module": "./events/events.js"
|
|
6529
|
+
}
|
|
6530
|
+
},
|
|
6531
|
+
{
|
|
6532
|
+
"kind": "js",
|
|
6533
|
+
"name": "MoveDetail",
|
|
6534
|
+
"declaration": {
|
|
6535
|
+
"name": "MoveDetail",
|
|
6536
|
+
"module": "./events/events.js"
|
|
6537
|
+
}
|
|
6538
|
+
},
|
|
6539
|
+
{
|
|
6540
|
+
"kind": "js",
|
|
6541
|
+
"name": "NavigateDetail",
|
|
6542
|
+
"declaration": {
|
|
6543
|
+
"name": "NavigateDetail",
|
|
5893
6544
|
"module": "./events/events.js"
|
|
5894
6545
|
}
|
|
5895
6546
|
},
|
|
5896
6547
|
{
|
|
5897
6548
|
"kind": "js",
|
|
5898
|
-
"name": "
|
|
6549
|
+
"name": "OpenDetail",
|
|
5899
6550
|
"declaration": {
|
|
5900
|
-
"name": "
|
|
6551
|
+
"name": "OpenDetail",
|
|
5901
6552
|
"module": "./events/events.js"
|
|
5902
6553
|
}
|
|
5903
6554
|
},
|
|
5904
6555
|
{
|
|
5905
6556
|
"kind": "js",
|
|
5906
|
-
"name": "
|
|
6557
|
+
"name": "ReadDetail",
|
|
5907
6558
|
"declaration": {
|
|
5908
|
-
"name": "
|
|
6559
|
+
"name": "ReadDetail",
|
|
5909
6560
|
"module": "./events/events.js"
|
|
5910
6561
|
}
|
|
5911
6562
|
},
|
|
5912
6563
|
{
|
|
5913
6564
|
"kind": "js",
|
|
5914
|
-
"name": "
|
|
6565
|
+
"name": "ReconnectDetail",
|
|
5915
6566
|
"declaration": {
|
|
5916
|
-
"name": "
|
|
6567
|
+
"name": "ReconnectDetail",
|
|
5917
6568
|
"module": "./events/events.js"
|
|
5918
6569
|
}
|
|
5919
6570
|
},
|
|
5920
6571
|
{
|
|
5921
6572
|
"kind": "js",
|
|
5922
|
-
"name": "
|
|
6573
|
+
"name": "RelabelDetail",
|
|
5923
6574
|
"declaration": {
|
|
5924
|
-
"name": "
|
|
6575
|
+
"name": "RelabelDetail",
|
|
5925
6576
|
"module": "./events/events.js"
|
|
5926
6577
|
}
|
|
5927
6578
|
},
|
|
5928
6579
|
{
|
|
5929
6580
|
"kind": "js",
|
|
5930
|
-
"name": "
|
|
6581
|
+
"name": "RemoveDetail",
|
|
5931
6582
|
"declaration": {
|
|
5932
|
-
"name": "
|
|
6583
|
+
"name": "RemoveDetail",
|
|
5933
6584
|
"module": "./events/events.js"
|
|
5934
6585
|
}
|
|
5935
6586
|
},
|
|
@@ -6461,6 +7112,14 @@
|
|
|
6461
7112
|
"module": "./utils/element-by-id/element-by-id.js"
|
|
6462
7113
|
}
|
|
6463
7114
|
},
|
|
7115
|
+
{
|
|
7116
|
+
"kind": "js",
|
|
7117
|
+
"name": "fillTemplate",
|
|
7118
|
+
"declaration": {
|
|
7119
|
+
"name": "fillTemplate",
|
|
7120
|
+
"module": "./utils/fill-template/fill-template.js"
|
|
7121
|
+
}
|
|
7122
|
+
},
|
|
6464
7123
|
{
|
|
6465
7124
|
"kind": "js",
|
|
6466
7125
|
"name": "deepActiveElement",
|
|
@@ -6549,6 +7208,14 @@
|
|
|
6549
7208
|
"module": "./utils/is-rtl/is-rtl.js"
|
|
6550
7209
|
}
|
|
6551
7210
|
},
|
|
7211
|
+
{
|
|
7212
|
+
"kind": "js",
|
|
7213
|
+
"name": "keyClaimed",
|
|
7214
|
+
"declaration": {
|
|
7215
|
+
"name": "keyClaimed",
|
|
7216
|
+
"module": "./utils/key-claimed/key-claimed.js"
|
|
7217
|
+
}
|
|
7218
|
+
},
|
|
6552
7219
|
{
|
|
6553
7220
|
"kind": "js",
|
|
6554
7221
|
"name": "Curve",
|
|
@@ -6701,6 +7368,14 @@
|
|
|
6701
7368
|
"module": "./utils/relative-time/relative-time.js"
|
|
6702
7369
|
}
|
|
6703
7370
|
},
|
|
7371
|
+
{
|
|
7372
|
+
"kind": "js",
|
|
7373
|
+
"name": "reportValues",
|
|
7374
|
+
"declaration": {
|
|
7375
|
+
"name": "reportValues",
|
|
7376
|
+
"module": "./utils/report-values/report-values.js"
|
|
7377
|
+
}
|
|
7378
|
+
},
|
|
6704
7379
|
{
|
|
6705
7380
|
"kind": "js",
|
|
6706
7381
|
"name": "ChangeRequestOptions",
|
|
@@ -6805,6 +7480,14 @@
|
|
|
6805
7480
|
"module": "./utils/slot-filled/slot-filled.js"
|
|
6806
7481
|
}
|
|
6807
7482
|
},
|
|
7483
|
+
{
|
|
7484
|
+
"kind": "js",
|
|
7485
|
+
"name": "slottedWords",
|
|
7486
|
+
"declaration": {
|
|
7487
|
+
"name": "slottedWords",
|
|
7488
|
+
"module": "./utils/slotted-words/slotted-words.js"
|
|
7489
|
+
}
|
|
7490
|
+
},
|
|
6808
7491
|
{
|
|
6809
7492
|
"kind": "js",
|
|
6810
7493
|
"name": "splitValues",
|
|
@@ -7476,6 +8159,25 @@
|
|
|
7476
8159
|
],
|
|
7477
8160
|
"description": "The status line, or nothing where the collection has content to show.\n\nRendered by the component wherever its rows would be."
|
|
7478
8161
|
},
|
|
8162
|
+
{
|
|
8163
|
+
"kind": "method",
|
|
8164
|
+
"name": "renderLive",
|
|
8165
|
+
"privacy": "protected",
|
|
8166
|
+
"return": {
|
|
8167
|
+
"type": {
|
|
8168
|
+
"text": "TemplateResult"
|
|
8169
|
+
}
|
|
8170
|
+
},
|
|
8171
|
+
"parameters": [
|
|
8172
|
+
{
|
|
8173
|
+
"name": "hasContent",
|
|
8174
|
+
"type": {
|
|
8175
|
+
"text": "boolean"
|
|
8176
|
+
}
|
|
8177
|
+
}
|
|
8178
|
+
],
|
|
8179
|
+
"description": "The same words for a screen reader, in a region that is always there.\n\nRendered by the component outside its rows, where a status is allowed."
|
|
8180
|
+
},
|
|
7479
8181
|
{
|
|
7480
8182
|
"kind": "method",
|
|
7481
8183
|
"name": "countRows",
|
|
@@ -7630,6 +8332,25 @@
|
|
|
7630
8332
|
}
|
|
7631
8333
|
],
|
|
7632
8334
|
"description": "The status line, or nothing where there is content to show.\n\nLoading wins over empty. A collection that has not answered yet is not\nempty, and saying so is the most common version of this fault: the reader\nis told there is nothing a moment before there is something."
|
|
8335
|
+
},
|
|
8336
|
+
{
|
|
8337
|
+
"kind": "method",
|
|
8338
|
+
"name": "renderLive",
|
|
8339
|
+
"privacy": "protected",
|
|
8340
|
+
"return": {
|
|
8341
|
+
"type": {
|
|
8342
|
+
"text": "TemplateResult"
|
|
8343
|
+
}
|
|
8344
|
+
},
|
|
8345
|
+
"parameters": [
|
|
8346
|
+
{
|
|
8347
|
+
"name": "hasContent",
|
|
8348
|
+
"type": {
|
|
8349
|
+
"text": "boolean"
|
|
8350
|
+
}
|
|
8351
|
+
}
|
|
8352
|
+
],
|
|
8353
|
+
"description": "The same words for a screen reader, in a region that is always there.\n\n**A region is heard when what it holds changes, not when it arrives.**\nThe loading line was a `role=\"status\"` inserted with its words already\nin it, which is read inconsistently at best, and the empty line was no\nregion at all, so a filter that emptied a list said nothing. This one is\nrendered on every pass and only its words move: \"Loading\", then\n\"No matches\", then nothing once there are rows.\n\n**Outside the rows, which is the component's to place.** A status is not\na child a `listbox`, a `table` or a `tree` may hold, so the component\nrenders this beside its container rather than inside it. The styled\ntier clips it; the visible lines are `renderStatus`."
|
|
7633
8354
|
}
|
|
7634
8355
|
],
|
|
7635
8356
|
"attributes": [
|
|
@@ -8177,22 +8898,22 @@
|
|
|
8177
8898
|
"members": [
|
|
8178
8899
|
{
|
|
8179
8900
|
"kind": "field",
|
|
8180
|
-
"name": "
|
|
8901
|
+
"name": "defaultOpen",
|
|
8181
8902
|
"type": {
|
|
8182
8903
|
"text": "boolean"
|
|
8183
8904
|
},
|
|
8184
|
-
"
|
|
8185
|
-
"
|
|
8905
|
+
"default": "false",
|
|
8906
|
+
"description": "Whether the markup declared it open. Ignored once `open` is written.",
|
|
8907
|
+
"attribute": "default-open"
|
|
8186
8908
|
},
|
|
8187
8909
|
{
|
|
8188
8910
|
"kind": "field",
|
|
8189
|
-
"name": "
|
|
8911
|
+
"name": "open",
|
|
8190
8912
|
"type": {
|
|
8191
8913
|
"text": "boolean"
|
|
8192
8914
|
},
|
|
8193
|
-
"
|
|
8194
|
-
"
|
|
8195
|
-
"attribute": "default-open"
|
|
8915
|
+
"description": "Whether the element is open.\n\nOne property, not two, so `dialog.open` answers the question anyone\nasking it meant. Writing always applies; `<helix-dialog open>` is the\nsame statement in markup.\n\n**Not reflected, and that is required rather than tidy.** Reflection\nwrites the resolved state back as an attribute, so an element that opened\nitself would put `open` on its own host: cloned, serialized for\nhydration, or diffed by a framework, it comes back holding whatever the\nlast reader did rather than what the author wrote. `:state(open)` carries\nthe resolved state for stylesheets, which is what the mirror is for.",
|
|
8916
|
+
"attribute": "open"
|
|
8196
8917
|
},
|
|
8197
8918
|
{
|
|
8198
8919
|
"kind": "field",
|
|
@@ -8254,21 +8975,21 @@
|
|
|
8254
8975
|
],
|
|
8255
8976
|
"attributes": [
|
|
8256
8977
|
{
|
|
8257
|
-
"name": "open",
|
|
8978
|
+
"name": "default-open",
|
|
8258
8979
|
"type": {
|
|
8259
8980
|
"text": "boolean"
|
|
8260
8981
|
},
|
|
8261
|
-
"
|
|
8262
|
-
"
|
|
8982
|
+
"default": "false",
|
|
8983
|
+
"description": "Whether the markup declared it open. Ignored once `open` is written.",
|
|
8984
|
+
"fieldName": "defaultOpen"
|
|
8263
8985
|
},
|
|
8264
8986
|
{
|
|
8265
|
-
"name": "
|
|
8987
|
+
"name": "open",
|
|
8266
8988
|
"type": {
|
|
8267
8989
|
"text": "boolean"
|
|
8268
8990
|
},
|
|
8269
|
-
"
|
|
8270
|
-
"
|
|
8271
|
-
"fieldName": "defaultOpen"
|
|
8991
|
+
"description": "Whether the element is open.\n\nOne property, not two, so `dialog.open` answers the question anyone\nasking it meant. Writing always applies; `<helix-dialog open>` is the\nsame statement in markup.\n\n**Not reflected, and that is required rather than tidy.** Reflection\nwrites the resolved state back as an attribute, so an element that opened\nitself would put `open` on its own host: cloned, serialized for\nhydration, or diffed by a framework, it comes back holding whatever the\nlast reader did rather than what the author wrote. `:state(open)` carries\nthe resolved state for stylesheets, which is what the mirror is for.",
|
|
8992
|
+
"fieldName": "open"
|
|
8272
8993
|
}
|
|
8273
8994
|
],
|
|
8274
8995
|
"parameters": [
|
|
@@ -8375,7 +9096,7 @@
|
|
|
8375
9096
|
{
|
|
8376
9097
|
"name": "state",
|
|
8377
9098
|
"type": {
|
|
8378
|
-
"text": "string | null"
|
|
9099
|
+
"text": "string | File | FormData | null"
|
|
8379
9100
|
}
|
|
8380
9101
|
}
|
|
8381
9102
|
],
|
|
@@ -8480,7 +9201,7 @@
|
|
|
8480
9201
|
{
|
|
8481
9202
|
"name": "state",
|
|
8482
9203
|
"type": {
|
|
8483
|
-
"text": "string | null"
|
|
9204
|
+
"text": "string | File | FormData | null"
|
|
8484
9205
|
}
|
|
8485
9206
|
}
|
|
8486
9207
|
],
|
|
@@ -8699,6 +9420,25 @@
|
|
|
8699
9420
|
"privacy": "protected",
|
|
8700
9421
|
"description": "Id the field's label points at, written by the control this wraps.\n\nThe third fixed id and the only one this mixin does not render, the\ncontrol being the family's. See the note on the class member."
|
|
8701
9422
|
},
|
|
9423
|
+
{
|
|
9424
|
+
"kind": "field",
|
|
9425
|
+
"name": "labelId",
|
|
9426
|
+
"type": {
|
|
9427
|
+
"text": "string"
|
|
9428
|
+
},
|
|
9429
|
+
"privacy": "protected",
|
|
9430
|
+
"description": "The id the label carries, for an element in the template to be named by."
|
|
9431
|
+
},
|
|
9432
|
+
{
|
|
9433
|
+
"kind": "field",
|
|
9434
|
+
"name": "labeled",
|
|
9435
|
+
"type": {
|
|
9436
|
+
"text": "boolean"
|
|
9437
|
+
},
|
|
9438
|
+
"privacy": "protected",
|
|
9439
|
+
"description": "Whether a label is drawn at all, in either shape.",
|
|
9440
|
+
"readonly": true
|
|
9441
|
+
},
|
|
8702
9442
|
{
|
|
8703
9443
|
"kind": "field",
|
|
8704
9444
|
"name": "hint",
|
|
@@ -8837,6 +9577,25 @@
|
|
|
8837
9577
|
],
|
|
8838
9578
|
"description": "Reports \"required and empty\" against a rendered part, or clears it.\n\n`empty` is the control's own answer to whether it holds nothing, `message`\nis what to say about it, and `anchor` names the part the browser should\npoint its bubble at."
|
|
8839
9579
|
},
|
|
9580
|
+
{
|
|
9581
|
+
"kind": "method",
|
|
9582
|
+
"name": "copyValidity",
|
|
9583
|
+
"privacy": "protected",
|
|
9584
|
+
"return": {
|
|
9585
|
+
"type": {
|
|
9586
|
+
"text": "void"
|
|
9587
|
+
}
|
|
9588
|
+
},
|
|
9589
|
+
"parameters": [
|
|
9590
|
+
{
|
|
9591
|
+
"name": "control",
|
|
9592
|
+
"type": {
|
|
9593
|
+
"text": "HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement"
|
|
9594
|
+
}
|
|
9595
|
+
}
|
|
9596
|
+
],
|
|
9597
|
+
"description": "Hands on the verdict of a native control this renders, with the page's own\nwords where it gave some."
|
|
9598
|
+
},
|
|
8840
9599
|
{
|
|
8841
9600
|
"kind": "field",
|
|
8842
9601
|
"name": "resolvedFeedback",
|
|
@@ -8845,6 +9604,14 @@
|
|
|
8845
9604
|
},
|
|
8846
9605
|
"readonly": true,
|
|
8847
9606
|
"description": "The message actually shown: the consumer's, or the platform's, or none."
|
|
9607
|
+
},
|
|
9608
|
+
{
|
|
9609
|
+
"kind": "field",
|
|
9610
|
+
"name": "valueMissingMessage",
|
|
9611
|
+
"type": {
|
|
9612
|
+
"text": "string | undefined"
|
|
9613
|
+
},
|
|
9614
|
+
"description": "What a reader is told when the field is required and empty, where the page says."
|
|
8848
9615
|
}
|
|
8849
9616
|
],
|
|
8850
9617
|
"helix": {}
|
|
@@ -8864,6 +9631,26 @@
|
|
|
8864
9631
|
"default": "'control'",
|
|
8865
9632
|
"description": "Id the field's label points at, written by the control this wraps.\n\n`renderLabel` emits the `for` and the family renders the `id`, so the\ntwo ends of one IDREF sat in two packages as a pair of literals with\nnothing holding them together: eleven templates wrote `id=\"control\"`,\ntwo wrote a second `for=\"control\"` of their own, and a family that\nspelled either differently got a `<label for>` resolving to nothing.\nThat failure is silent in the way the area rules describe for a\n`[part=]` naming a part nobody renders: no error, no warning, and a\nlabel that has stopped focusing its field.\n\nA member rather than a module constant, which is what the anchor\nargument for `reportRequired` already settled one level down: the name\nbelongs to the control the family renders, so the family has to be able\nto read it, and `HINT_ID` and `FEEDBACK_ID` stay private because this\nmixin renders both of those itself."
|
|
8866
9633
|
},
|
|
9634
|
+
{
|
|
9635
|
+
"kind": "field",
|
|
9636
|
+
"name": "labelId",
|
|
9637
|
+
"type": {
|
|
9638
|
+
"text": "string"
|
|
9639
|
+
},
|
|
9640
|
+
"privacy": "protected",
|
|
9641
|
+
"default": "'label'",
|
|
9642
|
+
"description": "The id the label carries, for an element in the template to be named by.\n\n**What a template draws is not the host**, which is what `hostAria`\nnames: a rating's radiogroup, a pin input's row of cells, a listbox's\nlist and a range slider's two thumbs are elements of their own, and they\nhad no name but a `label` string, or none at all. In the same tree as\nthe label, so a plain `aria-labelledby` resolves, and it names them by\nwhatever the label holds, a slotted one included. One id for both shapes,\nsince a family draws one or the other."
|
|
9643
|
+
},
|
|
9644
|
+
{
|
|
9645
|
+
"kind": "field",
|
|
9646
|
+
"name": "labeled",
|
|
9647
|
+
"type": {
|
|
9648
|
+
"text": "boolean"
|
|
9649
|
+
},
|
|
9650
|
+
"privacy": "protected",
|
|
9651
|
+
"description": "Whether a label is drawn at all, in either shape.",
|
|
9652
|
+
"readonly": true
|
|
9653
|
+
},
|
|
8867
9654
|
{
|
|
8868
9655
|
"kind": "field",
|
|
8869
9656
|
"name": "feedback",
|
|
@@ -8905,6 +9692,15 @@
|
|
|
8905
9692
|
"attribute": "required",
|
|
8906
9693
|
"reflects": true
|
|
8907
9694
|
},
|
|
9695
|
+
{
|
|
9696
|
+
"kind": "field",
|
|
9697
|
+
"name": "valueMissingMessage",
|
|
9698
|
+
"type": {
|
|
9699
|
+
"text": "string | undefined"
|
|
9700
|
+
},
|
|
9701
|
+
"description": "What a reader is told when the field is required and empty, where the\npage says.\n\n**Absent, or empty, is the control's own sentence**, \"Choose one to continue.\" on a\nset and the browser's own on a text field, which the browser writes in\nthe reader's language. Every other word a control speaks is a property,\nand this one was the English a form in another language still spoke in\nthe bubble it raises on submit: `feedback` replaces the message under\nthe field and does not reach that one.",
|
|
9702
|
+
"attribute": "value-missing-message"
|
|
9703
|
+
},
|
|
8908
9704
|
{
|
|
8909
9705
|
"kind": "field",
|
|
8910
9706
|
"name": "touched",
|
|
@@ -9031,6 +9827,35 @@
|
|
|
9031
9827
|
}
|
|
9032
9828
|
],
|
|
9033
9829
|
"description": "Reports \"required and empty\" and refreshes the message, or clears both.\n\nTwo things differ between the controls that call this, so those are the\narguments: whether the control is empty, which only it can say, and the\nsentence to say about it, which is different for a box, a switch and a\nset. The anchor is looked up here because every one of them anchors on a\nrendered part and the browser needs somewhere to point the bubble.\n\nThe message is not derived from the control's kind, deliberately. \"Tick\nthis box\" and \"Choose one\" are not the same instruction and a lookup\ntable would be one more thing to keep in step with the components."
|
|
9830
|
+
},
|
|
9831
|
+
{
|
|
9832
|
+
"kind": "method",
|
|
9833
|
+
"name": "copyValidity",
|
|
9834
|
+
"privacy": "protected",
|
|
9835
|
+
"return": {
|
|
9836
|
+
"type": {
|
|
9837
|
+
"text": "void"
|
|
9838
|
+
}
|
|
9839
|
+
},
|
|
9840
|
+
"parameters": [
|
|
9841
|
+
{
|
|
9842
|
+
"name": "control",
|
|
9843
|
+
"type": {
|
|
9844
|
+
"text": "HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement"
|
|
9845
|
+
}
|
|
9846
|
+
}
|
|
9847
|
+
],
|
|
9848
|
+
"description": "Hands on the verdict of a native control this renders, with the page's\nown words where it gave some.\n\nThe browser's message otherwise, which is already in the reader's\nlanguage, anchored on the control so the bubble points at the text and\nnot at the host. The seven families that copy a native verdict each\nwrote this line, and none of them could be told what to say."
|
|
9849
|
+
},
|
|
9850
|
+
{
|
|
9851
|
+
"kind": "method",
|
|
9852
|
+
"name": "formResetCallback",
|
|
9853
|
+
"return": {
|
|
9854
|
+
"type": {
|
|
9855
|
+
"text": "void"
|
|
9856
|
+
}
|
|
9857
|
+
},
|
|
9858
|
+
"description": "Forgets the reader's attempts along with the value, so an emptied field\nis not wrong until they try again.\n\nThrough the base's prototype rather than `super`, because the base this\ngrafts onto is any element and only a form element has the hook."
|
|
9034
9859
|
}
|
|
9035
9860
|
],
|
|
9036
9861
|
"attributes": [
|
|
@@ -9069,6 +9894,14 @@
|
|
|
9069
9894
|
"default": "false",
|
|
9070
9895
|
"description": "Whether the form refuses to submit without it.",
|
|
9071
9896
|
"fieldName": "required"
|
|
9897
|
+
},
|
|
9898
|
+
{
|
|
9899
|
+
"name": "value-missing-message",
|
|
9900
|
+
"type": {
|
|
9901
|
+
"text": "string | undefined"
|
|
9902
|
+
},
|
|
9903
|
+
"description": "What a reader is told when the field is required and empty, where the\npage says.\n\n**Absent, or empty, is the control's own sentence**, \"Choose one to continue.\" on a\nset and the browser's own on a text field, which the browser writes in\nthe reader's language. Every other word a control speaks is a property,\nand this one was the English a form in another language still spoke in\nthe bubble it raises on submit: `feedback` replaces the message under\nthe field and does not reach that one.",
|
|
9904
|
+
"fieldName": "valueMissingMessage"
|
|
9072
9905
|
}
|
|
9073
9906
|
],
|
|
9074
9907
|
"parameters": [
|
|
@@ -9275,6 +10108,14 @@
|
|
|
9275
10108
|
"description": "The public surface `MixinPickerField` adds.\n\nDeclared separately because TypeScript cannot emit declarations for an\nanonymous class that has private members (TS4094). Casting the mixin's return\nto this interface keeps the internals private and the build working.",
|
|
9276
10109
|
"name": "MixinPickerFieldInterface",
|
|
9277
10110
|
"members": [
|
|
10111
|
+
{
|
|
10112
|
+
"kind": "field",
|
|
10113
|
+
"name": "badInputMessage",
|
|
10114
|
+
"type": {
|
|
10115
|
+
"text": "string | undefined"
|
|
10116
|
+
},
|
|
10117
|
+
"description": "What a reader is told when the field holds something the picker cannot read."
|
|
10118
|
+
},
|
|
9278
10119
|
{
|
|
9279
10120
|
"kind": "field",
|
|
9280
10121
|
"name": "anchor",
|
|
@@ -9285,6 +10126,16 @@
|
|
|
9285
10126
|
"description": "What the label points at and focus lands on.\n\nThe text control, unless a family says otherwise: Color Input in `swatch`\nhas no text control, and its trigger is the only thing in the field a label\ncan name.",
|
|
9286
10127
|
"readonly": true
|
|
9287
10128
|
},
|
|
10129
|
+
{
|
|
10130
|
+
"kind": "field",
|
|
10131
|
+
"name": "answers",
|
|
10132
|
+
"type": {
|
|
10133
|
+
"text": "readonly string[] | undefined"
|
|
10134
|
+
},
|
|
10135
|
+
"privacy": "protected",
|
|
10136
|
+
"description": "Each answer the field holds, where it holds several, or `undefined` where\nits value is one answer. Several are sent one entry each; see\n`reportValues`.",
|
|
10137
|
+
"readonly": true
|
|
10138
|
+
},
|
|
9288
10139
|
{
|
|
9289
10140
|
"kind": "field",
|
|
9290
10141
|
"name": "control",
|
|
@@ -9424,6 +10275,15 @@
|
|
|
9424
10275
|
"description": "Grafts a floating picker onto a text field, and the protocol between them.\n\n**Three families are this shape and were three copies of it.** Date Input,\nTime Input and Color Input each render a text control, a trigger and a\n`popover=\"manual\"` surface holding a picker that already exists on its own,\nand each owed the same wiring: the panel that floats the surface against the\nfield, the Escape that shuts it and hands the caret back, the restore that\nputs the control back where a refusal left the value, and the sync that\nreports the value and a verdict the platform cannot reach. Measured on the\ndiff that made the lift, 14 Sep 2026, comments counted: 223 lines left Date\nInput and 32 came back, 185 left Time Input and 32 came back, 87 left\nColor Input and 11 came back.\n\n**What it does not own is the picker, the typing or the value's shape.**\nWhich element floats in the surface, what a keystroke means, what the field\nshows when idle and what is wrong with a value are each the family's, which\nis why `display` and `validate` are seams here and the template stays where\nit was. A family renders `field`, `control`, `trigger` and `surface`; this\nreads them.\n\n**The parts this reads are the host's, so the name is a parameter.** A\nliteral `[part=\"control\"]` here would be a lookup nothing in this file\nrenders, which is the fault `helix component`'s `selectors` exists to catch\nand would rightly report. `MixinField.reportRequired` takes its anchor the\nsame way, and for the same reason: a mixin reads a part out of whatever host\napplies it.\n\n**Opening on focus, `readOnly` and the idle rendering are not here.** They\nare `MixinPickerEditing`'s, because Color Input has none of the three: a hex\nis pasted and read at a glance, so its field neither renders nor opens on\narrival, and giving it `readOnly` would be a property its API does not have.\n\n**Three things the two typed families share stay with them.** `renderTrigger`\ndiffers only by its icon and would still be the wrong thing to lift: a part a\nmixin renders belongs to every host that applies it, which is how\n`helix component`'s `parts` reads a chain, so `trigger-icon` would be\ncredited to Color Input, whose trigger is a swatch and documents no such\npart. `renderTag` names its part after the family, `date` or `time`, and\nwrites the label on the remove control differently in each. `valueAsDate`\nand `valueAsNumber` are public, convert a different way, and carry a\ndifferent note onto each family's page, which a mixin could only carry as\none.\n\n**Four more families look like this and are not.** Select has no text to\nhand the caret to: its panel hangs off the trigger and dismissal refocuses\nthat. Combobox has the text and a different agreement with it: a press\nanywhere in the field is inside, the gap is four, Escape closes without the\n`returning` flag because nothing there opens on arrival, and the control is\nreconciled against a completion rather than restored to a value. Input and\nTextarea open nothing, and their `readOnly` is the native attribute rather\nthan a gate on `requestValue`, so a programmatic change still lands. What\nthose two share with this is `focus()` and the platform's verdict copied in\n`sync`, which is not a protocol.",
|
|
9425
10276
|
"name": "MixinPickerField",
|
|
9426
10277
|
"members": [
|
|
10278
|
+
{
|
|
10279
|
+
"kind": "field",
|
|
10280
|
+
"name": "badInputMessage",
|
|
10281
|
+
"type": {
|
|
10282
|
+
"text": "string | undefined"
|
|
10283
|
+
},
|
|
10284
|
+
"description": "What a reader is told when the field holds something the picker cannot\nread: a date that is not one, a time, a color.\n\n**Every sentence a control raises in the browser's bubble is a\nproperty**, named for the validity flag it reports, so a form in another\nlanguage speaks it. Absent is the family's own sentence, in English,\nwhich says what the value should look like.",
|
|
10285
|
+
"attribute": "bad-input-message"
|
|
10286
|
+
},
|
|
9427
10287
|
{
|
|
9428
10288
|
"kind": "field",
|
|
9429
10289
|
"name": "panel",
|
|
@@ -9481,6 +10341,16 @@
|
|
|
9481
10341
|
"description": "What the field shows, which is the value unless a family renders it.",
|
|
9482
10342
|
"readonly": true
|
|
9483
10343
|
},
|
|
10344
|
+
{
|
|
10345
|
+
"kind": "field",
|
|
10346
|
+
"name": "answers",
|
|
10347
|
+
"type": {
|
|
10348
|
+
"text": "readonly string[] | undefined"
|
|
10349
|
+
},
|
|
10350
|
+
"privacy": "protected",
|
|
10351
|
+
"description": "Each answer the field holds, where it holds several.\n\nOne answer by default, the value itself. Date Input and Time Input hold\nseveral in `multiple` and `range`, and say so.",
|
|
10352
|
+
"readonly": true
|
|
10353
|
+
},
|
|
9484
10354
|
{
|
|
9485
10355
|
"kind": "method",
|
|
9486
10356
|
"name": "validate",
|
|
@@ -9562,6 +10432,16 @@
|
|
|
9562
10432
|
"description": "Puts the caret in the field, the way a label pointing at one would."
|
|
9563
10433
|
}
|
|
9564
10434
|
],
|
|
10435
|
+
"attributes": [
|
|
10436
|
+
{
|
|
10437
|
+
"name": "bad-input-message",
|
|
10438
|
+
"type": {
|
|
10439
|
+
"text": "string | undefined"
|
|
10440
|
+
},
|
|
10441
|
+
"description": "What a reader is told when the field holds something the picker cannot\nread: a date that is not one, a time, a color.\n\n**Every sentence a control raises in the browser's bubble is a\nproperty**, named for the validity flag it reports, so a form in another\nlanguage speaks it. Absent is the family's own sentence, in English,\nwhich says what the value should look like.",
|
|
10442
|
+
"fieldName": "badInputMessage"
|
|
10443
|
+
}
|
|
10444
|
+
],
|
|
9565
10445
|
"parameters": [
|
|
9566
10446
|
{
|
|
9567
10447
|
"name": "Base",
|
|
@@ -10192,11 +11072,27 @@
|
|
|
10192
11072
|
},
|
|
10193
11073
|
{
|
|
10194
11074
|
"kind": "field",
|
|
10195
|
-
"name": "
|
|
11075
|
+
"name": "panDownLabel",
|
|
11076
|
+
"type": {
|
|
11077
|
+
"text": "string"
|
|
11078
|
+
},
|
|
11079
|
+
"description": "What the control that pans down is called."
|
|
11080
|
+
},
|
|
11081
|
+
{
|
|
11082
|
+
"kind": "field",
|
|
11083
|
+
"name": "panLeftLabel",
|
|
11084
|
+
"type": {
|
|
11085
|
+
"text": "string"
|
|
11086
|
+
},
|
|
11087
|
+
"description": "What the control that pans left is called."
|
|
11088
|
+
},
|
|
11089
|
+
{
|
|
11090
|
+
"kind": "field",
|
|
11091
|
+
"name": "panRightLabel",
|
|
10196
11092
|
"type": {
|
|
10197
11093
|
"text": "string"
|
|
10198
11094
|
},
|
|
10199
|
-
"description": "What
|
|
11095
|
+
"description": "What the control that pans right is called."
|
|
10200
11096
|
},
|
|
10201
11097
|
{
|
|
10202
11098
|
"kind": "field",
|
|
@@ -10206,6 +11102,14 @@
|
|
|
10206
11102
|
},
|
|
10207
11103
|
"description": "How far one press moves the view, as a fraction of what is on screen."
|
|
10208
11104
|
},
|
|
11105
|
+
{
|
|
11106
|
+
"kind": "field",
|
|
11107
|
+
"name": "panUpLabel",
|
|
11108
|
+
"type": {
|
|
11109
|
+
"text": "string"
|
|
11110
|
+
},
|
|
11111
|
+
"description": "What the control that pans up is called."
|
|
11112
|
+
},
|
|
10209
11113
|
{
|
|
10210
11114
|
"kind": "field",
|
|
10211
11115
|
"name": "zoomInLabel",
|
|
@@ -10318,11 +11222,19 @@
|
|
|
10318
11222
|
{
|
|
10319
11223
|
"kind": "field",
|
|
10320
11224
|
"name": "controlsLabel",
|
|
11225
|
+
"type": {
|
|
11226
|
+
"text": "string | undefined"
|
|
11227
|
+
},
|
|
11228
|
+
"description": "What the group of controls is called, where the page says."
|
|
11229
|
+
},
|
|
11230
|
+
{
|
|
11231
|
+
"kind": "field",
|
|
11232
|
+
"name": "restingControlsLabel",
|
|
10321
11233
|
"type": {
|
|
10322
11234
|
"text": "string"
|
|
10323
11235
|
},
|
|
10324
11236
|
"privacy": "protected",
|
|
10325
|
-
"description": "What the group of controls is called,
|
|
11237
|
+
"description": "What the group of controls is called where the page does not say, which each family says for itself.",
|
|
10326
11238
|
"readonly": true
|
|
10327
11239
|
},
|
|
10328
11240
|
{
|
|
@@ -10373,6 +11285,26 @@
|
|
|
10373
11285
|
}
|
|
10374
11286
|
},
|
|
10375
11287
|
"description": "The controls, or nothing where the surface keeps none of them."
|
|
11288
|
+
},
|
|
11289
|
+
{
|
|
11290
|
+
"kind": "field",
|
|
11291
|
+
"name": "controlsElement",
|
|
11292
|
+
"type": {
|
|
11293
|
+
"text": "Element | null"
|
|
11294
|
+
},
|
|
11295
|
+
"privacy": "protected",
|
|
11296
|
+
"description": "The drawn group of controls, where there is one, for a family that measures it.",
|
|
11297
|
+
"readonly": true
|
|
11298
|
+
},
|
|
11299
|
+
{
|
|
11300
|
+
"kind": "field",
|
|
11301
|
+
"name": "restingControls",
|
|
11302
|
+
"type": {
|
|
11303
|
+
"text": "string"
|
|
11304
|
+
},
|
|
11305
|
+
"privacy": "protected",
|
|
11306
|
+
"description": "Which controls the surface draws while `controls` is absent.",
|
|
11307
|
+
"readonly": true
|
|
10376
11308
|
}
|
|
10377
11309
|
],
|
|
10378
11310
|
"helix": {}
|
|
@@ -10388,10 +11320,19 @@
|
|
|
10388
11320
|
"type": {
|
|
10389
11321
|
"text": "string | undefined"
|
|
10390
11322
|
},
|
|
10391
|
-
"description": "Which of the controls this surface draws, as a list of what to keep.\n\n**A list rather than a switch, because the overlap is not symmetric.** A\nsurface a consumer brings often has zoom controls of its own and almost\nnever has pan buttons, so a single switch would make them choose between\na duplicate and nothing.\n\n`none` draws none of them, which is the right answer where what was\nslotted already has controls a reader can find: what this argues for is\nthat *a* findable control exists, never that it is ours. The methods stay\npublic either way, so a consumer drawing their own chrome can still drive\nthe surface.\n\nAbsent is
|
|
11323
|
+
"description": "Which of the controls this surface draws, as a list of what to keep.\n\n**A list rather than a switch, because the overlap is not symmetric.** A\nsurface a consumer brings often has zoom controls of its own and almost\nnever has pan buttons, so a single switch would make them choose between\na duplicate and nothing.\n\n`none` draws none of them, which is the right answer where what was\nslotted already has controls a reader can find: what this argues for is\nthat *a* findable control exists, never that it is ours. The methods stay\npublic either way, so a consumer drawing their own chrome can still drive\nthe surface.\n\nAbsent is whatever the family rests at, which is this library's rule that\na resting value is an attribute's absence: all three for a map, whose\nreader may have no other way to move it, and zoom and fullscreen for a\nboard, which a reader drags and whose pad took a third of the frame. The\nstylesheet lays the cluster out by which buttons are in it rather than by\nthis attribute, so the two defaults need no rule each.",
|
|
10392
11324
|
"attribute": "controls",
|
|
10393
11325
|
"reflects": true
|
|
10394
11326
|
},
|
|
11327
|
+
{
|
|
11328
|
+
"kind": "field",
|
|
11329
|
+
"name": "controlsLabel",
|
|
11330
|
+
"type": {
|
|
11331
|
+
"text": "string | undefined"
|
|
11332
|
+
},
|
|
11333
|
+
"description": "What the group of controls is called, for a reader who meets it.\n\nAbsent is the family's own name for it, \"Map controls\" or \"Board\ncontrols\", which names what the controls drive rather than the\nmechanism. Written here to say it in another language, which every other\nstring this surface speaks already allowed and this one did not.",
|
|
11334
|
+
"attribute": "controls-label"
|
|
11335
|
+
},
|
|
10395
11336
|
{
|
|
10396
11337
|
"kind": "field",
|
|
10397
11338
|
"name": "controlsPlacement",
|
|
@@ -10424,13 +11365,33 @@
|
|
|
10424
11365
|
},
|
|
10425
11366
|
{
|
|
10426
11367
|
"kind": "field",
|
|
10427
|
-
"name": "
|
|
11368
|
+
"name": "panDownLabel",
|
|
11369
|
+
"type": {
|
|
11370
|
+
"text": "string"
|
|
11371
|
+
},
|
|
11372
|
+
"default": "'Pan down'",
|
|
11373
|
+
"description": "What the control that pans down is called.\n\n**A label for each way rather than one with the way filled in**, which is\nwhat this was: `Pan {way}` filled in with `left`, so a page that said it\nin French read out \"Déplacer left\". The word for a direction is as much\nthe translator's as the word for panning, and a language can put it\nanywhere in the phrase.",
|
|
11374
|
+
"attribute": "pan-down-label"
|
|
11375
|
+
},
|
|
11376
|
+
{
|
|
11377
|
+
"kind": "field",
|
|
11378
|
+
"name": "panLeftLabel",
|
|
11379
|
+
"type": {
|
|
11380
|
+
"text": "string"
|
|
11381
|
+
},
|
|
11382
|
+
"default": "'Pan left'",
|
|
11383
|
+
"description": "What the control that pans left is called, on screen.",
|
|
11384
|
+
"attribute": "pan-left-label"
|
|
11385
|
+
},
|
|
11386
|
+
{
|
|
11387
|
+
"kind": "field",
|
|
11388
|
+
"name": "panRightLabel",
|
|
10428
11389
|
"type": {
|
|
10429
11390
|
"text": "string"
|
|
10430
11391
|
},
|
|
10431
|
-
"default": "'Pan
|
|
10432
|
-
"description": "What
|
|
10433
|
-
"attribute": "pan-label"
|
|
11392
|
+
"default": "'Pan right'",
|
|
11393
|
+
"description": "What the control that pans right is called, on screen.",
|
|
11394
|
+
"attribute": "pan-right-label"
|
|
10434
11395
|
},
|
|
10435
11396
|
{
|
|
10436
11397
|
"kind": "field",
|
|
@@ -10444,23 +11405,23 @@
|
|
|
10444
11405
|
},
|
|
10445
11406
|
{
|
|
10446
11407
|
"kind": "field",
|
|
10447
|
-
"name": "
|
|
11408
|
+
"name": "panUpLabel",
|
|
10448
11409
|
"type": {
|
|
10449
11410
|
"text": "string"
|
|
10450
11411
|
},
|
|
10451
|
-
"default": "'
|
|
10452
|
-
"description": "What the control that
|
|
10453
|
-
"attribute": "
|
|
11412
|
+
"default": "'Pan up'",
|
|
11413
|
+
"description": "What the control that pans up is called.",
|
|
11414
|
+
"attribute": "pan-up-label"
|
|
10454
11415
|
},
|
|
10455
11416
|
{
|
|
10456
11417
|
"kind": "field",
|
|
10457
|
-
"name": "
|
|
11418
|
+
"name": "zoomInLabel",
|
|
10458
11419
|
"type": {
|
|
10459
11420
|
"text": "string"
|
|
10460
11421
|
},
|
|
10461
|
-
"default": "'Zoom
|
|
10462
|
-
"description": "What the control that zooms
|
|
10463
|
-
"attribute": "zoom-
|
|
11422
|
+
"default": "'Zoom in'",
|
|
11423
|
+
"description": "What the control that zooms in is called.",
|
|
11424
|
+
"attribute": "zoom-in-label"
|
|
10464
11425
|
},
|
|
10465
11426
|
{
|
|
10466
11427
|
"kind": "field",
|
|
@@ -10498,12 +11459,22 @@
|
|
|
10498
11459
|
},
|
|
10499
11460
|
{
|
|
10500
11461
|
"kind": "field",
|
|
10501
|
-
"name": "
|
|
11462
|
+
"name": "zoomOutLabel",
|
|
11463
|
+
"type": {
|
|
11464
|
+
"text": "string"
|
|
11465
|
+
},
|
|
11466
|
+
"default": "'Zoom out'",
|
|
11467
|
+
"description": "What the control that zooms out is called.",
|
|
11468
|
+
"attribute": "zoom-out-label"
|
|
11469
|
+
},
|
|
11470
|
+
{
|
|
11471
|
+
"kind": "field",
|
|
11472
|
+
"name": "restingControlsLabel",
|
|
10502
11473
|
"type": {
|
|
10503
11474
|
"text": "string"
|
|
10504
11475
|
},
|
|
10505
11476
|
"privacy": "protected",
|
|
10506
|
-
"description": "What the group of controls is called
|
|
11477
|
+
"description": "What the group of controls is called where the page does not say.\n\nA getter a family overrides rather than a default on the property, the\nway `restingControls` is: a default would reflect nothing and still be\none value for every family composing this.",
|
|
10507
11478
|
"readonly": true
|
|
10508
11479
|
},
|
|
10509
11480
|
{
|
|
@@ -10517,13 +11488,13 @@
|
|
|
10517
11488
|
},
|
|
10518
11489
|
"parameters": [
|
|
10519
11490
|
{
|
|
10520
|
-
"name": "
|
|
11491
|
+
"name": "_detail",
|
|
10521
11492
|
"type": {
|
|
10522
11493
|
"text": "ViewportPanDetail"
|
|
10523
11494
|
}
|
|
10524
11495
|
}
|
|
10525
11496
|
],
|
|
10526
|
-
"description": "The pan event,
|
|
11497
|
+
"description": "The pan event, which the family names and this one does not.\n\n**No default, and the analyzer is why as much as the taste is.** A mixin\nthat built a `helix-map-pan` would put it in the manifest of every family\nthat composed the surface, since a mixin's code is resolved into its\nusers: a canvas would be documented as dispatching a map's event, and a\nconsumer reading the reference page would believe it. So the surface\ncarries no event name at all, and a family that forgets to name one hears\nabout it the first time a reader presses an arrow."
|
|
10527
11498
|
},
|
|
10528
11499
|
{
|
|
10529
11500
|
"kind": "method",
|
|
@@ -10536,13 +11507,13 @@
|
|
|
10536
11507
|
},
|
|
10537
11508
|
"parameters": [
|
|
10538
11509
|
{
|
|
10539
|
-
"name": "
|
|
11510
|
+
"name": "_detail",
|
|
10540
11511
|
"type": {
|
|
10541
11512
|
"text": "ViewportZoomDetail"
|
|
10542
11513
|
}
|
|
10543
11514
|
}
|
|
10544
11515
|
],
|
|
10545
|
-
"description": "The zoom event,
|
|
11516
|
+
"description": "The zoom event, which the family names, for the same reason."
|
|
10546
11517
|
},
|
|
10547
11518
|
{
|
|
10548
11519
|
"kind": "method",
|
|
@@ -10590,6 +11561,16 @@
|
|
|
10590
11561
|
},
|
|
10591
11562
|
"description": "Fills the screen with the surface, or comes back."
|
|
10592
11563
|
},
|
|
11564
|
+
{
|
|
11565
|
+
"kind": "field",
|
|
11566
|
+
"name": "restingControls",
|
|
11567
|
+
"type": {
|
|
11568
|
+
"text": "string"
|
|
11569
|
+
},
|
|
11570
|
+
"privacy": "protected",
|
|
11571
|
+
"description": "Which controls the surface draws while `controls` is absent.\n\nAll three here, and a family overrides it where its reader has a better\nway to do one of them already.",
|
|
11572
|
+
"readonly": true
|
|
11573
|
+
},
|
|
10593
11574
|
{
|
|
10594
11575
|
"kind": "method",
|
|
10595
11576
|
"name": "draws",
|
|
@@ -10609,6 +11590,35 @@
|
|
|
10609
11590
|
],
|
|
10610
11591
|
"description": "Whether a named group of controls is one this surface draws."
|
|
10611
11592
|
},
|
|
11593
|
+
{
|
|
11594
|
+
"kind": "method",
|
|
11595
|
+
"name": "sideOf",
|
|
11596
|
+
"privacy": "private",
|
|
11597
|
+
"return": {
|
|
11598
|
+
"type": {
|
|
11599
|
+
"text": "string"
|
|
11600
|
+
}
|
|
11601
|
+
},
|
|
11602
|
+
"parameters": [
|
|
11603
|
+
{
|
|
11604
|
+
"name": "way",
|
|
11605
|
+
"type": {
|
|
11606
|
+
"text": "ViewportWay"
|
|
11607
|
+
}
|
|
11608
|
+
}
|
|
11609
|
+
],
|
|
11610
|
+
"description": "The side of the screen a reading-order way is on, left or right.\n\n**Start is left only where the text runs that way.** The pad's grid is\nlaid out in reading order, so on a right-to-left page the start button\nsits on the right, and it said \"left\" and pointed left from there."
|
|
11611
|
+
},
|
|
11612
|
+
{
|
|
11613
|
+
"kind": "field",
|
|
11614
|
+
"name": "rightToLeft",
|
|
11615
|
+
"type": {
|
|
11616
|
+
"text": "boolean"
|
|
11617
|
+
},
|
|
11618
|
+
"privacy": "private",
|
|
11619
|
+
"description": "Whether the page runs right to left, as far as this render may say.\n\n**Not while hydrating.** A server cannot measure direction, so it drew\nthe left-to-right pad; Lit hydrates by keeping what the server drew and\nrecording the client's value unwritten, so a right-to-left answer in the\nhydrating render would never reach the page. It answers once hydration\nis over, and `firstUpdated` asks for that render.",
|
|
11620
|
+
"readonly": true
|
|
11621
|
+
},
|
|
10612
11622
|
{
|
|
10613
11623
|
"kind": "method",
|
|
10614
11624
|
"name": "named",
|
|
@@ -10628,6 +11638,25 @@
|
|
|
10628
11638
|
],
|
|
10629
11639
|
"description": "What one pan control is called, with the way it goes filled in.\n\nLeft and right rather than start and end, because the label is read aloud\nand a reader knows which way left is. The event keeps the reading-order\nname, which is the one a right-to-left page needs."
|
|
10630
11640
|
},
|
|
11641
|
+
{
|
|
11642
|
+
"kind": "method",
|
|
11643
|
+
"name": "glyph",
|
|
11644
|
+
"privacy": "private",
|
|
11645
|
+
"return": {
|
|
11646
|
+
"type": {
|
|
11647
|
+
"text": "string"
|
|
11648
|
+
}
|
|
11649
|
+
},
|
|
11650
|
+
"parameters": [
|
|
11651
|
+
{
|
|
11652
|
+
"name": "way",
|
|
11653
|
+
"type": {
|
|
11654
|
+
"text": "ViewportWay"
|
|
11655
|
+
}
|
|
11656
|
+
}
|
|
11657
|
+
],
|
|
11658
|
+
"description": "The arrow drawn on a pan control, pointing the way it goes on screen."
|
|
11659
|
+
},
|
|
10631
11660
|
{
|
|
10632
11661
|
"kind": "field",
|
|
10633
11662
|
"name": "handleKeydown",
|
|
@@ -10635,6 +11664,16 @@
|
|
|
10635
11664
|
"readonly": true,
|
|
10636
11665
|
"description": "The arrow keys, which are the second way rather than the only one.\n\n`inlineStep` rather than a test against `ArrowLeft`, so the reader on a\nright-to-left page moves the way their text runs, which is what the pan\ncontrols say too.\n\n**Only from the surface's own frame, and that is the difference between\none move and two.** What a consumer slots may answer the arrow keys\nitself, and a press relayed from inside it moves their view once on its\nown and once more on the event this would send. The rule is the region\nand the controls rather than the whole shadow root, because a family with\nits own focusable content in there, a list of notes beside a canvas,\nwould otherwise pan the surface out from under a reader arrowing through\nit."
|
|
10637
11666
|
},
|
|
11667
|
+
{
|
|
11668
|
+
"kind": "field",
|
|
11669
|
+
"name": "controlsElement",
|
|
11670
|
+
"type": {
|
|
11671
|
+
"text": "Element | null"
|
|
11672
|
+
},
|
|
11673
|
+
"privacy": "protected",
|
|
11674
|
+
"description": "The group of controls as drawn, or nothing where none are.\n\n**Here, because this is what renders it.** A family that measures the\ncluster, as a board does to keep its fit clear of the buttons, would\notherwise look up a part its own template never writes, and a lookup\nlike that is one a later edit to this template breaks without a word.",
|
|
11675
|
+
"readonly": true
|
|
11676
|
+
},
|
|
10638
11677
|
{
|
|
10639
11678
|
"kind": "method",
|
|
10640
11679
|
"name": "renderControls",
|
|
@@ -10653,9 +11692,17 @@
|
|
|
10653
11692
|
"type": {
|
|
10654
11693
|
"text": "string | undefined"
|
|
10655
11694
|
},
|
|
10656
|
-
"description": "Which of the controls this surface draws, as a list of what to keep.\n\n**A list rather than a switch, because the overlap is not symmetric.** A\nsurface a consumer brings often has zoom controls of its own and almost\nnever has pan buttons, so a single switch would make them choose between\na duplicate and nothing.\n\n`none` draws none of them, which is the right answer where what was\nslotted already has controls a reader can find: what this argues for is\nthat *a* findable control exists, never that it is ours. The methods stay\npublic either way, so a consumer drawing their own chrome can still drive\nthe surface.\n\nAbsent is
|
|
11695
|
+
"description": "Which of the controls this surface draws, as a list of what to keep.\n\n**A list rather than a switch, because the overlap is not symmetric.** A\nsurface a consumer brings often has zoom controls of its own and almost\nnever has pan buttons, so a single switch would make them choose between\na duplicate and nothing.\n\n`none` draws none of them, which is the right answer where what was\nslotted already has controls a reader can find: what this argues for is\nthat *a* findable control exists, never that it is ours. The methods stay\npublic either way, so a consumer drawing their own chrome can still drive\nthe surface.\n\nAbsent is whatever the family rests at, which is this library's rule that\na resting value is an attribute's absence: all three for a map, whose\nreader may have no other way to move it, and zoom and fullscreen for a\nboard, which a reader drags and whose pad took a third of the frame. The\nstylesheet lays the cluster out by which buttons are in it rather than by\nthis attribute, so the two defaults need no rule each.",
|
|
10657
11696
|
"fieldName": "controls"
|
|
10658
11697
|
},
|
|
11698
|
+
{
|
|
11699
|
+
"name": "controls-label",
|
|
11700
|
+
"type": {
|
|
11701
|
+
"text": "string | undefined"
|
|
11702
|
+
},
|
|
11703
|
+
"description": "What the group of controls is called, for a reader who meets it.\n\nAbsent is the family's own name for it, \"Map controls\" or \"Board\ncontrols\", which names what the controls drive rather than the\nmechanism. Written here to say it in another language, which every other\nstring this surface speaks already allowed and this one did not.",
|
|
11704
|
+
"fieldName": "controlsLabel"
|
|
11705
|
+
},
|
|
10659
11706
|
{
|
|
10660
11707
|
"name": "controls-placement",
|
|
10661
11708
|
"type": {
|
|
@@ -10683,13 +11730,31 @@
|
|
|
10683
11730
|
"fieldName": "idleDelay"
|
|
10684
11731
|
},
|
|
10685
11732
|
{
|
|
10686
|
-
"name": "pan-label",
|
|
11733
|
+
"name": "pan-down-label",
|
|
11734
|
+
"type": {
|
|
11735
|
+
"text": "string"
|
|
11736
|
+
},
|
|
11737
|
+
"default": "'Pan down'",
|
|
11738
|
+
"description": "What the control that pans down is called.\n\n**A label for each way rather than one with the way filled in**, which is\nwhat this was: `Pan {way}` filled in with `left`, so a page that said it\nin French read out \"Déplacer left\". The word for a direction is as much\nthe translator's as the word for panning, and a language can put it\nanywhere in the phrase.",
|
|
11739
|
+
"fieldName": "panDownLabel"
|
|
11740
|
+
},
|
|
11741
|
+
{
|
|
11742
|
+
"name": "pan-left-label",
|
|
11743
|
+
"type": {
|
|
11744
|
+
"text": "string"
|
|
11745
|
+
},
|
|
11746
|
+
"default": "'Pan left'",
|
|
11747
|
+
"description": "What the control that pans left is called, on screen.",
|
|
11748
|
+
"fieldName": "panLeftLabel"
|
|
11749
|
+
},
|
|
11750
|
+
{
|
|
11751
|
+
"name": "pan-right-label",
|
|
10687
11752
|
"type": {
|
|
10688
11753
|
"text": "string"
|
|
10689
11754
|
},
|
|
10690
|
-
"default": "'Pan
|
|
10691
|
-
"description": "What
|
|
10692
|
-
"fieldName": "
|
|
11755
|
+
"default": "'Pan right'",
|
|
11756
|
+
"description": "What the control that pans right is called, on screen.",
|
|
11757
|
+
"fieldName": "panRightLabel"
|
|
10693
11758
|
},
|
|
10694
11759
|
{
|
|
10695
11760
|
"name": "pan-step",
|
|
@@ -10700,6 +11765,15 @@
|
|
|
10700
11765
|
"description": "How far one press moves the view, as a fraction of what is on screen.\n\nA fraction rather than a distance, because this surface does not know the\nscale of what is inside it: a quarter of the viewport is the same gesture\nat any zoom, and a consumer who wants their own units multiplies by them.",
|
|
10701
11766
|
"fieldName": "panStep"
|
|
10702
11767
|
},
|
|
11768
|
+
{
|
|
11769
|
+
"name": "pan-up-label",
|
|
11770
|
+
"type": {
|
|
11771
|
+
"text": "string"
|
|
11772
|
+
},
|
|
11773
|
+
"default": "'Pan up'",
|
|
11774
|
+
"description": "What the control that pans up is called.",
|
|
11775
|
+
"fieldName": "panUpLabel"
|
|
11776
|
+
},
|
|
10703
11777
|
{
|
|
10704
11778
|
"name": "zoom-in-label",
|
|
10705
11779
|
"type": {
|
|
@@ -11297,6 +12371,46 @@
|
|
|
11297
12371
|
}
|
|
11298
12372
|
]
|
|
11299
12373
|
},
|
|
12374
|
+
{
|
|
12375
|
+
"kind": "javascript-module",
|
|
12376
|
+
"path": "src/utils/fill-template/fill-template.ts",
|
|
12377
|
+
"declarations": [
|
|
12378
|
+
{
|
|
12379
|
+
"kind": "function",
|
|
12380
|
+
"name": "fillTemplate",
|
|
12381
|
+
"return": {
|
|
12382
|
+
"type": {
|
|
12383
|
+
"text": "string"
|
|
12384
|
+
}
|
|
12385
|
+
},
|
|
12386
|
+
"parameters": [
|
|
12387
|
+
{
|
|
12388
|
+
"name": "template",
|
|
12389
|
+
"type": {
|
|
12390
|
+
"text": "string"
|
|
12391
|
+
}
|
|
12392
|
+
},
|
|
12393
|
+
{
|
|
12394
|
+
"name": "values",
|
|
12395
|
+
"type": {
|
|
12396
|
+
"text": "Record<string, string | number>"
|
|
12397
|
+
}
|
|
12398
|
+
}
|
|
12399
|
+
],
|
|
12400
|
+
"description": "A label with its `{placeholders}` filled in.\n\n**The one way every translatable sentence here is written**: a property holds\nthe whole sentence, and the numbers and names go in where it says. A\nsentence built from pieces in code puts the pieces in English order, and\nanother language may want them the other way round.\n\nEvery occurrence is filled, so a sentence can name the same thing twice. A\nplaceholder with no value is left as written rather than emptied, which\nshows up on the page as the mistake it is."
|
|
12401
|
+
}
|
|
12402
|
+
],
|
|
12403
|
+
"exports": [
|
|
12404
|
+
{
|
|
12405
|
+
"kind": "js",
|
|
12406
|
+
"name": "fillTemplate",
|
|
12407
|
+
"declaration": {
|
|
12408
|
+
"name": "fillTemplate",
|
|
12409
|
+
"module": "src/utils/fill-template/fill-template.ts"
|
|
12410
|
+
}
|
|
12411
|
+
}
|
|
12412
|
+
]
|
|
12413
|
+
},
|
|
11300
12414
|
{
|
|
11301
12415
|
"kind": "javascript-module",
|
|
11302
12416
|
"path": "src/utils/focusable-elements/focusable-elements.ts",
|
|
@@ -11594,6 +12708,40 @@
|
|
|
11594
12708
|
}
|
|
11595
12709
|
]
|
|
11596
12710
|
},
|
|
12711
|
+
{
|
|
12712
|
+
"kind": "javascript-module",
|
|
12713
|
+
"path": "src/utils/key-claimed/key-claimed.ts",
|
|
12714
|
+
"declarations": [
|
|
12715
|
+
{
|
|
12716
|
+
"kind": "function",
|
|
12717
|
+
"name": "keyClaimed",
|
|
12718
|
+
"return": {
|
|
12719
|
+
"type": {
|
|
12720
|
+
"text": "boolean"
|
|
12721
|
+
}
|
|
12722
|
+
},
|
|
12723
|
+
"parameters": [
|
|
12724
|
+
{
|
|
12725
|
+
"name": "event",
|
|
12726
|
+
"type": {
|
|
12727
|
+
"text": "KeyboardEvent"
|
|
12728
|
+
}
|
|
12729
|
+
}
|
|
12730
|
+
],
|
|
12731
|
+
"description": "Whether a press was already the business of whatever it landed on.\n\n**For a container that binds keys over content it did not write**: a toolbar,\na viewer, a drilldown. Some of what they hold uses the same keys for itself,\nand moving the container regardless makes an input inside it uneditable:\nArrowRight moves somewhere else, and `preventDefault` means the caret never\nmoves at all.\n\n`composedPath()[0]` rather than `event.target`, which is retargeted to the\ncontrol's host at the shadow boundary and cannot tell a text field inside a\ncomponent from the component itself.\n\n`defaultPrevented` first, because a control that has already answered the\npress has said so in the way the platform provides, and a foreign control\nthis package has never heard of has no other way to say it."
|
|
12732
|
+
}
|
|
12733
|
+
],
|
|
12734
|
+
"exports": [
|
|
12735
|
+
{
|
|
12736
|
+
"kind": "js",
|
|
12737
|
+
"name": "keyClaimed",
|
|
12738
|
+
"declaration": {
|
|
12739
|
+
"name": "keyClaimed",
|
|
12740
|
+
"module": "src/utils/key-claimed/key-claimed.ts"
|
|
12741
|
+
}
|
|
12742
|
+
}
|
|
12743
|
+
]
|
|
12744
|
+
},
|
|
11597
12745
|
{
|
|
11598
12746
|
"kind": "javascript-module",
|
|
11599
12747
|
"path": "src/utils/line-path/line-path.ts",
|
|
@@ -11907,6 +13055,52 @@
|
|
|
11907
13055
|
}
|
|
11908
13056
|
]
|
|
11909
13057
|
},
|
|
13058
|
+
{
|
|
13059
|
+
"kind": "javascript-module",
|
|
13060
|
+
"path": "src/utils/report-values/report-values.ts",
|
|
13061
|
+
"declarations": [
|
|
13062
|
+
{
|
|
13063
|
+
"kind": "function",
|
|
13064
|
+
"name": "reportValues",
|
|
13065
|
+
"return": {
|
|
13066
|
+
"type": {
|
|
13067
|
+
"text": "void"
|
|
13068
|
+
}
|
|
13069
|
+
},
|
|
13070
|
+
"parameters": [
|
|
13071
|
+
{
|
|
13072
|
+
"name": "internals",
|
|
13073
|
+
"type": {
|
|
13074
|
+
"text": "ElementInternals"
|
|
13075
|
+
}
|
|
13076
|
+
},
|
|
13077
|
+
{
|
|
13078
|
+
"name": "name",
|
|
13079
|
+
"type": {
|
|
13080
|
+
"text": "string"
|
|
13081
|
+
}
|
|
13082
|
+
},
|
|
13083
|
+
{
|
|
13084
|
+
"name": "values",
|
|
13085
|
+
"type": {
|
|
13086
|
+
"text": "readonly string[]"
|
|
13087
|
+
}
|
|
13088
|
+
}
|
|
13089
|
+
],
|
|
13090
|
+
"description": "Reports a control's answer to its form: one entry for each value, the way a\nnative `<select multiple>` and a row of checkboxes send theirs.\n\n**Several answers are several entries, not one joined string.** A server\nreading `tags=a,b` has to know to split it on a convention this library\nchose, and one reading `tags=a&tags=b` reads it the way it reads every\nother multi-valued control on the platform. Listbox, Select and Combobox\nsent the first and Date Picker the second, so what a server received for the\nsame answer depended on which control asked for it.\n\n**The joined string is the state**, which is what the browser hands back to\n`formStateRestoreCallback` and what `value` holds, so a restored control\nreads the shape it wrote.\n\n**Nothing without a `name`.** A plain string is skipped by the form when its\ncontrol has no name, but `FormData` carries its own names and its entries\nare appended whatever the element is called, so an unnamed control would\nsubmit empty-named values."
|
|
13091
|
+
}
|
|
13092
|
+
],
|
|
13093
|
+
"exports": [
|
|
13094
|
+
{
|
|
13095
|
+
"kind": "js",
|
|
13096
|
+
"name": "reportValues",
|
|
13097
|
+
"declaration": {
|
|
13098
|
+
"name": "reportValues",
|
|
13099
|
+
"module": "src/utils/report-values/report-values.ts"
|
|
13100
|
+
}
|
|
13101
|
+
}
|
|
13102
|
+
]
|
|
13103
|
+
},
|
|
11910
13104
|
{
|
|
11911
13105
|
"kind": "javascript-module",
|
|
11912
13106
|
"path": "src/utils/request-change/request-change.ts",
|
|
@@ -12223,6 +13417,46 @@
|
|
|
12223
13417
|
}
|
|
12224
13418
|
]
|
|
12225
13419
|
},
|
|
13420
|
+
{
|
|
13421
|
+
"kind": "javascript-module",
|
|
13422
|
+
"path": "src/utils/slotted-words/slotted-words.ts",
|
|
13423
|
+
"declarations": [
|
|
13424
|
+
{
|
|
13425
|
+
"kind": "function",
|
|
13426
|
+
"name": "slottedWords",
|
|
13427
|
+
"return": {
|
|
13428
|
+
"type": {
|
|
13429
|
+
"text": "string"
|
|
13430
|
+
}
|
|
13431
|
+
},
|
|
13432
|
+
"parameters": [
|
|
13433
|
+
{
|
|
13434
|
+
"name": "host",
|
|
13435
|
+
"type": {
|
|
13436
|
+
"text": "Element"
|
|
13437
|
+
}
|
|
13438
|
+
},
|
|
13439
|
+
{
|
|
13440
|
+
"name": "slots",
|
|
13441
|
+
"type": {
|
|
13442
|
+
"text": "readonly string[]"
|
|
13443
|
+
}
|
|
13444
|
+
}
|
|
13445
|
+
],
|
|
13446
|
+
"description": "The words a host's children say in the named slots, `''` being the default\none, in the order they are written.\n\nFor a component that says what the page put in it, which is the page's own\ntext and not anything this library wrote: an empty state's heading and\nmessage, a banner's message. Text nodes count toward the default slot, as\nthey are assigned to it. Nothing on a server, whose element has no children\nto read."
|
|
13447
|
+
}
|
|
13448
|
+
],
|
|
13449
|
+
"exports": [
|
|
13450
|
+
{
|
|
13451
|
+
"kind": "js",
|
|
13452
|
+
"name": "slottedWords",
|
|
13453
|
+
"declaration": {
|
|
13454
|
+
"name": "slottedWords",
|
|
13455
|
+
"module": "src/utils/slotted-words/slotted-words.ts"
|
|
13456
|
+
}
|
|
13457
|
+
}
|
|
13458
|
+
]
|
|
13459
|
+
},
|
|
12226
13460
|
{
|
|
12227
13461
|
"kind": "javascript-module",
|
|
12228
13462
|
"path": "src/utils/split-values/split-values.ts",
|
|
@@ -12289,7 +13523,7 @@
|
|
|
12289
13523
|
}
|
|
12290
13524
|
}
|
|
12291
13525
|
],
|
|
12292
|
-
"description": "Tells a slotted trigger that it opens something, and whether it is open.\n\n**Writing `aria-expanded` onto the consumer's element is a hydration\nmismatch, so it is not written.** The gap that answer was reaching for is\nreal: a consumer who has to mirror `open` back onto their own trigger is a\nconsumer who will forget, and the failure is silent to everyone who can see\nthe screen. It is still the wrong answer, because a component decorating a\nconsumer's markup after upgrading is one whose output a React consumer's\nhydration disagrees with.\n\n**Measured 28 Aug 2026 against React 19.2.8.** Four\nfamilies were server-rendered as React emits them and hydrated with the\nelement definitions loaded either side of `hydrateRoot`:\n\n```\ncase writes to trigger hydration mismatch\nmegamenu aria-expanded yes, both load orders\nspeed dial aria-expanded yes, both load orders\npopover nothing no\nmenu nothing no\n```\n\nReact reports \"some attributes of the server rendered HTML didn't match the\nclient properties. This won't be patched up\", and the cost is not the console\nline: it answers a mismatch by discarding the server's HTML for that subtree\nand rebuilding it, which is what the carousel's own note records blinding an\n`<helix-aura>` two sections away.\n\n**A property crosses the gap that an attribute cannot.** React diffs the\nattributes it rendered and never looks at a property, so the state reaches\nthe trigger, lands as `aria-expanded` inside *that element's* shadow root,\nand the consumer's markup is exactly what they served. Both positions get\nwhat they were protecting: nothing is written onto the consumer's element,\nand the reader is still told what the control does.\n\n**Set before upgrade is safe**, which is what lets this run without waiting\nfor a definition: `ReactiveElement` captures an instance property assigned\nbefore it upgrades and re-applies it, so a trigger whose module has not\nloaded yet still ends up with the value.\n\n**A plain element is warned about rather than written to.** A\n`<button slot=\"trigger\">` has no shadow root to keep the state out of the\nmarkup and no property to take it, and a consumer cannot mirror it themselves\nbecause the open state belongs to the component. Saying so once is the same\nanswer `Tooltip` gives about the link it will not write for them."
|
|
13526
|
+
"description": "Tells a slotted trigger that it opens something, and whether it is open.\n\n**Writing `aria-expanded` onto the consumer's element is a hydration\nmismatch, so it is not written.** The gap that answer was reaching for is\nreal: a consumer who has to mirror `open` back onto their own trigger is a\nconsumer who will forget, and the failure is silent to everyone who can see\nthe screen. It is still the wrong answer, because a component decorating a\nconsumer's markup after upgrading is one whose output a React consumer's\nhydration disagrees with.\n\n**Measured 28 Aug 2026 against React 19.2.8.** Four\nfamilies were server-rendered as React emits them and hydrated with the\nelement definitions loaded either side of `hydrateRoot`:\n\n```\ncase writes to trigger hydration mismatch\nmegamenu aria-expanded yes, both load orders\nspeed dial aria-expanded yes, both load orders\npopover nothing no\nmenu nothing no\n```\n\nReact reports \"some attributes of the server rendered HTML didn't match the\nclient properties. This won't be patched up\", and the cost is not the console\nline: it answers a mismatch by discarding the server's HTML for that subtree\nand rebuilding it, which is what the carousel's own note records blinding an\n`<helix-aura>` two sections away.\n\n**A property crosses the gap that an attribute cannot.** React diffs the\nattributes it rendered and never looks at a property, so the state reaches\nthe trigger, lands as `aria-expanded` inside *that element's* shadow root,\nand the consumer's markup is exactly what they served. Both positions get\nwhat they were protecting: nothing is written onto the consumer's element,\nand the reader is still told what the control does.\n\n**Set before upgrade is safe**, which is what lets this run without waiting\nfor a definition: `ReactiveElement` captures an instance property assigned\nbefore it upgrades and re-applies it, so a trigger whose module has not\nloaded yet still ends up with the value.\n\n**A plain element is warned about rather than written to.** A\n`<button slot=\"trigger\">` has no shadow root to keep the state out of the\nmarkup and no property to take it, and a consumer cannot mirror it themselves\nbecause the open state belongs to the component. Saying so once is the same\nanswer `Tooltip` gives about the link it will not write for them, and not at\nall to a trigger that already carries `aria-expanded`, which is a consumer\nmirroring the state from the component's `toggle` event."
|
|
12293
13527
|
}
|
|
12294
13528
|
],
|
|
12295
13529
|
"exports": [
|