@fusion.dev/helix-headless 0.152.0 → 0.153.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.
@@ -3158,7 +3158,7 @@
3158
3158
  "declarations": [
3159
3159
  {
3160
3160
  "kind": "class",
3161
- "description": "Shows how a total is made up. Each numeric column of the table is a part, the\nparts add up to the total at each reading, and the top edge is that total.\nThe thickness of a band is that part's amount.\n\nUse `LineChart` with `area` to show how each series moved: it fills each\nseries from the floor separately, so the fills overlap. Use this chart to\nshow the composition: it stacks the series.\n\n**The value axis always starts at zero**, as in `BarChart`, because a band's\nthickness is its value. For the same reason there is no streamgraph mode,\nwhich moves the baseline. To show how the composition changed, set `share`.\n\nBand edges are straight between readings by default. A smoothed curve through\none sum can dip below the curve through the sum beneath it, which draws a\npart as less than zero. Other curves:\n\n- `curve=\"smooth\"`: for a stack read as an overall shape.\n- `curve=\"step\"`: holds each reading and jumps at the midpoint, so stacked\n edges stay in order, as with `straight`. Use it for a quantity that changes\n at a moment, such as a headcount or a price.\n\n`share` draws each reading as 100 percent, so the top edge is flat and the\nbands show each part's share. Use it to see which part grew. The default\nshows whether the total grew.\n\n`overlap` draws every band from zero, one in front of another, so each\npart's own amount is its height: the first column is in front. Use it to\ncompare the parts with each other; the scale then fits the largest part\nrather than the total.\n\n`value-axis` draws the scale's numbers beside the plot, at the levels\n`gridlines` rules: amounts in `locale`, or percentages under `share`.\n\nThe drawing is hidden from screen readers. The text summary gives the latest\nreading's total and each part's share of it, and the table beside the chart\nhas every number.\n\n**The plot is read by key.** It takes focus, named by `label` or the caption.\nThe left and right arrows move from reading to reading, Home and End go to\nthe first and the last, and the up and down arrows move among the series of\na reading. The tooltip follows, the `live` part says the reading in words,\nand Escape puts the tooltip away.\n\nEvery numeric column is a part, so leave a total column out of the table the\nchart reads, or it is counted twice. A negative reading is drawn as zero.\n\n**A tap shows the reading under it**, and keeps it until a tap lands\nelsewhere. `helix-reading-change` says each move of the reading, by pointer,\ntap or key, and `helix-reading-press` says a reading was clicked, tapped, or\npressed with Enter or Space, for a page that opens what a reading stands for.",
3161
+ "description": "Shows how a total is made up. Each numeric column of the table is a part, the\nparts add up to the total at each reading, and the top edge is that total.\nThe thickness of a band is that part's amount.\n\nUse `LineChart` with `area` to show how each series moved: it fills each\nseries from the floor separately, so the fills overlap. Use this chart to\nshow the composition: it stacks the series.\n\n**The value axis always starts at zero**, as in `BarChart`, because a band's\nthickness is its value. For the same reason there is no streamgraph mode,\nwhich moves the baseline. To show how the composition changed, set `share`.\n\nBand edges are straight between readings by default. A smoothed curve through\none sum can dip below the curve through the sum beneath it, which draws a\npart as less than zero. Other curves:\n\n- `curve=\"smooth\"`: for a stack read as an overall shape.\n- `curve=\"step\"`: holds each reading and jumps at the midpoint, so stacked\n edges stay in order, as with `straight`. Use it for a quantity that changes\n at a moment, such as a headcount or a price.\n\n`share` draws each reading as 100 percent, so the top edge is flat and the\nbands show each part's share. Use it to see which part grew. The default\nshows whether the total grew.\n\n`overlap` draws every band from zero, one in front of another, so each\npart's own amount is its height: the first column is in front. Use it to\ncompare the parts with each other; the scale then fits the largest part\nrather than the total.\n\n`value-axis` draws the scale's numbers beside the plot, at the levels\n`gridlines` rules: amounts in `locale`, or percentages under `share`.\n\nThe drawing is hidden from screen readers. The text summary gives the latest\nreading's total and each part's share of it, and the table beside the chart\nhas every number.\n\n**The plot is read by key.** It takes focus, named by `label` or the caption.\nThe left and right arrows move from reading to reading, Home and End go to\nthe first and the last, and the up and down arrows move among the series of\na reading. The tooltip follows, the `live` part says the reading in words,\nand Escape puts the tooltip away.\n\nEvery numeric column is a part, so leave a total column out of the table the\nchart reads, or it is counted twice. A negative reading is drawn as zero.\n\n**A tap shows the reading under it**, and keeps it until a tap lands\nelsewhere. `helix-reading-change` says each move of the reading, by pointer,\ntap or key, and `helix-reading-press` says a reading was clicked, tapped, or\npressed with Enter or Space, for a page that opens what a reading stands for.\n\n**`data` takes the readings as data** where the page has no table to point\n`for` at, in a table's shape: the column headings, then one row per reading\nwith its label first. A table is still the better source where the page can\nshow one, since it reads before any script runs.\n\n**A chart with nothing to draw says so.** A table with no readings shows\n`empty-text`, \"No readings\", in the plot, and `loading` shows `loading-text`\nthere until readings arrive. The `empty` and `loading` slots take markup in\ntheir place, such as a link to add the first reading.",
3162
3162
  "name": "HelixHeadlessAreaChart",
3163
3163
  "cssProperties": [
3164
3164
  {
@@ -3179,6 +3179,10 @@
3179
3179
  "description": "The rule at zero, which is the floor of the drawing.",
3180
3180
  "name": "baseline"
3181
3181
  },
3182
+ {
3183
+ "description": "The words in place of the drawing when the table has no readings: the `empty` slot, falling back to `empty-text`. Not drawn while the table cannot be read yet, on the server and during hydration.",
3184
+ "name": "empty"
3185
+ },
3182
3186
  {
3183
3187
  "description": "One rule across the plot, under `gridlines`.",
3184
3188
  "name": "gridline"
@@ -3203,6 +3207,10 @@
3203
3207
  "description": "The readout: a polite live region that says the reading the keys moved to. Hide it visually.",
3204
3208
  "name": "live"
3205
3209
  },
3210
+ {
3211
+ "description": "The words in place of the drawing while `loading` is set and there are no readings: the `loading` slot, falling back to `loading-text`.",
3212
+ "name": "loading"
3213
+ },
3206
3214
  {
3207
3215
  "description": "The invisible point the tooltip is anchored to.",
3208
3216
  "name": "mark"
@@ -3288,6 +3296,16 @@
3288
3296
  "name": "tooltip-value"
3289
3297
  }
3290
3298
  ],
3299
+ "slots": [
3300
+ {
3301
+ "description": "Content shown in place of the drawing when the table has no readings, such as a link to add the first. Falls back to `empty-text`.",
3302
+ "name": "empty"
3303
+ },
3304
+ {
3305
+ "description": "Content shown in place of the drawing while `loading` is set and there are no readings yet. Falls back to `loading-text`.",
3306
+ "name": "loading"
3307
+ }
3308
+ ],
3291
3309
  "members": [
3292
3310
  {
3293
3311
  "kind": "field",
@@ -3686,6 +3704,70 @@
3686
3704
  ],
3687
3705
  "description": "What a pointer resting on a reading shows, above the top of the stack."
3688
3706
  },
3707
+ {
3708
+ "kind": "field",
3709
+ "name": "emptyText",
3710
+ "type": {
3711
+ "text": "string"
3712
+ },
3713
+ "default": "'No readings'",
3714
+ "description": "The words shown in place of the drawing when the table has no readings,\nand the fallback of the `empty` slot.",
3715
+ "attribute": "empty-text",
3716
+ "helix": {
3717
+ "words": true
3718
+ },
3719
+ "inheritedFrom": {
3720
+ "name": "MixinChartStatus",
3721
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
3722
+ }
3723
+ },
3724
+ {
3725
+ "kind": "field",
3726
+ "name": "loading",
3727
+ "type": {
3728
+ "text": "boolean"
3729
+ },
3730
+ "default": "false",
3731
+ "description": "Whether the readings are still on their way. The chart shows\n`loading-text` in place of an empty drawing until it has readings.\n\nReflected, so a stylesheet can treat the chart while it waits. A chart\nthat already has readings keeps drawing them, so a refresh does not\nblank it.",
3732
+ "attribute": "loading",
3733
+ "reflects": true,
3734
+ "inheritedFrom": {
3735
+ "name": "MixinChartStatus",
3736
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
3737
+ }
3738
+ },
3739
+ {
3740
+ "kind": "field",
3741
+ "name": "loadingText",
3742
+ "type": {
3743
+ "text": "string"
3744
+ },
3745
+ "default": "'Loading readings'",
3746
+ "description": "The words shown in place of the drawing while `loading` is set and\nthere are no readings yet, and the fallback of the `loading` slot.",
3747
+ "attribute": "loading-text",
3748
+ "helix": {
3749
+ "words": true
3750
+ },
3751
+ "inheritedFrom": {
3752
+ "name": "MixinChartStatus",
3753
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
3754
+ }
3755
+ },
3756
+ {
3757
+ "kind": "method",
3758
+ "name": "renderStatus",
3759
+ "privacy": "protected",
3760
+ "return": {
3761
+ "type": {
3762
+ "text": "TemplateResult | typeof nothing"
3763
+ }
3764
+ },
3765
+ "description": "What stands in the plot while there is nothing to draw: the `loading`\nline, the `empty` line, or nothing while the table cannot be read yet.\n\n`dir=\"auto\"`, so words in a right-to-left script read their own way in\na plot that holds itself left to right, as Scatter Chart's does.",
3766
+ "inheritedFrom": {
3767
+ "name": "MixinChartStatus",
3768
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
3769
+ }
3770
+ },
3689
3771
  {
3690
3772
  "kind": "field",
3691
3773
  "name": "source",
@@ -3709,6 +3791,19 @@
3709
3791
  "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
3710
3792
  }
3711
3793
  },
3794
+ {
3795
+ "kind": "field",
3796
+ "name": "data",
3797
+ "type": {
3798
+ "text": "ChartData | undefined"
3799
+ },
3800
+ "default": "undefined",
3801
+ "description": "The readings as data, in the shape of a table, where the page has no\ntable to point `for` at. `for` wins where both are set.\n\n```js\nchart.data = {\n caption: 'Sessions by channel',\n columns: ['Month', 'Direct', 'Referral'],\n rows: [['Jan', 10, 4], ['Feb', 20, 8]],\n}\n```\n\nThe first column holds each row's label and every column after it a\nseries, as in a table. A cell is a number, words, `null` for a blank,\nor `{ value, text }` for a number shown as words, such as `$128k`. A\nnumber is shown in `locale`.\n\n**A table is still the better source where the page can show one**:\nit reads with no script and before hydration, and a reader can sort and\ncopy it. Data is drawn on the client only, so a server serves the\nframe, and the summary, the keys and the readout are then the whole of\nwhat a screen reader is given. Set a new object to redraw: the chart\ndoes not look inside the one it has.",
3802
+ "inheritedFrom": {
3803
+ "name": "MixinChartSource",
3804
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
3805
+ }
3806
+ },
3712
3807
  {
3713
3808
  "kind": "field",
3714
3809
  "name": "for",
@@ -3845,6 +3940,19 @@
3845
3940
  "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
3846
3941
  }
3847
3942
  },
3943
+ {
3944
+ "kind": "field",
3945
+ "name": "readingsKnown",
3946
+ "type": {
3947
+ "text": "boolean"
3948
+ },
3949
+ "description": "Whether the readings have been looked for: false on the server and\nwhile hydrating, where no table is resolved and no data is read. A\nchart says it has no readings only once this is true.",
3950
+ "readonly": true,
3951
+ "inheritedFrom": {
3952
+ "name": "MixinChartSource",
3953
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
3954
+ }
3955
+ },
3848
3956
  {
3849
3957
  "kind": "field",
3850
3958
  "name": "sourceRows",
@@ -4404,6 +4512,45 @@
4404
4512
  "description": "Draws the scale's numbers beside the plot, the `axis` part, at the levels\n`gridlines` rules: amounts, or percentages under `share`.\n\nAbsent draws none: bands read as a composition need no numbers beside\nthem, and the tooltip and the table hold every reading.",
4405
4513
  "fieldName": "valueAxis"
4406
4514
  },
4515
+ {
4516
+ "name": "empty-text",
4517
+ "type": {
4518
+ "text": "string"
4519
+ },
4520
+ "default": "'No readings'",
4521
+ "description": "The words shown in place of the drawing when the table has no readings,\nand the fallback of the `empty` slot.",
4522
+ "fieldName": "emptyText",
4523
+ "inheritedFrom": {
4524
+ "name": "MixinChartStatus",
4525
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
4526
+ }
4527
+ },
4528
+ {
4529
+ "name": "loading",
4530
+ "type": {
4531
+ "text": "boolean"
4532
+ },
4533
+ "default": "false",
4534
+ "description": "Whether the readings are still on their way. The chart shows\n`loading-text` in place of an empty drawing until it has readings.\n\nReflected, so a stylesheet can treat the chart while it waits. A chart\nthat already has readings keeps drawing them, so a refresh does not\nblank it.",
4535
+ "fieldName": "loading",
4536
+ "inheritedFrom": {
4537
+ "name": "MixinChartStatus",
4538
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
4539
+ }
4540
+ },
4541
+ {
4542
+ "name": "loading-text",
4543
+ "type": {
4544
+ "text": "string"
4545
+ },
4546
+ "default": "'Loading readings'",
4547
+ "description": "The words shown in place of the drawing while `loading` is set and\nthere are no readings yet, and the fallback of the `loading` slot.",
4548
+ "fieldName": "loadingText",
4549
+ "inheritedFrom": {
4550
+ "name": "MixinChartStatus",
4551
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
4552
+ }
4553
+ },
4407
4554
  {
4408
4555
  "name": "for",
4409
4556
  "type": {
@@ -4458,6 +4605,10 @@
4458
4605
  }
4459
4606
  ],
4460
4607
  "mixins": [
4608
+ {
4609
+ "name": "MixinChartStatus",
4610
+ "package": "@fusion.dev/helix-core"
4611
+ },
4461
4612
  {
4462
4613
  "name": "MixinChartSource",
4463
4614
  "package": "@fusion.dev/helix-core"
@@ -6544,7 +6695,7 @@
6544
6695
  "declarations": [
6545
6696
  {
6546
6697
  "kind": "class",
6547
- "description": "Every bar is measured from zero, and no property changes the baseline,\nbecause a bar's length is its value. To show the differences between values,\nuse a line chart.\n\nThe labels are HTML beside the drawing. An `<svg>` that fills its box scales\nthe text inside it: the same `font-size` renders at 10px in a narrow chart\nand 43px in a wide one, and SVG has no setting that keeps text at one size\nthe way `vector-effect` does for strokes.\n\nThe table is the accessible representation, and the drawing is hidden from\nscreen readers, so they get the numbers themselves. The `summary` part names\nthe chart, from `label` or the table's caption, and gives each series' highest\nreading.\n\n**The plot is read by key.** It takes focus, named by `label` or the caption.\nThe arrows along the categories move from one to the next, which is left and\nright for columns and up and down for `orientation=\"horizontal\"`. Home and\nEnd go to the first and the last, and the other pair of arrows moves among\nthe series of a category. The tooltip follows, the `live` part says the\nreading in words, and Escape puts the tooltip away.\n\nThe component writes the custom properties below with numbers it computes,\nand the stylesheet that draws the chart reads them. Do not set them yourself.\n\n**A tap shows the reading under it**, and keeps it until a tap lands\nelsewhere. `helix-reading-change` says each move of the reading, by pointer,\ntap or key, and `helix-reading-press` says a reading was clicked, tapped, or\npressed with Enter or Space, for a page that opens what a reading stands for.",
6698
+ "description": "Every bar is measured from zero, and no property changes the baseline,\nbecause a bar's length is its value. To show the differences between values,\nuse a line chart.\n\nThe labels are HTML beside the drawing. An `<svg>` that fills its box scales\nthe text inside it: the same `font-size` renders at 10px in a narrow chart\nand 43px in a wide one, and SVG has no setting that keeps text at one size\nthe way `vector-effect` does for strokes.\n\nThe table is the accessible representation, and the drawing is hidden from\nscreen readers, so they get the numbers themselves. The `summary` part names\nthe chart, from `label` or the table's caption, and gives each series' highest\nreading.\n\n**The plot is read by key.** It takes focus, named by `label` or the caption.\nThe arrows along the categories move from one to the next, which is left and\nright for columns and up and down for `orientation=\"horizontal\"`. Home and\nEnd go to the first and the last, and the other pair of arrows moves among\nthe series of a category. The tooltip follows, the `live` part says the\nreading in words, and Escape puts the tooltip away.\n\nThe component writes the custom properties below with numbers it computes,\nand the stylesheet that draws the chart reads them. Do not set them yourself.\n\n**A tap shows the reading under it**, and keeps it until a tap lands\nelsewhere. `helix-reading-change` says each move of the reading, by pointer,\ntap or key, and `helix-reading-press` says a reading was clicked, tapped, or\npressed with Enter or Space, for a page that opens what a reading stands for.\n\n**`data` takes the readings as data** where the page has no table to point\n`for` at, in a table's shape: the column headings, then one row per reading\nwith its label first. A table is still the better source where the page can\nshow one, since it reads before any script runs.\n\n**A chart with nothing to draw says so.** A table with no readings shows\n`empty-text`, \"No readings\", in the plot, and `loading` shows `loading-text`\nthere until readings arrive. The `empty` and `loading` slots take markup in\ntheir place, such as a link to add the first reading.",
6548
6699
  "name": "HelixHeadlessBarChart",
6549
6700
  "cssProperties": [
6550
6701
  {
@@ -6585,6 +6736,10 @@
6585
6736
  "description": "The line the columns stand on.",
6586
6737
  "name": "baseline"
6587
6738
  },
6739
+ {
6740
+ "description": "The words in place of the drawing when the table has no readings: the `empty` slot, falling back to `empty-text`. Not drawn while the table cannot be read yet, on the server and during hydration.",
6741
+ "name": "empty"
6742
+ },
6588
6743
  {
6589
6744
  "description": "One gridline across the plot, drawn when `gridlines` is set.",
6590
6745
  "name": "gridline"
@@ -6613,6 +6768,10 @@
6613
6768
  "description": "The readout: a polite live region that says the reading the keys moved to. Hide it visually.",
6614
6769
  "name": "live"
6615
6770
  },
6771
+ {
6772
+ "description": "The words in place of the drawing while `loading` is set and there are no readings: the `loading` slot, falling back to `loading-text`.",
6773
+ "name": "loading"
6774
+ },
6616
6775
  {
6617
6776
  "description": "The invisible point the tooltip is anchored to.",
6618
6777
  "name": "mark"
@@ -6698,6 +6857,16 @@
6698
6857
  "name": "tooltip-value"
6699
6858
  }
6700
6859
  ],
6860
+ "slots": [
6861
+ {
6862
+ "description": "Content shown in place of the drawing when the table has no readings, such as a link to add the first. Falls back to `empty-text`.",
6863
+ "name": "empty"
6864
+ },
6865
+ {
6866
+ "description": "Content shown in place of the drawing while `loading` is set and there are no readings yet. Falls back to `loading-text`.",
6867
+ "name": "loading"
6868
+ }
6869
+ ],
6701
6870
  "members": [
6702
6871
  {
6703
6872
  "kind": "field",
@@ -7129,6 +7298,70 @@
7129
7298
  },
7130
7299
  "description": "What a pointer resting on a reading shows.\n\nA seam over `drawTooltip`, which holds the markup every chart shares. The\nusual reason to override is arrangement: every cell of the row is already\nthere, including the columns nothing was plotted from."
7131
7300
  },
7301
+ {
7302
+ "kind": "field",
7303
+ "name": "emptyText",
7304
+ "type": {
7305
+ "text": "string"
7306
+ },
7307
+ "default": "'No readings'",
7308
+ "description": "The words shown in place of the drawing when the table has no readings,\nand the fallback of the `empty` slot.",
7309
+ "attribute": "empty-text",
7310
+ "helix": {
7311
+ "words": true
7312
+ },
7313
+ "inheritedFrom": {
7314
+ "name": "MixinChartStatus",
7315
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
7316
+ }
7317
+ },
7318
+ {
7319
+ "kind": "field",
7320
+ "name": "loading",
7321
+ "type": {
7322
+ "text": "boolean"
7323
+ },
7324
+ "default": "false",
7325
+ "description": "Whether the readings are still on their way. The chart shows\n`loading-text` in place of an empty drawing until it has readings.\n\nReflected, so a stylesheet can treat the chart while it waits. A chart\nthat already has readings keeps drawing them, so a refresh does not\nblank it.",
7326
+ "attribute": "loading",
7327
+ "reflects": true,
7328
+ "inheritedFrom": {
7329
+ "name": "MixinChartStatus",
7330
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
7331
+ }
7332
+ },
7333
+ {
7334
+ "kind": "field",
7335
+ "name": "loadingText",
7336
+ "type": {
7337
+ "text": "string"
7338
+ },
7339
+ "default": "'Loading readings'",
7340
+ "description": "The words shown in place of the drawing while `loading` is set and\nthere are no readings yet, and the fallback of the `loading` slot.",
7341
+ "attribute": "loading-text",
7342
+ "helix": {
7343
+ "words": true
7344
+ },
7345
+ "inheritedFrom": {
7346
+ "name": "MixinChartStatus",
7347
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
7348
+ }
7349
+ },
7350
+ {
7351
+ "kind": "method",
7352
+ "name": "renderStatus",
7353
+ "privacy": "protected",
7354
+ "return": {
7355
+ "type": {
7356
+ "text": "TemplateResult | typeof nothing"
7357
+ }
7358
+ },
7359
+ "description": "What stands in the plot while there is nothing to draw: the `loading`\nline, the `empty` line, or nothing while the table cannot be read yet.\n\n`dir=\"auto\"`, so words in a right-to-left script read their own way in\na plot that holds itself left to right, as Scatter Chart's does.",
7360
+ "inheritedFrom": {
7361
+ "name": "MixinChartStatus",
7362
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
7363
+ }
7364
+ },
7132
7365
  {
7133
7366
  "kind": "field",
7134
7367
  "name": "source",
@@ -7152,6 +7385,19 @@
7152
7385
  "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
7153
7386
  }
7154
7387
  },
7388
+ {
7389
+ "kind": "field",
7390
+ "name": "data",
7391
+ "type": {
7392
+ "text": "ChartData | undefined"
7393
+ },
7394
+ "default": "undefined",
7395
+ "description": "The readings as data, in the shape of a table, where the page has no\ntable to point `for` at. `for` wins where both are set.\n\n```js\nchart.data = {\n caption: 'Sessions by channel',\n columns: ['Month', 'Direct', 'Referral'],\n rows: [['Jan', 10, 4], ['Feb', 20, 8]],\n}\n```\n\nThe first column holds each row's label and every column after it a\nseries, as in a table. A cell is a number, words, `null` for a blank,\nor `{ value, text }` for a number shown as words, such as `$128k`. A\nnumber is shown in `locale`.\n\n**A table is still the better source where the page can show one**:\nit reads with no script and before hydration, and a reader can sort and\ncopy it. Data is drawn on the client only, so a server serves the\nframe, and the summary, the keys and the readout are then the whole of\nwhat a screen reader is given. Set a new object to redraw: the chart\ndoes not look inside the one it has.",
7396
+ "inheritedFrom": {
7397
+ "name": "MixinChartSource",
7398
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
7399
+ }
7400
+ },
7155
7401
  {
7156
7402
  "kind": "field",
7157
7403
  "name": "for",
@@ -7288,6 +7534,19 @@
7288
7534
  "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
7289
7535
  }
7290
7536
  },
7537
+ {
7538
+ "kind": "field",
7539
+ "name": "readingsKnown",
7540
+ "type": {
7541
+ "text": "boolean"
7542
+ },
7543
+ "description": "Whether the readings have been looked for: false on the server and\nwhile hydrating, where no table is resolved and no data is read. A\nchart says it has no readings only once this is true.",
7544
+ "readonly": true,
7545
+ "inheritedFrom": {
7546
+ "name": "MixinChartSource",
7547
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
7548
+ }
7549
+ },
7291
7550
  {
7292
7551
  "kind": "field",
7293
7552
  "name": "sourceRows",
@@ -7854,6 +8113,45 @@
7854
8113
  "description": "Draws the numbers of the scale the bars are measured on, the `axis` part,\nat the levels `gridlines` rules: down the side of columns, and along the\nbottom of bars under `orientation=\"horizontal\"`.\n\nAbsent draws none with one scale, since bars compared with each other need\nno numbers. With `secondary` both scales are drawn whatever this says.",
7855
8114
  "fieldName": "valueAxis"
7856
8115
  },
8116
+ {
8117
+ "name": "empty-text",
8118
+ "type": {
8119
+ "text": "string"
8120
+ },
8121
+ "default": "'No readings'",
8122
+ "description": "The words shown in place of the drawing when the table has no readings,\nand the fallback of the `empty` slot.",
8123
+ "fieldName": "emptyText",
8124
+ "inheritedFrom": {
8125
+ "name": "MixinChartStatus",
8126
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
8127
+ }
8128
+ },
8129
+ {
8130
+ "name": "loading",
8131
+ "type": {
8132
+ "text": "boolean"
8133
+ },
8134
+ "default": "false",
8135
+ "description": "Whether the readings are still on their way. The chart shows\n`loading-text` in place of an empty drawing until it has readings.\n\nReflected, so a stylesheet can treat the chart while it waits. A chart\nthat already has readings keeps drawing them, so a refresh does not\nblank it.",
8136
+ "fieldName": "loading",
8137
+ "inheritedFrom": {
8138
+ "name": "MixinChartStatus",
8139
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
8140
+ }
8141
+ },
8142
+ {
8143
+ "name": "loading-text",
8144
+ "type": {
8145
+ "text": "string"
8146
+ },
8147
+ "default": "'Loading readings'",
8148
+ "description": "The words shown in place of the drawing while `loading` is set and\nthere are no readings yet, and the fallback of the `loading` slot.",
8149
+ "fieldName": "loadingText",
8150
+ "inheritedFrom": {
8151
+ "name": "MixinChartStatus",
8152
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
8153
+ }
8154
+ },
7857
8155
  {
7858
8156
  "name": "for",
7859
8157
  "type": {
@@ -7908,6 +8206,10 @@
7908
8206
  }
7909
8207
  ],
7910
8208
  "mixins": [
8209
+ {
8210
+ "name": "MixinChartStatus",
8211
+ "package": "@fusion.dev/helix-core"
8212
+ },
7911
8213
  {
7912
8214
  "name": "MixinChartSource",
7913
8215
  "package": "@fusion.dev/helix-core"
@@ -56149,6 +56451,19 @@
56149
56451
  "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
56150
56452
  }
56151
56453
  },
56454
+ {
56455
+ "kind": "field",
56456
+ "name": "data",
56457
+ "type": {
56458
+ "text": "ChartData | undefined"
56459
+ },
56460
+ "default": "undefined",
56461
+ "description": "The readings as data, in the shape of a table, where the page has no\ntable to point `for` at. `for` wins where both are set.\n\n```js\nchart.data = {\n caption: 'Sessions by channel',\n columns: ['Month', 'Direct', 'Referral'],\n rows: [['Jan', 10, 4], ['Feb', 20, 8]],\n}\n```\n\nThe first column holds each row's label and every column after it a\nseries, as in a table. A cell is a number, words, `null` for a blank,\nor `{ value, text }` for a number shown as words, such as `$128k`. A\nnumber is shown in `locale`.\n\n**A table is still the better source where the page can show one**:\nit reads with no script and before hydration, and a reader can sort and\ncopy it. Data is drawn on the client only, so a server serves the\nframe, and the summary, the keys and the readout are then the whole of\nwhat a screen reader is given. Set a new object to redraw: the chart\ndoes not look inside the one it has.",
56462
+ "inheritedFrom": {
56463
+ "name": "MixinChartSource",
56464
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
56465
+ }
56466
+ },
56152
56467
  {
56153
56468
  "kind": "field",
56154
56469
  "name": "for",
@@ -56285,6 +56600,19 @@
56285
56600
  "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
56286
56601
  }
56287
56602
  },
56603
+ {
56604
+ "kind": "field",
56605
+ "name": "readingsKnown",
56606
+ "type": {
56607
+ "text": "boolean"
56608
+ },
56609
+ "description": "Whether the readings have been looked for: false on the server and\nwhile hydrating, where no table is resolved and no data is read. A\nchart says it has no readings only once this is true.",
56610
+ "readonly": true,
56611
+ "inheritedFrom": {
56612
+ "name": "MixinChartSource",
56613
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
56614
+ }
56615
+ },
56288
56616
  {
56289
56617
  "kind": "field",
56290
56618
  "name": "sourceRows",
@@ -73287,7 +73615,7 @@
73287
73615
  "text": "boolean"
73288
73616
  },
73289
73617
  "privacy": "private",
73290
- "description": "Whether this render can tell a table with no readings from one it has not\nresolved yet.\n\n**Unknown is not empty, which is what an empty state must never say.**\n`for` names an id and resolving an id wants a document, so a server has\nnone and a hydrating render must not look either. Without this the server\ndrew \"No readings\" over a table holding ninety days of them, a crawler read\nthat sentence, and the strip flipped to a full one on hydration: the fault\n`MixinCollection` names for a slotted collection, arriving through the one\nchannel that mixin cannot see.\n\nThe same shape as `childrenKnown`, asked of a tree that can answer about\nids rather than of one that holds children. An id that resolves to nothing\nin a browser is still known, and still empty: a `for` naming no table\nshould say so rather than sit blank, which is why this asks\n`searchableById` and not `elementById`.",
73618
+ "description": "Whether this render can tell a table with no readings from one it has not\nresolved yet.\n\n**Unknown is not empty, which is what an empty state must never say.**\n`for` names an id and resolving an id wants a document, so a server has\nnone and a hydrating render must not look either. Without this the server\ndrew \"No readings\" over a table holding ninety days of them, a crawler read\nthat sentence, and the strip flipped to a full one on hydration: the fault\n`MixinCollection` names for a slotted collection, arriving through the one\nchannel that mixin cannot see.\n\nThe same shape as `childrenKnown`, asked of a tree that can answer about\nids rather than of one that holds children. An id that resolves to nothing\nin a browser is still known, and still empty: a `for` naming no table\nshould say so rather than sit blank, which is why this asks\n`searchableById` and not `elementById`.\n\n`readingsKnown` asks it for every chart, and for `data` too, which a\nserver does not draw.",
73291
73619
  "readonly": true
73292
73620
  },
73293
73621
  {
@@ -73487,6 +73815,19 @@
73487
73815
  "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
73488
73816
  }
73489
73817
  },
73818
+ {
73819
+ "kind": "field",
73820
+ "name": "data",
73821
+ "type": {
73822
+ "text": "ChartData | undefined"
73823
+ },
73824
+ "default": "undefined",
73825
+ "description": "The readings as data, in the shape of a table, where the page has no\ntable to point `for` at. `for` wins where both are set.\n\n```js\nchart.data = {\n caption: 'Sessions by channel',\n columns: ['Month', 'Direct', 'Referral'],\n rows: [['Jan', 10, 4], ['Feb', 20, 8]],\n}\n```\n\nThe first column holds each row's label and every column after it a\nseries, as in a table. A cell is a number, words, `null` for a blank,\nor `{ value, text }` for a number shown as words, such as `$128k`. A\nnumber is shown in `locale`.\n\n**A table is still the better source where the page can show one**:\nit reads with no script and before hydration, and a reader can sort and\ncopy it. Data is drawn on the client only, so a server serves the\nframe, and the summary, the keys and the readout are then the whole of\nwhat a screen reader is given. Set a new object to redraw: the chart\ndoes not look inside the one it has.",
73826
+ "inheritedFrom": {
73827
+ "name": "MixinChartSource",
73828
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
73829
+ }
73830
+ },
73490
73831
  {
73491
73832
  "kind": "field",
73492
73833
  "name": "for",
@@ -73623,6 +73964,19 @@
73623
73964
  "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
73624
73965
  }
73625
73966
  },
73967
+ {
73968
+ "kind": "field",
73969
+ "name": "readingsKnown",
73970
+ "type": {
73971
+ "text": "boolean"
73972
+ },
73973
+ "description": "Whether the readings have been looked for: false on the server and\nwhile hydrating, where no table is resolved and no data is read. A\nchart says it has no readings only once this is true.",
73974
+ "readonly": true,
73975
+ "inheritedFrom": {
73976
+ "name": "MixinChartSource",
73977
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
73978
+ }
73979
+ },
73626
73980
  {
73627
73981
  "kind": "field",
73628
73982
  "name": "sourceRows",
@@ -85249,7 +85603,7 @@
85249
85603
  "declarations": [
85250
85604
  {
85251
85605
  "kind": "class",
85252
- "description": "A line chart shows the shape of each series: where the readings went.\n\nThe scale covers the range of the data. Including zero in the range of a\nseries that moves between 980 and 1020 would flatten the line into a rule\nacross the top of the box. `BarChart` always starts at zero, because a bar's\nlength is its value. Set `zero` when the distance from zero is the point.\n\nEvery series shares one scale, as in the bar chart.\n\n`dashed` names the series drawn as a dashed line, such as a forecast or a\ntarget beside the readings: `dashed=\"Forecast\"`. Each takes a\n`line-dashed` part beside `line`.\n\n`area` fills each series down to the floor on its own, so the fills overlap.\nFor a total made of parts, use `Area Chart`, which stacks the series so the\ntop edge is the total and each band is a share.\n\nThe labels are HTML beside the drawing, as in `BarChart`. Text inside an\n`<svg>` that fills its box scales with the box, so the same `font-size` can\nrender at 10px in a narrow chart and 43px in a wide one.\n\n`value-axis` draws the scale's numbers beside the plot, at the levels\n`gridlines` rules, written in `locale`.\n\nThe table is the accessible representation, and the drawing is hidden from\nscreen readers, who get the numbers. The `summary` part names the chart, from\n`label` or the table's caption, and gives each series' latest reading.\n\n**The plot is read by key.** It takes focus, named by `label` or the caption.\nThe left and right arrows move from reading to reading, Home and End go to\nthe first and the last, and the up and down arrows move among the series of\na reading. The tooltip follows, the `live` part says the reading in words,\nand Escape puts the tooltip away.\n\n**A tap shows the reading under it**, and keeps it until a tap lands\nelsewhere. `helix-reading-change` says each move of the reading, by pointer,\ntap or key, and `helix-reading-press` says a reading was clicked, tapped, or\npressed with Enter or Space, for a page that opens what a reading stands for.",
85606
+ "description": "A line chart shows the shape of each series: where the readings went.\n\nThe scale covers the range of the data. Including zero in the range of a\nseries that moves between 980 and 1020 would flatten the line into a rule\nacross the top of the box. `BarChart` always starts at zero, because a bar's\nlength is its value. Set `zero` when the distance from zero is the point.\n\nEvery series shares one scale, as in the bar chart.\n\n`dashed` names the series drawn as a dashed line, such as a forecast or a\ntarget beside the readings: `dashed=\"Forecast\"`. Each takes a\n`line-dashed` part beside `line`.\n\n`area` fills each series down to the floor on its own, so the fills overlap.\nFor a total made of parts, use `Area Chart`, which stacks the series so the\ntop edge is the total and each band is a share.\n\nThe labels are HTML beside the drawing, as in `BarChart`. Text inside an\n`<svg>` that fills its box scales with the box, so the same `font-size` can\nrender at 10px in a narrow chart and 43px in a wide one.\n\n`value-axis` draws the scale's numbers beside the plot, at the levels\n`gridlines` rules, written in `locale`.\n\nThe table is the accessible representation, and the drawing is hidden from\nscreen readers, who get the numbers. The `summary` part names the chart, from\n`label` or the table's caption, and gives each series' latest reading.\n\n**The plot is read by key.** It takes focus, named by `label` or the caption.\nThe left and right arrows move from reading to reading, Home and End go to\nthe first and the last, and the up and down arrows move among the series of\na reading. The tooltip follows, the `live` part says the reading in words,\nand Escape puts the tooltip away.\n\n**A tap shows the reading under it**, and keeps it until a tap lands\nelsewhere. `helix-reading-change` says each move of the reading, by pointer,\ntap or key, and `helix-reading-press` says a reading was clicked, tapped, or\npressed with Enter or Space, for a page that opens what a reading stands for.\n\n**`data` takes the readings as data** where the page has no table to point\n`for` at, in a table's shape: the column headings, then one row per reading\nwith its label first. A table is still the better source where the page can\nshow one, since it reads before any script runs.\n\n**A chart with nothing to draw says so.** A table with no readings shows\n`empty-text`, \"No readings\", in the plot, and `loading` shows `loading-text`\nthere until readings arrive. The `empty` and `loading` slots take markup in\ntheir place, such as a link to add the first reading.",
85253
85607
  "name": "HelixHeadlessLineChart",
85254
85608
  "cssProperties": [
85255
85609
  {
@@ -85282,6 +85636,10 @@
85282
85636
  "description": "The rule at zero, where zero is inside the range.",
85283
85637
  "name": "baseline"
85284
85638
  },
85639
+ {
85640
+ "description": "The words in place of the drawing when the table has no readings: the `empty` slot, falling back to `empty-text`. Not drawn while the table cannot be read yet, on the server and during hydration.",
85641
+ "name": "empty"
85642
+ },
85285
85643
  {
85286
85644
  "description": "One rule across the plot, under `gridlines`.",
85287
85645
  "name": "gridline"
@@ -85310,6 +85668,10 @@
85310
85668
  "description": "The readout: a polite live region that says the reading the keys moved to. Hide it visually.",
85311
85669
  "name": "live"
85312
85670
  },
85671
+ {
85672
+ "description": "The words in place of the drawing while `loading` is set and there are no readings: the `loading` slot, falling back to `loading-text`.",
85673
+ "name": "loading"
85674
+ },
85313
85675
  {
85314
85676
  "description": "The invisible point the tooltip is anchored to.",
85315
85677
  "name": "mark"
@@ -85407,6 +85769,16 @@
85407
85769
  "name": "tooltip-value"
85408
85770
  }
85409
85771
  ],
85772
+ "slots": [
85773
+ {
85774
+ "description": "Content shown in place of the drawing when the table has no readings, such as a link to add the first. Falls back to `empty-text`.",
85775
+ "name": "empty"
85776
+ },
85777
+ {
85778
+ "description": "Content shown in place of the drawing while `loading` is set and there are no readings yet. Falls back to `loading-text`.",
85779
+ "name": "loading"
85780
+ }
85781
+ ],
85410
85782
  "members": [
85411
85783
  {
85412
85784
  "kind": "field",
@@ -85867,6 +86239,70 @@
85867
86239
  },
85868
86240
  "description": "What a pointer resting on a reading shows.\n\nA seam over `drawTooltip`, which holds the markup every chart shares. The\nusual reason to override is arrangement: every cell of the row is already\nthere, including the columns nothing was plotted from."
85869
86241
  },
86242
+ {
86243
+ "kind": "field",
86244
+ "name": "emptyText",
86245
+ "type": {
86246
+ "text": "string"
86247
+ },
86248
+ "default": "'No readings'",
86249
+ "description": "The words shown in place of the drawing when the table has no readings,\nand the fallback of the `empty` slot.",
86250
+ "attribute": "empty-text",
86251
+ "helix": {
86252
+ "words": true
86253
+ },
86254
+ "inheritedFrom": {
86255
+ "name": "MixinChartStatus",
86256
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
86257
+ }
86258
+ },
86259
+ {
86260
+ "kind": "field",
86261
+ "name": "loading",
86262
+ "type": {
86263
+ "text": "boolean"
86264
+ },
86265
+ "default": "false",
86266
+ "description": "Whether the readings are still on their way. The chart shows\n`loading-text` in place of an empty drawing until it has readings.\n\nReflected, so a stylesheet can treat the chart while it waits. A chart\nthat already has readings keeps drawing them, so a refresh does not\nblank it.",
86267
+ "attribute": "loading",
86268
+ "reflects": true,
86269
+ "inheritedFrom": {
86270
+ "name": "MixinChartStatus",
86271
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
86272
+ }
86273
+ },
86274
+ {
86275
+ "kind": "field",
86276
+ "name": "loadingText",
86277
+ "type": {
86278
+ "text": "string"
86279
+ },
86280
+ "default": "'Loading readings'",
86281
+ "description": "The words shown in place of the drawing while `loading` is set and\nthere are no readings yet, and the fallback of the `loading` slot.",
86282
+ "attribute": "loading-text",
86283
+ "helix": {
86284
+ "words": true
86285
+ },
86286
+ "inheritedFrom": {
86287
+ "name": "MixinChartStatus",
86288
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
86289
+ }
86290
+ },
86291
+ {
86292
+ "kind": "method",
86293
+ "name": "renderStatus",
86294
+ "privacy": "protected",
86295
+ "return": {
86296
+ "type": {
86297
+ "text": "TemplateResult | typeof nothing"
86298
+ }
86299
+ },
86300
+ "description": "What stands in the plot while there is nothing to draw: the `loading`\nline, the `empty` line, or nothing while the table cannot be read yet.\n\n`dir=\"auto\"`, so words in a right-to-left script read their own way in\na plot that holds itself left to right, as Scatter Chart's does.",
86301
+ "inheritedFrom": {
86302
+ "name": "MixinChartStatus",
86303
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
86304
+ }
86305
+ },
85870
86306
  {
85871
86307
  "kind": "field",
85872
86308
  "name": "source",
@@ -85890,6 +86326,19 @@
85890
86326
  "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
85891
86327
  }
85892
86328
  },
86329
+ {
86330
+ "kind": "field",
86331
+ "name": "data",
86332
+ "type": {
86333
+ "text": "ChartData | undefined"
86334
+ },
86335
+ "default": "undefined",
86336
+ "description": "The readings as data, in the shape of a table, where the page has no\ntable to point `for` at. `for` wins where both are set.\n\n```js\nchart.data = {\n caption: 'Sessions by channel',\n columns: ['Month', 'Direct', 'Referral'],\n rows: [['Jan', 10, 4], ['Feb', 20, 8]],\n}\n```\n\nThe first column holds each row's label and every column after it a\nseries, as in a table. A cell is a number, words, `null` for a blank,\nor `{ value, text }` for a number shown as words, such as `$128k`. A\nnumber is shown in `locale`.\n\n**A table is still the better source where the page can show one**:\nit reads with no script and before hydration, and a reader can sort and\ncopy it. Data is drawn on the client only, so a server serves the\nframe, and the summary, the keys and the readout are then the whole of\nwhat a screen reader is given. Set a new object to redraw: the chart\ndoes not look inside the one it has.",
86337
+ "inheritedFrom": {
86338
+ "name": "MixinChartSource",
86339
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
86340
+ }
86341
+ },
85893
86342
  {
85894
86343
  "kind": "field",
85895
86344
  "name": "for",
@@ -86026,6 +86475,19 @@
86026
86475
  "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
86027
86476
  }
86028
86477
  },
86478
+ {
86479
+ "kind": "field",
86480
+ "name": "readingsKnown",
86481
+ "type": {
86482
+ "text": "boolean"
86483
+ },
86484
+ "description": "Whether the readings have been looked for: false on the server and\nwhile hydrating, where no table is resolved and no data is read. A\nchart says it has no readings only once this is true.",
86485
+ "readonly": true,
86486
+ "inheritedFrom": {
86487
+ "name": "MixinChartSource",
86488
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
86489
+ }
86490
+ },
86029
86491
  {
86030
86492
  "kind": "field",
86031
86493
  "name": "sourceRows",
@@ -86593,6 +87055,45 @@
86593
87055
  "description": "Whether the range always includes zero.\n\nAbsent measures from the data's own extent, which is what a line is for.\nSet it where the distance from nothing is the point rather than the shape,\nand accept that a series which never approaches zero becomes a flat rule\nnear the top of the box.",
86594
87056
  "fieldName": "zero"
86595
87057
  },
87058
+ {
87059
+ "name": "empty-text",
87060
+ "type": {
87061
+ "text": "string"
87062
+ },
87063
+ "default": "'No readings'",
87064
+ "description": "The words shown in place of the drawing when the table has no readings,\nand the fallback of the `empty` slot.",
87065
+ "fieldName": "emptyText",
87066
+ "inheritedFrom": {
87067
+ "name": "MixinChartStatus",
87068
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
87069
+ }
87070
+ },
87071
+ {
87072
+ "name": "loading",
87073
+ "type": {
87074
+ "text": "boolean"
87075
+ },
87076
+ "default": "false",
87077
+ "description": "Whether the readings are still on their way. The chart shows\n`loading-text` in place of an empty drawing until it has readings.\n\nReflected, so a stylesheet can treat the chart while it waits. A chart\nthat already has readings keeps drawing them, so a refresh does not\nblank it.",
87078
+ "fieldName": "loading",
87079
+ "inheritedFrom": {
87080
+ "name": "MixinChartStatus",
87081
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
87082
+ }
87083
+ },
87084
+ {
87085
+ "name": "loading-text",
87086
+ "type": {
87087
+ "text": "string"
87088
+ },
87089
+ "default": "'Loading readings'",
87090
+ "description": "The words shown in place of the drawing while `loading` is set and\nthere are no readings yet, and the fallback of the `loading` slot.",
87091
+ "fieldName": "loadingText",
87092
+ "inheritedFrom": {
87093
+ "name": "MixinChartStatus",
87094
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
87095
+ }
87096
+ },
86596
87097
  {
86597
87098
  "name": "for",
86598
87099
  "type": {
@@ -86647,6 +87148,10 @@
86647
87148
  }
86648
87149
  ],
86649
87150
  "mixins": [
87151
+ {
87152
+ "name": "MixinChartStatus",
87153
+ "package": "@fusion.dev/helix-core"
87154
+ },
86650
87155
  {
86651
87156
  "name": "MixinChartSource",
86652
87157
  "package": "@fusion.dev/helix-core"
@@ -91994,7 +92499,7 @@
91994
92499
  "declarations": [
91995
92500
  {
91996
92501
  "kind": "class",
91997
- "description": "Draws two concentric circles: a track and a moving arc. The track shows the\narc as a proportion of a whole, and costs one element.\n\n**The center is a slot, empty by default.** Put your logo there once, where\nyour app wraps the loader. When nothing is slotted, nothing extra is\nrendered.\n\nSlotted content does not rotate. Only the arc moves, so a logo stays\nreadable.\n\nThe role is set on the host through `ElementInternals`. A `role` in the\nshadow root would leave the host itself without a role in the light DOM, and\na `role` attribute on the host would be missing from React server-rendered\nmarkup.\n\n**`for` names the region being loaded**, and the loader sets\n`aria-busy=\"true\"` on it for as long as the loader is on the page, so a\nscreen reader waits for the region rather than reading it half filled. Two\nloaders in one region hold it busy until the last one leaves. A region drawn\nafter the loader is marked when it arrives.\n\n**`delay` keeps a quick load from flashing a loader.** The loader stays\nhidden, and silent, for that many milliseconds, and appears only if the work\nis still going. While it waits it carries `:state(waiting)`.",
92502
+ "description": "Draws two concentric circles: a track and a moving arc. The track shows the\narc as a proportion of a whole, and costs one element.\n\n**For work whose length is known, use `Progress` with `shape=\"ring\"`.** It\ndraws the same ring filled to the value, says the value as a progress bar\ndoes, and says when the work is complete. A loader claims no proportion, so\nit takes no value.\n\n**The center is a slot, empty by default.** Put your logo there once, where\nyour app wraps the loader. When nothing is slotted, nothing extra is\nrendered.\n\nSlotted content does not rotate. Only the arc moves, so a logo stays\nreadable.\n\nThe role is set on the host through `ElementInternals`. A `role` in the\nshadow root would leave the host itself without a role in the light DOM, and\na `role` attribute on the host would be missing from React server-rendered\nmarkup.\n\n**`for` names the region being loaded**, and the loader sets\n`aria-busy=\"true\"` on it for as long as the loader is on the page, so a\nscreen reader waits for the region rather than reading it half filled. Two\nloaders in one region hold it busy until the last one leaves. A region drawn\nafter the loader is marked when it arrives.\n\n**`delay` keeps a quick load from flashing a loader.** The loader stays\nhidden, and silent, for that many milliseconds, and appears only if the work\nis still going. While it waits it carries `:state(waiting)`.",
91998
92503
  "name": "HelixHeadlessLoader",
91999
92504
  "cssParts": [
92000
92505
  {
@@ -123470,7 +123975,7 @@
123470
123975
  "declarations": [
123471
123976
  {
123472
123977
  "kind": "class",
123473
- "description": "Determinate by default. Set `indeterminate` for a task whose total is not\nknown yet. Use `Loader` for a short wait or one with no place of its own on\nthe page.\n\nThe indeterminate bar runs a segment across the track and does not fill, so\nit shows that work is happening without claiming a proportion.\n`aria-valuenow` is omitted in that state, which is the platform's signal for\nthe same thing.\n\nThe fill is a fraction of the track, written as a custom property.\n\n**Reaching `max` is said and sent.** When the value arrives at `max` from\nbelow, the bar says `complete-label`, \"Complete\" by default, in a polite\n`live` region and sends `helix-complete`, so a reader hears that the work is\ndone and a page can move on. A bar that starts full says nothing, and an\nempty `complete-label` keeps it quiet. The `complete` custom state is set\nwhile the bar is full.",
123978
+ "description": "Determinate by default. Set `indeterminate` for a task whose total is not\nknown yet. Use `Loader` for a short wait or one with no place of its own on\nthe page.\n\nThe indeterminate bar runs a segment across the track and does not fill, so\nit shows that work is happening without claiming a proportion.\n`aria-valuenow` is omitted in that state, which is the platform's signal for\nthe same thing.\n\nThe fill is a fraction of the track, written as a custom property.\n\n**The reading is said in the words the bar would show**: a whole percentage\nof the range in `locale`, the reading `format-options` writes, or\n`value-text`, as `aria-valuetext` beside the number.\n\n**Words set in the default slot are drawn on the bar**, or in the middle of a\nring, such as `62%` or `3 of 8`, and are what the bar says as its reading\nwhere `value-text` is not set. While there are any, the bar carries\n`:state(content)`, so a sheet can make room for them.\n\n**Reaching `max` is said and sent.** When the value arrives at `max` from\nbelow, the bar says `complete-label`, \"Complete\" by default, in a polite\n`live` region and sends `helix-complete`, so a reader hears that the work is\ndone and a page can move on. A bar that starts full says nothing, and an\nempty `complete-label` keeps it quiet. The `complete` custom state is set\nwhile the bar is full.",
123474
123979
  "name": "HelixHeadlessProgress",
123475
123980
  "cssProperties": [
123476
123981
  {
@@ -123479,6 +123984,10 @@
123479
123984
  }
123480
123985
  ],
123481
123986
  "cssParts": [
123987
+ {
123988
+ "description": "The box holding the words of the default slot, over the track or in the middle of the ring. Carries `--progress-fraction`.",
123989
+ "name": "content"
123990
+ },
123482
123991
  {
123483
123992
  "description": "The unfilled circle under the ring's filled arc.",
123484
123993
  "name": "groove"
@@ -123501,6 +124010,10 @@
123501
124010
  }
123502
124011
  ],
123503
124012
  "slots": [
124013
+ {
124014
+ "description": "Words drawn on the bar, or in the middle of a ring, such as the reading. Said as the reading where `value-text` is not set.",
124015
+ "name": ""
124016
+ },
123504
124017
  {
123505
124018
  "description": "A visible label. Its words name the progress bar in place of `label`.",
123506
124019
  "name": "label"
@@ -123536,7 +124049,7 @@
123536
124049
  "type": {
123537
124050
  "text": "Intl.NumberFormatOptions | undefined"
123538
124051
  },
123539
- "description": "`Intl.NumberFormat` options the reading is written with, as React Aria's\nMeter and ProgressBar take them: a unit, a currency, or a number of\ndecimals. Written as JSON in the attribute.\n\n```html\n<helix-progress value=\"18\" max=\"32\" format-options='{\"style\":\"unit\",\"unit\":\"gigabyte\"}'></helix-progress>\n```\n\nA `percent` style writes the share of the range, and any other the value\nitself, so the example says \"18 GB\". Absent is a whole percentage. The\nwords are announced as well as shown. `value-text` still wins.",
124052
+ "description": "`Intl.NumberFormat` options the reading is written with, as React Aria's\nMeter and ProgressBar take them: a unit, a currency, or a number of\ndecimals. Written as JSON in the attribute.\n\n```html\n<helix-progress value=\"18\" max=\"32\" format-options='{\"style\":\"unit\",\"unit\":\"gigabyte\"}'></helix-progress>\n```\n\nA `percent` style writes the share of the range, and any other the value\nitself, so the example says \"18 GB\". Absent is a whole percentage. The\nwords are announced whether or not `show-value` shows them. `value-text`\nstill wins.",
123540
124053
  "attribute": "format-options"
123541
124054
  },
123542
124055
  {
@@ -123697,6 +124210,13 @@
123697
124210
  "readonly": true,
123698
124211
  "description": "A label's words changed, so the name is written again."
123699
124212
  },
124213
+ {
124214
+ "kind": "field",
124215
+ "name": "reworded",
124216
+ "privacy": "private",
124217
+ "readonly": true,
124218
+ "description": "The words on the bar changed, so the reading is said again and the state set."
124219
+ },
123700
124220
  {
123701
124221
  "kind": "field",
123702
124222
  "name": "tier",
@@ -124062,7 +124582,7 @@
124062
124582
  "type": {
124063
124583
  "text": "Intl.NumberFormatOptions | undefined"
124064
124584
  },
124065
- "description": "`Intl.NumberFormat` options the reading is written with, as React Aria's\nMeter and ProgressBar take them: a unit, a currency, or a number of\ndecimals. Written as JSON in the attribute.\n\n```html\n<helix-progress value=\"18\" max=\"32\" format-options='{\"style\":\"unit\",\"unit\":\"gigabyte\"}'></helix-progress>\n```\n\nA `percent` style writes the share of the range, and any other the value\nitself, so the example says \"18 GB\". Absent is a whole percentage. The\nwords are announced as well as shown. `value-text` still wins.",
124585
+ "description": "`Intl.NumberFormat` options the reading is written with, as React Aria's\nMeter and ProgressBar take them: a unit, a currency, or a number of\ndecimals. Written as JSON in the attribute.\n\n```html\n<helix-progress value=\"18\" max=\"32\" format-options='{\"style\":\"unit\",\"unit\":\"gigabyte\"}'></helix-progress>\n```\n\nA `percent` style writes the share of the range, and any other the value\nitself, so the example says \"18 GB\". Absent is a whole percentage. The\nwords are announced whether or not `show-value` shows them. `value-text`\nstill wins.",
124066
124586
  "fieldName": "formatOptions"
124067
124587
  },
124068
124588
  {
@@ -124151,6 +124671,10 @@
124151
124671
  "description": "The value is at `max` and the bar is not indeterminate.",
124152
124672
  "name": "complete"
124153
124673
  },
124674
+ {
124675
+ "description": "Words are set in the default slot.",
124676
+ "name": "content"
124677
+ },
124154
124678
  {
124155
124679
  "description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
124156
124680
  "name": "settled",
@@ -130351,7 +130875,7 @@
130351
130875
  "declarations": [
130352
130876
  {
130353
130877
  "kind": "class",
130354
- "description": "A scatter chart shows how two measures relate. The table's first numeric\ncolumn is measured across, every other numeric column is measured up, and\neach row is one point. A table of countries with an income column and a life\nexpectancy column draws one point for each country. Each additional numeric\ncolumn is another series, in its own color.\n\nBoth axes are labeled, because both positions are values. The ticks sit at\nround numbers, and the range extends to them.\n\n`trend` draws each series' line of best fit, by least squares, across the\nplot in the series' color.\n\n**`size-by` names a third measure, drawn as each point's size**, as a bubble\nchart does: `size-by=\"Population\"` takes that column out of the series and\ngives each point an area in proportion to its row's number there. The\ntooltip and the table still say the number.\n\nThe summary gives each series' correlation coefficient and its number of\npoints. The table has every number, and the drawing is hidden from screen\nreaders.\n\n**The plot is read by key.** It takes focus, named by `label` or the caption.\nThe left and right arrows move from row to row in the table's order, Home\nand End go to the first and the last, and the up and down arrows move among\nthe series of a row. The tooltip sits on that point, the `live` part says the\nrow in words, and Escape puts the tooltip away.\n\nEach point is a `<span>` placed by percentage over the drawing, as\n`LineChart` places its end points, so points stay round when the drawing\nstretches.\n\nThe plot runs left to right in every text direction, as a number line does.\nThe plot, its axes, and the axis names sit in a `plane` part with\n`dir=\"ltr\"`. The axis names carry `dir=\"auto\"`, so a name in Arabic or Hebrew\nreads in its own direction. The summary and the tooltip bubble follow the\npage's direction.\n\n**A tap shows the reading under it**, and keeps it until a tap lands\nelsewhere. `helix-reading-change` says each move of the reading, by pointer,\ntap or key, and `helix-reading-press` says a reading was clicked, tapped, or\npressed with Enter or Space, for a page that opens what a reading stands for.",
130878
+ "description": "A scatter chart shows how two measures relate. The table's first numeric\ncolumn is measured across, every other numeric column is measured up, and\neach row is one point. A table of countries with an income column and a life\nexpectancy column draws one point for each country. Each additional numeric\ncolumn is another series, in its own color.\n\nBoth axes are labeled, because both positions are values. The ticks sit at\nround numbers, and the range extends to them.\n\n`trend` draws each series' line of best fit, by least squares, across the\nplot in the series' color.\n\n**`size-by` names a third measure, drawn as each point's size**, as a bubble\nchart does: `size-by=\"Population\"` takes that column out of the series and\ngives each point an area in proportion to its row's number there. The\ntooltip and the table still say the number.\n\nThe summary gives each series' correlation coefficient and its number of\npoints. The table has every number, and the drawing is hidden from screen\nreaders.\n\n**The plot is read by key.** It takes focus, named by `label` or the caption.\nThe left and right arrows move from row to row in the table's order, Home\nand End go to the first and the last, and the up and down arrows move among\nthe series of a row. The tooltip sits on that point, the `live` part says the\nrow in words, and Escape puts the tooltip away.\n\nEach point is a `<span>` placed by percentage over the drawing, as\n`LineChart` places its end points, so points stay round when the drawing\nstretches.\n\nThe plot runs left to right in every text direction, as a number line does.\nThe plot, its axes, and the axis names sit in a `plane` part with\n`dir=\"ltr\"`. The axis names carry `dir=\"auto\"`, so a name in Arabic or Hebrew\nreads in its own direction. The summary and the tooltip bubble follow the\npage's direction.\n\n**A tap shows the reading under it**, and keeps it until a tap lands\nelsewhere. `helix-reading-change` says each move of the reading, by pointer,\ntap or key, and `helix-reading-press` says a reading was clicked, tapped, or\npressed with Enter or Space, for a page that opens what a reading stands for.\n\n**`data` takes the readings as data** where the page has no table to point\n`for` at, in a table's shape: the column headings, then one row per reading\nwith its label first. A table is still the better source where the page can\nshow one, since it reads before any script runs.\n\n**A chart with nothing to draw says so.** A table with no readings shows\n`empty-text`, \"No readings\", in the plot, and `loading` shows `loading-text`\nthere until readings arrive. The `empty` and `loading` slots take markup in\ntheir place, such as a link to add the first reading.",
130355
130879
  "name": "HelixHeadlessScatterChart",
130356
130880
  "cssProperties": [
130357
130881
  {
@@ -130372,6 +130896,10 @@
130372
130896
  }
130373
130897
  ],
130374
130898
  "cssParts": [
130899
+ {
130900
+ "description": "The words in place of the drawing when the table has no readings: the `empty` slot, falling back to `empty-text`. Not drawn while the table cannot be read yet, on the server and during hydration.",
130901
+ "name": "empty"
130902
+ },
130375
130903
  {
130376
130904
  "description": "One line across the plot, drawn when `gridlines` is set.",
130377
130905
  "name": "gridline"
@@ -130380,6 +130908,10 @@
130380
130908
  "description": "The readout: a polite live region that says the row the keys moved to. Hide it visually.",
130381
130909
  "name": "live"
130382
130910
  },
130911
+ {
130912
+ "description": "The words in place of the drawing while `loading` is set and there are no readings: the `loading` slot, falling back to `loading-text`.",
130913
+ "name": "loading"
130914
+ },
130383
130915
  {
130384
130916
  "description": "The invisible point the tooltip is anchored to.",
130385
130917
  "name": "mark"
@@ -130501,6 +131033,16 @@
130501
131033
  "name": "y-tick"
130502
131034
  }
130503
131035
  ],
131036
+ "slots": [
131037
+ {
131038
+ "description": "Content shown in place of the drawing when the table has no readings, such as a link to add the first. Falls back to `empty-text`.",
131039
+ "name": "empty"
131040
+ },
131041
+ {
131042
+ "description": "Content shown in place of the drawing while `loading` is set and there are no readings yet. Falls back to `loading-text`.",
131043
+ "name": "loading"
131044
+ }
131045
+ ],
130504
131046
  "members": [
130505
131047
  {
130506
131048
  "kind": "field",
@@ -130807,6 +131349,70 @@
130807
131349
  "privacy": "private",
130808
131350
  "readonly": true
130809
131351
  },
131352
+ {
131353
+ "kind": "field",
131354
+ "name": "emptyText",
131355
+ "type": {
131356
+ "text": "string"
131357
+ },
131358
+ "default": "'No readings'",
131359
+ "description": "The words shown in place of the drawing when the table has no readings,\nand the fallback of the `empty` slot.",
131360
+ "attribute": "empty-text",
131361
+ "helix": {
131362
+ "words": true
131363
+ },
131364
+ "inheritedFrom": {
131365
+ "name": "MixinChartStatus",
131366
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
131367
+ }
131368
+ },
131369
+ {
131370
+ "kind": "field",
131371
+ "name": "loading",
131372
+ "type": {
131373
+ "text": "boolean"
131374
+ },
131375
+ "default": "false",
131376
+ "description": "Whether the readings are still on their way. The chart shows\n`loading-text` in place of an empty drawing until it has readings.\n\nReflected, so a stylesheet can treat the chart while it waits. A chart\nthat already has readings keeps drawing them, so a refresh does not\nblank it.",
131377
+ "attribute": "loading",
131378
+ "reflects": true,
131379
+ "inheritedFrom": {
131380
+ "name": "MixinChartStatus",
131381
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
131382
+ }
131383
+ },
131384
+ {
131385
+ "kind": "field",
131386
+ "name": "loadingText",
131387
+ "type": {
131388
+ "text": "string"
131389
+ },
131390
+ "default": "'Loading readings'",
131391
+ "description": "The words shown in place of the drawing while `loading` is set and\nthere are no readings yet, and the fallback of the `loading` slot.",
131392
+ "attribute": "loading-text",
131393
+ "helix": {
131394
+ "words": true
131395
+ },
131396
+ "inheritedFrom": {
131397
+ "name": "MixinChartStatus",
131398
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
131399
+ }
131400
+ },
131401
+ {
131402
+ "kind": "method",
131403
+ "name": "renderStatus",
131404
+ "privacy": "protected",
131405
+ "return": {
131406
+ "type": {
131407
+ "text": "TemplateResult | typeof nothing"
131408
+ }
131409
+ },
131410
+ "description": "What stands in the plot while there is nothing to draw: the `loading`\nline, the `empty` line, or nothing while the table cannot be read yet.\n\n`dir=\"auto\"`, so words in a right-to-left script read their own way in\na plot that holds itself left to right, as Scatter Chart's does.",
131411
+ "inheritedFrom": {
131412
+ "name": "MixinChartStatus",
131413
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
131414
+ }
131415
+ },
130810
131416
  {
130811
131417
  "kind": "field",
130812
131418
  "name": "source",
@@ -130830,6 +131436,19 @@
130830
131436
  "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
130831
131437
  }
130832
131438
  },
131439
+ {
131440
+ "kind": "field",
131441
+ "name": "data",
131442
+ "type": {
131443
+ "text": "ChartData | undefined"
131444
+ },
131445
+ "default": "undefined",
131446
+ "description": "The readings as data, in the shape of a table, where the page has no\ntable to point `for` at. `for` wins where both are set.\n\n```js\nchart.data = {\n caption: 'Sessions by channel',\n columns: ['Month', 'Direct', 'Referral'],\n rows: [['Jan', 10, 4], ['Feb', 20, 8]],\n}\n```\n\nThe first column holds each row's label and every column after it a\nseries, as in a table. A cell is a number, words, `null` for a blank,\nor `{ value, text }` for a number shown as words, such as `$128k`. A\nnumber is shown in `locale`.\n\n**A table is still the better source where the page can show one**:\nit reads with no script and before hydration, and a reader can sort and\ncopy it. Data is drawn on the client only, so a server serves the\nframe, and the summary, the keys and the readout are then the whole of\nwhat a screen reader is given. Set a new object to redraw: the chart\ndoes not look inside the one it has.",
131447
+ "inheritedFrom": {
131448
+ "name": "MixinChartSource",
131449
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
131450
+ }
131451
+ },
130833
131452
  {
130834
131453
  "kind": "field",
130835
131454
  "name": "for",
@@ -130966,6 +131585,19 @@
130966
131585
  "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
130967
131586
  }
130968
131587
  },
131588
+ {
131589
+ "kind": "field",
131590
+ "name": "readingsKnown",
131591
+ "type": {
131592
+ "text": "boolean"
131593
+ },
131594
+ "description": "Whether the readings have been looked for: false on the server and\nwhile hydrating, where no table is resolved and no data is read. A\nchart says it has no readings only once this is true.",
131595
+ "readonly": true,
131596
+ "inheritedFrom": {
131597
+ "name": "MixinChartSource",
131598
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
131599
+ }
131600
+ },
130969
131601
  {
130970
131602
  "kind": "field",
130971
131603
  "name": "sourceRows",
@@ -131492,6 +132124,45 @@
131492
132124
  "description": "Draws each series' line of best fit across the plot, by least squares, in\nthe series' color: the regression line a reader would otherwise draw by\neye.\n\nAbsent draws none. A series with fewer than two points, or with every\npoint at one measure across, has no line to draw. The summary already\ngives each series' correlation, which says how near the points are to it.",
131493
132125
  "fieldName": "trend"
131494
132126
  },
132127
+ {
132128
+ "name": "empty-text",
132129
+ "type": {
132130
+ "text": "string"
132131
+ },
132132
+ "default": "'No readings'",
132133
+ "description": "The words shown in place of the drawing when the table has no readings,\nand the fallback of the `empty` slot.",
132134
+ "fieldName": "emptyText",
132135
+ "inheritedFrom": {
132136
+ "name": "MixinChartStatus",
132137
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
132138
+ }
132139
+ },
132140
+ {
132141
+ "name": "loading",
132142
+ "type": {
132143
+ "text": "boolean"
132144
+ },
132145
+ "default": "false",
132146
+ "description": "Whether the readings are still on their way. The chart shows\n`loading-text` in place of an empty drawing until it has readings.\n\nReflected, so a stylesheet can treat the chart while it waits. A chart\nthat already has readings keeps drawing them, so a refresh does not\nblank it.",
132147
+ "fieldName": "loading",
132148
+ "inheritedFrom": {
132149
+ "name": "MixinChartStatus",
132150
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
132151
+ }
132152
+ },
132153
+ {
132154
+ "name": "loading-text",
132155
+ "type": {
132156
+ "text": "string"
132157
+ },
132158
+ "default": "'Loading readings'",
132159
+ "description": "The words shown in place of the drawing while `loading` is set and\nthere are no readings yet, and the fallback of the `loading` slot.",
132160
+ "fieldName": "loadingText",
132161
+ "inheritedFrom": {
132162
+ "name": "MixinChartStatus",
132163
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
132164
+ }
132165
+ },
131495
132166
  {
131496
132167
  "name": "for",
131497
132168
  "type": {
@@ -131546,6 +132217,10 @@
131546
132217
  }
131547
132218
  ],
131548
132219
  "mixins": [
132220
+ {
132221
+ "name": "MixinChartStatus",
132222
+ "package": "@fusion.dev/helix-core"
132223
+ },
131549
132224
  {
131550
132225
  "name": "MixinChartSource",
131551
132226
  "package": "@fusion.dev/helix-core"
@@ -183750,6 +184425,6 @@
183750
184425
  ],
183751
184426
  "helix": {
183752
184427
  "package": "@fusion.dev/helix-headless",
183753
- "version": "0.152.0"
184428
+ "version": "0.153.0"
183754
184429
  }
183755
184430
  }