@fusion.dev/helix-headless 0.40.0 → 0.41.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/types/vue.d.ts CHANGED
@@ -402,9 +402,13 @@ export type HelixHeadlessAppHeaderVueEvents = {
402
402
  export type HelixHeadlessAreaChartVueProps = {
403
403
  /** How a band's edge gets from one reading to the next.
404
404
 
405
- Absent is `straight`, for the reason the class doc gives, and absent rather
406
- than defaulted because a reflecting property with a default writes its
407
- attribute onto every host, including the ones nobody configured. */
405
+ Three values, and the class doc argues for each: `straight` is absent and
406
+ is the default, `smooth` is for a stack read as a shape and is the one that
407
+ can draw a part as less than nothing, `step` is for a quantity that changes
408
+ at a moment and is ordered the way `straight` is.
409
+
410
+ Absent rather than defaulted because a reflecting property with a default
411
+ writes its attribute onto every host, including the ones nobody configured. */
408
412
  curve?: (HelixHeadlessAreaChart["curve"]) | undefined;
409
413
  /** Which rules are drawn across the plot, if any.
410
414
 
@@ -553,28 +557,38 @@ and reach no reader through the table. */
553
557
  gridlines?: (HelixHeadlessBarChart["gridlines"]) | undefined;
554
558
  /** Which series are drawn as a line instead of as columns, by name.
555
559
 
556
- Space separated, matched against the column headings the table gives, so a
557
- chart says `lines="Margin"` rather than counting columns. Names because
558
- they are what the table already carries and what the legend already shows:
559
- an index is a fourth place the column order is written down and the first
560
- one to go stale when somebody moves a column.
561
-
562
- **A combination chart is one scale, and that is the honest half of it.**
563
- Both marks are measured against the same domain, so a line here says
564
- something comparable to the columns beside it. The usual reason to reach
565
- for a combination chart is the other thing, a count against a percentage on
566
- a second axis, and that is deliberately not this: two scales on one frame
567
- let the author put any two shapes in any relation by choosing the ranges,
568
- and the reader has no way to see it happening.
569
-
570
- A line among columns still measures from zero, because the columns do and
571
- they share the axis. */
560
+ Separated by whitespace or commas and matched against the column headings
561
+ the table gives, so a chart says `lines="Margin"` rather than counting
562
+ columns. Names because they are what the table already carries and what the
563
+ legend already shows: an index is a fourth place the column order is
564
+ written down and the first one to go stale when somebody moves a column.
565
+
566
+ **This says which mark a series takes and nothing about which scale it is
567
+ measured on.** Named here alone, a line shares the columns' domain, so it
568
+ says something comparable to the columns beside it.
569
+
570
+ The other half of a combination chart, a count against a percentage on a
571
+ scale of its own, is `secondary`, which is a separate property because it
572
+ is a separate question and because the two compose: `with-a-second-axis`
573
+ ships naming one series in both. The argument for why a second scale is opt
574
+ in, and why setting it labels both axes, is written there.
575
+
576
+ A line among columns measures from zero, because the columns do and they
577
+ share the axis. So does a line on the second scale, which is that scale's
578
+ own rule rather than this one's. */
572
579
  lines?: (HelixHeadlessBarChart["lines"]) | undefined;
573
580
  /** Which series are measured against a scale of their own, by name.
574
581
 
575
- Space separated and matched the way `lines` is, against the column headings
576
- the table gives. Opt in: absent, every series shares one domain, which is
577
- what makes a chart comparable and is the right default.
582
+ Separated and matched the way `lines` is, against the column headings the
583
+ table gives. Opt in: absent, every series shares one domain, which is what
584
+ makes a chart comparable and is the right default.
585
+
586
+ **The scale, and `lines` is the mark.** The two are separate properties
587
+ because they answer separate questions and a series usually wants both:
588
+ a percentage beside a count is drawn as a line *and* measured on its own
589
+ axis, which is what `with-a-second-axis` writes out. Neither implies the
590
+ other, so a series can be a line on the shared scale and a column can have
591
+ a scale to itself.
578
592
 
579
593
  **Two scales on one frame let an author put any two shapes in any relation
580
594
  by choosing the ranges, and a reader cannot see it happening.** That is not
@@ -2884,7 +2898,15 @@ the bar chart's baseline is not a property at all.
2884
2898
  circumference, which needs the radius, and reading a custom property means
2885
2899
  `getComputedStyle`, which is client-only: a server would draw a different
2886
2900
  ring than the client. A plot's proportions are markup for the same reason
2887
- `curve` is. */
2901
+ `curve` is.
2902
+
2903
+ **And so it does not reflect**, which is the same argument read forward. No
2904
+ selector on either tier asks about it and none can want to: everything the
2905
+ thickness decides is arithmetic done here and published as
2906
+ `--donut-chart-stroke`, which is a number a rule can do sums with where the
2907
+ word is not. Reflected, it wrote a value onto every host a script had set
2908
+ it on for nothing to read. `sweep` beside it is the converse and reflects,
2909
+ because three rules select on it. */
2888
2910
  hole?: (HelixHeadlessDonutChart["hole"]) | undefined;
2889
2911
  /** How much of the circle the whole occupies.
2890
2912
 
@@ -4122,7 +4144,20 @@ export type HelixHeadlessLegendVueProps = {
4122
4144
  /** Which way to read the table.
4123
4145
 
4124
4146
  Absent is `series`, one entry per data column. `categories` reads one entry
4125
- per body row instead, for a donut, whose slices are the rows. */
4147
+ per body row instead, for a donut, whose slices are the rows.
4148
+
4149
+ **`measures` is `series` without the first column, and it is for a
4150
+ scatter.** That chart reads its first numeric column as the measure
4151
+ *across*, so its first plotted series is the table's second and everything
4152
+ a legend beside it named was one color out: the across column wearing the
4153
+ color of the first series drawn, and each real series wearing the next
4154
+ one's. The across gets no entry rather than a shifted one, because it is an
4155
+ axis and a scatter already writes its name at the end of the scale under
4156
+ the plot.
4157
+
4158
+ A legend cannot ask the chart which of these it is, `for` naming the table
4159
+ they share and not each other, so the consumer says it. That is the same
4160
+ shape `categories` already has. */
4126
4161
  entries?: (HelixHeadlessLegend["entries"]) | undefined;
4127
4162
  /** The id of the table to take the names from.
4128
4163
 
@@ -4197,9 +4232,20 @@ useful thing: it is where a reader looks for "and what is it now", which is
4197
4232
  the question a sparkline's single mark answers too.
4198
4233
 
4199
4234
  `none` lets the lines stop on their own, which suits a chart read for its
4200
- shape rather than for where it finished. The shapes come from
4235
+ shape rather than for where it finished. `square` is the same mark with its
4236
+ corners, for a drawing whose neighbors are square, the columns of a table
4237
+ beside it for instance. `ring` lets the ground through, for a chart drawn
4238
+ over something busy. `triangle` points along the axis and reads as "and
4239
+ onward" rather than as a second claim about the data.
4240
+
4241
+ The shapes come from
4201
4242
  `helix/styled/src/shared/chart/terminus.css`, the same sheet `Sparkline` takes, so
4202
- the set is identical wherever one appears.
4243
+ the set is identical wherever one appears. **Which is why every value is
4244
+ named here.** `Sparkline` shipped `square` implemented, drawn, asserted and
4245
+ undocumented until the cohort before this one; this family reads the same
4246
+ four out of the same sheet and had left two of them unwritten, so the
4247
+ finding arrived twice. A shared vocabulary wants naming at each door into
4248
+ it, because a reader arrives at one door and not at the set.
4203
4249
 
4204
4250
  `ring` is the one that asks something of the drawing. It leaves a hole and a
4205
4251
  line ends at the reading, which is the hole's center, so the `<svg>` is
@@ -8780,7 +8826,7 @@ one-line rows should leave this alone. */
8780
8826
  export type HelixHeadlessVirtualListVueEvents = {};
8781
8827
 
8782
8828
  export type CustomCssProperties = {
8783
- /** The color of a single-series axis, taken from that series. */
8829
+ /** How wide an axis column is drawn, in `ch`, from the widest number on it. Written on the axis itself, and only where the categories run along the bottom: turned sideways an axis is a row and takes a line's height instead. */
8784
8830
  "--bar-chart-axis"?: (string) | undefined;
8785
8831
  /** The color of the secondary axis when one series owns it. It resolves a `--helix-color-series-*` token, so on the headless tier alone it names something that is not there. #138. */
8786
8832
  "--bar-chart-secondary"?: (string) | undefined;
@@ -8848,6 +8894,10 @@ export type CustomCssProperties = {
8848
8894
  "--heatmap-tone-success"?: (string) | undefined;
8849
8895
  /** What `warning` is worth. */
8850
8896
  "--heatmap-tone-warning"?: (string) | undefined;
8897
+ /** Where a series' last reading sits horizontally, as a percentage. Written by the component. */
8898
+ "--chart-terminus-x"?: (string) | undefined;
8899
+ /** Where a series' last reading sits vertically, as a percentage. Written by the component. */
8900
+ "--chart-terminus-y"?: (string) | undefined;
8851
8901
  /** Where the panel starts, measured from the bar above it. */
8852
8902
  "--megamenu-top"?: (string) | undefined;
8853
8903
  /** Where a bound sits on the arc, as a length along it. */
@@ -8884,10 +8934,6 @@ export type CustomCssProperties = {
8884
8934
  "--slider-marker-at"?: (string) | undefined;
8885
8935
  /** Where the filled span ends, as a percentage of the track. */
8886
8936
  "--slider-to"?: (string) | undefined;
8887
- /** Where the last point sits horizontally, as a percentage. */
8888
- "--chart-terminus-x"?: (string) | undefined;
8889
- /** Where the last point sits vertically, as a percentage. */
8890
- "--chart-terminus-y"?: (string) | undefined;
8891
8937
  /** Where a nested splitter crosses this one, as a percentage. */
8892
8938
  "--splitter-corner-at"?: (string) | undefined;
8893
8939
  /** Where the divider sits, as a percentage of the box. */
@@ -8938,7 +8984,7 @@ export interface WcToolkitVueGlobalComponents {
8938
8984
  HelixHeadlessAppHeaderVueProps,
8939
8985
  HelixHeadlessAppHeaderVueEvents
8940
8986
  >;
8941
- /** The chart for a composition: every column of the table is a part, the parts sum to the whole at each reading, and the top edge is that whole. What a line chart of the same table cannot show is the share, which here is the thickness of a band. **Not 'Line Chart' with 'area'.** That washes each series from the floor on its own, so the series overlap; this adds them. Reach for 'Line Chart' when the question is how each series moved, and for this when it is how the whole is made up. **It measures from zero, always**, which is 'BarChart''s rule and for the same reason: a band's thickness *is* its value, so a range that starts anywhere else draws every part in proportion to nothing. 'LineChart' measures from its own range because a line claims a position; a band claims an amount. **Straight between readings unless asked otherwise.** A band's top edge is a sum, and a curve fitted through one sum can pass under the curve fitted through the sum beneath it, so a smoothed stack can draw a part as less than nothing between two readings. Straight segments between ordered points stay ordered. 'curve="smooth"' is there for a stack that is read as a shape. **'share' draws each reading as a hundred percent**, so the bands are the parts' shares and the top edge is flat. It answers "which part grew" where the default answers "did the whole grow". **What a reader without the picture is told is the total and the share**, not every band in turn. The table beside the chart already reads out every number; what the drawing adds is the composition, so the summary says the latest reading's total and each part's share of it. The drawing itself is 'aria-hidden'. Every numeric column is a part. A table that carries its own total column would count it twice, so leave it out of the table the chart reads. A negative reading is drawn as none: a part of a whole cannot be less than nothing, and a band that folded under its neighbor would say it was. */
8987
+ /** The chart for a composition: every column of the table is a part, the parts sum to the whole at each reading, and the top edge is that whole. What a line chart of the same table cannot show is the share, which here is the thickness of a band. **Not 'Line Chart' with 'area'.** That washes each series from the floor on its own, so the series overlap; this adds them. Reach for 'Line Chart' when the question is how each series moved, and for this when it is how the whole is made up. **It measures from zero, always**, which is 'BarChart''s rule and for the same reason: a band's thickness *is* its value, so a range that starts anywhere else draws every part in proportion to nothing. 'LineChart' measures from its own range because a line claims a position; a band claims an amount. **And so it is not a streamgraph**, which is the near neighbor to name. A streamgraph moves its baseline to center the bands and reads as a river; it is a real form and it is the one thing the rule above refuses, so this carries no alias for it. What it has instead is 'share', which answers the question a streamgraph is usually reached for, how the composition changed, without giving up a floor a reader can measure against. **Straight between readings unless asked otherwise.** A band's top edge is a sum, and a curve fitted through one sum can pass under the curve fitted through the sum beneath it, so a smoothed stack can draw a part as less than nothing between two readings. Straight segments between ordered points stay ordered. 'curve="smooth"' is there for a stack that is read as a shape. 'curve="step"' falls on the safe side of that argument rather than being unanswered by it, and it is worth saying which side because a reader cannot tell from the argument alone. A step takes no value the readings do not have: it holds one, jumps at the midpoint, and holds the next. So two stepped edges that are ordered at every reading are ordered everywhere between them, which is what 'straight' is chosen for. It is the curve for a quantity that changes at a moment rather than across an interval, a headcount or a price, where a sloped edge claims a gradual change nothing measured. **'share' draws each reading as a hundred percent**, so the bands are the parts' shares and the top edge is flat. It answers "which part grew" where the default answers "did the whole grow". **What a reader without the picture is told is the total and the share**, not every band in turn. The table beside the chart already reads out every number; what the drawing adds is the composition, so the summary says the latest reading's total and each part's share of it. The drawing itself is 'aria-hidden'. Every numeric column is a part. A table that carries its own total column would count it twice, so leave it out of the table the chart reads. A negative reading is drawn as none: a part of a whole cannot be less than nothing, and a band that folded under its neighbor would say it was. */
8942
8988
  "helix-headless-area-chart": DefineCustomElement<
8943
8989
  HelixHeadlessAreaChart,
8944
8990
  HelixHeadlessAreaChartVueProps,
@@ -9238,7 +9284,7 @@ export interface WcToolkitVueGlobalComponents {
9238
9284
  HelixHeadlessKbdVueProps,
9239
9285
  HelixHeadlessKbdVueEvents
9240
9286
  >;
9241
- /** A legend is a list, so it is a list: not part of a chart, and shared by whichever of them needs one. It takes its entries from the same table the chart reads, through 'for', so the two cannot disagree. 'entries' picks which way to read that table. 'series' is one entry per data column, named by the header row, which is a line or a bar chart. 'categories' is one entry per body row, which is a donut: its slices are the rows and it has no axis to write their names along. **The table is resolved on the client and there is no server pass.** */
9287
+ /** A legend is a list, so it is a list: not part of a chart, and shared by whichever of them needs one. It takes its entries from the same table the chart reads, through 'for', so the two cannot disagree. 'entries' picks which way to read that table. 'series' is one entry per data column, named by the header row, which is a line or a bar chart. 'categories' is one entry per body row, which is a donut: its slices are the rows and it has no axis to write their names along. 'measures' drops the first data column, which is a scatter. **The table is resolved on the client and there is no server pass.** */
9242
9288
  "helix-headless-legend": DefineCustomElement<
9243
9289
  HelixHeadlessLegend,
9244
9290
  HelixHeadlessLegendVueProps,