@fusion.dev/helix-headless 0.199.0 → 0.200.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api.json +1 -1
- package/custom-elements.json +3927 -1
- package/dist/element-events.generated.js +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/log/ansi.d.ts +63 -0
- package/dist/log/ansi.js +163 -0
- package/dist/log/buffer.d.ts +99 -0
- package/dist/log/buffer.js +92 -0
- package/dist/log/group/log-group.d.ts +78 -0
- package/dist/log/group/log-group.js +76 -0
- package/dist/log/index.d.ts +5 -0
- package/dist/log/index.js +4 -0
- package/dist/log/line/log-line.d.ts +108 -0
- package/dist/log/line/log-line.js +145 -0
- package/dist/log/root/log-root.d.ts +415 -0
- package/dist/log/root/log-root.js +772 -0
- package/dist/log/rows.d.ts +60 -0
- package/dist/log/rows.js +91 -0
- package/examples.json +1 -1
- package/lint.json +1 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +1333 -0
- package/types/svelte.d.ts +3 -0
- package/types/vue.d.ts +279 -0
- package/types/words.d.ts +71 -0
package/custom-elements.json
CHANGED
|
@@ -85957,6 +85957,14 @@
|
|
|
85957
85957
|
"module": "src/loader/index.js"
|
|
85958
85958
|
}
|
|
85959
85959
|
},
|
|
85960
|
+
{
|
|
85961
|
+
"kind": "js",
|
|
85962
|
+
"name": "*",
|
|
85963
|
+
"declaration": {
|
|
85964
|
+
"name": "*",
|
|
85965
|
+
"module": "src/log/index.js"
|
|
85966
|
+
}
|
|
85967
|
+
},
|
|
85960
85968
|
{
|
|
85961
85969
|
"kind": "js",
|
|
85962
85970
|
"name": "*",
|
|
@@ -101305,6 +101313,3924 @@
|
|
|
101305
101313
|
}
|
|
101306
101314
|
]
|
|
101307
101315
|
},
|
|
101316
|
+
{
|
|
101317
|
+
"kind": "javascript-module",
|
|
101318
|
+
"path": "src/log/ansi.ts",
|
|
101319
|
+
"declarations": [
|
|
101320
|
+
{
|
|
101321
|
+
"kind": "variable",
|
|
101322
|
+
"name": "ANSI_NAMES",
|
|
101323
|
+
"type": {
|
|
101324
|
+
"text": "[\n 'black',\n 'red',\n 'green',\n 'yellow',\n 'blue',\n 'magenta',\n 'cyan',\n 'white',\n 'bright-black',\n 'bright-red',\n 'bright-green',\n 'bright-yellow',\n 'bright-blue',\n 'bright-magenta',\n 'bright-cyan',\n 'bright-white',\n]"
|
|
101325
|
+
},
|
|
101326
|
+
"default": "[ 'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white', 'bright-black', 'bright-red', 'bright-green', 'bright-yellow', 'bright-blue', 'bright-magenta', 'bright-cyan', 'bright-white', ]",
|
|
101327
|
+
"description": "The sixteen colors a terminal names, in the order SGR numbers them: the\neight at `30` to `37`, then their bright forms at `90` to `97`.\n\nA run in one of them carries the name, and is drawn in the `--log-ansi-`\ncolor of that name, so the stylesheet says what red is in its theme. The\npalette's own index above fifteen is a fact about the color and is carried\nas the color itself."
|
|
101328
|
+
},
|
|
101329
|
+
{
|
|
101330
|
+
"kind": "function",
|
|
101331
|
+
"name": "paletteColor",
|
|
101332
|
+
"return": {
|
|
101333
|
+
"type": {
|
|
101334
|
+
"text": "string | undefined"
|
|
101335
|
+
}
|
|
101336
|
+
},
|
|
101337
|
+
"parameters": [
|
|
101338
|
+
{
|
|
101339
|
+
"name": "index",
|
|
101340
|
+
"type": {
|
|
101341
|
+
"text": "number"
|
|
101342
|
+
}
|
|
101343
|
+
}
|
|
101344
|
+
],
|
|
101345
|
+
"description": "Entry `index` of the 256-color palette: a name below 16, and the CSS color\nof the cube to 231 and of the ramp of grays from 232 to 255."
|
|
101346
|
+
},
|
|
101347
|
+
{
|
|
101348
|
+
"kind": "function",
|
|
101349
|
+
"name": "applySgr",
|
|
101350
|
+
"return": {
|
|
101351
|
+
"type": {
|
|
101352
|
+
"text": "LogStyle"
|
|
101353
|
+
}
|
|
101354
|
+
},
|
|
101355
|
+
"parameters": [
|
|
101356
|
+
{
|
|
101357
|
+
"name": "style",
|
|
101358
|
+
"type": {
|
|
101359
|
+
"text": "LogStyle"
|
|
101360
|
+
}
|
|
101361
|
+
},
|
|
101362
|
+
{
|
|
101363
|
+
"name": "codes",
|
|
101364
|
+
"type": {
|
|
101365
|
+
"text": "readonly number[]"
|
|
101366
|
+
}
|
|
101367
|
+
}
|
|
101368
|
+
],
|
|
101369
|
+
"description": "The style `codes` leave behind, applied over `style`."
|
|
101370
|
+
},
|
|
101371
|
+
{
|
|
101372
|
+
"kind": "function",
|
|
101373
|
+
"name": "parseAnsi",
|
|
101374
|
+
"return": {
|
|
101375
|
+
"type": {
|
|
101376
|
+
"text": "{ runs: LogRun[]; style: LogStyle }"
|
|
101377
|
+
}
|
|
101378
|
+
},
|
|
101379
|
+
"parameters": [
|
|
101380
|
+
{
|
|
101381
|
+
"name": "text",
|
|
101382
|
+
"type": {
|
|
101383
|
+
"text": "string"
|
|
101384
|
+
}
|
|
101385
|
+
},
|
|
101386
|
+
{
|
|
101387
|
+
"name": "style",
|
|
101388
|
+
"default": "{}",
|
|
101389
|
+
"type": {
|
|
101390
|
+
"text": "LogStyle"
|
|
101391
|
+
}
|
|
101392
|
+
}
|
|
101393
|
+
],
|
|
101394
|
+
"description": "Splits one line of text into runs, starting from `style`, and says what\nstyle the line ends in, which is where the next line starts.\n\nA run with no style left is plain. Adjacent runs that draw the same are\nmerged, so a line that resets to the style it already had stays one run."
|
|
101395
|
+
},
|
|
101396
|
+
{
|
|
101397
|
+
"kind": "function",
|
|
101398
|
+
"name": "stripAnsi",
|
|
101399
|
+
"return": {
|
|
101400
|
+
"type": {
|
|
101401
|
+
"text": "string"
|
|
101402
|
+
}
|
|
101403
|
+
},
|
|
101404
|
+
"parameters": [
|
|
101405
|
+
{
|
|
101406
|
+
"name": "text",
|
|
101407
|
+
"type": {
|
|
101408
|
+
"text": "string"
|
|
101409
|
+
}
|
|
101410
|
+
}
|
|
101411
|
+
],
|
|
101412
|
+
"description": "The text of a line with every escape sequence taken out."
|
|
101413
|
+
}
|
|
101414
|
+
],
|
|
101415
|
+
"exports": [
|
|
101416
|
+
{
|
|
101417
|
+
"kind": "js",
|
|
101418
|
+
"name": "ANSI_NAMES",
|
|
101419
|
+
"declaration": {
|
|
101420
|
+
"name": "ANSI_NAMES",
|
|
101421
|
+
"module": "src/log/ansi.ts"
|
|
101422
|
+
}
|
|
101423
|
+
},
|
|
101424
|
+
{
|
|
101425
|
+
"kind": "js",
|
|
101426
|
+
"name": "paletteColor",
|
|
101427
|
+
"declaration": {
|
|
101428
|
+
"name": "paletteColor",
|
|
101429
|
+
"module": "src/log/ansi.ts"
|
|
101430
|
+
}
|
|
101431
|
+
},
|
|
101432
|
+
{
|
|
101433
|
+
"kind": "js",
|
|
101434
|
+
"name": "applySgr",
|
|
101435
|
+
"declaration": {
|
|
101436
|
+
"name": "applySgr",
|
|
101437
|
+
"module": "src/log/ansi.ts"
|
|
101438
|
+
}
|
|
101439
|
+
},
|
|
101440
|
+
{
|
|
101441
|
+
"kind": "js",
|
|
101442
|
+
"name": "parseAnsi",
|
|
101443
|
+
"declaration": {
|
|
101444
|
+
"name": "parseAnsi",
|
|
101445
|
+
"module": "src/log/ansi.ts"
|
|
101446
|
+
}
|
|
101447
|
+
},
|
|
101448
|
+
{
|
|
101449
|
+
"kind": "js",
|
|
101450
|
+
"name": "stripAnsi",
|
|
101451
|
+
"declaration": {
|
|
101452
|
+
"name": "stripAnsi",
|
|
101453
|
+
"module": "src/log/ansi.ts"
|
|
101454
|
+
}
|
|
101455
|
+
}
|
|
101456
|
+
]
|
|
101457
|
+
},
|
|
101458
|
+
{
|
|
101459
|
+
"kind": "javascript-module",
|
|
101460
|
+
"path": "src/log/buffer.ts",
|
|
101461
|
+
"declarations": [
|
|
101462
|
+
{
|
|
101463
|
+
"kind": "class",
|
|
101464
|
+
"description": "The text of a run, kept as lines.\n\n**Written text arrives in pieces that do not end at line breaks**, so the\nline still being written is held apart and shown as it stands, the way a\nterminal shows a prompt or a progress bar before its line ends. A line is\nfinished by `\\n` or `\\r\\n`.\n\n**A carriage return on its own starts the line over.** A progress bar is\none line rewritten a hundred times, and drawing each rewrite as a line of\nits own is the failure every log viewer is judged by. The text after the\nlast `\\r` replaces the line. A terminal overwrites only as many characters\nas were written, so `abc\\rxy` reads `xyc` there and `xy` here; a program\nthat redraws a line writes the whole line, which reads the same in both.\n\n**Color carries from line to line**, as it does in a terminal, so a block\nthat opens with green and closes many lines later is green throughout. It\ncarries through text a carriage return replaced as well.",
|
|
101465
|
+
"name": "LogBuffer",
|
|
101466
|
+
"members": [
|
|
101467
|
+
{
|
|
101468
|
+
"kind": "field",
|
|
101469
|
+
"name": "lines",
|
|
101470
|
+
"type": {
|
|
101471
|
+
"text": "LogLine[]"
|
|
101472
|
+
},
|
|
101473
|
+
"default": "[]",
|
|
101474
|
+
"description": "The finished lines kept, oldest first."
|
|
101475
|
+
},
|
|
101476
|
+
{
|
|
101477
|
+
"kind": "field",
|
|
101478
|
+
"name": "dropped",
|
|
101479
|
+
"type": {
|
|
101480
|
+
"text": "number"
|
|
101481
|
+
},
|
|
101482
|
+
"default": "0",
|
|
101483
|
+
"description": "How many finished lines were let go from the start to stay within `limit`."
|
|
101484
|
+
},
|
|
101485
|
+
{
|
|
101486
|
+
"kind": "field",
|
|
101487
|
+
"name": "limit",
|
|
101488
|
+
"type": {
|
|
101489
|
+
"text": "number"
|
|
101490
|
+
},
|
|
101491
|
+
"default": "0",
|
|
101492
|
+
"description": "The most finished lines kept, or 0 to keep them all."
|
|
101493
|
+
},
|
|
101494
|
+
{
|
|
101495
|
+
"kind": "field",
|
|
101496
|
+
"name": "parse",
|
|
101497
|
+
"type": {
|
|
101498
|
+
"text": "LogParser | undefined"
|
|
101499
|
+
},
|
|
101500
|
+
"default": "undefined",
|
|
101501
|
+
"description": "Reads each finished line of written text."
|
|
101502
|
+
},
|
|
101503
|
+
{
|
|
101504
|
+
"kind": "field",
|
|
101505
|
+
"name": "partial",
|
|
101506
|
+
"type": {
|
|
101507
|
+
"text": "string"
|
|
101508
|
+
},
|
|
101509
|
+
"privacy": "private",
|
|
101510
|
+
"default": "''",
|
|
101511
|
+
"description": "The line still being written, as it reads now."
|
|
101512
|
+
},
|
|
101513
|
+
{
|
|
101514
|
+
"kind": "field",
|
|
101515
|
+
"name": "returned",
|
|
101516
|
+
"type": {
|
|
101517
|
+
"text": "boolean"
|
|
101518
|
+
},
|
|
101519
|
+
"privacy": "private",
|
|
101520
|
+
"default": "false",
|
|
101521
|
+
"description": "Whether the next text written starts the line over."
|
|
101522
|
+
},
|
|
101523
|
+
{
|
|
101524
|
+
"kind": "field",
|
|
101525
|
+
"name": "lineStyle",
|
|
101526
|
+
"type": {
|
|
101527
|
+
"text": "LogStyle"
|
|
101528
|
+
},
|
|
101529
|
+
"privacy": "private",
|
|
101530
|
+
"default": "{}",
|
|
101531
|
+
"description": "The style the line being written started in."
|
|
101532
|
+
},
|
|
101533
|
+
{
|
|
101534
|
+
"kind": "field",
|
|
101535
|
+
"name": "runs",
|
|
101536
|
+
"privacy": "private",
|
|
101537
|
+
"readonly": true,
|
|
101538
|
+
"default": "new WeakMap<LogLine, LogRun[]>()",
|
|
101539
|
+
"description": "The runs of each line, read once."
|
|
101540
|
+
},
|
|
101541
|
+
{
|
|
101542
|
+
"kind": "field",
|
|
101543
|
+
"name": "shown",
|
|
101544
|
+
"type": {
|
|
101545
|
+
"text": "LogLine | undefined"
|
|
101546
|
+
},
|
|
101547
|
+
"privacy": "private",
|
|
101548
|
+
"default": "undefined",
|
|
101549
|
+
"description": "The line `current` last returned, which stands until the text changes."
|
|
101550
|
+
},
|
|
101551
|
+
{
|
|
101552
|
+
"kind": "method",
|
|
101553
|
+
"name": "write",
|
|
101554
|
+
"return": {
|
|
101555
|
+
"type": {
|
|
101556
|
+
"text": "number"
|
|
101557
|
+
}
|
|
101558
|
+
},
|
|
101559
|
+
"parameters": [
|
|
101560
|
+
{
|
|
101561
|
+
"name": "chunk",
|
|
101562
|
+
"type": {
|
|
101563
|
+
"text": "string"
|
|
101564
|
+
}
|
|
101565
|
+
}
|
|
101566
|
+
],
|
|
101567
|
+
"description": "Adds text, finishing a line at every line break, and returns how many\nlines it finished."
|
|
101568
|
+
},
|
|
101569
|
+
{
|
|
101570
|
+
"kind": "method",
|
|
101571
|
+
"name": "replace",
|
|
101572
|
+
"return": {
|
|
101573
|
+
"type": {
|
|
101574
|
+
"text": "void"
|
|
101575
|
+
}
|
|
101576
|
+
},
|
|
101577
|
+
"parameters": [
|
|
101578
|
+
{
|
|
101579
|
+
"name": "lines",
|
|
101580
|
+
"type": {
|
|
101581
|
+
"text": "readonly LogLine[]"
|
|
101582
|
+
}
|
|
101583
|
+
}
|
|
101584
|
+
],
|
|
101585
|
+
"description": "Replaces every line, starting a fresh buffer that keeps its `parse` and `limit`."
|
|
101586
|
+
},
|
|
101587
|
+
{
|
|
101588
|
+
"kind": "method",
|
|
101589
|
+
"name": "clear",
|
|
101590
|
+
"return": {
|
|
101591
|
+
"type": {
|
|
101592
|
+
"text": "void"
|
|
101593
|
+
}
|
|
101594
|
+
},
|
|
101595
|
+
"description": "Lets every line go."
|
|
101596
|
+
},
|
|
101597
|
+
{
|
|
101598
|
+
"kind": "method",
|
|
101599
|
+
"name": "current",
|
|
101600
|
+
"return": {
|
|
101601
|
+
"type": {
|
|
101602
|
+
"text": "LogLine | undefined"
|
|
101603
|
+
}
|
|
101604
|
+
},
|
|
101605
|
+
"description": "The line still being written, or undefined where the last line ended."
|
|
101606
|
+
},
|
|
101607
|
+
{
|
|
101608
|
+
"kind": "method",
|
|
101609
|
+
"name": "runsOf",
|
|
101610
|
+
"return": {
|
|
101611
|
+
"type": {
|
|
101612
|
+
"text": "LogRun[]"
|
|
101613
|
+
}
|
|
101614
|
+
},
|
|
101615
|
+
"parameters": [
|
|
101616
|
+
{
|
|
101617
|
+
"name": "line",
|
|
101618
|
+
"type": {
|
|
101619
|
+
"text": "LogLine"
|
|
101620
|
+
}
|
|
101621
|
+
}
|
|
101622
|
+
],
|
|
101623
|
+
"description": "The runs a line is drawn in. A written line was read with the color the\nline before it left; a line handed over in `lines` starts plain."
|
|
101624
|
+
},
|
|
101625
|
+
{
|
|
101626
|
+
"kind": "method",
|
|
101627
|
+
"name": "finish",
|
|
101628
|
+
"privacy": "private",
|
|
101629
|
+
"return": {
|
|
101630
|
+
"type": {
|
|
101631
|
+
"text": "void"
|
|
101632
|
+
}
|
|
101633
|
+
},
|
|
101634
|
+
"description": "Finishes the line being written."
|
|
101635
|
+
},
|
|
101636
|
+
{
|
|
101637
|
+
"kind": "method",
|
|
101638
|
+
"name": "trim",
|
|
101639
|
+
"privacy": "private",
|
|
101640
|
+
"return": {
|
|
101641
|
+
"type": {
|
|
101642
|
+
"text": "void"
|
|
101643
|
+
}
|
|
101644
|
+
},
|
|
101645
|
+
"description": "Lets the oldest lines go past `limit`, all at once."
|
|
101646
|
+
}
|
|
101647
|
+
],
|
|
101648
|
+
"helix": {}
|
|
101649
|
+
}
|
|
101650
|
+
],
|
|
101651
|
+
"exports": [
|
|
101652
|
+
{
|
|
101653
|
+
"kind": "js",
|
|
101654
|
+
"name": "LogBuffer",
|
|
101655
|
+
"declaration": {
|
|
101656
|
+
"name": "LogBuffer",
|
|
101657
|
+
"module": "src/log/buffer.ts"
|
|
101658
|
+
}
|
|
101659
|
+
}
|
|
101660
|
+
]
|
|
101661
|
+
},
|
|
101662
|
+
{
|
|
101663
|
+
"kind": "javascript-module",
|
|
101664
|
+
"path": "src/log/group/log-group.ts",
|
|
101665
|
+
"declarations": [
|
|
101666
|
+
{
|
|
101667
|
+
"kind": "class",
|
|
101668
|
+
"description": "A group is a disclosure: its heading is a button that shows and hides the\nlines inside it, and says whether they are shown with `aria-expanded`. Put\n`Log.Line` elements inside it, and nest groups for steps within steps.\n\n`status` draws a mark before the heading, and a screen reader hears the\nstatus after the heading (`status-label`). `duration` stands at the end of\nthe heading, as you write it, such as `12s`.\n\nA group starts shut. Write `default-open` on the step a reader should see,\nsuch as the one that failed.",
|
|
101669
|
+
"name": "HelixHeadlessLogGroup",
|
|
101670
|
+
"cssParts": [
|
|
101671
|
+
{
|
|
101672
|
+
"description": "The lines, hidden while the group is shut.",
|
|
101673
|
+
"name": "content"
|
|
101674
|
+
},
|
|
101675
|
+
{
|
|
101676
|
+
"description": "How long the step took.",
|
|
101677
|
+
"name": "duration"
|
|
101678
|
+
},
|
|
101679
|
+
{
|
|
101680
|
+
"description": "The heading.",
|
|
101681
|
+
"name": "heading"
|
|
101682
|
+
},
|
|
101683
|
+
{
|
|
101684
|
+
"description": "The caret that turns as the group opens, an `<svg>` you size.",
|
|
101685
|
+
"name": "mark"
|
|
101686
|
+
},
|
|
101687
|
+
{
|
|
101688
|
+
"description": "The mark for the status, an `<svg>` you size.",
|
|
101689
|
+
"name": "status"
|
|
101690
|
+
},
|
|
101691
|
+
{
|
|
101692
|
+
"description": "The button that opens and closes the group.",
|
|
101693
|
+
"name": "summary"
|
|
101694
|
+
}
|
|
101695
|
+
],
|
|
101696
|
+
"slots": [
|
|
101697
|
+
{
|
|
101698
|
+
"description": "The lines of the step, and any groups inside it.",
|
|
101699
|
+
"name": ""
|
|
101700
|
+
},
|
|
101701
|
+
{
|
|
101702
|
+
"description": "The heading, where it holds more than text. Defaults to `heading`.",
|
|
101703
|
+
"name": "heading"
|
|
101704
|
+
}
|
|
101705
|
+
],
|
|
101706
|
+
"members": [
|
|
101707
|
+
{
|
|
101708
|
+
"kind": "field",
|
|
101709
|
+
"name": "markRules",
|
|
101710
|
+
"type": {
|
|
101711
|
+
"text": "[SPOKEN_RULE]"
|
|
101712
|
+
},
|
|
101713
|
+
"privacy": "protected",
|
|
101714
|
+
"static": true,
|
|
101715
|
+
"default": "[SPOKEN_RULE]",
|
|
101716
|
+
"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.",
|
|
101717
|
+
"inheritedFrom": {
|
|
101718
|
+
"name": "HelixElement",
|
|
101719
|
+
"module": "src/helix-element/helix-element.ts"
|
|
101720
|
+
}
|
|
101721
|
+
},
|
|
101722
|
+
{
|
|
101723
|
+
"kind": "field",
|
|
101724
|
+
"name": "words",
|
|
101725
|
+
"type": {
|
|
101726
|
+
"text": "string"
|
|
101727
|
+
},
|
|
101728
|
+
"static": true,
|
|
101729
|
+
"default": "'helix-log'",
|
|
101730
|
+
"description": "The key this family's words are registered under, its styled tag."
|
|
101731
|
+
},
|
|
101732
|
+
{
|
|
101733
|
+
"kind": "field",
|
|
101734
|
+
"name": "duration",
|
|
101735
|
+
"type": {
|
|
101736
|
+
"text": "string"
|
|
101737
|
+
},
|
|
101738
|
+
"default": "''",
|
|
101739
|
+
"description": "How long the step took, as it should read, such as `12s`.",
|
|
101740
|
+
"attribute": "duration"
|
|
101741
|
+
},
|
|
101742
|
+
{
|
|
101743
|
+
"kind": "field",
|
|
101744
|
+
"name": "heading",
|
|
101745
|
+
"type": {
|
|
101746
|
+
"text": "string"
|
|
101747
|
+
},
|
|
101748
|
+
"default": "''",
|
|
101749
|
+
"description": "What the step is called. The `heading` slot replaces it.",
|
|
101750
|
+
"attribute": "heading"
|
|
101751
|
+
},
|
|
101752
|
+
{
|
|
101753
|
+
"kind": "field",
|
|
101754
|
+
"name": "status",
|
|
101755
|
+
"type": {
|
|
101756
|
+
"text": "'done' | 'failed' | 'pending' | 'running' | 'skipped' | undefined"
|
|
101757
|
+
},
|
|
101758
|
+
"description": "Where the step stands, which draws a mark before the heading.",
|
|
101759
|
+
"attribute": "status",
|
|
101760
|
+
"reflects": true
|
|
101761
|
+
},
|
|
101762
|
+
{
|
|
101763
|
+
"kind": "field",
|
|
101764
|
+
"name": "statusLabel",
|
|
101765
|
+
"type": {
|
|
101766
|
+
"text": "string"
|
|
101767
|
+
},
|
|
101768
|
+
"default": "'{status, select, pending {waiting} running {running} done {finished} failed {failed} skipped {skipped} other {}}'",
|
|
101769
|
+
"description": "What a screen reader hears for the status, after the heading.\n`{status}` is one of `pending`, `running`, `done`, `failed`, and `skipped`.",
|
|
101770
|
+
"attribute": "status-label",
|
|
101771
|
+
"helix": {
|
|
101772
|
+
"words": true
|
|
101773
|
+
}
|
|
101774
|
+
},
|
|
101775
|
+
{
|
|
101776
|
+
"kind": "field",
|
|
101777
|
+
"name": "handlePress",
|
|
101778
|
+
"privacy": "private",
|
|
101779
|
+
"readonly": true
|
|
101780
|
+
},
|
|
101781
|
+
{
|
|
101782
|
+
"kind": "field",
|
|
101783
|
+
"name": "defaultOpen",
|
|
101784
|
+
"type": {
|
|
101785
|
+
"text": "boolean"
|
|
101786
|
+
},
|
|
101787
|
+
"default": "false",
|
|
101788
|
+
"description": "Whether the element starts open. Ignored once `open` is written.",
|
|
101789
|
+
"attribute": "default-open",
|
|
101790
|
+
"inheritedFrom": {
|
|
101791
|
+
"name": "MixinControllerOpen",
|
|
101792
|
+
"module": "src/mixins/mixin-controller-open/mixin-controller-open.ts"
|
|
101793
|
+
}
|
|
101794
|
+
},
|
|
101795
|
+
{
|
|
101796
|
+
"kind": "field",
|
|
101797
|
+
"name": "open",
|
|
101798
|
+
"type": {
|
|
101799
|
+
"text": "boolean"
|
|
101800
|
+
},
|
|
101801
|
+
"description": "Whether the element is open.\n\nOne property, not two, so `dialog.open` answers the question anyone\nasking it meant. Writing always applies; `<helix-dialog open>` is the\nsame statement in markup.\n\n**Not reflected, and that is required rather than tidy.** Reflection\nwrites the resolved state back as an attribute, so an element that opened\nitself would put `open` on its own host: cloned, serialized for\nhydration, or diffed by a framework, it comes back holding whatever the\nlast reader did rather than what the author wrote. `:state(open)` carries\nthe resolved state for stylesheets, which is what the mirror is for.",
|
|
101802
|
+
"attribute": "open",
|
|
101803
|
+
"inheritedFrom": {
|
|
101804
|
+
"name": "MixinControllerOpen",
|
|
101805
|
+
"module": "src/mixins/mixin-controller-open/mixin-controller-open.ts"
|
|
101806
|
+
}
|
|
101807
|
+
},
|
|
101808
|
+
{
|
|
101809
|
+
"kind": "field",
|
|
101810
|
+
"name": "openState",
|
|
101811
|
+
"type": {
|
|
101812
|
+
"text": "boolean | undefined"
|
|
101813
|
+
},
|
|
101814
|
+
"privacy": "private",
|
|
101815
|
+
"default": "undefined",
|
|
101816
|
+
"description": "The state, whoever set it, and `undefined` until somebody has.\n\nPrefixed, and it has to be. These mixins compose onto one prototype\nchain, `Select` takes this one and `MixinControllerValue` together, and\nTypeScript's `private` is a compile-time fiction: two mixins with a field\ncalled `state` share one property on the instance, and the second one\nsilently overwrites the first. Measured, as a select whose `value` came\nback holding its `open` boolean.\n\nOne field and not two. Writing always applies, the way a native control\ndoes when a script assigns to it.",
|
|
101817
|
+
"inheritedFrom": {
|
|
101818
|
+
"name": "MixinControllerOpen",
|
|
101819
|
+
"module": "src/mixins/mixin-controller-open/mixin-controller-open.ts"
|
|
101820
|
+
}
|
|
101821
|
+
},
|
|
101822
|
+
{
|
|
101823
|
+
"kind": "field",
|
|
101824
|
+
"name": "announcedOpen",
|
|
101825
|
+
"type": {
|
|
101826
|
+
"text": "boolean | undefined"
|
|
101827
|
+
},
|
|
101828
|
+
"privacy": "private",
|
|
101829
|
+
"default": "undefined",
|
|
101830
|
+
"description": "The state `toggle` last reported, and `undefined` before the first update.\n\n`requestOpen` announces at once. An assignment to `open` announces here,\nonce it has rendered, so a consumer binding `toggle` hears every change\nthat a `close` listener on a dialog hears. The first update sets it and\nannounces nothing, because a seed is where the element starts.",
|
|
101831
|
+
"inheritedFrom": {
|
|
101832
|
+
"name": "MixinControllerOpen",
|
|
101833
|
+
"module": "src/mixins/mixin-controller-open/mixin-controller-open.ts"
|
|
101834
|
+
}
|
|
101835
|
+
},
|
|
101836
|
+
{
|
|
101837
|
+
"kind": "method",
|
|
101838
|
+
"name": "requestOpen",
|
|
101839
|
+
"return": {
|
|
101840
|
+
"type": {
|
|
101841
|
+
"text": "boolean"
|
|
101842
|
+
}
|
|
101843
|
+
},
|
|
101844
|
+
"parameters": [
|
|
101845
|
+
{
|
|
101846
|
+
"name": "next",
|
|
101847
|
+
"type": {
|
|
101848
|
+
"text": "boolean"
|
|
101849
|
+
}
|
|
101850
|
+
}
|
|
101851
|
+
],
|
|
101852
|
+
"description": "Requests that the element open or close, and returns whether the change\nwas applied.\n\nAnnounces before it acts, so `preventDefault()` on the `helix-before-open` or\n`helix-before-close` is a refusal and nothing moves. Nobody refusing means the\nelement opens or closes itself, whether or not a consumer declared\n`open`: a declared property is a seed and a correction, and a consumer\nwho wants the decision for themselves refuses it and assigns their own.",
|
|
101853
|
+
"inheritedFrom": {
|
|
101854
|
+
"name": "MixinControllerOpen",
|
|
101855
|
+
"module": "src/mixins/mixin-controller-open/mixin-controller-open.ts"
|
|
101856
|
+
},
|
|
101857
|
+
"type": {
|
|
101858
|
+
"text": "requestOpen(next: boolean) => boolean"
|
|
101859
|
+
}
|
|
101860
|
+
},
|
|
101861
|
+
{
|
|
101862
|
+
"kind": "method",
|
|
101863
|
+
"name": "announceToggle",
|
|
101864
|
+
"privacy": "private",
|
|
101865
|
+
"return": {
|
|
101866
|
+
"type": {
|
|
101867
|
+
"text": "void"
|
|
101868
|
+
}
|
|
101869
|
+
},
|
|
101870
|
+
"parameters": [
|
|
101871
|
+
{
|
|
101872
|
+
"name": "open",
|
|
101873
|
+
"type": {
|
|
101874
|
+
"text": "boolean"
|
|
101875
|
+
}
|
|
101876
|
+
}
|
|
101877
|
+
],
|
|
101878
|
+
"description": "Says the state moved, under the platform's own name and in its shape.\n\n**A native `toggle` from inside a shadow root reaches nobody**, because\nit neither bubbles nor composes, so the ten families showing a\n`popover=\"manual\"` panel and the two rendering a real `<dialog>` announce\nnothing to a consumer. The disclosures have no native element to fire\nanything at all: `AccordionItem` and `TreeItem` are `aria-expanded` and\n`hidden` written by hand, which is `<details>`'s job done manually.\n\n**From here rather than from `PopoverController`.** The controller covers\neleven families and the mixin covers sixteen, so announcing from both\nwould announce twice on the ten they share. What `toggle` reports is the\n*state*, and the state is this mixin's; the controller is a way of\nputting a panel on the screen.\n\n**`newState` and `oldState`, because that is the platform's shape**, so a\nconsumer arriving from `<details>` reads the same two words. Not\ncancelable: the before events are the request, and a second cancelable\nevent for one transition is two answers to one question.",
|
|
101879
|
+
"inheritedFrom": {
|
|
101880
|
+
"name": "MixinControllerOpen",
|
|
101881
|
+
"module": "src/mixins/mixin-controller-open/mixin-controller-open.ts"
|
|
101882
|
+
}
|
|
101883
|
+
},
|
|
101884
|
+
{
|
|
101885
|
+
"kind": "method",
|
|
101886
|
+
"name": "toggleOpen",
|
|
101887
|
+
"return": {
|
|
101888
|
+
"type": {
|
|
101889
|
+
"text": "boolean"
|
|
101890
|
+
}
|
|
101891
|
+
},
|
|
101892
|
+
"description": "Requests the opposite of the current state.",
|
|
101893
|
+
"inheritedFrom": {
|
|
101894
|
+
"name": "MixinControllerOpen",
|
|
101895
|
+
"module": "src/mixins/mixin-controller-open/mixin-controller-open.ts"
|
|
101896
|
+
},
|
|
101897
|
+
"type": {
|
|
101898
|
+
"text": "toggleOpen() => boolean"
|
|
101899
|
+
}
|
|
101900
|
+
},
|
|
101901
|
+
{
|
|
101902
|
+
"kind": "field",
|
|
101903
|
+
"name": "tier",
|
|
101904
|
+
"type": {
|
|
101905
|
+
"text": "string"
|
|
101906
|
+
},
|
|
101907
|
+
"static": true,
|
|
101908
|
+
"default": "'helix-headless-'",
|
|
101909
|
+
"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.",
|
|
101910
|
+
"inheritedFrom": {
|
|
101911
|
+
"name": "HelixElement",
|
|
101912
|
+
"module": "src/helix-element/helix-element.ts"
|
|
101913
|
+
}
|
|
101914
|
+
},
|
|
101915
|
+
{
|
|
101916
|
+
"kind": "method",
|
|
101917
|
+
"name": "tag",
|
|
101918
|
+
"privacy": "protected",
|
|
101919
|
+
"return": {
|
|
101920
|
+
"type": {
|
|
101921
|
+
"text": "StaticValue"
|
|
101922
|
+
}
|
|
101923
|
+
},
|
|
101924
|
+
"parameters": [
|
|
101925
|
+
{
|
|
101926
|
+
"name": "name",
|
|
101927
|
+
"type": {
|
|
101928
|
+
"text": "string"
|
|
101929
|
+
}
|
|
101930
|
+
}
|
|
101931
|
+
],
|
|
101932
|
+
"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.",
|
|
101933
|
+
"inheritedFrom": {
|
|
101934
|
+
"name": "HelixElement",
|
|
101935
|
+
"module": "src/helix-element/helix-element.ts"
|
|
101936
|
+
}
|
|
101937
|
+
},
|
|
101938
|
+
{
|
|
101939
|
+
"kind": "method",
|
|
101940
|
+
"name": "partNamed",
|
|
101941
|
+
"privacy": "protected",
|
|
101942
|
+
"return": {
|
|
101943
|
+
"type": {
|
|
101944
|
+
"text": "T | null"
|
|
101945
|
+
}
|
|
101946
|
+
},
|
|
101947
|
+
"parameters": [
|
|
101948
|
+
{
|
|
101949
|
+
"name": "name",
|
|
101950
|
+
"type": {
|
|
101951
|
+
"text": "string"
|
|
101952
|
+
}
|
|
101953
|
+
}
|
|
101954
|
+
],
|
|
101955
|
+
"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.",
|
|
101956
|
+
"inheritedFrom": {
|
|
101957
|
+
"name": "HelixElement",
|
|
101958
|
+
"module": "src/helix-element/helix-element.ts"
|
|
101959
|
+
}
|
|
101960
|
+
},
|
|
101961
|
+
{
|
|
101962
|
+
"kind": "field",
|
|
101963
|
+
"name": "internals",
|
|
101964
|
+
"type": {
|
|
101965
|
+
"text": "ElementInternals"
|
|
101966
|
+
},
|
|
101967
|
+
"privacy": "protected",
|
|
101968
|
+
"readonly": true,
|
|
101969
|
+
"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.",
|
|
101970
|
+
"inheritedFrom": {
|
|
101971
|
+
"name": "HelixElement",
|
|
101972
|
+
"module": "src/helix-element/helix-element.ts"
|
|
101973
|
+
}
|
|
101974
|
+
},
|
|
101975
|
+
{
|
|
101976
|
+
"kind": "method",
|
|
101977
|
+
"name": "toggleState",
|
|
101978
|
+
"privacy": "protected",
|
|
101979
|
+
"return": {
|
|
101980
|
+
"type": {
|
|
101981
|
+
"text": "void"
|
|
101982
|
+
}
|
|
101983
|
+
},
|
|
101984
|
+
"parameters": [
|
|
101985
|
+
{
|
|
101986
|
+
"name": "name",
|
|
101987
|
+
"type": {
|
|
101988
|
+
"text": "string"
|
|
101989
|
+
}
|
|
101990
|
+
},
|
|
101991
|
+
{
|
|
101992
|
+
"name": "on",
|
|
101993
|
+
"type": {
|
|
101994
|
+
"text": "boolean"
|
|
101995
|
+
}
|
|
101996
|
+
}
|
|
101997
|
+
],
|
|
101998
|
+
"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.",
|
|
101999
|
+
"inheritedFrom": {
|
|
102000
|
+
"name": "HelixElement",
|
|
102001
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102002
|
+
}
|
|
102003
|
+
},
|
|
102004
|
+
{
|
|
102005
|
+
"kind": "field",
|
|
102006
|
+
"name": "whenSettled",
|
|
102007
|
+
"type": {
|
|
102008
|
+
"text": "Promise<void>"
|
|
102009
|
+
},
|
|
102010
|
+
"readonly": true,
|
|
102011
|
+
"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.",
|
|
102012
|
+
"default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
|
|
102013
|
+
"inheritedFrom": {
|
|
102014
|
+
"name": "HelixElement",
|
|
102015
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102016
|
+
}
|
|
102017
|
+
},
|
|
102018
|
+
{
|
|
102019
|
+
"kind": "field",
|
|
102020
|
+
"name": "resolveSettled",
|
|
102021
|
+
"type": {
|
|
102022
|
+
"text": "() => void"
|
|
102023
|
+
},
|
|
102024
|
+
"privacy": "private",
|
|
102025
|
+
"description": "Resolves `whenSettled`, once, from the frame that records the state.",
|
|
102026
|
+
"inheritedFrom": {
|
|
102027
|
+
"name": "HelixElement",
|
|
102028
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102029
|
+
}
|
|
102030
|
+
},
|
|
102031
|
+
{
|
|
102032
|
+
"kind": "field",
|
|
102033
|
+
"name": "fromServer",
|
|
102034
|
+
"type": {
|
|
102035
|
+
"text": "boolean"
|
|
102036
|
+
},
|
|
102037
|
+
"privacy": "private",
|
|
102038
|
+
"default": "false",
|
|
102039
|
+
"description": "Whether the shadow root was a server's, parsed from declarative shadow DOM.",
|
|
102040
|
+
"inheritedFrom": {
|
|
102041
|
+
"name": "HelixElement",
|
|
102042
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102043
|
+
}
|
|
102044
|
+
},
|
|
102045
|
+
{
|
|
102046
|
+
"kind": "field",
|
|
102047
|
+
"name": "hydrating",
|
|
102048
|
+
"type": {
|
|
102049
|
+
"text": "boolean"
|
|
102050
|
+
},
|
|
102051
|
+
"privacy": "protected",
|
|
102052
|
+
"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.",
|
|
102053
|
+
"readonly": true,
|
|
102054
|
+
"inheritedFrom": {
|
|
102055
|
+
"name": "HelixElement",
|
|
102056
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102057
|
+
}
|
|
102058
|
+
},
|
|
102059
|
+
{
|
|
102060
|
+
"kind": "field",
|
|
102061
|
+
"name": "serverRendered",
|
|
102062
|
+
"type": {
|
|
102063
|
+
"text": "boolean"
|
|
102064
|
+
},
|
|
102065
|
+
"privacy": "protected",
|
|
102066
|
+
"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.",
|
|
102067
|
+
"readonly": true,
|
|
102068
|
+
"inheritedFrom": {
|
|
102069
|
+
"name": "HelixElement",
|
|
102070
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102071
|
+
}
|
|
102072
|
+
},
|
|
102073
|
+
{
|
|
102074
|
+
"kind": "method",
|
|
102075
|
+
"name": "finishHydration",
|
|
102076
|
+
"privacy": "protected",
|
|
102077
|
+
"return": {
|
|
102078
|
+
"type": {
|
|
102079
|
+
"text": "void"
|
|
102080
|
+
}
|
|
102081
|
+
},
|
|
102082
|
+
"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.",
|
|
102083
|
+
"inheritedFrom": {
|
|
102084
|
+
"name": "HelixElement",
|
|
102085
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102086
|
+
}
|
|
102087
|
+
},
|
|
102088
|
+
{
|
|
102089
|
+
"kind": "field",
|
|
102090
|
+
"name": "childrenKnown",
|
|
102091
|
+
"type": {
|
|
102092
|
+
"text": "boolean"
|
|
102093
|
+
},
|
|
102094
|
+
"privacy": "protected",
|
|
102095
|
+
"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.",
|
|
102096
|
+
"readonly": true,
|
|
102097
|
+
"inheritedFrom": {
|
|
102098
|
+
"name": "HelixElement",
|
|
102099
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102100
|
+
}
|
|
102101
|
+
},
|
|
102102
|
+
{
|
|
102103
|
+
"kind": "field",
|
|
102104
|
+
"name": "knownChildren",
|
|
102105
|
+
"type": {
|
|
102106
|
+
"text": "Element[]"
|
|
102107
|
+
},
|
|
102108
|
+
"privacy": "protected",
|
|
102109
|
+
"description": "The children a render may read: all of them where they are known, and none otherwise.",
|
|
102110
|
+
"readonly": true,
|
|
102111
|
+
"inheritedFrom": {
|
|
102112
|
+
"name": "HelixElement",
|
|
102113
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102114
|
+
}
|
|
102115
|
+
},
|
|
102116
|
+
{
|
|
102117
|
+
"kind": "field",
|
|
102118
|
+
"name": "assignsByName",
|
|
102119
|
+
"type": {
|
|
102120
|
+
"text": "boolean"
|
|
102121
|
+
},
|
|
102122
|
+
"privacy": "protected",
|
|
102123
|
+
"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.",
|
|
102124
|
+
"readonly": true,
|
|
102125
|
+
"inheritedFrom": {
|
|
102126
|
+
"name": "HelixElement",
|
|
102127
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102128
|
+
}
|
|
102129
|
+
},
|
|
102130
|
+
{
|
|
102131
|
+
"kind": "method",
|
|
102132
|
+
"name": "route",
|
|
102133
|
+
"privacy": "protected",
|
|
102134
|
+
"return": {
|
|
102135
|
+
"type": {
|
|
102136
|
+
"text": "void"
|
|
102137
|
+
}
|
|
102138
|
+
},
|
|
102139
|
+
"parameters": [
|
|
102140
|
+
{
|
|
102141
|
+
"name": "child",
|
|
102142
|
+
"type": {
|
|
102143
|
+
"text": "Element"
|
|
102144
|
+
}
|
|
102145
|
+
},
|
|
102146
|
+
{
|
|
102147
|
+
"name": "name",
|
|
102148
|
+
"type": {
|
|
102149
|
+
"text": "string | undefined"
|
|
102150
|
+
}
|
|
102151
|
+
}
|
|
102152
|
+
],
|
|
102153
|
+
"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.",
|
|
102154
|
+
"inheritedFrom": {
|
|
102155
|
+
"name": "HelixElement",
|
|
102156
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102157
|
+
}
|
|
102158
|
+
},
|
|
102159
|
+
{
|
|
102160
|
+
"kind": "field",
|
|
102161
|
+
"name": "stopInner",
|
|
102162
|
+
"privacy": "protected",
|
|
102163
|
+
"readonly": true,
|
|
102164
|
+
"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.",
|
|
102165
|
+
"inheritedFrom": {
|
|
102166
|
+
"name": "HelixElement",
|
|
102167
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102168
|
+
}
|
|
102169
|
+
},
|
|
102170
|
+
{
|
|
102171
|
+
"kind": "method",
|
|
102172
|
+
"name": "relayNativeEvent",
|
|
102173
|
+
"privacy": "protected",
|
|
102174
|
+
"return": {
|
|
102175
|
+
"type": {
|
|
102176
|
+
"text": "void"
|
|
102177
|
+
}
|
|
102178
|
+
},
|
|
102179
|
+
"parameters": [
|
|
102180
|
+
{
|
|
102181
|
+
"name": "event",
|
|
102182
|
+
"type": {
|
|
102183
|
+
"text": "Event"
|
|
102184
|
+
}
|
|
102185
|
+
},
|
|
102186
|
+
{
|
|
102187
|
+
"name": "init",
|
|
102188
|
+
"optional": true,
|
|
102189
|
+
"type": {
|
|
102190
|
+
"text": "EventInit"
|
|
102191
|
+
}
|
|
102192
|
+
}
|
|
102193
|
+
],
|
|
102194
|
+
"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.",
|
|
102195
|
+
"inheritedFrom": {
|
|
102196
|
+
"name": "HelixElement",
|
|
102197
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102198
|
+
}
|
|
102199
|
+
},
|
|
102200
|
+
{
|
|
102201
|
+
"kind": "method",
|
|
102202
|
+
"name": "finalizeStyles",
|
|
102203
|
+
"privacy": "protected",
|
|
102204
|
+
"static": true,
|
|
102205
|
+
"return": {
|
|
102206
|
+
"type": {
|
|
102207
|
+
"text": "CSSResultOrNative[]"
|
|
102208
|
+
}
|
|
102209
|
+
},
|
|
102210
|
+
"parameters": [
|
|
102211
|
+
{
|
|
102212
|
+
"name": "styles",
|
|
102213
|
+
"optional": true,
|
|
102214
|
+
"type": {
|
|
102215
|
+
"text": "CSSResultOrNative | CSSResultOrNative[]"
|
|
102216
|
+
}
|
|
102217
|
+
}
|
|
102218
|
+
],
|
|
102219
|
+
"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.",
|
|
102220
|
+
"inheritedFrom": {
|
|
102221
|
+
"name": "HelixElement",
|
|
102222
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102223
|
+
}
|
|
102224
|
+
},
|
|
102225
|
+
{
|
|
102226
|
+
"kind": "method",
|
|
102227
|
+
"name": "performUpdate",
|
|
102228
|
+
"privacy": "protected",
|
|
102229
|
+
"return": {
|
|
102230
|
+
"type": {
|
|
102231
|
+
"text": "void"
|
|
102232
|
+
}
|
|
102233
|
+
},
|
|
102234
|
+
"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`.",
|
|
102235
|
+
"inheritedFrom": {
|
|
102236
|
+
"name": "HelixElement",
|
|
102237
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102238
|
+
}
|
|
102239
|
+
}
|
|
102240
|
+
],
|
|
102241
|
+
"events": [
|
|
102242
|
+
{
|
|
102243
|
+
"type": {
|
|
102244
|
+
"text": "HelixBeforeCloseEvent"
|
|
102245
|
+
},
|
|
102246
|
+
"description": "Fired before the group closes. Cancelable.",
|
|
102247
|
+
"name": "helix-before-close",
|
|
102248
|
+
"reactProp": "onhelix-before-close"
|
|
102249
|
+
},
|
|
102250
|
+
{
|
|
102251
|
+
"type": {
|
|
102252
|
+
"text": "HelixBeforeOpenEvent"
|
|
102253
|
+
},
|
|
102254
|
+
"description": "Fired before the group opens. Cancelable.",
|
|
102255
|
+
"name": "helix-before-open",
|
|
102256
|
+
"reactProp": "onhelix-before-open"
|
|
102257
|
+
},
|
|
102258
|
+
{
|
|
102259
|
+
"name": "toggle",
|
|
102260
|
+
"type": {
|
|
102261
|
+
"text": "ToggleEvent"
|
|
102262
|
+
},
|
|
102263
|
+
"description": "Fired after the group opens or closes, with `newState` and `oldState`.",
|
|
102264
|
+
"inheritedFrom": {
|
|
102265
|
+
"name": "MixinControllerOpen",
|
|
102266
|
+
"module": "src/mixins/mixin-controller-open/mixin-controller-open.ts"
|
|
102267
|
+
},
|
|
102268
|
+
"reactProp": "ontoggle"
|
|
102269
|
+
}
|
|
102270
|
+
],
|
|
102271
|
+
"attributes": [
|
|
102272
|
+
{
|
|
102273
|
+
"name": "duration",
|
|
102274
|
+
"type": {
|
|
102275
|
+
"text": "string"
|
|
102276
|
+
},
|
|
102277
|
+
"default": "''",
|
|
102278
|
+
"description": "How long the step took, as it should read, such as `12s`.",
|
|
102279
|
+
"fieldName": "duration"
|
|
102280
|
+
},
|
|
102281
|
+
{
|
|
102282
|
+
"name": "heading",
|
|
102283
|
+
"type": {
|
|
102284
|
+
"text": "string"
|
|
102285
|
+
},
|
|
102286
|
+
"default": "''",
|
|
102287
|
+
"description": "What the step is called. The `heading` slot replaces it.",
|
|
102288
|
+
"fieldName": "heading"
|
|
102289
|
+
},
|
|
102290
|
+
{
|
|
102291
|
+
"name": "status",
|
|
102292
|
+
"type": {
|
|
102293
|
+
"text": "'done' | 'failed' | 'pending' | 'running' | 'skipped' | undefined"
|
|
102294
|
+
},
|
|
102295
|
+
"description": "Where the step stands, which draws a mark before the heading.",
|
|
102296
|
+
"fieldName": "status"
|
|
102297
|
+
},
|
|
102298
|
+
{
|
|
102299
|
+
"name": "status-label",
|
|
102300
|
+
"type": {
|
|
102301
|
+
"text": "string"
|
|
102302
|
+
},
|
|
102303
|
+
"default": "'{status, select, pending {waiting} running {running} done {finished} failed {failed} skipped {skipped} other {}}'",
|
|
102304
|
+
"description": "What a screen reader hears for the status, after the heading.\n`{status}` is one of `pending`, `running`, `done`, `failed`, and `skipped`.",
|
|
102305
|
+
"fieldName": "statusLabel"
|
|
102306
|
+
},
|
|
102307
|
+
{
|
|
102308
|
+
"name": "default-open",
|
|
102309
|
+
"type": {
|
|
102310
|
+
"text": "boolean"
|
|
102311
|
+
},
|
|
102312
|
+
"default": "false",
|
|
102313
|
+
"description": "Whether the element starts open. Ignored once `open` is written.",
|
|
102314
|
+
"fieldName": "defaultOpen",
|
|
102315
|
+
"inheritedFrom": {
|
|
102316
|
+
"name": "MixinControllerOpen",
|
|
102317
|
+
"module": "src/mixins/mixin-controller-open/mixin-controller-open.ts"
|
|
102318
|
+
}
|
|
102319
|
+
},
|
|
102320
|
+
{
|
|
102321
|
+
"name": "open",
|
|
102322
|
+
"type": {
|
|
102323
|
+
"text": "boolean"
|
|
102324
|
+
},
|
|
102325
|
+
"description": "Whether the element is open.\n\nOne property, not two, so `dialog.open` answers the question anyone\nasking it meant. Writing always applies; `<helix-dialog open>` is the\nsame statement in markup.\n\n**Not reflected, and that is required rather than tidy.** Reflection\nwrites the resolved state back as an attribute, so an element that opened\nitself would put `open` on its own host: cloned, serialized for\nhydration, or diffed by a framework, it comes back holding whatever the\nlast reader did rather than what the author wrote. `:state(open)` carries\nthe resolved state for stylesheets, which is what the mirror is for.",
|
|
102326
|
+
"fieldName": "open",
|
|
102327
|
+
"inheritedFrom": {
|
|
102328
|
+
"name": "MixinControllerOpen",
|
|
102329
|
+
"module": "src/mixins/mixin-controller-open/mixin-controller-open.ts"
|
|
102330
|
+
}
|
|
102331
|
+
}
|
|
102332
|
+
],
|
|
102333
|
+
"cssStates": [
|
|
102334
|
+
{
|
|
102335
|
+
"description": "The group shows its lines.",
|
|
102336
|
+
"name": "open"
|
|
102337
|
+
},
|
|
102338
|
+
{
|
|
102339
|
+
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
102340
|
+
"name": "settled",
|
|
102341
|
+
"inheritedFrom": {
|
|
102342
|
+
"name": "HelixElement",
|
|
102343
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102344
|
+
}
|
|
102345
|
+
}
|
|
102346
|
+
],
|
|
102347
|
+
"mixins": [
|
|
102348
|
+
{
|
|
102349
|
+
"name": "MixinControllerOpen",
|
|
102350
|
+
"package": "@fusion.dev/helix-core"
|
|
102351
|
+
}
|
|
102352
|
+
],
|
|
102353
|
+
"superclass": {
|
|
102354
|
+
"name": "HelixElement",
|
|
102355
|
+
"package": "@fusion.dev/helix-core"
|
|
102356
|
+
},
|
|
102357
|
+
"summary": "One step of a log, which folds its lines under a heading with its status and how long it took.",
|
|
102358
|
+
"helix": {
|
|
102359
|
+
"since": "0.199.0",
|
|
102360
|
+
"status": "experimental",
|
|
102361
|
+
"documentation": "https://fusion.dev/helix/components/log",
|
|
102362
|
+
"tier": "headless",
|
|
102363
|
+
"group": "BaseLog",
|
|
102364
|
+
"part": "Group"
|
|
102365
|
+
},
|
|
102366
|
+
"tagName": "helix-headless-log-group",
|
|
102367
|
+
"customElement": true,
|
|
102368
|
+
"modulePath": "src/log/group/log-group.ts",
|
|
102369
|
+
"definitionPath": "src/log/group/log-group.ts"
|
|
102370
|
+
}
|
|
102371
|
+
],
|
|
102372
|
+
"exports": [
|
|
102373
|
+
{
|
|
102374
|
+
"kind": "js",
|
|
102375
|
+
"name": "HelixHeadlessLogGroup",
|
|
102376
|
+
"declaration": {
|
|
102377
|
+
"name": "HelixHeadlessLogGroup",
|
|
102378
|
+
"module": "src/log/group/log-group.ts"
|
|
102379
|
+
}
|
|
102380
|
+
},
|
|
102381
|
+
{
|
|
102382
|
+
"kind": "custom-element-definition",
|
|
102383
|
+
"name": "helix-headless-log-group",
|
|
102384
|
+
"declaration": {
|
|
102385
|
+
"name": "HelixHeadlessLogGroup",
|
|
102386
|
+
"module": "src/log/group/log-group.ts"
|
|
102387
|
+
}
|
|
102388
|
+
}
|
|
102389
|
+
]
|
|
102390
|
+
},
|
|
102391
|
+
{
|
|
102392
|
+
"kind": "javascript-module",
|
|
102393
|
+
"path": "src/log/index.ts",
|
|
102394
|
+
"declarations": [],
|
|
102395
|
+
"exports": [
|
|
102396
|
+
{
|
|
102397
|
+
"kind": "js",
|
|
102398
|
+
"name": "LogRun",
|
|
102399
|
+
"declaration": {
|
|
102400
|
+
"name": "LogRun",
|
|
102401
|
+
"module": "./ansi.js"
|
|
102402
|
+
}
|
|
102403
|
+
},
|
|
102404
|
+
{
|
|
102405
|
+
"kind": "js",
|
|
102406
|
+
"name": "LogStyle",
|
|
102407
|
+
"declaration": {
|
|
102408
|
+
"name": "LogStyle",
|
|
102409
|
+
"module": "./ansi.js"
|
|
102410
|
+
}
|
|
102411
|
+
},
|
|
102412
|
+
{
|
|
102413
|
+
"kind": "js",
|
|
102414
|
+
"name": "parseAnsi",
|
|
102415
|
+
"declaration": {
|
|
102416
|
+
"name": "parseAnsi",
|
|
102417
|
+
"module": "./ansi.js"
|
|
102418
|
+
}
|
|
102419
|
+
},
|
|
102420
|
+
{
|
|
102421
|
+
"kind": "js",
|
|
102422
|
+
"name": "stripAnsi",
|
|
102423
|
+
"declaration": {
|
|
102424
|
+
"name": "stripAnsi",
|
|
102425
|
+
"module": "./ansi.js"
|
|
102426
|
+
}
|
|
102427
|
+
},
|
|
102428
|
+
{
|
|
102429
|
+
"kind": "js",
|
|
102430
|
+
"name": "LogGroup",
|
|
102431
|
+
"declaration": {
|
|
102432
|
+
"name": "LogGroup",
|
|
102433
|
+
"module": "./buffer.js"
|
|
102434
|
+
}
|
|
102435
|
+
},
|
|
102436
|
+
{
|
|
102437
|
+
"kind": "js",
|
|
102438
|
+
"name": "LogLevel",
|
|
102439
|
+
"declaration": {
|
|
102440
|
+
"name": "LogLevel",
|
|
102441
|
+
"module": "./buffer.js"
|
|
102442
|
+
}
|
|
102443
|
+
},
|
|
102444
|
+
{
|
|
102445
|
+
"kind": "js",
|
|
102446
|
+
"name": "LogLine",
|
|
102447
|
+
"declaration": {
|
|
102448
|
+
"name": "LogLine",
|
|
102449
|
+
"module": "./buffer.js"
|
|
102450
|
+
}
|
|
102451
|
+
},
|
|
102452
|
+
{
|
|
102453
|
+
"kind": "js",
|
|
102454
|
+
"name": "LogParser",
|
|
102455
|
+
"declaration": {
|
|
102456
|
+
"name": "LogParser",
|
|
102457
|
+
"module": "./buffer.js"
|
|
102458
|
+
}
|
|
102459
|
+
},
|
|
102460
|
+
{
|
|
102461
|
+
"kind": "js",
|
|
102462
|
+
"name": "LogStatus",
|
|
102463
|
+
"declaration": {
|
|
102464
|
+
"name": "LogStatus",
|
|
102465
|
+
"module": "./buffer.js"
|
|
102466
|
+
}
|
|
102467
|
+
},
|
|
102468
|
+
{
|
|
102469
|
+
"kind": "js",
|
|
102470
|
+
"name": "HelixHeadlessLogGroup",
|
|
102471
|
+
"declaration": {
|
|
102472
|
+
"name": "HelixHeadlessLogGroup",
|
|
102473
|
+
"module": "./group/log-group.js"
|
|
102474
|
+
}
|
|
102475
|
+
},
|
|
102476
|
+
{
|
|
102477
|
+
"kind": "js",
|
|
102478
|
+
"name": "HelixHeadlessLogLine",
|
|
102479
|
+
"declaration": {
|
|
102480
|
+
"name": "HelixHeadlessLogLine",
|
|
102481
|
+
"module": "./line/log-line.js"
|
|
102482
|
+
}
|
|
102483
|
+
},
|
|
102484
|
+
{
|
|
102485
|
+
"kind": "js",
|
|
102486
|
+
"name": "LogTimes",
|
|
102487
|
+
"declaration": {
|
|
102488
|
+
"name": "LogTimes",
|
|
102489
|
+
"module": "./line/log-line.js"
|
|
102490
|
+
}
|
|
102491
|
+
},
|
|
102492
|
+
{
|
|
102493
|
+
"kind": "js",
|
|
102494
|
+
"name": "HelixHeadlessLog",
|
|
102495
|
+
"declaration": {
|
|
102496
|
+
"name": "HelixHeadlessLog",
|
|
102497
|
+
"module": "./root/log-root.js"
|
|
102498
|
+
}
|
|
102499
|
+
},
|
|
102500
|
+
{
|
|
102501
|
+
"kind": "js",
|
|
102502
|
+
"name": "LogScrollOptions",
|
|
102503
|
+
"declaration": {
|
|
102504
|
+
"name": "LogScrollOptions",
|
|
102505
|
+
"module": "./root/log-root.js"
|
|
102506
|
+
}
|
|
102507
|
+
},
|
|
102508
|
+
{
|
|
102509
|
+
"kind": "js",
|
|
102510
|
+
"name": "LogSource",
|
|
102511
|
+
"declaration": {
|
|
102512
|
+
"name": "LogSource",
|
|
102513
|
+
"module": "./root/log-root.js"
|
|
102514
|
+
}
|
|
102515
|
+
}
|
|
102516
|
+
]
|
|
102517
|
+
},
|
|
102518
|
+
{
|
|
102519
|
+
"kind": "javascript-module",
|
|
102520
|
+
"path": "src/log/line/log-line.ts",
|
|
102521
|
+
"declarations": [
|
|
102522
|
+
{
|
|
102523
|
+
"kind": "function",
|
|
102524
|
+
"name": "timeOf",
|
|
102525
|
+
"return": {
|
|
102526
|
+
"type": {
|
|
102527
|
+
"text": "number | undefined"
|
|
102528
|
+
}
|
|
102529
|
+
},
|
|
102530
|
+
"parameters": [
|
|
102531
|
+
{
|
|
102532
|
+
"name": "at",
|
|
102533
|
+
"type": {
|
|
102534
|
+
"text": "number | string | undefined"
|
|
102535
|
+
}
|
|
102536
|
+
}
|
|
102537
|
+
],
|
|
102538
|
+
"description": "Milliseconds since the epoch for `at`, or undefined where it names no time."
|
|
102539
|
+
},
|
|
102540
|
+
{
|
|
102541
|
+
"kind": "class",
|
|
102542
|
+
"description": "Write one for each line of a log you serve whole, inside a `Log` or a\n`Log.Group`. The log numbers each line, counting the lines of every group,\nand tells it whether to show its number and its time.\n\n`level` says how much a line matters, and the styled tier draws `warn` and\n`error` lines apart. The text is the line's own content, so you can mark it\nup yourself.",
|
|
102543
|
+
"name": "HelixHeadlessLogLine",
|
|
102544
|
+
"cssProperties": [
|
|
102545
|
+
{
|
|
102546
|
+
"description": "Written on a `run` with a background, in the same form as `--log-run-color`.",
|
|
102547
|
+
"name": "--log-run-background-color"
|
|
102548
|
+
},
|
|
102549
|
+
{
|
|
102550
|
+
"description": "Written on a `run` with a text color: one of the sixteen `--log-ansi-*` colors the log publishes, or the color itself.",
|
|
102551
|
+
"name": "--log-run-color"
|
|
102552
|
+
}
|
|
102553
|
+
],
|
|
102554
|
+
"cssParts": [
|
|
102555
|
+
{
|
|
102556
|
+
"description": "The row the number, the time, and the text sit in.",
|
|
102557
|
+
"name": "line"
|
|
102558
|
+
},
|
|
102559
|
+
{
|
|
102560
|
+
"description": "The row of a line at `debug`.",
|
|
102561
|
+
"name": "line-debug"
|
|
102562
|
+
},
|
|
102563
|
+
{
|
|
102564
|
+
"description": "The row of a line at `error`.",
|
|
102565
|
+
"name": "line-error"
|
|
102566
|
+
},
|
|
102567
|
+
{
|
|
102568
|
+
"description": "The row of a line `mark-lines` names on the log.",
|
|
102569
|
+
"name": "line-marked"
|
|
102570
|
+
},
|
|
102571
|
+
{
|
|
102572
|
+
"description": "The row of a line at `warn`.",
|
|
102573
|
+
"name": "line-warn"
|
|
102574
|
+
},
|
|
102575
|
+
{
|
|
102576
|
+
"description": "Text that matches the log's `query`, in a line the log draws from data.",
|
|
102577
|
+
"name": "match"
|
|
102578
|
+
},
|
|
102579
|
+
{
|
|
102580
|
+
"description": "The line's number, shown with `line-numbers`, and a link with `line-href`.",
|
|
102581
|
+
"name": "number"
|
|
102582
|
+
},
|
|
102583
|
+
{
|
|
102584
|
+
"description": "A stretch of text drawn in an ANSI style, in a line the log draws from data. Its color is `--log-run-color` and its background `--log-run-background-color`.",
|
|
102585
|
+
"name": "run"
|
|
102586
|
+
},
|
|
102587
|
+
{
|
|
102588
|
+
"description": "A run drawn bold.",
|
|
102589
|
+
"name": "run-bold"
|
|
102590
|
+
},
|
|
102591
|
+
{
|
|
102592
|
+
"description": "A run drawn faint.",
|
|
102593
|
+
"name": "run-dim"
|
|
102594
|
+
},
|
|
102595
|
+
{
|
|
102596
|
+
"description": "A run drawn italic.",
|
|
102597
|
+
"name": "run-italic"
|
|
102598
|
+
},
|
|
102599
|
+
{
|
|
102600
|
+
"description": "A run drawn struck through.",
|
|
102601
|
+
"name": "run-strike"
|
|
102602
|
+
},
|
|
102603
|
+
{
|
|
102604
|
+
"description": "A run drawn underlined.",
|
|
102605
|
+
"name": "run-underline"
|
|
102606
|
+
},
|
|
102607
|
+
{
|
|
102608
|
+
"description": "The text of the line.",
|
|
102609
|
+
"name": "text"
|
|
102610
|
+
},
|
|
102611
|
+
{
|
|
102612
|
+
"description": "When the line was written, shown with `timestamps`.",
|
|
102613
|
+
"name": "time"
|
|
102614
|
+
}
|
|
102615
|
+
],
|
|
102616
|
+
"slots": [
|
|
102617
|
+
{
|
|
102618
|
+
"description": "The text of the line.",
|
|
102619
|
+
"name": ""
|
|
102620
|
+
}
|
|
102621
|
+
],
|
|
102622
|
+
"members": [
|
|
102623
|
+
{
|
|
102624
|
+
"kind": "field",
|
|
102625
|
+
"name": "words",
|
|
102626
|
+
"type": {
|
|
102627
|
+
"text": "string"
|
|
102628
|
+
},
|
|
102629
|
+
"static": true,
|
|
102630
|
+
"default": "'helix-log'",
|
|
102631
|
+
"description": "The key this family's words are registered under, its styled tag."
|
|
102632
|
+
},
|
|
102633
|
+
{
|
|
102634
|
+
"kind": "field",
|
|
102635
|
+
"name": "at",
|
|
102636
|
+
"type": {
|
|
102637
|
+
"text": "number | string"
|
|
102638
|
+
},
|
|
102639
|
+
"default": "''",
|
|
102640
|
+
"description": "When the line was written: milliseconds since the epoch, or anything `Date` parses.",
|
|
102641
|
+
"attribute": "at"
|
|
102642
|
+
},
|
|
102643
|
+
{
|
|
102644
|
+
"kind": "field",
|
|
102645
|
+
"name": "level",
|
|
102646
|
+
"type": {
|
|
102647
|
+
"text": "'debug' | 'error' | 'info' | 'warn' | undefined"
|
|
102648
|
+
},
|
|
102649
|
+
"description": "How much the line matters. Absent is `info`.",
|
|
102650
|
+
"attribute": "level",
|
|
102651
|
+
"reflects": true
|
|
102652
|
+
},
|
|
102653
|
+
{
|
|
102654
|
+
"kind": "field",
|
|
102655
|
+
"name": "lineLabel",
|
|
102656
|
+
"type": {
|
|
102657
|
+
"text": "string"
|
|
102658
|
+
},
|
|
102659
|
+
"default": "'Line {number}'",
|
|
102660
|
+
"description": "What a screen reader hears for the link on a line's number. `{number}` is the number.",
|
|
102661
|
+
"attribute": "line-label",
|
|
102662
|
+
"helix": {
|
|
102663
|
+
"words": true
|
|
102664
|
+
}
|
|
102665
|
+
},
|
|
102666
|
+
{
|
|
102667
|
+
"kind": "method",
|
|
102668
|
+
"name": "renderNumber",
|
|
102669
|
+
"privacy": "private",
|
|
102670
|
+
"return": {
|
|
102671
|
+
"type": {
|
|
102672
|
+
"text": "TemplateResult | typeof nothing"
|
|
102673
|
+
}
|
|
102674
|
+
},
|
|
102675
|
+
"description": "The number, as a link where the log gave one, or as text a screen reader skips."
|
|
102676
|
+
},
|
|
102677
|
+
{
|
|
102678
|
+
"kind": "method",
|
|
102679
|
+
"name": "renderTime",
|
|
102680
|
+
"privacy": "private",
|
|
102681
|
+
"return": {
|
|
102682
|
+
"type": {
|
|
102683
|
+
"text": "TemplateResult | typeof nothing"
|
|
102684
|
+
}
|
|
102685
|
+
},
|
|
102686
|
+
"description": "The time, on the clock or into the run, where the log asked for one and the line has one."
|
|
102687
|
+
},
|
|
102688
|
+
{
|
|
102689
|
+
"kind": "method",
|
|
102690
|
+
"name": "renderText",
|
|
102691
|
+
"privacy": "protected",
|
|
102692
|
+
"return": {
|
|
102693
|
+
"type": {
|
|
102694
|
+
"text": "TemplateResult"
|
|
102695
|
+
}
|
|
102696
|
+
},
|
|
102697
|
+
"description": "The text: the default slot, falling back to the runs a log drew from data.\nThe slot answers a page, and this answers the tier above."
|
|
102698
|
+
},
|
|
102699
|
+
{
|
|
102700
|
+
"kind": "method",
|
|
102701
|
+
"name": "renderRuns",
|
|
102702
|
+
"privacy": "private",
|
|
102703
|
+
"return": {
|
|
102704
|
+
"type": {
|
|
102705
|
+
"text": "unknown[]"
|
|
102706
|
+
}
|
|
102707
|
+
},
|
|
102708
|
+
"description": "The runs a log drew from data, each match of its query marked.\n\n**The parts are literals**, each name written where it is decided, so a\nrule reading the source finds every name a run can carry. A named color\nis written into `style` as the `--log-ansi-` color of that name, and any\nother as itself. A bright color is written apart from the rest, so a rule\nreading the source sees the `--log-ansi-bright-` colors read as well as\nthe plain ones. Inverse swaps the two, each falling back to the log's own\nink."
|
|
102709
|
+
},
|
|
102710
|
+
{
|
|
102711
|
+
"kind": "field",
|
|
102712
|
+
"name": "tier",
|
|
102713
|
+
"type": {
|
|
102714
|
+
"text": "string"
|
|
102715
|
+
},
|
|
102716
|
+
"static": true,
|
|
102717
|
+
"default": "'helix-headless-'",
|
|
102718
|
+
"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.",
|
|
102719
|
+
"inheritedFrom": {
|
|
102720
|
+
"name": "HelixElement",
|
|
102721
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102722
|
+
}
|
|
102723
|
+
},
|
|
102724
|
+
{
|
|
102725
|
+
"kind": "method",
|
|
102726
|
+
"name": "tag",
|
|
102727
|
+
"privacy": "protected",
|
|
102728
|
+
"return": {
|
|
102729
|
+
"type": {
|
|
102730
|
+
"text": "StaticValue"
|
|
102731
|
+
}
|
|
102732
|
+
},
|
|
102733
|
+
"parameters": [
|
|
102734
|
+
{
|
|
102735
|
+
"name": "name",
|
|
102736
|
+
"type": {
|
|
102737
|
+
"text": "string"
|
|
102738
|
+
}
|
|
102739
|
+
}
|
|
102740
|
+
],
|
|
102741
|
+
"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.",
|
|
102742
|
+
"inheritedFrom": {
|
|
102743
|
+
"name": "HelixElement",
|
|
102744
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102745
|
+
}
|
|
102746
|
+
},
|
|
102747
|
+
{
|
|
102748
|
+
"kind": "method",
|
|
102749
|
+
"name": "partNamed",
|
|
102750
|
+
"privacy": "protected",
|
|
102751
|
+
"return": {
|
|
102752
|
+
"type": {
|
|
102753
|
+
"text": "T | null"
|
|
102754
|
+
}
|
|
102755
|
+
},
|
|
102756
|
+
"parameters": [
|
|
102757
|
+
{
|
|
102758
|
+
"name": "name",
|
|
102759
|
+
"type": {
|
|
102760
|
+
"text": "string"
|
|
102761
|
+
}
|
|
102762
|
+
}
|
|
102763
|
+
],
|
|
102764
|
+
"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.",
|
|
102765
|
+
"inheritedFrom": {
|
|
102766
|
+
"name": "HelixElement",
|
|
102767
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102768
|
+
}
|
|
102769
|
+
},
|
|
102770
|
+
{
|
|
102771
|
+
"kind": "field",
|
|
102772
|
+
"name": "internals",
|
|
102773
|
+
"type": {
|
|
102774
|
+
"text": "ElementInternals"
|
|
102775
|
+
},
|
|
102776
|
+
"privacy": "protected",
|
|
102777
|
+
"readonly": true,
|
|
102778
|
+
"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.",
|
|
102779
|
+
"inheritedFrom": {
|
|
102780
|
+
"name": "HelixElement",
|
|
102781
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102782
|
+
}
|
|
102783
|
+
},
|
|
102784
|
+
{
|
|
102785
|
+
"kind": "method",
|
|
102786
|
+
"name": "toggleState",
|
|
102787
|
+
"privacy": "protected",
|
|
102788
|
+
"return": {
|
|
102789
|
+
"type": {
|
|
102790
|
+
"text": "void"
|
|
102791
|
+
}
|
|
102792
|
+
},
|
|
102793
|
+
"parameters": [
|
|
102794
|
+
{
|
|
102795
|
+
"name": "name",
|
|
102796
|
+
"type": {
|
|
102797
|
+
"text": "string"
|
|
102798
|
+
}
|
|
102799
|
+
},
|
|
102800
|
+
{
|
|
102801
|
+
"name": "on",
|
|
102802
|
+
"type": {
|
|
102803
|
+
"text": "boolean"
|
|
102804
|
+
}
|
|
102805
|
+
}
|
|
102806
|
+
],
|
|
102807
|
+
"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.",
|
|
102808
|
+
"inheritedFrom": {
|
|
102809
|
+
"name": "HelixElement",
|
|
102810
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102811
|
+
}
|
|
102812
|
+
},
|
|
102813
|
+
{
|
|
102814
|
+
"kind": "field",
|
|
102815
|
+
"name": "whenSettled",
|
|
102816
|
+
"type": {
|
|
102817
|
+
"text": "Promise<void>"
|
|
102818
|
+
},
|
|
102819
|
+
"readonly": true,
|
|
102820
|
+
"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.",
|
|
102821
|
+
"default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
|
|
102822
|
+
"inheritedFrom": {
|
|
102823
|
+
"name": "HelixElement",
|
|
102824
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102825
|
+
}
|
|
102826
|
+
},
|
|
102827
|
+
{
|
|
102828
|
+
"kind": "field",
|
|
102829
|
+
"name": "resolveSettled",
|
|
102830
|
+
"type": {
|
|
102831
|
+
"text": "() => void"
|
|
102832
|
+
},
|
|
102833
|
+
"privacy": "private",
|
|
102834
|
+
"description": "Resolves `whenSettled`, once, from the frame that records the state.",
|
|
102835
|
+
"inheritedFrom": {
|
|
102836
|
+
"name": "HelixElement",
|
|
102837
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102838
|
+
}
|
|
102839
|
+
},
|
|
102840
|
+
{
|
|
102841
|
+
"kind": "field",
|
|
102842
|
+
"name": "fromServer",
|
|
102843
|
+
"type": {
|
|
102844
|
+
"text": "boolean"
|
|
102845
|
+
},
|
|
102846
|
+
"privacy": "private",
|
|
102847
|
+
"default": "false",
|
|
102848
|
+
"description": "Whether the shadow root was a server's, parsed from declarative shadow DOM.",
|
|
102849
|
+
"inheritedFrom": {
|
|
102850
|
+
"name": "HelixElement",
|
|
102851
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102852
|
+
}
|
|
102853
|
+
},
|
|
102854
|
+
{
|
|
102855
|
+
"kind": "field",
|
|
102856
|
+
"name": "hydrating",
|
|
102857
|
+
"type": {
|
|
102858
|
+
"text": "boolean"
|
|
102859
|
+
},
|
|
102860
|
+
"privacy": "protected",
|
|
102861
|
+
"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.",
|
|
102862
|
+
"readonly": true,
|
|
102863
|
+
"inheritedFrom": {
|
|
102864
|
+
"name": "HelixElement",
|
|
102865
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102866
|
+
}
|
|
102867
|
+
},
|
|
102868
|
+
{
|
|
102869
|
+
"kind": "field",
|
|
102870
|
+
"name": "serverRendered",
|
|
102871
|
+
"type": {
|
|
102872
|
+
"text": "boolean"
|
|
102873
|
+
},
|
|
102874
|
+
"privacy": "protected",
|
|
102875
|
+
"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.",
|
|
102876
|
+
"readonly": true,
|
|
102877
|
+
"inheritedFrom": {
|
|
102878
|
+
"name": "HelixElement",
|
|
102879
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102880
|
+
}
|
|
102881
|
+
},
|
|
102882
|
+
{
|
|
102883
|
+
"kind": "method",
|
|
102884
|
+
"name": "finishHydration",
|
|
102885
|
+
"privacy": "protected",
|
|
102886
|
+
"return": {
|
|
102887
|
+
"type": {
|
|
102888
|
+
"text": "void"
|
|
102889
|
+
}
|
|
102890
|
+
},
|
|
102891
|
+
"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.",
|
|
102892
|
+
"inheritedFrom": {
|
|
102893
|
+
"name": "HelixElement",
|
|
102894
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102895
|
+
}
|
|
102896
|
+
},
|
|
102897
|
+
{
|
|
102898
|
+
"kind": "field",
|
|
102899
|
+
"name": "childrenKnown",
|
|
102900
|
+
"type": {
|
|
102901
|
+
"text": "boolean"
|
|
102902
|
+
},
|
|
102903
|
+
"privacy": "protected",
|
|
102904
|
+
"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.",
|
|
102905
|
+
"readonly": true,
|
|
102906
|
+
"inheritedFrom": {
|
|
102907
|
+
"name": "HelixElement",
|
|
102908
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102909
|
+
}
|
|
102910
|
+
},
|
|
102911
|
+
{
|
|
102912
|
+
"kind": "field",
|
|
102913
|
+
"name": "knownChildren",
|
|
102914
|
+
"type": {
|
|
102915
|
+
"text": "Element[]"
|
|
102916
|
+
},
|
|
102917
|
+
"privacy": "protected",
|
|
102918
|
+
"description": "The children a render may read: all of them where they are known, and none otherwise.",
|
|
102919
|
+
"readonly": true,
|
|
102920
|
+
"inheritedFrom": {
|
|
102921
|
+
"name": "HelixElement",
|
|
102922
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102923
|
+
}
|
|
102924
|
+
},
|
|
102925
|
+
{
|
|
102926
|
+
"kind": "field",
|
|
102927
|
+
"name": "assignsByName",
|
|
102928
|
+
"type": {
|
|
102929
|
+
"text": "boolean"
|
|
102930
|
+
},
|
|
102931
|
+
"privacy": "protected",
|
|
102932
|
+
"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.",
|
|
102933
|
+
"readonly": true,
|
|
102934
|
+
"inheritedFrom": {
|
|
102935
|
+
"name": "HelixElement",
|
|
102936
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102937
|
+
}
|
|
102938
|
+
},
|
|
102939
|
+
{
|
|
102940
|
+
"kind": "method",
|
|
102941
|
+
"name": "route",
|
|
102942
|
+
"privacy": "protected",
|
|
102943
|
+
"return": {
|
|
102944
|
+
"type": {
|
|
102945
|
+
"text": "void"
|
|
102946
|
+
}
|
|
102947
|
+
},
|
|
102948
|
+
"parameters": [
|
|
102949
|
+
{
|
|
102950
|
+
"name": "child",
|
|
102951
|
+
"type": {
|
|
102952
|
+
"text": "Element"
|
|
102953
|
+
}
|
|
102954
|
+
},
|
|
102955
|
+
{
|
|
102956
|
+
"name": "name",
|
|
102957
|
+
"type": {
|
|
102958
|
+
"text": "string | undefined"
|
|
102959
|
+
}
|
|
102960
|
+
}
|
|
102961
|
+
],
|
|
102962
|
+
"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.",
|
|
102963
|
+
"inheritedFrom": {
|
|
102964
|
+
"name": "HelixElement",
|
|
102965
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102966
|
+
}
|
|
102967
|
+
},
|
|
102968
|
+
{
|
|
102969
|
+
"kind": "field",
|
|
102970
|
+
"name": "stopInner",
|
|
102971
|
+
"privacy": "protected",
|
|
102972
|
+
"readonly": true,
|
|
102973
|
+
"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.",
|
|
102974
|
+
"inheritedFrom": {
|
|
102975
|
+
"name": "HelixElement",
|
|
102976
|
+
"module": "src/helix-element/helix-element.ts"
|
|
102977
|
+
}
|
|
102978
|
+
},
|
|
102979
|
+
{
|
|
102980
|
+
"kind": "method",
|
|
102981
|
+
"name": "relayNativeEvent",
|
|
102982
|
+
"privacy": "protected",
|
|
102983
|
+
"return": {
|
|
102984
|
+
"type": {
|
|
102985
|
+
"text": "void"
|
|
102986
|
+
}
|
|
102987
|
+
},
|
|
102988
|
+
"parameters": [
|
|
102989
|
+
{
|
|
102990
|
+
"name": "event",
|
|
102991
|
+
"type": {
|
|
102992
|
+
"text": "Event"
|
|
102993
|
+
}
|
|
102994
|
+
},
|
|
102995
|
+
{
|
|
102996
|
+
"name": "init",
|
|
102997
|
+
"optional": true,
|
|
102998
|
+
"type": {
|
|
102999
|
+
"text": "EventInit"
|
|
103000
|
+
}
|
|
103001
|
+
}
|
|
103002
|
+
],
|
|
103003
|
+
"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.",
|
|
103004
|
+
"inheritedFrom": {
|
|
103005
|
+
"name": "HelixElement",
|
|
103006
|
+
"module": "src/helix-element/helix-element.ts"
|
|
103007
|
+
}
|
|
103008
|
+
},
|
|
103009
|
+
{
|
|
103010
|
+
"kind": "field",
|
|
103011
|
+
"name": "markRules",
|
|
103012
|
+
"type": {
|
|
103013
|
+
"text": "readonly string[]"
|
|
103014
|
+
},
|
|
103015
|
+
"privacy": "protected",
|
|
103016
|
+
"static": true,
|
|
103017
|
+
"default": "[]",
|
|
103018
|
+
"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.",
|
|
103019
|
+
"inheritedFrom": {
|
|
103020
|
+
"name": "HelixElement",
|
|
103021
|
+
"module": "src/helix-element/helix-element.ts"
|
|
103022
|
+
}
|
|
103023
|
+
},
|
|
103024
|
+
{
|
|
103025
|
+
"kind": "method",
|
|
103026
|
+
"name": "finalizeStyles",
|
|
103027
|
+
"privacy": "protected",
|
|
103028
|
+
"static": true,
|
|
103029
|
+
"return": {
|
|
103030
|
+
"type": {
|
|
103031
|
+
"text": "CSSResultOrNative[]"
|
|
103032
|
+
}
|
|
103033
|
+
},
|
|
103034
|
+
"parameters": [
|
|
103035
|
+
{
|
|
103036
|
+
"name": "styles",
|
|
103037
|
+
"optional": true,
|
|
103038
|
+
"type": {
|
|
103039
|
+
"text": "CSSResultOrNative | CSSResultOrNative[]"
|
|
103040
|
+
}
|
|
103041
|
+
}
|
|
103042
|
+
],
|
|
103043
|
+
"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.",
|
|
103044
|
+
"inheritedFrom": {
|
|
103045
|
+
"name": "HelixElement",
|
|
103046
|
+
"module": "src/helix-element/helix-element.ts"
|
|
103047
|
+
}
|
|
103048
|
+
},
|
|
103049
|
+
{
|
|
103050
|
+
"kind": "method",
|
|
103051
|
+
"name": "performUpdate",
|
|
103052
|
+
"privacy": "protected",
|
|
103053
|
+
"return": {
|
|
103054
|
+
"type": {
|
|
103055
|
+
"text": "void"
|
|
103056
|
+
}
|
|
103057
|
+
},
|
|
103058
|
+
"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`.",
|
|
103059
|
+
"inheritedFrom": {
|
|
103060
|
+
"name": "HelixElement",
|
|
103061
|
+
"module": "src/helix-element/helix-element.ts"
|
|
103062
|
+
}
|
|
103063
|
+
}
|
|
103064
|
+
],
|
|
103065
|
+
"attributes": [
|
|
103066
|
+
{
|
|
103067
|
+
"name": "at",
|
|
103068
|
+
"type": {
|
|
103069
|
+
"text": "number | string"
|
|
103070
|
+
},
|
|
103071
|
+
"default": "''",
|
|
103072
|
+
"description": "When the line was written: milliseconds since the epoch, or anything `Date` parses.",
|
|
103073
|
+
"fieldName": "at"
|
|
103074
|
+
},
|
|
103075
|
+
{
|
|
103076
|
+
"name": "level",
|
|
103077
|
+
"type": {
|
|
103078
|
+
"text": "'debug' | 'error' | 'info' | 'warn' | undefined"
|
|
103079
|
+
},
|
|
103080
|
+
"description": "How much the line matters. Absent is `info`.",
|
|
103081
|
+
"fieldName": "level"
|
|
103082
|
+
},
|
|
103083
|
+
{
|
|
103084
|
+
"name": "line-label",
|
|
103085
|
+
"type": {
|
|
103086
|
+
"text": "string"
|
|
103087
|
+
},
|
|
103088
|
+
"default": "'Line {number}'",
|
|
103089
|
+
"description": "What a screen reader hears for the link on a line's number. `{number}` is the number.",
|
|
103090
|
+
"fieldName": "lineLabel"
|
|
103091
|
+
}
|
|
103092
|
+
],
|
|
103093
|
+
"cssStates": [
|
|
103094
|
+
{
|
|
103095
|
+
"description": "The log's `query` does not match the line, so it draws nothing.",
|
|
103096
|
+
"name": "filtered"
|
|
103097
|
+
},
|
|
103098
|
+
{
|
|
103099
|
+
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
103100
|
+
"name": "settled",
|
|
103101
|
+
"inheritedFrom": {
|
|
103102
|
+
"name": "HelixElement",
|
|
103103
|
+
"module": "src/helix-element/helix-element.ts"
|
|
103104
|
+
}
|
|
103105
|
+
}
|
|
103106
|
+
],
|
|
103107
|
+
"superclass": {
|
|
103108
|
+
"name": "HelixElement",
|
|
103109
|
+
"package": "@fusion.dev/helix-core"
|
|
103110
|
+
},
|
|
103111
|
+
"summary": "One line of a log, with its number, its time, and its text.",
|
|
103112
|
+
"helix": {
|
|
103113
|
+
"since": "0.199.0",
|
|
103114
|
+
"status": "experimental",
|
|
103115
|
+
"documentation": "https://fusion.dev/helix/components/log",
|
|
103116
|
+
"tier": "headless",
|
|
103117
|
+
"group": "BaseLog",
|
|
103118
|
+
"part": "Line"
|
|
103119
|
+
},
|
|
103120
|
+
"tagName": "helix-headless-log-line",
|
|
103121
|
+
"customElement": true,
|
|
103122
|
+
"modulePath": "src/log/line/log-line.ts",
|
|
103123
|
+
"definitionPath": "src/log/line/log-line.ts"
|
|
103124
|
+
}
|
|
103125
|
+
],
|
|
103126
|
+
"exports": [
|
|
103127
|
+
{
|
|
103128
|
+
"kind": "js",
|
|
103129
|
+
"name": "timeOf",
|
|
103130
|
+
"declaration": {
|
|
103131
|
+
"name": "timeOf",
|
|
103132
|
+
"module": "src/log/line/log-line.ts"
|
|
103133
|
+
}
|
|
103134
|
+
},
|
|
103135
|
+
{
|
|
103136
|
+
"kind": "js",
|
|
103137
|
+
"name": "HelixHeadlessLogLine",
|
|
103138
|
+
"declaration": {
|
|
103139
|
+
"name": "HelixHeadlessLogLine",
|
|
103140
|
+
"module": "src/log/line/log-line.ts"
|
|
103141
|
+
}
|
|
103142
|
+
},
|
|
103143
|
+
{
|
|
103144
|
+
"kind": "custom-element-definition",
|
|
103145
|
+
"name": "helix-headless-log-line",
|
|
103146
|
+
"declaration": {
|
|
103147
|
+
"name": "HelixHeadlessLogLine",
|
|
103148
|
+
"module": "src/log/line/log-line.ts"
|
|
103149
|
+
}
|
|
103150
|
+
}
|
|
103151
|
+
]
|
|
103152
|
+
},
|
|
103153
|
+
{
|
|
103154
|
+
"kind": "javascript-module",
|
|
103155
|
+
"path": "src/log/root/log-root.ts",
|
|
103156
|
+
"declarations": [
|
|
103157
|
+
{
|
|
103158
|
+
"kind": "class",
|
|
103159
|
+
"description": "A log holds lines in the order they were written and keeps the reader at\nthe newest one, until they scroll up to read. It stays where they left it\nwhile lines keep arriving, and a button returns them to the end\n(`resume-label`, \"Jump to latest\").\n\n**Lines arrive two ways.** For a log you serve whole, write `Log.Line`\nelements as children, inside `Log.Group` elements for the steps. For a log\nthat is still being written, hand it text: `write(chunk)` takes text as it\narrives, in pieces that need not end at a line break, and `source` takes a\n`ReadableStream` or an async iterable and reads it to the end. `lines` takes\nthe lines as data. Text drawn from data is drawn one window at a time, so a\nlog of a hundred thousand lines holds a screenful of elements, and the log\nneeds a block size of its own. Do not use both ways at once.\n\n**Written text is read the way a terminal shows it.** A carriage return\nstarts the line over, so a progress bar stays one line, and the line still\nbeing written is shown as it stands. ANSI colors and weights are drawn, in\nthe sixteen colors the styled tier takes from your theme, and every other\nescape code is dropped. Give `parse` a function to read each finished line,\nsuch as a level off its prefix or a group off a marker.\n\n**Steps fold.** Lines that name a group in `groups` stand under its heading,\nwhich shows its status and how long it took and opens and closes the lines.\nA group a reader opens or closes fires `helix-expand` with every open group.\n\n**Search with `query`.** The log shows only the lines that hold it, marks\neach match, opens the groups that hold one, and says how many lines match.\n\n`line-numbers` numbers the lines from the first ever written, so a number\nstill names its line once `limit` has let older lines go, and `line-href`\nmakes each number a link, such as `#L{n}`. `scrollToLine(n)` takes a reader\nto one. `timestamps` shows each line's `at`, on the clock or as the time\ninto the run. `mark-lines` marks lines, such as `12, 40-44`.\n\n**What a screen reader hears.** The log is a `log` and stays quiet as lines\narrive, since reading a build aloud line by line helps nobody. A separate\nstatus region says each line at `error` once it arrives, each step once it\nfinishes or fails, and the end of the run once `done` is set or `source`\nends. Set `done` yourself when output you `write` is complete.\n\nThe log scrolls on this tier. It carries `data-scroller`, so following the\nnewest line and drawing a window work with no stylesheet. Give the log a\nblock size, such as `helix-headless-log::part(log) { block-size: 20rem }`.\n\n```js\nimport '@fusion.dev/helix/log'\n```",
|
|
103160
|
+
"name": "HelixHeadlessLog",
|
|
103161
|
+
"cssProperties": [
|
|
103162
|
+
{
|
|
103163
|
+
"description": "The background a run takes where ANSI swaps the colors and named none. Defaults to the log's own background on the styled tier.",
|
|
103164
|
+
"name": "--log-ansi-background"
|
|
103165
|
+
},
|
|
103166
|
+
{
|
|
103167
|
+
"description": "The ANSI color black, which codes `30` and `40` draw.",
|
|
103168
|
+
"name": "--log-ansi-black"
|
|
103169
|
+
},
|
|
103170
|
+
{
|
|
103171
|
+
"description": "The ANSI color blue, which codes `34` and `44` draw.",
|
|
103172
|
+
"name": "--log-ansi-blue"
|
|
103173
|
+
},
|
|
103174
|
+
{
|
|
103175
|
+
"description": "The ANSI color bright black, which codes `90` and `100` draw.",
|
|
103176
|
+
"name": "--log-ansi-bright-black"
|
|
103177
|
+
},
|
|
103178
|
+
{
|
|
103179
|
+
"description": "The ANSI color bright blue, which codes `94` and `104` draw.",
|
|
103180
|
+
"name": "--log-ansi-bright-blue"
|
|
103181
|
+
},
|
|
103182
|
+
{
|
|
103183
|
+
"description": "The ANSI color bright cyan, which codes `96` and `106` draw.",
|
|
103184
|
+
"name": "--log-ansi-bright-cyan"
|
|
103185
|
+
},
|
|
103186
|
+
{
|
|
103187
|
+
"description": "The ANSI color bright green, which codes `92` and `102` draw.",
|
|
103188
|
+
"name": "--log-ansi-bright-green"
|
|
103189
|
+
},
|
|
103190
|
+
{
|
|
103191
|
+
"description": "The ANSI color bright magenta, which codes `95` and `105` draw.",
|
|
103192
|
+
"name": "--log-ansi-bright-magenta"
|
|
103193
|
+
},
|
|
103194
|
+
{
|
|
103195
|
+
"description": "The ANSI color bright red, which codes `91` and `101` draw.",
|
|
103196
|
+
"name": "--log-ansi-bright-red"
|
|
103197
|
+
},
|
|
103198
|
+
{
|
|
103199
|
+
"description": "The ANSI color bright white, which codes `97` and `107` draw.",
|
|
103200
|
+
"name": "--log-ansi-bright-white"
|
|
103201
|
+
},
|
|
103202
|
+
{
|
|
103203
|
+
"description": "The ANSI color bright yellow, which codes `93` and `103` draw.",
|
|
103204
|
+
"name": "--log-ansi-bright-yellow"
|
|
103205
|
+
},
|
|
103206
|
+
{
|
|
103207
|
+
"description": "The ANSI color cyan, which codes `36` and `46` draw.",
|
|
103208
|
+
"name": "--log-ansi-cyan"
|
|
103209
|
+
},
|
|
103210
|
+
{
|
|
103211
|
+
"description": "The text color a run takes where ANSI swaps the colors and named none. Defaults to the log's own text color on the styled tier.",
|
|
103212
|
+
"name": "--log-ansi-foreground"
|
|
103213
|
+
},
|
|
103214
|
+
{
|
|
103215
|
+
"description": "The ANSI color green, which codes `32` and `42` draw.",
|
|
103216
|
+
"name": "--log-ansi-green"
|
|
103217
|
+
},
|
|
103218
|
+
{
|
|
103219
|
+
"description": "The ANSI color magenta, which codes `35` and `45` draw.",
|
|
103220
|
+
"name": "--log-ansi-magenta"
|
|
103221
|
+
},
|
|
103222
|
+
{
|
|
103223
|
+
"description": "The ANSI color red, which codes `31` and `41` draw.",
|
|
103224
|
+
"name": "--log-ansi-red"
|
|
103225
|
+
},
|
|
103226
|
+
{
|
|
103227
|
+
"description": "The ANSI color white, which codes `37` and `47` draw.",
|
|
103228
|
+
"name": "--log-ansi-white"
|
|
103229
|
+
},
|
|
103230
|
+
{
|
|
103231
|
+
"description": "The ANSI color yellow, which codes `33` and `43` draw.",
|
|
103232
|
+
"name": "--log-ansi-yellow"
|
|
103233
|
+
},
|
|
103234
|
+
{
|
|
103235
|
+
"description": "Written on the `log`: how many digits the largest line number has, while `line-numbers` is set, so a stylesheet can size the column of numbers.",
|
|
103236
|
+
"name": "--log-digits"
|
|
103237
|
+
}
|
|
103238
|
+
],
|
|
103239
|
+
"cssParts": [
|
|
103240
|
+
{
|
|
103241
|
+
"description": "The space the rows below the drawn ones would take. Only for lines drawn from data.",
|
|
103242
|
+
"name": "after"
|
|
103243
|
+
},
|
|
103244
|
+
{
|
|
103245
|
+
"description": "The space the rows above the drawn ones would take. Only for lines drawn from data.",
|
|
103246
|
+
"name": "before"
|
|
103247
|
+
},
|
|
103248
|
+
{
|
|
103249
|
+
"description": "The line above the log that says how many earlier lines `limit` let go.",
|
|
103250
|
+
"name": "dropped"
|
|
103251
|
+
},
|
|
103252
|
+
{
|
|
103253
|
+
"description": "Shown when the log has no lines.",
|
|
103254
|
+
"name": "empty"
|
|
103255
|
+
},
|
|
103256
|
+
{
|
|
103257
|
+
"description": "Not drawn: a group drawn from data stands for its heading, and its lines are rows beside it.",
|
|
103258
|
+
"name": "group-content"
|
|
103259
|
+
},
|
|
103260
|
+
{
|
|
103261
|
+
"description": "How long a step drawn from `groups` took.",
|
|
103262
|
+
"name": "group-duration"
|
|
103263
|
+
},
|
|
103264
|
+
{
|
|
103265
|
+
"description": "The heading of a step drawn from `groups`.",
|
|
103266
|
+
"name": "group-heading"
|
|
103267
|
+
},
|
|
103268
|
+
{
|
|
103269
|
+
"description": "The caret of a step drawn from `groups`.",
|
|
103270
|
+
"name": "group-mark"
|
|
103271
|
+
},
|
|
103272
|
+
{
|
|
103273
|
+
"description": "The status mark of a step drawn from `groups`.",
|
|
103274
|
+
"name": "group-status"
|
|
103275
|
+
},
|
|
103276
|
+
{
|
|
103277
|
+
"description": "The button that opens and closes a step drawn from `groups`.",
|
|
103278
|
+
"name": "group-summary"
|
|
103279
|
+
},
|
|
103280
|
+
{
|
|
103281
|
+
"description": "The button of a step drawn from `groups` that is `done`.",
|
|
103282
|
+
"name": "group-summary-done"
|
|
103283
|
+
},
|
|
103284
|
+
{
|
|
103285
|
+
"description": "The button of a step drawn from `groups` that `failed`.",
|
|
103286
|
+
"name": "group-summary-failed"
|
|
103287
|
+
},
|
|
103288
|
+
{
|
|
103289
|
+
"description": "The button of a step drawn from `groups` that is `pending`.",
|
|
103290
|
+
"name": "group-summary-pending"
|
|
103291
|
+
},
|
|
103292
|
+
{
|
|
103293
|
+
"description": "The button of a step drawn from `groups` that is `running`.",
|
|
103294
|
+
"name": "group-summary-running"
|
|
103295
|
+
},
|
|
103296
|
+
{
|
|
103297
|
+
"description": "The button of a step drawn from `groups` that was `skipped`.",
|
|
103298
|
+
"name": "group-summary-skipped"
|
|
103299
|
+
},
|
|
103300
|
+
{
|
|
103301
|
+
"description": "The row of a line drawn from data.",
|
|
103302
|
+
"name": "line"
|
|
103303
|
+
},
|
|
103304
|
+
{
|
|
103305
|
+
"description": "The row of a line drawn from data at `debug`.",
|
|
103306
|
+
"name": "line-debug"
|
|
103307
|
+
},
|
|
103308
|
+
{
|
|
103309
|
+
"description": "The row of a line drawn from data at `error`.",
|
|
103310
|
+
"name": "line-error"
|
|
103311
|
+
},
|
|
103312
|
+
{
|
|
103313
|
+
"description": "The row of a line drawn from data that `mark-lines` names.",
|
|
103314
|
+
"name": "line-marked"
|
|
103315
|
+
},
|
|
103316
|
+
{
|
|
103317
|
+
"description": "Text in a line drawn from data that matches `query`.",
|
|
103318
|
+
"name": "line-match"
|
|
103319
|
+
},
|
|
103320
|
+
{
|
|
103321
|
+
"description": "The number of a line drawn from data.",
|
|
103322
|
+
"name": "line-number"
|
|
103323
|
+
},
|
|
103324
|
+
{
|
|
103325
|
+
"description": "A stretch of a line drawn from data in an ANSI style.",
|
|
103326
|
+
"name": "line-run"
|
|
103327
|
+
},
|
|
103328
|
+
{
|
|
103329
|
+
"description": "A run drawn bold.",
|
|
103330
|
+
"name": "line-run-bold"
|
|
103331
|
+
},
|
|
103332
|
+
{
|
|
103333
|
+
"description": "A run drawn faint.",
|
|
103334
|
+
"name": "line-run-dim"
|
|
103335
|
+
},
|
|
103336
|
+
{
|
|
103337
|
+
"description": "A run drawn italic.",
|
|
103338
|
+
"name": "line-run-italic"
|
|
103339
|
+
},
|
|
103340
|
+
{
|
|
103341
|
+
"description": "A run drawn struck through.",
|
|
103342
|
+
"name": "line-run-strike"
|
|
103343
|
+
},
|
|
103344
|
+
{
|
|
103345
|
+
"description": "A run drawn underlined.",
|
|
103346
|
+
"name": "line-run-underline"
|
|
103347
|
+
},
|
|
103348
|
+
{
|
|
103349
|
+
"description": "The text of a line drawn from data.",
|
|
103350
|
+
"name": "line-text"
|
|
103351
|
+
},
|
|
103352
|
+
{
|
|
103353
|
+
"description": "The time of a line drawn from data.",
|
|
103354
|
+
"name": "line-time"
|
|
103355
|
+
},
|
|
103356
|
+
{
|
|
103357
|
+
"description": "The row of a line drawn from data at `warn`.",
|
|
103358
|
+
"name": "line-warn"
|
|
103359
|
+
},
|
|
103360
|
+
{
|
|
103361
|
+
"description": "The region where screen readers hear errors, finished steps, and the end of the run.",
|
|
103362
|
+
"name": "live"
|
|
103363
|
+
},
|
|
103364
|
+
{
|
|
103365
|
+
"description": "Shown while `loading` is set.",
|
|
103366
|
+
"name": "loading"
|
|
103367
|
+
},
|
|
103368
|
+
{
|
|
103369
|
+
"description": "The lines, which scroll. On this tier, it needs only a block size.",
|
|
103370
|
+
"name": "log"
|
|
103371
|
+
},
|
|
103372
|
+
{
|
|
103373
|
+
"description": "The control shown while the reader is scrolled away from the newest line.",
|
|
103374
|
+
"name": "resume"
|
|
103375
|
+
},
|
|
103376
|
+
{
|
|
103377
|
+
"description": "The button the `resume` region shows when nothing is slotted into it.",
|
|
103378
|
+
"name": "resume-button"
|
|
103379
|
+
},
|
|
103380
|
+
{
|
|
103381
|
+
"description": "The arrow on the default `resume-button`.",
|
|
103382
|
+
"name": "resume-mark"
|
|
103383
|
+
},
|
|
103384
|
+
{
|
|
103385
|
+
"description": "The wrapper around one row drawn from data, a line or a group's heading.",
|
|
103386
|
+
"name": "row"
|
|
103387
|
+
},
|
|
103388
|
+
{
|
|
103389
|
+
"description": "The `toolbar` slot, above the log.",
|
|
103390
|
+
"name": "toolbar"
|
|
103391
|
+
}
|
|
103392
|
+
],
|
|
103393
|
+
"slots": [
|
|
103394
|
+
{
|
|
103395
|
+
"description": "The lines, as `Log.Line` and `Log.Group` elements.",
|
|
103396
|
+
"name": ""
|
|
103397
|
+
},
|
|
103398
|
+
{
|
|
103399
|
+
"description": "The control that returns to the newest line, shown while the reader is scrolled away. Defaults to a button named by `resume-label`.",
|
|
103400
|
+
"name": "resume"
|
|
103401
|
+
},
|
|
103402
|
+
{
|
|
103403
|
+
"description": "Controls above the log, such as a search field or a button that wraps lines.",
|
|
103404
|
+
"name": "toolbar"
|
|
103405
|
+
}
|
|
103406
|
+
],
|
|
103407
|
+
"members": [
|
|
103408
|
+
{
|
|
103409
|
+
"kind": "field",
|
|
103410
|
+
"name": "markRules",
|
|
103411
|
+
"type": {
|
|
103412
|
+
"text": "[SCROLLER_RULE, VIRTUAL_RULE]"
|
|
103413
|
+
},
|
|
103414
|
+
"privacy": "protected",
|
|
103415
|
+
"static": true,
|
|
103416
|
+
"default": "[SCROLLER_RULE, VIRTUAL_RULE]",
|
|
103417
|
+
"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.",
|
|
103418
|
+
"inheritedFrom": {
|
|
103419
|
+
"name": "HelixElement",
|
|
103420
|
+
"module": "src/helix-element/helix-element.ts"
|
|
103421
|
+
}
|
|
103422
|
+
},
|
|
103423
|
+
{
|
|
103424
|
+
"kind": "field",
|
|
103425
|
+
"name": "words",
|
|
103426
|
+
"type": {
|
|
103427
|
+
"text": "string"
|
|
103428
|
+
},
|
|
103429
|
+
"static": true,
|
|
103430
|
+
"default": "'helix-log'",
|
|
103431
|
+
"description": "The key this family's words are registered under, its styled tag:\n`registerWords('de', { 'helix-log': { resumeLabel: 'Zum Ende' } })`.",
|
|
103432
|
+
"inheritedFrom": {
|
|
103433
|
+
"name": "MixinCollection",
|
|
103434
|
+
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
103435
|
+
}
|
|
103436
|
+
},
|
|
103437
|
+
{
|
|
103438
|
+
"kind": "field",
|
|
103439
|
+
"name": "ESTIMATE",
|
|
103440
|
+
"type": {
|
|
103441
|
+
"text": "number"
|
|
103442
|
+
},
|
|
103443
|
+
"static": true,
|
|
103444
|
+
"readonly": true,
|
|
103445
|
+
"default": "20",
|
|
103446
|
+
"description": "How tall a row is assumed to be before one has been drawn, in pixels."
|
|
103447
|
+
},
|
|
103448
|
+
{
|
|
103449
|
+
"kind": "field",
|
|
103450
|
+
"name": "defaultPinned",
|
|
103451
|
+
"type": {
|
|
103452
|
+
"text": "boolean"
|
|
103453
|
+
},
|
|
103454
|
+
"default": "true",
|
|
103455
|
+
"description": "Whether the log opens following its newest line, when `pinned` is not set.\n`default-pinned=\"false\"` opens it where it starts.",
|
|
103456
|
+
"attribute": "default-pinned"
|
|
103457
|
+
},
|
|
103458
|
+
{
|
|
103459
|
+
"kind": "field",
|
|
103460
|
+
"name": "done",
|
|
103461
|
+
"type": {
|
|
103462
|
+
"text": "boolean"
|
|
103463
|
+
},
|
|
103464
|
+
"description": "Whether the run is over, which a screen reader is told once.\n\nSet it when output you `write` is complete. A `source` sets it when the\nstream ends.",
|
|
103465
|
+
"attribute": "done"
|
|
103466
|
+
},
|
|
103467
|
+
{
|
|
103468
|
+
"kind": "field",
|
|
103469
|
+
"name": "doneLabel",
|
|
103470
|
+
"type": {
|
|
103471
|
+
"text": "string"
|
|
103472
|
+
},
|
|
103473
|
+
"default": "'Finished'",
|
|
103474
|
+
"description": "What a screen reader hears when the run is over.",
|
|
103475
|
+
"attribute": "done-label",
|
|
103476
|
+
"helix": {
|
|
103477
|
+
"words": true
|
|
103478
|
+
}
|
|
103479
|
+
},
|
|
103480
|
+
{
|
|
103481
|
+
"kind": "field",
|
|
103482
|
+
"name": "droppedLabel",
|
|
103483
|
+
"type": {
|
|
103484
|
+
"text": "string"
|
|
103485
|
+
},
|
|
103486
|
+
"default": "'{count, plural, one {# earlier line is} other {# earlier lines are}} not kept'",
|
|
103487
|
+
"description": "What the line above the log says once `limit` has let lines go. `{count}` is how many.",
|
|
103488
|
+
"attribute": "dropped-label",
|
|
103489
|
+
"helix": {
|
|
103490
|
+
"words": true
|
|
103491
|
+
}
|
|
103492
|
+
},
|
|
103493
|
+
{
|
|
103494
|
+
"kind": "field",
|
|
103495
|
+
"name": "emptyText",
|
|
103496
|
+
"type": {
|
|
103497
|
+
"text": "string"
|
|
103498
|
+
},
|
|
103499
|
+
"default": "'No output yet'",
|
|
103500
|
+
"description": "The text shown and announced when the log has no lines.",
|
|
103501
|
+
"attribute": "empty-text",
|
|
103502
|
+
"helix": {
|
|
103503
|
+
"words": true
|
|
103504
|
+
},
|
|
103505
|
+
"inheritedFrom": {
|
|
103506
|
+
"name": "MixinCollection",
|
|
103507
|
+
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
103508
|
+
}
|
|
103509
|
+
},
|
|
103510
|
+
{
|
|
103511
|
+
"kind": "field",
|
|
103512
|
+
"name": "errorLabel",
|
|
103513
|
+
"type": {
|
|
103514
|
+
"text": "string"
|
|
103515
|
+
},
|
|
103516
|
+
"default": "'{count, plural, one {Error} other {# errors}}: {text}'",
|
|
103517
|
+
"description": "What a screen reader hears when lines at `error` arrive. `{count}` is how\nmany arrived together and `{text}` is the first of them.",
|
|
103518
|
+
"attribute": "error-label",
|
|
103519
|
+
"helix": {
|
|
103520
|
+
"words": true
|
|
103521
|
+
}
|
|
103522
|
+
},
|
|
103523
|
+
{
|
|
103524
|
+
"kind": "field",
|
|
103525
|
+
"name": "fallbackLabel",
|
|
103526
|
+
"type": {
|
|
103527
|
+
"text": "string"
|
|
103528
|
+
},
|
|
103529
|
+
"default": "'Log'",
|
|
103530
|
+
"description": "The log's name, read by screen readers, where `label` is empty.",
|
|
103531
|
+
"attribute": "fallback-label",
|
|
103532
|
+
"helix": {
|
|
103533
|
+
"words": true
|
|
103534
|
+
}
|
|
103535
|
+
},
|
|
103536
|
+
{
|
|
103537
|
+
"kind": "field",
|
|
103538
|
+
"name": "groupLabel",
|
|
103539
|
+
"type": {
|
|
103540
|
+
"text": "string"
|
|
103541
|
+
},
|
|
103542
|
+
"default": "'{status, select, failed {{heading} failed} other {{heading} finished}}'",
|
|
103543
|
+
"description": "What a screen reader hears when a step finishes or fails. `{heading}` is\nthe step's heading and `{status}` is `done` or `failed`.",
|
|
103544
|
+
"attribute": "group-label",
|
|
103545
|
+
"helix": {
|
|
103546
|
+
"words": true
|
|
103547
|
+
}
|
|
103548
|
+
},
|
|
103549
|
+
{
|
|
103550
|
+
"kind": "field",
|
|
103551
|
+
"name": "groups",
|
|
103552
|
+
"type": {
|
|
103553
|
+
"text": "readonly LogGroup[]"
|
|
103554
|
+
},
|
|
103555
|
+
"default": "[]",
|
|
103556
|
+
"description": "The steps the lines from data name in `group`. A step stands where its\nfirst line is, and one with no line yet stands at the end.\n\nReplaced rather than mutated, as `lines` is: a step finishing is a new\narray with its `status` changed."
|
|
103557
|
+
},
|
|
103558
|
+
{
|
|
103559
|
+
"kind": "field",
|
|
103560
|
+
"name": "label",
|
|
103561
|
+
"type": {
|
|
103562
|
+
"text": "string"
|
|
103563
|
+
},
|
|
103564
|
+
"default": "''",
|
|
103565
|
+
"description": "The log's name, read by screen readers.",
|
|
103566
|
+
"attribute": "label"
|
|
103567
|
+
},
|
|
103568
|
+
{
|
|
103569
|
+
"kind": "field",
|
|
103570
|
+
"name": "limit",
|
|
103571
|
+
"type": {
|
|
103572
|
+
"text": "number"
|
|
103573
|
+
},
|
|
103574
|
+
"default": "0",
|
|
103575
|
+
"description": "The most lines kept, or 0 to keep them all. Past it the oldest lines are\nlet go, and the line above the log says how many.",
|
|
103576
|
+
"attribute": "limit"
|
|
103577
|
+
},
|
|
103578
|
+
{
|
|
103579
|
+
"kind": "field",
|
|
103580
|
+
"name": "lineHref",
|
|
103581
|
+
"type": {
|
|
103582
|
+
"text": "string"
|
|
103583
|
+
},
|
|
103584
|
+
"default": "''",
|
|
103585
|
+
"description": "A link for each line number, with `{n}` where the number goes, such as\n`#L{n}`. Empty leaves the numbers as text.",
|
|
103586
|
+
"attribute": "line-href"
|
|
103587
|
+
},
|
|
103588
|
+
{
|
|
103589
|
+
"kind": "field",
|
|
103590
|
+
"name": "lineLabel",
|
|
103591
|
+
"type": {
|
|
103592
|
+
"text": "string"
|
|
103593
|
+
},
|
|
103594
|
+
"default": "'Line {number}'",
|
|
103595
|
+
"description": "What a screen reader hears for the link on a line's number, handed to each\nline the log draws. `{number}` is the number.",
|
|
103596
|
+
"attribute": "line-label",
|
|
103597
|
+
"helix": {
|
|
103598
|
+
"words": true
|
|
103599
|
+
}
|
|
103600
|
+
},
|
|
103601
|
+
{
|
|
103602
|
+
"kind": "field",
|
|
103603
|
+
"name": "lineNumbers",
|
|
103604
|
+
"type": {
|
|
103605
|
+
"text": "boolean"
|
|
103606
|
+
},
|
|
103607
|
+
"default": "false",
|
|
103608
|
+
"description": "Whether each line shows its number.",
|
|
103609
|
+
"attribute": "line-numbers"
|
|
103610
|
+
},
|
|
103611
|
+
{
|
|
103612
|
+
"kind": "field",
|
|
103613
|
+
"name": "lines",
|
|
103614
|
+
"type": {
|
|
103615
|
+
"text": "readonly LogLine[]"
|
|
103616
|
+
},
|
|
103617
|
+
"description": "The lines as data. Reading it gives every line kept, oldest first, with\nthe line still being written left out.\n\nReplaced rather than mutated: setting it starts the log over with these\nlines, and `write` adds to them. Set it or write children, not both."
|
|
103618
|
+
},
|
|
103619
|
+
{
|
|
103620
|
+
"kind": "field",
|
|
103621
|
+
"name": "markLines",
|
|
103622
|
+
"type": {
|
|
103623
|
+
"text": "string"
|
|
103624
|
+
},
|
|
103625
|
+
"default": "''",
|
|
103626
|
+
"description": "Lines to mark, as numbers and ranges such as `12, 40-44`.",
|
|
103627
|
+
"attribute": "mark-lines"
|
|
103628
|
+
},
|
|
103629
|
+
{
|
|
103630
|
+
"kind": "field",
|
|
103631
|
+
"name": "matchesLabel",
|
|
103632
|
+
"type": {
|
|
103633
|
+
"text": "string"
|
|
103634
|
+
},
|
|
103635
|
+
"default": "'{count, plural, =0 {No lines match} one {# line matches} other {# lines match}}'",
|
|
103636
|
+
"description": "What a screen reader hears when `query` changes. `{count}` is how many lines match.",
|
|
103637
|
+
"attribute": "matches-label",
|
|
103638
|
+
"helix": {
|
|
103639
|
+
"words": true
|
|
103640
|
+
}
|
|
103641
|
+
},
|
|
103642
|
+
{
|
|
103643
|
+
"kind": "field",
|
|
103644
|
+
"name": "parse",
|
|
103645
|
+
"type": {
|
|
103646
|
+
"text": "LogParser | undefined"
|
|
103647
|
+
},
|
|
103648
|
+
"description": "Reads each finished line of written text: return the fields to set, such\nas `level` or `group`, or `null` to drop the line. Lines in `lines` are\ntaken as they are."
|
|
103649
|
+
},
|
|
103650
|
+
{
|
|
103651
|
+
"kind": "field",
|
|
103652
|
+
"name": "pinned",
|
|
103653
|
+
"type": {
|
|
103654
|
+
"text": "boolean"
|
|
103655
|
+
},
|
|
103656
|
+
"description": "Whether the log follows its newest line.\n\nThe reader's scrolling asks first: `helix-before-pin` is cancelable, so a\nconsumer refusing it takes the decision and assigns their own value. Not\nreflected, for the reason `Chat` gives at its own `pinned`: a default of\ntrue would write the attribute on upgrade.",
|
|
103657
|
+
"attribute": "pinned"
|
|
103658
|
+
},
|
|
103659
|
+
{
|
|
103660
|
+
"kind": "field",
|
|
103661
|
+
"name": "query",
|
|
103662
|
+
"type": {
|
|
103663
|
+
"text": "string"
|
|
103664
|
+
},
|
|
103665
|
+
"default": "''",
|
|
103666
|
+
"description": "Text a line has to hold to be shown, ignoring case. Empty shows every line.",
|
|
103667
|
+
"attribute": "query"
|
|
103668
|
+
},
|
|
103669
|
+
{
|
|
103670
|
+
"kind": "field",
|
|
103671
|
+
"name": "resumeLabel",
|
|
103672
|
+
"type": {
|
|
103673
|
+
"text": "string"
|
|
103674
|
+
},
|
|
103675
|
+
"default": "'Jump to latest'",
|
|
103676
|
+
"description": "The words on the button that returns to the newest line, where `resume` is empty.",
|
|
103677
|
+
"attribute": "resume-label",
|
|
103678
|
+
"helix": {
|
|
103679
|
+
"words": true
|
|
103680
|
+
}
|
|
103681
|
+
},
|
|
103682
|
+
{
|
|
103683
|
+
"kind": "field",
|
|
103684
|
+
"name": "source",
|
|
103685
|
+
"type": {
|
|
103686
|
+
"text": "LogSource | null"
|
|
103687
|
+
},
|
|
103688
|
+
"description": "Text to read as it arrives, to the end: a `ReadableStream` of text or\nbytes, such as a `fetch` response's body, or an async iterable. Bytes are\nread as UTF-8. The log sets `done` when it ends, and a new source stops\nreading the last one."
|
|
103689
|
+
},
|
|
103690
|
+
{
|
|
103691
|
+
"kind": "field",
|
|
103692
|
+
"name": "threshold",
|
|
103693
|
+
"type": {
|
|
103694
|
+
"text": "number"
|
|
103695
|
+
},
|
|
103696
|
+
"default": "48",
|
|
103697
|
+
"description": "How near the newest line still counts as being at it, in pixels.",
|
|
103698
|
+
"attribute": "threshold"
|
|
103699
|
+
},
|
|
103700
|
+
{
|
|
103701
|
+
"kind": "field",
|
|
103702
|
+
"name": "timestamps",
|
|
103703
|
+
"type": {
|
|
103704
|
+
"text": "'absolute' | 'relative' | undefined"
|
|
103705
|
+
},
|
|
103706
|
+
"description": "How each line shows its `at`: `absolute` on the clock, `relative` as the\ntime since the first line. Absent shows no time.",
|
|
103707
|
+
"attribute": "timestamps"
|
|
103708
|
+
},
|
|
103709
|
+
{
|
|
103710
|
+
"kind": "field",
|
|
103711
|
+
"name": "wrap",
|
|
103712
|
+
"type": {
|
|
103713
|
+
"text": "boolean"
|
|
103714
|
+
},
|
|
103715
|
+
"default": "false",
|
|
103716
|
+
"description": "Whether a line longer than the box wraps onto the next row. Otherwise the log scrolls sideways.",
|
|
103717
|
+
"attribute": "wrap",
|
|
103718
|
+
"reflects": true
|
|
103719
|
+
},
|
|
103720
|
+
{
|
|
103721
|
+
"kind": "field",
|
|
103722
|
+
"name": "pinnedState",
|
|
103723
|
+
"type": {
|
|
103724
|
+
"text": "boolean | undefined"
|
|
103725
|
+
},
|
|
103726
|
+
"privacy": "private",
|
|
103727
|
+
"default": "undefined"
|
|
103728
|
+
},
|
|
103729
|
+
{
|
|
103730
|
+
"kind": "field",
|
|
103731
|
+
"name": "doneState",
|
|
103732
|
+
"type": {
|
|
103733
|
+
"text": "boolean | undefined"
|
|
103734
|
+
},
|
|
103735
|
+
"privacy": "private",
|
|
103736
|
+
"default": "undefined"
|
|
103737
|
+
},
|
|
103738
|
+
{
|
|
103739
|
+
"kind": "field",
|
|
103740
|
+
"name": "reading",
|
|
103741
|
+
"type": {
|
|
103742
|
+
"text": "boolean"
|
|
103743
|
+
},
|
|
103744
|
+
"privacy": "private",
|
|
103745
|
+
"default": "false",
|
|
103746
|
+
"description": "Whether a source is being read, which the log says with `aria-busy`."
|
|
103747
|
+
},
|
|
103748
|
+
{
|
|
103749
|
+
"kind": "field",
|
|
103750
|
+
"name": "announcement",
|
|
103751
|
+
"type": {
|
|
103752
|
+
"text": "string"
|
|
103753
|
+
},
|
|
103754
|
+
"privacy": "private",
|
|
103755
|
+
"default": "''",
|
|
103756
|
+
"description": "The last thing said, and how many times something has been."
|
|
103757
|
+
},
|
|
103758
|
+
{
|
|
103759
|
+
"kind": "field",
|
|
103760
|
+
"name": "said",
|
|
103761
|
+
"type": {
|
|
103762
|
+
"text": "number"
|
|
103763
|
+
},
|
|
103764
|
+
"privacy": "private",
|
|
103765
|
+
"default": "0"
|
|
103766
|
+
},
|
|
103767
|
+
{
|
|
103768
|
+
"kind": "field",
|
|
103769
|
+
"name": "buffer",
|
|
103770
|
+
"privacy": "private",
|
|
103771
|
+
"readonly": true,
|
|
103772
|
+
"default": "new LogBuffer()",
|
|
103773
|
+
"description": "The text written and handed over as data."
|
|
103774
|
+
},
|
|
103775
|
+
{
|
|
103776
|
+
"kind": "field",
|
|
103777
|
+
"name": "sourceValue",
|
|
103778
|
+
"type": {
|
|
103779
|
+
"text": "LogSource | null"
|
|
103780
|
+
},
|
|
103781
|
+
"privacy": "private",
|
|
103782
|
+
"default": "null"
|
|
103783
|
+
},
|
|
103784
|
+
{
|
|
103785
|
+
"kind": "field",
|
|
103786
|
+
"name": "readToken",
|
|
103787
|
+
"type": {
|
|
103788
|
+
"text": "number"
|
|
103789
|
+
},
|
|
103790
|
+
"privacy": "private",
|
|
103791
|
+
"default": "0",
|
|
103792
|
+
"description": "Which read of a source is current, so an older one stops writing."
|
|
103793
|
+
},
|
|
103794
|
+
{
|
|
103795
|
+
"kind": "field",
|
|
103796
|
+
"name": "stopReading",
|
|
103797
|
+
"type": {
|
|
103798
|
+
"text": "(() => void) | undefined"
|
|
103799
|
+
},
|
|
103800
|
+
"privacy": "private",
|
|
103801
|
+
"default": "undefined",
|
|
103802
|
+
"description": "Stops the read in progress."
|
|
103803
|
+
},
|
|
103804
|
+
{
|
|
103805
|
+
"kind": "field",
|
|
103806
|
+
"name": "opened",
|
|
103807
|
+
"privacy": "private",
|
|
103808
|
+
"readonly": true,
|
|
103809
|
+
"default": "new Map<string, boolean>()",
|
|
103810
|
+
"description": "Whether each group drawn from data is open, from the first time it was seen."
|
|
103811
|
+
},
|
|
103812
|
+
{
|
|
103813
|
+
"kind": "field",
|
|
103814
|
+
"name": "view",
|
|
103815
|
+
"type": {
|
|
103816
|
+
"text": "LogRows"
|
|
103817
|
+
},
|
|
103818
|
+
"privacy": "private",
|
|
103819
|
+
"default": "{ matched: 0, rows: [] }",
|
|
103820
|
+
"description": "The rows drawn from data, worked out before each render."
|
|
103821
|
+
},
|
|
103822
|
+
{
|
|
103823
|
+
"kind": "field",
|
|
103824
|
+
"name": "fresh",
|
|
103825
|
+
"type": {
|
|
103826
|
+
"text": "boolean"
|
|
103827
|
+
},
|
|
103828
|
+
"privacy": "private",
|
|
103829
|
+
"default": "false",
|
|
103830
|
+
"description": "Whether the lines were replaced, so measurements no longer name the same rows."
|
|
103831
|
+
},
|
|
103832
|
+
{
|
|
103833
|
+
"kind": "field",
|
|
103834
|
+
"name": "droppedBefore",
|
|
103835
|
+
"type": {
|
|
103836
|
+
"text": "number"
|
|
103837
|
+
},
|
|
103838
|
+
"privacy": "private",
|
|
103839
|
+
"default": "0",
|
|
103840
|
+
"description": "How many lines `limit` had let go at the last render."
|
|
103841
|
+
},
|
|
103842
|
+
{
|
|
103843
|
+
"kind": "field",
|
|
103844
|
+
"name": "owed",
|
|
103845
|
+
"type": {
|
|
103846
|
+
"text": "number"
|
|
103847
|
+
},
|
|
103848
|
+
"privacy": "private",
|
|
103849
|
+
"default": "0",
|
|
103850
|
+
"description": "Scroll offset the rows let go from the top took with them, owed back to a reader who is not following."
|
|
103851
|
+
},
|
|
103852
|
+
{
|
|
103853
|
+
"kind": "field",
|
|
103854
|
+
"name": "childLines",
|
|
103855
|
+
"type": {
|
|
103856
|
+
"text": "HelixHeadlessLogLine[]"
|
|
103857
|
+
},
|
|
103858
|
+
"privacy": "private",
|
|
103859
|
+
"default": "[]",
|
|
103860
|
+
"description": "The lines written as children, in order through every group, read on each change."
|
|
103861
|
+
},
|
|
103862
|
+
{
|
|
103863
|
+
"kind": "field",
|
|
103864
|
+
"name": "childGroups",
|
|
103865
|
+
"type": {
|
|
103866
|
+
"text": "HelixHeadlessLogGroup[]"
|
|
103867
|
+
},
|
|
103868
|
+
"privacy": "private",
|
|
103869
|
+
"default": "[]",
|
|
103870
|
+
"description": "The groups written as children, in order."
|
|
103871
|
+
},
|
|
103872
|
+
{
|
|
103873
|
+
"kind": "field",
|
|
103874
|
+
"name": "watcher",
|
|
103875
|
+
"type": {
|
|
103876
|
+
"text": "MutationObserver | undefined"
|
|
103877
|
+
},
|
|
103878
|
+
"privacy": "private",
|
|
103879
|
+
"default": "undefined",
|
|
103880
|
+
"description": "Watches the children and their groups for lines arriving and steps changing status."
|
|
103881
|
+
},
|
|
103882
|
+
{
|
|
103883
|
+
"kind": "field",
|
|
103884
|
+
"name": "grower",
|
|
103885
|
+
"type": {
|
|
103886
|
+
"text": "ResizeObserver | undefined"
|
|
103887
|
+
},
|
|
103888
|
+
"privacy": "private",
|
|
103889
|
+
"default": "undefined",
|
|
103890
|
+
"description": "Watches the log's box for size, which scrolling does not report."
|
|
103891
|
+
},
|
|
103892
|
+
{
|
|
103893
|
+
"kind": "field",
|
|
103894
|
+
"name": "stuckAt",
|
|
103895
|
+
"type": {
|
|
103896
|
+
"text": "number"
|
|
103897
|
+
},
|
|
103898
|
+
"privacy": "private",
|
|
103899
|
+
"default": "-1",
|
|
103900
|
+
"description": "The scroll offset this element last set, which the reader has not moved from."
|
|
103901
|
+
},
|
|
103902
|
+
{
|
|
103903
|
+
"kind": "field",
|
|
103904
|
+
"name": "opening",
|
|
103905
|
+
"type": {
|
|
103906
|
+
"text": "boolean"
|
|
103907
|
+
},
|
|
103908
|
+
"privacy": "private",
|
|
103909
|
+
"default": "true",
|
|
103910
|
+
"description": "Until the first frame, what is in the log is what it opened with."
|
|
103911
|
+
},
|
|
103912
|
+
{
|
|
103913
|
+
"kind": "field",
|
|
103914
|
+
"name": "heard",
|
|
103915
|
+
"type": {
|
|
103916
|
+
"text": "Heard | undefined"
|
|
103917
|
+
},
|
|
103918
|
+
"privacy": "private",
|
|
103919
|
+
"default": "undefined",
|
|
103920
|
+
"description": "What the status region compared against last time."
|
|
103921
|
+
},
|
|
103922
|
+
{
|
|
103923
|
+
"kind": "field",
|
|
103924
|
+
"name": "virtualize",
|
|
103925
|
+
"privacy": "private",
|
|
103926
|
+
"readonly": true,
|
|
103927
|
+
"default": "new VirtualizeController(this, { anchor: () => !this.pinned, container: () => (this.fed ? this.log : null), count: () => this.view.rows.length, estimate: () => HelixHeadlessLog.ESTIMATE, measured: () => this.wrap, rows: () => (this.fed ? this.drawn() : []), })"
|
|
103928
|
+
},
|
|
103929
|
+
{
|
|
103930
|
+
"kind": "field",
|
|
103931
|
+
"name": "fed",
|
|
103932
|
+
"type": {
|
|
103933
|
+
"text": "boolean"
|
|
103934
|
+
},
|
|
103935
|
+
"privacy": "private",
|
|
103936
|
+
"description": "Whether the lines are data rather than children.",
|
|
103937
|
+
"readonly": true
|
|
103938
|
+
},
|
|
103939
|
+
{
|
|
103940
|
+
"kind": "field",
|
|
103941
|
+
"name": "log",
|
|
103942
|
+
"type": {
|
|
103943
|
+
"text": "HTMLElement | null"
|
|
103944
|
+
},
|
|
103945
|
+
"privacy": "private",
|
|
103946
|
+
"description": "The element that scrolls, once there is one.",
|
|
103947
|
+
"readonly": true
|
|
103948
|
+
},
|
|
103949
|
+
{
|
|
103950
|
+
"kind": "field",
|
|
103951
|
+
"name": "text",
|
|
103952
|
+
"type": {
|
|
103953
|
+
"text": "string"
|
|
103954
|
+
},
|
|
103955
|
+
"description": "Every line kept, as plain text with the escape codes taken out, one to a\nrow: what a download or a copy of the log should hold.",
|
|
103956
|
+
"readonly": true
|
|
103957
|
+
},
|
|
103958
|
+
{
|
|
103959
|
+
"kind": "method",
|
|
103960
|
+
"name": "write",
|
|
103961
|
+
"return": {
|
|
103962
|
+
"type": {
|
|
103963
|
+
"text": "void"
|
|
103964
|
+
}
|
|
103965
|
+
},
|
|
103966
|
+
"parameters": [
|
|
103967
|
+
{
|
|
103968
|
+
"name": "chunk",
|
|
103969
|
+
"type": {
|
|
103970
|
+
"text": "string"
|
|
103971
|
+
}
|
|
103972
|
+
}
|
|
103973
|
+
],
|
|
103974
|
+
"description": "Adds text as it arrives. A line ends at each line break, and the text\nafter the last one is the line still being written.",
|
|
103975
|
+
"type": {
|
|
103976
|
+
"text": "write(chunk: string) => void"
|
|
103977
|
+
}
|
|
103978
|
+
},
|
|
103979
|
+
{
|
|
103980
|
+
"kind": "method",
|
|
103981
|
+
"name": "clear",
|
|
103982
|
+
"return": {
|
|
103983
|
+
"type": {
|
|
103984
|
+
"text": "void"
|
|
103985
|
+
}
|
|
103986
|
+
},
|
|
103987
|
+
"description": "Lets every line go, and forgets which groups the reader opened, keeping\n`groups`, `parse`, and `limit`.",
|
|
103988
|
+
"type": {
|
|
103989
|
+
"text": "clear() => void"
|
|
103990
|
+
}
|
|
103991
|
+
},
|
|
103992
|
+
{
|
|
103993
|
+
"kind": "method",
|
|
103994
|
+
"name": "resume",
|
|
103995
|
+
"return": {
|
|
103996
|
+
"type": {
|
|
103997
|
+
"text": "void"
|
|
103998
|
+
}
|
|
103999
|
+
},
|
|
104000
|
+
"description": "Puts the log back at its newest line, and follows it again.",
|
|
104001
|
+
"type": {
|
|
104002
|
+
"text": "resume() => void"
|
|
104003
|
+
}
|
|
104004
|
+
},
|
|
104005
|
+
{
|
|
104006
|
+
"kind": "method",
|
|
104007
|
+
"name": "scrollToLine",
|
|
104008
|
+
"return": {
|
|
104009
|
+
"type": {
|
|
104010
|
+
"text": "Promise<boolean>"
|
|
104011
|
+
}
|
|
104012
|
+
},
|
|
104013
|
+
"parameters": [
|
|
104014
|
+
{
|
|
104015
|
+
"name": "number",
|
|
104016
|
+
"type": {
|
|
104017
|
+
"text": "number"
|
|
104018
|
+
}
|
|
104019
|
+
},
|
|
104020
|
+
{
|
|
104021
|
+
"name": "options",
|
|
104022
|
+
"default": "{}",
|
|
104023
|
+
"type": {
|
|
104024
|
+
"text": "LogScrollOptions"
|
|
104025
|
+
}
|
|
104026
|
+
}
|
|
104027
|
+
],
|
|
104028
|
+
"description": "Scrolls to line `number`, counted from the first line ever written, and\nstops following the newest. Opens a shut group the line is in. Resolves\nto whether the line is shown: false for a line `limit` let go or `query`\nhides.",
|
|
104029
|
+
"type": {
|
|
104030
|
+
"text": "scrollToLine(number: number, options: LogScrollOptions = {}) => Promise<boolean>"
|
|
104031
|
+
}
|
|
104032
|
+
},
|
|
104033
|
+
{
|
|
104034
|
+
"kind": "method",
|
|
104035
|
+
"name": "isOpen",
|
|
104036
|
+
"privacy": "private",
|
|
104037
|
+
"return": {
|
|
104038
|
+
"type": {
|
|
104039
|
+
"text": "boolean"
|
|
104040
|
+
}
|
|
104041
|
+
},
|
|
104042
|
+
"parameters": [
|
|
104043
|
+
{
|
|
104044
|
+
"name": "id",
|
|
104045
|
+
"type": {
|
|
104046
|
+
"text": "string"
|
|
104047
|
+
}
|
|
104048
|
+
}
|
|
104049
|
+
],
|
|
104050
|
+
"description": "Whether a group drawn from data is open: as the reader left it, or as `groups` seeded it."
|
|
104051
|
+
},
|
|
104052
|
+
{
|
|
104053
|
+
"kind": "method",
|
|
104054
|
+
"name": "reopen",
|
|
104055
|
+
"privacy": "private",
|
|
104056
|
+
"return": {
|
|
104057
|
+
"type": {
|
|
104058
|
+
"text": "void"
|
|
104059
|
+
}
|
|
104060
|
+
},
|
|
104061
|
+
"parameters": [
|
|
104062
|
+
{
|
|
104063
|
+
"name": "previous",
|
|
104064
|
+
"type": {
|
|
104065
|
+
"text": "readonly LogGroup[] | undefined"
|
|
104066
|
+
}
|
|
104067
|
+
}
|
|
104068
|
+
],
|
|
104069
|
+
"description": "Follows a group's `open` where the page changed it, so a page can open the\nstep that failed. A group whose `open` did not change keeps what the\nreader left it at."
|
|
104070
|
+
},
|
|
104071
|
+
{
|
|
104072
|
+
"kind": "field",
|
|
104073
|
+
"name": "atBottom",
|
|
104074
|
+
"type": {
|
|
104075
|
+
"text": "boolean"
|
|
104076
|
+
},
|
|
104077
|
+
"privacy": "private",
|
|
104078
|
+
"description": "Whether the reader is within `threshold` of the newest line right now.",
|
|
104079
|
+
"readonly": true
|
|
104080
|
+
},
|
|
104081
|
+
{
|
|
104082
|
+
"kind": "method",
|
|
104083
|
+
"name": "stick",
|
|
104084
|
+
"privacy": "private",
|
|
104085
|
+
"return": {
|
|
104086
|
+
"type": {
|
|
104087
|
+
"text": "void"
|
|
104088
|
+
}
|
|
104089
|
+
},
|
|
104090
|
+
"description": "Scrolls to the newest line, and remembers where that was."
|
|
104091
|
+
},
|
|
104092
|
+
{
|
|
104093
|
+
"kind": "method",
|
|
104094
|
+
"name": "requestPinned",
|
|
104095
|
+
"privacy": "private",
|
|
104096
|
+
"return": {
|
|
104097
|
+
"type": {
|
|
104098
|
+
"text": "boolean"
|
|
104099
|
+
}
|
|
104100
|
+
},
|
|
104101
|
+
"parameters": [
|
|
104102
|
+
{
|
|
104103
|
+
"name": "next",
|
|
104104
|
+
"type": {
|
|
104105
|
+
"text": "boolean"
|
|
104106
|
+
}
|
|
104107
|
+
}
|
|
104108
|
+
],
|
|
104109
|
+
"description": "Asks to follow or let go of the newest line, and reports whether the request stood."
|
|
104110
|
+
},
|
|
104111
|
+
{
|
|
104112
|
+
"kind": "method",
|
|
104113
|
+
"name": "drawn",
|
|
104114
|
+
"privacy": "private",
|
|
104115
|
+
"return": {
|
|
104116
|
+
"type": {
|
|
104117
|
+
"text": "{ element: HTMLElement; index: number }[]"
|
|
104118
|
+
}
|
|
104119
|
+
},
|
|
104120
|
+
"description": "The rows drawn from data that are in the tree, each with its place in the whole set."
|
|
104121
|
+
},
|
|
104122
|
+
{
|
|
104123
|
+
"kind": "method",
|
|
104124
|
+
"name": "readChildren",
|
|
104125
|
+
"privacy": "private",
|
|
104126
|
+
"return": {
|
|
104127
|
+
"type": {
|
|
104128
|
+
"text": "void"
|
|
104129
|
+
}
|
|
104130
|
+
},
|
|
104131
|
+
"description": "Reads the lines and groups written as children, through every group, in\nthe order they are written. Nothing on a server, or while hydrating what\none sent."
|
|
104132
|
+
},
|
|
104133
|
+
{
|
|
104134
|
+
"kind": "method",
|
|
104135
|
+
"name": "tellLines",
|
|
104136
|
+
"privacy": "private",
|
|
104137
|
+
"return": {
|
|
104138
|
+
"type": {
|
|
104139
|
+
"text": "void"
|
|
104140
|
+
}
|
|
104141
|
+
},
|
|
104142
|
+
"description": "Tells each line written as a child its number and what the log shows, once\nit has hydrated, so its first render is the server's. Opens a group that\nholds a match while `query` is set."
|
|
104143
|
+
},
|
|
104144
|
+
{
|
|
104145
|
+
"kind": "method",
|
|
104146
|
+
"name": "markScroller",
|
|
104147
|
+
"privacy": "private",
|
|
104148
|
+
"return": {
|
|
104149
|
+
"type": {
|
|
104150
|
+
"text": "void"
|
|
104151
|
+
}
|
|
104152
|
+
},
|
|
104153
|
+
"description": "Makes the log a tab stop while it scrolls, so a keyboard can scroll it in every browser."
|
|
104154
|
+
},
|
|
104155
|
+
{
|
|
104156
|
+
"kind": "method",
|
|
104157
|
+
"name": "listen",
|
|
104158
|
+
"privacy": "private",
|
|
104159
|
+
"return": {
|
|
104160
|
+
"type": {
|
|
104161
|
+
"text": "Heard"
|
|
104162
|
+
}
|
|
104163
|
+
},
|
|
104164
|
+
"description": "What the status region compares, as things stand."
|
|
104165
|
+
},
|
|
104166
|
+
{
|
|
104167
|
+
"kind": "method",
|
|
104168
|
+
"name": "announce",
|
|
104169
|
+
"privacy": "private",
|
|
104170
|
+
"return": {
|
|
104171
|
+
"type": {
|
|
104172
|
+
"text": "void"
|
|
104173
|
+
}
|
|
104174
|
+
},
|
|
104175
|
+
"description": "Says what changed since the last time it looked: lines at `error`, steps\nthat finished or failed, the end of the run, and how many lines a new\n`query` matches. Nothing is said for what the log opened with."
|
|
104176
|
+
},
|
|
104177
|
+
{
|
|
104178
|
+
"kind": "method",
|
|
104179
|
+
"name": "readSource",
|
|
104180
|
+
"privacy": "private",
|
|
104181
|
+
"return": {
|
|
104182
|
+
"type": {
|
|
104183
|
+
"text": "Promise<void>"
|
|
104184
|
+
}
|
|
104185
|
+
},
|
|
104186
|
+
"parameters": [
|
|
104187
|
+
{
|
|
104188
|
+
"name": "source",
|
|
104189
|
+
"type": {
|
|
104190
|
+
"text": "LogSource | null"
|
|
104191
|
+
}
|
|
104192
|
+
}
|
|
104193
|
+
],
|
|
104194
|
+
"description": "Reads a source to its end, writing what it gives, and sets `done` when it ends."
|
|
104195
|
+
},
|
|
104196
|
+
{
|
|
104197
|
+
"kind": "field",
|
|
104198
|
+
"name": "handleResize",
|
|
104199
|
+
"privacy": "private",
|
|
104200
|
+
"readonly": true,
|
|
104201
|
+
"description": "The log changed size, which moves nothing on its own: following, the\nnewest line is followed."
|
|
104202
|
+
},
|
|
104203
|
+
{
|
|
104204
|
+
"kind": "field",
|
|
104205
|
+
"name": "handleMutation",
|
|
104206
|
+
"privacy": "private",
|
|
104207
|
+
"readonly": true
|
|
104208
|
+
},
|
|
104209
|
+
{
|
|
104210
|
+
"kind": "field",
|
|
104211
|
+
"name": "handleScroll",
|
|
104212
|
+
"privacy": "private",
|
|
104213
|
+
"readonly": true,
|
|
104214
|
+
"description": "The reader's own scrolling, which is the only thing that lets go of the\nnewest line. Bound to the log in the template, since `scroll` is not\ncomposed and never reaches the host. A scroll this element made, and the\nlog growing under a reader who has not moved, are not the reader leaving:\n`Chat` carries the measurement."
|
|
104215
|
+
},
|
|
104216
|
+
{
|
|
104217
|
+
"kind": "field",
|
|
104218
|
+
"name": "handleResume",
|
|
104219
|
+
"privacy": "private",
|
|
104220
|
+
"readonly": true
|
|
104221
|
+
},
|
|
104222
|
+
{
|
|
104223
|
+
"kind": "field",
|
|
104224
|
+
"name": "handleGroupToggle",
|
|
104225
|
+
"privacy": "private",
|
|
104226
|
+
"readonly": true,
|
|
104227
|
+
"description": "A reader opened or closed a group drawn from data."
|
|
104228
|
+
},
|
|
104229
|
+
{
|
|
104230
|
+
"kind": "method",
|
|
104231
|
+
"name": "renderRow",
|
|
104232
|
+
"privacy": "private",
|
|
104233
|
+
"return": {
|
|
104234
|
+
"type": {
|
|
104235
|
+
"text": "TemplateResult"
|
|
104236
|
+
}
|
|
104237
|
+
},
|
|
104238
|
+
"parameters": [
|
|
104239
|
+
{
|
|
104240
|
+
"name": "row",
|
|
104241
|
+
"type": {
|
|
104242
|
+
"text": "LogRow"
|
|
104243
|
+
}
|
|
104244
|
+
},
|
|
104245
|
+
{
|
|
104246
|
+
"name": "marks",
|
|
104247
|
+
"type": {
|
|
104248
|
+
"text": "ReadonlyArray<[number, number]>"
|
|
104249
|
+
}
|
|
104250
|
+
},
|
|
104251
|
+
{
|
|
104252
|
+
"name": "start",
|
|
104253
|
+
"type": {
|
|
104254
|
+
"text": "number | undefined"
|
|
104255
|
+
}
|
|
104256
|
+
}
|
|
104257
|
+
],
|
|
104258
|
+
"description": "One row drawn from data: a line, or a group's heading."
|
|
104259
|
+
},
|
|
104260
|
+
{
|
|
104261
|
+
"kind": "field",
|
|
104262
|
+
"name": "firstTime",
|
|
104263
|
+
"type": {
|
|
104264
|
+
"text": "number | undefined"
|
|
104265
|
+
},
|
|
104266
|
+
"privacy": "private",
|
|
104267
|
+
"description": "When the first line kept was written, which `relative` counts from.",
|
|
104268
|
+
"readonly": true
|
|
104269
|
+
},
|
|
104270
|
+
{
|
|
104271
|
+
"kind": "field",
|
|
104272
|
+
"name": "digits",
|
|
104273
|
+
"type": {
|
|
104274
|
+
"text": "number"
|
|
104275
|
+
},
|
|
104276
|
+
"privacy": "private",
|
|
104277
|
+
"description": "How many digits the largest line number has, which a stylesheet sizes the\ncolumn of numbers by, or 0 where nobody can know: a server, or a log with\nno numbers shown.",
|
|
104278
|
+
"readonly": true
|
|
104279
|
+
},
|
|
104280
|
+
{
|
|
104281
|
+
"kind": "method",
|
|
104282
|
+
"name": "renderRows",
|
|
104283
|
+
"privacy": "private",
|
|
104284
|
+
"return": {
|
|
104285
|
+
"type": {
|
|
104286
|
+
"text": "TemplateResult"
|
|
104287
|
+
}
|
|
104288
|
+
},
|
|
104289
|
+
"description": "The rows drawn from data, a window of them, between the room the rest would take."
|
|
104290
|
+
},
|
|
104291
|
+
{
|
|
104292
|
+
"kind": "method",
|
|
104293
|
+
"name": "renderResume",
|
|
104294
|
+
"privacy": "protected",
|
|
104295
|
+
"return": {
|
|
104296
|
+
"type": {
|
|
104297
|
+
"text": "TemplateResult"
|
|
104298
|
+
}
|
|
104299
|
+
},
|
|
104300
|
+
"description": "The `resume` slot, with the way back drawn where nothing is slotted, behind\na seam: the slot answers a page, and this answers the tier above."
|
|
104301
|
+
},
|
|
104302
|
+
{
|
|
104303
|
+
"kind": "field",
|
|
104304
|
+
"name": "loading",
|
|
104305
|
+
"type": {
|
|
104306
|
+
"text": "boolean"
|
|
104307
|
+
},
|
|
104308
|
+
"default": "false",
|
|
104309
|
+
"description": "Whether the rows are still loading.\n\nReflected, because a stylesheet needs it: the rows that are already there\nare dimmed rather than removed while a new set arrives, and only CSS can\nsay that without the component knowing what a row looks like.",
|
|
104310
|
+
"attribute": "loading",
|
|
104311
|
+
"reflects": true,
|
|
104312
|
+
"inheritedFrom": {
|
|
104313
|
+
"name": "MixinCollection",
|
|
104314
|
+
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
104315
|
+
}
|
|
104316
|
+
},
|
|
104317
|
+
{
|
|
104318
|
+
"kind": "field",
|
|
104319
|
+
"name": "loadingText",
|
|
104320
|
+
"type": {
|
|
104321
|
+
"text": "string"
|
|
104322
|
+
},
|
|
104323
|
+
"default": "'Loading'",
|
|
104324
|
+
"description": "The text shown and announced while the rows load.",
|
|
104325
|
+
"attribute": "loading-text",
|
|
104326
|
+
"helix": {
|
|
104327
|
+
"words": true
|
|
104328
|
+
},
|
|
104329
|
+
"inheritedFrom": {
|
|
104330
|
+
"name": "MixinCollection",
|
|
104331
|
+
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
104332
|
+
}
|
|
104333
|
+
},
|
|
104334
|
+
{
|
|
104335
|
+
"kind": "field",
|
|
104336
|
+
"name": "slotCounted",
|
|
104337
|
+
"type": {
|
|
104338
|
+
"text": "boolean"
|
|
104339
|
+
},
|
|
104340
|
+
"privacy": "private",
|
|
104341
|
+
"default": "false",
|
|
104342
|
+
"description": "Whether the rows have been looked at yet.",
|
|
104343
|
+
"inheritedFrom": {
|
|
104344
|
+
"name": "MixinCollection",
|
|
104345
|
+
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
104346
|
+
}
|
|
104347
|
+
},
|
|
104348
|
+
{
|
|
104349
|
+
"kind": "field",
|
|
104350
|
+
"name": "slotRows",
|
|
104351
|
+
"type": {
|
|
104352
|
+
"text": "number"
|
|
104353
|
+
},
|
|
104354
|
+
"privacy": "private",
|
|
104355
|
+
"default": "0",
|
|
104356
|
+
"description": "How many there were, the last time anyone looked.\n\n**Never name this `rows`.** TypeScript's `private` is a compile-time\nclaim and the runtime field is whatever it is named, so a subclass\ndeclaring `@property() rows` for the data a consumer hands it would share\none field with this counter: the slot count would overwrite the\nconsumer's array on every update, and `hasRows` would read the array's\nlength as a slot count. Nothing would throw. `helix-data-table` takes\nexactly that property.",
|
|
104357
|
+
"inheritedFrom": {
|
|
104358
|
+
"name": "MixinCollection",
|
|
104359
|
+
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
104360
|
+
}
|
|
104361
|
+
},
|
|
104362
|
+
{
|
|
104363
|
+
"kind": "method",
|
|
104364
|
+
"name": "countRows",
|
|
104365
|
+
"privacy": "protected",
|
|
104366
|
+
"return": {
|
|
104367
|
+
"type": {
|
|
104368
|
+
"text": "void"
|
|
104369
|
+
}
|
|
104370
|
+
},
|
|
104371
|
+
"parameters": [
|
|
104372
|
+
{
|
|
104373
|
+
"name": "event",
|
|
104374
|
+
"type": {
|
|
104375
|
+
"text": "Event"
|
|
104376
|
+
}
|
|
104377
|
+
}
|
|
104378
|
+
],
|
|
104379
|
+
"description": "Counts what a rows slot was given.\n\nEmptiness is a fact about light DOM children and the server has none to\ncount. `slotchange` never fires there, so `counted` is false exactly when\nthe answer is unknown, and an unknown answer is not \"empty\": a list that\nshipped \"Nothing to show\" over markup about to have rows in it is the one\nthing an empty state must never do.",
|
|
104380
|
+
"inheritedFrom": {
|
|
104381
|
+
"name": "MixinCollection",
|
|
104382
|
+
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
104383
|
+
}
|
|
104384
|
+
},
|
|
104385
|
+
{
|
|
104386
|
+
"kind": "field",
|
|
104387
|
+
"name": "hasRows",
|
|
104388
|
+
"type": {
|
|
104389
|
+
"text": "boolean"
|
|
104390
|
+
},
|
|
104391
|
+
"privacy": "protected",
|
|
104392
|
+
"readonly": true,
|
|
104393
|
+
"inheritedFrom": {
|
|
104394
|
+
"name": "MixinCollection",
|
|
104395
|
+
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
104396
|
+
}
|
|
104397
|
+
},
|
|
104398
|
+
{
|
|
104399
|
+
"kind": "field",
|
|
104400
|
+
"name": "slotted",
|
|
104401
|
+
"type": {
|
|
104402
|
+
"text": "Element[]"
|
|
104403
|
+
},
|
|
104404
|
+
"privacy": "protected",
|
|
104405
|
+
"description": "What the rows slot is given: every child without a `slot`.\n\nThe default slot, because that is where every collection in this library\nputs its rows: Listbox its options, Tree its items, Table its rows, Menu\nand Drilldown their pages. A named slot is a header or a footer, and\nneither is content.\n\n**The host's children rather than the slot's assigned elements**, which\nare the same elements, because a slot exists only once a render has made\nit and the count is wanted by the first render. A collection that assigns\nits slots by hand says what it assigns.",
|
|
104406
|
+
"readonly": true,
|
|
104407
|
+
"inheritedFrom": {
|
|
104408
|
+
"name": "MixinCollection",
|
|
104409
|
+
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
104410
|
+
}
|
|
104411
|
+
},
|
|
104412
|
+
{
|
|
104413
|
+
"kind": "method",
|
|
104414
|
+
"name": "renderStatus",
|
|
104415
|
+
"privacy": "protected",
|
|
104416
|
+
"return": {
|
|
104417
|
+
"type": {
|
|
104418
|
+
"text": "TemplateResult | typeof nothing"
|
|
104419
|
+
}
|
|
104420
|
+
},
|
|
104421
|
+
"parameters": [
|
|
104422
|
+
{
|
|
104423
|
+
"name": "hasContent",
|
|
104424
|
+
"type": {
|
|
104425
|
+
"text": "boolean"
|
|
104426
|
+
}
|
|
104427
|
+
},
|
|
104428
|
+
{
|
|
104429
|
+
"name": "cell",
|
|
104430
|
+
"optional": true,
|
|
104431
|
+
"type": {
|
|
104432
|
+
"text": "'cell' | 'gridcell'"
|
|
104433
|
+
}
|
|
104434
|
+
}
|
|
104435
|
+
],
|
|
104436
|
+
"description": "The status line, or nothing where there is content to show.\n\nLoading wins over empty. A collection that has not answered yet is not\nempty, and saying so is the most common version of this fault: the reader\nis told there is nothing a moment before there is something.",
|
|
104437
|
+
"inheritedFrom": {
|
|
104438
|
+
"name": "MixinCollection",
|
|
104439
|
+
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
104440
|
+
}
|
|
104441
|
+
},
|
|
104442
|
+
{
|
|
104443
|
+
"kind": "method",
|
|
104444
|
+
"name": "renderLive",
|
|
104445
|
+
"privacy": "protected",
|
|
104446
|
+
"return": {
|
|
104447
|
+
"type": {
|
|
104448
|
+
"text": "TemplateResult"
|
|
104449
|
+
}
|
|
104450
|
+
},
|
|
104451
|
+
"parameters": [
|
|
104452
|
+
{
|
|
104453
|
+
"name": "hasContent",
|
|
104454
|
+
"type": {
|
|
104455
|
+
"text": "boolean"
|
|
104456
|
+
}
|
|
104457
|
+
}
|
|
104458
|
+
],
|
|
104459
|
+
"description": "The same words for a screen reader, in a region that is always there.\n\n**A region is heard when what it holds changes, not when it arrives.**\nThe loading line was a `role=\"status\"` inserted with its words already\nin it, which is read inconsistently at best, and the empty line was no\nregion at all, so a filter that emptied a list said nothing. This one is\nrendered on every pass and only its words move: \"Loading\", then\n\"No matches\", then nothing once there are rows.\n\n**Outside the rows, which is the component's to place.** A status is not\na child a `listbox`, a `table` or a `tree` may hold, so the component\nrenders this beside its container rather than inside it. The styled\ntier clips it; the visible lines are `renderStatus`.",
|
|
104460
|
+
"inheritedFrom": {
|
|
104461
|
+
"name": "MixinCollection",
|
|
104462
|
+
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
104463
|
+
}
|
|
104464
|
+
},
|
|
104465
|
+
{
|
|
104466
|
+
"kind": "field",
|
|
104467
|
+
"name": "announced",
|
|
104468
|
+
"type": {
|
|
104469
|
+
"text": "string"
|
|
104470
|
+
},
|
|
104471
|
+
"privacy": "protected",
|
|
104472
|
+
"default": "''",
|
|
104473
|
+
"description": "What the region says while there are rows and nothing is loading, which\nis nothing unless the component has news of its own.\n\n**One region, so two messages never talk over each other.** Data Table\nsays a sort and a selection here; a second `role=\"status\"` beside this\none would be heard in whichever order the reader happens to queue them.\nLoading and empty win, being the larger news. Set before the render that\nshows it, in `willUpdate`, and not reactive: it changes only when\nsomething else already asked for a render.",
|
|
104474
|
+
"inheritedFrom": {
|
|
104475
|
+
"name": "MixinCollection",
|
|
104476
|
+
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
104477
|
+
}
|
|
104478
|
+
},
|
|
104479
|
+
{
|
|
104480
|
+
"kind": "field",
|
|
104481
|
+
"name": "statusSlots",
|
|
104482
|
+
"type": {
|
|
104483
|
+
"text": "boolean"
|
|
104484
|
+
},
|
|
104485
|
+
"privacy": "protected",
|
|
104486
|
+
"default": "false",
|
|
104487
|
+
"description": "Whether the status line is an `empty` or `loading` slot, with\n`empty-text` or `loading-text` as its fallback.\n\n**Off unless a family turns it on**, because a slot is published API:\neach family that renders one documents it in its own manifest. The live\nregion keeps saying the text either way, because a slotted picture has no\nwords to say.",
|
|
104488
|
+
"inheritedFrom": {
|
|
104489
|
+
"name": "MixinCollection",
|
|
104490
|
+
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
104491
|
+
}
|
|
104492
|
+
},
|
|
104493
|
+
{
|
|
104494
|
+
"kind": "field",
|
|
104495
|
+
"name": "tier",
|
|
104496
|
+
"type": {
|
|
104497
|
+
"text": "string"
|
|
104498
|
+
},
|
|
104499
|
+
"static": true,
|
|
104500
|
+
"default": "'helix-headless-'",
|
|
104501
|
+
"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.",
|
|
104502
|
+
"inheritedFrom": {
|
|
104503
|
+
"name": "HelixElement",
|
|
104504
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104505
|
+
}
|
|
104506
|
+
},
|
|
104507
|
+
{
|
|
104508
|
+
"kind": "method",
|
|
104509
|
+
"name": "tag",
|
|
104510
|
+
"privacy": "protected",
|
|
104511
|
+
"return": {
|
|
104512
|
+
"type": {
|
|
104513
|
+
"text": "StaticValue"
|
|
104514
|
+
}
|
|
104515
|
+
},
|
|
104516
|
+
"parameters": [
|
|
104517
|
+
{
|
|
104518
|
+
"name": "name",
|
|
104519
|
+
"type": {
|
|
104520
|
+
"text": "string"
|
|
104521
|
+
}
|
|
104522
|
+
}
|
|
104523
|
+
],
|
|
104524
|
+
"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.",
|
|
104525
|
+
"inheritedFrom": {
|
|
104526
|
+
"name": "HelixElement",
|
|
104527
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104528
|
+
}
|
|
104529
|
+
},
|
|
104530
|
+
{
|
|
104531
|
+
"kind": "method",
|
|
104532
|
+
"name": "partNamed",
|
|
104533
|
+
"privacy": "protected",
|
|
104534
|
+
"return": {
|
|
104535
|
+
"type": {
|
|
104536
|
+
"text": "T | null"
|
|
104537
|
+
}
|
|
104538
|
+
},
|
|
104539
|
+
"parameters": [
|
|
104540
|
+
{
|
|
104541
|
+
"name": "name",
|
|
104542
|
+
"type": {
|
|
104543
|
+
"text": "string"
|
|
104544
|
+
}
|
|
104545
|
+
}
|
|
104546
|
+
],
|
|
104547
|
+
"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.",
|
|
104548
|
+
"inheritedFrom": {
|
|
104549
|
+
"name": "HelixElement",
|
|
104550
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104551
|
+
}
|
|
104552
|
+
},
|
|
104553
|
+
{
|
|
104554
|
+
"kind": "field",
|
|
104555
|
+
"name": "internals",
|
|
104556
|
+
"type": {
|
|
104557
|
+
"text": "ElementInternals"
|
|
104558
|
+
},
|
|
104559
|
+
"privacy": "protected",
|
|
104560
|
+
"readonly": true,
|
|
104561
|
+
"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.",
|
|
104562
|
+
"inheritedFrom": {
|
|
104563
|
+
"name": "HelixElement",
|
|
104564
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104565
|
+
}
|
|
104566
|
+
},
|
|
104567
|
+
{
|
|
104568
|
+
"kind": "method",
|
|
104569
|
+
"name": "toggleState",
|
|
104570
|
+
"privacy": "protected",
|
|
104571
|
+
"return": {
|
|
104572
|
+
"type": {
|
|
104573
|
+
"text": "void"
|
|
104574
|
+
}
|
|
104575
|
+
},
|
|
104576
|
+
"parameters": [
|
|
104577
|
+
{
|
|
104578
|
+
"name": "name",
|
|
104579
|
+
"type": {
|
|
104580
|
+
"text": "string"
|
|
104581
|
+
}
|
|
104582
|
+
},
|
|
104583
|
+
{
|
|
104584
|
+
"name": "on",
|
|
104585
|
+
"type": {
|
|
104586
|
+
"text": "boolean"
|
|
104587
|
+
}
|
|
104588
|
+
}
|
|
104589
|
+
],
|
|
104590
|
+
"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.",
|
|
104591
|
+
"inheritedFrom": {
|
|
104592
|
+
"name": "HelixElement",
|
|
104593
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104594
|
+
}
|
|
104595
|
+
},
|
|
104596
|
+
{
|
|
104597
|
+
"kind": "field",
|
|
104598
|
+
"name": "whenSettled",
|
|
104599
|
+
"type": {
|
|
104600
|
+
"text": "Promise<void>"
|
|
104601
|
+
},
|
|
104602
|
+
"readonly": true,
|
|
104603
|
+
"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.",
|
|
104604
|
+
"default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
|
|
104605
|
+
"inheritedFrom": {
|
|
104606
|
+
"name": "HelixElement",
|
|
104607
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104608
|
+
}
|
|
104609
|
+
},
|
|
104610
|
+
{
|
|
104611
|
+
"kind": "field",
|
|
104612
|
+
"name": "resolveSettled",
|
|
104613
|
+
"type": {
|
|
104614
|
+
"text": "() => void"
|
|
104615
|
+
},
|
|
104616
|
+
"privacy": "private",
|
|
104617
|
+
"description": "Resolves `whenSettled`, once, from the frame that records the state.",
|
|
104618
|
+
"inheritedFrom": {
|
|
104619
|
+
"name": "HelixElement",
|
|
104620
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104621
|
+
}
|
|
104622
|
+
},
|
|
104623
|
+
{
|
|
104624
|
+
"kind": "field",
|
|
104625
|
+
"name": "fromServer",
|
|
104626
|
+
"type": {
|
|
104627
|
+
"text": "boolean"
|
|
104628
|
+
},
|
|
104629
|
+
"privacy": "private",
|
|
104630
|
+
"default": "false",
|
|
104631
|
+
"description": "Whether the shadow root was a server's, parsed from declarative shadow DOM.",
|
|
104632
|
+
"inheritedFrom": {
|
|
104633
|
+
"name": "HelixElement",
|
|
104634
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104635
|
+
}
|
|
104636
|
+
},
|
|
104637
|
+
{
|
|
104638
|
+
"kind": "field",
|
|
104639
|
+
"name": "hydrating",
|
|
104640
|
+
"type": {
|
|
104641
|
+
"text": "boolean"
|
|
104642
|
+
},
|
|
104643
|
+
"privacy": "protected",
|
|
104644
|
+
"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.",
|
|
104645
|
+
"readonly": true,
|
|
104646
|
+
"inheritedFrom": {
|
|
104647
|
+
"name": "HelixElement",
|
|
104648
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104649
|
+
}
|
|
104650
|
+
},
|
|
104651
|
+
{
|
|
104652
|
+
"kind": "field",
|
|
104653
|
+
"name": "serverRendered",
|
|
104654
|
+
"type": {
|
|
104655
|
+
"text": "boolean"
|
|
104656
|
+
},
|
|
104657
|
+
"privacy": "protected",
|
|
104658
|
+
"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.",
|
|
104659
|
+
"readonly": true,
|
|
104660
|
+
"inheritedFrom": {
|
|
104661
|
+
"name": "HelixElement",
|
|
104662
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104663
|
+
}
|
|
104664
|
+
},
|
|
104665
|
+
{
|
|
104666
|
+
"kind": "method",
|
|
104667
|
+
"name": "finishHydration",
|
|
104668
|
+
"privacy": "protected",
|
|
104669
|
+
"return": {
|
|
104670
|
+
"type": {
|
|
104671
|
+
"text": "void"
|
|
104672
|
+
}
|
|
104673
|
+
},
|
|
104674
|
+
"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.",
|
|
104675
|
+
"inheritedFrom": {
|
|
104676
|
+
"name": "HelixElement",
|
|
104677
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104678
|
+
}
|
|
104679
|
+
},
|
|
104680
|
+
{
|
|
104681
|
+
"kind": "field",
|
|
104682
|
+
"name": "childrenKnown",
|
|
104683
|
+
"type": {
|
|
104684
|
+
"text": "boolean"
|
|
104685
|
+
},
|
|
104686
|
+
"privacy": "protected",
|
|
104687
|
+
"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.",
|
|
104688
|
+
"readonly": true,
|
|
104689
|
+
"inheritedFrom": {
|
|
104690
|
+
"name": "HelixElement",
|
|
104691
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104692
|
+
}
|
|
104693
|
+
},
|
|
104694
|
+
{
|
|
104695
|
+
"kind": "field",
|
|
104696
|
+
"name": "knownChildren",
|
|
104697
|
+
"type": {
|
|
104698
|
+
"text": "Element[]"
|
|
104699
|
+
},
|
|
104700
|
+
"privacy": "protected",
|
|
104701
|
+
"description": "The children a render may read: all of them where they are known, and none otherwise.",
|
|
104702
|
+
"readonly": true,
|
|
104703
|
+
"inheritedFrom": {
|
|
104704
|
+
"name": "HelixElement",
|
|
104705
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104706
|
+
}
|
|
104707
|
+
},
|
|
104708
|
+
{
|
|
104709
|
+
"kind": "field",
|
|
104710
|
+
"name": "assignsByName",
|
|
104711
|
+
"type": {
|
|
104712
|
+
"text": "boolean"
|
|
104713
|
+
},
|
|
104714
|
+
"privacy": "protected",
|
|
104715
|
+
"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.",
|
|
104716
|
+
"readonly": true,
|
|
104717
|
+
"inheritedFrom": {
|
|
104718
|
+
"name": "HelixElement",
|
|
104719
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104720
|
+
}
|
|
104721
|
+
},
|
|
104722
|
+
{
|
|
104723
|
+
"kind": "method",
|
|
104724
|
+
"name": "route",
|
|
104725
|
+
"privacy": "protected",
|
|
104726
|
+
"return": {
|
|
104727
|
+
"type": {
|
|
104728
|
+
"text": "void"
|
|
104729
|
+
}
|
|
104730
|
+
},
|
|
104731
|
+
"parameters": [
|
|
104732
|
+
{
|
|
104733
|
+
"name": "child",
|
|
104734
|
+
"type": {
|
|
104735
|
+
"text": "Element"
|
|
104736
|
+
}
|
|
104737
|
+
},
|
|
104738
|
+
{
|
|
104739
|
+
"name": "name",
|
|
104740
|
+
"type": {
|
|
104741
|
+
"text": "string | undefined"
|
|
104742
|
+
}
|
|
104743
|
+
}
|
|
104744
|
+
],
|
|
104745
|
+
"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.",
|
|
104746
|
+
"inheritedFrom": {
|
|
104747
|
+
"name": "HelixElement",
|
|
104748
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104749
|
+
}
|
|
104750
|
+
},
|
|
104751
|
+
{
|
|
104752
|
+
"kind": "field",
|
|
104753
|
+
"name": "stopInner",
|
|
104754
|
+
"privacy": "protected",
|
|
104755
|
+
"readonly": true,
|
|
104756
|
+
"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.",
|
|
104757
|
+
"inheritedFrom": {
|
|
104758
|
+
"name": "HelixElement",
|
|
104759
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104760
|
+
}
|
|
104761
|
+
},
|
|
104762
|
+
{
|
|
104763
|
+
"kind": "method",
|
|
104764
|
+
"name": "relayNativeEvent",
|
|
104765
|
+
"privacy": "protected",
|
|
104766
|
+
"return": {
|
|
104767
|
+
"type": {
|
|
104768
|
+
"text": "void"
|
|
104769
|
+
}
|
|
104770
|
+
},
|
|
104771
|
+
"parameters": [
|
|
104772
|
+
{
|
|
104773
|
+
"name": "event",
|
|
104774
|
+
"type": {
|
|
104775
|
+
"text": "Event"
|
|
104776
|
+
}
|
|
104777
|
+
},
|
|
104778
|
+
{
|
|
104779
|
+
"name": "init",
|
|
104780
|
+
"optional": true,
|
|
104781
|
+
"type": {
|
|
104782
|
+
"text": "EventInit"
|
|
104783
|
+
}
|
|
104784
|
+
}
|
|
104785
|
+
],
|
|
104786
|
+
"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.",
|
|
104787
|
+
"inheritedFrom": {
|
|
104788
|
+
"name": "HelixElement",
|
|
104789
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104790
|
+
}
|
|
104791
|
+
},
|
|
104792
|
+
{
|
|
104793
|
+
"kind": "method",
|
|
104794
|
+
"name": "finalizeStyles",
|
|
104795
|
+
"privacy": "protected",
|
|
104796
|
+
"static": true,
|
|
104797
|
+
"return": {
|
|
104798
|
+
"type": {
|
|
104799
|
+
"text": "CSSResultOrNative[]"
|
|
104800
|
+
}
|
|
104801
|
+
},
|
|
104802
|
+
"parameters": [
|
|
104803
|
+
{
|
|
104804
|
+
"name": "styles",
|
|
104805
|
+
"optional": true,
|
|
104806
|
+
"type": {
|
|
104807
|
+
"text": "CSSResultOrNative | CSSResultOrNative[]"
|
|
104808
|
+
}
|
|
104809
|
+
}
|
|
104810
|
+
],
|
|
104811
|
+
"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.",
|
|
104812
|
+
"inheritedFrom": {
|
|
104813
|
+
"name": "HelixElement",
|
|
104814
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104815
|
+
}
|
|
104816
|
+
},
|
|
104817
|
+
{
|
|
104818
|
+
"kind": "method",
|
|
104819
|
+
"name": "performUpdate",
|
|
104820
|
+
"privacy": "protected",
|
|
104821
|
+
"return": {
|
|
104822
|
+
"type": {
|
|
104823
|
+
"text": "void"
|
|
104824
|
+
}
|
|
104825
|
+
},
|
|
104826
|
+
"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`.",
|
|
104827
|
+
"inheritedFrom": {
|
|
104828
|
+
"name": "HelixElement",
|
|
104829
|
+
"module": "src/helix-element/helix-element.ts"
|
|
104830
|
+
}
|
|
104831
|
+
}
|
|
104832
|
+
],
|
|
104833
|
+
"events": [
|
|
104834
|
+
{
|
|
104835
|
+
"type": {
|
|
104836
|
+
"text": "HelixBeforePinEvent"
|
|
104837
|
+
},
|
|
104838
|
+
"description": "Fired when the reader leaves the newest line by scrolling, or comes back to it. Cancelable.",
|
|
104839
|
+
"name": "helix-before-pin",
|
|
104840
|
+
"reactProp": "onhelix-before-pin"
|
|
104841
|
+
},
|
|
104842
|
+
{
|
|
104843
|
+
"type": {
|
|
104844
|
+
"text": "HelixExpandEvent"
|
|
104845
|
+
},
|
|
104846
|
+
"description": "Fired after a reader opens or closes a group drawn from `groups`, with the `id` of every open group in `detail.value`, separated by commas.",
|
|
104847
|
+
"name": "helix-expand",
|
|
104848
|
+
"reactProp": "onhelix-expand"
|
|
104849
|
+
},
|
|
104850
|
+
{
|
|
104851
|
+
"type": {
|
|
104852
|
+
"text": "HelixPinEvent"
|
|
104853
|
+
},
|
|
104854
|
+
"description": "Fired after the log follows the newest line or lets go of it, with `true` or `false` in `detail.value`.",
|
|
104855
|
+
"name": "helix-pin",
|
|
104856
|
+
"reactProp": "onhelix-pin"
|
|
104857
|
+
}
|
|
104858
|
+
],
|
|
104859
|
+
"attributes": [
|
|
104860
|
+
{
|
|
104861
|
+
"name": "default-pinned",
|
|
104862
|
+
"type": {
|
|
104863
|
+
"text": "boolean"
|
|
104864
|
+
},
|
|
104865
|
+
"default": "true",
|
|
104866
|
+
"description": "Whether the log opens following its newest line, when `pinned` is not set.\n`default-pinned=\"false\"` opens it where it starts.",
|
|
104867
|
+
"fieldName": "defaultPinned"
|
|
104868
|
+
},
|
|
104869
|
+
{
|
|
104870
|
+
"name": "done",
|
|
104871
|
+
"type": {
|
|
104872
|
+
"text": "boolean"
|
|
104873
|
+
},
|
|
104874
|
+
"description": "Whether the run is over, which a screen reader is told once.\n\nSet it when output you `write` is complete. A `source` sets it when the\nstream ends.",
|
|
104875
|
+
"fieldName": "done"
|
|
104876
|
+
},
|
|
104877
|
+
{
|
|
104878
|
+
"name": "done-label",
|
|
104879
|
+
"type": {
|
|
104880
|
+
"text": "string"
|
|
104881
|
+
},
|
|
104882
|
+
"default": "'Finished'",
|
|
104883
|
+
"description": "What a screen reader hears when the run is over.",
|
|
104884
|
+
"fieldName": "doneLabel"
|
|
104885
|
+
},
|
|
104886
|
+
{
|
|
104887
|
+
"name": "dropped-label",
|
|
104888
|
+
"type": {
|
|
104889
|
+
"text": "string"
|
|
104890
|
+
},
|
|
104891
|
+
"default": "'{count, plural, one {# earlier line is} other {# earlier lines are}} not kept'",
|
|
104892
|
+
"description": "What the line above the log says once `limit` has let lines go. `{count}` is how many.",
|
|
104893
|
+
"fieldName": "droppedLabel"
|
|
104894
|
+
},
|
|
104895
|
+
{
|
|
104896
|
+
"name": "empty-text",
|
|
104897
|
+
"type": {
|
|
104898
|
+
"text": "string"
|
|
104899
|
+
},
|
|
104900
|
+
"default": "'No output yet'",
|
|
104901
|
+
"description": "The text shown and announced when the log has no lines.",
|
|
104902
|
+
"fieldName": "emptyText",
|
|
104903
|
+
"inheritedFrom": {
|
|
104904
|
+
"name": "MixinCollection",
|
|
104905
|
+
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
104906
|
+
}
|
|
104907
|
+
},
|
|
104908
|
+
{
|
|
104909
|
+
"name": "error-label",
|
|
104910
|
+
"type": {
|
|
104911
|
+
"text": "string"
|
|
104912
|
+
},
|
|
104913
|
+
"default": "'{count, plural, one {Error} other {# errors}}: {text}'",
|
|
104914
|
+
"description": "What a screen reader hears when lines at `error` arrive. `{count}` is how\nmany arrived together and `{text}` is the first of them.",
|
|
104915
|
+
"fieldName": "errorLabel"
|
|
104916
|
+
},
|
|
104917
|
+
{
|
|
104918
|
+
"name": "fallback-label",
|
|
104919
|
+
"type": {
|
|
104920
|
+
"text": "string"
|
|
104921
|
+
},
|
|
104922
|
+
"default": "'Log'",
|
|
104923
|
+
"description": "The log's name, read by screen readers, where `label` is empty.",
|
|
104924
|
+
"fieldName": "fallbackLabel"
|
|
104925
|
+
},
|
|
104926
|
+
{
|
|
104927
|
+
"name": "group-label",
|
|
104928
|
+
"type": {
|
|
104929
|
+
"text": "string"
|
|
104930
|
+
},
|
|
104931
|
+
"default": "'{status, select, failed {{heading} failed} other {{heading} finished}}'",
|
|
104932
|
+
"description": "What a screen reader hears when a step finishes or fails. `{heading}` is\nthe step's heading and `{status}` is `done` or `failed`.",
|
|
104933
|
+
"fieldName": "groupLabel"
|
|
104934
|
+
},
|
|
104935
|
+
{
|
|
104936
|
+
"name": "label",
|
|
104937
|
+
"type": {
|
|
104938
|
+
"text": "string"
|
|
104939
|
+
},
|
|
104940
|
+
"default": "''",
|
|
104941
|
+
"description": "The log's name, read by screen readers.",
|
|
104942
|
+
"fieldName": "label"
|
|
104943
|
+
},
|
|
104944
|
+
{
|
|
104945
|
+
"name": "limit",
|
|
104946
|
+
"type": {
|
|
104947
|
+
"text": "number"
|
|
104948
|
+
},
|
|
104949
|
+
"default": "0",
|
|
104950
|
+
"description": "The most lines kept, or 0 to keep them all. Past it the oldest lines are\nlet go, and the line above the log says how many.",
|
|
104951
|
+
"fieldName": "limit"
|
|
104952
|
+
},
|
|
104953
|
+
{
|
|
104954
|
+
"name": "line-href",
|
|
104955
|
+
"type": {
|
|
104956
|
+
"text": "string"
|
|
104957
|
+
},
|
|
104958
|
+
"default": "''",
|
|
104959
|
+
"description": "A link for each line number, with `{n}` where the number goes, such as\n`#L{n}`. Empty leaves the numbers as text.",
|
|
104960
|
+
"fieldName": "lineHref"
|
|
104961
|
+
},
|
|
104962
|
+
{
|
|
104963
|
+
"name": "line-label",
|
|
104964
|
+
"type": {
|
|
104965
|
+
"text": "string"
|
|
104966
|
+
},
|
|
104967
|
+
"default": "'Line {number}'",
|
|
104968
|
+
"description": "What a screen reader hears for the link on a line's number, handed to each\nline the log draws. `{number}` is the number.",
|
|
104969
|
+
"fieldName": "lineLabel"
|
|
104970
|
+
},
|
|
104971
|
+
{
|
|
104972
|
+
"name": "line-numbers",
|
|
104973
|
+
"type": {
|
|
104974
|
+
"text": "boolean"
|
|
104975
|
+
},
|
|
104976
|
+
"default": "false",
|
|
104977
|
+
"description": "Whether each line shows its number.",
|
|
104978
|
+
"fieldName": "lineNumbers"
|
|
104979
|
+
},
|
|
104980
|
+
{
|
|
104981
|
+
"name": "mark-lines",
|
|
104982
|
+
"type": {
|
|
104983
|
+
"text": "string"
|
|
104984
|
+
},
|
|
104985
|
+
"default": "''",
|
|
104986
|
+
"description": "Lines to mark, as numbers and ranges such as `12, 40-44`.",
|
|
104987
|
+
"fieldName": "markLines"
|
|
104988
|
+
},
|
|
104989
|
+
{
|
|
104990
|
+
"name": "matches-label",
|
|
104991
|
+
"type": {
|
|
104992
|
+
"text": "string"
|
|
104993
|
+
},
|
|
104994
|
+
"default": "'{count, plural, =0 {No lines match} one {# line matches} other {# lines match}}'",
|
|
104995
|
+
"description": "What a screen reader hears when `query` changes. `{count}` is how many lines match.",
|
|
104996
|
+
"fieldName": "matchesLabel"
|
|
104997
|
+
},
|
|
104998
|
+
{
|
|
104999
|
+
"name": "pinned",
|
|
105000
|
+
"type": {
|
|
105001
|
+
"text": "boolean"
|
|
105002
|
+
},
|
|
105003
|
+
"description": "Whether the log follows its newest line.\n\nThe reader's scrolling asks first: `helix-before-pin` is cancelable, so a\nconsumer refusing it takes the decision and assigns their own value. Not\nreflected, for the reason `Chat` gives at its own `pinned`: a default of\ntrue would write the attribute on upgrade.",
|
|
105004
|
+
"fieldName": "pinned"
|
|
105005
|
+
},
|
|
105006
|
+
{
|
|
105007
|
+
"name": "query",
|
|
105008
|
+
"type": {
|
|
105009
|
+
"text": "string"
|
|
105010
|
+
},
|
|
105011
|
+
"default": "''",
|
|
105012
|
+
"description": "Text a line has to hold to be shown, ignoring case. Empty shows every line.",
|
|
105013
|
+
"fieldName": "query"
|
|
105014
|
+
},
|
|
105015
|
+
{
|
|
105016
|
+
"name": "resume-label",
|
|
105017
|
+
"type": {
|
|
105018
|
+
"text": "string"
|
|
105019
|
+
},
|
|
105020
|
+
"default": "'Jump to latest'",
|
|
105021
|
+
"description": "The words on the button that returns to the newest line, where `resume` is empty.",
|
|
105022
|
+
"fieldName": "resumeLabel"
|
|
105023
|
+
},
|
|
105024
|
+
{
|
|
105025
|
+
"name": "threshold",
|
|
105026
|
+
"type": {
|
|
105027
|
+
"text": "number"
|
|
105028
|
+
},
|
|
105029
|
+
"default": "48",
|
|
105030
|
+
"description": "How near the newest line still counts as being at it, in pixels.",
|
|
105031
|
+
"fieldName": "threshold"
|
|
105032
|
+
},
|
|
105033
|
+
{
|
|
105034
|
+
"name": "timestamps",
|
|
105035
|
+
"type": {
|
|
105036
|
+
"text": "'absolute' | 'relative' | undefined"
|
|
105037
|
+
},
|
|
105038
|
+
"description": "How each line shows its `at`: `absolute` on the clock, `relative` as the\ntime since the first line. Absent shows no time.",
|
|
105039
|
+
"fieldName": "timestamps"
|
|
105040
|
+
},
|
|
105041
|
+
{
|
|
105042
|
+
"name": "wrap",
|
|
105043
|
+
"type": {
|
|
105044
|
+
"text": "boolean"
|
|
105045
|
+
},
|
|
105046
|
+
"default": "false",
|
|
105047
|
+
"description": "Whether a line longer than the box wraps onto the next row. Otherwise the log scrolls sideways.",
|
|
105048
|
+
"fieldName": "wrap"
|
|
105049
|
+
},
|
|
105050
|
+
{
|
|
105051
|
+
"name": "loading",
|
|
105052
|
+
"type": {
|
|
105053
|
+
"text": "boolean"
|
|
105054
|
+
},
|
|
105055
|
+
"default": "false",
|
|
105056
|
+
"description": "Whether the rows are still loading.\n\nReflected, because a stylesheet needs it: the rows that are already there\nare dimmed rather than removed while a new set arrives, and only CSS can\nsay that without the component knowing what a row looks like.",
|
|
105057
|
+
"fieldName": "loading",
|
|
105058
|
+
"inheritedFrom": {
|
|
105059
|
+
"name": "MixinCollection",
|
|
105060
|
+
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
105061
|
+
}
|
|
105062
|
+
},
|
|
105063
|
+
{
|
|
105064
|
+
"name": "loading-text",
|
|
105065
|
+
"type": {
|
|
105066
|
+
"text": "string"
|
|
105067
|
+
},
|
|
105068
|
+
"default": "'Loading'",
|
|
105069
|
+
"description": "The text shown and announced while the rows load.",
|
|
105070
|
+
"fieldName": "loadingText",
|
|
105071
|
+
"inheritedFrom": {
|
|
105072
|
+
"name": "MixinCollection",
|
|
105073
|
+
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
105074
|
+
}
|
|
105075
|
+
}
|
|
105076
|
+
],
|
|
105077
|
+
"cssStates": [
|
|
105078
|
+
{
|
|
105079
|
+
"description": "The run is over: `done` is set, or `source` ended.",
|
|
105080
|
+
"name": "done"
|
|
105081
|
+
},
|
|
105082
|
+
{
|
|
105083
|
+
"description": "The log has no lines.",
|
|
105084
|
+
"name": "empty"
|
|
105085
|
+
},
|
|
105086
|
+
{
|
|
105087
|
+
"description": "`query` is set, so only matching lines are shown.",
|
|
105088
|
+
"name": "filtered"
|
|
105089
|
+
},
|
|
105090
|
+
{
|
|
105091
|
+
"description": "The log follows its newest line.",
|
|
105092
|
+
"name": "pinned"
|
|
105093
|
+
},
|
|
105094
|
+
{
|
|
105095
|
+
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
105096
|
+
"name": "settled",
|
|
105097
|
+
"inheritedFrom": {
|
|
105098
|
+
"name": "HelixElement",
|
|
105099
|
+
"module": "src/helix-element/helix-element.ts"
|
|
105100
|
+
}
|
|
105101
|
+
}
|
|
105102
|
+
],
|
|
105103
|
+
"mixins": [
|
|
105104
|
+
{
|
|
105105
|
+
"name": "MixinCollection",
|
|
105106
|
+
"package": "@fusion.dev/helix-core"
|
|
105107
|
+
}
|
|
105108
|
+
],
|
|
105109
|
+
"superclass": {
|
|
105110
|
+
"name": "HelixElement",
|
|
105111
|
+
"package": "@fusion.dev/helix-core"
|
|
105112
|
+
},
|
|
105113
|
+
"summary": "Output that arrives while you watch it, such as a CI run, a deployment, or a build, in a box that follows the newest line.",
|
|
105114
|
+
"helix": {
|
|
105115
|
+
"category": "feedback",
|
|
105116
|
+
"since": "0.199.0",
|
|
105117
|
+
"status": "experimental",
|
|
105118
|
+
"documentation": "https://fusion.dev/helix/components/log",
|
|
105119
|
+
"aliases": [
|
|
105120
|
+
"Console",
|
|
105121
|
+
"Terminal output",
|
|
105122
|
+
"Build log",
|
|
105123
|
+
"Deploy log",
|
|
105124
|
+
"Log viewer",
|
|
105125
|
+
"Output"
|
|
105126
|
+
],
|
|
105127
|
+
"tier": "headless",
|
|
105128
|
+
"renders": [
|
|
105129
|
+
"log-group",
|
|
105130
|
+
"log-line"
|
|
105131
|
+
],
|
|
105132
|
+
"group": "BaseLog",
|
|
105133
|
+
"part": "Root",
|
|
105134
|
+
"examples": [
|
|
105135
|
+
{
|
|
105136
|
+
"description": "A deployment's output with numbered lines, its steps folded, and the step that failed open.",
|
|
105137
|
+
"layout": "padded",
|
|
105138
|
+
"slug": "preview"
|
|
105139
|
+
}
|
|
105140
|
+
],
|
|
105141
|
+
"source": "helix/headless/src/log"
|
|
105142
|
+
},
|
|
105143
|
+
"tagName": "helix-headless-log",
|
|
105144
|
+
"customElement": true,
|
|
105145
|
+
"modulePath": "src/log/root/log-root.ts",
|
|
105146
|
+
"definitionPath": "src/log/root/log-root.ts"
|
|
105147
|
+
}
|
|
105148
|
+
],
|
|
105149
|
+
"exports": [
|
|
105150
|
+
{
|
|
105151
|
+
"kind": "js",
|
|
105152
|
+
"name": "HelixHeadlessLog",
|
|
105153
|
+
"declaration": {
|
|
105154
|
+
"name": "HelixHeadlessLog",
|
|
105155
|
+
"module": "src/log/root/log-root.ts"
|
|
105156
|
+
}
|
|
105157
|
+
},
|
|
105158
|
+
{
|
|
105159
|
+
"kind": "custom-element-definition",
|
|
105160
|
+
"name": "helix-headless-log",
|
|
105161
|
+
"declaration": {
|
|
105162
|
+
"name": "HelixHeadlessLog",
|
|
105163
|
+
"module": "src/log/root/log-root.ts"
|
|
105164
|
+
}
|
|
105165
|
+
}
|
|
105166
|
+
]
|
|
105167
|
+
},
|
|
105168
|
+
{
|
|
105169
|
+
"kind": "javascript-module",
|
|
105170
|
+
"path": "src/log/rows.ts",
|
|
105171
|
+
"declarations": [
|
|
105172
|
+
{
|
|
105173
|
+
"kind": "function",
|
|
105174
|
+
"name": "logRows",
|
|
105175
|
+
"return": {
|
|
105176
|
+
"type": {
|
|
105177
|
+
"text": "LogRows"
|
|
105178
|
+
}
|
|
105179
|
+
},
|
|
105180
|
+
"parameters": [
|
|
105181
|
+
{
|
|
105182
|
+
"name": "{ current, groups, lines, open, query, start }",
|
|
105183
|
+
"type": {
|
|
105184
|
+
"text": "LogRowsInput"
|
|
105185
|
+
}
|
|
105186
|
+
}
|
|
105187
|
+
],
|
|
105188
|
+
"description": "Lays the lines out as rows, a group's heading before its first line.\n\n**A group stands where its first line is.** A group in `groups` with no line\nyet stands after every line, in the order `groups` gives, which is the step\nthat has started and written nothing, where it comes after every group that\nhas a line. A line naming a group nobody declared is drawn with no heading.\n\n**A search opens every group and shows only what matched.** A group shows\nits heading while it holds a match, so a match inside a folded step is found\nwhere it is rather than hidden by the fold. A group with no match is left\nout, heading and all."
|
|
105189
|
+
},
|
|
105190
|
+
{
|
|
105191
|
+
"kind": "function",
|
|
105192
|
+
"name": "markMatches",
|
|
105193
|
+
"return": {
|
|
105194
|
+
"type": {
|
|
105195
|
+
"text": "LogPiece[]"
|
|
105196
|
+
}
|
|
105197
|
+
},
|
|
105198
|
+
"parameters": [
|
|
105199
|
+
{
|
|
105200
|
+
"name": "runs",
|
|
105201
|
+
"type": {
|
|
105202
|
+
"text": "readonly LogRun[]"
|
|
105203
|
+
}
|
|
105204
|
+
},
|
|
105205
|
+
{
|
|
105206
|
+
"name": "query",
|
|
105207
|
+
"type": {
|
|
105208
|
+
"text": "string"
|
|
105209
|
+
}
|
|
105210
|
+
}
|
|
105211
|
+
],
|
|
105212
|
+
"description": "Splits runs where the search matches, ignoring case, so each match can be\nmarked. Runs are returned as they are where there is no search."
|
|
105213
|
+
}
|
|
105214
|
+
],
|
|
105215
|
+
"exports": [
|
|
105216
|
+
{
|
|
105217
|
+
"kind": "js",
|
|
105218
|
+
"name": "logRows",
|
|
105219
|
+
"declaration": {
|
|
105220
|
+
"name": "logRows",
|
|
105221
|
+
"module": "src/log/rows.ts"
|
|
105222
|
+
}
|
|
105223
|
+
},
|
|
105224
|
+
{
|
|
105225
|
+
"kind": "js",
|
|
105226
|
+
"name": "markMatches",
|
|
105227
|
+
"declaration": {
|
|
105228
|
+
"name": "markMatches",
|
|
105229
|
+
"module": "src/log/rows.ts"
|
|
105230
|
+
}
|
|
105231
|
+
}
|
|
105232
|
+
]
|
|
105233
|
+
},
|
|
101308
105234
|
{
|
|
101309
105235
|
"kind": "javascript-module",
|
|
101310
105236
|
"path": "src/map/area/map-area.ts",
|
|
@@ -215359,6 +219285,6 @@
|
|
|
215359
219285
|
],
|
|
215360
219286
|
"helix": {
|
|
215361
219287
|
"package": "@fusion.dev/helix-headless",
|
|
215362
|
-
"version": "0.
|
|
219288
|
+
"version": "0.200.0"
|
|
215363
219289
|
}
|
|
215364
219290
|
}
|