@optionfactory/fml 9.0.0-rc10 → 9.0.0-rc11

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.
@@ -161,11 +161,11 @@
161
161
  },
162
162
  {
163
163
  "name": "ful-input",
164
- "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.",
164
+ "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.",
165
165
  "attributes": [
166
166
  {
167
167
  "name": "type",
168
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins. (string)"
168
+ "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. (string)"
169
169
  },
170
170
  {
171
171
  "name": "v-type",
@@ -219,7 +219,7 @@
219
219
  "attributes": [
220
220
  {
221
221
  "name": "type",
222
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins. (string)"
222
+ "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. (string)"
223
223
  },
224
224
  {
225
225
  "name": "v-type",
@@ -329,7 +329,7 @@
329
329
  "attributes": [
330
330
  {
331
331
  "name": "type",
332
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins. (string)"
332
+ "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. (string)"
333
333
  },
334
334
  {
335
335
  "name": "v-type",
@@ -395,7 +395,7 @@
395
395
  "attributes": [
396
396
  {
397
397
  "name": "type",
398
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins. (string)"
398
+ "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. (string)"
399
399
  },
400
400
  {
401
401
  "name": "v-type",
@@ -461,7 +461,7 @@
461
461
  "attributes": [
462
462
  {
463
463
  "name": "type",
464
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins. (string)"
464
+ "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. (string)"
465
465
  },
466
466
  {
467
467
  "name": "v-type",
@@ -607,7 +607,7 @@
607
607
  "attributes": [
608
608
  {
609
609
  "name": "type",
610
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins. (string)"
610
+ "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. (string)"
611
611
  },
612
612
  {
613
613
  "name": "v-type",
@@ -665,7 +665,7 @@
665
665
  "attributes": [
666
666
  {
667
667
  "name": "type",
668
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins. (string)"
668
+ "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. (string)"
669
669
  },
670
670
  {
671
671
  "name": "v-type",
@@ -723,7 +723,7 @@
723
723
  "attributes": [
724
724
  {
725
725
  "name": "type",
726
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins. (string)"
726
+ "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. (string)"
727
727
  },
728
728
  {
729
729
  "name": "v-type",
@@ -803,11 +803,11 @@
803
803
  },
804
804
  {
805
805
  "name": "ful-filter-text",
806
- "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. A multiple ful-select used as a filter emits the bare value array the in-list annotations expect.",
806
+ "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.",
807
807
  "attributes": [
808
808
  {
809
809
  "name": "type",
810
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins. (string)"
810
+ "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. (string)"
811
811
  },
812
812
  {
813
813
  "name": "v-type",
@@ -863,6 +863,88 @@
863
863
  }
864
864
  ]
865
865
  },
866
+ {
867
+ "name": "ful-filter-in",
868
+ "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 selection is always multiple, an empty one contributing nothing rather than an empty array.",
869
+ "attributes": [
870
+ {
871
+ "name": "name",
872
+ "description": "The field name the surrounding form submits the selection under. (string)"
873
+ },
874
+ {
875
+ "name": "loader",
876
+ "description": "The registered component name the select loads its vocabulary through; loaders:select when absent. (string)"
877
+ },
878
+ {
879
+ "name": "k-type",
880
+ "description": "How a key coerces when it arrives from the response or from the value attribute: number, string or bool. (string)"
881
+ },
882
+ {
883
+ "name": "src",
884
+ "description": "The url the vocabulary is fetched from. Without it the slotted <option> elements are the whole vocabulary, held in memory. (string)"
885
+ },
886
+ {
887
+ "name": "method",
888
+ "description": "The method the vocabulary is fetched with; POST when absent. (string)"
889
+ },
890
+ {
891
+ "name": "mode",
892
+ "description": "chunked asks the endpoint per query instead of fetching the vocabulary once, for a list too large to hold. (string)"
893
+ },
894
+ {
895
+ "name": "preload",
896
+ "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. (boolean)"
897
+ },
898
+ {
899
+ "name": "revision",
900
+ "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. (string)"
901
+ },
902
+ {
903
+ "name": "k-expr",
904
+ "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. (string)"
905
+ },
906
+ {
907
+ "name": "l-expr",
908
+ "description": "The expression yielding an option's label, evaluated against each row of the response. (string)"
909
+ },
910
+ {
911
+ "name": "d-expr",
912
+ "description": "The expression yielding the rows from the response body; the body itself when absent. (string)"
913
+ },
914
+ {
915
+ "name": "m-expr",
916
+ "description": "The expression yielding an option's metadata, evaluated against each row; the whole row when absent. (string)"
917
+ },
918
+ {
919
+ "name": "response-mapper",
920
+ "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. (string)"
921
+ },
922
+ {
923
+ "name": "disabled",
924
+ "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. (boolean)"
925
+ },
926
+ {
927
+ "name": "readonly",
928
+ "description": "Renders the control but does not let it be edited. A readonly field still contributes its value to the form. (boolean)"
929
+ },
930
+ {
931
+ "name": "required",
932
+ "description": "Marks the field as required for assistive technologies and shows the required marker on its label. (boolean)"
933
+ },
934
+ {
935
+ "name": "value",
936
+ "description": "Comma separated list of the selected keys. Empty contributes nothing, so the table drops the filter rather than sending an empty set. (string)"
937
+ },
938
+ {
939
+ "name": "multiple",
940
+ "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. (boolean)"
941
+ },
942
+ {
943
+ "name": "item-list",
944
+ "description": "Shows the selection as a ful-item-list under the control as well, in addition to the field itself (the label for a single select, the ful-badge chips when multiple). (boolean)"
945
+ }
946
+ ]
947
+ },
866
948
  {
867
949
  "name": "ful-select",
868
950
  "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.",
@@ -897,7 +979,7 @@
897
979
  },
898
980
  {
899
981
  "name": "revision",
900
- "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. (string)"
982
+ "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. (string)"
901
983
  },
902
984
  {
903
985
  "name": "k-expr",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/web-types",
3
3
  "name": "@optionfactory/fml",
4
- "version": "9.0.0-rc10",
4
+ "version": "9.0.0-rc11",
5
5
  "description-markup": "none",
6
6
  "contributions": {
7
7
  "html": {
@@ -405,11 +405,11 @@
405
405
  },
406
406
  {
407
407
  "name": "ful-input",
408
- "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.",
408
+ "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.",
409
409
  "attributes": [
410
410
  {
411
411
  "name": "type",
412
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins.",
412
+ "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.",
413
413
  "value": {
414
414
  "kind": "plain",
415
415
  "type": "string"
@@ -535,7 +535,7 @@
535
535
  "attributes": [
536
536
  {
537
537
  "name": "type",
538
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins.",
538
+ "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.",
539
539
  "value": {
540
540
  "kind": "plain",
541
541
  "type": "string"
@@ -769,7 +769,7 @@
769
769
  "attributes": [
770
770
  {
771
771
  "name": "type",
772
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins.",
772
+ "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.",
773
773
  "value": {
774
774
  "kind": "plain",
775
775
  "type": "string"
@@ -919,7 +919,7 @@
919
919
  "attributes": [
920
920
  {
921
921
  "name": "type",
922
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins.",
922
+ "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.",
923
923
  "value": {
924
924
  "kind": "plain",
925
925
  "type": "string"
@@ -1069,7 +1069,7 @@
1069
1069
  "attributes": [
1070
1070
  {
1071
1071
  "name": "type",
1072
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins.",
1072
+ "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.",
1073
1073
  "value": {
1074
1074
  "kind": "plain",
1075
1075
  "type": "string"
@@ -1325,12 +1325,25 @@
1325
1325
  "name": "caption",
1326
1326
  "description": "The caption of the table."
1327
1327
  },
1328
+ {
1329
+ "name": "empty",
1330
+ "description": "Shown in place of the rows when a load returns none, replacing the localized default message."
1331
+ },
1328
1332
  {
1329
1333
  "name": "footer",
1330
1334
  "description": "Content rendered in the table footer."
1331
1335
  }
1332
1336
  ],
1333
- "events": []
1337
+ "events": [
1338
+ {
1339
+ "name": "load:success",
1340
+ "description": "Fired once a load has settled, after the rows are in place 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."
1341
+ },
1342
+ {
1343
+ "name": "load:failure",
1344
+ "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."
1345
+ }
1346
+ ]
1334
1347
  },
1335
1348
  {
1336
1349
  "name": "ful-pagination",
@@ -1404,7 +1417,7 @@
1404
1417
  "attributes": [
1405
1418
  {
1406
1419
  "name": "type",
1407
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins.",
1420
+ "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.",
1408
1421
  "value": {
1409
1422
  "kind": "plain",
1410
1423
  "type": "string"
@@ -1538,7 +1551,7 @@
1538
1551
  "attributes": [
1539
1552
  {
1540
1553
  "name": "type",
1541
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins.",
1554
+ "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.",
1542
1555
  "value": {
1543
1556
  "kind": "plain",
1544
1557
  "type": "string"
@@ -1672,7 +1685,7 @@
1672
1685
  "attributes": [
1673
1686
  {
1674
1687
  "name": "type",
1675
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins.",
1688
+ "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.",
1676
1689
  "value": {
1677
1690
  "kind": "plain",
1678
1691
  "type": "string"
@@ -1872,11 +1885,11 @@
1872
1885
  },
1873
1886
  {
1874
1887
  "name": "ful-filter-text",
1875
- "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. A multiple ful-select used as a filter emits the bare value array the in-list annotations expect.",
1888
+ "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.",
1876
1889
  "attributes": [
1877
1890
  {
1878
1891
  "name": "type",
1879
- "description": "Any native input type, or the literal textarea to render one. Defaults to number under v-type=number, and a declared type wins.",
1892
+ "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.",
1880
1893
  "value": {
1881
1894
  "kind": "plain",
1882
1895
  "type": "string"
@@ -2012,6 +2025,192 @@
2012
2025
  }
2013
2026
  ]
2014
2027
  },
2028
+ {
2029
+ "name": "ful-filter-in",
2030
+ "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 selection is always multiple, an empty one contributing nothing rather than an empty array.",
2031
+ "attributes": [
2032
+ {
2033
+ "name": "name",
2034
+ "description": "The field name the surrounding form submits the selection under.",
2035
+ "value": {
2036
+ "kind": "plain",
2037
+ "type": "string"
2038
+ }
2039
+ },
2040
+ {
2041
+ "name": "loader",
2042
+ "description": "The registered component name the select loads its vocabulary through; loaders:select when absent.",
2043
+ "value": {
2044
+ "kind": "plain",
2045
+ "type": "string"
2046
+ }
2047
+ },
2048
+ {
2049
+ "name": "k-type",
2050
+ "description": "How a key coerces when it arrives from the response or from the value attribute: number, string or bool.",
2051
+ "value": {
2052
+ "kind": "plain",
2053
+ "type": "string"
2054
+ }
2055
+ },
2056
+ {
2057
+ "name": "src",
2058
+ "description": "The url the vocabulary is fetched from. Without it the slotted <option> elements are the whole vocabulary, held in memory.",
2059
+ "value": {
2060
+ "kind": "plain",
2061
+ "type": "string"
2062
+ }
2063
+ },
2064
+ {
2065
+ "name": "method",
2066
+ "description": "The method the vocabulary is fetched with; POST when absent.",
2067
+ "value": {
2068
+ "kind": "plain",
2069
+ "type": "string"
2070
+ }
2071
+ },
2072
+ {
2073
+ "name": "mode",
2074
+ "description": "chunked asks the endpoint per query instead of fetching the vocabulary once, for a list too large to hold.",
2075
+ "value": {
2076
+ "kind": "plain",
2077
+ "type": "string"
2078
+ }
2079
+ },
2080
+ {
2081
+ "name": "preload",
2082
+ "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.",
2083
+ "value": {
2084
+ "kind": "plain",
2085
+ "type": "boolean"
2086
+ }
2087
+ },
2088
+ {
2089
+ "name": "revision",
2090
+ "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.",
2091
+ "value": {
2092
+ "kind": "plain",
2093
+ "type": "string"
2094
+ }
2095
+ },
2096
+ {
2097
+ "name": "k-expr",
2098
+ "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.",
2099
+ "value": {
2100
+ "kind": "plain",
2101
+ "type": "string"
2102
+ }
2103
+ },
2104
+ {
2105
+ "name": "l-expr",
2106
+ "description": "The expression yielding an option's label, evaluated against each row of the response.",
2107
+ "value": {
2108
+ "kind": "plain",
2109
+ "type": "string"
2110
+ }
2111
+ },
2112
+ {
2113
+ "name": "d-expr",
2114
+ "description": "The expression yielding the rows from the response body; the body itself when absent.",
2115
+ "value": {
2116
+ "kind": "plain",
2117
+ "type": "string"
2118
+ }
2119
+ },
2120
+ {
2121
+ "name": "m-expr",
2122
+ "description": "The expression yielding an option's metadata, evaluated against each row; the whole row when absent.",
2123
+ "value": {
2124
+ "kind": "plain",
2125
+ "type": "string"
2126
+ }
2127
+ },
2128
+ {
2129
+ "name": "response-mapper",
2130
+ "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.",
2131
+ "value": {
2132
+ "kind": "plain",
2133
+ "type": "string"
2134
+ }
2135
+ },
2136
+ {
2137
+ "name": "disabled",
2138
+ "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.",
2139
+ "value": {
2140
+ "kind": "plain",
2141
+ "type": "boolean"
2142
+ }
2143
+ },
2144
+ {
2145
+ "name": "readonly",
2146
+ "description": "Renders the control but does not let it be edited. A readonly field still contributes its value to the form.",
2147
+ "value": {
2148
+ "kind": "plain",
2149
+ "type": "boolean"
2150
+ }
2151
+ },
2152
+ {
2153
+ "name": "required",
2154
+ "description": "Marks the field as required for assistive technologies and shows the required marker on its label.",
2155
+ "value": {
2156
+ "kind": "plain",
2157
+ "type": "boolean"
2158
+ }
2159
+ },
2160
+ {
2161
+ "name": "value",
2162
+ "description": "Comma separated list of the selected keys. Empty contributes nothing, so the table drops the filter rather than sending an empty set.",
2163
+ "value": {
2164
+ "kind": "plain",
2165
+ "type": "string"
2166
+ }
2167
+ },
2168
+ {
2169
+ "name": "multiple",
2170
+ "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.",
2171
+ "value": {
2172
+ "kind": "plain",
2173
+ "type": "boolean"
2174
+ }
2175
+ },
2176
+ {
2177
+ "name": "item-list",
2178
+ "description": "Shows the selection as a ful-item-list under the control as well, in addition to the field itself (the label for a single select, the ful-badge chips when multiple).",
2179
+ "value": {
2180
+ "kind": "plain",
2181
+ "type": "boolean"
2182
+ }
2183
+ }
2184
+ ],
2185
+ "slots": [
2186
+ {
2187
+ "name": "default",
2188
+ "description": "The label of the field."
2189
+ },
2190
+ {
2191
+ "name": "info",
2192
+ "description": "Extra content rendered next to the label, for a hint or a help icon."
2193
+ },
2194
+ {
2195
+ "name": "before",
2196
+ "description": "An addon rendered inside the input group, before the control."
2197
+ },
2198
+ {
2199
+ "name": "after",
2200
+ "description": "An addon rendered inside the input group, after the control."
2201
+ },
2202
+ {
2203
+ "name": "dropdown",
2204
+ "description": "Replaces the template used to render the options."
2205
+ }
2206
+ ],
2207
+ "events": [
2208
+ {
2209
+ "name": "change",
2210
+ "description": "Fired with the selected keys, or undefined when nothing is picked."
2211
+ }
2212
+ ]
2213
+ },
2015
2214
  {
2016
2215
  "name": "ful-select",
2017
2216
  "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.",
@@ -2074,7 +2273,7 @@
2074
2273
  },
2075
2274
  {
2076
2275
  "name": "revision",
2077
- "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.",
2276
+ "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.",
2078
2277
  "value": {
2079
2278
  "kind": "plain",
2080
2279
  "type": "string"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optionfactory/fml",
3
- "version": "9.0.0-rc10",
3
+ "version": "9.0.0-rc11",
4
4
  "type": "module",
5
5
  "main": "./dist/fml.mjs",
6
6
  "module": "./dist/fml.mjs",