@fusion.dev/helix 0.184.0 → 0.186.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.
@@ -57497,7 +57497,7 @@
57497
57497
  "declarations": [
57498
57498
  {
57499
57499
  "kind": "class",
57500
- "description": "Rows have hairline rules between them and no fill, and the headings are set\napart by weight and color. Helix shows depth with a single border and no\nelevation, and a header band would be elevation.\n\nThe grid scrolls in its own box, and the toolbar and footer sit outside it,\nso the search field stays in place when the columns scroll sideways.\n\n`windowed` draws only the rows in view, for a result too long to lay out at\nonce, and the headings stay in place while the rows scroll. It works with or\nwithout `paginated` and with either `mode`, so a page or a chunk from a\nserver can be windowed.\n\n**Write the first page as rows, so the served HTML carries the values.**\nWrite it under the columns as `helix-table-row` and `helix-table-cell`\nelements. `@fusion.dev/helix-styles/helix.css` lays them out as the table\ndraws them before it upgrades, and the table shows them until `rows` holds a\nrow.",
57500
+ "description": "Rows have hairline rules between them and no fill, and the headings are set\napart by weight and color. Helix shows depth with a single border and no\nelevation, and a header band would be elevation.\n\nThe grid scrolls in its own box, and the toolbar and footer sit outside it,\nso the search field stays in place when the columns scroll sideways.\n\n`windowed` draws only the rows in view, for a result too long to lay out at\nonce, and the headings stay in place while the rows scroll. It works with or\nwithout `paginated` and with either `mode`, so a page or a chunk from a\nserver can be windowed.\n\n**Write the first page as rows, so the served HTML carries the values.**\nWrite it under the columns as `helix-table-row` and `helix-table-cell`\nelements. `@fusion.dev/helix-styles/helix.css` lays them out as the table\ndraws them before it upgrades, and the table shows them until `rows` holds a\nrow. It holds the checkbox column and the pagination's row from the first\npaint, and takes the widths from `columns`, so nothing moves when the table\nupgrades or draws its own rows.",
57501
57501
  "name": "HelixDataTable",
57502
57502
  "cssProperties": [
57503
57503
  {
@@ -58468,6 +58468,20 @@
58468
58468
  "module": "src/data-table/root/data-table-root.ts"
58469
58469
  }
58470
58470
  },
58471
+ {
58472
+ "kind": "field",
58473
+ "name": "columns",
58474
+ "type": {
58475
+ "text": "string"
58476
+ },
58477
+ "default": "''",
58478
+ "description": "The column tracks, as a grid track list such as `2fr 1fr max-content`,\ndealt out one track to a column in the order the columns are written. A\ncolumn's own `width` wins in its place, and a column it does not reach\ntakes the track a column with no `width` takes.\n\n**The one track list a server can send.** A server rendering this element\nhas no columns to read a `width` from, and neither has a stylesheet laying\nout the rows a page served before the table upgrades, so a table sized here\nlays those rows out at the widths it draws.",
58479
+ "attribute": "columns",
58480
+ "inheritedFrom": {
58481
+ "name": "HelixHeadlessDataTable",
58482
+ "module": "src/data-table/root/data-table-root.ts"
58483
+ }
58484
+ },
58471
58485
  {
58472
58486
  "kind": "field",
58473
58487
  "name": "defaultExpanded",
@@ -59934,7 +59948,7 @@
59934
59948
  "text": "string"
59935
59949
  },
59936
59950
  "privacy": "private",
59937
- "description": "The track list, from the columns if there are any.",
59951
+ "description": "The track list: each column's `width`, or its track in `columns`, or the\ntrack a column with neither takes.\n\nA render that knows no columns, on a server or hydrating what one sent,\nhas `columns` alone, and sends it as it is.",
59938
59952
  "readonly": true,
59939
59953
  "inheritedFrom": {
59940
59954
  "name": "HelixHeadlessDataTable",
@@ -62144,6 +62158,19 @@
62144
62158
  "module": "src/data-table/root/data-table-root.ts"
62145
62159
  }
62146
62160
  },
62161
+ {
62162
+ "name": "columns",
62163
+ "type": {
62164
+ "text": "string"
62165
+ },
62166
+ "default": "''",
62167
+ "description": "The column tracks, as a grid track list such as `2fr 1fr max-content`,\ndealt out one track to a column in the order the columns are written. A\ncolumn's own `width` wins in its place, and a column it does not reach\ntakes the track a column with no `width` takes.\n\n**The one track list a server can send.** A server rendering this element\nhas no columns to read a `width` from, and neither has a stylesheet laying\nout the rows a page served before the table upgrades, so a table sized here\nlays those rows out at the widths it draws.",
62168
+ "fieldName": "columns",
62169
+ "inheritedFrom": {
62170
+ "name": "HelixHeadlessDataTable",
62171
+ "module": "src/data-table/root/data-table-root.ts"
62172
+ }
62173
+ },
62147
62174
  {
62148
62175
  "name": "default-expanded",
62149
62176
  "type": {
@@ -96175,6 +96202,10 @@
96175
96202
  "description": "A graph of linked notes, with the selected note's links and backlinks listed first.",
96176
96203
  "slug": "preview"
96177
96204
  },
96205
+ {
96206
+ "description": "A web service's architecture as an isometric diagram: each service a block, each store a cylinder, and each tier on a plate of its own.",
96207
+ "slug": "architecture"
96208
+ },
96178
96209
  {
96179
96210
  "description": "Eight thousand notes on the surface of a 3D model of a brain, each region of the mind in its lobe of the brain, with thoughts passing between them.",
96180
96211
  "slug": "brain-3d"
@@ -96194,6 +96225,18 @@
96194
96225
  {
96195
96226
  "description": "A graph of company notes drawn by Sigma.js, with notes arriving and messages passing between them as they happen, and a legend that shows or hides each subject.",
96196
96227
  "slug": "live"
96228
+ },
96229
+ {
96230
+ "description": "An office network seen from a steeper angle, turned a little from the front, with each floor on a plate of its own.",
96231
+ "slug": "network"
96232
+ },
96233
+ {
96234
+ "description": "A data pipeline whose notes give no places: the driver lays them out in columns along the links, sources first, turned so the flow runs across the page.",
96235
+ "slug": "pipeline"
96236
+ },
96237
+ {
96238
+ "description": "The same architecture with buttons that turn it a quarter at a time and look at it from above. Shift with a drag turns and tilts it freely.",
96239
+ "slug": "turning"
96197
96240
  }
96198
96241
  ],
96199
96242
  "source": "helix/styled/src/graph"
@@ -99170,7 +99213,7 @@
99170
99213
  "type": {
99171
99214
  "text": "number | undefined"
99172
99215
  },
99173
- "privacy": "private",
99216
+ "privacy": "protected",
99174
99217
  "default": "undefined",
99175
99218
  "description": "The width last measured, or nothing before the first measurement.\n\nUndefined rather than zero, because the two mean different things and the\ndifference is a whole strip: unmeasured has to show everything, since a\nfirst paint that shows one cell and then expands is a flicker on every load.",
99176
99219
  "inheritedFrom": {
@@ -99289,7 +99332,7 @@
99289
99332
  {
99290
99333
  "kind": "field",
99291
99334
  "name": "status",
99292
- "privacy": "private",
99335
+ "privacy": "protected",
99293
99336
  "readonly": true,
99294
99337
  "default": "new StatusController(this)",
99295
99338
  "description": "The region a change of selection is said in, rendered from the first change.",
@@ -99301,7 +99344,7 @@
99301
99344
  {
99302
99345
  "kind": "method",
99303
99346
  "name": "keysOf",
99304
- "privacy": "private",
99347
+ "privacy": "protected",
99305
99348
  "return": {
99306
99349
  "type": {
99307
99350
  "text": "string[]"
@@ -99393,7 +99436,7 @@
99393
99436
  {
99394
99437
  "kind": "field",
99395
99438
  "name": "onStripKeydown",
99396
- "privacy": "private",
99439
+ "privacy": "protected",
99397
99440
  "readonly": true,
99398
99441
  "description": "Notes where the keys rest before the pointer controller moves them.",
99399
99442
  "inheritedFrom": {
@@ -99415,7 +99458,7 @@
99415
99458
  {
99416
99459
  "kind": "field",
99417
99460
  "name": "onClick",
99418
- "privacy": "private",
99461
+ "privacy": "protected",
99419
99462
  "readonly": true,
99420
99463
  "description": "A press on a cell selects it, under `selection-mode`, and Shift takes the\nrectangle to it under `selection-shape=\"rectangle\"`.",
99421
99464
  "inheritedFrom": {
@@ -99429,7 +99472,7 @@
99429
99472
  "type": {
99430
99473
  "text": "Reading[]"
99431
99474
  },
99432
- "privacy": "private",
99475
+ "privacy": "protected",
99433
99476
  "description": "Every row in the table, oldest first, as the table is written, with its\nreading where the row has one.\n\n**Not `readings`, which the mixin already has and which means a count.**\nTwo members of the same name meaning a number and an array is the kind of\ncollision that type-checks in one direction and reads wrong in both.\n\n**One cell per row, and a blank row is a cell with no reading.** Taken from\nthe series alone, a blank dropped its day and every day after it moved one\ncell along, while the tooltip still counted rows and named the day beside\nthe one under the pointer.",
99434
99477
  "readonly": true,
99435
99478
  "inheritedFrom": {
@@ -99443,7 +99486,7 @@
99443
99486
  "type": {
99444
99487
  "text": "number"
99445
99488
  },
99446
- "privacy": "private",
99489
+ "privacy": "protected",
99447
99490
  "description": "`rows` as a usable count, which is not always what the attribute says.\n\nOne place rather than two: the fit arithmetic and the grid template both\nneed it, and a `rows=\"0\"` or a `rows=\"2.5\"` that reached one of them and not\nthe other would draw a strip whose columns and whose capacity disagreed.",
99448
99491
  "readonly": true,
99449
99492
  "inheritedFrom": {
@@ -99457,7 +99500,7 @@
99457
99500
  "type": {
99458
99501
  "text": "number"
99459
99502
  },
99460
- "privacy": "private",
99503
+ "privacy": "protected",
99461
99504
  "description": "The cell width the arithmetic should plan around, in pixels.\n\nThe attribute wins where a consumer wrote one, because that is what writing\nit is for; otherwise what the strip draws, and the declared default only\nuntil the first measurement lands.",
99462
99505
  "readonly": true,
99463
99506
  "inheritedFrom": {
@@ -99471,7 +99514,7 @@
99471
99514
  "type": {
99472
99515
  "text": "number"
99473
99516
  },
99474
- "privacy": "private",
99517
+ "privacy": "protected",
99475
99518
  "description": "The gap the arithmetic should plan around, on the same terms as `cellPx`.",
99476
99519
  "readonly": true,
99477
99520
  "inheritedFrom": {
@@ -99485,7 +99528,7 @@
99485
99528
  "type": {
99486
99529
  "text": "number"
99487
99530
  },
99488
- "privacy": "private",
99531
+ "privacy": "protected",
99489
99532
  "description": "How many cells the container has room for, as a whole number of columns.",
99490
99533
  "readonly": true,
99491
99534
  "inheritedFrom": {
@@ -99514,7 +99557,7 @@
99514
99557
  "type": {
99515
99558
  "text": "Reading[]"
99516
99559
  },
99517
- "privacy": "private",
99560
+ "privacy": "protected",
99518
99561
  "description": "The readings actually drawn, newest kept.\n\nThe tail rather than the head: a status strip that drops the newest days to\nkeep the oldest is answering a question nobody asked.",
99519
99562
  "readonly": true,
99520
99563
  "inheritedFrom": {
@@ -99693,7 +99736,7 @@
99693
99736
  {
99694
99737
  "kind": "field",
99695
99738
  "name": "onPointerOver",
99696
- "privacy": "private",
99739
+ "privacy": "protected",
99697
99740
  "readonly": true,
99698
99741
  "description": "Which drawn cell the pointer is over, or -1.\n\n`pointerover` on the strip rather than a listener per cell: the event\nbubbles, so one handler covers however many cells there are, and unlike\n`mouseover` it is delivered for a pen.",
99699
99742
  "inheritedFrom": {
@@ -99704,7 +99747,7 @@
99704
99747
  {
99705
99748
  "kind": "field",
99706
99749
  "name": "onPointerUp",
99707
- "privacy": "private",
99750
+ "privacy": "protected",
99708
99751
  "readonly": true,
99709
99752
  "inheritedFrom": {
99710
99753
  "name": "HelixHeadlessHeatmap",
@@ -99714,7 +99757,7 @@
99714
99757
  {
99715
99758
  "kind": "field",
99716
99759
  "name": "onPointerLeave",
99717
- "privacy": "private",
99760
+ "privacy": "protected",
99718
99761
  "readonly": true,
99719
99762
  "inheritedFrom": {
99720
99763
  "name": "HelixHeadlessHeatmap",
@@ -102397,7 +102440,7 @@
102397
102440
  "declarations": [
102398
102441
  {
102399
102442
  "kind": "class",
102400
- "description": "Draws in `currentColor` and sizes from `--icon-size`, so an icon takes the\ncolor of the text around it and a container can resize it without a property.\nInside a button, `--icon-size` is set in `em`, so the icon scales with the\nbutton.\n\n**The glyph turns, flips and moves inside its own box**, so the line around\nit keeps its place: `rotate` turns it by a quarter, a half or three\nquarters, `--icon-rotate` by any angle, `flip` mirrors it across either\naxis, and `animation` spins, pulses or beats it, as Web Awesome's icon does.\nReduced motion stills every animation. `auto-width` gives the box the\nglyph's own proportions, for a mark wider than it is tall.\n\n**`@fusion.dev/helix/icon` registers thirteen glyphs by name**, the ones a\ncontrol most often needs, and `@fusion.dev/helix/icon/all` registers the\nwhole set. The headless element lists the thirteen and says how a name is\nresolved.",
102443
+ "description": "Draws in `currentColor` and sizes from `--icon-size`, so an icon takes the\ncolor of the text around it and a container can resize it without a property.\nInside a button, `--icon-size` is set in `em`, so the icon scales with the\nbutton.\n\n**The glyph turns, flips and moves inside its own box**, so the line around\nit keeps its place: `rotate` turns it by a quarter, a half or three\nquarters, `--icon-rotate` by any angle, `flip` mirrors it across either\naxis, and `animation` spins, pulses or beats it, as Web Awesome's icon does.\nReduced motion stills every animation. `auto-width` gives the box the\nglyph's own proportions, for a mark wider than it is tall.",
102401
102444
  "name": "HelixIcon",
102402
102445
  "cssProperties": [
102403
102446
  {
@@ -102527,7 +102570,7 @@
102527
102570
  "text": "string"
102528
102571
  },
102529
102572
  "default": "''",
102530
- "description": "The name of the icon in the Helix set.\n\n**A lookup, and the reason both this and `icon` exist.** A name is a string,\nso it is what markup can carry, and resolving one means an index that no\nbundler can shake. The family's entry indexes a small set, `icon/all`\nindexes the whole set at 15 kB, and `icon/root` indexes nothing, for a\npage that registers the glyphs it names or hands over the value instead.\n\nA name written `prefix:name` asks the library registered under that\nprefix.",
102573
+ "description": "The name of the icon in the Helix set.\n\n**A lookup, and the reason both this and `icon` exist.** A name is a string,\nso it is what markup can carry, and resolving one means an index of the\nwhole set that no bundler can shake: 15 kB for a consumer who renders one\nmark. An attribute is the only thing an HTML author can write, and that is\nworth the index; a consumer who would rather not pay it imports the\nelement from `icon/root` and registers the glyphs it names, or hands over\nthe value instead.\n\nA name written `prefix:name` asks the library registered under that\nprefix.",
102531
102574
  "attribute": "name",
102532
102575
  "inheritedFrom": {
102533
102576
  "name": "HelixHeadlessIcon",
@@ -102711,21 +102754,6 @@
102711
102754
  "module": "src/icon/root/icon-root.ts"
102712
102755
  }
102713
102756
  },
102714
- {
102715
- "kind": "method",
102716
- "name": "auditControl",
102717
- "privacy": "private",
102718
- "return": {
102719
- "type": {
102720
- "text": "void"
102721
- }
102722
- },
102723
- "description": "Asks the button or link a decorative icon sits in whether it has a name.\nIts content is this icon alone where it has none, and the audit says so\nonce, in a development build only. A Helix button reports its own name.",
102724
- "inheritedFrom": {
102725
- "name": "HelixHeadlessIcon",
102726
- "module": "src/icon/root/icon-root.ts"
102727
- }
102728
- },
102729
102757
  {
102730
102758
  "kind": "field",
102731
102759
  "name": "pending",
@@ -103161,7 +103189,7 @@
103161
103189
  "text": "string"
103162
103190
  },
103163
103191
  "default": "''",
103164
- "description": "The name of the icon in the Helix set.\n\n**A lookup, and the reason both this and `icon` exist.** A name is a string,\nso it is what markup can carry, and resolving one means an index that no\nbundler can shake. The family's entry indexes a small set, `icon/all`\nindexes the whole set at 15 kB, and `icon/root` indexes nothing, for a\npage that registers the glyphs it names or hands over the value instead.\n\nA name written `prefix:name` asks the library registered under that\nprefix.",
103192
+ "description": "The name of the icon in the Helix set.\n\n**A lookup, and the reason both this and `icon` exist.** A name is a string,\nso it is what markup can carry, and resolving one means an index of the\nwhole set that no bundler can shake: 15 kB for a consumer who renders one\nmark. An attribute is the only thing an HTML author can write, and that is\nworth the index; a consumer who would rather not pay it imports the\nelement from `icon/root` and registers the glyphs it names, or hands over\nthe value instead.\n\nA name written `prefix:name` asks the library registered under that\nprefix.",
103165
103193
  "fieldName": "name",
103166
103194
  "inheritedFrom": {
103167
103195
  "name": "HelixHeadlessIcon",
@@ -104826,7 +104854,7 @@
104826
104854
  "name": "*",
104827
104855
  "declaration": {
104828
104856
  "name": "*",
104829
- "module": "src/icon/all/index.js"
104857
+ "module": "src/icon/index.js"
104830
104858
  }
104831
104859
  },
104832
104860
  {
@@ -104853,6 +104881,14 @@
104853
104881
  "module": "src/input/index.js"
104854
104882
  }
104855
104883
  },
104884
+ {
104885
+ "kind": "js",
104886
+ "name": "*",
104887
+ "declaration": {
104888
+ "name": "*",
104889
+ "module": "src/isometric-heatmap/index.js"
104890
+ }
104891
+ },
104856
104892
  {
104857
104893
  "kind": "js",
104858
104894
  "name": "*",
@@ -107427,547 +107463,3118 @@
107427
107463
  }
107428
107464
  ],
107429
107465
  "superclass": {
107430
- "name": "HelixHeadlessInput",
107431
- "package": "@fusion.dev/helix-headless/input"
107466
+ "name": "HelixHeadlessInput",
107467
+ "package": "@fusion.dev/helix-headless/input"
107468
+ },
107469
+ "summary": "A field for a single line of text.",
107470
+ "helix": {
107471
+ "category": "forms",
107472
+ "since": "0.1.0",
107473
+ "status": "stable",
107474
+ "documentation": "https://fusion.dev/helix/components/input",
107475
+ "aliases": [
107476
+ "TextField",
107477
+ "Field",
107478
+ "TextInput"
107479
+ ],
107480
+ "tier": "styled",
107481
+ "group": "Input",
107482
+ "part": "Root",
107483
+ "examples": [
107484
+ {
107485
+ "description": "A text field with a label, a placeholder, and a hint.",
107486
+ "slug": "preview"
107487
+ },
107488
+ {
107489
+ "description": "Fields with `autocomplete` tokens the browser can fill, and one with autofill turned off.",
107490
+ "slug": "autocomplete"
107491
+ },
107492
+ {
107493
+ "description": "A field with a control to empty it.",
107494
+ "slug": "clearable"
107495
+ },
107496
+ {
107497
+ "description": "A disabled field, and a field disabled by the `fieldset` around it.",
107498
+ "slug": "disabled"
107499
+ },
107500
+ {
107501
+ "description": "Every event a text field sends, in the order it sends them.",
107502
+ "slug": "events"
107503
+ },
107504
+ {
107505
+ "description": "A field with a message that says what is wrong with its value.",
107506
+ "slug": "invalid"
107507
+ },
107508
+ {
107509
+ "description": "A pattern and length limits on the value, checked by the browser.",
107510
+ "slug": "pattern-and-length"
107511
+ },
107512
+ {
107513
+ "description": "A value that can be read and copied but not changed.",
107514
+ "slug": "read-only"
107515
+ },
107516
+ {
107517
+ "description": "A required field, marked on its label, and the browser's message when it is left empty.",
107518
+ "slug": "required"
107519
+ },
107520
+ {
107521
+ "description": "A password with a control to show what was typed.",
107522
+ "slug": "reveal"
107523
+ }
107524
+ ],
107525
+ "source": "helix/styled/src/input"
107526
+ },
107527
+ "tagName": "helix-input",
107528
+ "customElement": true,
107529
+ "attributes": [
107530
+ {
107531
+ "name": "default-value",
107532
+ "type": {
107533
+ "text": "string"
107534
+ },
107535
+ "default": "''",
107536
+ "description": "The value the control starts with. A form reset returns it to this value,\nand to the `value` attribute where this one is not written, as a native\ncontrol resets to the `value` it declares.",
107537
+ "fieldName": "defaultValue",
107538
+ "inheritedFrom": {
107539
+ "name": "MixinControllerValue",
107540
+ "module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
107541
+ }
107542
+ },
107543
+ {
107544
+ "name": "value",
107545
+ "type": {
107546
+ "text": "string"
107547
+ },
107548
+ "description": "The control's current value, which its form submits.\n\nOne property, not two, so `input.value` answers the question anyone\nasking it meant. Writing always applies; `<helix-input value=\"x\">` is the\nsame statement in markup, and `default-value` is how markup seeds a value\na reset should return to.",
107549
+ "fieldName": "value",
107550
+ "inheritedFrom": {
107551
+ "name": "MixinControllerValue",
107552
+ "module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
107553
+ }
107554
+ },
107555
+ {
107556
+ "name": "aria-label",
107557
+ "type": {
107558
+ "text": "string | null"
107559
+ },
107560
+ "default": "null",
107561
+ "description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
107562
+ "fieldName": "namedBy",
107563
+ "inheritedFrom": {
107564
+ "name": "MixinField",
107565
+ "module": "src/mixins/mixin-field/mixin-field.ts"
107566
+ }
107567
+ },
107568
+ {
107569
+ "name": "feedback",
107570
+ "type": {
107571
+ "text": "string"
107572
+ },
107573
+ "default": "''",
107574
+ "description": "The validation message shown under the control. It replaces the\nbrowser's message.",
107575
+ "fieldName": "feedback",
107576
+ "inheritedFrom": {
107577
+ "name": "MixinField",
107578
+ "module": "src/mixins/mixin-field/mixin-field.ts"
107579
+ }
107580
+ },
107581
+ {
107582
+ "name": "hint",
107583
+ "type": {
107584
+ "text": "string"
107585
+ },
107586
+ "default": "''",
107587
+ "description": "Help text shown under the control. A validation message replaces it.",
107588
+ "fieldName": "hint",
107589
+ "inheritedFrom": {
107590
+ "name": "MixinField",
107591
+ "module": "src/mixins/mixin-field/mixin-field.ts"
107592
+ }
107593
+ },
107594
+ {
107595
+ "name": "label",
107596
+ "type": {
107597
+ "text": "string"
107598
+ },
107599
+ "default": "''",
107600
+ "description": "The field's label, which is also its accessible name. Content in the\n`label` slot replaces it.",
107601
+ "fieldName": "label",
107602
+ "inheritedFrom": {
107603
+ "name": "MixinField",
107604
+ "module": "src/mixins/mixin-field/mixin-field.ts"
107605
+ }
107606
+ },
107607
+ {
107608
+ "name": "required",
107609
+ "type": {
107610
+ "text": "boolean"
107611
+ },
107612
+ "default": "false",
107613
+ "description": "Whether the field needs a value before the form can submit.",
107614
+ "fieldName": "required",
107615
+ "inheritedFrom": {
107616
+ "name": "MixinField",
107617
+ "module": "src/mixins/mixin-field/mixin-field.ts"
107618
+ }
107619
+ },
107620
+ {
107621
+ "name": "value-missing-message",
107622
+ "type": {
107623
+ "text": "string | undefined"
107624
+ },
107625
+ "description": "The message shown when the field is required and empty.\n\n**Absent, or empty, is the control's own sentence**, \"Choose one to\ncontinue.\" on a set and the browser's own on a text field, which the\nbrowser writes in the reader's language. A family with a sentence of its\nown declares it as this property's English, a word property a page\nregisters for its locale under the family's key. Every other word a control speaks is a property,\nand this one was the English a form in another language still spoke in\nthe bubble it raises on submit: `feedback` replaces the message under\nthe field and does not reach that one.",
107626
+ "fieldName": "valueMissingMessage",
107627
+ "inheritedFrom": {
107628
+ "name": "MixinField",
107629
+ "module": "src/mixins/mixin-field/mixin-field.ts"
107630
+ }
107631
+ },
107632
+ {
107633
+ "name": "autocapitalize",
107634
+ "type": {
107635
+ "text": "string"
107636
+ },
107637
+ "default": "''",
107638
+ "description": "Whether a phone capitalizes as the reader types: `off`, `sentences`,\n`words` or `characters`, as the platform's `autocapitalize`.",
107639
+ "fieldName": "autocapitalize",
107640
+ "inheritedFrom": {
107641
+ "name": "HelixHeadlessInput",
107642
+ "module": "src/input/root/input-root.ts"
107643
+ }
107644
+ },
107645
+ {
107646
+ "name": "autocomplete",
107647
+ "type": {
107648
+ "text": "string"
107649
+ },
107650
+ "default": "''",
107651
+ "description": "What the browser may autofill in the field, as an HTML `autocomplete`\ntoken.\n\nEmpty leaves the attribute off, which is the browser's default. Set it to\na token like `email` or `bday` to ask for autofill, or to `off` to refuse.",
107652
+ "fieldName": "autocomplete",
107653
+ "inheritedFrom": {
107654
+ "name": "HelixHeadlessInput",
107655
+ "module": "src/input/root/input-root.ts"
107656
+ }
107657
+ },
107658
+ {
107659
+ "name": "clearable",
107660
+ "type": {
107661
+ "text": "boolean"
107662
+ },
107663
+ "default": "false",
107664
+ "description": "Whether the field shows a button that empties it.\n\nShown only while there is something to clear, because a control that does\nnothing is worse than no control: a reader who presses it and sees no\nchange has to work out whether the field was already empty or the button\nis broken.",
107665
+ "fieldName": "clearable",
107666
+ "inheritedFrom": {
107667
+ "name": "HelixHeadlessInput",
107668
+ "module": "src/input/root/input-root.ts"
107669
+ }
107670
+ },
107671
+ {
107672
+ "name": "clear-label",
107673
+ "type": {
107674
+ "text": "string"
107675
+ },
107676
+ "default": "'Clear'",
107677
+ "description": "The accessible name of the clear button, which shows only an icon.",
107678
+ "fieldName": "clearLabel",
107679
+ "inheritedFrom": {
107680
+ "name": "HelixHeadlessInput",
107681
+ "module": "src/input/root/input-root.ts"
107682
+ }
107683
+ },
107684
+ {
107685
+ "name": "enterkeyhint",
107686
+ "type": {
107687
+ "text": "string"
107688
+ },
107689
+ "default": "''",
107690
+ "description": "The key the on-screen keyboard shows for Enter, as the platform's\n`enterkeyhint`: `search`, `send`, `go`, `next`, `previous`, `done` or\n`enter`.",
107691
+ "fieldName": "enterKeyHint",
107692
+ "inheritedFrom": {
107693
+ "name": "HelixHeadlessInput",
107694
+ "module": "src/input/root/input-root.ts"
107695
+ }
107696
+ },
107697
+ {
107698
+ "name": "inputmode",
107699
+ "type": {
107700
+ "text": "string"
107701
+ },
107702
+ "default": "''",
107703
+ "description": "The keyboard a phone offers, as the platform's `inputmode`, such as\n`numeric` for a code typed as text.",
107704
+ "fieldName": "inputMode",
107705
+ "inheritedFrom": {
107706
+ "name": "HelixHeadlessInput",
107707
+ "module": "src/input/root/input-root.ts"
107708
+ }
107709
+ },
107710
+ {
107711
+ "name": "max",
107712
+ "type": {
107713
+ "text": "string"
107714
+ },
107715
+ "default": "''",
107716
+ "description": "The greatest value, for `type=\"number\"`. Number Input adds steppers and\nkeys to the same bounds.",
107717
+ "fieldName": "max",
107718
+ "inheritedFrom": {
107719
+ "name": "HelixHeadlessInput",
107720
+ "module": "src/input/root/input-root.ts"
107721
+ }
107722
+ },
107723
+ {
107724
+ "name": "maxlength",
107725
+ "type": {
107726
+ "text": "number | undefined"
107727
+ },
107728
+ "description": "Most characters the value may have.",
107729
+ "fieldName": "maxLength",
107730
+ "inheritedFrom": {
107731
+ "name": "HelixHeadlessInput",
107732
+ "module": "src/input/root/input-root.ts"
107733
+ }
107734
+ },
107735
+ {
107736
+ "name": "min",
107737
+ "type": {
107738
+ "text": "string"
107739
+ },
107740
+ "default": "''",
107741
+ "description": "The least value, for `type=\"number\"`.",
107742
+ "fieldName": "min",
107743
+ "inheritedFrom": {
107744
+ "name": "HelixHeadlessInput",
107745
+ "module": "src/input/root/input-root.ts"
107746
+ }
107747
+ },
107748
+ {
107749
+ "name": "minlength",
107750
+ "type": {
107751
+ "text": "number | undefined"
107752
+ },
107753
+ "description": "Fewest characters the value may have.",
107754
+ "fieldName": "minLength",
107755
+ "inheritedFrom": {
107756
+ "name": "HelixHeadlessInput",
107757
+ "module": "src/input/root/input-root.ts"
107758
+ }
107759
+ },
107760
+ {
107761
+ "name": "pattern",
107762
+ "type": {
107763
+ "text": "string"
107764
+ },
107765
+ "default": "''",
107766
+ "description": "A regular expression the value has to match, as the platform reads it.\n\nForwarded rather than checked here, which is the whole reason validity is\nthe platform's: the browser knows what a `pattern` means, anchors it at both\nends, and produces the message in the reader's own language.",
107767
+ "fieldName": "pattern",
107768
+ "inheritedFrom": {
107769
+ "name": "HelixHeadlessInput",
107770
+ "module": "src/input/root/input-root.ts"
107771
+ }
107772
+ },
107773
+ {
107774
+ "name": "placeholder",
107775
+ "type": {
107776
+ "text": "string"
107777
+ },
107778
+ "default": "''",
107779
+ "description": "The text shown while the field is empty.\n\nNot a label: it goes when typing starts.",
107780
+ "fieldName": "placeholder",
107781
+ "inheritedFrom": {
107782
+ "name": "HelixHeadlessInput",
107783
+ "module": "src/input/root/input-root.ts"
107784
+ }
107785
+ },
107786
+ {
107787
+ "name": "readonly",
107788
+ "type": {
107789
+ "text": "boolean"
107790
+ },
107791
+ "default": "false",
107792
+ "description": "Whether the field blocks editing. A read-only field still submits its\nvalue.\n\n**The attribute is `readonly`, which is the platform's spelling.** A\ncamelCase property needs an explicit `attribute`, and dash-casing a word\nHTML writes as one costs what an attribute always costs here: nothing\nwarns. `<helix-headless-input readonly>` is what anybody who has written\nHTML types; against `read-only` it parses to no property at all, and the\nfield stays editable with no error anywhere. Measured on the dash-cased\nform, `readOnly` came back `false`.",
107793
+ "fieldName": "readOnly",
107794
+ "inheritedFrom": {
107795
+ "name": "HelixHeadlessInput",
107796
+ "module": "src/input/root/input-root.ts"
107797
+ }
107798
+ },
107799
+ {
107800
+ "name": "reveal",
107801
+ "type": {
107802
+ "text": "boolean"
107803
+ },
107804
+ "default": "false",
107805
+ "description": "Whether a password field offers a toggle that shows what was typed.\n\nIgnored on every other type. A reveal on an email field would be a button\nthat does nothing visible, and guarding it here rather than asking the\nconsumer not to means the property can be set once on a component that\nchanges type.",
107806
+ "fieldName": "reveal",
107807
+ "inheritedFrom": {
107808
+ "name": "HelixHeadlessInput",
107809
+ "module": "src/input/root/input-root.ts"
107810
+ }
107811
+ },
107812
+ {
107813
+ "name": "reveal-label",
107814
+ "type": {
107815
+ "text": "string"
107816
+ },
107817
+ "default": "'Show password'",
107818
+ "description": "The accessible name of the reveal toggle.\n\nThe state is `aria-pressed`, not this.",
107819
+ "fieldName": "revealLabel",
107820
+ "inheritedFrom": {
107821
+ "name": "HelixHeadlessInput",
107822
+ "module": "src/input/root/input-root.ts"
107823
+ }
107824
+ },
107825
+ {
107826
+ "name": "step",
107827
+ "type": {
107828
+ "text": "string"
107829
+ },
107830
+ "default": "''",
107831
+ "description": "The step a valid value is a multiple of, counted from `min`, for\n`type=\"number\"`.",
107832
+ "fieldName": "step",
107833
+ "inheritedFrom": {
107834
+ "name": "HelixHeadlessInput",
107835
+ "module": "src/input/root/input-root.ts"
107836
+ }
107837
+ },
107838
+ {
107839
+ "name": "type",
107840
+ "type": {
107841
+ "text": "'email' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'url'"
107842
+ },
107843
+ "default": "'text'",
107844
+ "description": "The kind of text the field accepts. It sets the on-screen keyboard and the\nvalidation.\n\n**Not reflected.** Reflection exists so a selector can reach a value, and\nno stylesheet in this repository selects on `type`. Reflecting it writes\n`type=\"text\"` onto every `<helix-headless-input>` ever rendered, an\nattribute no consumer's markup has, which is the fault the area rules write\nup under `Button`'s `href`, `target` and `rel`.\n\nNothing reads it from the attribute either. The real `<input>` inside takes\nit as a property binding, which is what makes the keyboard and the\nvalidation follow.",
107845
+ "fieldName": "type",
107846
+ "inheritedFrom": {
107847
+ "name": "HelixHeadlessInput",
107848
+ "module": "src/input/root/input-root.ts"
107849
+ }
107850
+ },
107851
+ {
107852
+ "name": "disabled",
107853
+ "type": {
107854
+ "text": "boolean"
107855
+ },
107856
+ "default": "false",
107857
+ "description": "Whether the control is disabled and cannot be used.\n\nReflected, because the styled tier selects on it, and mirrored to\n`aria-disabled` rather than removing the element from the accessibility\ntree, so a screen reader can still announce that the control exists.\n\nThe mirror itself is in `willUpdate` below, here rather than in each\ncontrol, because here is where `disabled` is.",
107858
+ "fieldName": "disabled",
107859
+ "inheritedFrom": {
107860
+ "name": "HelixFormElementBase",
107861
+ "module": "src/helix-form-element/helix-form-element-base.ts"
107862
+ }
107863
+ },
107864
+ {
107865
+ "name": "name",
107866
+ "type": {
107867
+ "text": "string"
107868
+ },
107869
+ "default": "''",
107870
+ "description": "The name the control's value is submitted under.\n\n**Reflected, and it is the exception to \"reflect only what CSS selects\non\".** The platform builds a form's entry list from the `name` *content\nattribute*, not from the property, so a control named through the property\nsubmitted under no name at all and was silently dropped. Measured: two\ninputs in one form, one named by attribute and one by property, and the\nform carried a single entry.\n\nSafe for a React consumer, which is what the rule is protecting: React\nrenders a custom element's props as attributes on the server, so the name\nis already in the markup being hydrated and reflecting it writes what is\nthere. It is only a change to the markup when a consumer assigns it\nimperatively later, and nothing is hydrating by then.\n\nHere rather than on each control.",
107871
+ "fieldName": "name",
107872
+ "inheritedFrom": {
107873
+ "name": "HelixFormElementBase",
107874
+ "module": "src/helix-form-element/helix-form-element-base.ts"
107875
+ }
107876
+ }
107877
+ ],
107878
+ "slots": [
107879
+ {
107880
+ "description": "Replaces the cross on the clear button, under `clearable`.",
107881
+ "name": "clear-icon",
107882
+ "inheritedFrom": {
107883
+ "name": "HelixHeadlessInput",
107884
+ "module": "src/input/root/input-root.ts"
107885
+ }
107886
+ },
107887
+ {
107888
+ "description": "Replaces the crossed-out eye on the reveal button while the password shows, under `reveal`.",
107889
+ "name": "conceal-icon",
107890
+ "inheritedFrom": {
107891
+ "name": "HelixHeadlessInput",
107892
+ "module": "src/input/root/input-root.ts"
107893
+ }
107894
+ },
107895
+ {
107896
+ "description": "After the text, for an icon or a unit.",
107897
+ "name": "end",
107898
+ "inheritedFrom": {
107899
+ "name": "HelixHeadlessInput",
107900
+ "module": "src/input/root/input-root.ts"
107901
+ }
107902
+ },
107903
+ {
107904
+ "description": "The message that says what is wrong, for content richer than a string. It shows while there is a message.",
107905
+ "name": "feedback",
107906
+ "inheritedFrom": {
107907
+ "name": "HelixHeadlessInput",
107908
+ "module": "src/input/root/input-root.ts"
107909
+ }
107910
+ },
107911
+ {
107912
+ "description": "Help under the control, for content richer than the `hint` text.",
107913
+ "name": "hint",
107914
+ "inheritedFrom": {
107915
+ "name": "HelixHeadlessInput",
107916
+ "module": "src/input/root/input-root.ts"
107917
+ }
107918
+ },
107919
+ {
107920
+ "description": "The label, for content richer than the `label` text.",
107921
+ "name": "label",
107922
+ "inheritedFrom": {
107923
+ "name": "HelixHeadlessInput",
107924
+ "module": "src/input/root/input-root.ts"
107925
+ }
107926
+ },
107927
+ {
107928
+ "description": "Replaces the eye on the reveal button while the password is hidden, under `reveal`.",
107929
+ "name": "reveal-icon",
107930
+ "inheritedFrom": {
107931
+ "name": "HelixHeadlessInput",
107932
+ "module": "src/input/root/input-root.ts"
107933
+ }
107934
+ },
107935
+ {
107936
+ "description": "Before the text, for an icon or a prefix.",
107937
+ "name": "start",
107938
+ "inheritedFrom": {
107939
+ "name": "HelixHeadlessInput",
107940
+ "module": "src/input/root/input-root.ts"
107941
+ }
107942
+ }
107943
+ ],
107944
+ "cssParts": [
107945
+ {
107946
+ "description": "The button that empties the field.",
107947
+ "name": "clear",
107948
+ "inheritedFrom": {
107949
+ "name": "HelixHeadlessInput",
107950
+ "module": "src/input/root/input-root.ts"
107951
+ }
107952
+ },
107953
+ {
107954
+ "description": "The native input.",
107955
+ "name": "control",
107956
+ "inheritedFrom": {
107957
+ "name": "HelixHeadlessInput",
107958
+ "module": "src/input/root/input-root.ts"
107959
+ }
107960
+ },
107961
+ {
107962
+ "description": "The message that says what is wrong with the value.",
107963
+ "name": "feedback",
107964
+ "inheritedFrom": {
107965
+ "name": "HelixHeadlessInput",
107966
+ "module": "src/input/root/input-root.ts"
107967
+ }
107968
+ },
107969
+ {
107970
+ "description": "The box around the input, its slots, and its buttons.",
107971
+ "name": "field",
107972
+ "inheritedFrom": {
107973
+ "name": "HelixHeadlessInput",
107974
+ "module": "src/input/root/input-root.ts"
107975
+ }
107976
+ },
107977
+ {
107978
+ "description": "Help text under the field, shown while there is no feedback.",
107979
+ "name": "hint",
107980
+ "inheritedFrom": {
107981
+ "name": "HelixHeadlessInput",
107982
+ "module": "src/input/root/input-root.ts"
107983
+ }
107984
+ },
107985
+ {
107986
+ "description": "The label above the field.",
107987
+ "name": "label",
107988
+ "inheritedFrom": {
107989
+ "name": "HelixHeadlessInput",
107990
+ "module": "src/input/root/input-root.ts"
107991
+ }
107992
+ },
107993
+ {
107994
+ "description": "The button that shows and hides a password.",
107995
+ "name": "reveal",
107996
+ "inheritedFrom": {
107997
+ "name": "HelixHeadlessInput",
107998
+ "module": "src/input/root/input-root.ts"
107999
+ }
108000
+ },
108001
+ {
108002
+ "description": "The reveal button while the password is shown, added beside `reveal`.",
108003
+ "name": "reveal-pressed",
108004
+ "inheritedFrom": {
108005
+ "name": "HelixHeadlessInput",
108006
+ "module": "src/input/root/input-root.ts"
108007
+ }
108008
+ }
108009
+ ],
108010
+ "events": [
108011
+ {
108012
+ "type": {
108013
+ "text": "Event"
108014
+ },
108015
+ "description": "Sent when the user finishes changing the value. Relayed from the native input.",
108016
+ "name": "change",
108017
+ "reactProp": "onchange",
108018
+ "inheritedFrom": {
108019
+ "name": "HelixHeadlessInput",
108020
+ "module": "src/input/root/input-root.ts"
108021
+ }
108022
+ },
108023
+ {
108024
+ "type": {
108025
+ "text": "HelixBeforeChangeEvent"
108026
+ },
108027
+ "description": "The text is about to change. Cancelable: cancel it to keep the current text.",
108028
+ "name": "helix-before-change",
108029
+ "reactProp": "onhelix-before-change",
108030
+ "inheritedFrom": {
108031
+ "name": "HelixHeadlessInput",
108032
+ "module": "src/input/root/input-root.ts"
108033
+ }
108034
+ },
108035
+ {
108036
+ "type": {
108037
+ "text": "HelixClearEvent"
108038
+ },
108039
+ "description": "Fired after the clear button has emptied the field, after `input` and `change`.",
108040
+ "name": "helix-clear",
108041
+ "reactProp": "onhelix-clear",
108042
+ "inheritedFrom": {
108043
+ "name": "HelixHeadlessInput",
108044
+ "module": "src/input/root/input-root.ts"
108045
+ }
108046
+ },
108047
+ {
108048
+ "type": {
108049
+ "text": "Event"
108050
+ },
108051
+ "description": "Fired as the value changes.",
108052
+ "name": "input",
108053
+ "reactProp": "oninput",
108054
+ "inheritedFrom": {
108055
+ "name": "HelixHeadlessInput",
108056
+ "module": "src/input/root/input-root.ts"
108057
+ }
108058
+ }
108059
+ ],
108060
+ "cssStates": [
108061
+ {
108062
+ "description": "The field holds no text.",
108063
+ "name": "blank",
108064
+ "inheritedFrom": {
108065
+ "name": "HelixHeadlessInput",
108066
+ "module": "src/input/root/input-root.ts"
108067
+ }
108068
+ },
108069
+ {
108070
+ "description": "The control has an error to show, from the browser's validation, `validate`, or your `feedback`.",
108071
+ "name": "invalid",
108072
+ "inheritedFrom": {
108073
+ "name": "HelixHeadlessInput",
108074
+ "module": "src/input/root/input-root.ts"
108075
+ }
108076
+ },
108077
+ {
108078
+ "description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
108079
+ "name": "settled",
108080
+ "inheritedFrom": {
108081
+ "name": "HelixElement",
108082
+ "module": "src/helix-element/helix-element.ts"
108083
+ }
108084
+ }
108085
+ ],
108086
+ "modulePath": "src/input/root/input-root.ts",
108087
+ "definitionPath": "src/input/root/input-root.ts"
108088
+ }
108089
+ ],
108090
+ "exports": [
108091
+ {
108092
+ "kind": "js",
108093
+ "name": "HelixInput",
108094
+ "declaration": {
108095
+ "name": "HelixInput",
108096
+ "module": "src/input/root/input-root.ts"
108097
+ }
108098
+ },
108099
+ {
108100
+ "kind": "custom-element-definition",
108101
+ "name": "helix-input",
108102
+ "declaration": {
108103
+ "name": "HelixInput",
108104
+ "module": "src/input/root/input-root.ts"
108105
+ }
108106
+ }
108107
+ ]
108108
+ },
108109
+ {
108110
+ "kind": "javascript-module",
108111
+ "path": "src/isometric-heatmap/index.ts",
108112
+ "declarations": [],
108113
+ "exports": [
108114
+ {
108115
+ "kind": "js",
108116
+ "name": "HelixIsometricHeatmap",
108117
+ "declaration": {
108118
+ "name": "HelixIsometricHeatmap",
108119
+ "module": "./root/isometric-heatmap-root.js"
108120
+ }
108121
+ }
108122
+ ]
108123
+ },
108124
+ {
108125
+ "kind": "javascript-module",
108126
+ "path": "src/isometric-heatmap/root/isometric-heatmap-root.css.ts",
108127
+ "declarations": [
108128
+ {
108129
+ "kind": "variable",
108130
+ "name": "styles"
108131
+ }
108132
+ ],
108133
+ "exports": [
108134
+ {
108135
+ "kind": "js",
108136
+ "name": "styles",
108137
+ "declaration": {
108138
+ "name": "styles",
108139
+ "module": "src/isometric-heatmap/root/isometric-heatmap-root.css.ts"
108140
+ }
108141
+ }
108142
+ ]
108143
+ },
108144
+ {
108145
+ "kind": "javascript-module",
108146
+ "path": "src/isometric-heatmap/root/isometric-heatmap-root.ts",
108147
+ "declarations": [
108148
+ {
108149
+ "kind": "class",
108150
+ "description": "Each reading is a prism. The top face takes the cell's tone, and the two\nsides are the same tone, shaded darker, so the whole relief follows your\ntheme's colors.\n\n`tones=\"1 2 3 4 5\"` uses the same five-step ramp as `Heatmap`, so the tone\nand the height both show the value. Set `--isometric-heatmap-cell-size` to\nchange how large a cell may grow.",
108151
+ "name": "HelixIsometricHeatmap",
108152
+ "cssProperties": [
108153
+ {
108154
+ "description": "The largest a cell grows, along its edge. The strip is never wider than its box, and draws smaller cells to fit.",
108155
+ "name": "--isometric-heatmap-cell-size"
108156
+ },
108157
+ {
108158
+ "description": "How much darker the left face is than the top, as a percentage mixed toward black.",
108159
+ "name": "--isometric-heatmap-left-shade"
108160
+ },
108161
+ {
108162
+ "description": "How much darker the right face is than the top, as a percentage mixed toward black.",
108163
+ "name": "--isometric-heatmap-right-shade"
108164
+ },
108165
+ {
108166
+ "description": "The color of the dashed edges of a selected prism, under `selection-mode`. By default, white on a dark face and black on a light one.",
108167
+ "name": "--isometric-heatmap-selected-color"
108168
+ },
108169
+ {
108170
+ "description": "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.",
108171
+ "name": "--isometric-heatmap-span",
108172
+ "inheritedFrom": {
108173
+ "name": "HelixHeadlessIsometricHeatmap",
108174
+ "module": "src/isometric-heatmap/root/isometric-heatmap-root.ts"
108175
+ }
108176
+ },
108177
+ {
108178
+ "description": "How many rows the strip lays out. The component writes it from the data, and the stylesheet that draws the strip reads it.",
108179
+ "name": "--heatmap-rows",
108180
+ "inheritedFrom": {
108181
+ "name": "HelixHeadlessHeatmap",
108182
+ "module": "src/heatmap/root/heatmap-root.ts"
108183
+ }
108184
+ },
108185
+ {
108186
+ "description": "The tone of the cell it is set on. The component writes it, and the stylesheet that paints the cell reads it.",
108187
+ "name": "--heatmap-tone",
108188
+ "inheritedFrom": {
108189
+ "name": "HelixHeadlessHeatmap",
108190
+ "module": "src/heatmap/root/heatmap-root.ts"
108191
+ }
108192
+ },
108193
+ {
108194
+ "description": "The weakest step of the magnitude ramp, used by `tones=\"1 …\"`.",
108195
+ "name": "--heatmap-tone-1",
108196
+ "inheritedFrom": {
108197
+ "name": "HelixHeadlessHeatmap",
108198
+ "module": "src/heatmap/root/heatmap-root.ts"
108199
+ }
108200
+ },
108201
+ {
108202
+ "description": "The second step of the magnitude ramp.",
108203
+ "name": "--heatmap-tone-2",
108204
+ "inheritedFrom": {
108205
+ "name": "HelixHeadlessHeatmap",
108206
+ "module": "src/heatmap/root/heatmap-root.ts"
108207
+ }
108208
+ },
108209
+ {
108210
+ "description": "The third step of the magnitude ramp.",
108211
+ "name": "--heatmap-tone-3",
108212
+ "inheritedFrom": {
108213
+ "name": "HelixHeadlessHeatmap",
108214
+ "module": "src/heatmap/root/heatmap-root.ts"
108215
+ }
108216
+ },
108217
+ {
108218
+ "description": "The fourth step of the magnitude ramp.",
108219
+ "name": "--heatmap-tone-4",
108220
+ "inheritedFrom": {
108221
+ "name": "HelixHeadlessHeatmap",
108222
+ "module": "src/heatmap/root/heatmap-root.ts"
108223
+ }
108224
+ },
108225
+ {
108226
+ "description": "The strongest step of the magnitude ramp.",
108227
+ "name": "--heatmap-tone-5",
108228
+ "inheritedFrom": {
108229
+ "name": "HelixHeadlessHeatmap",
108230
+ "module": "src/heatmap/root/heatmap-root.ts"
108231
+ }
108232
+ },
108233
+ {
108234
+ "description": "The color of the `accent` tone.",
108235
+ "name": "--heatmap-tone-accent",
108236
+ "inheritedFrom": {
108237
+ "name": "HelixHeadlessHeatmap",
108238
+ "module": "src/heatmap/root/heatmap-root.ts"
108239
+ }
108240
+ },
108241
+ {
108242
+ "description": "The color of the `danger` tone.",
108243
+ "name": "--heatmap-tone-danger",
108244
+ "inheritedFrom": {
108245
+ "name": "HelixHeadlessHeatmap",
108246
+ "module": "src/heatmap/root/heatmap-root.ts"
108247
+ }
108248
+ },
108249
+ {
108250
+ "description": "The color of the `info` tone.",
108251
+ "name": "--heatmap-tone-info",
108252
+ "inheritedFrom": {
108253
+ "name": "HelixHeadlessHeatmap",
108254
+ "module": "src/heatmap/root/heatmap-root.ts"
108255
+ }
108256
+ },
108257
+ {
108258
+ "description": "The color of the `muted` tone: a quiet background, for a bucket that means nothing happened.",
108259
+ "name": "--heatmap-tone-muted",
108260
+ "inheritedFrom": {
108261
+ "name": "HelixHeadlessHeatmap",
108262
+ "module": "src/heatmap/root/heatmap-root.ts"
108263
+ }
108264
+ },
108265
+ {
108266
+ "description": "The color of the `primary` tone.",
108267
+ "name": "--heatmap-tone-primary",
108268
+ "inheritedFrom": {
108269
+ "name": "HelixHeadlessHeatmap",
108270
+ "module": "src/heatmap/root/heatmap-root.ts"
108271
+ }
108272
+ },
108273
+ {
108274
+ "description": "The color of the `success` tone, named in `tones` or in `data-tone`.",
108275
+ "name": "--heatmap-tone-success",
108276
+ "inheritedFrom": {
108277
+ "name": "HelixHeadlessHeatmap",
108278
+ "module": "src/heatmap/root/heatmap-root.ts"
108279
+ }
108280
+ },
108281
+ {
108282
+ "description": "The color of the `warning` tone.",
108283
+ "name": "--heatmap-tone-warning",
108284
+ "inheritedFrom": {
108285
+ "name": "HelixHeadlessHeatmap",
108286
+ "module": "src/heatmap/root/heatmap-root.ts"
108287
+ }
108288
+ }
108289
+ ],
108290
+ "members": [
108291
+ {
108292
+ "kind": "field",
108293
+ "name": "tier",
108294
+ "type": {
108295
+ "text": "string"
108296
+ },
108297
+ "static": true,
108298
+ "default": "'helix-'",
108299
+ "description": "The prefix this tier registers its elements under.\n\n**A component that renders another renders its own tier's version of it**,\nso `helix-headless-pagination-size` composes `helix-headless-select` and\n`helix-pagination-size` composes `helix-select`. One template says\n`${this.tag('select')}` and each tier answers with its own name.\n\n**The public tag may not be the composed one, in either tier.** Using it\ncosts three things: the name means two different things depending on what a\nconsumer imported, the headless tier composes an element it does not ship,\nand the composition cannot be tested there at all, because there is no\n`helix-select` on that tier to test it against.\n\n**A prefix rather than an override per composition**, which was the first\nplan and does not compile. An override re-renders the fragment from the\nsubclass, and the fragment reads members the base keeps private:\n`PaginationSize` alone would have had to widen `options`, `current` and\n`handleChange` to `protected` so a subclass could say the same thing again.\nSixteen families of that is a lot of encapsulation spent on saying one\nword differently.",
108300
+ "inheritedFrom": {
108301
+ "name": "HelixElement",
108302
+ "module": "src/helix-element/helix-element.ts"
108303
+ }
108304
+ },
108305
+ {
108306
+ "kind": "field",
108307
+ "name": "minCell",
108308
+ "type": {
108309
+ "text": "number"
108310
+ },
108311
+ "default": "10",
108312
+ "description": "The smallest cell, in CSS pixels, before the strip draws fewer columns.\n`gap` is two pixels at that size, so a prism covers five sixths of its cell.",
108313
+ "attribute": "min-cell",
108314
+ "inheritedFrom": {
108315
+ "name": "HelixHeadlessHeatmap",
108316
+ "module": "src/heatmap/root/heatmap-root.ts"
108317
+ }
108318
+ },
108319
+ {
108320
+ "kind": "field",
108321
+ "name": "words",
108322
+ "type": {
108323
+ "text": "string"
108324
+ },
108325
+ "static": true,
108326
+ "default": "''",
108327
+ "description": "The key `position-label` is registered under: the host's own, which\neach chart names with its styled tag, `static words =\n'helix-line-chart'`. A host with none reads its tag name.",
108328
+ "inheritedFrom": {
108329
+ "name": "MixinChartSource",
108330
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
108331
+ }
108332
+ },
108333
+ {
108334
+ "kind": "field",
108335
+ "name": "markRules",
108336
+ "type": {
108337
+ "text": "readonly string[]"
108338
+ },
108339
+ "privacy": "protected",
108340
+ "static": true,
108341
+ "default": "[]",
108342
+ "description": "The rules from `mark-rules.ts` for the marks this element writes in its\nown shadow root: `data-scroller`, `data-virtual`, `data-spoken` and\n`data-mirror`.\n\nA component that writes a mark names its rule here, and a subclass\ninherits the list. One that writes none takes only the three rules every\nshadow root gets, which is what keeps the other four out of a Button.",
108343
+ "inheritedFrom": {
108344
+ "name": "HelixElement",
108345
+ "module": "src/helix-element/helix-element.ts"
108346
+ }
108347
+ },
108348
+ {
108349
+ "kind": "field",
108350
+ "name": "flat",
108351
+ "type": {
108352
+ "text": "boolean"
108353
+ },
108354
+ "default": "false",
108355
+ "description": "Draws every prism at no height, so the tones lie on a plane.",
108356
+ "attribute": "flat",
108357
+ "inheritedFrom": {
108358
+ "name": "HelixHeadlessIsometricHeatmap",
108359
+ "module": "src/isometric-heatmap/root/isometric-heatmap-root.ts"
108360
+ }
108361
+ },
108362
+ {
108363
+ "kind": "field",
108364
+ "name": "relief",
108365
+ "type": {
108366
+ "text": "number"
108367
+ },
108368
+ "default": "2",
108369
+ "description": "How tall the highest reading stands, in cells. Every other reading stands\nat its share of it.",
108370
+ "attribute": "relief",
108371
+ "inheritedFrom": {
108372
+ "name": "HelixHeadlessIsometricHeatmap",
108373
+ "module": "src/isometric-heatmap/root/isometric-heatmap-root.ts"
108374
+ }
108375
+ },
108376
+ {
108377
+ "kind": "field",
108378
+ "name": "shown",
108379
+ "type": {
108380
+ "text": "Relief | undefined"
108381
+ },
108382
+ "privacy": "private",
108383
+ "default": "undefined",
108384
+ "description": "The prisms drawn on the last render, which the tooltip is placed against.",
108385
+ "inheritedFrom": {
108386
+ "name": "HelixHeadlessIsometricHeatmap",
108387
+ "module": "src/isometric-heatmap/root/isometric-heatmap-root.ts"
108388
+ }
108389
+ },
108390
+ {
108391
+ "kind": "field",
108392
+ "name": "room",
108393
+ "type": {
108394
+ "text": "number"
108395
+ },
108396
+ "privacy": "protected",
108397
+ "description": "How many cells the container has room for, as a whole number of columns.",
108398
+ "readonly": true,
108399
+ "inheritedFrom": {
108400
+ "name": "HelixHeadlessHeatmap",
108401
+ "module": "src/heatmap/root/heatmap-root.ts"
108402
+ }
108403
+ },
108404
+ {
108405
+ "kind": "method",
108406
+ "name": "drawnRelief",
108407
+ "privacy": "private",
108408
+ "return": {
108409
+ "type": {
108410
+ "text": "Relief"
108411
+ }
108412
+ },
108413
+ "description": "The drawn readings as prisms, standing against the highest reading in the table.",
108414
+ "inheritedFrom": {
108415
+ "name": "HelixHeadlessIsometricHeatmap",
108416
+ "module": "src/isometric-heatmap/root/isometric-heatmap-root.ts"
108417
+ }
108418
+ },
108419
+ {
108420
+ "kind": "method",
108421
+ "name": "renderPrism",
108422
+ "privacy": "private",
108423
+ "return": {
108424
+ "type": {
108425
+ "text": "SVGTemplateResult"
108426
+ }
108427
+ },
108428
+ "parameters": [
108429
+ {
108430
+ "name": "index",
108431
+ "type": {
108432
+ "text": "number"
108433
+ }
108434
+ },
108435
+ {
108436
+ "name": "top",
108437
+ "type": {
108438
+ "text": "string"
108439
+ }
108440
+ },
108441
+ {
108442
+ "name": "left",
108443
+ "type": {
108444
+ "text": "string"
108445
+ }
108446
+ },
108447
+ {
108448
+ "name": "right",
108449
+ "type": {
108450
+ "text": "string"
108451
+ }
108452
+ },
108453
+ {
108454
+ "name": "active",
108455
+ "type": {
108456
+ "text": "boolean"
108457
+ }
108458
+ },
108459
+ {
108460
+ "name": "picked",
108461
+ "type": {
108462
+ "text": "boolean"
108463
+ }
108464
+ },
108465
+ {
108466
+ "name": "grid",
108467
+ "type": {
108468
+ "text": "boolean"
108469
+ }
108470
+ },
108471
+ {
108472
+ "name": "tone",
108473
+ "type": {
108474
+ "text": "string | undefined"
108475
+ }
108476
+ }
108477
+ ],
108478
+ "description": "One reading as a prism. The sides come first, so the top face is painted\nover the edge they share with it.\n\nUnder `selection-mode` the prism is a `gridcell` named by its row in the\ntable and saying whether it is selected, as the flat strip's cell is.",
108479
+ "inheritedFrom": {
108480
+ "name": "HelixHeadlessIsometricHeatmap",
108481
+ "module": "src/isometric-heatmap/root/isometric-heatmap-root.ts"
108482
+ }
108483
+ },
108484
+ {
108485
+ "kind": "method",
108486
+ "name": "renderPrismRows",
108487
+ "privacy": "private",
108488
+ "return": {
108489
+ "type": {
108490
+ "text": "SVGTemplateResult[]"
108491
+ }
108492
+ },
108493
+ "parameters": [
108494
+ {
108495
+ "name": "prisms",
108496
+ "type": {
108497
+ "text": "SVGTemplateResult[]"
108498
+ }
108499
+ }
108500
+ ],
108501
+ "description": "The prisms as a grid's rows, one for each column of the strip, which is\nalso the order they are painted in.",
108502
+ "inheritedFrom": {
108503
+ "name": "HelixHeadlessIsometricHeatmap",
108504
+ "module": "src/isometric-heatmap/root/isometric-heatmap-root.ts"
108505
+ }
108506
+ },
108507
+ {
108508
+ "kind": "method",
108509
+ "name": "renderTooltip",
108510
+ "privacy": "protected",
108511
+ "return": {
108512
+ "type": {
108513
+ "text": "TemplateResult | typeof nothing"
108514
+ }
108515
+ },
108516
+ "parameters": [
108517
+ {
108518
+ "name": "grid",
108519
+ "default": "false"
108520
+ }
108521
+ ],
108522
+ "description": "The bubble over the cell a pointer is resting on.\n\n**One tooltip that moves, which is what every other chart here does.** Bar\nChart, Line Chart and Donut Chart each render a single anchor against an\ninvisible mark and move the mark, so the count is one however many readings\nthere are, rather than one element per cell. `drawTooltip` is their shared\nmarkup and this is the fourth caller.\n\nWhat it buys over a native `title` is the row rather than the reading.\n`sourceRows` carries every column of the table including the ones nothing\nwas plotted from, so a cell reads \"11 Jun 2026 / Uptime 81.2% / Note Partial\noutage\" where `title` could only ever say the two values this component\nhappens to hold. It is also styleable, appears at once rather than after the\nplatform's second of delay, and cannot be truncated by the window edge.\n\nThe mark is placed in pixels rather than in percent, which is the one thing\nthis does differently from its siblings: they divide a plot into equal\nslots, and a strip's cells are a fixed size with a fixed gap inside a box\nthat is usually wider, so a percentage of the box lands between cells. The\npitch is `cell + gap` and both are measured.",
108523
+ "inheritedFrom": {
108524
+ "name": "HelixHeadlessHeatmap",
108525
+ "module": "src/heatmap/root/heatmap-root.ts"
108526
+ }
108527
+ },
108528
+ {
108529
+ "kind": "field",
108530
+ "name": "emptyText",
108531
+ "type": {
108532
+ "text": "string"
108533
+ },
108534
+ "default": "'No readings'",
108535
+ "description": "The words shown in place of the drawing when the table has no readings,\nand the fallback of the `empty` slot.",
108536
+ "attribute": "empty-text",
108537
+ "helix": {
108538
+ "words": true
108539
+ },
108540
+ "inheritedFrom": {
108541
+ "name": "MixinChartStatus",
108542
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
108543
+ }
108544
+ },
108545
+ {
108546
+ "kind": "field",
108547
+ "name": "loading",
108548
+ "type": {
108549
+ "text": "boolean"
108550
+ },
108551
+ "default": "false",
108552
+ "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.",
108553
+ "attribute": "loading",
108554
+ "reflects": true,
108555
+ "inheritedFrom": {
108556
+ "name": "MixinChartStatus",
108557
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
108558
+ }
108559
+ },
108560
+ {
108561
+ "kind": "field",
108562
+ "name": "loadingText",
108563
+ "type": {
108564
+ "text": "string"
108565
+ },
108566
+ "default": "'Loading readings'",
108567
+ "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.",
108568
+ "attribute": "loading-text",
108569
+ "helix": {
108570
+ "words": true
108571
+ },
108572
+ "inheritedFrom": {
108573
+ "name": "MixinChartStatus",
108574
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
108575
+ }
108576
+ },
108577
+ {
108578
+ "kind": "method",
108579
+ "name": "renderStatus",
108580
+ "privacy": "protected",
108581
+ "return": {
108582
+ "type": {
108583
+ "text": "TemplateResult | typeof nothing"
108584
+ }
108585
+ },
108586
+ "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.",
108587
+ "inheritedFrom": {
108588
+ "name": "MixinChartStatus",
108589
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
108590
+ }
108591
+ },
108592
+ {
108593
+ "kind": "method",
108594
+ "name": "renderEmpty",
108595
+ "privacy": "protected",
108596
+ "return": {
108597
+ "type": {
108598
+ "text": "TemplateResult"
108599
+ }
108600
+ },
108601
+ "description": "The plot while there is nothing to draw: a group named as the chart is,\nholding `renderStatus`. Not focusable, there being no reading to walk.",
108602
+ "inheritedFrom": {
108603
+ "name": "MixinChartStatus",
108604
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
108605
+ }
108606
+ },
108607
+ {
108608
+ "kind": "field",
108609
+ "name": "source",
108610
+ "privacy": "protected",
108611
+ "readonly": true,
108612
+ "default": "new SourceController(this)",
108613
+ "description": "Resolves `for` and re-renders when the table behind it changes.",
108614
+ "inheritedFrom": {
108615
+ "name": "MixinChartSource",
108616
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
108617
+ }
108618
+ },
108619
+ {
108620
+ "kind": "field",
108621
+ "name": "data",
108622
+ "type": {
108623
+ "text": "ChartData | undefined"
108624
+ },
108625
+ "default": "undefined",
108626
+ "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.",
108627
+ "inheritedFrom": {
108628
+ "name": "MixinChartSource",
108629
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
108630
+ }
108631
+ },
108632
+ {
108633
+ "kind": "field",
108634
+ "name": "for",
108635
+ "type": {
108636
+ "text": "string"
108637
+ },
108638
+ "default": "''",
108639
+ "description": "The id of the table to read.\n\nNames a table in the same tree, so a chart inside another component's\nshadow root reads a table in that root rather than one in the document. A\n`<table>` or anything built from grid roles, including `helix-table`.\n\n**In React this arrives as a property and not as an attribute**, the way\n`Tooltip.for` does, so it does not reflect and nothing styles on it.",
108640
+ "attribute": "for",
108641
+ "inheritedFrom": {
108642
+ "name": "MixinChartSource",
108643
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
108644
+ }
108645
+ },
108646
+ {
108647
+ "kind": "field",
108648
+ "name": "label",
108649
+ "type": {
108650
+ "text": "string"
108651
+ },
108652
+ "default": "''",
108653
+ "description": "The chart's name, which starts the chart's text summary.\n\nAbsent falls back to the table's own caption, which is usually the right\nwords and is already written.",
108654
+ "attribute": "label",
108655
+ "inheritedFrom": {
108656
+ "name": "MixinChartSource",
108657
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
108658
+ }
108659
+ },
108660
+ {
108661
+ "kind": "field",
108662
+ "name": "locale",
108663
+ "type": {
108664
+ "text": "string"
108665
+ },
108666
+ "default": "''",
108667
+ "description": "The locale the chart's own numbers are written in: its axis, its\npercentages and its totals, such as `de` for `1.240` and `32 %`.\n\nAbsent reads the nearest `lang`, then the runtime's own. The table's\ncells are shown as the table writes them, whatever this says.",
108668
+ "attribute": "locale",
108669
+ "inheritedFrom": {
108670
+ "name": "MixinChartSource",
108671
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
108672
+ }
108673
+ },
108674
+ {
108675
+ "kind": "field",
108676
+ "name": "positionLabel",
108677
+ "type": {
108678
+ "text": "string"
108679
+ },
108680
+ "default": "'{position} of {count}'",
108681
+ "description": "Where a reading the keys moved to stands among the readings, said after\nit. `{position}` and `{count}` are replaced with the numbers, written in\n`locale`.\n\nSet it to the words of the page's language, such as `{position} von\n{count}`, or to nothing to say no position. A slice or a series a\nlegend hid is not counted.",
108682
+ "attribute": "position-label",
108683
+ "helix": {
108684
+ "words": true
108685
+ },
108686
+ "inheritedFrom": {
108687
+ "name": "MixinChartSource",
108688
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
108689
+ }
108690
+ },
108691
+ {
108692
+ "kind": "field",
108693
+ "name": "series",
108694
+ "type": {
108695
+ "text": "Series[]"
108696
+ },
108697
+ "description": "The table's columns, one series each. Empty when there is no table.\n\nHeld by the controller between edits, so a render reading this five\ntimes parses the table once. See `SourceController.series`.",
108698
+ "readonly": true,
108699
+ "inheritedFrom": {
108700
+ "name": "MixinChartSource",
108701
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
108702
+ }
108703
+ },
108704
+ {
108705
+ "kind": "field",
108706
+ "name": "named",
108707
+ "type": {
108708
+ "text": "string"
108709
+ },
108710
+ "description": "The chart's name: an `aria-label` written on the chart, then `label`,\nthen the table's caption.\n\nThe fallback is the reason this is shared rather than copied: a caption is\nalready written, already the right words, and already the thing a reader\nof the table sees. A chart that made the consumer say it twice would be\nasking for the second one to drift.\n\n**An `aria-label` on the chart comes first**, because it is how a page\nnames an element, and the chart is a generic around its plot: written\non the host, the name reached nobody. The plot takes it, as Heatmap's\nstrip always did.",
108711
+ "readonly": true,
108712
+ "inheritedFrom": {
108713
+ "name": "MixinChartSource",
108714
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
108715
+ }
108716
+ },
108717
+ {
108718
+ "kind": "field",
108719
+ "name": "plottedColumns",
108720
+ "type": {
108721
+ "text": "number[]"
108722
+ },
108723
+ "description": "The positions of the cells in a row that hold numbers, in table order.\n\nThe same test `readSeries` applies when it drops a column of notes: a\ncolumn is a series where any row parses, so a series survives one blank\ncell and a column of words is never one.",
108724
+ "readonly": true,
108725
+ "inheritedFrom": {
108726
+ "name": "MixinChartSource",
108727
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
108728
+ }
108729
+ },
108730
+ {
108731
+ "kind": "method",
108732
+ "name": "seriesOf",
108733
+ "return": {
108734
+ "type": {
108735
+ "text": "number | undefined"
108736
+ }
108737
+ },
108738
+ "parameters": [
108739
+ {
108740
+ "name": "cell",
108741
+ "type": {
108742
+ "text": "number"
108743
+ }
108744
+ }
108745
+ ],
108746
+ "description": "The palette slot for the cell at this position in a row.\n\n**A cell's place in its row is not its series' depth, and the tooltip\nspent a while assuming it was.** `readSeries` drops a column nothing\nparses and `readRows` keeps it, so one column of notes among the figures\nmoves every column after it one color along in the bubble: a row reading\n`Referral 1,080` wearing series three's green beside a legend that says\nseries three is something else, which is the one failure the dot exists\nto prevent.\n\nOverridden where a chart reads the table some other way. `ScatterChart`\nsplits the first plotted column off as the measure across, so its first\n*plotted* series is this table's second numeric column.",
108747
+ "inheritedFrom": {
108748
+ "name": "MixinChartSource",
108749
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
108750
+ },
108751
+ "type": {
108752
+ "text": "seriesOf(cell: number) => number | undefined"
108753
+ }
108754
+ },
108755
+ {
108756
+ "kind": "method",
108757
+ "name": "showsSeries",
108758
+ "return": {
108759
+ "type": {
108760
+ "text": "boolean"
108761
+ }
108762
+ },
108763
+ "parameters": [
108764
+ {
108765
+ "name": "name",
108766
+ "type": {
108767
+ "text": "string"
108768
+ }
108769
+ }
108770
+ ],
108771
+ "description": "Whether the series of this name is drawn, which it is unless a legend\nreading the same table hid it.\n\nAsked of the table rather than of a legend, the table being the one\nthing the two share: see `SourceController.hide`. A series keeps its\npalette slot while it is hidden, so the colors of the others do not move.\nFor a ring the names are its rows, the slices being the rows.",
108772
+ "inheritedFrom": {
108773
+ "name": "MixinChartSource",
108774
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
108775
+ },
108776
+ "type": {
108777
+ "text": "showsSeries(name: string) => boolean"
108778
+ }
108779
+ },
108780
+ {
108781
+ "kind": "method",
108782
+ "name": "showsColumn",
108783
+ "return": {
108784
+ "type": {
108785
+ "text": "boolean"
108786
+ }
108787
+ },
108788
+ "parameters": [
108789
+ {
108790
+ "name": "cell",
108791
+ "type": {
108792
+ "text": "number"
108793
+ }
108794
+ }
108795
+ ],
108796
+ "description": "Whether the series read from the cell at this place in a row is drawn,\nby its column's heading. The keys and the readout pass over one a\nlegend hid.\n\nA column's heading is the cell's name in every row, so the first row\nanswers for the column.",
108797
+ "inheritedFrom": {
108798
+ "name": "MixinChartSource",
108799
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
108800
+ },
108801
+ "type": {
108802
+ "text": "showsColumn(cell: number) => boolean"
108803
+ }
108804
+ },
108805
+ {
108806
+ "kind": "method",
108807
+ "name": "columnName",
108808
+ "return": {
108809
+ "type": {
108810
+ "text": "string"
108811
+ }
108812
+ },
108813
+ "parameters": [
108814
+ {
108815
+ "name": "cell",
108816
+ "type": {
108817
+ "text": "number"
108818
+ }
108819
+ }
108820
+ ],
108821
+ "description": "The heading of the column at this place in a row: a cell's name is its\ncolumn's heading, read from the first row that has a cell there, so a\nshort first row does not lose the heading. `''` where no row has one.",
108822
+ "inheritedFrom": {
108823
+ "name": "MixinChartSource",
108824
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
108825
+ },
108826
+ "type": {
108827
+ "text": "columnName(cell: number) => string"
108828
+ }
108829
+ },
108830
+ {
108831
+ "kind": "field",
108832
+ "name": "readings",
108833
+ "type": {
108834
+ "text": "number"
108835
+ },
108836
+ "description": "The number of readings, which the pointer position maps onto.",
108837
+ "readonly": true,
108838
+ "inheritedFrom": {
108839
+ "name": "MixinChartSource",
108840
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
108841
+ }
108842
+ },
108843
+ {
108844
+ "kind": "method",
108845
+ "name": "renderTable",
108846
+ "privacy": "protected",
108847
+ "return": {
108848
+ "type": {
108849
+ "text": "TemplateResult | typeof nothing"
108850
+ }
108851
+ },
108852
+ "description": "The readings as a table, for a screen reader, where they were drawn from\n`data`: there is then no table on the page to read, and a chart's\nsummary gives only what the readings come to. Nothing where a table on\nthe page was read, which is already the readable version.\n\nThe `table` part, named by the chart, its cells as `data` writes them.",
108853
+ "inheritedFrom": {
108854
+ "name": "MixinChartSource",
108855
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
108856
+ }
108857
+ },
108858
+ {
108859
+ "kind": "field",
108860
+ "name": "busiestLabel",
108861
+ "type": {
108862
+ "text": "string"
108863
+ },
108864
+ "default": "'Busiest'",
108865
+ "description": "The name the `overview` gives the busiest reading, `{busiestLabel}` in\n`overview-label`.",
108866
+ "attribute": "busiest-label",
108867
+ "helix": {
108868
+ "words": true
108869
+ },
108870
+ "inheritedFrom": {
108871
+ "name": "HelixHeadlessHeatmap",
108872
+ "module": "src/heatmap/root/heatmap-root.ts"
108873
+ }
108874
+ },
108875
+ {
108876
+ "kind": "field",
108877
+ "name": "gap",
108878
+ "type": {
108879
+ "text": "number"
108880
+ },
108881
+ "default": "2",
108882
+ "description": "Space between cells, in CSS pixels. It is a number for the same reason\n`min-cell` is.",
108883
+ "attribute": "gap",
108884
+ "inheritedFrom": {
108885
+ "name": "HelixHeadlessHeatmap",
108886
+ "module": "src/heatmap/root/heatmap-root.ts"
108887
+ }
108888
+ },
108889
+ {
108890
+ "kind": "field",
108891
+ "name": "overviewLabel",
108892
+ "type": {
108893
+ "text": "string"
108894
+ },
108895
+ "default": "'{busiestLabel}: {busiest}; {totalLabel} {total}.'",
108896
+ "description": "The `overview`'s sentence. `{busiestLabel}` and `{totalLabel}` are\n`busiest-label` and `total-label`, `{busiest}` the busiest reading's name\nand its reading as the table writes it, and `{total}` the total of the\nreadings drawn, written in the locale.",
108897
+ "attribute": "overview-label",
108898
+ "helix": {
108899
+ "words": true
108900
+ },
108901
+ "inheritedFrom": {
108902
+ "name": "HelixHeadlessHeatmap",
108903
+ "module": "src/heatmap/root/heatmap-root.ts"
108904
+ }
108905
+ },
108906
+ {
108907
+ "kind": "field",
108908
+ "name": "rows",
108909
+ "type": {
108910
+ "text": "number"
108911
+ },
108912
+ "default": "1",
108913
+ "description": "How many rows the strip has.\n\n`1` is a status strip and `7` is a calendar week, which are the two readings\nthis covers. Cells fill down the column and then across, which is what a\ncalendar heatmap does: a week is a column, so the strip reads along the\nline in weeks, from the right on a right-to-left page, and top to bottom in\ndays.",
108914
+ "attribute": "rows",
108915
+ "inheritedFrom": {
108916
+ "name": "HelixHeadlessHeatmap",
108917
+ "module": "src/heatmap/root/heatmap-root.ts"
108918
+ }
108919
+ },
108920
+ {
108921
+ "kind": "field",
108922
+ "name": "selectedLabel",
108923
+ "type": {
108924
+ "text": "string"
108925
+ },
108926
+ "default": "'selected'",
108927
+ "description": "What the readout added for a selected cell, under `selection-mode`.",
108928
+ "attribute": "selected-label",
108929
+ "helix": {
108930
+ "words": true
108931
+ },
108932
+ "inheritedFrom": {
108933
+ "name": "HelixHeadlessHeatmap",
108934
+ "module": "src/heatmap/root/heatmap-root.ts"
108935
+ }
108936
+ },
108937
+ {
108938
+ "kind": "field",
108939
+ "name": "selectionLabel",
108940
+ "type": {
108941
+ "text": "string"
108942
+ },
108943
+ "default": "'{count, plural, one {# selected} other {# selected}}'",
108944
+ "description": "What the `selection` part says after the selection changes. `{count}` is\nhow many cells are selected, written in the locale, and a language that\nneeds plural forms writes them: `{count, plural, one {# wybrany} few\n{# wybrane} many {# wybranych} other {# wybranego}}`.",
108945
+ "attribute": "selection-label",
108946
+ "helix": {
108947
+ "words": true
108948
+ },
108949
+ "inheritedFrom": {
108950
+ "name": "HelixHeadlessHeatmap",
108951
+ "module": "src/heatmap/root/heatmap-root.ts"
108952
+ }
108953
+ },
108954
+ {
108955
+ "kind": "field",
108956
+ "name": "selectionMode",
108957
+ "type": {
108958
+ "text": "'multiple' | 'single' | undefined"
108959
+ },
108960
+ "description": "How many cells a reader can select: `single` or `multiple`.\n\nAbsent selects nothing, and a press or Space does what it did.",
108961
+ "attribute": "selection-mode",
108962
+ "inheritedFrom": {
108963
+ "name": "HelixHeadlessHeatmap",
108964
+ "module": "src/heatmap/root/heatmap-root.ts"
108965
+ }
108966
+ },
108967
+ {
108968
+ "kind": "field",
108969
+ "name": "selectionShape",
108970
+ "type": {
108971
+ "text": "'linear' | 'rectangle'"
108972
+ },
108973
+ "default": "'linear'",
108974
+ "description": "What Shift takes in under `selection-mode=\"multiple\"`: `linear`, every\ncell between two in the table's order, or `rectangle`, the cells between\ntwo corners by row and by column, as a spreadsheet selects a range.",
108975
+ "attribute": "selection-shape",
108976
+ "inheritedFrom": {
108977
+ "name": "HelixHeadlessHeatmap",
108978
+ "module": "src/heatmap/root/heatmap-root.ts"
108979
+ }
108980
+ },
108981
+ {
108982
+ "kind": "field",
108983
+ "name": "stripLabel",
108984
+ "type": {
108985
+ "text": "string"
108986
+ },
108987
+ "default": "'Heatmap'",
108988
+ "description": "The strip's name where the chart has none: no `aria-label`, `label`, or\ntable caption.",
108989
+ "attribute": "strip-label",
108990
+ "helix": {
108991
+ "words": true
108992
+ },
108993
+ "inheritedFrom": {
108994
+ "name": "HelixHeadlessHeatmap",
108995
+ "module": "src/heatmap/root/heatmap-root.ts"
108996
+ }
108997
+ },
108998
+ {
108999
+ "kind": "field",
109000
+ "name": "thresholds",
109001
+ "type": {
109002
+ "text": "string"
109003
+ },
109004
+ "default": "''",
109005
+ "description": "Lower bounds for the tone buckets, in the order the tones are given.\n\n`thresholds=\"1 3 6 9\"` with `tones=\"1 2 3 4\"` puts 1 and 2 in the ramp's\nfirst step, 3 to 5 in the second, 6 to 8 in the third, and 9 upward in the\nfourth. A value below the first bound gets no tone at all: an empty day in a\ncontribution graph is a day with nothing in it, and painting it as the\nlowest bucket claims a reading that does not exist.",
109006
+ "attribute": "thresholds",
109007
+ "inheritedFrom": {
109008
+ "name": "HelixHeadlessHeatmap",
109009
+ "module": "src/heatmap/root/heatmap-root.ts"
109010
+ }
109011
+ },
109012
+ {
109013
+ "kind": "field",
109014
+ "name": "tones",
109015
+ "type": {
109016
+ "text": "string"
109017
+ },
109018
+ "default": "''",
109019
+ "description": "The tone for each bucket, in the same order as `thresholds`.\n\nA name, resolved as `--heatmap-tone-<name>` by whichever tier answers.\n**`\"1\"` through `\"5\"` are a ramp and everything else is a category**, which\nis the distinction a heatmap lives or dies on: magnitude has to be one hue\ngetting louder, because a reader compares two cells by weight and cannot\ncompare two hues at all. `tones=\"surface info accent success primary\"` for a\ncommit count is five unrelated hues for five amounts, which is confetti with\nno order in it.",
109020
+ "attribute": "tones",
109021
+ "inheritedFrom": {
109022
+ "name": "HelixHeadlessHeatmap",
109023
+ "module": "src/heatmap/root/heatmap-root.ts"
109024
+ }
109025
+ },
109026
+ {
109027
+ "kind": "field",
109028
+ "name": "totalLabel",
109029
+ "type": {
109030
+ "text": "string"
109031
+ },
109032
+ "default": "'Total'",
109033
+ "description": "The name the `overview` gives the total of the readings drawn,\n`{totalLabel}` in `overview-label`.",
109034
+ "attribute": "total-label",
109035
+ "helix": {
109036
+ "words": true
109037
+ },
109038
+ "inheritedFrom": {
109039
+ "name": "HelixHeadlessHeatmap",
109040
+ "module": "src/heatmap/root/heatmap-root.ts"
109041
+ }
109042
+ },
109043
+ {
109044
+ "kind": "field",
109045
+ "name": "value",
109046
+ "type": {
109047
+ "text": "string"
109048
+ },
109049
+ "default": "''",
109050
+ "description": "The selected cells, separated by commas: each by the date its row's\nheader carries in a `<time datetime>`, such as `2026-06-11`, or by the\nheader's words where it carries none.\n\nSet it to start with cells selected. Written by a press or a key under\n`selection-mode`.",
109051
+ "attribute": "value",
109052
+ "inheritedFrom": {
109053
+ "name": "HelixHeadlessHeatmap",
109054
+ "module": "src/heatmap/root/heatmap-root.ts"
109055
+ }
109056
+ },
109057
+ {
109058
+ "kind": "field",
109059
+ "name": "visible",
109060
+ "type": {
109061
+ "text": "number"
109062
+ },
109063
+ "description": "How many cells are actually drawn.\n\n**This is the number a summary has to agree with**, and the reason it is\npublished at all: a consumer's own summary is their markup and this element\ncannot rewrite it, so the only honest arrangement is to hand over the count\nand say when it changed.\n\n**A plain getter, and the attribute is written in `updated`, because\n`@property({ reflect: true })` on a getter with no setter reflects once and\nthen goes stale.** Lit reflects a property that is in `changedProperties`,\nand nothing puts a derived getter there after the first update: the\nattribute would be right on load and wrong from the first resize, which is\nthe exact failure the count exists to prevent, arriving through the\nmechanism meant to prevent it.",
109064
+ "readonly": true,
109065
+ "inheritedFrom": {
109066
+ "name": "HelixHeadlessHeatmap",
109067
+ "module": "src/heatmap/root/heatmap-root.ts"
109068
+ }
109069
+ },
109070
+ {
109071
+ "kind": "field",
109072
+ "name": "width",
109073
+ "type": {
109074
+ "text": "number | undefined"
109075
+ },
109076
+ "privacy": "protected",
109077
+ "default": "undefined",
109078
+ "description": "The width last measured, or nothing before the first measurement.\n\nUndefined rather than zero, because the two mean different things and the\ndifference is a whole strip: unmeasured has to show everything, since a\nfirst paint that shows one cell and then expands is a flicker on every load.",
109079
+ "inheritedFrom": {
109080
+ "name": "HelixHeadlessHeatmap",
109081
+ "module": "src/heatmap/root/heatmap-root.ts"
109082
+ }
109083
+ },
109084
+ {
109085
+ "kind": "field",
109086
+ "name": "metrics",
109087
+ "type": {
109088
+ "text": "{ cell: number; gap: number } | undefined"
109089
+ },
109090
+ "privacy": "private",
109091
+ "default": "undefined",
109092
+ "description": "The cell and gap the strip is drawing, in pixels, once it has been read.\n\n**The arithmetic's inputs are a stylesheet's decisions, so the honest way\nto learn them is to ask the stylesheet.** A cell's size is a length that\nonly the cascade can resolve: it may be a `rem` against a root font size, a\npercentage of a container, or whatever a container query chose this frame.\nEvery one of those is invisible to a number typed into an attribute, and\nevery hook a sheet offers for the cell box or the gap is one more way for\nthe two to drift apart silently.\n\nReading it back is not styling and does not breach the tier: this asks what\nwas decided rather than deciding, which is the same direction as the facts\nthis component writes out as custom properties, run backwards.",
109093
+ "inheritedFrom": {
109094
+ "name": "HelixHeadlessHeatmap",
109095
+ "module": "src/heatmap/root/heatmap-root.ts"
109096
+ }
109097
+ },
109098
+ {
109099
+ "kind": "field",
109100
+ "name": "aria",
109101
+ "privacy": "protected",
109102
+ "readonly": true,
109103
+ "default": "new AriaForwardController(this, { target: () => this.partNamed('strip'), })",
109104
+ "description": "Carries a host `aria-labelledby` and `aria-describedby` to the strip, the\nimage a reader lands on. The host is a generic around it.",
109105
+ "inheritedFrom": {
109106
+ "name": "HelixHeadlessHeatmap",
109107
+ "module": "src/heatmap/root/heatmap-root.ts"
109108
+ }
109109
+ },
109110
+ {
109111
+ "kind": "field",
109112
+ "name": "observer",
109113
+ "type": {
109114
+ "text": "ResizeObserver | undefined"
109115
+ },
109116
+ "privacy": "private",
109117
+ "default": "undefined",
109118
+ "inheritedFrom": {
109119
+ "name": "HelixHeadlessHeatmap",
109120
+ "module": "src/heatmap/root/heatmap-root.ts"
109121
+ }
109122
+ },
109123
+ {
109124
+ "kind": "field",
109125
+ "name": "announced",
109126
+ "type": {
109127
+ "text": "number | undefined"
109128
+ },
109129
+ "privacy": "private",
109130
+ "default": "undefined",
109131
+ "inheritedFrom": {
109132
+ "name": "HelixHeadlessHeatmap",
109133
+ "module": "src/heatmap/root/heatmap-root.ts"
109134
+ }
109135
+ },
109136
+ {
109137
+ "kind": "field",
109138
+ "name": "anchor",
109139
+ "type": {
109140
+ "text": "number"
109141
+ },
109142
+ "privacy": "private",
109143
+ "default": "-1",
109144
+ "description": "Where a range taken in with Shift starts: the row of the table whose cell\nwas last pressed, or none.\n\n**The row, and not the cell's place among those drawn.** A narrow strip\ndraws the newest whole columns, so a resize that drops or adds a column\nmoves every cell's place, and an anchor kept as a place started the next\nrange on another day.",
109145
+ "inheritedFrom": {
109146
+ "name": "HelixHeadlessHeatmap",
109147
+ "module": "src/heatmap/root/heatmap-root.ts"
109148
+ }
109149
+ },
109150
+ {
109151
+ "kind": "field",
109152
+ "name": "left",
109153
+ "type": {
109154
+ "text": "number"
109155
+ },
109156
+ "privacy": "private",
109157
+ "default": "-1",
109158
+ "description": "The cell the keys rested on before the key now being handled moved them.",
109159
+ "inheritedFrom": {
109160
+ "name": "HelixHeadlessHeatmap",
109161
+ "module": "src/heatmap/root/heatmap-root.ts"
109162
+ }
109163
+ },
109164
+ {
109165
+ "kind": "field",
109166
+ "name": "base",
109167
+ "type": {
109168
+ "text": "string[] | undefined"
109169
+ },
109170
+ "privacy": "private",
109171
+ "default": "undefined",
109172
+ "description": "What a rectangle is added to: the selection when it was started, less its\nanchor, kept while `value` is still the rectangle last written.",
109173
+ "inheritedFrom": {
109174
+ "name": "HelixHeadlessHeatmap",
109175
+ "module": "src/heatmap/root/heatmap-root.ts"
109176
+ }
109177
+ },
109178
+ {
109179
+ "kind": "field",
109180
+ "name": "shaped",
109181
+ "type": {
109182
+ "text": "string | undefined"
109183
+ },
109184
+ "privacy": "private",
109185
+ "default": "undefined",
109186
+ "description": "The `value` the last rectangle wrote.",
109187
+ "inheritedFrom": {
109188
+ "name": "HelixHeadlessHeatmap",
109189
+ "module": "src/heatmap/root/heatmap-root.ts"
109190
+ }
109191
+ },
109192
+ {
109193
+ "kind": "field",
109194
+ "name": "status",
109195
+ "privacy": "protected",
109196
+ "readonly": true,
109197
+ "default": "new StatusController(this)",
109198
+ "description": "The region a change of selection is said in, rendered from the first change.",
109199
+ "inheritedFrom": {
109200
+ "name": "HelixHeadlessHeatmap",
109201
+ "module": "src/heatmap/root/heatmap-root.ts"
109202
+ }
109203
+ },
109204
+ {
109205
+ "kind": "method",
109206
+ "name": "keysOf",
109207
+ "privacy": "protected",
109208
+ "return": {
109209
+ "type": {
109210
+ "text": "string[]"
109211
+ }
109212
+ },
109213
+ "parameters": [
109214
+ {
109215
+ "name": "cells",
109216
+ "type": {
109217
+ "text": "readonly Reading[]"
109218
+ }
109219
+ }
109220
+ ],
109221
+ "description": "The name each drawn cell stands for in `value`: the date its row's header\ncarries in a `<time datetime>`, or the header's words where it carries\nnone.",
109222
+ "inheritedFrom": {
109223
+ "name": "HelixHeadlessHeatmap",
109224
+ "module": "src/heatmap/root/heatmap-root.ts"
109225
+ }
109226
+ },
109227
+ {
109228
+ "kind": "method",
109229
+ "name": "choose",
109230
+ "privacy": "private",
109231
+ "return": {
109232
+ "type": {
109233
+ "text": "void"
109234
+ }
109235
+ },
109236
+ "parameters": [
109237
+ {
109238
+ "name": "next",
109239
+ "type": {
109240
+ "text": "string"
109241
+ }
109242
+ }
109243
+ ],
109244
+ "description": "Moves `value` to `next`, asking first: `helix-before-change` carries it,\na listener that refuses keeps the selection, and `change` follows, with\nthe count said in the `selection` part.",
109245
+ "inheritedFrom": {
109246
+ "name": "HelixHeadlessHeatmap",
109247
+ "module": "src/heatmap/root/heatmap-root.ts"
109248
+ }
109249
+ },
109250
+ {
109251
+ "kind": "method",
109252
+ "name": "press",
109253
+ "privacy": "private",
109254
+ "return": {
109255
+ "type": {
109256
+ "text": "void"
109257
+ }
109258
+ },
109259
+ "parameters": [
109260
+ {
109261
+ "name": "index",
109262
+ "type": {
109263
+ "text": "number"
109264
+ }
109265
+ }
109266
+ ],
109267
+ "description": "Selects the drawn cell at `index`, or lets it go, as `selection-mode` says.",
109268
+ "inheritedFrom": {
109269
+ "name": "HelixHeadlessHeatmap",
109270
+ "module": "src/heatmap/root/heatmap-root.ts"
109271
+ }
109272
+ },
109273
+ {
109274
+ "kind": "method",
109275
+ "name": "stretch",
109276
+ "privacy": "private",
109277
+ "return": {
109278
+ "type": {
109279
+ "text": "void"
109280
+ }
109281
+ },
109282
+ "parameters": [
109283
+ {
109284
+ "name": "to",
109285
+ "type": {
109286
+ "text": "number"
109287
+ }
109288
+ }
109289
+ ],
109290
+ "description": "Selects the rectangle from the anchor to the drawn cell at `to`, beside\nwhat was selected before it started, under `selection-shape=\"rectangle\"`.\nWithout an anchor it starts where the keys were.",
109291
+ "inheritedFrom": {
109292
+ "name": "HelixHeadlessHeatmap",
109293
+ "module": "src/heatmap/root/heatmap-root.ts"
109294
+ }
109295
+ },
109296
+ {
109297
+ "kind": "field",
109298
+ "name": "onStripKeydown",
109299
+ "privacy": "protected",
109300
+ "readonly": true,
109301
+ "description": "Notes where the keys rest before the pointer controller moves them.",
109302
+ "inheritedFrom": {
109303
+ "name": "HelixHeadlessHeatmap",
109304
+ "module": "src/heatmap/root/heatmap-root.ts"
109305
+ }
109306
+ },
109307
+ {
109308
+ "kind": "field",
109309
+ "name": "onKeydown",
109310
+ "privacy": "private",
109311
+ "readonly": true,
109312
+ "description": "Space and Enter select the cell the keys rest on, and Shift with a key\nthat moved them takes in the range from the anchor. After the pointer\ncontroller, which has already moved `at` for an arrow.",
109313
+ "inheritedFrom": {
109314
+ "name": "HelixHeadlessHeatmap",
109315
+ "module": "src/heatmap/root/heatmap-root.ts"
109316
+ }
109317
+ },
109318
+ {
109319
+ "kind": "field",
109320
+ "name": "onClick",
109321
+ "privacy": "protected",
109322
+ "readonly": true,
109323
+ "description": "A press on a cell selects it, under `selection-mode`, and Shift takes the\nrectangle to it under `selection-shape=\"rectangle\"`.",
109324
+ "inheritedFrom": {
109325
+ "name": "HelixHeadlessHeatmap",
109326
+ "module": "src/heatmap/root/heatmap-root.ts"
109327
+ }
109328
+ },
109329
+ {
109330
+ "kind": "field",
109331
+ "name": "points",
109332
+ "type": {
109333
+ "text": "Reading[]"
109334
+ },
109335
+ "privacy": "protected",
109336
+ "description": "Every row in the table, oldest first, as the table is written, with its\nreading where the row has one.\n\n**Not `readings`, which the mixin already has and which means a count.**\nTwo members of the same name meaning a number and an array is the kind of\ncollision that type-checks in one direction and reads wrong in both.\n\n**One cell per row, and a blank row is a cell with no reading.** Taken from\nthe series alone, a blank dropped its day and every day after it moved one\ncell along, while the tooltip still counted rows and named the day beside\nthe one under the pointer.",
109337
+ "readonly": true,
109338
+ "inheritedFrom": {
109339
+ "name": "HelixHeadlessHeatmap",
109340
+ "module": "src/heatmap/root/heatmap-root.ts"
109341
+ }
109342
+ },
109343
+ {
109344
+ "kind": "field",
109345
+ "name": "rowCount",
109346
+ "type": {
109347
+ "text": "number"
109348
+ },
109349
+ "privacy": "protected",
109350
+ "description": "`rows` as a usable count, which is not always what the attribute says.\n\nOne place rather than two: the fit arithmetic and the grid template both\nneed it, and a `rows=\"0\"` or a `rows=\"2.5\"` that reached one of them and not\nthe other would draw a strip whose columns and whose capacity disagreed.",
109351
+ "readonly": true,
109352
+ "inheritedFrom": {
109353
+ "name": "HelixHeadlessHeatmap",
109354
+ "module": "src/heatmap/root/heatmap-root.ts"
109355
+ }
109356
+ },
109357
+ {
109358
+ "kind": "field",
109359
+ "name": "cellPx",
109360
+ "type": {
109361
+ "text": "number"
109362
+ },
109363
+ "privacy": "protected",
109364
+ "description": "The cell width the arithmetic should plan around, in pixels.\n\nThe attribute wins where a consumer wrote one, because that is what writing\nit is for; otherwise what the strip draws, and the declared default only\nuntil the first measurement lands.",
109365
+ "readonly": true,
109366
+ "inheritedFrom": {
109367
+ "name": "HelixHeadlessHeatmap",
109368
+ "module": "src/heatmap/root/heatmap-root.ts"
109369
+ }
109370
+ },
109371
+ {
109372
+ "kind": "field",
109373
+ "name": "gapPx",
109374
+ "type": {
109375
+ "text": "number"
109376
+ },
109377
+ "privacy": "protected",
109378
+ "description": "The gap the arithmetic should plan around, on the same terms as `cellPx`.",
109379
+ "readonly": true,
109380
+ "inheritedFrom": {
109381
+ "name": "HelixHeadlessHeatmap",
109382
+ "module": "src/heatmap/root/heatmap-root.ts"
109383
+ }
109384
+ },
109385
+ {
109386
+ "kind": "method",
109387
+ "name": "measure",
109388
+ "privacy": "private",
109389
+ "return": {
109390
+ "type": {
109391
+ "text": "void"
109392
+ }
109393
+ },
109394
+ "description": "Reads back the cell and the gap the strip resolved.\n\n`gridAutoColumns` and `columnGap` rather than a cell's own box, and the\ndifference matters on the frame it matters: a cell exists only once some\nhave been drawn, and how many are drawn is what this is measuring *for*.\nAsking the track instead breaks the circle, since a track is sized whether\nor not anything sits in it. Neither property forces layout, so this stays a\nstyle read on every update rather than a reflow.\n\nAnything that does not parse to a positive number leaves the estimate alone:\n`columnGap` computes to `normal` where no gap is set, and a track given a\nkeyword or a `repeat()` has no single width to report. A wrong number here\nis worse than no number, because it is the one the count is published from.",
109395
+ "inheritedFrom": {
109396
+ "name": "HelixHeadlessHeatmap",
109397
+ "module": "src/heatmap/root/heatmap-root.ts"
109398
+ }
109399
+ },
109400
+ {
109401
+ "kind": "field",
109402
+ "name": "drawn",
109403
+ "type": {
109404
+ "text": "Reading[]"
109405
+ },
109406
+ "privacy": "protected",
109407
+ "description": "The readings actually drawn, newest kept.\n\nThe tail rather than the head: a status strip that drops the newest days to\nkeep the oldest is answering a question nobody asked.",
109408
+ "readonly": true,
109409
+ "inheritedFrom": {
109410
+ "name": "HelixHeadlessHeatmap",
109411
+ "module": "src/heatmap/root/heatmap-root.ts"
109412
+ }
109413
+ },
109414
+ {
109415
+ "kind": "field",
109416
+ "name": "dropped",
109417
+ "type": {
109418
+ "text": "number"
109419
+ },
109420
+ "privacy": "private",
109421
+ "description": "How many of the oldest rows a narrow strip leaves undrawn.",
109422
+ "readonly": true,
109423
+ "inheritedFrom": {
109424
+ "name": "HelixHeadlessHeatmap",
109425
+ "module": "src/heatmap/root/heatmap-root.ts"
109426
+ }
109427
+ },
109428
+ {
109429
+ "kind": "method",
109430
+ "name": "pageFrom",
109431
+ "return": {
109432
+ "type": {
109433
+ "text": "number | undefined"
109434
+ }
109435
+ },
109436
+ "parameters": [
109437
+ {
109438
+ "name": "at",
109439
+ "type": {
109440
+ "text": "number"
109441
+ }
109442
+ },
109443
+ {
109444
+ "name": "forward",
109445
+ "type": {
109446
+ "text": "boolean"
109447
+ }
109448
+ }
109449
+ ],
109450
+ "description": "Where PageUp or PageDown goes from the drawn cell at `at`: the same day a\nmonth on or back, by the dates the rows' headers carry. Undefined where\nthey carry none, and the keys move four columns.",
109451
+ "type": {
109452
+ "text": "pageFrom(at: number, forward: boolean) => number | undefined"
109453
+ },
109454
+ "inheritedFrom": {
109455
+ "name": "HelixHeadlessHeatmap",
109456
+ "module": "src/heatmap/root/heatmap-root.ts"
109457
+ }
109458
+ },
109459
+ {
109460
+ "kind": "method",
109461
+ "name": "markEmpty",
109462
+ "privacy": "private",
109463
+ "return": {
109464
+ "type": {
109465
+ "text": "void"
109466
+ }
109467
+ },
109468
+ "description": "Says on the footer whether any of its three slots holds anything.\n\n**A stylesheet cannot ask.** `[part=\"footer\"]:not(:has(slot:has(*)))` is two\nfaults at once: `:has()` may not be nested inside `:has()`, so the selector\nfails to parse and the rule is discarded whole; and a slot's assigned nodes\nare not its DOM children, so `slot:has(*)` reports fallback content rather\nthan the fill, and is false either way. Both verified in a browser.",
109469
+ "inheritedFrom": {
109470
+ "name": "HelixHeadlessHeatmap",
109471
+ "module": "src/heatmap/root/heatmap-root.ts"
109472
+ }
109473
+ },
109474
+ {
109475
+ "kind": "method",
109476
+ "name": "renderRows",
109477
+ "privacy": "private",
109478
+ "return": {
109479
+ "type": {
109480
+ "text": "TemplateResult[]"
109481
+ }
109482
+ },
109483
+ "parameters": [
109484
+ {
109485
+ "name": "cells",
109486
+ "type": {
109487
+ "text": "TemplateResult[]"
109488
+ }
109489
+ }
109490
+ ],
109491
+ "description": "The cells as a grid's rows, one for each column of the strip, so a week\nis a row with `rows=\"7\"` and a status strip is one row.\n\n**A column, because that is the order the cells are in.** The strip fills\ndown the column and then across, so a row wrapping a column keeps every\ncell where it was, and `display: contents` keeps the wrapper out of the\nstrip's grid, drawing no box, which is a mechanism and not a look. A row\nacross the strip would have taken cells out of order and moved them.",
109492
+ "inheritedFrom": {
109493
+ "name": "HelixHeadlessHeatmap",
109494
+ "module": "src/heatmap/root/heatmap-root.ts"
109495
+ }
109496
+ },
109497
+ {
109498
+ "kind": "method",
109499
+ "name": "renderGridCell",
109500
+ "privacy": "private",
109501
+ "return": {
109502
+ "type": {
109503
+ "text": "TemplateResult"
109504
+ }
109505
+ },
109506
+ "parameters": [
109507
+ {
109508
+ "name": "index",
109509
+ "type": {
109510
+ "text": "number"
109511
+ }
109512
+ },
109513
+ {
109514
+ "name": "active",
109515
+ "type": {
109516
+ "text": "boolean"
109517
+ }
109518
+ },
109519
+ {
109520
+ "name": "picked",
109521
+ "type": {
109522
+ "text": "boolean"
109523
+ }
109524
+ },
109525
+ {
109526
+ "name": "tone",
109527
+ "type": {
109528
+ "text": "string | undefined"
109529
+ }
109530
+ }
109531
+ ],
109532
+ "description": "One cell under `selection-mode`: a `gridcell` named by its row in the\ntable, its reading and its place, and saying whether it is selected, which\na reader hears on reaching it as the strip's active descendant.",
109533
+ "inheritedFrom": {
109534
+ "name": "HelixHeadlessHeatmap",
109535
+ "module": "src/heatmap/root/heatmap-root.ts"
109536
+ }
109537
+ },
109538
+ {
109539
+ "kind": "method",
109540
+ "name": "renderOverview",
109541
+ "privacy": "protected",
109542
+ "return": {
109543
+ "type": {
109544
+ "text": "TemplateResult"
109545
+ }
109546
+ },
109547
+ "parameters": [
109548
+ {
109549
+ "name": "cells",
109550
+ "type": {
109551
+ "text": "Reading[]"
109552
+ }
109553
+ }
109554
+ ],
109555
+ "description": "What the strip shows, in a sentence: the busiest reading drawn, as the\ntable writes it, and the total of them all, in `locale`. The strip is\ndescribed by it, so a reader landing on the strip hears what it holds\nbefore walking it.",
109556
+ "inheritedFrom": {
109557
+ "name": "HelixHeadlessHeatmap",
109558
+ "module": "src/heatmap/root/heatmap-root.ts"
109559
+ }
109560
+ },
109561
+ {
109562
+ "kind": "field",
109563
+ "name": "onPointerOver",
109564
+ "privacy": "protected",
109565
+ "readonly": true,
109566
+ "description": "Which drawn cell the pointer is over, or -1.\n\n`pointerover` on the strip rather than a listener per cell: the event\nbubbles, so one handler covers however many cells there are, and unlike\n`mouseover` it is delivered for a pen.",
109567
+ "inheritedFrom": {
109568
+ "name": "HelixHeadlessHeatmap",
109569
+ "module": "src/heatmap/root/heatmap-root.ts"
109570
+ }
109571
+ },
109572
+ {
109573
+ "kind": "field",
109574
+ "name": "onPointerUp",
109575
+ "privacy": "protected",
109576
+ "readonly": true,
109577
+ "inheritedFrom": {
109578
+ "name": "HelixHeadlessHeatmap",
109579
+ "module": "src/heatmap/root/heatmap-root.ts"
109580
+ }
109581
+ },
109582
+ {
109583
+ "kind": "field",
109584
+ "name": "onPointerLeave",
109585
+ "privacy": "protected",
109586
+ "readonly": true,
109587
+ "inheritedFrom": {
109588
+ "name": "HelixHeadlessHeatmap",
109589
+ "module": "src/heatmap/root/heatmap-root.ts"
109590
+ }
109591
+ },
109592
+ {
109593
+ "kind": "method",
109594
+ "name": "tag",
109595
+ "privacy": "protected",
109596
+ "return": {
109597
+ "type": {
109598
+ "text": "StaticValue"
109599
+ }
109600
+ },
109601
+ "parameters": [
109602
+ {
109603
+ "name": "name",
109604
+ "type": {
109605
+ "text": "string"
109606
+ }
109607
+ }
109608
+ ],
109609
+ "description": "One composed tag, as a static value a template can interpolate.\n\nWhat `unsafeStatic` returns, safe by construction: the name is a literal in\nour own source and the prefix is one of two strings this class defines.\nCalled per render and not cached, which costs nothing, because\n`static-html` keys its template cache on the joined string rather than on\nthe object.\n\n**Written out rather than imported, for every element that never renders\none.** `lit/static-html.js` declares no side effects, so importing\n`unsafeStatic` alone kept the module's three `withStatic` calls in every\nbundle: about 210 bytes gzipped on each of the families that compose no\ntag, Divider and Badge among them. The value is lit's cross-copy protocol,\nkeyed by `Symbol.for('')` so that two copies of lit on a page read each\nother's, and a spec holds it equal to `unsafeStatic`'s.",
109610
+ "inheritedFrom": {
109611
+ "name": "HelixElement",
109612
+ "module": "src/helix-element/helix-element.ts"
109613
+ }
109614
+ },
109615
+ {
109616
+ "kind": "method",
109617
+ "name": "partNamed",
109618
+ "privacy": "protected",
109619
+ "return": {
109620
+ "type": {
109621
+ "text": "T | null"
109622
+ }
109623
+ },
109624
+ "parameters": [
109625
+ {
109626
+ "name": "name",
109627
+ "type": {
109628
+ "text": "string"
109629
+ }
109630
+ }
109631
+ ],
109632
+ "description": "One of this element's own parts, by name, or null where it is not rendered.\n\nNot `part`, which every element already has: `Element.part` is the\n`DOMTokenList` of the names the element itself carries, and a method under\nthat name is a type error on every subclass.\n\n**One guard for every lookup.** Lit's server shim has no `querySelector`\non the render root, so a lookup reached during a server render, from a\ngetter a template reads or from `willUpdate`, throws there and nowhere\nelse. Four spellings of the same guard had grown across the library, and\na fifth site with none. Null on the server, which is what the rest of the\ncode already treats a part that has not rendered as.\n\n**`~=` and not `=`.** A part drawn in a state carries a second name while\nthe state holds, `part=\"page page-current\"`, and an exact match stops\nfinding it for exactly as long as it is the one that matters.\n\n`helix component`'s `selectors` reads these calls the way it reads a\n`querySelector('[part=\"x\"]')`, so a name nothing renders is a finding\nrather than a null an optional chain swallows.",
109633
+ "inheritedFrom": {
109634
+ "name": "HelixElement",
109635
+ "module": "src/helix-element/helix-element.ts"
109636
+ }
109637
+ },
109638
+ {
109639
+ "kind": "field",
109640
+ "name": "internals",
109641
+ "type": {
109642
+ "text": "ElementInternals"
109643
+ },
109644
+ "privacy": "protected",
109645
+ "readonly": true,
109646
+ "description": "The element's semantics, set without touching the DOM.\n\n`ElementInternals` sets the implicit role, which an author's own `role`\nattribute still overrides, and it writes no attribute. Setting `role` on the\nhost directly would: that is an attribute the element gives itself after it\nupgrades, which a React consumer's server markup never had, and hydration\nreports it as a mismatch.\n\nAvailable during server rendering. Lit's shim implements `attachInternals`,\nso nothing here needs a guard.",
109647
+ "inheritedFrom": {
109648
+ "name": "HelixElement",
109649
+ "module": "src/helix-element/helix-element.ts"
109650
+ }
109651
+ },
109652
+ {
109653
+ "kind": "method",
109654
+ "name": "toggleState",
109655
+ "privacy": "protected",
109656
+ "return": {
109657
+ "type": {
109658
+ "text": "void"
109659
+ }
109660
+ },
109661
+ "parameters": [
109662
+ {
109663
+ "name": "name",
109664
+ "type": {
109665
+ "text": "string"
109666
+ }
109667
+ },
109668
+ {
109669
+ "name": "on",
109670
+ "type": {
109671
+ "text": "boolean"
109672
+ }
109673
+ }
109674
+ ],
109675
+ "description": "Records a boolean fact about this element as a custom state.\n\n**The host belongs to whoever rendered it, and a component's own\nbookkeeping may not be kept there.** An attribute written on the first\nupdate is markup a consumer's server never sent, so a React consumer\nhydrates a DOM that has gained attributes since and reports a mismatch it\nwill not patch up. A custom state is not in the DOM at all: it carries the\nfact to a stylesheet through `:state()` and leaves the markup alone, so the\nserver's output and the client's agree by construction.\n\n`SETTLED` carries the long version of that argument; `checked`, `open`,\n`invalid` and `has-label` are recorded the same way, each of them a state a\n`default-*` attribute resolves before React reaches the node.\n\n**Deferring the definitions is not a fix and could not be.** Importing them\nfrom an effect so the upgrades fall the other side of hydration works only\nwhile hydration is one pass: anything that splits it, a streamed segment or\na suspended boundary, puts an upgrade back inside the window. Timing cannot\nbe the guarantee when the fact is kept somewhere React reconciles.\n\nFeature-tested rather than assumed, the way `hostAria` tests element\nreferences. An engine without `CustomStateSet` records nothing and keeps\nwhatever the resting rule draws, which is the safe direction to fail.\n\n**The engines the test is for are browsers**: Safari below 17.4 and Firefox\nbelow 126, where the write is a `TypeError`, so a component bypassing this\nfails to render rather than rendering without whatever the state draws.\nLit's server shim sets `states`, so the guard passes there and records a\nstate nothing reads, which is harmless.",
109676
+ "inheritedFrom": {
109677
+ "name": "HelixElement",
109678
+ "module": "src/helix-element/helix-element.ts"
109679
+ }
109680
+ },
109681
+ {
109682
+ "kind": "field",
109683
+ "name": "whenSettled",
109684
+ "type": {
109685
+ "text": "Promise<void>"
109686
+ },
109687
+ "readonly": true,
109688
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
109689
+ "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
109690
+ "inheritedFrom": {
109691
+ "name": "HelixElement",
109692
+ "module": "src/helix-element/helix-element.ts"
109693
+ }
109694
+ },
109695
+ {
109696
+ "kind": "field",
109697
+ "name": "resolveSettled",
109698
+ "type": {
109699
+ "text": "() => void"
109700
+ },
109701
+ "privacy": "private",
109702
+ "description": "Resolves `whenSettled`, once, from the frame that records the state.",
109703
+ "inheritedFrom": {
109704
+ "name": "HelixElement",
109705
+ "module": "src/helix-element/helix-element.ts"
109706
+ }
109707
+ },
109708
+ {
109709
+ "kind": "field",
109710
+ "name": "fromServer",
109711
+ "type": {
109712
+ "text": "boolean"
109713
+ },
109714
+ "privacy": "private",
109715
+ "default": "false",
109716
+ "description": "Whether the shadow root was a server's, parsed from declarative shadow DOM.",
109717
+ "inheritedFrom": {
109718
+ "name": "HelixElement",
109719
+ "module": "src/helix-element/helix-element.ts"
109720
+ }
109721
+ },
109722
+ {
109723
+ "kind": "field",
109724
+ "name": "hydrating",
109725
+ "type": {
109726
+ "text": "boolean"
109727
+ },
109728
+ "privacy": "protected",
109729
+ "description": "Whether this update is hydrating a server's markup, and so has to render\nexactly what the server rendered.\n\n**Lit hydrates by assuming the markup already shows the first render.** A\nvalue that differs is recorded and never written, so the page keeps the\nserver's, and a template that differs throws. The server has no children,\nso anything a component reads from its children waits for the update after\nhydration, which `finishHydration` asks for. Without a server's markup the\nfirst render reads them and there is one render.",
109730
+ "readonly": true,
109731
+ "inheritedFrom": {
109732
+ "name": "HelixElement",
109733
+ "module": "src/helix-element/helix-element.ts"
109734
+ }
109735
+ },
109736
+ {
109737
+ "kind": "field",
109738
+ "name": "serverRendered",
109739
+ "type": {
109740
+ "text": "boolean"
109741
+ },
109742
+ "privacy": "protected",
109743
+ "description": "Whether this element hydrated a server's markup rather than rendering its own.\n\nFor what happened before hydration and cannot be heard after it: an image\nthe parser fetched fires `load` or `error` before any listener exists, so a\ncomponent asks the image instead, once, when this is true.",
109744
+ "readonly": true,
109745
+ "inheritedFrom": {
109746
+ "name": "HelixElement",
109747
+ "module": "src/helix-element/helix-element.ts"
109748
+ }
109749
+ },
109750
+ {
109751
+ "kind": "method",
109752
+ "name": "finishHydration",
109753
+ "privacy": "protected",
109754
+ "return": {
109755
+ "type": {
109756
+ "text": "void"
109757
+ }
109758
+ },
109759
+ "description": "Asks for the update a hydration put off, so the reads it skipped happen.\n\nCalled from `firstUpdated`, the end of the hydrating update. The render it\nschedules can only follow that one, which is the exception Lit's\nchange-in-update warning names, and it happens only on a page a server\nrendered.",
109760
+ "inheritedFrom": {
109761
+ "name": "HelixElement",
109762
+ "module": "src/helix-element/helix-element.ts"
109763
+ }
109764
+ },
109765
+ {
109766
+ "kind": "field",
109767
+ "name": "childrenKnown",
109768
+ "type": {
109769
+ "text": "boolean"
109770
+ },
109771
+ "privacy": "protected",
109772
+ "description": "Whether this render can know the children.\n\nA server cannot: its element shim carries attributes and no tree, so\n`children` is undefined there. A render hydrating what a server sent must\nnot, because it has to be the server's render. Anywhere else it can. A\ncomponent whose render depends on its children reads them through\n`knownChildren`, and treats \"not known\" as its own answer rather than as\n\"none\": a list that renders its empty state because nobody has looked yet is\nthe one thing an empty state must never do.",
109773
+ "readonly": true,
109774
+ "inheritedFrom": {
109775
+ "name": "HelixElement",
109776
+ "module": "src/helix-element/helix-element.ts"
109777
+ }
109778
+ },
109779
+ {
109780
+ "kind": "field",
109781
+ "name": "knownChildren",
109782
+ "type": {
109783
+ "text": "Element[]"
109784
+ },
109785
+ "privacy": "protected",
109786
+ "description": "The children a render may read: all of them where they are known, and none otherwise.",
109787
+ "readonly": true,
109788
+ "inheritedFrom": {
109789
+ "name": "HelixElement",
109790
+ "module": "src/helix-element/helix-element.ts"
109791
+ }
109792
+ },
109793
+ {
109794
+ "kind": "field",
109795
+ "name": "assignsByName",
109796
+ "type": {
109797
+ "text": "boolean"
109798
+ },
109799
+ "privacy": "protected",
109800
+ "description": "Whether this element's slots route by name although it asked to assign them\nby hand.\n\n**A declarative shadow root is always the by-name kind.** HTML has no way to\nask for manual assignment, so a component that assigns by hand and hydrates\na server's root gets one where `slot.assign()` does nothing, and its\nchildren land wherever their `slot` attribute sends them. The way through is\nto write that attribute, which is what `route` does. Only there: on a root\nthis element made, assignment stays manual and the consumer's markup is\nnever touched, which is what a React consumer's hydration requires.",
109801
+ "readonly": true,
109802
+ "inheritedFrom": {
109803
+ "name": "HelixElement",
109804
+ "module": "src/helix-element/helix-element.ts"
109805
+ }
109806
+ },
109807
+ {
109808
+ "kind": "method",
109809
+ "name": "route",
109810
+ "privacy": "protected",
109811
+ "return": {
109812
+ "type": {
109813
+ "text": "void"
109814
+ }
109815
+ },
109816
+ "parameters": [
109817
+ {
109818
+ "name": "child",
109819
+ "type": {
109820
+ "text": "Element"
109821
+ }
109822
+ },
109823
+ {
109824
+ "name": "name",
109825
+ "type": {
109826
+ "text": "string | undefined"
109827
+ }
109828
+ }
109829
+ ],
109830
+ "description": "Sends a child to a slot by name, on a root that routes by name.\n\n`undefined` is the default slot. Written only when it differs, so routing\nthe same child again on every update writes nothing.",
109831
+ "inheritedFrom": {
109832
+ "name": "HelixElement",
109833
+ "module": "src/helix-element/helix-element.ts"
109834
+ }
109835
+ },
109836
+ {
109837
+ "kind": "field",
109838
+ "name": "stopInner",
109839
+ "privacy": "protected",
109840
+ "readonly": true,
109841
+ "description": "Stops an inner control's own announcement at this element's boundary.\n\n**A composed control is one control to a consumer, and the natives had no\nequivalent of the stop the prefixed events already get.** `<helix-select>`\nrenders a `<helix-listbox>`, and both announce: the listbox dispatches\n`input` and `change` from its own host, `input` is composed by\nspecification, and a consumer listening on the select therefore heard one\nchoice twice. Measured before this existed, on the styled tier, one choice\non the inner listbox: select `input` twice and `change` three times,\ncombobox, date input, time input and color input twice each. `Command` was\nthe only one that was right, because it happened to reach for\n`stopImmediatePropagation` for a different reason.\n\nBound on the child in the parent's template, so it runs while the event is\nstill at the child and before it can cross. The guard is for the case where\na component binds this on itself: an element must never stop its own\nannouncement, which is the one it exists to make.\n\nThis is the same job the `helix-before-*` handlers do with their own\n`stopPropagation`, and it is separate rather than folded into them because\na consumer may legitimately refuse a request without the notification ever\nhappening: the two travel at different times and one can be absent.",
109842
+ "inheritedFrom": {
109843
+ "name": "HelixElement",
109844
+ "module": "src/helix-element/helix-element.ts"
109845
+ }
109846
+ },
109847
+ {
109848
+ "kind": "method",
109849
+ "name": "relayNativeEvent",
109850
+ "privacy": "protected",
109851
+ "return": {
109852
+ "type": {
109853
+ "text": "void"
109854
+ }
109855
+ },
109856
+ "parameters": [
109857
+ {
109858
+ "name": "event",
109859
+ "type": {
109860
+ "text": "Event"
109861
+ }
109862
+ },
109863
+ {
109864
+ "name": "init",
109865
+ "optional": true,
109866
+ "type": {
109867
+ "text": "EventInit"
109868
+ }
109869
+ }
109870
+ ],
109871
+ "description": "Re-emits a native event from the host, under its own name.\n\nA native event fired by an inner `<input>` or `<textarea>` is not composed,\nso it stops at the shadow boundary and a consumer listening on\n`<helix-input>` hears nothing. Re-dispatching it from the host is what\nmakes the component behave like the control it wraps.\n\nThe relayed event keeps the native name deliberately. `change` is `change`,\nwhich is what a consumer already knows to listen for, and it is what\nreaches React: its synthetic system claims `onChange` and wires it to that\nname, so a prefixed one would never arrive.\n\n`composed` is not forced. It defaults to the original event's own value, so\na relayed `change` stops at the next shadow boundary exactly as a native\none would. Pass it explicitly only where escaping is the intent, and say so\nwhere you do.",
109872
+ "inheritedFrom": {
109873
+ "name": "HelixElement",
109874
+ "module": "src/helix-element/helix-element.ts"
109875
+ }
109876
+ },
109877
+ {
109878
+ "kind": "method",
109879
+ "name": "finalizeStyles",
109880
+ "privacy": "protected",
109881
+ "static": true,
109882
+ "return": {
109883
+ "type": {
109884
+ "text": "CSSResultOrNative[]"
109885
+ }
109886
+ },
109887
+ "parameters": [
109888
+ {
109889
+ "name": "styles",
109890
+ "optional": true,
109891
+ "type": {
109892
+ "text": "CSSResultOrNative | CSSResultOrNative[]"
109893
+ }
109894
+ }
109895
+ ],
109896
+ "description": "Prepends the shadow-root reset to every subclass's styles, so no component\nhas to remember to include it, with the rules for the marks it writes.",
109897
+ "inheritedFrom": {
109898
+ "name": "HelixElement",
109899
+ "module": "src/helix-element/helix-element.ts"
109900
+ }
109901
+ },
109902
+ {
109903
+ "kind": "method",
109904
+ "name": "performUpdate",
109905
+ "privacy": "protected",
109906
+ "return": {
109907
+ "type": {
109908
+ "text": "void"
109909
+ }
109910
+ },
109911
+ "description": "The first update, timed where a page asked to measure what the components\ncost, and a property read where it did not: see `reportRender`.",
109912
+ "inheritedFrom": {
109913
+ "name": "HelixElement",
109914
+ "module": "src/helix-element/helix-element.ts"
109915
+ }
109916
+ }
109917
+ ],
109918
+ "superclass": {
109919
+ "name": "HelixHeadlessIsometricHeatmap",
109920
+ "package": "@fusion.dev/helix-headless/isometric-heatmap"
107432
109921
  },
107433
- "summary": "A field for a single line of text.",
109922
+ "summary": "A heatmap drawn as a relief, where each reading stands as tall as its value.",
107434
109923
  "helix": {
107435
- "category": "forms",
107436
- "since": "0.1.0",
107437
- "status": "stable",
107438
- "documentation": "https://fusion.dev/helix/components/input",
107439
- "aliases": [
107440
- "TextField",
107441
- "Field",
107442
- "TextInput"
107443
- ],
109924
+ "category": "charts",
109925
+ "since": "0.185.0",
109926
+ "status": "experimental",
109927
+ "documentation": "https://fusion.dev/helix/components/isometric-heatmap",
107444
109928
  "tier": "styled",
107445
- "group": "Input",
109929
+ "group": "IsometricHeatmap",
107446
109930
  "part": "Root",
107447
109931
  "examples": [
107448
109932
  {
107449
- "description": "A text field with a label, a placeholder, and a hint.",
109933
+ "description": "Sixteen weeks of commits, each day a prism as tall as its count.",
107450
109934
  "slug": "preview"
107451
- },
107452
- {
107453
- "description": "Fields with `autocomplete` tokens the browser can fill, and one with autofill turned off.",
107454
- "slug": "autocomplete"
107455
- },
107456
- {
107457
- "description": "A field with a control to empty it.",
107458
- "slug": "clearable"
107459
- },
107460
- {
107461
- "description": "A disabled field, and a field disabled by the `fieldset` around it.",
107462
- "slug": "disabled"
107463
- },
107464
- {
107465
- "description": "Every event a text field sends, in the order it sends them.",
107466
- "slug": "events"
107467
- },
107468
- {
107469
- "description": "A field with a message that says what is wrong with its value.",
107470
- "slug": "invalid"
107471
- },
107472
- {
107473
- "description": "A pattern and length limits on the value, checked by the browser.",
107474
- "slug": "pattern-and-length"
107475
- },
107476
- {
107477
- "description": "A value that can be read and copied but not changed.",
107478
- "slug": "read-only"
107479
- },
107480
- {
107481
- "description": "A required field, marked on its label, and the browser's message when it is left empty.",
107482
- "slug": "required"
107483
- },
107484
- {
107485
- "description": "A password with a control to show what was typed.",
107486
- "slug": "reveal"
107487
109935
  }
107488
109936
  ],
107489
- "source": "helix/styled/src/input"
109937
+ "source": "helix/styled/src/isometric-heatmap"
107490
109938
  },
107491
- "tagName": "helix-input",
109939
+ "tagName": "helix-isometric-heatmap",
107492
109940
  "customElement": true,
107493
- "attributes": [
109941
+ "slots": [
107494
109942
  {
107495
- "name": "default-value",
107496
- "type": {
107497
- "text": "string"
107498
- },
107499
- "default": "''",
107500
- "description": "The value the control starts with. A form reset returns it to this value,\nand to the `value` attribute where this one is not written, as a native\ncontrol resets to the `value` it declares.",
107501
- "fieldName": "defaultValue",
109943
+ "description": "Content shown under the strip when the table has no readings, such as a link to add the first. Falls back to `empty-text`.",
109944
+ "name": "empty",
107502
109945
  "inheritedFrom": {
107503
- "name": "MixinControllerValue",
107504
- "module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
109946
+ "name": "HelixHeadlessHeatmap",
109947
+ "module": "src/heatmap/root/heatmap-root.ts"
107505
109948
  }
107506
109949
  },
107507
109950
  {
107508
- "name": "value",
107509
- "type": {
107510
- "text": "string"
107511
- },
107512
- "description": "The control's current value, which its form submits.\n\nOne property, not two, so `input.value` answers the question anyone\nasking it meant. Writing always applies; `<helix-input value=\"x\">` is the\nsame statement in markup, and `default-value` is how markup seeds a value\na reset should return to.",
107513
- "fieldName": "value",
109951
+ "description": "Below the strip, at the trailing edge: usually the newest date.",
109952
+ "name": "end",
107514
109953
  "inheritedFrom": {
107515
- "name": "MixinControllerValue",
107516
- "module": "src/mixins/mixin-controller-value/mixin-controller-value.ts"
109954
+ "name": "HelixHeadlessHeatmap",
109955
+ "module": "src/heatmap/root/heatmap-root.ts"
107517
109956
  }
107518
109957
  },
107519
109958
  {
107520
- "name": "aria-label",
107521
- "type": {
107522
- "text": "string | null"
107523
- },
107524
- "default": "null",
107525
- "description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
107526
- "fieldName": "namedBy",
109959
+ "description": "Content shown under the strip while `loading` is set and there are no readings yet. Falls back to `loading-text`.",
109960
+ "name": "loading",
107527
109961
  "inheritedFrom": {
107528
- "name": "MixinField",
107529
- "module": "src/mixins/mixin-field/mixin-field.ts"
109962
+ "name": "HelixHeadlessHeatmap",
109963
+ "module": "src/heatmap/root/heatmap-root.ts"
107530
109964
  }
107531
109965
  },
107532
109966
  {
107533
- "name": "feedback",
107534
- "type": {
107535
- "text": "string"
107536
- },
107537
- "default": "''",
107538
- "description": "The validation message shown under the control. It replaces the\nbrowser's message.",
107539
- "fieldName": "feedback",
109967
+ "description": "Below the strip, at the leading edge: usually the oldest date.",
109968
+ "name": "start",
107540
109969
  "inheritedFrom": {
107541
- "name": "MixinField",
107542
- "module": "src/mixins/mixin-field/mixin-field.ts"
109970
+ "name": "HelixHeadlessHeatmap",
109971
+ "module": "src/heatmap/root/heatmap-root.ts"
107543
109972
  }
107544
109973
  },
107545
109974
  {
107546
- "name": "hint",
107547
- "type": {
107548
- "text": "string"
107549
- },
107550
- "default": "''",
107551
- "description": "Help text shown under the control. A validation message replaces it.",
107552
- "fieldName": "hint",
109975
+ "description": "Below the strip, in the middle: a summary of the range shown.",
109976
+ "name": "summary",
107553
109977
  "inheritedFrom": {
107554
- "name": "MixinField",
107555
- "module": "src/mixins/mixin-field/mixin-field.ts"
109978
+ "name": "HelixHeadlessHeatmap",
109979
+ "module": "src/heatmap/root/heatmap-root.ts"
109980
+ }
109981
+ }
109982
+ ],
109983
+ "cssParts": [
109984
+ {
109985
+ "description": "One reading.",
109986
+ "name": "cell",
109987
+ "inheritedFrom": {
109988
+ "name": "HelixHeadlessHeatmap",
109989
+ "module": "src/heatmap/root/heatmap-root.ts"
107556
109990
  }
107557
109991
  },
107558
109992
  {
107559
- "name": "label",
107560
- "type": {
107561
- "text": "string"
107562
- },
107563
- "default": "''",
107564
- "description": "The field's label, which is also its accessible name. Content in the\n`label` slot replaces it.",
107565
- "fieldName": "label",
109993
+ "description": "The SVG every prism is drawn in. It is mirrored on a right-to-left page.",
109994
+ "name": "drawing",
107566
109995
  "inheritedFrom": {
107567
- "name": "MixinField",
107568
- "module": "src/mixins/mixin-field/mixin-field.ts"
109996
+ "name": "HelixHeadlessIsometricHeatmap",
109997
+ "module": "src/isometric-heatmap/root/isometric-heatmap-root.ts"
107569
109998
  }
107570
109999
  },
107571
110000
  {
107572
- "name": "required",
107573
- "type": {
107574
- "text": "boolean"
107575
- },
107576
- "default": "false",
107577
- "description": "Whether the field needs a value before the form can submit.",
107578
- "fieldName": "required",
110001
+ "description": "The face of a prism toward the next row, drawn at its lower left.",
110002
+ "name": "left-face",
107579
110003
  "inheritedFrom": {
107580
- "name": "MixinField",
107581
- "module": "src/mixins/mixin-field/mixin-field.ts"
110004
+ "name": "HelixHeadlessIsometricHeatmap",
110005
+ "module": "src/isometric-heatmap/root/isometric-heatmap-root.ts"
107582
110006
  }
107583
110007
  },
107584
110008
  {
107585
- "name": "value-missing-message",
107586
- "type": {
107587
- "text": "string | undefined"
107588
- },
107589
- "description": "The message shown when the field is required and empty.\n\n**Absent, or empty, is the control's own sentence**, \"Choose one to\ncontinue.\" on a set and the browser's own on a text field, which the\nbrowser writes in the reader's language. A family with a sentence of its\nown declares it as this property's English, a word property a page\nregisters for its locale under the family's key. Every other word a control speaks is a property,\nand this one was the English a form in another language still spoke in\nthe bubble it raises on submit: `feedback` replaces the message under\nthe field and does not reach that one.",
107590
- "fieldName": "valueMissingMessage",
110009
+ "description": "The face of a prism toward the next column, drawn at its lower right.",
110010
+ "name": "right-face",
107591
110011
  "inheritedFrom": {
107592
- "name": "MixinField",
107593
- "module": "src/mixins/mixin-field/mixin-field.ts"
110012
+ "name": "HelixHeadlessIsometricHeatmap",
110013
+ "module": "src/isometric-heatmap/root/isometric-heatmap-root.ts"
107594
110014
  }
107595
110015
  },
107596
110016
  {
107597
- "name": "autocapitalize",
107598
- "type": {
107599
- "text": "string"
107600
- },
107601
- "default": "''",
107602
- "description": "Whether a phone capitalizes as the reader types: `off`, `sentences`,\n`words` or `characters`, as the platform's `autocapitalize`.",
107603
- "fieldName": "autocapitalize",
110017
+ "description": "A column of cells, which a grid reads as a row, under `selection-mode`. It draws no box.",
110018
+ "name": "row",
107604
110019
  "inheritedFrom": {
107605
- "name": "HelixHeadlessInput",
107606
- "module": "src/input/root/input-root.ts"
110020
+ "name": "HelixHeadlessHeatmap",
110021
+ "module": "src/heatmap/root/heatmap-root.ts"
107607
110022
  }
107608
110023
  },
107609
110024
  {
107610
- "name": "autocomplete",
107611
- "type": {
107612
- "text": "string"
107613
- },
107614
- "default": "''",
107615
- "description": "What the browser may autofill in the field, as an HTML `autocomplete`\ntoken.\n\nEmpty leaves the attribute off, which is the browser's default. Set it to\na token like `email` or `bday` to ask for autofill, or to `off` to refuse.",
107616
- "fieldName": "autocomplete",
110025
+ "description": "The grid of cells, which takes focus to be read by key. It is named by the host's `aria-labelledby` or `aria-label`, then by `label`, then by the caption of the table.",
110026
+ "name": "strip",
107617
110027
  "inheritedFrom": {
107618
- "name": "HelixHeadlessInput",
107619
- "module": "src/input/root/input-root.ts"
110028
+ "name": "HelixHeadlessHeatmap",
110029
+ "module": "src/heatmap/root/heatmap-root.ts"
107620
110030
  }
107621
110031
  },
107622
110032
  {
107623
- "name": "clearable",
107624
- "type": {
107625
- "text": "boolean"
107626
- },
107627
- "default": "false",
107628
- "description": "Whether the field shows a button that empties it.\n\nShown only while there is something to clear, because a control that does\nnothing is worse than no control: a reader who presses it and sees no\nchange has to work out whether the field was already empty or the button\nis broken.",
107629
- "fieldName": "clearable",
110033
+ "description": "The top of a prism, which carries the reading's tone.",
110034
+ "name": "top-face",
107630
110035
  "inheritedFrom": {
107631
- "name": "HelixHeadlessInput",
107632
- "module": "src/input/root/input-root.ts"
110036
+ "name": "HelixHeadlessIsometricHeatmap",
110037
+ "module": "src/isometric-heatmap/root/isometric-heatmap-root.ts"
107633
110038
  }
107634
110039
  },
107635
110040
  {
107636
- "name": "clear-label",
107637
- "type": {
107638
- "text": "string"
107639
- },
107640
- "default": "'Clear'",
107641
- "description": "The accessible name of the clear button, which shows only an icon.",
107642
- "fieldName": "clearLabel",
110041
+ "description": "The cell the pointer or the keys rest on. Set alongside `cell`.",
110042
+ "name": "cell-active",
107643
110043
  "inheritedFrom": {
107644
- "name": "HelixHeadlessInput",
107645
- "module": "src/input/root/input-root.ts"
110044
+ "name": "HelixHeadlessHeatmap",
110045
+ "module": "src/heatmap/root/heatmap-root.ts"
107646
110046
  }
107647
110047
  },
107648
110048
  {
107649
- "name": "enterkeyhint",
107650
- "type": {
107651
- "text": "string"
107652
- },
107653
- "default": "''",
107654
- "description": "The key the on-screen keyboard shows for Enter, as the platform's\n`enterkeyhint`: `search`, `send`, `go`, `next`, `previous`, `done` or\n`enter`.",
107655
- "fieldName": "enterKeyHint",
110049
+ "description": "A cell that is selected, under `selection-mode`. Set alongside `cell`.",
110050
+ "name": "cell-selected",
107656
110051
  "inheritedFrom": {
107657
- "name": "HelixHeadlessInput",
107658
- "module": "src/input/root/input-root.ts"
110052
+ "name": "HelixHeadlessHeatmap",
110053
+ "module": "src/heatmap/root/heatmap-root.ts"
107659
110054
  }
107660
110055
  },
107661
110056
  {
107662
- "name": "inputmode",
107663
- "type": {
107664
- "text": "string"
107665
- },
107666
- "default": "''",
107667
- "description": "The keyboard a phone offers, as the platform's `inputmode`, such as\n`numeric` for a code typed as text.",
107668
- "fieldName": "inputMode",
110057
+ "description": "The words under the strip 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, there being no document to resolve `for` in.",
110058
+ "name": "empty",
107669
110059
  "inheritedFrom": {
107670
- "name": "HelixHeadlessInput",
107671
- "module": "src/input/root/input-root.ts"
110060
+ "name": "HelixHeadlessHeatmap",
110061
+ "module": "src/heatmap/root/heatmap-root.ts"
107672
110062
  }
107673
110063
  },
107674
110064
  {
107675
- "name": "max",
107676
- "type": {
107677
- "text": "string"
107678
- },
107679
- "default": "''",
107680
- "description": "The greatest value, for `type=\"number\"`. Number Input adds steppers and\nkeys to the same bounds.",
107681
- "fieldName": "max",
110065
+ "description": "The trailing slot's box.",
110066
+ "name": "end",
107682
110067
  "inheritedFrom": {
107683
- "name": "HelixHeadlessInput",
107684
- "module": "src/input/root/input-root.ts"
110068
+ "name": "HelixHeadlessHeatmap",
110069
+ "module": "src/heatmap/root/heatmap-root.ts"
107685
110070
  }
107686
110071
  },
107687
110072
  {
107688
- "name": "maxlength",
107689
- "type": {
107690
- "text": "number | undefined"
107691
- },
107692
- "description": "Most characters the value may have.",
107693
- "fieldName": "maxLength",
110073
+ "description": "The three-slot row under the strip.",
110074
+ "name": "footer",
107694
110075
  "inheritedFrom": {
107695
- "name": "HelixHeadlessInput",
107696
- "module": "src/input/root/input-root.ts"
110076
+ "name": "HelixHeadlessHeatmap",
110077
+ "module": "src/heatmap/root/heatmap-root.ts"
107697
110078
  }
107698
110079
  },
107699
110080
  {
107700
- "name": "min",
107701
- "type": {
107702
- "text": "string"
107703
- },
107704
- "default": "''",
107705
- "description": "The least value, for `type=\"number\"`.",
107706
- "fieldName": "min",
110081
+ "description": "The readout: a polite live region that says the cell the keys moved to. Hide it visually.",
110082
+ "name": "live",
107707
110083
  "inheritedFrom": {
107708
- "name": "HelixHeadlessInput",
107709
- "module": "src/input/root/input-root.ts"
110084
+ "name": "HelixHeadlessHeatmap",
110085
+ "module": "src/heatmap/root/heatmap-root.ts"
107710
110086
  }
107711
110087
  },
107712
110088
  {
107713
- "name": "minlength",
107714
- "type": {
107715
- "text": "number | undefined"
107716
- },
107717
- "description": "Fewest characters the value may have.",
107718
- "fieldName": "minLength",
110089
+ "description": "The words under the strip while `loading` is set and there are no readings: the `loading` slot, falling back to `loading-text`.",
110090
+ "name": "loading",
107719
110091
  "inheritedFrom": {
107720
- "name": "HelixHeadlessInput",
107721
- "module": "src/input/root/input-root.ts"
110092
+ "name": "HelixHeadlessHeatmap",
110093
+ "module": "src/heatmap/root/heatmap-root.ts"
107722
110094
  }
107723
110095
  },
107724
110096
  {
107725
- "name": "pattern",
107726
- "type": {
107727
- "text": "string"
107728
- },
107729
- "default": "''",
107730
- "description": "A regular expression the value has to match, as the platform reads it.\n\nForwarded rather than checked here, which is the whole reason validity is\nthe platform's: the browser knows what a `pattern` means, anchors it at both\nends, and produces the message in the reader's own language.",
107731
- "fieldName": "pattern",
110097
+ "description": "The invisible point the tooltip is anchored to.",
110098
+ "name": "mark",
107732
110099
  "inheritedFrom": {
107733
- "name": "HelixHeadlessInput",
107734
- "module": "src/input/root/input-root.ts"
110100
+ "name": "HelixHeadlessHeatmap",
110101
+ "module": "src/heatmap/root/heatmap-root.ts"
107735
110102
  }
107736
110103
  },
107737
110104
  {
107738
- "name": "placeholder",
107739
- "type": {
107740
- "text": "string"
107741
- },
107742
- "default": "''",
107743
- "description": "The text shown while the field is empty.\n\nNot a label: it goes when typing starts.",
107744
- "fieldName": "placeholder",
110105
+ "description": "The busiest reading and the total of the readings drawn, written as a sentence for screen readers, which describes the strip. Rendered once there are cells. Hide it visually.",
110106
+ "name": "overview",
107745
110107
  "inheritedFrom": {
107746
- "name": "HelixHeadlessInput",
107747
- "module": "src/input/root/input-root.ts"
110108
+ "name": "HelixHeadlessHeatmap",
110109
+ "module": "src/heatmap/root/heatmap-root.ts"
107748
110110
  }
107749
110111
  },
107750
110112
  {
107751
- "name": "readonly",
110113
+ "description": "The same element as `strip`, under the name every chart gives the drawing that takes focus.",
110114
+ "name": "plot",
110115
+ "inheritedFrom": {
110116
+ "name": "HelixHeadlessHeatmap",
110117
+ "module": "src/heatmap/root/heatmap-root.ts"
110118
+ }
110119
+ },
110120
+ {
110121
+ "description": "A polite region that says how many cells are selected after a change, rendered from the first change. Hide it visually.",
110122
+ "name": "selection",
110123
+ "inheritedFrom": {
110124
+ "name": "HelixHeadlessHeatmap",
110125
+ "module": "src/heatmap/root/heatmap-root.ts"
110126
+ }
110127
+ },
110128
+ {
110129
+ "description": "The leading slot's box.",
110130
+ "name": "start",
110131
+ "inheritedFrom": {
110132
+ "name": "HelixHeadlessHeatmap",
110133
+ "module": "src/heatmap/root/heatmap-root.ts"
110134
+ }
110135
+ },
110136
+ {
110137
+ "description": "The middle slot's box.",
110138
+ "name": "summary",
110139
+ "inheritedFrom": {
110140
+ "name": "HelixHeadlessHeatmap",
110141
+ "module": "src/heatmap/root/heatmap-root.ts"
110142
+ }
110143
+ },
110144
+ {
110145
+ "description": "The readings as a table, for a screen reader, rendered only where they were drawn from `data`. Hide it visually.",
110146
+ "name": "table",
110147
+ "inheritedFrom": {
110148
+ "name": "HelixHeadlessHeatmap",
110149
+ "module": "src/heatmap/root/heatmap-root.ts"
110150
+ }
110151
+ },
110152
+ {
110153
+ "description": "The bubble, forwarded from `Tooltip`.",
110154
+ "name": "tooltip",
110155
+ "inheritedFrom": {
110156
+ "name": "HelixHeadlessHeatmap",
110157
+ "module": "src/heatmap/root/heatmap-root.ts"
110158
+ }
110159
+ },
110160
+ {
110161
+ "description": "The `Tooltip` element itself.",
110162
+ "name": "tooltip-anchor",
110163
+ "inheritedFrom": {
110164
+ "name": "HelixHeadlessHeatmap",
110165
+ "module": "src/heatmap/root/heatmap-root.ts"
110166
+ }
110167
+ },
110168
+ {
110169
+ "description": "The bubble's point, forwarded from `Tooltip`.",
110170
+ "name": "tooltip-arrow",
110171
+ "inheritedFrom": {
110172
+ "name": "HelixHeadlessHeatmap",
110173
+ "module": "src/heatmap/root/heatmap-root.ts"
110174
+ }
110175
+ },
110176
+ {
110177
+ "description": "The point while the bubble is below the reading, on its top edge. Set alongside `tooltip-arrow`.",
110178
+ "name": "tooltip-arrow-bottom",
110179
+ "inheritedFrom": {
110180
+ "name": "HelixHeadlessHeatmap",
110181
+ "module": "src/heatmap/root/heatmap-root.ts"
110182
+ }
110183
+ },
110184
+ {
110185
+ "description": "The point while the bubble is left of the reading, on its right edge. Set alongside `tooltip-arrow`.",
110186
+ "name": "tooltip-arrow-left",
110187
+ "inheritedFrom": {
110188
+ "name": "HelixHeadlessHeatmap",
110189
+ "module": "src/heatmap/root/heatmap-root.ts"
110190
+ }
110191
+ },
110192
+ {
110193
+ "description": "The point while the bubble is right of the reading, on its left edge. Set alongside `tooltip-arrow`.",
110194
+ "name": "tooltip-arrow-right",
110195
+ "inheritedFrom": {
110196
+ "name": "HelixHeadlessHeatmap",
110197
+ "module": "src/heatmap/root/heatmap-root.ts"
110198
+ }
110199
+ },
110200
+ {
110201
+ "description": "The point while the bubble is above the reading, on its bottom edge. Set alongside `tooltip-arrow`.",
110202
+ "name": "tooltip-arrow-top",
110203
+ "inheritedFrom": {
110204
+ "name": "HelixHeadlessHeatmap",
110205
+ "module": "src/heatmap/root/heatmap-root.ts"
110206
+ }
110207
+ },
110208
+ {
110209
+ "description": "The bubble while it is below the reading. Set alongside `tooltip`.",
110210
+ "name": "tooltip-bottom",
110211
+ "inheritedFrom": {
110212
+ "name": "HelixHeadlessHeatmap",
110213
+ "module": "src/heatmap/root/heatmap-root.ts"
110214
+ }
110215
+ },
110216
+ {
110217
+ "description": "One column's name and value inside the tooltip.",
110218
+ "name": "tooltip-cell",
110219
+ "inheritedFrom": {
110220
+ "name": "HelixHeadlessHeatmap",
110221
+ "module": "src/heatmap/root/heatmap-root.ts"
110222
+ }
110223
+ },
110224
+ {
110225
+ "description": "The cell the series keys rest on, in the charts whose readings hold several series. A strip draws one, so it is never set here.",
110226
+ "name": "tooltip-cell-current",
110227
+ "inheritedFrom": {
110228
+ "name": "HelixHeadlessHeatmap",
110229
+ "module": "src/heatmap/root/heatmap-root.ts"
110230
+ }
110231
+ },
110232
+ {
110233
+ "description": "The reading's own name inside the tooltip.",
110234
+ "name": "tooltip-label",
110235
+ "inheritedFrom": {
110236
+ "name": "HelixHeadlessHeatmap",
110237
+ "module": "src/heatmap/root/heatmap-root.ts"
110238
+ }
110239
+ },
110240
+ {
110241
+ "description": "The bubble while it is left of the reading. Set alongside `tooltip`.",
110242
+ "name": "tooltip-left",
110243
+ "inheritedFrom": {
110244
+ "name": "HelixHeadlessHeatmap",
110245
+ "module": "src/heatmap/root/heatmap-root.ts"
110246
+ }
110247
+ },
110248
+ {
110249
+ "description": "A column's name inside the tooltip.",
110250
+ "name": "tooltip-name",
110251
+ "inheritedFrom": {
110252
+ "name": "HelixHeadlessHeatmap",
110253
+ "module": "src/heatmap/root/heatmap-root.ts"
110254
+ }
110255
+ },
110256
+ {
110257
+ "description": "The bubble while it is right of the reading. Set alongside `tooltip`.",
110258
+ "name": "tooltip-right",
110259
+ "inheritedFrom": {
110260
+ "name": "HelixHeadlessHeatmap",
110261
+ "module": "src/heatmap/root/heatmap-root.ts"
110262
+ }
110263
+ },
110264
+ {
110265
+ "description": "The bubble while it is above the reading. Set alongside `tooltip`.",
110266
+ "name": "tooltip-top",
110267
+ "inheritedFrom": {
110268
+ "name": "HelixHeadlessHeatmap",
110269
+ "module": "src/heatmap/root/heatmap-root.ts"
110270
+ }
110271
+ },
110272
+ {
110273
+ "description": "A column's value inside the tooltip.",
110274
+ "name": "tooltip-value",
110275
+ "inheritedFrom": {
110276
+ "name": "HelixHeadlessHeatmap",
110277
+ "module": "src/heatmap/root/heatmap-root.ts"
110278
+ }
110279
+ }
110280
+ ],
110281
+ "attributes": [
110282
+ {
110283
+ "name": "flat",
107752
110284
  "type": {
107753
110285
  "text": "boolean"
107754
110286
  },
107755
110287
  "default": "false",
107756
- "description": "Whether the field blocks editing. A read-only field still submits its\nvalue.\n\n**The attribute is `readonly`, which is the platform's spelling.** A\ncamelCase property needs an explicit `attribute`, and dash-casing a word\nHTML writes as one costs what an attribute always costs here: nothing\nwarns. `<helix-headless-input readonly>` is what anybody who has written\nHTML types; against `read-only` it parses to no property at all, and the\nfield stays editable with no error anywhere. Measured on the dash-cased\nform, `readOnly` came back `false`.",
107757
- "fieldName": "readOnly",
110288
+ "description": "Draws every prism at no height, so the tones lie on a plane.",
110289
+ "fieldName": "flat",
107758
110290
  "inheritedFrom": {
107759
- "name": "HelixHeadlessInput",
107760
- "module": "src/input/root/input-root.ts"
110291
+ "name": "HelixHeadlessIsometricHeatmap",
110292
+ "module": "src/isometric-heatmap/root/isometric-heatmap-root.ts"
107761
110293
  }
107762
110294
  },
107763
110295
  {
107764
- "name": "reveal",
110296
+ "name": "relief",
107765
110297
  "type": {
107766
- "text": "boolean"
110298
+ "text": "number"
107767
110299
  },
107768
- "default": "false",
107769
- "description": "Whether a password field offers a toggle that shows what was typed.\n\nIgnored on every other type. A reveal on an email field would be a button\nthat does nothing visible, and guarding it here rather than asking the\nconsumer not to means the property can be set once on a component that\nchanges type.",
107770
- "fieldName": "reveal",
110300
+ "default": "2",
110301
+ "description": "How tall the highest reading stands, in cells. Every other reading stands\nat its share of it.",
110302
+ "fieldName": "relief",
107771
110303
  "inheritedFrom": {
107772
- "name": "HelixHeadlessInput",
107773
- "module": "src/input/root/input-root.ts"
110304
+ "name": "HelixHeadlessIsometricHeatmap",
110305
+ "module": "src/isometric-heatmap/root/isometric-heatmap-root.ts"
107774
110306
  }
107775
110307
  },
107776
110308
  {
107777
- "name": "reveal-label",
110309
+ "name": "empty-text",
107778
110310
  "type": {
107779
110311
  "text": "string"
107780
110312
  },
107781
- "default": "'Show password'",
107782
- "description": "The accessible name of the reveal toggle.\n\nThe state is `aria-pressed`, not this.",
107783
- "fieldName": "revealLabel",
110313
+ "default": "'No readings'",
110314
+ "description": "The words shown in place of the drawing when the table has no readings,\nand the fallback of the `empty` slot.",
110315
+ "fieldName": "emptyText",
107784
110316
  "inheritedFrom": {
107785
- "name": "HelixHeadlessInput",
107786
- "module": "src/input/root/input-root.ts"
110317
+ "name": "MixinChartStatus",
110318
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
107787
110319
  }
107788
110320
  },
107789
110321
  {
107790
- "name": "step",
110322
+ "name": "loading",
107791
110323
  "type": {
107792
- "text": "string"
110324
+ "text": "boolean"
107793
110325
  },
107794
- "default": "''",
107795
- "description": "The step a valid value is a multiple of, counted from `min`, for\n`type=\"number\"`.",
107796
- "fieldName": "step",
110326
+ "default": "false",
110327
+ "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.",
110328
+ "fieldName": "loading",
107797
110329
  "inheritedFrom": {
107798
- "name": "HelixHeadlessInput",
107799
- "module": "src/input/root/input-root.ts"
110330
+ "name": "MixinChartStatus",
110331
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
107800
110332
  }
107801
110333
  },
107802
110334
  {
107803
- "name": "type",
110335
+ "name": "loading-text",
107804
110336
  "type": {
107805
- "text": "'email' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'url'"
110337
+ "text": "string"
107806
110338
  },
107807
- "default": "'text'",
107808
- "description": "The kind of text the field accepts. It sets the on-screen keyboard and the\nvalidation.\n\n**Not reflected.** Reflection exists so a selector can reach a value, and\nno stylesheet in this repository selects on `type`. Reflecting it writes\n`type=\"text\"` onto every `<helix-headless-input>` ever rendered, an\nattribute no consumer's markup has, which is the fault the area rules write\nup under `Button`'s `href`, `target` and `rel`.\n\nNothing reads it from the attribute either. The real `<input>` inside takes\nit as a property binding, which is what makes the keyboard and the\nvalidation follow.",
107809
- "fieldName": "type",
110339
+ "default": "'Loading readings'",
110340
+ "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.",
110341
+ "fieldName": "loadingText",
107810
110342
  "inheritedFrom": {
107811
- "name": "HelixHeadlessInput",
107812
- "module": "src/input/root/input-root.ts"
110343
+ "name": "MixinChartStatus",
110344
+ "module": "src/mixins/mixin-chart-status/mixin-chart-status.ts"
107813
110345
  }
107814
110346
  },
107815
110347
  {
107816
- "name": "disabled",
110348
+ "name": "for",
107817
110349
  "type": {
107818
- "text": "boolean"
110350
+ "text": "string"
107819
110351
  },
107820
- "default": "false",
107821
- "description": "Whether the control is disabled and cannot be used.\n\nReflected, because the styled tier selects on it, and mirrored to\n`aria-disabled` rather than removing the element from the accessibility\ntree, so a screen reader can still announce that the control exists.\n\nThe mirror itself is in `willUpdate` below, here rather than in each\ncontrol, because here is where `disabled` is.",
107822
- "fieldName": "disabled",
110352
+ "default": "''",
110353
+ "description": "The id of the table to read.\n\nNames a table in the same tree, so a chart inside another component's\nshadow root reads a table in that root rather than one in the document. A\n`<table>` or anything built from grid roles, including `helix-table`.\n\n**In React this arrives as a property and not as an attribute**, the way\n`Tooltip.for` does, so it does not reflect and nothing styles on it.",
110354
+ "fieldName": "for",
107823
110355
  "inheritedFrom": {
107824
- "name": "HelixFormElementBase",
107825
- "module": "src/helix-form-element/helix-form-element-base.ts"
110356
+ "name": "MixinChartSource",
110357
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
107826
110358
  }
107827
110359
  },
107828
110360
  {
107829
- "name": "name",
110361
+ "name": "label",
107830
110362
  "type": {
107831
110363
  "text": "string"
107832
110364
  },
107833
110365
  "default": "''",
107834
- "description": "The name the control's value is submitted under.\n\n**Reflected, and it is the exception to \"reflect only what CSS selects\non\".** The platform builds a form's entry list from the `name` *content\nattribute*, not from the property, so a control named through the property\nsubmitted under no name at all and was silently dropped. Measured: two\ninputs in one form, one named by attribute and one by property, and the\nform carried a single entry.\n\nSafe for a React consumer, which is what the rule is protecting: React\nrenders a custom element's props as attributes on the server, so the name\nis already in the markup being hydrated and reflecting it writes what is\nthere. It is only a change to the markup when a consumer assigns it\nimperatively later, and nothing is hydrating by then.\n\nHere rather than on each control.",
107835
- "fieldName": "name",
110366
+ "description": "The chart's name, which starts the chart's text summary.\n\nAbsent falls back to the table's own caption, which is usually the right\nwords and is already written.",
110367
+ "fieldName": "label",
107836
110368
  "inheritedFrom": {
107837
- "name": "HelixFormElementBase",
107838
- "module": "src/helix-form-element/helix-form-element-base.ts"
110369
+ "name": "MixinChartSource",
110370
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
107839
110371
  }
107840
- }
107841
- ],
107842
- "slots": [
110372
+ },
107843
110373
  {
107844
- "description": "Replaces the cross on the clear button, under `clearable`.",
107845
- "name": "clear-icon",
110374
+ "name": "locale",
110375
+ "type": {
110376
+ "text": "string"
110377
+ },
110378
+ "default": "''",
110379
+ "description": "The locale the chart's own numbers are written in: its axis, its\npercentages and its totals, such as `de` for `1.240` and `32 %`.\n\nAbsent reads the nearest `lang`, then the runtime's own. The table's\ncells are shown as the table writes them, whatever this says.",
110380
+ "fieldName": "locale",
107846
110381
  "inheritedFrom": {
107847
- "name": "HelixHeadlessInput",
107848
- "module": "src/input/root/input-root.ts"
110382
+ "name": "MixinChartSource",
110383
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
107849
110384
  }
107850
110385
  },
107851
110386
  {
107852
- "description": "Replaces the crossed-out eye on the reveal button while the password shows, under `reveal`.",
107853
- "name": "conceal-icon",
110387
+ "name": "position-label",
110388
+ "type": {
110389
+ "text": "string"
110390
+ },
110391
+ "default": "'{position} of {count}'",
110392
+ "description": "Where a reading the keys moved to stands among the readings, said after\nit. `{position}` and `{count}` are replaced with the numbers, written in\n`locale`.\n\nSet it to the words of the page's language, such as `{position} von\n{count}`, or to nothing to say no position. A slice or a series a\nlegend hid is not counted.",
110393
+ "fieldName": "positionLabel",
107854
110394
  "inheritedFrom": {
107855
- "name": "HelixHeadlessInput",
107856
- "module": "src/input/root/input-root.ts"
110395
+ "name": "MixinChartSource",
110396
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
107857
110397
  }
107858
110398
  },
107859
110399
  {
107860
- "description": "After the text, for an icon or a unit.",
107861
- "name": "end",
110400
+ "name": "busiest-label",
110401
+ "type": {
110402
+ "text": "string"
110403
+ },
110404
+ "default": "'Busiest'",
110405
+ "description": "The name the `overview` gives the busiest reading, `{busiestLabel}` in\n`overview-label`.",
110406
+ "fieldName": "busiestLabel",
107862
110407
  "inheritedFrom": {
107863
- "name": "HelixHeadlessInput",
107864
- "module": "src/input/root/input-root.ts"
110408
+ "name": "HelixHeadlessHeatmap",
110409
+ "module": "src/heatmap/root/heatmap-root.ts"
107865
110410
  }
107866
110411
  },
107867
110412
  {
107868
- "description": "The message that says what is wrong, for content richer than a string. It shows while there is a message.",
107869
- "name": "feedback",
110413
+ "name": "gap",
110414
+ "type": {
110415
+ "text": "number"
110416
+ },
110417
+ "default": "2",
110418
+ "description": "Space between cells, in CSS pixels. It is a number for the same reason\n`min-cell` is.",
110419
+ "fieldName": "gap",
107870
110420
  "inheritedFrom": {
107871
- "name": "HelixHeadlessInput",
107872
- "module": "src/input/root/input-root.ts"
110421
+ "name": "HelixHeadlessHeatmap",
110422
+ "module": "src/heatmap/root/heatmap-root.ts"
107873
110423
  }
107874
110424
  },
107875
110425
  {
107876
- "description": "Help under the control, for content richer than the `hint` text.",
107877
- "name": "hint",
110426
+ "name": "min-cell",
110427
+ "type": {
110428
+ "text": "number"
110429
+ },
110430
+ "default": "8",
110431
+ "description": "The smallest a cell may get before the strip draws fewer of them, in CSS pixels.\n\n**Set this only to overrule what the strip actually draws.** The arithmetic\nneeds a width in pixels and the width is a length the stylesheet resolves,\nso a number written here that disagrees with the sheet is a promise the\nconsumer has to keep by hand, and the one number a summary is told to trust\nis the one it gets wrong.\n\nThe strip measures itself, so sizing the cells in a sheet is enough on its\nown and these two are the estimate used until the first measurement lands.\nWriting the attribute pins the value and stops the measurement being\nconsulted, which is what a container query or a transition on the cell size\nwants, where what is drawn this frame is not what the arithmetic should\nplan around.\n\nZero turns the dropping off altogether, which is right for a strip in a\ncontainer that cannot get narrow.",
110432
+ "fieldName": "minCell",
107878
110433
  "inheritedFrom": {
107879
- "name": "HelixHeadlessInput",
107880
- "module": "src/input/root/input-root.ts"
110434
+ "name": "HelixHeadlessHeatmap",
110435
+ "module": "src/heatmap/root/heatmap-root.ts"
107881
110436
  }
107882
110437
  },
107883
110438
  {
107884
- "description": "The label, for content richer than the `label` text.",
107885
- "name": "label",
110439
+ "name": "overview-label",
110440
+ "type": {
110441
+ "text": "string"
110442
+ },
110443
+ "default": "'{busiestLabel}: {busiest}; {totalLabel} {total}.'",
110444
+ "description": "The `overview`'s sentence. `{busiestLabel}` and `{totalLabel}` are\n`busiest-label` and `total-label`, `{busiest}` the busiest reading's name\nand its reading as the table writes it, and `{total}` the total of the\nreadings drawn, written in the locale.",
110445
+ "fieldName": "overviewLabel",
107886
110446
  "inheritedFrom": {
107887
- "name": "HelixHeadlessInput",
107888
- "module": "src/input/root/input-root.ts"
110447
+ "name": "HelixHeadlessHeatmap",
110448
+ "module": "src/heatmap/root/heatmap-root.ts"
107889
110449
  }
107890
110450
  },
107891
110451
  {
107892
- "description": "Replaces the eye on the reveal button while the password is hidden, under `reveal`.",
107893
- "name": "reveal-icon",
110452
+ "name": "rows",
110453
+ "type": {
110454
+ "text": "number"
110455
+ },
110456
+ "default": "1",
110457
+ "description": "How many rows the strip has.\n\n`1` is a status strip and `7` is a calendar week, which are the two readings\nthis covers. Cells fill down the column and then across, which is what a\ncalendar heatmap does: a week is a column, so the strip reads along the\nline in weeks, from the right on a right-to-left page, and top to bottom in\ndays.",
110458
+ "fieldName": "rows",
107894
110459
  "inheritedFrom": {
107895
- "name": "HelixHeadlessInput",
107896
- "module": "src/input/root/input-root.ts"
110460
+ "name": "HelixHeadlessHeatmap",
110461
+ "module": "src/heatmap/root/heatmap-root.ts"
107897
110462
  }
107898
110463
  },
107899
110464
  {
107900
- "description": "Before the text, for an icon or a prefix.",
107901
- "name": "start",
110465
+ "name": "selected-label",
110466
+ "type": {
110467
+ "text": "string"
110468
+ },
110469
+ "default": "'selected'",
110470
+ "description": "What the readout added for a selected cell, under `selection-mode`.",
110471
+ "fieldName": "selectedLabel",
107902
110472
  "inheritedFrom": {
107903
- "name": "HelixHeadlessInput",
107904
- "module": "src/input/root/input-root.ts"
110473
+ "name": "HelixHeadlessHeatmap",
110474
+ "module": "src/heatmap/root/heatmap-root.ts"
107905
110475
  }
107906
- }
107907
- ],
107908
- "cssParts": [
110476
+ },
107909
110477
  {
107910
- "description": "The button that empties the field.",
107911
- "name": "clear",
110478
+ "name": "selection-label",
110479
+ "type": {
110480
+ "text": "string"
110481
+ },
110482
+ "default": "'{count, plural, one {# selected} other {# selected}}'",
110483
+ "description": "What the `selection` part says after the selection changes. `{count}` is\nhow many cells are selected, written in the locale, and a language that\nneeds plural forms writes them: `{count, plural, one {# wybrany} few\n{# wybrane} many {# wybranych} other {# wybranego}}`.",
110484
+ "fieldName": "selectionLabel",
107912
110485
  "inheritedFrom": {
107913
- "name": "HelixHeadlessInput",
107914
- "module": "src/input/root/input-root.ts"
110486
+ "name": "HelixHeadlessHeatmap",
110487
+ "module": "src/heatmap/root/heatmap-root.ts"
107915
110488
  }
107916
110489
  },
107917
110490
  {
107918
- "description": "The native input.",
107919
- "name": "control",
110491
+ "name": "selection-mode",
110492
+ "type": {
110493
+ "text": "'multiple' | 'single' | undefined"
110494
+ },
110495
+ "description": "How many cells a reader can select: `single` or `multiple`.\n\nAbsent selects nothing, and a press or Space does what it did.",
110496
+ "fieldName": "selectionMode",
107920
110497
  "inheritedFrom": {
107921
- "name": "HelixHeadlessInput",
107922
- "module": "src/input/root/input-root.ts"
110498
+ "name": "HelixHeadlessHeatmap",
110499
+ "module": "src/heatmap/root/heatmap-root.ts"
107923
110500
  }
107924
110501
  },
107925
110502
  {
107926
- "description": "The message that says what is wrong with the value.",
107927
- "name": "feedback",
110503
+ "name": "selection-shape",
110504
+ "type": {
110505
+ "text": "'linear' | 'rectangle'"
110506
+ },
110507
+ "default": "'linear'",
110508
+ "description": "What Shift takes in under `selection-mode=\"multiple\"`: `linear`, every\ncell between two in the table's order, or `rectangle`, the cells between\ntwo corners by row and by column, as a spreadsheet selects a range.",
110509
+ "fieldName": "selectionShape",
107928
110510
  "inheritedFrom": {
107929
- "name": "HelixHeadlessInput",
107930
- "module": "src/input/root/input-root.ts"
110511
+ "name": "HelixHeadlessHeatmap",
110512
+ "module": "src/heatmap/root/heatmap-root.ts"
107931
110513
  }
107932
110514
  },
107933
110515
  {
107934
- "description": "The box around the input, its slots, and its buttons.",
107935
- "name": "field",
110516
+ "name": "strip-label",
110517
+ "type": {
110518
+ "text": "string"
110519
+ },
110520
+ "default": "'Heatmap'",
110521
+ "description": "The strip's name where the chart has none: no `aria-label`, `label`, or\ntable caption.",
110522
+ "fieldName": "stripLabel",
107936
110523
  "inheritedFrom": {
107937
- "name": "HelixHeadlessInput",
107938
- "module": "src/input/root/input-root.ts"
110524
+ "name": "HelixHeadlessHeatmap",
110525
+ "module": "src/heatmap/root/heatmap-root.ts"
107939
110526
  }
107940
110527
  },
107941
110528
  {
107942
- "description": "Help text under the field, shown while there is no feedback.",
107943
- "name": "hint",
110529
+ "name": "thresholds",
110530
+ "type": {
110531
+ "text": "string"
110532
+ },
110533
+ "default": "''",
110534
+ "description": "Lower bounds for the tone buckets, in the order the tones are given.\n\n`thresholds=\"1 3 6 9\"` with `tones=\"1 2 3 4\"` puts 1 and 2 in the ramp's\nfirst step, 3 to 5 in the second, 6 to 8 in the third, and 9 upward in the\nfourth. A value below the first bound gets no tone at all: an empty day in a\ncontribution graph is a day with nothing in it, and painting it as the\nlowest bucket claims a reading that does not exist.",
110535
+ "fieldName": "thresholds",
107944
110536
  "inheritedFrom": {
107945
- "name": "HelixHeadlessInput",
107946
- "module": "src/input/root/input-root.ts"
110537
+ "name": "HelixHeadlessHeatmap",
110538
+ "module": "src/heatmap/root/heatmap-root.ts"
107947
110539
  }
107948
110540
  },
107949
110541
  {
107950
- "description": "The label above the field.",
107951
- "name": "label",
110542
+ "name": "tones",
110543
+ "type": {
110544
+ "text": "string"
110545
+ },
110546
+ "default": "''",
110547
+ "description": "The tone for each bucket, in the same order as `thresholds`.\n\nA name, resolved as `--heatmap-tone-<name>` by whichever tier answers.\n**`\"1\"` through `\"5\"` are a ramp and everything else is a category**, which\nis the distinction a heatmap lives or dies on: magnitude has to be one hue\ngetting louder, because a reader compares two cells by weight and cannot\ncompare two hues at all. `tones=\"surface info accent success primary\"` for a\ncommit count is five unrelated hues for five amounts, which is confetti with\nno order in it.",
110548
+ "fieldName": "tones",
107952
110549
  "inheritedFrom": {
107953
- "name": "HelixHeadlessInput",
107954
- "module": "src/input/root/input-root.ts"
110550
+ "name": "HelixHeadlessHeatmap",
110551
+ "module": "src/heatmap/root/heatmap-root.ts"
107955
110552
  }
107956
110553
  },
107957
110554
  {
107958
- "description": "The button that shows and hides a password.",
107959
- "name": "reveal",
110555
+ "name": "total-label",
110556
+ "type": {
110557
+ "text": "string"
110558
+ },
110559
+ "default": "'Total'",
110560
+ "description": "The name the `overview` gives the total of the readings drawn,\n`{totalLabel}` in `overview-label`.",
110561
+ "fieldName": "totalLabel",
107960
110562
  "inheritedFrom": {
107961
- "name": "HelixHeadlessInput",
107962
- "module": "src/input/root/input-root.ts"
110563
+ "name": "HelixHeadlessHeatmap",
110564
+ "module": "src/heatmap/root/heatmap-root.ts"
107963
110565
  }
107964
110566
  },
107965
110567
  {
107966
- "description": "The reveal button while the password is shown, added beside `reveal`.",
107967
- "name": "reveal-pressed",
110568
+ "name": "value",
110569
+ "type": {
110570
+ "text": "string"
110571
+ },
110572
+ "default": "''",
110573
+ "description": "The selected cells, separated by commas: each by the date its row's\nheader carries in a `<time datetime>`, such as `2026-06-11`, or by the\nheader's words where it carries none.\n\nSet it to start with cells selected. Written by a press or a key under\n`selection-mode`.",
110574
+ "fieldName": "value",
107968
110575
  "inheritedFrom": {
107969
- "name": "HelixHeadlessInput",
107970
- "module": "src/input/root/input-root.ts"
110576
+ "name": "HelixHeadlessHeatmap",
110577
+ "module": "src/heatmap/root/heatmap-root.ts"
107971
110578
  }
107972
110579
  }
107973
110580
  ],
@@ -107976,66 +110583,86 @@
107976
110583
  "type": {
107977
110584
  "text": "Event"
107978
110585
  },
107979
- "description": "Sent when the user finishes changing the value. Relayed from the native input.",
110586
+ "description": "Fired once a press or a key has changed which cells are selected.",
107980
110587
  "name": "change",
107981
110588
  "reactProp": "onchange",
107982
110589
  "inheritedFrom": {
107983
- "name": "HelixHeadlessInput",
107984
- "module": "src/input/root/input-root.ts"
110590
+ "name": "HelixHeadlessHeatmap",
110591
+ "module": "src/heatmap/root/heatmap-root.ts"
107985
110592
  }
107986
110593
  },
107987
110594
  {
107988
110595
  "type": {
107989
110596
  "text": "HelixBeforeChangeEvent"
107990
110597
  },
107991
- "description": "The text is about to change. Cancelable: cancel it to keep the current text.",
110598
+ "description": "Fired before a press or a key changes which cells are selected, with the `value` it would leave. Cancelable.",
107992
110599
  "name": "helix-before-change",
107993
110600
  "reactProp": "onhelix-before-change",
107994
110601
  "inheritedFrom": {
107995
- "name": "HelixHeadlessInput",
107996
- "module": "src/input/root/input-root.ts"
110602
+ "name": "HelixHeadlessHeatmap",
110603
+ "module": "src/heatmap/root/heatmap-root.ts"
107997
110604
  }
107998
110605
  },
107999
110606
  {
108000
110607
  "type": {
108001
- "text": "HelixClearEvent"
110608
+ "text": "HelixReadingChangeEvent"
108002
110609
  },
108003
- "description": "Fired after the clear button has emptied the field, after `input` and `change`.",
108004
- "name": "helix-clear",
108005
- "reactProp": "onhelix-clear",
110610
+ "description": "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.",
110611
+ "name": "helix-reading-change",
110612
+ "reactProp": "onhelix-reading-change",
108006
110613
  "inheritedFrom": {
108007
- "name": "HelixHeadlessInput",
108008
- "module": "src/input/root/input-root.ts"
110614
+ "name": "HelixHeadlessHeatmap",
110615
+ "module": "src/heatmap/root/heatmap-root.ts"
108009
110616
  }
108010
110617
  },
108011
110618
  {
108012
110619
  "type": {
108013
- "text": "Event"
110620
+ "text": "HelixReadingPressEvent"
108014
110621
  },
108015
- "description": "Fired as the value changes.",
108016
- "name": "input",
108017
- "reactProp": "oninput",
110622
+ "description": "A reading was clicked, tapped, or pressed with Enter or Space, with the same detail as `helix-reading-change`.",
110623
+ "name": "helix-reading-press",
110624
+ "reactProp": "onhelix-reading-press",
108018
110625
  "inheritedFrom": {
108019
- "name": "HelixHeadlessInput",
108020
- "module": "src/input/root/input-root.ts"
110626
+ "name": "HelixHeadlessHeatmap",
110627
+ "module": "src/heatmap/root/heatmap-root.ts"
110628
+ }
110629
+ },
110630
+ {
110631
+ "type": {
110632
+ "text": "HelixResizeEvent"
110633
+ },
110634
+ "description": "Fired when the number of cells drawn changes, with the new number.",
110635
+ "name": "helix-resize",
110636
+ "reactProp": "onhelix-resize",
110637
+ "inheritedFrom": {
110638
+ "name": "HelixHeadlessHeatmap",
110639
+ "module": "src/heatmap/root/heatmap-root.ts"
108021
110640
  }
108022
110641
  }
108023
110642
  ],
108024
110643
  "cssStates": [
108025
110644
  {
108026
- "description": "The field holds no text.",
108027
- "name": "blank",
110645
+ "description": "While a cell is shown, under the pointer or the keys, with its tooltip open.",
110646
+ "name": "active",
108028
110647
  "inheritedFrom": {
108029
- "name": "HelixHeadlessInput",
108030
- "module": "src/input/root/input-root.ts"
110648
+ "name": "HelixHeadlessHeatmap",
110649
+ "module": "src/heatmap/root/heatmap-root.ts"
108031
110650
  }
108032
110651
  },
108033
110652
  {
108034
- "description": "The control has an error to show, from the browser's validation, `validate`, or your `feedback`.",
108035
- "name": "invalid",
110653
+ "description": "While the `empty` part stands in place of the cells.",
110654
+ "name": "empty",
108036
110655
  "inheritedFrom": {
108037
- "name": "HelixHeadlessInput",
108038
- "module": "src/input/root/input-root.ts"
110656
+ "name": "HelixHeadlessHeatmap",
110657
+ "module": "src/heatmap/root/heatmap-root.ts"
110658
+ }
110659
+ },
110660
+ {
110661
+ "description": "While the `loading` part stands in place of the cells.",
110662
+ "name": "loading",
110663
+ "inheritedFrom": {
110664
+ "name": "HelixHeadlessHeatmap",
110665
+ "module": "src/heatmap/root/heatmap-root.ts"
108039
110666
  }
108040
110667
  },
108041
110668
  {
@@ -108047,25 +110674,25 @@
108047
110674
  }
108048
110675
  }
108049
110676
  ],
108050
- "modulePath": "src/input/root/input-root.ts",
108051
- "definitionPath": "src/input/root/input-root.ts"
110677
+ "modulePath": "src/isometric-heatmap/root/isometric-heatmap-root.ts",
110678
+ "definitionPath": "src/isometric-heatmap/root/isometric-heatmap-root.ts"
108052
110679
  }
108053
110680
  ],
108054
110681
  "exports": [
108055
110682
  {
108056
110683
  "kind": "js",
108057
- "name": "HelixInput",
110684
+ "name": "HelixIsometricHeatmap",
108058
110685
  "declaration": {
108059
- "name": "HelixInput",
108060
- "module": "src/input/root/input-root.ts"
110686
+ "name": "HelixIsometricHeatmap",
110687
+ "module": "src/isometric-heatmap/root/isometric-heatmap-root.ts"
108061
110688
  }
108062
110689
  },
108063
110690
  {
108064
110691
  "kind": "custom-element-definition",
108065
- "name": "helix-input",
110692
+ "name": "helix-isometric-heatmap",
108066
110693
  "declaration": {
108067
- "name": "HelixInput",
108068
- "module": "src/input/root/input-root.ts"
110694
+ "name": "HelixIsometricHeatmap",
110695
+ "module": "src/isometric-heatmap/root/isometric-heatmap-root.ts"
108069
110696
  }
108070
110697
  }
108071
110698
  ]
@@ -200086,7 +202713,7 @@
200086
202713
  "declarations": [
200087
202714
  {
200088
202715
  "kind": "class",
200089
- "description": "Hundreds of thin strands are drawn as one ribbon, and the light they add\ntogether is bloomed, so where they converge the ribbon burns hot. The ribbon\nmoves on its own all the time: it sways and breathes, its strands wave and\nroll over one another, and light runs along them.\n\nIts palette comes from the tokens. The strands are `--helix-color-primary`,\na few are `--helix-color-accent` for depth, and the page they light is\n`--helix-color-background`. On a light page the light becomes ink, because\nlight added to near-white cannot be seen.\n\n**Four forms, set with `variant`.** `bend` turns bright strands through one\ntight point, with its arms opening to the right. `ribbon`, the default, is a\nbroad, soft ribbon in long curves. `sweep` enters at a top corner, the one\n`at` is nearer, and crosses in one diagonal to the far side. `waves` is sharp\nstrands crossing the full width.\n\n**Quiet behind words.** `quiet` names elements, such as a hero's words, that\nthe light dims behind to a faint glow, so a bright ribbon can cross the page\nunder them and they stay crisp.\n\n**In its own box, by default.** The element fills the box it is given, the\nway an image does, and `at` places the bend's apex or the ribbon's axis across\nit. Content placed inside sits over the ribbon, in the `content` part.\n\n**Down the whole page, with `travel`.** The element fixes itself behind the\npage, on `--helix-layer-beneath`, and lays one ribbon from the top of the page to the\nbottom, so scrolling travels along it. Put `helix-strands-stop` elements\ninside to pin a form to a section: each names an element with `for` and says\nwhich form the ribbon takes there. Between stops the ribbon fills the gap in\nits own `variant`, and between two waves less than a screen and a half\napart it turns off screen so each wave reads alone. Set `z-index` on the\nelement to move it.\n\nThe ribbon stops moving in these cases:\n- `prefers-reduced-motion` is set. The element shows one still frame, and in\n `travel` still follows the scroll, without easing.\n- The element is off screen or in a background tab.\n\nIt shows a gradient from the same tokens in these cases, and matches\n`:state(fallback)` and sends `helix-strands-fallback` with the reason:\n- The renderer draws on the CPU, such as a headless browser or a machine with\n no usable GPU.\n- There is no WebGL, or the browser took the drawing context back.\n\nStrands is styled only and has behavior, as `Aura` does: its behavior is\ndrawing to a canvas, so there is no structure for a headless version to hold.",
202716
+ "description": "Hundreds of thin strands are drawn as one ribbon, and the light they add\ntogether is bloomed, so where they converge the ribbon burns hot. The ribbon\nmoves on its own all the time: it sways and breathes, its strands wave and\nroll over one another, and light runs along them.\n\nIts palette comes from the tokens. The strands are `--helix-color-primary`,\na few are `--helix-color-accent` for depth, and the page they light is\n`--helix-color-background`. On a light page the light becomes ink, because\nlight added to near-white cannot be seen.\n\n**Four forms, set with `variant`.** `bend` turns bright strands through one\ntight point, with its arms opening to the right. `ribbon`, the default, is a\nbroad, soft ribbon in long curves. `sweep` enters at a top corner, the one\n`at` is nearer, and crosses in one diagonal to the far side. `waves` is sharp\nstrands crossing the full width.\n\n**Quiet behind words.** `quiet` names elements, such as a hero's words, that\nthe light dims behind to a faint glow, so a bright ribbon can cross the page\nunder them and they stay crisp.\n\n**In its own box, by default.** The element fills the box it is given, the\nway an image does, and `at` places the bend's apex or the ribbon's axis across\nit. Content placed inside sits over the ribbon, in the `content` part.\n\n**Down the whole page, with `travel`.** The element fixes itself behind the\npage, on `--helix-layer-beneath`, and lays one ribbon from the top of the page to the\nbottom, so scrolling travels along it. Put `helix-strands-stop` elements\ninside to pin a form to a section: each names an element with `for` and says\nwhich form the ribbon takes there. Between stops the ribbon fills the gap in\nits own `variant`, and between two waves less than a screen and a half\napart it turns off screen so each wave reads alone. Set `z-index` on the\nelement to move it.\n\nThe ribbon stops moving in these cases:\n- `prefers-reduced-motion` is set. The element shows one still frame, and in\n `travel` still follows the scroll.\n- The element is off screen or in a background tab.\n\nIt shows a gradient from the same tokens in these cases, and matches\n`:state(fallback)` and sends `helix-strands-fallback` with the reason:\n- The renderer draws on the CPU, such as a headless browser or a machine with\n no usable GPU.\n- There is no WebGL, or the browser took the drawing context back.\n\nStrands is styled only and has behavior, as `Aura` does: its behavior is\ndrawing to a canvas, so there is no structure for a headless version to hold.",
200090
202717
  "name": "HelixStrands",
200091
202718
  "cssProperties": [
200092
202719
  {
@@ -200447,7 +203074,7 @@
200447
203074
  },
200448
203075
  "privacy": "private",
200449
203076
  "default": "0",
200450
- "description": "In `travel`, the scroll position the ribbon is drawn at, easing toward the page's."
203077
+ "description": "In `travel`, the scroll position the ribbon was last drawn at."
200451
203078
  },
200452
203079
  {
200453
203080
  "kind": "field",
@@ -200679,7 +203306,7 @@
200679
203306
  "name": "handleScroll",
200680
203307
  "privacy": "private",
200681
203308
  "readonly": true,
200682
- "description": "The page scrolled. A running loop eases toward it on its own; a stopped\none, for a reader who asked for no motion, jumps there and paints once."
203309
+ "description": "The page scrolled. A running loop draws the new position on its next\nframe; a stopped one, for a reader who asked for no motion, paints once."
200683
203310
  },
200684
203311
  {
200685
203312
  "kind": "method",
@@ -206211,7 +208838,7 @@
206211
208838
  "text": "string"
206212
208839
  },
206213
208840
  "default": "''",
206214
- "description": "The column widths as one track list, written once on the table.\n\nWith `TableColumn` children, each track sizes the column in its place, a\nhidden column counted, so hiding one takes its track with it and the rest\nkeep theirs. The columns decide how many tracks there are and this list\nonly how wide: a track past the last column is dropped, and a column past\nthe last track shares what is left. With no columns declared it is the\nwhole track list. Tracks count as the grid counts them, so `minmax(0, 1fr)`\nis one and `repeat(2, 8rem)` is two, and one the grid would refuse leaves\nits column at the default rather than taking the table down to one column.\n\n**A column's own `width` wins over its track here.** The width is written\non the column it sizes, which is the more particular statement, and it is\nwhere a resize lands: a reader dragging a column's edge writes `width`, so\nwere this list to win, the drag would move the separator and leave the\ntrack where the list put it. This is the table's default for its columns,\nand each column may say otherwise.\n\n**It is also the only track list a server can send.** The shim has no tree\nto walk, so a render there knows of no columns and this attribute is the\nwhole answer: a table given one lays its grid out in the first paint, and a\ntable sized only by its columns is one track wide until it upgrades.\n\n**Data Table has none of this, and should not.** Its columns are its schema\nrather than an option, so there is always a column to write a `width` on\nand a list here would be a second way to say what that says. This table's\ncells are markup, and a table written as rows of cells with no column\ndeclared in it has nowhere else to be sized from.",
208841
+ "description": "The column widths as one track list, written once on the table.\n\nWith `TableColumn` children, each track sizes the column in its place, a\nhidden column counted, so hiding one takes its track with it and the rest\nkeep theirs. The columns decide how many tracks there are and this list\nonly how wide: a track past the last column is dropped, and a column past\nthe last track shares what is left. With no columns declared it is the\nwhole track list. Tracks count as the grid counts them, so `minmax(0, 1fr)`\nis one and `repeat(2, 8rem)` is two, and one the grid would refuse leaves\nits column at the default rather than taking the table down to one column.\n\n**A column's own `width` wins over its track here.** The width is written\non the column it sizes, which is the more particular statement, and it is\nwhere a resize lands: a reader dragging a column's edge writes `width`, so\nwere this list to win, the drag would move the separator and leave the\ntrack where the list put it. This is the table's default for its columns,\nand each column may say otherwise.\n\n**It is also the only track list a server can send.** The shim has no tree\nto walk, so a render there knows of no columns and this attribute is the\nwhole answer: a table given one lays its grid out in the first paint, and a\ntable sized only by its columns takes, until it upgrades, a track for each\ncolumn at the width a column with no `width` takes (`helix.css`).\n\nData Table takes the same list, for the same reason: a data table that\nserves its first page as rows is laid out by it before it upgrades.",
206215
208842
  "attribute": "columns",
206216
208843
  "inheritedFrom": {
206217
208844
  "name": "HelixHeadlessTable",
@@ -208300,6 +210927,10 @@
208300
210927
  {
208301
210928
  "description": "A heading that names the table, and a checkbox on each row that selects it.",
208302
210929
  "slug": "selecting"
210930
+ },
210931
+ {
210932
+ "description": "A thousand rows written as markup, with only the rows in view drawn.",
210933
+ "slug": "windowed"
208303
210934
  }
208304
210935
  ],
208305
210936
  "source": "helix/styled/src/table"
@@ -208378,7 +211009,7 @@
208378
211009
  "text": "string"
208379
211010
  },
208380
211011
  "default": "''",
208381
- "description": "The column widths as one track list, written once on the table.\n\nWith `TableColumn` children, each track sizes the column in its place, a\nhidden column counted, so hiding one takes its track with it and the rest\nkeep theirs. The columns decide how many tracks there are and this list\nonly how wide: a track past the last column is dropped, and a column past\nthe last track shares what is left. With no columns declared it is the\nwhole track list. Tracks count as the grid counts them, so `minmax(0, 1fr)`\nis one and `repeat(2, 8rem)` is two, and one the grid would refuse leaves\nits column at the default rather than taking the table down to one column.\n\n**A column's own `width` wins over its track here.** The width is written\non the column it sizes, which is the more particular statement, and it is\nwhere a resize lands: a reader dragging a column's edge writes `width`, so\nwere this list to win, the drag would move the separator and leave the\ntrack where the list put it. This is the table's default for its columns,\nand each column may say otherwise.\n\n**It is also the only track list a server can send.** The shim has no tree\nto walk, so a render there knows of no columns and this attribute is the\nwhole answer: a table given one lays its grid out in the first paint, and a\ntable sized only by its columns is one track wide until it upgrades.\n\n**Data Table has none of this, and should not.** Its columns are its schema\nrather than an option, so there is always a column to write a `width` on\nand a list here would be a second way to say what that says. This table's\ncells are markup, and a table written as rows of cells with no column\ndeclared in it has nowhere else to be sized from.",
211012
+ "description": "The column widths as one track list, written once on the table.\n\nWith `TableColumn` children, each track sizes the column in its place, a\nhidden column counted, so hiding one takes its track with it and the rest\nkeep theirs. The columns decide how many tracks there are and this list\nonly how wide: a track past the last column is dropped, and a column past\nthe last track shares what is left. With no columns declared it is the\nwhole track list. Tracks count as the grid counts them, so `minmax(0, 1fr)`\nis one and `repeat(2, 8rem)` is two, and one the grid would refuse leaves\nits column at the default rather than taking the table down to one column.\n\n**A column's own `width` wins over its track here.** The width is written\non the column it sizes, which is the more particular statement, and it is\nwhere a resize lands: a reader dragging a column's edge writes `width`, so\nwere this list to win, the drag would move the separator and leave the\ntrack where the list put it. This is the table's default for its columns,\nand each column may say otherwise.\n\n**It is also the only track list a server can send.** The shim has no tree\nto walk, so a render there knows of no columns and this attribute is the\nwhole answer: a table given one lays its grid out in the first paint, and a\ntable sized only by its columns takes, until it upgrades, a track for each\ncolumn at the width a column with no `width` takes (`helix.css`).\n\nData Table takes the same list, for the same reason: a data table that\nserves its first page as rows is laid out by it before it upgrades.",
208382
211013
  "fieldName": "columns",
208383
211014
  "inheritedFrom": {
208384
211015
  "name": "HelixHeadlessTable",
@@ -254052,6 +256683,6 @@
254052
256683
  ],
254053
256684
  "helix": {
254054
256685
  "package": "@fusion.dev/helix",
254055
- "version": "0.184.0"
256686
+ "version": "0.186.0"
254056
256687
  }
254057
256688
  }