@fusion.dev/helix-headless 0.185.0 → 0.186.1
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 +2663 -31
- package/dist/accordion/item/accordion-item.js +1 -1
- package/dist/button-group/root/button-group-root.js +1 -1
- package/dist/canvas/root/canvas-root.js +1 -1
- package/dist/dialog/root/dialog-root.js +1 -1
- package/dist/drawer/root/drawer-root.js +1 -1
- package/dist/drilldown/item/drilldown-item.js +1 -1
- package/dist/element-events.generated.js +7 -0
- package/dist/graph/root/graph-root.d.ts +6 -4
- package/dist/graph/root/graph-root.js +3 -3
- package/dist/heatmap/root/heatmap-root.d.ts +15 -15
- package/dist/icon/all/index.js +0 -3
- package/dist/icon/root/icon-root.d.ts +11 -18
- package/dist/icon/root/icon-root.js +4 -16
- package/dist/icon/set.js +2 -16
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/isometric-heatmap/index.d.ts +1 -0
- package/dist/isometric-heatmap/index.js +1 -0
- package/dist/isometric-heatmap/projection.d.ts +70 -0
- package/dist/isometric-heatmap/projection.js +49 -0
- package/dist/isometric-heatmap/root/isometric-heatmap-root.d.ts +118 -0
- package/dist/isometric-heatmap/root/isometric-heatmap-root.js +127 -0
- package/dist/lightbox/root/lightbox-root.js +1 -1
- package/dist/list/root/list-root.js +1 -1
- package/dist/map/root/map-root.js +1 -1
- package/dist/menu/item/menu-item.js +1 -1
- package/dist/outline/root/outline-root.js +2 -2
- package/dist/popover/root/popover-root.js +1 -1
- package/dist/table/root/table-root.js +1 -1
- package/dist/tabs/root/tabs-root.js +4 -5
- package/dist/tabs/tab/tab.js +2 -3
- package/dist/time-picker/root/time-picker-root.js +1 -1
- package/dist/toggle/root/toggle-root.js +1 -1
- package/dist/tour/root/tour-root.js +1 -1
- package/dist/tree/root/tree-root.js +1 -1
- package/dist/video/root/video-root.js +1 -1
- package/lint.json +1 -1
- package/package.json +6 -6
- package/types/jsx.d.ts +1274 -40
- package/types/svelte.d.ts +1 -0
- package/types/vue.d.ts +264 -6
- package/types/words.d.ts +69 -0
package/types/svelte.d.ts
CHANGED
|
@@ -86,6 +86,7 @@ declare module 'svelte/elements' {
|
|
|
86
86
|
'helix-headless-icon': Helix<'helix-headless-icon'>
|
|
87
87
|
'helix-headless-image': Helix<'helix-headless-image'>
|
|
88
88
|
'helix-headless-input': Helix<'helix-headless-input'>
|
|
89
|
+
'helix-headless-isometric-heatmap': Helix<'helix-headless-isometric-heatmap'>
|
|
89
90
|
'helix-headless-kbd': Helix<'helix-headless-kbd'>
|
|
90
91
|
'helix-headless-legend': Helix<'helix-headless-legend'>
|
|
91
92
|
'helix-headless-lightbox-item': Helix<'helix-headless-lightbox-item'>
|
package/types/vue.d.ts
CHANGED
|
@@ -74,6 +74,7 @@ import type {
|
|
|
74
74
|
HelixHeadlessIcon,
|
|
75
75
|
HelixHeadlessImage,
|
|
76
76
|
HelixHeadlessInput,
|
|
77
|
+
HelixHeadlessIsometricHeatmap,
|
|
77
78
|
HelixHeadlessKbd,
|
|
78
79
|
HelixHeadlessLegend,
|
|
79
80
|
HelixHeadlessLightboxItem,
|
|
@@ -8481,10 +8482,12 @@ disagreeing with its own name for every reader who meant the left. */
|
|
|
8481
8482
|
/** The name of the icon in the Helix set.
|
|
8482
8483
|
|
|
8483
8484
|
**A lookup, and the reason both this and `icon` exist.** A name is a string,
|
|
8484
|
-
so it is what markup can carry, and resolving one means an index
|
|
8485
|
-
bundler can shake
|
|
8486
|
-
|
|
8487
|
-
|
|
8485
|
+
so it is what markup can carry, and resolving one means an index of the
|
|
8486
|
+
whole set that no bundler can shake: 15 kB for a consumer who renders one
|
|
8487
|
+
mark. An attribute is the only thing an HTML author can write, and that is
|
|
8488
|
+
worth the index; a consumer who would rather not pay it imports the
|
|
8489
|
+
element from `icon/root` and registers the glyphs it names, or hands over
|
|
8490
|
+
the value instead.
|
|
8488
8491
|
|
|
8489
8492
|
A name written `prefix:name` asks the library registered under that
|
|
8490
8493
|
prefix. */
|
|
@@ -8881,6 +8884,253 @@ export type HelixHeadlessInputVueEvents = {
|
|
|
8881
8884
|
input: HelixHeadlessInputElementEvent;
|
|
8882
8885
|
};
|
|
8883
8886
|
|
|
8887
|
+
/** `HelixHeadlessIsometricHeatmap` component event */
|
|
8888
|
+
export type HelixHeadlessIsometricHeatmapElementEvent<E = Event> = TypedEvent<
|
|
8889
|
+
HelixHeadlessIsometricHeatmap,
|
|
8890
|
+
E
|
|
8891
|
+
>;
|
|
8892
|
+
/** `helix-before-change` event type */
|
|
8893
|
+
export type HelixHeadlessIsometricHeatmapHelixBeforeChangeElementEvent =
|
|
8894
|
+
HelixHeadlessIsometricHeatmapElementEvent<HelixBeforeChangeEvent>;
|
|
8895
|
+
/** `helix-reading-change` event type */
|
|
8896
|
+
export type HelixHeadlessIsometricHeatmapHelixReadingChangeElementEvent =
|
|
8897
|
+
HelixHeadlessIsometricHeatmapElementEvent<HelixReadingChangeEvent>;
|
|
8898
|
+
/** `helix-reading-press` event type */
|
|
8899
|
+
export type HelixHeadlessIsometricHeatmapHelixReadingPressElementEvent =
|
|
8900
|
+
HelixHeadlessIsometricHeatmapElementEvent<HelixReadingPressEvent>;
|
|
8901
|
+
/** `helix-resize` event type */
|
|
8902
|
+
export type HelixHeadlessIsometricHeatmapHelixResizeElementEvent =
|
|
8903
|
+
HelixHeadlessIsometricHeatmapElementEvent<HelixResizeEvent>;
|
|
8904
|
+
|
|
8905
|
+
export type HelixHeadlessIsometricHeatmapVueProps = {
|
|
8906
|
+
/** Draws every prism at no height, so the tones lie on a plane. */
|
|
8907
|
+
flat?: (HelixHeadlessIsometricHeatmap["flat"]) | undefined;
|
|
8908
|
+
/** How tall the highest reading stands, in cells. Every other reading stands
|
|
8909
|
+
at its share of it. */
|
|
8910
|
+
relief?: (HelixHeadlessIsometricHeatmap["relief"]) | undefined;
|
|
8911
|
+
/** The words shown in place of the drawing when the table has no readings,
|
|
8912
|
+
and the fallback of the `empty` slot. */
|
|
8913
|
+
"empty-text"?: (HelixHeadlessIsometricHeatmap["emptyText"]) | undefined;
|
|
8914
|
+
/** The words shown in place of the drawing when the table has no readings,
|
|
8915
|
+
and the fallback of the `empty` slot. */
|
|
8916
|
+
emptyText?: (HelixHeadlessIsometricHeatmap["emptyText"]) | undefined;
|
|
8917
|
+
/** Whether the readings are still on their way. The chart shows
|
|
8918
|
+
`loading-text` in place of an empty drawing until it has readings.
|
|
8919
|
+
|
|
8920
|
+
Reflected, so a stylesheet can treat the chart while it waits. A chart
|
|
8921
|
+
that already has readings keeps drawing them, so a refresh does not
|
|
8922
|
+
blank it. */
|
|
8923
|
+
loading?: (HelixHeadlessIsometricHeatmap["loading"]) | undefined;
|
|
8924
|
+
/** The words shown in place of the drawing while `loading` is set and
|
|
8925
|
+
there are no readings yet, and the fallback of the `loading` slot. */
|
|
8926
|
+
"loading-text"?: (HelixHeadlessIsometricHeatmap["loadingText"]) | undefined;
|
|
8927
|
+
/** The words shown in place of the drawing while `loading` is set and
|
|
8928
|
+
there are no readings yet, and the fallback of the `loading` slot. */
|
|
8929
|
+
loadingText?: (HelixHeadlessIsometricHeatmap["loadingText"]) | undefined;
|
|
8930
|
+
/** The id of the table to read.
|
|
8931
|
+
|
|
8932
|
+
Names a table in the same tree, so a chart inside another component's
|
|
8933
|
+
shadow root reads a table in that root rather than one in the document. A
|
|
8934
|
+
`<table>` or anything built from grid roles, including `helix-table`.
|
|
8935
|
+
|
|
8936
|
+
**In React this arrives as a property and not as an attribute**, the way
|
|
8937
|
+
`Tooltip.for` does, so it does not reflect and nothing styles on it. */
|
|
8938
|
+
for?: (HelixHeadlessIsometricHeatmap["for"]) | undefined;
|
|
8939
|
+
/** The chart's name, which starts the chart's text summary.
|
|
8940
|
+
|
|
8941
|
+
Absent falls back to the table's own caption, which is usually the right
|
|
8942
|
+
words and is already written. */
|
|
8943
|
+
label?: (HelixHeadlessIsometricHeatmap["label"]) | undefined;
|
|
8944
|
+
/** The locale the chart's own numbers are written in: its axis, its
|
|
8945
|
+
percentages and its totals, such as `de` for `1.240` and `32 %`.
|
|
8946
|
+
|
|
8947
|
+
Absent reads the nearest `lang`, then the runtime's own. The table's
|
|
8948
|
+
cells are shown as the table writes them, whatever this says. */
|
|
8949
|
+
locale?: (HelixHeadlessIsometricHeatmap["locale"]) | undefined;
|
|
8950
|
+
/** Where a reading the keys moved to stands among the readings, said after
|
|
8951
|
+
it. `{position}` and `{count}` are replaced with the numbers, written in
|
|
8952
|
+
`locale`.
|
|
8953
|
+
|
|
8954
|
+
Set it to the words of the page's language, such as `{position} von
|
|
8955
|
+
{count}`, or to nothing to say no position. A slice or a series a
|
|
8956
|
+
legend hid is not counted. */
|
|
8957
|
+
"position-label"?: (HelixHeadlessIsometricHeatmap["positionLabel"]) | undefined;
|
|
8958
|
+
/** Where a reading the keys moved to stands among the readings, said after
|
|
8959
|
+
it. `{position}` and `{count}` are replaced with the numbers, written in
|
|
8960
|
+
`locale`.
|
|
8961
|
+
|
|
8962
|
+
Set it to the words of the page's language, such as `{position} von
|
|
8963
|
+
{count}`, or to nothing to say no position. A slice or a series a
|
|
8964
|
+
legend hid is not counted. */
|
|
8965
|
+
positionLabel?: (HelixHeadlessIsometricHeatmap["positionLabel"]) | undefined;
|
|
8966
|
+
/** The name the `overview` gives the busiest reading, `{busiestLabel}` in
|
|
8967
|
+
`overview-label`. */
|
|
8968
|
+
"busiest-label"?: (HelixHeadlessIsometricHeatmap["busiestLabel"]) | undefined;
|
|
8969
|
+
/** The name the `overview` gives the busiest reading, `{busiestLabel}` in
|
|
8970
|
+
`overview-label`. */
|
|
8971
|
+
busiestLabel?: (HelixHeadlessIsometricHeatmap["busiestLabel"]) | undefined;
|
|
8972
|
+
/** Space between cells, in CSS pixels. It is a number for the same reason
|
|
8973
|
+
`min-cell` is. */
|
|
8974
|
+
gap?: (HelixHeadlessIsometricHeatmap["gap"]) | undefined;
|
|
8975
|
+
/** The smallest a cell may get before the strip draws fewer of them, in CSS pixels.
|
|
8976
|
+
|
|
8977
|
+
**Set this only to overrule what the strip actually draws.** The arithmetic
|
|
8978
|
+
needs a width in pixels and the width is a length the stylesheet resolves,
|
|
8979
|
+
so a number written here that disagrees with the sheet is a promise the
|
|
8980
|
+
consumer has to keep by hand, and the one number a summary is told to trust
|
|
8981
|
+
is the one it gets wrong.
|
|
8982
|
+
|
|
8983
|
+
The strip measures itself, so sizing the cells in a sheet is enough on its
|
|
8984
|
+
own and these two are the estimate used until the first measurement lands.
|
|
8985
|
+
Writing the attribute pins the value and stops the measurement being
|
|
8986
|
+
consulted, which is what a container query or a transition on the cell size
|
|
8987
|
+
wants, where what is drawn this frame is not what the arithmetic should
|
|
8988
|
+
plan around.
|
|
8989
|
+
|
|
8990
|
+
Zero turns the dropping off altogether, which is right for a strip in a
|
|
8991
|
+
container that cannot get narrow. */
|
|
8992
|
+
"min-cell"?: (HelixHeadlessIsometricHeatmap["minCell"] | `${number}`) | undefined;
|
|
8993
|
+
/** The smallest a cell may get before the strip draws fewer of them, in CSS pixels.
|
|
8994
|
+
|
|
8995
|
+
**Set this only to overrule what the strip actually draws.** The arithmetic
|
|
8996
|
+
needs a width in pixels and the width is a length the stylesheet resolves,
|
|
8997
|
+
so a number written here that disagrees with the sheet is a promise the
|
|
8998
|
+
consumer has to keep by hand, and the one number a summary is told to trust
|
|
8999
|
+
is the one it gets wrong.
|
|
9000
|
+
|
|
9001
|
+
The strip measures itself, so sizing the cells in a sheet is enough on its
|
|
9002
|
+
own and these two are the estimate used until the first measurement lands.
|
|
9003
|
+
Writing the attribute pins the value and stops the measurement being
|
|
9004
|
+
consulted, which is what a container query or a transition on the cell size
|
|
9005
|
+
wants, where what is drawn this frame is not what the arithmetic should
|
|
9006
|
+
plan around.
|
|
9007
|
+
|
|
9008
|
+
Zero turns the dropping off altogether, which is right for a strip in a
|
|
9009
|
+
container that cannot get narrow. */
|
|
9010
|
+
minCell?: (HelixHeadlessIsometricHeatmap["minCell"]) | undefined;
|
|
9011
|
+
/** The `overview`'s sentence. `{busiestLabel}` and `{totalLabel}` are
|
|
9012
|
+
`busiest-label` and `total-label`, `{busiest}` the busiest reading's name
|
|
9013
|
+
and its reading as the table writes it, and `{total}` the total of the
|
|
9014
|
+
readings drawn, written in the locale. */
|
|
9015
|
+
"overview-label"?: (HelixHeadlessIsometricHeatmap["overviewLabel"]) | undefined;
|
|
9016
|
+
/** The `overview`'s sentence. `{busiestLabel}` and `{totalLabel}` are
|
|
9017
|
+
`busiest-label` and `total-label`, `{busiest}` the busiest reading's name
|
|
9018
|
+
and its reading as the table writes it, and `{total}` the total of the
|
|
9019
|
+
readings drawn, written in the locale. */
|
|
9020
|
+
overviewLabel?: (HelixHeadlessIsometricHeatmap["overviewLabel"]) | undefined;
|
|
9021
|
+
/** How many rows the strip has.
|
|
9022
|
+
|
|
9023
|
+
`1` is a status strip and `7` is a calendar week, which are the two readings
|
|
9024
|
+
this covers. Cells fill down the column and then across, which is what a
|
|
9025
|
+
calendar heatmap does: a week is a column, so the strip reads along the
|
|
9026
|
+
line in weeks, from the right on a right-to-left page, and top to bottom in
|
|
9027
|
+
days. */
|
|
9028
|
+
rows?: (HelixHeadlessIsometricHeatmap["rows"]) | undefined;
|
|
9029
|
+
/** What the readout added for a selected cell, under `selection-mode`. */
|
|
9030
|
+
"selected-label"?: (HelixHeadlessIsometricHeatmap["selectedLabel"]) | undefined;
|
|
9031
|
+
/** What the readout added for a selected cell, under `selection-mode`. */
|
|
9032
|
+
selectedLabel?: (HelixHeadlessIsometricHeatmap["selectedLabel"]) | undefined;
|
|
9033
|
+
/** What the `selection` part says after the selection changes. `{count}` is
|
|
9034
|
+
how many cells are selected, written in the locale, and a language that
|
|
9035
|
+
needs plural forms writes them: `{count, plural, one {# wybrany} few
|
|
9036
|
+
{# wybrane} many {# wybranych} other {# wybranego}}`. */
|
|
9037
|
+
"selection-label"?: (HelixHeadlessIsometricHeatmap["selectionLabel"]) | undefined;
|
|
9038
|
+
/** What the `selection` part says after the selection changes. `{count}` is
|
|
9039
|
+
how many cells are selected, written in the locale, and a language that
|
|
9040
|
+
needs plural forms writes them: `{count, plural, one {# wybrany} few
|
|
9041
|
+
{# wybrane} many {# wybranych} other {# wybranego}}`. */
|
|
9042
|
+
selectionLabel?: (HelixHeadlessIsometricHeatmap["selectionLabel"]) | undefined;
|
|
9043
|
+
/** How many cells a reader can select: `single` or `multiple`.
|
|
9044
|
+
|
|
9045
|
+
Absent selects nothing, and a press or Space does what it did. */
|
|
9046
|
+
"selection-mode"?: (HelixHeadlessIsometricHeatmap["selectionMode"]) | undefined;
|
|
9047
|
+
/** How many cells a reader can select: `single` or `multiple`.
|
|
9048
|
+
|
|
9049
|
+
Absent selects nothing, and a press or Space does what it did. */
|
|
9050
|
+
selectionMode?: (HelixHeadlessIsometricHeatmap["selectionMode"]) | undefined;
|
|
9051
|
+
/** What Shift takes in under `selection-mode="multiple"`: `linear`, every
|
|
9052
|
+
cell between two in the table's order, or `rectangle`, the cells between
|
|
9053
|
+
two corners by row and by column, as a spreadsheet selects a range. */
|
|
9054
|
+
"selection-shape"?: (HelixHeadlessIsometricHeatmap["selectionShape"]) | undefined;
|
|
9055
|
+
/** What Shift takes in under `selection-mode="multiple"`: `linear`, every
|
|
9056
|
+
cell between two in the table's order, or `rectangle`, the cells between
|
|
9057
|
+
two corners by row and by column, as a spreadsheet selects a range. */
|
|
9058
|
+
selectionShape?: (HelixHeadlessIsometricHeatmap["selectionShape"]) | undefined;
|
|
9059
|
+
/** The strip's name where the chart has none: no `aria-label`, `label`, or
|
|
9060
|
+
table caption. */
|
|
9061
|
+
"strip-label"?: (HelixHeadlessIsometricHeatmap["stripLabel"]) | undefined;
|
|
9062
|
+
/** The strip's name where the chart has none: no `aria-label`, `label`, or
|
|
9063
|
+
table caption. */
|
|
9064
|
+
stripLabel?: (HelixHeadlessIsometricHeatmap["stripLabel"]) | undefined;
|
|
9065
|
+
/** Lower bounds for the tone buckets, in the order the tones are given.
|
|
9066
|
+
|
|
9067
|
+
`thresholds="1 3 6 9"` with `tones="1 2 3 4"` puts 1 and 2 in the ramp's
|
|
9068
|
+
first step, 3 to 5 in the second, 6 to 8 in the third, and 9 upward in the
|
|
9069
|
+
fourth. A value below the first bound gets no tone at all: an empty day in a
|
|
9070
|
+
contribution graph is a day with nothing in it, and painting it as the
|
|
9071
|
+
lowest bucket claims a reading that does not exist. */
|
|
9072
|
+
thresholds?: (HelixHeadlessIsometricHeatmap["thresholds"]) | undefined;
|
|
9073
|
+
/** The tone for each bucket, in the same order as `thresholds`.
|
|
9074
|
+
|
|
9075
|
+
A name, resolved as `--heatmap-tone-<name>` by whichever tier answers.
|
|
9076
|
+
**`"1"` through `"5"` are a ramp and everything else is a category**, which
|
|
9077
|
+
is the distinction a heatmap lives or dies on: magnitude has to be one hue
|
|
9078
|
+
getting louder, because a reader compares two cells by weight and cannot
|
|
9079
|
+
compare two hues at all. `tones="surface info accent success primary"` for a
|
|
9080
|
+
commit count is five unrelated hues for five amounts, which is confetti with
|
|
9081
|
+
no order in it. */
|
|
9082
|
+
tones?: (HelixHeadlessIsometricHeatmap["tones"]) | undefined;
|
|
9083
|
+
/** The name the `overview` gives the total of the readings drawn,
|
|
9084
|
+
`{totalLabel}` in `overview-label`. */
|
|
9085
|
+
"total-label"?: (HelixHeadlessIsometricHeatmap["totalLabel"]) | undefined;
|
|
9086
|
+
/** The name the `overview` gives the total of the readings drawn,
|
|
9087
|
+
`{totalLabel}` in `overview-label`. */
|
|
9088
|
+
totalLabel?: (HelixHeadlessIsometricHeatmap["totalLabel"]) | undefined;
|
|
9089
|
+
/** The selected cells, separated by commas: each by the date its row's
|
|
9090
|
+
header carries in a `<time datetime>`, such as `2026-06-11`, or by the
|
|
9091
|
+
header's words where it carries none.
|
|
9092
|
+
|
|
9093
|
+
Set it to start with cells selected. Written by a press or a key under
|
|
9094
|
+
`selection-mode`. */
|
|
9095
|
+
value?: (HelixHeadlessIsometricHeatmap["value"]) | undefined;
|
|
9096
|
+
/** The readings as data, in the shape of a table, where the page has no
|
|
9097
|
+
table to point `for` at. `for` wins where both are set.
|
|
9098
|
+
|
|
9099
|
+
```js
|
|
9100
|
+
chart.data = {
|
|
9101
|
+
caption: 'Sessions by channel',
|
|
9102
|
+
columns: ['Month', 'Direct', 'Referral'],
|
|
9103
|
+
rows: [['Jan', 10, 4], ['Feb', 20, 8]],
|
|
9104
|
+
}
|
|
9105
|
+
```
|
|
9106
|
+
|
|
9107
|
+
The first column holds each row's label and every column after it a
|
|
9108
|
+
series, as in a table. A cell is a number, words, `null` for a blank,
|
|
9109
|
+
or `{ value, text }` for a number shown as words, such as `$128k`. A
|
|
9110
|
+
number is shown in `locale`.
|
|
9111
|
+
|
|
9112
|
+
**A table is still the better source where the page can show one**:
|
|
9113
|
+
it reads with no script and before hydration, and a reader can sort and
|
|
9114
|
+
copy it. Data is drawn on the client only, so a server serves the
|
|
9115
|
+
frame, and the summary, the keys and the readout are then the whole of
|
|
9116
|
+
what a screen reader is given. Set a new object to redraw: the chart
|
|
9117
|
+
does not look inside the one it has. */
|
|
9118
|
+
data?: (HelixHeadlessIsometricHeatmap["data"]) | undefined;
|
|
9119
|
+
};
|
|
9120
|
+
|
|
9121
|
+
export type HelixHeadlessIsometricHeatmapVueEvents = {
|
|
9122
|
+
/** Fired once a press or a key has changed which cells are selected. */
|
|
9123
|
+
change: HelixHeadlessIsometricHeatmapElementEvent;
|
|
9124
|
+
/** Fired before a press or a key changes which cells are selected, with the `value` it would leave. Cancelable. */
|
|
9125
|
+
"helix-before-change": HelixHeadlessIsometricHeatmapHelixBeforeChangeElementEvent;
|
|
9126
|
+
/** The reading shown moved, or was put away: `index` is the row, or `-1` for none, with its `label`, the `series` the keys rest on, and the `pointerType` that moved it. */
|
|
9127
|
+
"helix-reading-change": HelixHeadlessIsometricHeatmapHelixReadingChangeElementEvent;
|
|
9128
|
+
/** A reading was clicked, tapped, or pressed with Enter or Space, with the same detail as `helix-reading-change`. */
|
|
9129
|
+
"helix-reading-press": HelixHeadlessIsometricHeatmapHelixReadingPressElementEvent;
|
|
9130
|
+
/** Fired when the number of cells drawn changes, with the new number. */
|
|
9131
|
+
"helix-resize": HelixHeadlessIsometricHeatmapHelixResizeElementEvent;
|
|
9132
|
+
};
|
|
9133
|
+
|
|
8884
9134
|
/** `HelixHeadlessKbd` component event */
|
|
8885
9135
|
export type HelixHeadlessKbdElementEvent<E = Event> = TypedEvent<
|
|
8886
9136
|
HelixHeadlessKbd,
|
|
@@ -19211,6 +19461,8 @@ export type CustomCssProperties = {
|
|
|
19211
19461
|
"--heatmap-tone-success"?: (string) | undefined;
|
|
19212
19462
|
/** The color of the `warning` tone. */
|
|
19213
19463
|
"--heatmap-tone-warning"?: (string) | undefined;
|
|
19464
|
+
/** How many cells the drawing spans across: its columns and its rows together. The component writes it on the strip, and a stylesheet that caps the cell size reads it. */
|
|
19465
|
+
"--isometric-heatmap-span"?: (string) | undefined;
|
|
19214
19466
|
/** How far the zoomed item is moved across from the middle of the viewport, in pixels, toward the right. Written only while zoomed. */
|
|
19215
19467
|
"--lightbox-pan-x"?: (string) | undefined;
|
|
19216
19468
|
/** How far the zoomed item is moved down from the middle of the viewport, in pixels. Written only while zoomed. */
|
|
@@ -19631,7 +19883,7 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
19631
19883
|
HelixHeadlessFormatDateVueProps,
|
|
19632
19884
|
HelixHeadlessFormatDateVueEvents
|
|
19633
19885
|
>;
|
|
19634
|
-
/**
|
|
19886
|
+
/** The frame draws no graph itself. A force layout of thousands of notes is physics and WebGL, which a renderer such as Sigma.js does, and an architecture diagram is drawn by 'isometricDriver' from '@fusion.dev/helix-graph/isometric'. Put the drawing's box in the frame, and 'connectGraph' from '@fusion.dev/helix-graph' draws 'nodes' and 'links' in it and keeps it in step with the frame. What the frame adds is what a drawing of a graph cannot do: a list of every note beside it, which is the graph for a screen reader and a quick way to find a note for anyone. The selected note comes first, then the notes it links to and from, then every other note, and the search field narrows it. Selecting a note in the list or in the drawing is the same selection. Set 'depth' to show the local graph: only the notes within that many links of the selected one. The search field is a combobox over the list. Down and Up move through the notes while the focus stays in the field, and Enter selects one. **Walk the links with Alt and the arrow keys**, in the list or in the search field once its keys are on a note. The note the keys are on is marked in the drawing. | Key | What it does | |---|---| | Alt+Right | Follows a link, to the first note the one the keys are on links to or from. | | Alt+Down, Alt+Up | Moves to the next or the previous note linked to the one the step came from, wrapping. | | Alt+Left | Goes back along the links walked. | Right and Left swap on a right-to-left page. Each step says the note, how it stands to the note it came from, and its place among that note's links, such as "Hiring plan. Linked from Roadmap. 2 of 3". Enter selects the note. Set 'legend' to name the groups over the drawing, each a button that shows or hides its notes. 'hiddenGroups' holds the groups turned off, and the list holds only what the drawing shows. The legend is a toolbar and one tab stop: the arrow keys, Home, End and a group's first letters move between its buttons, and Space or Enter presses one. 'nodes' and 'links' are properties, never markup: a graph of ten thousand notes as ten thousand elements would cost what the renderer exists to save. The list draws only the rows in view. The list scrolls on this tier. It carries 'data-scroller', and 'core' ships '[data-scroller] { overflow: auto }' into every shadow root. You still need to set a block size on the list, or it grows to hold every row. */
|
|
19635
19887
|
"helix-headless-graph": DefineCustomElement<
|
|
19636
19888
|
HelixHeadlessGraph,
|
|
19637
19889
|
HelixHeadlessGraphVueProps,
|
|
@@ -19649,7 +19901,7 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
19649
19901
|
HelixHeadlessIconButtonVueProps,
|
|
19650
19902
|
HelixHeadlessIconButtonVueEvents
|
|
19651
19903
|
>;
|
|
19652
|
-
/** The icons are Phosphor, drawn on a 256 box at stroke-width 16. Each glyph renders its full inner markup, because most icons are several elements, each with its own stroke and fill. The markup is generated at build time from SVG files in this repository and never comes from user input, so rendering it with 'unsafeSVG' is safe. The '<svg>' carries 'fill="currentColor"'. The generator keeps only the inner markup, and Phosphor sets its fill on the root tag that the generator discards. Without it, the 65 solid glyphs fall back to black and disappear on a dark background. Shapes that set their own 'fill' or 'stroke' are unaffected. **A name is looked up in a registry.** The family's entry registers
|
|
19904
|
+
/** The icons are Phosphor, drawn on a 256 box at stroke-width 16. Each glyph renders its full inner markup, because most icons are several elements, each with its own stroke and fill. The markup is generated at build time from SVG files in this repository and never comes from user input, so rendering it with 'unsafeSVG' is safe. The '<svg>' carries 'fill="currentColor"'. The generator keeps only the inner markup, and Phosphor sets its fill on the root tag that the generator discards. Without it, the 65 solid glyphs fall back to black and disappear on a dark background. Shapes that set their own 'fill' or 'stroke' are unaffected. **A name is looked up in a registry.** The family's entry registers the whole set, so any name in it draws, and 'icon/all' registers the same set. The element's own entry, '@fusion.dev/helix-headless/icon/root', registers none: a page that imports it and calls 'registerIcons' with the glyphs it names ships those and no others. 'registerIconLibrary' resolves names under a prefix of your own, such as 'lucide:camera', at once or later, and the element fires 'load' when a glyph that came later is drawn. A glyph registered after the element rendered is drawn then. **Or point 'src' at an SVG file**, such as 'src="/icons/rocket.svg"', and the element fetches it and draws its shapes in 'currentColor' where the file does not color them. A file is fetched once a page, however many icons name it, and 'load' fires when it is drawn. Scripts, event handlers and 'javascript:' links in the file are taken out before it is drawn. A server fetches nothing, so a served icon with a 'src' is drawn once the script runs. A name with no match, or a 'src' that is no SVG, renders nothing, and the element fires 'error', so a typo in a name can be heard. It waits until the page has loaded and painted first, so a library a later module registers is not taken for a typo. An icon is decorative by default and hidden from assistive technology. Set 'label' only when the icon is the only carrier of meaning, such as in a button with no text. An 'aria-label' on the element works too: the element is then an image with that name. **A decorative icon that is all a control holds is reported.** In a development build, a button or a link whose only content is an icon with no 'label', and which has no name of its own, warns 'missing-name' once, through the runtime channel every Helix warning uses. */
|
|
19653
19905
|
"helix-headless-icon": DefineCustomElement<
|
|
19654
19906
|
HelixHeadlessIcon,
|
|
19655
19907
|
HelixHeadlessIconVueProps,
|
|
@@ -19667,6 +19919,12 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
19667
19919
|
HelixHeadlessInputVueProps,
|
|
19668
19920
|
HelixHeadlessInputVueEvents
|
|
19669
19921
|
>;
|
|
19922
|
+
/** The same strip as 'Heatmap', seen from above at an angle. Each reading is a prism: its top face takes the cell's tone, and its height repeats the value, measured from zero against the highest reading in the table. 'rows="7"' makes a contribution graph, with each week a column running down to the right. **The height says what the tone says.** Read the exact value from the tooltip or the table, and compare readings by tone. A tall reading at the front can hide a short one behind it, so the newest column stands at the front, where nothing covers it. **Everything else is 'Heatmap'.** The table named by 'for', the tones and thresholds, the keys, the tooltip, the overview, 'selection-mode', and the events all work as they do there. The class extends the headless heatmap, and its own entry point carries the drawing, so a page using only 'Heatmap' loads none of it. **'flat' lays every prism down** at no height, which leaves the tones on a plane at the same angle. **'gap' and 'min-cell' set the smallest cell.** The drawing scales as a whole, so a wider box draws larger cells and the gap grows with them. A box too narrow for every column at 'min-cell' draws the newest that fit. **The drawing is SVG and holds still.** It scales with its box through its 'viewBox', needs no WebGL, and has no motion to pause. **Keyboard.** The keys are 'Heatmap''s. Down moves to the next reading in a column, drawn down to the left, and Right to the same reading in the next column, drawn down to the right. | Key | What it does | |---|---| | Tab | Moves focus to the strip and shows the first cell. | | Down, Up | Moves to the next or the previous cell. | | Right, Left | Moves a column on or back, a week with 'rows="7"'. On a right-to-left page, Left moves on. | | Home, End | Moves to the first or the last cell. | | Page Down, Page Up | Moves a month on or back where the rows carry dates, and four columns otherwise. | | Enter, Space | Presses the cell, which sends 'helix-reading-press', and selects it or lets it go under 'selection-mode'. | | Shift with an arrow, Home, End, Page Up or Page Down | Selects every cell from the last one pressed to where the key went, under 'selection-mode="multiple"'. | | Escape | Puts the cell's tooltip away. | */
|
|
19923
|
+
"helix-headless-isometric-heatmap": DefineCustomElement<
|
|
19924
|
+
HelixHeadlessIsometricHeatmap,
|
|
19925
|
+
HelixHeadlessIsometricHeatmapVueProps,
|
|
19926
|
+
HelixHeadlessIsometricHeatmapVueEvents
|
|
19927
|
+
>;
|
|
19670
19928
|
/** Renders a '<kbd>' element. Each element holds one key, except when you use 'keys'. For a sequence or a chord, write one element per key and put the separator between them as text, such as "then" or "plus". 'keys' renders the right glyphs for the platform. Given 'mod', it renders '⌘K' on Apple devices and 'Ctrl+K' everywhere else. A '⌘K' typed into a template is wrong for anyone on Windows. The element binds the shortcut only when 'within' is set. By default it draws the key and listens for nothing. **'for' names the control the shortcut works**, and the key writes its chord onto that control's 'aria-keyshortcuts', in the platform's words ('Meta+K' on an Apple keyboard, 'Control+K' elsewhere), so a screen reader announces the shortcut with the control. A chord the page wrote there itself is left alone, and the key takes back only what it added. A chord is drawn with the platform's modifiers first, in its order, so one 'keys' value is right everywhere: 'mod+shift+p' is '⇧⌘P' on an Apple keyboard and 'Ctrl+Shift+P' elsewhere. Where it is drawn in glyphs, it is read in words, such as 'Shift Command P'. 'caps' draws a chord as a key per key: each is a 'key' part and the '+' between two a 'separator' part, so a sheet can draw a cap for each. 'key-labels' renames any key, on every platform, such as 'key-labels='{"mod":"Command"}''. On an Apple keyboard a word joins the next key with a hyphen, as in 'Command-K'. **'activate' makes the shortcut work the control 'for' names**, with no script: 'activate="focus"' moves focus to it, as '/' does to a search field, and 'activate="click"' presses it. It acts once 'helix-shortcut' has gone out and no listener canceled it, and only where 'within' listens. */
|
|
19671
19929
|
"helix-headless-kbd": DefineCustomElement<
|
|
19672
19930
|
HelixHeadlessKbd,
|
package/types/words.d.ts
CHANGED
|
@@ -1911,6 +1911,75 @@ declare module '@fusion.dev/helix-core' {
|
|
|
1911
1911
|
*/
|
|
1912
1912
|
revealLabel: Message
|
|
1913
1913
|
}
|
|
1914
|
+
'helix-isometric-heatmap': {
|
|
1915
|
+
/**
|
|
1916
|
+
* The name the `overview` gives the busiest reading, `{busiestLabel}` in
|
|
1917
|
+
* `overview-label`.
|
|
1918
|
+
*
|
|
1919
|
+
* English: `Busiest`
|
|
1920
|
+
*/
|
|
1921
|
+
busiestLabel: Message
|
|
1922
|
+
/**
|
|
1923
|
+
* The words shown in place of the drawing when the table has no readings,
|
|
1924
|
+
* and the fallback of the `empty` slot.
|
|
1925
|
+
*
|
|
1926
|
+
* English: `No readings`
|
|
1927
|
+
*/
|
|
1928
|
+
emptyText: Message
|
|
1929
|
+
/**
|
|
1930
|
+
* The words shown in place of the drawing while `loading` is set and
|
|
1931
|
+
* there are no readings yet, and the fallback of the `loading` slot.
|
|
1932
|
+
*
|
|
1933
|
+
* English: `Loading readings`
|
|
1934
|
+
*/
|
|
1935
|
+
loadingText: Message
|
|
1936
|
+
/**
|
|
1937
|
+
* The `overview`'s sentence. `{busiestLabel}` and `{totalLabel}` are
|
|
1938
|
+
* `busiest-label` and `total-label`, `{busiest}` the busiest reading's name
|
|
1939
|
+
* and its reading as the table writes it, and `{total}` the total of the
|
|
1940
|
+
* readings drawn, written in the locale.
|
|
1941
|
+
*
|
|
1942
|
+
* English: `{busiestLabel}: {busiest}; {totalLabel} {total}.`
|
|
1943
|
+
*/
|
|
1944
|
+
overviewLabel: Message
|
|
1945
|
+
/**
|
|
1946
|
+
* Where a reading the keys moved to stands among the readings, said after
|
|
1947
|
+
* it. `{position}` and `{count}` are replaced with the numbers, written in
|
|
1948
|
+
* `locale`.
|
|
1949
|
+
*
|
|
1950
|
+
* English: `{position} of {count}`
|
|
1951
|
+
*/
|
|
1952
|
+
positionLabel: Message
|
|
1953
|
+
/**
|
|
1954
|
+
* What the readout added for a selected cell, under `selection-mode`.
|
|
1955
|
+
*
|
|
1956
|
+
* English: `selected`
|
|
1957
|
+
*/
|
|
1958
|
+
selectedLabel: Message
|
|
1959
|
+
/**
|
|
1960
|
+
* What the `selection` part says after the selection changes. `{count}` is
|
|
1961
|
+
* how many cells are selected, written in the locale, and a language that
|
|
1962
|
+
* needs plural forms writes them: `{count, plural, one {# wybrany} few
|
|
1963
|
+
* {# wybrane} many {# wybranych} other {# wybranego}}`.
|
|
1964
|
+
*
|
|
1965
|
+
* English: `{count, plural, one {# selected} other {# selected}}`
|
|
1966
|
+
*/
|
|
1967
|
+
selectionLabel: Message
|
|
1968
|
+
/**
|
|
1969
|
+
* The strip's name where the chart has none: no `aria-label`, `label`, or
|
|
1970
|
+
* table caption.
|
|
1971
|
+
*
|
|
1972
|
+
* English: `Heatmap`
|
|
1973
|
+
*/
|
|
1974
|
+
stripLabel: Message
|
|
1975
|
+
/**
|
|
1976
|
+
* The name the `overview` gives the total of the readings drawn,
|
|
1977
|
+
* `{totalLabel}` in `overview-label`.
|
|
1978
|
+
*
|
|
1979
|
+
* English: `Total`
|
|
1980
|
+
*/
|
|
1981
|
+
totalLabel: Message
|
|
1982
|
+
}
|
|
1914
1983
|
'helix-lightbox': {
|
|
1915
1984
|
/**
|
|
1916
1985
|
* The close control's accessible name. Translate it with the rest of your
|