@fusion.dev/helix-headless 0.103.3 → 0.104.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +9253 -880
- package/dist/announcement/root/announcement-root.d.ts +9 -2
- package/dist/announcement/root/announcement-root.js +9 -6
- package/dist/badge/root/badge-root.js +2 -3
- package/dist/canvas/edge/canvas-edge.d.ts +112 -0
- package/dist/canvas/edge/canvas-edge.js +66 -0
- package/dist/canvas/index.d.ts +4 -0
- package/dist/canvas/index.js +3 -0
- package/dist/canvas/node/canvas-node.d.ts +211 -0
- package/dist/canvas/node/canvas-node.js +148 -0
- package/dist/canvas/root/canvas-document.d.ts +215 -0
- package/dist/canvas/root/canvas-document.js +284 -0
- package/dist/canvas/root/canvas-root.d.ts +912 -0
- package/dist/canvas/root/canvas-root.js +1814 -0
- package/dist/carousel/root/carousel-root.d.ts +53 -16
- package/dist/carousel/root/carousel-root.js +46 -11
- package/dist/chat/root/chat-root.d.ts +4 -0
- package/dist/chat/root/chat-root.js +11 -7
- package/dist/checkbox/root/checkbox-root.js +1 -0
- package/dist/checkbox-group/root/checkbox-group-root.d.ts +10 -0
- package/dist/checkbox-group/root/checkbox-group-root.js +5 -0
- package/dist/color-input/root/color-input-root.js +21 -5
- package/dist/color-picker/root/color-picker-root.d.ts +55 -0
- package/dist/color-picker/root/color-picker-root.js +61 -12
- package/dist/combobox/root/combobox-root.d.ts +21 -2
- package/dist/combobox/root/combobox-root.js +23 -9
- package/dist/command/root/command-root.d.ts +1 -0
- package/dist/command/root/command-root.js +1 -1
- package/dist/data-table/root/data-table-root.d.ts +43 -42
- package/dist/data-table/root/data-table-root.js +35 -34
- package/dist/date-input/root/date-input-root.d.ts +27 -0
- package/dist/date-input/root/date-input-root.js +38 -9
- package/dist/date-picker/root/date-picker-root.d.ts +28 -16
- package/dist/date-picker/root/date-picker-root.js +17 -15
- package/dist/drilldown/root/drilldown-root.d.ts +1 -0
- package/dist/drilldown/root/drilldown-root.js +5 -2
- package/dist/element-events.generated.js +15 -0
- package/dist/empty/root/empty-root.d.ts +12 -7
- package/dist/empty/root/empty-root.js +13 -10
- package/dist/file-input/root/file-input-root.d.ts +5 -1
- package/dist/file-input/root/file-input-root.js +6 -4
- package/dist/filter-input/menu/filter-menu.d.ts +1 -0
- package/dist/filter-input/menu/filter-menu.js +1 -1
- package/dist/filter-input/root/filter-input-root.js +5 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/input/root/input-root.js +1 -1
- package/dist/lightbox/root/lightbox-root.d.ts +9 -1
- package/dist/lightbox/root/lightbox-root.js +17 -7
- package/dist/listbox/root/listbox-root.d.ts +16 -14
- package/dist/listbox/root/listbox-root.js +24 -15
- package/dist/map/root/map-root.d.ts +6 -3
- package/dist/map/root/map-root.js +8 -2
- package/dist/menu/root/menu-root.d.ts +1 -0
- package/dist/menu/root/menu-root.js +1 -1
- package/dist/notifications/group/notification-group.js +5 -4
- package/dist/notifications/notification/notification.d.ts +10 -10
- package/dist/notifications/notification/notification.js +3 -3
- package/dist/notifications/root/notifications-root.d.ts +1 -0
- package/dist/notifications/root/notifications-root.js +1 -0
- package/dist/number-input/root/number-input-root.d.ts +17 -0
- package/dist/number-input/root/number-input-root.js +22 -6
- package/dist/object-inspector/root/object-inspector-root.d.ts +10 -0
- package/dist/object-inspector/root/object-inspector-root.js +10 -2
- package/dist/outline/root/outline-root.d.ts +15 -0
- package/dist/outline/root/outline-root.js +12 -7
- package/dist/pagination/root/pagination-root.d.ts +18 -18
- package/dist/pagination/root/pagination-root.js +5 -5
- package/dist/pagination/size/pagination-size.d.ts +10 -9
- package/dist/pagination/size/pagination-size.js +4 -4
- package/dist/pagination/summary/pagination-summary.js +6 -5
- package/dist/pin-input/root/pin-input-root.d.ts +5 -0
- package/dist/pin-input/root/pin-input-root.js +10 -6
- package/dist/rating/root/rating-root.js +3 -2
- package/dist/select/root/select-root.d.ts +1 -0
- package/dist/select/root/select-root.js +8 -3
- package/dist/slider/root/slider-root.d.ts +12 -0
- package/dist/slider/root/slider-root.js +13 -1
- package/dist/splitter/root/splitter-root.d.ts +44 -35
- package/dist/splitter/root/splitter-root.js +27 -22
- package/dist/switch/root/switch-root.js +1 -0
- package/dist/table/column/table-column.d.ts +17 -0
- package/dist/table/column/table-column.js +16 -4
- package/dist/table/root/table-root.d.ts +1 -0
- package/dist/table/root/table-root.js +1 -1
- package/dist/textarea/root/textarea-root.js +1 -1
- package/dist/time-input/root/time-input-root.d.ts +29 -0
- package/dist/time-input/root/time-input-root.js +31 -10
- package/dist/time-picker/root/time-picker-root.d.ts +14 -0
- package/dist/time-picker/root/time-picker-root.js +16 -14
- package/dist/toast/item/toast-item.d.ts +12 -11
- package/dist/toast/item/toast-item.js +11 -5
- package/dist/toolbar/root/toolbar-root.js +2 -16
- package/dist/tooltip/root/tooltip-root.d.ts +1 -0
- package/dist/tooltip/root/tooltip-root.js +6 -0
- package/dist/tour/root/tour-root.d.ts +10 -10
- package/dist/tour/root/tour-root.js +5 -5
- package/dist/tree/root/tree-root.d.ts +1 -0
- package/dist/tree/root/tree-root.js +1 -1
- package/dist/video/root/video-root.d.ts +84 -0
- package/dist/video/root/video-root.js +116 -41
- package/dist/video-playlist/menu/video-playlist-menu.d.ts +1 -0
- package/dist/video-playlist/menu/video-playlist-menu.js +4 -3
- package/package.json +5 -5
- package/types/jsx.d.ts +5419 -716
- package/types/svelte.d.ts +3 -0
- package/types/vue.d.ts +1607 -213
package/types/vue.d.ts
CHANGED
|
@@ -16,6 +16,19 @@ import type {
|
|
|
16
16
|
HelixHeadlessButtonGroup,
|
|
17
17
|
HelixHeadlessButton,
|
|
18
18
|
HelixHeadlessCallout,
|
|
19
|
+
HelixHeadlessCanvasEdge,
|
|
20
|
+
HelixHeadlessCanvasNode,
|
|
21
|
+
CanvasDocument,
|
|
22
|
+
CanvasEdge,
|
|
23
|
+
CanvasEdgeProps,
|
|
24
|
+
CanvasEnd,
|
|
25
|
+
CanvasNode,
|
|
26
|
+
CanvasNodeProps,
|
|
27
|
+
CanvasPath,
|
|
28
|
+
CanvasSide,
|
|
29
|
+
CanvasTone,
|
|
30
|
+
fromJsonCanvas,
|
|
31
|
+
HelixHeadlessCanvas,
|
|
19
32
|
HelixHeadlessCard,
|
|
20
33
|
HelixHeadlessCarousel,
|
|
21
34
|
HelixHeadlessChatComposer,
|
|
@@ -141,6 +154,18 @@ import type {
|
|
|
141
154
|
HelixBeforeOpenEvent,
|
|
142
155
|
HelixDismissEvent,
|
|
143
156
|
HelixScrolledEvent,
|
|
157
|
+
HelixBeforeMoveEvent,
|
|
158
|
+
HelixBeforeReconnectEvent,
|
|
159
|
+
HelixBeforeRelabelEvent,
|
|
160
|
+
HelixCanvasEditEvent,
|
|
161
|
+
HelixCanvasPanEvent,
|
|
162
|
+
HelixCanvasViewEvent,
|
|
163
|
+
HelixCanvasZoomEvent,
|
|
164
|
+
HelixConnectEvent,
|
|
165
|
+
HelixMoveEvent,
|
|
166
|
+
HelixReconnectEvent,
|
|
167
|
+
HelixRelabelEvent,
|
|
168
|
+
HelixRemoveEvent,
|
|
144
169
|
HelixSelectEvent,
|
|
145
170
|
HelixSendEvent,
|
|
146
171
|
HelixBeforePinEvent,
|
|
@@ -258,6 +283,10 @@ empty string writes `name=""` onto every item ever rendered: Lit reflects
|
|
|
258
283
|
it, and the resting state of a reflected property is the attribute's
|
|
259
284
|
absence. Caught by `hydration.dom.spec.ts`. */
|
|
260
285
|
name?: (HelixHeadlessAccordionItem["name"]) | undefined;
|
|
286
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
287
|
+
"default-open"?: (HelixHeadlessAccordionItem["defaultOpen"]) | undefined;
|
|
288
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
289
|
+
defaultOpen?: (HelixHeadlessAccordionItem["defaultOpen"]) | undefined;
|
|
261
290
|
/** Whether the element is open.
|
|
262
291
|
|
|
263
292
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -271,10 +300,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
271
300
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
272
301
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
273
302
|
open?: (HelixHeadlessAccordionItem["open"]) | undefined;
|
|
274
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
275
|
-
"default-open"?: (HelixHeadlessAccordionItem["defaultOpen"]) | undefined;
|
|
276
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
277
|
-
defaultOpen?: (HelixHeadlessAccordionItem["defaultOpen"]) | undefined;
|
|
278
303
|
};
|
|
279
304
|
|
|
280
305
|
export type HelixHeadlessAccordionItemVueEvents = {
|
|
@@ -883,6 +908,474 @@ there is no `severity` beside it. */
|
|
|
883
908
|
|
|
884
909
|
export type HelixHeadlessCalloutVueEvents = {};
|
|
885
910
|
|
|
911
|
+
export type HelixHeadlessCanvasEdgeVueProps = {
|
|
912
|
+
/** The card it leaves. */
|
|
913
|
+
from?: (HelixHeadlessCanvasEdge["from"]) | undefined;
|
|
914
|
+
/** What sits at the end it leaves from.
|
|
915
|
+
|
|
916
|
+
Absent is nothing, which is the format's own default and what makes an
|
|
917
|
+
ordinary connector a one-way arrow. */
|
|
918
|
+
"from-end"?: (HelixHeadlessCanvasEdge["fromEnd"]) | undefined;
|
|
919
|
+
/** What sits at the end it leaves from.
|
|
920
|
+
|
|
921
|
+
Absent is nothing, which is the format's own default and what makes an
|
|
922
|
+
ordinary connector a one-way arrow. */
|
|
923
|
+
fromEnd?: (HelixHeadlessCanvasEdge["fromEnd"]) | undefined;
|
|
924
|
+
/** Which side of that card it leaves, where the document says. */
|
|
925
|
+
"from-side"?: (HelixHeadlessCanvasEdge["fromSide"]) | undefined;
|
|
926
|
+
/** Which side of that card it leaves, where the document says. */
|
|
927
|
+
fromSide?: (HelixHeadlessCanvasEdge["fromSide"]) | undefined;
|
|
928
|
+
/** What the connector says, drawn at its middle. */
|
|
929
|
+
label?: (HelixHeadlessCanvasEdge["label"]) | undefined;
|
|
930
|
+
/** What a request calls this connection, unique on its board.
|
|
931
|
+
|
|
932
|
+
Optional, unlike a card's: a connection is also known by its two ends,
|
|
933
|
+
which `helix-remove` carries beside this, so a page that names none of its
|
|
934
|
+
connections can still find the one a reader asked to take away. */
|
|
935
|
+
name?: (HelixHeadlessCanvasEdge["name"]) | undefined;
|
|
936
|
+
/** How it travels: `straight`, or `step` for right angles.
|
|
937
|
+
|
|
938
|
+
Absent is whatever the board says, and a curve where the board says
|
|
939
|
+
nothing. Not part of JSON Canvas, which draws every edge one way; a
|
|
940
|
+
document read from one keeps its curves.
|
|
941
|
+
|
|
942
|
+
**`path` rather than `shape`**, which is a word this library already
|
|
943
|
+
spends on how an element looks in the styled tier: this changes the line
|
|
944
|
+
the connector is drawn along, which the board computes. Nor `route`, which
|
|
945
|
+
every element here already has, as the method that sends a child to a slot. */
|
|
946
|
+
path?: (HelixHeadlessCanvasEdge["path"]) | undefined;
|
|
947
|
+
/** Keeps this connection: a reader cannot remove it.
|
|
948
|
+
|
|
949
|
+
The board's `readonly` still wins. A connection is still removed with a
|
|
950
|
+
card at either end of it, since a line to a card that has gone is not one
|
|
951
|
+
the board can draw. */
|
|
952
|
+
readonly?: (HelixHeadlessCanvasEdge["readOnly"]) | undefined;
|
|
953
|
+
/** Keeps this connection: a reader cannot remove it.
|
|
954
|
+
|
|
955
|
+
The board's `readonly` still wins. A connection is still removed with a
|
|
956
|
+
card at either end of it, since a line to a card that has gone is not one
|
|
957
|
+
the board can draw. */
|
|
958
|
+
readOnly?: (HelixHeadlessCanvasEdge["readOnly"]) | undefined;
|
|
959
|
+
/** The card it arrives at. */
|
|
960
|
+
to?: (HelixHeadlessCanvasEdge["to"]) | undefined;
|
|
961
|
+
/** What sits at the end it arrives at. Absent is an arrow, as the format says. */
|
|
962
|
+
"to-end"?: (HelixHeadlessCanvasEdge["toEnd"]) | undefined;
|
|
963
|
+
/** What sits at the end it arrives at. Absent is an arrow, as the format says. */
|
|
964
|
+
toEnd?: (HelixHeadlessCanvasEdge["toEnd"]) | undefined;
|
|
965
|
+
/** What the connection means, in the words every Helix component uses.
|
|
966
|
+
|
|
967
|
+
A color with no meaning is `--canvas-edge-color`, written in the edge's own
|
|
968
|
+
`style`: the line is drawn by the board rather than by this element, so the
|
|
969
|
+
board carries the value across from where it was written. */
|
|
970
|
+
tone?: (HelixHeadlessCanvasEdge["tone"]) | undefined;
|
|
971
|
+
/** Which side of that card it arrives at, where the document says. */
|
|
972
|
+
"to-side"?: (HelixHeadlessCanvasEdge["toSide"]) | undefined;
|
|
973
|
+
/** Which side of that card it arrives at, where the document says. */
|
|
974
|
+
toSide?: (HelixHeadlessCanvasEdge["toSide"]) | undefined;
|
|
975
|
+
/** How the line is drawn: `dashed` or `dotted`, and solid where it says
|
|
976
|
+
neither.
|
|
977
|
+
|
|
978
|
+
**A variant rather than an axis**, which is what the registry keeps it for:
|
|
979
|
+
no other family draws a line whose stroke says something, and a dashed
|
|
980
|
+
connection is the ordinary way to draw a weaker or an optional one. On the
|
|
981
|
+
headless tier because the board that draws the line is. */
|
|
982
|
+
variant?: (HelixHeadlessCanvasEdge["variant"]) | undefined;
|
|
983
|
+
};
|
|
984
|
+
|
|
985
|
+
export type HelixHeadlessCanvasEdgeVueEvents = {};
|
|
986
|
+
|
|
987
|
+
export type HelixHeadlessCanvasNodeVueProps = {
|
|
988
|
+
/** A box drawn behind the cards inside it rather than a card.
|
|
989
|
+
|
|
990
|
+
The board works out what is inside it from the geometry, which is what the
|
|
991
|
+
format does too, and moves them with it. Its `label` is drawn above it. */
|
|
992
|
+
group?: (HelixHeadlessCanvasNode["group"]) | undefined;
|
|
993
|
+
/** How tall the card is, in the document's own units. */
|
|
994
|
+
height?: (HelixHeadlessCanvasNode["height"]) | undefined;
|
|
995
|
+
/** What the card is called, for a group and wherever another card names it.
|
|
996
|
+
|
|
997
|
+
A group needs one because it has no text of its own; a card that has text
|
|
998
|
+
is named by it, and one holding a picture or a figure is named by nothing
|
|
999
|
+
short enough to read out in another card's connections. */
|
|
1000
|
+
label?: (HelixHeadlessCanvasNode["label"]) | undefined;
|
|
1001
|
+
/** What connections and requests call this card, unique on its board.
|
|
1002
|
+
|
|
1003
|
+
Required: a card with no name is drawn but nothing can connect to it, and
|
|
1004
|
+
the board has nothing to say when a reader asks for it to go. */
|
|
1005
|
+
name?: (HelixHeadlessCanvasNode["name"]) | undefined;
|
|
1006
|
+
/** Keeps this card where it is: not moved, not connected, not removed.
|
|
1007
|
+
|
|
1008
|
+
**The board's own word, meaning the same thing one card at a time.** A
|
|
1009
|
+
board of cards a reader rearranges often has one that anchors it, a start
|
|
1010
|
+
or a title, and this is that card. The board's `readonly` still wins, so a
|
|
1011
|
+
read-only board is read-only whatever its cards say. */
|
|
1012
|
+
readonly?: (HelixHeadlessCanvasNode["readOnly"]) | undefined;
|
|
1013
|
+
/** Keeps this card where it is: not moved, not connected, not removed.
|
|
1014
|
+
|
|
1015
|
+
**The board's own word, meaning the same thing one card at a time.** A
|
|
1016
|
+
board of cards a reader rearranges often has one that anchors it, a start
|
|
1017
|
+
or a title, and this is that card. The board's `readonly` still wins, so a
|
|
1018
|
+
read-only board is read-only whatever its cards say. */
|
|
1019
|
+
readOnly?: (HelixHeadlessCanvasNode["readOnly"]) | undefined;
|
|
1020
|
+
/** The card's outline: `circle`, `diamond`, `pill` or `square`, and a rounded
|
|
1021
|
+
box where it says none.
|
|
1022
|
+
|
|
1023
|
+
**A flowchart's vocabulary, and the reason it is on this tier**: a diamond
|
|
1024
|
+
is drawn as an outline the card renders, because a border follows a box
|
|
1025
|
+
and a diamond is not one, so the markup differs before any rule is
|
|
1026
|
+
written. Every shape here meets the middle of each side of its box, which
|
|
1027
|
+
is where a connection arrives, so a connection to a diamond lands on its
|
|
1028
|
+
point and one to a circle on its curve without the board knowing which. */
|
|
1029
|
+
shape?: (HelixHeadlessCanvasNode["shape"]) | undefined;
|
|
1030
|
+
/** What the card means, in the words every Helix component uses for it.
|
|
1031
|
+
|
|
1032
|
+
**`tone` rather than the format's `color`**, which was a second word for
|
|
1033
|
+
the same thing on this family alone: JSON Canvas writes `1` to `6` and
|
|
1034
|
+
leaves the meaning to the application, and this board had already pinned
|
|
1035
|
+
each to a tone. `fromJsonCanvas` maps the six to tones on the way in. A
|
|
1036
|
+
color with no meaning, a hex a document chose, is a custom property on the
|
|
1037
|
+
card, `--canvas-node-color`, which is a style rather than a statement.
|
|
1038
|
+
|
|
1039
|
+
On the headless tier because meaning survives having no stylesheet. */
|
|
1040
|
+
tone?: (HelixHeadlessCanvasNode["tone"]) | undefined;
|
|
1041
|
+
/** How wide the card is, in the document's own units. */
|
|
1042
|
+
width?: (HelixHeadlessCanvasNode["width"]) | undefined;
|
|
1043
|
+
/** Where its left edge sits, in the document's own units. */
|
|
1044
|
+
x?: (HelixHeadlessCanvasNode["x"]) | undefined;
|
|
1045
|
+
/** Where its top edge sits, in the document's own units. */
|
|
1046
|
+
y?: (HelixHeadlessCanvasNode["y"]) | undefined;
|
|
1047
|
+
};
|
|
1048
|
+
|
|
1049
|
+
export type HelixHeadlessCanvasNodeVueEvents = {};
|
|
1050
|
+
|
|
1051
|
+
/** `HelixHeadlessCanvas` component event */
|
|
1052
|
+
export type HelixHeadlessCanvasElementEvent<E = Event> = TypedEvent<
|
|
1053
|
+
HelixHeadlessCanvas,
|
|
1054
|
+
E
|
|
1055
|
+
>;
|
|
1056
|
+
/** `helix-before-move` event type */
|
|
1057
|
+
export type HelixHeadlessCanvasHelixBeforeMoveElementEvent =
|
|
1058
|
+
HelixHeadlessCanvasElementEvent<HelixBeforeMoveEvent>;
|
|
1059
|
+
/** `helix-before-reconnect` event type */
|
|
1060
|
+
export type HelixHeadlessCanvasHelixBeforeReconnectElementEvent =
|
|
1061
|
+
HelixHeadlessCanvasElementEvent<HelixBeforeReconnectEvent>;
|
|
1062
|
+
/** `helix-before-relabel` event type */
|
|
1063
|
+
export type HelixHeadlessCanvasHelixBeforeRelabelElementEvent =
|
|
1064
|
+
HelixHeadlessCanvasElementEvent<HelixBeforeRelabelEvent>;
|
|
1065
|
+
/** `helix-canvas-edit` event type */
|
|
1066
|
+
export type HelixHeadlessCanvasHelixCanvasEditElementEvent =
|
|
1067
|
+
HelixHeadlessCanvasElementEvent<HelixCanvasEditEvent>;
|
|
1068
|
+
/** `helix-canvas-pan` event type */
|
|
1069
|
+
export type HelixHeadlessCanvasHelixCanvasPanElementEvent =
|
|
1070
|
+
HelixHeadlessCanvasElementEvent<HelixCanvasPanEvent>;
|
|
1071
|
+
/** `helix-canvas-view` event type */
|
|
1072
|
+
export type HelixHeadlessCanvasHelixCanvasViewElementEvent =
|
|
1073
|
+
HelixHeadlessCanvasElementEvent<HelixCanvasViewEvent>;
|
|
1074
|
+
/** `helix-canvas-zoom` event type */
|
|
1075
|
+
export type HelixHeadlessCanvasHelixCanvasZoomElementEvent =
|
|
1076
|
+
HelixHeadlessCanvasElementEvent<HelixCanvasZoomEvent>;
|
|
1077
|
+
/** `helix-connect` event type */
|
|
1078
|
+
export type HelixHeadlessCanvasHelixConnectElementEvent =
|
|
1079
|
+
HelixHeadlessCanvasElementEvent<HelixConnectEvent>;
|
|
1080
|
+
/** `helix-move` event type */
|
|
1081
|
+
export type HelixHeadlessCanvasHelixMoveElementEvent =
|
|
1082
|
+
HelixHeadlessCanvasElementEvent<HelixMoveEvent>;
|
|
1083
|
+
/** `helix-reconnect` event type */
|
|
1084
|
+
export type HelixHeadlessCanvasHelixReconnectElementEvent =
|
|
1085
|
+
HelixHeadlessCanvasElementEvent<HelixReconnectEvent>;
|
|
1086
|
+
/** `helix-relabel` event type */
|
|
1087
|
+
export type HelixHeadlessCanvasHelixRelabelElementEvent =
|
|
1088
|
+
HelixHeadlessCanvasElementEvent<HelixRelabelEvent>;
|
|
1089
|
+
/** `helix-remove` event type */
|
|
1090
|
+
export type HelixHeadlessCanvasHelixRemoveElementEvent =
|
|
1091
|
+
HelixHeadlessCanvasElementEvent<HelixRemoveEvent>;
|
|
1092
|
+
/** `helix-select` event type */
|
|
1093
|
+
export type HelixHeadlessCanvasHelixSelectElementEvent =
|
|
1094
|
+
HelixHeadlessCanvasElementEvent<HelixSelectEvent>;
|
|
1095
|
+
|
|
1096
|
+
export type HelixHeadlessCanvasVueProps = {
|
|
1097
|
+
/** How a card says where its connections come from, with `{cards}`. */
|
|
1098
|
+
"comes-from-label"?: (HelixHeadlessCanvas["comesFromLabel"]) | undefined;
|
|
1099
|
+
/** How a card says where its connections come from, with `{cards}`. */
|
|
1100
|
+
comesFromLabel?: (HelixHeadlessCanvas["comesFromLabel"]) | undefined;
|
|
1101
|
+
/** What it says when a connection is asked for, with `{from}` and `{to}`. */
|
|
1102
|
+
"connected-label"?: (HelixHeadlessCanvas["connectedLabel"]) | undefined;
|
|
1103
|
+
/** What it says when a connection is asked for, with `{from}` and `{to}`. */
|
|
1104
|
+
connectedLabel?: (HelixHeadlessCanvas["connectedLabel"]) | undefined;
|
|
1105
|
+
/** What the live region says when a reader starts a connection, with `{from}`
|
|
1106
|
+
filled in.
|
|
1107
|
+
|
|
1108
|
+
**Every sentence this board speaks is a property**, the rule the pan
|
|
1109
|
+
controls already kept with `pan-up-label` and its three: a board on a page in another
|
|
1110
|
+
language otherwise read its connections out in English. */
|
|
1111
|
+
"connecting-label"?: (HelixHeadlessCanvas["connectingLabel"]) | undefined;
|
|
1112
|
+
/** What the live region says when a reader starts a connection, with `{from}`
|
|
1113
|
+
filled in.
|
|
1114
|
+
|
|
1115
|
+
**Every sentence this board speaks is a property**, the rule the pan
|
|
1116
|
+
controls already kept with `pan-up-label` and its three: a board on a page in another
|
|
1117
|
+
language otherwise read its connections out in English. */
|
|
1118
|
+
connectingLabel?: (HelixHeadlessCanvas["connectingLabel"]) | undefined;
|
|
1119
|
+
/** What a connection is called, with `{from}` and `{to}`.
|
|
1120
|
+
|
|
1121
|
+
Its own label, where it has one, is its description rather than part of
|
|
1122
|
+
this, so a reader hears the ends first and what the line says after. */
|
|
1123
|
+
"connection-label"?: (HelixHeadlessCanvas["connectionLabel"]) | undefined;
|
|
1124
|
+
/** What a connection is called, with `{from}` and `{to}`.
|
|
1125
|
+
|
|
1126
|
+
Its own label, where it has one, is its description rather than part of
|
|
1127
|
+
this, so a reader hears the ends first and what the line says after. */
|
|
1128
|
+
connectionLabel?: (HelixHeadlessCanvas["connectionLabel"]) | undefined;
|
|
1129
|
+
/** Accessible name for the board, which is the one thing a consumer must write.
|
|
1130
|
+
|
|
1131
|
+
A document has no name of its own in the format, and "Canvas" names the
|
|
1132
|
+
widget rather than the thinking on it. */
|
|
1133
|
+
label?: (HelixHeadlessCanvas["label"]) | undefined;
|
|
1134
|
+
/** What the field a label is edited in is called, with `{name}` for what it
|
|
1135
|
+
labels. */
|
|
1136
|
+
"label-editor-label"?: (HelixHeadlessCanvas["labelEditorLabel"]) | undefined;
|
|
1137
|
+
/** What the field a label is edited in is called, with `{name}` for what it
|
|
1138
|
+
labels. */
|
|
1139
|
+
labelEditorLabel?: (HelixHeadlessCanvas["labelEditorLabel"]) | undefined;
|
|
1140
|
+
/** How a card says where its connections go, with `{cards}` as the list.
|
|
1141
|
+
|
|
1142
|
+
The list is joined the way the page's language joins one, "Second and
|
|
1143
|
+
Third", rather than with a comma this component chose. */
|
|
1144
|
+
"leads-to-label"?: (HelixHeadlessCanvas["leadsToLabel"]) | undefined;
|
|
1145
|
+
/** How a card says where its connections go, with `{cards}` as the list.
|
|
1146
|
+
|
|
1147
|
+
The list is joined the way the page's language joins one, "Second and
|
|
1148
|
+
Third", rather than with a comma this component chose. */
|
|
1149
|
+
leadsToLabel?: (HelixHeadlessCanvas["leadsToLabel"]) | undefined;
|
|
1150
|
+
/** The order a reader meets the cards in.
|
|
1151
|
+
|
|
1152
|
+
`spatial` bands them into rows and reads each row across, which is how a
|
|
1153
|
+
person reads a board laid out on a grid and is a heuristic a loose board
|
|
1154
|
+
defeats. `edges` follows the arrows from the cards nothing points to, which
|
|
1155
|
+
on a board that is a flow is the order its author meant.
|
|
1156
|
+
|
|
1157
|
+
Absent is spatial, a resting value being an attribute's absence: a default
|
|
1158
|
+
that reflected would write a choice onto every host that no server sent. */
|
|
1159
|
+
order?: (HelixHeadlessCanvas["order"]) | undefined;
|
|
1160
|
+
/** How every connection travels, where it does not say: `straight`, or `step`
|
|
1161
|
+
for right angles.
|
|
1162
|
+
|
|
1163
|
+
Absent is a curve. A flowchart wants `step` on all of its edges, and
|
|
1164
|
+
writing it once here rather than on each is the reason this exists; an
|
|
1165
|
+
edge's own `path` still wins. */
|
|
1166
|
+
path?: (HelixHeadlessCanvas["path"]) | undefined;
|
|
1167
|
+
/** Keeps every card where its author put it.
|
|
1168
|
+
|
|
1169
|
+
**The attribute is `readonly`, which is the platform's spelling**, and the
|
|
1170
|
+
reverse of an `editable` switch on purpose: a form control takes input
|
|
1171
|
+
unless it is told not to, and a board a reader can rearrange is the same
|
|
1172
|
+
kind of thing. A drag on a card pans the board instead, and the keys still
|
|
1173
|
+
walk the cards. */
|
|
1174
|
+
readonly?: (HelixHeadlessCanvas["readOnly"]) | undefined;
|
|
1175
|
+
/** Keeps every card where its author put it.
|
|
1176
|
+
|
|
1177
|
+
**The attribute is `readonly`, which is the platform's spelling**, and the
|
|
1178
|
+
reverse of an `editable` switch on purpose: a form control takes input
|
|
1179
|
+
unless it is told not to, and a board a reader can rearrange is the same
|
|
1180
|
+
kind of thing. A drag on a card pans the board instead, and the keys still
|
|
1181
|
+
walk the cards. */
|
|
1182
|
+
readOnly?: (HelixHeadlessCanvas["readOnly"]) | undefined;
|
|
1183
|
+
/** What the live region says when a reader picks up a connection's end, with
|
|
1184
|
+
`{from}` and `{to}`. */
|
|
1185
|
+
"reconnecting-label"?: (HelixHeadlessCanvas["reconnectingLabel"]) | undefined;
|
|
1186
|
+
/** What the live region says when a reader picks up a connection's end, with
|
|
1187
|
+
`{from}` and `{to}`. */
|
|
1188
|
+
reconnectingLabel?: (HelixHeadlessCanvas["reconnectingLabel"]) | undefined;
|
|
1189
|
+
/** The cards and connections the reader selected, by name, comma separated,
|
|
1190
|
+
and empty for none.
|
|
1191
|
+
|
|
1192
|
+
**Comma separated, the way `Listbox` writes a multiple value**, so a page
|
|
1193
|
+
reads one selection the same way wherever it comes from. A click, or a key
|
|
1194
|
+
that lands on one, selects it alone; Shift, Command or Control with a click
|
|
1195
|
+
adds or takes one away, and so does Space; Command or Control with A
|
|
1196
|
+
selects everything; Shift and a drag across the empty board selects the
|
|
1197
|
+
cards the box touches. A click on the empty board, or Escape, selects
|
|
1198
|
+
nothing. Dragging, Shift with an arrow, and Delete act on the whole
|
|
1199
|
+
selection.
|
|
1200
|
+
|
|
1201
|
+
**Kept apart from focus**, so it stays when focus leaves: a reader who
|
|
1202
|
+
selects cards and clicks a button beside the board to act on them has not
|
|
1203
|
+
cleared what the button acts on by clicking. A connection with no name is
|
|
1204
|
+
called by its ends, `from->to`, which is also why a name has to be unique
|
|
1205
|
+
on its board across cards and connections both, and may not hold a comma.
|
|
1206
|
+
|
|
1207
|
+
Written to select from outside, and read to act on the selection. */
|
|
1208
|
+
selected?: (HelixHeadlessCanvas["selected"]) | undefined;
|
|
1209
|
+
/** What it says when a reader stops connecting without asking. */
|
|
1210
|
+
"stopped-label"?: (HelixHeadlessCanvas["stoppedLabel"]) | undefined;
|
|
1211
|
+
/** What it says when a reader stops connecting without asking. */
|
|
1212
|
+
stoppedLabel?: (HelixHeadlessCanvas["stoppedLabel"]) | undefined;
|
|
1213
|
+
/** Which of the controls this surface draws, as a list of what to keep.
|
|
1214
|
+
|
|
1215
|
+
**A list rather than a switch, because the overlap is not symmetric.** A
|
|
1216
|
+
surface a consumer brings often has zoom controls of its own and almost
|
|
1217
|
+
never has pan buttons, so a single switch would make them choose between
|
|
1218
|
+
a duplicate and nothing.
|
|
1219
|
+
|
|
1220
|
+
`none` draws none of them, which is the right answer where what was
|
|
1221
|
+
slotted already has controls a reader can find: what this argues for is
|
|
1222
|
+
that *a* findable control exists, never that it is ours. The methods stay
|
|
1223
|
+
public either way, so a consumer drawing their own chrome can still drive
|
|
1224
|
+
the surface.
|
|
1225
|
+
|
|
1226
|
+
Absent is whatever the family rests at, which is this library's rule that
|
|
1227
|
+
a resting value is an attribute's absence: all three for a map, whose
|
|
1228
|
+
reader may have no other way to move it, and zoom and fullscreen for a
|
|
1229
|
+
board, which a reader drags and whose pad took a third of the frame. The
|
|
1230
|
+
stylesheet lays the cluster out by which buttons are in it rather than by
|
|
1231
|
+
this attribute, so the two defaults need no rule each. */
|
|
1232
|
+
controls?: (HelixHeadlessCanvas["controls"]) | undefined;
|
|
1233
|
+
/** What the group of controls is called, for a reader who meets it.
|
|
1234
|
+
|
|
1235
|
+
Absent is the family's own name for it, "Map controls" or "Board
|
|
1236
|
+
controls", which names what the controls drive rather than the
|
|
1237
|
+
mechanism. Written here to say it in another language, which every other
|
|
1238
|
+
string this surface speaks already allowed and this one did not. */
|
|
1239
|
+
"controls-label"?: (HelixHeadlessCanvas["controlsLabel"]) | undefined;
|
|
1240
|
+
/** What the group of controls is called, for a reader who meets it.
|
|
1241
|
+
|
|
1242
|
+
Absent is the family's own name for it, "Map controls" or "Board
|
|
1243
|
+
controls", which names what the controls drive rather than the
|
|
1244
|
+
mechanism. Written here to say it in another language, which every other
|
|
1245
|
+
string this surface speaks already allowed and this one did not. */
|
|
1246
|
+
controlsLabel?: (HelixHeadlessCanvas["controlsLabel"]) | undefined;
|
|
1247
|
+
/** Which corner the controls sit in.
|
|
1248
|
+
|
|
1249
|
+
**Configurable because there is no safe default**, which is a collision
|
|
1250
|
+
rather than a taste: whatever a consumer slots may put its own controls
|
|
1251
|
+
in any corner, and every library that draws some made this a setting for
|
|
1252
|
+
the same reason.
|
|
1253
|
+
|
|
1254
|
+
Logical corners rather than left and right, so a right-to-left page moves
|
|
1255
|
+
them without a consumer writing a second rule. Absent is the top end, a
|
|
1256
|
+
resting value being an attribute's absence: a default that reflected
|
|
1257
|
+
would write an attribute onto every host that no server sent. */
|
|
1258
|
+
"controls-placement"?: (HelixHeadlessCanvas["controlsPlacement"]) | undefined;
|
|
1259
|
+
/** Which corner the controls sit in.
|
|
1260
|
+
|
|
1261
|
+
**Configurable because there is no safe default**, which is a collision
|
|
1262
|
+
rather than a taste: whatever a consumer slots may put its own controls
|
|
1263
|
+
in any corner, and every library that draws some made this a setting for
|
|
1264
|
+
the same reason.
|
|
1265
|
+
|
|
1266
|
+
Logical corners rather than left and right, so a right-to-left page moves
|
|
1267
|
+
them without a consumer writing a second rule. Absent is the top end, a
|
|
1268
|
+
resting value being an attribute's absence: a default that reflected
|
|
1269
|
+
would write an attribute onto every host that no server sent. */
|
|
1270
|
+
controlsPlacement?: (HelixHeadlessCanvas["controlsPlacement"]) | undefined;
|
|
1271
|
+
/** What the control that fills the screen is called. */
|
|
1272
|
+
"fullscreen-label"?: (HelixHeadlessCanvas["fullscreenLabel"]) | undefined;
|
|
1273
|
+
/** What the control that fills the screen is called. */
|
|
1274
|
+
fullscreenLabel?: (HelixHeadlessCanvas["fullscreenLabel"]) | undefined;
|
|
1275
|
+
/** How long the reader may be still before the chrome hides, in milliseconds.
|
|
1276
|
+
|
|
1277
|
+
Zero keeps it up, which is the default: these controls are how a keyboard
|
|
1278
|
+
reader operates the surface, and chrome that hid itself by default would
|
|
1279
|
+
be the component undoing its own argument. Set it for a display nobody
|
|
1280
|
+
drives. */
|
|
1281
|
+
"idle-delay"?: (HelixHeadlessCanvas["idleDelay"] | `${number}`) | undefined;
|
|
1282
|
+
/** How long the reader may be still before the chrome hides, in milliseconds.
|
|
1283
|
+
|
|
1284
|
+
Zero keeps it up, which is the default: these controls are how a keyboard
|
|
1285
|
+
reader operates the surface, and chrome that hid itself by default would
|
|
1286
|
+
be the component undoing its own argument. Set it for a display nobody
|
|
1287
|
+
drives. */
|
|
1288
|
+
idleDelay?: (HelixHeadlessCanvas["idleDelay"]) | undefined;
|
|
1289
|
+
/** What the control that pans down is called.
|
|
1290
|
+
|
|
1291
|
+
**A label for each way rather than one with the way filled in**, which is
|
|
1292
|
+
what this was: `Pan {way}` filled in with `left`, so a page that said it
|
|
1293
|
+
in French read out "Déplacer left". The word for a direction is as much
|
|
1294
|
+
the translator's as the word for panning, and a language can put it
|
|
1295
|
+
anywhere in the phrase. */
|
|
1296
|
+
"pan-down-label"?: (HelixHeadlessCanvas["panDownLabel"]) | undefined;
|
|
1297
|
+
/** What the control that pans down is called.
|
|
1298
|
+
|
|
1299
|
+
**A label for each way rather than one with the way filled in**, which is
|
|
1300
|
+
what this was: `Pan {way}` filled in with `left`, so a page that said it
|
|
1301
|
+
in French read out "Déplacer left". The word for a direction is as much
|
|
1302
|
+
the translator's as the word for panning, and a language can put it
|
|
1303
|
+
anywhere in the phrase. */
|
|
1304
|
+
panDownLabel?: (HelixHeadlessCanvas["panDownLabel"]) | undefined;
|
|
1305
|
+
/** What the control that pans left is called, on screen. */
|
|
1306
|
+
"pan-left-label"?: (HelixHeadlessCanvas["panLeftLabel"]) | undefined;
|
|
1307
|
+
/** What the control that pans left is called, on screen. */
|
|
1308
|
+
panLeftLabel?: (HelixHeadlessCanvas["panLeftLabel"]) | undefined;
|
|
1309
|
+
/** What the control that pans right is called, on screen. */
|
|
1310
|
+
"pan-right-label"?: (HelixHeadlessCanvas["panRightLabel"]) | undefined;
|
|
1311
|
+
/** What the control that pans right is called, on screen. */
|
|
1312
|
+
panRightLabel?: (HelixHeadlessCanvas["panRightLabel"]) | undefined;
|
|
1313
|
+
/** How far one press moves the view, as a fraction of what is on screen.
|
|
1314
|
+
|
|
1315
|
+
A fraction rather than a distance, because this surface does not know the
|
|
1316
|
+
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
1317
|
+
at any zoom, and a consumer who wants their own units multiplies by them. */
|
|
1318
|
+
"pan-step"?: (HelixHeadlessCanvas["panStep"] | `${number}`) | undefined;
|
|
1319
|
+
/** How far one press moves the view, as a fraction of what is on screen.
|
|
1320
|
+
|
|
1321
|
+
A fraction rather than a distance, because this surface does not know the
|
|
1322
|
+
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
1323
|
+
at any zoom, and a consumer who wants their own units multiplies by them. */
|
|
1324
|
+
panStep?: (HelixHeadlessCanvas["panStep"]) | undefined;
|
|
1325
|
+
/** What the control that pans up is called. */
|
|
1326
|
+
"pan-up-label"?: (HelixHeadlessCanvas["panUpLabel"]) | undefined;
|
|
1327
|
+
/** What the control that pans up is called. */
|
|
1328
|
+
panUpLabel?: (HelixHeadlessCanvas["panUpLabel"]) | undefined;
|
|
1329
|
+
/** What the control that zooms in is called. */
|
|
1330
|
+
"zoom-in-label"?: (HelixHeadlessCanvas["zoomInLabel"]) | undefined;
|
|
1331
|
+
/** What the control that zooms in is called. */
|
|
1332
|
+
zoomInLabel?: (HelixHeadlessCanvas["zoomInLabel"]) | undefined;
|
|
1333
|
+
/** What the control that zooms out is called. */
|
|
1334
|
+
"zoom-out-label"?: (HelixHeadlessCanvas["zoomOutLabel"]) | undefined;
|
|
1335
|
+
/** What the control that zooms out is called. */
|
|
1336
|
+
zoomOutLabel?: (HelixHeadlessCanvas["zoomOutLabel"]) | undefined;
|
|
1337
|
+
/** Where the board is looking: the document's point at the middle of the view,
|
|
1338
|
+
and the zoom.
|
|
1339
|
+
|
|
1340
|
+
**Read to save a view and written to restore one**, which a consumer keeping
|
|
1341
|
+
a minimap in step, or putting a reader back where they were, had no way to
|
|
1342
|
+
do: where the board sat was private, and the events said only which way a
|
|
1343
|
+
control had moved it. The middle rather than a corner, so a view saved in
|
|
1344
|
+
one box shows the same thing in the middle of a box of another size.
|
|
1345
|
+
Writing one counts as the reader choosing a view, so a later resize keeps
|
|
1346
|
+
it rather than fitting the board again. */
|
|
1347
|
+
view?: (HelixHeadlessCanvas["view"]) | undefined;
|
|
1348
|
+
};
|
|
1349
|
+
|
|
1350
|
+
export type HelixHeadlessCanvasVueEvents = {
|
|
1351
|
+
/** Cards are about to move. Refuse it to keep the positions in your own state. */
|
|
1352
|
+
"helix-before-move": HelixHeadlessCanvasHelixBeforeMoveElementEvent;
|
|
1353
|
+
/** A connection's end is about to move to another card or side. Refuse it to keep connections in your own state. */
|
|
1354
|
+
"helix-before-reconnect": HelixHeadlessCanvasHelixBeforeReconnectElementEvent;
|
|
1355
|
+
/** A connection's label or a group's name is about to change. Refuse it to keep labels in your own state. */
|
|
1356
|
+
"helix-before-relabel": HelixHeadlessCanvasHelixBeforeRelabelElementEvent;
|
|
1357
|
+
/** The reader asked to edit a card: a double-click, or Enter or F2. Open your own editor for it. */
|
|
1358
|
+
"helix-canvas-edit": HelixHeadlessCanvasHelixCanvasEditElementEvent;
|
|
1359
|
+
/** The board was moved a step, by its controls or the arrow keys: a fact rather than a request. A drag says so through `helix-canvas-view`. */
|
|
1360
|
+
"helix-canvas-pan": HelixHeadlessCanvasHelixCanvasPanElementEvent;
|
|
1361
|
+
/** Where the board is looking changed, however it changed. The detail is the new view. */
|
|
1362
|
+
"helix-canvas-view": HelixHeadlessCanvasHelixCanvasViewElementEvent;
|
|
1363
|
+
/** The board zoomed a step, by its controls or the keys. A wheel or a pinch says so through `helix-canvas-view`. */
|
|
1364
|
+
"helix-canvas-zoom": HelixHeadlessCanvasHelixCanvasZoomElementEvent;
|
|
1365
|
+
/** A reader asked for two cards to be joined. Add the `helix-canvas-edge` to do it. */
|
|
1366
|
+
"helix-connect": HelixHeadlessCanvasHelixConnectElementEvent;
|
|
1367
|
+
/** Cards moved and the move is finished: a drag let go, a click that put a card down, or a key pressed. */
|
|
1368
|
+
"helix-move": HelixHeadlessCanvasHelixMoveElementEvent;
|
|
1369
|
+
/** A connection's end moved, and the move is finished. */
|
|
1370
|
+
"helix-reconnect": HelixHeadlessCanvasHelixReconnectElementEvent;
|
|
1371
|
+
/** A connection's label or a group's name changed. */
|
|
1372
|
+
"helix-relabel": HelixHeadlessCanvasHelixRelabelElementEvent;
|
|
1373
|
+
/** A reader asked for cards or connections to go. Remove the elements it names. */
|
|
1374
|
+
"helix-remove": HelixHeadlessCanvasHelixRemoveElementEvent;
|
|
1375
|
+
/** The selection changed. The detail's `value` is the names, comma separated, empty for none. Cancelable: refusing it keeps the selection where it was. */
|
|
1376
|
+
"helix-select": HelixHeadlessCanvasHelixSelectElementEvent;
|
|
1377
|
+
};
|
|
1378
|
+
|
|
886
1379
|
export type HelixHeadlessCardVueProps = {
|
|
887
1380
|
/** Puts the media after the content instead of before it.
|
|
888
1381
|
|
|
@@ -924,19 +1417,6 @@ export type HelixHeadlessCarouselHelixSelectElementEvent =
|
|
|
924
1417
|
export type HelixHeadlessCarouselVueProps = {
|
|
925
1418
|
/** Whether the carousel advances on its own. */
|
|
926
1419
|
autoplay?: (HelixHeadlessCarousel["autoplay"]) | undefined;
|
|
927
|
-
/** The slide in view, counted from zero.
|
|
928
|
-
|
|
929
|
-
Reading gives the real slide. Writing always applies, the way a script
|
|
930
|
-
assigning to a native control does, and is a seed and a correction rather
|
|
931
|
-
than a claim of ownership: a consumer who wants the decision refuses the
|
|
932
|
-
`helix-select`. `default-index` is where the carousel starts until
|
|
933
|
-
something moves it.
|
|
934
|
-
|
|
935
|
-
The same contract the four mixins carry, written out here rather than
|
|
936
|
-
extracted, because a slide is addressed by position and every one of those
|
|
937
|
-
mixins is keyed by a name. One consumer is not a mixin: if a second numeric
|
|
938
|
-
state turns up, this is what it is extracted from. */
|
|
939
|
-
index?: (HelixHeadlessCarousel["index"]) | undefined;
|
|
940
1420
|
/** Whether the previous and next controls are shown.
|
|
941
1421
|
|
|
942
1422
|
`auto`, which is the resting behavior and what an absent attribute means,
|
|
@@ -965,12 +1445,45 @@ touch device exactly as it does on a desktop. */
|
|
|
965
1445
|
"default-index"?: (HelixHeadlessCarousel["defaultIndex"] | `${number}`) | undefined;
|
|
966
1446
|
/** Slide to start on, where nothing declared one. */
|
|
967
1447
|
defaultIndex?: (HelixHeadlessCarousel["defaultIndex"]) | undefined;
|
|
1448
|
+
/** The slide in view, counted from zero.
|
|
1449
|
+
|
|
1450
|
+
Reading gives the real slide. Writing always applies, the way a script
|
|
1451
|
+
assigning to a native control does, and is a seed and a correction rather
|
|
1452
|
+
than a claim of ownership: a consumer who wants the decision refuses the
|
|
1453
|
+
`helix-select`. `default-index` is where the carousel starts until
|
|
1454
|
+
something moves it.
|
|
1455
|
+
|
|
1456
|
+
The same contract the four mixins carry, written out here rather than
|
|
1457
|
+
extracted, because a slide is addressed by position and every one of those
|
|
1458
|
+
mixins is keyed by a name. One consumer is not a mixin: if a second numeric
|
|
1459
|
+
state turns up, this is what it is extracted from. */
|
|
1460
|
+
index?: (HelixHeadlessCarousel["index"]) | undefined;
|
|
1461
|
+
/** What one indicator is called, with `{index}` filled in.
|
|
1462
|
+
|
|
1463
|
+
**Every word the carousel speaks is a property**, so a page in another
|
|
1464
|
+
language hears its own: only `label` was, and the controls around it
|
|
1465
|
+
read out in English. */
|
|
1466
|
+
"indicator-label"?: (HelixHeadlessCarousel["indicatorLabel"]) | undefined;
|
|
1467
|
+
/** What one indicator is called, with `{index}` filled in.
|
|
1468
|
+
|
|
1469
|
+
**Every word the carousel speaks is a property**, so a page in another
|
|
1470
|
+
language hears its own: only `label` was, and the controls around it
|
|
1471
|
+
read out in English. */
|
|
1472
|
+
indicatorLabel?: (HelixHeadlessCarousel["indicatorLabel"]) | undefined;
|
|
1473
|
+
/** What the row of indicators is called, with the carousel's `{label}` filled in. */
|
|
1474
|
+
"indicators-label"?: (HelixHeadlessCarousel["indicatorsLabel"]) | undefined;
|
|
1475
|
+
/** What the row of indicators is called, with the carousel's `{label}` filled in. */
|
|
1476
|
+
indicatorsLabel?: (HelixHeadlessCarousel["indicatorsLabel"]) | undefined;
|
|
968
1477
|
/** How long each slide is held, in milliseconds. */
|
|
969
1478
|
interval?: (HelixHeadlessCarousel["interval"]) | undefined;
|
|
970
1479
|
/** Accessible name for the carousel. */
|
|
971
1480
|
label?: (HelixHeadlessCarousel["label"]) | undefined;
|
|
972
1481
|
/** Whether moving past either end wraps to the other. */
|
|
973
1482
|
loop?: (HelixHeadlessCarousel["loop"]) | undefined;
|
|
1483
|
+
/** What the control that moves forward is called. */
|
|
1484
|
+
"next-label"?: (HelixHeadlessCarousel["nextLabel"]) | undefined;
|
|
1485
|
+
/** What the control that moves forward is called. */
|
|
1486
|
+
nextLabel?: (HelixHeadlessCarousel["nextLabel"]) | undefined;
|
|
974
1487
|
/** Which way the track runs.
|
|
975
1488
|
|
|
976
1489
|
Behavior rather than presentation, which is why it is here: the scroll
|
|
@@ -1104,6 +1617,28 @@ its attribute on upgrade, and the host then carries something a consumer's
|
|
|
1104
1617
|
server markup never had, which React reports as a mismatch. The one-across
|
|
1105
1618
|
case is the absent attribute, and the styles read it that way. */
|
|
1106
1619
|
perView?: (HelixHeadlessCarousel["perView"]) | undefined;
|
|
1620
|
+
/** What the control that moves back is called. */
|
|
1621
|
+
"previous-label"?: (HelixHeadlessCarousel["previousLabel"]) | undefined;
|
|
1622
|
+
/** What the control that moves back is called. */
|
|
1623
|
+
previousLabel?: (HelixHeadlessCarousel["previousLabel"]) | undefined;
|
|
1624
|
+
/** What each slide is called, with `{index}` and `{count}` filled in. */
|
|
1625
|
+
"slide-label"?: (HelixHeadlessCarousel["slideLabel"]) | undefined;
|
|
1626
|
+
/** What each slide is called, with `{index}` and `{count}` filled in. */
|
|
1627
|
+
slideLabel?: (HelixHeadlessCarousel["slideLabel"]) | undefined;
|
|
1628
|
+
/** What a slide is, read out in place of its role: `aria-roledescription`,
|
|
1629
|
+
which is a word a reader hears and so a word to translate. */
|
|
1630
|
+
"slide-role-label"?: (HelixHeadlessCarousel["slideRoleLabel"]) | undefined;
|
|
1631
|
+
/** What a slide is, read out in place of its role: `aria-roledescription`,
|
|
1632
|
+
which is a word a reader hears and so a word to translate. */
|
|
1633
|
+
slideRoleLabel?: (HelixHeadlessCarousel["slideRoleLabel"]) | undefined;
|
|
1634
|
+
/** What the rotation control is called while it would start rotation. */
|
|
1635
|
+
"start-label"?: (HelixHeadlessCarousel["startLabel"]) | undefined;
|
|
1636
|
+
/** What the rotation control is called while it would start rotation. */
|
|
1637
|
+
startLabel?: (HelixHeadlessCarousel["startLabel"]) | undefined;
|
|
1638
|
+
/** And while it would stop it. */
|
|
1639
|
+
"stop-label"?: (HelixHeadlessCarousel["stopLabel"]) | undefined;
|
|
1640
|
+
/** And while it would stop it. */
|
|
1641
|
+
stopLabel?: (HelixHeadlessCarousel["stopLabel"]) | undefined;
|
|
1107
1642
|
};
|
|
1108
1643
|
|
|
1109
1644
|
export type HelixHeadlessCarouselVueEvents = {
|
|
@@ -1228,9 +1763,17 @@ export type HelixHeadlessChatHelixSendElementEvent =
|
|
|
1228
1763
|
HelixHeadlessChatElementEvent<HelixSendEvent>;
|
|
1229
1764
|
|
|
1230
1765
|
export type HelixHeadlessChatVueProps = {
|
|
1231
|
-
/** Whether to open pinned, where nothing declared it.
|
|
1766
|
+
/** Whether to open pinned, where nothing declared it.
|
|
1767
|
+
|
|
1768
|
+
`default-pinned="false"` opens away from the bottom. A plain boolean
|
|
1769
|
+
attribute could not say that: it is true by being there, whatever it holds,
|
|
1770
|
+
so a default of true had no attribute that turned it off. */
|
|
1232
1771
|
"default-pinned"?: (HelixHeadlessChat["defaultPinned"]) | undefined;
|
|
1233
|
-
/** Whether to open pinned, where nothing declared it.
|
|
1772
|
+
/** Whether to open pinned, where nothing declared it.
|
|
1773
|
+
|
|
1774
|
+
`default-pinned="false"` opens away from the bottom. A plain boolean
|
|
1775
|
+
attribute could not say that: it is true by being there, whatever it holds,
|
|
1776
|
+
so a default of true had no attribute that turned it off. */
|
|
1234
1777
|
defaultPinned?: (HelixHeadlessChat["defaultPinned"]) | undefined;
|
|
1235
1778
|
/** Whether there are older turns than the ones here, and whether they are coming.
|
|
1236
1779
|
|
|
@@ -1324,6 +1867,26 @@ export type HelixHeadlessCheckboxGroupVueProps = {
|
|
|
1324
1867
|
label?: (HelixHeadlessCheckboxGroup["label"]) | undefined;
|
|
1325
1868
|
/** Whether the form refuses to submit without it. */
|
|
1326
1869
|
required?: (HelixHeadlessCheckboxGroup["required"]) | undefined;
|
|
1870
|
+
/** What a reader is told when the field is required and empty, where the
|
|
1871
|
+
page says.
|
|
1872
|
+
|
|
1873
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
1874
|
+
set and the browser's own on a text field, which the browser writes in
|
|
1875
|
+
the reader's language. Every other word a control speaks is a property,
|
|
1876
|
+
and this one was the English a form in another language still spoke in
|
|
1877
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
1878
|
+
the field and does not reach that one. */
|
|
1879
|
+
"value-missing-message"?: (HelixHeadlessCheckboxGroup["valueMissingMessage"]) | undefined;
|
|
1880
|
+
/** What a reader is told when the field is required and empty, where the
|
|
1881
|
+
page says.
|
|
1882
|
+
|
|
1883
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
1884
|
+
set and the browser's own on a text field, which the browser writes in
|
|
1885
|
+
the reader's language. Every other word a control speaks is a property,
|
|
1886
|
+
and this one was the English a form in another language still spoke in
|
|
1887
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
1888
|
+
the field and does not reach that one. */
|
|
1889
|
+
valueMissingMessage?: (HelixHeadlessCheckboxGroup["valueMissingMessage"]) | undefined;
|
|
1327
1890
|
/** Whether the control is non-interactive.
|
|
1328
1891
|
|
|
1329
1892
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -1398,6 +1961,26 @@ stylesheets. */
|
|
|
1398
1961
|
label?: (HelixHeadlessCheckbox["label"]) | undefined;
|
|
1399
1962
|
/** Whether the form refuses to submit without it. */
|
|
1400
1963
|
required?: (HelixHeadlessCheckbox["required"]) | undefined;
|
|
1964
|
+
/** What a reader is told when the field is required and empty, where the
|
|
1965
|
+
page says.
|
|
1966
|
+
|
|
1967
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
1968
|
+
set and the browser's own on a text field, which the browser writes in
|
|
1969
|
+
the reader's language. Every other word a control speaks is a property,
|
|
1970
|
+
and this one was the English a form in another language still spoke in
|
|
1971
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
1972
|
+
the field and does not reach that one. */
|
|
1973
|
+
"value-missing-message"?: (HelixHeadlessCheckbox["valueMissingMessage"]) | undefined;
|
|
1974
|
+
/** What a reader is told when the field is required and empty, where the
|
|
1975
|
+
page says.
|
|
1976
|
+
|
|
1977
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
1978
|
+
set and the browser's own on a text field, which the browser writes in
|
|
1979
|
+
the reader's language. Every other word a control speaks is a property,
|
|
1980
|
+
and this one was the English a form in another language still spoke in
|
|
1981
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
1982
|
+
the field and does not reach that one. */
|
|
1983
|
+
valueMissingMessage?: (HelixHeadlessCheckbox["valueMissingMessage"]) | undefined;
|
|
1401
1984
|
/** Whether the control is non-interactive.
|
|
1402
1985
|
|
|
1403
1986
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -1563,6 +2146,26 @@ The trade is real and is the reason this is not the default: a swatch cannot
|
|
|
1563
2146
|
be read or pasted into without opening the panel, which is worse for a form
|
|
1564
2147
|
where the color is the answer rather than a setting. */
|
|
1565
2148
|
variant?: (HelixHeadlessColorInput["variant"]) | undefined;
|
|
2149
|
+
/** What a reader is told when the field holds something the picker cannot
|
|
2150
|
+
read: a date that is not one, a time, a color.
|
|
2151
|
+
|
|
2152
|
+
**Every sentence a control raises in the browser's bubble is a
|
|
2153
|
+
property**, named for the validity flag it reports, so a form in another
|
|
2154
|
+
language speaks it. Absent is the family's own sentence, in English,
|
|
2155
|
+
which says what the value should look like. */
|
|
2156
|
+
"bad-input-message"?: (HelixHeadlessColorInput["badInputMessage"]) | undefined;
|
|
2157
|
+
/** What a reader is told when the field holds something the picker cannot
|
|
2158
|
+
read: a date that is not one, a time, a color.
|
|
2159
|
+
|
|
2160
|
+
**Every sentence a control raises in the browser's bubble is a
|
|
2161
|
+
property**, named for the validity flag it reports, so a form in another
|
|
2162
|
+
language speaks it. Absent is the family's own sentence, in English,
|
|
2163
|
+
which says what the value should look like. */
|
|
2164
|
+
badInputMessage?: (HelixHeadlessColorInput["badInputMessage"]) | undefined;
|
|
2165
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
2166
|
+
"default-open"?: (HelixHeadlessColorInput["defaultOpen"]) | undefined;
|
|
2167
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
2168
|
+
defaultOpen?: (HelixHeadlessColorInput["defaultOpen"]) | undefined;
|
|
1566
2169
|
/** Whether the element is open.
|
|
1567
2170
|
|
|
1568
2171
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -1576,10 +2179,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
1576
2179
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
1577
2180
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
1578
2181
|
open?: (HelixHeadlessColorInput["open"]) | undefined;
|
|
1579
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
1580
|
-
"default-open"?: (HelixHeadlessColorInput["defaultOpen"]) | undefined;
|
|
1581
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
1582
|
-
defaultOpen?: (HelixHeadlessColorInput["defaultOpen"]) | undefined;
|
|
1583
2182
|
/** The value the markup declared, which is where a reset returns to. */
|
|
1584
2183
|
"default-value"?: (HelixHeadlessColorInput["defaultValue"]) | undefined;
|
|
1585
2184
|
/** The value the markup declared, which is where a reset returns to. */
|
|
@@ -1599,6 +2198,26 @@ a reset should return to. */
|
|
|
1599
2198
|
label?: (HelixHeadlessColorInput["label"]) | undefined;
|
|
1600
2199
|
/** Whether the form refuses to submit without it. */
|
|
1601
2200
|
required?: (HelixHeadlessColorInput["required"]) | undefined;
|
|
2201
|
+
/** What a reader is told when the field is required and empty, where the
|
|
2202
|
+
page says.
|
|
2203
|
+
|
|
2204
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
2205
|
+
set and the browser's own on a text field, which the browser writes in
|
|
2206
|
+
the reader's language. Every other word a control speaks is a property,
|
|
2207
|
+
and this one was the English a form in another language still spoke in
|
|
2208
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
2209
|
+
the field and does not reach that one. */
|
|
2210
|
+
"value-missing-message"?: (HelixHeadlessColorInput["valueMissingMessage"]) | undefined;
|
|
2211
|
+
/** What a reader is told when the field is required and empty, where the
|
|
2212
|
+
page says.
|
|
2213
|
+
|
|
2214
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
2215
|
+
set and the browser's own on a text field, which the browser writes in
|
|
2216
|
+
the reader's language. Every other word a control speaks is a property,
|
|
2217
|
+
and this one was the English a form in another language still spoke in
|
|
2218
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
2219
|
+
the field and does not reach that one. */
|
|
2220
|
+
valueMissingMessage?: (HelixHeadlessColorInput["valueMissingMessage"]) | undefined;
|
|
1602
2221
|
/** Whether the control is non-interactive.
|
|
1603
2222
|
|
|
1604
2223
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -1673,11 +2292,41 @@ point.** The field holds a color, so a browser offering to fill it with a
|
|
|
1673
2292
|
saved address is competing for the same keystrokes as the square and the
|
|
1674
2293
|
ramps. A consumer who wants autofill can still ask. */
|
|
1675
2294
|
autocomplete?: (HelixHeadlessColorPicker["autocomplete"]) | undefined;
|
|
2295
|
+
/** What the square's vertical ramp is called.
|
|
2296
|
+
|
|
2297
|
+
**Every word the picker speaks is a property**, so a page in another
|
|
2298
|
+
language hears its own rather than English between its own labels. */
|
|
2299
|
+
"brightness-label"?: (HelixHeadlessColorPicker["brightnessLabel"]) | undefined;
|
|
2300
|
+
/** What the square's vertical ramp is called.
|
|
2301
|
+
|
|
2302
|
+
**Every word the picker speaks is a property**, so a page in another
|
|
2303
|
+
language hears its own rather than English between its own labels. */
|
|
2304
|
+
brightnessLabel?: (HelixHeadlessColorPicker["brightnessLabel"]) | undefined;
|
|
2305
|
+
/** What the sample says for a moment after it copied the value. */
|
|
2306
|
+
"copied-label"?: (HelixHeadlessColorPicker["copiedLabel"]) | undefined;
|
|
2307
|
+
/** What the sample says for a moment after it copied the value. */
|
|
2308
|
+
copiedLabel?: (HelixHeadlessColorPicker["copiedLabel"]) | undefined;
|
|
2309
|
+
/** What the sample is called, which copies the value, with `{value}` filled in. */
|
|
2310
|
+
"copy-label"?: (HelixHeadlessColorPicker["copyLabel"]) | undefined;
|
|
2311
|
+
/** What the sample is called, which copies the value, with `{value}` filled in. */
|
|
2312
|
+
copyLabel?: (HelixHeadlessColorPicker["copyLabel"]) | undefined;
|
|
2313
|
+
/** What the eyedropper is called. */
|
|
2314
|
+
"eyedropper-label"?: (HelixHeadlessColorPicker["eyedropperLabel"]) | undefined;
|
|
2315
|
+
/** What the eyedropper is called. */
|
|
2316
|
+
eyedropperLabel?: (HelixHeadlessColorPicker["eyedropperLabel"]) | undefined;
|
|
1676
2317
|
/** The syntax the value is written in: `hex`, `rgb` or `hsl`.
|
|
1677
2318
|
|
|
1678
2319
|
Only what is written. Everything is read whatever this says, so a picker on
|
|
1679
2320
|
`hex` still takes an `rgb()` handed to it and stores the hex for it. */
|
|
1680
2321
|
format?: (HelixHeadlessColorPicker["format"]) | undefined;
|
|
2322
|
+
/** What the syntax toggle is called, with `{format}` filled in. */
|
|
2323
|
+
"format-label"?: (HelixHeadlessColorPicker["formatLabel"]) | undefined;
|
|
2324
|
+
/** What the syntax toggle is called, with `{format}` filled in. */
|
|
2325
|
+
formatLabel?: (HelixHeadlessColorPicker["formatLabel"]) | undefined;
|
|
2326
|
+
/** What the hue channel is called. */
|
|
2327
|
+
"hue-label"?: (HelixHeadlessColorPicker["hueLabel"]) | undefined;
|
|
2328
|
+
/** What the hue channel is called. */
|
|
2329
|
+
hueLabel?: (HelixHeadlessColorPicker["hueLabel"]) | undefined;
|
|
1681
2330
|
/** Whether the current selection fails validation.
|
|
1682
2331
|
|
|
1683
2332
|
A flag rather than a message, the split Date Picker also draws. A flat
|
|
@@ -1720,6 +2369,14 @@ answer to which one is authoritative or which has the caret. Do not close it
|
|
|
1720
2369
|
the other way round, with Color Input dropping its own field: the value
|
|
1721
2370
|
would then be unreadable and unpasteable without opening a panel. */
|
|
1722
2371
|
noValue?: (HelixHeadlessColorPicker["noValue"]) | undefined;
|
|
2372
|
+
/** What the opacity channel is called, where `alpha` offers one. */
|
|
2373
|
+
"opacity-label"?: (HelixHeadlessColorPicker["opacityLabel"]) | undefined;
|
|
2374
|
+
/** What the opacity channel is called, where `alpha` offers one. */
|
|
2375
|
+
opacityLabel?: (HelixHeadlessColorPicker["opacityLabel"]) | undefined;
|
|
2376
|
+
/** What the row of `swatches` is called. */
|
|
2377
|
+
"presets-label"?: (HelixHeadlessColorPicker["presetsLabel"]) | undefined;
|
|
2378
|
+
/** What the row of `swatches` is called. */
|
|
2379
|
+
presetsLabel?: (HelixHeadlessColorPicker["presetsLabel"]) | undefined;
|
|
1723
2380
|
/** Whether the control refuses changes while still submitting its value.
|
|
1724
2381
|
|
|
1725
2382
|
**Enforced by refusing every request in one place**, which is the seam this
|
|
@@ -1793,8 +2450,32 @@ report bad input because their value moves only on a commit. Color Input
|
|
|
1793
2450
|
reports it for this family instead, once, against the field the reader
|
|
1794
2451
|
typed into. */
|
|
1795
2452
|
required?: (HelixHeadlessColorPicker["required"]) | undefined;
|
|
2453
|
+
/** What the square's horizontal ramp is called. */
|
|
2454
|
+
"saturation-label"?: (HelixHeadlessColorPicker["saturationLabel"]) | undefined;
|
|
2455
|
+
/** What the square's horizontal ramp is called. */
|
|
2456
|
+
saturationLabel?: (HelixHeadlessColorPicker["saturationLabel"]) | undefined;
|
|
1796
2457
|
/** Colors offered under the picker, as a comma-separated list. */
|
|
1797
2458
|
swatches?: (HelixHeadlessColorPicker["swatches"]) | undefined;
|
|
2459
|
+
/** What the group holding the eyedropper and the syntax toggle is called. */
|
|
2460
|
+
"tools-label"?: (HelixHeadlessColorPicker["toolsLabel"]) | undefined;
|
|
2461
|
+
/** What the group holding the eyedropper and the syntax toggle is called. */
|
|
2462
|
+
toolsLabel?: (HelixHeadlessColorPicker["toolsLabel"]) | undefined;
|
|
2463
|
+
/** What the text field holding the value is called. */
|
|
2464
|
+
"value-label"?: (HelixHeadlessColorPicker["valueLabel"]) | undefined;
|
|
2465
|
+
/** What the text field holding the value is called. */
|
|
2466
|
+
valueLabel?: (HelixHeadlessColorPicker["valueLabel"]) | undefined;
|
|
2467
|
+
/** What a reader is told when a color is required and none is chosen.
|
|
2468
|
+
|
|
2469
|
+
**Every sentence a control raises in the browser's bubble is a property**,
|
|
2470
|
+
named for the validity flag it reports, so a form in another language
|
|
2471
|
+
speaks it. Absent is the control's own sentence, in English. */
|
|
2472
|
+
"value-missing-message"?: (HelixHeadlessColorPicker["valueMissingMessage"]) | undefined;
|
|
2473
|
+
/** What a reader is told when a color is required and none is chosen.
|
|
2474
|
+
|
|
2475
|
+
**Every sentence a control raises in the browser's bubble is a property**,
|
|
2476
|
+
named for the validity flag it reports, so a form in another language
|
|
2477
|
+
speaks it. Absent is the control's own sentence, in English. */
|
|
2478
|
+
valueMissingMessage?: (HelixHeadlessColorPicker["valueMissingMessage"]) | undefined;
|
|
1798
2479
|
/** The value the markup declared, which is where a reset returns to. */
|
|
1799
2480
|
"default-value"?: (HelixHeadlessColorPicker["defaultValue"]) | undefined;
|
|
1800
2481
|
/** The value the markup declared, which is where a reset returns to. */
|
|
@@ -1926,9 +2607,15 @@ element is responsible for. */
|
|
|
1926
2607
|
multiple?: (HelixHeadlessCombobox["multiple"]) | undefined;
|
|
1927
2608
|
/** Text shown while nothing has been chosen. */
|
|
1928
2609
|
placeholder?: (HelixHeadlessCombobox["placeholder"]) | undefined;
|
|
1929
|
-
/** What
|
|
2610
|
+
/** What the control removing one chosen option is called, with `{name}` filled in.
|
|
2611
|
+
|
|
2612
|
+
**The name goes in**, so a row of them is heard as which one each
|
|
2613
|
+
removes rather than as "Remove" said once per chosen option. */
|
|
1930
2614
|
"remove-label"?: (HelixHeadlessCombobox["removeLabel"]) | undefined;
|
|
1931
|
-
/** What
|
|
2615
|
+
/** What the control removing one chosen option is called, with `{name}` filled in.
|
|
2616
|
+
|
|
2617
|
+
**The name goes in**, so a row of them is heard as which one each
|
|
2618
|
+
removes rather than as "Remove" said once per chosen option. */
|
|
1932
2619
|
removeLabel?: (HelixHeadlessCombobox["removeLabel"]) | undefined;
|
|
1933
2620
|
/** Whether the field finishes the word as it is typed.
|
|
1934
2621
|
|
|
@@ -1937,6 +2624,10 @@ element already sets on the input it renders, and two things of one name
|
|
|
1937
2624
|
meaning different things on the same control is a question a consumer
|
|
1938
2625
|
should not have to ask. */
|
|
1939
2626
|
suggest?: (HelixHeadlessCombobox["suggest"]) | undefined;
|
|
2627
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
2628
|
+
"default-open"?: (HelixHeadlessCombobox["defaultOpen"]) | undefined;
|
|
2629
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
2630
|
+
defaultOpen?: (HelixHeadlessCombobox["defaultOpen"]) | undefined;
|
|
1940
2631
|
/** Whether the element is open.
|
|
1941
2632
|
|
|
1942
2633
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -1950,10 +2641,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
1950
2641
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
1951
2642
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
1952
2643
|
open?: (HelixHeadlessCombobox["open"]) | undefined;
|
|
1953
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
1954
|
-
"default-open"?: (HelixHeadlessCombobox["defaultOpen"]) | undefined;
|
|
1955
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
1956
|
-
defaultOpen?: (HelixHeadlessCombobox["defaultOpen"]) | undefined;
|
|
1957
2644
|
/** What the control is called once everything is showing. */
|
|
1958
2645
|
"collapse-label"?: (HelixHeadlessCombobox["collapseLabel"]) | undefined;
|
|
1959
2646
|
/** What the control is called once everything is showing. */
|
|
@@ -1987,6 +2674,26 @@ a reset should return to. */
|
|
|
1987
2674
|
label?: (HelixHeadlessCombobox["label"]) | undefined;
|
|
1988
2675
|
/** Whether the form refuses to submit without it. */
|
|
1989
2676
|
required?: (HelixHeadlessCombobox["required"]) | undefined;
|
|
2677
|
+
/** What a reader is told when the field is required and empty, where the
|
|
2678
|
+
page says.
|
|
2679
|
+
|
|
2680
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
2681
|
+
set and the browser's own on a text field, which the browser writes in
|
|
2682
|
+
the reader's language. Every other word a control speaks is a property,
|
|
2683
|
+
and this one was the English a form in another language still spoke in
|
|
2684
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
2685
|
+
the field and does not reach that one. */
|
|
2686
|
+
"value-missing-message"?: (HelixHeadlessCombobox["valueMissingMessage"]) | undefined;
|
|
2687
|
+
/** What a reader is told when the field is required and empty, where the
|
|
2688
|
+
page says.
|
|
2689
|
+
|
|
2690
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
2691
|
+
set and the browser's own on a text field, which the browser writes in
|
|
2692
|
+
the reader's language. Every other word a control speaks is a property,
|
|
2693
|
+
and this one was the English a form in another language still spoke in
|
|
2694
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
2695
|
+
the field and does not reach that one. */
|
|
2696
|
+
valueMissingMessage?: (HelixHeadlessCombobox["valueMissingMessage"]) | undefined;
|
|
1990
2697
|
/** Whether the control is non-interactive.
|
|
1991
2698
|
|
|
1992
2699
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -2071,6 +2778,10 @@ with: one key, said once. */
|
|
|
2071
2778
|
label?: (HelixHeadlessCommand["label"]) | undefined;
|
|
2072
2779
|
/** Shown in the field before anything is typed. */
|
|
2073
2780
|
placeholder?: (HelixHeadlessCommand["placeholder"]) | undefined;
|
|
2781
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
2782
|
+
"default-open"?: (HelixHeadlessCommand["defaultOpen"]) | undefined;
|
|
2783
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
2784
|
+
defaultOpen?: (HelixHeadlessCommand["defaultOpen"]) | undefined;
|
|
2074
2785
|
/** Whether the element is open.
|
|
2075
2786
|
|
|
2076
2787
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -2084,10 +2795,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
2084
2795
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
2085
2796
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
2086
2797
|
open?: (HelixHeadlessCommand["open"]) | undefined;
|
|
2087
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
2088
|
-
"default-open"?: (HelixHeadlessCommand["defaultOpen"]) | undefined;
|
|
2089
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
2090
|
-
defaultOpen?: (HelixHeadlessCommand["defaultOpen"]) | undefined;
|
|
2091
2798
|
};
|
|
2092
2799
|
|
|
2093
2800
|
export type HelixHeadlessCommandVueEvents = {
|
|
@@ -2335,20 +3042,14 @@ replaces this with what each row came to as it draws. It still has to be
|
|
|
2335
3042
|
close, because it is what the scrollbar is built from before anything has
|
|
2336
3043
|
been measured. */
|
|
2337
3044
|
estimate?: (HelixHeadlessDataTable["estimate"]) | undefined;
|
|
2338
|
-
/** The order, as `field:direction`.
|
|
2339
|
-
|
|
2340
|
-
Set it and this element defers: a reader's click fires `helix-sort` and
|
|
2341
|
-
changes nothing until a new value arrives. `default-sort` seeds an order this
|
|
2342
|
-
element then owns. */
|
|
2343
|
-
sort?: (HelixHeadlessDataTable["sort"]) | undefined;
|
|
2344
|
-
/** Accessible name for the grid. */
|
|
2345
|
-
label?: (HelixHeadlessDataTable["label"]) | undefined;
|
|
2346
3045
|
/** What the rows are narrowed to, as one query across every column.
|
|
2347
3046
|
|
|
2348
3047
|
One query rather than a predicate per column, which is what a reader means
|
|
2349
3048
|
by a search box above a table. It matches on each column's ordering value,
|
|
2350
3049
|
so search and sort cannot disagree about what a column holds. */
|
|
2351
3050
|
filter?: (HelixHeadlessDataTable["filter"]) | undefined;
|
|
3051
|
+
/** Accessible name for the grid. */
|
|
3052
|
+
label?: (HelixHeadlessDataTable["label"]) | undefined;
|
|
2352
3053
|
/** Whether this element does the work or asks the consumer to.
|
|
2353
3054
|
|
|
2354
3055
|
`client` filters, sorts and pages `rows` itself. `server` applies none of
|
|
@@ -2358,25 +3059,48 @@ the client cannot hold the data, so this is not an optimization, it is the
|
|
|
2358
3059
|
only mode that works, and it is here from the start because adding it later
|
|
2359
3060
|
inverts the data flow. */
|
|
2360
3061
|
mode?: (HelixHeadlessDataTable["mode"]) | undefined;
|
|
3062
|
+
/** The columns' order, as their fields separated by spaces.
|
|
3063
|
+
|
|
3064
|
+
A reader's move fires `helix-reorder` first, and refusing it leaves the
|
|
3065
|
+
columns where they were, which is how a consumer who stores the order takes
|
|
3066
|
+
the decision. `default-order` seeds an order this element then owns. A field not named
|
|
3067
|
+
keeps its place after the named ones, and a column with no field never
|
|
3068
|
+
moves. */
|
|
3069
|
+
order?: (HelixHeadlessDataTable["order"]) | undefined;
|
|
2361
3070
|
/** The page on show, from 1.
|
|
2362
3071
|
|
|
2363
3072
|
Clamped on the way out, so what this reports is the page it drew: a
|
|
2364
3073
|
bookmarked link to page 99 of a result that has since shrunk reads back as
|
|
2365
3074
|
the last page rather than as 99. */
|
|
2366
3075
|
page?: (HelixHeadlessDataTable["page"]) | undefined;
|
|
3076
|
+
/** How many rows a page holds. Zero is every row, which is what "no paging" means.
|
|
3077
|
+
|
|
3078
|
+
**It announces nothing, and that is not an omission.** Nothing in this
|
|
3079
|
+
element ever asks for a different page size: a size selector is
|
|
3080
|
+
`PaginationSize`, which a consumer puts in the `footer` slot and answers
|
|
3081
|
+
themselves. Routing this through `requestChange` would announce an event
|
|
3082
|
+
the element never has cause to fire. */
|
|
3083
|
+
"page-size"?: (HelixHeadlessDataTable["pageSize"] | `${number}`) | undefined;
|
|
3084
|
+
/** How many rows a page holds. Zero is every row, which is what "no paging" means.
|
|
3085
|
+
|
|
3086
|
+
**It announces nothing, and that is not an omission.** Nothing in this
|
|
3087
|
+
element ever asks for a different page size: a size selector is
|
|
3088
|
+
`PaginationSize`, which a consumer puts in the `footer` slot and answers
|
|
3089
|
+
themselves. Routing this through `requestChange` would announce an event
|
|
3090
|
+
the element never has cause to fire. */
|
|
3091
|
+
pageSize?: (HelixHeadlessDataTable["pageSize"]) | undefined;
|
|
3092
|
+
/** Whether to draw a pagination under the grid.
|
|
3093
|
+
|
|
3094
|
+
On by default once a page size is set, because a paged table with no way to
|
|
3095
|
+
change pages shows a reader the first twenty rows and no way to know there
|
|
3096
|
+
are more. Off for a consumer supplying their own through the `footer` slot,
|
|
3097
|
+
which is why the slot replaces this rather than sitting beside it. */
|
|
3098
|
+
paginated?: (HelixHeadlessDataTable["paginated"]) | undefined;
|
|
2367
3099
|
/** Whether a reader may move the columns.
|
|
2368
3100
|
|
|
2369
3101
|
Each heading with a `field` gets a grip, dragged along the header or moved a
|
|
2370
3102
|
place at a time with the arrow keys once it has focus. */
|
|
2371
3103
|
reorderable?: (HelixHeadlessDataTable["reorderable"]) | undefined;
|
|
2372
|
-
/** The columns' order, as their fields separated by spaces.
|
|
2373
|
-
|
|
2374
|
-
A reader's move fires `helix-reorder` first, and refusing it leaves the
|
|
2375
|
-
columns where they were, which is how a consumer who stores the order takes
|
|
2376
|
-
the decision. `default-order` seeds an order this element then owns. A field not named
|
|
2377
|
-
keeps its place after the named ones, and a column with no field never
|
|
2378
|
-
moves. */
|
|
2379
|
-
order?: (HelixHeadlessDataTable["order"]) | undefined;
|
|
2380
3104
|
/** The field naming a row's stable identity.
|
|
2381
3105
|
|
|
2382
3106
|
**Needed before selection exists, not after.** Lit keys the rendered rows by
|
|
@@ -2416,22 +3140,12 @@ A key holding a comma cannot be told apart from two keys, which is the
|
|
|
2416
3140
|
price of the shape. A reader's choice fires `helix-select` first, and
|
|
2417
3141
|
refusing it leaves the selection as it was. */
|
|
2418
3142
|
selected?: (HelixHeadlessDataTable["selected"]) | undefined;
|
|
2419
|
-
/**
|
|
2420
|
-
|
|
2421
|
-
**It announces nothing, and that is not an omission.** Nothing in this
|
|
2422
|
-
element ever asks for a different page size: a size selector is
|
|
2423
|
-
`PaginationSize`, which a consumer puts in the `footer` slot and answers
|
|
2424
|
-
themselves. Routing this through `requestChange` would announce an event
|
|
2425
|
-
the element never has cause to fire. */
|
|
2426
|
-
"page-size"?: (HelixHeadlessDataTable["pageSize"] | `${number}`) | undefined;
|
|
2427
|
-
/** How many rows a page holds. Zero is every row, which is what "no paging" means.
|
|
3143
|
+
/** The order, as `field:direction`.
|
|
2428
3144
|
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
the element never has cause to fire. */
|
|
2434
|
-
pageSize?: (HelixHeadlessDataTable["pageSize"]) | undefined;
|
|
3145
|
+
Set it and this element defers: a reader's click fires `helix-sort` and
|
|
3146
|
+
changes nothing until a new value arrives. `default-sort` seeds an order this
|
|
3147
|
+
element then owns. */
|
|
3148
|
+
sort?: (HelixHeadlessDataTable["sort"]) | undefined;
|
|
2435
3149
|
/** How many rows the whole result has, where this element cannot count them.
|
|
2436
3150
|
|
|
2437
3151
|
Only read in `server` mode, where `rows` is one page and its length says
|
|
@@ -2457,13 +3171,6 @@ Off by default. Windowing costs a scroll listener, a measurement per row
|
|
|
2457
3171
|
drawn, and a `block-size` on the scrolling box, and a table of twenty rows
|
|
2458
3172
|
should pay none of them. */
|
|
2459
3173
|
windowed?: (HelixHeadlessDataTable["windowed"]) | undefined;
|
|
2460
|
-
/** Whether to draw a pagination under the grid.
|
|
2461
|
-
|
|
2462
|
-
On by default once a page size is set, because a paged table with no way to
|
|
2463
|
-
change pages shows a reader the first twenty rows and no way to know there
|
|
2464
|
-
are more. Off for a consumer supplying their own through the `footer` slot,
|
|
2465
|
-
which is why the slot replaces this rather than sitting beside it. */
|
|
2466
|
-
paginated?: (HelixHeadlessDataTable["paginated"]) | undefined;
|
|
2467
3174
|
/** What is said where there are none, and none are coming. */
|
|
2468
3175
|
"empty-text"?: (HelixHeadlessDataTable["emptyText"]) | undefined;
|
|
2469
3176
|
/** What is said where there are none, and none are coming. */
|
|
@@ -2604,6 +3311,40 @@ window has no room for that width it shows one month until there is. */
|
|
|
2604
3311
|
months?: (HelixHeadlessDateInput["months"]) | undefined;
|
|
2605
3312
|
/** What the field says before a date is in it. */
|
|
2606
3313
|
placeholder?: (HelixHeadlessDateInput["placeholder"]) | undefined;
|
|
3314
|
+
/** What a reader is told when a range holds more than two dates.
|
|
3315
|
+
|
|
3316
|
+
**Every sentence a control raises in the browser's bubble is a property**,
|
|
3317
|
+
so a form in another language speaks it. Absent is the control's own
|
|
3318
|
+
sentence, in English. */
|
|
3319
|
+
"range-length-message"?: (HelixHeadlessDateInput["rangeLengthMessage"]) | undefined;
|
|
3320
|
+
/** What a reader is told when a range holds more than two dates.
|
|
3321
|
+
|
|
3322
|
+
**Every sentence a control raises in the browser's bubble is a property**,
|
|
3323
|
+
so a form in another language speaks it. Absent is the control's own
|
|
3324
|
+
sentence, in English. */
|
|
3325
|
+
rangeLengthMessage?: (HelixHeadlessDateInput["rangeLengthMessage"]) | undefined;
|
|
3326
|
+
/** What a reader is told when a date is after `max`, with `{max}` filled in
|
|
3327
|
+
as the field writes it. */
|
|
3328
|
+
"range-overflow-message"?: (HelixHeadlessDateInput["rangeOverflowMessage"]) | undefined;
|
|
3329
|
+
/** What a reader is told when a date is after `max`, with `{max}` filled in
|
|
3330
|
+
as the field writes it. */
|
|
3331
|
+
rangeOverflowMessage?: (HelixHeadlessDateInput["rangeOverflowMessage"]) | undefined;
|
|
3332
|
+
/** What a reader is told when a date is before `min`, with `{min}` filled
|
|
3333
|
+
in as the field writes it. */
|
|
3334
|
+
"range-underflow-message"?: (HelixHeadlessDateInput["rangeUnderflowMessage"]) | undefined;
|
|
3335
|
+
/** What a reader is told when a date is before `min`, with `{min}` filled
|
|
3336
|
+
in as the field writes it. */
|
|
3337
|
+
rangeUnderflowMessage?: (HelixHeadlessDateInput["rangeUnderflowMessage"]) | undefined;
|
|
3338
|
+
/** What the control removing one date is called, with `{name}` filled in.
|
|
3339
|
+
|
|
3340
|
+
**The name goes in**, so a row of them is heard as which one each
|
|
3341
|
+
removes rather than as "Remove" said once per date. */
|
|
3342
|
+
"remove-label"?: (HelixHeadlessDateInput["removeLabel"]) | undefined;
|
|
3343
|
+
/** What the control removing one date is called, with `{name}` filled in.
|
|
3344
|
+
|
|
3345
|
+
**The name goes in**, so a row of them is heard as which one each
|
|
3346
|
+
removes rather than as "Remove" said once per date. */
|
|
3347
|
+
removeLabel?: (HelixHeadlessDateInput["removeLabel"]) | undefined;
|
|
2607
3348
|
/** How far apart the selectable dates are, in days.
|
|
2608
3349
|
|
|
2609
3350
|
`<input type="date" step>`'s own unit, handed to the calendar this renders
|
|
@@ -2639,6 +3380,26 @@ submits nothing and leaves the tab order, and a read-only one submits its
|
|
|
2639
3380
|
value and stays reachable, which is what a form showing a value somebody
|
|
2640
3381
|
else set needs. */
|
|
2641
3382
|
readOnly?: (HelixHeadlessDateInput["readOnly"]) | undefined;
|
|
3383
|
+
/** What a reader is told when the field holds something the picker cannot
|
|
3384
|
+
read: a date that is not one, a time, a color.
|
|
3385
|
+
|
|
3386
|
+
**Every sentence a control raises in the browser's bubble is a
|
|
3387
|
+
property**, named for the validity flag it reports, so a form in another
|
|
3388
|
+
language speaks it. Absent is the family's own sentence, in English,
|
|
3389
|
+
which says what the value should look like. */
|
|
3390
|
+
"bad-input-message"?: (HelixHeadlessDateInput["badInputMessage"]) | undefined;
|
|
3391
|
+
/** What a reader is told when the field holds something the picker cannot
|
|
3392
|
+
read: a date that is not one, a time, a color.
|
|
3393
|
+
|
|
3394
|
+
**Every sentence a control raises in the browser's bubble is a
|
|
3395
|
+
property**, named for the validity flag it reports, so a form in another
|
|
3396
|
+
language speaks it. Absent is the family's own sentence, in English,
|
|
3397
|
+
which says what the value should look like. */
|
|
3398
|
+
badInputMessage?: (HelixHeadlessDateInput["badInputMessage"]) | undefined;
|
|
3399
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
3400
|
+
"default-open"?: (HelixHeadlessDateInput["defaultOpen"]) | undefined;
|
|
3401
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
3402
|
+
defaultOpen?: (HelixHeadlessDateInput["defaultOpen"]) | undefined;
|
|
2642
3403
|
/** Whether the element is open.
|
|
2643
3404
|
|
|
2644
3405
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -2652,10 +3413,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
2652
3413
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
2653
3414
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
2654
3415
|
open?: (HelixHeadlessDateInput["open"]) | undefined;
|
|
2655
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
2656
|
-
"default-open"?: (HelixHeadlessDateInput["defaultOpen"]) | undefined;
|
|
2657
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
2658
|
-
defaultOpen?: (HelixHeadlessDateInput["defaultOpen"]) | undefined;
|
|
2659
3416
|
/** What the control is called once everything is showing. */
|
|
2660
3417
|
"collapse-label"?: (HelixHeadlessDateInput["collapseLabel"]) | undefined;
|
|
2661
3418
|
/** What the control is called once everything is showing. */
|
|
@@ -2689,6 +3446,26 @@ a reset should return to. */
|
|
|
2689
3446
|
label?: (HelixHeadlessDateInput["label"]) | undefined;
|
|
2690
3447
|
/** Whether the form refuses to submit without it. */
|
|
2691
3448
|
required?: (HelixHeadlessDateInput["required"]) | undefined;
|
|
3449
|
+
/** What a reader is told when the field is required and empty, where the
|
|
3450
|
+
page says.
|
|
3451
|
+
|
|
3452
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
3453
|
+
set and the browser's own on a text field, which the browser writes in
|
|
3454
|
+
the reader's language. Every other word a control speaks is a property,
|
|
3455
|
+
and this one was the English a form in another language still spoke in
|
|
3456
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
3457
|
+
the field and does not reach that one. */
|
|
3458
|
+
"value-missing-message"?: (HelixHeadlessDateInput["valueMissingMessage"]) | undefined;
|
|
3459
|
+
/** What a reader is told when the field is required and empty, where the
|
|
3460
|
+
page says.
|
|
3461
|
+
|
|
3462
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
3463
|
+
set and the browser's own on a text field, which the browser writes in
|
|
3464
|
+
the reader's language. Every other word a control speaks is a property,
|
|
3465
|
+
and this one was the English a form in another language still spoke in
|
|
3466
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
3467
|
+
the field and does not reach that one. */
|
|
3468
|
+
valueMissingMessage?: (HelixHeadlessDateInput["valueMissingMessage"]) | undefined;
|
|
2692
3469
|
/** Whether the control is non-interactive.
|
|
2693
3470
|
|
|
2694
3471
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -2759,6 +3536,18 @@ export type HelixHeadlessDatePickerHelixNavigateElementEvent =
|
|
|
2759
3536
|
HelixHeadlessDatePickerElementEvent<HelixNavigateEvent>;
|
|
2760
3537
|
|
|
2761
3538
|
export type HelixHeadlessDatePickerVueProps = {
|
|
3539
|
+
/** What a reader is told when the value holds something that is not a date.
|
|
3540
|
+
|
|
3541
|
+
**Every sentence a control raises in the browser's bubble is a property**,
|
|
3542
|
+
named for the validity flag it reports, so a form in another language
|
|
3543
|
+
speaks it. Absent is the control's own sentence, in English. */
|
|
3544
|
+
"bad-input-message"?: (HelixHeadlessDatePicker["badInputMessage"]) | undefined;
|
|
3545
|
+
/** What a reader is told when the value holds something that is not a date.
|
|
3546
|
+
|
|
3547
|
+
**Every sentence a control raises in the browser's bubble is a property**,
|
|
3548
|
+
named for the validity flag it reports, so a form in another language
|
|
3549
|
+
speaks it. Absent is the control's own sentence, in English. */
|
|
3550
|
+
badInputMessage?: (HelixHeadlessDatePicker["badInputMessage"]) | undefined;
|
|
2762
3551
|
/** Month to open on, where nothing declared one. */
|
|
2763
3552
|
"default-month"?: (HelixHeadlessDatePicker["defaultMonth"]) | undefined;
|
|
2764
3553
|
/** Month to open on, where nothing declared one. */
|
|
@@ -2779,12 +3568,6 @@ export type HelixHeadlessDatePickerVueProps = {
|
|
|
2779
3568
|
invalid?: (HelixHeadlessDatePicker["invalid"]) | undefined;
|
|
2780
3569
|
/** Accessible name for the grid. */
|
|
2781
3570
|
label?: (HelixHeadlessDatePicker["label"]) | undefined;
|
|
2782
|
-
/** The month on show, as `YYYY-MM`. Follows `value`, then the current month.
|
|
2783
|
-
|
|
2784
|
-
Separate from `value` on purpose, so paging selects nothing and a consumer
|
|
2785
|
-
can drive the view. Reading gives the month on show; writing sets it, and
|
|
2786
|
-
`default-month` seeds one the calendar keeps until somebody does. */
|
|
2787
|
-
month?: (HelixHeadlessDatePicker["month"]) | undefined;
|
|
2788
3571
|
/** Locale for month and day names.
|
|
2789
3572
|
|
|
2790
3573
|
Absent uses the runtime's own. */
|
|
@@ -2795,6 +3578,12 @@ Absent uses the runtime's own. */
|
|
|
2795
3578
|
min?: (HelixHeadlessDatePicker["min"]) | undefined;
|
|
2796
3579
|
/** How many dates can be held at once. */
|
|
2797
3580
|
mode?: (HelixHeadlessDatePicker["mode"]) | undefined;
|
|
3581
|
+
/** The month on show, as `YYYY-MM`. Follows `value`, then the current month.
|
|
3582
|
+
|
|
3583
|
+
Separate from `value` on purpose, so paging selects nothing and a consumer
|
|
3584
|
+
can drive the view. Reading gives the month on show; writing sets it, and
|
|
3585
|
+
`default-month` seeds one the calendar keeps until somebody does. */
|
|
3586
|
+
month?: (HelixHeadlessDatePicker["month"]) | undefined;
|
|
2798
3587
|
/** How many months to show, side by side. */
|
|
2799
3588
|
months?: (HelixHeadlessDatePicker["months"]) | undefined;
|
|
2800
3589
|
/** Accessible name for the control that pages forward. */
|
|
@@ -2853,6 +3642,10 @@ One is every date and needs no rule, which is why anything below one is
|
|
|
2853
3642
|
treated as one rather than as an error: a step of zero would block every
|
|
2854
3643
|
date including the one already chosen. */
|
|
2855
3644
|
step?: (HelixHeadlessDatePicker["step"]) | undefined;
|
|
3645
|
+
/** What a reader is told when a date is required and none is chosen. */
|
|
3646
|
+
"value-missing-message"?: (HelixHeadlessDatePicker["valueMissingMessage"]) | undefined;
|
|
3647
|
+
/** What a reader is told when a date is required and none is chosen. */
|
|
3648
|
+
valueMissingMessage?: (HelixHeadlessDatePicker["valueMissingMessage"]) | undefined;
|
|
2856
3649
|
/** The value the markup declared, which is where a reset returns to. */
|
|
2857
3650
|
"default-value"?: (HelixHeadlessDatePicker["defaultValue"]) | undefined;
|
|
2858
3651
|
/** The value the markup declared, which is where a reset returns to. */
|
|
@@ -2994,6 +3787,10 @@ A persistent dialog does not ignore that press. It answers it: see
|
|
|
2994
3787
|
`refuse`, which is the only way a dialog that will not be dismissed can say
|
|
2995
3788
|
so at the moment a reader asks. */
|
|
2996
3789
|
persistent?: (HelixHeadlessDialog["persistent"]) | undefined;
|
|
3790
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
3791
|
+
"default-open"?: (HelixHeadlessDialog["defaultOpen"]) | undefined;
|
|
3792
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
3793
|
+
defaultOpen?: (HelixHeadlessDialog["defaultOpen"]) | undefined;
|
|
2997
3794
|
/** Whether the element is open.
|
|
2998
3795
|
|
|
2999
3796
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -3007,10 +3804,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
3007
3804
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
3008
3805
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
3009
3806
|
open?: (HelixHeadlessDialog["open"]) | undefined;
|
|
3010
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
3011
|
-
"default-open"?: (HelixHeadlessDialog["defaultOpen"]) | undefined;
|
|
3012
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
3013
|
-
defaultOpen?: (HelixHeadlessDialog["defaultOpen"]) | undefined;
|
|
3014
3807
|
/** What the dialog closed with, the way `<dialog>` reports it.
|
|
3015
3808
|
|
|
3016
3809
|
**The whole point of a `<dialog>` returning a value is lost behind a shadow
|
|
@@ -3178,6 +3971,10 @@ default assigned to the property would reflect onto every host and put a
|
|
|
3178
3971
|
`placement="end"` into markup no consumer wrote. So what this tier
|
|
3179
3972
|
guarantees is the absence, and a sheet selects on it. */
|
|
3180
3973
|
placement?: (HelixHeadlessDrawer["placement"]) | undefined;
|
|
3974
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
3975
|
+
"default-open"?: (HelixHeadlessDrawer["defaultOpen"]) | undefined;
|
|
3976
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
3977
|
+
defaultOpen?: (HelixHeadlessDrawer["defaultOpen"]) | undefined;
|
|
3181
3978
|
/** Whether the element is open.
|
|
3182
3979
|
|
|
3183
3980
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -3191,10 +3988,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
3191
3988
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
3192
3989
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
3193
3990
|
open?: (HelixHeadlessDrawer["open"]) | undefined;
|
|
3194
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
3195
|
-
"default-open"?: (HelixHeadlessDrawer["defaultOpen"]) | undefined;
|
|
3196
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
3197
|
-
defaultOpen?: (HelixHeadlessDrawer["defaultOpen"]) | undefined;
|
|
3198
3991
|
/** What the dialog closed with, the way `<dialog>` reports it.
|
|
3199
3992
|
|
|
3200
3993
|
**The whole point of a `<dialog>` returning a value is lost behind a shadow
|
|
@@ -3338,9 +4131,17 @@ Absent uses the runtime's own. */
|
|
|
3338
4131
|
locale?: (HelixHeadlessFileInput["locale"]) | undefined;
|
|
3339
4132
|
/** Whether more than one file can be chosen. */
|
|
3340
4133
|
multiple?: (HelixHeadlessFileInput["multiple"]) | undefined;
|
|
3341
|
-
/** What the control removing one file is called,
|
|
4134
|
+
/** What the control removing one file is called, with `{name}` filled in.
|
|
4135
|
+
|
|
4136
|
+
**The name goes in**, so a row of them is heard as which one each
|
|
4137
|
+
removes rather than as "Remove" said once per file. A label with no
|
|
4138
|
+
`{name}` has it added after it. */
|
|
3342
4139
|
"remove-label"?: (HelixHeadlessFileInput["removeLabel"]) | undefined;
|
|
3343
|
-
/** What the control removing one file is called,
|
|
4140
|
+
/** What the control removing one file is called, with `{name}` filled in.
|
|
4141
|
+
|
|
4142
|
+
**The name goes in**, so a row of them is heard as which one each
|
|
4143
|
+
removes rather than as "Remove" said once per file. A label with no
|
|
4144
|
+
`{name}` has it added after it. */
|
|
3344
4145
|
removeLabel?: (HelixHeadlessFileInput["removeLabel"]) | undefined;
|
|
3345
4146
|
/** What the trigger reads, where nothing is slotted into it. */
|
|
3346
4147
|
"trigger-label"?: (HelixHeadlessFileInput["triggerLabel"]) | undefined;
|
|
@@ -3354,6 +4155,26 @@ Absent uses the runtime's own. */
|
|
|
3354
4155
|
label?: (HelixHeadlessFileInput["label"]) | undefined;
|
|
3355
4156
|
/** Whether the form refuses to submit without it. */
|
|
3356
4157
|
required?: (HelixHeadlessFileInput["required"]) | undefined;
|
|
4158
|
+
/** What a reader is told when the field is required and empty, where the
|
|
4159
|
+
page says.
|
|
4160
|
+
|
|
4161
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
4162
|
+
set and the browser's own on a text field, which the browser writes in
|
|
4163
|
+
the reader's language. Every other word a control speaks is a property,
|
|
4164
|
+
and this one was the English a form in another language still spoke in
|
|
4165
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
4166
|
+
the field and does not reach that one. */
|
|
4167
|
+
"value-missing-message"?: (HelixHeadlessFileInput["valueMissingMessage"]) | undefined;
|
|
4168
|
+
/** What a reader is told when the field is required and empty, where the
|
|
4169
|
+
page says.
|
|
4170
|
+
|
|
4171
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
4172
|
+
set and the browser's own on a text field, which the browser writes in
|
|
4173
|
+
the reader's language. Every other word a control speaks is a property,
|
|
4174
|
+
and this one was the English a form in another language still spoke in
|
|
4175
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
4176
|
+
the field and does not reach that one. */
|
|
4177
|
+
valueMissingMessage?: (HelixHeadlessFileInput["valueMissingMessage"]) | undefined;
|
|
3357
4178
|
/** Whether the control is non-interactive.
|
|
3358
4179
|
|
|
3359
4180
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -3596,6 +4417,10 @@ them. */
|
|
|
3596
4417
|
|
|
3597
4418
|
Not a label: it goes when typing starts. */
|
|
3598
4419
|
placeholder?: (HelixHeadlessFilterInput["placeholder"]) | undefined;
|
|
4420
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
4421
|
+
"default-open"?: (HelixHeadlessFilterInput["defaultOpen"]) | undefined;
|
|
4422
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
4423
|
+
defaultOpen?: (HelixHeadlessFilterInput["defaultOpen"]) | undefined;
|
|
3599
4424
|
/** Whether the element is open.
|
|
3600
4425
|
|
|
3601
4426
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -3609,10 +4434,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
3609
4434
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
3610
4435
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
3611
4436
|
open?: (HelixHeadlessFilterInput["open"]) | undefined;
|
|
3612
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
3613
|
-
"default-open"?: (HelixHeadlessFilterInput["defaultOpen"]) | undefined;
|
|
3614
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
3615
|
-
defaultOpen?: (HelixHeadlessFilterInput["defaultOpen"]) | undefined;
|
|
3616
4437
|
/** What the control is called once everything is showing. */
|
|
3617
4438
|
"collapse-label"?: (HelixHeadlessFilterInput["collapseLabel"]) | undefined;
|
|
3618
4439
|
/** What the control is called once everything is showing. */
|
|
@@ -3646,6 +4467,26 @@ a reset should return to. */
|
|
|
3646
4467
|
label?: (HelixHeadlessFilterInput["label"]) | undefined;
|
|
3647
4468
|
/** Whether the form refuses to submit without it. */
|
|
3648
4469
|
required?: (HelixHeadlessFilterInput["required"]) | undefined;
|
|
4470
|
+
/** What a reader is told when the field is required and empty, where the
|
|
4471
|
+
page says.
|
|
4472
|
+
|
|
4473
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
4474
|
+
set and the browser's own on a text field, which the browser writes in
|
|
4475
|
+
the reader's language. Every other word a control speaks is a property,
|
|
4476
|
+
and this one was the English a form in another language still spoke in
|
|
4477
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
4478
|
+
the field and does not reach that one. */
|
|
4479
|
+
"value-missing-message"?: (HelixHeadlessFilterInput["valueMissingMessage"]) | undefined;
|
|
4480
|
+
/** What a reader is told when the field is required and empty, where the
|
|
4481
|
+
page says.
|
|
4482
|
+
|
|
4483
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
4484
|
+
set and the browser's own on a text field, which the browser writes in
|
|
4485
|
+
the reader's language. Every other word a control speaks is a property,
|
|
4486
|
+
and this one was the English a form in another language still spoke in
|
|
4487
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
4488
|
+
the field and does not reach that one. */
|
|
4489
|
+
valueMissingMessage?: (HelixHeadlessFilterInput["valueMissingMessage"]) | undefined;
|
|
3649
4490
|
/** Whether the control is non-interactive.
|
|
3650
4491
|
|
|
3651
4492
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -4250,6 +5091,26 @@ a reset should return to. */
|
|
|
4250
5091
|
label?: (HelixHeadlessInput["label"]) | undefined;
|
|
4251
5092
|
/** Whether the form refuses to submit without it. */
|
|
4252
5093
|
required?: (HelixHeadlessInput["required"]) | undefined;
|
|
5094
|
+
/** What a reader is told when the field is required and empty, where the
|
|
5095
|
+
page says.
|
|
5096
|
+
|
|
5097
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
5098
|
+
set and the browser's own on a text field, which the browser writes in
|
|
5099
|
+
the reader's language. Every other word a control speaks is a property,
|
|
5100
|
+
and this one was the English a form in another language still spoke in
|
|
5101
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
5102
|
+
the field and does not reach that one. */
|
|
5103
|
+
"value-missing-message"?: (HelixHeadlessInput["valueMissingMessage"]) | undefined;
|
|
5104
|
+
/** What a reader is told when the field is required and empty, where the
|
|
5105
|
+
page says.
|
|
5106
|
+
|
|
5107
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
5108
|
+
set and the browser's own on a text field, which the browser writes in
|
|
5109
|
+
the reader's language. Every other word a control speaks is a property,
|
|
5110
|
+
and this one was the English a form in another language still spoke in
|
|
5111
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
5112
|
+
the field and does not reach that one. */
|
|
5113
|
+
valueMissingMessage?: (HelixHeadlessInput["valueMissingMessage"]) | undefined;
|
|
4253
5114
|
/** Whether the control is non-interactive.
|
|
4254
5115
|
|
|
4255
5116
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -4445,6 +5306,10 @@ Ignored once `active` is written. */
|
|
|
4445
5306
|
|
|
4446
5307
|
Ignored once `active` is written. */
|
|
4447
5308
|
defaultActive?: (HelixHeadlessLightbox["defaultActive"]) | undefined;
|
|
5309
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
5310
|
+
"default-open"?: (HelixHeadlessLightbox["defaultOpen"]) | undefined;
|
|
5311
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
5312
|
+
defaultOpen?: (HelixHeadlessLightbox["defaultOpen"]) | undefined;
|
|
4448
5313
|
/** Whether the element is open.
|
|
4449
5314
|
|
|
4450
5315
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -4458,10 +5323,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
4458
5323
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
4459
5324
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
4460
5325
|
open?: (HelixHeadlessLightbox["open"]) | undefined;
|
|
4461
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
4462
|
-
"default-open"?: (HelixHeadlessLightbox["defaultOpen"]) | undefined;
|
|
4463
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
4464
|
-
defaultOpen?: (HelixHeadlessLightbox["defaultOpen"]) | undefined;
|
|
4465
5326
|
};
|
|
4466
5327
|
|
|
4467
5328
|
export type HelixHeadlessLightboxVueEvents = {
|
|
@@ -4671,13 +5532,6 @@ point.** The field filters a list rather than collecting a value, so a
|
|
|
4671
5532
|
browser offering to fill it with a saved address is competing for the same
|
|
4672
5533
|
keystrokes as the listbox. A consumer who wants autofill can still ask. */
|
|
4673
5534
|
autocomplete?: (HelixHeadlessListbox["autocomplete"]) | undefined;
|
|
4674
|
-
/** What the list is narrowed to, if anything.
|
|
4675
|
-
|
|
4676
|
-
Filtering hides rather than removes, so nothing about the value changes and
|
|
4677
|
-
the list is still the consumer's own elements in their own order. Reading
|
|
4678
|
-
gives what is being filtered on; writing declares it theirs, and
|
|
4679
|
-
`default-filter` seeds one the list owns. */
|
|
4680
|
-
filter?: (HelixHeadlessListbox["filter"]) | undefined;
|
|
4681
5535
|
/** What to start narrowed to, where nothing declared it. */
|
|
4682
5536
|
"default-filter"?: (HelixHeadlessListbox["defaultFilter"]) | undefined;
|
|
4683
5537
|
/** What to start narrowed to, where nothing declared it. */
|
|
@@ -4696,6 +5550,13 @@ and re-declared here only to keep this list's own wording: "No matches" is
|
|
|
4696
5550
|
about a filter, and the mixin's "Nothing to show" is about a list that was
|
|
4697
5551
|
never given anything. */
|
|
4698
5552
|
emptyText?: (HelixHeadlessListbox["emptyText"]) | undefined;
|
|
5553
|
+
/** What the list is narrowed to, if anything.
|
|
5554
|
+
|
|
5555
|
+
Filtering hides rather than removes, so nothing about the value changes and
|
|
5556
|
+
the list is still the consumer's own elements in their own order. Reading
|
|
5557
|
+
gives what is being filtered on; writing declares it theirs, and
|
|
5558
|
+
`default-filter` seeds one the list owns. */
|
|
5559
|
+
filter?: (HelixHeadlessListbox["filter"]) | undefined;
|
|
4699
5560
|
/** Whether the list renders a field for narrowing itself.
|
|
4700
5561
|
|
|
4701
5562
|
The field lives here rather than in whatever frames the list, because the
|
|
@@ -4738,6 +5599,26 @@ a reset should return to. */
|
|
|
4738
5599
|
label?: (HelixHeadlessListbox["label"]) | undefined;
|
|
4739
5600
|
/** Whether the form refuses to submit without it. */
|
|
4740
5601
|
required?: (HelixHeadlessListbox["required"]) | undefined;
|
|
5602
|
+
/** What a reader is told when the field is required and empty, where the
|
|
5603
|
+
page says.
|
|
5604
|
+
|
|
5605
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
5606
|
+
set and the browser's own on a text field, which the browser writes in
|
|
5607
|
+
the reader's language. Every other word a control speaks is a property,
|
|
5608
|
+
and this one was the English a form in another language still spoke in
|
|
5609
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
5610
|
+
the field and does not reach that one. */
|
|
5611
|
+
"value-missing-message"?: (HelixHeadlessListbox["valueMissingMessage"]) | undefined;
|
|
5612
|
+
/** What a reader is told when the field is required and empty, where the
|
|
5613
|
+
page says.
|
|
5614
|
+
|
|
5615
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
5616
|
+
set and the browser's own on a text field, which the browser writes in
|
|
5617
|
+
the reader's language. Every other word a control speaks is a property,
|
|
5618
|
+
and this one was the English a form in another language still spoke in
|
|
5619
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
5620
|
+
the field and does not reach that one. */
|
|
5621
|
+
valueMissingMessage?: (HelixHeadlessListbox["valueMissingMessage"]) | undefined;
|
|
4741
5622
|
/** Whether the control is non-interactive.
|
|
4742
5623
|
|
|
4743
5624
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -4834,12 +5715,27 @@ that *a* findable control exists, never that it is ours. The methods stay
|
|
|
4834
5715
|
public either way, so a consumer drawing their own chrome can still drive
|
|
4835
5716
|
the surface.
|
|
4836
5717
|
|
|
4837
|
-
Absent is
|
|
4838
|
-
an attribute's absence
|
|
4839
|
-
|
|
4840
|
-
|
|
4841
|
-
|
|
5718
|
+
Absent is whatever the family rests at, which is this library's rule that
|
|
5719
|
+
a resting value is an attribute's absence: all three for a map, whose
|
|
5720
|
+
reader may have no other way to move it, and zoom and fullscreen for a
|
|
5721
|
+
board, which a reader drags and whose pad took a third of the frame. The
|
|
5722
|
+
stylesheet lays the cluster out by which buttons are in it rather than by
|
|
5723
|
+
this attribute, so the two defaults need no rule each. */
|
|
4842
5724
|
controls?: (HelixHeadlessMap["controls"]) | undefined;
|
|
5725
|
+
/** What the group of controls is called, for a reader who meets it.
|
|
5726
|
+
|
|
5727
|
+
Absent is the family's own name for it, "Map controls" or "Board
|
|
5728
|
+
controls", which names what the controls drive rather than the
|
|
5729
|
+
mechanism. Written here to say it in another language, which every other
|
|
5730
|
+
string this surface speaks already allowed and this one did not. */
|
|
5731
|
+
"controls-label"?: (HelixHeadlessMap["controlsLabel"]) | undefined;
|
|
5732
|
+
/** What the group of controls is called, for a reader who meets it.
|
|
5733
|
+
|
|
5734
|
+
Absent is the family's own name for it, "Map controls" or "Board
|
|
5735
|
+
controls", which names what the controls drive rather than the
|
|
5736
|
+
mechanism. Written here to say it in another language, which every other
|
|
5737
|
+
string this surface speaks already allowed and this one did not. */
|
|
5738
|
+
controlsLabel?: (HelixHeadlessMap["controlsLabel"]) | undefined;
|
|
4843
5739
|
/** Which corner the controls sit in.
|
|
4844
5740
|
|
|
4845
5741
|
**Configurable because there is no safe default**, which is a collision
|
|
@@ -4882,10 +5778,30 @@ reader operates the surface, and chrome that hid itself by default would
|
|
|
4882
5778
|
be the component undoing its own argument. Set it for a display nobody
|
|
4883
5779
|
drives. */
|
|
4884
5780
|
idleDelay?: (HelixHeadlessMap["idleDelay"]) | undefined;
|
|
4885
|
-
/** What
|
|
4886
|
-
|
|
4887
|
-
|
|
4888
|
-
|
|
5781
|
+
/** What the control that pans down is called.
|
|
5782
|
+
|
|
5783
|
+
**A label for each way rather than one with the way filled in**, which is
|
|
5784
|
+
what this was: `Pan {way}` filled in with `left`, so a page that said it
|
|
5785
|
+
in French read out "Déplacer left". The word for a direction is as much
|
|
5786
|
+
the translator's as the word for panning, and a language can put it
|
|
5787
|
+
anywhere in the phrase. */
|
|
5788
|
+
"pan-down-label"?: (HelixHeadlessMap["panDownLabel"]) | undefined;
|
|
5789
|
+
/** What the control that pans down is called.
|
|
5790
|
+
|
|
5791
|
+
**A label for each way rather than one with the way filled in**, which is
|
|
5792
|
+
what this was: `Pan {way}` filled in with `left`, so a page that said it
|
|
5793
|
+
in French read out "Déplacer left". The word for a direction is as much
|
|
5794
|
+
the translator's as the word for panning, and a language can put it
|
|
5795
|
+
anywhere in the phrase. */
|
|
5796
|
+
panDownLabel?: (HelixHeadlessMap["panDownLabel"]) | undefined;
|
|
5797
|
+
/** What the control that pans left is called, on screen. */
|
|
5798
|
+
"pan-left-label"?: (HelixHeadlessMap["panLeftLabel"]) | undefined;
|
|
5799
|
+
/** What the control that pans left is called, on screen. */
|
|
5800
|
+
panLeftLabel?: (HelixHeadlessMap["panLeftLabel"]) | undefined;
|
|
5801
|
+
/** What the control that pans right is called, on screen. */
|
|
5802
|
+
"pan-right-label"?: (HelixHeadlessMap["panRightLabel"]) | undefined;
|
|
5803
|
+
/** What the control that pans right is called, on screen. */
|
|
5804
|
+
panRightLabel?: (HelixHeadlessMap["panRightLabel"]) | undefined;
|
|
4889
5805
|
/** How far one press moves the view, as a fraction of what is on screen.
|
|
4890
5806
|
|
|
4891
5807
|
A fraction rather than a distance, because this surface does not know the
|
|
@@ -4898,6 +5814,10 @@ A fraction rather than a distance, because this surface does not know the
|
|
|
4898
5814
|
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
4899
5815
|
at any zoom, and a consumer who wants their own units multiplies by them. */
|
|
4900
5816
|
panStep?: (HelixHeadlessMap["panStep"]) | undefined;
|
|
5817
|
+
/** What the control that pans up is called. */
|
|
5818
|
+
"pan-up-label"?: (HelixHeadlessMap["panUpLabel"]) | undefined;
|
|
5819
|
+
/** What the control that pans up is called. */
|
|
5820
|
+
panUpLabel?: (HelixHeadlessMap["panUpLabel"]) | undefined;
|
|
4901
5821
|
/** What the control that zooms in is called. */
|
|
4902
5822
|
"zoom-in-label"?: (HelixHeadlessMap["zoomInLabel"]) | undefined;
|
|
4903
5823
|
/** What the control that zooms in is called. */
|
|
@@ -5013,6 +5933,10 @@ question; borrowing it here would put a third meaning on it.
|
|
|
5013
5933
|
a word and a band under a header are two arrangements this family has, and
|
|
5014
5934
|
no other family is being asked the same question. */
|
|
5015
5935
|
variant?: (HelixHeadlessMegamenu["variant"]) | undefined;
|
|
5936
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
5937
|
+
"default-open"?: (HelixHeadlessMegamenu["defaultOpen"]) | undefined;
|
|
5938
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
5939
|
+
defaultOpen?: (HelixHeadlessMegamenu["defaultOpen"]) | undefined;
|
|
5016
5940
|
/** Whether the element is open.
|
|
5017
5941
|
|
|
5018
5942
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -5026,10 +5950,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
5026
5950
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
5027
5951
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
5028
5952
|
open?: (HelixHeadlessMegamenu["open"]) | undefined;
|
|
5029
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
5030
|
-
"default-open"?: (HelixHeadlessMegamenu["defaultOpen"]) | undefined;
|
|
5031
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
5032
|
-
defaultOpen?: (HelixHeadlessMegamenu["defaultOpen"]) | undefined;
|
|
5033
5953
|
};
|
|
5034
5954
|
|
|
5035
5955
|
export type HelixHeadlessMegamenuVueEvents = {
|
|
@@ -5171,6 +6091,10 @@ say that without the component knowing what a row looks like. */
|
|
|
5171
6091
|
"loading-text"?: (HelixHeadlessMenu["loadingText"]) | undefined;
|
|
5172
6092
|
/** What is said while they are on their way. */
|
|
5173
6093
|
loadingText?: (HelixHeadlessMenu["loadingText"]) | undefined;
|
|
6094
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
6095
|
+
"default-open"?: (HelixHeadlessMenu["defaultOpen"]) | undefined;
|
|
6096
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
6097
|
+
defaultOpen?: (HelixHeadlessMenu["defaultOpen"]) | undefined;
|
|
5174
6098
|
/** Whether the element is open.
|
|
5175
6099
|
|
|
5176
6100
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -5184,10 +6108,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
5184
6108
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
5185
6109
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
5186
6110
|
open?: (HelixHeadlessMenu["open"]) | undefined;
|
|
5187
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
5188
|
-
"default-open"?: (HelixHeadlessMenu["defaultOpen"]) | undefined;
|
|
5189
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
5190
|
-
defaultOpen?: (HelixHeadlessMenu["defaultOpen"]) | undefined;
|
|
5191
6111
|
};
|
|
5192
6112
|
|
|
5193
6113
|
export type HelixHeadlessMenuVueEvents = {
|
|
@@ -5334,6 +6254,10 @@ unsayable. Left off, it is the number of rows. */
|
|
|
5334
6254
|
The slot's fallback rather than its replacement, so a consumer who wants a
|
|
5335
6255
|
mark beside the name slots `label` and this goes unused. */
|
|
5336
6256
|
label?: (HelixHeadlessNotificationGroup["label"]) | undefined;
|
|
6257
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
6258
|
+
"default-open"?: (HelixHeadlessNotificationGroup["defaultOpen"]) | undefined;
|
|
6259
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
6260
|
+
defaultOpen?: (HelixHeadlessNotificationGroup["defaultOpen"]) | undefined;
|
|
5337
6261
|
/** Whether the element is open.
|
|
5338
6262
|
|
|
5339
6263
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -5347,10 +6271,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
5347
6271
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
5348
6272
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
5349
6273
|
open?: (HelixHeadlessNotificationGroup["open"]) | undefined;
|
|
5350
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
5351
|
-
"default-open"?: (HelixHeadlessNotificationGroup["defaultOpen"]) | undefined;
|
|
5352
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
5353
|
-
defaultOpen?: (HelixHeadlessNotificationGroup["defaultOpen"]) | undefined;
|
|
5354
6274
|
};
|
|
5355
6275
|
|
|
5356
6276
|
export type HelixHeadlessNotificationGroupVueEvents = {
|
|
@@ -5380,6 +6300,14 @@ is the shape that needs no translation at either end. Left unset the item
|
|
|
5380
6300
|
shows no timestamp rather than showing the epoch, which is what parsing an
|
|
5381
6301
|
empty string would give. */
|
|
5382
6302
|
at?: (HelixHeadlessNotification["at"]) | undefined;
|
|
6303
|
+
/** State to open with, where nothing declared one. */
|
|
6304
|
+
"default-read"?: (HelixHeadlessNotification["defaultRead"]) | undefined;
|
|
6305
|
+
/** State to open with, where nothing declared one. */
|
|
6306
|
+
defaultRead?: (HelixHeadlessNotification["defaultRead"]) | undefined;
|
|
6307
|
+
/** Locale for the timestamp.
|
|
6308
|
+
|
|
6309
|
+
Empty is the runtime's own. */
|
|
6310
|
+
locale?: (HelixHeadlessNotification["locale"]) | undefined;
|
|
5383
6311
|
/** Whether the reader has seen it.
|
|
5384
6312
|
|
|
5385
6313
|
Set it and this element defers: a reader's click fires `helix-read` and
|
|
@@ -5394,14 +6322,6 @@ as a hydration mismatch, and which a copy of the serialized element
|
|
|
5394
6322
|
re-parses as a declaration. `:state(read)` is what the stylesheet reads.
|
|
5395
6323
|
`hydration.dom.spec.ts` holds it. */
|
|
5396
6324
|
read?: (HelixHeadlessNotification["read"]) | undefined;
|
|
5397
|
-
/** State to open with, where nothing declared one. */
|
|
5398
|
-
"default-read"?: (HelixHeadlessNotification["defaultRead"]) | undefined;
|
|
5399
|
-
/** State to open with, where nothing declared one. */
|
|
5400
|
-
defaultRead?: (HelixHeadlessNotification["defaultRead"]) | undefined;
|
|
5401
|
-
/** Locale for the timestamp.
|
|
5402
|
-
|
|
5403
|
-
Empty is the runtime's own. */
|
|
5404
|
-
locale?: (HelixHeadlessNotification["locale"]) | undefined;
|
|
5405
6325
|
/** Whether it offers a control to take it away. */
|
|
5406
6326
|
dismissible?: (HelixHeadlessNotification["dismissible"]) | undefined;
|
|
5407
6327
|
/** Accessible name for that control.
|
|
@@ -5490,6 +6410,20 @@ lets autofill work at all. Hardcoding `off` here is what stops a reader
|
|
|
5490
6410
|
having a birthday or a postal code filled in for them, with no way for a
|
|
5491
6411
|
consumer to ask for it. */
|
|
5492
6412
|
autocomplete?: (HelixHeadlessNumberInput["autocomplete"]) | undefined;
|
|
6413
|
+
/** What a reader is told when the field holds something that is not a number.
|
|
6414
|
+
|
|
6415
|
+
**Every sentence a control raises in the browser's bubble is a property**,
|
|
6416
|
+
named for the validity flag it reports, so a form in another language
|
|
6417
|
+
speaks it: `feedback` replaces the message under the field and does not
|
|
6418
|
+
reach the bubble. Absent is the control's own sentence, in English. */
|
|
6419
|
+
"bad-input-message"?: (HelixHeadlessNumberInput["badInputMessage"]) | undefined;
|
|
6420
|
+
/** What a reader is told when the field holds something that is not a number.
|
|
6421
|
+
|
|
6422
|
+
**Every sentence a control raises in the browser's bubble is a property**,
|
|
6423
|
+
named for the validity flag it reports, so a form in another language
|
|
6424
|
+
speaks it: `feedback` replaces the message under the field and does not
|
|
6425
|
+
reach the bubble. Absent is the control's own sentence, in English. */
|
|
6426
|
+
badInputMessage?: (HelixHeadlessNumberInput["badInputMessage"]) | undefined;
|
|
5493
6427
|
/** Accessible name for the control that steps down. */
|
|
5494
6428
|
"decrement-label"?: (HelixHeadlessNumberInput["decrementLabel"]) | undefined;
|
|
5495
6429
|
/** Accessible name for the control that steps down. */
|
|
@@ -5522,6 +6456,14 @@ Absent has no floor. */
|
|
|
5522
6456
|
|
|
5523
6457
|
Not a label: it goes when typing starts. */
|
|
5524
6458
|
placeholder?: (HelixHeadlessNumberInput["placeholder"]) | undefined;
|
|
6459
|
+
/** What a reader is told when the number is above `max`, with `{max}` filled in. */
|
|
6460
|
+
"range-overflow-message"?: (HelixHeadlessNumberInput["rangeOverflowMessage"]) | undefined;
|
|
6461
|
+
/** What a reader is told when the number is above `max`, with `{max}` filled in. */
|
|
6462
|
+
rangeOverflowMessage?: (HelixHeadlessNumberInput["rangeOverflowMessage"]) | undefined;
|
|
6463
|
+
/** What a reader is told when the number is below `min`, with `{min}` filled in. */
|
|
6464
|
+
"range-underflow-message"?: (HelixHeadlessNumberInput["rangeUnderflowMessage"]) | undefined;
|
|
6465
|
+
/** What a reader is told when the number is below `min`, with `{min}` filled in. */
|
|
6466
|
+
rangeUnderflowMessage?: (HelixHeadlessNumberInput["rangeUnderflowMessage"]) | undefined;
|
|
5525
6467
|
/** Whether the field refuses input while still submitting its value. */
|
|
5526
6468
|
readonly?: (HelixHeadlessNumberInput["readOnly"]) | undefined;
|
|
5527
6469
|
/** Whether the field refuses input while still submitting its value. */
|
|
@@ -5556,6 +6498,26 @@ a reset should return to. */
|
|
|
5556
6498
|
label?: (HelixHeadlessNumberInput["label"]) | undefined;
|
|
5557
6499
|
/** Whether the form refuses to submit without it. */
|
|
5558
6500
|
required?: (HelixHeadlessNumberInput["required"]) | undefined;
|
|
6501
|
+
/** What a reader is told when the field is required and empty, where the
|
|
6502
|
+
page says.
|
|
6503
|
+
|
|
6504
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
6505
|
+
set and the browser's own on a text field, which the browser writes in
|
|
6506
|
+
the reader's language. Every other word a control speaks is a property,
|
|
6507
|
+
and this one was the English a form in another language still spoke in
|
|
6508
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
6509
|
+
the field and does not reach that one. */
|
|
6510
|
+
"value-missing-message"?: (HelixHeadlessNumberInput["valueMissingMessage"]) | undefined;
|
|
6511
|
+
/** What a reader is told when the field is required and empty, where the
|
|
6512
|
+
page says.
|
|
6513
|
+
|
|
6514
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
6515
|
+
set and the browser's own on a text field, which the browser writes in
|
|
6516
|
+
the reader's language. Every other word a control speaks is a property,
|
|
6517
|
+
and this one was the English a form in another language still spoke in
|
|
6518
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
6519
|
+
the field and does not reach that one. */
|
|
6520
|
+
valueMissingMessage?: (HelixHeadlessNumberInput["valueMissingMessage"]) | undefined;
|
|
5559
6521
|
/** Whether the control is non-interactive.
|
|
5560
6522
|
|
|
5561
6523
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -5609,6 +6571,22 @@ export type HelixHeadlessObjectInspectorHelixCopyElementEvent =
|
|
|
5609
6571
|
HelixHeadlessObjectInspectorElementEvent<HelixCopyEvent>;
|
|
5610
6572
|
|
|
5611
6573
|
export type HelixHeadlessObjectInspectorVueProps = {
|
|
6574
|
+
/** What the copy control is called on a row with a key, with the key as
|
|
6575
|
+
`{name}`.
|
|
6576
|
+
|
|
6577
|
+
**Every word the inspector speaks is a property**, so a page in another
|
|
6578
|
+
language hears its own rather than English around its own keys. */
|
|
6579
|
+
"copy-label"?: (HelixHeadlessObjectInspector["copyLabel"]) | undefined;
|
|
6580
|
+
/** What the copy control is called on a row with a key, with the key as
|
|
6581
|
+
`{name}`.
|
|
6582
|
+
|
|
6583
|
+
**Every word the inspector speaks is a property**, so a page in another
|
|
6584
|
+
language hears its own rather than English around its own keys. */
|
|
6585
|
+
copyLabel?: (HelixHeadlessObjectInspector["copyLabel"]) | undefined;
|
|
6586
|
+
/** What the copy control is called where there is no key, on the value itself. */
|
|
6587
|
+
"copy-value-label"?: (HelixHeadlessObjectInspector["copyValueLabel"]) | undefined;
|
|
6588
|
+
/** What the copy control is called where there is no key, on the value itself. */
|
|
6589
|
+
copyValueLabel?: (HelixHeadlessObjectInspector["copyValueLabel"]) | undefined;
|
|
5612
6590
|
/** How many levels start open.
|
|
5613
6591
|
|
|
5614
6592
|
One by default: the root is open and everything under it closed, so a
|
|
@@ -5881,21 +6859,6 @@ look, so no rule selects on it, and the house rule is that reflection
|
|
|
5881
6859
|
exists for selectors: an unread reflected attribute is one more thing
|
|
5882
6860
|
written onto a host at upgrade that a server's output never had. */
|
|
5883
6861
|
ends?: (HelixHeadlessPagination["ends"]) | undefined;
|
|
5884
|
-
/** The page on show, one-based.
|
|
5885
|
-
|
|
5886
|
-
An accessor pair, the same shape as the calendar's `month`. Reading gives
|
|
5887
|
-
the page on show; writing sets it, and `default-page` seeds one the element
|
|
5888
|
-
keeps until somebody does.
|
|
5889
|
-
|
|
5890
|
-
**Clamped on the way out, because "the page on show" is what it says it
|
|
5891
|
-
gives.** Returning whatever was written means `default-page="99"` on a
|
|
5892
|
-
ten-page result renders page 10, marks page 10 with `aria-current`, and
|
|
5893
|
-
reports 99, so a consumer syncing their query from this reads a page that
|
|
5894
|
-
does not exist while the control in front of them says otherwise. Not a
|
|
5895
|
-
far-fetched value: it is a bookmarked link after the result shrank.
|
|
5896
|
-
|
|
5897
|
-
Rounded here too, so `2.7` reads as the 2 it renders. */
|
|
5898
|
-
page?: (HelixHeadlessPagination["page"]) | undefined;
|
|
5899
6862
|
/** Accessible name for the control that jumps to the first page. */
|
|
5900
6863
|
"first-label"?: (HelixHeadlessPagination["firstLabel"]) | undefined;
|
|
5901
6864
|
/** Accessible name for the control that jumps to the first page. */
|
|
@@ -5932,6 +6895,21 @@ different address from `?page=1234`. */
|
|
|
5932
6895
|
"next-label"?: (HelixHeadlessPagination["nextLabel"]) | undefined;
|
|
5933
6896
|
/** Accessible name for the control that moves forward. */
|
|
5934
6897
|
nextLabel?: (HelixHeadlessPagination["nextLabel"]) | undefined;
|
|
6898
|
+
/** The page on show, one-based.
|
|
6899
|
+
|
|
6900
|
+
An accessor pair, the same shape as the calendar's `month`. Reading gives
|
|
6901
|
+
the page on show; writing sets it, and `default-page` seeds one the element
|
|
6902
|
+
keeps until somebody does.
|
|
6903
|
+
|
|
6904
|
+
**Clamped on the way out, because "the page on show" is what it says it
|
|
6905
|
+
gives.** Returning whatever was written means `default-page="99"` on a
|
|
6906
|
+
ten-page result renders page 10, marks page 10 with `aria-current`, and
|
|
6907
|
+
reports 99, so a consumer syncing their query from this reads a page that
|
|
6908
|
+
does not exist while the control in front of them says otherwise. Not a
|
|
6909
|
+
far-fetched value: it is a bookmarked link after the result shrank.
|
|
6910
|
+
|
|
6911
|
+
Rounded here too, so `2.7` reads as the 2 it renders. */
|
|
6912
|
+
page?: (HelixHeadlessPagination["page"]) | undefined;
|
|
5935
6913
|
/** Accessible name for one page, with `{page}` and `{pages}` filled in. */
|
|
5936
6914
|
"page-label"?: (HelixHeadlessPagination["pageLabel"]) | undefined;
|
|
5937
6915
|
/** Accessible name for one page, with `{page}` and `{pages}` filled in. */
|
|
@@ -6007,12 +6985,6 @@ export type HelixHeadlessPaginationSizeVueProps = {
|
|
|
6007
6985
|
"default-value"?: (HelixHeadlessPaginationSize["defaultValue"] | `${number}`) | undefined;
|
|
6008
6986
|
/** Size to start on, where nothing declared one. */
|
|
6009
6987
|
defaultValue?: (HelixHeadlessPaginationSize["defaultValue"]) | undefined;
|
|
6010
|
-
/** The size in force.
|
|
6011
|
-
|
|
6012
|
-
Reading gives the real one; writing declares it the consumer's, and
|
|
6013
|
-
`default-value` seeds one this element owns. Same accessor pair as
|
|
6014
|
-
`Pagination.page` and the calendar's `month`. */
|
|
6015
|
-
value?: (HelixHeadlessPaginationSize["value"]) | undefined;
|
|
6016
6988
|
/** The words beside the control. */
|
|
6017
6989
|
label?: (HelixHeadlessPaginationSize["label"]) | undefined;
|
|
6018
6990
|
/** Locale for the numbers.
|
|
@@ -6025,6 +6997,12 @@ A string rather than an array, so the whole control is expressible in
|
|
|
6025
6997
|
markup and survives a server render. Anything that is not a positive number
|
|
6026
6998
|
is dropped rather than rendered as an option that cannot mean anything. */
|
|
6027
6999
|
sizes?: (HelixHeadlessPaginationSize["sizes"]) | undefined;
|
|
7000
|
+
/** The size in force.
|
|
7001
|
+
|
|
7002
|
+
Reading gives the real one; writing declares it the consumer's, and
|
|
7003
|
+
`default-value` seeds one this element owns. Same accessor pair as
|
|
7004
|
+
`Pagination.page` and the calendar's `month`. */
|
|
7005
|
+
value?: (HelixHeadlessPaginationSize["value"]) | undefined;
|
|
6028
7006
|
};
|
|
6029
7007
|
|
|
6030
7008
|
export type HelixHeadlessPaginationSizeVueEvents = {
|
|
@@ -6105,6 +7083,12 @@ Empty by default, because a row of boxes already reads as a row of boxes. */
|
|
|
6105
7083
|
readonly?: (HelixHeadlessPinInput["readOnly"]) | undefined;
|
|
6106
7084
|
/** Whether the boxes refuse input while still submitting their value. */
|
|
6107
7085
|
readOnly?: (HelixHeadlessPinInput["readOnly"]) | undefined;
|
|
7086
|
+
/** What a reader is told when the code is started and not finished, with
|
|
7087
|
+
`{length}` filled in. Absent is the control's own sentence, in English. */
|
|
7088
|
+
"too-short-message"?: (HelixHeadlessPinInput["tooShortMessage"]) | undefined;
|
|
7089
|
+
/** What a reader is told when the code is started and not finished, with
|
|
7090
|
+
`{length}` filled in. Absent is the control's own sentence, in English. */
|
|
7091
|
+
tooShortMessage?: (HelixHeadlessPinInput["tooShortMessage"]) | undefined;
|
|
6108
7092
|
/** What a box accepts, which decides the keyboard a phone offers.
|
|
6109
7093
|
|
|
6110
7094
|
`numeric` and `alphanumeric` also refuse anything else on the way in,
|
|
@@ -6145,6 +7129,26 @@ a reset should return to. */
|
|
|
6145
7129
|
label?: (HelixHeadlessPinInput["label"]) | undefined;
|
|
6146
7130
|
/** Whether the form refuses to submit without it. */
|
|
6147
7131
|
required?: (HelixHeadlessPinInput["required"]) | undefined;
|
|
7132
|
+
/** What a reader is told when the field is required and empty, where the
|
|
7133
|
+
page says.
|
|
7134
|
+
|
|
7135
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
7136
|
+
set and the browser's own on a text field, which the browser writes in
|
|
7137
|
+
the reader's language. Every other word a control speaks is a property,
|
|
7138
|
+
and this one was the English a form in another language still spoke in
|
|
7139
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
7140
|
+
the field and does not reach that one. */
|
|
7141
|
+
"value-missing-message"?: (HelixHeadlessPinInput["valueMissingMessage"]) | undefined;
|
|
7142
|
+
/** What a reader is told when the field is required and empty, where the
|
|
7143
|
+
page says.
|
|
7144
|
+
|
|
7145
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
7146
|
+
set and the browser's own on a text field, which the browser writes in
|
|
7147
|
+
the reader's language. Every other word a control speaks is a property,
|
|
7148
|
+
and this one was the English a form in another language still spoke in
|
|
7149
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
7150
|
+
the field and does not reach that one. */
|
|
7151
|
+
valueMissingMessage?: (HelixHeadlessPinInput["valueMissingMessage"]) | undefined;
|
|
6148
7152
|
/** Whether the control is non-interactive.
|
|
6149
7153
|
|
|
6150
7154
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -6205,6 +7209,10 @@ export type HelixHeadlessPopoverVueProps = {
|
|
|
6205
7209
|
|
|
6206
7210
|
It moves if that side does not fit. */
|
|
6207
7211
|
placement?: (HelixHeadlessPopover["placement"]) | undefined;
|
|
7212
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
7213
|
+
"default-open"?: (HelixHeadlessPopover["defaultOpen"]) | undefined;
|
|
7214
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
7215
|
+
defaultOpen?: (HelixHeadlessPopover["defaultOpen"]) | undefined;
|
|
6208
7216
|
/** Whether the element is open.
|
|
6209
7217
|
|
|
6210
7218
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -6218,10 +7226,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
6218
7226
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
6219
7227
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
6220
7228
|
open?: (HelixHeadlessPopover["open"]) | undefined;
|
|
6221
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
6222
|
-
"default-open"?: (HelixHeadlessPopover["defaultOpen"]) | undefined;
|
|
6223
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
6224
|
-
defaultOpen?: (HelixHeadlessPopover["defaultOpen"]) | undefined;
|
|
6225
7229
|
};
|
|
6226
7230
|
|
|
6227
7231
|
export type HelixHeadlessPopoverVueEvents = {
|
|
@@ -6389,6 +7393,26 @@ a reset should return to. */
|
|
|
6389
7393
|
label?: (HelixHeadlessRadioGroup["label"]) | undefined;
|
|
6390
7394
|
/** Whether the form refuses to submit without it. */
|
|
6391
7395
|
required?: (HelixHeadlessRadioGroup["required"]) | undefined;
|
|
7396
|
+
/** What a reader is told when the field is required and empty, where the
|
|
7397
|
+
page says.
|
|
7398
|
+
|
|
7399
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
7400
|
+
set and the browser's own on a text field, which the browser writes in
|
|
7401
|
+
the reader's language. Every other word a control speaks is a property,
|
|
7402
|
+
and this one was the English a form in another language still spoke in
|
|
7403
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
7404
|
+
the field and does not reach that one. */
|
|
7405
|
+
"value-missing-message"?: (HelixHeadlessRadioGroup["valueMissingMessage"]) | undefined;
|
|
7406
|
+
/** What a reader is told when the field is required and empty, where the
|
|
7407
|
+
page says.
|
|
7408
|
+
|
|
7409
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
7410
|
+
set and the browser's own on a text field, which the browser writes in
|
|
7411
|
+
the reader's language. Every other word a control speaks is a property,
|
|
7412
|
+
and this one was the English a form in another language still spoke in
|
|
7413
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
7414
|
+
the field and does not reach that one. */
|
|
7415
|
+
valueMissingMessage?: (HelixHeadlessRadioGroup["valueMissingMessage"]) | undefined;
|
|
6392
7416
|
/** Whether the control is non-interactive.
|
|
6393
7417
|
|
|
6394
7418
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -6619,6 +7643,26 @@ a reset should return to. */
|
|
|
6619
7643
|
label?: (HelixHeadlessRating["label"]) | undefined;
|
|
6620
7644
|
/** Whether the form refuses to submit without it. */
|
|
6621
7645
|
required?: (HelixHeadlessRating["required"]) | undefined;
|
|
7646
|
+
/** What a reader is told when the field is required and empty, where the
|
|
7647
|
+
page says.
|
|
7648
|
+
|
|
7649
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
7650
|
+
set and the browser's own on a text field, which the browser writes in
|
|
7651
|
+
the reader's language. Every other word a control speaks is a property,
|
|
7652
|
+
and this one was the English a form in another language still spoke in
|
|
7653
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
7654
|
+
the field and does not reach that one. */
|
|
7655
|
+
"value-missing-message"?: (HelixHeadlessRating["valueMissingMessage"]) | undefined;
|
|
7656
|
+
/** What a reader is told when the field is required and empty, where the
|
|
7657
|
+
page says.
|
|
7658
|
+
|
|
7659
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
7660
|
+
set and the browser's own on a text field, which the browser writes in
|
|
7661
|
+
the reader's language. Every other word a control speaks is a property,
|
|
7662
|
+
and this one was the English a form in another language still spoke in
|
|
7663
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
7664
|
+
the field and does not reach that one. */
|
|
7665
|
+
valueMissingMessage?: (HelixHeadlessRating["valueMissingMessage"]) | undefined;
|
|
6622
7666
|
/** Whether the control is non-interactive.
|
|
6623
7667
|
|
|
6624
7668
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -6744,6 +7788,10 @@ consumer wiring the same flag twice. */
|
|
|
6744
7788
|
multiple?: (HelixHeadlessSelect["multiple"]) | undefined;
|
|
6745
7789
|
/** Shown on the trigger while nothing is chosen. */
|
|
6746
7790
|
placeholder?: (HelixHeadlessSelect["placeholder"]) | undefined;
|
|
7791
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
7792
|
+
"default-open"?: (HelixHeadlessSelect["defaultOpen"]) | undefined;
|
|
7793
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
7794
|
+
defaultOpen?: (HelixHeadlessSelect["defaultOpen"]) | undefined;
|
|
6747
7795
|
/** Whether the element is open.
|
|
6748
7796
|
|
|
6749
7797
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -6757,10 +7805,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
6757
7805
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
6758
7806
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
6759
7807
|
open?: (HelixHeadlessSelect["open"]) | undefined;
|
|
6760
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
6761
|
-
"default-open"?: (HelixHeadlessSelect["defaultOpen"]) | undefined;
|
|
6762
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
6763
|
-
defaultOpen?: (HelixHeadlessSelect["defaultOpen"]) | undefined;
|
|
6764
7808
|
/** The value the markup declared, which is where a reset returns to. */
|
|
6765
7809
|
"default-value"?: (HelixHeadlessSelect["defaultValue"]) | undefined;
|
|
6766
7810
|
/** The value the markup declared, which is where a reset returns to. */
|
|
@@ -6780,6 +7824,26 @@ a reset should return to. */
|
|
|
6780
7824
|
label?: (HelixHeadlessSelect["label"]) | undefined;
|
|
6781
7825
|
/** Whether the form refuses to submit without it. */
|
|
6782
7826
|
required?: (HelixHeadlessSelect["required"]) | undefined;
|
|
7827
|
+
/** What a reader is told when the field is required and empty, where the
|
|
7828
|
+
page says.
|
|
7829
|
+
|
|
7830
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
7831
|
+
set and the browser's own on a text field, which the browser writes in
|
|
7832
|
+
the reader's language. Every other word a control speaks is a property,
|
|
7833
|
+
and this one was the English a form in another language still spoke in
|
|
7834
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
7835
|
+
the field and does not reach that one. */
|
|
7836
|
+
"value-missing-message"?: (HelixHeadlessSelect["valueMissingMessage"]) | undefined;
|
|
7837
|
+
/** What a reader is told when the field is required and empty, where the
|
|
7838
|
+
page says.
|
|
7839
|
+
|
|
7840
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
7841
|
+
set and the browser's own on a text field, which the browser writes in
|
|
7842
|
+
the reader's language. Every other word a control speaks is a property,
|
|
7843
|
+
and this one was the English a form in another language still spoke in
|
|
7844
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
7845
|
+
the field and does not reach that one. */
|
|
7846
|
+
valueMissingMessage?: (HelixHeadlessSelect["valueMissingMessage"]) | undefined;
|
|
6783
7847
|
/** Whether the control is non-interactive.
|
|
6784
7848
|
|
|
6785
7849
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -6881,8 +7945,28 @@ is the honest picture of the range being offered. */
|
|
|
6881
7945
|
markers?: (HelixHeadlessSlider["markers"]) | undefined;
|
|
6882
7946
|
/** The largest value the reader can choose. */
|
|
6883
7947
|
max?: (HelixHeadlessSlider["max"]) | undefined;
|
|
7948
|
+
/** What the upper thumb of a range is called, after the slider's own label.
|
|
7949
|
+
|
|
7950
|
+
**Named with the label rather than instead of it.** Each thumb was
|
|
7951
|
+
`aria-label="${label} maximum"`, which overrode the `<label>` and read the
|
|
7952
|
+
`label` string only, so a slider named by a slotted label or `aria-label`
|
|
7953
|
+
had thumbs called "minimum" and "maximum" and nothing else. The word is a
|
|
7954
|
+
property, like every other word a control speaks. */
|
|
7955
|
+
"maximum-label"?: (HelixHeadlessSlider["maximumLabel"]) | undefined;
|
|
7956
|
+
/** What the upper thumb of a range is called, after the slider's own label.
|
|
7957
|
+
|
|
7958
|
+
**Named with the label rather than instead of it.** Each thumb was
|
|
7959
|
+
`aria-label="${label} maximum"`, which overrode the `<label>` and read the
|
|
7960
|
+
`label` string only, so a slider named by a slotted label or `aria-label`
|
|
7961
|
+
had thumbs called "minimum" and "maximum" and nothing else. The word is a
|
|
7962
|
+
property, like every other word a control speaks. */
|
|
7963
|
+
maximumLabel?: (HelixHeadlessSlider["maximumLabel"]) | undefined;
|
|
6884
7964
|
/** The smallest value the reader can choose. */
|
|
6885
7965
|
min?: (HelixHeadlessSlider["min"]) | undefined;
|
|
7966
|
+
/** What the lower thumb of a range is called, after the slider's own label. */
|
|
7967
|
+
"minimum-label"?: (HelixHeadlessSlider["minimumLabel"]) | undefined;
|
|
7968
|
+
/** What the lower thumb of a range is called, after the slider's own label. */
|
|
7969
|
+
minimumLabel?: (HelixHeadlessSlider["minimumLabel"]) | undefined;
|
|
6886
7970
|
/** Which way the track runs, `vertical` standing it on end.
|
|
6887
7971
|
|
|
6888
7972
|
For a level rather than a quantity: a fader, a channel, anything a reader
|
|
@@ -6925,6 +8009,26 @@ a reset should return to. */
|
|
|
6925
8009
|
label?: (HelixHeadlessSlider["label"]) | undefined;
|
|
6926
8010
|
/** Whether the form refuses to submit without it. */
|
|
6927
8011
|
required?: (HelixHeadlessSlider["required"]) | undefined;
|
|
8012
|
+
/** What a reader is told when the field is required and empty, where the
|
|
8013
|
+
page says.
|
|
8014
|
+
|
|
8015
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
8016
|
+
set and the browser's own on a text field, which the browser writes in
|
|
8017
|
+
the reader's language. Every other word a control speaks is a property,
|
|
8018
|
+
and this one was the English a form in another language still spoke in
|
|
8019
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
8020
|
+
the field and does not reach that one. */
|
|
8021
|
+
"value-missing-message"?: (HelixHeadlessSlider["valueMissingMessage"]) | undefined;
|
|
8022
|
+
/** What a reader is told when the field is required and empty, where the
|
|
8023
|
+
page says.
|
|
8024
|
+
|
|
8025
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
8026
|
+
set and the browser's own on a text field, which the browser writes in
|
|
8027
|
+
the reader's language. Every other word a control speaks is a property,
|
|
8028
|
+
and this one was the English a form in another language still spoke in
|
|
8029
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
8030
|
+
the field and does not reach that one. */
|
|
8031
|
+
valueMissingMessage?: (HelixHeadlessSlider["valueMissingMessage"]) | undefined;
|
|
6928
8032
|
/** Whether the control is non-interactive.
|
|
6929
8033
|
|
|
6930
8034
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -7091,6 +8195,10 @@ export type HelixHeadlessSpeedDialVueProps = {
|
|
|
7091
8195
|
Up by default, because the control this hangs off is usually docked to the
|
|
7092
8196
|
bottom of the window and there is nothing below it to fan into. */
|
|
7093
8197
|
placement?: (HelixHeadlessSpeedDial["placement"]) | undefined;
|
|
8198
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
8199
|
+
"default-open"?: (HelixHeadlessSpeedDial["defaultOpen"]) | undefined;
|
|
8200
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
8201
|
+
defaultOpen?: (HelixHeadlessSpeedDial["defaultOpen"]) | undefined;
|
|
7094
8202
|
/** Whether the element is open.
|
|
7095
8203
|
|
|
7096
8204
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -7104,10 +8212,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
7104
8212
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
7105
8213
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
7106
8214
|
open?: (HelixHeadlessSpeedDial["open"]) | undefined;
|
|
7107
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
7108
|
-
"default-open"?: (HelixHeadlessSpeedDial["defaultOpen"]) | undefined;
|
|
7109
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
7110
|
-
defaultOpen?: (HelixHeadlessSpeedDial["defaultOpen"]) | undefined;
|
|
7111
8215
|
};
|
|
7112
8216
|
|
|
7113
8217
|
export type HelixHeadlessSpeedDialVueEvents = {
|
|
@@ -7134,6 +8238,32 @@ export type HelixHeadlessSplitterHelixBeforeResizeElementEvent =
|
|
|
7134
8238
|
HelixHeadlessSplitterElementEvent<HelixBeforeResizeEvent>;
|
|
7135
8239
|
|
|
7136
8240
|
export type HelixHeadlessSplitterVueProps = {
|
|
8241
|
+
/** Which pane is shut, if either.
|
|
8242
|
+
|
|
8243
|
+
The same accessor pair as `position`, and deliberately a second state
|
|
8244
|
+
rather than a reading of the first. A pane shut by dragging the divider to
|
|
8245
|
+
the edge and a pane shut on purpose look identical in geometry and are not
|
|
8246
|
+
the same thing: only the second knows where to go back to. Kept apart, the
|
|
8247
|
+
open position is simply the one collapsing never overwrote, so restoring
|
|
8248
|
+
needs no memory of its own.
|
|
8249
|
+
|
|
8250
|
+
It overrides `min` and `max`, which is the point of it. Those keep a sliver
|
|
8251
|
+
of a pane during a drag; this is the thing that says the sliver can go. */
|
|
8252
|
+
collapsed?: (HelixHeadlessSplitter["collapsed"]) | undefined;
|
|
8253
|
+
/** What the divider says while a pane is shut, in place of a number.
|
|
8254
|
+
|
|
8255
|
+
**A shut pane is off the scale the divider reports**, which is `min` to
|
|
8256
|
+
`max`, the sliver a drag keeps. The divider said a value outside its own
|
|
8257
|
+
range, 0 against a minimum of 20, which reads as broken rather than as
|
|
8258
|
+
shut. While shut it reports the whole 0 to 100 it sits on and says this. */
|
|
8259
|
+
"collapsed-label"?: (HelixHeadlessSplitter["collapsedLabel"]) | undefined;
|
|
8260
|
+
/** What the divider says while a pane is shut, in place of a number.
|
|
8261
|
+
|
|
8262
|
+
**A shut pane is off the scale the divider reports**, which is `min` to
|
|
8263
|
+
`max`, the sliver a drag keeps. The divider said a value outside its own
|
|
8264
|
+
range, 0 against a minimum of 20, which reads as broken rather than as
|
|
8265
|
+
shut. While shut it reports the whole 0 to 100 it sits on and says this. */
|
|
8266
|
+
collapsedLabel?: (HelixHeadlessSplitter["collapsedLabel"]) | undefined;
|
|
7137
8267
|
/** How much of a shut pane is still shown, as a percentage.
|
|
7138
8268
|
|
|
7139
8269
|
Zero by default, which is a pane fully gone. A tab strip or a title bar
|
|
@@ -7148,28 +8278,10 @@ that should survive its own collapse says how much of itself to keep, and
|
|
|
7148
8278
|
only whoever put it there knows that, which is the same reason `min` is a
|
|
7149
8279
|
consumer's to set. */
|
|
7150
8280
|
collapsedSize?: (HelixHeadlessSplitter["collapsedSize"]) | undefined;
|
|
7151
|
-
/** Where the divider sits, as a percentage of the whole.
|
|
7152
|
-
|
|
7153
|
-
Reading gives where it is; writing declares it the consumer's, and
|
|
7154
|
-
`default-position` seeds one this element owns. The same accessor pair
|
|
7155
|
-
`Pagination.page` and the calendar's `month` carry. */
|
|
7156
|
-
position?: (HelixHeadlessSplitter["position"]) | undefined;
|
|
7157
8281
|
/** Accessible name for the handle where two dividers cross. */
|
|
7158
8282
|
"corner-label"?: (HelixHeadlessSplitter["cornerLabel"]) | undefined;
|
|
7159
8283
|
/** Accessible name for the handle where two dividers cross. */
|
|
7160
8284
|
cornerLabel?: (HelixHeadlessSplitter["cornerLabel"]) | undefined;
|
|
7161
|
-
/** Which pane is shut, if either.
|
|
7162
|
-
|
|
7163
|
-
The same accessor pair as `position`, and deliberately a second state
|
|
7164
|
-
rather than a reading of the first. A pane shut by dragging the divider to
|
|
7165
|
-
the edge and a pane shut on purpose look identical in geometry and are not
|
|
7166
|
-
the same thing: only the second knows where to go back to. Kept apart, the
|
|
7167
|
-
open position is simply the one collapsing never overwrote, so restoring
|
|
7168
|
-
needs no memory of its own.
|
|
7169
|
-
|
|
7170
|
-
It overrides `min` and `max`, which is the point of it. Those keep a sliver
|
|
7171
|
-
of a pane during a drag; this is the thing that says the sliver can go. */
|
|
7172
|
-
collapsed?: (HelixHeadlessSplitter["collapsed"]) | undefined;
|
|
7173
8285
|
/** Which pane starts shut, where nothing declared it. */
|
|
7174
8286
|
"default-collapsed"?: (HelixHeadlessSplitter["defaultCollapsed"]) | undefined;
|
|
7175
8287
|
/** Which pane starts shut, where nothing declared it. */
|
|
@@ -7225,6 +8337,12 @@ no room for two panes side by side, and a media query would hand it the
|
|
|
7225
8337
|
desktop branch. A `ResizeObserver` on the host asks the only question that
|
|
7226
8338
|
has an honest answer. */
|
|
7227
8339
|
orientation?: (HelixHeadlessSplitter["orientation"]) | undefined;
|
|
8340
|
+
/** Where the divider sits, as a percentage of the whole.
|
|
8341
|
+
|
|
8342
|
+
Reading gives where it is; writing declares it the consumer's, and
|
|
8343
|
+
`default-position` seeds one this element owns. The same accessor pair
|
|
8344
|
+
`Pagination.page` and the calendar's `month` carry. */
|
|
8345
|
+
position?: (HelixHeadlessSplitter["position"]) | undefined;
|
|
7228
8346
|
/** How far one arrow press moves it, as a percentage. */
|
|
7229
8347
|
step?: (HelixHeadlessSplitter["step"]) | undefined;
|
|
7230
8348
|
};
|
|
@@ -7400,6 +8518,26 @@ stylesheets. */
|
|
|
7400
8518
|
label?: (HelixHeadlessSwitch["label"]) | undefined;
|
|
7401
8519
|
/** Whether the form refuses to submit without it. */
|
|
7402
8520
|
required?: (HelixHeadlessSwitch["required"]) | undefined;
|
|
8521
|
+
/** What a reader is told when the field is required and empty, where the
|
|
8522
|
+
page says.
|
|
8523
|
+
|
|
8524
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
8525
|
+
set and the browser's own on a text field, which the browser writes in
|
|
8526
|
+
the reader's language. Every other word a control speaks is a property,
|
|
8527
|
+
and this one was the English a form in another language still spoke in
|
|
8528
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
8529
|
+
the field and does not reach that one. */
|
|
8530
|
+
"value-missing-message"?: (HelixHeadlessSwitch["valueMissingMessage"]) | undefined;
|
|
8531
|
+
/** What a reader is told when the field is required and empty, where the
|
|
8532
|
+
page says.
|
|
8533
|
+
|
|
8534
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
8535
|
+
set and the browser's own on a text field, which the browser writes in
|
|
8536
|
+
the reader's language. Every other word a control speaks is a property,
|
|
8537
|
+
and this one was the English a form in another language still spoke in
|
|
8538
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
8539
|
+
the field and does not reach that one. */
|
|
8540
|
+
valueMissingMessage?: (HelixHeadlessSwitch["valueMissingMessage"]) | undefined;
|
|
7403
8541
|
/** Whether the control is non-interactive.
|
|
7404
8542
|
|
|
7405
8543
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -7468,6 +8606,18 @@ after a column moves is a sort a consumer cannot store in a URL.
|
|
|
7468
8606
|
Empty on a column that is purely presentational, an actions column say, and
|
|
7469
8607
|
such a column is never sortable however it is marked. */
|
|
7470
8608
|
field?: (HelixHeadlessTableColumn["field"]) | undefined;
|
|
8609
|
+
/** What the grip that moves the column is called, with the heading's words as
|
|
8610
|
+
`{name}`.
|
|
8611
|
+
|
|
8612
|
+
**Every word a column speaks is a property**, so a table in another
|
|
8613
|
+
language hears its own rather than English around its own headings. */
|
|
8614
|
+
"move-label"?: (HelixHeadlessTableColumn["moveLabel"]) | undefined;
|
|
8615
|
+
/** What the grip that moves the column is called, with the heading's words as
|
|
8616
|
+
`{name}`.
|
|
8617
|
+
|
|
8618
|
+
**Every word a column speaks is a property**, so a table in another
|
|
8619
|
+
language hears its own rather than English around its own headings. */
|
|
8620
|
+
moveLabel?: (HelixHeadlessTableColumn["moveLabel"]) | undefined;
|
|
7471
8621
|
/** Whether a reader may change this column's width.
|
|
7472
8622
|
|
|
7473
8623
|
By dragging the edge at the end of the heading, or with the arrow keys once
|
|
@@ -7475,6 +8625,12 @@ it has focus, a step at a time and four with Shift. The width lands in
|
|
|
7475
8625
|
`width` as pixels, and `helix-before-resize` asks first, so a consumer who
|
|
7476
8626
|
stores the widths can take the decision. */
|
|
7477
8627
|
resizable?: (HelixHeadlessTableColumn["resizable"]) | undefined;
|
|
8628
|
+
/** What the separator that resizes the column is called, with the heading's
|
|
8629
|
+
words as `{name}`. */
|
|
8630
|
+
"resize-label"?: (HelixHeadlessTableColumn["resizeLabel"]) | undefined;
|
|
8631
|
+
/** What the separator that resizes the column is called, with the heading's
|
|
8632
|
+
words as `{name}`. */
|
|
8633
|
+
resizeLabel?: (HelixHeadlessTableColumn["resizeLabel"]) | undefined;
|
|
7478
8634
|
/** Whether a reader may reorder the set by this column.
|
|
7479
8635
|
|
|
7480
8636
|
Ignored without a `field`, and silently: a column with nothing to sort by
|
|
@@ -7569,6 +8725,10 @@ line, so a column holding sentences rather than values wants
|
|
|
7569
8725
|
`width="minmax(0, 1fr)"` to opt back into wrapping. A headless consumer owns
|
|
7570
8726
|
the overflow either way, that being paint, and gets the honest track list. */
|
|
7571
8727
|
width?: (HelixHeadlessTableColumn["width"]) | undefined;
|
|
8728
|
+
/** How the separator reads out the column's width, with `{width}` filled in. */
|
|
8729
|
+
"width-label"?: (HelixHeadlessTableColumn["widthLabel"]) | undefined;
|
|
8730
|
+
/** How the separator reads out the column's width, with `{width}` filled in. */
|
|
8731
|
+
widthLabel?: (HelixHeadlessTableColumn["widthLabel"]) | undefined;
|
|
7572
8732
|
/** How to read the cell, where the field alone will not do.
|
|
7573
8733
|
|
|
7574
8734
|
A property and not an attribute, because it is a function. Set it from a Lit
|
|
@@ -7896,6 +9056,26 @@ a reset should return to. */
|
|
|
7896
9056
|
label?: (HelixHeadlessTextarea["label"]) | undefined;
|
|
7897
9057
|
/** Whether the form refuses to submit without it. */
|
|
7898
9058
|
required?: (HelixHeadlessTextarea["required"]) | undefined;
|
|
9059
|
+
/** What a reader is told when the field is required and empty, where the
|
|
9060
|
+
page says.
|
|
9061
|
+
|
|
9062
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
9063
|
+
set and the browser's own on a text field, which the browser writes in
|
|
9064
|
+
the reader's language. Every other word a control speaks is a property,
|
|
9065
|
+
and this one was the English a form in another language still spoke in
|
|
9066
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
9067
|
+
the field and does not reach that one. */
|
|
9068
|
+
"value-missing-message"?: (HelixHeadlessTextarea["valueMissingMessage"]) | undefined;
|
|
9069
|
+
/** What a reader is told when the field is required and empty, where the
|
|
9070
|
+
page says.
|
|
9071
|
+
|
|
9072
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
9073
|
+
set and the browser's own on a text field, which the browser writes in
|
|
9074
|
+
the reader's language. Every other word a control speaks is a property,
|
|
9075
|
+
and this one was the English a form in another language still spoke in
|
|
9076
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
9077
|
+
the field and does not reach that one. */
|
|
9078
|
+
valueMissingMessage?: (HelixHeadlessTextarea["valueMissingMessage"]) | undefined;
|
|
7899
9079
|
/** Whether the control is non-interactive.
|
|
7900
9080
|
|
|
7901
9081
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -7987,6 +9167,40 @@ on why a wheel cannot do either. */
|
|
|
7987
9167
|
mode?: (HelixHeadlessTimeInput["mode"]) | undefined;
|
|
7988
9168
|
/** What the field says before a time is in it. */
|
|
7989
9169
|
placeholder?: (HelixHeadlessTimeInput["placeholder"]) | undefined;
|
|
9170
|
+
/** What a reader is told when a range holds more than two times.
|
|
9171
|
+
|
|
9172
|
+
**Every sentence a control raises in the browser's bubble is a property**,
|
|
9173
|
+
so a form in another language speaks it. Absent is the control's own
|
|
9174
|
+
sentence, in English. */
|
|
9175
|
+
"range-length-message"?: (HelixHeadlessTimeInput["rangeLengthMessage"]) | undefined;
|
|
9176
|
+
/** What a reader is told when a range holds more than two times.
|
|
9177
|
+
|
|
9178
|
+
**Every sentence a control raises in the browser's bubble is a property**,
|
|
9179
|
+
so a form in another language speaks it. Absent is the control's own
|
|
9180
|
+
sentence, in English. */
|
|
9181
|
+
rangeLengthMessage?: (HelixHeadlessTimeInput["rangeLengthMessage"]) | undefined;
|
|
9182
|
+
/** What a reader is told when a time is after `max`, with `{max}` filled in
|
|
9183
|
+
as the field writes it. */
|
|
9184
|
+
"range-overflow-message"?: (HelixHeadlessTimeInput["rangeOverflowMessage"]) | undefined;
|
|
9185
|
+
/** What a reader is told when a time is after `max`, with `{max}` filled in
|
|
9186
|
+
as the field writes it. */
|
|
9187
|
+
rangeOverflowMessage?: (HelixHeadlessTimeInput["rangeOverflowMessage"]) | undefined;
|
|
9188
|
+
/** What a reader is told when a time is before `min`, with `{min}` filled
|
|
9189
|
+
in as the field writes it. */
|
|
9190
|
+
"range-underflow-message"?: (HelixHeadlessTimeInput["rangeUnderflowMessage"]) | undefined;
|
|
9191
|
+
/** What a reader is told when a time is before `min`, with `{min}` filled
|
|
9192
|
+
in as the field writes it. */
|
|
9193
|
+
rangeUnderflowMessage?: (HelixHeadlessTimeInput["rangeUnderflowMessage"]) | undefined;
|
|
9194
|
+
/** What the control removing one time is called, with `{name}` filled in.
|
|
9195
|
+
|
|
9196
|
+
**The name goes in**, so a row of them is heard as which one each
|
|
9197
|
+
removes rather than as "Remove" said once per time. */
|
|
9198
|
+
"remove-label"?: (HelixHeadlessTimeInput["removeLabel"]) | undefined;
|
|
9199
|
+
/** What the control removing one time is called, with `{name}` filled in.
|
|
9200
|
+
|
|
9201
|
+
**The name goes in**, so a row of them is heard as which one each
|
|
9202
|
+
removes rather than as "Remove" said once per time. */
|
|
9203
|
+
removeLabel?: (HelixHeadlessTimeInput["removeLabel"]) | undefined;
|
|
7990
9204
|
/** How far apart the offered times are, in minutes. */
|
|
7991
9205
|
step?: (HelixHeadlessTimeInput["step"]) | undefined;
|
|
7992
9206
|
/** Whether the field writes the time out, or holds the value as it is.
|
|
@@ -8045,6 +9259,26 @@ submits nothing and leaves the tab order, and a read-only one submits its
|
|
|
8045
9259
|
value and stays reachable, which is what a form showing a value somebody
|
|
8046
9260
|
else set needs. */
|
|
8047
9261
|
readOnly?: (HelixHeadlessTimeInput["readOnly"]) | undefined;
|
|
9262
|
+
/** What a reader is told when the field holds something the picker cannot
|
|
9263
|
+
read: a date that is not one, a time, a color.
|
|
9264
|
+
|
|
9265
|
+
**Every sentence a control raises in the browser's bubble is a
|
|
9266
|
+
property**, named for the validity flag it reports, so a form in another
|
|
9267
|
+
language speaks it. Absent is the family's own sentence, in English,
|
|
9268
|
+
which says what the value should look like. */
|
|
9269
|
+
"bad-input-message"?: (HelixHeadlessTimeInput["badInputMessage"]) | undefined;
|
|
9270
|
+
/** What a reader is told when the field holds something the picker cannot
|
|
9271
|
+
read: a date that is not one, a time, a color.
|
|
9272
|
+
|
|
9273
|
+
**Every sentence a control raises in the browser's bubble is a
|
|
9274
|
+
property**, named for the validity flag it reports, so a form in another
|
|
9275
|
+
language speaks it. Absent is the family's own sentence, in English,
|
|
9276
|
+
which says what the value should look like. */
|
|
9277
|
+
badInputMessage?: (HelixHeadlessTimeInput["badInputMessage"]) | undefined;
|
|
9278
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
9279
|
+
"default-open"?: (HelixHeadlessTimeInput["defaultOpen"]) | undefined;
|
|
9280
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
9281
|
+
defaultOpen?: (HelixHeadlessTimeInput["defaultOpen"]) | undefined;
|
|
8048
9282
|
/** Whether the element is open.
|
|
8049
9283
|
|
|
8050
9284
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -8058,10 +9292,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
8058
9292
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
8059
9293
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
8060
9294
|
open?: (HelixHeadlessTimeInput["open"]) | undefined;
|
|
8061
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
8062
|
-
"default-open"?: (HelixHeadlessTimeInput["defaultOpen"]) | undefined;
|
|
8063
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
8064
|
-
defaultOpen?: (HelixHeadlessTimeInput["defaultOpen"]) | undefined;
|
|
8065
9295
|
/** What the control is called once everything is showing. */
|
|
8066
9296
|
"collapse-label"?: (HelixHeadlessTimeInput["collapseLabel"]) | undefined;
|
|
8067
9297
|
/** What the control is called once everything is showing. */
|
|
@@ -8095,6 +9325,26 @@ a reset should return to. */
|
|
|
8095
9325
|
label?: (HelixHeadlessTimeInput["label"]) | undefined;
|
|
8096
9326
|
/** Whether the form refuses to submit without it. */
|
|
8097
9327
|
required?: (HelixHeadlessTimeInput["required"]) | undefined;
|
|
9328
|
+
/** What a reader is told when the field is required and empty, where the
|
|
9329
|
+
page says.
|
|
9330
|
+
|
|
9331
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
9332
|
+
set and the browser's own on a text field, which the browser writes in
|
|
9333
|
+
the reader's language. Every other word a control speaks is a property,
|
|
9334
|
+
and this one was the English a form in another language still spoke in
|
|
9335
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
9336
|
+
the field and does not reach that one. */
|
|
9337
|
+
"value-missing-message"?: (HelixHeadlessTimeInput["valueMissingMessage"]) | undefined;
|
|
9338
|
+
/** What a reader is told when the field is required and empty, where the
|
|
9339
|
+
page says.
|
|
9340
|
+
|
|
9341
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
9342
|
+
set and the browser's own on a text field, which the browser writes in
|
|
9343
|
+
the reader's language. Every other word a control speaks is a property,
|
|
9344
|
+
and this one was the English a form in another language still spoke in
|
|
9345
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
9346
|
+
the field and does not reach that one. */
|
|
9347
|
+
valueMissingMessage?: (HelixHeadlessTimeInput["valueMissingMessage"]) | undefined;
|
|
8098
9348
|
/** Whether the control is non-interactive.
|
|
8099
9349
|
|
|
8100
9350
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -8158,6 +9408,18 @@ export type HelixHeadlessTimePickerHelixBeforeChangeElementEvent =
|
|
|
8158
9408
|
HelixHeadlessTimePickerElementEvent<HelixBeforeChangeEvent>;
|
|
8159
9409
|
|
|
8160
9410
|
export type HelixHeadlessTimePickerVueProps = {
|
|
9411
|
+
/** What a reader is told when the value holds something that is not a time.
|
|
9412
|
+
|
|
9413
|
+
**Every sentence a control raises in the browser's bubble is a property**,
|
|
9414
|
+
named for the validity flag it reports, so a form in another language
|
|
9415
|
+
speaks it. Absent is the control's own sentence, in English. */
|
|
9416
|
+
"bad-input-message"?: (HelixHeadlessTimePicker["badInputMessage"]) | undefined;
|
|
9417
|
+
/** What a reader is told when the value holds something that is not a time.
|
|
9418
|
+
|
|
9419
|
+
**Every sentence a control raises in the browser's bubble is a property**,
|
|
9420
|
+
named for the validity flag it reports, so a form in another language
|
|
9421
|
+
speaks it. Absent is the control's own sentence, in English. */
|
|
9422
|
+
badInputMessage?: (HelixHeadlessTimePicker["badInputMessage"]) | undefined;
|
|
8161
9423
|
/** Times that cannot be chosen, comma separated, as `HH:mm`.
|
|
8162
9424
|
|
|
8163
9425
|
The counterpart to Date Picker's `disable-dates`, and it exists for the same
|
|
@@ -8248,6 +9510,10 @@ Fifteen, which is four rows an hour and ninety-six in a day: enough that a
|
|
|
8248
9510
|
reader scrolls rather than hunts, and few enough that the list is a list.
|
|
8249
9511
|
Anything under five is a thousand rows and wants a field instead. */
|
|
8250
9512
|
step?: (HelixHeadlessTimePicker["step"]) | undefined;
|
|
9513
|
+
/** What a reader is told when a time is required and none is chosen. */
|
|
9514
|
+
"value-missing-message"?: (HelixHeadlessTimePicker["valueMissingMessage"]) | undefined;
|
|
9515
|
+
/** What a reader is told when a time is required and none is chosen. */
|
|
9516
|
+
valueMissingMessage?: (HelixHeadlessTimePicker["valueMissingMessage"]) | undefined;
|
|
8251
9517
|
/** Whether the times are one list or a column each.
|
|
8252
9518
|
|
|
8253
9519
|
`list` is the default and offers whole times, which is what a product with
|
|
@@ -8366,10 +9632,6 @@ export type HelixHeadlessToastItemVueProps = {
|
|
|
8366
9632
|
Read once when the item is first rendered. Changing it afterwards does not
|
|
8367
9633
|
restart a message the reader is already partway through. */
|
|
8368
9634
|
duration?: (HelixHeadlessToastItem["duration"]) | undefined;
|
|
8369
|
-
/** What kind of message it is, which picks the mark and its name.
|
|
8370
|
-
|
|
8371
|
-
A subset of the tone axis: a toast reports a status and never a brand role. */
|
|
8372
|
-
tone?: (HelixHeadlessToastItem["tone"]) | undefined;
|
|
8373
9635
|
/** Whether the message is still showing.
|
|
8374
9636
|
|
|
8375
9637
|
The item always applies: it goes when it is asked to, having announced
|
|
@@ -8382,6 +9644,10 @@ only one starting state that makes sense: a message that has been rendered
|
|
|
8382
9644
|
is showing. An attribute whose only legal value is the default is an
|
|
8383
9645
|
attribute nobody can use. */
|
|
8384
9646
|
open?: (HelixHeadlessToastItem["open"]) | undefined;
|
|
9647
|
+
/** What kind of message it is, which picks the mark and its name.
|
|
9648
|
+
|
|
9649
|
+
A subset of the tone axis: a toast reports a status and never a brand role. */
|
|
9650
|
+
tone?: (HelixHeadlessToastItem["tone"]) | undefined;
|
|
8385
9651
|
/** Whether it offers a control to take it away. */
|
|
8386
9652
|
dismissible?: (HelixHeadlessToastItem["dismissible"]) | undefined;
|
|
8387
9653
|
/** Accessible name for that control.
|
|
@@ -8511,6 +9777,26 @@ a reset should return to. */
|
|
|
8511
9777
|
label?: (HelixHeadlessToggleGroup["label"]) | undefined;
|
|
8512
9778
|
/** Whether the form refuses to submit without it. */
|
|
8513
9779
|
required?: (HelixHeadlessToggleGroup["required"]) | undefined;
|
|
9780
|
+
/** What a reader is told when the field is required and empty, where the
|
|
9781
|
+
page says.
|
|
9782
|
+
|
|
9783
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
9784
|
+
set and the browser's own on a text field, which the browser writes in
|
|
9785
|
+
the reader's language. Every other word a control speaks is a property,
|
|
9786
|
+
and this one was the English a form in another language still spoke in
|
|
9787
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
9788
|
+
the field and does not reach that one. */
|
|
9789
|
+
"value-missing-message"?: (HelixHeadlessToggleGroup["valueMissingMessage"]) | undefined;
|
|
9790
|
+
/** What a reader is told when the field is required and empty, where the
|
|
9791
|
+
page says.
|
|
9792
|
+
|
|
9793
|
+
**Absent, or empty, is the control's own sentence**, "Choose one to continue." on a
|
|
9794
|
+
set and the browser's own on a text field, which the browser writes in
|
|
9795
|
+
the reader's language. Every other word a control speaks is a property,
|
|
9796
|
+
and this one was the English a form in another language still spoke in
|
|
9797
|
+
the bubble it raises on submit: `feedback` replaces the message under
|
|
9798
|
+
the field and does not reach that one. */
|
|
9799
|
+
valueMissingMessage?: (HelixHeadlessToggleGroup["valueMissingMessage"]) | undefined;
|
|
8514
9800
|
/** Whether the control is non-interactive.
|
|
8515
9801
|
|
|
8516
9802
|
Reflected, because the styled tier selects on it, and mirrored to
|
|
@@ -8710,6 +9996,10 @@ Clamping is on the cross axis only, which is what makes this safe to point
|
|
|
8710
9996
|
at a box the bubble genuinely does not fit inside. See `within` on
|
|
8711
9997
|
`FloatingController` for what happens if it is applied to the rest. */
|
|
8712
9998
|
within?: (HelixHeadlessTooltip["within"]) | undefined;
|
|
9999
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
10000
|
+
"default-open"?: (HelixHeadlessTooltip["defaultOpen"]) | undefined;
|
|
10001
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
10002
|
+
defaultOpen?: (HelixHeadlessTooltip["defaultOpen"]) | undefined;
|
|
8713
10003
|
/** Whether the element is open.
|
|
8714
10004
|
|
|
8715
10005
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -8723,10 +10013,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
8723
10013
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
8724
10014
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
8725
10015
|
open?: (HelixHeadlessTooltip["open"]) | undefined;
|
|
8726
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
8727
|
-
"default-open"?: (HelixHeadlessTooltip["defaultOpen"]) | undefined;
|
|
8728
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
8729
|
-
defaultOpen?: (HelixHeadlessTooltip["defaultOpen"]) | undefined;
|
|
8730
10016
|
};
|
|
8731
10017
|
|
|
8732
10018
|
export type HelixHeadlessTooltipVueEvents = {
|
|
@@ -8761,6 +10047,14 @@ export type HelixHeadlessTourVueProps = {
|
|
|
8761
10047
|
"back-label"?: (HelixHeadlessTour["backLabel"]) | undefined;
|
|
8762
10048
|
/** Label for the control that goes back, handed to every stop. */
|
|
8763
10049
|
backLabel?: (HelixHeadlessTour["backLabel"]) | undefined;
|
|
10050
|
+
/** Stop to start on, where nothing declared one. */
|
|
10051
|
+
"default-index"?: (HelixHeadlessTour["defaultIndex"] | `${number}`) | undefined;
|
|
10052
|
+
/** Stop to start on, where nothing declared one. */
|
|
10053
|
+
defaultIndex?: (HelixHeadlessTour["defaultIndex"]) | undefined;
|
|
10054
|
+
/** Label for the control that goes on from the last stop. */
|
|
10055
|
+
"done-label"?: (HelixHeadlessTour["doneLabel"]) | undefined;
|
|
10056
|
+
/** Label for the control that goes on from the last stop. */
|
|
10057
|
+
doneLabel?: (HelixHeadlessTour["doneLabel"]) | undefined;
|
|
8764
10058
|
/** Which stop the reader is on.
|
|
8765
10059
|
|
|
8766
10060
|
**Moved through `requestChange`, never by assignment from `move`.** That
|
|
@@ -8772,14 +10066,6 @@ The shape is `Carousel`'s, which is the nearest thing in the library: a
|
|
|
8772
10066
|
`default-index` for markup that only seeds and a held state that is
|
|
8773
10067
|
`undefined` until somebody sets one. */
|
|
8774
10068
|
index?: (HelixHeadlessTour["index"]) | undefined;
|
|
8775
|
-
/** Stop to start on, where nothing declared one. */
|
|
8776
|
-
"default-index"?: (HelixHeadlessTour["defaultIndex"] | `${number}`) | undefined;
|
|
8777
|
-
/** Stop to start on, where nothing declared one. */
|
|
8778
|
-
defaultIndex?: (HelixHeadlessTour["defaultIndex"]) | undefined;
|
|
8779
|
-
/** Label for the control that goes on from the last stop. */
|
|
8780
|
-
"done-label"?: (HelixHeadlessTour["doneLabel"]) | undefined;
|
|
8781
|
-
/** Label for the control that goes on from the last stop. */
|
|
8782
|
-
doneLabel?: (HelixHeadlessTour["doneLabel"]) | undefined;
|
|
8783
10069
|
/** Accessible name for the run, such as "Getting started". */
|
|
8784
10070
|
label?: (HelixHeadlessTour["label"]) | undefined;
|
|
8785
10071
|
/** Label for the control that goes on. */
|
|
@@ -8901,6 +10187,10 @@ row is not part of the tree React hydrates. */
|
|
|
8901
10187
|
target?: (HelixHeadlessTreeItem["target"]) | undefined;
|
|
8902
10188
|
/** Identifies the item to the consumer, carried in `helix-select`. */
|
|
8903
10189
|
value?: (HelixHeadlessTreeItem["value"]) | undefined;
|
|
10190
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
10191
|
+
"default-open"?: (HelixHeadlessTreeItem["defaultOpen"]) | undefined;
|
|
10192
|
+
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
10193
|
+
defaultOpen?: (HelixHeadlessTreeItem["defaultOpen"]) | undefined;
|
|
8904
10194
|
/** Whether the element is open.
|
|
8905
10195
|
|
|
8906
10196
|
One property, not two, so `dialog.open` answers the question anyone
|
|
@@ -8914,10 +10204,6 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
8914
10204
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
8915
10205
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
8916
10206
|
open?: (HelixHeadlessTreeItem["open"]) | undefined;
|
|
8917
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
8918
|
-
"default-open"?: (HelixHeadlessTreeItem["defaultOpen"]) | undefined;
|
|
8919
|
-
/** Whether the markup declared it open. Ignored once `open` is written. */
|
|
8920
|
-
defaultOpen?: (HelixHeadlessTreeItem["defaultOpen"]) | undefined;
|
|
8921
10207
|
/** Depth from the root, counted by the tree so indentation needs no CSS nesting.
|
|
8922
10208
|
|
|
8923
10209
|
**Read rather than written, and no attribute at all.** The tree counts the
|
|
@@ -9191,6 +10477,22 @@ the browser's policy and not this element's, and `play()` already swallows
|
|
|
9191
10477
|
the refusal: what follows a refused autoplay is a paused player showing its
|
|
9192
10478
|
start control, which is the correct thing to be looking at. */
|
|
9193
10479
|
autoplay?: (HelixHeadlessVideo["autoplay"]) | undefined;
|
|
10480
|
+
/** What the captions control is called where the video has one track, which it switches on and off.
|
|
10481
|
+
|
|
10482
|
+
**Every word this player speaks is a property**, so a page in another
|
|
10483
|
+
language hears its own: the play, pause, loading and error labels were,
|
|
10484
|
+
and the rest of the bar read out in English beside them. */
|
|
10485
|
+
"captions-label"?: (HelixHeadlessVideo["captionsLabel"]) | undefined;
|
|
10486
|
+
/** What the captions control is called where the video has one track, which it switches on and off.
|
|
10487
|
+
|
|
10488
|
+
**Every word this player speaks is a property**, so a page in another
|
|
10489
|
+
language hears its own: the play, pause, loading and error labels were,
|
|
10490
|
+
and the rest of the bar read out in English beside them. */
|
|
10491
|
+
captionsLabel?: (HelixHeadlessVideo["captionsLabel"]) | undefined;
|
|
10492
|
+
/** The row that turns captions off, where the video has several tracks to choose from. */
|
|
10493
|
+
"captions-off-label"?: (HelixHeadlessVideo["captionsOffLabel"]) | undefined;
|
|
10494
|
+
/** The row that turns captions off, where the video has several tracks to choose from. */
|
|
10495
|
+
captionsOffLabel?: (HelixHeadlessVideo["captionsOffLabel"]) | undefined;
|
|
9194
10496
|
/** Whether the browser draws the controls instead of this element.
|
|
9195
10497
|
|
|
9196
10498
|
A fallback rather than a default. Two bars over one video is worse than
|
|
@@ -9228,6 +10530,10 @@ meaning something else. */
|
|
|
9228
10530
|
disableremoteplayback?: (HelixHeadlessVideo["disableRemotePlayback"]) | undefined;
|
|
9229
10531
|
/** Whether the browser may offer playback on a remote device. */
|
|
9230
10532
|
disableRemotePlayback?: (HelixHeadlessVideo["disableRemotePlayback"]) | undefined;
|
|
10533
|
+
/** What the control that saves the file is called. */
|
|
10534
|
+
"download-label"?: (HelixHeadlessVideo["downloadLabel"]) | undefined;
|
|
10535
|
+
/** What the control that saves the file is called. */
|
|
10536
|
+
downloadLabel?: (HelixHeadlessVideo["downloadLabel"]) | undefined;
|
|
9231
10537
|
/** And what they are told when it will not play at all. */
|
|
9232
10538
|
"error-label"?: (HelixHeadlessVideo["errorLabel"]) | undefined;
|
|
9233
10539
|
/** And what they are told when it will not play at all. */
|
|
@@ -9292,6 +10598,22 @@ ours to promise: the attribute is ignored cross-origin, so a file served
|
|
|
9292
10598
|
from somewhere else opens rather than saves, which is the browser's rule
|
|
9293
10599
|
and not something a player can work around. */
|
|
9294
10600
|
extraControls?: (HelixHeadlessVideo["extraControls"]) | undefined;
|
|
10601
|
+
/** What the control that skips ahead is called, with `{seconds}` filled in. */
|
|
10602
|
+
"forward-label"?: (HelixHeadlessVideo["forwardLabel"]) | undefined;
|
|
10603
|
+
/** What the control that skips ahead is called, with `{seconds}` filled in. */
|
|
10604
|
+
forwardLabel?: (HelixHeadlessVideo["forwardLabel"]) | undefined;
|
|
10605
|
+
/** What the control that fills the screen is called.
|
|
10606
|
+
|
|
10607
|
+
**One name, pressed or not**, since the button says which with
|
|
10608
|
+
`aria-pressed`: a name that changed as well read out "Exit fullscreen,
|
|
10609
|
+
pressed", which is two answers to one question. */
|
|
10610
|
+
"fullscreen-label"?: (HelixHeadlessVideo["fullscreenLabel"]) | undefined;
|
|
10611
|
+
/** What the control that fills the screen is called.
|
|
10612
|
+
|
|
10613
|
+
**One name, pressed or not**, since the button says which with
|
|
10614
|
+
`aria-pressed`: a name that changed as well read out "Exit fullscreen,
|
|
10615
|
+
pressed", which is two answers to one question. */
|
|
10616
|
+
fullscreenLabel?: (HelixHeadlessVideo["fullscreenLabel"]) | undefined;
|
|
9295
10617
|
/** How long the bar waits after the pointer stops before it goes, in ms.
|
|
9296
10618
|
|
|
9297
10619
|
A wait rather than leaving with the pointer, or a reader moving across the
|
|
@@ -9320,6 +10642,18 @@ regardless, because a reader who stopped it is deciding what to do next. */
|
|
|
9320
10642
|
loadingLabel?: (HelixHeadlessVideo["loadingLabel"]) | undefined;
|
|
9321
10643
|
/** Whether it starts again at the end. */
|
|
9322
10644
|
loop?: (HelixHeadlessVideo["loop"]) | undefined;
|
|
10645
|
+
/** What the button that opens `overflow-controls` is called. */
|
|
10646
|
+
"more-label"?: (HelixHeadlessVideo["moreLabel"]) | undefined;
|
|
10647
|
+
/** What the button that opens `overflow-controls` is called. */
|
|
10648
|
+
moreLabel?: (HelixHeadlessVideo["moreLabel"]) | undefined;
|
|
10649
|
+
/** What the control that silences the video is called, pressed while it is silent. */
|
|
10650
|
+
"mute-label"?: (HelixHeadlessVideo["muteLabel"]) | undefined;
|
|
10651
|
+
/** What the control that silences the video is called, pressed while it is silent. */
|
|
10652
|
+
muteLabel?: (HelixHeadlessVideo["muteLabel"]) | undefined;
|
|
10653
|
+
/** What the control that asks for the next video is called. */
|
|
10654
|
+
"next-label"?: (HelixHeadlessVideo["nextLabel"]) | undefined;
|
|
10655
|
+
/** What the control that asks for the next video is called. */
|
|
10656
|
+
nextLabel?: (HelixHeadlessVideo["nextLabel"]) | undefined;
|
|
9323
10657
|
/** Controls that go behind one button instead of onto the bar, named the same
|
|
9324
10658
|
way.
|
|
9325
10659
|
|
|
@@ -9356,6 +10690,14 @@ bar: two of the same control is worse than either placement. */
|
|
|
9356
10690
|
"pause-label"?: (HelixHeadlessVideo["pauseLabel"]) | undefined;
|
|
9357
10691
|
/** And while it would stop it. */
|
|
9358
10692
|
pauseLabel?: (HelixHeadlessVideo["pauseLabel"]) | undefined;
|
|
10693
|
+
/** How the volume is read out, with `{percent}` filled in. */
|
|
10694
|
+
"percent-label"?: (HelixHeadlessVideo["percentLabel"]) | undefined;
|
|
10695
|
+
/** How the volume is read out, with `{percent}` filled in. */
|
|
10696
|
+
percentLabel?: (HelixHeadlessVideo["percentLabel"]) | undefined;
|
|
10697
|
+
/** What the control that floats the video over other windows is called. */
|
|
10698
|
+
"pip-label"?: (HelixHeadlessVideo["pipLabel"]) | undefined;
|
|
10699
|
+
/** What the control that floats the video over other windows is called. */
|
|
10700
|
+
pipLabel?: (HelixHeadlessVideo["pipLabel"]) | undefined;
|
|
9359
10701
|
/** What the play control is called while it would start the video. */
|
|
9360
10702
|
"play-label"?: (HelixHeadlessVideo["playLabel"]) | undefined;
|
|
9361
10703
|
/** What the play control is called while it would start the video. */
|
|
@@ -9368,6 +10710,26 @@ bar: two of the same control is worse than either placement. */
|
|
|
9368
10710
|
poster?: (HelixHeadlessVideo["poster"]) | undefined;
|
|
9369
10711
|
/** How much to fetch before anything is asked for. */
|
|
9370
10712
|
preload?: (HelixHeadlessVideo["preload"]) | undefined;
|
|
10713
|
+
/** What the control that asks for the previous video is called. */
|
|
10714
|
+
"previous-label"?: (HelixHeadlessVideo["previousLabel"]) | undefined;
|
|
10715
|
+
/** What the control that asks for the previous video is called. */
|
|
10716
|
+
previousLabel?: (HelixHeadlessVideo["previousLabel"]) | undefined;
|
|
10717
|
+
/** What the control that casts the video to another device is called. */
|
|
10718
|
+
"remote-label"?: (HelixHeadlessVideo["remoteLabel"]) | undefined;
|
|
10719
|
+
/** What the control that casts the video to another device is called. */
|
|
10720
|
+
remoteLabel?: (HelixHeadlessVideo["remoteLabel"]) | undefined;
|
|
10721
|
+
/** What the control that skips back is called, with `{seconds}` filled in. */
|
|
10722
|
+
"rewind-label"?: (HelixHeadlessVideo["rewindLabel"]) | undefined;
|
|
10723
|
+
/** What the control that skips back is called, with `{seconds}` filled in. */
|
|
10724
|
+
rewindLabel?: (HelixHeadlessVideo["rewindLabel"]) | undefined;
|
|
10725
|
+
/** What the scrubber is called. */
|
|
10726
|
+
"seek-label"?: (HelixHeadlessVideo["seekLabel"]) | undefined;
|
|
10727
|
+
/** What the scrubber is called. */
|
|
10728
|
+
seekLabel?: (HelixHeadlessVideo["seekLabel"]) | undefined;
|
|
10729
|
+
/** What the control that changes the speed is called. */
|
|
10730
|
+
"speed-label"?: (HelixHeadlessVideo["speedLabel"]) | undefined;
|
|
10731
|
+
/** What the control that changes the speed is called. */
|
|
10732
|
+
speedLabel?: (HelixHeadlessVideo["speedLabel"]) | undefined;
|
|
9371
10733
|
/** The speeds offered, slowest first, as multipliers of normal. */
|
|
9372
10734
|
speeds?: (HelixHeadlessVideo["speeds"]) | undefined;
|
|
9373
10735
|
/** Where the video is, for the common case of one file. */
|
|
@@ -9404,6 +10766,20 @@ A value rather than a boolean, so the resting state is the attribute's
|
|
|
9404
10766
|
absence: a boolean defaulting to on would have to be spelled as its own
|
|
9405
10767
|
negation. */
|
|
9406
10768
|
startControl?: (HelixHeadlessVideo["startControl"]) | undefined;
|
|
10769
|
+
/** What the menu of tracks is called, where the video has several. */
|
|
10770
|
+
"subtitles-label"?: (HelixHeadlessVideo["subtitlesLabel"]) | undefined;
|
|
10771
|
+
/** What the menu of tracks is called, where the video has several. */
|
|
10772
|
+
subtitlesLabel?: (HelixHeadlessVideo["subtitlesLabel"]) | undefined;
|
|
10773
|
+
/** How the scrubber reads out where the video is, with `{position}` and
|
|
10774
|
+
`{duration}` filled in. */
|
|
10775
|
+
"time-label"?: (HelixHeadlessVideo["timeLabel"]) | undefined;
|
|
10776
|
+
/** How the scrubber reads out where the video is, with `{position}` and
|
|
10777
|
+
`{duration}` filled in. */
|
|
10778
|
+
timeLabel?: (HelixHeadlessVideo["timeLabel"]) | undefined;
|
|
10779
|
+
/** What the volume slider is called. */
|
|
10780
|
+
"volume-label"?: (HelixHeadlessVideo["volumeLabel"]) | undefined;
|
|
10781
|
+
/** What the volume slider is called. */
|
|
10782
|
+
volumeLabel?: (HelixHeadlessVideo["volumeLabel"]) | undefined;
|
|
9407
10783
|
/** Where playback has reached, in seconds.
|
|
9408
10784
|
|
|
9409
10785
|
Writing seeks, through the same clamp `seek` uses, because a `currentTime`
|
|
@@ -9593,7 +10969,7 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
9593
10969
|
HelixHeadlessAccordionVueProps,
|
|
9594
10970
|
HelixHeadlessAccordionVueEvents
|
|
9595
10971
|
>;
|
|
9596
|
-
/** Chrome rather than content. An announcement sits above the header and speaks for the whole page: a trial ending, a service degraded, a change of terms. A passage that interrupts a document to set itself apart is a 'Callout', which is read where it sits and cannot be dismissed. Neither is a variant of the other. **Always a polite live region.** 'role="alert"' is assertive and interrupts whatever is being read, which is right for something that appears mid-session and wrong for something that was in the served HTML: an assertive announcement would cut across a screen-reader user on every page load, before they had read anything. Politeness costs a moment and is never wrong; the tone does not change that, because an error that was always there is still not an interruption. Dismissing is a request. The announcement does not remove itself, because the consumer owns the markup and taking the node out from under them would put their state and the document out of step. 'preventDefault()' on the 'helix-dismiss' is a refusal. */
|
|
10972
|
+
/** Chrome rather than content. An announcement sits above the header and speaks for the whole page: a trial ending, a service degraded, a change of terms. A passage that interrupts a document to set itself apart is a 'Callout', which is read where it sits and cannot be dismissed. Neither is a variant of the other. **Always a polite live region.** 'role="alert"' is assertive and interrupts whatever is being read, which is right for something that appears mid-session and wrong for something that was in the served HTML: an assertive announcement would cut across a screen-reader user on every page load, before they had read anything. Politeness costs a moment and is never wrong; the tone does not change that, because an error that was always there is still not an interruption. **The region is its own, and there before its words.** The host was the region, and a banner raised mid-session arrives with its message already in it, which a screen reader reads inconsistently at best. So the message is said from a region filled a frame after the banner appears, and one that came with the page is filled at once and says nothing, being no news. Dismissing is a request. The announcement does not remove itself, because the consumer owns the markup and taking the node out from under them would put their state and the document out of step. 'preventDefault()' on the 'helix-dismiss' is a refusal. */
|
|
9597
10973
|
"helix-headless-announcement": DefineCustomElement<
|
|
9598
10974
|
HelixHeadlessAnnouncement,
|
|
9599
10975
|
HelixHeadlessAnnouncementVueProps,
|
|
@@ -9671,6 +11047,24 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
9671
11047
|
HelixHeadlessCalloutVueProps,
|
|
9672
11048
|
HelixHeadlessCalloutVueEvents
|
|
9673
11049
|
>;
|
|
11050
|
+
/** **A declaration rather than a drawing**, which is the shape 'Table.Column' has: this element renders nothing at all and the board draws the line, because a connector is geometry between two other elements and neither end of it belongs here. What this carries is which cards, which sides, and what sits at the ends. Written as markup for the reason its cards are: an array of edges handed to a custom element does not survive React's hydration, and a connector a consumer can write is one they can also put a condition around. */
|
|
11051
|
+
"helix-headless-canvas-edge": DefineCustomElement<
|
|
11052
|
+
HelixHeadlessCanvasEdge,
|
|
11053
|
+
HelixHeadlessCanvasEdgeVueProps,
|
|
11054
|
+
HelixHeadlessCanvasEdgeVueEvents
|
|
11055
|
+
>;
|
|
11056
|
+
/** **Markup rather than an entry in an array**, which is the rule 'VideoPlaylist' writes out: an array handed to a custom element is missing from the first paint of every server-rendered React page, because React skips the properties it would have to apply imperatively while hydrating. A card written as an element is in the served HTML whichever renderer wrote it, and what is inside it is the consumer's own DOM rather than a string this component parses. **Where it sits is data**, which is what makes a canvas a canvas: somebody placed this card and the placement carries meaning, so 'x' and 'y' are given rather than computed. The board reads them and places the card; a page with no JavaScript has the cards and their text and not the arrangement, which is the honest half of what a board can promise before it hydrates. **Named by 'name', which only has to be unique on its board**, the way a form control's is in its form. An 'id' has to be unique on the whole page, and two boards written from one template, or one board shown twice, would each have a card called 'write' with no way to say which one a connection meant. 'id' is left for the page, which can still use it. **What it holds is the consumer's**, which is why there is no card type any more: a card of text is text, a link is a link they put inside it, a file is whatever they show for one. The one kind the board treats differently is a group, a box drawn behind the cards inside it, and 'group' says so. JSON Canvas's four types are mapped by 'fromJsonCanvas' on the way in. **The card is the way around the board, for a reader who cannot see it.** The board keeps one tab stop among its cards, arrow keys walk them in reading order, and the one a reader lands on is brought into view. What it connects to is read out with it, so the arrows between cards are heard as well as seen. That replaced a list of every card under the board, which said the same thing twice to a sighted reader and took a row from the board to do it. */
|
|
11057
|
+
"helix-headless-canvas-node": DefineCustomElement<
|
|
11058
|
+
HelixHeadlessCanvasNode,
|
|
11059
|
+
HelixHeadlessCanvasNodeVueProps,
|
|
11060
|
+
HelixHeadlessCanvasNodeVueEvents
|
|
11061
|
+
>;
|
|
11062
|
+
/** **The first of these surfaces Helix draws itself**, and the reason is where the positions come from. On a canvas **position is data**: somebody placed every card and the placement carries the meaning, so there is no layout to compute and drawing is arithmetic over rectangles. A map is somebody else's tiles and a graph view's positions are computed, which is why 'Map' takes a slotted map and this takes a document. **The format is open.** [JSON Canvas](https://jsoncanvas.org) gives each node an 'x', 'y', 'width', 'height' and a type, and each edge the two nodes it joins and the sides it leaves and arrives on. A card belongs to a group when it sits inside the group's bounds, which the format leaves to the geometry. **Accessibility is the design work, not the drawing.** The cards are text in the DOM, so they are readable already; what space does not supply is an order and the connections. So the family chooses an order, walks the cards in it, and says every card's links as text. 'order' takes 'spatial', which bands the cards into rows, and 'edges', which follows the arrows from the cards nothing points to. **Cards move by default, the way a form control takes input by default.** The board writes the new 'x' and 'y' onto the card itself, as an input writes its own value, and says so twice: 'helix-before-move' for every step, which a consumer holding the positions in their own state refuses and applies themselves, and 'helix-move' once the move is finished. A resize is the same pair with a size in it. 'readonly' keeps every card where it is, for a board that is published rather than worked on, and 'readonly' on one card or connection keeps that one. **The cards are the way around it.** One of them holds the board's tab stop, arrow keys walk them in reading order, and the one a reader lands on is brought into view with what it connects to read out beside it. Shift with an arrow moves it, which is the keyboard's way to do what a drag does. The connections leaving a card are stops of their own, straight after it, and Enter on one goes to the card it arrives at. **Every drag can be done with clicks instead**, which WCAG 2.5.7 asks of a pointer that cannot hold a button down. A click on a selected card's move handle, a corner, a card's connection point or the end of a selected connection picks the thing up; it follows the pointer with no button held, and the next click puts it down wherever a drag let go there would have. On touch, the next tap is where it lands. Escape, or a press off the board, puts it back. **Connecting and removing are requests, and the page acts on them.** Drawing from a card's handle to another card, or pressing C on one and Enter on another, sends 'helix-connect'; Delete on a card or a connection sends 'helix-remove', naming every connection a removed card would strand. A move can be applied by the board because the card is already there. A connection is a new element, and one a board added to markup React renders would be thrown away on the next render, so the board asks and the page writes it. **Markup rather than a 'src' or a document property.** Nothing in this library fetches, and an array handed to an element is missing from the first paint of every server-rendered React page. The cards and connections are 'helix-canvas-node' and 'helix-canvas-edge' elements, in the served markup whichever renderer wrote them; 'fromJsonCanvas' turns a JSON Canvas document into their props and 'toJsonCanvas()' writes a board back out. */
|
|
11063
|
+
"helix-headless-canvas": DefineCustomElement<
|
|
11064
|
+
HelixHeadlessCanvas,
|
|
11065
|
+
HelixHeadlessCanvasVueProps,
|
|
11066
|
+
HelixHeadlessCanvasVueEvents
|
|
11067
|
+
>;
|
|
9674
11068
|
/** Regions are slots rather than separate elements, because a header, body, and footer carry no state, no behavior, and no API of their own. Slotting them costs one custom element instead of five and lets the consumer bring their own markup, so a title can be a real '<h2>' rather than an emulated one. The host is the surface. A wrapper '<div part="container">' would be a second box doing nothing the host cannot: the element itself takes the border, the radius, and the grid, and a consumer styles 'Card' rather than reaching through '::part'. One node instead of two, on every card on the page. Name the card with 'aria-label' or 'aria-labelledby'. That is the only naming that survives server rendering: reading a title out of the light DOM needs a DOM, and the server has none. */
|
|
9675
11069
|
"helix-headless-card": DefineCustomElement<
|
|
9676
11070
|
HelixHeadlessCard,
|
|
@@ -9821,7 +11215,7 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
9821
11215
|
HelixHeadlessDrilldownVueProps,
|
|
9822
11216
|
HelixHeadlessDrilldownVueEvents
|
|
9823
11217
|
>;
|
|
9824
|
-
/** An empty region with no explanation is indistinguishable from one that failed to load, so this exists to tell the difference: what would be here, and the one action that would put something here.
|
|
11218
|
+
/** An empty region with no explanation is indistinguishable from one that failed to load, so this exists to tell the difference: what would be here, and the one action that would put something here. Announced, because an empty view usually arrives in place of content that was being fetched: saying so is the only way a screen-reader user learns the search returned nothing, rather than being left waiting. **From a region of its own that is there before its words are**, filled a frame after the view appears. The host was the region, and a page inserts an empty state with its message already in it, which is a region arriving with its words: read inconsistently at best. Every region is a bare slot. The reference ships an 'empty-state-heading' and an 'empty-state-actions' whose only job is to assign themselves a slot on connect, which is a component for something the consumer can write. */
|
|
9825
11219
|
"helix-headless-empty": DefineCustomElement<
|
|
9826
11220
|
HelixHeadlessEmpty,
|
|
9827
11221
|
HelixHeadlessEmptyVueProps,
|
|
@@ -9941,7 +11335,7 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
9941
11335
|
HelixHeadlessListVueProps,
|
|
9942
11336
|
HelixHeadlessListVueEvents
|
|
9943
11337
|
>;
|
|
9944
|
-
/** **The listbox is the control and the options are its vocabulary.** A Select is this with a trigger in front of it, a Combobox is this with a text input, and a command palette is this again: they differ in what opens the list and what filters it, not in what the list is. **'value' is comma separated when 'multiple' is set**, the way 'Checkbox.Group''s is
|
|
11338
|
+
/** **The listbox is the control and the options are its vocabulary.** A Select is this with a trigger in front of it, a Combobox is this with a text input, and a command palette is this again: they differ in what opens the list and what filters it, not in what the list is. **'value' is comma separated when 'multiple' is set**, the way 'Checkbox.Group''s is, and a string because that is what 'MixinControllerValue' holds. The form is sent one entry per answer, as a native '<select multiple>' sends it, so a server never has to know to split on a comma. **Chosen and active are two different things.** Chosen is the answer; active is where the keyboard is. Only the second moves with the arrows, and 'aria-activedescendant' names it while focus stays on the list. */
|
|
9945
11339
|
"helix-headless-listbox": DefineCustomElement<
|
|
9946
11340
|
HelixHeadlessListbox,
|
|
9947
11341
|
HelixHeadlessListboxVueProps,
|