@optionfactory/fml 9.0.0-rc3 → 9.0.0-rc31
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/README.md +16 -88
- package/dist/client-errors.iife.js +40 -49
- package/dist/client-errors.iife.js.map +1 -1
- package/dist/client-errors.iife.min.js +1 -1
- package/dist/client-errors.iife.min.js.map +1 -1
- package/dist/custom-elements.json +491 -51
- package/dist/fml.css +25 -20
- package/dist/fml.css.map +1 -1
- package/dist/fml.iife.js +5866 -2563
- package/dist/fml.iife.js.map +1 -1
- package/dist/fml.iife.min.js +1 -1
- package/dist/fml.iife.min.js.map +1 -1
- package/dist/ftl.d.mts +425 -231
- package/dist/ftl.iife.js +774 -1044
- package/dist/ftl.iife.js.map +1 -1
- package/dist/ftl.iife.min.js +1 -1
- package/dist/ftl.iife.min.js.map +1 -1
- package/dist/ftl.min.mjs +1 -1
- package/dist/ftl.min.mjs.map +1 -1
- package/dist/ftl.mjs +774 -1044
- package/dist/ftl.mjs.map +1 -1
- package/dist/ful.css +25 -20
- package/dist/ful.css.map +1 -1
- package/dist/ful.d.mts +3048 -556
- package/dist/ful.iife.js +4977 -1395
- package/dist/ful.iife.js.map +1 -1
- package/dist/ful.iife.min.js +1 -1
- package/dist/ful.iife.min.js.map +1 -1
- package/dist/ful.min.mjs +1 -1
- package/dist/ful.min.mjs.map +1 -1
- package/dist/ful.mjs +4975 -1396
- package/dist/ful.mjs.map +1 -1
- package/dist/httpc.d.mts +143 -123
- package/dist/httpc.iife.js +163 -175
- package/dist/httpc.iife.js.map +1 -1
- package/dist/httpc.iife.min.js +1 -1
- package/dist/httpc.iife.min.js.map +1 -1
- package/dist/httpc.min.mjs +1 -1
- package/dist/httpc.min.mjs.map +1 -1
- package/dist/httpc.mjs +163 -175
- package/dist/httpc.mjs.map +1 -1
- package/dist/vscode.html-custom-data.json +239 -39
- package/dist/web-types.json +498 -51
- package/package.json +2 -2
package/dist/web-types.json
CHANGED
|
@@ -1,22 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@optionfactory/fml",
|
|
4
|
-
"version": "9.0.0-
|
|
4
|
+
"version": "9.0.0-rc31",
|
|
5
5
|
"description-markup": "none",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
8
8
|
"elements": [
|
|
9
9
|
{
|
|
10
10
|
"name": "ful-tooltip",
|
|
11
|
-
"description": "An info affordance: a themed icon button toggling a small popover with a short explanation, opened by click and by keyboard like a button, dismissed by Escape or an outside click. placement picks the side the note sits on:
|
|
11
|
+
"description": "An info affordance: a themed icon button toggling a small popover with a short explanation, opened by click and by keyboard like a button, dismissed by Escape or an outside click. placement picks the side the note sits on: top (default), bottom, left or right.",
|
|
12
12
|
"attributes": [
|
|
13
13
|
{
|
|
14
14
|
"name": "placement",
|
|
15
|
-
"description": "Which side of the trigger the note opens on:
|
|
15
|
+
"description": "Which side of the trigger the note opens on: top (the default), bottom, left or right. Above by default because a note opening downwards covers the control the marker explains. The library places the note itself on every platform, so the side is the same everywhere.",
|
|
16
16
|
"value": {
|
|
17
17
|
"kind": "plain",
|
|
18
18
|
"type": "string"
|
|
19
19
|
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "icon",
|
|
23
|
+
"description": "The ful-icon the marker shows, for a tooltip meaning something other than plain information. Defaults to the page's Tooltip.config.icon; a name the library does not paint is declared by the page as ful-icon[name='...'] { mask-image: ... }.",
|
|
24
|
+
"value": {
|
|
25
|
+
"kind": "plain",
|
|
26
|
+
"type": "string"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"name": "describes",
|
|
31
|
+
"description": "For a tooltip standing in a field: the note joins the accessible description of that field's control, announced on reaching the field rather than only on opening the marker, and the marker leaves the tab order so a form of hinted fields costs no extra keystrokes to walk. The marker stays clickable, and keeps its tab stop wherever nothing took the note.",
|
|
32
|
+
"value": {
|
|
33
|
+
"kind": "plain",
|
|
34
|
+
"type": "boolean"
|
|
35
|
+
}
|
|
20
36
|
}
|
|
21
37
|
],
|
|
22
38
|
"slots": [
|
|
@@ -29,7 +45,7 @@
|
|
|
29
45
|
},
|
|
30
46
|
{
|
|
31
47
|
"name": "ful-dialog",
|
|
32
|
-
"description": "A modal dialog on the native platform: header, body and buttons, the header attribute naming its heading, opened by any element carrying dialog-target set to its id, or programmatically through open()/ask(), which
|
|
48
|
+
"description": "A modal dialog on the native platform: header, body and buttons, the header attribute naming its heading, opened by any element carrying dialog-target set to its id, or programmatically through open()/ask(), which answer with how the dialog ended, or through update(callback), which opens it on a loading state and then shows either what the callback delivered or the problems of a rejection. dismiss(reason) dismisses it as the close button would, refusable and guarded alike, answering whether it closed. Longer explanations belong here, shorter ones in ful-tooltip. Dialog.ask(header, body, buttons) and Dialog.confirm(header, body, labels) ask a question in a transient one, building, showing, answering and removing the element themselves; a confirm's cancel, close and Escape all answer the negative.",
|
|
33
49
|
"attributes": [
|
|
34
50
|
{
|
|
35
51
|
"name": "header",
|
|
@@ -38,35 +54,67 @@
|
|
|
38
54
|
"kind": "plain",
|
|
39
55
|
"type": "string"
|
|
40
56
|
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"name": "requires-answer",
|
|
60
|
+
"description": "For the dialog that must be answered: the close button is not rendered and Escape is refused, so the only way out is a button carrying a result. Both, since a close button withheld while Escape still worked would be decoration rather than a rule.",
|
|
61
|
+
"value": {
|
|
62
|
+
"kind": "plain",
|
|
63
|
+
"type": "boolean"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "close-on-submit",
|
|
68
|
+
"description": "For the dialog whose answer is a form succeeding rather than a button being pressed: its own form submitting successfully closes it and answers with the response. Opt in, and its own form only, a ful-form the body holds directly, since a ful-table wraps its filters in a form of its own and searching one is not the dialog being answered. Such a dialog renders no acknowledge button of its own, the form's submit being its answer.",
|
|
69
|
+
"value": {
|
|
70
|
+
"kind": "plain",
|
|
71
|
+
"type": "boolean"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"name": "guard-dismiss",
|
|
76
|
+
"description": "For the dialog holding a form the user edits: a dismissal nobody refused, while a ful-form of the dialog under track-changes holds edits not saved yet, first asks the user through Dialog.confirm whether to close and drop them, with the localized dialog.discard texts. Gestures and dismiss() are asked about; close(), a data-result button, close-on-submit and update() are answers or the page deciding, and ask nothing. A second Escape with no interaction in between closes it whatever the user would answer.",
|
|
77
|
+
"value": {
|
|
78
|
+
"kind": "plain",
|
|
79
|
+
"type": "boolean"
|
|
80
|
+
}
|
|
41
81
|
}
|
|
42
82
|
],
|
|
43
83
|
"slots": [
|
|
84
|
+
{
|
|
85
|
+
"name": "header",
|
|
86
|
+
"description": "Content beside the title and before it: an icon, a badge, a status. It sits outside the heading rather than in it, the header attribute setting the heading through text."
|
|
87
|
+
},
|
|
44
88
|
{
|
|
45
89
|
"name": "default",
|
|
46
90
|
"description": "The dialog body."
|
|
47
91
|
},
|
|
48
92
|
{
|
|
49
93
|
"name": "buttons",
|
|
50
|
-
"description": "Buttons closing the dialog; each carries a data-result that
|
|
94
|
+
"description": "Buttons closing the dialog; each carries a data-result that the answer carries back. Without this slot a localized acknowledge button is shown. A dialog closing on its form renders none either way, so the slot is for buttons beside the form, not for suppressing one."
|
|
51
95
|
}
|
|
52
96
|
],
|
|
53
97
|
"events": [
|
|
54
98
|
{
|
|
55
99
|
"name": "close",
|
|
56
|
-
"description": "Fired when the dialog closes, carrying the data-result of the button that closed it,
|
|
100
|
+
"description": "Fired when the dialog closes, carrying how it ended: dismissed tells a cancel from an answer, result the data-result of the button that closed it, response what a submit answered with. ask() and open() resolve with the same object, and a dialog leaving the document while open answers its waiters with a dismissal."
|
|
57
101
|
},
|
|
58
102
|
{
|
|
59
103
|
"name": "section:requested",
|
|
60
104
|
"description": "Fired by the disclosure when it opens (bubbling): answer through AsyncEvents.asyncOn with the body's delivery; the open awaits the answers under the loading chrome, and a failed delivery paints the body's problems."
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"name": "dialog:dismiss",
|
|
108
|
+
"description": "Fired before the close button, Escape, a backdrop click or dismiss(reason) closes the dialog, with detail.reason (button, escape, backdrop or the one dismiss() was given): cancelable, so preventDefault() keeps it open. Not fired for a data-result button, close-on-submit or close(). A second Escape with no interaction in between closes the dialog whatever the page does, and its dialog:dismiss is then not cancelable."
|
|
61
109
|
}
|
|
62
110
|
]
|
|
63
111
|
},
|
|
64
112
|
{
|
|
65
113
|
"name": "ful-drawer",
|
|
66
|
-
"description": "A side panel drawer on the native dialog platform: a header with its title (the
|
|
114
|
+
"description": "A side panel drawer on the native dialog platform: a header with its title (the header attribute, or update()'s own) and close button, and a body that shows the slotted content or, under update(header, callback), opens in a loading state and then shows either the content the callback delivered or the error a rejecting callback carries. placement picks the side, end by default, start its mirror. open()/ask() answer with how the drawer ended, as a ful-dialog's do, an ask() on a drawer update() opened waiting for that opening's ending; dismiss(reason) dismisses it as the close button would, refusable and guarded alike, answering whether it closed. Any element carrying dialog-target set to its id opens it too.",
|
|
67
115
|
"attributes": [
|
|
68
116
|
{
|
|
69
|
-
"name": "
|
|
117
|
+
"name": "header",
|
|
70
118
|
"description": "The drawer's title, shown in its header. Text only, and also what update() re-titles the panel with.",
|
|
71
119
|
"value": {
|
|
72
120
|
"kind": "plain",
|
|
@@ -80,6 +128,22 @@
|
|
|
80
128
|
"kind": "plain",
|
|
81
129
|
"type": "string"
|
|
82
130
|
}
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"name": "close-on-submit",
|
|
134
|
+
"description": "For the drawer whose ending is a form succeeding rather than its close button being pressed: the form its content holds directly submitting successfully closes it, the close event carrying the response. Opt in, and its own form only, since a ful-table wraps its filters in a form of its own and searching one is not the drawer finishing.",
|
|
135
|
+
"value": {
|
|
136
|
+
"kind": "plain",
|
|
137
|
+
"type": "boolean"
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"name": "guard-dismiss",
|
|
142
|
+
"description": "For the drawer holding a form the user edits: a dismissal nobody refused, while a ful-form of the drawer under track-changes holds edits not saved yet, first asks the user through Dialog.confirm whether to close and drop them, with the localized dialog.discard texts. Gestures and dismiss() are asked about; close(), a data-result button, close-on-submit and update() are answers or the page deciding, and ask nothing. A second Escape with no interaction in between closes it whatever the user would answer.",
|
|
143
|
+
"value": {
|
|
144
|
+
"kind": "plain",
|
|
145
|
+
"type": "boolean"
|
|
146
|
+
}
|
|
83
147
|
}
|
|
84
148
|
],
|
|
85
149
|
"slots": [
|
|
@@ -95,17 +159,37 @@
|
|
|
95
159
|
"events": [
|
|
96
160
|
{
|
|
97
161
|
"name": "close",
|
|
98
|
-
"description": "Fired when the drawer closes,
|
|
162
|
+
"description": "Fired when the drawer closes, carrying how it ended, the same object a ful-dialog answers with: dismissed tells the close button and Escape from an answer, result the data-result of the button, or the argument of close(result), that closed it, and response what a submit answered with under close-on-submit, a save answering with no body at all being a save all the same. ask() and open() resolve with the same object, and a drawer leaving the document while open answers its waiters with a dismissal."
|
|
99
163
|
},
|
|
100
164
|
{
|
|
101
165
|
"name": "section:requested",
|
|
102
166
|
"description": "Fired by the disclosure when it opens (bubbling): answer through AsyncEvents.asyncOn with the body's delivery; the open awaits the answers under the loading chrome, and a failed delivery paints the body's problems."
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"name": "drawer:dismiss",
|
|
170
|
+
"description": "Fired before the close button, Escape, a backdrop click or dismiss(reason) closes the drawer, with detail.reason (button, escape, backdrop or the one dismiss() was given): cancelable, so preventDefault() keeps it open. Not fired for a data-result button, close-on-submit or close(). A second Escape with no interaction in between closes the drawer at once, and its drawer:dismiss is then not cancelable."
|
|
103
171
|
}
|
|
104
172
|
]
|
|
105
173
|
},
|
|
174
|
+
{
|
|
175
|
+
"name": "ful-menu",
|
|
176
|
+
"description": "A menu of commands on the native popover platform: the invoker named by for toggles it, or, without for, one menu serves many invokers and showFor(invoker) opens it beside the one it is for. Light dismiss and Escape come from the browser, and the element adds the menu semantics and the keyboard protocol (roving focus with the arrows, Home and End, type-ahead, Enter and Space to activate, Escape and every close handing the focus back to the invoker). The items are the buttons and links written inside it, kept as they are and given their menuitem role; activation is the item's own click, which the menu only follows by closing.",
|
|
177
|
+
"attributes": [
|
|
178
|
+
{
|
|
179
|
+
"name": "for",
|
|
180
|
+
"description": "The id of the invoker the menu belongs to: it toggles the menu, carries aria-haspopup and aria-expanded, and takes the focus back when the menu closes. Read once at the upgrade, so the invoker must already be in the page by then. Without it the menu is shared, opened by showFor(invoker).",
|
|
181
|
+
"value": {
|
|
182
|
+
"kind": "plain",
|
|
183
|
+
"type": "string"
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
],
|
|
187
|
+
"slots": [],
|
|
188
|
+
"events": []
|
|
189
|
+
},
|
|
106
190
|
{
|
|
107
191
|
"name": "ful-toasts",
|
|
108
|
-
"description": "A transient feedback region, one per page: each show() (or a show-toast document event carrying the same detail) appends a toast that dismisses itself after its timeout, the element's timeout attribute or five seconds by default, and carries its own dismiss button. severity picks the theme and the announcement, info by default, success, warning and error, the error one announced as an alert; a Failure message shows its problems' reasons.",
|
|
192
|
+
"description": "A transient feedback region, one per page: each show() (or a show-toast document event carrying the same detail) appends a toast that dismisses itself after its timeout, the element's timeout attribute or five seconds by default, and carries its own dismiss button. severity picks the theme and the announcement, info by default, success, warning and error, the error one announced as an alert; a Failure message shows its problems' reasons. The timer holds while the toast is hovered or holds the focus, and action: { label, onClick } renders a button beside the message whose click answers and retires the toast, the same option travelling in the event detail.",
|
|
109
193
|
"attributes": [
|
|
110
194
|
{
|
|
111
195
|
"name": "timeout",
|
|
@@ -125,7 +209,7 @@
|
|
|
125
209
|
"attributes": [
|
|
126
210
|
{
|
|
127
211
|
"name": "active",
|
|
128
|
-
"description": "The index of the visible panel, zero based, reflected as the active attribute. Clicks, the arrow keys and the property all move it, each move answering with a change event.",
|
|
212
|
+
"description": "The index of the visible panel, zero based, reflected as the active attribute. Clicks, the arrow keys and the property all move it, each move answering with a tabs:change event.",
|
|
129
213
|
"value": {
|
|
130
214
|
"kind": "plain",
|
|
131
215
|
"type": "number"
|
|
@@ -144,8 +228,8 @@
|
|
|
144
228
|
],
|
|
145
229
|
"events": [
|
|
146
230
|
{
|
|
147
|
-
"name": "change",
|
|
148
|
-
"description": "Fired with the active index and the previous one whenever the visible panel moves."
|
|
231
|
+
"name": "tabs:change",
|
|
232
|
+
"description": "Fired with the active index and the previous one whenever the visible panel moves. A name of its own rather than the fields' change: the panels are the host's children, so every native change of a field inside them bubbles through the host under that name."
|
|
149
233
|
},
|
|
150
234
|
{
|
|
151
235
|
"name": "section:requested",
|
|
@@ -176,7 +260,7 @@
|
|
|
176
260
|
},
|
|
177
261
|
{
|
|
178
262
|
"name": "ful-wizard",
|
|
179
|
-
"description": "A wizard: a progress of steps over one-of-N sections. The steps are declared as step elements in the steps slot, the sections as the slotless children, paired in order; each section may carry a data-step name, which is what move() answers to, next() and prev() walk the neighbors, and the current step is the aria-current=step claim carried in lockstep by the step and its section, so the chrome, including which section is shown, follows the claim alone. Each move answers with a change event.",
|
|
263
|
+
"description": "A wizard: a progress of steps over one-of-N sections. The steps are declared as step elements in the steps slot, the sections as the slotless children, paired in order; each section may carry a data-step name, which is what move() answers to, next() and prev() walk the neighbors, and the current step is the aria-current=step claim carried in lockstep by the step and its section, so the chrome, including which section is shown, follows the claim alone. Each move answers with a wizard:change event.",
|
|
180
264
|
"attributes": [
|
|
181
265
|
{
|
|
182
266
|
"name": "progress",
|
|
@@ -199,8 +283,8 @@
|
|
|
199
283
|
],
|
|
200
284
|
"events": [
|
|
201
285
|
{
|
|
202
|
-
"name": "change",
|
|
203
|
-
"description": "Fired with the index and the data-step name after next(), prev() or move() land on a different step."
|
|
286
|
+
"name": "wizard:change",
|
|
287
|
+
"description": "Fired with the index and the data-step name after next(), prev() or move() land on a different step. Named apart from change so the bubbling change of a field inside a step never reaches its listeners."
|
|
204
288
|
},
|
|
205
289
|
{
|
|
206
290
|
"name": "section:requested",
|
|
@@ -275,6 +359,22 @@
|
|
|
275
359
|
"kind": "plain",
|
|
276
360
|
"type": "string"
|
|
277
361
|
}
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
"name": "track-changes",
|
|
365
|
+
"description": "Keeps track of the edits not saved yet: dirty answers whether a field the user edited since the last commit holds another value, the host matches :state(dirty) and the submit buttons carry a dot while it does. A successful submit commits, and so does the form once its fields have rendered; commit() is for a save of the page's own, and save() submits only while there is something to save, answering whether nothing unsaved is left. A ful-drawer or ful-dialog under guard-dismiss asks before a dismissal drops the edits.",
|
|
366
|
+
"value": {
|
|
367
|
+
"kind": "plain",
|
|
368
|
+
"type": "boolean"
|
|
369
|
+
}
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
"name": "guard-leave",
|
|
373
|
+
"description": "Asks before the page is left while the form holds edits not saved yet, through the browser's own prompt. Implies track-changes.",
|
|
374
|
+
"value": {
|
|
375
|
+
"kind": "plain",
|
|
376
|
+
"type": "boolean"
|
|
377
|
+
}
|
|
278
378
|
}
|
|
279
379
|
],
|
|
280
380
|
"slots": [],
|
|
@@ -285,15 +385,19 @@
|
|
|
285
385
|
},
|
|
286
386
|
{
|
|
287
387
|
"name": "submit:requested",
|
|
288
|
-
"description": "Fired after the submit was accepted, to let a listener resolve the response itself."
|
|
388
|
+
"description": "Fired after the submit was accepted, to let a listener resolve the response itself. Register it through AsyncEvents.asyncOn: the form awaits only such a listener, and one added with addEventListener is not waited for."
|
|
289
389
|
},
|
|
290
390
|
{
|
|
291
391
|
"name": "submit:success",
|
|
292
|
-
"description": "Fired with the submitted values and the mapped response."
|
|
392
|
+
"description": "Fired with the submitted values and the mapped response, once the form has settled: the spinner is released, the buttons are no longer held off and a listener may submit again."
|
|
293
393
|
},
|
|
294
394
|
{
|
|
295
395
|
"name": "submit:failure",
|
|
296
|
-
"description": "Fired with the exception when the submit fails. The form does not rethrow."
|
|
396
|
+
"description": "Fired with the exception when the submit fails, once the form has settled: the spinner is released and the problems of a Failure are already shown, so a listener writing errors has the last word. The form does not rethrow: submit() resolves false, as it resolves true after submit:success."
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"name": "dirty:change",
|
|
400
|
+
"description": "Fired under track-changes when the form starts or stops holding edits not saved yet, with dirty in the detail."
|
|
297
401
|
}
|
|
298
402
|
]
|
|
299
403
|
},
|
|
@@ -361,11 +465,11 @@
|
|
|
361
465
|
},
|
|
362
466
|
{
|
|
363
467
|
"name": "ful-input",
|
|
364
|
-
"description": "A labelled text input. Use type to pick any native input type, or textarea; keep names the characters that survive a keystroke and reject the ones that do not, the caret staying among the survivors, and the uppercase and trim claims shape the value before it is read; v-type=number decodes the value to a number, blank staying null and a value that does not decode kept as it is, an undeclared type defaulting to number. Disabled follows native semantics: the attribute is the field's own claim, honored together with a disabled fieldset ancestry through :disabled, while the property reflects the claim only.",
|
|
468
|
+
"description": "A labelled text input. Use type to pick any native input type, the keypad types numeric and decimal, or textarea; keep names the characters that survive a keystroke and reject the ones that do not, the caret staying among the survivors, and the uppercase and trim claims shape the value before it is read; v-type=number decodes the value to a number, blank staying null and a value that does not decode kept as it is, an undeclared type defaulting to number. Disabled follows native semantics: the attribute is the field's own claim, honored together with a disabled fieldset ancestry through :disabled, while the property reflects the claim only.",
|
|
365
469
|
"attributes": [
|
|
366
470
|
{
|
|
367
471
|
"name": "type",
|
|
368
|
-
"description": "Any native input type,
|
|
472
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
369
473
|
"value": {
|
|
370
474
|
"kind": "plain",
|
|
371
475
|
"type": "string"
|
|
@@ -381,7 +485,7 @@
|
|
|
381
485
|
},
|
|
382
486
|
{
|
|
383
487
|
"name": "keep",
|
|
384
|
-
"description": "A regular expression naming the
|
|
488
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
385
489
|
"value": {
|
|
386
490
|
"kind": "plain",
|
|
387
491
|
"type": "string"
|
|
@@ -411,6 +515,14 @@
|
|
|
411
515
|
"type": "boolean"
|
|
412
516
|
}
|
|
413
517
|
},
|
|
518
|
+
{
|
|
519
|
+
"name": "unsigned",
|
|
520
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
521
|
+
"value": {
|
|
522
|
+
"kind": "plain",
|
|
523
|
+
"type": "boolean"
|
|
524
|
+
}
|
|
525
|
+
},
|
|
414
526
|
{
|
|
415
527
|
"name": "autocomplete",
|
|
416
528
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -487,11 +599,11 @@
|
|
|
487
599
|
},
|
|
488
600
|
{
|
|
489
601
|
"name": "ful-input-file",
|
|
490
|
-
"description": "A file input with an optional dropzone and a list of the selected files, enforcing the size and count limits it declares; the
|
|
602
|
+
"description": "A file input with an optional dropzone and a list of the selected files, enforcing the size and count limits it declares; the no-input claim takes the picker control out of sight, the dropzone and the item list carrying the field alone. Disabled follows native semantics: the attribute is the field's own claim, honored together with a disabled fieldset ancestry through :disabled, while the property reflects the claim only.",
|
|
491
603
|
"attributes": [
|
|
492
604
|
{
|
|
493
605
|
"name": "type",
|
|
494
|
-
"description": "Any native input type,
|
|
606
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
495
607
|
"value": {
|
|
496
608
|
"kind": "plain",
|
|
497
609
|
"type": "string"
|
|
@@ -507,7 +619,7 @@
|
|
|
507
619
|
},
|
|
508
620
|
{
|
|
509
621
|
"name": "keep",
|
|
510
|
-
"description": "A regular expression naming the
|
|
622
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
511
623
|
"value": {
|
|
512
624
|
"kind": "plain",
|
|
513
625
|
"type": "string"
|
|
@@ -537,6 +649,14 @@
|
|
|
537
649
|
"type": "boolean"
|
|
538
650
|
}
|
|
539
651
|
},
|
|
652
|
+
{
|
|
653
|
+
"name": "unsigned",
|
|
654
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
655
|
+
"value": {
|
|
656
|
+
"kind": "plain",
|
|
657
|
+
"type": "boolean"
|
|
658
|
+
}
|
|
659
|
+
},
|
|
540
660
|
{
|
|
541
661
|
"name": "autocomplete",
|
|
542
662
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -617,6 +737,14 @@
|
|
|
617
737
|
"type": "boolean"
|
|
618
738
|
}
|
|
619
739
|
},
|
|
740
|
+
{
|
|
741
|
+
"name": "no-input",
|
|
742
|
+
"description": "Takes the picker control out of sight, for a field carried by its dropzone and its item list. The control stays reachable from the keyboard, which opens the picker from it.",
|
|
743
|
+
"value": {
|
|
744
|
+
"kind": "plain",
|
|
745
|
+
"type": "boolean"
|
|
746
|
+
}
|
|
747
|
+
},
|
|
620
748
|
{
|
|
621
749
|
"name": "max-files",
|
|
622
750
|
"description": "Maximum number of files. Exceeding it clears the selection.",
|
|
@@ -725,7 +853,7 @@
|
|
|
725
853
|
"attributes": [
|
|
726
854
|
{
|
|
727
855
|
"name": "type",
|
|
728
|
-
"description": "Any native input type,
|
|
856
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
729
857
|
"value": {
|
|
730
858
|
"kind": "plain",
|
|
731
859
|
"type": "string"
|
|
@@ -741,7 +869,7 @@
|
|
|
741
869
|
},
|
|
742
870
|
{
|
|
743
871
|
"name": "keep",
|
|
744
|
-
"description": "A regular expression naming the
|
|
872
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
745
873
|
"value": {
|
|
746
874
|
"kind": "plain",
|
|
747
875
|
"type": "string"
|
|
@@ -771,6 +899,14 @@
|
|
|
771
899
|
"type": "boolean"
|
|
772
900
|
}
|
|
773
901
|
},
|
|
902
|
+
{
|
|
903
|
+
"name": "unsigned",
|
|
904
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
905
|
+
"value": {
|
|
906
|
+
"kind": "plain",
|
|
907
|
+
"type": "boolean"
|
|
908
|
+
}
|
|
909
|
+
},
|
|
774
910
|
{
|
|
775
911
|
"name": "autocomplete",
|
|
776
912
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -875,7 +1011,7 @@
|
|
|
875
1011
|
"attributes": [
|
|
876
1012
|
{
|
|
877
1013
|
"name": "type",
|
|
878
|
-
"description": "Any native input type,
|
|
1014
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
879
1015
|
"value": {
|
|
880
1016
|
"kind": "plain",
|
|
881
1017
|
"type": "string"
|
|
@@ -891,7 +1027,7 @@
|
|
|
891
1027
|
},
|
|
892
1028
|
{
|
|
893
1029
|
"name": "keep",
|
|
894
|
-
"description": "A regular expression naming the
|
|
1030
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
895
1031
|
"value": {
|
|
896
1032
|
"kind": "plain",
|
|
897
1033
|
"type": "string"
|
|
@@ -921,6 +1057,14 @@
|
|
|
921
1057
|
"type": "boolean"
|
|
922
1058
|
}
|
|
923
1059
|
},
|
|
1060
|
+
{
|
|
1061
|
+
"name": "unsigned",
|
|
1062
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
1063
|
+
"value": {
|
|
1064
|
+
"kind": "plain",
|
|
1065
|
+
"type": "boolean"
|
|
1066
|
+
}
|
|
1067
|
+
},
|
|
924
1068
|
{
|
|
925
1069
|
"name": "autocomplete",
|
|
926
1070
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -1025,7 +1169,7 @@
|
|
|
1025
1169
|
"attributes": [
|
|
1026
1170
|
{
|
|
1027
1171
|
"name": "type",
|
|
1028
|
-
"description": "Any native input type,
|
|
1172
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
1029
1173
|
"value": {
|
|
1030
1174
|
"kind": "plain",
|
|
1031
1175
|
"type": "string"
|
|
@@ -1041,7 +1185,7 @@
|
|
|
1041
1185
|
},
|
|
1042
1186
|
{
|
|
1043
1187
|
"name": "keep",
|
|
1044
|
-
"description": "A regular expression naming the
|
|
1188
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
1045
1189
|
"value": {
|
|
1046
1190
|
"kind": "plain",
|
|
1047
1191
|
"type": "string"
|
|
@@ -1071,6 +1215,14 @@
|
|
|
1071
1215
|
"type": "boolean"
|
|
1072
1216
|
}
|
|
1073
1217
|
},
|
|
1218
|
+
{
|
|
1219
|
+
"name": "unsigned",
|
|
1220
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
1221
|
+
"value": {
|
|
1222
|
+
"kind": "plain",
|
|
1223
|
+
"type": "boolean"
|
|
1224
|
+
}
|
|
1225
|
+
},
|
|
1074
1226
|
{
|
|
1075
1227
|
"name": "autocomplete",
|
|
1076
1228
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -1257,7 +1409,7 @@
|
|
|
1257
1409
|
},
|
|
1258
1410
|
{
|
|
1259
1411
|
"name": "autoload",
|
|
1260
|
-
"description": "Loads the first page while upgrading, instead of waiting for a reload(). The load is not awaited, so a slow or failing loader cannot hold up the page.",
|
|
1412
|
+
"description": "Loads the first page while upgrading, instead of waiting for a reload(). With a filters slot the load goes through the filter form's submit, so its submit listeners shape it as they shape the later loads. The load is not awaited, so a slow or failing loader cannot hold up the page.",
|
|
1261
1413
|
"value": {
|
|
1262
1414
|
"kind": "plain",
|
|
1263
1415
|
"type": "boolean"
|
|
@@ -1270,6 +1422,22 @@
|
|
|
1270
1422
|
"kind": "plain",
|
|
1271
1423
|
"type": "number"
|
|
1272
1424
|
}
|
|
1425
|
+
},
|
|
1426
|
+
{
|
|
1427
|
+
"name": "src",
|
|
1428
|
+
"description": "The url the default loader asks for rows; without it the table loads from an in-memory loader fed through withLoader. Stays live: writing it builds the loader again and reloads from the first page, keeping the sort and the filters.",
|
|
1429
|
+
"value": {
|
|
1430
|
+
"kind": "plain",
|
|
1431
|
+
"type": "string"
|
|
1432
|
+
}
|
|
1433
|
+
},
|
|
1434
|
+
{
|
|
1435
|
+
"name": "method",
|
|
1436
|
+
"description": "The http method the default loader sends, GET by default. Stays live, as src does.",
|
|
1437
|
+
"value": {
|
|
1438
|
+
"kind": "plain",
|
|
1439
|
+
"type": "string"
|
|
1440
|
+
}
|
|
1273
1441
|
}
|
|
1274
1442
|
],
|
|
1275
1443
|
"slots": [
|
|
@@ -1281,12 +1449,25 @@
|
|
|
1281
1449
|
"name": "caption",
|
|
1282
1450
|
"description": "The caption of the table."
|
|
1283
1451
|
},
|
|
1452
|
+
{
|
|
1453
|
+
"name": "empty",
|
|
1454
|
+
"description": "Shown in place of the rows when a load returns none, replacing the localized default message. Rendered per load in the rows' own scope, so its expressions read schema, pageRequest, filterRequest and pageResponse: an empty state can tell nothing-there from a filter that matched nothing."
|
|
1455
|
+
},
|
|
1284
1456
|
{
|
|
1285
1457
|
"name": "footer",
|
|
1286
1458
|
"description": "Content rendered in the table footer."
|
|
1287
1459
|
}
|
|
1288
1460
|
],
|
|
1289
|
-
"events": [
|
|
1461
|
+
"events": [
|
|
1462
|
+
{
|
|
1463
|
+
"name": "load:success",
|
|
1464
|
+
"description": "Fired once a load has settled, after the rows are in place, the elements in them have rendered and the busy state is gone, carrying the page response and the three requests that asked for it. Not fired for a load a newer one superseded, which owns nothing."
|
|
1465
|
+
},
|
|
1466
|
+
{
|
|
1467
|
+
"name": "load:failure",
|
|
1468
|
+
"description": "Fired when a load rejects, after the error row is shown, carrying the exception and the three requests. Telling this from an empty result is what the aria-busy attribute alone cannot do."
|
|
1469
|
+
}
|
|
1470
|
+
]
|
|
1290
1471
|
},
|
|
1291
1472
|
{
|
|
1292
1473
|
"name": "ful-pagination",
|
|
@@ -1360,7 +1541,7 @@
|
|
|
1360
1541
|
"attributes": [
|
|
1361
1542
|
{
|
|
1362
1543
|
"name": "type",
|
|
1363
|
-
"description": "Any native input type,
|
|
1544
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
1364
1545
|
"value": {
|
|
1365
1546
|
"kind": "plain",
|
|
1366
1547
|
"type": "string"
|
|
@@ -1376,7 +1557,7 @@
|
|
|
1376
1557
|
},
|
|
1377
1558
|
{
|
|
1378
1559
|
"name": "keep",
|
|
1379
|
-
"description": "A regular expression naming the
|
|
1560
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
1380
1561
|
"value": {
|
|
1381
1562
|
"kind": "plain",
|
|
1382
1563
|
"type": "string"
|
|
@@ -1406,6 +1587,14 @@
|
|
|
1406
1587
|
"type": "boolean"
|
|
1407
1588
|
}
|
|
1408
1589
|
},
|
|
1590
|
+
{
|
|
1591
|
+
"name": "unsigned",
|
|
1592
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
1593
|
+
"value": {
|
|
1594
|
+
"kind": "plain",
|
|
1595
|
+
"type": "boolean"
|
|
1596
|
+
}
|
|
1597
|
+
},
|
|
1409
1598
|
{
|
|
1410
1599
|
"name": "autocomplete",
|
|
1411
1600
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -1414,6 +1603,14 @@
|
|
|
1414
1603
|
"type": "string"
|
|
1415
1604
|
}
|
|
1416
1605
|
},
|
|
1606
|
+
{
|
|
1607
|
+
"name": "operator",
|
|
1608
|
+
"description": "Fixes the operator for the element's life: no menu and no button render, and every tuple carries it. The plural is the menu's whitelist; declaring both warns, the singular winning, and an unknown name warns and pins the filter's default.",
|
|
1609
|
+
"value": {
|
|
1610
|
+
"kind": "plain",
|
|
1611
|
+
"type": "string"
|
|
1612
|
+
}
|
|
1613
|
+
},
|
|
1417
1614
|
{
|
|
1418
1615
|
"name": "disabled",
|
|
1419
1616
|
"description": "The field's own disabled claim: the control is disabled and the field is left out of the submitted values, composed with a disabled fieldset ancestry. The property reflects the claim only, matches(':disabled') tells the effective state.",
|
|
@@ -1494,7 +1691,7 @@
|
|
|
1494
1691
|
"attributes": [
|
|
1495
1692
|
{
|
|
1496
1693
|
"name": "type",
|
|
1497
|
-
"description": "Any native input type,
|
|
1694
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
1498
1695
|
"value": {
|
|
1499
1696
|
"kind": "plain",
|
|
1500
1697
|
"type": "string"
|
|
@@ -1510,7 +1707,7 @@
|
|
|
1510
1707
|
},
|
|
1511
1708
|
{
|
|
1512
1709
|
"name": "keep",
|
|
1513
|
-
"description": "A regular expression naming the
|
|
1710
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
1514
1711
|
"value": {
|
|
1515
1712
|
"kind": "plain",
|
|
1516
1713
|
"type": "string"
|
|
@@ -1540,6 +1737,14 @@
|
|
|
1540
1737
|
"type": "boolean"
|
|
1541
1738
|
}
|
|
1542
1739
|
},
|
|
1740
|
+
{
|
|
1741
|
+
"name": "unsigned",
|
|
1742
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
1743
|
+
"value": {
|
|
1744
|
+
"kind": "plain",
|
|
1745
|
+
"type": "boolean"
|
|
1746
|
+
}
|
|
1747
|
+
},
|
|
1543
1748
|
{
|
|
1544
1749
|
"name": "autocomplete",
|
|
1545
1750
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -1548,6 +1753,14 @@
|
|
|
1548
1753
|
"type": "string"
|
|
1549
1754
|
}
|
|
1550
1755
|
},
|
|
1756
|
+
{
|
|
1757
|
+
"name": "operator",
|
|
1758
|
+
"description": "Fixes the operator for the element's life: no menu and no button render, and every tuple carries it. The plural is the menu's whitelist; declaring both warns, the singular winning, and an unknown name warns and pins the filter's default.",
|
|
1759
|
+
"value": {
|
|
1760
|
+
"kind": "plain",
|
|
1761
|
+
"type": "string"
|
|
1762
|
+
}
|
|
1763
|
+
},
|
|
1551
1764
|
{
|
|
1552
1765
|
"name": "disabled",
|
|
1553
1766
|
"description": "The field's own disabled claim: the control is disabled and the field is left out of the submitted values, composed with a disabled fieldset ancestry. The property reflects the claim only, matches(':disabled') tells the effective state.",
|
|
@@ -1628,7 +1841,7 @@
|
|
|
1628
1841
|
"attributes": [
|
|
1629
1842
|
{
|
|
1630
1843
|
"name": "type",
|
|
1631
|
-
"description": "Any native input type,
|
|
1844
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
1632
1845
|
"value": {
|
|
1633
1846
|
"kind": "plain",
|
|
1634
1847
|
"type": "string"
|
|
@@ -1644,7 +1857,7 @@
|
|
|
1644
1857
|
},
|
|
1645
1858
|
{
|
|
1646
1859
|
"name": "keep",
|
|
1647
|
-
"description": "A regular expression naming the
|
|
1860
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
1648
1861
|
"value": {
|
|
1649
1862
|
"kind": "plain",
|
|
1650
1863
|
"type": "string"
|
|
@@ -1674,6 +1887,14 @@
|
|
|
1674
1887
|
"type": "boolean"
|
|
1675
1888
|
}
|
|
1676
1889
|
},
|
|
1890
|
+
{
|
|
1891
|
+
"name": "unsigned",
|
|
1892
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
1893
|
+
"value": {
|
|
1894
|
+
"kind": "plain",
|
|
1895
|
+
"type": "boolean"
|
|
1896
|
+
}
|
|
1897
|
+
},
|
|
1677
1898
|
{
|
|
1678
1899
|
"name": "autocomplete",
|
|
1679
1900
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -1682,6 +1903,14 @@
|
|
|
1682
1903
|
"type": "string"
|
|
1683
1904
|
}
|
|
1684
1905
|
},
|
|
1906
|
+
{
|
|
1907
|
+
"name": "operator",
|
|
1908
|
+
"description": "Fixes the operator for the element's life: no menu and no button render, and every tuple carries it. The plural is the menu's whitelist; declaring both warns, the singular winning, and an unknown name warns and pins the filter's default.",
|
|
1909
|
+
"value": {
|
|
1910
|
+
"kind": "plain",
|
|
1911
|
+
"type": "string"
|
|
1912
|
+
}
|
|
1913
|
+
},
|
|
1685
1914
|
{
|
|
1686
1915
|
"name": "disabled",
|
|
1687
1916
|
"description": "The field's own disabled claim: the control is disabled and the field is left out of the submitted values, composed with a disabled fieldset ancestry. The property reflects the claim only, matches(':disabled') tells the effective state.",
|
|
@@ -1828,11 +2057,11 @@
|
|
|
1828
2057
|
},
|
|
1829
2058
|
{
|
|
1830
2059
|
"name": "ful-filter-text",
|
|
1831
|
-
"description": "A ful-table filter over text, with an operator such as CONTAINS or STARTS_WITH and a case sensitivity. Disabled follows native semantics: the attribute is the field's own claim, honored together with a disabled fieldset ancestry through :disabled, while the property reflects the claim only.
|
|
2060
|
+
"description": "A ful-table filter over text, with an operator such as CONTAINS or STARTS_WITH and a case sensitivity. Disabled follows native semantics: the attribute is the field's own claim, honored together with a disabled fieldset ancestry through :disabled, while the property reflects the claim only.",
|
|
1832
2061
|
"attributes": [
|
|
1833
2062
|
{
|
|
1834
2063
|
"name": "type",
|
|
1835
|
-
"description": "Any native input type,
|
|
2064
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
1836
2065
|
"value": {
|
|
1837
2066
|
"kind": "plain",
|
|
1838
2067
|
"type": "string"
|
|
@@ -1848,7 +2077,7 @@
|
|
|
1848
2077
|
},
|
|
1849
2078
|
{
|
|
1850
2079
|
"name": "keep",
|
|
1851
|
-
"description": "A regular expression naming the
|
|
2080
|
+
"description": "A regular expression naming what survives: on every input event the whole value is filtered to its matches, concatenated, so keep=\"[0-9]\" is digits only. It matches rather than negating, so it takes a pattern and not only a character class, and the pattern must match each partial value typed on the way to a complete one.",
|
|
1852
2081
|
"value": {
|
|
1853
2082
|
"kind": "plain",
|
|
1854
2083
|
"type": "string"
|
|
@@ -1878,6 +2107,14 @@
|
|
|
1878
2107
|
"type": "boolean"
|
|
1879
2108
|
}
|
|
1880
2109
|
},
|
|
2110
|
+
{
|
|
2111
|
+
"name": "unsigned",
|
|
2112
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
2113
|
+
"value": {
|
|
2114
|
+
"kind": "plain",
|
|
2115
|
+
"type": "boolean"
|
|
2116
|
+
}
|
|
2117
|
+
},
|
|
1881
2118
|
{
|
|
1882
2119
|
"name": "autocomplete",
|
|
1883
2120
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -1886,6 +2123,22 @@
|
|
|
1886
2123
|
"type": "string"
|
|
1887
2124
|
}
|
|
1888
2125
|
},
|
|
2126
|
+
{
|
|
2127
|
+
"name": "operator",
|
|
2128
|
+
"description": "Fixes the operator for the element's life: no menu and no button render, and every tuple carries it. The plural is the menu's whitelist; declaring both warns, the singular winning, and an unknown name warns and pins the filter's default.",
|
|
2129
|
+
"value": {
|
|
2130
|
+
"kind": "plain",
|
|
2131
|
+
"type": "string"
|
|
2132
|
+
}
|
|
2133
|
+
},
|
|
2134
|
+
{
|
|
2135
|
+
"name": "sensitivity",
|
|
2136
|
+
"description": "Fixes the case sensitivity for the element's life, on the operator's terms: the button leaves and every tuple carries it.",
|
|
2137
|
+
"value": {
|
|
2138
|
+
"kind": "plain",
|
|
2139
|
+
"type": "string"
|
|
2140
|
+
}
|
|
2141
|
+
},
|
|
1889
2142
|
{
|
|
1890
2143
|
"name": "disabled",
|
|
1891
2144
|
"description": "The field's own disabled claim: the control is disabled and the field is left out of the submitted values, composed with a disabled fieldset ancestry. The property reflects the claim only, matches(':disabled') tells the effective state.",
|
|
@@ -1969,8 +2222,8 @@
|
|
|
1969
2222
|
]
|
|
1970
2223
|
},
|
|
1971
2224
|
{
|
|
1972
|
-
"name": "ful-
|
|
1973
|
-
"description": "A
|
|
2225
|
+
"name": "ful-filter-in",
|
|
2226
|
+
"description": "A ful-table filter over set membership, answering for both of data-jpa's set annotations: InEnum and InList take the same array of values and no operator, differing only in what the server converts them to. The vocabulary comes from wherever a select's does, slotted options or a loader, and the value is an array whether one key was chosen or several, an empty selection contributing nothing rather than an empty array. It picks one key unless multiple is declared, as a ful-select does.",
|
|
1974
2227
|
"attributes": [
|
|
1975
2228
|
{
|
|
1976
2229
|
"name": "name",
|
|
@@ -1990,15 +2243,135 @@
|
|
|
1990
2243
|
},
|
|
1991
2244
|
{
|
|
1992
2245
|
"name": "k-type",
|
|
1993
|
-
"description": "How a key coerces when it arrives from the response or from the value attribute: number, string or
|
|
2246
|
+
"description": "How a key coerces when it arrives from the response or from the value attribute: number, string or boolean.",
|
|
2247
|
+
"value": {
|
|
2248
|
+
"kind": "plain",
|
|
2249
|
+
"type": "string"
|
|
2250
|
+
}
|
|
2251
|
+
},
|
|
2252
|
+
{
|
|
2253
|
+
"name": "mode",
|
|
2254
|
+
"description": "chunked asks the endpoint per query instead of fetching the vocabulary once, for a list too large to hold.",
|
|
2255
|
+
"value": {
|
|
2256
|
+
"kind": "plain",
|
|
2257
|
+
"type": "string"
|
|
2258
|
+
}
|
|
2259
|
+
},
|
|
2260
|
+
{
|
|
2261
|
+
"name": "preload",
|
|
2262
|
+
"description": "Fetches the vocabulary while the element upgrades rather than on first use. The field paints immediately either way; the options arrive when they arrive.",
|
|
2263
|
+
"value": {
|
|
2264
|
+
"kind": "plain",
|
|
2265
|
+
"type": "boolean"
|
|
2266
|
+
}
|
|
2267
|
+
},
|
|
2268
|
+
{
|
|
2269
|
+
"name": "revision",
|
|
2270
|
+
"description": "Caches the fetched vocabulary in local storage under this revision; a load under a different one is a miss that evicts the entry. It is the cache's namespace, so a vocabulary that differs per user wants the principal in it. Left valueless, the revision the registry's 'revision' component answers is used, so a page states its build once instead of every element repeating it.",
|
|
2271
|
+
"value": {
|
|
2272
|
+
"kind": "plain",
|
|
2273
|
+
"type": "string"
|
|
2274
|
+
}
|
|
2275
|
+
},
|
|
2276
|
+
{
|
|
2277
|
+
"name": "k-expr",
|
|
2278
|
+
"description": "The expression yielding an option's key, evaluated against each row of the response. Set it together with l-expr to shape a response without a mapper component.",
|
|
2279
|
+
"value": {
|
|
2280
|
+
"kind": "plain",
|
|
2281
|
+
"type": "string"
|
|
2282
|
+
}
|
|
2283
|
+
},
|
|
2284
|
+
{
|
|
2285
|
+
"name": "l-expr",
|
|
2286
|
+
"description": "The expression yielding an option's label, evaluated against each row of the response.",
|
|
2287
|
+
"value": {
|
|
2288
|
+
"kind": "plain",
|
|
2289
|
+
"type": "string"
|
|
2290
|
+
}
|
|
2291
|
+
},
|
|
2292
|
+
{
|
|
2293
|
+
"name": "d-expr",
|
|
2294
|
+
"description": "The expression yielding the rows from the response body; the body itself when absent.",
|
|
2295
|
+
"value": {
|
|
2296
|
+
"kind": "plain",
|
|
2297
|
+
"type": "string"
|
|
2298
|
+
}
|
|
2299
|
+
},
|
|
2300
|
+
{
|
|
2301
|
+
"name": "m-expr",
|
|
2302
|
+
"description": "The expression yielding an option's metadata, evaluated against each row; the whole row when absent.",
|
|
2303
|
+
"value": {
|
|
2304
|
+
"kind": "plain",
|
|
2305
|
+
"type": "string"
|
|
2306
|
+
}
|
|
2307
|
+
},
|
|
2308
|
+
{
|
|
2309
|
+
"name": "response-mapper",
|
|
2310
|
+
"description": "The registered component name that turns a response into { key, label, metadata } entries. The k-expr/l-expr pair takes precedence; without either, the response is read as positional rows.",
|
|
2311
|
+
"value": {
|
|
2312
|
+
"kind": "plain",
|
|
2313
|
+
"type": "string"
|
|
2314
|
+
}
|
|
2315
|
+
},
|
|
2316
|
+
{
|
|
2317
|
+
"name": "operator",
|
|
2318
|
+
"description": "A fixed operator sent in front of the chosen keys, for the field a compare reads rather than a set: absent the value is the bare array an InEnum or an InList takes, present it is [operator, ...keys]. No menu is rendered either way, the operator being the author naming the server's comparison rather than a choice offered to whoever is filtering. The criterion reports it, so a chip can show it.",
|
|
2319
|
+
"value": {
|
|
2320
|
+
"kind": "plain",
|
|
2321
|
+
"type": "string"
|
|
2322
|
+
}
|
|
2323
|
+
},
|
|
2324
|
+
{
|
|
2325
|
+
"name": "disabled",
|
|
2326
|
+
"description": "The field's own disabled claim: the control is disabled and the field is left out of the submitted values, composed with a disabled fieldset ancestry. The property reflects the claim only, matches(':disabled') tells the effective state.",
|
|
2327
|
+
"value": {
|
|
2328
|
+
"kind": "plain",
|
|
2329
|
+
"type": "boolean"
|
|
2330
|
+
}
|
|
2331
|
+
},
|
|
2332
|
+
{
|
|
2333
|
+
"name": "readonly",
|
|
2334
|
+
"description": "Renders the control but does not let it be edited. A readonly field still contributes its value to the form.",
|
|
2335
|
+
"value": {
|
|
2336
|
+
"kind": "plain",
|
|
2337
|
+
"type": "boolean"
|
|
2338
|
+
}
|
|
2339
|
+
},
|
|
2340
|
+
{
|
|
2341
|
+
"name": "required",
|
|
2342
|
+
"description": "Marks the field as required for assistive technologies and shows the required marker on its label.",
|
|
2343
|
+
"value": {
|
|
2344
|
+
"kind": "plain",
|
|
2345
|
+
"type": "boolean"
|
|
2346
|
+
}
|
|
2347
|
+
},
|
|
2348
|
+
{
|
|
2349
|
+
"name": "value",
|
|
2350
|
+
"description": "Comma separated list of the selected keys. Empty contributes nothing, so the table drops the filter rather than sending an empty set.",
|
|
1994
2351
|
"value": {
|
|
1995
2352
|
"kind": "plain",
|
|
1996
2353
|
"type": "string"
|
|
1997
2354
|
}
|
|
1998
2355
|
},
|
|
2356
|
+
{
|
|
2357
|
+
"name": "multiple",
|
|
2358
|
+
"description": "Always on for this element: a set of one is still a set, and a single selection would answer a bare key where the filter request wants an array.",
|
|
2359
|
+
"value": {
|
|
2360
|
+
"kind": "plain",
|
|
2361
|
+
"type": "boolean"
|
|
2362
|
+
}
|
|
2363
|
+
},
|
|
2364
|
+
{
|
|
2365
|
+
"name": "item-list",
|
|
2366
|
+
"description": "Shows the selection as a ful-item-list under the control. For a multiple select the list replaces the ful-badge chips, which it hides; a single select keeps its label in the field as well.",
|
|
2367
|
+
"value": {
|
|
2368
|
+
"kind": "plain",
|
|
2369
|
+
"type": "boolean"
|
|
2370
|
+
}
|
|
2371
|
+
},
|
|
1999
2372
|
{
|
|
2000
2373
|
"name": "src",
|
|
2001
|
-
"description": "The url the vocabulary is fetched from. Without it the slotted <option> elements are the whole vocabulary, held in memory.",
|
|
2374
|
+
"description": "The url the vocabulary is fetched from. Without it the slotted <option> elements are the whole vocabulary, held in memory. Stays live: writing it builds the loader again and reloads as reload() does, dropping a selected key the new vocabulary does not know.",
|
|
2002
2375
|
"value": {
|
|
2003
2376
|
"kind": "plain",
|
|
2004
2377
|
"type": "string"
|
|
@@ -2006,7 +2379,65 @@
|
|
|
2006
2379
|
},
|
|
2007
2380
|
{
|
|
2008
2381
|
"name": "method",
|
|
2009
|
-
"description": "The method the vocabulary is fetched with; POST when absent.",
|
|
2382
|
+
"description": "The method the vocabulary is fetched with; POST when absent. Stays live, as src does.",
|
|
2383
|
+
"value": {
|
|
2384
|
+
"kind": "plain",
|
|
2385
|
+
"type": "string"
|
|
2386
|
+
}
|
|
2387
|
+
}
|
|
2388
|
+
],
|
|
2389
|
+
"slots": [
|
|
2390
|
+
{
|
|
2391
|
+
"name": "default",
|
|
2392
|
+
"description": "The label of the field."
|
|
2393
|
+
},
|
|
2394
|
+
{
|
|
2395
|
+
"name": "info",
|
|
2396
|
+
"description": "Extra content rendered next to the label, for a hint or a help icon."
|
|
2397
|
+
},
|
|
2398
|
+
{
|
|
2399
|
+
"name": "before",
|
|
2400
|
+
"description": "An addon rendered inside the input group, before the control."
|
|
2401
|
+
},
|
|
2402
|
+
{
|
|
2403
|
+
"name": "after",
|
|
2404
|
+
"description": "An addon rendered inside the input group, after the control."
|
|
2405
|
+
},
|
|
2406
|
+
{
|
|
2407
|
+
"name": "dropdown",
|
|
2408
|
+
"description": "Replaces the template used to render the options."
|
|
2409
|
+
}
|
|
2410
|
+
],
|
|
2411
|
+
"events": [
|
|
2412
|
+
{
|
|
2413
|
+
"name": "change",
|
|
2414
|
+
"description": "Fired with the selected keys, or undefined when nothing is picked."
|
|
2415
|
+
}
|
|
2416
|
+
]
|
|
2417
|
+
},
|
|
2418
|
+
{
|
|
2419
|
+
"name": "ful-select",
|
|
2420
|
+
"description": "A combobox backed by a loader that acts like a select: the field mirrors the label of a single selection, clicking anywhere on it toggles the dropdown, which opens highlighting the current selection, and Home, End, PageUp, PageDown and Alt+arrows navigate it. A multiple selection renders as ful-badge chips. Without src the slotted options are the vocabulary; with src the options are fetched once (method, POST by default, preload fetching them while upgrading, revision caching them in local storage) or asked per query under mode=chunked, the response shaped through the k-expr/l-expr/d-expr/m-expr expressions or a response-mapper component, and every key coerced as k-type declares. Disabled follows native semantics: the attribute is the field's own claim, honored together with a disabled fieldset ancestry through :disabled, while the property reflects the claim only.",
|
|
2421
|
+
"attributes": [
|
|
2422
|
+
{
|
|
2423
|
+
"name": "name",
|
|
2424
|
+
"description": "The field name the surrounding form submits the selection under.",
|
|
2425
|
+
"value": {
|
|
2426
|
+
"kind": "plain",
|
|
2427
|
+
"type": "string"
|
|
2428
|
+
}
|
|
2429
|
+
},
|
|
2430
|
+
{
|
|
2431
|
+
"name": "loader",
|
|
2432
|
+
"description": "The registered component name the select loads its vocabulary through; loaders:select when absent.",
|
|
2433
|
+
"value": {
|
|
2434
|
+
"kind": "plain",
|
|
2435
|
+
"type": "string"
|
|
2436
|
+
}
|
|
2437
|
+
},
|
|
2438
|
+
{
|
|
2439
|
+
"name": "k-type",
|
|
2440
|
+
"description": "How a key coerces when it arrives from the response or from the value attribute: number, string or boolean.",
|
|
2010
2441
|
"value": {
|
|
2011
2442
|
"kind": "plain",
|
|
2012
2443
|
"type": "string"
|
|
@@ -2030,7 +2461,7 @@
|
|
|
2030
2461
|
},
|
|
2031
2462
|
{
|
|
2032
2463
|
"name": "revision",
|
|
2033
|
-
"description": "Caches the fetched vocabulary in local storage under this revision; a load under a different one is a miss that evicts the entry. It is the cache's namespace, so a vocabulary that differs per user wants the principal in it.",
|
|
2464
|
+
"description": "Caches the fetched vocabulary in local storage under this revision; a load under a different one is a miss that evicts the entry. It is the cache's namespace, so a vocabulary that differs per user wants the principal in it. Left valueless, the revision the registry's 'revision' component answers is used, so a page states its build once instead of every element repeating it.",
|
|
2034
2465
|
"value": {
|
|
2035
2466
|
"kind": "plain",
|
|
2036
2467
|
"type": "string"
|
|
@@ -2102,7 +2533,7 @@
|
|
|
2102
2533
|
},
|
|
2103
2534
|
{
|
|
2104
2535
|
"name": "value",
|
|
2105
|
-
"description": "The selected keys, comma separated, whether or not the select is multiple. A key given here is trimmed and cannot contain a comma; assign such a key through the property instead. The property answers a key for a single select and an array for a multiple one.",
|
|
2536
|
+
"description": "The selected keys, comma separated, whether or not the select is multiple. A key given here is trimmed and cannot contain a comma; assign such a key through the property instead. The property answers a key for a single select and an array for a multiple one. A single select reads a present but empty attribute as the empty key, the one an <option value=\"\"> carries, where an absent attribute means no selection; a multiple select reads it as no keys.",
|
|
2106
2537
|
"value": {
|
|
2107
2538
|
"kind": "plain",
|
|
2108
2539
|
"type": "string"
|
|
@@ -2118,11 +2549,27 @@
|
|
|
2118
2549
|
},
|
|
2119
2550
|
{
|
|
2120
2551
|
"name": "item-list",
|
|
2121
|
-
"description": "Shows the selection as a ful-item-list under the control
|
|
2552
|
+
"description": "Shows the selection as a ful-item-list under the control. For a multiple select the list replaces the ful-badge chips, which it hides; a single select keeps its label in the field as well.",
|
|
2122
2553
|
"value": {
|
|
2123
2554
|
"kind": "plain",
|
|
2124
2555
|
"type": "boolean"
|
|
2125
2556
|
}
|
|
2557
|
+
},
|
|
2558
|
+
{
|
|
2559
|
+
"name": "src",
|
|
2560
|
+
"description": "The url the vocabulary is fetched from. Without it the slotted <option> elements are the whole vocabulary, held in memory. Stays live: writing it builds the loader again and reloads as reload() does, dropping a selected key the new vocabulary does not know.",
|
|
2561
|
+
"value": {
|
|
2562
|
+
"kind": "plain",
|
|
2563
|
+
"type": "string"
|
|
2564
|
+
}
|
|
2565
|
+
},
|
|
2566
|
+
{
|
|
2567
|
+
"name": "method",
|
|
2568
|
+
"description": "The method the vocabulary is fetched with; POST when absent. Stays live, as src does.",
|
|
2569
|
+
"value": {
|
|
2570
|
+
"kind": "plain",
|
|
2571
|
+
"type": "string"
|
|
2572
|
+
}
|
|
2126
2573
|
}
|
|
2127
2574
|
],
|
|
2128
2575
|
"slots": [
|
|
@@ -2156,7 +2603,7 @@
|
|
|
2156
2603
|
},
|
|
2157
2604
|
{
|
|
2158
2605
|
"name": "ful-dropdown",
|
|
2159
|
-
"description": "The options popup of a ful-select, with a localized no-results message when the search matches nothing. Rarely used on its own.",
|
|
2606
|
+
"description": "The options popup of a ful-select, with a localized no-results message when the search matches nothing. An entry whose metadata.disabled is truthy is refused: its row carries aria-disabled and metadata.reason as its title, the arrows and Home/End walk past it, and a click on it changes nothing. Rarely used on its own.",
|
|
2160
2607
|
"attributes": [
|
|
2161
2608
|
{
|
|
2162
2609
|
"name": "listbox",
|