@fusion.dev/helix-headless 0.163.0 → 0.165.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +1068 -46
- package/dist/callout/root/callout-root.d.ts +43 -4
- package/dist/callout/root/callout-root.js +58 -2
- package/dist/code-block/patch.d.ts +42 -0
- package/dist/code-block/patch.js +118 -0
- package/dist/code-block/root/code-block-root.d.ts +37 -1
- package/dist/code-block/root/code-block-root.js +57 -9
- package/dist/color-picker/root/color-picker-root.d.ts +7 -3
- package/dist/color-picker/root/color-picker-root.js +7 -4
- package/dist/combobox/root/combobox-root.d.ts +1 -0
- package/dist/combobox/root/combobox-root.js +10 -1
- package/dist/data-table/root/data-table-root.d.ts +1 -0
- package/dist/data-table/root/data-table-root.js +1 -0
- package/dist/date-input/root/date-input-root.d.ts +3 -3
- package/dist/date-input/root/date-input-root.js +8 -5
- package/dist/element-events.generated.js +7 -1
- package/dist/format-date/root/format-date-root.d.ts +3 -1
- package/dist/format-date/root/format-date-root.js +4 -1
- package/dist/lightbox/item/lightbox-item.js +3 -1
- package/dist/lightbox/root/lightbox-root.d.ts +28 -0
- package/dist/lightbox/root/lightbox-root.js +21 -2
- package/dist/number-input/root/number-input-root.d.ts +32 -9
- package/dist/number-input/root/number-input-root.js +53 -9
- package/dist/object-inspector/root/object-inspector-root.d.ts +23 -0
- package/dist/object-inspector/root/object-inspector-root.js +19 -1
- package/dist/option/root/index.d.ts +1 -0
- package/dist/option/root/index.js +1 -0
- package/dist/table/grid-controller.d.ts +7 -0
- package/dist/table/grid-controller.js +15 -1
- package/dist/table/root/table-root.d.ts +10 -0
- package/dist/table/root/table-root.js +18 -1
- package/dist/tag/root/index.d.ts +1 -0
- package/dist/tag/root/index.js +1 -0
- package/dist/time-input/root/time-input-root.d.ts +4 -3
- package/dist/time-input/root/time-input-root.js +5 -4
- package/dist/time-picker/root/time-picker-root.d.ts +1 -1
- package/dist/time-picker/root/time-picker-root.js +5 -2
- package/dist/video/root/video-root.js +2 -1
- package/dist/video-playlist/item/video-playlist-item.d.ts +8 -0
- package/dist/video-playlist/item/video-playlist-item.js +7 -0
- package/dist/video-playlist/root/video-playlist-root.d.ts +60 -0
- package/dist/video-playlist/root/video-playlist-root.js +55 -1
- package/lint.json +1 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +388 -40
- package/types/vue.d.ts +95 -13
- package/types/words.d.ts +58 -0
package/custom-elements.json
CHANGED
|
@@ -1681,6 +1681,35 @@
|
|
|
1681
1681
|
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
1682
1682
|
}
|
|
1683
1683
|
},
|
|
1684
|
+
{
|
|
1685
|
+
"kind": "field",
|
|
1686
|
+
"name": "present",
|
|
1687
|
+
"type": {
|
|
1688
|
+
"text": "boolean"
|
|
1689
|
+
},
|
|
1690
|
+
"privacy": "protected",
|
|
1691
|
+
"description": "Whether the element is still on the page for a reader, which is what\nthe focus hand-off waits on: connected, for a surface the page removes.\nA surface that hides itself says it is gone once hidden, and calls\n`handFocusOn` then.",
|
|
1692
|
+
"readonly": true,
|
|
1693
|
+
"inheritedFrom": {
|
|
1694
|
+
"name": "MixinDismissible",
|
|
1695
|
+
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
1696
|
+
}
|
|
1697
|
+
},
|
|
1698
|
+
{
|
|
1699
|
+
"kind": "method",
|
|
1700
|
+
"name": "handFocusOn",
|
|
1701
|
+
"privacy": "protected",
|
|
1702
|
+
"return": {
|
|
1703
|
+
"type": {
|
|
1704
|
+
"text": "void"
|
|
1705
|
+
}
|
|
1706
|
+
},
|
|
1707
|
+
"description": "Hands focus on now, where a dismissal is waiting for this element to\ngo: for a surface that hides itself, once it has.",
|
|
1708
|
+
"inheritedFrom": {
|
|
1709
|
+
"name": "MixinDismissible",
|
|
1710
|
+
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
1711
|
+
}
|
|
1712
|
+
},
|
|
1684
1713
|
{
|
|
1685
1714
|
"kind": "method",
|
|
1686
1715
|
"name": "dismiss",
|
|
@@ -12722,7 +12751,7 @@
|
|
|
12722
12751
|
"declarations": [
|
|
12723
12752
|
{
|
|
12724
12753
|
"kind": "class",
|
|
12725
|
-
"description": "`tone` is on the headless tier because it carries meaning. It picks the icon\nand the icon region's accessible name, so a screen reader announces \"Error\"\nfor an error callout whether or not the color is seen. Set `tone-label` to\nsay the name in another language.\n\nThe icon is the fallback content of a slot. Slot your own icon to replace it,\nand the default disappears with no extra check. The tone's name stays on the\nregion around it.\n\nSet `dismissible` for a note a reader may put away, as Shoelace's `closable`\nalert does. The button fires `helix-dismiss
|
|
12754
|
+
"description": "`tone` is on the headless tier because it carries meaning. It picks the icon\nand the icon region's accessible name, so a screen reader announces \"Error\"\nfor an error callout whether or not the color is seen. Set `tone-label` to\nsay the name in another language.\n\nThe icon is the fallback content of a slot. Slot your own icon to replace it,\nand the default disappears with no extra check. The tone's name stays on the\nregion around it.\n\nSet `dismissible` for a note a reader may put away, as Shoelace's `closable`\nalert does. The button fires `helix-dismiss`, and unless a listener cancels\nit the callout hides itself: `open` turns false, `:state(exiting)` holds\nwhile its exit animations run, and then it is `hidden`. Remove it in your\nlistener to take it out of the page, or set `open` to show it again, which\nholds `:state(entering)` while it comes back. Focus on its dismiss button\nmoves to the next callout's, or to the tab stop beside it, once it hides.\n\nA callout sets a passage apart inside a document and is read where it sits.\nFor page-level chrome above the masthead that is a live region and can be\ndismissed, use `Announcement`.",
|
|
12726
12755
|
"name": "HelixHeadlessCallout",
|
|
12727
12756
|
"cssParts": [
|
|
12728
12757
|
{
|
|
@@ -12796,6 +12825,57 @@
|
|
|
12796
12825
|
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
12797
12826
|
}
|
|
12798
12827
|
},
|
|
12828
|
+
{
|
|
12829
|
+
"kind": "field",
|
|
12830
|
+
"name": "turn",
|
|
12831
|
+
"type": {
|
|
12832
|
+
"text": "number"
|
|
12833
|
+
},
|
|
12834
|
+
"privacy": "private",
|
|
12835
|
+
"default": "0",
|
|
12836
|
+
"description": "Which journey is the latest, so an entrance settling late leaves an exit alone."
|
|
12837
|
+
},
|
|
12838
|
+
{
|
|
12839
|
+
"kind": "field",
|
|
12840
|
+
"name": "present",
|
|
12841
|
+
"type": {
|
|
12842
|
+
"text": "boolean"
|
|
12843
|
+
},
|
|
12844
|
+
"privacy": "protected",
|
|
12845
|
+
"description": "Hidden from a reader once hidden, for the focus hand-off.",
|
|
12846
|
+
"readonly": true,
|
|
12847
|
+
"inheritedFrom": {
|
|
12848
|
+
"name": "MixinDismissible",
|
|
12849
|
+
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
12850
|
+
}
|
|
12851
|
+
},
|
|
12852
|
+
{
|
|
12853
|
+
"kind": "method",
|
|
12854
|
+
"name": "dismiss",
|
|
12855
|
+
"return": {
|
|
12856
|
+
"type": {
|
|
12857
|
+
"text": "boolean"
|
|
12858
|
+
}
|
|
12859
|
+
},
|
|
12860
|
+
"description": "Hides the callout once a dismissal stands, unless the page removed it in\nits listener, which is the page's answer and leaves `open` as it was.",
|
|
12861
|
+
"inheritedFrom": {
|
|
12862
|
+
"name": "MixinDismissible",
|
|
12863
|
+
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
12864
|
+
},
|
|
12865
|
+
"type": {
|
|
12866
|
+
"text": "dismiss() => boolean"
|
|
12867
|
+
}
|
|
12868
|
+
},
|
|
12869
|
+
{
|
|
12870
|
+
"kind": "field",
|
|
12871
|
+
"name": "open",
|
|
12872
|
+
"type": {
|
|
12873
|
+
"text": "boolean"
|
|
12874
|
+
},
|
|
12875
|
+
"default": "true",
|
|
12876
|
+
"description": "Whether the callout is showing. A dismissal nobody canceled turns it\nfalse and the callout hides itself, and setting it true shows the callout\nagain. Not reflected: open is the resting state, so an `open` attribute\nwould appear on markup a server sent without it.",
|
|
12877
|
+
"attribute": "open"
|
|
12878
|
+
},
|
|
12799
12879
|
{
|
|
12800
12880
|
"kind": "field",
|
|
12801
12881
|
"name": "tone",
|
|
@@ -12884,6 +12964,24 @@
|
|
|
12884
12964
|
],
|
|
12885
12965
|
"description": "The dismiss button's name: `dismissLabel` with the heading's words, or the\ntone's name.\n\nThe heading is read from the children, so a server and a hydrating render\nname the button for the tone, and the update after names it for the\nheading."
|
|
12886
12966
|
},
|
|
12967
|
+
{
|
|
12968
|
+
"kind": "method",
|
|
12969
|
+
"name": "journey",
|
|
12970
|
+
"privacy": "private",
|
|
12971
|
+
"return": {
|
|
12972
|
+
"type": {
|
|
12973
|
+
"text": "void"
|
|
12974
|
+
}
|
|
12975
|
+
},
|
|
12976
|
+
"description": "The way out after a dismissal, or back in after `open` is set again.\n\n**Hidden only once the exit has run**, since a hidden element draws no\nanimation: `:state(exiting)` holds until every animation on the callout\nhas finished, or two frames where it has none, and then `hidden` takes it\nout of the page and out of the accessibility tree. Shown again at once,\nwith `:state(entering)` while it arrives."
|
|
12977
|
+
},
|
|
12978
|
+
{
|
|
12979
|
+
"kind": "field",
|
|
12980
|
+
"name": "readRegions",
|
|
12981
|
+
"privacy": "private",
|
|
12982
|
+
"readonly": true,
|
|
12983
|
+
"description": "Says which regions hold something, one call apiece so each pairs with its `@cssstate`."
|
|
12984
|
+
},
|
|
12887
12985
|
{
|
|
12888
12986
|
"kind": "field",
|
|
12889
12987
|
"name": "dismissible",
|
|
@@ -12930,19 +13028,17 @@
|
|
|
12930
13028
|
},
|
|
12931
13029
|
{
|
|
12932
13030
|
"kind": "method",
|
|
12933
|
-
"name": "
|
|
13031
|
+
"name": "handFocusOn",
|
|
13032
|
+
"privacy": "protected",
|
|
12934
13033
|
"return": {
|
|
12935
13034
|
"type": {
|
|
12936
|
-
"text": "
|
|
13035
|
+
"text": "void"
|
|
12937
13036
|
}
|
|
12938
13037
|
},
|
|
12939
|
-
"description": "
|
|
13038
|
+
"description": "Hands focus on now, where a dismissal is waiting for this element to\ngo: for a surface that hides itself, once it has.",
|
|
12940
13039
|
"inheritedFrom": {
|
|
12941
13040
|
"name": "MixinDismissible",
|
|
12942
13041
|
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
12943
|
-
},
|
|
12944
|
-
"type": {
|
|
12945
|
-
"text": "dismiss() => boolean"
|
|
12946
13042
|
}
|
|
12947
13043
|
},
|
|
12948
13044
|
{
|
|
@@ -13378,7 +13474,7 @@
|
|
|
13378
13474
|
"type": {
|
|
13379
13475
|
"text": "HelixDismissEvent"
|
|
13380
13476
|
},
|
|
13381
|
-
"description": "The dismiss button was pressed.
|
|
13477
|
+
"description": "The dismiss button was pressed. Unless a listener cancels it, the callout hides itself, and a listener may remove it instead. Cancelable: cancel it to keep the callout showing.",
|
|
13382
13478
|
"name": "helix-dismiss",
|
|
13383
13479
|
"reactProp": "onhelix-dismiss"
|
|
13384
13480
|
}
|
|
@@ -13397,6 +13493,15 @@
|
|
|
13397
13493
|
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
13398
13494
|
}
|
|
13399
13495
|
},
|
|
13496
|
+
{
|
|
13497
|
+
"name": "open",
|
|
13498
|
+
"type": {
|
|
13499
|
+
"text": "boolean"
|
|
13500
|
+
},
|
|
13501
|
+
"default": "true",
|
|
13502
|
+
"description": "Whether the callout is showing. A dismissal nobody canceled turns it\nfalse and the callout hides itself, and setting it true shows the callout\nagain. Not reflected: open is the resting state, so an `open` attribute\nwould appear on markup a server sent without it.",
|
|
13503
|
+
"fieldName": "open"
|
|
13504
|
+
},
|
|
13400
13505
|
{
|
|
13401
13506
|
"name": "tone",
|
|
13402
13507
|
"type": {
|
|
@@ -13437,6 +13542,36 @@
|
|
|
13437
13542
|
}
|
|
13438
13543
|
}
|
|
13439
13544
|
],
|
|
13545
|
+
"cssStates": [
|
|
13546
|
+
{
|
|
13547
|
+
"description": "While `open` is false: the callout was dismissed, and is leaving or hidden.",
|
|
13548
|
+
"name": "closed"
|
|
13549
|
+
},
|
|
13550
|
+
{
|
|
13551
|
+
"description": "While a callout shown again by `open` runs its entrance animations.",
|
|
13552
|
+
"name": "entering"
|
|
13553
|
+
},
|
|
13554
|
+
{
|
|
13555
|
+
"description": "While a dismissed callout runs its exit animations, before it is hidden.",
|
|
13556
|
+
"name": "exiting"
|
|
13557
|
+
},
|
|
13558
|
+
{
|
|
13559
|
+
"description": "Something is slotted into `heading`.",
|
|
13560
|
+
"name": "has-heading"
|
|
13561
|
+
},
|
|
13562
|
+
{
|
|
13563
|
+
"description": "An icon of your own is slotted into `icon`, in place of the tone's.",
|
|
13564
|
+
"name": "has-icon"
|
|
13565
|
+
},
|
|
13566
|
+
{
|
|
13567
|
+
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
13568
|
+
"name": "settled",
|
|
13569
|
+
"inheritedFrom": {
|
|
13570
|
+
"name": "HelixElement",
|
|
13571
|
+
"module": "src/helix-element/helix-element.ts"
|
|
13572
|
+
}
|
|
13573
|
+
}
|
|
13574
|
+
],
|
|
13440
13575
|
"mixins": [
|
|
13441
13576
|
{
|
|
13442
13577
|
"name": "MixinDismissible",
|
|
@@ -13472,16 +13607,6 @@
|
|
|
13472
13607
|
},
|
|
13473
13608
|
"tagName": "helix-headless-callout",
|
|
13474
13609
|
"customElement": true,
|
|
13475
|
-
"cssStates": [
|
|
13476
|
-
{
|
|
13477
|
-
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
13478
|
-
"name": "settled",
|
|
13479
|
-
"inheritedFrom": {
|
|
13480
|
-
"name": "HelixElement",
|
|
13481
|
-
"module": "src/helix-element/helix-element.ts"
|
|
13482
|
-
}
|
|
13483
|
-
}
|
|
13484
|
-
],
|
|
13485
13610
|
"modulePath": "src/callout/root/callout-root.ts",
|
|
13486
13611
|
"definitionPath": "src/callout/root/callout-root.ts"
|
|
13487
13612
|
}
|
|
@@ -30706,6 +30831,30 @@
|
|
|
30706
30831
|
],
|
|
30707
30832
|
"description": "The files in a unified diff, each with its hunks.\n\n**A hunk is read to the counts its header states**, `@@ -12,7 +12,8"
|
|
30708
30833
|
},
|
|
30834
|
+
{
|
|
30835
|
+
"kind": "function",
|
|
30836
|
+
"name": "changedWords",
|
|
30837
|
+
"return": {
|
|
30838
|
+
"type": {
|
|
30839
|
+
"text": "[DiffPiece[], DiffPiece[]] | undefined"
|
|
30840
|
+
}
|
|
30841
|
+
},
|
|
30842
|
+
"parameters": [
|
|
30843
|
+
{
|
|
30844
|
+
"name": "before",
|
|
30845
|
+
"type": {
|
|
30846
|
+
"text": "string"
|
|
30847
|
+
}
|
|
30848
|
+
},
|
|
30849
|
+
{
|
|
30850
|
+
"name": "after",
|
|
30851
|
+
"type": {
|
|
30852
|
+
"text": "string"
|
|
30853
|
+
}
|
|
30854
|
+
}
|
|
30855
|
+
],
|
|
30856
|
+
"description": "The runs of two paired lines that the other line does not have, by the\nlongest run of words they share in order.\n\n**Space between two changes is part of the change**, so \"a b\" replaced by\n\"c d\" is one run, with no gap for the eye to bridge. Two lines\nthat share no word share nothing worth marking: the whole line is the\nchange, which its own wash already says, and `undefined` draws it whole."
|
|
30857
|
+
},
|
|
30709
30858
|
{
|
|
30710
30859
|
"kind": "function",
|
|
30711
30860
|
"name": "pairLines",
|
|
@@ -30723,6 +30872,30 @@
|
|
|
30723
30872
|
}
|
|
30724
30873
|
],
|
|
30725
30874
|
"description": "A hunk's lines paired for a side-by-side view.\n\nContext sits on both sides. A run of removals followed by a run of additions\nis one change, and its lines are paired in order, the longer run's remainder\nstanding opposite nothing: that is what lets the eye read a changed line\nacross rather than hunting for it further down."
|
|
30875
|
+
},
|
|
30876
|
+
{
|
|
30877
|
+
"kind": "function",
|
|
30878
|
+
"name": "foldContext",
|
|
30879
|
+
"return": {
|
|
30880
|
+
"type": {
|
|
30881
|
+
"text": "DiffRun[]"
|
|
30882
|
+
}
|
|
30883
|
+
},
|
|
30884
|
+
"parameters": [
|
|
30885
|
+
{
|
|
30886
|
+
"name": "lines",
|
|
30887
|
+
"type": {
|
|
30888
|
+
"text": "DiffLine[]"
|
|
30889
|
+
}
|
|
30890
|
+
},
|
|
30891
|
+
{
|
|
30892
|
+
"name": "keep",
|
|
30893
|
+
"type": {
|
|
30894
|
+
"text": "number"
|
|
30895
|
+
}
|
|
30896
|
+
}
|
|
30897
|
+
],
|
|
30898
|
+
"description": "A hunk's lines with each long run of unchanged lines folded, keeping `keep`\nlines on the side of each change, as a code host draws a diff with more\ncontext than a reader needs.\n\nA fold hides two lines or more: a control in place of one line is no\nshorter than the line."
|
|
30726
30899
|
}
|
|
30727
30900
|
],
|
|
30728
30901
|
"exports": [
|
|
@@ -30734,6 +30907,14 @@
|
|
|
30734
30907
|
"module": "src/code-block/patch.ts"
|
|
30735
30908
|
}
|
|
30736
30909
|
},
|
|
30910
|
+
{
|
|
30911
|
+
"kind": "js",
|
|
30912
|
+
"name": "changedWords",
|
|
30913
|
+
"declaration": {
|
|
30914
|
+
"name": "changedWords",
|
|
30915
|
+
"module": "src/code-block/patch.ts"
|
|
30916
|
+
}
|
|
30917
|
+
},
|
|
30737
30918
|
{
|
|
30738
30919
|
"kind": "js",
|
|
30739
30920
|
"name": "pairLines",
|
|
@@ -30741,6 +30922,14 @@
|
|
|
30741
30922
|
"name": "pairLines",
|
|
30742
30923
|
"module": "src/code-block/patch.ts"
|
|
30743
30924
|
}
|
|
30925
|
+
},
|
|
30926
|
+
{
|
|
30927
|
+
"kind": "js",
|
|
30928
|
+
"name": "foldContext",
|
|
30929
|
+
"declaration": {
|
|
30930
|
+
"name": "foldContext",
|
|
30931
|
+
"module": "src/code-block/patch.ts"
|
|
30932
|
+
}
|
|
30744
30933
|
}
|
|
30745
30934
|
]
|
|
30746
30935
|
},
|
|
@@ -30750,7 +30939,7 @@
|
|
|
30750
30939
|
"declarations": [
|
|
30751
30940
|
{
|
|
30752
30941
|
"kind": "class",
|
|
30753
|
-
"description": "Renders a `<pre><code>` pair: `pre` keeps the whitespace, and `code` marks it\nas code. Long lines scroll inside the block and do not wrap, because a line\nbreak can be significant in code.\n\nA copy button is on by default. Set `no-copy` to remove it. The button copies\nthe slotted text, so there is no second copy of the code to keep in sync.\n\nFor a fragment of code inside a sentence, use `Code`.\n\nSet `line-numbers` to number the lines in a gutter beside the code, hidden\nfrom the accessibility tree and left out of a copy. Set `mark-lines` to\nmark lines a reader should look at, such as `2, 4-6`: the block draws a\nband behind each run, placed where the lines are laid out, so it follows a\nhighlighter's markup and lines that wrap. Set `wrap` to wrap long lines\nrather than scroll them; a gutter then numbers each line where it starts.\nSet `wrappable` for a button in the header that turns `wrap` on and off,\npressed while the lines wrap.\n\nThe header holds the name, the `actions` slot, and the copy button. Slot a\ncontrol into `actions`, such as a button that sets `wrap` or one that opens\nthe code in an editor, and the block draws a header for it even with no\nname. `copy-icon` and `copied-icon` replace the copy button's two icons. Set `highlight` to a\nfunction that turns the code into highlighted markup, such as one wrapping\nShiki or Prism, and the block draws what it returns; it is handed the\nblock's `language`, so one function serves every block. The code stays in\nthe slot, so the copy button and the page's own text are the code as\nwritten.\n\nSet `expandable` on a block whose height is capped, such as by\n`--code-block-max-block-size`, and a button under it shows every line and\nthen fewer again, as a docs site's long example does. The button is drawn\nonly while the cap hides something, says whether the block is expanded with\n`aria-expanded`, names the block it opens with `aria-controls`, and the block\ncarries `:state(expanded)` while it is.\n\nSet `diff` to show a change. Put a unified diff, the output of `git diff` or\n`diff -u`, in the same slot, and the block draws the lines it added and\nremoved. The block never computes a diff itself. Line numbers come from the\nhunk headers and are hidden from the accessibility tree. Changed lines are\n`<ins>` and `<del>` with the `+` and `-` kept as text, so the change does not\ndepend on color. Each file in the patch is its own block under its own name,\nand its copy button copies the new version of the file. `variant=\"split\"`\nshows the old version beside the new, each removal opposite its replacement.\n\n**A block that scrolls is a tab stop.** While its lines run past its width or\nits cap, the scroller is a region named for the block, such as \"Code,\napp.ts\", that Tab reaches, so a keyboard scrolls it with the arrow keys in\nevery browser. Chromium and Firefox make a scrolling box focusable on their\nown, and Safari does not. A block that fits is no stop at all.\n\n**The code the block draws is marked untranslated**, `translate=\"no\"` on\nits `<pre>`, so a page translator leaves highlighted lines and a diff as\nwritten. Code in the slot takes its translation mode from the element, which\nwrites nothing onto itself, so set `translate=\"no\"` on the element to keep a\ntranslator off plain code too.\n\nOn the server, the slot renders as ordinary code, so a diff first appears as\nthe patch text in a `<pre>`. The client makes the same first render, which\nkeeps hydration clean, and draws the diff once it can read the content. Diff\nmode is experimental. The rest of the family is stable.",
|
|
30942
|
+
"description": "Renders a `<pre><code>` pair: `pre` keeps the whitespace, and `code` marks it\nas code. Long lines scroll inside the block and do not wrap, because a line\nbreak can be significant in code.\n\nA copy button is on by default. Set `no-copy` to remove it. The button copies\nthe slotted text, so there is no second copy of the code to keep in sync.\n\nFor a fragment of code inside a sentence, use `Code`.\n\nSet `line-numbers` to number the lines in a gutter beside the code, hidden\nfrom the accessibility tree and left out of a copy. Set `mark-lines` to\nmark lines a reader should look at, such as `2, 4-6`: the block draws a\nband behind each run, placed where the lines are laid out, so it follows a\nhighlighter's markup and lines that wrap. Set `wrap` to wrap long lines\nrather than scroll them; a gutter then numbers each line where it starts.\nSet `wrappable` for a button in the header that turns `wrap` on and off,\npressed while the lines wrap.\n\nThe header holds the name, the `actions` slot, and the copy button. Slot a\ncontrol into `actions`, such as a button that sets `wrap` or one that opens\nthe code in an editor, and the block draws a header for it even with no\nname. `copy-icon` and `copied-icon` replace the copy button's two icons. Set `highlight` to a\nfunction that turns the code into highlighted markup, such as one wrapping\nShiki or Prism, and the block draws what it returns; it is handed the\nblock's `language`, so one function serves every block. The code stays in\nthe slot, so the copy button and the page's own text are the code as\nwritten.\n\nSet `expandable` on a block whose height is capped, such as by\n`--code-block-max-block-size`, and a button under it shows every line and\nthen fewer again, as a docs site's long example does. The button is drawn\nonly while the cap hides something, says whether the block is expanded with\n`aria-expanded`, names the block it opens with `aria-controls`, and the block\ncarries `:state(expanded)` while it is.\n\nSet `diff` to show a change. Put a unified diff, the output of `git diff` or\n`diff -u`, in the same slot, and the block draws the lines it added and\nremoved. The block never computes a diff itself. Line numbers come from the\nhunk headers and are hidden from the accessibility tree. Changed lines are\n`<ins>` and `<del>` with the `+` and `-` kept as text, so the change does not\ndepend on color. Where a removed line is paired with the added line that\nreplaced it, the words each does not share with the other are the `changed`\npart, so the eye goes to what changed within the line. Each file in the patch is its own block under its own name,\nand its copy button copies the new version of the file. `variant=\"split\"`\nshows the old version beside the new, each removal opposite its replacement.\n`context-lines` folds each long run of unchanged lines, keeping that many\nbeside each change, behind a button that shows them and hides them again,\nas a code host draws a diff written with more context than a reader needs.\n\n**A block that scrolls is a tab stop.** While its lines run past its width or\nits cap, the scroller is a region named for the block, such as \"Code,\napp.ts\", that Tab reaches, so a keyboard scrolls it with the arrow keys in\nevery browser. Chromium and Firefox make a scrolling box focusable on their\nown, and Safari does not. A block that fits is no stop at all.\n\n**The code the block draws is marked untranslated**, `translate=\"no\"` on\nits `<pre>`, so a page translator leaves highlighted lines and a diff as\nwritten. Code in the slot takes its translation mode from the element, which\nwrites nothing onto itself, so set `translate=\"no\"` on the element to keep a\ntranslator off plain code too.\n\nOn the server, the slot renders as ordinary code, so a diff first appears as\nthe patch text in a `<pre>`. The client makes the same first render, which\nkeeps hydration clean, and draws the diff once it can read the content. Diff\nmode is experimental. The rest of the family is stable.",
|
|
30754
30943
|
"name": "HelixHeadlessCodeBlock",
|
|
30755
30944
|
"cssProperties": [
|
|
30756
30945
|
{
|
|
@@ -30783,6 +30972,10 @@
|
|
|
30783
30972
|
"description": "The scrolling `<pre>`.",
|
|
30784
30973
|
"name": "block"
|
|
30785
30974
|
},
|
|
30975
|
+
{
|
|
30976
|
+
"description": "In a diff, the words of a changed line that the line opposite it does not have, inside its `text`.",
|
|
30977
|
+
"name": "changed"
|
|
30978
|
+
},
|
|
30786
30979
|
{
|
|
30787
30980
|
"description": "The `<code>` inside it.",
|
|
30788
30981
|
"name": "code"
|
|
@@ -30867,6 +31060,10 @@
|
|
|
30867
31060
|
"description": "In a split diff, the empty row opposite a line the other side does not have.",
|
|
30868
31061
|
"name": "filler"
|
|
30869
31062
|
},
|
|
31063
|
+
{
|
|
31064
|
+
"description": "In a diff with `context-lines`, the button that shows a folded run of unchanged lines, and hides it again, saying which with `aria-expanded`.",
|
|
31065
|
+
"name": "fold"
|
|
31066
|
+
},
|
|
30870
31067
|
{
|
|
30871
31068
|
"description": "The code, and the copy button beside it where there is no header.",
|
|
30872
31069
|
"name": "frame"
|
|
@@ -30992,6 +31189,15 @@
|
|
|
30992
31189
|
"words": true
|
|
30993
31190
|
}
|
|
30994
31191
|
},
|
|
31192
|
+
{
|
|
31193
|
+
"kind": "field",
|
|
31194
|
+
"name": "contextLines",
|
|
31195
|
+
"type": {
|
|
31196
|
+
"text": "number | undefined"
|
|
31197
|
+
},
|
|
31198
|
+
"description": "In a diff, how many unchanged lines to keep beside each change. Each\nlonger run of unchanged lines is folded behind a button that shows it.\nUnset shows every line the diff holds.",
|
|
31199
|
+
"attribute": "context-lines"
|
|
31200
|
+
},
|
|
30995
31201
|
{
|
|
30996
31202
|
"kind": "field",
|
|
30997
31203
|
"name": "copiedLabel",
|
|
@@ -31065,6 +31271,19 @@
|
|
|
31065
31271
|
"words": true
|
|
31066
31272
|
}
|
|
31067
31273
|
},
|
|
31274
|
+
{
|
|
31275
|
+
"kind": "field",
|
|
31276
|
+
"name": "hideUnchangedLabel",
|
|
31277
|
+
"type": {
|
|
31278
|
+
"text": "string"
|
|
31279
|
+
},
|
|
31280
|
+
"default": "'{count, plural, one {Hide # unchanged line} other {Hide # unchanged lines}}'",
|
|
31281
|
+
"description": "The words of a button that hides a run of unchanged lines it showed, in a\ndiff with `context-lines`. `{count}` is how many, and each language\nwrites the forms it has.",
|
|
31282
|
+
"attribute": "hide-unchanged-label",
|
|
31283
|
+
"helix": {
|
|
31284
|
+
"words": true
|
|
31285
|
+
}
|
|
31286
|
+
},
|
|
31068
31287
|
{
|
|
31069
31288
|
"kind": "field",
|
|
31070
31289
|
"name": "highlight",
|
|
@@ -31125,6 +31344,19 @@
|
|
|
31125
31344
|
"attribute": "no-copy",
|
|
31126
31345
|
"reflects": true
|
|
31127
31346
|
},
|
|
31347
|
+
{
|
|
31348
|
+
"kind": "field",
|
|
31349
|
+
"name": "showUnchangedLabel",
|
|
31350
|
+
"type": {
|
|
31351
|
+
"text": "string"
|
|
31352
|
+
},
|
|
31353
|
+
"default": "'{count, plural, one {Show # unchanged line} other {Show # unchanged lines}}'",
|
|
31354
|
+
"description": "The words of a button that shows a folded run of unchanged lines, in a\ndiff with `context-lines`. `{count}` is how many.",
|
|
31355
|
+
"attribute": "show-unchanged-label",
|
|
31356
|
+
"helix": {
|
|
31357
|
+
"words": true
|
|
31358
|
+
}
|
|
31359
|
+
},
|
|
31128
31360
|
{
|
|
31129
31361
|
"kind": "field",
|
|
31130
31362
|
"name": "variant",
|
|
@@ -31200,6 +31432,68 @@
|
|
|
31200
31432
|
"description": "The files in the content, when it is a diff and it can be read yet.",
|
|
31201
31433
|
"readonly": true
|
|
31202
31434
|
},
|
|
31435
|
+
{
|
|
31436
|
+
"kind": "field",
|
|
31437
|
+
"name": "unfolded",
|
|
31438
|
+
"privacy": "private",
|
|
31439
|
+
"readonly": true,
|
|
31440
|
+
"default": "new Set<string>()",
|
|
31441
|
+
"description": "The folds a reader opened, by file, hunk and the line each starts at."
|
|
31442
|
+
},
|
|
31443
|
+
{
|
|
31444
|
+
"kind": "method",
|
|
31445
|
+
"name": "runsOf",
|
|
31446
|
+
"privacy": "private",
|
|
31447
|
+
"return": {
|
|
31448
|
+
"type": {
|
|
31449
|
+
"text": "DiffRun[]"
|
|
31450
|
+
}
|
|
31451
|
+
},
|
|
31452
|
+
"parameters": [
|
|
31453
|
+
{
|
|
31454
|
+
"name": "hunk",
|
|
31455
|
+
"type": {
|
|
31456
|
+
"text": "DiffHunk"
|
|
31457
|
+
}
|
|
31458
|
+
}
|
|
31459
|
+
],
|
|
31460
|
+
"description": "A hunk's lines in runs, folded where `context-lines` asks."
|
|
31461
|
+
},
|
|
31462
|
+
{
|
|
31463
|
+
"kind": "method",
|
|
31464
|
+
"name": "renderFold",
|
|
31465
|
+
"privacy": "private",
|
|
31466
|
+
"return": {
|
|
31467
|
+
"type": {
|
|
31468
|
+
"text": "TemplateResult"
|
|
31469
|
+
}
|
|
31470
|
+
},
|
|
31471
|
+
"parameters": [
|
|
31472
|
+
{
|
|
31473
|
+
"name": "run",
|
|
31474
|
+
"type": {
|
|
31475
|
+
"text": "DiffRun"
|
|
31476
|
+
}
|
|
31477
|
+
},
|
|
31478
|
+
{
|
|
31479
|
+
"name": "key",
|
|
31480
|
+
"type": {
|
|
31481
|
+
"text": "string"
|
|
31482
|
+
}
|
|
31483
|
+
},
|
|
31484
|
+
{
|
|
31485
|
+
"name": "line",
|
|
31486
|
+
"type": {
|
|
31487
|
+
"text": "(one: DiffLine) => TemplateResult"
|
|
31488
|
+
}
|
|
31489
|
+
},
|
|
31490
|
+
{
|
|
31491
|
+
"name": "hidden",
|
|
31492
|
+
"default": "false"
|
|
31493
|
+
}
|
|
31494
|
+
],
|
|
31495
|
+
"description": "The button over a folded run, and the run once it is open.\n\nA disclosure, so focus stays on the button as the lines appear under it.\nThe new side of a split diff draws the same words hidden from the\naccessibility tree, there to keep the rows level and to answer a press."
|
|
31496
|
+
},
|
|
31203
31497
|
{
|
|
31204
31498
|
"kind": "field",
|
|
31205
31499
|
"name": "text",
|
|
@@ -31544,6 +31838,12 @@
|
|
|
31544
31838
|
"type": {
|
|
31545
31839
|
"text": "number"
|
|
31546
31840
|
}
|
|
31841
|
+
},
|
|
31842
|
+
{
|
|
31843
|
+
"name": "at",
|
|
31844
|
+
"type": {
|
|
31845
|
+
"text": "number"
|
|
31846
|
+
}
|
|
31547
31847
|
}
|
|
31548
31848
|
],
|
|
31549
31849
|
"description": "The old version beside the new one, row for row.\n\nThe new side's hunk headers are hidden from the accessibility tree, being\nthe old side's text again and there only to keep the rows level."
|
|
@@ -31953,6 +32253,14 @@
|
|
|
31953
32253
|
"description": "The expand button's words while the block shows every line.",
|
|
31954
32254
|
"fieldName": "collapseLabel"
|
|
31955
32255
|
},
|
|
32256
|
+
{
|
|
32257
|
+
"name": "context-lines",
|
|
32258
|
+
"type": {
|
|
32259
|
+
"text": "number | undefined"
|
|
32260
|
+
},
|
|
32261
|
+
"description": "In a diff, how many unchanged lines to keep beside each change. Each\nlonger run of unchanged lines is folded behind a button that shows it.\nUnset shows every line the diff holds.",
|
|
32262
|
+
"fieldName": "contextLines"
|
|
32263
|
+
},
|
|
31956
32264
|
{
|
|
31957
32265
|
"name": "copied-label",
|
|
31958
32266
|
"type": {
|
|
@@ -32007,6 +32315,15 @@
|
|
|
32007
32315
|
"description": "The expand button's words while the cap hides lines.",
|
|
32008
32316
|
"fieldName": "expandLabel"
|
|
32009
32317
|
},
|
|
32318
|
+
{
|
|
32319
|
+
"name": "hide-unchanged-label",
|
|
32320
|
+
"type": {
|
|
32321
|
+
"text": "string"
|
|
32322
|
+
},
|
|
32323
|
+
"default": "'{count, plural, one {Hide # unchanged line} other {Hide # unchanged lines}}'",
|
|
32324
|
+
"description": "The words of a button that hides a run of unchanged lines it showed, in a\ndiff with `context-lines`. `{count}` is how many, and each language\nwrites the forms it has.",
|
|
32325
|
+
"fieldName": "hideUnchangedLabel"
|
|
32326
|
+
},
|
|
32010
32327
|
{
|
|
32011
32328
|
"name": "label",
|
|
32012
32329
|
"type": {
|
|
@@ -32052,6 +32369,15 @@
|
|
|
32052
32369
|
"description": "Whether to leave the copy button off.\n\nNegative, which is not a style choice. A boolean attribute is true whenever\nit is *present*, so a `copyable` defaulting to true could never be turned\noff from markup: `copyable=\"false\"` is the string \"false\", which is\npresent, which is true. Measured, and it is why this is named the other way\nround. The platform already writes booleans like this for the same reason,\n`novalidate` and `nomodule` and `noreferrer` among them.\n\n**Reflected, because the gutter is a stylesheet rule.** A sheet reserves\nthe copy button's width with `:host(:not([no-copy]))`, so the attribute is\nwhat decides whether the block pays for a control. Unreflected, setting it\nfrom script takes the button away (`render` reads the property) and leaves\nthe 40px it stood in reserved.\n\nA false boolean reflects as the attribute's absence, so this costs no\n`no-copy=\"\"` on hosts that never asked for one, and the rule about a\nreflected property taking no default is satisfied by the default being\n`false`.",
|
|
32053
32370
|
"fieldName": "noCopy"
|
|
32054
32371
|
},
|
|
32372
|
+
{
|
|
32373
|
+
"name": "show-unchanged-label",
|
|
32374
|
+
"type": {
|
|
32375
|
+
"text": "string"
|
|
32376
|
+
},
|
|
32377
|
+
"default": "'{count, plural, one {Show # unchanged line} other {Show # unchanged lines}}'",
|
|
32378
|
+
"description": "The words of a button that shows a folded run of unchanged lines, in a\ndiff with `context-lines`. `{count}` is how many.",
|
|
32379
|
+
"fieldName": "showUnchangedLabel"
|
|
32380
|
+
},
|
|
32055
32381
|
{
|
|
32056
32382
|
"name": "variant",
|
|
32057
32383
|
"type": {
|
|
@@ -35380,7 +35706,7 @@
|
|
|
35380
35706
|
"declarations": [
|
|
35381
35707
|
{
|
|
35382
35708
|
"kind": "class",
|
|
35383
|
-
"description": "The picker on its own, with no field around it, for a settings pane or a\ntoolbar. Color Input shows this element in a panel behind a text field.\n\nThe saturation and brightness square is two `<input type=\"range\">` elements,\nlaid over the square and made invisible, and the handle is drawn from their\nvalues. The keyboard behavior, the announcements, and the touch targets come\nfrom the platform, and there is no `role=\"application\"`.\n\nThe picker works in HSB and derives the value from it. A value set from\noutside is read into the model once. Black is `brightness: 0`, which has no\nhue or saturation, so a model read back from the value would turn red into\ngray after you drag to the bottom of the square and back.\n\nThe square is one tab stop. In it, the up and down arrows move brightness\nand the left and right arrows move saturation,
|
|
35709
|
+
"description": "The picker on its own, with no field around it, for a settings pane or a\ntoolbar. Color Input shows this element in a panel behind a text field.\n\nThe saturation and brightness square is two `<input type=\"range\">` elements,\nlaid over the square and made invisible, and the handle is drawn from their\nvalues. The keyboard behavior, the announcements, and the touch targets come\nfrom the platform, and there is no `role=\"application\"`.\n\nThe picker works in HSB and derives the value from it. A value set from\noutside is read into the model once. Black is `brightness: 0`, which has no\nhue or saturation, so a model read back from the value would turn red into\ngray after you drag to the bottom of the square and back.\n\nThe square is one tab stop. In it, the up and down arrows move brightness\nand the left and right arrows move saturation, by ten with Shift. PageUp and\nPageDown move brightness by ten, and Home and End move saturation by ten,\nturned on a right-to-left page as the arrows are, as React Aria's ColorArea\ndoes. The picker sends `input` as the color moves and `change`\nwhen a drag, a key, a typed value or a preset settles it, as\n`<input type=\"color\">` does.\n\nA screen reader hears the color's name, such as \"vibrant red\", after the two\nnumbers on the square and after the number on the hue ramp, and each preset\nis named by its color. The opacity ramp is heard as a percentage. Set\n`color-words` to speak the names in another language.\n\n`label` names the picker, which is then a group with that name, and the\nsquare's ramps say it before their own, as \"Brand, Saturation\". `hint`\nwrites help under the picker, which the square, the ramps and the value\nfield are described by. Inside Color Input the field carries both.\n\nThe presets are a listbox with the current color selected, and one tab\nstop. The arrow keys move between them, Home and End go to the ends, and\nEnter, Space or a press chooses one.",
|
|
35384
35710
|
"name": "HelixHeadlessColorPicker",
|
|
35385
35711
|
"cssProperties": [
|
|
35386
35712
|
{
|
|
@@ -36288,7 +36614,7 @@
|
|
|
36288
36614
|
"name": "handleAreaKeydown",
|
|
36289
36615
|
"privacy": "private",
|
|
36290
36616
|
"readonly": true,
|
|
36291
|
-
"description": "Moves the square from the keyboard, both axes from either of its inputs.\n\nThe square is two native ranges, and a native range maps every arrow to\nits own one axis: on the saturation input, ArrowUp moved the handle\nsideways. Here the vertical keys move brightness and the horizontal keys\nmove saturation, turned on a right-to-left page as the pointer is, which is\nwhat React Aria's ColorArea does."
|
|
36617
|
+
"description": "Moves the square from the keyboard, both axes from either of its inputs.\n\nThe square is two native ranges, and a native range maps every arrow to\nits own one axis: on the saturation input, ArrowUp moved the handle\nsideways. Here the vertical keys move brightness and the horizontal keys\nmove saturation, turned on a right-to-left page as the pointer is, which is\nwhat React Aria's ColorArea does. Shift makes an arrow a step of ten, and\nHome and End are saturation's steps of ten, as PageUp and PageDown are\nbrightness's."
|
|
36292
36618
|
},
|
|
36293
36619
|
{
|
|
36294
36620
|
"kind": "method",
|
|
@@ -38132,7 +38458,7 @@
|
|
|
38132
38458
|
"declarations": [
|
|
38133
38459
|
{
|
|
38134
38460
|
"kind": "class",
|
|
38135
|
-
"description": "The list is a `Listbox`, which handles filtering, the empty state, the\nhighlight, `aria-activedescendant`, and scrolling an option into view. This\nelement handles the field, the panel, and the communication between them.\n\nThe typed text and the value are separate. The text is a filter: it narrows\nthe list and is then discarded. The value is the option you choose, and the\nfield then shows that option's text. The filter clears on close, so a\nreopened combobox starts from the whole list.\n\nFocus stays in the text field. The arrow keys move through the list with the\nlistbox's public `navigate` method. As typing narrows the list, a screen\nreader hears how many options are left, such as \"3 results\". Emptying the\nfield and leaving it clears a single choice.\n\n**Keyboard.**\n\n| Key | What it does |\n|---|---|\n| Down, Up | On a closed field, opens the list on the chosen option, or the first or the last. In the open list, moves the highlight, round from the last option to the first. |\n| Page Down, Page Up | In the open list, moves the highlight by as many options as the list shows at once. |\n| Enter | Chooses the highlighted option. With nothing left in the list, creates what was typed with `creatable`, or takes it with `allows-custom-value`. On a closed field, submits the form. |\n| Escape | Closes the list and puts the chosen words back. On a closed field, a second Escape clears a single choice. |\n| Tab | Closes the list and moves on. |\n| Backspace | With `multiple`, on an empty field, removes the last tag. |\n| Left | With `multiple`, with the caret at the start of the text, moves to the last tag's remove button. Right on a right-to-left page. |\n| Left, Right on a tag | Move between the tags, and past the last back to the text. |\n| Delete, Backspace on a tag | Removes the tag. |\n| Space, Home, End, letters | Edit the text. |\n\n**ARIA.** The input is the `combobox`, named by the label, with\n`aria-expanded`, `aria-controls` naming the list, `aria-autocomplete`\n(`both` with `suggest`, `list` otherwise) and `aria-activedescendant` on\nthe highlighted option. The list is the listbox `Listbox` describes.\n\nOn Apple devices, where VoiceOver does not read the option the field points\nto, the field says it in a live region as the highlight moves, says how many\noptions there are as the list opens, and says a choice once it is made, as\nReact Aria's combobox does there.\n\nSet `autocomplete` to let a browser's autofill choose an option.\n\nWith `multiple`, each chosen option is a tag in the field with its own remove\ncontrol. The text is the field's one tab stop, and the arrow keys reach the\ntags from it. The panel stays open and the filter clears after each choice, so the\nnext choice starts from the whole list.\n\nWith `creatable`, the combobox offers a create row and fires `helix-create`.\nIt does not add the option. The options are your light DOM, and your\nframework would re-render over an element the combobox inserted, so add the\noption in your event handler.",
|
|
38461
|
+
"description": "The list is a `Listbox`, which handles filtering, the empty state, the\nhighlight, `aria-activedescendant`, and scrolling an option into view. This\nelement handles the field, the panel, and the communication between them.\n\nThe typed text and the value are separate. The text is a filter: it narrows\nthe list and is then discarded. The value is the option you choose, and the\nfield then shows that option's text. The filter clears on close, so a\nreopened combobox starts from the whole list.\n\nFocus stays in the text field. The arrow keys move through the list with the\nlistbox's public `navigate` method. As typing narrows the list, a screen\nreader hears how many options are left, such as \"3 results\". Emptying the\nfield and leaving it clears a single choice.\n\n**Keyboard.**\n\n| Key | What it does |\n|---|---|\n| Down, Up | On a closed field, opens the list on the chosen option, or the first or the last. In the open list, moves the highlight, round from the last option to the first. |\n| Alt with Down, Alt with Up | Opens the list without moving the highlight, and closes it, choosing nothing. |\n| Page Down, Page Up | In the open list, moves the highlight by as many options as the list shows at once. |\n| Enter | Chooses the highlighted option. With nothing left in the list, creates what was typed with `creatable`, or takes it with `allows-custom-value`. On a closed field, submits the form. |\n| Escape | Closes the list and puts the chosen words back. On a closed field, a second Escape clears a single choice. |\n| Tab | Closes the list and moves on. |\n| Backspace | With `multiple`, on an empty field, removes the last tag. |\n| Left | With `multiple`, with the caret at the start of the text, moves to the last tag's remove button. Right on a right-to-left page. |\n| Left, Right on a tag | Move between the tags, and past the last back to the text. |\n| Delete, Backspace on a tag | Removes the tag. |\n| Space, Home, End, letters | Edit the text. |\n\n**ARIA.** The input is the `combobox`, named by the label, with\n`aria-expanded`, `aria-controls` naming the list, `aria-autocomplete`\n(`both` with `suggest`, `list` otherwise) and `aria-activedescendant` on\nthe highlighted option. The list is the listbox `Listbox` describes.\n\nOn Apple devices, where VoiceOver does not read the option the field points\nto, the field says it in a live region as the highlight moves, says how many\noptions there are as the list opens, and says a choice once it is made, as\nReact Aria's combobox does there.\n\nSet `autocomplete` to let a browser's autofill choose an option.\n\nWith `multiple`, each chosen option is a tag in the field with its own remove\ncontrol. The text is the field's one tab stop, and the arrow keys reach the\ntags from it. The panel stays open and the filter clears after each choice, so the\nnext choice starts from the whole list.\n\nWith `creatable`, the combobox offers a create row and fires `helix-create`.\nIt does not add the option. The options are your light DOM, and your\nframework would re-render over an element the combobox inserted, so add the\noption in your event handler.",
|
|
38136
38462
|
"name": "HelixHeadlessCombobox",
|
|
38137
38463
|
"cssParts": [
|
|
38138
38464
|
{
|
|
@@ -48491,6 +48817,10 @@
|
|
|
48491
48817
|
"description": "While `error-text` is set.",
|
|
48492
48818
|
"name": "error"
|
|
48493
48819
|
},
|
|
48820
|
+
{
|
|
48821
|
+
"description": "While `loading` is set, as the rows are on their way.",
|
|
48822
|
+
"name": "loading"
|
|
48823
|
+
},
|
|
48494
48824
|
{
|
|
48495
48825
|
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
48496
48826
|
"name": "settled",
|
|
@@ -49604,7 +49934,7 @@
|
|
|
49604
49934
|
"text": "readonly string[] | undefined"
|
|
49605
49935
|
},
|
|
49606
49936
|
"privacy": "protected",
|
|
49607
|
-
"description": "Each date, where `mode` holds several, sent one entry each.\n\
|
|
49937
|
+
"description": "Each date, where `mode` holds several, sent one entry each.\n\nText that is no date, such as `August 5`, is sent as one empty entry, as\na native date field sends a date it cannot read, in every mode.",
|
|
49608
49938
|
"readonly": true,
|
|
49609
49939
|
"inheritedFrom": {
|
|
49610
49940
|
"name": "MixinPickerField",
|
|
@@ -50184,6 +50514,81 @@
|
|
|
50184
50514
|
"module": "src/mixins/mixin-segmented-field/mixin-segmented-field.ts"
|
|
50185
50515
|
}
|
|
50186
50516
|
},
|
|
50517
|
+
{
|
|
50518
|
+
"kind": "method",
|
|
50519
|
+
"name": "edit",
|
|
50520
|
+
"privacy": "private",
|
|
50521
|
+
"return": {
|
|
50522
|
+
"type": {
|
|
50523
|
+
"text": "boolean"
|
|
50524
|
+
}
|
|
50525
|
+
},
|
|
50526
|
+
"parameters": [
|
|
50527
|
+
{
|
|
50528
|
+
"name": "element",
|
|
50529
|
+
"type": {
|
|
50530
|
+
"text": "HTMLElement"
|
|
50531
|
+
}
|
|
50532
|
+
},
|
|
50533
|
+
{
|
|
50534
|
+
"name": "key",
|
|
50535
|
+
"type": {
|
|
50536
|
+
"text": "string"
|
|
50537
|
+
}
|
|
50538
|
+
}
|
|
50539
|
+
],
|
|
50540
|
+
"description": "Applies an editing key to the segment, the arrows, Backspace, a digit or\na letter, and says whether it edited anything.",
|
|
50541
|
+
"inheritedFrom": {
|
|
50542
|
+
"name": "MixinSegmentedField",
|
|
50543
|
+
"module": "src/mixins/mixin-segmented-field/mixin-segmented-field.ts"
|
|
50544
|
+
}
|
|
50545
|
+
},
|
|
50546
|
+
{
|
|
50547
|
+
"kind": "field",
|
|
50548
|
+
"name": "composing",
|
|
50549
|
+
"type": {
|
|
50550
|
+
"text": "[Node, string | null][]"
|
|
50551
|
+
},
|
|
50552
|
+
"privacy": "private",
|
|
50553
|
+
"default": "[]",
|
|
50554
|
+
"description": "What the segment's text was when a composition started to write into it.",
|
|
50555
|
+
"inheritedFrom": {
|
|
50556
|
+
"name": "MixinSegmentedField",
|
|
50557
|
+
"module": "src/mixins/mixin-segmented-field/mixin-segmented-field.ts"
|
|
50558
|
+
}
|
|
50559
|
+
},
|
|
50560
|
+
{
|
|
50561
|
+
"kind": "field",
|
|
50562
|
+
"name": "handleSegmentBeforeInput",
|
|
50563
|
+
"privacy": "private",
|
|
50564
|
+
"readonly": true,
|
|
50565
|
+
"description": "Text a touch keyboard writes into a segment, which arrives as input and\nnot as a key: an on-screen keyboard sends `Unidentified` for its keys,\nso a digit tapped on a phone is read here, as React Aria's segments read\nit. Every input is canceled, so the segment holds only what the field\ndraws in it.",
|
|
50566
|
+
"inheritedFrom": {
|
|
50567
|
+
"name": "MixinSegmentedField",
|
|
50568
|
+
"module": "src/mixins/mixin-segmented-field/mixin-segmented-field.ts"
|
|
50569
|
+
}
|
|
50570
|
+
},
|
|
50571
|
+
{
|
|
50572
|
+
"kind": "field",
|
|
50573
|
+
"name": "handleSegmentInput",
|
|
50574
|
+
"privacy": "private",
|
|
50575
|
+
"readonly": true,
|
|
50576
|
+
"inheritedFrom": {
|
|
50577
|
+
"name": "MixinSegmentedField",
|
|
50578
|
+
"module": "src/mixins/mixin-segmented-field/mixin-segmented-field.ts"
|
|
50579
|
+
}
|
|
50580
|
+
},
|
|
50581
|
+
{
|
|
50582
|
+
"kind": "field",
|
|
50583
|
+
"name": "collapseSelection",
|
|
50584
|
+
"privacy": "private",
|
|
50585
|
+
"readonly": true,
|
|
50586
|
+
"description": "Keeps the caret at the start of the segment with focus, where Chromium\nfires input for a typed key, and where Android's keyboard does not\ncompose over the segment's text. A selection already there, or outside\nthe segment, is left alone.",
|
|
50587
|
+
"inheritedFrom": {
|
|
50588
|
+
"name": "MixinSegmentedField",
|
|
50589
|
+
"module": "src/mixins/mixin-segmented-field/mixin-segmented-field.ts"
|
|
50590
|
+
}
|
|
50591
|
+
},
|
|
50187
50592
|
{
|
|
50188
50593
|
"kind": "field",
|
|
50189
50594
|
"name": "handleSegmentKeydown",
|
|
@@ -66133,6 +66538,35 @@
|
|
|
66133
66538
|
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
66134
66539
|
}
|
|
66135
66540
|
},
|
|
66541
|
+
{
|
|
66542
|
+
"kind": "field",
|
|
66543
|
+
"name": "present",
|
|
66544
|
+
"type": {
|
|
66545
|
+
"text": "boolean"
|
|
66546
|
+
},
|
|
66547
|
+
"privacy": "protected",
|
|
66548
|
+
"description": "Whether the element is still on the page for a reader, which is what\nthe focus hand-off waits on: connected, for a surface the page removes.\nA surface that hides itself says it is gone once hidden, and calls\n`handFocusOn` then.",
|
|
66549
|
+
"readonly": true,
|
|
66550
|
+
"inheritedFrom": {
|
|
66551
|
+
"name": "MixinDismissible",
|
|
66552
|
+
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
66553
|
+
}
|
|
66554
|
+
},
|
|
66555
|
+
{
|
|
66556
|
+
"kind": "method",
|
|
66557
|
+
"name": "handFocusOn",
|
|
66558
|
+
"privacy": "protected",
|
|
66559
|
+
"return": {
|
|
66560
|
+
"type": {
|
|
66561
|
+
"text": "void"
|
|
66562
|
+
}
|
|
66563
|
+
},
|
|
66564
|
+
"description": "Hands focus on now, where a dismissal is waiting for this element to\ngo: for a surface that hides itself, once it has.",
|
|
66565
|
+
"inheritedFrom": {
|
|
66566
|
+
"name": "MixinDismissible",
|
|
66567
|
+
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
66568
|
+
}
|
|
66569
|
+
},
|
|
66136
66570
|
{
|
|
66137
66571
|
"kind": "method",
|
|
66138
66572
|
"name": "dismiss",
|
|
@@ -71687,7 +72121,7 @@
|
|
|
71687
72121
|
"type": {
|
|
71688
72122
|
"text": "'long' | 'narrow' | 'short' | undefined"
|
|
71689
72123
|
},
|
|
71690
|
-
"description": "Shows how long ago the timestamp was, or how long until it, in words, in\nplace of the date: `long` (\"3 hours ago\"), `short` (\"3 hr. ago\") or\n`narrow` (\"3h ago\").\n\nThe reading refreshes as it goes stale, as `elapsed` does, and the whole\ndate is its title. `elapsed` wins where both are set.",
|
|
72124
|
+
"description": "Shows how long ago the timestamp was, or how long until it, in words, in\nplace of the date: `long` (\"3 hours ago\"), `short` (\"3 hr. ago\") or\n`narrow` (\"3h ago\").\n\nThe reading refreshes as it goes stale, as `elapsed` does, and the whole\ndate is its title. `elapsed` wins where both are set. Written with no\nvalue, as `elapsed` is, or with a style `Intl` does not know, it reads\n`long`.",
|
|
71691
72125
|
"attribute": "relative"
|
|
71692
72126
|
},
|
|
71693
72127
|
{
|
|
@@ -72334,7 +72768,7 @@
|
|
|
72334
72768
|
"type": {
|
|
72335
72769
|
"text": "'long' | 'narrow' | 'short' | undefined"
|
|
72336
72770
|
},
|
|
72337
|
-
"description": "Shows how long ago the timestamp was, or how long until it, in words, in\nplace of the date: `long` (\"3 hours ago\"), `short` (\"3 hr. ago\") or\n`narrow` (\"3h ago\").\n\nThe reading refreshes as it goes stale, as `elapsed` does, and the whole\ndate is its title. `elapsed` wins where both are set.",
|
|
72771
|
+
"description": "Shows how long ago the timestamp was, or how long until it, in words, in\nplace of the date: `long` (\"3 hours ago\"), `short` (\"3 hr. ago\") or\n`narrow` (\"3h ago\").\n\nThe reading refreshes as it goes stale, as `elapsed` does, and the whole\ndate is its title. `elapsed` wins where both are set. Written with no\nvalue, as `elapsed` is, or with a style `Intl` does not know, it reads\n`long`.",
|
|
72338
72772
|
"fieldName": "relative"
|
|
72339
72773
|
},
|
|
72340
72774
|
{
|
|
@@ -86861,6 +87295,23 @@
|
|
|
86861
87295
|
"description": "The items, read from the host.\n\n**`knownChildren` and not `children`**, which is undefined on the server:\nspreading it threw the first time a lightbox was rendered there open,\nwhich is the first time anything asked it for its items on a server.",
|
|
86862
87296
|
"readonly": true
|
|
86863
87297
|
},
|
|
87298
|
+
{
|
|
87299
|
+
"kind": "field",
|
|
87300
|
+
"name": "handleSlotChange",
|
|
87301
|
+
"privacy": "private",
|
|
87302
|
+
"readonly": true,
|
|
87303
|
+
"description": "The set changed: render it again.\n\n`items` is read on each render and nothing else marks a render as due when\nan item arrives or leaves, so an item appended after the first render had\nno role description, no place in the set, and no part in the count until\nsome unrelated property changed."
|
|
87304
|
+
},
|
|
87305
|
+
{
|
|
87306
|
+
"kind": "field",
|
|
87307
|
+
"name": "itemWatch",
|
|
87308
|
+
"type": {
|
|
87309
|
+
"text": "MutationObserver | undefined"
|
|
87310
|
+
},
|
|
87311
|
+
"privacy": "private",
|
|
87312
|
+
"default": "undefined",
|
|
87313
|
+
"description": "Watches each item's `label` and `value`, which no slot reports.\n\n`value` decides which item `active` names, and `label` fills `{label}` in\n`status-label` and `slide-label`. A change to either left the old item\nshown, or the old words in the counter, until some unrelated property\nchanged. `Select` watches its options for the same reason.\n\nThe subtree, since an observer on the host sees no attribute on its\nchildren otherwise. Only changes on the items themselves count: a `<progress\nvalue>` inside an item, updated while a video plays, would otherwise render\nthe viewer again on each update.\n\nMade on connection, there being no `MutationObserver` on a server."
|
|
87314
|
+
},
|
|
86864
87315
|
{
|
|
86865
87316
|
"kind": "field",
|
|
86866
87317
|
"name": "dialog",
|
|
@@ -87055,6 +87506,16 @@
|
|
|
87055
87506
|
],
|
|
87056
87507
|
"description": "Home and End, which are an index rather than a step."
|
|
87057
87508
|
},
|
|
87509
|
+
{
|
|
87510
|
+
"kind": "field",
|
|
87511
|
+
"name": "zoomedItem",
|
|
87512
|
+
"type": {
|
|
87513
|
+
"text": "HelixHeadlessLightboxItem | undefined"
|
|
87514
|
+
},
|
|
87515
|
+
"privacy": "private",
|
|
87516
|
+
"default": "undefined",
|
|
87517
|
+
"description": "The item shown at the last update, whose zoom a different item does not keep."
|
|
87518
|
+
},
|
|
87058
87519
|
{
|
|
87059
87520
|
"kind": "field",
|
|
87060
87521
|
"name": "shown",
|
|
@@ -112816,6 +113277,35 @@
|
|
|
112816
113277
|
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
112817
113278
|
}
|
|
112818
113279
|
},
|
|
113280
|
+
{
|
|
113281
|
+
"kind": "field",
|
|
113282
|
+
"name": "present",
|
|
113283
|
+
"type": {
|
|
113284
|
+
"text": "boolean"
|
|
113285
|
+
},
|
|
113286
|
+
"privacy": "protected",
|
|
113287
|
+
"description": "Whether the element is still on the page for a reader, which is what\nthe focus hand-off waits on: connected, for a surface the page removes.\nA surface that hides itself says it is gone once hidden, and calls\n`handFocusOn` then.",
|
|
113288
|
+
"readonly": true,
|
|
113289
|
+
"inheritedFrom": {
|
|
113290
|
+
"name": "MixinDismissible",
|
|
113291
|
+
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
113292
|
+
}
|
|
113293
|
+
},
|
|
113294
|
+
{
|
|
113295
|
+
"kind": "method",
|
|
113296
|
+
"name": "handFocusOn",
|
|
113297
|
+
"privacy": "protected",
|
|
113298
|
+
"return": {
|
|
113299
|
+
"type": {
|
|
113300
|
+
"text": "void"
|
|
113301
|
+
}
|
|
113302
|
+
},
|
|
113303
|
+
"description": "Hands focus on now, where a dismissal is waiting for this element to\ngo: for a surface that hides itself, once it has.",
|
|
113304
|
+
"inheritedFrom": {
|
|
113305
|
+
"name": "MixinDismissible",
|
|
113306
|
+
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
113307
|
+
}
|
|
113308
|
+
},
|
|
112819
113309
|
{
|
|
112820
113310
|
"kind": "method",
|
|
112821
113311
|
"name": "dismiss",
|
|
@@ -114771,7 +115261,7 @@
|
|
|
114771
115261
|
"declarations": [
|
|
114772
115262
|
{
|
|
114773
115263
|
"kind": "class",
|
|
114774
|
-
"description": "A separate family from `Input`'s `type=\"number\"`. It renders two buttons,\nbinds four keys `Input` does not, and handles clamping and stepping.\n\nThe field is `type=\"text\"` with `inputmode
|
|
115264
|
+
"description": "A separate family from `Input`'s `type=\"number\"`. It renders two buttons,\nbinds four keys `Input` does not, and handles clamping and stepping.\n\nThe field is `type=\"text\"` with an `inputmode` for a number. Tested in a real\nbrowser, `type=\"number\"` fails in three ways:\n- Typing `12e` gives a `.value` of `\"\"`, so the element cannot see what you\n typed. A `type=\"text\"` field keeps `\"12e\"`.\n- The mouse wheel over a focused field changes the value, for example from 5\n to 4, when you only meant to scroll the page.\n- `selectionStart` is `null`, so the caret cannot be managed.\n\n`inputmode` keeps a numeric keypad on phones, chosen as React Aria's\nNumberField chooses it: a keypad with a minus key where the number can be\nnegative, and one with a decimal separator where the format shows a\nfraction. An iPhone has no keypad with a minus key, so a field that can be\nnegative takes the full keyboard there.\n\n`format-options` shows the number with `Intl.NumberFormat` in `locale`, as a\ncurrency, a percent or a unit, while the field is not being edited. Focus\nshows the number itself, and a typed `$1,200` or `25%` is read back with the\nsame options. The value stays the plain number: `1200`, or `0.25` for 25%.\nThe locale's group separators are read in every field, so `1,234` is a\nnumber in `en-US`.\n\nThe field and its two buttons sit in a `role=\"group\"` named by the label,\nand the field carries `role-label`, \"number field\" in English, as its\n`aria-roledescription`, as React Aria's NumberField does. On iOS and iPadOS the field is a plain text\nfield, with no `role=\"spinbutton\"`, which VoiceOver reads as a slider you\ncannot type in, and no role description, so VoiceOver says the field is\nrequired. React Aria's NumberField does the same.\n\nValidity follows the platform's rules: `min`, `max`, and `step` are checked\nand reported through the host's own `setValidity`, under the platform's flag\nnames.\n\nStepping is separate from typing, so a number is not corrected while you type\nit. While you type, the form holds the number the text reads as, so a field\nshowing `$2,500.50` gives the form 2500.5, and text that is not a number\ngives it nothing, as a native number field does.\n\nHolding a stepper button down steps once, then again after 400 milliseconds,\nthen every 60 milliseconds until you let go, as React Aria's NumberField does.\n\n**Keyboard.** The field is one tab stop, and the stepper buttons are not in\nthe tab order.\n\n| Key | What it does |\n|---|---|\n| Up, Down | Steps the value up or down by `step`. |\n| Page Up, Page Down | Steps by `large-step` steps, ten by default. |\n| Home, End | Goes to `min` or `max`, where there is one. Without one, moves the caret. |\n| Enter | Commits the typed number and submits the form, as a native field does. |\n\nThe field has `role=\"spinbutton\"` with `aria-valuenow`, `aria-valuemin`,\n`aria-valuemax`, and the formatted text in `aria-valuetext`.",
|
|
114775
115265
|
"name": "HelixHeadlessNumberInput",
|
|
114776
115266
|
"cssParts": [
|
|
114777
115267
|
{
|
|
@@ -115044,9 +115534,9 @@
|
|
|
115044
115534
|
"kind": "field",
|
|
115045
115535
|
"name": "step",
|
|
115046
115536
|
"type": {
|
|
115047
|
-
"text": "number | undefined"
|
|
115537
|
+
"text": "number | 'any' | undefined"
|
|
115048
115538
|
},
|
|
115049
|
-
"description": "How far one step moves. A value off the step grid, counted from `min`, is\ninvalid, as it is in a native number field.\n\nUnset, a step moves by one, or by one percent under a percent format, and\na typed number is rounded to the smallest amount
|
|
115539
|
+
"description": "How far one step moves. A value off the step grid, counted from `min`, is\ninvalid, as it is in a native number field.\n\nUnset, a step moves by one, or by one percent under a percent format, and\na typed number is rounded to the smallest amount the format shows, as\nReact Aria's NumberField does: a field showing dollars keeps the cents\ntyped into it, and one with no `format-options` keeps three decimal\nplaces. `any` puts the number on no grid, as it does in a native number\nfield: a step moves by one, and any number in range is valid.",
|
|
115050
115540
|
"attribute": "step"
|
|
115051
115541
|
},
|
|
115052
115542
|
{
|
|
@@ -115122,6 +115612,23 @@
|
|
|
115122
115612
|
"readonly": true,
|
|
115123
115613
|
"description": "Whether this is an iPhone or an iPad, read once on the client. A server\nhas no navigator and renders the spinbutton."
|
|
115124
115614
|
},
|
|
115615
|
+
{
|
|
115616
|
+
"kind": "field",
|
|
115617
|
+
"name": "phone",
|
|
115618
|
+
"privacy": "private",
|
|
115619
|
+
"readonly": true,
|
|
115620
|
+
"description": "The phone the field is on, read once on the client, for the keypad it offers."
|
|
115621
|
+
},
|
|
115622
|
+
{
|
|
115623
|
+
"kind": "field",
|
|
115624
|
+
"name": "keypad",
|
|
115625
|
+
"type": {
|
|
115626
|
+
"text": "'decimal' | 'numeric' | 'text'"
|
|
115627
|
+
},
|
|
115628
|
+
"privacy": "private",
|
|
115629
|
+
"description": "The keypad a phone shows, as React Aria's NumberField chooses it.\n`numeric` on Android has a minus key and a decimal separator, and\n`decimal` has no minus key. On an iPhone neither has a minus key, so a\nnumber that can be negative takes the full keyboard. Measured before\nthis: `decimal` with `min=\"-10\"`, so a phone could not type the minus.",
|
|
115630
|
+
"readonly": true
|
|
115631
|
+
},
|
|
115125
115632
|
{
|
|
115126
115633
|
"kind": "field",
|
|
115127
115634
|
"name": "control",
|
|
@@ -115150,6 +115657,16 @@
|
|
|
115150
115657
|
"privacy": "private",
|
|
115151
115658
|
"description": "The grain last read off the format, with the locale and options it was read for."
|
|
115152
115659
|
},
|
|
115660
|
+
{
|
|
115661
|
+
"kind": "field",
|
|
115662
|
+
"name": "stepSize",
|
|
115663
|
+
"type": {
|
|
115664
|
+
"text": "number"
|
|
115665
|
+
},
|
|
115666
|
+
"privacy": "private",
|
|
115667
|
+
"description": "The step as a number, or zero where it is unset or `any`.",
|
|
115668
|
+
"readonly": true
|
|
115669
|
+
},
|
|
115153
115670
|
{
|
|
115154
115671
|
"kind": "field",
|
|
115155
115672
|
"name": "stride",
|
|
@@ -115167,7 +115684,7 @@
|
|
|
115167
115684
|
"text": "number"
|
|
115168
115685
|
},
|
|
115169
115686
|
"privacy": "private",
|
|
115170
|
-
"description": "The grid a typed number is rounded to: `step` where it is set,
|
|
115687
|
+
"description": "The grid a typed number is rounded to: `step` where it is set, nothing\nwhere it is `any`, and otherwise the smallest amount the format shows.\nMeasured before this: with no step and no format, `2,75` typed in German\nbecame 3 on blur.",
|
|
115171
115688
|
"readonly": true
|
|
115172
115689
|
},
|
|
115173
115690
|
{
|
|
@@ -115329,6 +115846,13 @@
|
|
|
115329
115846
|
"readonly": true,
|
|
115330
115847
|
"description": "A stepper button pressed with a pointer steps at once, and again while it\nis held.\n\nCaptured, so letting go outside the button still ends the hold. A click\nwith no press before it, from a screen reader or a script, steps once in\n`handleStepperClick`."
|
|
115331
115848
|
},
|
|
115849
|
+
{
|
|
115850
|
+
"kind": "field",
|
|
115851
|
+
"name": "handleStepperMouseDown",
|
|
115852
|
+
"privacy": "private",
|
|
115853
|
+
"readonly": true,
|
|
115854
|
+
"description": "Keeps a pressed stepper from taking focus from the field."
|
|
115855
|
+
},
|
|
115332
115856
|
{
|
|
115333
115857
|
"kind": "field",
|
|
115334
115858
|
"name": "stopRepeat",
|
|
@@ -116976,9 +117500,9 @@
|
|
|
116976
117500
|
{
|
|
116977
117501
|
"name": "step",
|
|
116978
117502
|
"type": {
|
|
116979
|
-
"text": "number | undefined"
|
|
117503
|
+
"text": "number | 'any' | undefined"
|
|
116980
117504
|
},
|
|
116981
|
-
"description": "How far one step moves. A value off the step grid, counted from `min`, is\ninvalid, as it is in a native number field.\n\nUnset, a step moves by one, or by one percent under a percent format, and\na typed number is rounded to the smallest amount
|
|
117505
|
+
"description": "How far one step moves. A value off the step grid, counted from `min`, is\ninvalid, as it is in a native number field.\n\nUnset, a step moves by one, or by one percent under a percent format, and\na typed number is rounded to the smallest amount the format shows, as\nReact Aria's NumberField does: a field showing dollars keeps the cents\ntyped into it, and one with no `format-options` keeps three decimal\nplaces. `any` puts the number on no grid, as it does in a native number\nfield: a step moves by one, and any number in range is valid.",
|
|
116982
117506
|
"fieldName": "step"
|
|
116983
117507
|
},
|
|
116984
117508
|
{
|
|
@@ -117138,6 +117662,14 @@
|
|
|
117138
117662
|
}
|
|
117139
117663
|
],
|
|
117140
117664
|
"cssStates": [
|
|
117665
|
+
{
|
|
117666
|
+
"description": "The number is at `max`, so it cannot step up, as React Aria's NumberField says with `canIncrement`.",
|
|
117667
|
+
"name": "at-max"
|
|
117668
|
+
},
|
|
117669
|
+
{
|
|
117670
|
+
"description": "The number is at `min`, so it cannot step down.",
|
|
117671
|
+
"name": "at-min"
|
|
117672
|
+
},
|
|
117141
117673
|
{
|
|
117142
117674
|
"description": "The control has an error to show, from the browser's validation or from your `feedback`.",
|
|
117143
117675
|
"name": "invalid"
|
|
@@ -117326,6 +117858,10 @@
|
|
|
117326
117858
|
"description": "The number of entries a branch holds.",
|
|
117327
117859
|
"name": "count"
|
|
117328
117860
|
},
|
|
117861
|
+
{
|
|
117862
|
+
"description": "The row shown in the tree while it has no entries to show: no value, or a filter that matched none. It holds the `empty` slot.",
|
|
117863
|
+
"name": "empty"
|
|
117864
|
+
},
|
|
117329
117865
|
{
|
|
117330
117866
|
"description": "The tree and the copy button beside it.",
|
|
117331
117867
|
"name": "frame"
|
|
@@ -117391,6 +117927,12 @@
|
|
|
117391
117927
|
"name": "value"
|
|
117392
117928
|
}
|
|
117393
117929
|
],
|
|
117930
|
+
"slots": [
|
|
117931
|
+
{
|
|
117932
|
+
"description": "Shown in the tree while it has no entries to show. Defaults to `empty-label`, or `no-matches-label` while a filter matched none.",
|
|
117933
|
+
"name": "empty"
|
|
117934
|
+
}
|
|
117935
|
+
],
|
|
117394
117936
|
"members": [
|
|
117395
117937
|
{
|
|
117396
117938
|
"kind": "field",
|
|
@@ -117447,6 +117989,19 @@
|
|
|
117447
117989
|
"description": "How many levels start open.\n\nOne by default: the root is open and everything under it closed, so a\nreader sees the shape of the value before its contents. `0` starts with the\nroot closed; a large number opens everything, which on a big value is the\nwall of text this exists to avoid.",
|
|
117448
117990
|
"attribute": "default-depth"
|
|
117449
117991
|
},
|
|
117992
|
+
{
|
|
117993
|
+
"kind": "field",
|
|
117994
|
+
"name": "emptyLabel",
|
|
117995
|
+
"type": {
|
|
117996
|
+
"text": "string"
|
|
117997
|
+
},
|
|
117998
|
+
"default": "'Nothing to show'",
|
|
117999
|
+
"description": "What the tree says while there is no value to show, such as before a\nfetch answers. The `empty` slot replaces it.",
|
|
118000
|
+
"attribute": "empty-label",
|
|
118001
|
+
"helix": {
|
|
118002
|
+
"words": true
|
|
118003
|
+
}
|
|
118004
|
+
},
|
|
117450
118005
|
{
|
|
117451
118006
|
"kind": "field",
|
|
117452
118007
|
"name": "expanded",
|
|
@@ -117562,6 +118117,19 @@
|
|
|
117562
118117
|
"description": "Hides the copy button.\n\nNegative for the reason Code Block's is: a boolean attribute defaulting to\ntrue could never be turned off from markup.\n\n**It does not reflect, where Code Block's does**, and the difference is what\nthe two sheets need. Code Block reserves the button's width with\n`:host(:not([no-copy]))`, so the attribute has to be there for a consumer\nwho set the property. This button is positioned out of the flow and takes no\nroom, so nothing selects on it, and reflection exists so that a selector can\nreach a value.",
|
|
117563
118118
|
"attribute": "no-copy"
|
|
117564
118119
|
},
|
|
118120
|
+
{
|
|
118121
|
+
"kind": "field",
|
|
118122
|
+
"name": "noMatchesLabel",
|
|
118123
|
+
"type": {
|
|
118124
|
+
"text": "string"
|
|
118125
|
+
},
|
|
118126
|
+
"default": "'No matches'",
|
|
118127
|
+
"description": "What the tree says while a filter matched no entry. The `empty` slot\nreplaces it.",
|
|
118128
|
+
"attribute": "no-matches-label",
|
|
118129
|
+
"helix": {
|
|
118130
|
+
"words": true
|
|
118131
|
+
}
|
|
118132
|
+
},
|
|
117565
118133
|
{
|
|
117566
118134
|
"kind": "field",
|
|
117567
118135
|
"name": "renderValue",
|
|
@@ -117831,6 +118399,16 @@
|
|
|
117831
118399
|
],
|
|
117832
118400
|
"description": "Opens the branches around each path, where the value has them."
|
|
117833
118401
|
},
|
|
118402
|
+
{
|
|
118403
|
+
"kind": "field",
|
|
118404
|
+
"name": "blank",
|
|
118405
|
+
"type": {
|
|
118406
|
+
"text": "boolean"
|
|
118407
|
+
},
|
|
118408
|
+
"privacy": "private",
|
|
118409
|
+
"description": "Whether the tree has no entries to show. Not while a value named by `for`\nis still to be read, as on a server and while hydrating what one sent,\nwhere it says nothing yet about the value.",
|
|
118410
|
+
"readonly": true
|
|
118411
|
+
},
|
|
117834
118412
|
{
|
|
117835
118413
|
"kind": "method",
|
|
117836
118414
|
"name": "counted",
|
|
@@ -118631,6 +119209,15 @@
|
|
|
118631
119209
|
"description": "How many levels start open.\n\nOne by default: the root is open and everything under it closed, so a\nreader sees the shape of the value before its contents. `0` starts with the\nroot closed; a large number opens everything, which on a big value is the\nwall of text this exists to avoid.",
|
|
118632
119210
|
"fieldName": "defaultDepth"
|
|
118633
119211
|
},
|
|
119212
|
+
{
|
|
119213
|
+
"name": "empty-label",
|
|
119214
|
+
"type": {
|
|
119215
|
+
"text": "string"
|
|
119216
|
+
},
|
|
119217
|
+
"default": "'Nothing to show'",
|
|
119218
|
+
"description": "What the tree says while there is no value to show, such as before a\nfetch answers. The `empty` slot replaces it.",
|
|
119219
|
+
"fieldName": "emptyLabel"
|
|
119220
|
+
},
|
|
118634
119221
|
{
|
|
118635
119222
|
"name": "filter",
|
|
118636
119223
|
"type": {
|
|
@@ -118719,6 +119306,15 @@
|
|
|
118719
119306
|
"description": "Hides the copy button.\n\nNegative for the reason Code Block's is: a boolean attribute defaulting to\ntrue could never be turned off from markup.\n\n**It does not reflect, where Code Block's does**, and the difference is what\nthe two sheets need. Code Block reserves the button's width with\n`:host(:not([no-copy]))`, so the attribute has to be there for a consumer\nwho set the property. This button is positioned out of the flow and takes no\nroom, so nothing selects on it, and reflection exists so that a selector can\nreach a value.",
|
|
118720
119307
|
"fieldName": "noCopy"
|
|
118721
119308
|
},
|
|
119309
|
+
{
|
|
119310
|
+
"name": "no-matches-label",
|
|
119311
|
+
"type": {
|
|
119312
|
+
"text": "string"
|
|
119313
|
+
},
|
|
119314
|
+
"default": "'No matches'",
|
|
119315
|
+
"description": "What the tree says while a filter matched no entry. The `empty` slot\nreplaces it.",
|
|
119316
|
+
"fieldName": "noMatchesLabel"
|
|
119317
|
+
},
|
|
118722
119318
|
{
|
|
118723
119319
|
"name": "result-label",
|
|
118724
119320
|
"type": {
|
|
@@ -118755,6 +119351,28 @@
|
|
|
118755
119351
|
"fieldName": "windowed"
|
|
118756
119352
|
}
|
|
118757
119353
|
],
|
|
119354
|
+
"cssStates": [
|
|
119355
|
+
{
|
|
119356
|
+
"description": "While the tree has no entries to show: no value, or a filter that matched none.",
|
|
119357
|
+
"name": "empty"
|
|
119358
|
+
},
|
|
119359
|
+
{
|
|
119360
|
+
"description": "While `filter` holds text.",
|
|
119361
|
+
"name": "filtered"
|
|
119362
|
+
},
|
|
119363
|
+
{
|
|
119364
|
+
"description": "While `filter` holds text and matched at least one entry.",
|
|
119365
|
+
"name": "matched"
|
|
119366
|
+
},
|
|
119367
|
+
{
|
|
119368
|
+
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
119369
|
+
"name": "settled",
|
|
119370
|
+
"inheritedFrom": {
|
|
119371
|
+
"name": "HelixElement",
|
|
119372
|
+
"module": "src/helix-element/helix-element.ts"
|
|
119373
|
+
}
|
|
119374
|
+
}
|
|
119375
|
+
],
|
|
118758
119376
|
"superclass": {
|
|
118759
119377
|
"name": "HelixElement",
|
|
118760
119378
|
"package": "@fusion.dev/helix-core"
|
|
@@ -118787,16 +119405,6 @@
|
|
|
118787
119405
|
},
|
|
118788
119406
|
"tagName": "helix-headless-object-inspector",
|
|
118789
119407
|
"customElement": true,
|
|
118790
|
-
"cssStates": [
|
|
118791
|
-
{
|
|
118792
|
-
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
118793
|
-
"name": "settled",
|
|
118794
|
-
"inheritedFrom": {
|
|
118795
|
-
"name": "HelixElement",
|
|
118796
|
-
"module": "src/helix-element/helix-element.ts"
|
|
118797
|
-
}
|
|
118798
|
-
}
|
|
118799
|
-
],
|
|
118800
119408
|
"modulePath": "src/object-inspector/root/object-inspector-root.ts",
|
|
118801
119409
|
"definitionPath": "src/object-inspector/root/object-inspector-root.ts"
|
|
118802
119410
|
}
|
|
@@ -119653,6 +120261,21 @@
|
|
|
119653
120261
|
}
|
|
119654
120262
|
]
|
|
119655
120263
|
},
|
|
120264
|
+
{
|
|
120265
|
+
"kind": "javascript-module",
|
|
120266
|
+
"path": "src/option/root/index.ts",
|
|
120267
|
+
"declarations": [],
|
|
120268
|
+
"exports": [
|
|
120269
|
+
{
|
|
120270
|
+
"kind": "js",
|
|
120271
|
+
"name": "*",
|
|
120272
|
+
"declaration": {
|
|
120273
|
+
"name": "*",
|
|
120274
|
+
"module": "src/option/root/option-root.js"
|
|
120275
|
+
}
|
|
120276
|
+
}
|
|
120277
|
+
]
|
|
120278
|
+
},
|
|
119656
120279
|
{
|
|
119657
120280
|
"kind": "javascript-module",
|
|
119658
120281
|
"path": "src/option/root/option-root.ts",
|
|
@@ -155239,7 +155862,7 @@
|
|
|
155239
155862
|
"declarations": [
|
|
155240
155863
|
{
|
|
155241
155864
|
"kind": "class",
|
|
155242
|
-
"description": "Lays out the rows on a CSS grid, so every column lines up across rows and\neach row stays a real element that can be styled, hidden, or made\ninteractive. A `<table>` layout aligns columns but limits almost everything\nelse.\n\nA grid of elements has no table structure for assistive technology, so the\nroles are set explicitly: `table`, `row`, `cell`, `columnheader`, and\n`rowheader` for a `header` cell in a row of values. Rows are\n`display: contents`, so their cells become items of the one grid.\n\n**Sorting.** A column with `sortable` and a `field` draws its heading as a\nbutton that sorts the rows by the text of its cells, numbers by their value.\nYour markup is not reordered: the table draws the rows in the sorted order.\n\n1. Each press cycles the column through ascending, descending, and the\n order the rows were written in, which keeps a server's own ranking\n reachable.\n2. `helix-sort` asks first, with `field:direction`, or empty for the written\n order. Refuse it to keep the order, or to sort the rows yourself and set\n `sort`.\n3. `helix-sorted` follows once the order stands, and `sort` holds it.\n4. The heading carries `aria-sort`, and a screen reader hears `sorted-label`\n (\"Sorted by Name, ascending\") or `unsorted-label` from a polite region.\n\nTab reaches each sort button, and Enter or Space presses it.\n\nThe `heading` slot names the table: slot a heading or a line of text into\nit, and the table is named by its words. An `aria-label` or `aria-labelledby` on the\nhost wins over it.\n\n**Selecting.** `selectable` adds a column of checkboxes.\n\n1. Each row is known by its `value`, or by its place among the rows where it\n has none, and `selected` holds the chosen keys, comma separated, the same\n shape `DataTable` uses. `default-selected` is where it starts.\n2. A row's checkbox is named by `select-row-label` (\"Select {row}\") with the\n words of the row's first cell. The checkbox in the heading selects every\n row, and shows a dash while only some are chosen.\n3. `helix-select` asks first, with every key the change would leave.\n Refuse it to keep the selection. `helix-selected` follows once it stands.\n4. A chosen row takes `:state(selected)`, and a screen reader hears\n `selected-label` (\"2 selected\") from a polite region.\n\nTab reaches each checkbox, and Space ticks it. To act on one row, put a\nlink or a button in a cell, or give the row an `href`.\n\n`selection-mode=\"single\"` selects one row at a time: ticking a row lets go\nof the one before, the heading holds no checkbox, and Shift and Control with\nA take in nothing more. `selection-behavior=\"replace\"` makes a press on a\nrow, anywhere but its own controls, select it alone, as a file list does,\nand in a `grid` table the arrow keys carry the selection with them. Control\nor Command with a press adds or takes out the row, and with an arrow moves\nwithout selecting. Shift with a press takes in the rows from the one last\nchosen.\n\n**Nesting rows.** A row with `parent` sits under the row of that key, as\na file sits in a folder. The table then draws a column of disclosure\nbuttons, under a heading named by `expand-column-label`: a row with rows\nunder it has a button named by `expand-row-label` (\"Expand {row}\") that\nsays with `aria-expanded` whether it is open, and the rows under a shut row\nare not drawn. `expanded` holds the open rows' keys, comma separated, and\n`default-expanded` is where it starts. A press asks with\n`helix-before-toggle` and tells with `helix-toggle`, both from the row, so\nyou can refuse it or load the rows on the way. A sort orders the rows\nunder each row among themselves, and in a `grid` table the table is a\n`treegrid` whose rows say their depth.\n\n**Moving rows.** `reorderable` adds a column of grips before the checkboxes,\nunder a heading named by `row-grips-label`.\n\n1. Each row is known by its `value`, or by its place among the rows where it\n has none, as for selecting. Give rows a `value` when they move, so a key\n stays with its row.\n2. A grip is a button named by `move-row-label` (\"Move {row}\") with the\n words of the row's first cell. Drag it to move its row, and the page\n scrolls near an edge. Or press it with Space, Enter, or a click to pick\n the row up, move it with Up, Down, Home, and End, and press it again to\n drop it. A click on another row drops it there, and Escape puts it back.\n3. `helix-before-reorder` asks first, and `helix-reorder` follows with\n `keys`, every row's key in the new order. **You move the rows**: the\n table moves no element of yours, and focus goes back to the moved row's\n grip once you have.\n4. Each step is said in the table's live region, in words you can change:\n `picked-up-label`, `moved-label`, `dropped-label`, and `canceled-label`.\n The grips do nothing while a sort is set.\n\n**A grid.** `grid` makes the table one tab stop that the arrow keys move\nthrough cell by cell, the headings included, as React Aria's table is. The\ntable is then a `grid` and each value a `gridcell`, and the table gives\nevery cell a `tabindex` so focus can rest on it: set `grid` only where the\ncells may carry one.\n\n| Key | What it does |\n|---|---|\n| Right, Left | Moves one cell along the row. Left moves on, on a right-to-left page. |\n| Down, Up | Moves one row, the headings included. |\n| Home, End | Moves to the first or the last cell of the row. |\n| Control with Home or End | Moves to the first or the last cell of the table. |\n| Page Down, Page Up | Moves by the rows that fit in view. |\n| Enter, F2 | Moves into the cell's links and controls. Escape or F2 moves back to the cell, and Tab moves between the controls of one cell. |\n| Enter on a cell of a row with `href` | Follows the row's link. |\n| Enter, Space on a sortable heading | Sorts by the column. |\n| Space on a row, Enter or Space on its checkbox cell | Selects the row, in a `selectable` table. |\n| Enter or Space on a disclosure cell | Shows or hides the rows under the row, in a table whose rows nest. |\n| Enter or Space on a grip cell | Picks the row up, or drops it, in a `reorderable` table. Up, Down, Home, and End move a row picked up, and Escape puts it back. |\n| Down, Up, Page Down, Page Up under `selection-behavior=\"replace\"` | Selects the row it moves to alone. Control or Command with the key moves without selecting. |\n| Shift with Down or Up | Selects the rows it moves across, in a `selectable` table. |\n| Shift with Space | Selects every row from the one last chosen, in a `selectable` table. |\n| Control or Command with A | Selects every row, in a `selectable` table. |\n| A letter or a word | Moves to the next row whose first cell starts with what you typed. |\n| Tab | Leaves the table. |\n\n**Loading more.** `load-more` sends `helix-load-more` once the end of the\ntable comes within a screen of view, in the box that scrolls it or the\npage, once for each number of rows: add rows and it can send it again. Set\n`loading` while you fetch, and the table asks for nothing until it clears.\n\nWhen the rows did not load, set `error-text`, such as \"The orders did not\nload\", and put a button that tries again in the `error` slot. The line shows\nafter the rows in place of the empty and loading lines, the live region says\nit, and the table takes the `error` state. Clear it once you try again.\n\nThe CSS custom properties listed for this component are written by it and\nread by the stylesheet that draws it. Do not set them. Each holds a number\nthe component computes and CSS cannot, so the stylesheet can draw the table\nwithout measuring anything.",
|
|
155865
|
+
"description": "Lays out the rows on a CSS grid, so every column lines up across rows and\neach row stays a real element that can be styled, hidden, or made\ninteractive. A `<table>` layout aligns columns but limits almost everything\nelse.\n\nA grid of elements has no table structure for assistive technology, so the\nroles are set explicitly: `table`, `row`, `cell`, `columnheader`, and\n`rowheader` for a `header` cell in a row of values. Rows are\n`display: contents`, so their cells become items of the one grid.\n\n**Sorting.** A column with `sortable` and a `field` draws its heading as a\nbutton that sorts the rows by the text of its cells, numbers by their value.\nYour markup is not reordered: the table draws the rows in the sorted order.\n\n1. Each press cycles the column through ascending, descending, and the\n order the rows were written in, which keeps a server's own ranking\n reachable.\n2. `helix-sort` asks first, with `field:direction`, or empty for the written\n order. Refuse it to keep the order, or to sort the rows yourself and set\n `sort`.\n3. `helix-sorted` follows once the order stands, and `sort` holds it.\n4. The heading carries `aria-sort`, and a screen reader hears `sorted-label`\n (\"Sorted by Name, ascending\") or `unsorted-label` from a polite region.\n\nTab reaches each sort button, and Enter or Space presses it.\n\nThe `heading` slot names the table: slot a heading or a line of text into\nit, and the table is named by its words. An `aria-label` or `aria-labelledby` on the\nhost wins over it.\n\n**Selecting.** `selectable` adds a column of checkboxes.\n\n1. Each row is known by its `value`, or by its place among the rows where it\n has none, and `selected` holds the chosen keys, comma separated, the same\n shape `DataTable` uses. `default-selected` is where it starts.\n2. A row's checkbox is named by `select-row-label` (\"Select {row}\") with the\n words of the row's first cell. The checkbox in the heading selects every\n row, and shows a dash while only some are chosen.\n3. `helix-select` asks first, with every key the change would leave.\n Refuse it to keep the selection. `helix-selected` follows once it stands.\n4. A chosen row takes `:state(selected)`, and a screen reader hears\n `selected-label` (\"2 selected\") from a polite region.\n\nTab reaches each checkbox, and Space ticks it. To act on one row, put a\nlink or a button in a cell, or give the row an `href`.\n\n`selection-mode=\"single\"` selects one row at a time: ticking a row lets go\nof the one before, the heading holds no checkbox, and Shift and Control with\nA take in nothing more. `selection-behavior=\"replace\"` makes a press on a\nrow, anywhere but its own controls, select it alone, as a file list does,\nand in a `grid` table the arrow keys carry the selection with them. Control\nor Command with a press adds or takes out the row, and with an arrow moves\nwithout selecting. Shift with a press takes in the rows from the one last\nchosen.\n\n**Nesting rows.** A row with `parent` sits under the row of that key, as\na file sits in a folder. The table then draws a column of disclosure\nbuttons, under a heading named by `expand-column-label`: a row with rows\nunder it has a button named by `expand-row-label` (\"Expand {row}\") that\nsays with `aria-expanded` whether it is open, and the rows under a shut row\nare not drawn. `expanded` holds the open rows' keys, comma separated, and\n`default-expanded` is where it starts. A press asks with\n`helix-before-toggle` and tells with `helix-toggle`, both from the row, so\nyou can refuse it or load the rows on the way. A sort orders the rows\nunder each row among themselves, and in a `grid` table the table is a\n`treegrid` whose rows say their depth.\n\n**Moving rows.** `reorderable` adds a column of grips before the checkboxes,\nunder a heading named by `row-grips-label`.\n\n1. Each row is known by its `value`, or by its place among the rows where it\n has none, as for selecting. Give rows a `value` when they move, so a key\n stays with its row.\n2. A grip is a button named by `move-row-label` (\"Move {row}\") with the\n words of the row's first cell. Drag it to move its row, and the page\n scrolls near an edge. Or press it with Space, Enter, or a click to pick\n the row up, move it with Up, Down, Home, and End, and press it again to\n drop it. A click on another row drops it there, and Escape puts it back.\n3. `helix-before-reorder` asks first, and `helix-reorder` follows with\n `keys`, every row's key in the new order. **You move the rows**: the\n table moves no element of yours, and focus goes back to the moved row's\n grip once you have.\n4. Each step is said in the table's live region, in words you can change:\n `picked-up-label`, `moved-label`, `dropped-label`, and `canceled-label`.\n The grips do nothing while a sort is set.\n\n**A grid.** `grid` makes the table one tab stop that the arrow keys move\nthrough cell by cell, the headings included, as React Aria's table is. The\ntable is then a `grid` and each value a `gridcell`, and the table gives\nevery cell a `tabindex` so focus can rest on it: set `grid` only where the\ncells may carry one.\n\n| Key | What it does |\n|---|---|\n| Right, Left | Moves one cell along the row. Left moves on, on a right-to-left page. |\n| Down, Up | Moves one row, the headings included. |\n| Home, End | Moves to the first or the last cell of the row. |\n| Control with Home or End | Moves to the first or the last cell of the table. |\n| Page Down, Page Up | Moves by the rows that fit in view. |\n| Enter, F2 | Moves into the cell's links and controls. Escape or F2 moves back to the cell, and Tab moves between the controls of one cell. |\n| Enter on a cell of a row with `href` | Follows the row's link. |\n| Enter, Space on a sortable heading | Sorts by the column. |\n| Space on a row, Enter or Space on its checkbox cell | Selects the row, in a `selectable` table. |\n| Enter or Space on a disclosure cell | Shows or hides the rows under the row, in a table whose rows nest. |\n| Right on a disclosure cell | Shows the rows under a shut row, and otherwise moves one cell along the row. Left does, on a right-to-left page. |\n| Left on a disclosure cell | Hides the rows under an open row, and moves to the row this one sits under from any other. |\n| Enter or Space on a grip cell | Picks the row up, or drops it, in a `reorderable` table. Up, Down, Home, and End move a row picked up, and Escape puts it back. |\n| Down, Up, Page Down, Page Up under `selection-behavior=\"replace\"` | Selects the row it moves to alone. Control or Command with the key moves without selecting. |\n| Shift with Down or Up | Selects the rows it moves across, in a `selectable` table. |\n| Shift with Space | Selects every row from the one last chosen, in a `selectable` table. |\n| Control or Command with A | Selects every row, in a `selectable` table. |\n| A letter or a word | Moves to the next row whose first cell starts with what you typed. |\n| Tab | Leaves the table. |\n\n**Loading more.** `load-more` sends `helix-load-more` once the end of the\ntable comes within a screen of view, in the box that scrolls it or the\npage, once for each number of rows: add rows and it can send it again. Set\n`loading` while you fetch, and the table asks for nothing until it clears.\n\nWhen the rows did not load, set `error-text`, such as \"The orders did not\nload\", and put a button that tries again in the `error` slot. The line shows\nafter the rows in place of the empty and loading lines, the live region says\nit, and the table takes the `error` state. Clear it once you try again.\n\nThe CSS custom properties listed for this component are written by it and\nread by the stylesheet that draws it. Do not set them. Each holds a number\nthe component computes and CSS cannot, so the stylesheet can draw the table\nwithout measuring anything.",
|
|
155243
155866
|
"name": "HelixHeadlessTable",
|
|
155244
155867
|
"cssProperties": [
|
|
155245
155868
|
{
|
|
@@ -155848,7 +156471,7 @@
|
|
|
155848
156471
|
"name": "gridKeys",
|
|
155849
156472
|
"privacy": "private",
|
|
155850
156473
|
"readonly": true,
|
|
155851
|
-
"default": "new TableGridController(this, { activate: (place, event) => this.activate(place, event), arrive: (to, control) => { if (this.replaces && !control) { this.chooseOnly(to) } }, columns: () => this.tableColumns.filter((column) => column.shown), lead: () => this.lead, on: () => this.grid, part: (name) => this.partNamed(name), rows: () => (this.childrenKnown ? this.arrangedRows : []), rowWords: () => this.arrangedRows.map((row) => textOf(row.children[0])), selectAll: () => this.selectable && !this.single && this.requestSelected(new Set([...this.chosen, ...this.enabledKeys])), selectRange: (to, from) => this.selectRange(to, from), })",
|
|
156474
|
+
"default": "new TableGridController(this, { activate: (place, event) => this.activate(place, event), arrive: (to, control) => { if (this.replaces && !control) { this.chooseOnly(to) } }, columns: () => this.tableColumns.filter((column) => column.shown), disclose: (at, forward) => this.disclose(at, forward), lead: () => this.lead, on: () => this.grid, part: (name) => this.partNamed(name), rows: () => (this.childrenKnown ? this.arrangedRows : []), rowWords: () => this.arrangedRows.map((row) => textOf(row.children[0])), selectAll: () => this.selectable && !this.single && this.requestSelected(new Set([...this.chosen, ...this.enabledKeys])), selectRange: (to, from) => this.selectRange(to, from), })",
|
|
155852
156475
|
"description": "The keyboard of a `grid` table, in `grid-controller.ts`."
|
|
155853
156476
|
},
|
|
155854
156477
|
{
|
|
@@ -156255,6 +156878,31 @@
|
|
|
156255
156878
|
],
|
|
156256
156879
|
"description": "One row's checkbox, ticked or not. It becomes the row a range runs from."
|
|
156257
156880
|
},
|
|
156881
|
+
{
|
|
156882
|
+
"kind": "method",
|
|
156883
|
+
"name": "disclose",
|
|
156884
|
+
"privacy": "private",
|
|
156885
|
+
"return": {
|
|
156886
|
+
"type": {
|
|
156887
|
+
"text": "boolean | number"
|
|
156888
|
+
}
|
|
156889
|
+
},
|
|
156890
|
+
"parameters": [
|
|
156891
|
+
{
|
|
156892
|
+
"name": "at",
|
|
156893
|
+
"type": {
|
|
156894
|
+
"text": "number"
|
|
156895
|
+
}
|
|
156896
|
+
},
|
|
156897
|
+
{
|
|
156898
|
+
"name": "forward",
|
|
156899
|
+
"type": {
|
|
156900
|
+
"text": "boolean"
|
|
156901
|
+
}
|
|
156902
|
+
}
|
|
156903
|
+
],
|
|
156904
|
+
"description": "Right or Left on a disclosure cell, as on a tree's item and as Data\nTable's row headers do: on to open a shut row, back to shut an open one.\nBack on a row that is shut, or has no rows under it, moves to the row it\nsits under. Anything else moves along the row."
|
|
156905
|
+
},
|
|
156258
156906
|
{
|
|
156259
156907
|
"kind": "method",
|
|
156260
156908
|
"name": "activate",
|
|
@@ -157485,6 +158133,10 @@
|
|
|
157485
158133
|
"description": "While `error-text` is set.",
|
|
157486
158134
|
"name": "error"
|
|
157487
158135
|
},
|
|
158136
|
+
{
|
|
158137
|
+
"description": "While `loading` is set, as the rows are on their way.",
|
|
158138
|
+
"name": "loading"
|
|
158139
|
+
},
|
|
157488
158140
|
{
|
|
157489
158141
|
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
157490
158142
|
"name": "settled",
|
|
@@ -160030,6 +160682,35 @@
|
|
|
160030
160682
|
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
160031
160683
|
}
|
|
160032
160684
|
},
|
|
160685
|
+
{
|
|
160686
|
+
"kind": "field",
|
|
160687
|
+
"name": "present",
|
|
160688
|
+
"type": {
|
|
160689
|
+
"text": "boolean"
|
|
160690
|
+
},
|
|
160691
|
+
"privacy": "protected",
|
|
160692
|
+
"description": "Whether the element is still on the page for a reader, which is what\nthe focus hand-off waits on: connected, for a surface the page removes.\nA surface that hides itself says it is gone once hidden, and calls\n`handFocusOn` then.",
|
|
160693
|
+
"readonly": true,
|
|
160694
|
+
"inheritedFrom": {
|
|
160695
|
+
"name": "MixinDismissible",
|
|
160696
|
+
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
160697
|
+
}
|
|
160698
|
+
},
|
|
160699
|
+
{
|
|
160700
|
+
"kind": "method",
|
|
160701
|
+
"name": "handFocusOn",
|
|
160702
|
+
"privacy": "protected",
|
|
160703
|
+
"return": {
|
|
160704
|
+
"type": {
|
|
160705
|
+
"text": "void"
|
|
160706
|
+
}
|
|
160707
|
+
},
|
|
160708
|
+
"description": "Hands focus on now, where a dismissal is waiting for this element to\ngo: for a surface that hides itself, once it has.",
|
|
160709
|
+
"inheritedFrom": {
|
|
160710
|
+
"name": "MixinDismissible",
|
|
160711
|
+
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
160712
|
+
}
|
|
160713
|
+
},
|
|
160033
160714
|
{
|
|
160034
160715
|
"kind": "method",
|
|
160035
160716
|
"name": "stopBeside",
|
|
@@ -161607,6 +162288,21 @@
|
|
|
161607
162288
|
}
|
|
161608
162289
|
]
|
|
161609
162290
|
},
|
|
162291
|
+
{
|
|
162292
|
+
"kind": "javascript-module",
|
|
162293
|
+
"path": "src/tag/root/index.ts",
|
|
162294
|
+
"declarations": [],
|
|
162295
|
+
"exports": [
|
|
162296
|
+
{
|
|
162297
|
+
"kind": "js",
|
|
162298
|
+
"name": "*",
|
|
162299
|
+
"declaration": {
|
|
162300
|
+
"name": "*",
|
|
162301
|
+
"module": "src/tag/root/tag-root.js"
|
|
162302
|
+
}
|
|
162303
|
+
}
|
|
162304
|
+
]
|
|
162305
|
+
},
|
|
161610
162306
|
{
|
|
161611
162307
|
"kind": "javascript-module",
|
|
161612
162308
|
"path": "src/tag/root/tag-root.ts",
|
|
@@ -161842,6 +162538,35 @@
|
|
|
161842
162538
|
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
161843
162539
|
}
|
|
161844
162540
|
},
|
|
162541
|
+
{
|
|
162542
|
+
"kind": "field",
|
|
162543
|
+
"name": "present",
|
|
162544
|
+
"type": {
|
|
162545
|
+
"text": "boolean"
|
|
162546
|
+
},
|
|
162547
|
+
"privacy": "protected",
|
|
162548
|
+
"description": "Whether the element is still on the page for a reader, which is what\nthe focus hand-off waits on: connected, for a surface the page removes.\nA surface that hides itself says it is gone once hidden, and calls\n`handFocusOn` then.",
|
|
162549
|
+
"readonly": true,
|
|
162550
|
+
"inheritedFrom": {
|
|
162551
|
+
"name": "MixinDismissible",
|
|
162552
|
+
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
162553
|
+
}
|
|
162554
|
+
},
|
|
162555
|
+
{
|
|
162556
|
+
"kind": "method",
|
|
162557
|
+
"name": "handFocusOn",
|
|
162558
|
+
"privacy": "protected",
|
|
162559
|
+
"return": {
|
|
162560
|
+
"type": {
|
|
162561
|
+
"text": "void"
|
|
162562
|
+
}
|
|
162563
|
+
},
|
|
162564
|
+
"description": "Hands focus on now, where a dismissal is waiting for this element to\ngo: for a surface that hides itself, once it has.",
|
|
162565
|
+
"inheritedFrom": {
|
|
162566
|
+
"name": "MixinDismissible",
|
|
162567
|
+
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
162568
|
+
}
|
|
162569
|
+
},
|
|
161845
162570
|
{
|
|
161846
162571
|
"kind": "method",
|
|
161847
162572
|
"name": "dismiss",
|
|
@@ -165394,7 +166119,7 @@
|
|
|
165394
166119
|
"text": "readonly string[] | undefined"
|
|
165395
166120
|
},
|
|
165396
166121
|
"privacy": "protected",
|
|
165397
|
-
"description": "Each time, where `mode` holds several, sent one entry each.\n\
|
|
166122
|
+
"description": "Each time, where `mode` holds several, sent one entry each.\n\nText that is no time, such as `2:45 P`, is sent as one empty entry, as a\nnative time field sends a time it cannot read. Measured before this: a\nrange written `09:00/10:30` was invalid and submitted the text.",
|
|
165398
166123
|
"readonly": true,
|
|
165399
166124
|
"inheritedFrom": {
|
|
165400
166125
|
"name": "MixinPickerField",
|
|
@@ -165903,6 +166628,81 @@
|
|
|
165903
166628
|
"module": "src/mixins/mixin-segmented-field/mixin-segmented-field.ts"
|
|
165904
166629
|
}
|
|
165905
166630
|
},
|
|
166631
|
+
{
|
|
166632
|
+
"kind": "method",
|
|
166633
|
+
"name": "edit",
|
|
166634
|
+
"privacy": "private",
|
|
166635
|
+
"return": {
|
|
166636
|
+
"type": {
|
|
166637
|
+
"text": "boolean"
|
|
166638
|
+
}
|
|
166639
|
+
},
|
|
166640
|
+
"parameters": [
|
|
166641
|
+
{
|
|
166642
|
+
"name": "element",
|
|
166643
|
+
"type": {
|
|
166644
|
+
"text": "HTMLElement"
|
|
166645
|
+
}
|
|
166646
|
+
},
|
|
166647
|
+
{
|
|
166648
|
+
"name": "key",
|
|
166649
|
+
"type": {
|
|
166650
|
+
"text": "string"
|
|
166651
|
+
}
|
|
166652
|
+
}
|
|
166653
|
+
],
|
|
166654
|
+
"description": "Applies an editing key to the segment, the arrows, Backspace, a digit or\na letter, and says whether it edited anything.",
|
|
166655
|
+
"inheritedFrom": {
|
|
166656
|
+
"name": "MixinSegmentedField",
|
|
166657
|
+
"module": "src/mixins/mixin-segmented-field/mixin-segmented-field.ts"
|
|
166658
|
+
}
|
|
166659
|
+
},
|
|
166660
|
+
{
|
|
166661
|
+
"kind": "field",
|
|
166662
|
+
"name": "composing",
|
|
166663
|
+
"type": {
|
|
166664
|
+
"text": "[Node, string | null][]"
|
|
166665
|
+
},
|
|
166666
|
+
"privacy": "private",
|
|
166667
|
+
"default": "[]",
|
|
166668
|
+
"description": "What the segment's text was when a composition started to write into it.",
|
|
166669
|
+
"inheritedFrom": {
|
|
166670
|
+
"name": "MixinSegmentedField",
|
|
166671
|
+
"module": "src/mixins/mixin-segmented-field/mixin-segmented-field.ts"
|
|
166672
|
+
}
|
|
166673
|
+
},
|
|
166674
|
+
{
|
|
166675
|
+
"kind": "field",
|
|
166676
|
+
"name": "handleSegmentBeforeInput",
|
|
166677
|
+
"privacy": "private",
|
|
166678
|
+
"readonly": true,
|
|
166679
|
+
"description": "Text a touch keyboard writes into a segment, which arrives as input and\nnot as a key: an on-screen keyboard sends `Unidentified` for its keys,\nso a digit tapped on a phone is read here, as React Aria's segments read\nit. Every input is canceled, so the segment holds only what the field\ndraws in it.",
|
|
166680
|
+
"inheritedFrom": {
|
|
166681
|
+
"name": "MixinSegmentedField",
|
|
166682
|
+
"module": "src/mixins/mixin-segmented-field/mixin-segmented-field.ts"
|
|
166683
|
+
}
|
|
166684
|
+
},
|
|
166685
|
+
{
|
|
166686
|
+
"kind": "field",
|
|
166687
|
+
"name": "handleSegmentInput",
|
|
166688
|
+
"privacy": "private",
|
|
166689
|
+
"readonly": true,
|
|
166690
|
+
"inheritedFrom": {
|
|
166691
|
+
"name": "MixinSegmentedField",
|
|
166692
|
+
"module": "src/mixins/mixin-segmented-field/mixin-segmented-field.ts"
|
|
166693
|
+
}
|
|
166694
|
+
},
|
|
166695
|
+
{
|
|
166696
|
+
"kind": "field",
|
|
166697
|
+
"name": "collapseSelection",
|
|
166698
|
+
"privacy": "private",
|
|
166699
|
+
"readonly": true,
|
|
166700
|
+
"description": "Keeps the caret at the start of the segment with focus, where Chromium\nfires input for a typed key, and where Android's keyboard does not\ncompose over the segment's text. A selection already there, or outside\nthe segment, is left alone.",
|
|
166701
|
+
"inheritedFrom": {
|
|
166702
|
+
"name": "MixinSegmentedField",
|
|
166703
|
+
"module": "src/mixins/mixin-segmented-field/mixin-segmented-field.ts"
|
|
166704
|
+
}
|
|
166705
|
+
},
|
|
165906
166706
|
{
|
|
165907
166707
|
"kind": "field",
|
|
165908
166708
|
"name": "handleSegmentKeydown",
|
|
@@ -173153,6 +173953,35 @@
|
|
|
173153
173953
|
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
173154
173954
|
}
|
|
173155
173955
|
},
|
|
173956
|
+
{
|
|
173957
|
+
"kind": "field",
|
|
173958
|
+
"name": "present",
|
|
173959
|
+
"type": {
|
|
173960
|
+
"text": "boolean"
|
|
173961
|
+
},
|
|
173962
|
+
"privacy": "protected",
|
|
173963
|
+
"description": "Whether the element is still on the page for a reader, which is what\nthe focus hand-off waits on: connected, for a surface the page removes.\nA surface that hides itself says it is gone once hidden, and calls\n`handFocusOn` then.",
|
|
173964
|
+
"readonly": true,
|
|
173965
|
+
"inheritedFrom": {
|
|
173966
|
+
"name": "MixinDismissible",
|
|
173967
|
+
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
173968
|
+
}
|
|
173969
|
+
},
|
|
173970
|
+
{
|
|
173971
|
+
"kind": "method",
|
|
173972
|
+
"name": "handFocusOn",
|
|
173973
|
+
"privacy": "protected",
|
|
173974
|
+
"return": {
|
|
173975
|
+
"type": {
|
|
173976
|
+
"text": "void"
|
|
173977
|
+
}
|
|
173978
|
+
},
|
|
173979
|
+
"description": "Hands focus on now, where a dismissal is waiting for this element to\ngo: for a surface that hides itself, once it has.",
|
|
173980
|
+
"inheritedFrom": {
|
|
173981
|
+
"name": "MixinDismissible",
|
|
173982
|
+
"module": "src/mixins/mixin-dismissible/mixin-dismissible.ts"
|
|
173983
|
+
}
|
|
173984
|
+
},
|
|
173156
173985
|
{
|
|
173157
173986
|
"kind": "method",
|
|
173158
173987
|
"name": "stopBeside",
|
|
@@ -185611,6 +186440,18 @@
|
|
|
185611
186440
|
"description": "The entry that is playing.",
|
|
185612
186441
|
"name": "current"
|
|
185613
186442
|
},
|
|
186443
|
+
{
|
|
186444
|
+
"description": "The entry a pointer is dragging, in a `reorderable` playlist.",
|
|
186445
|
+
"name": "dragging"
|
|
186446
|
+
},
|
|
186447
|
+
{
|
|
186448
|
+
"description": "The entry the dragged one would land after, which the drop indicator is drawn under.",
|
|
186449
|
+
"name": "drop-after"
|
|
186450
|
+
},
|
|
186451
|
+
{
|
|
186452
|
+
"description": "The entry the dragged one would land before, which the drop indicator is drawn over.",
|
|
186453
|
+
"name": "drop-before"
|
|
186454
|
+
},
|
|
185614
186455
|
{
|
|
185615
186456
|
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
185616
186457
|
"name": "settled",
|
|
@@ -186483,7 +187324,7 @@
|
|
|
186483
187324
|
"declarations": [
|
|
186484
187325
|
{
|
|
186485
187326
|
"kind": "class",
|
|
186486
|
-
"description": "**You slot the player**, so it keeps your appearance, extra controls,\ncaptions, and poster treatment. `Sandbox` takes its preview and `Menu` its\ntrigger the same way.\n\n**Entries are markup.** React skips properties it would set imperatively\nduring hydration, so an array property on a custom element is missing on the\nfirst paint of a server-rendered page. `using-the-elements.mdx` has the\nmeasurement. Markup also makes each entry a real button with its name inside.\n\n**The playlist does not play media.** It sets `src` on the player and tracks\nwhich entry is current. The current entry moves when:\n\n- an entry is pressed,\n- the player dispatches `helix-next` or `helix-previous`, or\n- the player reaches the end.\n\nOn `ended` the playlist advances and the next clip starts playing, because\nthe user already pressed play once. `no-advance` turns that off, and the\nplaylist stays on the entry that ended. `repeat` decides what happens at the\nend: `one` plays the same entry again, and `all` goes from the last entry\nback to the first. Without it, the playlist stops on the last entry and\nsends `helix-end`. `shuffle` plays the entries in a random order, starting\nfrom the one that is current, and `previous` retraces that order.\n\n**`helix-before-activate` says why the playlist is moving**, in\n`detail.cause`: `press` for an entry or a menu choice, `next` and\n`previous` for the player's controls and the methods, `ended` at the end of\na clip, and `removed` when the current entry leaves the playlist. Cancel an\n`ended` move to show your own \"Up next\" countdown, then call `next()`.\n\n**Removing the current entry moves the playlist on**, to the entry after it,\nor to the one before it when it was the last. A clip that was playing keeps\nplaying in the entry that takes its place.\n\n**The player is named by the current entry**, and the device's own media\ncontrols show the entry as the title. A player you gave a `label` keeps\nyour name, and only the title follows the entry.\n\n**Keyboard.** The entries take one stop in the tab order: the entry you\nlast focused, or the current entry before you have focused one. Enter or\nSpace plays it. The arrow keys move focus to the entry before or after, and\nHome and End to the first and the last, passing over disabled entries. The\ncurrent entry carries `aria-current`. While focus is on the player, the\nplayer's own keys work, and `Video` lists them, and Shift with N or P plays\nthe next or the previous entry. The player's previous and next controls\nmove through the entries in the same order the playlist does.\n\n**What a screen reader hears.** A list named by `label`, with a button for\neach entry. When the playlist moves to another entry, by a press, by the\nplayer's controls, or at the end of a clip, a live region says\n`playing-label`, \"Now playing\" and the entry's name.",
|
|
187327
|
+
"description": "**You slot the player**, so it keeps your appearance, extra controls,\ncaptions, and poster treatment. `Sandbox` takes its preview and `Menu` its\ntrigger the same way.\n\n**Entries are markup.** React skips properties it would set imperatively\nduring hydration, so an array property on a custom element is missing on the\nfirst paint of a server-rendered page. `using-the-elements.mdx` has the\nmeasurement. Markup also makes each entry a real button with its name inside.\n\n**The playlist does not play media.** It sets `src` on the player and tracks\nwhich entry is current. The current entry moves when:\n\n- an entry is pressed,\n- the player dispatches `helix-next` or `helix-previous`, or\n- the player reaches the end.\n\nOn `ended` the playlist advances and the next clip starts playing, because\nthe user already pressed play once. `no-advance` turns that off, and the\nplaylist stays on the entry that ended. `repeat` decides what happens at the\nend: `one` plays the same entry again, and `all` goes from the last entry\nback to the first. Without it, the playlist stops on the last entry and\nsends `helix-end`. `shuffle` plays the entries in a random order, starting\nfrom the one that is current, and `previous` retraces that order.\n\n**`helix-before-activate` says why the playlist is moving**, in\n`detail.cause`: `press` for an entry or a menu choice, `next` and\n`previous` for the player's controls and the methods, `ended` at the end of\na clip, and `removed` when the current entry leaves the playlist. Cancel an\n`ended` move to show your own \"Up next\" countdown, then call `next()`.\n\n**Removing the current entry moves the playlist on**, to the entry after it,\nor to the one before it when it was the last. A clip that was playing keeps\nplaying in the entry that takes its place.\n\n**The player is named by the current entry**, and the device's own media\ncontrols show the entry as the title. A player you gave a `label` keeps\nyour name, and only the title follows the entry.\n\n**Keyboard.** The entries take one stop in the tab order: the entry you\nlast focused, or the current entry before you have focused one. Enter or\nSpace plays it. The arrow keys move focus to the entry before or after, and\nHome and End to the first and the last, passing over disabled entries. The\ncurrent entry carries `aria-current`. While focus is on the player, the\nplayer's own keys work, and `Video` lists them, and Shift with N or P plays\nthe next or the previous entry. The player's previous and next controls\nmove through the entries in the same order the playlist does.\n\n**Moving entries.** `reorderable` lets a reader change the order of the\nqueue:\n\n- Alt with Up or Down moves the focused entry a place, and Alt with Home or\n End moves it to either end, as the APG's rearrangeable listbox does.\n Focus stays on it.\n- A pointer drags an entry, with a drop indicator, and the page scrolls near\n an edge. A press that does not travel still plays the entry.\n- A drop sends `helix-before-reorder`, which you can refuse, and then\n `helix-reorder`, whose `keys` hold every entry's `value` in the new order.\n **You move the entries**: the playlist moves no element of yours, and the\n next entry is the one after the current entry in the order you leave.\n- Each move is said in the live region, in words you can change:\n `moved-label`, `dropped-label`, `canceled-label`, and `picked-up-label`.\n\n**What a screen reader hears.** A list named by `label`, with a button for\neach entry. When the playlist moves to another entry, by a press, by the\nplayer's controls, or at the end of a clip, a live region says\n`playing-label`, \"Now playing\" and the entry's name.",
|
|
186487
187328
|
"name": "HelixHeadlessVideoPlaylist",
|
|
186488
187329
|
"cssParts": [
|
|
186489
187330
|
{
|
|
@@ -186528,6 +187369,32 @@
|
|
|
186528
187369
|
"default": "'helix-video-playlist'",
|
|
186529
187370
|
"description": "The key this family's words are registered under, its styled tag:\n`registerWords('de', { 'helix-video-playlist': { label: 'Wiedergabeliste' } })`."
|
|
186530
187371
|
},
|
|
187372
|
+
{
|
|
187373
|
+
"kind": "field",
|
|
187374
|
+
"name": "canceledLabel",
|
|
187375
|
+
"type": {
|
|
187376
|
+
"text": "string"
|
|
187377
|
+
},
|
|
187378
|
+
"default": "'Canceled'",
|
|
187379
|
+
"description": "What screen readers hear when a move is put back, in a `reorderable`\nplaylist. `{name}` is the entry's words.",
|
|
187380
|
+
"attribute": "canceled-label",
|
|
187381
|
+
"helix": {
|
|
187382
|
+
"words": true
|
|
187383
|
+
}
|
|
187384
|
+
},
|
|
187385
|
+
{
|
|
187386
|
+
"kind": "field",
|
|
187387
|
+
"name": "droppedLabel",
|
|
187388
|
+
"type": {
|
|
187389
|
+
"text": "string"
|
|
187390
|
+
},
|
|
187391
|
+
"default": "'Dropped'",
|
|
187392
|
+
"description": "What screen readers hear when a moved entry is let go, in a `reorderable`\nplaylist. `{name}` is the entry's words.",
|
|
187393
|
+
"attribute": "dropped-label",
|
|
187394
|
+
"helix": {
|
|
187395
|
+
"words": true
|
|
187396
|
+
}
|
|
187397
|
+
},
|
|
186531
187398
|
{
|
|
186532
187399
|
"kind": "field",
|
|
186533
187400
|
"name": "emptyLabel",
|
|
@@ -186554,6 +187421,19 @@
|
|
|
186554
187421
|
"words": true
|
|
186555
187422
|
}
|
|
186556
187423
|
},
|
|
187424
|
+
{
|
|
187425
|
+
"kind": "field",
|
|
187426
|
+
"name": "movedLabel",
|
|
187427
|
+
"type": {
|
|
187428
|
+
"text": "string"
|
|
187429
|
+
},
|
|
187430
|
+
"default": "'{name} moved to position {position} of {count}'",
|
|
187431
|
+
"description": "What screen readers hear each time a key moves an entry, in a\n`reorderable` playlist. `{name}` is the entry's words, `{position}` its\nnew place, counting from 1, and `{count}` the number of entries.",
|
|
187432
|
+
"attribute": "moved-label",
|
|
187433
|
+
"helix": {
|
|
187434
|
+
"words": true
|
|
187435
|
+
}
|
|
187436
|
+
},
|
|
186557
187437
|
{
|
|
186558
187438
|
"kind": "field",
|
|
186559
187439
|
"name": "noAdvance",
|
|
@@ -186564,6 +187444,19 @@
|
|
|
186564
187444
|
"description": "Stays on an entry when its clip ends, where the playlist would otherwise\nplay the next one. The player's controls, a press, and `next()` still\nmove. `repeat=\"one\"` still plays the entry again.",
|
|
186565
187445
|
"attribute": "no-advance"
|
|
186566
187446
|
},
|
|
187447
|
+
{
|
|
187448
|
+
"kind": "field",
|
|
187449
|
+
"name": "pickedUpLabel",
|
|
187450
|
+
"type": {
|
|
187451
|
+
"text": "string"
|
|
187452
|
+
},
|
|
187453
|
+
"default": "'Picked up {name}'",
|
|
187454
|
+
"description": "What screen readers hear when a pointer picks up an entry, in a\n`reorderable` playlist. `{name}` is the entry's words.",
|
|
187455
|
+
"attribute": "picked-up-label",
|
|
187456
|
+
"helix": {
|
|
187457
|
+
"words": true
|
|
187458
|
+
}
|
|
187459
|
+
},
|
|
186567
187460
|
{
|
|
186568
187461
|
"kind": "field",
|
|
186569
187462
|
"name": "playingLabel",
|
|
@@ -186577,6 +187470,17 @@
|
|
|
186577
187470
|
"words": true
|
|
186578
187471
|
}
|
|
186579
187472
|
},
|
|
187473
|
+
{
|
|
187474
|
+
"kind": "field",
|
|
187475
|
+
"name": "reorderable",
|
|
187476
|
+
"type": {
|
|
187477
|
+
"text": "boolean"
|
|
187478
|
+
},
|
|
187479
|
+
"default": "false",
|
|
187480
|
+
"description": "Lets a reader move the entries, with Alt and the arrow keys or by\ndragging one. The playlist moves no entry itself: you move your entries\non `helix-reorder`.",
|
|
187481
|
+
"attribute": "reorderable",
|
|
187482
|
+
"reflects": true
|
|
187483
|
+
},
|
|
186580
187484
|
{
|
|
186581
187485
|
"kind": "field",
|
|
186582
187486
|
"name": "status",
|
|
@@ -186585,6 +187489,63 @@
|
|
|
186585
187489
|
"default": "new StatusController(this)",
|
|
186586
187490
|
"description": "The live region, rendered from the first move."
|
|
186587
187491
|
},
|
|
187492
|
+
{
|
|
187493
|
+
"kind": "method",
|
|
187494
|
+
"name": "entryOf",
|
|
187495
|
+
"privacy": "private",
|
|
187496
|
+
"return": {
|
|
187497
|
+
"type": {
|
|
187498
|
+
"text": "HelixHeadlessVideoPlaylistItem | undefined"
|
|
187499
|
+
}
|
|
187500
|
+
},
|
|
187501
|
+
"parameters": [
|
|
187502
|
+
{
|
|
187503
|
+
"name": "event",
|
|
187504
|
+
"type": {
|
|
187505
|
+
"text": "Event"
|
|
187506
|
+
}
|
|
187507
|
+
}
|
|
187508
|
+
],
|
|
187509
|
+
"description": "The entry an event passed through, where it may move."
|
|
187510
|
+
},
|
|
187511
|
+
{
|
|
187512
|
+
"kind": "method",
|
|
187513
|
+
"name": "entryFor",
|
|
187514
|
+
"privacy": "private",
|
|
187515
|
+
"return": {
|
|
187516
|
+
"type": {
|
|
187517
|
+
"text": "HelixHeadlessVideoPlaylistItem | undefined"
|
|
187518
|
+
}
|
|
187519
|
+
},
|
|
187520
|
+
"parameters": [
|
|
187521
|
+
{
|
|
187522
|
+
"name": "value",
|
|
187523
|
+
"type": {
|
|
187524
|
+
"text": "string"
|
|
187525
|
+
}
|
|
187526
|
+
}
|
|
187527
|
+
],
|
|
187528
|
+
"description": "The entry with that value."
|
|
187529
|
+
},
|
|
187530
|
+
{
|
|
187531
|
+
"kind": "field",
|
|
187532
|
+
"name": "reorder",
|
|
187533
|
+
"privacy": "private",
|
|
187534
|
+
"readonly": true,
|
|
187535
|
+
"default": "new ReorderController(this, { axis: 'block', box: (value) => this.entryFor(value)?.getBoundingClientRect(), current: (event) => this.entryOf(event)?.value, grip: (event) => { const entry = this.entryOf(event) return entry ? { element: entry, key: entry.value } : undefined }, holds: false, keys: () => this.items.map((one) => one.value), name: (value) => this.entryFor(value)?.text || value, refocus: (value) => this.entryFor(value)?.focus(), say: (words) => this.status.say(words), })",
|
|
187536
|
+
"description": "Moving the entries, as a listbox moves its options: Alt with the arrows\non the focused entry, or a pointer dragging a whole entry, where a press\nthat does not travel still plays it."
|
|
187537
|
+
},
|
|
187538
|
+
{
|
|
187539
|
+
"kind": "method",
|
|
187540
|
+
"name": "markMoves",
|
|
187541
|
+
"privacy": "private",
|
|
187542
|
+
"return": {
|
|
187543
|
+
"type": {
|
|
187544
|
+
"text": "void"
|
|
187545
|
+
}
|
|
187546
|
+
},
|
|
187547
|
+
"description": "Tells each entry where it stands in a move, which it says through its\nstates for the styled tier to draw: the entry dragged, and the one the\ndrop indicator is before or after."
|
|
187548
|
+
},
|
|
186588
187549
|
{
|
|
186589
187550
|
"kind": "field",
|
|
186590
187551
|
"name": "repeat",
|
|
@@ -187343,6 +188304,14 @@
|
|
|
187343
188304
|
"name": "helix-before-activate",
|
|
187344
188305
|
"reactProp": "onhelix-before-activate"
|
|
187345
188306
|
},
|
|
188307
|
+
{
|
|
188308
|
+
"type": {
|
|
188309
|
+
"text": "HelixBeforeReorderEvent"
|
|
188310
|
+
},
|
|
188311
|
+
"description": "An entry was moved to a new place, in a `reorderable` playlist, with every entry's value in the new order in `detail.keys`. Cancelable: cancel it to keep the entry where it is.",
|
|
188312
|
+
"name": "helix-before-reorder",
|
|
188313
|
+
"reactProp": "onhelix-before-reorder"
|
|
188314
|
+
},
|
|
187346
188315
|
{
|
|
187347
188316
|
"type": {
|
|
187348
188317
|
"text": "HelixEndEvent"
|
|
@@ -187350,9 +188319,35 @@
|
|
|
187350
188319
|
"description": "The last entry finished playing, and the playlist stopped there. Not sent while `repeat` is set.",
|
|
187351
188320
|
"name": "helix-end",
|
|
187352
188321
|
"reactProp": "onhelix-end"
|
|
188322
|
+
},
|
|
188323
|
+
{
|
|
188324
|
+
"type": {
|
|
188325
|
+
"text": "HelixReorderEvent"
|
|
188326
|
+
},
|
|
188327
|
+
"description": "Fired after `helix-before-reorder` when nobody canceled it. Move your entries to the order in `keys`. Cancelable: cancel it to say the move did not happen.",
|
|
188328
|
+
"name": "helix-reorder",
|
|
188329
|
+
"reactProp": "onhelix-reorder"
|
|
187353
188330
|
}
|
|
187354
188331
|
],
|
|
187355
188332
|
"attributes": [
|
|
188333
|
+
{
|
|
188334
|
+
"name": "canceled-label",
|
|
188335
|
+
"type": {
|
|
188336
|
+
"text": "string"
|
|
188337
|
+
},
|
|
188338
|
+
"default": "'Canceled'",
|
|
188339
|
+
"description": "What screen readers hear when a move is put back, in a `reorderable`\nplaylist. `{name}` is the entry's words.",
|
|
188340
|
+
"fieldName": "canceledLabel"
|
|
188341
|
+
},
|
|
188342
|
+
{
|
|
188343
|
+
"name": "dropped-label",
|
|
188344
|
+
"type": {
|
|
188345
|
+
"text": "string"
|
|
188346
|
+
},
|
|
188347
|
+
"default": "'Dropped'",
|
|
188348
|
+
"description": "What screen readers hear when a moved entry is let go, in a `reorderable`\nplaylist. `{name}` is the entry's words.",
|
|
188349
|
+
"fieldName": "droppedLabel"
|
|
188350
|
+
},
|
|
187356
188351
|
{
|
|
187357
188352
|
"name": "empty-label",
|
|
187358
188353
|
"type": {
|
|
@@ -187371,6 +188366,15 @@
|
|
|
187371
188366
|
"description": "The list's name, read by screen readers.",
|
|
187372
188367
|
"fieldName": "label"
|
|
187373
188368
|
},
|
|
188369
|
+
{
|
|
188370
|
+
"name": "moved-label",
|
|
188371
|
+
"type": {
|
|
188372
|
+
"text": "string"
|
|
188373
|
+
},
|
|
188374
|
+
"default": "'{name} moved to position {position} of {count}'",
|
|
188375
|
+
"description": "What screen readers hear each time a key moves an entry, in a\n`reorderable` playlist. `{name}` is the entry's words, `{position}` its\nnew place, counting from 1, and `{count}` the number of entries.",
|
|
188376
|
+
"fieldName": "movedLabel"
|
|
188377
|
+
},
|
|
187374
188378
|
{
|
|
187375
188379
|
"name": "no-advance",
|
|
187376
188380
|
"type": {
|
|
@@ -187380,6 +188384,15 @@
|
|
|
187380
188384
|
"description": "Stays on an entry when its clip ends, where the playlist would otherwise\nplay the next one. The player's controls, a press, and `next()` still\nmove. `repeat=\"one\"` still plays the entry again.",
|
|
187381
188385
|
"fieldName": "noAdvance"
|
|
187382
188386
|
},
|
|
188387
|
+
{
|
|
188388
|
+
"name": "picked-up-label",
|
|
188389
|
+
"type": {
|
|
188390
|
+
"text": "string"
|
|
188391
|
+
},
|
|
188392
|
+
"default": "'Picked up {name}'",
|
|
188393
|
+
"description": "What screen readers hear when a pointer picks up an entry, in a\n`reorderable` playlist. `{name}` is the entry's words.",
|
|
188394
|
+
"fieldName": "pickedUpLabel"
|
|
188395
|
+
},
|
|
187383
188396
|
{
|
|
187384
188397
|
"name": "playing-label",
|
|
187385
188398
|
"type": {
|
|
@@ -187389,6 +188402,15 @@
|
|
|
187389
188402
|
"description": "What the live region says when the playlist moves to another entry.\n`{title}` is the entry's name.\n\n**A move a reader did not make is said.** At the end of a clip the\nplaylist starts the next one, and the only other trace of that is the\n`aria-current` on a button the reader is not on.",
|
|
187390
188403
|
"fieldName": "playingLabel"
|
|
187391
188404
|
},
|
|
188405
|
+
{
|
|
188406
|
+
"name": "reorderable",
|
|
188407
|
+
"type": {
|
|
188408
|
+
"text": "boolean"
|
|
188409
|
+
},
|
|
188410
|
+
"default": "false",
|
|
188411
|
+
"description": "Lets a reader move the entries, with Alt and the arrow keys or by\ndragging one. The playlist moves no entry itself: you move your entries\non `helix-reorder`.",
|
|
188412
|
+
"fieldName": "reorderable"
|
|
188413
|
+
},
|
|
187392
188414
|
{
|
|
187393
188415
|
"name": "repeat",
|
|
187394
188416
|
"type": {
|
|
@@ -192641,6 +193663,6 @@
|
|
|
192641
193663
|
],
|
|
192642
193664
|
"helix": {
|
|
192643
193665
|
"package": "@fusion.dev/helix-headless",
|
|
192644
|
-
"version": "0.
|
|
193666
|
+
"version": "0.165.0"
|
|
192645
193667
|
}
|
|
192646
193668
|
}
|